diff --git a/guns-front-project/.env b/guns-front-project/.env new file mode 100644 index 00000000..ddbf9148 --- /dev/null +++ b/guns-front-project/.env @@ -0,0 +1,2 @@ +# 项目启动后,左上角项目名称 +VITE_APP_NAME=Guns Tech. diff --git a/guns-front-project/.env.development b/guns-front-project/.env.development new file mode 100644 index 00000000..5e5db281 --- /dev/null +++ b/guns-front-project/.env.development @@ -0,0 +1,14 @@ +# API请求的前缀,走这个前缀的会被转发到后台 +VITE_API_PREFIX=/api + +# 后台接口的地址,这个地址只有在开发环境用,上线后用nginx转发 +VITE_API_URL=http://localhost:8080 + +# sso单点服务器的地址,上线后需要改为线上的单点服务地址 +VITE_APP_SSO_HOST=http://localhost:8888 + +# sso单点客户端id,上线后需要改为线上的客户端id +VITE_APP_SSO_ID=1187303628294164583 + +# oauth2服务端地址,用在点击首页的第三方登录logo +VITE_APP_BACKEND_HOST=http://localhost:8080 diff --git a/guns-front-project/.env.production b/guns-front-project/.env.production new file mode 100644 index 00000000..a5568870 --- /dev/null +++ b/guns-front-project/.env.production @@ -0,0 +1,14 @@ +# API请求的前缀,走这个前缀的会被转发到后台,打包到tomcat这里要改为/ +VITE_API_PREFIX=/api + +# 后台接口的地址,这个地址只有在开发环境用,上线后用nginx转发 +VITE_API_URL=https://vue3.javaguns.com/api + +# sso单点服务器的地址,上线后需要改为线上的单点服务地址 +VITE_APP_SSO_HOST=http://localhost:8888 + +# sso单点客户端id,上线后需要改为线上的客户端id +VITE_APP_SSO_ID=1187303628294164583 + +# oauth2服务端地址,用在点击首页的第三方登录logo +VITE_APP_BACKEND_HOST=http://www.javaguns.com/api diff --git a/guns-front-project/.eslintignore b/guns-front-project/.eslintignore new file mode 100644 index 00000000..46b14266 --- /dev/null +++ b/guns-front-project/.eslintignore @@ -0,0 +1,4 @@ +public +src/assets +dist +node_modules diff --git a/guns-front-project/.eslintrc.cjs b/guns-front-project/.eslintrc.cjs new file mode 100644 index 00000000..e1d1daa0 --- /dev/null +++ b/guns-front-project/.eslintrc.cjs @@ -0,0 +1,55 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true, + 'vue/setup-compiler-macros': true + }, + parser: 'vue-eslint-parser', + extends: ['plugin:vue/vue3-recommended', 'eslint:recommended'], + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module' + }, + rules: { + 'vue/script-setup-uses-vars': 'error', + 'vue/custom-event-name-casing': 'off', + 'no-use-before-define': 'off', + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], + 'space-before-function-paren': 'off', + 'vue/attributes-order': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/require-default-prop': 'off', + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', + normal: 'never', + component: 'always' + }, + svg: 'always', + math: 'always' + } + ], + 'vue/v-on-event-hyphenation': 'off', + 'vue/multi-word-component-names': 'off', + // 允许props修改 + 'vue/no-mutating-props': 0 + } +} diff --git a/guns-front-project/.gitignore b/guns-front-project/.gitignore new file mode 100644 index 00000000..39fcede8 --- /dev/null +++ b/guns-front-project/.gitignore @@ -0,0 +1,32 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# local env files +.env.local +.env.*.local + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/guns-front-project/.prettierignore b/guns-front-project/.prettierignore new file mode 100644 index 00000000..f7e39e60 --- /dev/null +++ b/guns-front-project/.prettierignore @@ -0,0 +1,9 @@ +/dist/* +.local +.output.js +/node_modules/** + +**/*.svg +**/*.sh + +/public/* diff --git a/guns-front-project/.prettierrc.json b/guns-front-project/.prettierrc.json new file mode 100644 index 00000000..4a788134 --- /dev/null +++ b/guns-front-project/.prettierrc.json @@ -0,0 +1,20 @@ +{ + "arrowParens": "avoid", + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": true, + "printWidth": 140, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "useTabs": false, + "vueIndentScriptAndStyle": false, + "endOfLine": "auto" +} \ No newline at end of file diff --git a/guns-front-project/index.html b/guns-front-project/index.html new file mode 100644 index 00000000..b77791c2 --- /dev/null +++ b/guns-front-project/index.html @@ -0,0 +1,67 @@ + + + + + + + Guns Tech. + + + +
+
+ + + + +
+
+ + + diff --git a/guns-front-project/jsconfig.json b/guns-front-project/jsconfig.json new file mode 100644 index 00000000..23ca54d2 --- /dev/null +++ b/guns-front-project/jsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "jsx": "preserve", + "baseUrl": "./", + "lib": ["esnext", "dom"], + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/guns-front-project/package.json b/guns-front-project/package.json new file mode 100644 index 00000000..dd65f15d --- /dev/null +++ b/guns-front-project/package.json @@ -0,0 +1,56 @@ +{ + "name": "new-project", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "node --max_old_space_size=8096 ./node_modules/vite/bin/vite.js build", + "preview": "vite preview", + "test:unit": "vitest", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "@ant-design/icons-vue": "^7.0.1", + "ant-design-vue": "^3.2.17", + "axios": "^1.6.0", + "cropperjs": "^1.5.12", + "dayjs": "^1.11.10", + "echarts": "^5.4.2", + "jsencrypt": "^3.3.2", + "less": "^4.2.0", + "lodash-es": "^4.17.21", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "tinymce": "^5.10.7", + "vue": "^3.3.4", + "vue-clipboard3": "^2.0.0", + "vue-echarts": "^6.5.4", + "vue-i18n": "^9.1.9", + "vue-router": "^4.2.5", + "vuedraggable": "^4.1.0", + "vxe-table": "^4.4.2", + "xe-utils": "^3.5.14", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.3.3", + "@vitejs/plugin-legacy": "^4.0.2", + "@vitejs/plugin-vue": "^4.4.0", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/test-utils": "^2.4.1", + "consola": "3.2.0", + "eslint": "^8.49.0", + "eslint-plugin-vue": "^9.17.0", + "jsdom": "^22.1.0", + "prettier": "^3.0.3", + "terser": "^5.16.9", + "unplugin-vue-components": "^0.24.1", + "vite": "^4.4.11", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-style-import": "^2.0.0", + "vitest": "^0.34.6", + "vue-eslint-parser": "^9.1.1" + } +} diff --git a/guns-front-project/postcss.config.js b/guns-front-project/postcss.config.js new file mode 100644 index 00000000..fa4aabca --- /dev/null +++ b/guns-front-project/postcss.config.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: {} +}; diff --git a/guns-front-project/prettier.config.js b/guns-front-project/prettier.config.js new file mode 100644 index 00000000..2768cc48 --- /dev/null +++ b/guns-front-project/prettier.config.js @@ -0,0 +1,20 @@ +module.exports = { + arrowParens: 'always', + bracketSpacing: true, + embeddedLanguageFormatting: 'auto', + htmlWhitespaceSensitivity: 'css', + insertPragma: false, + jsxBracketSameLine: false, + jsxSingleQuote: true, + printWidth: 140, + proseWrap: 'preserve', + quoteProps: 'as-needed', + requirePragma: false, + semi: true, + singleQuote: true, + tabWidth: 2, + trailingComma: 'none', + useTabs: false, + vueIndentScriptAndStyle: true, + endOfLine: 'auto' +}; diff --git a/guns-front-project/public/favicon.ico b/guns-front-project/public/favicon.ico new file mode 100644 index 00000000..832ffa21 Binary files /dev/null and b/guns-front-project/public/favicon.ico differ diff --git a/guns-front-project/public/tinymce/langs/zh_CN.js b/guns-front-project/public/tinymce/langs/zh_CN.js new file mode 100644 index 00000000..2a784f57 --- /dev/null +++ b/guns-front-project/public/tinymce/langs/zh_CN.js @@ -0,0 +1,462 @@ +tinymce.addI18n('zh_CN',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u9500", +"Cut": "\u526a\u5207", +"Copy": "\u590d\u5236", +"Paste": "\u7c98\u8d34", +"Select all": "\u5168\u9009", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u786e\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u7f51\u683c\u7ebf", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u5212\u7ebf", +"Strikethrough": "\u5220\u9664\u7ebf", +"Superscript": "\u4e0a\u6807", +"Subscript": "\u4e0b\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u8fb9\u5bf9\u9f50", +"Align center": "\u4e2d\u95f4\u5bf9\u9f50", +"Align right": "\u53f3\u8fb9\u5bf9\u9f50", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Close": "\u5173\u95ed", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"Headers": "\u6807\u9898", +"Header 1": "\u6807\u98981", +"Header 2": "\u6807\u98982", +"Header 3": "\u6807\u98983", +"Header 4": "\u6807\u98984", +"Header 5": "\u6807\u98985", +"Header 6": "\u6807\u98986", +"Headings": "\u6807\u9898", +"Heading 1": "\u6807\u98981", +"Heading 2": "\u6807\u98982", +"Heading 3": "\u6807\u98983", +"Heading 4": "\u6807\u98984", +"Heading 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u7801", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u533a\u5757", +"Inline": "\u6587\u672c", +"Blocks": "\u57fa\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Fonts": "\u5b57\u4f53", +"Font Sizes": "\u5b57\u53f7", +"Class": "\u7c7b\u578b", +"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"OR": "\u6216", +"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", +"Upload": "\u4e0a\u4f20", +"Block": "\u5757", +"Align": "\u5bf9\u9f50", +"Default": "\u9ed8\u8ba4", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Square": "\u65b9\u5757", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Anchor...": "\u951a\u70b9...", +"Name": "\u540d\u79f0", +"Id": "\u6807\u8bc6\u7b26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character...": "\u7279\u6b8a\u5b57\u7b26...", +"Source code": "\u6e90\u4ee3\u7801", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"Language": "\u8bed\u8a00", +"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Color Picker": "\u9009\u8272\u5668", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Emoticons": "\u8868\u60c5", +"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", +"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Description": "\u63cf\u8ff0", +"Robots": "\u673a\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7f16\u7801", +"Fullscreen": "\u5168\u5c4f", +"Action": "\u64cd\u4f5c", +"Shortcut": "\u5feb\u6377\u952e", +"Help": "\u5e2e\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", +"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", +"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", +"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", +"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", +"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u63d2\u4ef6", +"Handy Shortcuts": "\u5feb\u6377\u952e", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Alternative description": "\u66ff\u4ee3\u63cf\u8ff0", +"Accessibility": "\u8f85\u52a9\u529f\u80fd", +"Image is decorative": "\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684", +"Source": "\u5730\u5740", +"Dimensions": "\u5927\u5c0f", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Style": "\u6837\u5f0f", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Border": "\u8fb9\u6846", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image...": "\u56fe\u7247...", +"Image list": "\u56fe\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Image options": "\u56fe\u7247\u9009\u9879", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7f29\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u9510\u5316", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Gamma": "\u4f3d\u9a6c\u503c", +"Invert": "\u53cd\u8f6c", +"Apply": "\u5e94\u7528", +"Back": "\u540e\u9000", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Url": "\u5730\u5740", +"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", +"Current window": "\u5f53\u524d\u7a97\u53e3", +"None": "\u65e0", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"Open link": "\u6253\u5f00\u94fe\u63a5", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Anchors": "\u951a\u70b9", +"Link...": "\u94fe\u63a5...", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:\/\/ \u524d\u7f00\u5417\uff1f", +"Link list": "\u94fe\u63a5\u5217\u8868", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", +"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Embed": "\u5185\u5d4c", +"Media...": "\u591a\u5a92\u4f53...", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print...": "\u6253\u5370...", +"Save": "\u4fdd\u5b58", +"Find": "\u67e5\u627e", +"Replace with": "\u66ff\u6362\u4e3a", +"Replace": "\u66ff\u6362", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Previous": "\u4e0a\u4e00\u4e2a", +"Next": "\u4e0b\u4e00\u4e2a", +"Find and Replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Find whole words only": "\u5168\u5b57\u5339\u914d", +"Find in selection": "\u5728\u9009\u533a\u4e2d\u67e5\u627e", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00", +"No misspellings found.": "\u6ca1\u6709\u53d1\u73b0\u62fc\u5199\u9519\u8bef", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Delete table": "\u5220\u9664\u8868\u683c", +"Cell": "\u5355\u5143\u683c", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Delete row": "\u5220\u9664\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Cut row": "\u526a\u5207\u884c", +"Copy row": "\u590d\u5236\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Delete column": "\u5220\u9664\u5217", +"Cols": "\u5217", +"Rows": "\u884c", +"Width": "\u5bbd", +"Height": "\u9ad8", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Caption": "\u6807\u9898", +"Show caption": "\u663e\u793a\u6807\u9898", +"Left": "\u5de6\u5bf9\u9f50", +"Center": "\u5c45\u4e2d", +"Right": "\u53f3\u5bf9\u9f50", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Scope": "\u8303\u56f4", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Row group": "\u884c\u7ec4", +"Column group": "\u5217\u7ec4", +"Row type": "\u884c\u7c7b\u578b", +"Header": "\u8868\u5934", +"Body": "\u8868\u4f53", +"Footer": "\u8868\u5c3e", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Insert template...": "\u63d2\u5165\u6a21\u677f...", +"Templates": "\u6a21\u677f", +"Template": "\u6a21\u677f", +"Text color": "\u6587\u5b57\u989c\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Remove color": "\u79fb\u9664\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Word count": "\u5b57\u6570", +"Count": "\u8ba1\u6570", +"Document": "\u6587\u6863", +"Selection": "\u9009\u62e9", +"Words": "\u5355\u8bcd", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"{0} words": "{0} \u5b57", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Insert": "\u63d2\u5165", +"View": "\u89c6\u56fe", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531{0}\u9a71\u52a8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Image title": "\u56fe\u7247\u6807\u9898", +"Border width": "\u8fb9\u6846\u5bbd\u5ea6", +"Border style": "\u8fb9\u6846\u6837\u5f0f", +"Error": "\u9519\u8bef", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", +"System Font": "\u7cfb\u7edf\u5b57\u4f53", +"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", +"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", +"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", +"example": "\u793a\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8d27\u5e01", +"Text": "\u6587\u5b57", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66", +"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", +"Symbols": "\u7b26\u53f7", +"Arrows": "\u7bad\u5934", +"User Defined": "\u81ea\u5b9a\u4e49", +"dollar sign": "\u7f8e\u5143\u7b26\u53f7", +"currency sign": "\u8d27\u5e01\u7b26\u53f7", +"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", +"colon sign": "\u5192\u53f7", +"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", +"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", +"lira sign": "\u91cc\u62c9\u7b26\u53f7", +"mill sign": "\u5bc6\u5c14\u7b26\u53f7", +"naira sign": "\u5948\u62c9\u7b26\u53f7", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", +"rupee sign": "\u5362\u6bd4\u7b26\u53f7", +"won sign": "\u97e9\u5143\u7b26\u53f7", +"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", +"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", +"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", +"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", +"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", +"peso sign": "\u6bd4\u7d22\u7b26\u53f7", +"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", +"austral sign": "\u6fb3\u5143\u7b26\u53f7", +"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", +"cedi sign": "\u585e\u5730\u7b26\u53f7", +"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", +"spesmilo sign": "spesmilo\u7b26\u53f7", +"tenge sign": "\u575a\u6208\u7b26\u53f7", +"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", +"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", +"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", +"ruble sign": "\u5362\u5e03\u7b26\u53f7", +"yen character": "\u65e5\u5143\u5b57\u6837", +"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", +"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", +"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", +"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", +"People": "\u4eba\u7c7b", +"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", +"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", +"Activity": "\u6d3b\u52a8", +"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u5e1c", +"Characters": "\u5b57\u7b26", +"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", +"{0} characters": "{0} \u4e2a\u5b57\u7b26", +"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", +"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u989c\u8272\u6837\u672c", +"Turquoise": "\u9752\u7eff\u8272", +"Green": "\u7eff\u8272", +"Blue": "\u84dd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6d77\u519b\u84dd", +"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", +"Dark Green": "\u6df1\u7eff\u8272", +"Medium Blue": "\u4e2d\u84dd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u6df1\u84dd\u8272", +"Yellow": "\u9ec4\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7ea2\u8272", +"Light Gray": "\u6d45\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6697\u9ec4\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6df1\u7ea2\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Light Green": "\u6d45\u7eff\u8272", +"Light Yellow": "\u6d45\u9ec4\u8272", +"Light Red": "\u6d45\u7ea2\u8272", +"Light Purple": "\u6d45\u7d2b\u8272", +"Light Blue": "\u6d45\u84dd\u8272", +"Dark Purple": "\u6df1\u7d2b\u8272", +"Dark Blue": "\u6df1\u84dd\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", +"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", +"history": "\u5386\u53f2", +"styles": "\u6837\u5f0f", +"formatting": "\u683c\u5f0f\u5316", +"alignment": "\u5bf9\u9f50", +"indentation": "\u7f29\u8fdb", +"Font": "\u5b57\u4f53", +"Size": "\u5b57\u53f7", +"More...": "\u66f4\u591a...", +"Select...": "\u9009\u62e9...", +"Preferences": "\u9996\u9009\u9879", +"Yes": "\u662f", +"No": "\u5426", +"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15", +"Version": "\u7248\u672c", +"Code view": "\u4ee3\u7801\u89c6\u56fe", +"Open popup menu for split buttons": "\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae", +"List Properties": "\u5217\u8868\u5c5e\u6027", +"List properties...": "\u6807\u9898\u5b57\u4f53\u5c5e\u6027", +"Start list at number": "\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868", +"Line height": "\u884c\u9ad8", +"comments": "\u5907\u6ce8", +"Format Painter": "\u683c\u5f0f\u5237", +"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6", +"Capitalization": "\u5927\u5199", +"lowercase": "\u5c0f\u5199", +"UPPERCASE": "\u5927\u5199", +"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199", +"permanent pen": "\u8bb0\u53f7\u7b14", +"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027", +"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...", +"case change": "\u6848\u4f8b\u66f4\u6539", +"page embed": "\u9875\u9762\u5d4c\u5165", +"Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...", +"Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f", +"Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8868", +"Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8868", +"Sort": "\u6392\u5e8f", +"Order": "\u6392\u5e8f", +"Sort by": "\u6392\u5e8f\u65b9\u5f0f", +"Ascending": "\u5347\u5e8f", +"Descending": "\u964d\u5e8f", +"Column {0}": "\u5217{0}", +"Row {0}": "\u884c{0}", +"Spellcheck...": "\u62fc\u5199\u68c0\u67e5...", +"Misspelled word": "\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd", +"Suggestions": "\u5efa\u8bae", +"Change": "\u66f4\u6539", +"Finding word suggestions": "\u67e5\u627e\u5355\u8bcd\u5efa\u8bae", +"Success": "\u6210\u529f", +"Repair": "\u4fee\u590d", +"Issue {0} of {1}": "\u5171\u8ba1{1}\u95ee\u9898{0}", +"Images must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u6216\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0", +"Images must have an alternative text description. Decorative images are not allowed.": "\u56fe\u50cf\u5fc5\u987b\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0\u3002\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u56fe\u50cf\u3002", +"Or provide alternative text:": "\u6216\u63d0\u4f9b\u5907\u9009\u6587\u672c\uff1a", +"Make image decorative:": "\u4f7f\u56fe\u50cf\u88c5\u9970\uff1a", +"ID attribute must be unique": "ID \u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684", +"Make ID unique": "\u4f7f ID \u72ec\u4e00\u65e0\u4e8c", +"Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6", +"Remove this ID": "\u5220\u9664\u6b64 ID", +"Remove all IDs": "\u6e05\u9664\u5168\u90e8IDs", +"Checklist": "\u6e05\u5355", +"Anchor": "\u951a\u70b9", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Code sample": "\u4ee3\u7801\u793a\u4f8b", +"Color": "\u989c\u8272", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Image": "\u56fe\u7247", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"Link": "\u94fe\u63a5", +"Poster": "\u5c01\u9762", +"Media": "\u5a92\u4f53", +"Print": "\u6253\u5370", +"Prev": "\u4e0a\u4e00\u4e2a", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Insert template": "\u63d2\u5165\u6a21\u677f" +}); \ No newline at end of file diff --git a/guns-front-project/public/tinymce/langs/zh_TW.js b/guns-front-project/public/tinymce/langs/zh_TW.js new file mode 100644 index 00000000..1987486c --- /dev/null +++ b/guns-front-project/public/tinymce/langs/zh_TW.js @@ -0,0 +1,419 @@ +tinymce.addI18n('zh_TW',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u92b7", +"Cut": "\u526a\u4e0b", +"Copy": "\u8907\u88fd", +"Paste": "\u8cbc\u4e0a", +"Select all": "\u5168\u9078", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u78ba\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u5c0f\u5e6b\u624b", +"Bold": "\u7c97\u9ad4", +"Italic": "\u659c\u9ad4", +"Underline": "\u4e0b\u5283\u7dda", +"Strikethrough": "\u522a\u9664\u7dda", +"Superscript": "\u4e0a\u6a19", +"Subscript": "\u4e0b\u6a19", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u908a\u5c0d\u9f4a", +"Align center": "\u4e2d\u9593\u5c0d\u9f4a", +"Align right": "\u53f3\u908a\u5c0d\u9f4a", +"Justify": "\u5de6\u53f3\u5c0d\u9f4a", +"Bullet list": "\u9805\u76ee\u6e05\u55ae", +"Numbered list": "\u6578\u5b57\u6e05\u55ae", +"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392", +"Increase indent": "\u589e\u52a0\u7e2e\u6392", +"Close": "\u95dc\u9589", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002", +"Headers": "\u6a19\u984c", +"Header 1": "\u6a19\u984c 1", +"Header 2": "\u6a19\u984c 2", +"Header 3": "\u6a19\u984c 3", +"Header 4": "\u6a19\u984c 4", +"Header 5": "\u6a19\u984c 5", +"Header 6": "\u6a19\u984c 6", +"Headings": "\u6a19\u984c", +"Heading 1": "\u6a19\u984c1", +"Heading 2": "\u6a19\u984c2", +"Heading 3": "\u6a19\u984c3", +"Heading 4": "\u6a19\u984c4", +"Heading 5": "\u6a19\u984c5", +"Heading 6": "\u6a19\u984c6", +"Preformatted": "\u9810\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u78bc", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u5340\u584a", +"Inline": "\u5167\u806f", +"Blocks": "\u57fa\u584a", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002", +"Fonts": "\u5b57\u578b", +"Font Sizes": "\u5b57\u578b\u5927\u5c0f", +"Class": "\u985e\u578b", +"Browse for an image": "\u5f9e\u5716\u7247\u4e2d\u700f\u89bd", +"OR": "\u6216", +"Drop an image here": "\u62d6\u66f3\u5716\u7247\u81f3\u6b64", +"Upload": "\u4e0a\u50b3", +"Block": "\u5340\u584a", +"Align": "\u5c0d\u9f4a", +"Default": "\u9810\u8a2d", +"Circle": "\u7a7a\u5fc3\u5713", +"Disc": "\u5be6\u5fc3\u5713", +"Square": "\u6b63\u65b9\u5f62", +"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57", +"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57", +"Anchor...": "\u9328\u9ede...", +"Name": "\u540d\u7a31", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id\u61c9\u4ee5\u5b57\u6bcd\u958b\u982d\uff0c\u5f8c\u9762\u63a5\u8457\u5b57\u6bcd\uff0c\u6578\u5b57\uff0c\u7834\u6298\u865f\uff0c\u9ede\u6578\uff0c\u5192\u865f\u6216\u4e0b\u5283\u7dda\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f", +"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f", +"Special character...": "\u7279\u6b8a\u5b57\u5143......", +"Source code": "\u539f\u59cb\u78bc", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7de8\u8f2f \u7a0b\u5f0f\u78bc\u7bc4\u4f8b", +"Language": "\u8a9e\u8a00", +"Code sample...": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b...", +"Color Picker": "\u9078\u8272\u5668", +"R": "\u7d05", +"G": "\u7da0", +"B": "\u85cd", +"Left to right": "\u5f9e\u5de6\u5230\u53f3", +"Right to left": "\u5f9e\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u865f\u2026", +"Metadata and Document Properties": "\u5f8c\u8a2d\u8cc7\u6599\u8207\u6587\u4ef6\u5c6c\u6027", +"Title": "\u6a19\u984c", +"Keywords": "\u95dc\u9375\u5b57", +"Description": "\u63cf\u8ff0", +"Robots": "\u6a5f\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7de8\u78bc", +"Fullscreen": "\u5168\u87a2\u5e55", +"Action": "\u52d5\u4f5c", +"Shortcut": "\u5feb\u901f\u9375", +"Help": "\u5e6b\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u8df3\u81f3\u9078\u55ae\u5217", +"Focus to toolbar": "\u8df3\u81f3\u5de5\u5177\u5217", +"Focus to element path": "\u8df3\u81f3HTML\u5143\u7d20\u5217", +"Focus to contextual toolbar": "\u8df3\u81f3\u5feb\u6377\u9078\u55ae", +"Insert link (if link plugin activated)": "\u65b0\u589e\u6377\u5f91 (\u6377\u5f91\u5916\u639b\u555f\u7528\u6642)", +"Save (if save plugin activated)": "\u5132\u5b58 (\u5132\u5b58\u5916\u639b\u555f\u7528\u6642)", +"Find (if searchreplace plugin activated)": "\u5c0b\u627e (\u5c0b\u627e\u53d6\u4ee3\u5916\u639b\u555f\u7528\u6642)", +"Plugins installed ({0}):": "({0}) \u500b\u5916\u639b\u5df2\u5b89\u88dd\uff1a", +"Premium plugins:": "\u52a0\u503c\u5916\u639b\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u60a8\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u5916\u639b", +"Handy Shortcuts": "\u5feb\u901f\u9375", +"Horizontal line": "\u6c34\u5e73\u7dda", +"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247", +"Image description": "\u5716\u7247\u63cf\u8ff0", +"Source": "\u5716\u7247\u7db2\u5740", +"Dimensions": "\u5c3a\u5bf8", +"Constrain proportions": "\u7b49\u6bd4\u4f8b\u7e2e\u653e", +"General": "\u4e00\u822c", +"Advanced": "\u9032\u968e", +"Style": "\u6a23\u5f0f", +"Vertical space": "\u9ad8\u5ea6", +"Horizontal space": "\u5bec\u5ea6", +"Border": "\u908a\u6846", +"Insert image": "\u63d2\u5165\u5716\u7247", +"Image...": "\u5716\u7247......", +"Image list": "\u5716\u7247\u6e05\u55ae", +"Rotate counterclockwise": "\u9006\u6642\u91dd\u65cb\u8f49", +"Rotate clockwise": "\u9806\u6642\u91dd\u65cb\u8f49", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f49", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f49", +"Edit image": "\u7de8\u8f2f\u5716\u7247", +"Image options": "\u5716\u7247\u9078\u9805", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7e2e\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8abf\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u92b3\u5316", +"Contrast": "\u5c0d\u6bd4", +"Color levels": "\u984f\u8272\u5c64\u6b21", +"Gamma": "\u4f3d\u99ac\u503c", +"Invert": "\u53cd\u8f49", +"Apply": "\u61c9\u7528", +"Back": "\u5f8c\u9000", +"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593", +"Date\/time": "\u65e5\u671f\/\u6642\u9593", +"Insert\/Edit Link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", +"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", +"Text to display": "\u986f\u793a\u6587\u5b57", +"Url": "\u7db2\u5740", +"Open link in...": "\u958b\u555f\u9023\u7d50\u65bc...", +"Current window": "\u76ee\u524d\u8996\u7a97", +"None": "\u7121", +"New window": "\u53e6\u958b\u8996\u7a97", +"Remove link": "\u79fb\u9664\u9023\u7d50", +"Anchors": "\u52a0\u5165\u9328\u9ede", +"Link...": "\u9023\u7d50...", +"Paste or type a link": "\u8cbc\u4e0a\u6216\u8f38\u5165\u9023\u7d50", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u70ba\u96fb\u5b50\u90f5\u4ef6\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7db4\u55ce\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u5c6c\u65bc\u5916\u90e8\u93c8\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7db4\u55ce\uff1f", +"Link list": "\u9023\u7d50\u6e05\u55ae", +"Insert video": "\u63d2\u5165\u5f71\u97f3", +"Insert\/edit video": "\u63d2\u4ef6\/\u7de8\u8f2f \u5f71\u97f3", +"Insert\/edit media": "\u63d2\u5165\/\u7de8\u8f2f \u5a92\u9ad4", +"Alternative source": "\u66ff\u4ee3\u5f71\u97f3", +"Alternative source URL": "\u66ff\u4ee3\u4f86\u6e90URL", +"Media poster (Image URL)": "\u5a92\u9ad4\u6d77\u5831\uff08\u5f71\u50cfImage URL\uff09", +"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:", +"Embed": "\u5d4c\u5165\u78bc", +"Media...": "\u5a92\u9ad4...", +"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c", +"Page break": "\u5206\u9801", +"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a", +"Preview": "\u9810\u89bd", +"Print...": "\u5217\u5370...", +"Save": "\u5132\u5b58", +"Find": "\u641c\u5c0b", +"Replace with": "\u66f4\u63db", +"Replace": "\u66ff\u63db", +"Replace all": "\u66ff\u63db\u5168\u90e8", +"Previous": "\u4e0a\u4e00\u500b", +"Next": "\u4e0b\u4e00\u500b", +"Find and replace...": "\u5c0b\u627e\u53ca\u53d6\u4ee3...", +"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32", +"Match case": "\u76f8\u5339\u914d\u6848\u4ef6", +"Find whole words only": "\u50c5\u627e\u51fa\u5b8c\u6574\u5b57\u532f", +"Spell check": "\u62fc\u5beb\u6aa2\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5ffd\u7565\u6240\u6709", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u52a0\u5165\u5b57\u5178\u4e2d", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c6c\u6027", +"Delete table": "\u522a\u9664\u8868\u683c", +"Cell": "\u5132\u5b58\u683c", +"Row": "\u5217", +"Column": "\u884c", +"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027", +"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c", +"Split cell": "\u5206\u5272\u5132\u5b58\u683c", +"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d", +"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c", +"Delete row": "\u522a\u9664\u5217", +"Row properties": "\u5217\u5c6c\u6027", +"Cut row": "\u526a\u4e0b\u5217", +"Copy row": "\u8907\u88fd\u5217", +"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d", +"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c", +"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d", +"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c", +"Delete column": "\u522a\u9664\u884c", +"Cols": "\u6b04\u4f4d\u6bb5", +"Rows": "\u5217", +"Width": "\u5bec\u5ea6", +"Height": "\u9ad8\u5ea6", +"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd", +"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd", +"Show caption": "\u986f\u793a\u6a19\u984c", +"Left": "\u5de6\u908a", +"Center": "\u4e2d\u9593", +"Right": "\u53f3\u908a", +"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b", +"Scope": "\u7bc4\u570d", +"Alignment": "\u5c0d\u9f4a", +"H Align": "\u6c34\u5e73\u4f4d\u7f6e", +"V Align": "\u5782\u76f4\u4f4d\u7f6e", +"Top": "\u7f6e\u9802", +"Middle": "\u7f6e\u4e2d", +"Bottom": "\u7f6e\u5e95", +"Header cell": "\u6a19\u982d\u5132\u5b58\u683c", +"Row group": "\u5217\u7fa4\u7d44", +"Column group": "\u6b04\u4f4d\u7fa4\u7d44", +"Row type": "\u884c\u7684\u985e\u578b", +"Header": "\u6a19\u982d", +"Body": "\u4e3b\u9ad4", +"Footer": "\u9801\u5c3e", +"Border color": "\u908a\u6846\u984f\u8272", +"Insert template...": "\u63d2\u5165\u6a23\u7248...", +"Templates": "\u6a23\u7248", +"Template": "\u6a23\u677f", +"Text color": "\u6587\u5b57\u984f\u8272", +"Background color": "\u80cc\u666f\u984f\u8272", +"Custom...": "\u81ea\u8a02", +"Custom color": "\u81ea\u8a02\u984f\u8272", +"No color": "No color", +"Remove color": "\u79fb\u9664\u984f\u8272", +"Table of Contents": "\u76ee\u9304", +"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a", +"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143", +"Word count": "\u8a08\u7b97\u5b57\u6578", +"Count": "\u8a08\u7b97", +"Document": "\u6587\u4ef6", +"Selection": "\u9078\u9805", +"Words": "\u5b57\u6578", +"Words: {0}": "\u5b57\u6578\uff1a{0}", +"{0} words": "{0} \u5b57\u5143", +"File": "\u6a94\u6848", +"Edit": "\u7de8\u8f2f", +"Insert": "\u63d2\u5165", +"View": "\u6aa2\u8996", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531 {0} \u63d0\u4f9b", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9", +"Image title": "\u5716\u7247\u6a19\u984c", +"Border width": "\u6846\u7dda\u5bec\u5ea6", +"Border style": "\u6846\u7dda\u6a23\u5f0f", +"Error": "\u932f\u8aa4", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u8981\u958b\u555f\u5f48\u51fa\u8996\u7a97\uff0c\u8acb\u6309Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u5bcc\u6587\u672c\u5340\u57df\u3002\u8acb\u6309ALT-0\u5c0b\u6c42\u5354\u52a9\u3002", +"System Font": "\u7cfb\u7d71\u5b57\u578b", +"Failed to upload image: {0}": "\u7121\u6cd5\u4e0a\u50b3\u5f71\u50cf\uff1a{0}", +"Failed to load plugin: {0} from url {1}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}\u81eaurl{1}", +"Failed to load plugin url: {0}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}", +"Failed to initialize plugin: {0}": "\u7121\u6cd5\u555f\u52d5\u63d2\u4ef6\uff1a{0}", +"example": "\u7bc4\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8ca8\u5e63", +"Text": "\u6587\u672c", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6578\u5b78", +"Extended Latin": "\u62c9\u4e01\u5b57\u6bcd\u64f4\u5145", +"Symbols": "\u7b26\u865f", +"Arrows": "\u7bad\u982d", +"User Defined": "\u4f7f\u7528\u8005\u5df2\u5b9a\u7fa9", +"dollar sign": "\u7f8e\u5143\u7b26\u865f", +"currency sign": "\u8ca8\u5e63\u7b26\u865f", +"euro-currency sign": "\u6b50\u5143\u7b26\u865f", +"colon sign": "\u79d1\u6717\u7b26\u865f", +"cruzeiro sign": "\u514b\u9b6f\u8cfd\u7f85\u7b26\u865f", +"french franc sign": "\u6cd5\u6717\u7b26\u865f", +"lira sign": "\u91cc\u62c9\u7b26\u865f", +"mill sign": "\u6587\u7b26\u865f", +"naira sign": "\u5948\u62c9\u7b26\u865f", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u865f", +"rupee sign": "\u76e7\u6bd4\u7b26\u865f", +"won sign": "\u97d3\u571c\u7b26\u865f", +"new sheqel sign": "\u65b0\u8b1d\u514b\u723e\u7b26\u865f", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u865f", +"kip sign": "\u8001\u64be\u5e63\u7b26\u865f", +"tugrik sign": "\u8499\u53e4\u5e63\u7b26\u865f", +"drachma sign": "\u5fb7\u514b\u62c9\u99ac\u7b26\u865f", +"german penny symbol": "\u5fb7\u570b\u5206\u7b26\u865f", +"peso sign": "\u62ab\u7d22\u7b26\u865f", +"guarani sign": "\u5df4\u62c9\u572d\u5e63\u7b26\u865f", +"austral sign": "\u963f\u6839\u5ef7\u5e63\u7b26\u865f", +"hryvnia sign": "\u70cf\u514b\u862d\u5e63\u7b26\u865f", +"cedi sign": "\u8fe6\u7d0d\u5e63\u7b26\u865f", +"livre tournois sign": "\u91cc\u5f17\u723e\u7b26\u865f", +"spesmilo sign": "\u570b\u969b\u5e63\u7b26\u865f", +"tenge sign": "\u54c8\u85a9\u514b\u5e63\u7b26\u865f", +"indian rupee sign": "\u5370\u5ea6\u76e7\u6bd4\u7b26\u865f", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9\u7b26\u865f", +"nordic mark sign": "\u5317\u6b50\u99ac\u514b\u7b26\u865f", +"manat sign": "\u4e9e\u585e\u62dc\u7136\u5e63\u7b26\u865f", +"ruble sign": "\u76e7\u5e03\u7b26\u865f", +"yen character": "\u65e5\u5713\u7b26\u865f", +"yuan character": "\u4eba\u6c11\u5e63\u7b26\u865f", +"yuan character, in hong kong and taiwan": "\u6e2f\u5143\u8207\u53f0\u5e63\u7b26\u865f", +"yen\/yuan character variant one": "\u65e5\u5713\/\u4eba\u6c11\u5e63\u7b26\u865f\u8b8a\u5316\u578b", +"Loading emoticons...": "\u8f09\u5165\u8868\u60c5\u7b26\u865f\u2026", +"Could not load emoticons": "\u7121\u6cd5\u8f09\u5165\u8868\u60c5\u7b26\u865f", +"People": "\u4eba", +"Animals and Nature": "\u52d5\u7269\u8207\u81ea\u7136", +"Food and Drink": "\u98f2\u98df", +"Activity": "\u6d3b\u52d5", +"Travel and Places": "\u65c5\u884c\u8207\u5730\u9ede", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u6a19", +"Characters": "\u5b57\u5143", +"Characters (no spaces)": "\u5b57\u5143\uff08\u7121\u7a7a\u683c\uff09", +"{0} characters": "{0}\u5b57\u5143", +"Error: Form submit field collision.": "\u932f\u8aa4\uff1a\u8868\u683c\u905e\u4ea4\u6b04\u4f4d\u885d\u7a81\u3002", +"Error: No form element found.": "\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u8868\u683c\u5143\u7d20\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u8272\u5f69\u6a23\u672c", +"Turquoise": "\u571f\u8033\u5176\u85cd", +"Green": "\u7da0\u8272", +"Blue": "\u85cd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6df1\u85cd\u8272", +"Dark Turquoise": "\u6df1\u571f\u8033\u5176\u85cd", +"Dark Green": "\u6df1\u7da0\u8272", +"Medium Blue": "\u4e2d\u85cd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u9ed1\u85cd\u8272", +"Yellow": "\u9ec3\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7d05\u8272", +"Light Gray": "\u6dfa\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6df1\u9ec3\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6697\u7d05\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Light Green": "\u6de1\u7da0\u8272", +"Light Yellow": "\u6dfa\u9ec3\u8272", +"Light Red": "\u6dfa\u7d05\u8272", +"Light Purple": "\u6dfa\u7d2b\u8272", +"Light Blue": "\u6dfa\u85cd\u8272", +"Dark Purple": "\u6df1\u7d2b\u8272", +"Dark Blue": "\u6df1\u85cd\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u8f49\u63db\u81ea\/\u81f3\u5168\u87a2\u5e55\u6a21\u5f0f", +"Open help dialog": "\u958b\u555f\u5354\u52a9\u5c0d\u8a71", +"history": "\u6b77\u53f2", +"styles": "\u6a23\u5f0f", +"formatting": "\u683c\u5f0f", +"alignment": "\u5c0d\u9f4a", +"indentation": "\u7e2e\u6392", +"permanent pen": "\u6c38\u4e45\u6027\u7b46", +"comments": "\u8a3b\u89e3", +"Format Painter": "\u8907\u88fd\u683c\u5f0f", +"Insert\/edit iframe": "\u63d2\u5165\/\u7de8\u8f2fiframe", +"Capitalization": "\u5927\u5beb", +"lowercase": "\u5c0f\u5beb", +"UPPERCASE": "\u5927\u5beb", +"Title Case": "\u5b57\u9996\u5927\u5beb", +"Permanent Pen Properties": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027", +"Permanent pen properties...": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027......", +"Font": "\u5b57\u578b", +"Size": "\u5b57\u5f62\u5927\u5c0f", +"More...": "\u66f4\u591a\u8cc7\u8a0a......", +"Spellcheck Language": "\u62fc\u5beb\u8a9e\u8a00", +"Select...": "\u9078\u64c7......", +"Preferences": "\u9996\u9078\u9805", +"Yes": "\u662f", +"No": "\u5426", +"Keyboard Navigation": "\u9375\u76e4\u5c0e\u822a", +"Version": "\u7248\u672c", +"Anchor": "\u52a0\u5165\u9328\u9ede", +"Special character": "\u7279\u6b8a\u5b57\u5143", +"Code sample": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b", +"Color": "\u984f\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027", +"Image": "\u5716\u7247", +"Insert link": "\u63d2\u5165\u9023\u7d50", +"Target": "\u958b\u555f\u65b9\u5f0f", +"Link": "\u9023\u7d50", +"Poster": "\u9810\u89bd\u5716\u7247", +"Media": "\u5a92\u9ad4", +"Print": "\u5217\u5370", +"Prev": "\u4e0a\u4e00\u500b", +"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3", +"Whole words": "\u6574\u500b\u55ae\u5b57", +"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5", +"Caption": "\u8868\u683c\u6a19\u984c", +"Insert template": "\u63d2\u5165\u6a23\u7248" +}); \ No newline at end of file diff --git a/guns-front-project/public/tinymce/skins/content/dark/content.css b/guns-front-project/public/tinymce/skins/content/dark/content.css new file mode 100644 index 00000000..bae7923f --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/dark/content.css @@ -0,0 +1,72 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + background-color: #2f3742; + color: #dfe0e4; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem; +} +a { + color: #4099ff; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #6d737b; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #8a8f97; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #6d737b; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #6d737b; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #6d737b; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #6d737b; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/guns-front-project/public/tinymce/skins/content/dark/content.min.css b/guns-front-project/public/tinymce/skins/content/dark/content.min.css new file mode 100644 index 00000000..07d40c26 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/dark/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem} diff --git a/guns-front-project/public/tinymce/skins/content/default/content.css b/guns-front-project/public/tinymce/skins/content/default/content.css new file mode 100644 index 00000000..dd6a5c1c --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/default/content.css @@ -0,0 +1,67 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #999; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #e8e8e8; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/guns-front-project/public/tinymce/skins/content/default/content.min.css b/guns-front-project/public/tinymce/skins/content/default/content.min.css new file mode 100644 index 00000000..29cd987e --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/default/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/guns-front-project/public/tinymce/skins/content/document/content.css b/guns-front-project/public/tinymce/skins/content/document/content.css new file mode 100644 index 00000000..75f637a1 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/document/content.css @@ -0,0 +1,72 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +@media screen { + html { + background: #f4f4f4; + min-height: 100%; + } +} +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} +@media screen { + body { + background-color: #fff; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + margin: 1rem auto 0; + max-width: 820px; + min-height: calc(100vh - 1rem); + padding: 4rem 6rem 6rem 6rem; + } +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure figcaption { + color: #999; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/guns-front-project/public/tinymce/skins/content/document/content.min.css b/guns-front-project/public/tinymce/skins/content/document/content.min.css new file mode 100644 index 00000000..a1feef4c --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/document/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/guns-front-project/public/tinymce/skins/content/writer/content.css b/guns-front-project/public/tinymce/skins/content/writer/content.css new file mode 100644 index 00000000..ceee3599 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/writer/content.css @@ -0,0 +1,68 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem auto; + max-width: 900px; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #999; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #e8e8e8; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/guns-front-project/public/tinymce/skins/content/writer/content.min.css b/guns-front-project/public/tinymce/skins/content/writer/content.min.css new file mode 100644 index 00000000..0d8f5d34 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/content/writer/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.css new file mode 100644 index 00000000..9c0e3a8f --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.css @@ -0,0 +1,714 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * Dracula Theme originally by Zeno Rocha [@zenorocha] + * https://draculatheme.com/ + * + * Ported for PrismJS by Albert Vallverdu [@byverdu] + */ +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #282a36; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #6272a4; +} +.token.punctuation { + color: #f8f8f2; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #ff79c6; +} +.token.boolean, +.token.number { + color: #bd93f9; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #50fa7b; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #f1fa8c; +} +.token.keyword { + color: #8be9fd; +} +.token.regex, +.token.important { + color: #ffb86c; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #4099ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #4099ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #4099ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #4099ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #4099ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #4099ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid transparent; + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: lighten; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #4099ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.css new file mode 100644 index 00000000..8e7521d9 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.min.css new file mode 100644 index 00000000..b4ab9a3a --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.min.css new file mode 100644 index 00000000..e27b8a02 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#50fa7b}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#f1fa8c}.token.keyword{color:#8be9fd}.token.important,.token.regex{color:#ffb86c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #4099ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #4099ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #4099ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #4099ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #4099ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#4099ff}.mce-content-body .mce-edit-focus{outline:3px solid #4099ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid transparent;bottom:-1px;content:'';left:-1px;mix-blend-mode:lighten;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#4099ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.css new file mode 100644 index 00000000..4bdb8bab --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css new file mode 100644 index 00000000..35f7dc08 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff b/guns-front-project/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff new file mode 100644 index 00000000..1e3be038 Binary files /dev/null and b/guns-front-project/public/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff differ diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.css new file mode 100644 index 00000000..d34b9c1a --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.css @@ -0,0 +1,3047 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox { + box-shadow: none; + box-sizing: content-box; + color: #2A3746; + cursor: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: normal; + -webkit-tap-highlight-color: transparent; + text-decoration: none; + text-shadow: none; + text-transform: none; + vertical-align: initial; + white-space: normal; +} +.tox *:not(svg):not(rect) { + box-sizing: inherit; + color: inherit; + cursor: inherit; + direction: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + line-height: inherit; + -webkit-tap-highlight-color: inherit; + text-align: inherit; + text-decoration: inherit; + text-shadow: inherit; + text-transform: inherit; + vertical-align: inherit; + white-space: inherit; +} +.tox *:not(svg):not(rect) { + /* stylelint-disable-line no-duplicate-selectors */ + background: transparent; + border: 0; + box-shadow: none; + float: none; + height: auto; + margin: 0; + max-width: none; + outline: 0; + padding: 0; + position: static; + width: auto; +} +.tox:not([dir=rtl]) { + direction: ltr; + text-align: left; +} +.tox[dir=rtl] { + direction: rtl; + text-align: right; +} +.tox-tinymce { + border: 1px solid #000000; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + overflow: hidden; + position: relative; + visibility: inherit !important; +} +.tox-tinymce-inline { + border: none; + box-shadow: none; +} +.tox-tinymce-inline .tox-editor-header { + background-color: transparent; + border: 1px solid #000000; + border-radius: 0; + box-shadow: none; +} +.tox-tinymce-aux { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + z-index: 1300; +} +.tox-tinymce *:focus, +.tox-tinymce-aux *:focus { + outline: none; +} +button::-moz-focus-inner { + border: 0; +} +.tox[dir=rtl] .tox-icon--flip svg { + transform: rotateY(180deg); +} +.tox .accessibility-issue__header { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description { + align-items: stretch; + border: 1px solid #000000; + border-radius: 3px; + display: flex; + justify-content: space-between; +} +.tox .accessibility-issue__description > div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #000000; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.5); + border-color: #207ab7; + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.5); + border-color: rgba(255, 165, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.5); + border-color: rgba(204, 0, 0, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.5); + border-color: rgba(120, 171, 70, 0.8); + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.8); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #3d546f; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #3d546f; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #3d546f; + background-image: none; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #34485f; + background-image: none; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #2b3b4e; + background-image: none; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #fff; +} +.tox .tox-button--naked[disabled] { + background-color: #3d546f; + border-color: #3d546f; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #34485f; + border-color: #34485f; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #2b3b4e; + border-color: #2b3b4e; + box-shadow: none; + color: #fff; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #fff; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(255, 255, 255, 0.2); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #1a1a1a; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #333333; + color: #fff; + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #fff; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #2b3b4e; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #4a5562; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #757d87; + color: #fff; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #4a5562; + color: #fff; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #fff; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #fff; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #2b3b4e; + border: 1px solid #1a1a1a; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #4a5562; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #2b3b4e; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #fff; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; +} +.tox .tox-comment__body { + color: #fff; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(255, 255, 255, 0.5); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #2b3b4e; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(43, 59, 78, 0), #2b3b4e); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #2b3b4e; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #fff; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #2b3b4e; + box-shadow: 0 0 8px 8px #2b3b4e; + color: #fff; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #2b3b4e; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-user__name { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #222f3e; +} +.tox .tox-dialog { + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(42, 55, 70, 0.15), 0 0 40px 1px rgba(42, 55, 70, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #2b3b4e; + border-bottom: none; + color: #fff; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #fff; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(255, 255, 255, 0.5); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #fff; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #fff; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #fff; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #2b3b4e; + border-top: 1px solid #000000; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #000000; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #000000; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(255, 255, 255, 0.5); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #000000; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(42, 55, 70, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(255, 255, 255, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #2b3b4e; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(255, 255, 255, 0.5); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #222f3e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #fff; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #fff; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #2b3b4e; + border-color: #000000; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #19232e; + color: rgba(255, 255, 255, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #2b3b4e; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #000000; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: #fff; + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #2b3b4e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(42, 55, 70, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #000000; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn--active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #fff; +} +.tox .tox-notification--success p { + color: #fff; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #fff; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #fff; +} +.tox .tox-notification--error p { + color: #fff; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #fff; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #fff; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #fff; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #fff; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #fff; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #fff; +} +.tox .tox-notification--info p { + color: #fff; +} +.tox .tox-notification--info a { + color: #fff; +} +.tox .tox-notification--info svg { + fill: #fff; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #fff; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar, +.tox .tox-pop--resizing .tox-toolbar__group { + flex-wrap: nowrap; +} +.tox .tox-pop--transition { + transition: 0.15s ease; + transition-property: left, right, top, bottom; +} +.tox .tox-pop--transition::before, +.tox .tox-pop--transition::after { + transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; +} +.tox .tox-pop__dialog { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + opacity: 1; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--inset::before, +.tox .tox-pop.tox-pop--inset::after { + opacity: 0; + transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #222f3e transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #000000 transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #222f3e transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #000000 transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #222f3e transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #000000 transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #222f3e; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #000000; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #222f3e; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #000000; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(255, 255, 255, 0.5); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #222f3e; + border-top: 1px solid #000000; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: #fff; + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: #fff; +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #4a5562; + border-radius: 1px; + box-shadow: 0 0 0 2px #4a5562; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(34, 47, 62, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #fff; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #4a5562; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #4a5562; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:hover svg { + fill: #fff; +} +.tox .tox-tbtn:active { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn:active svg { + fill: #fff; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #757d87; + border: 0; + box-shadow: none; + color: #fff; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #fff; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #fff; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #4a5562 inset; +} +.tox .tox-split-button:focus { + background: #4a5562; + box-shadow: none; + color: #fff; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(255, 255, 255, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #222f3e; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e; + background-color: #222f3e; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #000000; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #000000; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #222f3e; + border: 1px solid #000000; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #000000; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #000000; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #3d546f; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(42, 55, 70, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #3d546f; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #3d546f; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #3d546f; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #3d546f; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #000000; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #000000; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.min.css new file mode 100644 index 00000000..e71f6f01 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#2a3746;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #000;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #000;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#000;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.5);border-color:#207ab7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.5);border-color:rgba(255,165,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.5);border-color:rgba(204,0,0,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.8)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.5);border-color:rgba(120,171,70,.8);color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.8)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#fff}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:hover:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:active:not(:disabled){background-color:#2b3b4e;background-image:none;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#fff}.tox .tox-button--naked[disabled]{background-color:#3d546f;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:focus:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:active:not(:disabled){background-color:#2b3b4e;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#fff}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(255,255,255,.2)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(255,255,255,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#1a1a1a;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#333;color:#fff;cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#fff;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#2b3b4e;color:#fff}.tox .tox-collection--list .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#4a5562;color:#fff}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(255,255,255,.5);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#fff}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(255,255,255,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#2b3b4e;border:1px solid #1a1a1a;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #000}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #000}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#4a5562}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#2b3b4e;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#fff;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(255,255,255,.5);font-size:12px}.tox .tox-comment__body{color:#fff;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(255,255,255,.5);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#2b3b4e;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(43,59,78,0),#2b3b4e);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#2b3b4e;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#fff;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#2b3b4e;box-shadow:0 0 8px 8px #2b3b4e;color:#fff;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#2b3b4e;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(255,255,255,.5)}.tox .tox-user__name{color:rgba(255,255,255,.5);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(34,47,62,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#222f3e}.tox .tox-dialog{background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(42,55,70,.15),0 0 40px 1px rgba(42,55,70,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#2b3b4e;border-bottom:none;color:#fff;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#fff;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(255,255,255,.5);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#fff}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#fff;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#fff;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#2b3b4e;border-top:1px solid #000;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(34,47,62,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #000}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #000;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(255,255,255,.5);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #000}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(42,55,70,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #2b3b4e;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(255,255,255,.5);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#222f3e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#fff}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#2b3b4e;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #000}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#fff}.tox .tox-notification--success p{color:#fff}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#fff}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#fff}.tox .tox-notification--error p{color:#fff}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#fff}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#fff}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#fff}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#fff}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#fff}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#fff}.tox .tox-notification--info p{color:#fff}.tox .tox-notification--info a{color:#fff}.tox .tox-notification--info svg{fill:#fff}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#fff;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#222f3e transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#000 transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #222f3e transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #000 transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #222f3e transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #000 transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #222f3e;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #000;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#222f3e;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #000;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(255,255,255,.5);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#222f3e;border-top:1px solid #000;color:#fff;display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#fff;text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:#fff}.tox .tox-statusbar__resize-handle:focus svg{background-color:#4a5562;border-radius:1px;box-shadow:0 0 0 2px #4a5562}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(34,47,62,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#fff}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#4a5562;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:hover svg{fill:#fff}.tox .tox-tbtn:active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:active svg{fill:#fff}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#fff}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #4a5562 inset}.tox .tox-split-button:focus{background:#4a5562;box-shadow:none;color:#fff}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-toolbar-overlord{background-color:#222f3e}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #000;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #000}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #000}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #000}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#3d546f;border-radius:3px;box-shadow:0 2px 4px rgba(42,55,70,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #3d546f;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #3d546f;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #3d546f;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #3d546f;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #000;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #000;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.css new file mode 100644 index 00000000..875721a2 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css new file mode 100644 index 00000000..3a45cacf --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css new file mode 100644 index 00000000..d2adc4db --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css new file mode 100644 index 00000000..a0893b91 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.css new file mode 100644 index 00000000..2ac0ccaf --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.css @@ -0,0 +1,732 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.css new file mode 100644 index 00000000..8e7521d9 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.css @@ -0,0 +1,726 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment { + background-color: #fff0b7; +} +.tox-comments-visible .tox-comment--active { + background-color: #ffe168; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img::-moz-selection { + background: none; +} +.mce-content-body img::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.min.css new file mode 100644 index 00000000..b4ab9a3a --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.inline.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.min.css new file mode 100644 index 00000000..844858d0 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.css new file mode 100644 index 00000000..4bdb8bab --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.css @@ -0,0 +1,29 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection { + /* Note: this file is used inside the content, so isn't part of theming */ + background-color: green; + display: inline-block; + opacity: 0.5; + position: absolute; +} +body { + -webkit-text-size-adjust: none; +} +body img { + /* this is related to the content margin */ + max-width: 96vw; +} +body table img { + max-width: 95%; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.min.css new file mode 100644 index 00000000..35f7dc08 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/content.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff b/guns-front-project/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff new file mode 100644 index 00000000..1e3be038 Binary files /dev/null and b/guns-front-project/public/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff differ diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.css new file mode 100644 index 00000000..49a82faf --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.css @@ -0,0 +1,3047 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox { + box-shadow: none; + box-sizing: content-box; + color: #222f3e; + cursor: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: normal; + -webkit-tap-highlight-color: transparent; + text-decoration: none; + text-shadow: none; + text-transform: none; + vertical-align: initial; + white-space: normal; +} +.tox *:not(svg):not(rect) { + box-sizing: inherit; + color: inherit; + cursor: inherit; + direction: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + line-height: inherit; + -webkit-tap-highlight-color: inherit; + text-align: inherit; + text-decoration: inherit; + text-shadow: inherit; + text-transform: inherit; + vertical-align: inherit; + white-space: inherit; +} +.tox *:not(svg):not(rect) { + /* stylelint-disable-line no-duplicate-selectors */ + background: transparent; + border: 0; + box-shadow: none; + float: none; + height: auto; + margin: 0; + max-width: none; + outline: 0; + padding: 0; + position: static; + width: auto; +} +.tox:not([dir=rtl]) { + direction: ltr; + text-align: left; +} +.tox[dir=rtl] { + direction: rtl; + text-align: right; +} +.tox-tinymce { + border: 1px solid #cccccc; + border-radius: 0; + box-shadow: none; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + overflow: hidden; + position: relative; + visibility: inherit !important; +} +.tox-tinymce-inline { + border: none; + box-shadow: none; +} +.tox-tinymce-inline .tox-editor-header { + background-color: transparent; + border: 1px solid #cccccc; + border-radius: 0; + box-shadow: none; +} +.tox-tinymce-aux { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + z-index: 1300; +} +.tox-tinymce *:focus, +.tox-tinymce-aux *:focus { + outline: none; +} +button::-moz-focus-inner { + border: 0; +} +.tox[dir=rtl] .tox-icon--flip svg { + transform: rotateY(180deg); +} +.tox .accessibility-issue__header { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description { + align-items: stretch; + border: 1px solid #cccccc; + border-radius: 3px; + display: flex; + justify-content: space-between; +} +.tox .accessibility-issue__description > div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > *:last-child:not(:only-child) { + border-color: #cccccc; + border-style: solid; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(32, 122, 183, 0.1); + border-color: rgba(32, 122, 183, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description > *:last-child { + border-color: rgba(32, 122, 183, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon { + color: #207ab7; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.1); + border-color: rgba(255, 165, 0, 0.5); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description > *:last-child { + border-color: rgba(255, 165, 0, 0.5); +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon { + color: #cc8500; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.1); + border-color: rgba(204, 0, 0, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description > *:last-child { + border-color: rgba(204, 0, 0, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.1); + border-color: rgba(120, 171, 70, 0.4); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + border-color: rgba(120, 171, 70, 0.4); +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon { + color: #78AB46; +} +.tox .tox-dialog__body-content .accessibility-issue__header h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-left-width: 1px; + padding-left: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description > *:last-child { + border-right-width: 1px; + padding-right: 4px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #207ab7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #207ab7; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button[disabled] { + background-color: #207ab7; + background-image: none; + border-color: #207ab7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #1c6ca1; + background-image: none; + border-color: #1c6ca1; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #185d8c; + background-image: none; + border-color: #185d8c; + box-shadow: none; + color: #fff; +} +.tox .tox-button--secondary { + background-color: #f0f0f0; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #f0f0f0; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #f0f0f0; + background-image: none; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #d6d6d6; + background-image: none; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked[disabled] { + background-color: #f0f0f0; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: #e3e3e3; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: #d6d6d6; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #222f3e; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 3px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 3px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(34, 47, 62, 0.3); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #207ab7; +} +.tox .tox-checkbox--disabled { + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 3px; + box-shadow: inset 0 0 0 1px #207ab7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #cccccc; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #e6e6e6; + color: rgba(34, 47, 62, 0.7); + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + color: #222f3e; + cursor: pointer; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #fff; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #dee0e2; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #c8cbcf; + color: #222f3e; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #dee0e2; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #222f3e; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 34px; + margin: 2px 0 3px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + -ms-grid-row-align: center; + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + -ms-grid-row-align: center; + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 2px 0 3px 4px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px 0; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #dee0e2; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #fff; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #222f3e; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; +} +.tox .tox-comment__body { + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(34, 47, 62, 0.7); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #fff; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(255, 255, 255, 0), #fff); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #fff; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #222f3e; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #fff; + box-shadow: 0 0 8px 8px #fff; + color: #222f3e; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #fff; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-user__name { + color: rgba(34, 47, 62, 0.7); + font-size: 12px; + font-style: normal; + font-weight: bold; + text-transform: uppercase; +} +.tox:not([dir=rtl]) .tox-user__avatar svg { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #fff; +} +.tox .tox-dialog { + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #fff; + border-bottom: none; + color: #222f3e; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #222f3e; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + padding: 16px 16px; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + text-decoration: none; + white-space: nowrap; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(32, 122, 183, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #207ab7; + color: #207ab7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; + max-height: 650px; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #207ab7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #185d8c; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #222f3e; +} +.tox .tox-dialog__body-content ul { + display: block; + list-style-type: disc; + margin-bottom: 16px; + -webkit-margin-end: 0; + margin-inline-end: 0; + -webkit-margin-start: 0; + margin-inline-start: 0; + -webkit-padding-start: 2.5rem; + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #222f3e; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #222f3e; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #cccccc; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +.tox.tox-platform-ie { + /* IE11 CSS styles go here */ +} +.tox.tox-platform-ie .tox-dialog-wrap { + position: -ms-device-fixed; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width:767px) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #cccccc; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(34, 47, 62, 0.7); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-inline-edit-area { + border: 1px dotted #cccccc; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + z-index: 1; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + box-shadow: none; + transition: box-shadow 0.5s; +} +.tox.tox-tinymce--toolbar-bottom .tox-editor-header, +.tox.tox-tinymce-inline .tox-editor-header { + margin-bottom: -1px; +} +.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: transparent; + box-shadow: 0 4px 4px -3px rgba(0, 0, 0, 0.25); +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(34, 47, 62, 0.2); + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #207ab7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #fff; + border-radius: 3px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + -ms-flex-preferred-size: auto; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #207ab7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #222f3e; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #222f3e; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #cccccc; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 4.75px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #fff; + border-color: #207ab7; + box-shadow: none; + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-image-tools { + width: 100%; +} +.tox .tox-image-tools__toolbar { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-image-tools__image { + background-color: #666; + height: 380px; + overflow: auto; + position: relative; + width: 100%; +} +.tox .tox-image-tools__image, +.tox .tox-image-tools__image + .tox-image-tools__toolbar { + margin-top: 8px; +} +.tox .tox-image-tools__image-bg { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools__toolbar > .tox-spacer { + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-left: 32px; +} +.tox:not([dir=rtl]) .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-left: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider:not(:first-of-type) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-button + .tox-slider { + margin-right: 32px; +} +.tox[dir=rtl] .tox-image-tools__toolbar > .tox-slider + .tox-button { + margin-right: 32px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #cccccc; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px 0; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(32, 122, 183, 0.5); + border-color: rgba(32, 122, 183, 0.5); +} +.tox .tox-insert-table-picker__label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 4px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 4px; +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 4px 0 4px; +} +.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar { + border-top: 1px solid #cccccc; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn--active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: -ms-grid; + display: grid; + font-size: 14px; + font-weight: normal; + -ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #222f3e; +} +.tox .tox-notification--success p { + color: #222f3e; +} +.tox .tox-notification--success a { + color: #547831; +} +.tox .tox-notification--success svg { + fill: #222f3e; +} +.tox .tox-notification--error { + background-color: #f8dede; + border-color: #f2bfbf; + color: #222f3e; +} +.tox .tox-notification--error p { + color: #222f3e; +} +.tox .tox-notification--error a { + color: #c00; +} +.tox .tox-notification--error svg { + fill: #222f3e; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fffaea; + border-color: #ffe89d; + color: #222f3e; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #222f3e; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #222f3e; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #222f3e; +} +.tox .tox-notification--info { + background-color: #d9edf7; + border-color: #779ecb; + color: #222f3e; +} +.tox .tox-notification--info p { + color: #222f3e; +} +.tox .tox-notification--info a { + color: #222f3e; +} +.tox .tox-notification--info svg { + fill: #222f3e; +} +.tox .tox-notification__body { + -ms-grid-row-align: center; + align-self: center; + color: #222f3e; + font-size: 14px; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + -ms-grid-row-align: center; + align-self: center; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + -ms-grid-row-align: start; + align-self: start; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-align: end; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + -ms-grid-column-span: 3; + grid-column-end: 4; + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-align: center; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar, +.tox .tox-pop--resizing .tox-toolbar__group { + flex-wrap: nowrap; +} +.tox .tox-pop--transition { + transition: 0.15s ease; + transition-property: left, right, top, bottom; +} +.tox .tox-pop--transition::before, +.tox .tox-pop--transition::after { + transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; +} +.tox .tox-pop__dialog { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + opacity: 1; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--inset::before, +.tox .tox-pop.tox-pop--inset::after { + opacity: 0; + transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #fff transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #cccccc transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #fff transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #cccccc transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #fff transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #cccccc transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #fff; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #cccccc; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + -ms-flex-preferred-size: 0; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #fff; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #cccccc; + border-radius: 3px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #207ab7; + border: 2px solid #185d8c; + border-radius: 3px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(34, 47, 62, 0.7); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #fff; + border-top: 1px solid #cccccc; + color: rgba(34, 47, 62, 0.7); + display: flex; + flex: 0 0 auto; + font-size: 12px; + font-weight: normal; + height: 18px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: uppercase; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: rgba(34, 47, 62, 0.7); + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-left: 1ch; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #dee0e2; + border-radius: 1px; + box-shadow: 0 0 0 2px #dee0e2; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 1ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 34px; + justify-content: center; + margin: 2px 0 3px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #222f3e; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #dee0e2; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #dee0e2; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:hover svg { + fill: #222f3e; +} +.tox .tox-tbtn:active { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:active svg { + fill: #222f3e; +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #c8cbcf; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #222f3e; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 51px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 68px; + width: 68px; +} +.tox .tox-tbtn--return { + -ms-grid-row-align: stretch; + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tbtn--select { + margin: 2px 0 3px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 2px 0 3px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #dee0e2 inset; +} +.tox .tox-split-button:focus { + background: #dee0e2; + box-shadow: none; + color: #222f3e; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-toolbar-overlord { + background-color: #fff; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0; +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary { + border-top: 1px solid #cccccc; + margin-top: -1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child, +.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary { + border-top: 1px solid #cccccc; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #fff; + border: 1px solid #cccccc; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 4px 0 4px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #cccccc; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid #cccccc; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #222f3e; + border-radius: 3px; + box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #222f3e; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #222f3e; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #222f3e; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #222f3e; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-well { + border: 1px solid #cccccc; + border-radius: 3px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #cccccc; + border-radius: 3px; + display: flex; + flex: 1; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; + -ms-flex-preferred-size: auto; +} +.tox .tox-image-tools-edit-panel { + height: 60px; +} +.tox .tox-image-tools__sidebar { + height: 60px; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.min.css new file mode 100644 index 00000000..f570b8e4 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.css new file mode 100644 index 00000000..875721a2 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.css @@ -0,0 +1,673 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/* RESET all the things! */ +.tinymce-mobile-outer-container { + all: initial; + display: block; +} +.tinymce-mobile-outer-container * { + border: 0; + box-sizing: initial; + cursor: inherit; + float: none; + line-height: 1; + margin: 0; + outline: 0; + padding: 0; + -webkit-tap-highlight-color: transparent; + /* TBIO-3691, stop the gray flicker on touch. */ + text-shadow: none; + white-space: nowrap; +} +.tinymce-mobile-icon-arrow-back::before { + content: "\e5cd"; +} +.tinymce-mobile-icon-image::before { + content: "\e412"; +} +.tinymce-mobile-icon-cancel-circle::before { + content: "\e5c9"; +} +.tinymce-mobile-icon-full-dot::before { + content: "\e061"; +} +.tinymce-mobile-icon-align-center::before { + content: "\e234"; +} +.tinymce-mobile-icon-align-left::before { + content: "\e236"; +} +.tinymce-mobile-icon-align-right::before { + content: "\e237"; +} +.tinymce-mobile-icon-bold::before { + content: "\e238"; +} +.tinymce-mobile-icon-italic::before { + content: "\e23f"; +} +.tinymce-mobile-icon-unordered-list::before { + content: "\e241"; +} +.tinymce-mobile-icon-ordered-list::before { + content: "\e242"; +} +.tinymce-mobile-icon-font-size::before { + content: "\e245"; +} +.tinymce-mobile-icon-underline::before { + content: "\e249"; +} +.tinymce-mobile-icon-link::before { + content: "\e157"; +} +.tinymce-mobile-icon-unlink::before { + content: "\eca2"; +} +.tinymce-mobile-icon-color::before { + content: "\e891"; +} +.tinymce-mobile-icon-previous::before { + content: "\e314"; +} +.tinymce-mobile-icon-next::before { + content: "\e315"; +} +.tinymce-mobile-icon-large-font::before, +.tinymce-mobile-icon-style-formats::before { + content: "\e264"; +} +.tinymce-mobile-icon-undo::before { + content: "\e166"; +} +.tinymce-mobile-icon-redo::before { + content: "\e15a"; +} +.tinymce-mobile-icon-removeformat::before { + content: "\e239"; +} +.tinymce-mobile-icon-small-font::before { + content: "\e906"; +} +.tinymce-mobile-icon-readonly-back::before, +.tinymce-mobile-format-matches::after { + content: "\e5ca"; +} +.tinymce-mobile-icon-small-heading::before { + content: "small"; +} +.tinymce-mobile-icon-large-heading::before { + content: "large"; +} +.tinymce-mobile-icon-small-heading::before, +.tinymce-mobile-icon-large-heading::before { + font-family: sans-serif; + font-size: 80%; +} +.tinymce-mobile-mask-edit-icon::before { + content: "\e254"; +} +.tinymce-mobile-icon-back::before { + content: "\e5c4"; +} +.tinymce-mobile-icon-heading::before { + /* TODO: Translate */ + content: "Headings"; + font-family: sans-serif; + font-size: 80%; + font-weight: bold; +} +.tinymce-mobile-icon-h1::before { + content: "H1"; + font-weight: bold; +} +.tinymce-mobile-icon-h2::before { + content: "H2"; + font-weight: bold; +} +.tinymce-mobile-icon-h3::before { + content: "H3"; + font-weight: bold; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask { + align-items: center; + display: flex; + justify-content: center; + background: rgba(51, 51, 51, 0.5); + height: 100%; + position: absolute; + top: 0; + width: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container { + align-items: center; + border-radius: 50%; + display: flex; + flex-direction: column; + font-family: sans-serif; + font-size: 1em; + justify-content: space-between; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + align-items: center; + display: flex; + justify-content: center; + flex-direction: column; + font-size: 1em; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon { + align-items: center; + display: flex; + justify-content: center; + border-radius: 50%; + height: 2.1em; + width: 2.1em; + background-color: white; + color: #207ab7; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before { + content: "\e900"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon { + z-index: 2; +} +.tinymce-mobile-android-container.tinymce-mobile-android-maximized { + background: #ffffff; + border: none; + bottom: 0; + display: flex; + flex-direction: column; + left: 0; + position: fixed; + right: 0; + top: 0; +} +.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) { + position: relative; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket { + display: flex; + flex-grow: 1; +} +.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe { + display: flex !important; + flex-grow: 1; + height: auto !important; +} +.tinymce-mobile-android-scroll-reload { + overflow: hidden; +} +:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar { + margin-top: 23px; +} +.tinymce-mobile-toolstrip { + background: #fff; + display: flex; + flex: 0 0 auto; + z-index: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar { + align-items: center; + background-color: #fff; + border-bottom: 1px solid #cccccc; + display: flex; + flex: 1; + height: 2.5em; + width: 100%; + /* Make it no larger than the toolstrip, so that it needs to scroll */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex-shrink: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container { + background: #f44336; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group { + flex-grow: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button { + align-items: center; + display: flex; + height: 80%; + margin-left: 2px; + margin-right: 2px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected { + background: #c8cbcf; + color: #cccccc; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type { + background: #207ab7; + color: #eceff1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar { + /* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group { + align-items: center; + display: flex; + height: 100%; + flex: 1; + padding-bottom: 0.4em; + padding-top: 0.4em; + /* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */ + /* For widgets like the colour picker, use the whole height */ +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog { + display: flex; + min-height: 1.5em; + overflow: hidden; + padding-left: 0; + padding-right: 0; + position: relative; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain { + display: flex; + height: 100%; + transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen { + display: flex; + flex: 0 0 auto; + justify-content: space-between; + width: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input { + font-family: Sans-serif; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container { + display: flex; + flex-grow: 1; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x { + -ms-grid-row-align: center; + align-self: center; + background: inherit; + border: none; + border-radius: 50%; + color: #888; + font-size: 0.6em; + font-weight: bold; + height: 100%; + padding-right: 2px; + position: absolute; + right: 0; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x { + display: none; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before { + align-items: center; + display: flex; + font-weight: bold; + height: 100%; + padding-left: 0.5em; + padding-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before { + visibility: hidden; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item { + color: #cccccc; + font-size: 10px; + line-height: 10px; + margin: 0 2px; + padding-top: 3px; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active { + color: #c8cbcf; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before { + margin-left: 0.5em; + margin-right: 0.9em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before { + margin-left: 0.9em; + margin-right: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider { + display: flex; + flex: 1; + margin-left: 0; + margin-right: 0; + padding: 0.28em 0; + position: relative; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line { + background: #cccccc; + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container { + padding-left: 2em; + padding-right: 2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container { + align-items: center; + display: flex; + flex-grow: 1; + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient { + background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%); + display: flex; + flex: 1; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black { + /* Not part of theming */ + background: black; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white { + /* Not part of theming */ + background: white; + height: 0.2em; + margin-bottom: 0.3em; + margin-top: 0.3em; + width: 1.2em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb { + /* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave + * out these values, then it shows the thumb at the top of the spectrum. This is probably because it is + * absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without + * this approach. + */ + align-items: center; + background-clip: padding-box; + background-color: #455a64; + border: 0.5em solid rgba(136, 136, 136, 0); + border-radius: 3em; + bottom: 0; + color: #fff; + display: flex; + height: 0.5em; + justify-content: center; + left: -10px; + margin: auto; + position: absolute; + top: 0; + transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1); + width: 0.5em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active { + border: 0.5em solid rgba(136, 136, 136, 0.39); +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper, +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div { + align-items: center; + display: flex; + height: 100%; + flex: 1; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper { + flex-direction: column; + justify-content: center; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item { + align-items: center; + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) { + height: 100%; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container { + display: flex; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input { + background: #ffffff; + border: none; + border-radius: 0; + color: #455a64; + flex-grow: 1; + font-size: 0.85em; + padding-bottom: 0.1em; + padding-left: 5px; + padding-top: 0.1em; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder { + /* WebKit, Blink, Edge */ + color: #888; +} +/* dropup */ +.tinymce-mobile-dropup { + background: white; + display: flex; + overflow: hidden; + width: 100%; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking { + transition: height 0.3s ease-out; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-growing { + transition: height 0.3s ease-in; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-closed { + flex-grow: 0; +} +.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) { + flex-grow: 1; +} +/* TODO min-height for device size and orientation */ +.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; +} +@media only screen and (orientation: landscape) { + .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 200px; + } +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) { + min-height: 150px; + } +} +/* styles menu */ +.tinymce-mobile-styles-menu { + font-family: sans-serif; + outline: 4px solid black; + overflow: hidden; + position: relative; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"] { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + width: 100%; +} +.tinymce-mobile-styles-menu [role="menu"].transitioning { + transition: transform 0.5s ease-in-out; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item { + border-bottom: 1px solid #ddd; + color: #455a64; + cursor: pointer; + display: flex; + padding: 1em 1em; + position: relative; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before { + color: #455a64; + content: "\e314"; + font-family: 'tinymce-mobile', sans-serif; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after { + color: #455a64; + content: "\e315"; + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after { + font-family: 'tinymce-mobile', sans-serif; + padding-left: 1em; + padding-right: 1em; + position: absolute; + right: 0; +} +.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator, +.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser { + align-items: center; + background: #fff; + border-top: #455a64; + color: #455a64; + display: flex; + min-height: 2.5em; + padding-left: 1em; + padding-right: 1em; +} +.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="before"] { + transform: translate(-100%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="current"] { + transform: translate(0%); +} +.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state], +.tinymce-mobile-styles-menu [data-transitioning-state="after"] { + transform: translate(100%); +} +@font-face { + font-family: 'tinymce-mobile'; + font-style: normal; + font-weight: normal; + src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff'); +} +@media (min-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 25px; + } +} +@media (max-device-width: 700px) { + .tinymce-mobile-outer-container, + .tinymce-mobile-outer-container input { + font-size: 18px; + } +} +.tinymce-mobile-icon { + font-family: 'tinymce-mobile', sans-serif; +} +.mixin-flex-and-centre { + align-items: center; + display: flex; + justify-content: center; +} +.mixin-flex-bar { + align-items: center; + display: flex; + height: 100%; +} +.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe { + background-color: #fff; + width: 100%; +} +.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + /* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */ + background-color: #207ab7; + border-radius: 50%; + bottom: 1em; + color: white; + font-size: 1em; + height: 2.1em; + position: fixed; + right: 2em; + width: 2.1em; + align-items: center; + display: flex; + justify-content: center; +} +@media only screen and (min-device-width:700px) { + .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + font-size: 1.2em; + } +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket { + height: 300px; + overflow: hidden; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe { + height: 100%; +} +.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip { + display: none; +} +/* + Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets + increased and the whole body becomes scrollable. It's important! + */ +input[type="file"]::-webkit-file-upload-button { + display: none; +} +@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) { + .tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon { + bottom: 50%; + } +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.min.css new file mode 100644 index 00000000..3a45cacf --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.mobile.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.css new file mode 100644 index 00000000..d2adc4db --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.css @@ -0,0 +1,37 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + -ms-scroll-chaining: none; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} diff --git a/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css b/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css new file mode 100644 index 00000000..a0893b91 --- /dev/null +++ b/guns-front-project/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css @@ -0,0 +1,7 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201} diff --git a/guns-front-project/src/App.vue b/guns-front-project/src/App.vue new file mode 100644 index 00000000..d25b56d3 --- /dev/null +++ b/guns-front-project/src/App.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/guns-front-project/src/api/CommonApi.js b/guns-front-project/src/api/CommonApi.js new file mode 100644 index 00000000..08f9f87f --- /dev/null +++ b/guns-front-project/src/api/CommonApi.js @@ -0,0 +1,16 @@ +import Request from '@/utils/request/request-util'; + +/** + * 公共api + * + */ +export class CommonApi { + /** + * 获取DevOps系统编码 + * @param {*} params + * @returns + */ + static getSystemCode(params) { + return Request.get('/devops/getSystemCode', params); + } +} diff --git a/guns-front-project/src/api/CommonHrApi.js b/guns-front-project/src/api/CommonHrApi.js new file mode 100644 index 00000000..8ae1dbfc --- /dev/null +++ b/guns-front-project/src/api/CommonHrApi.js @@ -0,0 +1,46 @@ +import Request from '@/utils/request/request-util'; + +export class CommonHrApi { + /** + * 批量获取组织机构信息 + * + * @author fengshuonan + * @date 2022/5/8 20:36 + * orgIdList 组织id列表 + */ + static getOrgListName(params) { + return Request.post('/common/org/getOrgListName', params); + } + + /** + * 批量获取用户信息 + * + * @author fengshuonan + * @date 2022/5/8 20:36 + * userIdList 用户id列表 + */ + static getUserListName(params) { + return Request.post('/common/sysUser/batchGetName', params); + } + + /** + * 批量获取职务信息 + * + * @author fengshuonan + * @date 2022/5/8 20:36 + * positionIdList 职务id列表 + */ + static getPositionListName(params) { + return Request.post('/common/position/batchGetName', params); + } + + /** + * 业务排序获取 + * + * @author fengshuonan + * @date 2022/5/8 20:36 + */ + static getBusinessMaxSort(code) { + return Request.getAndLoadData('/common/getBusinessMaxSort', { code: code }); + } +} diff --git a/guns-front-project/src/assets/avatar.png b/guns-front-project/src/assets/avatar.png new file mode 100644 index 00000000..c56269c2 Binary files /dev/null and b/guns-front-project/src/assets/avatar.png differ diff --git a/guns-front-project/src/assets/bg-login.png b/guns-front-project/src/assets/bg-login.png new file mode 100644 index 00000000..787837a2 Binary files /dev/null and b/guns-front-project/src/assets/bg-login.png differ diff --git a/guns-front-project/src/assets/card-background/1.png b/guns-front-project/src/assets/card-background/1.png new file mode 100644 index 00000000..004c3127 Binary files /dev/null and b/guns-front-project/src/assets/card-background/1.png differ diff --git a/guns-front-project/src/assets/card-background/2.png b/guns-front-project/src/assets/card-background/2.png new file mode 100644 index 00000000..0a1fb495 Binary files /dev/null and b/guns-front-project/src/assets/card-background/2.png differ diff --git a/guns-front-project/src/assets/card-background/3.png b/guns-front-project/src/assets/card-background/3.png new file mode 100644 index 00000000..3181a486 Binary files /dev/null and b/guns-front-project/src/assets/card-background/3.png differ diff --git a/guns-front-project/src/assets/gitee.png b/guns-front-project/src/assets/gitee.png new file mode 100644 index 00000000..b17c15f8 Binary files /dev/null and b/guns-front-project/src/assets/gitee.png differ diff --git a/guns-front-project/src/assets/iconfont/iconfont.css b/guns-front-project/src/assets/iconfont/iconfont.css new file mode 100644 index 00000000..39153fef --- /dev/null +++ b/guns-front-project/src/assets/iconfont/iconfont.css @@ -0,0 +1,699 @@ +@font-face { + font-family: "iconfont"; /* Project id 4453133 */ + src: url('iconfont.woff2?t=1710569016438') format('woff2'), + url('iconfont.woff?t=1710569016438') format('woff'), + url('iconfont.ttf?t=1710569016438') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-menu-anquancaozuo-p:before { + content: "\e748"; +} + +.icon-menu-richangyunwei-p:before { + content: "\e749"; +} + +.icon-menu-linshimiyao-p:before { + content: "\e74a"; +} + +.icon-menu-shenjirizhi-p:before { + content: "\e74b"; +} + +.icon-menu-anquancaozuo:before { + content: "\e74c"; +} + +.icon-menu-richangyunwei:before { + content: "\e74d"; +} + +.icon-menu-linshimiyao:before { + content: "\e74e"; +} + +.icon-menu-shenjirizhi:before { + content: "\e74f"; +} + +.icon-menu-quanxian-p:before { + content: "\e701"; +} + +.icon-menu-quanxian:before { + content: "\e6ce"; +} + +.icon-menu-liuchengquanxian-p:before { + content: "\e6cf"; +} + +.icon-menu-shujubiao-p:before { + content: "\e6d3"; +} + +.icon-menu-biaodan-p:before { + content: "\e6d4"; +} + +.icon-menu-duoshujuyuan:before { + content: "\e6d5"; +} + +.icon-menu-jiankongguanli-p:before { + content: "\e6d8"; +} + +.icon-menu-rizhichakan-p:before { + content: "\e6d6"; +} + +.icon-menu-yewuliebiao-p:before { + content: "\e6f2"; +} + +.icon-menu-anquancelue-p:before { + content: "\e6f3"; +} + +.icon-menu-zhutipeizhi-p:before { + content: "\e6f4"; +} + +.icon-menu-wenjianguanli-p:before { + content: "\e6f5"; +} + +.icon-menu-dingshirenwu-p:before { + content: "\e6f6"; +} + +.icon-menu-zaixianyonghu-p:before { + content: "\e6f7"; +} + +.icon-menu-xitongpeizhi-p:before { + content: "\e6fb"; +} + +.icon-menu-ziyuan-p:before { + content: "\e6fe"; +} + +.icon-menu-yingyong-p:before { + content: "\e6fc"; +} + +.icon-menu-shouquan-p:before { + content: "\e747"; +} + +.icon-menu-zhiwei-p:before { + content: "\e745"; +} + +.icon-menu-zhiwei:before { + content: "\e746"; +} + +.icon-menu-jigou-p:before { + content: "\e744"; +} + +.icon-menu-wodexiaoxi-p:before { + content: "\eb89"; +} + +.icon-menu-liuchengrenwu-p:before { + content: "\e743"; +} + +.icon-menu-xiangmu-p:before { + content: "\e741"; +} + +.icon-menu-peizhi-p:before { + content: "\e714"; +} + +.icon-menu-jiekoushouquan:before { + content: "\e742"; +} + +.icon-menu-jiekoushouquan-p:before { + content: "\eb88"; +} + +.icon-menu-jiekou-p:before { + content: "\e73f"; +} + +.icon-menu-jiekou:before { + content: "\e740"; +} + +.icon-menu-yingyongjieru-p:before { + content: "\e73c"; +} + +.icon-menu-yingyongjieru:before { + content: "\e73b"; +} + +.icon-menu-zuhushenhe:before { + content: "\e739"; +} + +.icon-menu-zuhushenhe-p:before { + content: "\e73a"; +} + +.icon-menu-zuhuguanli-p:before { + content: "\e71f"; +} + +.icon-menu-zuhuguanli:before { + content: "\e72b"; +} + +.icon-menu-gongnengbao:before { + content: "\e733"; +} + +.icon-menu-gongnengbao-p:before { + content: "\e734"; +} + +.icon-menu-apirenzheng-p:before { + content: "\e735"; +} + +.icon-menu-apirenzheng:before { + content: "\e736"; +} + +.icon-menu-waibuyingyong-p:before { + content: "\e737"; +} + +.icon-menu-waibuyingyong:before { + content: "\e738"; +} + +.icon-menu-baobiaoguanli-p:before { + content: "\e73e"; +} + +.icon-menu-baobiaoguanli:before { + content: "\e73d"; +} + +.icon-menu-liuchengliebiao:before { + content: "\e72d"; +} + +.icon-menu-liuchengliebiao-p:before { + content: "\e72c"; +} + +.icon-menu-faqiliucheng-p:before { + content: "\e732"; +} + +.icon-menu-faqiliucheng:before { + content: "\e72a"; +} + +.icon-menu-moxingliebiao-p:before { + content: "\e721"; +} + +.icon-menu-moxingliebiao:before { + content: "\e720"; +} + +.icon-menu-flow-design:before { + content: "\e729"; +} + +.icon-menu-flow-design-p:before { + content: "\e728"; +} + +.icon-menu-yewuguanlian-p:before { + content: "\e731"; +} + +.icon-menu-yewuguanlian:before { + content: "\e730"; +} + +.icon-menu-liuchengquanxian:before { + content: "\e72e"; +} + +.icon-menu-yewuliebiao:before { + content: "\e71a"; +} + +.icon-menu-shujubiao:before { + content: "\e726"; +} + +.icon-menu-biaodan:before { + content: "\e725"; +} + +.icon-menu-shitu-p:before { + content: "\e723"; +} + +.icon-menu-shitu:before { + content: "\e722"; +} + +.icon-menu-xitongpeizhi:before { + content: "\e709"; +} + +.icon-menu-zidian-p:before { + content: "\e70c"; +} + +.icon-menu-zidian:before { + content: "\e70b"; +} + +.icon-menu-zaixianyonghu:before { + content: "\e712"; +} + +.icon-menu-dingshirenwu:before { + content: "\e710"; +} + +.icon-menu-wenjianguanli:before { + content: "\e70e"; +} + +.icon-menu-duoshujuyuan-p:before { + content: "\e713"; +} + +.icon-menu-rizhichakan:before { + content: "\e717"; +} + +.icon-menu-jiankongguanli:before { + content: "\e715"; +} + +.icon-menu-zhutipeizhi:before { + content: "\e71e"; +} + +.icon-menu-anquancelue:before { + content: "\e71d"; +} + +.icon-menu-yingyong:before { + content: "\e6fd"; +} + +.icon-menu-juese-p:before { + content: "\e703"; +} + +.icon-menu-juese:before { + content: "\e704"; +} + +.icon-menu-caidan:before { + content: "\e705"; +} + +.icon-menu-caidan-p:before { + content: "\e702"; +} + +.icon-menu-ziyuan:before { + content: "\e708"; +} + +.icon-menu-renyuan-p:before { + content: "\e6fa"; +} + +.icon-menu-renyuan:before { + content: "\e6f9"; +} + +.icon-menu-jigou:before { + content: "\e6f8"; +} + +.icon-menu-shouquan:before { + content: "\e6ff"; +} + +.icon-tree-gongsi:before { + content: "\e6f0"; +} + +.icon-tree-dept:before { + content: "\e6ef"; +} + +.icon-tree-table:before { + content: "\e6ee"; +} + +.icon-tree-chengyuan:before { + content: "\e6ed"; +} + +.icon-tree-wenjianjia:before { + content: "\e6ec"; +} + +.icon-tab-yewujuese:before { + content: "\e6e8"; +} + +.icon-tab-xitongjuese:before { + content: "\e6e6"; +} + +.icon-tab-gongsijuese:before { + content: "\e6dc"; +} + +.icon-opt-export-user:before { + content: "\e6e3"; +} + +.icon-opt-import-user:before { + content: "\e6e2"; +} + +.icon-tab-jichuxinxi:before { + content: "\e6e9"; +} + +.icon-tab-jiaosexinxi:before { + content: "\e6e5"; +} + +.icon-tab-yonghuzhengshu:before { + content: "\e6e1"; +} + +.icon-tab-zuzhijigou:before { + content: "\e6dd"; +} + +.icon-opt-tuihui:before { + content: "\e6eb"; +} + +.icon-nav-zhuye:before { + content: "\e6e4"; +} + +.icon-opt-yidu:before { + content: "\e6df"; +} + +.icon-opt-yulan:before { + content: "\e668"; +} + +.icon-menu-type-single-page:before { + content: "\e615"; +} + +.icon-menu-type-backend:before { + content: "\eb87"; +} + +.icon-menu-type-inner-link:before { + content: "\e8ae"; +} + +.icon-menu-type-waibulianjie:before { + content: "\e85f"; +} + +.icon-opt-zidingyilie:before { + content: "\e66b"; +} + +.icon-opt-search:before { + content: "\e65c"; +} + +.icon-opt-qiehuan:before { + content: "\e661"; +} + +.icon-opt-tianjia:before { + content: "\e66f"; +} + +.icon-opt-daoru:before { + content: "\e68c"; +} + +.icon-opt-daochu:before { + content: "\e689"; +} + +.icon-opt-shuaxin:before { + content: "\e685"; +} + +.icon-opt-fangda:before { + content: "\e6ba"; +} + +.icon-opt-suoxiao:before { + content: "\e6b9"; +} + +.icon-opt-jiaqian:before { + content: "\e6ab"; +} + +.icon-opt-tongyi:before { + content: "\e6a9"; +} + +.icon-opt-chehui:before { + content: "\e6a8"; +} + +.icon-opt-jujue:before { + content: "\e6a5"; +} + +.icon-opt-zhuanjiao:before { + content: "\e6a4"; +} + +.icon-xiala-xiugaitouxiang:before { + content: "\e68f"; +} + +.icon-xiala-xiugaimima:before { + content: "\e67d"; +} + +.icon-xiala-gerenxinxi:before { + content: "\e684"; +} + +.icon-xiala-tuichudenglu:before { + content: "\e6b8"; +} + +.icon-opt-fabu:before { + content: "\e691"; +} + +.icon-opt-shezhi:before { + content: "\e658"; +} + +.icon-opt-xiangqing:before { + content: "\e683"; +} + +.icon-opt-shangchuandaoshujuku:before { + content: "\e679"; +} + +.icon-opt-shangchuan:before { + content: "\e688"; +} + +.icon-opt-xiazai:before { + content: "\e687"; +} + +.icon-opt-tixiaxian:before { + content: "\e67f"; +} + +.icon-opt-shenpirenshezhi:before { + content: "\e675"; +} + +.icon-opt-liuchengqianyi:before { + content: "\e67a"; +} + +.icon-opt-liuchengsheji:before { + content: "\e6b7"; +} + +.icon-opt-bianji:before { + content: "\e662"; +} + +.icon-opt-shoucang:before { + content: "\e669"; +} + +.icon-opt-yishoucang:before { + content: "\e667"; +} + +.icon-opt-shanchu:before { + content: "\e66a"; +} + +.icon-opt-fenpeijuese:before { + content: "\e674"; +} + +.icon-opt-chongzhimima:before { + content: "\e67c"; +} + +.icon-opt-fuzhi:before { + content: "\e699"; +} + +.icon-nav-gongsi:before { + content: "\e65b"; +} + +.icon-nav-yingyong:before { + content: "\e656"; +} + +.icon-nav-tongzhi:before { + content: "\e655"; +} + +.icon-nav-duoyuyan:before { + content: "\e65e"; +} + +.icon-nav-gengduopeizhi:before { + content: "\e66c"; +} + +.icon-faqiliucheng:before { + content: "\e6a1"; +} + +.icon-daibanrenwu:before { + content: "\e6a0"; +} + +.icon-yibanshixiang:before { + content: "\e69d"; +} + +.icon-yiyueshixiang:before { + content: "\e69c"; +} + +.icon-daiyuerenwu:before { + content: "\e69b"; +} + +.icon-wodecaogao:before { + content: "\e6c5"; +} + +.icon-wofaqide:before { + content: "\e6cb"; +} + +.icon-quanbuxiangmu:before { + content: "\e69e"; +} + +.icon-woshoucangde:before { + content: "\e69f"; +} + +.icon-menu-yingyongguanli:before { + content: "\e68e"; +} + +.icon-menu-yingyongguanli-p:before { + content: "\e68d"; +} + +.icon-menu-liuchengsheji:before { + content: "\e6ae"; +} + +.icon-menu-liuchengsheji-p:before { + content: "\e6af"; +} + +.icon-menu-xiangmu:before { + content: "\e6b5"; +} + +.icon-menu-liuchengrenwu:before { + content: "\e6d0"; +} + +.icon-menu-zuzhijiagou:before { + content: "\e698"; +} + +.icon-menu-wodexiaoxi:before { + content: "\e6b2"; +} + +.icon-menu-peizhi:before { + content: "\e6b4"; +} + +.icon-menu-quanxiankongzhi-p:before { + content: "\e6d2"; +} + +.icon-menu-quanxiankongzhi:before { + content: "\e6d1"; +} + +.icon-menu-zuzhijiagou-p:before { + content: "\e6cc"; +} + diff --git a/guns-front-project/src/assets/iconfont/iconfont.js b/guns-front-project/src/assets/iconfont/iconfont.js new file mode 100644 index 00000000..f306b082 --- /dev/null +++ b/guns-front-project/src/assets/iconfont/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_4453133='',function(h){var a=(a=document.getElementsByTagName("script"))[a.length-1],l=a.getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var c,i,z,m,v,o=function(a,l){l.parentNode.insertBefore(a,l)};if(l&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}c=function(){var a,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_4453133,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?o(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),c()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(z=c,m=h.document,v=!1,p(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,t())})}function t(){v||(v=!0,z())}function p(){try{m.documentElement.doScroll("left")}catch(a){return void setTimeout(p,50)}t()}}(window); \ No newline at end of file diff --git a/guns-front-project/src/assets/iconfont/iconfont.json b/guns-front-project/src/assets/iconfont/iconfont.json new file mode 100644 index 00000000..dd9b3c3e --- /dev/null +++ b/guns-front-project/src/assets/iconfont/iconfont.json @@ -0,0 +1,1206 @@ +{ + "id": "4453133", + "name": "产品UI-菜单+基础", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "39574651", + "name": "菜单-安全操作", + "font_class": "menu-anquancaozuo-p", + "unicode": "e748", + "unicode_decimal": 59208 + }, + { + "icon_id": "39574652", + "name": "菜单-日常运维", + "font_class": "menu-richangyunwei-p", + "unicode": "e749", + "unicode_decimal": 59209 + }, + { + "icon_id": "39574653", + "name": "菜单-临时秘钥", + "font_class": "menu-linshimiyao-p", + "unicode": "e74a", + "unicode_decimal": 59210 + }, + { + "icon_id": "39574654", + "name": "菜单-审计日志", + "font_class": "menu-shenjirizhi-p", + "unicode": "e74b", + "unicode_decimal": 59211 + }, + { + "icon_id": "39574655", + "name": "菜单-安全操作", + "font_class": "menu-anquancaozuo", + "unicode": "e74c", + "unicode_decimal": 59212 + }, + { + "icon_id": "39574656", + "name": "菜单-日常运维", + "font_class": "menu-richangyunwei", + "unicode": "e74d", + "unicode_decimal": 59213 + }, + { + "icon_id": "39574657", + "name": "菜单-临时秘钥", + "font_class": "menu-linshimiyao", + "unicode": "e74e", + "unicode_decimal": 59214 + }, + { + "icon_id": "39574658", + "name": "菜单-审计日志", + "font_class": "menu-shenjirizhi", + "unicode": "e74f", + "unicode_decimal": 59215 + }, + { + "icon_id": "39523255", + "name": "菜单-权限", + "font_class": "menu-quanxian-p", + "unicode": "e701", + "unicode_decimal": 59137 + }, + { + "icon_id": "39533678", + "name": "菜单-权限", + "font_class": "menu-quanxian", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "39533890", + "name": "菜单-流程权限", + "font_class": "menu-liuchengquanxian-p", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "39534087", + "name": "菜单-数据表", + "font_class": "menu-shujubiao-p", + "unicode": "e6d3", + "unicode_decimal": 59091 + }, + { + "icon_id": "39534533", + "name": "菜单-表单", + "font_class": "menu-biaodan-p", + "unicode": "e6d4", + "unicode_decimal": 59092 + }, + { + "icon_id": "39535136", + "name": "菜单-多数据源", + "font_class": "menu-duoshujuyuan", + "unicode": "e6d5", + "unicode_decimal": 59093 + }, + { + "icon_id": "39535314", + "name": "菜单-监控管理", + "font_class": "menu-jiankongguanli-p", + "unicode": "e6d8", + "unicode_decimal": 59096 + }, + { + "icon_id": "39535342", + "name": "菜单-日志查看", + "font_class": "menu-rizhichakan-p", + "unicode": "e6d6", + "unicode_decimal": 59094 + }, + { + "icon_id": "39536046", + "name": "菜单-业务列表", + "font_class": "menu-yewuliebiao-p", + "unicode": "e6f2", + "unicode_decimal": 59122 + }, + { + "icon_id": "39537406", + "name": "菜单-安全策略", + "font_class": "menu-anquancelue-p", + "unicode": "e6f3", + "unicode_decimal": 59123 + }, + { + "icon_id": "39537557", + "name": "菜单-主题配置", + "font_class": "menu-zhutipeizhi-p", + "unicode": "e6f4", + "unicode_decimal": 59124 + }, + { + "icon_id": "39537569", + "name": "菜单-文件管理", + "font_class": "menu-wenjianguanli-p", + "unicode": "e6f5", + "unicode_decimal": 59125 + }, + { + "icon_id": "39537626", + "name": "菜单-定时任务", + "font_class": "menu-dingshirenwu-p", + "unicode": "e6f6", + "unicode_decimal": 59126 + }, + { + "icon_id": "39537791", + "name": "菜单-在线用户", + "font_class": "menu-zaixianyonghu-p", + "unicode": "e6f7", + "unicode_decimal": 59127 + }, + { + "icon_id": "39538291", + "name": "菜单-系统配置", + "font_class": "menu-xitongpeizhi-p", + "unicode": "e6fb", + "unicode_decimal": 59131 + }, + { + "icon_id": "39538469", + "name": "菜单-资源", + "font_class": "menu-ziyuan-p", + "unicode": "e6fe", + "unicode_decimal": 59134 + }, + { + "icon_id": "39538518", + "name": "菜单-应用", + "font_class": "menu-yingyong-p", + "unicode": "e6fc", + "unicode_decimal": 59132 + }, + { + "icon_id": "39540384", + "name": "菜单-授权", + "font_class": "menu-shouquan-p", + "unicode": "e747", + "unicode_decimal": 59207 + }, + { + "icon_id": "39540427", + "name": "菜单-职位", + "font_class": "menu-zhiwei-p", + "unicode": "e745", + "unicode_decimal": 59205 + }, + { + "icon_id": "39540528", + "name": "菜单-职位", + "font_class": "menu-zhiwei", + "unicode": "e746", + "unicode_decimal": 59206 + }, + { + "icon_id": "39540531", + "name": "菜单-机构", + "font_class": "menu-jigou-p", + "unicode": "e744", + "unicode_decimal": 59204 + }, + { + "icon_id": "39573817", + "name": "菜单-通知公告", + "font_class": "menu-wodexiaoxi-p", + "unicode": "eb89", + "unicode_decimal": 60297 + }, + { + "icon_id": "39540716", + "name": "菜单-流程任务", + "font_class": "menu-liuchengrenwu-p", + "unicode": "e743", + "unicode_decimal": 59203 + }, + { + "icon_id": "39540898", + "name": "菜单-项目管理", + "font_class": "menu-xiangmu-p", + "unicode": "e741", + "unicode_decimal": 59201 + }, + { + "icon_id": "39541093", + "name": "菜单-后台配置", + "font_class": "menu-peizhi-p", + "unicode": "e714", + "unicode_decimal": 59156 + }, + { + "icon_id": "39555493", + "name": "菜单-接口授权", + "font_class": "menu-jiekoushouquan", + "unicode": "e742", + "unicode_decimal": 59202 + }, + { + "icon_id": "39573765", + "name": "菜单-接口授权", + "font_class": "menu-jiekoushouquan-p", + "unicode": "eb88", + "unicode_decimal": 60296 + }, + { + "icon_id": "39555353", + "name": "菜单-接口", + "font_class": "menu-jiekou-p", + "unicode": "e73f", + "unicode_decimal": 59199 + }, + { + "icon_id": "39555354", + "name": "菜单-接口", + "font_class": "menu-jiekou", + "unicode": "e740", + "unicode_decimal": 59200 + }, + { + "icon_id": "39555623", + "name": "菜单-应用接入", + "font_class": "menu-yingyongjieru-p", + "unicode": "e73c", + "unicode_decimal": 59196 + }, + { + "icon_id": "39555624", + "name": "菜单-应用接入", + "font_class": "menu-yingyongjieru", + "unicode": "e73b", + "unicode_decimal": 59195 + }, + { + "icon_id": "39554760", + "name": "菜单-租户-租户审核", + "font_class": "menu-zuhushenhe", + "unicode": "e739", + "unicode_decimal": 59193 + }, + { + "icon_id": "39554761", + "name": "菜单-租户-租户审核", + "font_class": "menu-zuhushenhe-p", + "unicode": "e73a", + "unicode_decimal": 59194 + }, + { + "icon_id": "39553670", + "name": "菜单-租户管理", + "font_class": "menu-zuhuguanli-p", + "unicode": "e71f", + "unicode_decimal": 59167 + }, + { + "icon_id": "39554167", + "name": "菜单-租户管理", + "font_class": "menu-zuhuguanli", + "unicode": "e72b", + "unicode_decimal": 59179 + }, + { + "icon_id": "39554470", + "name": "菜单-租户-功能包管理", + "font_class": "menu-gongnengbao", + "unicode": "e733", + "unicode_decimal": 59187 + }, + { + "icon_id": "39554471", + "name": "菜单-租户-功能包管理", + "font_class": "menu-gongnengbao-p", + "unicode": "e734", + "unicode_decimal": 59188 + }, + { + "icon_id": "39555047", + "name": "菜单-api认证", + "font_class": "menu-apirenzheng-p", + "unicode": "e735", + "unicode_decimal": 59189 + }, + { + "icon_id": "39555048", + "name": "菜单-api认证", + "font_class": "menu-apirenzheng", + "unicode": "e736", + "unicode_decimal": 59190 + }, + { + "icon_id": "39555202", + "name": "菜单-外部应用", + "font_class": "menu-waibuyingyong-p", + "unicode": "e737", + "unicode_decimal": 59191 + }, + { + "icon_id": "39555203", + "name": "菜单-外部应用", + "font_class": "menu-waibuyingyong", + "unicode": "e738", + "unicode_decimal": 59192 + }, + { + "icon_id": "39555767", + "name": "菜单-报表管理", + "font_class": "menu-baobiaoguanli-p", + "unicode": "e73e", + "unicode_decimal": 59198 + }, + { + "icon_id": "39555768", + "name": "菜单-报表管理", + "font_class": "menu-baobiaoguanli", + "unicode": "e73d", + "unicode_decimal": 59197 + }, + { + "icon_id": "39525750", + "name": "菜单-流程列表", + "font_class": "menu-liuchengliebiao", + "unicode": "e72d", + "unicode_decimal": 59181 + }, + { + "icon_id": "39525751", + "name": "菜单-流程列表", + "font_class": "menu-liuchengliebiao-p", + "unicode": "e72c", + "unicode_decimal": 59180 + }, + { + "icon_id": "39525752", + "name": "菜单-发起流程", + "font_class": "menu-faqiliucheng-p", + "unicode": "e732", + "unicode_decimal": 59186 + }, + { + "icon_id": "39525753", + "name": "菜单-发起流程", + "font_class": "menu-faqiliucheng", + "unicode": "e72a", + "unicode_decimal": 59178 + }, + { + "icon_id": "39525738", + "name": "菜单-模型列表", + "font_class": "menu-moxingliebiao-p", + "unicode": "e721", + "unicode_decimal": 59169 + }, + { + "icon_id": "39525739", + "name": "菜单-模型列表", + "font_class": "menu-moxingliebiao", + "unicode": "e720", + "unicode_decimal": 59168 + }, + { + "icon_id": "39525740", + "name": "菜单-流程设计-设计界面", + "font_class": "menu-flow-design", + "unicode": "e729", + "unicode_decimal": 59177 + }, + { + "icon_id": "39525741", + "name": "菜单-流程设计-设计界面", + "font_class": "menu-flow-design-p", + "unicode": "e728", + "unicode_decimal": 59176 + }, + { + "icon_id": "39525744", + "name": "菜单-业务关联", + "font_class": "menu-yewuguanlian-p", + "unicode": "e731", + "unicode_decimal": 59185 + }, + { + "icon_id": "39525745", + "name": "菜单-业务关联", + "font_class": "menu-yewuguanlian", + "unicode": "e730", + "unicode_decimal": 59184 + }, + { + "icon_id": "39525749", + "name": "菜单-流程权限", + "font_class": "menu-liuchengquanxian", + "unicode": "e72e", + "unicode_decimal": 59182 + }, + { + "icon_id": "39525721", + "name": "菜单-业务列表", + "font_class": "menu-yewuliebiao", + "unicode": "e71a", + "unicode_decimal": 59162 + }, + { + "icon_id": "39525726", + "name": "菜单-数据表", + "font_class": "menu-shujubiao", + "unicode": "e726", + "unicode_decimal": 59174 + }, + { + "icon_id": "39525735", + "name": "菜单-表单", + "font_class": "menu-biaodan", + "unicode": "e725", + "unicode_decimal": 59173 + }, + { + "icon_id": "39525736", + "name": "菜单-视图", + "font_class": "menu-shitu-p", + "unicode": "e723", + "unicode_decimal": 59171 + }, + { + "icon_id": "39525737", + "name": "菜单-视图", + "font_class": "menu-shitu", + "unicode": "e722", + "unicode_decimal": 59170 + }, + { + "icon_id": "39523503", + "name": "菜单-系统配置", + "font_class": "menu-xitongpeizhi", + "unicode": "e709", + "unicode_decimal": 59145 + }, + { + "icon_id": "39523515", + "name": "菜单-字典", + "font_class": "menu-zidian-p", + "unicode": "e70c", + "unicode_decimal": 59148 + }, + { + "icon_id": "39523622", + "name": "菜单-字典", + "font_class": "menu-zidian", + "unicode": "e70b", + "unicode_decimal": 59147 + }, + { + "icon_id": "39524502", + "name": "菜单-在线用户", + "font_class": "menu-zaixianyonghu", + "unicode": "e712", + "unicode_decimal": 59154 + }, + { + "icon_id": "39524520", + "name": "菜单-定时任务", + "font_class": "menu-dingshirenwu", + "unicode": "e710", + "unicode_decimal": 59152 + }, + { + "icon_id": "39524525", + "name": "菜单-文件管理", + "font_class": "menu-wenjianguanli", + "unicode": "e70e", + "unicode_decimal": 59150 + }, + { + "icon_id": "39524526", + "name": "菜单-多数据源", + "font_class": "menu-duoshujuyuan-p", + "unicode": "e713", + "unicode_decimal": 59155 + }, + { + "icon_id": "39525707", + "name": "菜单-日志查看", + "font_class": "menu-rizhichakan", + "unicode": "e717", + "unicode_decimal": 59159 + }, + { + "icon_id": "39525709", + "name": "菜单-监控管理", + "font_class": "menu-jiankongguanli", + "unicode": "e715", + "unicode_decimal": 59157 + }, + { + "icon_id": "39525714", + "name": "菜单-主题配置", + "font_class": "menu-zhutipeizhi", + "unicode": "e71e", + "unicode_decimal": 59166 + }, + { + "icon_id": "39525719", + "name": "菜单-安全策略", + "font_class": "menu-anquancelue", + "unicode": "e71d", + "unicode_decimal": 59165 + }, + { + "icon_id": "39523235", + "name": "菜单-应用", + "font_class": "menu-yingyong", + "unicode": "e6fd", + "unicode_decimal": 59133 + }, + { + "icon_id": "39523259", + "name": "菜单-角色", + "font_class": "menu-juese-p", + "unicode": "e703", + "unicode_decimal": 59139 + }, + { + "icon_id": "39523359", + "name": "菜单-角色", + "font_class": "menu-juese", + "unicode": "e704", + "unicode_decimal": 59140 + }, + { + "icon_id": "39523374", + "name": "菜单-菜单", + "font_class": "menu-caidan", + "unicode": "e705", + "unicode_decimal": 59141 + }, + { + "icon_id": "39523375", + "name": "菜单-菜单", + "font_class": "menu-caidan-p", + "unicode": "e702", + "unicode_decimal": 59138 + }, + { + "icon_id": "39523497", + "name": "菜单-资源", + "font_class": "menu-ziyuan", + "unicode": "e708", + "unicode_decimal": 59144 + }, + { + "icon_id": "39523044", + "name": "菜单-人员", + "font_class": "menu-renyuan-p", + "unicode": "e6fa", + "unicode_decimal": 59130 + }, + { + "icon_id": "39523045", + "name": "菜单-人员", + "font_class": "menu-renyuan", + "unicode": "e6f9", + "unicode_decimal": 59129 + }, + { + "icon_id": "39523071", + "name": "菜单-机构", + "font_class": "menu-jigou", + "unicode": "e6f8", + "unicode_decimal": 59128 + }, + { + "icon_id": "39523224", + "name": "菜单-授权", + "font_class": "menu-shouquan", + "unicode": "e6ff", + "unicode_decimal": 59135 + }, + { + "icon_id": "39474651", + "name": "树节点-公司", + "font_class": "tree-gongsi", + "unicode": "e6f0", + "unicode_decimal": 59120 + }, + { + "icon_id": "39474652", + "name": "树节点-部门", + "font_class": "tree-dept", + "unicode": "e6ef", + "unicode_decimal": 59119 + }, + { + "icon_id": "39474653", + "name": "树节点-表格", + "font_class": "tree-table", + "unicode": "e6ee", + "unicode_decimal": 59118 + }, + { + "icon_id": "39474654", + "name": "树节点-成员", + "font_class": "tree-chengyuan", + "unicode": "e6ed", + "unicode_decimal": 59117 + }, + { + "icon_id": "39460944", + "name": "树节点-文件夹", + "font_class": "tree-wenjianjia", + "unicode": "e6ec", + "unicode_decimal": 59116 + }, + { + "icon_id": "39460948", + "name": "标签页-业务角色", + "font_class": "tab-yewujuese", + "unicode": "e6e8", + "unicode_decimal": 59112 + }, + { + "icon_id": "39460949", + "name": "标签页-系统角色", + "font_class": "tab-xitongjuese", + "unicode": "e6e6", + "unicode_decimal": 59110 + }, + { + "icon_id": "39460972", + "name": "标签页-公司角色", + "font_class": "tab-gongsijuese", + "unicode": "e6dc", + "unicode_decimal": 59100 + }, + { + "icon_id": "39460951", + "name": "操作-导出用户", + "font_class": "opt-export-user", + "unicode": "e6e3", + "unicode_decimal": 59107 + }, + { + "icon_id": "39460954", + "name": "操作-导入用户", + "font_class": "opt-import-user", + "unicode": "e6e2", + "unicode_decimal": 59106 + }, + { + "icon_id": "39460942", + "name": "标签页-基础信息", + "font_class": "tab-jichuxinxi", + "unicode": "e6e9", + "unicode_decimal": 59113 + }, + { + "icon_id": "39460950", + "name": "标签页-角色信息", + "font_class": "tab-jiaosexinxi", + "unicode": "e6e5", + "unicode_decimal": 59109 + }, + { + "icon_id": "39460953", + "name": "标签页-用户证书", + "font_class": "tab-yonghuzhengshu", + "unicode": "e6e1", + "unicode_decimal": 59105 + }, + { + "icon_id": "39460958", + "name": "标签页-组织机构", + "font_class": "tab-zuzhijigou", + "unicode": "e6dd", + "unicode_decimal": 59101 + }, + { + "icon_id": "39460945", + "name": "操作-退回", + "font_class": "opt-tuihui", + "unicode": "e6eb", + "unicode_decimal": 59115 + }, + { + "icon_id": "39460952", + "name": "导航条-主页", + "font_class": "nav-zhuye", + "unicode": "e6e4", + "unicode_decimal": 59108 + }, + { + "icon_id": "39460956", + "name": "操作-已读", + "font_class": "opt-yidu", + "unicode": "e6df", + "unicode_decimal": 59103 + }, + { + "icon_id": "39407704", + "name": "操作-预览", + "font_class": "opt-yulan", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "1447730", + "name": "菜单类型-纯前端路由", + "font_class": "menu-type-single-page", + "unicode": "e615", + "unicode_decimal": 58901 + }, + { + "icon_id": "5387902", + "name": "菜单类型-后台菜单", + "font_class": "menu-type-backend", + "unicode": "eb87", + "unicode_decimal": 60295 + }, + { + "icon_id": "10880727", + "name": "菜单类型-内部链接", + "font_class": "menu-type-inner-link", + "unicode": "e8ae", + "unicode_decimal": 59566 + }, + { + "icon_id": "34202262", + "name": "菜单类型-外部链接", + "font_class": "menu-type-waibulianjie", + "unicode": "e85f", + "unicode_decimal": 59487 + }, + { + "icon_id": "39407700", + "name": "操作-自定义列", + "font_class": "opt-zidingyilie", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "39407623", + "name": "操作-搜索", + "font_class": "opt-search", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "39407680", + "name": "操作-切换", + "font_class": "opt-qiehuan", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "39407697", + "name": "操作-添加", + "font_class": "opt-tianjia", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "39407756", + "name": "操作-导入", + "font_class": "opt-daoru", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "39407757", + "name": "操作-导出", + "font_class": "opt-daochu", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "39407762", + "name": "操作-刷新", + "font_class": "opt-shuaxin", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "39407837", + "name": "操作-放大", + "font_class": "opt-fangda", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "39407838", + "name": "操作-缩小", + "font_class": "opt-suoxiao", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "39407799", + "name": "操作-加签", + "font_class": "opt-jiaqian", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "39407801", + "name": "操作-同意", + "font_class": "opt-tongyi", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "39407802", + "name": "操作-撤回", + "font_class": "opt-chehui", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "39407804", + "name": "操作-拒绝", + "font_class": "opt-jujue", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "39407806", + "name": "操作-转交", + "font_class": "opt-zhuanjiao", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "39407777", + "name": "下拉菜单-修改头像", + "font_class": "xiala-xiugaitouxiang", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "39407751", + "name": "下拉菜单-修改密码", + "font_class": "xiala-xiugaimima", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "39407767", + "name": "下拉菜单-个人信息", + "font_class": "xiala-gerenxinxi", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "39407839", + "name": "下拉菜单-退出登录", + "font_class": "xiala-tuichudenglu", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "39407775", + "name": "操作-发布", + "font_class": "opt-fabu", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "39407627", + "name": "操作-设置", + "font_class": "opt-shezhi", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "39407765", + "name": "操作-查看详情", + "font_class": "opt-xiangqing", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "39407732", + "name": "操作-上传到数据库", + "font_class": "opt-shangchuandaoshujuku", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "39407759", + "name": "操作-上传", + "font_class": "opt-shangchuan", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "39407761", + "name": "操作-下载", + "font_class": "opt-xiazai", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "39407770", + "name": "操作-踢下线", + "font_class": "opt-tixiaxian", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "39407716", + "name": "操作-审批人设置", + "font_class": "opt-shenpirenshezhi", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "39407744", + "name": "操作-流程迁移", + "font_class": "opt-liuchengqianyi", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "39407840", + "name": "操作-流程设计", + "font_class": "opt-liuchengsheji", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "39407679", + "name": "操作-编辑", + "font_class": "opt-bianji", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "39407701", + "name": "操作-收藏", + "font_class": "opt-shoucang", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "39407702", + "name": "操作-已收藏", + "font_class": "opt-yishoucang", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "39407703", + "name": "操作-删除", + "font_class": "opt-shanchu", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "39407709", + "name": "操作-分配角色", + "font_class": "opt-fenpeijuese", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "39407753", + "name": "操作-重置密码", + "font_class": "opt-chongzhimima", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "39407793", + "name": "操作-复制", + "font_class": "opt-fuzhi", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "39407626", + "name": "导航条-当前公司", + "font_class": "nav-gongsi", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "39407629", + "name": "导航条-应用", + "font_class": "nav-yingyong", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "39407631", + "name": "导航条-通知", + "font_class": "nav-tongzhi", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "39407677", + "name": "导航条-多语言", + "font_class": "nav-duoyuyan", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "39407696", + "name": "导航条-更多配置", + "font_class": "nav-gengduopeizhi", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "39407810", + "name": "发起流程", + "font_class": "faqiliucheng", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "39407811", + "name": "待办任务", + "font_class": "daibanrenwu", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "39407814", + "name": "已办事项", + "font_class": "yibanshixiang", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "39407815", + "name": "已阅事项", + "font_class": "yiyueshixiang", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "39407816", + "name": "待阅任务", + "font_class": "daiyuerenwu", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "39407895", + "name": "我的草稿", + "font_class": "wodecaogao", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "39407942", + "name": "我发起的", + "font_class": "wofaqide", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "39407812", + "name": "全部项目", + "font_class": "quanbuxiangmu", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "39407813", + "name": "我收藏的", + "font_class": "woshoucangde", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "39407779", + "name": "菜单-应用设计", + "font_class": "menu-yingyongguanli", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "39407780", + "name": "菜单-应用设计", + "font_class": "menu-yingyongguanli-p", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "39407822", + "name": "菜单-流程设计", + "font_class": "menu-liuchengsheji", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "39407823", + "name": "菜单-流程设计", + "font_class": "menu-liuchengsheji-p", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "39407832", + "name": "菜单-项目管理", + "font_class": "menu-xiangmu", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "39407938", + "name": "菜单-流程任务", + "font_class": "menu-liuchengrenwu", + "unicode": "e6d0", + "unicode_decimal": 59088 + }, + { + "icon_id": "39407794", + "name": "菜单-组织机构", + "font_class": "menu-zuzhijiagou", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "39407825", + "name": "菜单-通知公告", + "font_class": "menu-wodexiaoxi", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "39407830", + "name": "菜单-后台配置", + "font_class": "menu-peizhi", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "39407933", + "name": "菜单-权限控制", + "font_class": "menu-quanxiankongzhi-p", + "unicode": "e6d2", + "unicode_decimal": 59090 + }, + { + "icon_id": "39407934", + "name": "菜单-权限控制", + "font_class": "menu-quanxiankongzhi", + "unicode": "e6d1", + "unicode_decimal": 59089 + }, + { + "icon_id": "39407943", + "name": "菜单-组织架构", + "font_class": "menu-zuzhijiagou-p", + "unicode": "e6cc", + "unicode_decimal": 59084 + } + ] +} diff --git a/guns-front-project/src/assets/iconfont/iconfont.ttf b/guns-front-project/src/assets/iconfont/iconfont.ttf new file mode 100644 index 00000000..ba904506 Binary files /dev/null and b/guns-front-project/src/assets/iconfont/iconfont.ttf differ diff --git a/guns-front-project/src/assets/iconfont/iconfont.woff b/guns-front-project/src/assets/iconfont/iconfont.woff new file mode 100644 index 00000000..91d82f34 Binary files /dev/null and b/guns-front-project/src/assets/iconfont/iconfont.woff differ diff --git a/guns-front-project/src/assets/iconfont/iconfont.woff2 b/guns-front-project/src/assets/iconfont/iconfont.woff2 new file mode 100644 index 00000000..f521acae Binary files /dev/null and b/guns-front-project/src/assets/iconfont/iconfont.woff2 differ diff --git a/guns-front-project/src/assets/images/guns.png b/guns-front-project/src/assets/images/guns.png new file mode 100644 index 00000000..e0daecf4 Binary files /dev/null and b/guns-front-project/src/assets/images/guns.png differ diff --git a/guns-front-project/src/assets/logo.png b/guns-front-project/src/assets/logo.png new file mode 100644 index 00000000..9eb0e8d1 Binary files /dev/null and b/guns-front-project/src/assets/logo.png differ diff --git a/guns-front-project/src/assets/logo.svg b/guns-front-project/src/assets/logo.svg new file mode 100644 index 00000000..9b322a8e --- /dev/null +++ b/guns-front-project/src/assets/logo.svg @@ -0,0 +1,164 @@ + + + + diff --git a/guns-front-project/src/components/CropperModal/components/cropper-preview.vue b/guns-front-project/src/components/CropperModal/components/cropper-preview.vue new file mode 100644 index 00000000..7011ad03 --- /dev/null +++ b/guns-front-project/src/components/CropperModal/components/cropper-preview.vue @@ -0,0 +1,63 @@ + + + diff --git a/guns-front-project/src/components/CropperModal/components/cropper-tools.vue b/guns-front-project/src/components/CropperModal/components/cropper-tools.vue new file mode 100644 index 00000000..30c6b695 --- /dev/null +++ b/guns-front-project/src/components/CropperModal/components/cropper-tools.vue @@ -0,0 +1,261 @@ + + + diff --git a/guns-front-project/src/components/CropperModal/components/cropper.vue b/guns-front-project/src/components/CropperModal/components/cropper.vue new file mode 100644 index 00000000..e20b88bf --- /dev/null +++ b/guns-front-project/src/components/CropperModal/components/cropper.vue @@ -0,0 +1,405 @@ + + + + + diff --git a/guns-front-project/src/components/CropperModal/index.vue b/guns-front-project/src/components/CropperModal/index.vue new file mode 100644 index 00000000..d434a6b4 --- /dev/null +++ b/guns-front-project/src/components/CropperModal/index.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/guns-front-project/src/components/DictSelect/DictCheckbox.vue b/guns-front-project/src/components/DictSelect/DictCheckbox.vue new file mode 100644 index 00000000..ac82d5f9 --- /dev/null +++ b/guns-front-project/src/components/DictSelect/DictCheckbox.vue @@ -0,0 +1,112 @@ + + + + diff --git a/guns-front-project/src/components/DictSelect/DictRadio.vue b/guns-front-project/src/components/DictSelect/DictRadio.vue new file mode 100644 index 00000000..e777ecbe --- /dev/null +++ b/guns-front-project/src/components/DictSelect/DictRadio.vue @@ -0,0 +1,105 @@ + + + + diff --git a/guns-front-project/src/components/DictSelect/DictSelect.vue b/guns-front-project/src/components/DictSelect/DictSelect.vue new file mode 100644 index 00000000..a930ed13 --- /dev/null +++ b/guns-front-project/src/components/DictSelect/DictSelect.vue @@ -0,0 +1,142 @@ + + + + diff --git a/guns-front-project/src/components/DictSelect/DictTypeSelect.vue b/guns-front-project/src/components/DictSelect/DictTypeSelect.vue new file mode 100644 index 00000000..2d17851d --- /dev/null +++ b/guns-front-project/src/components/DictSelect/DictTypeSelect.vue @@ -0,0 +1,52 @@ + + + + diff --git a/guns-front-project/src/components/DictSelect/api/SysConfigApi.js b/guns-front-project/src/components/DictSelect/api/SysConfigApi.js new file mode 100644 index 00000000..ec24b6a9 --- /dev/null +++ b/guns-front-project/src/components/DictSelect/api/SysConfigApi.js @@ -0,0 +1,143 @@ +import Request from '@/utils/request/request-util'; + +/** + * 系统配置api + * + * @author fengshuonan + * @date 2021/4/9 11:56 + */ +export class SysConfigApi { + /** + * 获取系统配置类型的分页 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findConfigGroupPage(params) { + return Request.getAndLoadData('/dict/getConfigGroupPage', params); + } + + /** + * 获取系统配置分页数据 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findConfigPage(params) { + return Request.getAndLoadData('/sysConfig/page', params); + } + + /** + * 获取系统配置类型的字典的详情(新增系统配置类型界面用) + * + * @author fengshuonan + * @date 2021/4/9 12:05 + */ + static getConfigDictTypeDetail(params) { + return Request.getAndLoadData('/dictType/getConfigDictTypeDetail', params); + } + + /** + * 添加系统配置类型,系统配置类别其实就是字典 + * + * @param {string} params.dictCode 字典编码(系统配置分类编码) + * @param {string} params.dictName 字典名称(系统配置分类名称) + * @param {string} params.dictShortCode 字典简写编码 + * @param {string} params.dictShortName 字典缩写名称 + * @param {number} params.dictSort 字典排序 + * @param {string} params.dictTypeCode 字典类型编码 + * @param {string} params.dictTypeName 字典类型名称 + * @param {string} params.dictTypeId 字典类型id + * @author fengshuonan + * @date 2021/4/9 12:05 + */ + static addConfigType(params) { + return Request.post('/dict/add', params); + } + + /** + * 删除系统配置类型 + * + * @param {String} params.dictId 字典id(系统配置分类id) + * @author fengshuonan + * @date 2021/4/9 12:05 + */ + static deleteConfigType(params) { + return Request.post('/dict/delete', params); + } + + /** + * 添加系统配置 + * + * @param {string} params.configCode 配置编码 + * @param {string} params.configName 配置名称 + * @param {string} params.configValue 配置值 + * @param {string} params.groupCode 所属配置分类 + * @param {string} params.remark 备注 + * @param {string} params.sysFlag 是否是系统配置 + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static addSysConfig(params) { + return Request.post('/sysConfig/add', params); + } + + /** + * 修改系统配置 + * + * @param {string} params.configCode 配置编码 + * @param {string} params.configId 配置id + * @param {string} params.configName 配置名称 + * @param {string} params.configValue 配置值 + * @param {string} params.groupCode 所属配置分类 + * @param {string} params.remark 备注 + * @param {string} params.sysFlag 是否是系统配置 + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static editSysConfig(params) { + return Request.post('/sysConfig/edit', params); + } + + /** + * 删除系统配置 + * + * @param {string} params.configId 配置id + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static deleteSysConfig(params) { + return Request.post('/sysConfig/delete', params); + } + + /** + * 获取系统配置是否已经初始化 + * + * @return {boolean} true-已经初始化,false-未初始化 + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static async getInitConfigFlag() { + return await Request.getAndLoadData('/sysConfig/getInitConfigFlag'); + } + + /** + * 获取需要初始化的配置列表 + * + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static async getInitConfigList() { + return await Request.getAndLoadData('/sysConfig/getInitConfigList'); + } + + /** + * 初始化系统配置参数 + * + * @author fengshuonan + * @date 2021/7/9 11:04 + */ + static async initConfig(params) { + return await Request.post('/sysConfig/initConfig', params); + } +} diff --git a/guns-front-project/src/components/DictSelect/api/SysDictDataApi.js b/guns-front-project/src/components/DictSelect/api/SysDictDataApi.js new file mode 100644 index 00000000..ea078072 --- /dev/null +++ b/guns-front-project/src/components/DictSelect/api/SysDictDataApi.js @@ -0,0 +1,59 @@ +import Request from '@/utils/request/request-util'; + +/** + * 字典数据api + * + * @author chenjinlong + * @date 2021/4/13 09:52 + */ +export class SysDictDataApi { + /** + * 获取字典类型分页列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findDictPage(params) { + return Request.getAndLoadData('/dict/page', params); + } + + /** + * 新增 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static add(params) { + return Request.post('/dict/add', params); + } + + /** + * 删除 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static del(params) { + return Request.post('/dict/delete', params); + } + + /** + * 批量删除 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static batchDel(params) { + return Request.post('/dict/batchDelete', params); + } + + /** + * 修改 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static edit(params) { + return Request.post('/dict/edit', params); + } +} diff --git a/guns-front-project/src/components/DictSelect/api/SysDictTypeApi.js b/guns-front-project/src/components/DictSelect/api/SysDictTypeApi.js new file mode 100644 index 00000000..1fa97baa --- /dev/null +++ b/guns-front-project/src/components/DictSelect/api/SysDictTypeApi.js @@ -0,0 +1,79 @@ +import Request from '@/utils/request/request-util'; + +/** + * 字典类型api + * + * @author chenjinlong + * @date 2021/4/13 09:52 + */ +export class SysDictTypeApi { + /** + * 获取字典类型分页列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findDictTypePage(params) { + return Request.getAndLoadData('/dictType/page', params); + } + + /** + * 新增 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static add(params) { + return Request.post('/dictType/add', params); + } + + /** + * 删除 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static del(params) { + return Request.post('/dictType/delete', params); + } + + /** + * 批量删除 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static batchDel(params) { + return Request.post('/dictType/batchDelete', params); + } + + /** + * 修改 + * + * @author chenjinlong + * @date 2021/4/1 16:07 + */ + static edit(params) { + return Request.post('/dictType/edit', params); + } + + /** + * 获取字典类型下的所有字典 + * + * @author fengshuonan + * @date 2021/4/19 22:42 + */ + static getDictListByParams(params) { + return Request.getAndLoadData('/dict/list', params); + } + + /** + * 获取所有字典类型列表 + * + * @author fengshuonan + * @date 2021/4/20 10:41 + */ + static getDictTypeList(params) { + return Request.getAndLoadData('/dictType/list', params); + } +} diff --git a/guns-front-project/src/components/Exception/403/index.vue b/guns-front-project/src/components/Exception/403/index.vue new file mode 100644 index 00000000..66332284 --- /dev/null +++ b/guns-front-project/src/components/Exception/403/index.vue @@ -0,0 +1,17 @@ + + + diff --git a/guns-front-project/src/components/Exception/404/index.vue b/guns-front-project/src/components/Exception/404/index.vue new file mode 100644 index 00000000..35352c61 --- /dev/null +++ b/guns-front-project/src/components/Exception/404/index.vue @@ -0,0 +1,17 @@ + + + diff --git a/guns-front-project/src/components/Exception/500/index.vue b/guns-front-project/src/components/Exception/500/index.vue new file mode 100644 index 00000000..82320825 --- /dev/null +++ b/guns-front-project/src/components/Exception/500/index.vue @@ -0,0 +1,17 @@ + + + diff --git a/guns-front-project/src/components/IconSelect/index.vue b/guns-front-project/src/components/IconSelect/index.vue new file mode 100644 index 00000000..c3334144 --- /dev/null +++ b/guns-front-project/src/components/IconSelect/index.vue @@ -0,0 +1,315 @@ + + + + + diff --git a/guns-front-project/src/components/RedirectLayout/index.js b/guns-front-project/src/components/RedirectLayout/index.js new file mode 100644 index 00000000..952c5496 --- /dev/null +++ b/guns-front-project/src/components/RedirectLayout/index.js @@ -0,0 +1,21 @@ +/** 用于刷新的路由组件 */ +import { unref, h } from 'vue'; +import { useRouter } from 'vue-router'; +import { setRouteReload } from '@/utils/page-tab-util'; + +export default { + name: 'RedirectLayout', + setup() { + const { currentRoute, replace } = useRouter(); + const { params, query } = unref(currentRoute); + const from = Array.isArray(params.path) + ? params.path.join('/') + : params.path; + const path = '/' + from; + setTimeout(() => { + setRouteReload(null); + replace({ path, query }); + }, 100); + return () => h('div'); + } +}; diff --git a/guns-front-project/src/components/RouterLayout/index.vue b/guns-front-project/src/components/RouterLayout/index.vue new file mode 100644 index 00000000..c3fc2299 --- /dev/null +++ b/guns-front-project/src/components/RouterLayout/index.vue @@ -0,0 +1,25 @@ + + + + diff --git a/guns-front-project/src/components/TinymceEditor/index.vue b/guns-front-project/src/components/TinymceEditor/index.vue new file mode 100644 index 00000000..d3a21d72 --- /dev/null +++ b/guns-front-project/src/components/TinymceEditor/index.vue @@ -0,0 +1,238 @@ + + + + + + diff --git a/guns-front-project/src/components/TinymceEditor/util.js b/guns-front-project/src/components/TinymceEditor/util.js new file mode 100644 index 00000000..1ab0a3c3 --- /dev/null +++ b/guns-front-project/src/components/TinymceEditor/util.js @@ -0,0 +1,229 @@ +const BASE_URL = import.meta.env.BASE_URL; + +// 默认加载插件 +const PLUGINS = [ + 'code', + 'preview', + 'fullscreen', + 'paste', + 'searchreplace', + 'save', + 'autosave', + 'link', + 'autolink', + 'image', + 'media', + 'table', + 'codesample', + 'lists', + 'advlist', + 'hr', + 'charmap', + 'emoticons', + 'anchor', + 'directionality', + 'pagebreak', + 'quickbars', + 'nonbreaking', + 'visualblocks', + 'visualchars', + 'wordcount' +].join(' '); + +// 默认工具栏布局 +const TOOLBAR = [ + 'fullscreen', + 'preview', + 'code', + '|', + 'undo', + 'redo', + '|', + 'forecolor', + 'backcolor', + '|', + 'bold', + 'italic', + 'underline', + 'strikethrough', + '|', + 'alignleft', + 'aligncenter', + 'alignright', + 'alignjustify', + '|', + 'outdent', + 'indent', + '|', + 'numlist', + 'bullist', + '|', + 'formatselect', + 'fontselect', + 'fontsizeselect', + '|', + 'link', + 'image', + 'media', + 'emoticons', + 'charmap', + 'anchor', + 'pagebreak', + 'codesample', + '|', + 'ltr', + 'rtl' +].join(' '); + +// 默认配置 +export const DEFAULT_CONFIG = { + height: 300, + branding: false, + skin_url: BASE_URL + 'tinymce/skins/ui/oxide', + content_css: BASE_URL + 'tinymce/skins/content/default/content.min.css', + language_url: BASE_URL + 'tinymce/langs/zh_CN.js', + language: 'zh_CN', + plugins: PLUGINS, + toolbar: TOOLBAR, + draggable_modal: true, + toolbar_mode: 'sliding', + quickbars_insert_toolbar: '', + images_upload_handler: (blobInfo, success, error) => { + if (blobInfo.blob().size / 1024 > 400) { + error('大小不能超过 400KB'); + return; + } + success('data:image/jpeg;base64,' + blobInfo.base64()); + }, + file_picker_types: 'media', + file_picker_callback: () => {} +}; + +// 暗黑主题配置 +export const DARK_CONFIG = { + skin_url: BASE_URL + 'tinymce/skins/ui/oxide-dark', + content_css: BASE_URL + 'tinymce/skins/content/dark/content.min.css' +}; + +// 支持监听的事件 +export const VALID_EVENTS = [ + 'onActivate', + 'onAddUndo', + 'onBeforeAddUndo', + 'onBeforeExecCommand', + 'onBeforeGetContent', + 'onBeforeRenderUI', + 'onBeforeSetContent', + 'onBeforePaste', + 'onBlur', + 'onChange', + 'onClearUndos', + 'onClick', + 'onContextMenu', + 'onCopy', + 'onCut', + 'onDblclick', + 'onDeactivate', + 'onDirty', + 'onDrag', + 'onDragDrop', + 'onDragEnd', + 'onDragGesture', + 'onDragOver', + 'onDrop', + 'onExecCommand', + 'onFocus', + 'onFocusIn', + 'onFocusOut', + 'onGetContent', + 'onHide', + 'onInit', + 'onKeyDown', + 'onKeyPress', + 'onKeyUp', + 'onLoadContent', + 'onMouseDown', + 'onMouseEnter', + 'onMouseLeave', + 'onMouseMove', + 'onMouseOut', + 'onMouseOver', + 'onMouseUp', + 'onNodeChange', + 'onObjectResizeStart', + 'onObjectResized', + 'onObjectSelected', + 'onPaste', + 'onPostProcess', + 'onPostRender', + 'onPreProcess', + 'onProgressState', + 'onRedo', + 'onRemove', + 'onReset', + 'onSaveContent', + 'onSelectionChange', + 'onSetAttrib', + 'onSetContent', + 'onShow', + 'onSubmit', + 'onUndo', + 'onVisualAid' +]; + +let unique = 0; + +/** + * 生成编辑器 id + */ +export function uuid(prefix) { + const time = Date.now(); + const random = Math.floor(Math.random() * 1000000000); + unique++; + return prefix + '_' + random + unique + String(time); +} + +/** + * 绑定事件 + */ +export function bindHandlers(initEvent, listeners, editor) { + const validEvents = VALID_EVENTS.map((event) => event.toLowerCase()); + Object.keys(listeners) + .filter((key) => validEvents.includes(key.toLowerCase())) + .forEach((key) => { + const handler = listeners[key]; + if (typeof handler === 'function') { + if (key === 'onInit') { + handler(initEvent, editor); + } else { + editor.on(key.substring(2), (e) => handler(e, editor)); + } + } + }); +} + +/** + * 弹出提示框 + */ +export function openAlert(editor, option = {}) { + editor?.windowManager?.open({ + title: option.title ?? '提示', + body: { + type: 'panel', + items: [ + { + type: 'htmlpanel', + html: `

${option.content ?? ''}

` + } + ] + }, + buttons: [ + { + type: 'cancel', + name: 'closeButton', + text: '确定', + primary: true + } + ] + }); +} diff --git a/guns-front-project/src/components/common/ColorPicker/components/alpha-slider.vue b/guns-front-project/src/components/common/ColorPicker/components/alpha-slider.vue new file mode 100644 index 00000000..dd966588 --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/components/alpha-slider.vue @@ -0,0 +1,119 @@ + + + + diff --git a/guns-front-project/src/components/common/ColorPicker/components/hue-slider.vue b/guns-front-project/src/components/common/ColorPicker/components/hue-slider.vue new file mode 100644 index 00000000..82e218ed --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/components/hue-slider.vue @@ -0,0 +1,94 @@ + + + + diff --git a/guns-front-project/src/components/common/ColorPicker/components/predefine-list.vue b/guns-front-project/src/components/common/ColorPicker/components/predefine-list.vue new file mode 100644 index 00000000..8c6a225a --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/components/predefine-list.vue @@ -0,0 +1,26 @@ + + + + diff --git a/guns-front-project/src/components/common/ColorPicker/components/sv-panel.vue b/guns-front-project/src/components/common/ColorPicker/components/sv-panel.vue new file mode 100644 index 00000000..79d3bfeb --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/components/sv-panel.vue @@ -0,0 +1,130 @@ + + + + diff --git a/guns-front-project/src/components/common/ColorPicker/index.vue b/guns-front-project/src/components/common/ColorPicker/index.vue new file mode 100644 index 00000000..1902ae56 --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/index.vue @@ -0,0 +1,289 @@ + + + + + + diff --git a/guns-front-project/src/components/common/ColorPicker/style/index.less b/guns-front-project/src/components/common/ColorPicker/style/index.less new file mode 100644 index 00000000..552ea4e3 --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/style/index.less @@ -0,0 +1,242 @@ +@import '../../../layout/style/themes/default.less'; + +/* trigger */ +.guns-color-picker-trigger { + width: 32px; + height: 32px; + position: relative; + display: inline-block; + padding: 4px; + border-radius: 2px; + border: 1px solid @border-color-split; + background: @component-background; + box-sizing: border-box; + text-align: center; + cursor: pointer; + + .guns-color-picker-trigger-inner { + height: 100%; + border-radius: 2px; + box-shadow: 0 0 0 1px @border-color-split; + overflow: hidden; + + &:not(.is-empty) { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); + } + + & > div { + height: 100%; + } + } + + .guns-color-picker-trigger-arrow { + position: absolute; + top: 50%; + left: 50%; + margin: -6px auto auto -6px; + line-height: 0; + font-size: 12px; + color: @text-color-secondary; + + & > .anticon:not(.anticon-close) { + color: #fff; + } + } + + // 禁用状态 + &.is-disabled { + cursor: not-allowed; + + .guns-color-picker-trigger-inner { + opacity: 0.6; + } + } + + // 尺寸控制 + &.guns-color-picker-large { + width: 40px; + height: 40px; + } + + &.guns-color-picker-small { + width: 24px; + height: 24px; + padding: 3px; + } +} + +/* picker */ +.guns-color-picker.ant-dropdown-menu { + width: 300px; + padding: 12px; + box-sizing: content-box; +} + +/* footer */ +.guns-color-picker .guns-color-picker-footer { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 12px; + + .guns-color-picker-value { + width: 140px; + } + + .guns-color-picker-value > .ant-input { + height: 36px; + line-height: 1; + padding: 0 4px; + font-size: 12px; + display: block; + } + + .ant-btn + .ant-btn { + margin-left: 8px; + } +} + +/* alpha slider */ +.guns-color-picker .guns-color-alpha-slider { + height: 12px; + margin-top: 12px; + position: relative; + box-sizing: border-box; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); + + .guns-color-alpha-slider-bar { + height: 100%; + background: linear-gradient( + to right, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 1) 100% + ); + position: relative; + cursor: pointer; + } + + .guns-color-alpha-slider-thumb { + position: absolute; + top: 0; + left: 0; + width: 4px; + height: 100%; + background: #fff; + box-sizing: border-box; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + border: 1px solid #f0f0f0; + border-radius: 1px; + cursor: pointer; + z-index: 1; + } +} + +/* hue slider */ +.guns-color-picker .guns-color-hue-slider { + height: 12px; + padding: 0 2px; + margin-top: 12px; + position: relative; + box-sizing: border-box; + + .guns-color-hue-slider-bar { + height: 100%; + background: linear-gradient( + to right, + #f00 0%, + #ff0 17%, + #0f0 33%, + #0ff 50%, + #00f 67%, + #f0f 83%, + #f00 100% + ); + position: relative; + cursor: pointer; + } + + .guns-color-hue-slider-thumb { + position: absolute; + top: 0; + left: 0; + width: 4px; + height: 100%; + background: #fff; + box-sizing: border-box; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + border: 1px solid #f0f0f0; + border-radius: 1px; + cursor: pointer; + z-index: 1; + } +} + +/* predefine */ +.guns-color-picker .guns-color-predefine { + display: flex; + flex-wrap: wrap; + margin-top: 4px; + + .guns-color-predefine-item { + width: 20px; + height: 20px; + border-radius: 2px; + margin: 8px 0 0 8px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); + position: relative; + overflow: hidden; + cursor: pointer; + + & > div { + height: 100%; + } + + &:nth-child(10n + 1) { + margin-left: 4px; + } + + & > .anticon { + color: #fff; + font-size: 12px; + position: absolute; + top: 50%; + left: 50%; + margin: -6px auto auto -6px; + } + } +} + +/* sv panel */ +.guns-color-picker .guns-color-svpanel { + height: 180px; + position: relative; + cursor: pointer; + + .guns-color-svpanel-white, + .guns-color-svpanel-black { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + + .guns-color-svpanel-white { + background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); + } + + .guns-color-svpanel-black { + background: linear-gradient(to top, #000, rgba(0, 0, 0, 0)); + } + + .guns-color-svpanel-cursor { + position: absolute; + width: 4px; + height: 4px; + border-radius: 50%; + box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), + 0 0 1px 2px rgba(0, 0, 0, 0.4); + transform: translate(-2px, -2px); + cursor: pointer; + } +} diff --git a/guns-front-project/src/components/common/ColorPicker/util/color.js b/guns-front-project/src/components/common/ColorPicker/util/color.js new file mode 100644 index 00000000..8ddef4b3 --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/util/color.js @@ -0,0 +1,381 @@ +/** + * 数字对应的 16 进制字符 + */ +const INT_HEX_MAP = { + 10: 'A', + 11: 'B', + 12: 'C', + 13: 'D', + 14: 'E', + 15: 'F' +}; + +/** + * 16 进制字符对应的数字 + */ +const HEX_INT_MAP = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 }; + +/** + * 是否是百分数格式 + */ +const isPercentage = function (n) { + return typeof n === 'string' && n.indexOf('%') !== -1; +}; + +/** + * 是否等于 1.0 + */ +const isOnePointZero = function (n) { + return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1; +}; + +/** + * Take input from [0, n] and return it as [0, 1] + */ +const bound01 = function (value, max) { + if (isOnePointZero(value)) { + value = '100%'; + } + + const processPercent = isPercentage(value); + value = Math.min(max, Math.max(0, parseFloat(String(value)))); + + // Automatically convert percentage into number + if (processPercent) { + value = parseInt(String(value * max), 10) / 100; + } + + // Handle floating point rounding errors + if (Math.abs(value - max) < 0.000001) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (value % max) / parseFloat(String(max)); +}; + +/** + * hsv 转 hsl + * @param hue 色相 + * @param sat 饱和度 + * @param val 明度 + */ +const hsv2hsl = function (hue, sat, val) { + return [hue, (sat * val) / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0, hue / 2]; +}; + +/** + * hsl 转 hsv + * @param hue 色相 + * @param sat 饱和度 + * @param light 亮度 + */ +const hsl2hsv = function (hue, sat, light) { + sat = sat / 100; + light = light / 100; + let smin = sat; + const lmin = Math.max(light, 0.01); + + light *= 2; + sat *= light <= 1 ? light : 2 - light; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (light + sat) / 2; + const sv = light === 0 ? (2 * smin) / (lmin + smin) : (2 * sat) / (light + sat); + + return { + h: hue, + s: sv * 100, + v: v * 100 + }; +}; + +/** + * rgb 转 hsv + * Converts an RGB color value to HSV + * Assumes: r, g, and b are contained in the set [0, 255] or [0, 1] + * Returns: { h, s, v } in [0,1] + * @param r + * @param g + * @param b + */ +const rgb2hsv = function (r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + const v = max; + + const d = max - min; + const s = max === 0 ? 0 : d / max; + + if (max === min) { + h = 0; // achromatic + } else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; + } + + return { h: h * 360, s: s * 100, v: v * 100 }; +}; + +/** + * hsv 转 rgb + * Converts an HSV color value to RGB + * Assumes: h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] + * Returns: { r, g, b } in the set [0, 255] + * @param h + * @param s + * @param v + */ +const hsv2rgb = function (h, s, v) { + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + const i = Math.floor(h); + const f = h - i; + const p = v * (1 - s); + const q = v * (1 - f * s); + const t = v * (1 - (1 - f) * s); + const mod = i % 6; + const r = [v, q, p, p, t, v][mod]; + const g = [t, v, v, q, p, p][mod]; + const b = [p, p, t, v, v, q][mod]; + + return { + r: Math.round(r * 255), + g: Math.round(g * 255), + b: Math.round(b * 255) + }; +}; + +/** + * rgb 转 16 进制 + * @param + */ +const toHex = function ({ r, g, b }) { + const hexOne = function (value) { + value = Math.min(Math.round(value), 255); + const high = Math.floor(value / 16); + const low = value % 16; + return '' + (INT_HEX_MAP[high] || high) + (INT_HEX_MAP[low] || low); + }; + + if (isNaN(r) || isNaN(g) || isNaN(b)) { + return ''; + } + + return '#' + hexOne(r) + hexOne(g) + hexOne(b); +}; + +/** + * 解析颜色通道 + * @param hex + */ +const parseHexChannel = function (hex) { + if (hex.length === 2) { + return (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 + (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]); + } + return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]; +}; + +/** + * 颜色对象 + */ +export default class Color { + // 色相 + _hue; + // 饱和度 + _saturation; + // 明度 + _value; + // 透明度 + _alpha; + // 是否开启透明度 + enableAlpha; + // 颜色格式 + format; + // 颜色值 + value; + + constructor(options = {}) { + this._hue = options._hue ?? 0; + this._saturation = options._saturation ?? 100; + this._value = options._value ?? 100; + this._alpha = options._alpha ?? 100; + + this.enableAlpha = options.enableAlpha ?? false; + this.format = options.format ?? 'hex'; + this.value = ''; + + this.doOnChange(); + } + + /** + * 修改属性 + * @param options + */ + set(options) { + Object.assign(this, options); + this.doOnChange(); + } + + /** + * 转 rgb + */ + toRgb() { + return hsv2rgb(this._hue, this._saturation, this._value); + } + + /** + * 解析颜色 + * @param value + */ + fromString(value) { + if (!value) { + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + this.doOnChange(); + return; + } + + const fromHSV = (h, s, v) => { + this._hue = Math.max(0, Math.min(360, h)); + this._saturation = Math.max(0, Math.min(100, s)); + this._value = Math.max(0, Math.min(100, v)); + this.doOnChange(); + }; + + if (value.indexOf('hsl') !== -1) { + const parts = value + .replace(/hsla|hsl|\(|\)/gm, '') + .split(/\s|,/g) + .filter(val => val !== '') + .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10))); + if (parts.length === 4) { + this._alpha = Math.floor(parseFloat(String(parts[3])) * 100); + } else if (parts.length === 3) { + this._alpha = 100; + } + if (parts.length >= 3) { + const { h, s, v } = hsl2hsv(parts[0], parts[1], parts[2]); + fromHSV(h, s, v); + } + } else if (value.indexOf('hsv') !== -1) { + const parts = value + .replace(/hsva|hsv|\(|\)/gm, '') + .split(/\s|,/g) + .filter(val => val !== '') + .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10))); + if (parts.length === 4) { + this._alpha = Math.floor(parseFloat(String(parts[3])) * 100); + } else if (parts.length === 3) { + this._alpha = 100; + } + if (parts.length >= 3) { + fromHSV(parts[0], parts[1], parts[2]); + } + } else if (value.indexOf('rgb') !== -1) { + const parts = value + .replace(/rgba|rgb|\(|\)/gm, '') + .split(/\s|,/g) + .filter(val => val !== '') + .map((val, index) => (index > 2 ? parseFloat(val) : parseInt(val, 10))); + if (parts.length === 4) { + this._alpha = Math.floor(parseFloat(String(parts[3])) * 100); + } else if (parts.length === 3) { + this._alpha = 100; + } + if (parts.length >= 3) { + const { h, s, v } = rgb2hsv(parts[0], parts[1], parts[2]); + fromHSV(h, s, v); + } + } else if (value.indexOf('#') !== -1) { + const hex = value.replace('#', '').trim(); + if (!/^(?:[0-9a-fA-F]{3}){1,2}|[0-9a-fA-F]{8}$/.test(hex)) { + return; + } + let r, g, b; + if (hex.length === 3) { + r = parseHexChannel(hex[0] + hex[0]); + g = parseHexChannel(hex[1] + hex[1]); + b = parseHexChannel(hex[2] + hex[2]); + } else if (hex.length === 6 || hex.length === 8) { + r = parseHexChannel(hex.substring(0, 2)); + g = parseHexChannel(hex.substring(2, 4)); + b = parseHexChannel(hex.substring(4, 6)); + } + if (hex.length === 8) { + this._alpha = Math.floor((parseHexChannel(hex.substring(6)) / 255) * 100); + } else if (hex.length === 3 || hex.length === 6) { + this._alpha = 100; + } + const { h, s, v } = rgb2hsv(r ?? 0, g ?? 0, b ?? 0); + fromHSV(h, s, v); + } + } + + /** + * 比较颜色 + * @param color + */ + compare(color) { + return ( + Math.abs(color._hue - this._hue) < 2 && + Math.abs(color._saturation - this._saturation) < 1 && + Math.abs(color._value - this._value) < 1 && + Math.abs(color._alpha - this._alpha) < 1 + ); + } + + /** + * 更新颜色值 + */ + doOnChange() { + const { _hue, _saturation, _value, _alpha, format } = this; + if (this.enableAlpha) { + if (format === 'hsl') { + const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100); + const _s = Math.round(hsl[1] * 100); + const _l = Math.round(hsl[2] * 100); + this.value = `hsla(${_hue}, ${_s}%, ${_l}%, ${_alpha / 100})`; + } else if (format === 'hsv') { + const _s = Math.round(_saturation); + const _v = Math.round(_value); + this.value = `hsva(${_hue}, ${_s}%, ${_v}%, ${_alpha / 100})`; + } else { + const { r, g, b } = hsv2rgb(_hue, _saturation, _value); + this.value = `rgba(${r}, ${g}, ${b}, ${_alpha / 100})`; + } + } else { + if (format === 'hsl') { + const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100); + const _l = Math.round(hsl[2] * 100); + this.value = `hsl(${_hue}, ${Math.round(hsl[1] * 100)}%, ${_l}%)`; + } else if (format === 'hsv') { + const _v = Math.round(_value); + this.value = `hsv(${_hue}, ${Math.round(_saturation)}%, ${_v}%)`; + } else if (format === 'rgb') { + const { r, g, b } = hsv2rgb(_hue, _saturation, _value); + this.value = `rgb(${r}, ${g}, ${b})`; + } else { + this.value = toHex(hsv2rgb(_hue, _saturation, _value)); + } + } + } +} diff --git a/guns-front-project/src/components/common/ColorPicker/util/draggable.js b/guns-front-project/src/components/common/ColorPicker/util/draggable.js new file mode 100644 index 00000000..c8d64964 --- /dev/null +++ b/guns-front-project/src/components/common/ColorPicker/util/draggable.js @@ -0,0 +1,41 @@ +/** 拖动事件封装 */ +let isDragging = false; + +/** + * 拖动事件封装 + * @param element + * @param options + */ +export default function (element, options) { + // 鼠标移动事件 + const moveFn = function (event) { + options.drag && options.drag(event); + }; + + // 鼠标抬起事件 + const upFn = function (event) { + document.removeEventListener('mousemove', moveFn); + document.removeEventListener('mouseup', upFn); + document.onselectstart = null; + document.ondragstart = null; + isDragging = false; + options.end && options.end(event); + }; + + // 鼠标按下事件 + element.addEventListener('mousedown', function (event) { + if (isDragging) { + return; + } + document.onselectstart = function () { + return false; + }; + document.ondragstart = function () { + return false; + }; + document.addEventListener('mousemove', moveFn); + document.addEventListener('mouseup', upFn); + isDragging = true; + options.start && options.start(event); + }); +} diff --git a/guns-front-project/src/components/common/CommonDrawer/index.vue b/guns-front-project/src/components/common/CommonDrawer/index.vue new file mode 100644 index 00000000..0a6f46ad --- /dev/null +++ b/guns-front-project/src/components/common/CommonDrawer/index.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/guns-front-project/src/components/common/CommonTable/index.vue b/guns-front-project/src/components/common/CommonTable/index.vue new file mode 100644 index 00000000..80ca2ab9 --- /dev/null +++ b/guns-front-project/src/components/common/CommonTable/index.vue @@ -0,0 +1,369 @@ + + + + + diff --git a/guns-front-project/src/components/common/Custom/api/CustomApi.js b/guns-front-project/src/components/common/Custom/api/CustomApi.js new file mode 100644 index 00000000..d2108083 --- /dev/null +++ b/guns-front-project/src/components/common/Custom/api/CustomApi.js @@ -0,0 +1,24 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -自定义列api + * + */ +export class CustomApi { + /** + * 获取用户针对某个业务的table的列宽配置 + * @param {*} params + * @returns + */ + static getUserConfig(params) { + return Request.getAndLoadData('/sysTableWidth/getUserConfig', params); + } + /** + * 添加用户针对某个table的列属性配置 + * @param {*} params + * @returns + */ + static setTableWidth(params) { + return Request.post('/sysTableWidth/setTableWidth', params); + } +} diff --git a/guns-front-project/src/components/common/Custom/index.vue b/guns-front-project/src/components/common/Custom/index.vue new file mode 100644 index 00000000..89b442fa --- /dev/null +++ b/guns-front-project/src/components/common/Custom/index.vue @@ -0,0 +1,225 @@ + + + + + + diff --git a/guns-front-project/src/components/common/DropDown/index.vue b/guns-front-project/src/components/common/DropDown/index.vue new file mode 100644 index 00000000..f1c64849 --- /dev/null +++ b/guns-front-project/src/components/common/DropDown/index.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/guns-front-project/src/components/common/IconFont/index.vue b/guns-front-project/src/components/common/IconFont/index.vue new file mode 100644 index 00000000..1f5f4869 --- /dev/null +++ b/guns-front-project/src/components/common/IconFont/index.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/api/SelectionApi.js b/guns-front-project/src/components/common/Selection/api/SelectionApi.js new file mode 100644 index 00000000..824815d3 --- /dev/null +++ b/guns-front-project/src/components/common/Selection/api/SelectionApi.js @@ -0,0 +1,9 @@ +import Request from '@/utils/request/request-util'; + +/** + * 选择组件 -api + * + */ +export class SelectionApi { + +} \ No newline at end of file diff --git a/guns-front-project/src/components/common/Selection/components/common.js b/guns-front-project/src/components/common/Selection/components/common.js new file mode 100644 index 00000000..b2f9499b --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/common.js @@ -0,0 +1,90 @@ +/** + * 单选 + * @param {*当前行数据} record + * @param {*是选中状态还是取消选中状态} selected + * @param {*需要添加或删除的数组} lsit + * @param {*需要添加或删除数组的名字} listName + * @param {*需要添加或删除当前行的id} listId + */ +export function radioSelect(record, selected, list, listId, listName) { + // 为选中状态时 + if (selected) { + let obj = { + bizId: record[listId], + name: record[listName], + ...record, + }; + if (!list.find(userItem => userItem.bizId == record[listId])) { + list.push(obj); + } + } else { + // 为不选中状态时,删除当前行 + list.splice( + list.findIndex(item => item.bizId === record[listId]), + 1 + ); + } +} + +/** + * 多选 + * @param {*是选中状态还是取消选中状态} selected + * @param {*改变数据的数组} changeRows + * @param {*需要添加或删除的数组} list + * @param {*需要添加或删除当前行的id} listId + * @param {*需要添加或删除数组的名字} listName + */ +export function checkBox(selected, changeRows, list, listId, listName) { + if (selected) { + // 全选时遍历选中的数组,加入已选列表 + changeRows.forEach(item => { + if (!list.find(userItem => userItem.bizId == item[listId])) { + let obj = { + bizId: item[listId], + name: item[listName], + ...item, + }; + list.push(obj); + } + }); + } else { + // 反选时删除当前页的全部数据 + changeRows.forEach(item => { + for (let i = list.length - 1; i >= 0; i--) { + if (item[listId] == list[i].bizId) { + list.splice(i, 1); + } + } + }); + } +} + +/** + * 获取表格选中的数据列表 + * @param {*} list + * @param {*} id + * @param {*} valList + */ +export function getSelectedRowKeys(list, id, valList,orgId) { + let selectList = []; + let selectedRowKeys = []; + // 表格选择数据跟tree关联-岗位-部门审批人 + if(orgId){ + valList.forEach(value => { + if (value.subValue == orgId) { + selectList.push(value); + } + }); + }else{ + selectList = valList + } + if (list && list.length > 0) { + list.forEach(listItem => { + if (selectList.find(item => item.bizId == listItem[id])) { + selectedRowKeys.push(listItem[id]); + } + }); + } + + return selectedRowKeys; +} diff --git a/guns-front-project/src/components/common/Selection/components/org-tree.vue b/guns-front-project/src/components/common/Selection/components/org-tree.vue new file mode 100644 index 00000000..616c4bd4 --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/org-tree.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-company.vue b/guns-front-project/src/components/common/Selection/components/select-company.vue new file mode 100644 index 00000000..22d7019f --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-company.vue @@ -0,0 +1,106 @@ + + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-dept.vue b/guns-front-project/src/components/common/Selection/components/select-dept.vue new file mode 100644 index 00000000..18641a3d --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-dept.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-dicts.vue b/guns-front-project/src/components/common/Selection/components/select-dicts.vue new file mode 100644 index 00000000..ca3eb3dc --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-dicts.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-position.vue b/guns-front-project/src/components/common/Selection/components/select-position.vue new file mode 100644 index 00000000..504ec249 --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-position.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-role.vue b/guns-front-project/src/components/common/Selection/components/select-role.vue new file mode 100644 index 00000000..a48035df --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-role.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/select-user.vue b/guns-front-project/src/components/common/Selection/components/select-user.vue new file mode 100644 index 00000000..fa65ab9b --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/select-user.vue @@ -0,0 +1,205 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/components/selected-list.vue b/guns-front-project/src/components/common/Selection/components/selected-list.vue new file mode 100644 index 00000000..8ad19536 --- /dev/null +++ b/guns-front-project/src/components/common/Selection/components/selected-list.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/guns-front-project/src/components/common/Selection/index.vue b/guns-front-project/src/components/common/Selection/index.vue new file mode 100644 index 00000000..49ed0d32 --- /dev/null +++ b/guns-front-project/src/components/common/Selection/index.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/guns-front-project/src/components/common/Vertify/api/VertifyApi.js b/guns-front-project/src/components/common/Vertify/api/VertifyApi.js new file mode 100644 index 00000000..641f08c1 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/api/VertifyApi.js @@ -0,0 +1,17 @@ +import Request from '@/utils/request/request-util'; + +/** + * 登录退出接口 + * + * @author fengshuonan + * @date 2021/4/1 14:34 + */ +export class VertifyApi { + /** + * 获取拖拽验证码的接口 + * + */ + static getDragCaptcha(params) { + return Request.get('/getDragCaptcha', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/components/common/Vertify/images.js b/guns-front-project/src/components/common/Vertify/images.js new file mode 100644 index 00000000..4f8d9c53 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/images.js @@ -0,0 +1,3 @@ +export const logo = `data:image/png;base64,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` + +export const background = `data:image/jpeg;base64,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` diff --git a/guns-front-project/src/components/common/Vertify/index.vue b/guns-front-project/src/components/common/Vertify/index.vue new file mode 100644 index 00000000..7d3194f5 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/index.vue @@ -0,0 +1,530 @@ + + + + + diff --git a/guns-front-project/src/components/common/Vertify/style/animation.less b/guns-front-project/src/components/common/Vertify/style/animation.less new file mode 100644 index 00000000..4716b508 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/style/animation.less @@ -0,0 +1,635 @@ +@import './variables.less'; + +.@{ym-prefix} { + &anim { + transition: all @ym-anim-duration ease; + + /** fade */ + &-fade-enter-active, + &-fade-leave-active { + opacity: 1; + } + + &-fade-enter-from, + &-fade-leave-to { + opacity: 0 + } + + /** scale */ + &-scale-enter-active, + &-scale-leave-active { + opacity: 1; + transform: scale(1); + } + + &-scale-enter-from, + &-scale-leave-to { + transform: scale(0); + opacity: 0 + } + + /** slide left / slide right */ + &-slide-enter-active, + &-slide-leave-active, + &-slide-right-enter-active, + &-slide-right-leave-active { + opacity: 1; + transform: translateX(0); + } + + &-slide-enter-from, + &-slide-leave-to, + &-slide-right-enter-from, + &-slide-right-leave-to { + transform: translateX(20%); + opacity: 0 + } + + /** slide bottom */ + &-slide-bottom-enter-active, + &-slide-bottom-leave-active { + opacity: 1; + transform: translateY(0); + } + + &-slide-bottom-enter-from, + &-slide-bottom-leave-to { + transform: translateY(20%); + opacity: 0 + } + + /** slide fall */ + &-slide-fall-enter-active, + &-slide-fall-leave-active { + opacity: 1; + transform: translate(0%) translateZ(0) rotate(0deg); + } + + &-slide-fall-enter-from, + &-slide-fall-leave-to { + transform: translate(30%) translateZ(660px) rotate(30deg); + opacity: 0 + } + + /** newspaper */ + &-newspaper-enter-active, + &-newspaper-leave-active { + opacity: 1; + transform: scale(1) rotate(0deg); + } + + &-newspaper-enter-from, + &-newspaper-leave-to { + transform-style: preserve-3d; + transform: scale(0) rotate(720deg); + opacity: 0 + } + + /** sticky */ + &-sticky-enter-active, + &-sticky-leave-active { + opacity: 1; + transform: translateY(0); + } + + &-sticky-enter-from, + &-sticky-leave-to { + transform: translateY(-200%); + opacity: 0 + } + + /** flip */ + &-flip-enter-active, + &-flip-leave-active, + &-flip-horizontal-enter-active, + &-flip-horizontal-leave-active { + opacity: 1; + transform: rotateY(0deg); + } + + &-flip-enter-from, + &-flip-leave-to, + &-flip-horizontal-enter-from, + &-flip-horizontal-leave-to { + transform-style: preserve-3d; + transform: rotateY(-70deg); + opacity: 0 + } + + &-flip-vertical-enter-active, + &-flip-vertical-leave-active { + opacity: 1; + transform: rotateX(0deg); + } + + &-flip-vertical-enter-from, + &-flip-vertical-leave-to { + transform-style: preserve-3d; + transform: rotateX(-70deg); + opacity: 0 + } + + /** fall */ + &-fall-enter-active, + &-fall-leave-active { + opacity: 1; + transform: translateZ(0px) rotateX(0deg); + } + + &-fall-enter-from, + &-fall-leave-to { + transform: translateZ(660px) rotateX(20deg); + opacity: 0 + } + + /** rotate */ + &-rotate-enter-active, + &-rotate-leave-active { + transform: translateY(0%) rotateX(0deg); + opacity: 1; + } + + &-rotate-enter-from, + &-rotate-leave-to { + transform-style: preserve-3d; + transform: translateY(100%) rotateX(90deg); + transform-origin: 0 100%; + opacity: 0 + } + + /** sign */ + &-sign-enter-active, + &-sign-leave-active { + transform: rotateX(0deg); + opacity: 1; + } + + &-sign-enter-from, + &-sign-leave-to { + transform-style: preserve-3d; + transform: rotateX(-90deg); + transform-origin: 50% 0; + opacity: 0 + } + + /** slit */ + &-slit-enter-active { + animation: ym-anim-slit @ym-anim-duration forwards ease-out; + } + + &-slit-leave-active { + animation: ym-anim-slit @ym-anim-duration forwards ease-out reverse; + } + + /** shake */ + &-shake-enter-active { + animation: ym-anim-modal-shake @ym-anim-duration forwards linear; + } + + &-shake-leave-active { + animation: ym-anim-modal-shake @ym-anim-duration forwards linear reverse; + } + + /** route change */ + &-page-slide-enter-active, + &-page-slide-leave-active { + transition: all @ym-anim-duration linear; + } + + &-page-slide-leave-from, + &-page-slide-enter-to { + transform: translateX(0); + opacity: 1; + } + + &-page-slide-enter-from { + transform: translateX(100%); + opacity: 0; + } + + &-page-slide-leave-to { + transform: translateX(-100%); + opacity: 0; + } + + /** breadcrumb change */ + &-breadcrumb-enter-active, + &-breadcrumb-leave-active { + transition: all @ym-anim-duration linear; + } + + &-breadcrumb-leave-from, + &-breadcrumb-enter-to { + transform: translateX(0); + opacity: 1; + } + + &-breadcrumb-enter-from { + transform: translateX(-32px); + opacity: 0; + } + + &-breadcrumb-leave-to { + transform: translateX(32px); + opacity: 0; + } + + /** anchor */ + &-anchor-enter-active, + &-anchor-leave-active { + opacity: 1; + transform: translateX(0); + } + + &-anchor-enter-from, + &-anchor-leave-to { + opacity: 0; + transform: translateX(5rem); + } + } +} + +@keyframes ym-anim-wait { + 60% { + -moz-transform: scale(0.75); + -ms-transform: scale(0.75); + -webkit-transform: scale(0.75); + transform: scale(0.75); + } +} + +@keyframes ym-anim-scan { + 0% { + .properties(top, 6); + } + 50% { + .properties(top, 14); + } + 100% { + .properties(top, 6); + } +} + +@keyframes ym-anim-shake { + 0% { + -webkit-transform: translate(0, 0) rotate(0); + -moz-transform: translate(0, 0) rotate(0); + -o-transform: translate(0, 0) rotate(0); + -ms-transform: translate(0, 0) rotate(0); + transform: translate(0, 0) rotate(0); + } + 25% { + -webkit-transform: translate(-12px, 0) rotate(0); + -moz-transform: translate(-12px, 0) rotate(0); + -o-transform: translate(-12px, 0) rotate(0); + -ms-transform: translate(-12px, 0) rotate(0); + transform: translate(-12px, 0) rotate(0); + } + 50% { + -webkit-transform: translate(0, 0) rotate(0); + -moz-transform: translate(0, 0) rotate(0); + -o-transform: translate(0, 0) rotate(0); + -ms-transform: translate(0, 0) rotate(0); + transform: translate(0, 0) rotate(0); + } + 75% { + -webkit-transform: translate(-12px, 0) rotate(0); + -moz-transform: translate(-12px, 0) rotate(0); + -o-transform: translate(-12px, 0) rotate(0); + -ms-transform: translate(-12px, 0) rotate(0); + transform: translate(-12px, 0) rotate(0); + } + 100% { + -webkit-transform: translate(0, 0) rotate(0); + -moz-transform: translate(0, 0) rotate(0); + -o-transform: translate(0, 0) rotate(0); + -ms-transform: translate(0, 0) rotate(0); + transform: translate(0, 0) rotate(0); + } +} + +@keyframes ym-anim-move { + 0% { transform: translate(1px, 1px) } + 33.33% { transform: translate(51px, 1px) } + 66.66% { transform: translate(21px, 51px) } + 100% { transform: translate(1px, 1px) } +} + +@keyframes ym-anim-rotate { + 0% { transform: rotate(0) } + 100% { transform: rotate(360deg) } +} + +@keyframes ym-captcha-modal-open { + 0% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 1); + -moz-transform: scale3d(0, 0, 1); + -o-transform: scale3d(0, 0, 1); + -ms-transform: scale3d(0, 0, 1); + transform: scale3d(0, 0, 1); + } + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + -moz-transform: scale3d(1, 1, 1); + -o-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes ym-captcha-success { + 25% { + -o-transform: (25deg); + -moz-transform: rotate(25deg); + -ms-transform: rotate(25deg); + -webkit-transform: rotate(25deg); + transform: rotate(25deg) + } + 100% { + -o-transform: rotate(-360deg); + -moz-transform: rotate(-360deg); + -ms-transform: rotate(-360deg); + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg) + } +} + +@keyframes ym-captcha-downtip { + 0% { + transform: translateY(-100px); + opacity: 0; + } + 100% { + transform: translateY(0); + opacity: 1; + } +} + +@keyframes ym-anim-slit { + 0% { + transform: translateZ(-3000px) rotateY(90deg); + opacity: 1; + animation-timing-function: ease-in; + } + 50% { + transform: translateZ(-250px) rotateY(89deg); + opacity: 1; + animation-timing-function: ease-in; + } + 100% { + transform: translateZ(0) rotateY(0deg); + opacity: 1; + } +} + +@keyframes ym-anim-modal-shake { + 0% { + opacity: 0; + -webkit-transform: matrix3d(0.7, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.7, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 2.083333% { + -webkit-transform: matrix3d(0.75266, 0, 0, 0, 0, 0.76342, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.75266, 0, 0, 0, 0, 0.76342, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 4.166667% { + -webkit-transform: matrix3d(0.81071, 0, 0, 0, 0, 0.84545, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.81071, 0, 0, 0, 0, 0.84545, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 6.25% { + -webkit-transform: matrix3d(0.86808, 0, 0, 0, 0, 0.9286, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.86808, 0, 0, 0, 0, 0.9286, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 8.333333% { + -webkit-transform: matrix3d(0.92038, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.92038, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 10.416667% { + -webkit-transform: matrix3d(0.96482, 0, 0, 0, 0, 1.05202, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.96482, 0, 0, 0, 0, 1.05202, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 12.5% { + -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1.08204, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1, 0, 0, 0, 0, 1.08204, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 14.583333% { + -webkit-transform: matrix3d(1.02563, 0, 0, 0, 0, 1.09149, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.02563, 0, 0, 0, 0, 1.09149, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 16.666667% { + -webkit-transform: matrix3d(1.04227, 0, 0, 0, 0, 1.08453, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.04227, 0, 0, 0, 0, 1.08453, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 18.75% { + -webkit-transform: matrix3d(1.05102, 0, 0, 0, 0, 1.06666, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.05102, 0, 0, 0, 0, 1.06666, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 20.833333% { + -webkit-transform: matrix3d(1.05334, 0, 0, 0, 0, 1.04355, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.05334, 0, 0, 0, 0, 1.04355, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 22.916667% { + -webkit-transform: matrix3d(1.05078, 0, 0, 0, 0, 1.02012, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.05078, 0, 0, 0, 0, 1.02012, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 25% { + -webkit-transform: matrix3d(1.04487, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.04487, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 27.083333% { + -webkit-transform: matrix3d(1.03699, 0, 0, 0, 0, 0.98534, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.03699, 0, 0, 0, 0, 0.98534, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 29.166667% { + -webkit-transform: matrix3d(1.02831, 0, 0, 0, 0, 0.97688, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.02831, 0, 0, 0, 0, 0.97688, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 31.25% { + -webkit-transform: matrix3d(1.01973, 0, 0, 0, 0, 0.97422, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.01973, 0, 0, 0, 0, 0.97422, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 33.333333% { + -webkit-transform: matrix3d(1.01191, 0, 0, 0, 0, 0.97618, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.01191, 0, 0, 0, 0, 0.97618, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 35.416667% { + -webkit-transform: matrix3d(1.00526, 0, 0, 0, 0, 0.98122, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00526, 0, 0, 0, 0, 0.98122, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 37.5% { + -webkit-transform: matrix3d(1, 0, 0, 0, 0, 0.98773, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1, 0, 0, 0, 0, 0.98773, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 39.583333% { + -webkit-transform: matrix3d(0.99617, 0, 0, 0, 0, 0.99433, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99617, 0, 0, 0, 0, 0.99433, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 41.666667% { + -webkit-transform: matrix3d(0.99368, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99368, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 43.75% { + -webkit-transform: matrix3d(0.99237, 0, 0, 0, 0, 1.00413, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99237, 0, 0, 0, 0, 1.00413, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 45.833333% { + -webkit-transform: matrix3d(0.99202, 0, 0, 0, 0, 1.00651, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99202, 0, 0, 0, 0, 1.00651, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 47.916667% { + -webkit-transform: matrix3d(0.99241, 0, 0, 0, 0, 1.00726, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99241, 0, 0, 0, 0, 1.00726, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 50% { + opacity: 1; + -webkit-transform: matrix3d(0.99329, 0, 0, 0, 0, 1.00671, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99329, 0, 0, 0, 0, 1.00671, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 52.083333% { + -webkit-transform: matrix3d(0.99447, 0, 0, 0, 0, 1.00529, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99447, 0, 0, 0, 0, 1.00529, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 54.166667% { + -webkit-transform: matrix3d(0.99577, 0, 0, 0, 0, 1.00346, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99577, 0, 0, 0, 0, 1.00346, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 56.25% { + -webkit-transform: matrix3d(0.99705, 0, 0, 0, 0, 1.0016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99705, 0, 0, 0, 0, 1.0016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 58.333333% { + -webkit-transform: matrix3d(0.99822, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99822, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 60.416667% { + -webkit-transform: matrix3d(0.99921, 0, 0, 0, 0, 0.99884, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99921, 0, 0, 0, 0, 0.99884, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 62.5% { + -webkit-transform: matrix3d(1, 0, 0, 0, 0, 0.99816, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1, 0, 0, 0, 0, 0.99816, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 64.583333% { + -webkit-transform: matrix3d(1.00057, 0, 0, 0, 0, 0.99795, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00057, 0, 0, 0, 0, 0.99795, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 66.666667% { + -webkit-transform: matrix3d(1.00095, 0, 0, 0, 0, 0.99811, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00095, 0, 0, 0, 0, 0.99811, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 68.75% { + -webkit-transform: matrix3d(1.00114, 0, 0, 0, 0, 0.99851, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00114, 0, 0, 0, 0, 0.99851, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 70.833333% { + -webkit-transform: matrix3d(1.00119, 0, 0, 0, 0, 0.99903, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00119, 0, 0, 0, 0, 0.99903, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 72.916667% { + -webkit-transform: matrix3d(1.00114, 0, 0, 0, 0, 0.99955, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00114, 0, 0, 0, 0, 0.99955, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 75% { + -webkit-transform: matrix3d(1.001, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.001, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 77.083333% { + -webkit-transform: matrix3d(1.00083, 0, 0, 0, 0, 1.00033, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00083, 0, 0, 0, 0, 1.00033, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 79.166667% { + -webkit-transform: matrix3d(1.00063, 0, 0, 0, 0, 1.00052, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00063, 0, 0, 0, 0, 1.00052, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 81.25% { + -webkit-transform: matrix3d(1.00044, 0, 0, 0, 0, 1.00058, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00044, 0, 0, 0, 0, 1.00058, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 83.333333% { + -webkit-transform: matrix3d(1.00027, 0, 0, 0, 0, 1.00053, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00027, 0, 0, 0, 0, 1.00053, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 85.416667% { + -webkit-transform: matrix3d(1.00012, 0, 0, 0, 0, 1.00042, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1.00012, 0, 0, 0, 0, 1.00042, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 87.5% { + -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1.00027, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1, 0, 0, 0, 0, 1.00027, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 89.583333% { + -webkit-transform: matrix3d(0.99991, 0, 0, 0, 0, 1.00013, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99991, 0, 0, 0, 0, 1.00013, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 91.666667% { + -webkit-transform: matrix3d(0.99986, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99986, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 93.75% { + -webkit-transform: matrix3d(0.99983, 0, 0, 0, 0, 0.99991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99983, 0, 0, 0, 0, 0.99991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 95.833333% { + -webkit-transform: matrix3d(0.99982, 0, 0, 0, 0, 0.99985, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99982, 0, 0, 0, 0, 0.99985, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 97.916667% { + -webkit-transform: matrix3d(0.99983, 0, 0, 0, 0, 0.99984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(0.99983, 0, 0, 0, 0, 0.99984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } + + 100% { + opacity: 1; + -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + } +} \ No newline at end of file diff --git a/guns-front-project/src/components/common/Vertify/style/index.less b/guns-front-project/src/components/common/Vertify/style/index.less new file mode 100644 index 00000000..ed14d0b0 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/style/index.less @@ -0,0 +1,217 @@ +@import './variables.less'; +@import './animation.less'; + +img { + width: 100%; + height: 100%; +} + +// captcha +@ym-captcha: ~'@{ym-prefix}captcha'; +@ym-icon: ~'@{ym-prefix}icon'; + +.@{ym-captcha} { + width: 100%; + .properties(height, 42); + font-family: @ym-font-family; + + &-content { + width: 100%; + height: 100%; + position: relative; + } + + &-radar { + .flex(center, flex-start); + height: 100%; + width: 100%; + .linear-gradient-background(); + border: 1px solid var(--ym-theme, @ym-theme); + box-shadow: 0 0 4px var(--ym-theme, @ym-theme); + cursor: pointer; + .properties(min-width, 160); + position: relative; + + &-ready, + &-scan, + &-being, + &-success { + .flex(); + flex-wrap: nowrap; + position: relative; + transition: all @ym-anim-duration ease; + .properties(width, 30); + .properties(height, 30); + .properties(margin, 6); + } + + &-ring, + &-dot { + position: absolute; + .border-radius-circle(); + transform: scale(.4); + width: 100%; + height: 100%; + box-shadow: inset 0 0 0 1px var(--ym-theme, @ym-theme); + background-image: linear-gradient(0, rgba(0, 0, 0, 0) 50%, #fff 50%), linear-gradient(0, #fff 50%, rgba(0, 0, 0, 0) 50%); + } + + &-dot { + background: var(--ym-theme, @ym-theme); + } + + &-ring { + animation: ym-anim-wait 1s infinite; + transform: scale(1); + } + + &-scan { + .double-ring { + width: 100%; + height: 100%; + position: relative; + transform: translateZ(0) scale(1); + backface-visibility: hidden; + transform-origin: 0 0; + + > div { + position: absolute; + .properties(width, 24); + .properties(height, 24); + .properties(top, 3); + .properties(left, 3); + .border-radius-circle(); + border: 3px solid var(--ym-ink, @ym-ink); + border-color: var(--ym-theme, @ym-theme) transparent var(--ym-theme, @ym-theme) transparent; + animation: ym-anim-rotate .8s linear infinite; + } + + > div:nth-child(2) { + .properties(width, 14); + .properties(height, 14); + .properties(top, 8); + .properties(left, 8); + border-color: transparent var(--ym-theme, @ym-theme) transparent var(--ym-theme, @ym-theme); + animation: ym-anim-rotate .5s linear infinite reverse; + } + } + } + + &-being { + .flex(); + .properties(font-size, 14); + font-weight: 600; + color: var(--ym-font, @ym-font); + text-align: center; + } + + &-success { + .flex(); + cursor: default; + + &-icon { + color: var(--ym-theme, @ym-theme); + animation-name: ym-captcha-success; + animation-timing-function: ease; + animation-iteration-count: 1; + animation-delay: .5s; + animation-duration: @ym-anim-duration; + } + } + + &-tip { + .flex(center, flex-start); + .properties(height, 42); + .properties(padding-left, 2); + .properties(font-size, @ym-font-size-normal); + color: var(--ym-font, @ym-font); + .text-ellipsis(); + text-align: left; + + &-error { + color: var(--ym-danger, @ym-danger); + } + } + + &-pass &-tip { + color: var(--ym-theme, @ym-theme); + } + + &-logo { + position: absolute; + .properties(right); + .properties(top, 10); + .properties(width, 20); + .properties(height, 20); + border: 1px solid var(--ym-theme, @ym-theme); + .linear-gradient-background(); + .border-radius-circle(); + overflow: hidden; + + > a { + .flex(); + } + + img { + width: 100%; + height: 100%; + transform: scale(1.1); + } + } + } + + &-success { + position: absolute; + right: 0; + top: 0; + height: 100%; + width: 0; + box-shadow: 0 0 4px var(--ym-captcha-success-bg, @ym-captcha-success-bg); + cursor: default; + transition: width @ym-anim-duration ease; + overflow: hidden; + + &-show{ + background: var(--ym-captcha-success-bg, @ym-captcha-success-bg); + width: 100%; + } + } + + &-message { + position: absolute; + top: 20px; + left: 0; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + z-index: @ym-z-index-modal; + + &-content { + .linear-gradient-background(); + .border-radius(32); + border: 1px solid var(--ym-theme, @ym-theme); + color: var(--ym-danger, @ym-danger); + .properties(padding-top); + .properties(padding-bottom); + .properties(padding-left, 16); + .properties(padding-right, 16); + .flex(); + .properties(line-height, 22); + animation-name: ym-captcha-downtip; + animation-duration: @ym-anim-duration; + animation-timing-function: ease; + animation-fill-mode: forwards; + } + } +} + +.ant-form-item-has-error { + .@{ym-captcha} { + &-radar { + border-color: var(--ym-error, @ym-error); + } + } +} + +@import './modal.less'; \ No newline at end of file diff --git a/guns-front-project/src/components/common/Vertify/style/modal.less b/guns-front-project/src/components/common/Vertify/style/modal.less new file mode 100644 index 00000000..ca11e881 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/style/modal.less @@ -0,0 +1,356 @@ +@import './variables.less'; +@ym-captcha: ~'@{ym-prefix}captcha'; +@ym-icon: ~'@{ym-prefix}icon'; + +.@{ym-captcha} { + &-modal { + position: absolute; + display: block; + transition: all @ym-anim-duration ease; + transform-origin: left center; + z-index: @ym-z-index-modal; + + &-content { + .properties(width, 400); + // position: absolute; + // left: 0; + // height: 300px; + // .properties(top, -157); + .border-radius(); + .linear-gradient-background(); + box-shadow: 0 0 10px var(--ym-dark, @ym-dark); + border: 1px solid var(--ym-theme, @ym-theme); + } + + &-wrap { + position: relative; + .properties(padding, 12); + } + + &-embed { + width: 100%; + height: 0; + position: relative; + left: 0; + top: 0; + .properties(padding-bottom, 200); + overflow: hidden; + } + + &-loading, + &-info { + position: absolute; + } + + &-loading { + .properties(width, 374); + .properties(height, 200); + .flex(); + flex-direction: column; + .border-radius(); + color: #fff; + background: #636363; + .properties(font-size, @ym-font-size-normal); + + &-spinner { + .properties(width, 80); + .properties(height, 80); + display: inline-block; + overflow: hidden; + background: transparent; + + .load > div { + transform: scale(0.8); + transform-origin: 50px 50px; + } + + .load > div > div { + animation: ym-anim-move 3s linear infinite; + position: absolute + } + + .load > div > div div:nth-child(1) { + .properties(width, 36); + .properties(height, 36); + border-radius: 50%; + border: 6px solid var(--ym-theme, @ym-theme); + background: transparent; + } + + .load > div > div div:nth-child(2) { + .properties(width, 8.5); + .properties(height, 25.5); + transform: rotate(-45deg); + background: var(--ym-theme, @ym-theme); + border-radius: 0 0 4px 4px; + position: absolute; + .properties(top, 34); + .properties(left, 42.5); + } + + .load { + width: 100%; + height: 100%; + position: relative; + transform: translateZ(0) scale(0.8); + backface-visibility: hidden; + transform-origin: 0 0; + } + .load div { + box-sizing: content-box; + } + } + + &-tip { + .properties(margin-top, 16); + .letter-spacing(4); + } + } + + &-info { + canvas { + position: absolute; + .border-radius(); + + &:first-child { + z-index: 100; + } + + &:last-child { + z-index: 200; + } + } + } + + &-result { + position: absolute; + left: 0; + .properties(bottom, -32); + width: 100%; + color: #fff; + transition: bottom @ym-anim-duration ease; + .flex(center, flex-start); + .properties(text-indent, 12); + .properties(font-size, 14); + .properties(height, 32); + z-index: 220; + + &-success { + background: var(--ym-success, @ym-success); + } + + &-error { + background: var(--ym-danger, @ym-danger); + } + } + + &-slider { + user-select: none; + position: relative; + .properties(margin-top, 16); + .properties(margin-bottom); + margin-right: 0; + + &-track { + background: #fff; + border: 1px solid var(--ym-theme, @ym-theme); + .flex(); + .border-radius(20); + .properties(height, 38); + .properties(padding-left, 60); + overflow: hidden; + + &-tip { + width: 100%; + .properties(height, 38); + .properties(font-size, @ym-font-size-normal); + color: #1d1e23; + .flex(center, flex-start); + flex-wrap: nowrap; + opacity: 1; + transition: opacity .3s ease; + + &.hide { + opacity: 0; + } + } + } + + &-btn { + position: absolute; + .properties(top, -8); + left: 0; + .properties(width, 54); + .properties(height, 54); + .border-radius-circle(); + border: 1px solid var(--ym-theme, @ym-theme); + background: #fff; + .flex(); + cursor: pointer; + box-shadow: 1px 1px 10px var(--ym-dark, @ym-dark); + + &-icon { + .properties(width, 28); + .properties(height, 24); + border: 2px solid var(--ym-dark, @ym-dark); + .border-radius(); + position: relative; + } + + &-vertical { + .properties(width, 8); + .properties(height, 32); + background: #fff; + position: absolute; + .properties(left); + .properties(top, -4); + } + + &-horizontal { + .properties(width, 20); + .properties(height, 2); + background: var(--ym-dark, @ym-dark); + .border-radius(); + position: absolute; + .properties(left, 2); + .properties(top, 11); + transition: all .5 ease; + animation: ym-anim-scan 1.5s linear infinite; + z-index: 20; + } + } + } + + &-panel { + position: relative; + border-top: 1px solid fade(#1d1e23, 10%); + box-shadow: 0 0 2px fade(#fff, 30%); + .properties(height, 50); + .properties(padding-left, 12); + .properties(padding-right, 12); + .flex(center, space-between); + + &-action{ + .flex(); + + .@{ym-icon} { + color: #fff; + .properties(margin-right, 12); + cursor: pointer; + + &:last-child { + margin-right: 0 + } + } + + .anticon { + .properties(font-size, 14); + .properties(width, 14); + .properties(height, 14); + .properties(margin-right, 16); + cursor: pointer; + color: #fff; + + &:last-child { + margin-right: 0; + } + } + + > a { + .flex(); + .properties(height, 14); + } + + &-close { + .properties(width, 20); + .properties(height, 20); + background-color: #fff; + .border-radius-circle(); + .flex(); + transition: all .4s cubic-bezier(.215, .61, .355,1); + box-shadow: 0px 0px 30px 0px fade(#f6ca9d, 50%); + + & > span { + background-color: var(--ym-theme, @ym-theme); + .properties(height, 12); + .border-radius(6); + position: relative; + transition: all @ym-anim-duration cubic-bezier(.215, .61, .355,1); + position: absolute; + top: 50%; + .properties(margin-top, -6); + .properties(left, 18); + .properties(width, 4); + .flex(); + } + } + } + } + + &&-error { + animation-name: ym-anim-shake; + animation-duration: @ym-anim-duration; + animation-timing-function: ease-in-out; + animation-iteration-count: 1.5; + + .@{ym-captcha}-modal { + &-info canvas:last-child, + &-slider-btn { + transition: all @ym-anim-duration ease; + } + } + } + + &-copyright { + .properties(font-size, 12); + .properties(line-height, 16); + color: #fff; + + &-text { + .flex(); + + a { + .properties(width, 20); + .properties(height, 20); + .properties(margin-right); + border: 1px solid var(--ym-theme, @ym-theme); + .border-radius-circle(); + .linear-gradient-background(); + overflow: hidden; + + img { + transform: scale(1.1); + .border-radius-circle(); + } + } + } + } + + &-tooltip { + z-index: @ym-z-index-modal; + + .ant-tooltip { + &-inner { + .border-radius(8); + .linear-gradient-background(); + min-height: unset; + } + } + } + } +} + +.@{ym-lang-en} { + .@{ym-captcha} { + &-modal { + &-result { + &-error { + .properties(bottom, -48); + .properties(height, 48); + .properties(padding-left, 8); + .properties(padding-right, 8); + } + } + } + } +} \ No newline at end of file diff --git a/guns-front-project/src/components/common/Vertify/style/variables.less b/guns-front-project/src/components/common/Vertify/style/variables.less new file mode 100644 index 00000000..ccd0720f --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/style/variables.less @@ -0,0 +1,156 @@ +// prefix. +@ym-prefix: ym-; +@ym-lang-en: ~'@{ym-prefix}lang-en-us'; + +// font-size. +@ym-font-size: 1rem; +@ym-font-size-sm: 12px; +@ym-font-size-normal: 14px; +@ym-font-size-base: 16px; + +// gap. +@ym-gap: 8px; + +// animation duration +@ym-anim-duration: .4s; + +@ym-z-index: 20220511; +@ym-z-index-top: 20220602; +@ym-z-index-mask: 20220614; +@ym-z-index-modal: 20220620; + +@ym-overflow-extend: 21px; + +// color. +@ym-white: #fff; +@ym-black: #000; + +// side menu. +@ym-side-width: (@ym-gap * 32 / @ym-font-size-base) * @ym-font-size; +@ym-side-height: (@ym-gap * 16 / @ym-font-size-base) * @ym-font-size; +@ym-side-large-height: (@ym-gap * 24 / @ym-font-size-base) * @ym-font-size; +@ym-side-width-scroll: ((@ym-gap * 34 + 1) / @ym-font-size-base) * @ym-font-size; +@ym-side-width-sm: (@ym-gap * 10 / @ym-font-size-base) * @ym-font-size; +@ym-side-width-sm-scroll: ((@ym-gap * 12 + 1) / @ym-font-size-base) * @ym-font-size; +@ym-side-width-margin: (@ym-gap * 2 / @ym-font-size-base) * @ym-font-size; +@ym-side-item-height: (@ym-gap * 6.25 / @ym-font-size-base) * @ym-font-size; +@ym-side-logo-size: (@ym-gap * 4 / @ym-font-size-base) * @ym-font-size; +@ym-side-logo-large-size: (@ym-gap * 8 / @ym-font-size-base) * @ym-font-size; + +// header. +@ym-header-height: (@ym-gap * 6 / @ym-font-size-base) * @ym-font-size; +@ym-header-avatar-size: (@ym-gap * 3 / @ym-font-size-base) * @ym-font-size; + +// content +@ym-content-padding-top: (@ym-gap * 15 / @ym-font-size-base) * @ym-font-size; + +// font. +@ym-font-color: #333; +@ym-font-family: "Pingfang SC", "Microsoft YaHei", "Monospaced Number", "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", Helvetica, Arial, sans-serif; +@ym-code-family: Lucida Console, Consolas, "Courier New", "Source Code Pro", "Miscrosoft Yahei", "Segoe UI", "Lucida Grande", Helvetica, Arial, FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", sans-serif; + +// flex. +.flex(@align: center, @justify: center, @direction: row) { + display: flex; + align-items: @align; + justify-content: @justify; + flex-direction: @direction; +} + +// border raiuds. +.border-radius(@raduis: 4) { + border-radius: (@raduis / @ym-font-size-base) * @ym-font-size; +} + +.border-radius-circle() { + border-radius: 50%; +} + +.linear-gradient-background() { + background-color: var(--ym-dark, @ym-dark); + background-image: linear-gradient(315deg, var(--ym-black, @ym-black) 0%, var(--ym-pre-dark, @ym-pre-dark) 74%); +} + +.linear-gradient-background-theme() { + background-color: var(--ym-theme, @ym-theme); + background-image: linear-gradient(127deg, var(--ym-gradient-s, @ym-gradient-s) 0%, var(--ym-gradient-m, @ym-gradient-m) 52%, var(--ym-gradient-e, @ym-gradient-e) 100%); +} + +.linear-gradient-text() { + background: transparent linear-gradient(127deg, var(--ym-gradient-s, @ym-gradient-s) 0%, var(--ym-gradient-m, @ym-gradient-m) 52%, var(--ym-gradient-e, @ym-gradient-e) 100%); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + background-clip: text; +} + +// font size +.font-size(@size: @ym-font-size-normal) { + font-size: (@size / @ym-font-size-base) * @ym-font-size; + line-height: ((@size + 4) / @ym-font-size-base) * @ym-font-size; +} + +// linear-gradient +.linear-gradient() { + background: linear-gradient(127deg, var(--ym-gradient-s, @ym-gradient-s) 0%, var(--ym-gradient-m, @ym-gradient-m) 52%, var(--ym-gradient-e, @ym-gradient-e) 100%); + color: linear-gradient(127deg, var(--ym-gradient-s, @ym-gradient-s) 0%, var(--ym-gradient-m, @ym-gradient-m) 52%, var(--ym-gradient-e, @ym-gradient-e) 100%); +} + +// properties +.properties(@key, @value: @ym-gap) { + @{key}: (@value / @ym-font-size-base) * @ym-font-size; +} + +// text overflow ellipsis. +.text-ellipsis() { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// letter spacing. +.letter-spacing(@value: 2) { + .properties(letter-spacing, @value); +} + +// tag +.tag(@bgColor: #ff5500, @txtColor: @ym-white) { + background: @bgColor; + margin-right: 0; + .border-radius(16); + color: @txtColor; + .properties(line-height, 18); + .properties(max-width, 64); + .text-ellipsis(); + .properties(padding-left); + .properties(padding-right); + .properties(font-size, 12); + .properties(height, 20); +} + +@ym-theme: #f6ca9d; +@ym-primary: @ym-theme; +@ym-subsidiary: #808695; +@ym-success: #2F9688; +@ym-error: #ff4d4f; +@ym-danger: #ed4014; +@ym-warning: #ff9900; +@ym-info: #2db7f5; +@ym-selection: fade(@ym-theme, 80%); +@ym-link: @ym-primary; +@ym-font: @ym-white; +@ym-ink: @ym-black; +@ym-dark: #1d1e23; +@ym-deep: #2d2f32; +@ym-night: #3e3e3e; +@ym-dawn: #4c4c4c; +@ym-dark-grey: #333; +@ym-light-grey: #949494; +@ym-pre-dark: #434343; +@ym-light-purple: #5a72af; +@ym-light-blue: #8da6b8; +@ym-gradient-s: #d2b27d; +@ym-gradient-m: #f4d5a9; +@ym-gradient-e: #d1a466; + +// captcha +@ym-captcha-success-bg: fade(@ym-theme, 20%); \ No newline at end of file diff --git a/guns-front-project/src/components/common/Vertify/tools.js b/guns-front-project/src/components/common/Vertify/tools.js new file mode 100644 index 00000000..d9cac0c5 --- /dev/null +++ b/guns-front-project/src/components/common/Vertify/tools.js @@ -0,0 +1,335 @@ +class MiTools { + /** + * 是否为移动端. + * 注: iPad Safari 获取的 ua 与 Mac Safari 一致, 需独立判断. + * @returns + */ + isMobile() { + const ua = navigator.userAgent; + const agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']; + const isSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Version') !== -1; + const isIPhone = ua.indexOf('iPhone') !== -1 && ua.indexOf('Version') !== -1; + const isIPad = isSafari && !isIPhone && 'ontouchend' in document; + let mobile = false; + if (isIPad) { + mobile = true; + } else { + for (let i = 0, len = agents.length; i < len; i++) { + if (ua.indexOf(agents[i]) > 0) { + mobile = true; + break; + } + } + } + return mobile; + } + + /** + * Format string content. + * @param str + * @param formatter + */ + formatEmpty(str, formatter) { + if (this.isEmpty(str)) return formatter ?? '-'; + return str; + } + + /** + * Whether the string content is empty. + * @param str + * @param format + */ + isEmpty(str, format = false) { + let result = str === null || str == '' || typeof str === 'undefined'; + if (format) result = this.formatEmpty(str); + return result; + } + + /** + * Whether the `element / params` is valid. + * @param value + */ + isValid(value) { + return value !== undefined && value !== null && value !== ''; + } + + /** + * Whether it is a number. + * @param number + */ + isNumber(number) { + return typeof number === 'number' && isFinite(number); + } + + /** + * Get the password strength. + * return a number level ( 1 - 4 ). + * @param password + */ + getPasswordStrength(password) { + const reg = { + lower: /[a-z]/, + upper: /[A-Z]/, + number: /[\d]/, + character: /[~!@#$%^&*()_+=\-.,]/ + }; + let strength = 0; + if (reg.lower.test(password)) strength++; + if (reg.upper.test(password)) strength++; + if (reg.number.test(password)) strength++; + if (reg.character.test(password)) strength++; + return strength; + } + + /** + * random. + * @returns {string} + */ + random() { + return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); + } + + /** + * Generate a random number within the specified range. + * @param start + * @param end + * @returns {number} + */ + randomNumberInRange(start, end) { + return Math.round(Math.random() * (end - start) + start); + } + + /** + * Generate unique string. + * @param upper + * @returns {string} + */ + uid(upper = false, prefix) { + let str = ( + this.random() + + this.random() + + this.random() + + this.random() + + this.random() + + this.random() + + this.random() + + this.random() + ).toLocaleUpperCase(); + if (prefix) str = prefix + str; + return upper ? str.toUpperCase() : str.toLowerCase(); + } + + /** + * replace url parameters. + * @param url + * @param params + * @returns + */ + replaceUrlParams(url, params) { + if (Object.keys(params).length > 0) { + for (const i in params) { + if (params.hasOwnProperty(i)) { + const reg = new RegExp('{' + i + '}', 'gi'); + url = url.replace(reg, params[i]); + } + } + } + return url; + } + + /** + * Unit conversion. + * @param value + * @param base + */ + px2Rem(value, base = 16) { + return value ? Math.round((value / base) * 100) / 100 : value; + } + + /** + * 转成rem. + * @param num + * @returns + */ + convert2Rem(num) { + return $tools.isNumber(num) + ? `${this.px2Rem(parseInt(num.toString()))}rem` + : num + ? /%/g.test(num.toString()) + ? num + : `${this.px2Rem(parseInt(num.toString()))}rem` + : null; + } + + /** + * convert color. + * @param color + * @param opacity + */ + colorHex2Rgba(color, opacity = 1) { + if (color) { + const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + if (reg.test(color)) { + if (color.length === 4) { + let newColor = '#'; + for (let i = 1; i < 4; i++) { + newColor += color.slice(i, i + 1).concat(color.slice(i, i + 1)); + } + color = newColor; + } + const changeColor = []; + for (let i = 1; i < 7; i += 2) { + changeColor.push(parseInt('0x' + color.slice(i, i + 2))); + } + return `rgba(${changeColor.join(',')}, ${opacity})`; + } + } else return color; + } + + /** + * convert color. + * @param color + */ + colorRgb2Hex(color) { + if (color) { + const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + if (/^(rgb|RGB)/.test(color)) { + const aColor = color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(','); + let strHex = '#'; + for (let i = 0; i < aColor.length; i++) { + let hex = Number(aColor[i]).toString(16); + if (hex === '0') hex += hex; + strHex += hex; + } + if (strHex.length !== 7) strHex = color; + return strHex; + } else if (reg.test(color)) { + const aNum = color.replace(/#/, '').split(''); + if (aNum.length === 6) { + return color; + } else if (aNum.length === 3) { + let numHex = '#'; + for (let i = 0; i < aNum.length; i += 1) { + numHex += aNum[i] + aNum[i]; + } + return numHex; + } + } + } else return color; + } + + /** + * requestAnimationFrame. + * @param callback + * @returns + */ + raf(callback) { + return window.requestAnimationFrame(callback) || window.setTimeout(callback, 1000 / 60); + } + + /** + * cancelAnimationFrame. + * @param rid + */ + caf(rid) { + window.cancelAnimationFrame(rid); + } + + /** + * Gets the actual height of the element from the top of the document. + * @param el + * @param pos + * @returns + */ + getElementActualTopOrLeft(el, pos = 'top') { + let actual = pos === 'left' ? el.offsetLeft : el.offsetTop; + let current = el.offsetParent; + while (current !== null) { + actual += pos === 'left' ? current.offsetLeft : current.offsetTop; + current = current.offsetParent; + } + return actual; + } + + /** + * scroll to top ( animation ). + * @param el + * @param from + * @param to + * @param duration + * @param endCallback + */ + scrollTop(el, from = 0, to, duration = 800, endCallback) { + const difference = Math.abs(from - to); + const step = Math.ceil((difference / duration) * 50); + let rid; + function scroll(start, end, step, vm) { + if (start === end) { + if (rid) vm.caf(rid); + endCallback && endCallback(); + return; + } + let d = start + step > end ? end : start + step; + if (start > end) d = start - step < end ? end : start - step; + if (el === window) window.scrollTo(d, d); + else el.scrollTop = d; + rid = vm.raf(() => scroll(d, end, step, vm)); + } + scroll(from, to, step, this); + } + + /** + * back to top. + * @param offset + * @param duration + */ + back2top(offset = 0, duration = 1000) { + const top = offset ?? (document.documentElement.scrollTop || document.body.scrollTop); + this.scrollTop(document.body, top, 0, duration); + } + + /** + * add event listener. + * @param el + * @param event + * @param listener + * @param useCapture + */ + on(el, event, listener, useCapture) { + if (!!document.addEventListener) { + if (el && event && listener) el.addEventListener(event, listener, useCapture); + } else { + if (el && event && listener) el.attachEvent(`on${event}`, listener); + } + } + + /** + * remove event listener. + * @param el + * @param event + * @param listener + * @param useCapture + */ + off(el, event, listener, useCapture) { + if (!!document.addEventListener) { + if (el && event && listener) el.removeEventListener(event, listener, useCapture); + } else { + if (el && event && listener) el.detachEvent(`on${event}`, listener); + } + } + + /** + * transfer. + * @param html + * @returns + */ + htmlEncode(html) { + let temp = document.createElement('div'); + temp.textContent !== null ? (temp.textContent = html) : (temp.innerText = html); + const output = temp.innerHTML; + temp = null; + return output; + } +} + +export const $tools = new MiTools(); diff --git a/guns-front-project/src/components/layout/components/layout-header.vue b/guns-front-project/src/components/layout/components/layout-header.vue new file mode 100644 index 00000000..71e64cc6 --- /dev/null +++ b/guns-front-project/src/components/layout/components/layout-header.vue @@ -0,0 +1,144 @@ + + + + + + diff --git a/guns-front-project/src/components/layout/components/layout-menus.js b/guns-front-project/src/components/layout/components/layout-menus.js new file mode 100644 index 00000000..51b1d0c3 --- /dev/null +++ b/guns-front-project/src/components/layout/components/layout-menus.js @@ -0,0 +1,146 @@ +/** 菜单 */ +import { defineComponent, h } from 'vue'; +import { RouterLink } from 'vue-router'; +import { Menu as AMenu, MenuItem as AMenuItem, SubMenu as ASubMenu, MenuItemGroup as AMenuItemGroup } from 'ant-design-vue/es'; +import { isExternalLink } from '@/utils/common/menu-util'; + +export default defineComponent({ + name: 'LayoutMenus', + props: { + // 菜单数据 + data: { + type: Array, + required: true + }, + // 菜单类型 + mode: { + type: String, + default: 'inline' + }, + // 菜单主题 + theme: { + type: String, + default: 'light' + }, + // 展开的菜单 + openKeys: Array, + // 菜单选中 + selectedKeys: Array, + // 是否折叠 + inlineCollapse: Boolean, + // 菜单缩进 + inlineIndent: Number, + // 一级父菜单 popup class + firstPopClass: String, + // 标题插槽名称 + titleSlot: { + type: String, + default: 'title' + }, + // 图标插槽名称 + iconSlot: { + type: String, + default: 'icon' + }, + // 是否显示图标 + showIcon: { + type: Boolean, + default: true + } + }, + emits: ['openChange', 'titleClick'], + setup(props, { emit, slots }) { + /* 递归渲染菜单节点 */ + const renderItems = (data, popupClassName) => { + const nodes = []; + data?.forEach(item => { + if (item.meta?.hide) { + return; + } + // 图标插槽 + const iconSlot = + props.showIcon && item.meta?.icon + ? () => { + const t = slots[props.iconSlot]; + return t ? t({ icon: item.meta.icon, item }) : void 0; + } + : void 0; + // 标题节点 + const titleSlot = slots[props.titleSlot]; + const titleNode = titleSlot ? titleSlot({ title: item.meta?.title, item }) : h('span', {}, item.meta?.title); + // 子级节点 + if (!item.children?.some(d => !d.meta?.hide)) { + let linkNode; + // 超链接节点 + if (isExternalLink(item.path)) { + linkNode = h('a', { href: item.path, target: '_blank' }); + } else if (isExternalLink(item.redirect)) { + linkNode = h('a', { href: item.redirect, target: '_blank' }); + } else { + linkNode = h(RouterLink, { to: item.redirect ? item.redirect : item.path }); + } + + nodes.push( + h( + AMenuItem, + { key: item.path }, + { + default: () => [titleNode, linkNode], + icon: iconSlot + } + ) + ); + return; + } + // 父级节点 + if (item.meta?.group) { + nodes.push( + h( + AMenuItemGroup, + { key: item.path }, + { + default: () => renderItems(item.children), + title: () => titleNode + } + ) + ); + } else { + nodes.push( + h( + ASubMenu, + { + key: item.path, + popupClassName, + onTitleClick: key => emit('titleClick', key, item) + }, + { + default: () => renderItems(item.children), + title: () => titleNode, + icon: iconSlot + } + ) + ); + } + }); + return nodes; + }; + + return () => { + return h( + AMenu, + { + mode: props.mode, + theme: props.theme, + openKeys: props.openKeys, + selectedKeys: props.selectedKeys, + inlineCollapse: props.inlineCollapse, + inlineIndent: props.inlineIndent, + titleSlot: props.titleSlot, + iconSlot: props.iconSlot, + onOpenChange: keys => emit('openChange', keys) + }, + () => renderItems(props.data, props.firstPopClass) + ); + }; + } +}); diff --git a/guns-front-project/src/components/layout/components/layout-sidebar.vue b/guns-front-project/src/components/layout/components/layout-sidebar.vue new file mode 100644 index 00000000..27390188 --- /dev/null +++ b/guns-front-project/src/components/layout/components/layout-sidebar.vue @@ -0,0 +1,125 @@ + + + + diff --git a/guns-front-project/src/components/layout/components/tab-dropdown.js b/guns-front-project/src/components/layout/components/tab-dropdown.js new file mode 100644 index 00000000..1587074b --- /dev/null +++ b/guns-front-project/src/components/layout/components/tab-dropdown.js @@ -0,0 +1,92 @@ +/** 页签栏下拉菜单 */ +import { defineComponent, h } from 'vue'; +import { + Dropdown as ADropdown, + Menu as AMenu, + MenuItem as AMenuItem +} from 'ant-design-vue/es'; +import DownOutlined from '@ant-design/icons-vue/es/icons/DownOutlined'; +import ReloadOutlined from '@ant-design/icons-vue/es/icons/ReloadOutlined'; +import ArrowLeftOutlined from '@ant-design/icons-vue/es/icons/ArrowLeftOutlined'; +import ArrowRightOutlined from '@ant-design/icons-vue/es/icons/ArrowRightOutlined'; +import CloseCircleOutlined from '@ant-design/icons-vue/es/icons/CloseCircleOutlined'; +import ExpandOutlined from '@ant-design/icons-vue/es/icons/ExpandOutlined'; +import CompressOutlined from '@ant-design/icons-vue/es/icons/CompressOutlined'; +import MinusCircleOutlined from '@ant-design/icons-vue/es/icons/MinusCircleOutlined'; +import { useLocale } from '@/i18n/use-locale'; + +export default defineComponent({ + name: 'LayoutTabDropdown', + props: { + active: String, + showRefresh: Boolean, + bodyFullscreen: Boolean + }, + emits: ['menu-click'], + setup(props, { emit, slots }) { + const { locale } = useLocale({ name: 'tabs' }); + + /* 菜单 item 点击事件 */ + const onClick = ({ key }) => { + emit('menu-click', key); + }; + + /* 渲染菜单 item */ + const hMI = ( + key, + label, + icon, + scale + ) => { + return h(AMenuItem, { key }, () => { + return h('div', { class: 'guns-dropdown-item' }, [ + h(icon, { + style: { transform: scale ? `scale(${scale})` : void 0 } + }), + h('div', { class: 'guns-dropdown-item-label' }, label) + ]); + }); + }; + + return () => { + return h( + ADropdown, + { + placement: 'bottomRight', + overlayClassName: 'guns-admin-tabs-drop-popper' + }, + { + default: () => { + return h('div', { class: 'guns-tab-dropdowm' }, h(DownOutlined)); + }, + overlay: () => { + if (slots.dropdown) { + return slots.dropdown({ + active: props.active, + refresh: props.showRefresh + }); + } + const items = [ + hMI( + 'fullscreen', + props.bodyFullscreen + ? locale.value.fullscreenExit + : locale.value.fullscreen, + props.bodyFullscreen ? CompressOutlined : ExpandOutlined, + 0.9 + ), + hMI('left', locale.value.closeLeft, ArrowLeftOutlined), + hMI('right', locale.value.closeRight, ArrowRightOutlined), + hMI('other', locale.value.closeOther, MinusCircleOutlined, 1.02), + hMI('all', locale.value.closeAll, CloseCircleOutlined, 1.02) + ]; + if (props.showRefresh) { + items.push(hMI('reload', locale.value.reload, ReloadOutlined)); + } + return h(AMenu, { selectable: false, onClick }, () => items); + } + } + ); + }; + } +}); diff --git a/guns-front-project/src/components/layout/components/tab-tool.vue b/guns-front-project/src/components/layout/components/tab-tool.vue new file mode 100644 index 00000000..09cd248d --- /dev/null +++ b/guns-front-project/src/components/layout/components/tab-tool.vue @@ -0,0 +1,19 @@ + + + diff --git a/guns-front-project/src/components/layout/index.vue b/guns-front-project/src/components/layout/index.vue new file mode 100644 index 00000000..5e2f4a6c --- /dev/null +++ b/guns-front-project/src/components/layout/index.vue @@ -0,0 +1,726 @@ + + + + diff --git a/guns-front-project/src/components/layout/layout-config-provider/index.js b/guns-front-project/src/components/layout/layout-config-provider/index.js new file mode 100644 index 00000000..7e0580f5 --- /dev/null +++ b/guns-front-project/src/components/layout/layout-config-provider/index.js @@ -0,0 +1,61 @@ +/** 全局配置组件 */ +import { defineComponent, reactive, watch } from 'vue'; + +export default defineComponent({ + name: 'LayoutConfigProvider', + props: { + // 表格全局 request + request: Object, + // 表格全局 response + response: Object, + // 表格全局配置 + table: Object, + // 国际化配置 + locale: Object, + // 是否开启 keep-alive + keepAlive: Boolean + }, + setup(props, { slots }) { + const config = reactive({ ...props }); + + watch( + () => props.request, + () => { + config.request = props.request; + }, + { deep: true } + ); + + watch( + () => props.response, + () => { + config.response = props.response; + }, + { deep: true } + ); + + watch( + () => props.table, + () => { + config.table = props.table; + }, + { deep: true } + ); + + watch( + () => props.locale, + () => { + config.locale = props.locale; + } + ); + + watch( + () => props.keepAlive, + () => { + config.keepAlive = props.keepAlive; + } + ); + + return () => slots.default?.(); + } +}); diff --git a/guns-front-project/src/components/layout/props.js b/guns-front-project/src/components/layout/props.js new file mode 100644 index 00000000..e69a9745 --- /dev/null +++ b/guns-front-project/src/components/layout/props.js @@ -0,0 +1,161 @@ +export default { + // 菜单数据 + menus: { + type: Array, + default: () => { + return []; + } + }, + // 页签数据 + tabs: { + type: Array, + default: () => { + return []; + } + }, + // 是否折叠侧栏菜单 + collapse: Boolean, + // 是否折叠侧栏一级菜单 + sideNavCollapse: Boolean, + // 内容区域是否全屏 + bodyFullscreen: Boolean, + // 是否显示侧栏折叠按钮 + showCollapse: { + type: Boolean, + default: true + }, + // 是否显示刷新按钮 + showRefresh: { + type: Boolean, + default: false + }, + // 是否显示面包屑导航 + showBreadcrumb: { + type: Boolean, + default: true + }, + // 是否显示全局页脚 + showFooter: Boolean, + // 是否需要返回顶部组件 + showBackTop: { + type: Boolean, + default: true + }, + // 顶栏风格, light | dark | primary + headStyle: { + type: String, + default: 'light', + validator: (value) => { + return ['light', 'dark', 'primary'].includes(value); + } + }, + // 侧栏风格, light | dark + sideStyle: { + type: String, + default: 'dark', + validator: (value) => { + return ['light', 'dark'].includes(value); + } + }, + // 布局风格, side | mix + layoutStyle: { + type: String, + default: 'side', + validator: (value) => { + return ['side', 'top', 'mix'].includes(value); + } + }, + // 侧栏菜单模式, default | mix + sideMenuStyle: { + type: String, + default: 'default', + validator: (value) => { + return ['default', 'mix'].includes(value); + } + }, + // 是否固定主体 + fixedBody: Boolean, + // 内容区域宽度是否铺满 + bodyFull: { + type: Boolean, + default: true + }, + // logo 宽度是否自适应 + logoAutoSize: Boolean, + // 侧栏是否只保持一个子菜单展开 + sideUniqueOpen: { + type: Boolean, + default: true + }, + // 菜单缩进量 + inlineIndent: { + type: Number, + default: 16 + }, + // 面包屑导航分隔符 + breadcrumbSeparator: { + type: String, + default: '/' + }, + // 返回顶部可见的滚动高度 + backTopVisibilityHeight: { + type: Number, + default: 200 + }, + // 内容区域全屏时是否不显示页签栏 + contentFullscreen: Boolean, + // 是否按返回键退出内容区域全屏 + fullscreenExitOnEsc: Boolean, + // 是否再次点击选中页签刷新 + clickReload: Boolean, + // 项目名 + projectName: String, + // 主页标题 + homeTitle: String, + // 主页路由的 path + homePath: { + type: String, + default: '/' + }, + // 外层布局的路由地址 + layoutPath: { + type: String, + default: '/' + }, + // 刷新路由的 path + redirectPath: { + type: String, + default: '/redirect/' + }, + // 不显示全局页脚的路由 + hideFooters: Array, + // 不显示侧栏的路由 + hideSidebars: Array, + // 同路由不同参数可重复打开页签的路由地址 + repeatableTabs: Array, + // 国际化的当前语言 + locale: String, + // 国际化的自定义菜单标题方法 + i18n: Function, + // 侧栏默认展开的菜单 key + sideDefaultOpeneds: Array, + // 固定主体时切换路由自动滚动到顶部 + autoScrollTop: { + type: Boolean, + default: true + }, + // 是否开启页签右键菜单 + tabContextMenu: { + type: Boolean, + default: true + }, + // 是否支持页签拖动排序 + tabSortable: Boolean, + // 是否显示页签左右滚动箭头 + tabArrow: Boolean, + // 是否开启响应式 + styleResponsive: { + type: Boolean, + default: true + } +}; diff --git a/guns-front-project/src/components/layout/style/collapse.less b/guns-front-project/src/components/layout/style/collapse.less new file mode 100644 index 00000000..47ff902b --- /dev/null +++ b/guns-front-project/src/components/layout/style/collapse.less @@ -0,0 +1,88 @@ +@import './themes/default.less'; + +/* 折叠侧栏 */ +.guns-admin-collapse { + .guns-admin-logo > span { + display: none; + } + + &:not(.guns-admin-side-mix) { + .guns-admin-logo, + .guns-admin-sidebar { + width: @sidebar-collapse-width; + } + } + + .guns-admin-sidebar .ant-menu-inline-collapsed { + width: 100%; + } + + .guns-admin-sidebar .ant-menu > .ant-menu-item, + .guns-admin-sidebar .ant-menu > .ant-menu-submenu > .ant-menu-submenu-title { + padding: 0 calc(calc(@sidebar-collapse-width - @menu-icon-size-lg) / 2) !important; + } + + &.guns-admin-side-mix .guns-admin-sidebar-nav { + box-shadow: @sidebar-light-shadow; + + & + .guns-admin-sidebar { + width: 0; + } + } + + .guns-admin-sidebar + .guns-admin-body { + width: calc(100% - @sidebar-collapse-width); + } + + &.guns-admin-side-mix:not(.guns-admin-nav-collapse) { + .guns-admin-sidebar + .guns-admin-body { + width: calc(100% - @sidebar-nav-width); + } + } +} + +/* 折叠一级侧栏 */ +.guns-admin-nav-collapse.guns-admin-side-mix { + .guns-admin-logo { + width: @sidebar-collapse-width; + } + + .guns-admin-sidebar-nav { + width: @sidebar-collapse-width; + + & > .guns-admin-sidebar-nav-menu { + padding: @sidebar-collapse-nav-padding; + + & > .ant-menu { + & > .ant-menu-item, + & > .ant-menu-submenu { + margin: @sidebar-collapse-nav-item-margin; + } + + & > .ant-menu-item, + & > .ant-menu-submenu > .ant-menu-submenu-title { + padding: @sidebar-collapse-nav-item-padding !important; + + & > .ant-menu-item-icon { + font-size: @menu-icon-size-lg; + } + + & > .ant-menu-title-content > span { + margin: 0; + max-height: 0; + transform: scale(0); + visibility: hidden; + } + } + } + } + } + + .guns-admin-body { + width: calc(100% - @sidebar-collapse-width); + } + + &:not(.guns-admin-collapse) .guns-admin-sidebar + .guns-admin-body { + width: calc(100% - @sidebar-width); + } +} diff --git a/guns-front-project/src/components/layout/style/common.less b/guns-front-project/src/components/layout/style/common.less new file mode 100644 index 00000000..99c1d8c3 --- /dev/null +++ b/guns-front-project/src/components/layout/style/common.less @@ -0,0 +1,693 @@ +/** 全局样式及辅助类 */ +@import './themes/default.less'; + +html { + overflow: auto; + overflow: overlay; +} + +/* 辅助类 */ +body { + overflow-x: hidden; + position: relative; + + &.guns-body-limit-width { + min-width: @body-max-width; + + .ant-form-item .ant-form-item-label { + padding: 0; + line-height: inherit; + white-space: nowrap; + text-align: right; + + & > label:after { + display: block; + } + } + } + + // 标题 + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 0; + font-weight: normal; + font-size: @font-size-lg; + } + + h5 { + font-size: (@font-size-lg + 2px); + } + + h4 { + font-size: (@font-size-lg + 4px); + } + + h3 { + font-size: (@font-size-lg + 6px); + } + + h2 { + font-size: (@font-size-lg + 8px); + } + + h1 { + font-size: (@font-size-lg + 10px); + } + + // 文字 + .guns-text { + color: @text-color; + } + + .guns-text-heading { + color: @heading-color; + } + + .guns-text-secondary { + color: @text-color-secondary; + } + + .guns-text-placeholder { + color: @input-placeholder-color; + } + + a.guns-text, + a.guns-text-heading, + a.guns-text-secondary, + a.guns-text-placeholder { + &:hover { + color: ~`colorPalette('@{primary-color}', 5) `; + } + } + + .guns-text-primary { + color: @primary-color; + } + + .guns-text-success, + .guns-text-success:hover { + color: @success-color; + } + + a.guns-text-success:hover { + color: ~`colorPalette('@{success-color}', 5) `; + } + + a.guns-text-success:active { + color: ~`colorPalette('@{success-color}', 7) `; + } + + .guns-text-warning, + .guns-text-warning:hover { + color: @warning-color; + } + + a.guns-text-warning:hover { + color: ~`colorPalette('@{warning-color}', 5) `; + } + + a.guns-text-warning:active { + color: ~`colorPalette('@{warning-color}', 7) `; + } + + .guns-text-danger, + .guns-text-danger:hover { + color: @error-color; + } + + a.guns-text-danger:hover { + color: ~`colorPalette('@{error-color}', 5) `; + } + + a.guns-text-danger:active { + color: ~`colorPalette('@{error-color}', 7) `; + } + + .guns-text-info, + a.guns-text-info:hover, + a.guns-text-info:active { + color: @normal-color; + } + + .guns-text-delete { + text-decoration: line-through; + } + + .guns-text-small { + font-size: @font-size-sm !important; + } + + // 背景和边框 + .guns-bg-base { + background-color: @layout-body-background !important; + } + + .guns-bg-primary { + background-color: @primary-color !important; + } + + .guns-bg-success { + background-color: @success-color !important; + } + + .guns-bg-warning { + background-color: @warning-color !important; + } + + .guns-bg-danger { + background-color: @error-color !important; + } + + .guns-bg-info { + background-color: @normal-color !important; + } + + .guns-bg-white { + background-color: @component-background !important; + } + + .guns-border-primary { + border-color: @primary-color !important; + } + + .guns-border-success { + border-color: @success-color !important; + } + + .guns-border-warning { + border-color: @warning-color !important; + } + + .guns-border-danger { + border-color: @error-color !important; + } + + .guns-border-info { + border-color: @normal-color !important; + } + + .guns-border-base { + border-color: @border-color-base !important; + } + + .guns-border-split { + border-color: @border-color-split !important; + } + + // 浮动 + .guns-pull-left { + float: left; + } + + .guns-pull-right { + float: right; + } + + .guns-clear { + clear: both; + } + + .guns-clear-after:after { + content: ''; + clear: both; + display: block; + } + + // 对齐方式 + .guns-text-center { + text-align: center; + } + + .guns-text-left { + text-align: left; + } + + .guns-text-right { + text-align: right; + } + + .guns-fluid { + width: 100% !important; + } + + .guns-block { + display: block; + } + + .guns-inline-block { + display: inline-block; + } + + .guns-inline { + display: inline; + } + + // 占位元素 + em:not([class]) { + padding: 0 0.5em; + font-style: normal; + } + + s:not([class]) { + padding: 0 0.125em; + font-style: normal; + } +} + +/* 文字省略 */ +.guns-elip { + overflow: hidden; + white-space: nowrap; + word-break: break-all; + text-overflow: ellipsis; +} + +/* 单元格 */ +.guns-cell { + display: flex; + + &:not(.guns-cell-align-top) { + align-items: center; + } + + &.guns-cell-align-bottom { + align-items: flex-end; + } + + & > .guns-cell-content { + flex: 1; + box-sizing: border-box; + } + + & > * + .guns-cell-content { + padding-left: @padding-sm; + } + + .guns-cell-title { + color: @heading-color; + font-size: @font-size-base + 1px; + } + + .guns-cell-desc { + color: @text-color-secondary; + font-size: @font-size-base - 1px; + margin-top: (@padding-xs / 2); + } +} + +/* 页面容器 */ +.guns-body { + padding: @padding-md; + + &.guns-body-card { + padding-bottom: 0; + + .ant-card { + margin-bottom: @padding-md; + } + } +} + +/* 底部工具栏 */ +.guns-bottom-tool { + position: fixed; + bottom: 0; + right: 0; + width: 100%; + display: flex; + align-items: center; + box-shadow: @shadow-1-up; + padding: @padding-xs @padding-md; + background: @component-background; + transition: padding-left @sidebar-transition-anim; + z-index: (@layout-z-index - 1); + + .guns-bottom-tool-actions { + flex: 1; + text-align: right; + } +} + +@media screen and (min-width: 768px) { + .guns-admin-sidebar + .guns-admin-body .guns-bottom-tool { + padding-left: (@sidebar-width + @padding-md); + } + + .guns-layout-collapse .guns-admin-sidebar + .guns-admin-body .guns-bottom-tool { + padding-left: (@sidebar-collapse-width + @padding-md); + } +} + +/* 静态表格 */ +.guns-table { + width: 100%; + border-spacing: 0; + border-collapse: collapse; + background: @component-background; + + thead tr { + th, + td { + background: @table-header-bg; + transition: background-color 0.25s ease; + } + } + + tbody tr { + th, + td { + background: @component-background; + transition: background-color 0.25s ease; + } + } + + tbody tr:hover, + &.guns-table-stripe tr:nth-child(even) { + th, + td { + background: @table-row-hover-bg; + } + } + + tbody tr.guns-table-active { + th, + td { + background: @table-selected-row-bg; + } + } + + th, + td { + font-weight: normal; + line-height: 23px; + padding: 12px 10px; + border-width: 0; + border-style: solid; + border-color: @table-border-color; + border-bottom-width: 1px; + text-align: left; + } + + th { + color: @table-header-color; + } + + // 显示边框 + &.guns-table-border { + th, + td { + border-width: 1px; + } + } + + // 尺寸控制 + &.guns-table-medium { + th, + td { + padding-top: 10px; + padding-bottom: 10px; + } + } + + &.guns-table-small { + th, + td { + padding-top: 8px; + padding-bottom: 8px; + font-size: 12px; + } + } + + &.guns-table-mini { + th, + td { + padding-top: 6px; + padding-bottom: 6px; + font-size: 12px; + } + } + + // 表头分割线 + &:not(.guns-table-border) thead > tr > th { + position: relative; + + &:not(:last-child):before { + position: absolute; + top: 50%; + right: 0; + width: 1px; + height: 1.6em; + background-color: @table-header-cell-split-color; + transform: translateY(-50%); + transition: background-color 0.3s; + content: ''; + } + } +} + +/* antd 组件样式调整 */ +body { + // 分割线 + .ant-divider { + margin: 0; + } + + // modal 标题高度 + .ant-modal-header { + padding: @modal-header-padding; + + & > .ant-modal-title > div { + padding-right: calc(@modal-close-x-width - 20px); + } + } + + .ant-modal-close-x { + width: @modal-close-x-width; + height: @modal-close-x-height; + line-height: @modal-close-x-height; + } +} + +// 按钮加图标减少间距 +.guns-btn-icon:not(.ant-btn-sm) { + padding-left: (@padding-sm - 2px); + padding-right: (@padding-sm - 2px); + + & > .anticon + span { + margin-left: @margin-xss; + margin-right: 2px; + } +} + +// 表单详情 +.guns-form-detail .ant-form-item { + margin-bottom: 0; +} + +@media (max-width: 575px) { + .guns-form-detail .ant-form-item-label { + line-height: @input-height-lg - 0.0001px; + padding-bottom: 0; + + & > label:after { + display: inherit; + } + } +} + +// 级联选择器增加高度 +.guns-pop-wrap-higher .ant-cascader-menu { + height: 280px; +} + +/* 加载框 */ +.ant-message-notice.guns-message-loading { + animation: none !important; + transition: opacity 0.2s, margin 0.3s; + position: relative; + + & > .ant-message-notice-content { + &::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + + & > .ant-message-loading { + position: relative; + z-index: 1; + } + } + + &.ant-move-up-enter.ant-move-up-enter-active, + &.ant-move-up-leave.ant-move-up-leave-active { + margin-top: -58px; + opacity: 0; + } + + // 遮罩 + &.guns-message-mask > .ant-message-notice-content { + box-shadow: @shadow-2, 0 0 0 1000vw @modal-mask-bg; + } + + // 居中 + &.guns-message-center { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } +} + +// 虚拟滚动条样式优化 +.rc-virtual-list-scrollbar-thumb, +.ant-select-tree-list-scrollbar-thumb { + background: @scrollbar-thumb-color !important; + + &:hover { + background: @scrollbar-thumb-hover-color !important; + } +} + +// table 有滚动条时加边框 +.ant-table-bordered div.ant-table-body { + &:before, + &:after { + content: ''; + position: absolute; + background: @border-color-split; + z-index: 2; + } + + &:before { + right: 0; + top: 0; + bottom: 0; + width: 1px; + } + + &:after { + bottom: 0; + left: 0; + right: 0; + height: 1px; + } +} + +/* echarts 提示框圆点 */ +.guns-chart-dot { + width: 10px; + height: 10px; + margin-right: 5px; + border-radius: 50%; + display: inline-block; + background: #5b8ff9; +} + +.echarts > div { + max-width: 100%; + overflow: hidden; +} + +/* 滚动条 */ +::-webkit-scrollbar { + width: @scrollbar-thumb-size; + height: @scrollbar-thumb-size; +} + +::-webkit-scrollbar-thumb { + border-radius: (@scrollbar-thumb-size / 2); + border: @scrollbar-thumb-border-size solid transparent; + background-color: @scrollbar-thumb-color; + background-clip: padding-box; + + &:hover { + background-color: @scrollbar-thumb-hover-color; + } +} + +::-webkit-scrollbar-track { + background: @scrollbar-track-color; +} + +::-webkit-scrollbar-corner { + background: transparent; +} + +// 小型滚动条 +.guns-scrollbar-mini { + &::-webkit-scrollbar { + width: @scrollbar-mini-thumb-size; + height: @scrollbar-mini-thumb-size; + } + + &::-webkit-scrollbar-thumb { + border-radius: (@scrollbar-mini-thumb-size / 2); + } +} + +// 隐藏滚动条 +.guns-scrollbar-hide::-webkit-scrollbar { + width: 0; + height: 0; +} + +.guns-scrollbar-hide, +.guns-scrollbar-hover { + overflow: auto; + overflow: overlay; +} + +// 鼠标滑入才显示滚动条 +@media (hover: hover) and (pointer: fine) { + .guns-scrollbar-hover { + &::-webkit-scrollbar, + &.guns-scrollbar-mini::-webkit-scrollbar { + width: 0; + height: 0; + } + + &:hover { + &::-webkit-scrollbar { + width: @scrollbar-thumb-size; + height: @scrollbar-thumb-size; + } + + &.guns-scrollbar-mini::-webkit-scrollbar { + width: @scrollbar-mini-thumb-size; + height: @scrollbar-mini-thumb-size; + } + } + } +} + +// 小尺寸设备 +@media only screen and (max-width: 768px) { + ::-webkit-scrollbar, + .guns-scrollbar-hover:hover::-webkit-scrollbar { + width: @scrollbar-mini-thumb-size; + height: @scrollbar-mini-thumb-size; + } + + ::-webkit-scrollbar-thumb { + border-radius: (@scrollbar-mini-thumb-size / 2); + } +} + +// 兼容火狐浏览器 +* { + scrollbar-width: thin; + scrollbar-color: @scrollbar-thumb-color transparent; +} diff --git a/guns-front-project/src/components/layout/style/display.less b/guns-front-project/src/components/layout/style/display.less new file mode 100644 index 00000000..1fa542c0 --- /dev/null +++ b/guns-front-project/src/components/layout/style/display.less @@ -0,0 +1,103 @@ +@import './themes/default.less'; + +@media only screen and (max-width: @screen-xs-max) { + .hidden-xs-only { + display: none !important; + } +} + +@media only screen and (min-width: @screen-sm-min) { + .hidden-sm-and-up { + display: none !important; + } +} + +@media only screen and (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + .hidden-sm-only { + display: none !important; + } +} + +@media only screen and (max-width: @screen-sm-max) { + .hidden-sm-and-down { + display: none !important; + } +} + +@media only screen and (min-width: @screen-md-min) { + .hidden-md-and-up { + display: none !important; + } +} + +@media only screen and (min-width: @screen-md-min) and (max-width: @screen-md-max) { + .hidden-md-only { + display: none !important; + } +} + +@media only screen and (max-width: @screen-md-max) { + .hidden-md-and-down { + display: none !important; + } +} + +@media only screen and (min-width: @screen-lg-min) { + .hidden-lg-and-up { + display: none !important; + } +} + +@media only screen and (min-width: @screen-lg-min) and (max-width: @screen-lg-max) { + .hidden-lg-only { + display: none !important; + } +} + +@media only screen and (max-width: @screen-lg-max) { + .hidden-lg-and-down { + display: none !important; + } +} + +@media only screen and (min-width: @screen-xl-min) { + .hidden-xl-and-up { + display: none !important; + } +} + +@media only screen and (min-width: @screen-xl-min) and (max-width: @screen-xl-max) { + .hidden-xl-only { + display: none !important; + } +} + +@media only screen and (max-width: @screen-xl-max) { + .hidden-xl-and-down { + display: none !important; + } +} + +@media only screen and (min-width: @screen-xxl-min) { + .hidden-xxl-and-up { + display: none !important; + } +} + +@media only screen and (min-width: @screen-xxl-min) and (max-width: @screen-xxl-max) { + .hidden-xxl-only { + display: none !important; + } +} + +@media only screen and (max-width: @screen-xxl-max) { + .hidden-xxl-and-down { + display: none !important; + } +} + +@media only screen and (min-width: @screen-xxxl-min) { + .hidden-xxxl-only { + display: none !important; + } +} diff --git a/guns-front-project/src/components/layout/style/header.less b/guns-front-project/src/components/layout/style/header.less new file mode 100644 index 00000000..c384388d --- /dev/null +++ b/guns-front-project/src/components/layout/style/header.less @@ -0,0 +1,156 @@ +@import './themes/default.less'; + +/* header */ +.guns-admin-header { + display: flex; + align-items: center; + height: @header-height; + line-height: @header-height; + box-shadow: @header-light-shadow; + background: @header-light-background; + z-index: calc(@layout-z-index + 2); + box-sizing: border-box; + position: relative; + + // logo + .guns-admin-logo { + width: @sidebar-width; + height: @header-height; + box-shadow: @logo-light-shadow; + background: @header-light-background; + transition: @sidebar-transition; + font-weight: @logo-font-weight; + font-family: @logo-font-family; + font-size: @logo-font-size; + color: @logo-light-color; + white-space: nowrap; + position: relative; + overflow: hidden; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + + & > img { + width: @logo-size; + height: @logo-size; + + & + span { + margin-left: @padding-sm; + } + } + } + + .ant-menu-title-content { + font-size: 15px; + } + + .guns-admin-header-line { + border-left: 1px solid #ddd; + position: relative; + display: inline-block; + height: 1rem; + margin: 0 10px; + vertical-align: middle; + border-top: 0; + } + + // 面包屑 + .guns-admin-breadcrumb { + flex-shrink: 0; + } + + // nav + .guns-admin-header-nav { + flex: 1; + overflow: hidden; + + & > .ant-menu { + border: none; + background: none; + line-height: @header-height; + + .ant-menu-item, + .ant-menu-submenu { + top: auto; + margin-top: 0; + } + } + } + + // 操作按钮 + .guns-admin-header-tool { + display: flex; + flex-shrink: 0; + padding: 0 @padding-sm; + + .guns-admin-header-tool-item { + padding: 0 @padding-sm; + font-size: @font-size-base; + transition: + color 0.2s, + background-color 0.2s; + cursor: pointer; + display: flex; + align-items: center; + + &:hover { + background: @header-tool-hover-bg; + } + + .anticon-menu-fold, + .anticon-menu-unfold, + .anticon-more, + .anticon-bell, + .anticon-fullscreen, + .anticon-fullscreen-exit { + transform: scale(1.15); + } + } + .guns-admin-header-tool-title { + padding: 0 @padding-sm; + font-size: @font-size-base; + transition: + color 0.2s, + background-color 0.2s; + cursor: pointer; + display: flex; + align-items: center; + + .anticon-menu-fold, + .anticon-menu-unfold, + .anticon-more, + .anticon-bell, + .anticon-fullscreen, + .anticon-fullscreen-exit { + transform: scale(1.15); + } + .menu-title { + margin-left: 10px; + font-size: 18px; + font-style: normal; + font-weight: 600; + line-height: normal; + } + } + } + + // 用户信息 + .guns-admin-header-avatar { + display: flex; + align-items: center; + position: relative; + height: 100%; + + .ant-avatar { + width: @header-avatar-size; + height: @header-avatar-size; + line-height: @header-avatar-size; + + & + span { + padding-left: @padding-xs; + } + } + } +} diff --git a/guns-front-project/src/components/layout/style/index.less b/guns-front-project/src/components/layout/style/index.less new file mode 100644 index 00000000..dd6efab2 --- /dev/null +++ b/guns-front-project/src/components/layout/style/index.less @@ -0,0 +1,13 @@ +@import './layout.less'; +@import './header.less'; +@import './sidebar.less'; +@import './tabs.less'; +@import './collapse.less'; +@import './layout-style.less'; +@import './layout-theme.less'; +@import './tab-style.less'; +@import './layout-mobile.less'; +@import './scrollbar.less'; +@import './nprogress.less'; +@import './common.less'; +@import './display.less'; diff --git a/guns-front-project/src/components/layout/style/layout-mobile.less b/guns-front-project/src/components/layout/style/layout-mobile.less new file mode 100644 index 00000000..43d8ef20 --- /dev/null +++ b/guns-front-project/src/components/layout/style/layout-mobile.less @@ -0,0 +1,63 @@ +@import './themes/default.less'; + +/* 小屏幕样式 */ +@media screen and (max-width: 768px) { + .guns-admin-responsive { + .guns-admin-logo, + .guns-admin-sidebar { + position: fixed !important; + left: 0 !important; + width: @sidebar-width !important; + z-index: calc(@sidebar-fixed-z-index + 1) !important; + } + + .guns-admin-sidebar { + top: @header-height !important; + } + + .guns-admin-logo > span { + display: inline !important; + } + + .guns-admin-body, + .guns-admin-header { + padding-left: 0 !important; + width: 100% !important; + } + + .guns-admin-tabs { + left: 0 !important; + } + + .guns-admin-breadcrumb, + .guns-admin-sidebar-nav { + display: none; + } + + &:not(.guns-admin-collapse) { + .guns-admin-shade { + left: @sidebar-width; + background: @modal-mask-bg; + visibility: visible; + } + + .guns-admin-header { + z-index: auto; + } + } + + &.guns-admin-collapse { + .guns-admin-sidebar, + .guns-admin-logo { + left: calc(0px - @sidebar-width) !important; + box-shadow: none !important; + } + } + + &.guns-admin-show-tabs:not(.guns-admin-tab-card):not(.guns-admin-head-dark) { + .guns-admin-header { + box-shadow: 0 -1px 0 @border-color-split inset !important; + } + } + } +} diff --git a/guns-front-project/src/components/layout/style/layout-style.less b/guns-front-project/src/components/layout/style/layout-style.less new file mode 100644 index 00000000..39a90a88 --- /dev/null +++ b/guns-front-project/src/components/layout/style/layout-style.less @@ -0,0 +1,103 @@ +/* 主题风格 */ +@import './themes/default.less'; + +/* 固定主体 */ +.guns-admin-fixed-body { + .guns-admin-content { + height: calc(100vh - @header-height); + overflow-x: hidden; + overflow-y: auto; + } + + .guns-admin-sidebar, + .guns-admin-sidebar-nav { + height: calc(100vh - @header-height); + } + + &.guns-admin-show-tabs { + .guns-admin-content { + height: calc(100vh - @header-height - @tabs-height); + } + + &.guns-admin-tab-card .guns-admin-content { + height: calc(100vh - @header-height - @tabs-height - @tabs-card-padding); + } + } +} + +/* 全屏内容区域 */ +.guns-admin-body-fullscreen { + padding-top: 0 !important; + + .guns-admin-header, + .guns-admin-sidebar, + .guns-admin-sidebar-nav { + display: none; + } + + .guns-admin-body { + min-height: 100vh; + padding-left: 0 !important; + width: 100% !important; + } + + .guns-admin-tabs { + left: 0 !important; + top: 0 !important; + } + + &.guns-admin-fixed-body { + .guns-admin-content { + height: 100vh !important; + } + + &.guns-admin-show-tabs:not(.guns-admin-content-fullscreen) { + .guns-admin-content { + height: calc(100vh - @tabs-height) !important; + } + + &.guns-admin-tab-card .guns-admin-content { + height: calc(100vh - @tabs-height - @tabs-card-padding) !important; + } + } + } + + &.guns-admin-content-fullscreen { + .guns-admin-body { + padding-top: 0 !important; + } + + .guns-admin-tabs { + display: none; + } + } +} + +/* logo 宽度自适应 */ +.guns-admin-logo-auto.guns-admin-layout { + .guns-admin-logo { + width: auto; + padding: 0 @padding-sm 0 @padding-lg; + color: @logo-light-color; + background: none; + box-shadow: none; + transition: none; + + & > span { + display: inline; + } + + & + .guns-admin-header-nav { + margin-left: @padding-sm; + } + } + + .guns-admin-sidebar, + .guns-admin-sidebar-nav { + z-index: calc(@layout-z-index + 1); + } + + &.guns-admin-head-dark .guns-admin-logo { + color: @logo-dark-color; + } +} diff --git a/guns-front-project/src/components/layout/style/layout-theme.less b/guns-front-project/src/components/layout/style/layout-theme.less new file mode 100644 index 00000000..e4210f3d --- /dev/null +++ b/guns-front-project/src/components/layout/style/layout-theme.less @@ -0,0 +1,127 @@ +@import './themes/default.less'; + +/* 暗色顶栏 */ +.guns-admin-head-dark .guns-admin-header { + color: @menu-dark-color; + box-shadow: @header-dark-shadow; + background: @header-background; + + .guns-admin-header-tool .guns-admin-header-tool-item:hover { + color: @menu-dark-selected-item-text-color; + background: @header-dark-tool-hover-bg; + } + + .ant-breadcrumb, + .ant-breadcrumb-separator, + .ant-breadcrumb a { + color: @menu-dark-color; + } + + .ant-breadcrumb a:hover { + color: @menu-dark-selected-item-text-color; + } + + .ant-breadcrumb > span:last-child { + color: @menu-dark-color; + } + + // 主色顶栏 + &.guns-admin-header-primary { + background-color: @primary-color; + } + + // 主色顶栏 menu + .ant-menu-light { + color: @menu-dark-color; + + & > .ant-menu-item:hover, + & > .ant-menu-item-active, + & > .ant-menu-item-selected, + & > .ant-menu-submenu-active, + & > .ant-menu-submenu-open, + & > .ant-menu-submenu-selected, + & > .ant-menu-submenu > .ant-menu-submenu-title:hover { + color: @menu-dark-selected-item-text-color; + } + + & > .ant-menu-item:hover:after, + & > .ant-menu-submenu:hover:after, + & > .ant-menu-item-active:after, + & > .ant-menu-submenu-active:after, + & > .ant-menu-item-open:after, + & > .ant-menu-submenu-open:after, + & > .ant-menu-item-selected:after, + & > .ant-menu-submenu-selected:after { + border-bottom-color: @menu-dark-selected-item-text-color; + } + .menu-title, .company-name { + color: @menu-dark-selected-item-text-color; + } + } +} +.guns-admin-side-dark .guns-admin-sidebar > .guns-admin-sidebar-tool-item .guns-admin-sidebar-tool-item-icon { + color: @menu-dark-selected-item-text-color; +} + +.ant-menu-horizontal > .ant-menu-item::after, +.ant-menu-horizontal > .ant-menu-submenu::after { + right: 2px !important; + left: 2px !important; +} + +.ant-menu-vertical > .ant-menu-item { + height: 48px; + line-height: 48px; +} + +/* 暗色侧栏 */ +.guns-admin-side-dark { + .guns-admin-logo { + color: @logo-dark-color; + box-shadow: @logo-dark-shadow; + background: @sidebar-background; + } + + .guns-admin-sidebar { + box-shadow: @sidebar-dark-shadow; + background: @sidebar-background; + } + + &.guns-admin-side-mix { + &:not(.guns-admin-collapse) { + .guns-admin-logo, + .guns-admin-sidebar-nav { + box-shadow: none; + } + } + + .guns-admin-sidebar-nav { + background: @sidebar-background; + + & > .guns-admin-sidebar-nav-menu > .ant-menu { + & > .ant-menu-item:not(.ant-menu-item-selected):hover { + background: @header-dark-tool-hover-bg; + } + + & > .ant-menu-submenu { + &:not(.ant-menu-submenu-selected) > .ant-menu-submenu-title:hover { + background: @header-dark-tool-hover-bg; + } + + &.ant-menu-submenu-selected > .ant-menu-submenu-title { + background: @primary-color; + color: @menu-dark-selected-item-text-color; + } + } + } + + .guns-admin-sidebar-nav-tool-item { + color: @menu-dark-color; + + &:hover { + color: @menu-dark-selected-item-text-color; + } + } + } + } +} diff --git a/guns-front-project/src/components/layout/style/layout.less b/guns-front-project/src/components/layout/style/layout.less new file mode 100644 index 00000000..b02ee86d --- /dev/null +++ b/guns-front-project/src/components/layout/style/layout.less @@ -0,0 +1,90 @@ +@import './themes/default.less'; + +.guns-admin-layout { + background: @layout-body-background; +} + +/* Main */ +.guns-admin-main { + display: flex; +} + +/* 主体部分 */ +.guns-admin-body { + display: flex; + flex-direction: column; + min-height: calc(100vh - @header-height); + box-sizing: border-box; + width: 100%; + + .guns-admin-content { + flex: auto; + display: flex; + flex-direction: column; + box-sizing: border-box; + + .guns-admin-content-view { + flex: auto; + box-sizing: border-box; + } + } +} + +/* 主体的 iframe 组件 */ +.guns-admin-iframe { + width: 100%; + height: calc(100vh - @header-height); + box-sizing: border-box; + display: block; + border: none; +} + +.guns-admin-show-tabs .guns-admin-iframe { + height: calc(100vh - @header-height - @tabs-height); +} + +.guns-admin-fixed-body.guns-admin-show-tabs.guns-admin-tab-card { + .guns-admin-iframe { + height: calc(100vh - @header-height - @tabs-height - @tabs-card-padding); + } +} + +/* 小屏幕遮罩层 */ +.guns-admin-shade { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: @sidebar-fixed-z-index; + transition: background-color @sidebar-transition-anim, + left @sidebar-transition-anim; + visibility: hidden; +} + +/* 返回顶部 */ +.guns-admin-layout > .ant-back-top { + right: @layout-back-top-right; + bottom: @layout-back-top-bottom; +} + +/* 色弱模式 */ +.guns-admin-weak { + filter: invert(0.8); + background: @heading-color; + overflow-x: hidden; +} + +/* 切换布局时关闭过渡效果 */ +body.guns-transition-disabled { + .guns-admin-header, + .guns-admin-logo, + .guns-admin-sidebar, + .guns-admin-sidebar-nav, + .guns-admin-body, + .guns-admin-tabs, + .guns-admin-content, + .guns-modal-inner { + transition: none !important; + } +} diff --git a/guns-front-project/src/components/layout/style/nprogress.less b/guns-front-project/src/components/layout/style/nprogress.less new file mode 100644 index 00000000..3c3681e4 --- /dev/null +++ b/guns-front-project/src/components/layout/style/nprogress.less @@ -0,0 +1,84 @@ +/* Make clicks pass-through */ +@import './themes/default.less'; + +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: @primary-color; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0; + width: 100px; + height: 100%; + box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; + opacity: 1; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: @primary-color; + border-left-color: @primary-color; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + } +} + +@keyframes nprogress-spinner { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/guns-front-project/src/components/layout/style/scrollbar.less b/guns-front-project/src/components/layout/style/scrollbar.less new file mode 100644 index 00000000..5a9d32c3 --- /dev/null +++ b/guns-front-project/src/components/layout/style/scrollbar.less @@ -0,0 +1,77 @@ +@import './themes/default.less'; + +/* 侧栏滚动条样式 */ +.guns-admin-sidebar, +.guns-admin-sidebar > .guns-admin-sidebar-menus, +.guns-admin-sidebar-nav, +.guns-admin-sidebar-nav > .guns-admin-sidebar-nav-menu, +.ant-menu-submenu-popup > .ant-menu.ant-menu-vertical { + overflow-y: overlay; + scrollbar-width: thin; + scrollbar-color: @sidebar-light-scrollbar-thumb-color transparent; + + &::-webkit-scrollbar { + width: @scrollbar-mini-thumb-size; + height: @scrollbar-mini-thumb-size; + } + + &::-webkit-scrollbar-thumb { + border-radius: (@scrollbar-mini-thumb-size / 2); + border: @scrollbar-thumb-border-size solid transparent; + background-color: @sidebar-light-scrollbar-thumb-color; + background-clip: padding-box; + + &:hover { + background-color: @sidebar-light-scrollbar-thumb-hover-color; + } + } + + &::-webkit-scrollbar-track { + background: @sidebar-light-scrollbar-track-color; + } + + &::-webkit-scrollbar-corner { + background: transparent; + } +} + +@media (hover: hover) and (pointer: fine) { + .guns-admin-sidebar, + .guns-admin-sidebar > .guns-admin-sidebar-menus, + .guns-admin-sidebar-nav, + .guns-admin-sidebar-nav > .guns-admin-sidebar-nav-menu, + .ant-menu-submenu-popup > .ant-menu.ant-menu-vertical { + &::-webkit-scrollbar { + width: 0; + height: 0; + } + + &:hover::-webkit-scrollbar { + width: 8px; + height: 8px; + } + } +} + +/* 暗色侧栏滚动条样式 */ +.guns-admin-side-dark:not(.guns-admin-side-mix) > .guns-admin-sidebar, +.guns-admin-side-dark:not(.guns-admin-side-mix) + .guns-admin-sidebar + > .guns-admin-sidebar-menus, +.guns-admin-side-dark .guns-admin-sidebar-nav, +.guns-admin-side-dark .guns-admin-sidebar-nav > .guns-admin-sidebar-nav-menu, +.ant-menu-submenu-popup.ant-menu-dark > .ant-menu.ant-menu-vertical { + scrollbar-color: @sidebar-scrollbar-thumb-color transparent; + + &::-webkit-scrollbar-thumb { + background-color: @sidebar-scrollbar-thumb-color; + + &:hover { + background-color: @sidebar-scrollbar-thumb-hover-color; + } + } + + &::-webkit-scrollbar-track { + background: @sidebar-scrollbar-track-color; + } +} diff --git a/guns-front-project/src/components/layout/style/sidebar.less b/guns-front-project/src/components/layout/style/sidebar.less new file mode 100644 index 00000000..7b2a202f --- /dev/null +++ b/guns-front-project/src/components/layout/style/sidebar.less @@ -0,0 +1,240 @@ +@import './themes/default.less'; + +/* 侧栏 */ +.guns-admin-sidebar { + flex-shrink: 0; + width: @sidebar-width; + min-height: calc(100vh - @header-height); + z-index: calc(@layout-z-index + 3); + background: @sidebar-light-background; + box-shadow: @sidebar-light-shadow; + transition: @sidebar-transition; + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: column; + overflow-x: hidden; + overflow-y: auto; + + & > .guns-admin-sidebar-menus { + flex: auto; + overflow-x: hidden; + overflow-y: auto; + + & > .ant-menu { + border: none; + background: none; + transition: none; + + .ant-menu-item, + .ant-menu-submenu-title { + width: 100%; + } + + .ant-menu-item-icon { + margin-top: 2px; + } + + .ant-menu-submenu .ant-menu-sub { + transition: none; + } + } + } + + & > .guns-admin-sidebar-tool-item { + height: 48px; + display: flex; + justify-content: center; + align-items: center; + .guns-admin-sidebar-tool-item-icon { + font-size: 20px !important; + color: #000; + } + } + + & + .guns-admin-body { + width: calc(100% - @sidebar-width); + transition: width @sidebar-transition-anim; + } +} + +/* 双侧栏一级 */ +.guns-admin-sidebar-nav { + flex-shrink: 0; + width: @sidebar-nav-width; + min-height: calc(100vh - @header-height); + box-shadow: -1px 0 0 @border-color-split inset; + transition: + width @sidebar-transition-anim, + left @sidebar-transition-anim, + padding @sidebar-transition-anim, + box-shadow @sidebar-transition-anim; + z-index: calc(@layout-z-index + 3); + background: @component-background; + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: column; + overflow-x: hidden; + overflow-y: auto; + + & > .guns-admin-sidebar-nav-menu { + flex: auto; + position: relative; + box-sizing: border-box; + padding: @sidebar-nav-padding; + transition: padding @sidebar-transition-anim; + overflow-x: hidden; + overflow-y: auto; + + & > .ant-menu { + border: none; + background: none; + width: auto; + + & > .ant-menu-item, + & > .ant-menu-submenu { + margin: @sidebar-nav-item-margin; + border-radius: @border-radius-base; + } + + & > .ant-menu-item { + transition: + color 0.3s @ease-in-out, + background-color 0.3s @ease-in-out, + margin 0.3s @ease-in-out; + } + + & > .ant-menu-submenu { + transition: margin 0.3s @ease-in-out; + } + + & > .ant-menu-submenu > .ant-menu-submenu-title { + margin: 0; + } + + & > .ant-menu-item, + & > .ant-menu-submenu > .ant-menu-submenu-title { + width: 100%; + height: auto; + line-height: 0; + display: block; + text-align: center; + border-radius: @border-radius-base; + padding: @sidebar-nav-item-padding !important; + transition: + color 0.3s @ease-in-out, + background-color 0.3s @ease-in-out, + padding 0.3s @ease-in-out; + + & > .ant-menu-item-icon { + margin: 0; + line-height: 0; + font-size: @sidebar-nav-icon-font-size; + transition: font-size 0.3s @ease-in-out; + } + + & > .ant-menu-title-content { + margin: 0; + opacity: 1; + display: block; + transition: none; + } + + & > .ant-menu-title-content > span { + width: auto; + height: auto; + display: block; + line-height: 1; + font-size: @sidebar-nav-font-size; + max-height: @sidebar-nav-font-size; + margin: @sidebar-nav-item-title-margin; + transition: + transform 0.3s @ease-in-out, + max-height 0.3s @ease-in-out, + margin 0.3s @ease-in-out, + visibility 0.3s @ease-in-out; + overflow: hidden; + white-space: nowrap; + word-break: break-all; + text-overflow: ellipsis; + visibility: visible; + transform: scale(1); + max-width: none; + opacity: 1; + } + + &:after { + display: none; + } + } + + & > .ant-menu-item:not(.ant-menu-item-selected):hover { + background: @header-tool-hover-bg; + } + + & > .ant-menu-submenu:not(.ant-menu-submenu-selected) { + & > .ant-menu-submenu-title:not(:active):hover { + background: @header-tool-hover-bg; + } + } + + & > .ant-menu-submenu.ant-menu-submenu-selected { + & > .ant-menu-submenu-title { + background: @item-active-bg; + } + } + } + } + + .guns-admin-sidebar-nav-tool-item { + height: 40px; + line-height: 40px; + text-align: center; + color: @text-color; + font-size: @font-size-lg; + transition: + color 0.3s @ease-in-out, + background-color 0.3s @ease-in-out, + padding 0.3s @ease-in-out; + cursor: pointer; + + &:hover { + color: @primary-color; + } + } +} + +.guns-admin-sidebar-nav-menu-pop > .ant-menu { + margin-left: @sidebar-nav-pop-menu-margin; +} + +/* 侧栏双菜单 */ +.guns-admin-side-mix { + .guns-admin-logo { + width: @sidebar-nav-width; + + & > span { + display: none; + } + } + + &:not(.guns-admin-collapse) .guns-admin-logo { + box-shadow: -1px 0 0 @border-color-split inset; + } + + .guns-admin-sidebar-nav + .guns-admin-sidebar { + background: @component-background; + box-shadow: @sidebar-light-shadow; + width: calc(@sidebar-width - @sidebar-collapse-width); + z-index: calc(@layout-z-index + 1); + } + + .guns-admin-body { + width: calc(100% - @sidebar-nav-width); + } + + .guns-admin-sidebar + .guns-admin-body { + width: calc(100% - @sidebar-width + @sidebar-collapse-width - @sidebar-nav-width); + } +} diff --git a/guns-front-project/src/components/layout/style/tab-style.less b/guns-front-project/src/components/layout/style/tab-style.less new file mode 100644 index 00000000..5f16d265 --- /dev/null +++ b/guns-front-project/src/components/layout/style/tab-style.less @@ -0,0 +1,79 @@ +@import './themes/default.less'; + +/* 页签圆点风格 */ +.guns-admin-tab-dot .guns-admin-tabs { + & > .ant-tabs > .ant-tabs-nav .ant-tabs-tab { + .guns-admin-tab-title { + padding-left: @padding-sm; + + &::before { + content: ''; + width: 8px; + height: 8px; + border-radius: 50%; + margin-right: @margin-xs; + background: @border-color-base; + transition: background-color 0.3s; + display: inline-block; + vertical-align: 1px; + } + } + + &.ant-tabs-tab-active .guns-admin-tab-title::before { + background: @primary-color; + } + } + + .guns-tab-tool::after, + & > .ant-tabs > .ant-tabs-nav .ant-tabs-tab::after { + display: none; + } +} + +/* 页签卡片风格 */ +.guns-admin-tab-card .guns-admin-tabs { + padding-right: @padding-md; + padding-top: @tabs-card-padding; + background: @layout-body-background; + box-shadow: 0 @tabs-card-padding 0 @layout-body-background; + + .guns-tab-tool, + .ant-tabs-nav-operations .ant-tabs-nav-more, + & > .ant-tabs > .ant-tabs-nav .ant-tabs-tab { + height: calc(@tabs-height - @tabs-card-padding); + line-height: calc(@tabs-height - @tabs-card-padding); + border-radius: (@border-radius-sm * 2); + background: @component-background; + + &::after { + display: none; + } + } + + & > .ant-tabs > .ant-tabs-nav { + .ant-tabs-nav-list { + padding-left: @tabs-card-padding; + } + + .ant-tabs-tab + .ant-tabs-tab { + margin-left: @tabs-card-padding; + } + } + + &.is-show-arrow > .ant-tabs > .ant-tabs-nav .ant-tabs-nav-list { + padding-left: 0; + } + + .guns-tab-arrow, + .ant-tabs-nav-operations .ant-tabs-nav-more { + background: none; + } + + & + .guns-admin-content { + margin-top: @tabs-card-padding; + + & > .guns-admin-content-view > .guns-body:first-child { + padding-top: 0; + } + } +} diff --git a/guns-front-project/src/components/layout/style/tabs.less b/guns-front-project/src/components/layout/style/tabs.less new file mode 100644 index 00000000..f68e3745 --- /dev/null +++ b/guns-front-project/src/components/layout/style/tabs.less @@ -0,0 +1,220 @@ +@import './themes/default.less'; + +/* 页签栏 */ +.guns-admin-tabs { + display: flex; + align-items: center; + padding-left: @padding-md; + background: @component-background; + box-shadow: @header-light-shadow; + z-index: @layout-z-index; + + & > .ant-tabs { + background: none; + flex: 1; + + & > .ant-tabs-nav { + margin-bottom: 0; + + // 页签 + .ant-tabs-tab { + background: none; + height: @tabs-height; + line-height: @tabs-height; + transition: background-color 0.3s, color 0.3s; + border-radius: 0; + border: none; + padding: 0; + margin: 0; + + .ant-tabs-tab-btn { + transition: none; + } + + &::after { + content: ''; + width: 0; + height: 2px; + background: @primary-color; + position: absolute; + bottom: 0; + left: 0; + } + + // 选中 + &.ant-tabs-tab-active { + background: @item-active-bg; + + &::after { + width: 100%; + } + } + + // 可关闭 + &.ant-tabs-tab-with-remove .guns-admin-tab-title { + padding-right: 0; + } + + .ant-tabs-tab-remove { + margin: 0; + padding: 0 (@padding-sm - 2px) 0 (@padding-xs - 2px); + } + + // 拖动 + &.sortable-ghost { + opacity: 0; + } + } + + .ant-tabs-extra-content { + display: flex; + } + } + + .ant-tabs-ink-bar, + .ant-tabs-nav::before, + .ant-tabs-content-holder { + display: none; + } + + .ant-tabs-nav-operations .ant-tabs-nav-more .anticon { + font-size: @font-size-base; + vertical-align: -2px; + } + } +} + +/* 页签标题 */ +.guns-admin-tab-title { + padding: 0 @padding-md; +} + +/* 页签操作按钮 */ +.guns-tab-tool, +.guns-admin-tabs .ant-tabs-nav-operations .ant-tabs-nav-more { + padding: 0; + flex-shrink: 0; + width: auto; + min-width: @tabs-height; + height: @tabs-height; + line-height: @tabs-height; + transition: background-color 0.3s, color 0.3s; + text-align: center; + position: relative; + cursor: pointer; +} + +.guns-tab-tool { + .anticon, + .ant-dropdown-trigger .anticon { + font-size: @font-size-sm; + vertical-align: -1px; + } + + // 模拟页签 + &.is-tab { + &:hover { + color: @primary-color; + } + + &::after { + content: ''; + width: 0; + height: 2px; + background: @primary-color; + position: absolute; + bottom: 0; + left: 0; + } + + &.is-active { + color: @primary-color; + background: @item-active-bg; + + &::after { + width: 100%; + } + } + } +} + +/* 页签下拉框 */ +.guns-admin-tabs-drop-popper, +.guns-admin-tab-context-menu { + min-width: 116px !important; +} + +.guns-admin-tabs-drop-popper { + left: auto !important; + right: 6px !important; +} + +.guns-dropdown-item { + display: flex; + align-items: center; + + .guns-dropdown-item-label { + flex: 1; + box-sizing: border-box; + } + + & > * + .guns-dropdown-item-label { + padding-left: @padding-sm; + } +} + +/* 页签折叠下拉框 */ +.ant-tabs-dropdown { + min-width: 140px !important; + + & > .ant-tabs-dropdown-content { + background: @dropdown-menu-bg; + border-radius: @border-radius-base; + } + + .ant-tabs-dropdown-menu-item { + padding-right: 6px; + + & > span { + display: flex; + + & > span { + flex: 1; + } + } + } + + .ant-tabs-dropdown-menu-item-remove { + width: 22px; + height: 22px; + line-height: 22px; + margin-left: 2px; + } +} + +/* 开启页签栏后顶栏阴影调整 */ +.guns-admin-show-tabs:not(.guns-admin-tab-card):not(.guns-admin-head-dark) { + .guns-admin-header { + box-shadow: @sidebar-width -1px 0 @border-color-split inset; + transition: padding-left @sidebar-transition-anim, + box-shadow @sidebar-transition-anim; + } + + &.guns-admin-collapse .guns-admin-header { + box-shadow: @sidebar-collapse-width -1px 0 @border-color-split inset; + } + + &.guns-admin-side-mix { + .guns-admin-header { + box-shadow: @sidebar-nav-width -1px 0 @border-color-split inset; + } + + &.guns-admin-nav-collapse:not(.guns-admin-logo-auto) .guns-admin-header { + box-shadow: @sidebar-collapse-width -1px 0 @border-color-split inset; + } + } + + &.guns-admin-logo-auto .guns-admin-header { + box-shadow: 0 -1px 0 @border-color-split inset; + } +} diff --git a/guns-front-project/src/components/layout/style/themes/dark.less b/guns-front-project/src/components/layout/style/themes/dark.less new file mode 100644 index 00000000..4fbd3e3a --- /dev/null +++ b/guns-front-project/src/components/layout/style/themes/dark.less @@ -0,0 +1,21 @@ +/** 暗黑主题 */ +@import './default.less'; +@import 'ant-design-vue/es/style/themes/dark.less'; + +// 滚动条 +@scrollbar-thumb-color: #484848; +@scrollbar-thumb-hover-color: #5b5b5b; + +// 侧栏 +@sidebar-light-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); +@sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); + +// 顶栏 +@header-light-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); +@header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); +@header-tool-hover-bg: rgba(255, 255, 255, 0.05); +@header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); + +// logo +@logo-light-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); +@logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); diff --git a/guns-front-project/src/components/layout/style/themes/default.less b/guns-front-project/src/components/layout/style/themes/default.less new file mode 100644 index 00000000..f7b2919e --- /dev/null +++ b/guns-front-project/src/components/layout/style/themes/default.less @@ -0,0 +1,152 @@ +/** 默认主题 */ +@import 'ant-design-vue/es/style/themes/default.less'; + +/* Menu */ +@menu-dark-color: fade(@white, 85%); + +/* Modal */ +@modal-header-padding: 16px 24px; +@modal-close-x-height: 54px; +@modal-close-x-width: 54px; + +/* 滚动条 */ +// 滑块颜色 +@scrollbar-thumb-color: #cfcfcf; +// 滑块 hover 颜色 +@scrollbar-thumb-hover-color: #b6b6b6; +// 滑块大小 +@scrollbar-thumb-size: 12px; +// 滑块边框大小 +@scrollbar-thumb-border-size: 2px; +// 小型滚动条滑块大小 +@scrollbar-mini-thumb-size: 8px; +// 轨道颜色 +@scrollbar-track-color: transparent; + +/* Layout */ +// 布局最小 z-index (页签栏[最小]->「顶栏|侧栏」[+2|+3|+1]->移动端遮罩层[+3]) +@layout-z-index: 99; +// 主体内容定宽 +@body-limit-width: 1160px; +// 关闭响应式布局后的最大宽度 +@body-max-width: 1400px; +// 暗黑模式 class +@dark-class: guns-admin-theme-dark; + +/* 侧栏 */ +// 侧栏宽度 +@sidebar-width: 210px; +// 侧栏折叠后宽度 +@sidebar-collapse-width: 60px; +// 侧栏背景 +@sidebar-background: @layout-sider-background; +// 侧栏亮色背景 +@sidebar-light-background: @component-background; +// 侧栏亮色阴影 +@sidebar-light-shadow: 1px 3px 3px rgba(0, 21, 41, 0.08); +// 侧栏暗色阴影 +@sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.35); +// 侧栏过渡动画 +@sidebar-transition-anim: 0.3s cubic-bezier(0.2, 0, 0, 1) 0s; +// 侧栏过渡效果 +@sidebar-transition: width @sidebar-transition-anim, + left @sidebar-transition-anim, box-shadow @sidebar-transition-anim; +// 双侧栏一级宽度 +@sidebar-nav-width: 80px; +// 双侧栏一级内间距 +@sidebar-nav-padding: 0 @padding-xs; +// 双侧栏一级折叠后内间距 +@sidebar-collapse-nav-padding: 0 @padding-xss; +// 双侧栏一级 pop 菜单的左右 margin +@sidebar-nav-pop-menu-margin: @padding-xs; +// 双侧栏一级菜单字体大小 +@sidebar-nav-font-size: @font-size-sm; +// 双侧栏一级菜单图标字体大小 +@sidebar-nav-icon-font-size: @font-size-lg; +// 双侧栏一级菜单 item 内间距 +@sidebar-nav-item-padding: @padding-sm 0; +// 双侧栏一级折叠后菜单 item 内间距 +@sidebar-collapse-nav-item-padding: @padding-sm 0; +// 双侧栏一级菜单 item 标题外间距 +@sidebar-nav-item-title-margin: (@padding-sm / 2) 0 0 0; +// 双侧栏一级菜单 item 外间距 +@sidebar-nav-item-margin: @padding-xss 0 @padding-xs 0; +// 双侧栏一级折叠后菜单 item 外间距 +@sidebar-collapse-nav-item-margin: @padding-xss 0 @padding-xs 0; +// 侧栏固定时的 z-index +@sidebar-fixed-z-index: (@zindex-modal + 1001); +// 侧栏滚动条滑块颜色 +@sidebar-scrollbar-thumb-color: tint(@layout-sider-background, 30%); +// 侧栏滚动条滑块 hover 颜色 +@sidebar-scrollbar-thumb-hover-color: tint(@layout-sider-background, 30%); +// 侧栏滚动条轨道颜色 +@sidebar-scrollbar-track-color: transparent; +// 侧栏亮色滚动条滑块颜色 +@sidebar-light-scrollbar-thumb-color: @scrollbar-thumb-color; +// 侧栏亮色滚动条滑块 hover 颜色 +@sidebar-light-scrollbar-thumb-hover-color: @scrollbar-thumb-hover-color; +// 侧栏亮色滚动条轨道颜色 +@sidebar-light-scrollbar-track-color: transparent; + +/* 顶栏 */ +// 顶栏高度 +@header-height: 52px; +// 顶栏背景 +@header-background: @layout-sider-background; +// 顶栏亮色背景 +@header-light-background: @component-background; +// 顶栏亮色阴影 +@header-light-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); +// 顶栏暗色阴影 +@header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +// 顶栏头像大小 +@header-avatar-size: 28px; +// 顶栏工具按钮 hover 背景 +@header-tool-hover-bg: rgba(0, 0, 0, 0.025); +// 顶栏暗色工具按钮 hover 背景 +@header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); + +/* logo */ +// logo 大小 +@logo-size: 30px; +// logo 文字大小 +@logo-font-size: @font-size-lg + 2px; +// logo 字体粗度 +@logo-font-weight: 600; +// logo 亮色文字颜色 +@logo-light-color: @heading-color; +// logo 暗色文字颜色 +@logo-dark-color: @menu-dark-selected-item-text-color; +// logo 亮色阴影 +@logo-light-shadow: 1px 2px 3px rgba(0, 21, 41, 0.08); +// logo 暗色阴影 +@logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.35); +// logo 字体 +@logo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + +/* 页签栏 */ +// 页签栏高度 +@tabs-height: 40px; +// 页签栏卡片式间距 +@tabs-card-padding: @padding-xs; + +/* 返回顶部位置 */ +@layout-back-top-right: 30px; +@layout-back-top-bottom: 60px; + +/* FileList */ +@file-list-selector-z-index: 999; +@file-list-selector-border-color: #0078d7; +@file-list-selector-background: rgba(0, 120, 215, 0.2); +@file-list-item-active-border-color: @primary-3; +@file-list-item-active-background: @item-active-bg; +@file-list-table-sort-color: hsla(0, 0%, 60%, 0.6); +@file-list-table-sort-active-color: @primary-color; + +/* Table Tool */ +@table-tool-column-width: 220px; +@table-tool-column-max-height: 480px; +// 菜单贵大 +@menu-icon-size-lg: 24px; diff --git a/guns-front-project/src/components/layout/style/themes/dynamic-dark.less b/guns-front-project/src/components/layout/style/themes/dynamic-dark.less new file mode 100644 index 00000000..1490efaf --- /dev/null +++ b/guns-front-project/src/components/layout/style/themes/dynamic-dark.less @@ -0,0 +1,384 @@ +@import './default.less'; + +.@{dark-class} { + --blue-1: #111d2c; + --blue-2: #112a45; + --blue-3: #15395b; + --blue-4: #164c7e; + --blue-5: #1765ad; + --blue-6: #177ddc; + --blue-7: #3c9ae8; + --blue-8: #65b7f3; + --blue-9: #8dcff8; + --blue-10: #b7e3fa; + + --purple-1: #1a1325; + --purple-2: #24163a; + --purple-3: #301c4d; + --purple-4: #3e2069; + --purple-5: #51258f; + --purple-6: #642ab5; + --purple-7: #854eca; + --purple-8: #ab7ae0; + --purple-9: #cda8f0; + --purple-10: #ebd7fa; + + --cyan-1: #112123; + --cyan-2: #113536; + --cyan-3: #144848; + --cyan-4: #146262; + --cyan-5: #138585; + --cyan-6: #13a8a8; + --cyan-7: #33bcb7; + --cyan-8: #58d1c9; + --cyan-9: #84e2d8; + --cyan-10: #b2f1e8; + + --green-1: #162312; + --green-2: #1d3712; + --green-3: #274916; + --green-4: #306317; + --green-5: #3c8618; + --green-6: #49aa19; + --green-7: #6abe39; + --green-8: #8fd460; + --green-9: #b2e58b; + --green-10: #d5f2bb; + + --pink-1: #291321; + --pink-2: #40162f; + --pink-3: #551c3b; + --pink-4: #75204f; + --pink-5: #a02669; + --pink-6: #cb2b83; + --pink-7: #e0529c; + --pink-8: #f37fb7; + --pink-9: #f8a8cc; + --pink-10: #fad2e3; + + --red-1: #2a1215; + --red-2: #431418; + --red-3: #58181c; + --red-4: #791a1f; + --red-5: #a61d24; + --red-6: #f5222d; + --red-7: #e84749; + --red-8: #f37370; + --red-9: #f89f9a; + --red-10: #fac8c3; + + --orange-1: #2b1d11; + --orange-2: #442a11; + --orange-3: #593815; + --orange-4: #7c4a15; + --orange-5: #aa6215; + --orange-6: #d87a16; + --orange-7: #e89a3c; + --orange-8: #f3b765; + --orange-9: #f8cf8d; + --orange-10: #fae3b7; + + --gold-1: #2b2111; + --gold-2: #443111; + --gold-3: #594214; + --gold-4: #7c5914; + --gold-5: #aa7714; + --gold-6: #d89614; + --gold-7: #e8b339; + --gold-8: #f3cc62; + --gold-9: #f8df8b; + --gold-10: #faedb5; + + --primary-1: var(--blue-1); + --primary-2: var(--blue-2); + --primary-3: var(--blue-3); + --primary-4: var(--blue-4); + --primary-5: var(--blue-5); + --primary-6: var(--blue-6); + --primary-7: var(--blue-7); + --primary-8: var(--blue-8); + --primary-9: var(--blue-9); + --primary-10: var(--blue-10); + + --primary-color: var(--primary-6); + --primary-color-hover: var(--primary-5); + --primary-color-active: var(--primary-7); + --primary-color-outline: var(--primary-2); + + --info-color: var(--primary-color); + + --success-color: var(--green-6); + --success-color-hover: var(--green-5); + --success-color-active: var(--green-7); + --success-color-outline: var(--green-2); + + --warning-color: var(--gold-6); + --warning-color-hover: var(--gold-5); + --warning-color-active: var(--gold-7); + --warning-color-outline: var(--gold-2); + + --error-color: var(--red-5); + --error-color-hover: var(--red-4); + --error-color-active: var(--red-7); + --error-color-outline: var(--red-2); + + --highlight-color: var(--red-5); + --processing-color: var(--blue-6); + + --body-background: @black; + --component-background: #141414; + --popover-background: #1f1f1f; + --popover-customize-border-color: #3a3a3a; + + --text-color: fade(@white, 85%); + --text-color-secondary: fade(@white, 45%); + --text-color-inverse: @white; + --icon-color-hover: fade(@white, 75%); + --heading-color: fade(@white, 85%); + + --item-hover-bg: fade(@white, 8%); + + // Border color + --border-color-base: #434343; + --border-color-split: #303030; + + // + --background-color-light: fade(@white, 4%); + --background-color-base: fade(@white, 8%); + + // Disabled states + --disabled-color: fade(@white, 30%); + --disabled-bg: @background-color-base; + --disabled-color-dark: fade(@white, 30%); + + // Shadow + --shadow-color: rgba(0, 0, 0, 0.45); + --shadow-color-inverse: @component-background; + --box-shadow-base: @shadow-2; + --shadow-1-up: 0 -6px 16px -8px rgba(0, 0, 0, 0.32), + 0 -9px 28px 0 rgba(0, 0, 0, 0.2), 0 -12px 48px 16px rgba(0, 0, 0, 0.12); + --shadow-1-down: 0 6px 16px -8px rgba(0, 0, 0, 0.32), + 0 9px 28px 0 rgba(0, 0, 0, 0.2), 0 12px 48px 16px rgba(0, 0, 0, 0.12); + --shadow-1-right: 6px 0 16px -8px rgba(0, 0, 0, 0.32), + 9px 0 28px 0 rgba(0, 0, 0, 0.2), 12px 0 48px 16px rgba(0, 0, 0, 0.12); + --shadow-2: 0 3px 6px -4px rgba(0, 0, 0, 0.48), + 0 6px 16px 0 rgba(0, 0, 0, 0.32), 0 9px 28px 8px rgba(0, 0, 0, 0.2); + + // Buttons + --btn-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); + --btn-primary-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); + --btn-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12); + --btn-default-bg: transparent; + --btn-default-ghost-color: @text-color; + --btn-default-ghost-border: fade(@white, 25%); + --btn-text-hover-bg: rgba(255, 255, 255, 0.03); + --btn-text-active-bg: rgba(255, 255, 255, 0.04); + + // Checkbox + --checkbox-check-bg: transparent; + + // Descriptions + --descriptions-bg: @background-color-light; + + // Divider + --divider-color: rgba(255, 255, 255, 12%); + + // Dropdown + --dropdown-menu-submenu-disabled-bg: transparent; + + // Radio + --radio-dot-disabled-color: fade(@white, 20%); + --radio-solid-checked-color: @white; + + // Radio buttons + --radio-disabled-button-checked-bg: fade(@white, 20%); + --radio-disabled-button-checked-color: @disabled-color; + + // Layout + --layout-body-background: @body-background; + --layout-header-background: @popover-background; + --layout-trigger-background: #262626; + + // Dropdown + --dropdown-menu-bg: @popover-background; + + // Input + --input-placeholder-color: fade(@white, 30%); + --input-icon-color: fade(@white, 30%); + --input-bg: transparent; + --input-number-handler-active-bg: @item-hover-bg; + --input-icon-hover-color: fade(@white, 85%); + + // Mentions + --mentions-dropdown-bg: @popover-background; + + // Select + --select-dropdown-bg: @popover-background; + --select-background: transparent; + --select-clear-background: @component-background; + --select-selection-item-bg: fade(@white, 8); + --select-selection-item-border-color: @border-color-split; + --select-multiple-disabled-background: @component-background; + --select-multiple-item-disabled-color: #595959; + --select-multiple-item-disabled-border-color: @popover-background; + + // Cascader + --cascader-bg: transparent; + --cascader-menu-bg: @popover-background; + --cascader-menu-border-color-split: @border-color-split; + + // Tooltip + --tooltip-bg: #434343; + + // Popover + --popover-bg: @popover-background; + + // Modal + --modal-header-bg: @popover-background; + --modal-header-border-color-split: @border-color-split; + --modal-content-bg: @popover-background; + --modal-footer-border-color-split: @border-color-split; + + // Progress + --progress-steps-item-bg: fade(@white, 8%); + + // Menu + --menu-popup-bg: @popover-background; + --menu-dark-bg: @popover-background; + --menu-dark-inline-submenu-bg: @component-background; + + // Table + --table-header-bg: #1d1d1d; + --table-header-sort-bg: #262626; + --table-body-sort-bg: fade(@white, 1%); + --table-row-hover-bg: #262626; + --table-expanded-row-bg: @table-header-bg; + --table-header-cell-split-color: fade(@white, 8%); + --table-header-sort-active-bg: #303030; + --table-fixed-header-sort-active-bg: #222; + --table-header-filter-active-bg: #434343; + --table-filter-btns-bg: @popover-background; + --table-filter-dropdown-bg: @popover-background; + --table-expand-icon-bg: transparent; + + // TimePicker + --picker-bg: transparent; + --picker-basic-cell-disabled-bg: #303030; + --picker-border-color: @border-color-split; + + // Calendar + --calendar-bg: @popover-background; + --calendar-input-bg: @calendar-bg; + --calendar-border-color: transparent; + --calendar-full-bg: @component-background; + + // Badge + --badge-text-color: @white; + + // Rate + --rate-star-bg: fade(@white, 12%); + + // Card + --card-actions-background: @component-background; + --card-skeleton-bg: #303030; + --card-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.64), + 0 3px 6px 0 rgba(0, 0, 0, 0.48), 0 5px 12px 4px rgba(0, 0, 0, 0.36); + + // Comment + --comment-bg: transparent; + --comment-author-time-color: fade(@white, 30%); + --comment-action-hover-color: fade(@white, 65%); + + // BackTop + --back-top-bg: var(--tooltip-bg); + --back-top-hover-bg: var(--border-color-split); + + // Avatar + --avatar-bg: fade(@white, 30%); + + // Switch + --switch-bg: @white; + + // Pagination + --pagination-item-bg: transparent; + --pagination-item-bg-active: transparent; + --pagination-item-link-bg: transparent; + --pagination-item-disabled-color-active: @black; + --pagination-item-disabled-bg-active: fade(@white, 25%); + --pagination-item-input-bg: @pagination-item-bg; + + // PageHeader + --page-header-back-color: @icon-color; + --page-header-ghost-bg: transparent; + + // Slider + --slider-rail-background-color: #262626; + --slider-rail-background-color-hover: @border-color-base; + --slider-dot-border-color: @border-color-split; + --slider-dot-border-color-active: @primary-4; + + // Tree + --tree-bg: transparent; + + // Skeleton + --skeleton-to-color: fade(@white, 16%); + + // Transfer + --transfer-item-hover-bg: #262626; + + // Message + --message-notice-content-bg: @popover-background; + + // List + --list-customize-card-bg: transparent; + + // Drawer + --drawer-bg: @popover-background; + + // Timeline + --timeline-color: @border-color-split; + --timeline-dot-color: @primary-color; + + // Steps + --steps-nav-arrow-color: fade(@white, 20%); + --steps-background: transparent; + + // Notification + --notification-bg: @popover-background; + + // Image + --image-preview-operation-disabled-color: rgba(255, 255, 255, 0.45); + + // + --gradient-min: fade(#303030, 20%); + --gradient-max: fade(#303030, 40%); + + // 滚动条 + --scrollbar-thumb-color: #484848; + --scrollbar-thumb-hover-color: #5b5b5b; + --scrollbar-track-color: transparent; + + // 侧栏 + --sidebar-background: @layout-sider-background; + --sidebar-light-background: @component-background; + --sidebar-light-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); + --sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); + --sidebar-scrollbar-thumb-color: tint(#1f1f1f, 30%); + --sidebar-scrollbar-thumb-hover-color: tint(#1f1f1f, 40%); + --sidebar-scrollbar-track-color: transparent; + --sidebar-light-scrollbar-thumb-color: @scrollbar-thumb-color; + --sidebar-light-scrollbar-thumb-hover-color: @scrollbar-thumb-hover-color; + --sidebar-light-scrollbar-track-color: transparent; + + // 顶栏 + --header-background: @layout-sider-background; + --header-light-background: @component-background; + --header-light-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); + --header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); + --header-tool-hover-bg: rgba(255, 255, 255, 0.05); + --header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); + + // logo + --logo-light-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); + --logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); +} diff --git a/guns-front-project/src/components/layout/style/themes/dynamic-default.less b/guns-front-project/src/components/layout/style/themes/dynamic-default.less new file mode 100644 index 00000000..81524e35 --- /dev/null +++ b/guns-front-project/src/components/layout/style/themes/dynamic-default.less @@ -0,0 +1,386 @@ +@import './default.less'; + +:root { + --blue-1: #e6f7ff; + --blue-2: #bae7ff; + --blue-3: #91d5ff; + --blue-4: #69c0ff; + --blue-5: #40a9ff; + --blue-6: #1890ff; + --blue-7: #096dd9; + --blue-8: #0050b3; + --blue-9: #003a8c; + --blue-10: #002766; + + --purple-1: #f9f0ff; + --purple-2: #efdbff; + --purple-3: #d3adf7; + --purple-4: #b37feb; + --purple-5: #9254de; + --purple-6: #722ed1; + --purple-7: #531dab; + --purple-8: #391085; + --purple-9: #22075e; + --purple-10: #120338; + + --cyan-1: #e6fffb; + --cyan-2: #b5f5ec; + --cyan-3: #87e8de; + --cyan-4: #5cdbd3; + --cyan-5: #36cfc9; + --cyan-6: #13c2c2; + --cyan-7: #08979c; + --cyan-8: #006d75; + --cyan-9: #00474f; + --cyan-10: #002329; + + --green-1: #f6ffed; + --green-2: #d9f7be; + --green-3: #b7eb8f; + --green-4: #95de64; + --green-5: #73d13d; + --green-6: #52c41a; + --green-7: #389e0d; + --green-8: #237804; + --green-9: #135200; + --green-10: #092b00; + + --pink-1: #fff0f6; + --pink-2: #ffd6e7; + --pink-3: #ffadd2; + --pink-4: #ff85c0; + --pink-5: #f759ab; + --pink-6: #eb2f96; + --pink-7: #c41d7f; + --pink-8: #9e1068; + --pink-9: #780650; + --pink-10: #520339; + + --red-1: #fff1f0; + --red-2: #ffccc7; + --red-3: #ffa39e; + --red-4: #ff7875; + --red-5: #ff4d4f; + --red-6: #f5222d; + --red-7: #cf1322; + --red-8: #a8071a; + --red-9: #820014; + --red-10: #5c0011; + + --orange-1: #fff7e6; + --orange-2: #ffe7ba; + --orange-3: #ffd591; + --orange-4: #ffc069; + --orange-5: #ffa940; + --orange-6: #fa8c16; + --orange-7: #d46b08; + --orange-8: #ad4e00; + --orange-9: #873800; + --orange-10: #612500; + + --gold-1: #fffbe6; + --gold-2: #fff1b8; + --gold-3: #ffe58f; + --gold-4: #ffd666; + --gold-5: #ffc53d; + --gold-6: #faad14; + --gold-7: #d48806; + --gold-8: #ad6800; + --gold-9: #874d00; + --gold-10: #613400; + + --primary-1: var(--blue-1); + --primary-2: var(--blue-2); + --primary-3: var(--blue-3); + --primary-4: var(--blue-4); + --primary-5: var(--blue-5); + --primary-6: var(--blue-6); + --primary-7: var(--blue-7); + --primary-8: var(--blue-8); + --primary-9: var(--blue-9); + --primary-10: var(--blue-10); + + --primary-color: var(--primary-6); + --primary-color-hover: var(--primary-5); + --primary-color-active: var(--primary-7); + --primary-color-outline: var(--primary-2); + + --info-color: var(--primary-color); + + --success-color: var(--green-6); + --success-color-hover: var(--green-5); + --success-color-active: var(--green-7); + --success-color-outline: var(--green-2); + + --warning-color: var(--gold-6); + --warning-color-hover: var(--gold-5); + --warning-color-active: var(--gold-7); + --warning-color-outline: var(--gold-2); + + --error-color: var(--red-5); + --error-color-hover: var(--red-4); + --error-color-active: var(--red-7); + --error-color-outline: var(--red-2); + + --highlight-color: var(--red-5); + --processing-color: var(--blue-6); + + --body-background: #fff; + --component-background: #fff; + --popover-background: @component-background; + --popover-customize-border-color: @border-color-split; + + --text-color: fade(@black, 85%); + --text-color-secondary: fade(@black, 45%); + --text-color-inverse: @white; + --icon-color-hover: fade(@black, 75%); + --heading-color: fade(@black, 85%); + + --item-hover-bg: #f5f5f5; + + // Border color + --border-color-base: hsv(0, 0, 85%); + --border-color-split: hsv(0, 0, 94%); + + // + --background-color-light: hsv(0, 0, 98%); + --background-color-base: hsv(0, 0, 96%); + + // Disabled states + --disabled-color: fade(#000, 25%); + --disabled-bg: @background-color-base; + --disabled-color-dark: fade(#fff, 35%); + + // Shadow + --shadow-color: rgba(0, 0, 0, 0.15); + --shadow-color-inverse: @component-background; + --box-shadow-base: @shadow-2; + --shadow-1-up: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), + 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03); + --shadow-1-down: 0 6px 16px -8px rgba(0, 0, 0, 0.08), + 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03); + --shadow-1-left: -6px 0 16px -8px rgba(0, 0, 0, 0.08), + -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03); + --shadow-1-right: 6px 0 16px -8px rgba(0, 0, 0, 0.08), + 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03); + --shadow-2: 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05); + + // Buttons + --btn-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); + --btn-primary-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); + --btn-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12); + --btn-default-bg: @component-background; + --btn-default-ghost-color: @component-background; + --btn-default-ghost-border: @component-background; + --btn-text-hover-bg: rgba(0, 0, 0, 0.018); + --btn-text-active-bg: rgba(0, 0, 0, 0.028); + + // Checkbox + --checkbox-check-bg: @checkbox-check-color; + + // Descriptions + --descriptions-bg: #fafafa; + + // Divider + --divider-color: rgba(0, 0, 0, 6%); + + // Dropdown + --dropdown-menu-submenu-disabled-bg: @component-background; + + // Radio + --radio-dot-disabled-color: fade(@black, 20%); + --radio-solid-checked-color: @component-background; + + // Radio buttons + --radio-disabled-button-checked-bg: @disabled-active-bg; + --radio-disabled-button-checked-color: @disabled-color; + + // Layout + --layout-body-background: #f0f2f5; + --layout-header-background: #001529; + --layout-trigger-background: #002140; + + // Dropdown + --dropdown-menu-bg: @component-background; + + // Input + --input-placeholder-color: hsv(0, 0, 75%); + --input-icon-color: @input-color; + --input-bg: @component-background; + --input-number-handler-active-bg: #f4f4f4; + --input-icon-hover-color: fade(@black, 85%); + + // Mentions + --mentions-dropdown-bg: @component-background; + + // Select + --select-dropdown-bg: @component-background; + --select-background: @component-background; + --select-clear-background: @select-background; + --select-selection-item-bg: @background-color-base; + --select-selection-item-border-color: @border-color-split; + --select-multiple-disabled-background: @input-disabled-bg; + --select-multiple-item-disabled-color: #bfbfbf; + --select-multiple-item-disabled-border-color: @select-border-color; + + // Cascader + --cascader-bg: @component-background; + --cascader-menu-bg: @component-background; + --cascader-menu-border-color-split: @border-color-split; + + // Tooltip + --tooltip-bg: rgba(0, 0, 0, 0.75); + + // Popover + --popover-bg: @component-background; + + // Modal + --modal-header-bg: @component-background; + --modal-header-border-color-split: @border-color-split; + --modal-content-bg: @component-background; + --modal-footer-border-color-split: @border-color-split; + + // Progress + --progress-steps-item-bg: #f3f3f3; + + // Menu + --menu-popup-bg: @component-background; + --menu-dark-bg: @layout-header-background; + --menu-dark-inline-submenu-bg: #000c17; + + // Table + --table-header-bg: @background-color-light; + --table-header-sort-bg: @background-color-base; + --table-body-sort-bg: #fafafa; + --table-row-hover-bg: @background-color-light; + --table-expanded-row-bg: #fbfbfb; + --table-header-cell-split-color: rgba(0, 0, 0, 0.06); + --table-header-sort-active-bg: rgba(0, 0, 0, 0.04); + --table-fixed-header-sort-active-bg: hsv(0, 0, 96%); + --table-header-filter-active-bg: rgba(0, 0, 0, 0.04); + --table-filter-btns-bg: inherit; + --table-filter-dropdown-bg: @component-background; + --table-expand-icon-bg: @component-background; + + // TimePicker + --picker-bg: @component-background; + --picker-basic-cell-disabled-bg: @disabled-bg; + --picker-border-color: @border-color-split; + + // Calendar + --calendar-bg: @component-background; + --calendar-input-bg: @input-bg; + --calendar-border-color: @border-color-inverse; + --calendar-full-bg: @calendar-bg; + + // Badge + --badge-text-color: @component-background; + + // Rate + --rate-star-bg: @border-color-split; + + // Card + --card-actions-background: @component-background; + --card-skeleton-bg: #cfd8dc; + --card-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), + 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); + + // Comment + --comment-bg: inherit; + --comment-author-time-color: #ccc; + --comment-action-hover-color: #595959; + + // BackTop + --back-top-bg: @text-color-secondary; + --back-top-hover-bg: @text-color; + + // Avatar + --avatar-bg: #ccc; + + // Switch + --switch-bg: @component-background; + + // Pagination + --pagination-item-bg: @component-background; + --pagination-item-bg-active: @component-background; + --pagination-item-link-bg: @component-background; + --pagination-item-disabled-color-active: @white; + --pagination-item-disabled-bg-active: @disabled-active-bg; + --pagination-item-input-bg: @component-background; + + // PageHeader + --page-header-back-color: #000; + --page-header-ghost-bg: inherit; + + // Slider + --slider-rail-background-color: @background-color-base; + --slider-rail-background-color-hover: #e1e1e1; + --slider-dot-border-color: @border-color-split; + --slider-dot-border-color-active: @primary-4; + + // Tree + --tree-bg: @component-background; + + // Skeleton + --skeleton-to-color: shade(@skeleton-color, 5%); + + // Transfer + --transfer-item-hover-bg: @item-hover-bg; + + // Message + --message-notice-content-bg: @component-background; + + // List + --list-customize-card-bg: @component-background; + + // Drawer + --drawer-bg: @component-background; + + // Timeline + --timeline-color: @border-color-split; + --timeline-dot-color: @primary-color; + + // Steps + --steps-nav-arrow-color: fade(@black, 25%); + --steps-background: @component-background; + + // Notification + --notification-bg: @component-background; + + // Image + --image-preview-operation-disabled-color: rgba(255, 255, 255, 0.45); + + // + --gradient-min: fade(#cfd8dc, 20%); + --gradient-max: fade(#cfd8dc, 40%); + + // 滚动条 + --scrollbar-thumb-color: #cfcfcf; + --scrollbar-thumb-hover-color: #b6b6b6; + --scrollbar-track-color: transparent; + + // 侧栏 + --sidebar-background: @layout-sider-background; + --sidebar-light-background: @component-background; + --sidebar-light-shadow: 1px 3px 3px rgba(0, 21, 41, 0.08); + --sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.35); + --sidebar-scrollbar-thumb-color: tint(#001529, 30%); + --sidebar-scrollbar-thumb-hover-color: tint(#001529, 40%); + --sidebar-scrollbar-track-color: transparent; + --sidebar-light-scrollbar-thumb-color: @scrollbar-thumb-color; + --sidebar-light-scrollbar-thumb-hover-color: @scrollbar-thumb-hover-color; + --sidebar-light-scrollbar-track-color: transparent; + + // 顶栏 + --header-background: @layout-sider-background; + --header-light-background: @component-background; + --header-light-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + --header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); + --header-tool-hover-bg: rgba(0, 0, 0, 0.025); + --header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); + + // logo + --logo-light-shadow: 1px 2px 3px rgba(0, 21, 41, 0.08); + --logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.35); +} diff --git a/guns-front-project/src/components/layout/style/themes/dynamic.less b/guns-front-project/src/components/layout/style/themes/dynamic.less new file mode 100644 index 00000000..987783d0 --- /dev/null +++ b/guns-front-project/src/components/layout/style/themes/dynamic.less @@ -0,0 +1,4 @@ +/** 动态主题 */ +@import './default.less'; +@import './dynamic-default.less'; +@import './dynamic-dark.less'; diff --git a/guns-front-project/src/components/layout/util.js b/guns-front-project/src/components/layout/util.js new file mode 100644 index 00000000..2475e8a2 --- /dev/null +++ b/guns-front-project/src/components/layout/util.js @@ -0,0 +1,456 @@ +import { isExternalLink, eachTreeData } from '@/utils/common/menu-util' +import { message } from 'ant-design-vue'; +import debounce from 'lodash-es/debounce'; +import { inject, computed, unref, onBeforeUnmount } from 'vue'; + +/** + * 色弱模式 class + */ +export const WEAK_CLASS = 'guns-admin-weak'; + +/** + * 关闭布局响应式后 body 限制最小宽度的 class + */ +export const BODY_LIMIT_CLASS = 'guns-body-limit-width'; + +/** + * 布局禁用过渡动画 class + */ +export const DISABLES_CLASS = 'guns-transition-disabled'; + + +/** + * 获取菜单包含所有父级 + */ +export function getMatchedMenus( + path, + menus, + parents + ) { + if (!parents) { + parents = []; + } + for (let i = 0; i < menus.length; i++) { + const m = menus[i]; + if (m.path === path) { + return parents.concat([m]); + } else if (m.children?.length) { + const result = getMatchedMenus(path, m.children, parents.concat([m])); + if (result) { + return result; + } + } + } + } + + /** + * provide key + */ +export const PROVIDE_KEY = 'GunsGlobalConfig'; + +/** + * layout provide key + */ +export const LAYOUT_KEY = 'GunsLayoutState'; + +/** + * 获取屏幕宽度 + */ +export function screenWidth() { + return document.documentElement.clientWidth || document.body.clientWidth; +} + +/** + * 获取屏幕高度 + */ +export function screenHeight() { + return document.documentElement.clientHeight || document.body.clientHeight; +} + +/** + * 获取内容区域宽度 + */ +export function contentWidth() { + return ( + document.querySelector('.guns-admin-content-view')?.clientWidth ?? + screenWidth() + ); +} + +/** + * 获取内容区域高度 + */ +export function contentHeight() { + return ( + document.querySelector('.guns-admin-content-view')?.clientHeight ?? + screenHeight() + ); +} + +/** + * 处理树形数据 + * @param data 需要处理的数据 + * @param formatter 处理器 + * @param childrenField children 字段名 + */ +export function formatTreeData( + data, + formatter, + childrenField = 'children', + resultChildrenField = 'children', + parent + ) { + const result = []; + data?.forEach((d, i) => { + const item = formatter(d, i, parent); + if (item) { + if (d[childrenField]?.length) { + item[resultChildrenField] = formatTreeData( + d[childrenField], + formatter, + childrenField, + resultChildrenField, + item + ); + } + result.push(item); + } + }); + return result; +} + +/** + * 获取路由对应的菜单数据 + * @param path 路由地址 + * @param fullPath 路由完整地址 + * @param meta 路由元数据 + * @param menus 菜单数据 + */ +export function getRouteMatched( + path, + fullPath, + meta, + menus +) { + // 菜单层级选中 + const { active, activeOther, title, icon } = (() => { + if (meta?.active) { + return { + active: meta?.active, + activeOther: true, + icon: getMenuIcon(path, fullPath, menus), + title: getMenuTitle(path, fullPath, menus) + }; + } + const temp = findMenuByPath(fullPath, menus); + if (temp) { + return { + active: fullPath, + activeOther: false, + icon: temp.meta?.icon, + title: temp.meta?.title + }; + } + return { + active: path, + activeOther: false, + icon: getMenuIcon(path, fullPath, menus), + title: getMenuTitle(path, fullPath, menus) + }; + })(); + const matched = getMatchedMenus(active, menus); + return { active, matched, activeOther, title: title ?? meta.title, icon: icon ?? meta.icon }; +} + +/** + * 获取菜单标题 + * @param path 路由地址 + * @param fullPath 路由完整地址 + * @param menus 菜单数据 + */ +export function getMenuTitle( + path, + fullPath, + menus +) { + return getRouteMenu(path, fullPath, menus)?.meta?.title; +} + +/** + * 获取菜单图标 + * @param path 路由地址 + * @param fullPath 路由完整地址 + * @param menus 菜单数据 + */ +export function getMenuIcon( + path, + fullPath, + menus +) { + return getRouteMenu(path, fullPath, menus)?.meta?.icon; +} + +/** + * 获取路由对应的菜单 + * @param path 路由地址 + * @param fullPath 路由完整地址 + * @param menus 菜单数据 + */ +export function getRouteMenu( + path, + fullPath, + menus +) { + const temp = findMenuByPath(fullPath, menus); + if (temp) { + return temp; + } + return findMenuByPath(path, menus); +} + +/** + * 获取面包屑导航数据 + * @param isHome 是否是主页 + * @param homePath 主页地址 + * @param homeTitle 主页名称 + * @param matched 匹配的菜单层级 + * @param activeOther 是否是选中其它的菜单 + * @param routeI18n 菜单标题国际化处理 + * @param path 当前路由地址 + * @param fullPath 当前路由完整地址 + * @param meta 当前路由元数据 + * @param menus 菜单数据 + */ +export function getMatchedLevels( + isHome, + homePath, + homeTitle, + matched, + activeOther, + routeI18n, + path, + fullPath, + meta, + menus, + tabs +) { + const levels = []; + if (!isHome) { + levels.push({ + home: true, + path: homePath, + fullPath: homePath, + title: homeTitle + }); + } + matched?.forEach((m) => { + if (m.meta && m.meta.title && m.meta.breadcrumb !== false) { + const t = findTabByPath(m.path, tabs); + levels.push({ + path: m.path, + fullPath: m.path, + title: routeI18n(m.path) || t?.title || m.meta.title + }); + } + }); + if ( + activeOther && + (!levels.length || path !== levels[levels.length - 1].path) && + meta.title + ) { + const t = findTabByPath(fullPath, tabs); + const m = findMenuByPath(meta.routePath, menus); + levels.push({ + path: path, + fullPath: fullPath, + title: routeI18n(path) || t?.title || m?.meta?.title || meta.title + }); + } + return levels; +} + +/** + * 获取路由对应的组件名称 + * @param matched 路由匹配数据 + */ +export function getMatchedComponents(matched) { + const components = []; + matched.forEach((m) => { + if (m.components?.default?.name) { + components.push(m.components.default.name); + } + }); + return components; +} + +/** + * 获取 path 对应的菜单数据 + * @param path 菜单地址 + * @param menus 全部菜单数据 + */ +export function findMenuByPath(path, menus) { + if (path == null || menus == null) { + return; + } + let data; + eachTreeData(menus, (d) => { + if (path === d.path) { + data = d; + return false; + } + }); + return data; +} + +/** + * 判断路由是否是主页 + * @param route 路由信息 + * @param homePath 主页地址 + */ +export function isHomeRoute( + route, + homePath, + layoutPath +) { + const { path, matched } = route; + if (homePath === path) { + return true; + } + return !!( + matched[0] && + (!matched[0].path || matched[0].path === layoutPath) && + matched[0].redirect === path + ); +} + +/** + * 获取 path 对应的页签数据 + * @param path 路由地址 + * @param tabs 全部页签数据 + */ +export function findTabByPath(path, tabs) { + if (path == null || tabs == null) { + return; + } + for (let i = 0; i < tabs.length; i++) { + if (path === tabs[i].key || path === tabs[i].fullPath) { + return tabs[i]; + } + } +} + +/** + * 菜单标题国际化方法 + */ +export function menuTitleI18n({ + path, + locale, + i18n, + menu, + menus +}) { + if (i18n && path) { + const key = routeI18nKey(path); + if (!menu) { + menu = findMenuByPath(path, menus); + } + return i18n(path, key, menu, locale); + } +} + +/** + * 获取路由地址对应的 i18n key + * @param path 路由地址 + */ +export function routeI18nKey(path) { + if (isExternalLink(path)) { + return path.replace(/\.(\w)/g, (_$0, $1) => $1.toUpperCase()); + } else if (!path || path === '/') { + return; + } + const k = path.startsWith('/') ? path.substring(1) : path; + return k + .replace(/-(\w)/g, (_$0, $1) => $1.toUpperCase()) + .replace(/_(\w)/g, (_$0, $1) => $1.toUpperCase()) + .replace(/\//g, '.'); +} + +/** + * 绑定窗口事件监听 + */ +export function useWindowListener({ + onResize, + onEscKeydown +}) { + // 窗口大小改变监听器 + const onResizeListener = debounce(() => { + onResize(); + }, 500); + + // 键盘事件监听器 + const onKeydownListener = (e) => { + if (e.keyCode === 27) { + onEscKeydown(e); + } + }; + + window.addEventListener('resize', onResizeListener); + window.addEventListener('keydown', onKeydownListener); + + onBeforeUnmount(() => { + window.removeEventListener('resize', onResizeListener); + window.removeEventListener('keydown', onKeydownListener); + }); +} + + +/** + * 获取布局状态 + */ +export function useLayoutState(d) { + return inject(LAYOUT_KEY, d); +} + +/** + * 获取是否开启布局响应 + */ +export function useResponsive(props) { + const state = useLayoutState(); + return computed(() => { + return props.responsive ?? unref(state)?.styleResponsive ?? true; + }); +} + +/** + * 带遮罩层的加载框 + */ +export function messageLoading( + content, + duration, + onClose +) { + const classes = ['guns-message-loading']; + const option = {}; + if (typeof content === 'object' && content !== null) { + Object.assign(option, content); + if ((content).mask) { + classes.push('guns-message-mask'); + } + if ((content).center) { + classes.push('guns-message-center'); + } + if ((content).class) { + classes.push((content).class); + } + } else { + option.content = content; + if (typeof duration === 'function') { + option.onClose = duration; + } else { + option.duration = duration; + option.onClose = onClose; + } + } + option.class = classes.join(' '); + return message.loading(option); +} \ No newline at end of file diff --git a/guns-front-project/src/config/setting.js b/guns-front-project/src/config/setting.js new file mode 100644 index 00000000..c298b837 --- /dev/null +++ b/guns-front-project/src/config/setting.js @@ -0,0 +1,105 @@ +// 是否使用验证码 +export const CAPTCHA_FLAG = false; + +// 是否开启单点登录 +export const SSO_FLAG = false; + +// 是否使用多租户 +export const SAAS_FLAG = true; + +// 是否显示修改主题 +export const SHOW_THEME = true; + +// 是否显示修改多语言 +export const SHOW_I18n = true; + +// 是否使用图形验证码 +export const DRAW_CAPTCHA_FLAG = false; +// SQL监控地址 +export const SQL_MONITOR_URL = 'http://localhost:8080/druid'; + +// 接口地址前缀 +export const API_BASE_PREFIX = import.meta.env.VITE_API_PREFIX; + +// 项目名称 +export const PROJECT_NAME = import.meta.env.VITE_APP_NAME; + +// 单点服务器 +export const SSO_HOST = import.meta.env.VITE_APP_SSO_HOST; + +// 单点客户端id标识 +export const SSO_CLIENT_ID = import.meta.env.VITE_APP_SSO_ID; + +// 单点客户端id标识 +export const BACKEND_HOST = import.meta.env.VITE_APP_BACKEND_HOST; + +// context-path +export const BASE_URL = import.meta.env.BASE_URL; + +// 不显示侧栏的路由 +export const HIDE_SIDEBARS = []; + +// 不显示页脚的路由 +export const HIDE_FOOTERS = ['']; + +// 页签同路由不同参数可重复打开的路由 +export const REPEATABLE_TABS = ['/system/user-info']; + +// 不需要登录的路由 +export const WHITE_LIST = ['/login', '/forget', '/sso', '/tokenLogin']; + +// 开启 KeepAlive 后仍然不需要缓存的路由地址 +export const KEEP_ALIVE_EXCLUDES = []; + +// 直接指定菜单数据 +export const USER_MENUS = undefined; + +// 首页名称, 为空则取第一个菜单的名称 +export const HOME_TITLE = undefined; + +// 首页路径, 为空则取第一个菜单的地址 +export const HOME_PATH = undefined; + +// 外层布局的路由地址 +export const LAYOUT_PATH = '/'; + +// 刷新路由的路由地址 +export const REDIRECT_PATH = '/redirect'; + +// 开启页签栏是否缓存组件 +//export const TAB_KEEP_ALIVE = !import.meta.env.DEV; +export const TAB_KEEP_ALIVE = true; + +// token 传递的 header 名称 +export const TOKEN_HEADER_NAME = 'Authorization'; + +// token 存储的名称 +export const TOKEN_STORE_NAME = 'access_token'; + +// 主题配置存储的名称 +export const THEME_STORE_NAME = 'theme'; + +// i18n 缓存的名称 +export const I18N_CACHE_NAME = 'i18n-lang'; + +// 是否开启国际化功能 +export const I18N_ENABLE = false; + +// 消息类型常量 +export const WEBSOCKET_MESSAGE_TYPE = { + // 服务端发过来的消息类型 + server: { + // 系统通知消息类型 + SYS_NOTICE_MSG_TYPE: 'SYS_NOTICE' + }, + // 发送给服务器的消息类型 + client: { + // 创建websocket连接时候的鉴权,发送token + USER_CONNECTION_AUTHENTICATION: '200000' + } +}; + +// 登录接口-是否需要rsa加密 +export const IS_NEED_RSA = false; +// 是否显示新的流程设计 +export const SHOW_NEW_FLOW_DESIGN = false; \ No newline at end of file diff --git a/guns-front-project/src/homeLayout/index.vue b/guns-front-project/src/homeLayout/index.vue new file mode 100644 index 00000000..4a69db8b --- /dev/null +++ b/guns-front-project/src/homeLayout/index.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/guns-front-project/src/i18n/index.js b/guns-front-project/src/i18n/index.js new file mode 100644 index 00000000..7af0dbd9 --- /dev/null +++ b/guns-front-project/src/i18n/index.js @@ -0,0 +1,20 @@ +/** + * 国际化配置 + */ +import { createI18n } from 'vue-i18n'; +import { I18N_CACHE_NAME } from '@/config/setting'; +import zh_CN from './lang/zh_CN'; +import zh_TW from './lang/zh_TW'; +import en from './lang/en'; + +const messages = { zh_CN, zh_TW, en }; + +const i18n = createI18n({ + messages, + legacy: false, + silentTranslationWarn: true, + // 默认语言 + locale: localStorage.getItem(I18N_CACHE_NAME) || 'zh_CN' +}); + +export default i18n; diff --git a/guns-front-project/src/i18n/lang/en/index.js b/guns-front-project/src/i18n/lang/en/index.js new file mode 100644 index 00000000..743cea1a --- /dev/null +++ b/guns-front-project/src/i18n/lang/en/index.js @@ -0,0 +1,14 @@ +/** + * 英语 + */ +import route from './route'; +import layout from './layout'; +import login from './login'; +import list from './list'; + +export default { + route, + layout, + login, + list +}; diff --git a/guns-front-project/src/i18n/lang/en/layout.js b/guns-front-project/src/i18n/lang/en/layout.js new file mode 100644 index 00000000..0618d8c1 --- /dev/null +++ b/guns-front-project/src/i18n/lang/en/layout.js @@ -0,0 +1,78 @@ +/* 主框架 */ +export default { + home: 'Home', + header: { + profile: 'Profile', + userinfo: 'UserInfo', + password: 'Password', + logout: 'SignOut' + }, + footer: { + website: 'Website', + document: 'Document', + authorization: 'Authorization', + copyright: 'Copyright © 2021 Wuhan EClouds Technology Co., Ltd' + }, + logout: { + title: 'Confirm', + message: 'Are you sure you want to log out?' + }, + setting: { + title: 'Theme Setting', + sideStyles: { + dark: 'Dark Sidebar', + light: 'Light Sidebar' + }, + headStyles: { + light: 'Light Header', + dark: 'Dark Header', + primary: 'Primary Header' + }, + layoutStyles: { + side: 'Side Menu Layout', + top: 'Top Menu Layout', + mix: 'Mix Menu Layout' + }, + colors: { + default: 'Daybreak Blue', + dust: 'Dust Blue', + sunset: 'Sunset Orange', + volcano: 'Volcano', + purple: 'Golden Purple', + cyan: 'Cyan', + green: 'Polar Green', + geekblue: 'Geek Blue' + }, + darkMode: 'Dark Mode', + layoutStyle: 'Navigation Mode', + sideMenuStyle: 'Sidebar Double Menu', + bodyFull: 'Body Fixed Width', + other: 'Other Setting', + fixedHeader: 'Fixed Header', + fixedSidebar: 'Fixed Sidebar', + fixedBody: 'Fixed Body', + logoAutoSize: 'Logo In Header', + styleResponsive: 'Responsive', + colorfulIcon: 'Colorful Icon', + sideUniqueOpen: 'Menu Unique Open', + weakMode: 'Weak Mode', + showFooter: 'Show Footer', + showTabs: 'Show Tabs', + tabStyle: 'Tab Style', + tabStyles: { + default: 'Default', + dot: 'Dot', + card: 'Card' + }, + transitionName: 'Transition', + transitions: { + slideRight: 'Slide Right', + slideBottom: 'Slide Bottom', + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + fade: 'Fade' + }, + reset: 'Reset', + tips: 'It will remember your configuration the next time you open it.' + } +}; diff --git a/guns-front-project/src/i18n/lang/en/list.js b/guns-front-project/src/i18n/lang/en/list.js new file mode 100644 index 00000000..f8094520 --- /dev/null +++ b/guns-front-project/src/i18n/lang/en/list.js @@ -0,0 +1,17 @@ +/* 列表页面 */ +export default { + // 基础列表 + basic: { + table: { + avatar: 'Avatar', + username: 'Username', + nickname: 'Nickname', + organizationName: 'Organization', + phone: 'Phone', + sexName: 'Sex', + createTime: 'CreateTime', + status: 'Status', + action: 'Action' + } + } +}; diff --git a/guns-front-project/src/i18n/lang/en/login.js b/guns-front-project/src/i18n/lang/en/login.js new file mode 100644 index 00000000..860f1a4a --- /dev/null +++ b/guns-front-project/src/i18n/lang/en/login.js @@ -0,0 +1,11 @@ +/* 登录界面 */ +export default { + title: 'User Login', + username: 'please input username', + password: 'please input password', + code: 'please input code', + remember: 'remember', + forget: 'forget', + login: 'login', + loading: 'loading' +}; diff --git a/guns-front-project/src/i18n/lang/en/route.js b/guns-front-project/src/i18n/lang/en/route.js new file mode 100644 index 00000000..c03e374e --- /dev/null +++ b/guns-front-project/src/i18n/lang/en/route.js @@ -0,0 +1,100 @@ +/* 菜单路由 */ +export default { + login: { _name: 'Login' }, + forget: { _name: 'Forget' }, + dashboard: { + _name: 'Dashboard', + workplace: { _name: 'Workplace' }, + analysis: { _name: 'Analysis' }, + monitor: { _name: 'Monitor' } + }, + system: { + _name: 'System', + user: { + _name: 'User', + details: { _name: '' } + }, + role: { _name: 'Role' }, + menu: { _name: 'Menu' }, + dictionary: { _name: 'Dictionary' }, + organization: { _name: 'Organization' }, + loginRecord: { _name: 'LoginRecord' }, + operationRecord: { _name: 'OperationRecord' }, + file: { _name: 'File' }, + userInfo: { _name: '' } + }, + form: { + _name: 'Form', + basic: { _name: 'Basic Form' }, + advanced: { _name: 'Advanced Form' }, + step: { _name: 'Step Form' } + }, + list: { + _name: 'List', + basic: { + _name: 'Basic List', + add: { _name: 'UserAdd' }, + edit: { _name: 'UserEdit' }, + details: { + ':id': { _name: '' } + } + }, + advanced: { _name: 'Advanced List' }, + card: { + _name: 'Card List', + project: { _name: 'Project' }, + application: { _name: 'Application' }, + article: { _name: 'Article' } + } + }, + result: { + _name: 'Result', + success: { _name: 'Success' }, + fail: { _name: 'Fail' } + }, + exception: { + _name: 'Exception', + 403: { _name: '403' }, + 404: { _name: '404' }, + 500: { _name: '500' } + }, + user: { + _name: 'User', + profile: { _name: 'Profile' }, + message: { _name: 'Message' } + }, + extension: { + _name: 'Extension', + tag: { _name: 'Tags' }, + dialog: { _name: 'DragDialog' }, + file: { _name: 'FileList' }, + upload: { _name: 'ImageUpload' }, + dragsort: { _name: 'DragSort' }, + colorPicker: { _name: 'ColorPicker' }, + regions: { _name: 'CitySelect' }, + printer: { _name: 'Printer' }, + excel: { _name: 'Excel' }, + countUp: { _name: 'CountUp' }, + tableSelect: { _name: 'TableSelect' }, + player: { _name: 'Player' }, + map: { _name: 'Map' }, + qrCode: { _name: 'QRCode' }, + barCode: { _name: 'BarCode' }, + editor: { _name: 'Editor' }, + markdown: { _name: 'Markdown' }, + dashboard: { _name: 'Dashboard' }, + tour: { _name: 'Tour' }, + watermark: { _name: 'Watermark' }, + split: { _name: 'SplitPanel' } + }, + example: { + _name: 'Example', + table: { _name: 'ProTable' }, + menuBadge: { _name: 'MenuBadge' }, + eleadmin: { _name: 'IFrame' }, + eleadminDoc: { _name: 'IFrame2' }, + document: { _name: 'Document' }, + choose: { _name: 'Choose' } + }, + 'https://eleadminCom/goods/9': { _name: 'Authorization' } +}; diff --git a/guns-front-project/src/i18n/lang/zh_CN/index.js b/guns-front-project/src/i18n/lang/zh_CN/index.js new file mode 100644 index 00000000..282e79eb --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_CN/index.js @@ -0,0 +1,14 @@ +/** + * 简体中文 + */ +import route from './route'; +import layout from './layout'; +import login from './login'; +import list from './list'; + +export default { + route, + layout, + login, + list +}; diff --git a/guns-front-project/src/i18n/lang/zh_CN/layout.js b/guns-front-project/src/i18n/lang/zh_CN/layout.js new file mode 100644 index 00000000..4933797f --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_CN/layout.js @@ -0,0 +1,78 @@ +/* 主框架 */ +export default { + home: '主页', + header: { + profile: '个人中心', + userinfo: '个人信息', + password: '修改密码', + logout: '退出登录' + }, + footer: { + website: '官网', + document: '文档', + authorization: '授权', + copyright: 'Copyright © 2022 javaguns.com' + }, + logout: { + title: '提示', + message: '确定要退出登录吗?' + }, + setting: { + title: '整体风格设置', + sideStyles: { + dark: '暗色侧边栏', + light: '亮色侧边栏' + }, + headStyles: { + light: '亮色顶栏', + dark: '暗色顶栏', + primary: '主色顶栏' + }, + layoutStyles: { + side: '左侧菜单布局', + top: '顶部菜单布局', + mix: '混合菜单布局' + }, + colors: { + default: '拂晓蓝', + dust: '薄暮', + sunset: '日暮', + volcano: '火山', + purple: '酱紫', + cyan: '明青', + green: '极光绿', + geekblue: '极客蓝' + }, + darkMode: '开启暗黑模式', + layoutStyle: '导航模式', + sideMenuStyle: '侧栏双排菜单', + bodyFull: '内容区域定宽', + other: '其它配置', + fixedHeader: '固定顶栏区域', + fixedSidebar: '固定侧栏区域', + fixedBody: '固定主体区域', + logoAutoSize: 'Logo置于顶栏', + styleResponsive: '移动端响应式', + colorfulIcon: '侧栏彩色图标', + sideUniqueOpen: '侧栏排他展开', + weakMode: '开启色弱模式', + showFooter: '开启全局页脚', + showTabs: '开启多页签栏', + tabStyle: '页签显示风格', + tabStyles: { + default: '默认', + dot: '圆点', + card: '卡片' + }, + transitionName: '路由切换动画', + transitions: { + slideRight: '滑动消退', + slideBottom: '底部消退', + zoomIn: '放大渐变', + zoomOut: '缩小渐变', + fade: '淡入淡出' + }, + reset: '重置', + tips: '该功能可实时预览各种布局效果, 修改后会缓存在本地, 下次打开会记忆主题配置.' + } +}; diff --git a/guns-front-project/src/i18n/lang/zh_CN/list.js b/guns-front-project/src/i18n/lang/zh_CN/list.js new file mode 100644 index 00000000..4011464e --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_CN/list.js @@ -0,0 +1,17 @@ +/* 列表页面 */ +export default { + // 基础列表 + basic: { + table: { + avatar: '头像', + username: '用户账号', + nickname: '用户名', + organizationName: '组织机构', + phone: '手机号', + sexName: '性别', + createTime: '创建时间', + status: '状态', + action: '操作' + } + } +}; diff --git a/guns-front-project/src/i18n/lang/zh_CN/login.js b/guns-front-project/src/i18n/lang/zh_CN/login.js new file mode 100644 index 00000000..d7d54cff --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_CN/login.js @@ -0,0 +1,11 @@ +/* 登录界面 */ +export default { + title: '用户登录', + username: '请输入登录账号', + password: '请输入登录密码', + code: '请输入验证码', + remember: '记住密码', + forget: '忘记密码', + login: '登录', + loading: '登录中' +}; diff --git a/guns-front-project/src/i18n/lang/zh_CN/route.js b/guns-front-project/src/i18n/lang/zh_CN/route.js new file mode 100644 index 00000000..b411e2fa --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_CN/route.js @@ -0,0 +1,101 @@ +/* 菜单路由 */ +export default { + login: { _name: '登录' }, + forget: { _name: '忘记密码' }, + dashboard: { + _name: '控制面板', + workplace: { _name: '工作台' }, + analysis: { _name: '分析页' }, + monitor: { _name: '监控页' } + }, + system: { + _name: '系统用户', + user: { + _name: '用户管理', + add: { _name: '添加用户' }, + edit: { _name: '修改用户' }, + details: { _name: '' } + }, + role: { _name: '角色管理' }, + menu: { _name: '菜单管理' }, + dictionary: { _name: '字典管理' }, + organization: { _name: '机构管理' }, + loginRecord: { _name: '登录日志' }, + operationRecord: { _name: '操作日志' }, + file: { _name: '文件管理' } + }, + form: { + _name: '表单页面', + basic: { _name: '基础表单' }, + advanced: { _name: '复杂表单' }, + step: { _name: '分步表单' } + }, + list: { + _name: '列表页面', + basic: { + _name: '基础列表', + add: { _name: '添加用户' }, + edit: { _name: '修改用户' }, + details: { + ':id': { _name: '' } + } + }, + advanced: { _name: '复杂列表' }, + card: { + _name: '卡片列表', + project: { _name: '项目列表' }, + application: { _name: '应用列表' }, + article: { _name: '文章列表' } + } + }, + result: { + _name: '结果页面', + success: { _name: '成功页' }, + fail: { _name: '失败页' } + }, + exception: { + _name: '异常页面', + 403: { _name: '403' }, + 404: { _name: '404' }, + 500: { _name: '500' } + }, + user: { + _name: '个人中心', + profile: { _name: '个人资料' }, + message: { _name: '我的消息' } + }, + extension: { + _name: '扩展组件', + tag: { _name: '标签组件' }, + dialog: { _name: '拖拽弹窗' }, + file: { _name: '文件列表' }, + upload: { _name: '图片上传' }, + dragsort: { _name: '拖拽排序' }, + colorPicker: { _name: '颜色选择' }, + regions: { _name: '城市选择' }, + printer: { _name: '打印插件' }, + excel: { _name: 'excel插件' }, + countUp: { _name: '滚动数字' }, + tableSelect: { _name: '表格下拉' }, + player: { _name: '视频播放' }, + map: { _name: '地图组件' }, + qrCode: { _name: '二维码' }, + barCode: { _name: '条形码' }, + editor: { _name: '富文本框' }, + markdown: { _name: 'markdown' }, + dashboard: { _name: '仪表盘' }, + tour: { _name: '引导组件' }, + watermark: { _name: '水印组件' }, + split: { _name: '分割面板' } + }, + example: { + _name: '常用实例', + table: { _name: '表格实例' }, + menuBadge: { _name: '菜单徽章' }, + eleadmin: { _name: '内嵌页面' }, + eleadminDoc: { _name: '内嵌文档' }, + document: { _name: '案卷调整' }, + choose: { _name: '批量选择' } + }, + 'https://eleadminCom/goods/9': { _name: '获取授权' } +}; diff --git a/guns-front-project/src/i18n/lang/zh_TW/index.js b/guns-front-project/src/i18n/lang/zh_TW/index.js new file mode 100644 index 00000000..50057e35 --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_TW/index.js @@ -0,0 +1,14 @@ +/** + * 繁体中文 + */ +import route from './route'; +import layout from './layout'; +import login from './login'; +import list from './list'; + +export default { + route, + layout, + login, + list +}; diff --git a/guns-front-project/src/i18n/lang/zh_TW/layout.js b/guns-front-project/src/i18n/lang/zh_TW/layout.js new file mode 100644 index 00000000..71480640 --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_TW/layout.js @@ -0,0 +1,78 @@ +/* 主框架 */ +export default { + home: '主頁', + header: { + profile: '個人中心', + userinfo: '個人信息', + password: '修改密碼', + logout: '安全登出' + }, + footer: { + website: '官網', + document: '檔案', + authorization: '授權', + copyright: 'Copyright © 2022 javaguns.com' + }, + logout: { + title: '詢問', + message: '確定要登出嗎?' + }, + setting: { + title: '整體風格設定', + sideStyles: { + dark: '暗色側邊欄', + light: '亮色側邊欄' + }, + headStyles: { + light: '亮色頂欄', + dark: '暗色頂欄', + primary: '主色頂欄' + }, + layoutStyles: { + side: '左側選單佈局', + top: '頂部選單佈局', + mix: '混合選單佈局' + }, + colors: { + default: '拂曉藍', + dust: '薄暮', + sunset: '日暮', + volcano: '火山', + purple: '醬紫', + cyan: '明青', + green: '極光綠', + geekblue: '極客藍' + }, + darkMode: '開啟暗黑模式', + layoutStyle: '導航模式', + sideMenuStyle: '側欄雙排選單', + bodyFull: '內容區域定寬', + other: '其它配寘', + fixedHeader: '固定頂欄區域', + fixedSidebar: '固定側欄區域', + fixedBody: '固定主體區域', + logoAutoSize: 'Logo置於頂欄', + styleResponsive: '移動端響應式', + colorfulIcon: '側欄彩色圖標', + sideUniqueOpen: '側欄排他展開', + weakMode: '開啟色弱模式', + showFooter: '開啟全域頁腳', + showTabs: '開啟多頁簽欄', + tabStyle: '頁簽顯示風格', + tabStyles: { + default: '默認', + dot: '圓點', + card: '卡片' + }, + transitionName: '路由切換動畫', + transitions: { + slideRight: '滑動消退', + slideBottom: '底部消退', + zoomIn: '放大漸變', + zoomOut: '縮小漸變', + fade: '淡入淡出' + }, + reset: '重置', + tips: '該功能可實时預覽各種佈局效果,修改後會緩存在本地,下次打開會記憶主題配寘.' + } +}; diff --git a/guns-front-project/src/i18n/lang/zh_TW/list.js b/guns-front-project/src/i18n/lang/zh_TW/list.js new file mode 100644 index 00000000..f24c25fd --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_TW/list.js @@ -0,0 +1,17 @@ +/* 列表页面 */ +export default { + // 基础列表 + basic: { + table: { + avatar: '頭像', + username: '用戶賬號', + nickname: '用戶名', + organizationName: '組織機構', + phone: '手機號', + sexName: '性別', + createTime: '創建時間', + status: '狀態', + action: '操作' + } + } +}; diff --git a/guns-front-project/src/i18n/lang/zh_TW/login.js b/guns-front-project/src/i18n/lang/zh_TW/login.js new file mode 100644 index 00000000..5cd7b85a --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_TW/login.js @@ -0,0 +1,11 @@ +/* 登录界面 */ +export default { + title: '用戶登錄', + username: '請輸入登入帳號', + password: '請輸入登入密碼', + code: '請輸入驗證碼', + remember: '記住密碼', + forget: '忘記密碼', + login: '登入', + loading: '登入中' +}; diff --git a/guns-front-project/src/i18n/lang/zh_TW/route.js b/guns-front-project/src/i18n/lang/zh_TW/route.js new file mode 100644 index 00000000..b37a600f --- /dev/null +++ b/guns-front-project/src/i18n/lang/zh_TW/route.js @@ -0,0 +1,101 @@ +/* 菜单路由 */ +export default { + login: { _name: '登入' }, + forget: { _name: '忘記密碼' }, + dashboard: { + _name: 'Dashboard', + workplace: { _name: '工作臺' }, + analysis: { _name: '分析頁' }, + monitor: { _name: '監控頁' } + }, + system: { + _name: '系統管理', + user: { + _name: '用戶管理', + add: { _name: '添加用戶' }, + edit: { _name: '編輯用戶' }, + details: { _name: '' } + }, + role: { _name: '角色管理' }, + menu: { _name: '選單管理' }, + dictionary: { _name: '字典管理' }, + organization: { _name: '機构管理' }, + loginRecord: { _name: '登入日誌' }, + operationRecord: { _name: '操作日誌' }, + file: { _name: '檔案管理' } + }, + form: { + _name: '表單頁面', + basic: { _name: '基礎表單' }, + advanced: { _name: '複雜表單' }, + step: { _name: '分步表單' } + }, + list: { + _name: '清單頁面', + basic: { + _name: '基礎清單', + add: { _name: '添加用戶' }, + edit: { _name: '編輯用戶' }, + details: { + ':id': { _name: '' } + } + }, + advanced: { _name: '複雜清單' }, + card: { + _name: '卡片清單', + project: { _name: '項目清單' }, + application: { _name: '應用清單' }, + article: { _name: '文章清單' } + } + }, + result: { + _name: '結果頁面', + success: { _name: '成功頁' }, + fail: { _name: '失敗頁' } + }, + exception: { + _name: '异常頁面', + 403: { _name: '403' }, + 404: { _name: '404' }, + 500: { _name: '500' } + }, + user: { + _name: '個人中心', + profile: { _name: '個人資料' }, + message: { _name: '我的消息' } + }, + extension: { + _name: '擴展組件', + tag: { _name: '標籤組件' }, + dialog: { _name: '拖拽彈窗' }, + file: { _name: '檔案清單' }, + upload: { _name: '圖片上傳' }, + dragsort: { _name: '拖拽排序' }, + colorPicker: { _name: '顏色選擇' }, + regions: { _name: '城市選擇' }, + printer: { _name: '列印挿件' }, + excel: { _name: 'excel挿件' }, + countUp: { _name: '滾動數字' }, + tableSelect: { _name: '表格下拉' }, + player: { _name: '視頻播放' }, + map: { _name: '地圖組件' }, + qrCode: { _name: '二維碼' }, + barCode: { _name: '條形碼' }, + editor: { _name: '富文本框' }, + markdown: { _name: 'markdown' }, + dashboard: { _name: '儀錶盤' }, + tour: { _name: '引導組件' }, + watermark: { _name: '水印組件' }, + split: { _name: '水印组件' } + }, + example: { + _name: '常用實例', + table: { _name: '表格實例' }, + menuBadge: { _name: '選單徽章' }, + eleadmin: { _name: '內嵌頁面' }, + eleadminDoc: { _name: '内嵌文檔' }, + document: { _name: '案卷調整' }, + choose: { _name: '批量選擇' } + }, + 'https://eleadminCom/goods/9': { _name: '獲取授權' } +}; diff --git a/guns-front-project/src/i18n/use-locale.js b/guns-front-project/src/i18n/use-locale.js new file mode 100644 index 00000000..6401b4ac --- /dev/null +++ b/guns-front-project/src/i18n/use-locale.js @@ -0,0 +1,36 @@ +/** + * AntDesignVue、Dayjs 国际化配置 + */ +import { ref, watch } from 'vue'; +import { useI18n } from 'vue-i18n'; +// AntDesignVue +import zh_CN from 'ant-design-vue/es/locale/zh_CN'; +import zh_TW from 'ant-design-vue/es/locale/zh_TW'; +import en from 'ant-design-vue/es/locale/en_US'; +// +import gunsZh_CN from './lang/zh_CN'; +import gunsZh_TW from './lang/zh_TW'; +import gunsEn from './lang/en'; +// Dayjs +import dayjs from 'dayjs'; +import 'dayjs/locale/zh-cn'; +import 'dayjs/locale/zh-tw'; +const antLocales = { zh_CN, zh_TW, en }; +const eleLocales = { zh_CN: gunsZh_CN, zh_TW: gunsZh_TW, en: gunsEn }; + +export function useLocale() { + const { locale } = useI18n(); + const antLocale = ref(); + const eleLocale = ref(); + + watch( + locale, + () => { + antLocale.value = antLocales[locale.value]; + eleLocale.value = eleLocales[locale.value]; + dayjs.locale(locale.value.toLowerCase().replace(/_/g, '-')); + }, + { immediate: true } + ); + return { antLocale, eleLocale }; +} diff --git a/guns-front-project/src/layout/api/LayoutApi.js b/guns-front-project/src/layout/api/LayoutApi.js new file mode 100644 index 00000000..9df775be --- /dev/null +++ b/guns-front-project/src/layout/api/LayoutApi.js @@ -0,0 +1,23 @@ +import request from '@/utils/request/request'; + +/** + * 获取当前登录的用户信息、菜单、权限、角色 + */ +export async function getUserInfo() { + const res = await request.get('/userIndexInfo'); + if (res.data.code === '00000' && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改当前登录的用户密码 + */ +export async function updatePassword(data) { + const res = await request.post('/sysUser/updatePassword', data); + if (res.data.code === '00000') { + return res.data.message ?? '修改成功'; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/guns-front-project/src/layout/api/NoticeApi.js b/guns-front-project/src/layout/api/NoticeApi.js new file mode 100644 index 00000000..412926ef --- /dev/null +++ b/guns-front-project/src/layout/api/NoticeApi.js @@ -0,0 +1,90 @@ +import Request from '@/utils/request/request-util'; + +/** + * 系统通知管理 + * + * @author fengshuonan + * @date 2021/6/12 17:51 + */ +export class NoticeApi { + /** + * 获取通知列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/sysMessage/page', params); + } + + /** + * 获取当前用户未读消息 + * + * @author fengshuonan + * @date 2021/6/12 18:20 + */ + static getUnReadMessages() { + return Request.getAndLoadData('/sysMessage/unReadMessageList'); + } + + /** + * 将当前用户未读消息标记未已读 + * + * @author fengshuonan + * @date 2021/6/12 18:20 + */ + static setTotalRead() { + return Request.post('/sysMessage/setTotalRead'); + } + + /** + * 批量标记消息状态为已读 + * + * @param {List} param.messageIdList 消息id集合 + * @author fengshuonan + * @date 2021/6/12 18:20 + */ + static setRead(param) { + return Request.post('/sysMessage/setRead', param); + } + + /** + * 删除通知 + * + * @author fengshuonan + * @date 2021/6/14 21:17 + */ + static deleteNotice(param) { + return Request.post('/sysNotice/delete', param); + } + + /** + * 全部标记未已读状态 + * + * @author fengshuonan + * @date 2021/6/15 23:09 + */ + static setAlreadyReadState() { + return Request.get('/sysMessage/allMessageReadFlag'); + } + + /** + * 删除我的消息 + * + * @author fengshuonan + * @date 2021/6/15 23:13 + */ + static deleteMessage(params) { + return Request.post('/sysMessage/delete', params); + } + + /** + * 查看消息详情 + * + * @author fengshuonan + * @date 2021/6/15 23:13 + */ + static messageDetail(params) { + return Request.getAndLoadData('/sysMessage/detail', params); + } +} diff --git a/guns-front-project/src/layout/components/app-switch-modal.vue b/guns-front-project/src/layout/components/app-switch-modal.vue new file mode 100644 index 00000000..6af569aa --- /dev/null +++ b/guns-front-project/src/layout/components/app-switch-modal.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/guns-front-project/src/layout/components/header-notice.vue b/guns-front-project/src/layout/components/header-notice.vue new file mode 100644 index 00000000..8821fa86 --- /dev/null +++ b/guns-front-project/src/layout/components/header-notice.vue @@ -0,0 +1,188 @@ + + + + + + + + diff --git a/guns-front-project/src/layout/components/header-tools.vue b/guns-front-project/src/layout/components/header-tools.vue new file mode 100644 index 00000000..5ebf531b --- /dev/null +++ b/guns-front-project/src/layout/components/header-tools.vue @@ -0,0 +1,209 @@ + + + + + + diff --git a/guns-front-project/src/layout/components/i18n-icon.vue b/guns-front-project/src/layout/components/i18n-icon.vue new file mode 100644 index 00000000..2577401c --- /dev/null +++ b/guns-front-project/src/layout/components/i18n-icon.vue @@ -0,0 +1,51 @@ + + + + diff --git a/guns-front-project/src/layout/components/menu-title.vue b/guns-front-project/src/layout/components/menu-title.vue new file mode 100644 index 00000000..b0258ba9 --- /dev/null +++ b/guns-front-project/src/layout/components/menu-title.vue @@ -0,0 +1,18 @@ + + + diff --git a/guns-front-project/src/layout/components/page-footer.vue b/guns-front-project/src/layout/components/page-footer.vue new file mode 100644 index 00000000..40bcb9df --- /dev/null +++ b/guns-front-project/src/layout/components/page-footer.vue @@ -0,0 +1,35 @@ + + + + diff --git a/guns-front-project/src/layout/components/password-modal.vue b/guns-front-project/src/layout/components/password-modal.vue new file mode 100644 index 00000000..b83d0c69 --- /dev/null +++ b/guns-front-project/src/layout/components/password-modal.vue @@ -0,0 +1,114 @@ + + + + diff --git a/guns-front-project/src/layout/components/setting-drawer.vue b/guns-front-project/src/layout/components/setting-drawer.vue new file mode 100644 index 00000000..10885ee7 --- /dev/null +++ b/guns-front-project/src/layout/components/setting-drawer.vue @@ -0,0 +1,391 @@ + + + + + + diff --git a/guns-front-project/src/layout/index.vue b/guns-front-project/src/layout/index.vue new file mode 100644 index 00000000..b2a12fd8 --- /dev/null +++ b/guns-front-project/src/layout/index.vue @@ -0,0 +1,342 @@ + + + + + + + diff --git a/guns-front-project/src/layout/menu-icons.js b/guns-front-project/src/layout/menu-icons.js new file mode 100644 index 00000000..c3a45e47 --- /dev/null +++ b/guns-front-project/src/layout/menu-icons.js @@ -0,0 +1,48 @@ +/** 菜单用到的图标 */ +export { + HomeOutlined, + SettingOutlined, + TeamOutlined, + DesktopOutlined, + FileTextOutlined, + TableOutlined, + AppstoreOutlined, + CheckCircleOutlined, + ExclamationCircleOutlined, + UserOutlined, + TagOutlined, + IdcardOutlined, + BarChartOutlined, + AuditOutlined, + PicLeftOutlined, + CloseCircleOutlined, + QuestionCircleOutlined, + SoundOutlined, + ApartmentOutlined, + DashboardOutlined, + OneToOneOutlined, + DragOutlined, + InteractionOutlined, + BankOutlined, + BlockOutlined, + CheckSquareOutlined, + ProfileOutlined, + WarningOutlined, + FolderOutlined, + YoutubeOutlined, + ControlOutlined, + EllipsisOutlined, + CalendarOutlined, + AppstoreAddOutlined, + FileSearchOutlined, + EnvironmentOutlined, + CompassOutlined, + FontSizeOutlined, + SketchOutlined, + BgColorsOutlined, + PrinterOutlined, + QrcodeOutlined, + BarcodeOutlined, + PictureOutlined, + LinkOutlined +} from '@ant-design/icons-vue'; diff --git a/guns-front-project/src/main.js b/guns-front-project/src/main.js new file mode 100644 index 00000000..3e67649f --- /dev/null +++ b/guns-front-project/src/main.js @@ -0,0 +1,27 @@ +import { createApp } from 'vue'; +import store from './store'; +import i18n from './i18n'; +import App from './App.vue'; +import router from './router'; +import './styles/index.less'; +import Antd from 'ant-design-vue'; +import './assets/iconfont/iconfont'; +import VXETable from 'vxe-table'; +import 'vxe-table/lib/style.css' +import permission from './utils/permission'; +import * as antIcons from '@ant-design/icons-vue'; +const app = createApp(App); + +app.use(store); +app.use(i18n); +app.use(router); +app.use(permission); +app.use(VXETable); + +app.use(Antd).mount('#app'); + +// 注册图标组件到全局 +Object.keys(antIcons).forEach(key => { + app.component(key, antIcons[key]); +}); +app.config.globalProperties.$antIcons = antIcons; diff --git a/guns-front-project/src/router/index.js b/guns-front-project/src/router/index.js new file mode 100644 index 00000000..b4cfb202 --- /dev/null +++ b/guns-front-project/src/router/index.js @@ -0,0 +1,131 @@ +/** + * 路由配置 + */ +import NProgress from 'nprogress'; +import { createRouter, createWebHistory } from 'vue-router'; +import { WHITE_LIST, REDIRECT_PATH, SSO_FLAG, BASE_URL } from '@/config/setting'; +import { useUserStore } from '@/store/modules/user'; +import { getToken } from '@/utils/token-util'; +import { findTree } from '@/utils/common/util'; +import { routes, getMenuRoutes } from './routes'; +import { SsoUtil } from '@/utils/common/sso-util'; +import { formatMenus, toTreeData, eachTreeData } from '@/utils/common/menu-util'; +import { useSystemStore } from '@/store/modules/system'; +import { SysConfigApi } from '@/views/system/backend/sys-config/api/SysConfigApi'; + +NProgress.configure({ + speed: 200, + minimum: 0.02, + trickleSpeed: 200, + showSpinner: false +}); + +const router = createRouter({ + routes, + history: createWebHistory(BASE_URL), + scrollBehavior() { + return { top: 0 }; + } +}); + +/** + * 路由守卫 + */ +router.beforeEach(async (to, from) => { + // 网站顶部小进度条开启 + if (!from.path.includes(REDIRECT_PATH)) { + NProgress.start(); + } + + // 当前用户没有登录,没有token + if (!getToken()) { + // 当前路径不存在白名单内 + if (!WHITE_LIST.includes(to.path)) { + // 当前路径不在白名单,如果开启了sso,并且未携带有errorCode(单点返回来的),跳转到单点detection + if (SSO_FLAG && !to.query.errorCode && !to.query.token) { + SsoUtil.redirectDetection(); + } else { + // 没开启sso,直接跳转到登录界面 + return { + path: '/login', + query: to.path === '/' ? {} : { from: to.path } + }; + } + } + } + + // 可以获取到token,代表用户已经登录了 + else { + // 校验系统是否初始化过,如果没有初始化过,则进入初始化界面初始化一些后台需要的参数 + const systemStore = useSystemStore(); + + if (systemStore.alreadyInitConfig === null || !systemStore.alreadyInitConfig) { + // 获取是否系统初始化过配置 + let alreadyInit = await SysConfigApi.getInitConfigFlag(); + + // 更新store中存储的标识 + systemStore.updateInitFlag(alreadyInit); + + // 如果没有初始化系统配置,并且当前跳转的界面不是init界面,则跳转到init界面 + if (!alreadyInit && to.path !== '/init') { + return { path: '/init' }; + } + } + + // 注册动态路由 + const userStore = useUserStore(); + if (!userStore.menus) { + const { needMenus, noNeedMenus, homePath } = await userStore.fetchUserInfo(to.path); + // 不需要左侧菜单 + if (noNeedMenus) { + router.addRoute(getMenuRoutes(noNeedMenus, homePath, false)); + } + // 需要左侧菜单 + if (needMenus) { + router.addRoute(getMenuRoutes(needMenus, homePath)); + return { ...to, replace: true }; + } + } else { + let currentApp = {}; + userStore.appList.forEach(item => { + let currentRou = findTree(item.menuList, to.path, 'path'); + if (currentRou && currentRou.length) { + currentApp = item; + } + }); + // 切换应用 + if (!(currentApp && currentApp.appId && currentApp.appId == userStore.activeApp?.appId)) { + await SysConfigApi.updateUserOrgOrApp({ newAppId: currentApp.appId }); + userStore.setActiveApp(currentApp); + } + const { menus } = formatMenus( + toTreeData({ + data: currentApp.menuList?.map(d => { + return { + ...d, + path: d.menuType == 40 ? 'http://' + location.host + d.path : d.path + }; + }), + idField: 'menuId', + parentIdField: 'menuParentId' + }) + ); + eachTreeData(menus, d => { + if (d.redirect && d.redirect.indexOf('http:') != '-1') { + d.path = d.redirect; + } + }); + userStore.setMenus(menus); + } + } +}); + +router.afterEach(to => { + if (!to.path.includes(REDIRECT_PATH) && NProgress.isStarted()) { + setTimeout(() => { + NProgress.done(true); + }, 200); + } +}); + +export default router; diff --git a/guns-front-project/src/router/routes.js b/guns-front-project/src/router/routes.js new file mode 100644 index 00000000..24237c20 --- /dev/null +++ b/guns-front-project/src/router/routes.js @@ -0,0 +1,82 @@ +import { menuToRoutes, eachTreeData } from '@/utils/common/menu-util'; +import { HOME_PATH, LAYOUT_PATH, REDIRECT_PATH } from '@/config/setting'; +import GunsLayout from '@/layout/index.vue'; +import RedirectLayout from '@/components/RedirectLayout'; +const modules = import.meta.glob('/src/views/**/**.vue'); + +/** + * 静态路由 + */ +export const routes = [ + { + path: '/login', + component: () => import('@/views/login/login/index.vue'), + meta: { title: '登录' } + }, + { + path: '/forget', + component: () => import('@/views/forget/index.vue'), + meta: { title: '忘记密码' } + }, + { + path: '/sso', + component: () => import('@/views/login/sso.vue'), + meta: { title: '单点登录' } + }, + { + path: '/init', + component: () => import('@/views/init/index.vue'), + meta: { title: '初始化系统配置' } + }, + { + path: '/tokenLogin', + component: () => import('@/views/login/token.vue'), + meta: { title: 'token登录' } + }, + // 404 + { + path: '/:path(.*)*', + component: () => import('@/components/Exception/404/index.vue') + } +]; + +/** + * 动态路由 + * @param menus 菜单数据 + * @param homePath 主页地址 + * @param isNeedMenuTree 是否需要左侧菜单 + */ +export function getMenuRoutes(menus, homePath, isNeedMenuTree = true) { + const routes = [ + // 用于刷新的路由 + { + path: REDIRECT_PATH + '/:path(.*)', + component: RedirectLayout, + meta: { hideFooter: true } + } + ]; + // 路由铺平处理 + eachTreeData(menuToRoutes(menus, getComponent), (route) => { + routes.push({ ...route, children: void 0 }); + }); + return { + path: LAYOUT_PATH, + component: isNeedMenuTree ? GunsLayout : null, + redirect: HOME_PATH ?? homePath, + children: routes + }; +} + +/** + * 解析路由组件 + * @param component 组件名称 + */ +export function getComponent(component) { + if (component) { + const module = modules[`/src/views/${component}.vue`]; + if (!module) { + return modules[`/src/views/${component}/index.vue`]; + } + return module; + } +} diff --git a/guns-front-project/src/store/index.js b/guns-front-project/src/store/index.js new file mode 100644 index 00000000..bf43b30e --- /dev/null +++ b/guns-front-project/src/store/index.js @@ -0,0 +1,6 @@ +/** + * pinia + */ +import { createPinia } from 'pinia'; + +export default createPinia(); diff --git a/guns-front-project/src/store/modules/notice.js b/guns-front-project/src/store/modules/notice.js new file mode 100644 index 00000000..e97d6333 --- /dev/null +++ b/guns-front-project/src/store/modules/notice.js @@ -0,0 +1,59 @@ +/** + * 存放当前用户未读消息 + */ +import { defineStore } from 'pinia'; + +export const useNoticeStore = defineStore({ + id: 'notice', + state: () => ({ + // 用户未读消息列表 + unReadNoticeList: [], + isMore: false, + }), + getters: {}, + actions: { + /** + * 设置是否点击更多 + * @param {*} value + */ + setIsMore(value) { + this.isMore = value; + }, + /** + * 添加未读的系统消息 + * + * @author fengshuonan + * @date 2021/6/12 19:20 + */ + addNotice(notice) { + let obj = { + readFlag: 0, + ...notice, + } + this.unReadNoticeList.unshift(obj); + }, + + /** + * 设置未读消息 + * + * @author fengshuonan + * @date 2021/6/12 19:20 + */ + setNotice(noticeList) { + this.unReadNoticeList = noticeList; + }, + + /** + * 删除消息 + * + * @author fengshuonan + * @date 2021/6/12 19:20 + */ + removeMessage(messageId) { + this.unReadNoticeList.splice( + this.unReadNoticeList.findIndex(item => item.messageId === messageId), + 1 + ); + } + } +}); diff --git a/guns-front-project/src/store/modules/system.js b/guns-front-project/src/store/modules/system.js new file mode 100644 index 00000000..5a335219 --- /dev/null +++ b/guns-front-project/src/store/modules/system.js @@ -0,0 +1,86 @@ +/** + * 系统参数相关store + */ +import { defineStore } from 'pinia'; +import { ThemeApi } from '@/views/system/backend/theme/manager/api/ThemeApi'; +import { LoginApi } from '@/views/login/login/api/LoginApi'; + +export const useSystemStore = defineStore({ + id: 'system', + state: () => ({ + // 当前系统是否已经初始化过配置 + alreadyInitConfig: null, + // 后台管理系统左上角Logo + gunsMgrLogo: null, + // 后台管理系统名称 + gunsMgrName: import.meta.env.VITE_APP_NAME, + // 系统名称副标题 + gunsSubTitle: import.meta.env.VITE_APP_NAME, + // 备案编号 + gunsMgrBeiNo: null, + // 备案跳转url + gunsMgrBeiUrl: 'https://beian.miit.gov.cn/', + // favicon图标地址 + gunsMgrFavicon: null, + // 页脚文字 + gunsMgrFooterText: null, + // 登录页面背景图片 + gunsMgrLoginBackgroundImg: null, + //api基础路径 + baseUrl: '', + }), + getters: {}, + actions: { + /** + * 更新初始化状态 + * + * @param {Boolean} initFlag 是否初始化了系统 + * @author fengshuonan + * @date 2021/6/12 19:20 + */ + updateInitFlag(initFlag) { + this.alreadyInitConfig = initFlag; + }, + + /** + * 更新初始化状态 + * + * @author fengshuonan + * @date 2021/6/12 19:20 + */ + loadThemeInfo() { + return new Promise(resolve => { + if (this.gunsMgrLogo != null) { + resolve(Object.assign({}, this.$state)); + } else { + ThemeApi.getCurrentThemeInfo().then(result => { + this.gunsMgrLogo = result.gunsMgrLogo; + this.gunsMgrName = result.gunsMgrName; + this.gunsSubTitle = result.otherConfigs?.gunsSubTitle; + this.gunsMgrBeiNo = result.gunsMgrBeiNo; + this.gunsMgrBeiUrl = result.gunsMgrBeiUrl; + this.gunsMgrFavicon = result.gunsMgrFavicon; + this.gunsMgrFooterText = result.gunsMgrFooterText; + this.gunsMgrLoginBackgroundImg = result.gunsMgrLoginBackgroundImg; + resolve(result); + }); + } + }); + }, + + /** + * 设置基础url + * + * @author fengshuonan + * @date 2022/3/4 10:37 + */ + loadBaseUrl() { + return new Promise(resolve => { + LoginApi.getBackendDeployUrl().then(result => { + this.baseUrl = result; + resolve(result); + }); + }); + }, + } +}); diff --git a/guns-front-project/src/store/modules/theme.js b/guns-front-project/src/store/modules/theme.js new file mode 100644 index 00000000..2f1d84cd --- /dev/null +++ b/guns-front-project/src/store/modules/theme.js @@ -0,0 +1,500 @@ +/** + * 主题状态管理 + */ +import { defineStore } from 'pinia'; +import { changeColor } from '@/utils/common/theme-util'; +import { + screenWidth, + screenHeight, + contentWidth, + contentHeight, + WEAK_CLASS, + BODY_LIMIT_CLASS, + DISABLES_CLASS +} from '@/components/layout/util'; +import { TAB_KEEP_ALIVE, KEEP_ALIVE_EXCLUDES, THEME_STORE_NAME } from '@/config/setting'; + +/** + * state 默认值 + */ +const DEFAULT_STATE = Object.freeze({ + // 页签数据 + tabs: [], + // 是否折叠侧栏 + collapse: localStorage.getItem('collapse') !== 'false', + // 是否开启页脚 + showFooter: false, + // 顶栏风格: light(亮色), dark(暗色), primary(主色) + headStyle: 'light', + // 侧栏风格: light(亮色), dark(暗色) + sideStyle: 'dark', + // 布局风格: side(默认), mix(混合导航) + layoutStyle: 'mix', + // 侧栏菜单风格: default(默认), mix(双排侧栏) + sideMenuStyle: 'default', + // 是否固定主体 + fixedBody: true, + // 侧栏是否只保持一个子菜单展开 + sideUniqueOpen: false, + // 是否是色弱模式 + weakMode: false, + // 主题色 + color: null, + // 主页的组件名称 + homeComponents: [], + // 刷新路由时的参数 + routeReload: null, + // 是否开启响应式 + styleResponsive: true +}); +// 延时操作定时器 +let disableTransitionTimer, updateContentSizeTimer; + +/** + * 读取缓存配置 + */ +function getCacheSetting() { + try { + const value = localStorage.getItem(THEME_STORE_NAME); + if (value) { + const cache = JSON.parse(value); + if (typeof cache === 'object') { + return cache; + } + } + } catch (e) { + console.error(e); + } + return {}; +} + +/** + * 缓存配置 + */ +function cacheSetting(key, value) { + const cache = getCacheSetting(); + if (cache[key] !== value) { + cache[key] = value; + localStorage.setItem(THEME_STORE_NAME, JSON.stringify(cache)); + } +} + +/** + * 开关响应式布局 + */ +function changeStyleResponsive(styleResponsive) { + if (styleResponsive) { + document.body.classList.remove(BODY_LIMIT_CLASS); + } else { + document.body.classList.add(BODY_LIMIT_CLASS); + } +} + +/** + * 切换色弱模式 + */ +function changeWeakMode(weakMode) { + if (weakMode) { + document.body.classList.add(WEAK_CLASS); + } else { + document.body.classList.remove(WEAK_CLASS); + } +} + +/** + * 切换主题 + */ +function changeTheme(value, dark) { + return new Promise((resolve, reject) => { + try { + changeColor(value, dark); + resolve(); + } catch (e) { + reject(e); + } + }); +} + +/** + * 切换布局时禁用过渡动画 + */ +function disableTransition() { + disableTransitionTimer && clearTimeout(disableTransitionTimer); + document.body.classList.add(DISABLES_CLASS); + disableTransitionTimer = setTimeout(() => { + document.body.classList.remove(DISABLES_CLASS); + }, 100); +} + +export const useThemeStore = defineStore({ + id: 'theme', + state: () => { + const state = { ...DEFAULT_STATE }; + // 读取本地缓存 + const cache = getCacheSetting(); + Object.keys(state).forEach(key => { + if (typeof cache[key] !== 'undefined') { + state[key] = cache[key]; + } + }); + return state; + }, + getters: { + // 需要 keep-alive 的组件 + keepAliveInclude() { + if (!TAB_KEEP_ALIVE) { + return []; + } + const components = new Set(); + const { reloadPath, reloadHome } = this.routeReload || {}; + this.tabs?.forEach(t => { + const isAlive = t.meta?.keepAlive !== false; + const isExclude = KEEP_ALIVE_EXCLUDES.includes(t.path); + const isReload = reloadPath && reloadPath === t.fullPath; + if (isAlive && !isExclude && !isReload && t.components) { + t.components.forEach(c => { + if (typeof c === 'string' && c) { + components.add(c); + } + }); + } + }); + if (!reloadHome) { + this.homeComponents?.forEach(c => { + if (typeof c === 'string' && c) { + components.add(c); + } + }); + } + return Array.from(components); + } + }, + actions: { + setTabs(value) { + this.tabs = value; + }, + setCollapse(value) { + this.collapse = value; + localStorage.setItem('collapse', value); + this.delayUpdateContentSize(800); + }, + setShowFooter(value) { + this.showFooter = value; + cacheSetting('showFooter', value); + this.delayUpdateContentSize(); + }, + setHeadStyle(value) { + this.headStyle = value; + cacheSetting('headStyle', value); + }, + setSideStyle(value) { + this.sideStyle = value; + cacheSetting('sideStyle', value); + }, + setLayoutStyle(value) { + disableTransition(); + this.layoutStyle = value; + cacheSetting('layoutStyle', value); + this.delayUpdateContentSize(); + }, + setSideMenuStyle(value) { + disableTransition(); + this.sideMenuStyle = value; + cacheSetting('sideMenuStyle', value); + this.delayUpdateContentSize(); + }, + setFixedBody(value) { + disableTransition(); + this.fixedBody = value; + cacheSetting('fixedBody', value); + }, + setSideUniqueOpen(value) { + this.sideUniqueOpen = value; + cacheSetting('sideUniqueOpen', value); + }, + setStyleResponsive(value) { + changeStyleResponsive(value); + this.styleResponsive = value; + cacheSetting('styleResponsive', value); + }, + /** + * 切换色弱模式 + * @param value 是否是色弱模式 + */ + setWeakMode(value) { + return new Promise(resolve => { + changeWeakMode(value); + this.weakMode = value; + cacheSetting('weakMode', value); + resolve(); + }); + }, + /** + * 切换主题色 + * @param value 主题色 + */ + setColor(value) { + return new Promise((resolve, reject) => { + changeTheme(value, false) + .then(() => { + this.color = value; + cacheSetting('color', value); + resolve(); + }) + .catch(e => { + reject(e); + }); + }); + }, + /** + * 设置主页路由对应的组件名称 + * @param components 组件名称 + */ + setHomeComponents(components) { + this.homeComponents = components; + }, + /** + * 设置刷新路由信息 + * @param option 路由刷新参数 + */ + setRouteReload(option) { + this.routeReload = option; + }, + /** + * 更新屏幕尺寸 + */ + updateScreenSize() { + this.screenWidth = screenWidth(); + this.screenHeight = screenHeight(); + this.updateContentSize(); + }, + /** + * 更新内容区域尺寸 + */ + updateContentSize() { + this.contentWidth = contentWidth(); + this.contentHeight = contentHeight(); + }, + /** + * 延时更新内容区域尺寸 + * @param delay 延迟时间 + */ + delayUpdateContentSize(delay) { + updateContentSizeTimer && clearTimeout(updateContentSizeTimer); + updateContentSizeTimer = setTimeout(() => { + this.updateContentSize(); + }, delay ?? 100); + }, + /** + * 重置设置 + */ + resetSetting() { + return new Promise((resolve, reject) => { + disableTransition(); + this.showFooter = DEFAULT_STATE.showFooter; + this.headStyle = DEFAULT_STATE.headStyle; + this.sideStyle = DEFAULT_STATE.sideStyle; + this.layoutStyle = DEFAULT_STATE.layoutStyle; + this.sideMenuStyle = DEFAULT_STATE.sideMenuStyle; + this.fixedBody = DEFAULT_STATE.fixedBody; + this.sideUniqueOpen = DEFAULT_STATE.sideUniqueOpen; + this.styleResponsive = DEFAULT_STATE.styleResponsive; + this.weakMode = DEFAULT_STATE.weakMode; + this.color = DEFAULT_STATE.color; + localStorage.removeItem(THEME_STORE_NAME); + Promise.all([changeStyleResponsive(this.styleResponsive), changeWeakMode(this.weakMode), changeTheme(this.color, false)]) + .then(() => { + resolve(); + }) + .catch(e => { + reject(e); + }); + }); + }, + /** + * 恢复主题 + */ + recoverTheme() { + // 关闭响应式布局 + if (!this.styleResponsive) { + changeStyleResponsive(false); + } + // 恢复色弱模式 + if (this.weakMode) { + changeWeakMode(true); + } + // 恢复主题色 + if (this.color || false) { + changeTheme(this.color, false).catch(e => { + console.error(e); + }); + } + }, + /** + * 添加页签或更新相同 key 的页签数据 + * @param data 页签数据 + */ + tabAdd(data) { + if (Array.isArray(data)) { + data.forEach(d => { + this.tabAdd(d); + }); + return; + } + const i = this.tabs.findIndex(d => d.key === data.key); + if (i === -1) { + this.setTabs(this.tabs.concat([data])); + } else if (data.fullPath !== this.tabs[i].fullPath) { + this.setTabs( + this.tabs + .slice(0, i) + .concat([data]) + .concat(this.tabs.slice(i + 1)) + ); + } + }, + /** + * 关闭页签 + * @param key 页签 key + */ + async tabRemove({ key, active }) { + const i = this.tabs.findIndex(t => t.key === key || t.fullPath === key); + if (i === -1) { + return {}; + } + const t = this.tabs[i]; + if (!t.closable) { + return Promise.reject(); + } + const path = this.tabs[i - 1]?.fullPath; + this.setTabs(this.tabs.filter((_d, j) => j !== i)); + return t.key === active ? { path, home: !path } : {}; + }, + /** + * 关闭左侧页签 + */ + async tabRemoveLeft({ key, active }) { + let index = -1; // 选中页签的 index + for (let i = 0; i < this.tabs.length; i++) { + if (this.tabs[i].key === active) { + index = i; + } + if (this.tabs[i].key === key) { + if (i === 0) { + break; + } + const temp = this.tabs.filter((d, j) => !d.closable && j < i); + if (temp.length === i + 1) { + break; + } + const path = index === -1 ? 0 : this.tabs[i].fullPath; + this.setTabs(temp.concat(this.tabs.slice(i))); + return { path }; + } + } + return Promise.reject(); + }, + /** + * 关闭右侧页签 + */ + async tabRemoveRight({ key, active }) { + if (this.tabs.length) { + let index = -1; // 选中页签的 index + for (let i = 0; i < this.tabs.length; i++) { + if (this.tabs[i].key === active) { + index = i; + } + if (this.tabs[i].key === key) { + if (i === this.tabs.length - 1) { + return Promise.reject(); + } + const temp = this.tabs.filter((d, j) => !d.closable && j > i); + if (temp.length === this.tabs.length - i - 1) { + return Promise.reject(); + } + const path = index === -1 ? this.tabs[i].fullPath : 0; + this.setTabs(this.tabs.slice(0, i + 1).concat(this.tabs.filter((d, j) => !d.closable && j > i))); + return { path }; + } + } + // 主页时关闭全部 + const temp = this.tabs.filter(d => !d.closable); + if (temp.length !== this.tabs.length) { + this.setTabs(temp); + return { home: index !== -1 }; + } + } + return Promise.reject(); + }, + /** + * 关闭其它页签 + */ + async tabRemoveOther({ key, active }) { + let index = -1; // 选中页签的 index + let path; // 关闭后跳转的 path + const temp = this.tabs.filter((d, i) => { + if (d.key === active) { + index = i; + } + if (d.key === key) { + path = d.fullPath; + } + return !d.closable || d.key === key; + }); + if (temp.length === this.tabs.length) { + return Promise.reject(); + } + this.setTabs(temp); + if (index === -1) { + return {}; + } + return key === active ? {} : { path, home: !path }; + }, + /** + * 关闭全部页签 + * @param active 选中页签的 key + */ + async tabRemoveAll(active) { + const t = this.tabs.find(d => d.key === active); + const home = typeof t !== 'undefined' && t.closable === true; // 是否跳转主页 + const temp = this.tabs.filter(d => !d.closable); + if (temp.length === this.tabs.length) { + return Promise.reject(); + } + this.setTabs(temp); + return { home }; + }, + /** + * 修改页签 + * @param data 页签数据 + */ + tabSetItem(data) { + let i = -1; + if (data.key) { + i = this.tabs.findIndex(d => d.key === data.key); + } else if (data.fullPath) { + i = this.tabs.findIndex(d => d.fullPath === data.fullPath); + } else if (data.path) { + i = this.tabs.findIndex(d => d.path === data.path); + } + if (i !== -1) { + const item = { ...this.tabs[i] }; + if (data.title) { + item.title = data.title; + } + if (typeof data.closable === 'boolean') { + item.closable = data.closable; + } + if (data.components) { + item.components = data.components; + } + this.setTabs( + this.tabs + .slice(0, i) + .concat([item]) + .concat(this.tabs.slice(i + 1)) + ); + } + } + } +}); diff --git a/guns-front-project/src/store/modules/user.js b/guns-front-project/src/store/modules/user.js new file mode 100644 index 00000000..e17e2551 --- /dev/null +++ b/guns-front-project/src/store/modules/user.js @@ -0,0 +1,137 @@ +/** + * 登录用户 store + */ +import { defineStore } from 'pinia'; +import { formatMenus, toTreeData, eachTreeData } from '@/utils/common/menu-util'; +import { findTree } from '@/utils/common/util'; +import { getUserInfo } from '@/layout/api/LayoutApi'; +import { SysConfigApi } from '@/views/system/backend/sys-config/api/SysConfigApi'; + +export const useUserStore = defineStore({ + id: 'user', + state: () => ({ + // 当前登录用户的信息 + info: null, + // 当前登录用户的菜单 + menus: null, + // 当前登录用户的权限 + authorities: [], + // 当前激活应用 + activeApp: null, + // 应用菜单列表 + appList: [] + }), + getters: {}, + actions: { + /** + * 请求用户信息、权限、角色、菜单 + */ + async fetchUserInfo(path) { + // 调用获取用户信息接口 + const result = await getUserInfo().catch(() => undefined); + if (!result) { + return {}; + } + // 用户信息 + this.info = result; + // 用户权限编码集合 + this.authorities = result.permissionCodeList ?? []; + // 应用菜单列表 + this.appList = result.userAppInfoList; + // 当前激活的应用 + let activeApp = result.userAppInfoList?.filter(m => m.currentSelectFlag)[0]; + // 如果sessionStorage中存在激活应用 + if (sessionStorage.getItem('ACTIVE_APP')) { + let currentApp = {}; + // 获取当前路由所在的应用 + this.appList && + this.appList.forEach(item => { + let currentRou = findTree(item.menuList, path, 'path'); + if (currentRou && currentRou.length) { + currentApp = item; + activeApp = item; + } + }); + // 如果当前路由不存在当前应用下,切换应用 + if (!(currentApp && currentApp.appId && currentApp.appId == activeApp.appId)) { + await SysConfigApi.updateUserOrgOrApp({ newAppId: currentApp.appId }); + this.setActiveApp(currentApp); + } + } else { + // 当前激活应用 + this.setActiveApp(activeApp); + } + + // 当前应用的菜单和首页 + const { menus, homePath } = formatMenus( + toTreeData({ + data: activeApp.menuList?.map(d => { + return { + ...d, + path: d.menuType == 40 ? 'http://' + location.host + d.path : d.path + }; + }), + idField: 'menuId', + parentIdField: 'menuParentId' + }) + ); + eachTreeData(menus, d => { + if (d.redirect && d.redirect.indexOf('http:') != '-1') { + d.path = d.redirect + } + }); + // 当前激活应用的菜单列表 + this.menus = menus; + // 当前用户的所有菜单列表 + let allMenuList = []; + result.userAppInfoList?.forEach(m => { + allMenuList.push(...m.menuList); + }); + // 不需要左侧树的菜单列表 + let noNeedLeftMenuList = []; + getNoNeedLeftTreeMenuList(allMenuList, noNeedLeftMenuList); + // 用户菜单, 过滤掉按钮类型并转为children形式 + const needMenusData = formatMenus(allMenuList ?? []); + const needMenus = needMenusData.menus ?? []; + // 不需要左侧菜单列表 + const noNeedMenusData = formatMenus(noNeedLeftMenuList ?? []); + const noNeedMenus = noNeedMenusData.menus ?? []; + return { needMenus, noNeedMenus, homePath }; + + // 获取不需要左侧树的菜单列表 + function getNoNeedLeftTreeMenuList(arr, noNeedLeftMenuList) { + if (arr && arr.length) { + for (let i = arr.length - 1; i >= 0; i--) { + if (arr[i].menuType == 20) { + noNeedLeftMenuList.push(arr[i]); + arr.splice(i, 1); + } else if (arr[i].children && arr[i].children.length) { + getNoNeedLeftTreeMenuList(arr[i].children, noNeedLeftMenuList); + } + } + } + } + }, + /** + * 更新用户信息 + */ + setInfo(value) { + this.info = value; + }, + /** + * 更新当前激活应用 + * @param {*} value + */ + setActiveApp(value) { + sessionStorage.setItem('ACTIVE_APP', JSON.stringify(value)); + this.activeApp = value; + }, + /** + * 更新菜单 + * @param {*} value + */ + setMenus(value) { + this.menus = value; + } + } +}); diff --git a/guns-front-project/src/styles/commonMenu.less b/guns-front-project/src/styles/commonMenu.less new file mode 100644 index 00000000..adf91d3b --- /dev/null +++ b/guns-front-project/src/styles/commonMenu.less @@ -0,0 +1,59 @@ +:deep(.ant-menu-inline) { + border-right: 0; +} +:deep(.ant-menu) { + --component-background: #fbfbfb; +} +:deep(.ant-menu-inline .ant-menu-item::after) { + border-right: 0; +} +:deep(.ant-menu-submenu-selected) { + color: #999; +} +:deep(.ant-menu-submenu-title) { + font-size: 14px; + padding-left: 10px !important; + color: #60666b; + &:hover { + color: #60666b; + } +} +:deep(.ant-menu-item-selected) { + color: #0f56d7 !important; + border-radius: 4px; + font-weight: 500 !important; + background: rgba(207, 221, 247, 0.35) !important; + .iconfont { + color: #0f56d7 !important; + } +} +:deep(.ant-menu-item:active) { + color: #0f56d7 !important; + border-radius: 4px; + font-weight: 500 !important; + background: rgba(207, 221, 247, 0.35) !important; + .iconfont { + color: #0f56d7 !important; + } +} +:deep(.ant-menu-item:hover) { + background: #f3f3f3; + border-radius: 4px; +} +:deep(.ant-menu-item) { + font-weight: 400; + color: #43505e; + padding-left: 20px !important; +} +:deep(.ant-menu-submenu) { + border-top: 1px solid #eee; +} +:deep(.ant-menu-submenu:first-child) { + border-top: 1px solid #fbfbfb; +} +:deep(.ant-menu-submenu-title:active) { + background: #fbfbfb !important; +} +:deep(.ant-menu-submenu-arrow) { + display: none; +} diff --git a/guns-front-project/src/styles/commonTree.less b/guns-front-project/src/styles/commonTree.less new file mode 100644 index 00000000..fe3a3d05 --- /dev/null +++ b/guns-front-project/src/styles/commonTree.less @@ -0,0 +1,190 @@ +.left-header { + height: 30px; + line-height: 30px; + display: flex; + justify-content: space-between; + align-items: center; + color: #505050; + font-size: 14px; + font-weight: 400; + margin-bottom: 16px; + .left-header-title { + color: #60666b; + font-size: 14px; + font-weight: 400; + } + .header-add { + font-size: 14px; + cursor: pointer; + padding: 5px; + &:hover { + background: #e9f3f8; + } + } +} +.search { + height: 36px; + border-radius: 5px; + margin-bottom: 16px; +} +.search-input { + border-radius: 4px; +} +.tree-content { + width: 100%; + height: calc(100% - 90px); + overflow: hidden; +} +:deep(.ant-spin-container) { + height: 100%; +} +.left-tree { + height: calc(100% - 10px) !important; + overflow-y: auto !important; + overflow-x: hidden !important; +} +::-webkit-scrollbar { + width: 12px !important; +} +.tree-edit, +.not-tree-edit { + width: 100%; + display: inline-block; + position: relative; + .edit-title { + width: 100%; + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .edit-icon { + display: none; + width: 40px; + position: absolute; + right: 10px; + } + &:hover { + .edit-icon { + display: inline-block; + } + .edit-title { + width: calc(100% - 50px); + } + } +} +.not-tree-edit:hover { + .edit-title { + width: 100%; + } +} + +:deep(.ant-tree) { + background: #fbfbfb; +} +:deep(.ant-tree .ant-tree-node-content-wrapper) { + height: 38px !important; + line-height: 38px !important; + display: inherit !important; +} +:deep(.ant-tree-switcher) { + line-height: 38px !important; +} +:deep(.ant-tree-switcher .ant-tree-switcher-icon) { + font-size: 14px !important; +} +:deep(.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle) { + height: 38px !important; + line-height: 38px !important; + margin-right: 8px; +} +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before) { + border-radius: 4px; + background: rgba(207, 221, 247, 0.35) !important; +} +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected) { + color: #0f56d7; + font-weight: 500; + .ant-tree-iconEle { + .iconfont { + color: #0f56d7 !important; + } + } +} +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before) { + background: rgba(207, 221, 247, 0.35) !important; + border-radius: 4px; +} +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher) { + color: #000; + font-weight: 500; +} +:deep(.ant-tree-treenode:not(:last-child)) { + margin-bottom: 8px; +} +:deep(.ant-tree-indent-unit) { + width: 10px !important; +} +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode::before) { + bottom: 0 !important; +} +:deep(.ant-tree .ant-tree-treenode) { + padding: 0 12px; +} + +:deep(.guns-table-tool .guns-tool) { + display: none; +} + +.img { + width: 24px; + height: 22px; + margin-top: -4px; +} + +.svg-img { + width: 24px; + height: 22px; + margin-top: 8px; +} + +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode) { + height: 38px !important; + line-height: 38px !important; +} + +:deep(.ant-tree.ant-tree-directory .ant-tree-treenode:hover) { + .tree-button { + display: inline; + display: flex; + top: 0; + } + .tree-button-first { + display: inline; + display: flex; + top: 0; + margin-right: 150px; + } +} + +:deep(.ant-tree-node-content-wrapper) { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding: 0 0 0 4px; +} +:deep(.ant-tree-title) { + width: calc(100% - 32px); +} +.empty { + margin-top: 50%; +} +:deep(.ant-card-body) { + height: 100%; +} +:deep(.ant-spin-nested-loading) { + height: 100%; +} +:deep(.ant-spin-container) { + height: 100%; +} diff --git a/guns-front-project/src/styles/gunsLayout.less b/guns-front-project/src/styles/gunsLayout.less new file mode 100644 index 00000000..0a6db8b1 --- /dev/null +++ b/guns-front-project/src/styles/gunsLayout.less @@ -0,0 +1,136 @@ +.guns-layout { + width: 100%; + display: flex; + flex-direction: row; + flex: auto; + height: 100%; + min-height: 0px; +} +.guns-layout-sidebar { + padding: 0 12px 12px 12px; + background: #fbfbfb; + flex: 0 0 auto; + position: relative; + transition: width 0.2s; + min-width: 0; + width: 252px; + border-right: 1px solid #eee; + display: flex; + flex-direction: column; + box-sizing: border-box; + .sidebar-content { + width: 100%; + flex: auto; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + } +} +.guns-layout-content { + min-width: 0px; + flex: auto; + display: flex; + flex-direction: column; + padding: 12px; + background: #fff; + overflow-y: auto; + box-sizing: border-box; + .guns-layout { + display: flex; + flex-direction: column; + flex: auto; + height: 100%; + min-height: 0px; + .guns-layout-content-header { + color: #1b2c45; + text-align: center; + font-size: 18px; + font-style: normal; + line-height: normal; + width: 100%; + align-items: center; + display: flex; + flex: 0 0 auto; + background: #fff; + justify-content: space-between; + height: 30px; + margin-bottom: 16px; + span { + font-weight: 600; + } + } + .guns-layout-content-application { + width: 100%; + display: flex; + flex-direction: column; + flex: auto; + height: 100%; + min-height: 0px; + flex-direction: row; + box-sizing: border-box; + .content-mian { + flex: auto; + display: flex; + flex-direction: column; + overflow-y: auto; + .content-mian-header { + display: flex; + flex-direction: row; + .header-content { + display: flex; + width: 100%; + flex-direction: row; + align-items: center; + margin-bottom: 16px; + .search-input { + width: 324px; + border-radius: 4px; + } + .header-content-left { + display: flex; + flex-wrap: wrap; + width: 70%; + overflow: hidden; + } + .header-content-right { + width: 30%; + text-align: right; + } + } + } + .content-mian-body { + display: flex; + flex-direction: column; + flex: auto; + .table-content { + height: calc(100% - 10px); + } + } + } + } + } +} +.ant-btn { + height: 36px; + line-height: 18px; + font-size: 16px !important; + padding: 8px 16px !important; + font-weight: 500 !important; +} +.ant-btn-icon-only { + width: 36px; + padding: 0 !important; +} +.ant-btn-circle { + width: 36px; + padding: 0 !important; +} +.ant-btn-round { + padding: 8px 16px !important; +} +.search-icon { + color: #adb5b8; +} +.surely-table-header-cell { + --surely-table-background-color: #fff; +} diff --git a/guns-front-project/src/styles/index.less b/guns-front-project/src/styles/index.less new file mode 100644 index 00000000..41b4e080 --- /dev/null +++ b/guns-front-project/src/styles/index.less @@ -0,0 +1,124 @@ +// ant全局样式 +@import 'ant-design-vue/dist/antd.less'; +@import '../components/layout/style/index.less'; +@import '../components/layout/style/themes/dynamic.less'; +@import './gunsLayout.less'; +@import './shortcut.less'; +@import '../assets/iconfont/iconfont.css'; +/** 全局样式 */ +@import 'ant-design-vue/es/message/style/index.less'; + +/* 需要覆盖框架样式变量写最下面, 具体请到文档查看 */ + +// 内容高度 +.guns-admin-content-view { + height: 100%; +} + +// 默认样式 +.guns-body { + padding: 10px; + height: 100%; + + .ant-row { + height: 100%; + overflow: hidden; + + .ant-col { + height: 100%; + } + } +} + +// 弹框设置 +.common-modal { + top: 20px; + + .ant-modal-body { + max-height: calc(100vh - 180px); + overflow-y: auto; + overflow-x: hidden; + } +} + +// 弹框设置 +.fix-modal { + top: 50px; + .ant-modal-body { + max-height: calc(100vh - 240px); + overflow-y: auto; + overflow-x: hidden; + } +} + +// 覆盖默认antd vue菜单的font大小 +.ant-menu-item-icon { + font-size: 24px !important; +} + +.ant-dropdown-menu-title-content { + display: flex; + align-items: center; +} + +// a-spin组件高度 +.ant-spin-nested-loading { + height: 100%; +} +.ant-spin-container { + height: 100%; +} +.guns-admin-sidebar + .guns-admin-body { + overflow: hidden; +} +.ant-pagination-item { + border-radius: 5px; +} + +// tab +.ant-tabs-tab + .ant-tabs-tab { + margin: 0px !important; +} + +.ant-tabs-tab { + padding: 12px 15px !important; +} +.guns-modal-movable .ant-modal-header { + cursor: move; +} +.ant-table-thead > tr > th { + background-color: #fff !important; +} +.ant-table-tbody > tr > td { + --border-color-split: #e8eced !important; +} + +.search, +.header-content { + .ant-input-affix-wrapper { + height: 36px; + } +} + +.ant-menu-title-content { + display: flex; + align-items: center; +} + +.ant-table.ant-table-small .ant-table-thead > tr { + height: 54px; +} +.ant-table + .ant-table-thead + > tr + > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before { + width: 0px; +} + +.ant-tag { + padding: 3px 10px !important; + border-radius: 5px !important; + min-width: 60px; + text-align: center; + border: 0 !important; +} diff --git a/guns-front-project/src/styles/shortcut.less b/guns-front-project/src/styles/shortcut.less new file mode 100644 index 00000000..4280161c --- /dev/null +++ b/guns-front-project/src/styles/shortcut.less @@ -0,0 +1,63 @@ +.bgColor { + background: #fff; +} + +.box { + height: 100%; + width: 100%; + overflow: hidden; + border-radius: 5px; +} + +.ten-height { + height: 100%; + box-sizing: border-box; + overflow: auto; +} + +.bg-white { + background: #fff; + border-radius: 5px; +} + +.padding10 { + padding: 10px; +} + +.border-radius { + border-radius: 4px; +} + +.box-shadow { + box-shadow: 0 0 6px hsla(0, 0%, 80%, 0.5); +} + +.height100 { + height: 100%; +} + +// 禁止内容选中 +.isSelected { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.f-s-20 { + font-size: 20px; +} + +.f-s-24 { + font-size: 24px; +} + +.p-t-12 { + padding-top: 12px; +} +.p-t-15 { + padding-top: 15px; +} +.flex { + display: flex; +} diff --git a/guns-front-project/src/utils/common/iframe-component.js b/guns-front-project/src/utils/common/iframe-component.js new file mode 100644 index 00000000..86d2078f --- /dev/null +++ b/guns-front-project/src/utils/common/iframe-component.js @@ -0,0 +1,100 @@ +import { + defineComponent, + h, + ref, + watch, + inject, + computed, + onMounted, + onActivated, + onDeactivated, + onBeforeUnmount, + nextTick +} from 'vue'; +import { PROVIDE_KEY } from '@/components/layout/util' + +/** + * 创建 iframe 组件 + * @param name 组件名称 + * @param url 链接地址 + */ +export function createIframeComponent(name, url) { + return defineComponent({ + name, + setup() { + const config = useReceiver(); + + const rootRef = ref(null); + + const iframeEl = ref(null); + + const keepAlive = computed(() => config.keepAlive); + + /* 创建自定义 iframe dom */ + const createIframe = () => { + const el = document.createElement('iframe'); + el.classList.add('guns-admin-iframe'); + el.src = url; + const parentNode = rootRef.value?.parentNode; + if (parentNode) { + parentNode.insertBefore(el, rootRef.value); + iframeEl.value = el; + } + }; + + onMounted(() => { + if (keepAlive.value) { + createIframe(); + } + }); + + onActivated(() => { + if (iframeEl.value) { + iframeEl.value.style.display = ''; + } + }); + + onDeactivated(() => { + if (iframeEl.value) { + iframeEl.value.style.display = 'none'; + } + }); + + onBeforeUnmount(() => { + if (iframeEl.value) { + iframeEl.value.parentNode?.removeChild(iframeEl.value); + iframeEl.value = null; + } + }); + + watch(keepAlive, (keepAlive) => { + if (keepAlive && !iframeEl.value) { + nextTick(() => { + createIframe(); + }); + } + }); + + return () => { + if (config.keepAlive || iframeEl.value) { + return h('div', { + ref: rootRef, + style: { display: 'none' } + }); + } + return h('iframe', { + ref: rootRef, + src: url, + class: 'guns-admin-iframe' + }); + }; + } + }); +} + +/** + * 全局配置 hook + */ +export function useReceiver() { + return inject(PROVIDE_KEY, {}); +} diff --git a/guns-front-project/src/utils/common/menu-util.js b/guns-front-project/src/utils/common/menu-util.js new file mode 100644 index 00000000..2b2d3826 --- /dev/null +++ b/guns-front-project/src/utils/common/menu-util.js @@ -0,0 +1,253 @@ +import { createIframeComponent } from './iframe-component'; +import { formatTreeData } from '@/components/layout/util'; +/** + * 菜单数据转成路由数据 + * @param menus 菜单数据 + * @param getComponent 加载组件的方法 + * @param added 已添加的路由 + * @param redirectPath 刷新路由的地址 + * @param redirectComponent 刷新路由的组件 + * @param redirectPathMatch 刷新路由的匹配表达式 + * @param parentPath 父级路由地址 + */ +export function menuToRoutes(menus, getComponent, added, redirectPath, redirectComponent, redirectPathMatch, parentPath) { + if (!(menus == null ? void 0 : menus.length)) { + return; + } + const routes = []; + const addedRoutes = added ? [...added] : []; + menus.forEach(item => { + const route = menuToRoute(item, getComponent, addedRoutes, redirectPath, redirectComponent, redirectPathMatch); + if (route) { + routes.push(route); + } + }); + if (routes.length && redirectPath && redirectComponent) { + const pathMatch = redirectPathMatch ?? '/:path(.*)'; + const temp = { + path: (parentPath ?? '') + redirectPath + pathMatch, + meta: { hideFooter: true } + }; + const route = menuToRoute(temp, () => redirectComponent, []); + if (route) { + routes.push(route); + } + } + return routes; +} +/** + * 菜单数据转成路由数据 + * @param menu 菜单数据 + * @param getComponent 加载组件的方法 + * @param added 已添加的路由 + * @param redirectPath 刷新路由的地址 + * @param redirectComponent 刷新路由的组件 + * @param redirectPathMatch 刷新路由的匹配表达式 + */ +export function menuToRoute(menu, getComponent, added, redirectPath, redirectComponent, redirectPathMatch) { + const meta = { ...menu.meta }; + const p = meta.routePath || menu.path; + let path = (p == null ? void 0 : p.includes('?')) ? p.substring(0, p.indexOf('?')) : p; + if (path && !isExternalLink(path) && !pathIsAdd(path, added)) { + const name = menu.name || camelCase(path); + let component; + if (menu.component && isExternalLink(menu.component)) { + component = createIframeComponent(name, menu.component); + meta.iframe = menu.component; + meta.hideFooter = true; + } else { + component = getComponent(menu.component, menu, name); + } + added.push({ path }); + return { + name, + path, + meta, + component, + redirect: menu.redirect, + children: menuToRoutes(menu.children, getComponent, added, redirectPath, redirectComponent, redirectPathMatch, path) + }; + } +} + +export function pathIsAdd(path, data) { + let isAdd = false; + eachTreeData(data, item => { + if (path === item.path) { + isAdd = true; + return false; + } + }); + return isAdd; +} + +export function camelCase(str) { + const val = str.replace(/[-|/](\w)/g, (_, c) => (c ? c.toUpperCase() : '')); + return val.charAt(0).toUpperCase() + val.slice(1); +} + +/** + * 格式化菜单数据 + * @param data 数据 + * @param childField 子级的字段名称 + */ +export function formatMenus(data, childField = 'children') { + let homePath; + let homeTitle; + const menus = formatTreeData( + data, + item => { + var _a, _b; + const meta = typeof item.meta === 'string' ? JSON.parse(item.meta || '{}') : item.meta; + let path = (meta == null ? void 0 : meta.fullPath) || item.fullPath || item.path; + if (item.appDesignBusinessId && (!item.children || item.children.length == 0)) { + path = path + '?businessId=' + item.appDesignBusinessId; + } + const component = ((_a = item.component) == null ? void 0 : _a.startsWith('/')) ? item.component.substring(1) : item.component; + const menu = { + path, + component, + name: (meta == null ? void 0 : meta.name) || item.name, + redirect: item.redirect, + meta: { + title: item.title, + icon: item.icon, + color: item.color, + hide: item.hide, + active: item.active, + breadcrumb: item.breadcrumb, + hideFooter: item.hideFooter, + hideSidebar: item.hideSidebar, + tabUnique: item.tabUnique, + closable: item.closable, + keepAlive: item.keepAlive, + routePath: item.path, + ...meta + } + }; + const children = + (_b = item[childField]) == null + ? void 0 + : _b.filter(d => { + var _a2; + return !(((_a2 = d.meta) == null ? void 0 : _a2.hide) ?? d.hide); + }); + if (!(children == null ? void 0 : children.length)) { + if (!homePath && path && !isExternalLink(path)) { + homePath = path; + homeTitle = menu.meta.title; + } + } else { + const childPath = children[0].path || children[0].fullPath; + if (childPath) { + if (!menu.redirect) { + menu.redirect = childPath; + } + if (!menu.path) { + menu.path = childPath.substring(0, childPath.lastIndexOf('/')); + } + } + } + if (!path) { + console.error('菜单 path 不能为空且要唯一: ', item); + return; + } + return menu; + }, + childField + ); + return { menus, homePath, homeTitle }; +} + +/** + * 判断是否是外链 + * @param url 地址 + */ +export function isExternalLink(url) { + return !!(url && (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('//'))); +} + +/** + * 遍历 children 形式数据 + * @param data 需要遍历的数据 + * @param callback 回调 + * @param childrenField children 字段名 + */ +export function eachTreeData(data = [], callback, childrenField = 'children', parent) { + if (data) { + data.forEach((d, i) => { + if (callback && callback(d, i, parent) !== false && d[childrenField]?.length) { + eachTreeData(d[childrenField], callback, childrenField, d); + } + }); + } +} +/** + * parentId 形式数据转 children 形式参数 + * @param {*} option + * @returns + */ +export function toTreeData(option) { + const data = option.data; + const idField = option.idField || "id"; + const parentIdField = option.parentIdField || "parentId"; + const childrenField = option.childrenField || "children"; + const parentIdIsNull = option.parentId == null; + const parentId = parentIdIsNull ? [] : option.parentId; + const addParentIds = option.addParentIds; + const parentIdsField = option.parentIdsField || "parentIds"; + const parentIds = option.parentIds; + if (data == null) { + return []; + } + if (parentIdIsNull) { + data.forEach((d) => { + let flag = true; + for (let i = 0; i < data.length; i++) { + if (d[parentIdField] == data[i][idField]) { + flag = false; + break; + } + } + if (flag) { + parentId.push(d[parentIdField]); + } + }); + } + const result = []; + data.forEach((d) => { + if (d[idField] == d[parentIdField]) { + throw new Error( + [ + "data error: {", + idField + ": ", + JSON.stringify(d[idField]), + parentIdField + ": ", + JSON.stringify(d[parentIdField]), + "}" + ].join("") + ); + } + if (Array.isArray(parentId) ? parentId.includes(d[parentIdField]) : d[parentIdField] == parentId) { + const r = { ...d }; + const children = toTreeData({ + data, + idField, + parentIdField, + childrenField, + parentId: d[idField], + addParentIds, + parentIdsField, + parentIds: (parentIds != null ? parentIds : []).concat([d[idField]]) + }); + if (children.length > 0) { + r[childrenField] = children; + } + if (addParentIds) { + r[parentIdsField] = parentIds != null ? parentIds : []; + } + result.push(r); + } + }); + return result; +} diff --git a/guns-front-project/src/utils/common/sso-util.js b/guns-front-project/src/utils/common/sso-util.js new file mode 100644 index 00000000..fe0d55e7 --- /dev/null +++ b/guns-front-project/src/utils/common/sso-util.js @@ -0,0 +1,64 @@ +import Request from '@/utils/request/request-util'; +import { SSO_CLIENT_ID, SSO_HOST } from '@/config/setting'; + +/** + * 单点登录的相关业务逻辑 + * + * @author fengshuonan + * @date 2021/5/25 20:45 + */ +export class SsoUtil { + /** + * SSO探测,当检测当前系统并未登录时候,需要去sso服务端进行探测全局会话 + * + * @author fengshuonan + * @date 2021/5/25 20:45 + */ + static redirectDetection() { + window.location.href = `${SSO_HOST}/sso/detection?clientId=${SSO_CLIENT_ID}&ssoCallback=${encodeURIComponent(window.location.href)}`; + } + + /** + * 通过loginCode创建sso全局会话 + * + * @author fengshuonan + * @date 2021/5/25 20:45 + */ + static activateByLoginCode(clientId, callBack, ssoLoginCode) { + window.location.href = `${SSO_HOST}/sso/activateByLoginCode?clientId=${clientId}&ssoCallback=${callBack}&ssoLoginCode=${ssoLoginCode}`; + } + + /** + * 将单点token转化为系统可以识别的token + * + * @param token 单点返回的token + * @author fengshuonan + * @date 2021/5/26 9:34 + */ + static tokenExchange(token) { + return Request.postAndLoadData('/loginByCaToken', { token }); + } + + /** + * 获取url的参数 + * + * @author fengshuonan + * @date 2021/5/26 11:02 + */ + static getUrlParam(name) { + let reg = `(^|&)${name}=([^&]*)(&|$)`; + let r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); + return null; + } + + /** + * 单点登录退出 + * + * @author fengshuonan + * @date 2021/5/26 11:43 + */ + static ssoLogoutRedirect() { + window.location.href = `${SSO_HOST}/sso/logout?clientId=${SSO_CLIENT_ID}`; + } +} diff --git a/guns-front-project/src/utils/common/theme-util.js b/guns-front-project/src/utils/common/theme-util.js new file mode 100644 index 00000000..01d89051 --- /dev/null +++ b/guns-front-project/src/utils/common/theme-util.js @@ -0,0 +1,40 @@ +/** 主题切换方法 */ +import { generate } from '@ant-design/colors'; + +/** + * 切换主题色 + * @param color 颜色值 + * @param dark 是否暗黑模式 + */ +export function changeColor(color, dark, darkClass = 'guns-admin-theme-dark') { + const id = `guns-admin-theme-var`; + const elem = document.getElementById(id); + if (elem?.parentNode) { + elem.parentNode.removeChild(elem); + } + if (color) { + const colors = generate(color, dark ? { theme: 'dark' } : {}); + const clazz = dark ? `.${darkClass}` : ':root'; + const elem = document.createElement('style'); + elem.id = id; + elem.setAttribute('type', 'text/css'); + elem.innerHTML = + `${clazz}{` + + colors + .map((c, i) => { + return `--primary-${i + 1}:${c};`; + }) + .concat([`--primary-color:${color};`]) + .join('') + + '}'; + document.head.appendChild(elem); + document.body.dataset.theme = color; + } else { + document.body.removeAttribute('data-theme'); + } + if (dark) { + document.body.classList.add(darkClass); + } else { + document.body.classList.remove(darkClass); + } +} diff --git a/guns-front-project/src/utils/common/util.js b/guns-front-project/src/utils/common/util.js new file mode 100644 index 00000000..09c25771 --- /dev/null +++ b/guns-front-project/src/utils/common/util.js @@ -0,0 +1,143 @@ +import JSEncrypt from 'jsencrypt'; +import { CommonHrApi } from '@/api/CommonHrApi'; + +// 定义公钥 +const publicKey = `MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCochIaKWEh6IIK1pJQcJPsYhZ2AJmGNc12XeC2lsj3dHkMO9vGrXN4ZJiN3qNLlO3hERtY0UZdN8Uz18zoiL60XoOclMuuwf1TwiMA3/4Vy2NOaQdX/RgLQ8XiRobVPLMe/JTteZ6eoPrWVC5jf4kdWD7LWwgdWrnzGs/4UiWnsQIDAQAB`; + +//深度克隆 +export function deepClone(obj) { + let result; + if (Array.isArray(obj)) { + result = []; + } else if (typeof obj === 'object' && obj !== null) { + result = {}; + } else { + return obj; + } + Object.keys(obj).forEach(key => { + if (typeof obj[key] === 'object' && obj[key] !== null) { + result[key] = deepClone(obj[key]); + } else { + result[key] = obj[key]; + } + }); + return result; +} + +/** + * rsa加密 + * @author: nxy + * @Date: 2022-10-16 21:53:44 + */ +export function RsaEncry(data) { + // 使用 RSA 公钥加密 请求响应解密的key + const myEncrypt = new JSEncrypt(); + myEncrypt.setPublicKey(publicKey); + const cryptRespKeyStr = myEncrypt.encrypt(data); + return cryptRespKeyStr; +} + +/** + * 查找树 + * @param {number} param + * @returns {number} + */ +export function findTree(treeData = [], search, matchKey = 'id', childrenKey = 'children') { + let result = []; + treeData.forEach(treeItem => { + let resultItem = {}; + if (treeItem[childrenKey] && treeItem[childrenKey].length) { + resultItem[childrenKey] = findTree(treeItem[childrenKey], search, matchKey, childrenKey); + } + if (search === treeItem[matchKey]) { + resultItem = { ...treeItem }; + } + if (resultItem[matchKey]) { + result.push(resultItem); + } + if (resultItem[childrenKey] && resultItem[childrenKey].length) { + resultItem = { ...treeItem, childrenKey: resultItem[childrenKey] }; + result.push(resultItem); + } + }); + return result; +} + +//驼峰转下划线 +export function camelToUnderline(str) { + return str.replace(/([A-Z])/g, '_$1').toLowerCase(); +} + +//下划线转驼峰 +export function underlineToCamel(str) { + return str.replace(/\_(\w)/g, (all, letter) => letter.toUpperCase()); +} + +/** + * 下载文件 + * @param fileName + * @param content + */ +export function downloadFile(fileName, content) { + if (!content) { + return; + } + if (!fileName) { + fileName = 'noname.json'; + } + if (typeof content === 'object') { + content = JSON.stringify(content); + } + let blob = new Blob([content], { type: 'text/json' }), + e = document.createEvent('MouseEvents'), + a = document.createElement('a'); + a.download = fileName; + a.href = window.URL.createObjectURL(blob); + a.dataset.downloadurl = ['text/json', a.download, a.href].join(':'); + e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + a.dispatchEvent(e); +} + +/** + * 是否是移动端 + * @returns + */ +export function isMobile() { + if ( + window.navigator.userAgent.match( + /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i + ) + ) { + return true; // 移动端 + } else { + return false; // PC端 + } +} + +/** + * 获取随机数 + * @param {*} number + * @returns + */ +export function getRandomNumber(number) { + var characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var result = ''; + for (var i = 0; i < number; i++) { + var randomIndex = Math.floor(Math.random() * characters.length); + result += characters.charAt(randomIndex); + } + return result; +} + + +/** + * 生成key + * @param [formItem] 需要生成 key 的控件,可选,如果不传,默认返回一个唯一 key + */ +export async function getBusinessMaxSort(code) { + if (code) { + const res = await CommonHrApi.getBusinessMaxSort(code); + return Number(res); + } + return 1000; +} diff --git a/guns-front-project/src/utils/document-title-util.js b/guns-front-project/src/utils/document-title-util.js new file mode 100644 index 00000000..ed93115c --- /dev/null +++ b/guns-front-project/src/utils/document-title-util.js @@ -0,0 +1,67 @@ +import { watch } from 'vue'; +import { useRouter } from 'vue-router'; +import { useI18n } from 'vue-i18n'; +import { + routeI18nKey, + findTabByPath +} from '@/components/layout/util'; +import { storeToRefs } from 'pinia'; +import { useThemeStore } from '@/store/modules/theme'; +import { PROJECT_NAME, REDIRECT_PATH, I18N_ENABLE } from '@/config/setting'; + +/** + * 修改浏览器标题 + * @param title 标题 + */ +export function setDocumentTitle(title) { + const names = []; + if (title) { + names.push(title); + } + if (PROJECT_NAME) { + names.push(PROJECT_NAME); + } + document.title = names.join(' - '); +} + +/** + * 路由切换更新浏览器标题 + */ +export function useSetDocumentTitle() { + const { currentRoute } = useRouter(); + const { t, locale } = useI18n(); + const themeStore = useThemeStore(); + const { tabs } = storeToRefs(themeStore); + + const updateTitle = (route) => { + const { path, meta, fullPath } = route; + if (path.includes(REDIRECT_PATH)) { + return; + } + const pathKey = routeI18nKey(path); + if (!pathKey) { + return; + } + const tab = findTabByPath(fullPath, tabs.value); + const title = tab?.title || meta?.title; + if (!I18N_ENABLE) { + setDocumentTitle(title); + return; + } + const k = `route.${pathKey}._name`; + const v = t(k); + setDocumentTitle(v === k || !v ? title : v); + }; + + watch( + currentRoute, + (route) => { + updateTitle(route); + }, + { immediate: true } + ); + + watch(locale, () => { + updateTitle(currentRoute.value); + }); +} diff --git a/guns-front-project/src/utils/dynamic-theme.js b/guns-front-project/src/utils/dynamic-theme.js new file mode 100644 index 00000000..9d1e5412 --- /dev/null +++ b/guns-front-project/src/utils/dynamic-theme.js @@ -0,0 +1,487 @@ +/** 支持换主题插件 */ + +/** + * 需要修改的 less 变量 + */ +const variables = { + // Blue + '@blue-1': 'var(--blue-1)', + '@blue-2': 'var(--blue-2)', + '@blue-3': 'var(--blue-3)', + '@blue-4': 'var(--blue-4)', + '@blue-5': 'var(--blue-5)', + '@blue-6': 'var(--blue-6)', + '@blue-7': 'var(--blue-7)', + '@blue-8': 'var(--blue-8)', + '@blue-9': 'var(--blue-9)', + '@blue-10': 'var(--blue-10)', + // Purple + '@purple-1': 'var(--purple-1)', + '@purple-2': 'var(--purple-2)', + '@purple-3': 'var(--purple-3)', + '@purple-4': 'var(--purple-4)', + '@purple-5': 'var(--purple-5)', + '@purple-6': 'var(--purple-6)', + '@purple-7': 'var(--purple-7)', + '@purple-8': 'var(--purple-8)', + '@purple-9': 'var(--purple-9)', + '@purple-10': 'var(--purple-10)', + // Cyan + '@cyan-1': 'var(--cyan-1)', + '@cyan-2': 'var(--cyan-2)', + '@cyan-3': 'var(--cyan-3)', + '@cyan-4': 'var(--cyan-4)', + '@cyan-5': 'var(--cyan-5)', + '@cyan-6': 'var(--cyan-6)', + '@cyan-7': 'var(--cyan-7)', + '@cyan-8': 'var(--cyan-8)', + '@cyan-9': 'var(--cyan-9)', + '@cyan-10': 'var(--cyan-10)', + // Green + '@green-1': 'var(--green-1)', + '@green-2': 'var(--green-2)', + '@green-3': 'var(--green-3)', + '@green-4': 'var(--green-4)', + '@green-5': 'var(--green-5)', + '@green-6': 'var(--green-6)', + '@green-7': 'var(--green-7)', + '@green-8': 'var(--green-8)', + '@green-9': 'var(--green-9)', + '@green-10': 'var(--green-10)', + // Pink + '@pink-1': 'var(--pink-1)', + '@pink-2': 'var(--pink-2)', + '@pink-3': 'var(--pink-3)', + '@pink-4': 'var(--pink-4)', + '@pink-5': 'var(--pink-5)', + '@pink-6': 'var(--pink-6)', + '@pink-7': 'var(--pink-7)', + '@pink-8': 'var(--pink-8)', + '@pink-9': 'var(--pink-9)', + '@pink-10': 'var(--pink-10)', + // Red + '@red-1': 'var(--red-1)', + '@red-2': 'var(--red-2)', + '@red-3': 'var(--red-3)', + '@red-4': 'var(--red-4)', + '@red-5': 'var(--red-5)', + '@red-6': 'var(--red-6)', + '@red-7': 'var(--red-7)', + '@red-8': 'var(--red-8)', + '@red-9': 'var(--red-9)', + '@red-10': 'var(--red-10)', + // Orange + '@orange-1': 'var(--orange-1)', + '@orange-2': 'var(--orange-2)', + '@orange-3': 'var(--orange-3)', + '@orange-4': 'var(--orange-4)', + '@orange-5': 'var(--orange-5)', + '@orange-6': 'var(--orange-6)', + '@orange-7': 'var(--orange-7)', + '@orange-8': 'var(--orange-8)', + '@orange-9': 'var(--orange-9)', + '@orange-10': 'var(--orange-10)', + // Gold + '@gold-1': 'var(--gold-1)', + '@gold-2': 'var(--gold-2)', + '@gold-3': 'var(--gold-3)', + '@gold-4': 'var(--gold-4)', + '@gold-5': 'var(--gold-5)', + '@gold-6': 'var(--gold-6)', + '@gold-7': 'var(--gold-7)', + '@gold-8': 'var(--gold-8)', + '@gold-9': 'var(--gold-9)', + '@gold-10': 'var(--gold-10)', + // Color used by default to control hover and active backgrounds + '@primary-1': 'var(--primary-1)', + '@primary-2': 'var(--primary-2)', + '@primary-3': 'var(--primary-3)', + '@primary-4': 'var(--primary-4)', + '@primary-5': 'var(--primary-5)', + '@primary-6': 'var(--primary-6)', + '@primary-7': 'var(--primary-7)', + '@primary-8': 'var(--primary-8)', + '@primary-9': 'var(--primary-9)', + '@primary-10': 'var(--primary-10)', + // Colors + '@primary-color': 'var(--primary-color)', + '@primary-color-hover': 'var(--primary-color-hover)', + '@primary-color-active': 'var(--primary-color-active)', + '@primary-color-outline': 'var(--primary-color-outline)', + // + '@info-color': 'var(--info-color)', + '@info-color-deprecated-bg': 'var(--primary-1)', + '@info-color-deprecated-border': 'var(--primary-3)', + // + '@success-color': 'var(--success-color)', + '@success-color-hover': 'var(--success-color-hover)', + '@success-color-active': 'var(--success-color-active)', + '@success-color-outline': 'var(--success-color-outline)', + '@success-color-deprecated-bg': 'var(--green-1)', + '@success-color-deprecated-border': 'var(--green-3)', + // + '@warning-color': 'var(--warning-color)', + '@warning-color-hover': 'var(--warning-color-hover)', + '@warning-color-active': 'var(--warning-color-active)', + '@warning-color-outline': 'var(--warning-color-outline)', + '@warning-color-deprecated-bg': 'var(--gold-1)', + '@warning-color-deprecated-border': 'var(--gold-3)', + // + '@error-color': 'var(--error-color)', + '@error-color-hover': 'var(--error-color-hover)', + '@error-color-active': 'var(--error-color-active)', + '@error-color-outline': 'var(--error-color-outline)', + '@error-color-deprecated-bg': 'var(--red-1)', + '@error-color-deprecated-border': 'var(--red-3)', + // + '@highlight-color': 'var(--highlight-color)', + '@processing-color': 'var(--processing-color)', + // Background color + '@body-background': 'var(--body-background)', + '@component-background': 'var(--component-background)', + // Popover + '@popover-background': 'var(--popover-background)', + '@popover-customize-border-color': 'var(--popover-customize-border-color)', + // Text Color + '@text-color': 'var(--text-color)', + '@text-color-secondary': 'var(--text-color-secondary)', + '@text-color-inverse': 'var(--text-color-inverse)', + '@icon-color-hover': 'var(--icon-color-hover)', + '@heading-color': 'var(--heading-color)', + // The background colors for active and hover states for things like + '@item-hover-bg': 'var(--item-hover-bg)', + // LINK + '@link-hover-color': '@primary-5', + '@link-active-color': '@primary-7', + // Border color + '@border-color-base': 'var(--border-color-base)', + '@border-color-split': 'var(--border-color-split)', + // + '@background-color-light': 'var(--background-color-light)', + '@background-color-base': 'var(--background-color-base)', + // Disabled states + '@disabled-color': 'var(--disabled-color)', + '@disabled-bg': 'var(--disabled-bg)', + '@disabled-color-dark': 'var(--disabled-color-dark)', + // Shadow + '@shadow-color': 'var(--shadow-color)', + '@shadow-color-inverse': 'var(--shadow-color-inverse)', + '@box-shadow-base': 'var(--box-shadow-base)', + '@shadow-1-up': 'var(--shadow-1-up)', + '@shadow-1-down': 'var(--shadow-1-down)', + '@shadow-1-left': 'var(--shadow-1-left)', + '@shadow-1-right': 'var(--shadow-1-right)', + '@shadow-2': 'var(--shadow-2)', + // Buttons + '@btn-shadow': 'var(--btn-shadow)', + '@btn-primary-shadow': 'var(--btn-primary-shadow)', + '@btn-text-shadow': 'var(--btn-text-shadow)', + // + '@btn-default-bg': 'var(--btn-default-bg)', + '@btn-danger-bg': '@error-color', + '@btn-danger-border': '@error-color', + // + '@btn-default-ghost-color': 'var(--btn-default-ghost-color)', + '@btn-default-ghost-border': 'var(--btn-default-ghost-border)', + // + '@btn-text-hover-bg': 'var(--btn-text-hover-bg)', + // Checkbox + '@checkbox-check-bg': 'var(--checkbox-check-bg)', + // Descriptions + '@descriptions-bg': 'var(--descriptions-bg)', + // Divider + '@divider-color': 'var(--divider-color)', + // Dropdown + '@dropdown-menu-submenu-disabled-bg': + 'var(--dropdown-menu-submenu-disabled-bg)', + // Radio + '@radio-dot-disabled-color': 'var(--radio-dot-disabled-color)', + '@radio-solid-checked-color': 'var(--radio-solid-checked-color)', + // Radio buttons + '@radio-disabled-button-checked-bg': + 'var(--radio-disabled-button-checked-bg)', + '@radio-disabled-button-checked-color': + 'var(--radio-disabled-button-checked-color)', + // Layout + '@layout-body-background': 'var(--layout-body-background)', + '@layout-header-background': 'var(--layout-header-background)', + '@layout-trigger-background': 'var(--layout-trigger-background)', + // Dropdown + '@dropdown-menu-bg': 'var(--dropdown-menu-bg)', + // Input + '@input-placeholder-color': 'var(--input-placeholder-color)', + '@input-icon-color': 'var(--input-icon-color)', + '@input-bg': 'var(--input-bg)', + '@input-number-handler-active-bg': 'var(--input-number-handler-active-bg)', + '@input-icon-hover-color': 'var(--input-icon-hover-color)', + // Mentions + '@mentions-dropdown-bg': 'var(--mentions-dropdown-bg)', + // Select + '@select-dropdown-bg': 'var(--select-dropdown-bg)', + '@select-background': 'var(--select-background)', + '@select-clear-background': 'var(--select-clear-background)', + '@select-selection-item-bg': 'var(--select-selection-item-bg)', + '@select-selection-item-border-color': + 'var(--select-selection-item-border-color)', + '@select-multiple-disabled-background': + 'var(--select-multiple-disabled-background)', + '@select-multiple-item-disabled-color': + 'var(--select-multiple-item-disabled-color)', + '@select-multiple-item-disabled-border-color': + 'var(--select-multiple-item-disabled-border-color)', + // Cascader + '@cascader-bg': 'var(--cascader-bg)', + '@cascader-menu-bg': 'var(--cascader-menu-bg)', + '@cascader-menu-border-color-split': + 'var(--cascader-menu-border-color-split)', + // Tooltip + '@tooltip-bg': 'var(--tooltip-bg)', + // Popover + '@popover-bg': 'var(--popover-bg)', + // Modal + '@modal-header-bg': 'var(--modal-header-bg)', + '@modal-header-border-color-split': 'var(--modal-header-border-color-split)', + '@modal-content-bg': 'var(--modal-content-bg)', + '@modal-footer-border-color-split': 'var(--modal-footer-border-color-split)', + // Progress + '@progress-steps-item-bg': 'var(--progress-steps-item-bg)', + // Menu + '@menu-popup-bg': 'var(--menu-popup-bg)', + '@menu-dark-bg': 'var(--menu-dark-bg)', + '@menu-dark-inline-submenu-bg': 'var(--menu-dark-inline-submenu-bg)', + // Table + '@table-header-bg': 'var(--table-header-bg)', + '@table-header-sort-bg': 'var(--table-header-sort-bg)', + '@table-body-sort-bg': 'var(--table-body-sort-bg)', + '@table-row-hover-bg': 'var(--table-row-hover-bg)', + '@table-selected-row-hover-bg': '@primary-1', + '@table-expanded-row-bg': 'var(--table-expanded-row-bg)', + '@table-header-cell-split-color': 'var(--table-header-cell-split-color)', + '@table-header-sort-active-bg': 'var(--table-header-sort-active-bg)', + '@table-header-filter-active-bg': 'var(--table-header-filter-active-bg)', + '@table-filter-btns-bg': 'var(--table-filter-btns-bg)', + '@table-filter-dropdown-bg': 'var(--table-filter-dropdown-bg)', + '@table-expand-icon-bg': 'var(--table-expand-icon-bg)', + // TimePicker + '@picker-bg': 'var(--picker-bg)', + '@picker-basic-cell-hover-with-range-color': 'var(--primary-2)', + '@picker-basic-cell-disabled-bg': 'var(--picker-basic-cell-disabled-bg)', + '@picker-border-color': 'var(--picker-border-color)', + '@picker-date-hover-range-border-color': 'var(--primary-4)', + // Calendar + '@calendar-bg': 'var(--calendar-bg)', + '@calendar-input-bg': 'var(--calendar-input-bg)', + '@calendar-border-color': 'var(--calendar-border-color)', + '@calendar-column-active-bg': '@calendar-item-active-bg', + '@calendar-full-bg': 'var(--calendar-full-bg)', + // Badge + '@badge-text-color': '@white', + // Rate + '@rate-star-bg': 'var(--rate-star-bg)', + // Card + '@card-actions-background': 'var(--card-actions-background)', + '@card-skeleton-bg': 'var(--card-skeleton-bg)', + '@card-shadow': 'var(--card-shadow)', + // Comment + '@comment-bg': 'var(--comment-bg)', + '@comment-author-time-color': 'var(--comment-author-time-color)', + '@comment-action-hover-color': 'var(--comment-action-hover-color)', + // BackTop + '@back-top-bg': 'var(--back-top-bg)', + '@back-top-hover-bg': 'var(--back-top-hover-bg)', + // Avatar + '@avatar-bg': 'var(--avatar-bg)', + // Switch + '@switch-bg': 'var(--switch-bg)', + // Pagination + '@pagination-item-bg': 'var(--pagination-item-bg)', + '@pagination-item-bg-active': 'var(--pagination-item-bg-active)', + '@pagination-item-link-bg': 'var(--pagination-item-link-bg)', + '@pagination-item-disabled-color-active': + 'var(--pagination-item-disabled-color-active)', + '@pagination-item-disabled-bg-active': + 'var(--pagination-item-disabled-bg-active)', + '@pagination-item-input-bg': 'var(--pagination-item-input-bg)', + // PageHeader + '@page-header-back-color': 'var(--page-header-back-color)', + '@page-header-ghost-bg': 'var(--page-header-ghost-bg)', + // Slider + '@slider-rail-background-color': 'var(--slider-rail-background-color)', + '@slider-rail-background-color-hover': + 'var(--slider-rail-background-color-hover)', + '@slider-handle-color-focus': '@primary-5', + '@slider-handle-color-focus-shadow': 'var(--primary-2)', + '@slider-dot-border-color': 'var(--slider-dot-border-color)', + '@slider-dot-border-color-active': 'var(--slider-dot-border-color)', + // Tree + '@tree-bg': 'var(--tree-bg)', + // Skeleton + '@skeleton-to-color': 'var(--skeleton-to-color)', + // Transfer + '@transfer-item-hover-bg': 'var(--transfer-item-hover-bg)', + '@transfer-item-selected-hover-bg': '@primary-1', + // Message + '@message-notice-content-bg': 'var(--message-notice-content-bg)', + // Alert + '@alert-success-border-color': '@green-3', + '@alert-success-bg-color': '@green-1', + '@alert-success-icon-color': '@success-color', + '@alert-info-border-color': '@primary-3', + '@alert-info-bg-color': '@primary-1', + '@alert-info-icon-color': '@primary-color', + '@alert-warning-border-color': '@gold-3', + '@alert-warning-bg-color': '@gold-1', + '@alert-warning-icon-color': '@warning-color', + '@alert-error-border-color': '@red-3', + '@alert-error-bg-color': '@red-1', + '@alert-error-icon-color': '@error-color', + // List + '@list-customize-card-bg': 'var(--list-customize-card-bg)', + // Drawer + '@drawer-bg': 'var(--drawer-bg)', + // Timeline + '@timeline-color': 'var(--timeline-color)', + '@timeline-dot-color': 'var(--timeline-dot-color)', + // Image + '@image-preview-operation-disabled-color': + 'var(--image-preview-operation-disabled-color)', + // Steps + '@steps-nav-arrow-color': 'var(--steps-nav-arrow-color)', + '@steps-background': 'var(--steps-background)', + // Notification + '@notification-bg': 'var(--notification-bg)', + // + '@gradient-min': 'var(--gradient-min)', + '@gradient-max': 'var(--gradient-max)', + // 滚动条 + '@scrollbar-thumb-color': 'var(--scrollbar-thumb-color)', + '@scrollbar-thumb-hover-color': 'var(--scrollbar-thumb-hover-color)', + '@scrollbar-track-color': 'var(--scrollbar-track-color)', + // 侧栏 + '@sidebar-background': 'var(--sidebar-background)', + '@sidebar-light-background': 'var(--sidebar-light-background)', + '@sidebar-light-shadow': 'var(--sidebar-light-shadow)', + '@sidebar-dark-shadow': 'var(--sidebar-dark-shadow)', + '@sidebar-scrollbar-thumb-color': 'var(--sidebar-scrollbar-thumb-color)', + '@sidebar-scrollbar-thumb-hover-color': + 'var(--sidebar-scrollbar-thumb-hover-color)', + '@sidebar-scrollbar-track-color': 'var(--sidebar-scrollbar-track-color)', + '@sidebar-light-scrollbar-thumb-color': + 'var(--sidebar-light-scrollbar-thumb-color)', + '@sidebar-light-scrollbar-thumb-hover-color': + 'var(--sidebar-light-scrollbar-thumb-hover-color)', + '@sidebar-light-scrollbar-track-color': + 'var(--sidebar-light-scrollbar-track-color)', + // 顶栏 + '@header-background': 'var(--header-background)', + '@header-light-background': 'var(--header-light-background)', + '@header-light-shadow': 'var(--header-light-shadow)', + '@header-dark-shadow': 'var(--header-dark-shadow)', + '@header-tool-hover-bg': 'var(--header-tool-hover-bg)', + '@header-dark-tool-hover-bg': 'var(--header-dark-tool-hover-bg)', + // logo + '@logo-light-shadow': 'var(--logo-light-shadow)', + '@logo-dark-shadow': 'var(--logo-dark-shadow)' +}; + +/** + * 需要替换的内容 + */ +const replaces = { + // style/color/colorPalette.less + 'this.colorPalette = function(color, index) {': `this.colorPalette = function(color, index) { + if(color.indexOf('var(--') === 0) { + if(color === 'var(--primary-color)' || color === 'var(--info-color)') { + return 'var(--primary-' + index + ')'; + } + if(color === 'var(--error-color)' || color === 'var(--highlight-color)') { + return 'var(--red-' + index + ')'; + } + if(color === 'var(--warning-color)') { + return 'var(--gold-' + index + ')'; + } + if(color === 'var(--success-color)') { + return 'var(--green-' + index + ')'; + } + return color.replace(')', '-unknown)'); + }`, + // input/style/mixin.less + 'fade(@borderColor, @outline-fade)': + 'replace(~"@{borderColor}", "-color", "-color-outline")', + // notification/style/index-pure.less + 'shade(@text-color-secondary, 40%)': '@text-color', + // popover/style/index-pure.less + "box-shadow: ~'0 0 8px @{shadow-color} \\9';": '', + // switch/style/index-pure.less + 'box-shadow: 0 0 0 2px fade(@disabled-color, 10%)': + 'box-shadow: 0 0 0 2px var(--primary-2)', + // button/style/mixin.less + 'fadein(@btn-text-hover-bg, 1%)': 'var(--btn-text-active-bg)', + // table\style\index-pure.less + 'darken(@shadow-color, 5%)': '@shadow-color', + 'lighten(@table-border-color, 80%)': '@component-background', + // date-picker/style/panel.less + 'fade(@text-color-inverse, 50%)': 'fade(@white, 50%)', + // tabs\style\position.less + 'fade(@shadow-color, 8%)': '@shadow-color' +}; + +/** + * 修改 less 变量的预处理器 + */ +class AntdLessPreProcessor { + variables; + replaces; + + constructor( + variables, + replaces + ) { + this.variables = variables || {}; + this.replaces = replaces || {}; + } + + process(src) { + let result = src; + Object.keys(this.variables).forEach((key) => { + const value = this.variables[key]; + if (typeof value === 'string') { + result = result.replace( + new RegExp(key + ':[^;]*;', 'g'), + key + ': ' + this.variables[key] + ';' + ); + } + }); + Object.keys(this.replaces).forEach((key) => { + const value = this.replaces[key]; + if (typeof value === 'string') { + result = result.split(key).join(value); + } + }); + return result; + } +} + +/** + * 转换 antd 变量的 less 插件 + */ +class DynamicAntdLess { + options; + + constructor(options) { + this.options = { + variables: { ...variables, ...options?.variables }, + replaces: { ...replaces, ...options?.replaces } + }; + } + + install(_less, manager, _functions) { + // 添加预处理器 + manager.addPreProcessor( + new AntdLessPreProcessor(this.options.variables, this.options.replaces), + 2000 + ); + } +} + +export { DynamicAntdLess }; diff --git a/guns-front-project/src/utils/page-tab-util.js b/guns-front-project/src/utils/page-tab-util.js new file mode 100644 index 00000000..88910569 --- /dev/null +++ b/guns-front-project/src/utils/page-tab-util.js @@ -0,0 +1,249 @@ +/** + * 页签操作封装 + */ +import { unref } from 'vue'; +import { message } from 'ant-design-vue/es'; +import router from '@/router'; +import { useThemeStore } from '@/store/modules/theme'; +import { removeToken } from '@/utils/token-util'; +import { setDocumentTitle } from '@/utils/document-title-util'; +import { + HOME_PATH, + LAYOUT_PATH, + REDIRECT_PATH, + REPEATABLE_TABS +} from '@/config/setting'; +const HOME_ROUTE = HOME_PATH || LAYOUT_PATH; +const BASE_URL = import.meta.env.BASE_URL; + +/** + * 刷新当前路由 + */ +export function reloadPageTab(option) { + if (!option) { + // 刷新当前路由 + const { path, fullPath, query } = unref(router.currentRoute); + if (path.includes(REDIRECT_PATH)) { + return; + } + const isHome = isHomeRoute(unref(router.currentRoute)); + setRouteReload({ + reloadHome: isHome, + reloadPath: isHome ? void 0 : fullPath + }); + router.replace({ + path: REDIRECT_PATH + path, + query + }); + } else { + // 刷新指定页签 + const { fullPath, isHome } = option; + setRouteReload({ + reloadHome: isHome, + reloadPath: isHome ? void 0 : fullPath + }); + router.replace(REDIRECT_PATH + fullPath); + } +} + +/** + * 关闭当前页签 + */ +export function finishPageTab() { + const key = getRouteTabKey(); + removePageTab({ key, active: key }); +} + +/** + * 关闭页签 + */ +export function removePageTab(option) { + useThemeStore() + .tabRemove(option) + .then(({ path, home }) => { + if (path) { + router.push(path); + } else if (home) { + router.push(HOME_ROUTE); + } + }) + .catch(() => { + message.error('当前页签不可关闭'); + }); +} + +/** + * 关闭左侧页签 + */ +export function removeLeftPageTab(option) { + useThemeStore() + .tabRemoveLeft(option) + .then(({ path }) => { + if (path) { + router.push(path); + } + }) + .catch(() => { + message.error('左侧没有可关闭的页签'); + }); +} + +/** + * 关闭右侧页签 + */ +export function removeRightPageTab(option) { + useThemeStore() + .tabRemoveRight(option) + .then(({ path, home }) => { + if (path) { + router.push(path); + } else if (home) { + router.push(HOME_ROUTE); + } + }) + .catch(() => { + message.error('右侧没有可关闭的页签'); + }); +} + +/** + * 关闭其它页签 + */ +export function removeOtherPageTab(option) { + useThemeStore() + .tabRemoveOther(option) + .then(({ path, home }) => { + if (path) { + router.push(path); + } else if (home) { + router.push(HOME_ROUTE); + } + }) + .catch(() => { + message.error('没有可关闭的页签'); + }); +} + +/** + * 关闭全部页签 + * @param active 当前选中页签 + */ +export function removeAllPageTab(active) { + useThemeStore() + .tabRemoveAll(active) + .then(({ home }) => { + if (home) { + router.push(HOME_ROUTE); + } + }) + .catch(() => { + message.error('没有可关闭的页签'); + }); +} + +/** + * 登录成功后清空页签 + */ +export function cleanPageTabs() { + useThemeStore().setTabs([]); +} + +/** + * 添加页签 + * @param data 页签数据 + */ +export function addPageTab(data) { + useThemeStore().tabAdd(data); +} + +/** + * 修改页签 + * @param data 页签数据 + */ +export function setPageTab(data) { + useThemeStore().tabSetItem(data); +} + +/** + * 更新页签数据 + * @param data 页签数据 + */ +export function setPageTabs(data) { + useThemeStore().setTabs(data); +} + +/** + * 修改页签标题 + * @param title 标题 + */ +export function setPageTabTitle(title) { + setPageTab({ key: getRouteTabKey(), title }); + setDocumentTitle(title); +} + +/** + * 获取当前路由对应的页签 key + */ +export function getRouteTabKey() { + const { path, fullPath, meta } = unref(router.currentRoute); + const isUnique = meta.tabUnique === false || REPEATABLE_TABS.includes(path); + return isUnique ? fullPath : path; +} + +/** + * 设置主页的组件名称 + * @param components 组件名称 + */ +export function setHomeComponents(components) { + useThemeStore().setHomeComponents(components); +} + +/** + * 设置路由刷新信息 + * @param option 路由刷新参数 + */ +export function setRouteReload(option) { + return useThemeStore().setRouteReload(option); +} + +/** + * 判断路由是否是主页 + * @param route 路由信息 + */ +export function isHomeRoute(route) { + const { path, matched } = route; + if (HOME_ROUTE === path) { + return true; + } + return ( + matched[0] && + matched[0].path === LAYOUT_PATH && + matched[0].redirect === path + ); +} + +/** + * 登录成功后跳转首页 + * @param from 登录前的地址 + */ +export function goHomeRoute(from) { + router.replace(from || HOME_ROUTE); +} + +/** + * 退出登录 + * @param route 是否使用路由跳转 + * @param from 登录后跳转的地址 + */ +export function logout(route, from) { + removeToken(); + if (route) { + router.push({ + path: '/login', + query: from ? { from } : void 0 + }); + } else { + // 这样跳转避免再次登录重复注册动态路由 + location.replace(BASE_URL + 'login' + (from ? '?from=' + from : '')); + } +} diff --git a/guns-front-project/src/utils/permission.js b/guns-front-project/src/utils/permission.js new file mode 100644 index 00000000..93f8be71 --- /dev/null +++ b/guns-front-project/src/utils/permission.js @@ -0,0 +1,94 @@ +/** + * 按钮级权限控制 + */ +import { useUserStore } from '@/store/modules/user'; + +/* 判断数组是否有某些值 */ +function arrayHas(array, value) { + if (!value) { + return true; + } + if (!array) { + return false; + } + if (Array.isArray(value)) { + for (let i = 0; i < value.length; i++) { + if (array.indexOf(value[i]) === -1) { + return false; + } + } + return true; + } + return array.indexOf(value) !== -1; +} + +/* 判断数组是否有任意值 */ +function arrayHasAny(array, value) { + if (!value) { + return true; + } + if (!array) { + return false; + } + if (Array.isArray(value)) { + for (let i = 0; i < value.length; i++) { + if (array.indexOf(value[i]) !== -1) { + return true; + } + } + return false; + } + return array.indexOf(value) !== -1; +} + +/** + * 是否有某些权限 + * @param value 权限字符或字符数组 + */ +export function hasPermission(value) { + const userStore = useUserStore(); + return arrayHas(userStore?.authorities, value); +} + +/** + * 是否有任意权限 + * @param value 权限字符或字符数组 + */ +export function hasAnyPermission(value) { + const userStore = useUserStore(); + return arrayHasAny(userStore?.authorities, value); +} + +export default { + install(app) { + // 添加自定义指令 + app.directive('role', { + mounted: (el, binding) => { + if (!hasRole(binding.value)) { + el.parentNode?.removeChild(el); + } + } + }); + app.directive('any-role', { + mounted: (el, binding) => { + if (!hasAnyRole(binding.value)) { + el.parentNode?.removeChild(el); + } + } + }); + app.directive('permission', { + mounted: (el, binding) => { + if (!hasPermission(binding.value)) { + el.parentNode?.removeChild(el); + } + } + }); + app.directive('any-permission', { + mounted: (el, binding) => { + if (!hasAnyPermission(binding.value)) { + el.parentNode?.removeChild(el); + } + } + }); + } +}; diff --git a/guns-front-project/src/utils/request/request-util.js b/guns-front-project/src/utils/request/request-util.js new file mode 100644 index 00000000..615a0718 --- /dev/null +++ b/guns-front-project/src/utils/request/request-util.js @@ -0,0 +1,105 @@ +/** + * 通用请求工具类封装 + * + * @author fengshuonan + * @date 2022/4/8 10:47 + */ +import request from '@/utils/request/request'; +import axios from 'axios'; +import { getToken } from '@/utils/token-util'; + +export default class RequestUtil { + /** + * get请求 + * + * @author fengshuonan + * @date 2022/4/8 10:50 + */ + static async get(url, params) { + if (params === undefined) { + params = {}; + } + let result = await request.get(url, { params }); + return result.data; + } + + /** + * get请求并获取数据 + * + * @author fengshuonan + * @date 2022/4/8 10:50 + */ + static async getAndLoadData(url, params) { + let result = await this.get(url, params); + return result.data; + } + + /** + * post请求 + * + * @author fengshuonan + * @date 2022/4/8 10:50 + */ + static async post(url, params) { + if (params === undefined) { + params = {}; + } + let result = await request.post(url, params); + return result.data; + } + + /** + * post请求并获取数据 + * + * @author fengshuonan + * @date 2022/4/8 10:50 + */ + static async postAndLoadData(url, params) { + let result = await this.post(url, params); + return result.data; + } + + /** + * 封装downLoad请求 + * + * @author fengshuonan + * @date 2021/4/2 16:13 + */ + static downLoad(url, params) { + if (params === undefined) { + params = {}; + } + let paramUrl = '?'; + for (let field in params) { + if (params[field]) { + paramUrl = paramUrl + field + '=' + params[field] + '&'; + } + } + paramUrl = paramUrl.substring(0, paramUrl.length - 1); + + if (!paramUrl) { + paramUrl = `?token=${getToken()}`; + } else { + if (!paramUrl.includes('&token=')) { + paramUrl = `${paramUrl}&token=${getToken()}`; + } + } + window.location.href = `${url}${paramUrl}`; + } + + // post下载文件封装 + static reqDown(url, params) { + return axios({ + method: 'post', + responseType: 'blob', + url: url, + data: params, + headers: { + "Authorization": getToken() + } + }).then(res => { + return res + }).catch(error => { + }); + } +} diff --git a/guns-front-project/src/utils/request/request.js b/guns-front-project/src/utils/request/request.js new file mode 100644 index 00000000..a7845e7a --- /dev/null +++ b/guns-front-project/src/utils/request/request.js @@ -0,0 +1,82 @@ +/** + * axios 实例 + */ +import axios from 'axios'; +import { unref } from 'vue'; +import router from '@/router'; +import { Modal, message } from 'ant-design-vue/es'; +import { API_BASE_PREFIX, TOKEN_HEADER_NAME } from '@/config/setting'; +import { getToken, setToken } from '../token-util'; +import { logout } from '../page-tab-util'; + +const service = axios.create({ + baseURL: API_BASE_PREFIX +}); + +/** + * 添加请求拦截器 + */ +service.interceptors.request.use( + (config) => { + // 添加 token 到 header + const token = getToken(); + if (token && config.headers) { + config.headers[TOKEN_HEADER_NAME] = token; + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +/** + * 添加响应拦截器 + */ +service.interceptors.response.use( + res => { + // 请求成功,token自动续期 + if (res.data?.code === '00000') { + const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()]; + if (token) { + setToken(token, true); + } + return res; + } + + // 处理响应错误,请求异常自动提示错误信息,如果是B0301就跳转到登录界面 + return processErrorResponse(res); + }, + error => { + // 处理响应错误 + return processErrorResponse(error.response); + } +); + +/** + * 处理错误响应 + */ +const processErrorResponse = function (response) { + // 如果是非B0301,则提示错误信息 + if (response.data.code !== 'B0301') { + message.error(response.data.message); + } else { + // 如果是B0301,则跳转登录界面 + const currentPath = unref(router.currentRoute).path; + if (currentPath === '/') { + logout(true); + } else { + Modal.destroyAll(); + Modal.info({ + title: '系统提示', + content: '登录状态已过期, 请退出重新登录!', + okText: '重新登录', + onOk: () => { + logout(false, currentPath); + } + }); + } + } + return Promise.reject(response.data); +}; +export default service; diff --git a/guns-front-project/src/utils/resolvers.js b/guns-front-project/src/utils/resolvers.js new file mode 100644 index 00000000..0c121063 --- /dev/null +++ b/guns-front-project/src/utils/resolvers.js @@ -0,0 +1,308 @@ +/** + * AntDesignVue 所有组件名称 + */ +const antComponents = [ + 'Affix', + 'Alert', + 'Anchor', + 'AnchorLink', + 'AutoComplete', + 'AutoCompleteOptGroup', + 'AutoCompleteOption', + 'Avatar', + 'AvatarGroup', + 'BackTop', + 'Badge', + 'BadgeRibbon', + 'Breadcrumb', + 'BreadcrumbItem', + 'BreadcrumbSeparator', + 'Button', + 'ButtonGroup', + 'Calendar', + 'Card', + 'CardGrid', + 'CardMeta', + 'Carousel', + 'Cascader', + 'CheckableTag', + 'Checkbox', + 'CheckboxGroup', + 'Col', + 'Collapse', + 'CollapsePanel', + 'Comment', + 'ConfigProvider', + 'DatePicker', + 'Descriptions', + 'DescriptionsItem', + 'DirectoryTree', + 'Divider', + 'Drawer', + 'Dropdown', + 'DropdownButton', + 'Empty', + 'Form', + 'FormItem', + 'FormItemRest', + 'Image', + 'ImagePreviewGroup', + 'Input', + 'InputGroup', + 'InputNumber', + 'InputPassword', + 'InputSearch', + 'Layout', + 'LayoutContent', + 'LayoutFooter', + 'LayoutHeader', + 'LayoutSider', + 'List', + 'ListItem', + 'ListItemMeta', + 'LocaleProvider', + 'Mentions', + 'MentionsOption', + 'Menu', + 'MenuDivider', + 'MenuItem', + 'MenuItemGroup', + 'Modal', + 'MonthPicker', + 'PageHeader', + 'Pagination', + 'Popconfirm', + 'Popover', + 'Progress', + 'QuarterPicker', + 'Radio', + 'RadioButton', + 'RadioGroup', + 'RangePicker', + 'Rate', + 'Result', + 'Row', + 'Select', + 'SelectOptGroup', + 'SelectOption', + 'Skeleton', + 'SkeletonAvatar', + 'SkeletonButton', + 'SkeletonImage', + 'SkeletonInput', + 'Slider', + 'Space', + 'Spin', + 'Statistic', + 'StatisticCountdown', + 'Step', + 'Steps', + 'SubMenu', + 'Switch', + 'TabPane', + 'Table', + 'TableColumn', + 'TableColumnGroup', + 'TableSummary', + 'TableSummaryCell', + 'TableSummaryRow', + 'Tabs', + 'Tag', + 'Textarea', + 'TimePicker', + 'TimeRangePicker', + 'Timeline', + 'TimelineItem', + 'Tooltip', + 'Transfer', + 'Tree', + 'TreeNode', + 'TreeSelect', + 'TreeSelectNode', + 'Typography', + 'TypographyLink', + 'TypographyParagraph', + 'TypographyText', + 'TypographyTitle', + 'Upload', + 'UploadDragger', + 'WeekPicker' +]; + +/** + * AntDesignVue 需要特殊处理样式依赖的组件名称 + */ +const matchComponents = [ + { + pattern: /^Avatar/, + styleDir: 'avatar' + }, + { + pattern: /^AutoComplete/, + styleDir: 'auto-complete' + }, + { + pattern: /^Anchor/, + styleDir: 'anchor' + }, + { + pattern: /^Badge/, + styleDir: 'badge' + }, + { + pattern: /^Breadcrumb/, + styleDir: 'breadcrumb' + }, + { + pattern: /^Button/, + styleDir: 'button' + }, + { + pattern: /^Checkbox/, + styleDir: 'checkbox' + }, + { + pattern: /^Card/, + styleDir: 'card' + }, + { + pattern: /^Collapse/, + styleDir: 'collapse' + }, + { + pattern: /^Descriptions/, + styleDir: 'descriptions' + }, + { + pattern: /^RangePicker|^WeekPicker|^MonthPicker|^QuarterPicker/, + styleDir: 'date-picker' + }, + { + pattern: /^TimeRangePicker/, + styleDir: 'time-picker' + }, + { + pattern: /^Dropdown/, + styleDir: 'dropdown' + }, + { + pattern: /^Form/, + styleDir: 'form' + }, + { + pattern: /^InputNumber/, + styleDir: 'input-number' + }, + { + pattern: /^Input|^Textarea/, + styleDir: 'input' + }, + { + pattern: /^Statistic/, + styleDir: 'statistic' + }, + { + pattern: /^CheckableTag/, + styleDir: 'tag' + }, + { + pattern: /^Layout/, + styleDir: 'layout' + }, + { + pattern: /^Menu|^SubMenu/, + styleDir: 'menu' + }, + { + pattern: /^Table/, + styleDir: 'table' + }, + { + pattern: /^Radio/, + styleDir: 'radio' + }, + { + pattern: /^Image/, + styleDir: 'image' + }, + { + pattern: /^List/, + styleDir: 'list' + }, + { + pattern: /^Tab/, + styleDir: 'tabs' + }, + { + pattern: /^Mentions/, + styleDir: 'mentions' + }, + { + pattern: /^Step/, + styleDir: 'steps' + }, + { + pattern: /^Skeleton/, + styleDir: 'skeleton' + }, + { + pattern: /^Select/, + styleDir: 'select' + }, + { + pattern: /^TreeSelect/, + styleDir: 'tree-select' + }, + { + pattern: /^Tree|^DirectoryTree/, + styleDir: 'tree' + }, + { + pattern: /^Typography/, + styleDir: 'typography' + }, + { + pattern: /^Timeline/, + styleDir: 'timeline' + }, + { + pattern: /^Upload/, + styleDir: 'upload' + } +]; + +/** + * AntDesignVue 全部样式依赖 + */ +export const antStyleDeps = Array.from( + new Set( + antComponents.map(name => { + for (let i = 0; i < matchComponents.length; i++) { + if (name.match(matchComponents[i].pattern)) { + return matchComponents[i].styleDir; + } + } + return kebabCase(name); + }) + ) +).map(name => { + return `ant-design-vue/es/${name}/style`; +}); + +/** + * 全部的样式依赖 + */ +export const styleDeps = antStyleDeps; + +/** + * 驼峰转中划线 + * @param value + */ +function kebabCase(value) { + return value + .replace(/([A-Z])/g, ' $1') + .trim() + .split(' ') + .join('-') + .toLowerCase(); +} diff --git a/guns-front-project/src/utils/token-util.js b/guns-front-project/src/utils/token-util.js new file mode 100644 index 00000000..c6949cbb --- /dev/null +++ b/guns-front-project/src/utils/token-util.js @@ -0,0 +1,40 @@ +/** + * token 操作封装 + */ +import { TOKEN_STORE_NAME } from '@/config/setting'; + +/** + * 获取缓存的 token + */ +export function getToken() { + const token = localStorage.getItem(TOKEN_STORE_NAME); + if (!token) { + return sessionStorage.getItem(TOKEN_STORE_NAME); + } + return token; +} + +/** + * 缓存 token + * @param token token + * @param remember 是否永久存储 + */ +export function setToken(token, remember) { + removeToken(); + if (token) { + if (remember) { + localStorage.setItem(TOKEN_STORE_NAME, token); + } else { + sessionStorage.setItem(TOKEN_STORE_NAME, token); + } + } +} + +/** + * 移除 token + */ +export function removeToken() { + localStorage.removeItem(TOKEN_STORE_NAME); + sessionStorage.removeItem(TOKEN_STORE_NAME); + sessionStorage.removeItem('ACTIVE_APP'); +} diff --git a/guns-front-project/src/views/forget/index.vue b/guns-front-project/src/views/forget/index.vue new file mode 100644 index 00000000..bbee190c --- /dev/null +++ b/guns-front-project/src/views/forget/index.vue @@ -0,0 +1,327 @@ + + + + + diff --git a/guns-front-project/src/views/index/api/HomeApi.js b/guns-front-project/src/views/index/api/HomeApi.js new file mode 100644 index 00000000..45ef539f --- /dev/null +++ b/guns-front-project/src/views/index/api/HomeApi.js @@ -0,0 +1,39 @@ +import Request from '@/utils/request/request-util'; + +/** + * 个人信息api + * + * @author fengshuonan + * @date 2021/4/1 15:03 + */ +export class HomeApi { + /** + * 获取最近操作记录 + * + * @author fengshuonan + * @date 2022/2/11 10:18 + */ + static getRecentLogs(params) { + return Request.getAndLoadData('/homePage/getRecentLogs', params); + } + + + /** + * 获取用户常用功能 + * @param params + * @returns {Promise<*>} + */ + static getUserAppList(params) { + return Request.getAndLoadData('/portalUserApp/getUserAppList', params); + } + + /** + * 更新用户的常用功能 + * @param params + * @returns {Promise<*>} + */ + static updateUserAppList(params) { + return Request.post('/portalUserApp/updateUserAppList', params); + } + +} diff --git a/guns-front-project/src/views/index/api/MyNoticeApi.js b/guns-front-project/src/views/index/api/MyNoticeApi.js new file mode 100644 index 00000000..9d690906 --- /dev/null +++ b/guns-front-project/src/views/index/api/MyNoticeApi.js @@ -0,0 +1,59 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -我的通知公告api + * + */ +export class MyNoticeApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysMessage/page', params); + } + + /** + * 清空我的消息 + * @param {*} params + * @returns + */ + static cleanMyMessage(params) { + return Request.post('/sysMessage/cleanMyMessage', params); + } + + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysMessage/detail', params); + } + + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysMessage/delete', params); + } + /** + * 设为已读消息 + * @param {*} params + * @returns + */ + static setRead(params) { + return Request.post('/sysMessage/setRead', params); + } + /** + * 全部已读 + * @param {*} params + * @returns + */ + static setTotalRead(params) { + return Request.post('/sysMessage/setTotalRead', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/index/api/OrgApi.js b/guns-front-project/src/views/index/api/OrgApi.js new file mode 100644 index 00000000..f618e322 --- /dev/null +++ b/guns-front-project/src/views/index/api/OrgApi.js @@ -0,0 +1,20 @@ +import Request from '@/utils/request/request-util'; + +/** + * 个人信息api + * + * @author fengshuonan + * @date 2021/4/1 15:03 + */ +export class OrgApi { + /** + * 首页企业概况统计 + * + * @author fengshuonan + * @date 2022/2/11 10:18 + */ + static orgInfoStat(params) { + return Request.getAndLoadData('/org/statInfo', params); + } + +} diff --git a/guns-front-project/src/views/index/api/PersonInfoApi.js b/guns-front-project/src/views/index/api/PersonInfoApi.js new file mode 100644 index 00000000..5dbb7b06 --- /dev/null +++ b/guns-front-project/src/views/index/api/PersonInfoApi.js @@ -0,0 +1,74 @@ +import Request from '@/utils/request/request-util'; + +/** + * 个人信息api + * + * @author fengshuonan + * @date 2021/4/1 15:03 + */ +export class PersonInfoApi { + /** + * 获取当前用户信息 + * + * @author fengshuonan + * @date 2021/4/1 15:04 + */ + static getCurrentLoginUserInfo(params) { + return Request.getAndLoadData('/sysUser/detail', params); + } + + /** + * 更新当前用户信息 + * + * @param {String} params.account 账号 + * @param {String} params.birthday 生日 + * @param {String} params.email 邮箱 + * @param {String} params.phone 电话 + * @param {String} params.realName 真实姓名 + * @param {String} params.sex 性别 + * @param {String} params.userId 用户id + * @author fengshuonan + * @date 2021/4/13 16:16 + */ + static updateUserInfo(params) { + return Request.post('/sysUser/updateInfo', params); + } + + + /** + * 获取个人信息详情 + * @param params + * @returns {Promise<*>} + */ + static getUserInfo(params) { + return Request.getAndLoadData('/personalInfo/getUserInfo', params); + } + + /** + * 修改密码 + * @param params + * @returns {Promise<*>} + */ + static updatePassword(params) { + return Request.post('/personalInfo/updatePassword', params); + } + + /** + * 修改头像 + * @param params + * @returns {Promise<*>} + */ + static updateAvatar(params) { + return Request.post('/personalInfo/updateAvatar', params); + } + + /** + * 修改基本信息 + * @param params + * @returns {Promise<*>} + */ + static updateInfo(params) { + return Request.post('/personalInfo/updateInfo', params); + } + +} diff --git a/guns-front-project/src/views/index/components/common-functions.vue b/guns-front-project/src/views/index/components/common-functions.vue new file mode 100644 index 00000000..5650f8ef --- /dev/null +++ b/guns-front-project/src/views/index/components/common-functions.vue @@ -0,0 +1,437 @@ + + + + + diff --git a/guns-front-project/src/views/index/components/company-overview.vue b/guns-front-project/src/views/index/components/company-overview.vue new file mode 100644 index 00000000..d0a67a27 --- /dev/null +++ b/guns-front-project/src/views/index/components/company-overview.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/guns-front-project/src/views/index/components/operation-records.vue b/guns-front-project/src/views/index/components/operation-records.vue new file mode 100644 index 00000000..b66287e7 --- /dev/null +++ b/guns-front-project/src/views/index/components/operation-records.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/guns-front-project/src/views/index/components/switch-company.vue b/guns-front-project/src/views/index/components/switch-company.vue new file mode 100644 index 00000000..ed27eac4 --- /dev/null +++ b/guns-front-project/src/views/index/components/switch-company.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/guns-front-project/src/views/index/components/userinfo.vue b/guns-front-project/src/views/index/components/userinfo.vue new file mode 100644 index 00000000..83bbab37 --- /dev/null +++ b/guns-front-project/src/views/index/components/userinfo.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/guns-front-project/src/views/index/form/my-notice.vue b/guns-front-project/src/views/index/form/my-notice.vue new file mode 100644 index 00000000..642d869c --- /dev/null +++ b/guns-front-project/src/views/index/form/my-notice.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/guns-front-project/src/views/index/form/notice-detail.vue b/guns-front-project/src/views/index/form/notice-detail.vue new file mode 100644 index 00000000..97dcf635 --- /dev/null +++ b/guns-front-project/src/views/index/form/notice-detail.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/guns-front-project/src/views/index/form/update-avatar.vue b/guns-front-project/src/views/index/form/update-avatar.vue new file mode 100644 index 00000000..a28788ff --- /dev/null +++ b/guns-front-project/src/views/index/form/update-avatar.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/guns-front-project/src/views/index/form/update-password.vue b/guns-front-project/src/views/index/form/update-password.vue new file mode 100644 index 00000000..20ae1632 --- /dev/null +++ b/guns-front-project/src/views/index/form/update-password.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/guns-front-project/src/views/index/form/update-user-info.vue b/guns-front-project/src/views/index/form/update-user-info.vue new file mode 100644 index 00000000..9877b7b2 --- /dev/null +++ b/guns-front-project/src/views/index/form/update-user-info.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/guns-front-project/src/views/index/index.vue b/guns-front-project/src/views/index/index.vue new file mode 100644 index 00000000..24a9e4ab --- /dev/null +++ b/guns-front-project/src/views/index/index.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/guns-front-project/src/views/index/personal.vue b/guns-front-project/src/views/index/personal.vue new file mode 100644 index 00000000..8b03bb4b --- /dev/null +++ b/guns-front-project/src/views/index/personal.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/guns-front-project/src/views/init/index.vue b/guns-front-project/src/views/init/index.vue new file mode 100644 index 00000000..1ef08076 --- /dev/null +++ b/guns-front-project/src/views/init/index.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/guns-front-project/src/views/login/login/api/LoginApi.js b/guns-front-project/src/views/login/login/api/LoginApi.js new file mode 100644 index 00000000..57e9f12a --- /dev/null +++ b/guns-front-project/src/views/login/login/api/LoginApi.js @@ -0,0 +1,73 @@ +import Request from '@/utils/request/request-util'; + +/** + * 登录退出接口 + * + * @author fengshuonan + * @date 2021/4/1 14:34 + */ +export class LoginApi { + /** + * 登录接口 + * + * @param {string} params.account 账号 + * @param {string} params.password 密码 + * @param {string} params.rememberMe 记住密码,true-记住,false-不记住 + * @param {string} params.tenantCode 租户编码 + * @author fengshuonan + * @date 2021/4/1 14:34 + */ + static login(params) { + return Request.post('/loginApi', params); + } + + /** + * 单点登录,获取单点登录的loginCode + * + * @param {string} params.account 账号 + * @param {string} params.password 密码 + * @author fengshuonan + * @since 2023/11/6 18:58 + */ + static getLoginCode(params) { + return Request.post('/sso/getLoginCode', params); + } + + /** + * 获取图片验证码以及验证信息接口 + * + */ + static getVerifyInfo() { + return Request.get('/dragCaptcha'); + } + + /** + * 退出接口 + * + * @author fengshuonan + * @date 2021/4/1 14:45 + */ + static logout() { + return Request.get('/logoutAction'); + } + + /** + * 获取api基础路径 + * + * @author fengshuonan + * @date 2021/4/1 14:45 + */ + static getBackendDeployUrl(params) { + return Request.get('/sysConfig/getBackendDeployUrl', params); + } + + /** + * 获取图形验证码 + * + * @author fengshuonan + * @date 2021/4/1 14:45 + */ + static async getCaptcha(params) { + return await Request.get('/captcha', params); + } +} diff --git a/guns-front-project/src/views/login/login/api/SysTenantApi.js b/guns-front-project/src/views/login/login/api/SysTenantApi.js new file mode 100644 index 00000000..d0a8ac32 --- /dev/null +++ b/guns-front-project/src/views/login/login/api/SysTenantApi.js @@ -0,0 +1,69 @@ +import Request from '@/utils/request/request-util'; + +/** + * 租户表api + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ +export class SysTenantApi { + /** + * 新增 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static add(params) { + return Request.post('/sysTenant/register', params); + } + + /** + * 修改 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static edit(params) { + return Request.post('/sysTenant/edit', params); + } + + /** + * 删除 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static delete(params) { + return Request.post('/sysTenant/delete', params); + } + + /** + * 获取租户下拉列表 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static async dropDownList() { + return await Request.getAndLoadData('/tenant/tenantDropdown'); + } + + /** + * 发送邮箱验证码 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static async sendEmail(params) { + return await Request.post('/tenant/sendEmail', params); + } + + /** + * 提交租户注册信息 + * + * @author fengshuonan + * @date 2021/05/27 18:10 + */ + static async submitTenantReg(params) { + return await Request.post('/tenant/submitTenantReg', params); + } +} diff --git a/guns-front-project/src/views/login/login/index.vue b/guns-front-project/src/views/login/login/index.vue new file mode 100644 index 00000000..7c8f4d1f --- /dev/null +++ b/guns-front-project/src/views/login/login/index.vue @@ -0,0 +1,472 @@ + + + + + diff --git a/guns-front-project/src/views/login/sso.vue b/guns-front-project/src/views/login/sso.vue new file mode 100644 index 00000000..9412c217 --- /dev/null +++ b/guns-front-project/src/views/login/sso.vue @@ -0,0 +1,51 @@ + + + diff --git a/guns-front-project/src/views/login/token.vue b/guns-front-project/src/views/login/token.vue new file mode 100644 index 00000000..8253cc05 --- /dev/null +++ b/guns-front-project/src/views/login/token.vue @@ -0,0 +1,37 @@ + + + diff --git a/guns-front-project/src/views/system/auth/app/api/AppApi.js b/guns-front-project/src/views/system/auth/app/api/AppApi.js new file mode 100644 index 00000000..8521ca7f --- /dev/null +++ b/guns-front-project/src/views/system/auth/app/api/AppApi.js @@ -0,0 +1,74 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -应用api + * + */ +export class AppApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysApp/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysApp/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysApp/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysApp/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/sysApp/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysApp/detail', params); + } + /** + * 列表 + * @param {*} params + * @returns + */ + static list(params) { + return Request.getAndLoadData('/sysApp/list', params); + } + + /** + * 修改应用状态 + * @param {*} params + * @returns + */ + static updateStatus(params) { + return Request.post('/sysApp/updateStatus', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/system/auth/app/components/app-add-edit.vue b/guns-front-project/src/views/system/auth/app/components/app-add-edit.vue new file mode 100644 index 00000000..aa7ca2db --- /dev/null +++ b/guns-front-project/src/views/system/auth/app/components/app-add-edit.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/app/components/app-form.vue b/guns-front-project/src/views/system/auth/app/components/app-form.vue new file mode 100644 index 00000000..86614e41 --- /dev/null +++ b/guns-front-project/src/views/system/auth/app/components/app-form.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/app/index.vue b/guns-front-project/src/views/system/auth/app/index.vue new file mode 100644 index 00000000..6c5c8053 --- /dev/null +++ b/guns-front-project/src/views/system/auth/app/index.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/menu/api/MenuApi.js b/guns-front-project/src/views/system/auth/menu/api/MenuApi.js new file mode 100644 index 00000000..e0b90969 --- /dev/null +++ b/guns-front-project/src/views/system/auth/menu/api/MenuApi.js @@ -0,0 +1,116 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 - 菜单api + * + */ +export class MenuApi { + /** + * 添加菜单 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysMenu/add', params); + } + /** + * 编辑菜单 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysMenu/edit', params); + } + /** + * 删除菜单 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysMenu/delete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysMenu/detail', params); + } + /** + * 获取菜单管理界面的每个应用组下的菜单信息 + * @param {*} params + * @returns + */ + static getAppMenuGroupDetail(params) { + return Request.getAndLoadData('/sysMenu/getAppMenuGroupDetail', params); + } + /** + * 调整菜单上下级机构和菜单的顺序 + * @param {*} params + * @returns + */ + static updateMenuTree(params) { + return Request.post('/sysMenu/updateMenuTree', params); + } + + + /** 菜单下的功能接口 */ + + /** + * 添加菜单功能 + * @param {*} params + * @returns + */ + static optionAdd(params) { + return Request.post('/sysMenuOptions/add', params); + } + /** + * 编辑菜单功能 + * @param {*} params + * @returns + */ + static optionEdit(params) { + return Request.post('/sysMenuOptions/edit', params); + } + /** + * 删除菜单功能 + * @param {*} params + * @returns + */ + static optionDelete(params) { + return Request.post('/sysMenuOptions/delete', params); + } + /** + * 分页查询-菜单功能 + * @param {*} params + * @returns + */ + static optionPage(params) { + return Request.getAndLoadData('/sysMenuOptions/page', params); + } + /** + * 列表查询-菜单功能 + * @param {*} params + * @returns + */ + static optionList(params) { + return Request.getAndLoadData('/sysMenuOptions/list', params); + } + /** + * 获取拼音 + * @param {*} params + * @returns + */ + static getPinyin(params) { + return Request.getAndLoadData('/common/getPinyin', params); + } + /** + * 获取所有业务列表 + * @param {*} params + * @returns + */ + static getProjectBusinessList(params) { + return Request.getAndLoadData('/sysMenu/getProjectBusinessList', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/system/auth/menu/components/menu-add-edit.vue b/guns-front-project/src/views/system/auth/menu/components/menu-add-edit.vue new file mode 100644 index 00000000..6ea1a8c9 --- /dev/null +++ b/guns-front-project/src/views/system/auth/menu/components/menu-add-edit.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/menu/components/menu-form.vue b/guns-front-project/src/views/system/auth/menu/components/menu-form.vue new file mode 100644 index 00000000..0dce405c --- /dev/null +++ b/guns-front-project/src/views/system/auth/menu/components/menu-form.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/menu/components/use-stand.vue b/guns-front-project/src/views/system/auth/menu/components/use-stand.vue new file mode 100644 index 00000000..b3ee8ae6 --- /dev/null +++ b/guns-front-project/src/views/system/auth/menu/components/use-stand.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/menu/index.vue b/guns-front-project/src/views/system/auth/menu/index.vue new file mode 100644 index 00000000..f7337a1f --- /dev/null +++ b/guns-front-project/src/views/system/auth/menu/index.vue @@ -0,0 +1,656 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/permission/api/PermissionApi.js b/guns-front-project/src/views/system/auth/permission/api/PermissionApi.js new file mode 100644 index 00000000..65c909f6 --- /dev/null +++ b/guns-front-project/src/views/system/auth/permission/api/PermissionApi.js @@ -0,0 +1,70 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 - 权限api + * + */ +export class PermissionApi { + /** + * 获取角色绑定的权限列表 + * @param {*} params + * @returns + */ + static getRoleBindPermission(params) { + return Request.getAndLoadData('/permission/getRoleBindPermission', params); + } + + /** + * 获取所有角色列表 + * @param {*} params + * @returns + */ + static getRoleList(params) { + return Request.getAndLoadData('/permission/getRoleList', params); + } + + /** + * 更新角色绑定权限 + * @param {*} params + * @returns + */ + static updateRoleBindPermission(params) { + return Request.post('/permission/updateRoleBindPermission', params); + } + + /** + * 获取角色的数据权限详情 + * @param {*} params + * @returns + */ + static getRoleBindDataScope(params) { + return Request.getAndLoadData('/permission/getRoleBindDataScope', params); + } + + /** + * 角色绑定数据权限的配置 + * @param {*} params + * @returns + */ + static updateRoleBindDataScope(params) { + return Request.post('/permission/updateRoleBindDataScope', params); + } + + /** + * 获取角色的权限限制列表 + * @param {*} params + * @returns + */ + static getRoleLimit(params) { + return Request.getAndLoadData('/roleLimit/getRoleLimit', params); + } + + /** + * 绑定角色权限的限制列表 + * @param {*} params + * @returns + */ + static bindRoleLimit(params) { + return Request.post('/roleLimit/bindRoleLimit', params); + } +} diff --git a/guns-front-project/src/views/system/auth/permission/index.vue b/guns-front-project/src/views/system/auth/permission/index.vue new file mode 100644 index 00000000..9a1beddf --- /dev/null +++ b/guns-front-project/src/views/system/auth/permission/index.vue @@ -0,0 +1,851 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/resource/api/ResourceApi.js b/guns-front-project/src/views/system/auth/resource/api/ResourceApi.js new file mode 100644 index 00000000..c4121f87 --- /dev/null +++ b/guns-front-project/src/views/system/auth/resource/api/ResourceApi.js @@ -0,0 +1,16 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 - 资源api + * + */ +export class ResourceApi { + /** + * 获取资源列表 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/resource/pageList', params); + } +} diff --git a/guns-front-project/src/views/system/auth/resource/index.vue b/guns-front-project/src/views/system/auth/resource/index.vue new file mode 100644 index 00000000..dfe0a065 --- /dev/null +++ b/guns-front-project/src/views/system/auth/resource/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/role/api/RoleApi.js b/guns-front-project/src/views/system/auth/role/api/RoleApi.js new file mode 100644 index 00000000..d4e05fa0 --- /dev/null +++ b/guns-front-project/src/views/system/auth/role/api/RoleApi.js @@ -0,0 +1,57 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -角色api + * + */ +export class RoleApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysRole/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysRole/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysRole/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysRole/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/sysRole/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysRole/detail', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/system/auth/role/components/role-add-edit.vue b/guns-front-project/src/views/system/auth/role/components/role-add-edit.vue new file mode 100644 index 00000000..360d2123 --- /dev/null +++ b/guns-front-project/src/views/system/auth/role/components/role-add-edit.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/role/components/role-form.vue b/guns-front-project/src/views/system/auth/role/components/role-form.vue new file mode 100644 index 00000000..e0bb7a69 --- /dev/null +++ b/guns-front-project/src/views/system/auth/role/components/role-form.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/guns-front-project/src/views/system/auth/role/index.vue b/guns-front-project/src/views/system/auth/role/index.vue new file mode 100644 index 00000000..4e7b8bdb --- /dev/null +++ b/guns-front-project/src/views/system/auth/role/index.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/datasource/api/DataSourceApi.js b/guns-front-project/src/views/system/backend/datasource/api/DataSourceApi.js new file mode 100644 index 00000000..74be5f53 --- /dev/null +++ b/guns-front-project/src/views/system/backend/datasource/api/DataSourceApi.js @@ -0,0 +1,62 @@ +import Request from '@/utils/request/request-util'; + +/** + * 数据源操作api + * + * @author fengshuonan + * @date 2021/4/1 15:10 + */ +export class DataSourceApi { + /** + * 获取数据源信息列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/databaseInfo/page', params); + } + + /** + * 新增数据源 + * + * @param {string} params.dbName 数据源名称 + * @param {string} params.jdbcDriver jdbc驱动 + * @param {string} params.jdbcUrl jdbc url + * @param {string} params.password jdbc密码 + * @param {string} params.remark 备注 + * @param {string} params.username jdbc账号 + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static add(params) { + return Request.post('/databaseInfo/add', params); + } + + /** + * 编辑数据源 + * + * @param {string} params.dbName 数据源名称 + * @param {string} params.jdbcDriver jdbc驱动 + * @param {string} params.jdbcUrl jdbc url + * @param {string} params.password jdbc密码 + * @param {string} params.remark 备注 + * @param {string} params.username jdbc账号 + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static edit(params) { + return Request.post('/databaseInfo/edit', params); + } + + /** + * 删除数据源 + * + * @param {string} params.dbId 数据源id + * @author fengshuonan + * @date 2021/4/13 15:12 + */ + static delete(params) { + return Request.post('/databaseInfo/delete', params); + } +} diff --git a/guns-front-project/src/views/system/backend/datasource/components/datasource-add-edit.vue b/guns-front-project/src/views/system/backend/datasource/components/datasource-add-edit.vue new file mode 100644 index 00000000..944515fc --- /dev/null +++ b/guns-front-project/src/views/system/backend/datasource/components/datasource-add-edit.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/datasource/components/datasource-form.vue b/guns-front-project/src/views/system/backend/datasource/components/datasource-form.vue new file mode 100644 index 00000000..8fcf6c07 --- /dev/null +++ b/guns-front-project/src/views/system/backend/datasource/components/datasource-form.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/datasource/index.vue b/guns-front-project/src/views/system/backend/datasource/index.vue new file mode 100644 index 00000000..d25a107f --- /dev/null +++ b/guns-front-project/src/views/system/backend/datasource/index.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/api/SysDictApi.js b/guns-front-project/src/views/system/backend/dict/api/SysDictApi.js new file mode 100644 index 00000000..a4bc8830 --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/api/SysDictApi.js @@ -0,0 +1,72 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -字典api + * + */ +export class SysDictApi { + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/dict/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/dict/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/dict/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/dict/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/dict/detail', params); + } + /** + * 树形列表 + * @param {*} params + * @returns + */ + static tree(params) { + return Request.getAndLoadData('/dict/getDictTreeList', params); + } + /** + * 列表 + * @param {*} params + * @returns + */ + static list(params) { + return Request.getAndLoadData('/dict/list', params); + } + /** + * 更新整个字典树结构,用来更新上下级结构和顺序 + * @param {*} params + * @returns + */ + static updateDictTree(params) { + return Request.post('/dict/updateDictTree', params); + } +} diff --git a/guns-front-project/src/views/system/backend/dict/api/SysDictTypeApi.js b/guns-front-project/src/views/system/backend/dict/api/SysDictTypeApi.js new file mode 100644 index 00000000..3eefaf6d --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/api/SysDictTypeApi.js @@ -0,0 +1,48 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -字典类型api + * + */ +export class SysDictTypeApi { + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/dictType/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/dictType/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/dictType/delete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/dictType/detail', params); + } + /** + * 列表 + * @param {*} params + * @returns + */ + static list(params) { + return Request.getAndLoadData('/dictType/list', params); + } +} diff --git a/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-add-edit.vue b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-add-edit.vue new file mode 100644 index 00000000..ba6b0f26 --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-add-edit.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-form.vue b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-form.vue new file mode 100644 index 00000000..59f5a5cc --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type-form.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type.vue b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type.vue new file mode 100644 index 00000000..24bafe73 --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/dict-type/dict-type.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/components/dict/dict-add-edit.vue b/guns-front-project/src/views/system/backend/dict/components/dict/dict-add-edit.vue new file mode 100644 index 00000000..cf09f47c --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/dict/dict-add-edit.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/components/dict/dict-form.vue b/guns-front-project/src/views/system/backend/dict/components/dict/dict-form.vue new file mode 100644 index 00000000..42435307 --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/dict/dict-form.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/components/update-structure.vue b/guns-front-project/src/views/system/backend/dict/components/update-structure.vue new file mode 100644 index 00000000..5425c2f3 --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/components/update-structure.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/dict/index.vue b/guns-front-project/src/views/system/backend/dict/index.vue new file mode 100644 index 00000000..44ce0b6f --- /dev/null +++ b/guns-front-project/src/views/system/backend/dict/index.vue @@ -0,0 +1,295 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/file/api/FileApi.js b/guns-front-project/src/views/system/backend/file/api/FileApi.js new file mode 100644 index 00000000..bc01be2d --- /dev/null +++ b/guns-front-project/src/views/system/backend/file/api/FileApi.js @@ -0,0 +1,115 @@ +import Request from '@/utils/request/request-util'; +import { API_BASE_PREFIX } from '@/config/setting'; + +/** + * 文件上传的url + */ +export const FileUploadUrl = '/sysFileInfo/upload'; + +/** + * 文件相关api + * + * @author fengshuonan + * @date 2021/4/1 15:10 + */ +export class FileApi { + /** + * 获取文件列表,用在文件选择组件 + * + * @author fengshuonan + * @date 2022/5/8 20:36 + */ + static findSelectPageList(params) { + return Request.getAndLoadData('/sysFileInfo/fileInfoListPage', params); + } + + /** + * 获取文件列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/sysFileInfo/fileInfoListPage', params); + } + + /** + * 通用文件上传 + * + * 使用示例: + * let formData = new FormData(); + * formData.append('file', file); + * FileApi.commonUpload('Y', formData); + * + * @param {String} secretFlag 是否是机密文件,Y-是机密文件,N-非机密文件 + * @param {Object} formData FormData的实例对象,需要在formData中添加file属性 + * @author fengshuonan + * @date 2021/4/1 14:34 + */ + static commonUpload(secretFlag, formData) { + // 添加secretFlag属性 + formData.append('secretFlag', secretFlag); + return Request.post(FileUploadUrl, formData); + } + + /** + * 删除文件 + * + * @param {string} params.fileCode 文件编码 + * @author fengshuonan + * @date 2021/4/12 22:02 + */ + static delete(params) { + return Request.post('/sysFileInfo/deleteReally', params); + } + + /** + * 下载文件 + * + * @param {string} params.fileId 文件id + * @param {string} params.secretFlag 是否是私有文件 + * @param {string} params.token 用户的token + * @author fengshuonan + * @date 2021/4/12 22:08 + */ + static download(params) { + if (params.secretFlag === 'Y') { + window.location.href = `${API_BASE_PREFIX}/sysFileInfo/privateDownload?fileId=${params.fileId}&token=${params.token}`; + } else { + window.location.href = `${API_BASE_PREFIX}/sysFileInfo/publicDownload?fileId=${params.fileId}&token=${params.token}`; + } + } + + /** + * 文件详情 + * + * @param {string} params.fileId 文件id + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static detail(params) { + return Request.getAndLoadData('/sysFileInfo/detail', params); + } + + /** + * 获取antdv格式的文件详情 + * + * @param {string} params.fileId 文件id + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static getAntdVInfo(params) { + return Request.getAndLoadData('/sysFileInfo/getAntdVInfo', params); + } + + /** + * 获取antdv格式的文件详情列表 + * + * @param {string} params.fileId 文件id + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static getAntdVInfoBatch(params) { + return Request.post('/sysFileInfo/getAntdVInfoBatch', params); + } +} diff --git a/guns-front-project/src/views/system/backend/file/components/file-detail.vue b/guns-front-project/src/views/system/backend/file/components/file-detail.vue new file mode 100644 index 00000000..b5bb466a --- /dev/null +++ b/guns-front-project/src/views/system/backend/file/components/file-detail.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/file/index.vue b/guns-front-project/src/views/system/backend/file/index.vue new file mode 100644 index 00000000..37aec89c --- /dev/null +++ b/guns-front-project/src/views/system/backend/file/index.vue @@ -0,0 +1,365 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/business-log/components/detail.vue b/guns-front-project/src/views/system/backend/log/business-log/components/detail.vue new file mode 100644 index 00000000..66b6fbdc --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/business-log/components/detail.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/business-log/components/list.vue b/guns-front-project/src/views/system/backend/log/business-log/components/list.vue new file mode 100644 index 00000000..1240869d --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/business-log/components/list.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/business-log/index.vue b/guns-front-project/src/views/system/backend/log/business-log/index.vue new file mode 100644 index 00000000..c1197e6e --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/business-log/index.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/index.vue b/guns-front-project/src/views/system/backend/log/index.vue new file mode 100644 index 00000000..4d5a5b3a --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/index.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/login-log/api/LoginLogApi.js b/guns-front-project/src/views/system/backend/log/login-log/api/LoginLogApi.js new file mode 100644 index 00000000..8d7b20fb --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/login-log/api/LoginLogApi.js @@ -0,0 +1,29 @@ +import Request from '@/utils/request/request-util'; + +/** + * 登录日志相关api + * + * @author fengshuonan + * @date 2021/4/1 15:10 + */ +export class LoginLogApi { + /** + * 清空全部登录日志 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static deleteAll() { + return Request.get('/loginLog/deleteAll'); + } + + /** + * 获取登录日志列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/loginLog/page', params); + } +} diff --git a/guns-front-project/src/views/system/backend/log/login-log/index.vue b/guns-front-project/src/views/system/backend/log/login-log/index.vue new file mode 100644 index 00000000..0200d2e8 --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/login-log/index.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/operate-log/api/OperateLogApi.js b/guns-front-project/src/views/system/backend/log/operate-log/api/OperateLogApi.js new file mode 100644 index 00000000..a12c7c06 --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/operate-log/api/OperateLogApi.js @@ -0,0 +1,43 @@ +import Request from '@/utils/request/request-util'; + +/** + * 操作日志相关的api + * + * @author fengshuonan + * @date 2021/4/1 15:10 + */ +export class OperateLogApi { + /** + * 获取操作日志列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/logManager/page', params); + } + + /** + * 批量删除日志 + * + * @param {string} params.beginDate 开始日期 + * @param {string} params.endDate 结束日期 + * @param {string} params.appName 服务名称 + * @author fengshuonan + * @date 2021/4/12 22:02 + */ + static delete(params) { + return Request.post('/logManager/delete', params); + } + + /** + * 查看日志详情 + * + * @param {string} params.logId 日志id + * @author fengshuonan + * @date 2021/4/13 10:37 + */ + static detail(params) { + return Request.getAndLoadData('/logManager/detail', params); + } +} diff --git a/guns-front-project/src/views/system/backend/log/operate-log/components/operate-log-detail.vue b/guns-front-project/src/views/system/backend/log/operate-log/components/operate-log-detail.vue new file mode 100644 index 00000000..aa8ccad7 --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/operate-log/components/operate-log-detail.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/log/operate-log/index.vue b/guns-front-project/src/views/system/backend/log/operate-log/index.vue new file mode 100644 index 00000000..9f2df14c --- /dev/null +++ b/guns-front-project/src/views/system/backend/log/operate-log/index.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/monitor/api/MonitorApi.js b/guns-front-project/src/views/system/backend/monitor/api/MonitorApi.js new file mode 100644 index 00000000..471dac6d --- /dev/null +++ b/guns-front-project/src/views/system/backend/monitor/api/MonitorApi.js @@ -0,0 +1,19 @@ +import Request from '@/utils/request/request-util'; + +/** + * 监控数据的api + * + * @author fengshuonan + * @date 2021/4/15 11:41 + */ +export class MonitorApi { + /** + * 获取监控数据 + * + * @author fengshuonan + * @date 2021/4/15 11:43 + */ + static getSystemInfo(params) { + return Request.getAndLoadData('/getSystemInfo', params); + } +} diff --git a/guns-front-project/src/views/system/backend/monitor/index.vue b/guns-front-project/src/views/system/backend/monitor/index.vue new file mode 100644 index 00000000..5688222a --- /dev/null +++ b/guns-front-project/src/views/system/backend/monitor/index.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/monitor/server.vue b/guns-front-project/src/views/system/backend/monitor/server.vue new file mode 100644 index 00000000..bf68d892 --- /dev/null +++ b/guns-front-project/src/views/system/backend/monitor/server.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/notice/api/NoticeApi.js b/guns-front-project/src/views/system/backend/notice/api/NoticeApi.js new file mode 100644 index 00000000..7988d6a6 --- /dev/null +++ b/guns-front-project/src/views/system/backend/notice/api/NoticeApi.js @@ -0,0 +1,83 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -通知公告api + * + */ +export class NoticeApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysNotice/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysNotice/add', params); + } + + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysNotice/detail', params); + } + + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysNotice/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysNotice/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/sysNotice/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysNotice/detail', params); + } + /** + * 撤回通知 + * @param {*} params + * @returns + */ + static retractNotice(params) { + return Request.post('/sysNotice/retractNotice', params); + } + /** + * 发送通知 + * @param {*} params + * @returns + */ + static publishNotice(params) { + return Request.post('/sysNotice/publishNotice', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/system/backend/notice/components/notice-add-edit.vue b/guns-front-project/src/views/system/backend/notice/components/notice-add-edit.vue new file mode 100644 index 00000000..36526695 --- /dev/null +++ b/guns-front-project/src/views/system/backend/notice/components/notice-add-edit.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/notice/components/notice-form.vue b/guns-front-project/src/views/system/backend/notice/components/notice-form.vue new file mode 100644 index 00000000..ca8677a3 --- /dev/null +++ b/guns-front-project/src/views/system/backend/notice/components/notice-form.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/notice/index.vue b/guns-front-project/src/views/system/backend/notice/index.vue new file mode 100644 index 00000000..845730de --- /dev/null +++ b/guns-front-project/src/views/system/backend/notice/index.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/online/api/OnlineApi.js b/guns-front-project/src/views/system/backend/online/api/OnlineApi.js new file mode 100644 index 00000000..d49fbdb8 --- /dev/null +++ b/guns-front-project/src/views/system/backend/online/api/OnlineApi.js @@ -0,0 +1,25 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -在线用户api + * + */ +export class OnlineApi { + /** + * 列表 + * @param {*} params + * @returns + */ + static getOnlineUserList(params) { + return Request.getAndLoadData('/getOnlineUserList', params); + } + + /** + * 踢下线 + * @param {*} params + * @returns + */ + static offlineUser(params) { + return Request.post('/offlineUser', params); + } +} diff --git a/guns-front-project/src/views/system/backend/online/index.vue b/guns-front-project/src/views/system/backend/online/index.vue new file mode 100644 index 00000000..f14187d0 --- /dev/null +++ b/guns-front-project/src/views/system/backend/online/index.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/security/api/SecurityApi.js b/guns-front-project/src/views/system/backend/security/api/SecurityApi.js new file mode 100644 index 00000000..191d3391 --- /dev/null +++ b/guns-front-project/src/views/system/backend/security/api/SecurityApi.js @@ -0,0 +1,25 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -安全策略api + * + */ +export class SecurityApi { + /** + * 获取安全策略配置 + * @param {*} params + * @returns + */ + static getOnlineUserList(params) { + return Request.getAndLoadData('/security/getSecurityStrategy', params); + } + + /** + * 更新安全策略配置 + * @param {*} params + * @returns + */ + static offlineUser(params) { + return Request.post('/security/updateSecurityStrategy', params); + } +} diff --git a/guns-front-project/src/views/system/backend/security/index.vue b/guns-front-project/src/views/system/backend/security/index.vue new file mode 100644 index 00000000..f1c5853e --- /dev/null +++ b/guns-front-project/src/views/system/backend/security/index.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/api/SysConfigApi.js b/guns-front-project/src/views/system/backend/sys-config/api/SysConfigApi.js new file mode 100644 index 00000000..7fccc244 --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/api/SysConfigApi.js @@ -0,0 +1,97 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -配置管理api + * + */ +export class SysConfigApi { + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysConfig/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysConfig/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysConfig/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/sysConfig/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysConfig/detail', params); + } + /** + * 分页列表 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysConfig/page', params); + } + + /** + * 获取系统配置是否已经初始化 + * + * @return {boolean} true-已经初始化,false-未初始化 + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static async getInitConfigFlag() { + return await Request.getAndLoadData('/sysConfig/getInitConfigFlag'); + } + + /** + * 获取需要初始化的配置列表 + * + * @author fengshuonan + * @date 2021/4/9 13:24 + */ + static async getInitConfigList() { + return await Request.getAndLoadData('/sysConfig/getInitConfigList'); + } + + /** + * 初始化系统配置参数 + * + * @author fengshuonan + * @date 2021/7/9 11:04 + */ + static async initConfig(params) { + return await Request.post('/sysConfig/initConfig', params); + } + + /** + * 更新当前应用 + * + * @author fengshuonan + * @date 2021/7/9 11:04 + */ + static async updateUserOrgOrApp(params) { + return await Request.post('/updateUserOrgOrApp', params); + } +} diff --git a/guns-front-project/src/views/system/backend/sys-config/api/SysConfigTypeApi.js b/guns-front-project/src/views/system/backend/sys-config/api/SysConfigTypeApi.js new file mode 100644 index 00000000..877b30ce --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/api/SysConfigTypeApi.js @@ -0,0 +1,48 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -配置类型api + * + */ +export class SysConfigTypeApi { + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysConfigType/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysConfigType/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysConfigType/delete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysConfigType/detail', params); + } + /** + * 列表 + * @param {*} params + * @returns + */ + static list(params) { + return Request.getAndLoadData('/sysConfigType/list', params); + } +} diff --git a/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-add-edit.vue b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-add-edit.vue new file mode 100644 index 00000000..e9e12c96 --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-add-edit.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-form.vue b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-form.vue new file mode 100644 index 00000000..2b9bc7cc --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type-form.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type.vue b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type.vue new file mode 100644 index 00000000..936b3ce1 --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/components/config-type/config-type.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/components/config/config-add-edit.vue b/guns-front-project/src/views/system/backend/sys-config/components/config/config-add-edit.vue new file mode 100644 index 00000000..dbc5acad --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/components/config/config-add-edit.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/components/config/config-form.vue b/guns-front-project/src/views/system/backend/sys-config/components/config/config-form.vue new file mode 100644 index 00000000..32abb160 --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/components/config/config-form.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/sys-config/index.vue b/guns-front-project/src/views/system/backend/sys-config/index.vue new file mode 100644 index 00000000..ea2eea7b --- /dev/null +++ b/guns-front-project/src/views/system/backend/sys-config/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/attr/api/ThemeTemplateFieldApi.js b/guns-front-project/src/views/system/backend/theme/attr/api/ThemeTemplateFieldApi.js new file mode 100644 index 00000000..a7029513 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/attr/api/ThemeTemplateFieldApi.js @@ -0,0 +1,89 @@ +import Request from '@/utils/request/request-util'; + +/** + * 主题模板属性api + * + * @author fengshuonan + * @date 2021/12/20 11:19:37 + */ +export class ThemeTemplateFieldApi { + /** + * 获取字段列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/sysThemeTemplateField/findPage', params); + } + + /** + * 增加主题模板属性 + * + * @author fengshuonan + * @date 2021/12/20 11:21:42 + */ + static add(params) { + return Request.post('/sysThemeTemplateField/add', params); + } + + /** + * 删除主题模板属性 + * + * @author fengshuonan + * @date 2021/12/20 11:22:55 + */ + static del(params) { + return Request.post('/sysThemeTemplateField/del', params); + } + + /** + * 编辑主题模板属性 + * + * @author fengshuonan + * @date 2021/12/20 11:24:57 + */ + static edit(params) { + return Request.post('/sysThemeTemplateField/edit', params); + } + + /** + * 查看主题模板属性详情 + * + * @author fengshuonan + * @date 2021/12/20 11:33:37 + */ + static detail(params) { + return Request.getAndLoadData('/sysThemeTemplateField/detail', params); + } + + /** + * 查询系统主题模板属性列表 + * + * @author fengshuonan + * @date 2021/12/27 10:13:22 + */ + static findPage(params) { + return Request.getAndLoadData('/sysThemeTemplateField/findPage', params); + } + + /** + * 查询系统主题模板属性已有关系列表 + * + * @author fengshuonan + * @date 2021/12/27 10:14:18 + */ + static findRelList(params) { + return Request.getAndLoadData('/sysThemeTemplateField/findRelList', params); + } + + /** + * 查询系统主题模板属性未有关系列表 + * + * @author fengshuonan + * @date 2021/12/27 10:15:16 + */ + static findNotRelList(params) { + return Request.getAndLoadData('/sysThemeTemplateField/findNotRelList', params); + } +} diff --git a/guns-front-project/src/views/system/backend/theme/attr/components/attr-add-edit.vue b/guns-front-project/src/views/system/backend/theme/attr/components/attr-add-edit.vue new file mode 100644 index 00000000..a472cf31 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/attr/components/attr-add-edit.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/attr/components/attr-form.vue b/guns-front-project/src/views/system/backend/theme/attr/components/attr-form.vue new file mode 100644 index 00000000..fae2fa29 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/attr/components/attr-form.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/attr/index.vue b/guns-front-project/src/views/system/backend/theme/attr/index.vue new file mode 100644 index 00000000..f314bc4b --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/attr/index.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/index.vue b/guns-front-project/src/views/system/backend/theme/index.vue new file mode 100644 index 00000000..f0408ddd --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/index.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/manager/api/ThemeApi.js b/guns-front-project/src/views/system/backend/theme/manager/api/ThemeApi.js new file mode 100644 index 00000000..070e0206 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/manager/api/ThemeApi.js @@ -0,0 +1,89 @@ +import Request from '@/utils/request/request-util'; + +/** + * 主题api + * + * @author fengshuonan + * @date 2021/12/20 13:42:14 + */ +export class ThemeApi { + /** + * 获取主题列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/sysTheme/findPage', params); + } + + /** + * 添加主题 + * + * @author fengshuonan + * @date 2021/12/20 13:44:51 + */ + static add(params) { + return Request.post('/sysTheme/add', params); + } + + /** + * 删除主题 + * + * @author fengshuonan + * @date 2021/12/20 13:46:32 + */ + static del(params) { + return Request.post('/sysTheme/del', params); + } + + /** + * 修改主题 + * + * @author fengshuonan + * @date 2021/12/20 13:47:43 + */ + static edit(params) { + return Request.post('/sysTheme/edit', params); + } + + /** + * 查询主题 + * + * @author fengshuonan + * @date 2021/12/20 13:49:15 + */ + static findPage(params) { + return Request.getAndLoadData('/sysTheme/findPage', params); + } + + /** + * 查询主题详情 + * + * @author fengshuonan + * @date 2021/12/20 13:50:38 + */ + static detail(params) { + return Request.getAndLoadData('/sysTheme/detail', params); + } + + /** + * 修改主题启用状态 + * + * @author fengshuonan + * @date 2021/12/20 13:51:25 + */ + static updateThemeStatus(params) { + return Request.post('/sysTheme/updateStatus', params); + } + + /** + * 获取当前主题 + * + * @author fengshuonan + * @date 2022/1/12 11:52 + */ + static getCurrentThemeInfo(params) { + return Request.getAndLoadData('/theme/currentThemeInfo', params); + } +} diff --git a/guns-front-project/src/views/system/backend/theme/manager/components/manager-add-edit.vue b/guns-front-project/src/views/system/backend/theme/manager/components/manager-add-edit.vue new file mode 100644 index 00000000..845fd9fe --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/manager/components/manager-add-edit.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/manager/components/manager-form.vue b/guns-front-project/src/views/system/backend/theme/manager/components/manager-form.vue new file mode 100644 index 00000000..2bd052a0 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/manager/components/manager-form.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/manager/index.vue b/guns-front-project/src/views/system/backend/theme/manager/index.vue new file mode 100644 index 00000000..96f1335d --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/manager/index.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateApi.js b/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateApi.js new file mode 100644 index 00000000..3c7477cc --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateApi.js @@ -0,0 +1,89 @@ +import Request from '@/utils/request/request-util'; + +/** + * 主题模板api + * + * @author fengshuonan + * @date 2021/12/20 11:36:02 + */ +export class ThemeTemplateApi { + /** + * 获取操作日志列表 + * + * @author fengshuonan + * @date 2021/4/1 16:07 + */ + static findPage(params) { + return Request.getAndLoadData('/sysThemeTemplate/findPage', params); + } + + /** + * 增加主题模板 + * + * @author fengshuonan + * @date 2021/12/20 11:38:37 + */ + static add(params) { + return Request.post('/sysThemeTemplate/add', params); + } + + /** + * 编辑主题模板 + * + * @author fengshuonan + * @date 2021/12/20 11:38:53 + */ + static edit(params) { + return Request.post('/sysThemeTemplate/edit', params); + } + + /** + * 删除主题模板 + * + * @author fengshuonan + * @date 2021/12/20 11:40:30 + */ + static del(params) { + return Request.post('/sysThemeTemplate/del', params); + } + + /** + * 查询主题模板 + * + * @author fengshuonan + * @date 2021/12/20 11:45:45 + */ + static findPage(params) { + return Request.getAndLoadData('/sysThemeTemplate/findPage', params); + } + + /** + * 查询主题模板列表 + * + * @author fengshuonan + * @date 2021/12/29 09:15:48 + */ + static findList(params) { + return Request.getAndLoadData('/sysThemeTemplate/findList', params); + } + + /** + * 修改主题模板状态 + * + * @author fengshuonan + * @date 2021/12/20 11:49:24 + */ + static updateTemplateStatus(params) { + return Request.post('/sysThemeTemplate/updateStatus', params); + } + + /** + * 查询主题模板详情 + * + * @author fengshuonan + * @date 2021/12/20 11:53:17 + */ + static detail(params) { + return Request.getAndLoadData('/sysThemeTemplate/detail', params); + } +} diff --git a/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateRelApi.js b/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateRelApi.js new file mode 100644 index 00000000..88cd6d30 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/api/ThemeTemplateRelApi.js @@ -0,0 +1,29 @@ +import Request from "@/utils/request/request-util"; + +/** + * 主题模板属性关系api + * + * @author fengshuonan + * @date 2021/12/27 10:18:08 + */ +export class ThemeTemplateRelApi { + /** + * 增加系统主题属性关系 + * + * @author fengshuonan + * @date 2021/12/27 10:19:44 + */ + static add(params) { + return Request.post("/sysThemeTemplateRel/add", params); + } + + /** + * 删除系统主题属性关系 + * + * @author fengshuonan + * @date 2021/12/27 10:20:54 + */ + static del(params) { + return Request.post("/sysThemeTemplateRel/del", params); + } +} diff --git a/guns-front-project/src/views/system/backend/theme/template/components/config-data.vue b/guns-front-project/src/views/system/backend/theme/template/components/config-data.vue new file mode 100644 index 00000000..fe172b64 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/components/config-data.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/components/tamplate-detail.vue b/guns-front-project/src/views/system/backend/theme/template/components/tamplate-detail.vue new file mode 100644 index 00000000..ac6b9d90 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/components/tamplate-detail.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/components/template-add-edit.vue b/guns-front-project/src/views/system/backend/theme/template/components/template-add-edit.vue new file mode 100644 index 00000000..c702f317 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/components/template-add-edit.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/components/template-config.vue b/guns-front-project/src/views/system/backend/theme/template/components/template-config.vue new file mode 100644 index 00000000..fe245207 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/components/template-config.vue @@ -0,0 +1,44 @@ + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/components/template-form.vue b/guns-front-project/src/views/system/backend/theme/template/components/template-form.vue new file mode 100644 index 00000000..a5cee015 --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/components/template-form.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/theme/template/index.vue b/guns-front-project/src/views/system/backend/theme/template/index.vue new file mode 100644 index 00000000..fb92d6fe --- /dev/null +++ b/guns-front-project/src/views/system/backend/theme/template/index.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/timer/api/SysTimerApi.js b/guns-front-project/src/views/system/backend/timer/api/SysTimerApi.js new file mode 100644 index 00000000..969c43c0 --- /dev/null +++ b/guns-front-project/src/views/system/backend/timer/api/SysTimerApi.js @@ -0,0 +1,89 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 - 定时任务api + * + * @author luojie + * @date 2021/4/13 09:52 + */ +export class SysTimerApi { + /** + * 获取定时任务列表 + * + * @author fengshuonan + * @date 2021/4/12 22:25 + */ + static findTimerPage(params) { + return Request.getAndLoadData('/sysTimers/page', params); + } + + /** + * 新增 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static add(params) { + return Request.post('/sysTimers/add', params); + } + + /** + * 查看定时任务详情 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static detail(params) { + return Request.post('/sysTimers/detail', params); + } + + /** + * 编辑 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static edit(params) { + return Request.post('/sysTimers/edit', params); + } + + /** + * 停止任务 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static stop(params) { + return Request.post('/sysTimers/stop', params); + } + + /** + * 启动任务 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static start(params) { + return Request.post('/sysTimers/start', params); + } + + /** + * 删除单个任务 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static delete(params) { + return Request.post('/sysTimers/delete', params); + } + + /** + * 获取定时任务执行类列表 + * + * @author luojie + * @date 2021/4/13 09:52 + */ + static getActionClasses() { + return Request.postAndLoadData('/sysTimers/getActionClasses'); + } +} diff --git a/guns-front-project/src/views/system/backend/timer/components/timer-add-edit.vue b/guns-front-project/src/views/system/backend/timer/components/timer-add-edit.vue new file mode 100644 index 00000000..7da0d91c --- /dev/null +++ b/guns-front-project/src/views/system/backend/timer/components/timer-add-edit.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/timer/components/timer-form.vue b/guns-front-project/src/views/system/backend/timer/components/timer-form.vue new file mode 100644 index 00000000..a31fc861 --- /dev/null +++ b/guns-front-project/src/views/system/backend/timer/components/timer-form.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/guns-front-project/src/views/system/backend/timer/index.vue b/guns-front-project/src/views/system/backend/timer/index.vue new file mode 100644 index 00000000..862f86a7 --- /dev/null +++ b/guns-front-project/src/views/system/backend/timer/index.vue @@ -0,0 +1,258 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/empower/api/EmpowerApi.js b/guns-front-project/src/views/system/structure/empower/api/EmpowerApi.js new file mode 100644 index 00000000..f9187a89 --- /dev/null +++ b/guns-front-project/src/views/system/structure/empower/api/EmpowerApi.js @@ -0,0 +1,79 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -授权api + * + */ +export class EmpowerApi { + /** + * 获取用户的角色授权信息列表 + * @param {*} params + * @returns + */ + static getUserAssignList(params) { + return Request.get('/sysRoleAssign/getUserAssignList', params); + } + + /** + * 绑定或取消绑定角色 + * @param {*} params + * @returns + */ + static changeRoleSelect(params) { + return Request.post('/sysRoleAssign/changeRoleSelect', params); + } + + /** + * 修改用户针对某个公司的是否启用状态 + * @param {*} params + * @returns + */ + static changeStatus(params) { + return Request.post('/sysRoleAssign/changeStatus', params); + } + + /** + * 删除用户机构的绑定 + * @param {*} params + * @returns + */ + static removeUserOrgBind(params) { + return Request.post('/sysRoleAssign/removeUserOrgBind', params); + } + + /** + * 添加用户机构的绑定 + * @param {*} params + * @returns + */ + static addUserOrgBind(params) { + return Request.post('/sysRoleAssign/addUserOrgBind', params); + } + + /** + * 删除全部机构绑定 + * @param {*} params + * @returns + */ + static deleteAllOrgBind(params) { + return Request.post('/sysRoleAssign/deleteAllOrgBind', params); + } + + /** + * 禁用全部组织机构 + * @param {*} params + * @returns + */ + static disableAllOrg(params) { + return Request.post('/sysRoleAssign/disableAllOrg', params); + } + + /** + * 同步到其他公司绑定信息 + * @param {*} params + * @returns + */ + static syncOtherOrgStatusAndBusinessRole(params) { + return Request.post('/sysRoleAssign/syncOtherOrgStatusAndBusinessRole', params); + } +} diff --git a/guns-front-project/src/views/system/structure/empower/components/add-org.vue b/guns-front-project/src/views/system/structure/empower/components/add-org.vue new file mode 100644 index 00000000..0fc3d2d1 --- /dev/null +++ b/guns-front-project/src/views/system/structure/empower/components/add-org.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/empower/index.vue b/guns-front-project/src/views/system/structure/empower/index.vue new file mode 100644 index 00000000..40dcebc7 --- /dev/null +++ b/guns-front-project/src/views/system/structure/empower/index.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/api/ApproverUserApi.js b/guns-front-project/src/views/system/structure/organization/api/ApproverUserApi.js new file mode 100644 index 00000000..15746325 --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/api/ApproverUserApi.js @@ -0,0 +1,40 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -审批人api + * + */ +export class ApproverUserApi { + /** + * 更新组织机构绑定审批人 + * @param {*} params + * @returns + */ + static bindUserList(params) { + return Request.post('/hrOrgApprover/bindUserList', params); + } + /** + * 删除审批人的绑定 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/hrOrgApprover/delete', params); + } + /** + * 获取组织机构审批人类型列表 + * @param {*} params + * @returns + */ + static getApproverTypeList(params) { + return Request.getAndLoadData('/hrOrgApprover/getApproverTypeList', params); + } + /** + * 获取组织机构审批人绑定列表 + * @param {*} params + * @returns + */ + static getBindingList(params) { + return Request.get('/hrOrgApprover/getBindingList', params); + } +} diff --git a/guns-front-project/src/views/system/structure/organization/api/OrgApi.js b/guns-front-project/src/views/system/structure/organization/api/OrgApi.js new file mode 100644 index 00000000..729dbc0f --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/api/OrgApi.js @@ -0,0 +1,101 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -组织机构api + * + */ +export class OrgApi { + /** + * 组织机构树 + * @param {*} params + * @returns + */ + static tree(params) { + return Request.post('/common/org/tree', params); + } + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/hrOrganization/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/hrOrganization/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/hrOrganization/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/hrOrganization/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/hrOrganization/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/hrOrganization/detail', params); + } + + /** + * 组织机构导出业务 + * @param {*} params + * @returns + */ + static exportOrg(params) { + return Request.downLoad('/api/org/exportOrg', params); + } + + /** + * 获取机构的导入模板 + * @param {*} params + * @returns + */ + static getExcelTemplate(params) { + return Request.downLoad('/api/orgImport/getExcelTemplate', params); + } + + /** + * 导入组织机构并获取预览数据 + * @param {*} params + * @returns + */ + static uploadAndGetPreviewData(params) { + return Request.post('/orgImport/uploadAndGetPreviewData', params); + } + + /** + * 确认导入组织机构 + * @param {*} params + * @returns + */ + static ensureImport(params) { + return Request.post('/orgImport/ensureImport', params); + } +} diff --git a/guns-front-project/src/views/system/structure/organization/components/import-export-org.vue b/guns-front-project/src/views/system/structure/organization/components/import-export-org.vue new file mode 100644 index 00000000..980aca2f --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/components/import-export-org.vue @@ -0,0 +1,480 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/components/org-add-edit.vue b/guns-front-project/src/views/system/structure/organization/components/org-add-edit.vue new file mode 100644 index 00000000..c18b084e --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/components/org-add-edit.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/components/org-detail.vue b/guns-front-project/src/views/system/structure/organization/components/org-detail.vue new file mode 100644 index 00000000..babf295e --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/components/org-detail.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/components/org-form.vue b/guns-front-project/src/views/system/structure/organization/components/org-form.vue new file mode 100644 index 00000000..825bfbec --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/components/org-form.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/components/set-approver.vue b/guns-front-project/src/views/system/structure/organization/components/set-approver.vue new file mode 100644 index 00000000..c47bc927 --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/components/set-approver.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/organization/index.vue b/guns-front-project/src/views/system/structure/organization/index.vue new file mode 100644 index 00000000..e28655da --- /dev/null +++ b/guns-front-project/src/views/system/structure/organization/index.vue @@ -0,0 +1,410 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/position/api/PositionApi.js b/guns-front-project/src/views/system/structure/position/api/PositionApi.js new file mode 100644 index 00000000..8d28dba0 --- /dev/null +++ b/guns-front-project/src/views/system/structure/position/api/PositionApi.js @@ -0,0 +1,57 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -职位api + * + */ +export class PositionApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/hrPosition/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/hrPosition/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/hrPosition/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/hrPosition/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/hrPosition/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/hrPosition/detail', params); + } +} \ No newline at end of file diff --git a/guns-front-project/src/views/system/structure/position/components/position-add-edit.vue b/guns-front-project/src/views/system/structure/position/components/position-add-edit.vue new file mode 100644 index 00000000..1f4191ba --- /dev/null +++ b/guns-front-project/src/views/system/structure/position/components/position-add-edit.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/position/components/position-form.vue b/guns-front-project/src/views/system/structure/position/components/position-form.vue new file mode 100644 index 00000000..8f585ef6 --- /dev/null +++ b/guns-front-project/src/views/system/structure/position/components/position-form.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/position/index.vue b/guns-front-project/src/views/system/structure/position/index.vue new file mode 100644 index 00000000..ce406472 --- /dev/null +++ b/guns-front-project/src/views/system/structure/position/index.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/api/UsersApi.js b/guns-front-project/src/views/system/structure/user/api/UsersApi.js new file mode 100644 index 00000000..a6590672 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/api/UsersApi.js @@ -0,0 +1,136 @@ +import Request from '@/utils/request/request-util'; + +/** + * 后台管理 -人员api + * + */ +export class UsersApi { + /** + * 分页 + * @param {*} params + * @returns + */ + static findPage(params) { + return Request.getAndLoadData('/sysUser/page', params); + } + + /** + * 添加 + * @param {*} params + * @returns + */ + static add(params) { + return Request.post('/sysUser/add', params); + } + /** + * 编辑 + * @param {*} params + * @returns + */ + static edit(params) { + return Request.post('/sysUser/edit', params); + } + /** + * 删除单个 + * @param {*} params + * @returns + */ + static delete(params) { + return Request.post('/sysUser/delete', params); + } + /** + * 删除批量 + * @param {*} params + * @returns + */ + static batchDelete(params) { + return Request.post('/sysUser/batchDelete', params); + } + /** + * 详情 + * @param {*} params + * @returns + */ + static detail(params) { + return Request.getAndLoadData('/sysUser/detail', params); + } + /** + * 列表 + * @param {*} params + * @returns + */ + static list(params) { + return Request.getAndLoadData('/sysUser/list', params); + } + /** + * 重置密码 + * @param {*} params + * @returns + */ + static resetPassword(params) { + return Request.post('/sysUser/resetPassword', params); + } + + /** + * 修改用户状态 + * @param {*} params + * @returns + */ + static updateStatus(params) { + return Request.post('/sysUser/updateStatus', params); + } + + /** + * 绑定用户角色 + * @param {*} params + * @returns + */ + static bindRoles(params) { + return Request.post('/sysUser/bindRoles', params); + } + + /** + * 角色列表 + * @param {*} params + * @returns + */ + static roleList(params) { + return Request.getAndLoadData('/sysRole/list', params); + } + + /** + * 用户导出业务 + * @param {*} params + * @returns + */ + static ExportUser(params) { + return Request.downLoad('/api/user/ExportUser', params); + } + + /** + * 下载导入的Excel模板 + * @param {*} params + * @returns + */ + static getExcelTemplate(params) { + return Request.downLoad('/api/userImport/getExcelTemplate', params); + } + + /** + * 上传excel获取导入预览数据 + * @param {*} params + * @returns + */ + static uploadAndGetPreviewData(params) { + return Request.post('/userImport/uploadAndGetPreviewData', params); + } + + /** + * 确认导入Excel数据 + * @param {*} params + * @returns + */ + static ensureImport(params) { + return Request.post('/userImport/ensureImport', params); + } +} diff --git a/guns-front-project/src/views/system/structure/user/components/allocation-role.vue b/guns-front-project/src/views/system/structure/user/components/allocation-role.vue new file mode 100644 index 00000000..d493edc7 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/components/allocation-role.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/components/import-export-user.vue b/guns-front-project/src/views/system/structure/user/components/import-export-user.vue new file mode 100644 index 00000000..c375156f --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/components/import-export-user.vue @@ -0,0 +1,570 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/components/user-add-edit.vue b/guns-front-project/src/views/system/structure/user/components/user-add-edit.vue new file mode 100644 index 00000000..861a2ebb --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/components/user-add-edit.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/components/user-detail.vue b/guns-front-project/src/views/system/structure/user/components/user-detail.vue new file mode 100644 index 00000000..1c5c6603 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/components/user-detail.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/components/user-form.vue b/guns-front-project/src/views/system/structure/user/components/user-form.vue new file mode 100644 index 00000000..66a687e4 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/components/user-form.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/index.vue b/guns-front-project/src/views/system/structure/user/index.vue new file mode 100644 index 00000000..56d38f19 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/index.vue @@ -0,0 +1,443 @@ + + + + + diff --git a/guns-front-project/src/views/system/structure/user/org-tree.vue b/guns-front-project/src/views/system/structure/user/org-tree.vue new file mode 100644 index 00000000..e1289b89 --- /dev/null +++ b/guns-front-project/src/views/system/structure/user/org-tree.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/guns-front-project/vite.config.js b/guns-front-project/vite.config.js new file mode 100644 index 00000000..c2b9aa17 --- /dev/null +++ b/guns-front-project/vite.config.js @@ -0,0 +1,99 @@ +import { fileURLToPath, URL } from 'node:url'; +import { defineConfig, loadEnv } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import vueJsx from '@vitejs/plugin-vue-jsx'; +import legacy from '@vitejs/plugin-legacy'; +import ViteCompression from 'vite-plugin-compression'; +import ViteComponents from 'unplugin-vue-components/vite'; +import { VxeTableResolve } from 'vite-plugin-style-import'; +import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; +import { DynamicAntdLess } from './src/utils/dynamic-theme'; +import { styleDeps } from './src/utils/resolvers'; + +export default defineConfig(({ mode, command }) => { + const isBuild = command === 'build'; + const env = loadEnv(mode, process.cwd()); + // 在这里增加 base 写子路径,注意这里前后都要有斜杠 + return { + base: '/', + server: { + host: '0.0.0.0', + port: 9000, + proxy: { + '/api': { + target: env.VITE_API_URL, + changeOrigin: true, + ws: true, + rewrite: path => path.replace(/^\/api/, '') + } + } + }, + plugins: [ + vue(), + vueJsx(), + // 组件按需引入 + ViteComponents({ + dts: false, + resolvers: [ + AntDesignVueResolver({ + importStyle: 'less' + }), + VxeTableResolve({ + importStyle: true + }) + ] + }), + // gzip 压缩 + ViteCompression({ + disable: !isBuild, + threshold: 10240, + algorithm: 'gzip', + ext: '.gz' + }), + // 兼容低版本浏览器 + legacy({ + targets: ['Chrome 63'], + modernPolyfills: true + }) + ], + css: { + preprocessorOptions: { + less: { + javascriptEnabled: true, + plugins: [new DynamicAntdLess()] + } + } + }, + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js' + } + }, + optimizeDeps: { + include: [ + ...styleDeps, + 'lodash-es', + 'cropperjs', + 'tinymce/tinymce', + 'ant-design-vue', + 'ant-design-vue/es', + '@ant-design/icons-vue', + 'vuedraggable', + 'dayjs', + 'echarts/core', + 'echarts/charts', + 'echarts/renderers', + 'echarts/components', + 'vue-echarts', + 'xlsx' + ] + }, + esbuild: { + charset: 'ascii' + }, + build: { + target: 'chrome63' + } + }; +}); diff --git a/guns-front-project/vitest.config.js b/guns-front-project/vitest.config.js new file mode 100644 index 00000000..10067d57 --- /dev/null +++ b/guns-front-project/vitest.config.js @@ -0,0 +1,14 @@ +import { fileURLToPath } from 'node:url' +import { mergeConfig, defineConfig, configDefaults } from 'vitest/config' +import viteConfig from './vite.config' + +export default mergeConfig( + viteConfig, + defineConfig({ + test: { + environment: 'jsdom', + exclude: [...configDefaults.exclude, 'e2e/*'], + root: fileURLToPath(new URL('./', import.meta.url)) + } + }) +) diff --git a/guns-front-project/yarn.lock b/guns-front-project/yarn.lock new file mode 100644 index 00000000..f597d9a2 --- /dev/null +++ b/guns-front-project/yarn.lock @@ -0,0 +1,4515 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@ant-design/colors@^6.0.0": + version "6.0.0" + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" + integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== + dependencies: + "@ctrl/tinycolor" "^3.4.0" + +"@ant-design/icons-svg@^4.2.1": + version "4.4.2" + resolved "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" + integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== + +"@ant-design/icons-vue@^6.1.0": + version "6.1.0" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz#f9324fdc0eb4cea943cf626d2bf3db9a4ff4c074" + integrity sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" + +"@ant-design/icons-vue@^7.0.1": + version "7.0.1" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz#83de301771fadd03f3890e627314102405c31c22" + integrity sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" + +"@antfu/utils@^0.7.2": + version "0.7.7" + resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz#26ea493a831b4f3a85475e7157be02fb4eab51fb" + integrity sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg== + +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.22.9", "@babel/core@^7.23.3": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" + integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.0" + "@babel/parser" "^7.24.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz#fc7554141bdbfa2d17f7b4b80153b9b090e5d158" + integrity sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g== + dependencies: + "@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/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@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": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.24.0": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" + integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.23.0", "@babel/parser@^7.23.6", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" + integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.23.9": + version "7.23.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.23.9": + version "7.23.9" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" + integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.0": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz#7b836ad0088fdded2420ce96d4e1d3ed78b71df1" + integrity sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.6" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.22.9": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.0.tgz#11536a7f4b977294f0bdfad780f01a8ac8e183fc" + integrity sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.9" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.8" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.9" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.24.0" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.10.5", "@babel/runtime@^7.8.4": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" + integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.23.7", "@babel/traverse@^7.24.0": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" + integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@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.24.0" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.4.4": + version "7.24.0" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@ctrl/tinycolor@^3.4.0": + version "3.6.1" + resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@intlify/core-base@9.10.1": + version "9.10.1" + resolved "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.10.1.tgz#e61d507d35beb0c69f9c94566313f9520c25a84a" + integrity sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ== + dependencies: + "@intlify/message-compiler" "9.10.1" + "@intlify/shared" "9.10.1" + +"@intlify/message-compiler@9.10.1": + version "9.10.1" + resolved "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz#d70c9ec211dab67d50a42ad1fb782c0e02f89c42" + integrity sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA== + dependencies: + "@intlify/shared" "9.10.1" + source-map-js "^1.0.2" + +"@intlify/shared@9.10.1": + version "9.10.1" + resolved "https://registry.npmmirror.com/@intlify/shared/-/shared-9.10.1.tgz#024ad6dd4ee9581962437570b3dc25516c82f4e9" + integrity sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.25" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@one-ini/wasm@0.1.1": + version "0.1.1" + resolved "https://registry.npmmirror.com/@one-ini/wasm/-/wasm-0.1.1.tgz#6013659736c9dbfccc96e8a9c2b3de317df39323" + integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@rollup/pluginutils@^4.1.2": + version "4.2.1" + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.2": + version "5.1.0" + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.1.tgz#11aaa02a933864b87f0b31cf2b755734e1f22787" + integrity sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ== + +"@rollup/rollup-android-arm64@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.1.tgz#b1e606fb4b46b38dc32bf010d513449462d669e9" + integrity sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg== + +"@rollup/rollup-darwin-arm64@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.1.tgz#dc21df1be9402671a8b6b15a93dd5953c68ec114" + integrity sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg== + +"@rollup/rollup-darwin-x64@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.1.tgz#397dcc4427d774f29b9954676893574ac563bf0b" + integrity sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw== + +"@rollup/rollup-linux-arm-gnueabihf@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.1.tgz#d851fd49d617e7792e7cde8e5a95ca51ea520fe5" + integrity sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ== + +"@rollup/rollup-linux-arm64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.1.tgz#e41a271ae51f79ffee6fb2b5597cc81b4ef66ad9" + integrity sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ== + +"@rollup/rollup-linux-arm64-musl@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.1.tgz#d3b4cd6ef18d0aa7103129755e0c535701624fac" + integrity sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ== + +"@rollup/rollup-linux-riscv64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.1.tgz#215101b2bb768cce2f2227145b8dd5c3c716c259" + integrity sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg== + +"@rollup/rollup-linux-x64-gnu@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.1.tgz#34a12fa305e167105eab70dbf577cd41e5199709" + integrity sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ== + +"@rollup/rollup-linux-x64-musl@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.1.tgz#3f000b5a92a32b844e385e1166979c87882930a3" + integrity sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ== + +"@rollup/rollup-win32-arm64-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.1.tgz#27977d91f5059645ebb3b7fbf4429982de2278d3" + integrity sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw== + +"@rollup/rollup-win32-ia32-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.1.tgz#0d252acd5af0274209c74374867ee8b949843d75" + integrity sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA== + +"@rollup/rollup-win32-x64-msvc@4.12.1": + version "4.12.1" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.1.tgz#cd8d175e001c212d5ac71c7827ef1d5c5e14494c" + integrity sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q== + +"@rushstack/eslint-patch@^1.3.3": + version "1.7.2" + resolved "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" + integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== + +"@simonwep/pickr@~1.8.0": + version "1.8.2" + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb" + integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA== + dependencies: + core-js "^3.15.1" + nanopop "^2.1.0" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@types/chai-subset@^1.3.3": + version "1.3.5" + resolved "https://registry.npmmirror.com/@types/chai-subset/-/chai-subset-1.3.5.tgz#3fc044451f26985f45625230a7f22284808b0a9a" + integrity sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.3.5": + version "4.3.12" + resolved "https://registry.npmmirror.com/@types/chai/-/chai-4.3.12.tgz#b192fe1c553b54f45d20543adc2ab88455a07d5e" + integrity sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw== + +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/node@*": + version "20.11.25" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" + integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== + dependencies: + undici-types "~5.26.4" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-legacy@^4.0.2": + version "4.1.1" + resolved "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz#27aad7ab082d2d554cf48a8e4f1c0ae9f3eca522" + integrity sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g== + dependencies: + "@babel/core" "^7.22.9" + "@babel/preset-env" "^7.22.9" + browserslist "^4.21.9" + core-js "^3.31.1" + magic-string "^0.30.1" + regenerator-runtime "^0.13.11" + systemjs "^6.14.1" + +"@vitejs/plugin-vue-jsx@^3.0.2": + version "3.1.0" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz#9953fd9456539e1f0f253bf0fcd1289e66c67cd1" + integrity sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA== + dependencies: + "@babel/core" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + "@vue/babel-plugin-jsx" "^1.1.5" + +"@vitejs/plugin-vue@^4.4.0": + version "4.6.2" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz#057d2ded94c4e71b94e9814f92dcd9306317aa46" + integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw== + +"@vitest/expect@0.34.6": + version "0.34.6" + resolved "https://registry.npmmirror.com/@vitest/expect/-/expect-0.34.6.tgz#608a7b7a9aa3de0919db99b4cc087340a03ea77e" + integrity sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw== + dependencies: + "@vitest/spy" "0.34.6" + "@vitest/utils" "0.34.6" + chai "^4.3.10" + +"@vitest/runner@0.34.6": + version "0.34.6" + resolved "https://registry.npmmirror.com/@vitest/runner/-/runner-0.34.6.tgz#6f43ca241fc96b2edf230db58bcde5b974b8dcaf" + integrity sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ== + dependencies: + "@vitest/utils" "0.34.6" + p-limit "^4.0.0" + pathe "^1.1.1" + +"@vitest/snapshot@0.34.6": + version "0.34.6" + resolved "https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-0.34.6.tgz#b4528cf683b60a3e8071cacbcb97d18b9d5e1d8b" + integrity sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w== + dependencies: + magic-string "^0.30.1" + pathe "^1.1.1" + pretty-format "^29.5.0" + +"@vitest/spy@0.34.6": + version "0.34.6" + resolved "https://registry.npmmirror.com/@vitest/spy/-/spy-0.34.6.tgz#b5e8642a84aad12896c915bce9b3cc8cdaf821df" + integrity sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ== + dependencies: + tinyspy "^2.1.1" + +"@vitest/utils@0.34.6": + version "0.34.6" + resolved "https://registry.npmmirror.com/@vitest/utils/-/utils-0.34.6.tgz#38a0a7eedddb8e7291af09a2409cb8a189516968" + integrity sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A== + dependencies: + diff-sequences "^29.4.3" + loupe "^2.3.6" + pretty-format "^29.5.0" + +"@vue/babel-helper-vue-transform-on@1.2.1": + version "1.2.1" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.1.tgz#3a48da809025b9a0eb4f4b3030e0d316c40fac0a" + integrity sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ== + +"@vue/babel-plugin-jsx@^1.1.5": + version "1.2.1" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.1.tgz#786c5395605a1d2463d6b10d8a7f3abdc01d25ce" + integrity sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + "@vue/babel-helper-vue-transform-on" "1.2.1" + "@vue/babel-plugin-resolve-type" "1.2.1" + camelcase "^6.3.0" + html-tags "^3.3.1" + svg-tags "^1.0.0" + +"@vue/babel-plugin-resolve-type@1.2.1": + version "1.2.1" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.1.tgz#874fb3e02d033b3dd2e0fc883a3d1ceef0bdf39b" + integrity sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/parser" "^7.23.6" + "@vue/compiler-sfc" "^3.4.15" + +"@vue/compiler-core@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313" + integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-core@3.4.21": + version "3.4.21" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz#868b7085378fc24e58c9aed14c8d62110a62be1a" + integrity sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og== + dependencies: + "@babel/parser" "^7.23.9" + "@vue/shared" "3.4.21" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b" + integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== + dependencies: + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/compiler-dom@3.4.21": + version "3.4.21" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz#0077c355e2008207283a5a87d510330d22546803" + integrity sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA== + dependencies: + "@vue/compiler-core" "3.4.21" + "@vue/shared" "3.4.21" + +"@vue/compiler-sfc@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1" + integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-ssr" "3.3.8" + "@vue/reactivity-transform" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + postcss "^8.4.31" + source-map-js "^1.0.2" + +"@vue/compiler-sfc@^3.4.15": + version "3.4.21" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz#4af920dc31ab99e1ff5d152b5fe0ad12181145b2" + integrity sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ== + dependencies: + "@babel/parser" "^7.23.9" + "@vue/compiler-core" "3.4.21" + "@vue/compiler-dom" "3.4.21" + "@vue/compiler-ssr" "3.4.21" + "@vue/shared" "3.4.21" + estree-walker "^2.0.2" + magic-string "^0.30.7" + postcss "^8.4.35" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce" + integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== + dependencies: + "@vue/compiler-dom" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/compiler-ssr@3.4.21": + version "3.4.21" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz#b84ae64fb9c265df21fc67f7624587673d324fef" + integrity sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q== + dependencies: + "@vue/compiler-dom" "3.4.21" + "@vue/shared" "3.4.21" + +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": + version "6.6.1" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" + integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== + +"@vue/eslint-config-prettier@^8.0.0": + version "8.0.0" + resolved "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz#de5cb77ed483b43683d17a788808a0fa4e7bd07e" + integrity sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg== + dependencies: + eslint-config-prettier "^8.8.0" + eslint-plugin-prettier "^5.0.0" + +"@vue/reactivity-transform@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2" + integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + +"@vue/reactivity@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d" + integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw== + dependencies: + "@vue/shared" "3.3.8" + +"@vue/runtime-core@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb" + integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw== + dependencies: + "@vue/reactivity" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/runtime-dom@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4" + integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA== + dependencies: + "@vue/runtime-core" "3.3.8" + "@vue/shared" "3.3.8" + csstype "^3.1.2" + +"@vue/server-renderer@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2" + integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg== + dependencies: + "@vue/compiler-ssr" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/shared@3.3.8": + version "3.3.8" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d" + integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== + +"@vue/shared@3.4.21": + version "3.4.21" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" + integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== + +"@vue/test-utils@^2.4.1": + version "2.4.4" + resolved "https://registry.npmmirror.com/@vue/test-utils/-/test-utils-2.4.4.tgz#36ba31f90332fb25a5ab2e553652c21d33057094" + integrity sha512-8jkRxz8pNhClAf4Co4ZrpAoFISdvT3nuSkUlY6Ys6rmTpw3DMWG/X3mw3gQ7QJzgCZO9f+zuE2kW57fi09MW7Q== + dependencies: + js-beautify "^1.14.9" + vue-component-type-helpers "^1.8.21" + +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.2.0: + version "8.3.2" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.10.0, acorn@^8.11.3, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +ant-design-vue@^3.2.17: + version "3.2.20" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-3.2.20.tgz#552f5f08e2acbcc10bd4089145d4cc2b15d4cfec" + integrity sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-vue" "^6.1.0" + "@babel/runtime" "^7.10.5" + "@ctrl/tinycolor" "^3.4.0" + "@simonwep/pickr" "~1.8.0" + array-tree-filter "^2.1.0" + async-validator "^4.0.0" + dayjs "^1.10.5" + dom-align "^1.12.1" + dom-scroll-into-view "^2.0.0" + lodash "^4.17.21" + lodash-es "^4.17.15" + resize-observer-polyfill "^1.5.1" + scroll-into-view-if-needed "^2.2.25" + shallow-equal "^1.0.0" + vue-types "^3.0.0" + warning "^4.0.0" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +async-validator@^4.0.0: + version "4.2.5" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.0: + version "1.6.7" + resolved "https://registry.npmmirror.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.8" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.5.0" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" + +babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.21.9, browserslist@^4.22.2, browserslist@^4.22.3: + version "4.23.0" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001596" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" + integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.npmmirror.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +clipboard@^2.0.6: + version "2.0.11" + resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +consola@3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/consola/-/consola-3.2.0.tgz#347ad19c297a7dbd3ae97c648abefc107a08098f" + integrity sha512-NLgzNbAYHKIeCi+wrymxkwZX42jAMBDB/8gtR+JCgHzegj92hXNoLmYrfA78mfmvopmg/z0PNgYyFAwY5emnZg== + +console@^0.7.2: + version "0.7.2" + resolved "https://registry.npmmirror.com/console/-/console-0.7.2.tgz#f9a4331249291591b7bf9bffa8e205356f20a9f0" + integrity sha512-+JSDwGunA4MTEgAV/4VBKwUHonP8CzJ/6GIuwPi6acKFqFfHUdSGCm89ZxZ5FfGWdZfkdgAroy5bJ5FSeN/t4g== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +core-js-compat@^3.31.0, core-js-compat@^3.34.0: + version "3.36.0" + resolved "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" + integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== + dependencies: + browserslist "^4.22.3" + +core-js@^3.15.1, core-js@^3.31.1: + version "3.36.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.36.0.tgz#e752fa0b0b462a0787d56e9d73f80b0f7c0dde68" + integrity sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw== + +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +cropperjs@^1.5.12: + version "1.6.1" + resolved "https://registry.npmmirror.com/cropperjs/-/cropperjs-1.6.1.tgz#fd132021d93b824b1b0f2c2c3b763419fb792d89" + integrity sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssstyle@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" + integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== + dependencies: + rrweb-cssom "^0.6.0" + +csstype@^3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +data-urls@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" + integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^12.0.0" + +dayjs@^1.10.5, dayjs@^1.11.10: + version "1.11.10" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decimal.js@^10.4.3: + version "10.4.3" + resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +deep-eql@^4.1.3: + version "4.1.3" + resolved "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +diff-sequences@^29.4.3: + version "29.6.3" + resolved "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-align@^1.12.1: + version "1.12.4" + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== + +dom-scroll-into-view@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" + integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== + +dom-zindex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/dom-zindex/-/dom-zindex-1.0.1.tgz#98df1d916f390f009bb0ec03b96df820e7c7073a" + integrity sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg== + +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +echarts@^5.4.2: + version "5.5.0" + resolved "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz#c13945a7f3acdd67c134d8a9ac67e917830113ac" + integrity sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw== + dependencies: + tslib "2.3.0" + zrender "5.5.0" + +editorconfig@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/editorconfig/-/editorconfig-1.0.4.tgz#040c9a8e9a6c5288388b87c2db07028aa89f53a3" + integrity sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q== + dependencies: + "@one-ini/wasm" "0.1.1" + commander "^10.0.0" + minimatch "9.0.1" + semver "^7.5.3" + +electron-to-chromium@^1.4.668: + version "1.4.698" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.698.tgz#0b3992ad3b572b646ce3f22e0145eab4abc559a7" + integrity sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +entities@^4.4.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +errno@^0.1.1: + version "0.1.8" + resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +es-module-lexer@^0.9.3: + version "0.9.3" + resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.8.0: + version "8.10.0" + resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== + +eslint-plugin-prettier@^5.0.0: + version "5.1.3" + resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-plugin-vue@^9.17.0: + version "9.22.0" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.22.0.tgz#e8a625adb0b6ce3b65635dd74fec8345146f8e26" + integrity sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + natural-compare "^1.4.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" + vue-eslint-parser "^9.4.2" + xml-name-validator "^4.0.0" + +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.49.0: + version "8.57.0" + resolved "https://registry.npmmirror.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + 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" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.12: + version "3.3.2" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmmirror.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.3.3: + version "10.3.10" + resolved "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hasown@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + dependencies: + function-bind "^1.1.2" + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@0.6.3, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +js-beautify@^1.14.9: + version "1.15.1" + resolved "https://registry.npmmirror.com/js-beautify/-/js-beautify-1.15.1.tgz#4695afb508c324e1084ee0b952a102023fc65b64" + integrity sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA== + dependencies: + config-chain "^1.1.13" + editorconfig "^1.0.4" + glob "^10.3.3" + js-cookie "^3.0.5" + nopt "^7.2.0" + +js-cookie@^3.0.5: + version "3.0.5" + resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsdom@^22.1.0: + version "22.1.0" + resolved "https://registry.npmmirror.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" + integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== + dependencies: + abab "^2.0.6" + cssstyle "^3.0.0" + data-urls "^4.0.0" + decimal.js "^10.4.3" + domexception "^4.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.4" + parse5 "^7.1.2" + rrweb-cssom "^0.6.0" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^12.0.1" + ws "^8.13.0" + xml-name-validator "^4.0.0" + +jsencrypt@^3.3.2: + version "3.3.2" + resolved "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.2.tgz#b0f1a2278810c7ba1cb8957af11195354622df7c" + integrity sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@^3.2.0: + version "3.2.1" + resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +less@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== + dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" + tslib "^2.3.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + needle "^3.1.0" + source-map "~0.6.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.15, lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.npmmirror.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.30.0, magic-string@^0.30.1, magic-string@^0.30.5, magic-string@^0.30.7: + version "0.30.8" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613" + integrity sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@^1.4.1: + version "1.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@9.0.1: + version "9.0.1" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^7.4.2: + version "7.4.6" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +mlly@^1.2.0, mlly@^1.4.0: + version "1.6.1" + resolved "https://registry.npmmirror.com/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f" + integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.0.3" + ufo "^1.3.2" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanopop@^2.1.0: + version "2.4.2" + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz#b55482135be7e64f2d0f5aa8ef51a58104ac7b13" + integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^3.1.0: + version "3.3.1" + resolved "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" + integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== + dependencies: + iconv-lite "^0.6.3" + sax "^1.2.4" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +nopt@^7.2.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +nwsapi@^2.2.4: + version "2.2.7" + resolved "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +pathe@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" + integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== + +pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinia@^2.1.7: + version "2.1.7" + resolved "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" + integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== + dependencies: + "@vue/devtools-api" "^6.5.0" + vue-demi ">=0.14.5" + +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + +postcss-selector-parser@^6.0.15: + version "6.0.15" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss@^8.4.27, postcss@^8.4.31, postcss@^8.4.35: + version "8.4.35" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.0.3: + version "3.2.5" + resolved "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + +pretty-format@^29.5.0: + version "29.7.0" + resolved "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: + version "2.3.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-detector@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz#fe495112e184695500a8f51e0389f15774cb1cfc" + integrity sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.14.2, resolve@^1.22.1: + version "1.22.8" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^4.2.0: + version "4.12.1" + resolved "https://registry.npmmirror.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d" + integrity sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.12.1" + "@rollup/rollup-android-arm64" "4.12.1" + "@rollup/rollup-darwin-arm64" "4.12.1" + "@rollup/rollup-darwin-x64" "4.12.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.12.1" + "@rollup/rollup-linux-arm64-gnu" "4.12.1" + "@rollup/rollup-linux-arm64-musl" "4.12.1" + "@rollup/rollup-linux-riscv64-gnu" "4.12.1" + "@rollup/rollup-linux-x64-gnu" "4.12.1" + "@rollup/rollup-linux-x64-musl" "4.12.1" + "@rollup/rollup-win32-arm64-msvc" "4.12.1" + "@rollup/rollup-win32-ia32-msvc" "4.12.1" + "@rollup/rollup-win32-x64-msvc" "4.12.1" + fsevents "~2.3.2" + +rrweb-cssom@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.3.0" + resolved "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +scroll-into-view-if-needed@^2.2.25: + version "2.2.31" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.6, semver@^7.5.3, semver@^7.6.0: + version "7.6.0" + resolved "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +sortablejs@1.14.0: + version "1.14.0" + resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" + integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +std-env@^3.3.3: + version "3.7.0" + resolved "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + name string-width-cjs + version "4.2.3" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + name strip-ansi-cjs + version "6.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-literal@^1.0.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== + dependencies: + acorn "^8.10.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.npmmirror.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +systemjs@^6.14.1: + version "6.14.3" + resolved "https://registry.npmmirror.com/systemjs/-/systemjs-6.14.3.tgz#c1d6e4ff5f9ff7106e5bb3d451360b1a066bde8a" + integrity sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w== + +terser@^5.16.9: + version "5.29.1" + resolved "https://registry.npmmirror.com/terser/-/terser-5.29.1.tgz#44e58045b70c09792ba14bfb7b4e14ca8755b9fa" + integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinybench@^2.5.0: + version "2.6.0" + resolved "https://registry.npmmirror.com/tinybench/-/tinybench-2.6.0.tgz#1423284ee22de07c91b3752c048d2764714b341b" + integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA== + +tinymce@^5.10.7: + version "5.10.9" + resolved "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.9.tgz#1dfacb3231c71a688d90ff44a0b3f2e91b3b9edf" + integrity sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg== + +tinypool@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/tinypool/-/tinypool-0.7.0.tgz#88053cc99b4a594382af23190c609d93fddf8021" + integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww== + +tinyspy@^2.1.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" + integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== + dependencies: + punycode "^2.3.0" + +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tslib@^2.0.3, tslib@^2.3.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@^4.0.0, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +ufo@^1.3.2: + version "1.4.0" + resolved "https://registry.npmmirror.com/ufo/-/ufo-1.4.0.tgz#39845b31be81b4f319ab1d99fd20c56cac528d32" + integrity sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unplugin-vue-components@^0.24.1: + version "0.24.1" + resolved "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz#b5c3419c30a603dd795e3a0d63c4c12f4a5d8274" + integrity sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA== + dependencies: + "@antfu/utils" "^0.7.2" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.30.0" + minimatch "^7.4.2" + resolve "^1.22.1" + unplugin "^1.1.0" + +unplugin@^1.1.0: + version "1.8.3" + resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.8.3.tgz#49788aea83c61fdea69aca9923b99a4b41927de3" + integrity sha512-ZlLteXGDcyJgsbN2g4sZ3Dw6fpX1O5rjgeaA5MmQhhA2YxnTxsh43f8nDQgFOzcir0iv8GYMjtCV8MtyNnrhEg== + dependencies: + acorn "^8.11.3" + chokidar "^3.6.0" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.6.1" + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vite-node@0.34.6: + version "0.34.6" + resolved "https://registry.npmmirror.com/vite-node/-/vite-node-0.34.6.tgz#34d19795de1498562bf21541a58edcd106328a17" + integrity sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + mlly "^1.4.0" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^3.0.0 || ^4.0.0 || ^5.0.0-0" + +vite-plugin-compression@^0.5.1: + version "0.5.1" + resolved "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz#a75b0d8f48357ebb377b65016da9f20885ef39b6" + integrity sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg== + dependencies: + chalk "^4.1.2" + debug "^4.3.3" + fs-extra "^10.0.0" + +vite-plugin-style-import@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/vite-plugin-style-import/-/vite-plugin-style-import-2.0.0.tgz#edafd9fbb09e8bb5ae67dee8f601afbe386a9969" + integrity sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA== + dependencies: + "@rollup/pluginutils" "^4.1.2" + change-case "^4.1.2" + console "^0.7.2" + es-module-lexer "^0.9.3" + fs-extra "^10.0.0" + magic-string "^0.25.7" + pathe "^0.2.0" + +"vite@^3.0.0 || ^4.0.0 || ^5.0.0-0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0": + version "5.1.5" + resolved "https://registry.npmmirror.com/vite/-/vite-5.1.5.tgz#bdbc2b15e8000d9cc5172f059201178f9c9de5fb" + integrity sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +vite@^4.4.11: + version "4.5.2" + resolved "https://registry.npmmirror.com/vite/-/vite-4.5.2.tgz#d6ea8610e099851dad8c7371599969e0f8b97e82" + integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.34.6: + version "0.34.6" + resolved "https://registry.npmmirror.com/vitest/-/vitest-0.34.6.tgz#44880feeeef493c04b7f795ed268f24a543250d7" + integrity sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q== + dependencies: + "@types/chai" "^4.3.5" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + "@vitest/expect" "0.34.6" + "@vitest/runner" "0.34.6" + "@vitest/snapshot" "0.34.6" + "@vitest/spy" "0.34.6" + "@vitest/utils" "0.34.6" + acorn "^8.9.0" + acorn-walk "^8.2.0" + cac "^6.7.14" + chai "^4.3.10" + debug "^4.3.4" + local-pkg "^0.4.3" + magic-string "^0.30.1" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.3.3" + strip-literal "^1.0.1" + tinybench "^2.5.0" + tinypool "^0.7.0" + vite "^3.1.0 || ^4.0.0 || ^5.0.0-0" + vite-node "0.34.6" + why-is-node-running "^2.2.2" + +vue-clipboard3@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz#79b026c765c0f6a5cde18a477c2dbfc7d3b9f178" + integrity sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A== + dependencies: + clipboard "^2.0.6" + +vue-component-type-helpers@^1.8.21: + version "1.8.27" + resolved "https://registry.npmmirror.com/vue-component-type-helpers/-/vue-component-type-helpers-1.8.27.tgz#e816c82dcffac8bca58833c120ba395c325dfa68" + integrity sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg== + +vue-demi@>=0.14.5: + version "0.14.7" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" + integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== + +vue-demi@^0.13.11: + version "0.13.11" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-echarts@^6.5.4: + version "6.6.9" + resolved "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.6.9.tgz#151372ecd086db985dafeeebd3ea83c8d4d2846b" + integrity sha512-mojIq3ZvsjabeVmDthhAUDV8Kgf2Rr/X4lV4da7gEFd1fP05gcSJ0j7wa7HQkW5LlFmF2gdCJ8p4Chas6NNIQQ== + dependencies: + resize-detector "^0.3.0" + vue-demi "^0.13.11" + +vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.4.2: + version "9.4.2" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" + integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-i18n@^9.1.9: + version "9.10.1" + resolved "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz#b3244233da31a55a07a2ae72cdddab7296bca814" + integrity sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg== + dependencies: + "@intlify/core-base" "9.10.1" + "@intlify/shared" "9.10.1" + "@vue/devtools-api" "^6.5.0" + +vue-router@^4.2.5: + version "4.3.0" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.3.0.tgz#d5913f27bf68a0a178ee798c3c88be471811a235" + integrity sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ== + dependencies: + "@vue/devtools-api" "^6.5.1" + +vue-types@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" + integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== + dependencies: + is-plain-object "3.0.1" + +vue@^3.3.4: + version "3.3.8" + resolved "https://registry.npmmirror.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc" + integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w== + dependencies: + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-sfc" "3.3.8" + "@vue/runtime-dom" "3.3.8" + "@vue/server-renderer" "3.3.8" + "@vue/shared" "3.3.8" + +vuedraggable@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz#edece68adb8a4d9e06accff9dfc9040e66852270" + integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== + dependencies: + sortablejs "1.14.0" + +vxe-table@^4.4.2: + version "4.5.20" + resolved "https://registry.npmmirror.com/vxe-table/-/vxe-table-4.5.20.tgz#9e6299a8e905954c7edeb4052feb6c590ddaccec" + integrity sha512-UC+z1ED3QE6Be/UN0390hSXMAseXg+com3fkX9q3tjfsCGFx7CjN9tLstuNtecn+ElkPGHqzRGtA3N5FTSv5Vw== + dependencies: + dom-zindex "^1.0.1" + xe-utils "^3.5.20" + +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + +warning@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^12.0.0, whatwg-url@^12.0.1: + version "12.0.1" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" + integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== + dependencies: + tr46 "^4.1.1" + webidl-conversions "^7.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +why-is-node-running@^2.2.2: + version "2.2.2" + resolved "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +word@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.13.0: + version "8.16.0" + resolved "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + +xe-utils@^3.5.14, xe-utils@^3.5.20: + version "3.5.22" + resolved "https://registry.npmmirror.com/xe-utils/-/xe-utils-3.5.22.tgz#b153881aeaaa07248f81511ab9e06b1e78b44fa6" + integrity sha512-rhWuM2fVXsdrqUtyjRAsYTDLvVzYSSZqg/uCRyDqcw96AweB1AWsnTJZyl9g68ejnP0xhxfSoNBSrIcOeX1yxA== + +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zrender@5.5.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz#54d0d6c4eda81a96d9f60a9cd74dc48ea026bc1e" + integrity sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w== + dependencies: + tslib "2.3.0"