├── favicon.ico
├── favicon.webp
├── docs
├── favicon.webp
├── assets
│ ├── bg-BQx4j7kW.webp
│ ├── favicon-aOK6_042.ico
│ ├── mdui-round-DrirKXBx.woff2
│ ├── SamsungSans-Regular-BsRQoNIc.ttf
│ ├── index-CcQoAca9.css
│ ├── deps-PoZXHJHQ.css
│ └── index-Ct_lBPmX.js
├── registerSW.js
├── manifest.webmanifest
├── index.html
├── sw.js
└── workbox-7ac4974e.js
├── src
├── assets
│ ├── bg.webp
│ ├── favicon.ico
│ ├── favicon.png
│ ├── main.css
│ ├── ImScrollBar.css
│ ├── mdui-icon.css
│ ├── card.css
│ ├── PinnedMessageBar.css
│ └── ImMainView.css
├── font
│ ├── mdui-round.woff2
│ └── SamsungSans-Regular.ttf
├── main.js
├── App.vue
├── components
│ ├── MdCard.vue
│ ├── ImMainView.vue
│ └── ImScrollBar.vue
└── views
│ └── HomeView.vue
├── jsconfig.json
├── .eslintrc.cjs
├── .gitignore
├── index.html
├── README.md
├── package.json
├── LICENSE.md
├── vite.config.js
└── patches
└── mdui+2.1.3.patch
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/favicon.ico
--------------------------------------------------------------------------------
/favicon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/favicon.webp
--------------------------------------------------------------------------------
/docs/favicon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/docs/favicon.webp
--------------------------------------------------------------------------------
/src/assets/bg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/src/assets/bg.webp
--------------------------------------------------------------------------------
/src/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/src/assets/favicon.ico
--------------------------------------------------------------------------------
/src/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/src/assets/favicon.png
--------------------------------------------------------------------------------
/src/font/mdui-round.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/src/font/mdui-round.woff2
--------------------------------------------------------------------------------
/docs/assets/bg-BQx4j7kW.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/docs/assets/bg-BQx4j7kW.webp
--------------------------------------------------------------------------------
/docs/assets/favicon-aOK6_042.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/docs/assets/favicon-aOK6_042.ico
--------------------------------------------------------------------------------
/src/font/SamsungSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/src/font/SamsungSans-Regular.ttf
--------------------------------------------------------------------------------
/docs/assets/mdui-round-DrirKXBx.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/docs/assets/mdui-round-DrirKXBx.woff2
--------------------------------------------------------------------------------
/docs/assets/SamsungSans-Regular-BsRQoNIc.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SheepChef/Abracadabra_demo/HEAD/docs/assets/SamsungSans-Regular-BsRQoNIc.ttf
--------------------------------------------------------------------------------
/docs/registerSW.js:
--------------------------------------------------------------------------------
1 | if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})}
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": {
4 | "@/*": ["./src/*"]
5 | }
6 | },
7 | "exclude": ["node_modules", "dist"]
8 | }
9 |
--------------------------------------------------------------------------------
/docs/manifest.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"魔曰","short_name":"Abracadabra","start_url":".","display":"standalone","background_color":"#ffffff","lang":"en","scope":"./","id":"abracadabra","description":"对文字施以神秘魔法","theme_color":"#5753c9","icons":[{"src":"favicon.webp","sizes":"1024x1024","type":"image/webp"}]}
2 |
--------------------------------------------------------------------------------
/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "SamsungSans";
3 | src: url("../font/SamsungSans-Regular.ttf");
4 | }
5 | html,
6 | body {
7 | height: 100%;
8 | width: 100%;
9 | margin: 0;
10 | padding: 0;
11 | font-family: "SamsungSans", "sans-serif";
12 | }
13 | h1 {
14 | margin-top: unset;
15 | }
16 | #main_content {
17 | width: 100%;
18 | display: grid;
19 | }
20 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 | require("@rushstack/eslint-patch/modern-module-resolution");
3 |
4 | module.exports = {
5 | root: true,
6 | extends: [
7 | "plugin:vue/vue3-essential",
8 | "eslint:recommended",
9 | "@vue/eslint-config-prettier/skip-formatting"
10 | ],
11 | parserOptions: {
12 | ecmaVersion: "latest"
13 | },
14 | rules: {
15 | "vue/no-deprecated-slot-attribute": "off"
16 | }
17 | };
18 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import "./assets/main.css";
2 | import { createApp, reactive } from "vue";
3 | import App from "./App.vue";
4 | import { setColorScheme } from "mdui/functions/setColorScheme.js";
5 | import Card from "./components/MdCard.vue";
6 |
7 | window.addEventListener("beforeinstallprompt", (e) => {
8 | e.preventDefault();
9 | window.deferredPrompt = e;
10 | });
11 |
12 | const app = createApp(App);
13 | setColorScheme("#09355b");
14 | app.component("Card", Card);
15 | app.mount("body");
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | .DS_Store
12 | #dist
13 | #dist-ssr
14 | coverage
15 | *.local
16 |
17 | /cypress/videos/
18 | /cypress/screenshots/
19 |
20 | # Editor directories and files
21 | vscode
22 | .vscode/*
23 | .idea
24 | *.suo
25 | *.ntvs*
26 | *.njsproj
27 | *.sln
28 | *.sw?
29 |
30 | *.tsbuildinfo
31 | .prettierignore
32 | .prettierrc.json
33 | dev-dist
34 | favicon.png
35 |
--------------------------------------------------------------------------------
/src/assets/ImScrollBar.css:
--------------------------------------------------------------------------------
1 | .ImScrollBarTrack {
2 | position: fixed;
3 | transition: opacity 0.1s linear;
4 | opacity: 0;
5 | border-radius: 100px;
6 | z-index: 8;
7 | background-color: rgb(var(--mdui-color-surface-bright));
8 | align-self: center;
9 | }
10 | .ImScrollBarTrack:hover {
11 | opacity: 0.701;
12 | }
13 | .ImScrollBarThumb {
14 | position: absolute;
15 | background-color: rgb(var(--mdui-color-tertiary-light));
16 | opacity: inherit;
17 | border-radius: 100px;
18 | /*height: 10px;*/
19 | /*width: 100%;*/
20 | }
21 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 魔曰 - Abracadabra
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/assets/mdui-icon.css:
--------------------------------------------------------------------------------
1 | /* fallback */
2 | @font-face {
3 | font-family: "Material Icons Round";
4 | font-style: normal;
5 | font-weight: 400;
6 | src: url(../font/mdui-round.woff2) format("woff2");
7 | }
8 |
9 | .material-icons-round {
10 | font-family: "Material Icons Round";
11 | font-weight: normal;
12 | font-style: normal;
13 | font-size: 24px;
14 | line-height: 1;
15 | letter-spacing: normal;
16 | text-transform: none;
17 | display: inline-block;
18 | white-space: nowrap;
19 | word-wrap: normal;
20 | direction: ltr;
21 | -webkit-font-feature-settings: "liga";
22 | font-feature-settings: "liga";
23 | -webkit-font-smoothing: antialiased;
24 | }
25 |
--------------------------------------------------------------------------------
/src/assets/card.css:
--------------------------------------------------------------------------------
1 | .baseCard {
2 | background-color: rgb(var(--mdui-color-secondary-container));
3 | color: rgb(var(--mdui-color-secondary));
4 | padding: 10px;
5 | overflow: hidden;
6 | display: flex;
7 | z-index: 3;
8 | }
9 | .rawCard {
10 | background: rgb(var(--mdui-color-secondary-container));
11 | color: rgb(var(--mdui-color-secondary));
12 | padding: 10px;
13 | transition: all 1s ease;
14 | overflow: hidden;
15 | display: flex;
16 | z-index: 3;
17 | }
18 | .cardIcon {
19 | font-size: 120px !important;
20 | top: -10px;
21 | right: -15px;
22 | position: absolute;
23 | opacity: 0.15;
24 | z-index: 4;
25 | color: black;
26 | }
27 | .cardContent {
28 | display: grid;
29 | width: 100%;
30 | height: 100%;
31 | color: white;
32 | }
33 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/components/MdCard.vue:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Abracadabra:魔曰
2 |
3 | [
](LICENSE.md)
4 |
5 | **Abracadabra(魔曰)** 是一个文本即时加密工具,也可用于加密文件,你正在查阅其Demo示范页。本 Demo 支持PWA,完全响应式设计。
6 |
7 | Abracadabra 是表演魔术 (施魔法) 时所念的咒语,**魔曰** 是本项目的中文别名。
8 |
9 | C++ 版本和 Node.js 版本完全等效,密文可以互相交叉解密。
10 |
11 |
12 |
13 |
14 |
15 | **在线体验**: [**Cloudflare DEMO Page**](https://abracadabra-demo.pages.dev/)
16 |
17 | **主项目**: [**Abracadabra**](https://github.com/SheepChef/Abracadabra/)
18 |
19 | **浏览器插件源码**: [**Abracadabra-demo**](https://github.com/SheepChef/Abracadabra_demo/tree/crx)
20 |
21 | ## 快速部署
22 |
23 | 如果你不想修改源码,可以直接下载Release内的构建版本。
24 |
25 | 把构建版本解压到你网站的指定位置,快速部署即完成。
26 |
27 | ## 编译部署
28 |
29 | 本示范页使用 Vue 和 Vite
30 |
31 | 如果需要本地编译部署,你最少需要执行两个指令:
32 |
33 | ```shell
34 | npm install
35 |
36 | npm run build
37 | ```
38 |
39 | 本 Demo 是开发者自主设计的,还请在修改传播时保留版权信息。
40 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "abracadabra-nodedemo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build --outDir ./docs",
9 | "preview": "vite preview",
10 | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
11 | "format": "prettier --write src/",
12 | "postinstall": "patch-package"
13 | },
14 | "dependencies": {
15 | "@mdui/icons": "^1.0.2",
16 | "abracadabra-cn": "^3.2.5",
17 | "mdui": "^2.1.3",
18 | "patch-package": "^8.0.0",
19 | "vue": "^3.3.11"
20 | },
21 | "devDependencies": {
22 | "@rushstack/eslint-patch": "^1.3.3",
23 | "@vitejs/plugin-vue": "^5.0.5",
24 | "@vue/eslint-config-prettier": "^9.0.0",
25 | "eslint": "^9.5.0",
26 | "eslint-config-prettier": "^9.1.0",
27 | "eslint-plugin-vue": "^9.17.0",
28 | "prettier": "^3.2.4",
29 | "terser": "^5.31.1",
30 | "vite": "^5.0.10",
31 | "vite-plugin-compression": "^0.5.1",
32 | "vite-plugin-pwa": "^0.21.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 魔曰 - Abracadabra
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/components/ImMainView.vue:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
40 |
41 |
--------------------------------------------------------------------------------
/src/assets/PinnedMessageBar.css:
--------------------------------------------------------------------------------
1 | #PinnedMessageTitle {
2 | width: 100%;
3 | position: relative;
4 | height: 100%;
5 | color: rgb(var(--mdui-color-primary));
6 | font-family:
7 | system-ui,
8 | -apple-system,
9 | BlinkMacSystemFont,
10 | "Segoe UI",
11 | Roboto,
12 | Oxygen,
13 | Ubuntu,
14 | Cantarell,
15 | "Open Sans",
16 | "Helvetica Neue",
17 | sans-serif;
18 | line-height: 1rem;
19 | }
20 | #PinnedMessageSummary {
21 | position: relative;
22 | height: 100%;
23 | }
24 | #PinnedMessageNumIndicatorContainer {
25 | align-self: center;
26 | float: right;
27 | right: 0px;
28 | position: absolute;
29 | }
30 | #PinnedMessageProgessBar {
31 | width: 100%;
32 | position: absolute;
33 | bottom: 0px;
34 | transition: height 0.12s ease;
35 | height: 0px;
36 | }
37 | #PinnedMessageNowNum {
38 | font-size: 25px;
39 | margin-right: 5px;
40 | }
41 | #PinnedMessageTotalNum {
42 | font-size: 15px;
43 | margin-right: 15px;
44 | color: rgb(var(--mdui-color-on-primary-light));
45 | }
46 | #PinnedMessageNumDivider {
47 | margin-right: 4px;
48 | font-size: 15px;
49 | }
50 | #PinnedMessageCard {
51 | position: relative;
52 | min-width: 90%;
53 | min-height: 49px;
54 | height: 40px;
55 | margin-left: 0px;
56 | right: 0px;
57 | float: right;
58 | width: 100%;
59 | background-color: rgb(var(--mdui-color-primary-container));
60 | border-radius: 0px 0px;
61 | z-index: 10;
62 | }
63 | #Divider {
64 | position: relative;
65 | min-height: 38px;
66 | margin-right: 10px;
67 | width: 4px;
68 | border-radius: 100px;
69 | background-color: rgb(var(--mdui-color-primary));
70 | }
71 | #PinnedMessageContainer {
72 | padding: 0px 5px;
73 | display: flex;
74 | margin: 5.5px;
75 | position: relative;
76 | }
77 |
--------------------------------------------------------------------------------
/docs/sw.js:
--------------------------------------------------------------------------------
1 | if(!self.define){let e,s={};const n=(n,i)=>(n=new URL(n+".js",i).href,s[n]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()})).then((()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e})));self.define=(i,r)=>{const a=e||("document"in self?document.currentScript.src:"")||location.href;if(s[a])return;let t={};const l=e=>n(e,a),o={module:{uri:a},exports:t,require:l};s[a]=Promise.all(i.map((e=>o[e]||l(e)))).then((e=>(r(...e),t)))}}define(["./workbox-7ac4974e"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/abracadabra-cn-aGnSVyKE.js",revision:null},{url:"assets/bg-BQx4j7kW.webp",revision:null},{url:"assets/deps-DMDL2Vxr.js",revision:null},{url:"assets/deps-PoZXHJHQ.css",revision:null},{url:"assets/favicon-aOK6_042.ico",revision:null},{url:"assets/index-CcQoAca9.css",revision:null},{url:"assets/index-Ct_lBPmX.js",revision:null},{url:"assets/mdui-round-DrirKXBx.woff2",revision:null},{url:"assets/SamsungSans-Regular-BsRQoNIc.ttf",revision:null},{url:"favicon.webp",revision:"1790790282c4627a1a581783b2dbdd84"},{url:"index.html",revision:"e8937dcd926eb5844ba2f2b541c98c87"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"manifest.webmanifest",revision:"4a5d57eeda73e5c37b639545aa737430"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"))),e.registerRoute(/\.(?:png|jpg|jpeg|svg)$/,new e.NetworkFirst({cacheName:"wisbayar-images",plugins:[new e.ExpirationPlugin({maxEntries:30})]}),"GET"),e.registerRoute(/.*\.js.*/,new e.StaleWhileRevalidate({cacheName:"wisbayar-js",plugins:[new e.ExpirationPlugin({maxEntries:30,maxAgeSeconds:2592e3}),new e.CacheableResponsePlugin({statuses:[200]})]}),"GET"),e.registerRoute(/.*\.css.*/,new e.StaleWhileRevalidate({cacheName:"wisbayar-css",plugins:[new e.ExpirationPlugin({maxEntries:20,maxAgeSeconds:2592e3}),new e.CacheableResponsePlugin({statuses:[200]})]}),"GET"),e.registerRoute(/.*\.html.*/,new e.StaleWhileRevalidate({cacheName:"wisbayar-html",plugins:[new e.ExpirationPlugin({maxEntries:20,maxAgeSeconds:2592e3}),new e.CacheableResponsePlugin({statuses:[200]})]}),"GET")}));
2 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | **Academic Innovation Protection License 1.1**
2 | **学术创新保护许可证 1.1 (AIPL-1.1)**
3 |
4 | **版权所有 (C) 2025 SheepChef**
5 |
6 | **序言**
7 |
8 | 在开放源代码软件项目遭到严重抄袭和滥用,大量作者的权益遭受侵犯的背景下,本《学术创新保护许可证》(AIPL)旨在遏制开源作品遭到不正当的使用,与此同时保证大多数正常用户,开源作者和协作者的权利。
9 |
10 | 本许可证授予被授权人有条件的非商业使用权,严格保障著作权人的学术优先权与成果控制权,限制未经许可的竞争性学术利用,商业利用及专利主张行为。
11 |
12 | 针对学术利用,本许可证仅限制被授权人依赖受保护项目获取学术声誉和学术利益。私下研究的学术自由不受限制。
13 |
14 | 针对商业利用,本许可证限制被授权人依赖受保护项目获取直接或间接经济利益,参加商业竞赛,获得第三方投资等。特别地,针对媒体和艺术衍生作品,被授权人享有创作、发布和盈利自由,但著作权人保留终止协议的权利。
15 |
16 | 本许可证为独立授权框架,与现有主流开源协议体系 (GPL 等) 不兼容,使用者应知悉其特殊限制属性。使用本许可证保护的项目,不再是符合开源精神的项目,不符合开源定义(Open Source Definition)。
17 |
18 | 第三方组件的权利与义务由其原始许可证独立管辖,本协议仅约束著作权人声明的原创内容。
19 |
20 | ---
21 |
22 | **第 1 条 定义**
23 |
24 | 1.1 "本作品"指由著作权人依本许可证发布的原创性代码、文档及相关材料,不含明确标注的第三方组件。
25 | 1.2 "衍生作品"指符合下列任一情形的作品:
26 | (a) 全部或部分包含本作品原始表达元素的任何形式的成果,无论其载体形式或技术实现方式;
27 | (b) 与本作品形成单一功能性整体的成果,包括但不限于:
28 | - 通过静态链接/动态链接调用本作品功能模块;
29 | - 作为微服务架构中的依赖组件;
30 | - 以软件即服务(SaaS)形式提供本作品核心功能;
31 | (c) 任何实质上完全依赖本作品技术方案的成果,包括但不限于:
32 | - 通过反编译/反汇编获得的功能等效实现;
33 | 1.3 "学术发表"指在任何具有 ISSN/ISBN/DOI 等标识的正式学术渠道中,或在任何可能被正式学术渠道引用的平台(包括但不限于 arXiv)中,或在第 1.7 条中定义的学术竞赛中,公开发表包含本作品或其衍生作品的任何内容的行为。
34 | 1.4 "著作权人"指对本作品拥有**著作人格权**的自然人、法人或其他法律实体。
35 | 1.5 "被授权人"指根据本许可证条款获得使用、修改、分发代码等权利的主体。
36 | 1.6 "商业竞赛"指由任何商业实体作为主办、承办、出资或冠名单位的竞赛。
37 | 1.7 "学术竞赛"指符合以下任一条件的竞赛:
38 | (a) 由任何获得所在国家或地区主管部门认可的社会组织或学术机构(包括但不限于大学,研究院,科学协会等)作为主办、承办、出资或冠名单位的竞赛。
39 | (b) 由所在国家或地区的市级以上教育主管部门作为主办、承办、出资或冠名单位的竞赛。
40 | 1.8 "本许可证"指 AIPL 学术创新保护许可证第 1.1 版。
41 | 1.9 作品的 "源代码" 指对作品进行修改所首选的作品形式。
42 |
43 | ---
44 |
45 | **第 2 条 基础授权**
46 |
47 | 2.1 在不违反本许可证条款的前提下,被授权人享有以下非独占权利:
48 | (a) 复制、修改、执行本作品;
49 | (b) 在遵守本许可证第 6 条的前提下,使用本作品进行学术研究;
50 | (c) 依本许可证第 3 条分发衍生作品。
51 |
52 | 2.2 著作权人可自由使用其在本作品中的原创内容,不受本许可证限制。若本作品为多位著作权人的合作作品,则:
53 | (a) 各方对自身创作部分保留上述自由使用权;
54 | (b) 使用他人创作内容时,仍须以被授权人身份遵守本许可证条款。
55 |
56 | ---
57 |
58 | **第 3 条 分发**
59 |
60 | 3.1 被授权人分发本作品或其衍生作品**必须**同时满足:
61 | (a) 以显著方式提供完整的原始版权声明。
62 | (b) 公开提供完整的对应源代码,并确保不得采用混淆、加密或其他阻碍技术审查的手段。
63 | (c) 以显著方式标注本许可证名称及版本号。
64 | (d) 采用 AIPL-1.1 许可证。
65 |
66 | 3.2 被授权人**不得**以提供互联网服务为由,拒绝以可获取的方式提供本作品或其衍生作品的全部对应源代码。
67 |
68 | 3.3 禁止被授权人附加任何额外限制条款。
69 |
70 | ---
71 |
72 | **第 4 条 商业活动限制**
73 |
74 | 4.1 未经著作权人书面授权,**禁止**被授权人将本作品或其衍生作品用于:
75 | (a) 直接或间接获取经济利益;
76 | (b) 商业产品开发或服务运营;
77 | (c) 提升企业资产价值;
78 | (d) 竞标,投标等商业竞争行为;
79 | (e) 第 1.6 条中定义的商业竞赛;
80 | (f) 获取任意形式的第三方投资;
81 | (g) 其他任何具有商业性质的行为。
82 |
83 | 4.2 被授权人使用本作品或其衍生作品创作媒体或艺术作品,遵守以下全部条款的,无论是否获得经济利益,无需提前获得商业授权。著作权人保留对相关被授权人终止许可的权利:
84 | (a) 不得使用相关作品参加第 1.6 条中定义的商业竞赛;
85 | (b) 不得以任何方式损害著作权人的合法权益;
86 |
87 | 4.3 被授权人将本作品用于第 4.1 条规定的商业用途前,必须取得著作权人签署的纸质许可文件。
88 |
89 | 4.4 被授权人若将本作品集成至商业产品中,须自行履行相关法律规定的安全评估义务,包括但不限于向监管部门备案、配合执法机关依法调取数据等法定义务。
90 |
91 | ---
92 |
93 | **第 5 条 专利权限制**
94 |
95 | 5.1 被授权人使用本作品,即视为被授权人承诺不就本作品技术方案主张专利保护。
96 |
97 | 5.2 若被授权人持有与本作品相关的有效专利,应:
98 | (a) 授予所有本作品使用者免许可费的实施权;
99 | (b) 不得主张专利侵权。
100 |
101 | 5.3 任何由被授权人发起的针对本作品的专利侵权诉讼,将导致本许可终止。
102 |
103 | ---
104 |
105 | **第 6 条 竞争性学术使用限制**
106 |
107 | 6.1 未经书面"竞争性学术使用"授权,在本作品著作财产权有效期内,**禁止**被授权人将本作品或其衍生作品用于:
108 | (a) 任何为被授权人获取学术荣誉或资格的行为,如撰写学位论文,完成毕业设计等;
109 | (b) 参加第 1.7 条中定义的学术竞赛;
110 | (c) 进行第 1.3 条中定义的学术发表;
111 |
112 | 6.2 被授权人取得"竞争性学术使用"授权,必须满足以下所有条件:
113 | (a) 提交《竞争性学术使用申请书》,包含:
114 | - 个人的身份证明或组织的资质证明;
115 | - 拟使用本作品的范围,以及详细用途。
116 | (b) 收到著作权人作出的书面许可;
117 | (c) 被授权人获得"竞争性学术使用"授权后,仍须依本许可证第 3 条分发衍生作品。
118 |
119 | 6.3 在遵守第 6.1 条的前提下,被授权人将本作品或其衍生作品用于其他学术用途 (例如:授课,布置作业等),不受限制。
120 |
121 | ---
122 |
123 | **第 7 条 适用排除**
124 |
125 | 7.1 本许可证不适用于明确标注不在本许可证保护范围内的内容。
126 |
127 | 7.2 不在本许可证保护范围内的内容,遵守其原始许可证条款。
128 |
129 | ---
130 |
131 | **第 8 条 法律责任**
132 |
133 | 8.1 **禁止**被授权人将本作品或其衍生作品用于违反中华人民共和国法律的用途,包括但不限于:
134 | (a) 网络诈骗;
135 | (b) 洗钱;
136 | (c) 其他违法行为。
137 |
138 | 8.2 在使用本作品及其衍生作品前,被授权人需承诺其应用场景符合相关法律法规。
139 |
140 | 8.3 **著作权人明确不参与、不知晓且不认可任何非法使用行为**。任何使用本作品产生的法律后果由使用者自行承担。在适用法律允许的最大范围内,著作权人不承担因本作品被非法使用而导致的任何直接或间接法律责任。
141 |
142 | 8.4 著作权人有权对被授权人的违法滥用行为采取反制措施,包括但不限于:
143 | (a) 法律追诉;
144 | (b) 终止本许可证授予的权利;
145 | (c) 依法向有关部门举报。
146 |
147 | 8.5 本作品"按原样"提供,不包含任何形式的明示或默示保证,包括但不限于适销性、特定目的适用性及不侵权的保证。在任何情况下,无论是在合同、侵权或其他案件中,著作权人均不对因本作品、或因本作品的使用或其他利用而引起的、引发的或与之相关的任何权利主张、损害赔偿或其他责任承担责任。
148 |
149 | ---
150 |
151 | **第 9 条 许可终止**
152 |
153 | 9.1 被授权人违反本许可证的任一条款将自动导致许可终止,且必须:
154 | (a) 销毁所有作品副本;
155 | (b) 撤回已发布的衍生作品;
156 | (c) 撤回已发布的相关媒体或艺术作品;
157 | (d) 在相关学术数据库发布撤销声明;
158 | (e) 向相关竞赛组委会/学术机构提交违规使用告知函;
159 | (f) 如涉嫌违法或侵权,自行承担相关法律责任。
160 |
161 | 9.2 第 5 条所规定的专利条款的效力,不因许可终止而失效。
162 |
163 | ---
164 |
165 | **第 10 条 法律管辖和溯及力**
166 |
167 | 10.1 本许可证适用中华人民共和国法律,排除其国际私法。
168 |
169 | 10.2 本许可证适用于本作品自 2024 年 9 月 1 日 以来公开发布的所有版本和衍生版本。对于版本发布时使用不同许可证的,以本许可证为准。
170 |
171 | ---
172 |
173 | 本许可证文本以 CC-NC-ND 4.0 协议许可
174 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from "node:url";
2 |
3 | import fs from "fs";
4 | import path from "path";
5 |
6 | import { defineConfig } from "vite";
7 | import { VitePWA } from "vite-plugin-pwa";
8 | import vue from "@vitejs/plugin-vue";
9 | import viteCompression from "vite-plugin-compression";
10 | import terser from "@rollup/plugin-terser";
11 |
12 | let configStore;
13 | let outDir = "";
14 |
15 | // https://vitejs.dev/config/
16 | export default defineConfig({
17 | build: {
18 | minify: "terser",
19 | cssMinify: "esbuild",
20 | rollupOptions: {
21 | plugins: [
22 | terser({
23 | format: {
24 | // 取消代码注释
25 | comments: false
26 | },
27 |
28 | mangle: {
29 | keep_classnames: false,
30 | reserved: []
31 | }
32 | })
33 | ],
34 | output: {
35 | manualChunks: (id) => {
36 | if (id.includes("abracadabra-cn")) {
37 | return "abracadabra-cn";
38 | }
39 | if (id.includes("node_modules")) {
40 | return "deps";
41 | }
42 | }
43 | }
44 | }
45 | },
46 | plugins: [
47 | vue({
48 | template: {
49 | compilerOptions: {
50 | // 所有以 mdui- 开头的标签名都是 mdui 组件
51 | isCustomElement: (tag) => tag.startsWith("mdui-")
52 | }
53 | }
54 | }),
55 | VitePWA({
56 | manifest: {
57 | name: "魔曰",
58 | short_name: "Abracadabra",
59 | id: "abracadabra",
60 | start_url: ".",
61 | description: "对文字施以神秘魔法",
62 | theme_color: "#5753c9",
63 | icons: [
64 | //添加图标, 注意路径和图像像素正确
65 | {
66 | src: "favicon.webp",
67 | sizes: "1024x1024", //icon大小要与实际icon大小一致
68 | type: "image/webp"
69 | // form_factor: "handset",
70 | }
71 | ]
72 | },
73 | registerType: "autoUpdate",
74 | workbox: {
75 | globPatterns: ["**/*.{js,css,html,ico,png,jpg,svg,webp,woff2,ttf}"], //缓存相关静态资源
76 | runtimeCaching: [
77 | {
78 | urlPattern: /\.(?:png|jpg|jpeg|svg)$/,
79 | handler: "NetworkFirst",
80 | options: {
81 | cacheName: "wisbayar-images",
82 | expiration: {
83 | // 最多30个图
84 | maxEntries: 30
85 | }
86 | }
87 | },
88 | {
89 | urlPattern: /.*\.js.*/,
90 | handler: "StaleWhileRevalidate",
91 | options: {
92 | cacheName: "wisbayar-js",
93 | expiration: {
94 | maxEntries: 30, // 最多缓存30个,超过的按照LRU原则删除
95 | maxAgeSeconds: 30 * 24 * 60 * 60
96 | },
97 | cacheableResponse: {
98 | statuses: [200]
99 | }
100 | }
101 | },
102 | {
103 | urlPattern: /.*\.css.*/,
104 | handler: "StaleWhileRevalidate",
105 | options: {
106 | cacheName: "wisbayar-css",
107 | expiration: {
108 | maxEntries: 20,
109 | maxAgeSeconds: 30 * 24 * 60 * 60
110 | },
111 | cacheableResponse: {
112 | statuses: [200]
113 | }
114 | }
115 | },
116 | {
117 | urlPattern: /.*\.html.*/,
118 | handler: "StaleWhileRevalidate",
119 | options: {
120 | cacheName: "wisbayar-html",
121 | expiration: {
122 | maxEntries: 20,
123 | maxAgeSeconds: 30 * 24 * 60 * 60
124 | },
125 | cacheableResponse: {
126 | statuses: [200]
127 | }
128 | }
129 | }
130 | ]
131 | },
132 | devOptions: {
133 | enabled: true
134 | }
135 | }),
136 | {
137 | name: "Abracadabra-Favicon",
138 | apply: "build", // 只在生产构建时生效
139 | configResolved(config) {
140 | // 保存最终输出目录路径
141 | outDir = path.resolve(config.root, config.build.outDir);
142 | configStore = config;
143 | },
144 | async writeBundle() {
145 | // 自定义内容
146 | const TargetContentPath = path.join(configStore.root, "favicon.webp");
147 | const TargetContent = fs.readFileSync(TargetContentPath);
148 |
149 | //创建全新文件
150 | const newFilePath = path.join(outDir, "favicon.webp");
151 | fs.writeFileSync(newFilePath, TargetContent);
152 | }
153 | }
154 | ],
155 | base: "./",
156 | resolve: {
157 | alias: {
158 | "@": fileURLToPath(new URL("./src", import.meta.url)),
159 | vue: "vue/dist/vue.esm-bundler.js"
160 | }
161 | }
162 | });
163 |
--------------------------------------------------------------------------------
/docs/assets/index-CcQoAca9.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:SamsungSans;src:url(./SamsungSans-Regular-BsRQoNIc.ttf)}html,body{height:100%;width:100%;margin:0;padding:0;font-family:SamsungSans,"sans-serif"}h1{margin-top:unset}#main_content{width:100%;display:grid}@font-face{font-family:Material Icons Round;font-style:normal;font-weight:400;src:url(./mdui-round-DrirKXBx.woff2) format("woff2")}.material-icons-round{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased}#ImWindowContainer{position:absolute;display:flex;width:100%;top:0;height:100%;overflow-x:hidden;overflow-y:scroll;z-index:9}#ImContentContainer{position:absolute;width:100%;height:100%;top:0;z-index:7}#ImWindowContainer::-webkit-scrollbar{width:0!important}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in-out{0%{opacity:1}50%{opacity:.7}to{opacity:1}}@media screen and (max-width: 380px){body{background:url(./bg-BQx4j7kW.webp);background-size:cover;background-position:-340px;zoom:80%}}@media screen and (max-width: 420px) and (min-width: 380px){body{background:url(./bg-BQx4j7kW.webp);background-size:cover;background-position:-340px;zoom:90%}}@media screen and (max-width: 700px){body{background:url(./bg-BQx4j7kW.webp);background-size:cover;background-position:-340px}.small{zoom:76.5%;line-break:anywhere}#MagicBadge{position:absolute;display:grid;height:220px;width:100%;top:0;background-image:linear-gradient(0deg,#5753c900,#5753c91f 20%,#6e7ff378);grid-template-rows:min-content}#FunctionCard{width:390px;height:480px;position:relative;top:130px;padding:20px 15px 15px;align-self:center;justify-self:center;background:#0a021599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8}#FloatCard{width:390px;height:90px;background:#29323c;position:relative;justify-self:center;z-index:-1;top:140px;background:#0a021599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8;z-index:60}#GeekCard{width:390px;height:100%;background:#29323c;position:relative;justify-self:center;z-index:50;top:150px;background:#0a021599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8;transition:all cubic-bezier(.075,.82,.165,1)}.oldfloat{height:50px!important}#CryptControl{display:grid;width:219px;grid-template-columns:30% 30% 30% 30% 30% 30%;scale:.9;column-gap:2px;margin-top:-5px;align-content:center;font-size:16px}#PositionOccupie{display:block;width:390px;height:20px;background:transparent;position:relative;justify-self:center;z-index:-1;top:140px}}@media screen and (min-width: 700px){body{background:url(./bg-BQx4j7kW.webp);background-size:cover;background-position:center}.small{line-break:anywhere}#MagicBadge{position:absolute;display:grid;height:220px;width:100%;top:80px;background-image:linear-gradient(90deg,#5753c94d,#5753c900 20%);grid-template-rows:min-content}#FunctionCard{width:390px;height:480px;background:#0a021599;position:relative;float:right;left:calc(80% - 360px);top:70px;padding:20px 15px 15px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8}#FloatCard{width:150px;height:170px;position:relative;float:right;left:calc(80% - 520px);top:-110px;background:#0a021599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8;z-index:60}#GeekCard{width:550px;height:100%;position:relative;float:right;left:calc(80% - 520px);top:-90px;z-index:50;background:#0a021599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 20px #000000a8;transition:all cubic-bezier(.075,.82,.165,1)}.oldfloat{height:130px!important;top:-80px!important}#CryptControl{display:grid;grid-template-columns:50% 50%;grid-template-rows:40px 40px 40px;scale:.9;column-gap:10px;margin-top:-5px;align-content:center;font-size:16px}#PositionOccupie{display:none}}mdui-text-field::part(label){background-color:transparent}mdui-text-field::part(input){scrollbar-width:none;line-break:anywhere}.ImScrollBarTrack{position:fixed;transition:opacity .1s linear;opacity:0;border-radius:100px;z-index:8;background-color:rgb(var(--mdui-color-surface-bright));align-self:center}.ImScrollBarTrack:hover{opacity:.701}.ImScrollBarThumb{position:absolute;background-color:rgb(var(--mdui-color-tertiary-light));opacity:inherit;border-radius:100px}.baseCard{background-color:rgb(var(--mdui-color-secondary-container));color:rgb(var(--mdui-color-secondary));padding:10px;overflow:hidden;display:flex;z-index:3}.rawCard{background:rgb(var(--mdui-color-secondary-container));color:rgb(var(--mdui-color-secondary));padding:10px;transition:all 1s ease;overflow:hidden;display:flex;z-index:3}.cardIcon{font-size:120px!important;top:-10px;right:-15px;position:absolute;opacity:.15;z-index:4;color:#000}.cardContent{display:grid;width:100%;height:100%;color:#fff}
2 |
--------------------------------------------------------------------------------
/src/assets/ImMainView.css:
--------------------------------------------------------------------------------
1 | #ImWindowContainer {
2 | position: absolute;
3 | display: flex;
4 | width: 100%;
5 | top: 0px;
6 | height: 100%;
7 | overflow-x: hidden;
8 | overflow-y: scroll;
9 | z-index: 9;
10 | }
11 | #ImContentContainer {
12 | position: absolute;
13 | width: 100%;
14 | height: 100%;
15 | top: 0px;
16 | z-index: 7;
17 | }
18 | #ImWindowContainer::-webkit-scrollbar {
19 | width: 0 !important;
20 | }
21 | @keyframes rotate {
22 | from {
23 | transform: rotate(0deg);
24 | }
25 | to {
26 | transform: rotate(360deg);
27 | }
28 | }
29 | @keyframes fade-in-out {
30 | 0% {
31 | opacity: 1;
32 | }
33 | 50% {
34 | opacity: 0.7;
35 | }
36 | 100% {
37 | opacity: 1;
38 | }
39 | }
40 |
41 | @media screen and (max-width: 380px) {
42 | body {
43 | background: url("./bg.webp");
44 | background-size: cover;
45 | background-position: -340px;
46 | zoom: 80%;
47 | }
48 | }
49 |
50 | @media screen and (max-width: 420px) and (min-width: 380px) {
51 | body {
52 | background: url("./bg.webp");
53 | background-size: cover;
54 | background-position: -340px;
55 | zoom: 90%;
56 | }
57 | }
58 |
59 | @media screen and (max-width: 700px) {
60 | body {
61 | background: url("./bg.webp");
62 | background-size: cover;
63 | background-position: -340px;
64 | }
65 | .small {
66 | zoom: 76.5%;
67 | line-break: anywhere;
68 | }
69 | #MagicBadge {
70 | position: absolute;
71 | display: grid;
72 | height: 220px;
73 | width: 100%;
74 | top: 0px;
75 | background-image: linear-gradient(0deg, #5753c900 0%, #5753c91f 20%, #6e7ff378 100%);
76 | grid-template-rows: min-content;
77 | }
78 | #FunctionCard {
79 | width: 390px;
80 | height: 480px;
81 | position: relative;
82 | top: 130px;
83 | padding: 20px 15px 15px;
84 | align-self: center;
85 | justify-self: center;
86 | background: rgb(10 2 21 / 60%);
87 | backdrop-filter: blur(4px);
88 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
89 | }
90 | #FloatCard {
91 | width: 390px;
92 | height: 90px;
93 | background: rgb(41, 50, 60);
94 | position: relative;
95 | justify-self: center;
96 | z-index: -1;
97 | top: 140px;
98 | background: rgb(10 2 21 / 60%);
99 | backdrop-filter: blur(4px);
100 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
101 | z-index: 60;
102 | }
103 | #GeekCard {
104 | width: 390px;
105 | height: 100%;
106 | background: rgb(41, 50, 60);
107 | position: relative;
108 | justify-self: center;
109 | z-index: 50;
110 | top: 150px;
111 | background: rgb(10 2 21 / 60%);
112 | backdrop-filter: blur(4px);
113 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
114 | transition: all cubic-bezier(0.075, 0.82, 0.165, 1);
115 | }
116 | .oldfloat {
117 | height: 50px !important;
118 | }
119 | #CryptControl {
120 | display: grid;
121 | width: 219px;
122 | grid-template-columns: 30% 30% 30% 30% 30% 30%;
123 | scale: 0.9;
124 | column-gap: 2px;
125 | margin-top: -5px;
126 | align-content: center;
127 | font-size: 16px;
128 | }
129 | #PositionOccupie {
130 | display: block;
131 | width: 390px;
132 | height: 20px;
133 | background: transparent;
134 | position: relative;
135 | justify-self: center;
136 | z-index: -1;
137 | top: 140px;
138 | }
139 | }
140 |
141 | @media screen and (min-width: 700px) {
142 | body {
143 | background: url("./bg.webp");
144 | background-size: cover;
145 | background-position: center;
146 | }
147 | .small {
148 | line-break: anywhere;
149 | }
150 | #MagicBadge {
151 | position: absolute;
152 | display: grid;
153 | height: 220px;
154 | width: 100%;
155 | top: 80px;
156 | /*background-image: linear-gradient(
157 | -435deg,
158 | #5753c9b5 0%,
159 | #5753c900 35%,
160 | #5753c9 85%,
161 | #6e7ff3 100%
162 | );*/
163 | background-image: linear-gradient(90deg, #5753c94d 0%, #5753c900 20%);
164 | grid-template-rows: min-content;
165 | }
166 | #FunctionCard {
167 | width: 390px;
168 | height: 480px;
169 | background: rgb(10 2 21 / 60%);
170 | position: relative;
171 | float: right;
172 | left: calc(80% - 360px);
173 | top: 70px;
174 | padding: 20px 15px 15px;
175 | backdrop-filter: blur(4px);
176 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
177 | }
178 | #FloatCard {
179 | width: 150px;
180 | height: 170px;
181 | position: relative;
182 | float: right;
183 | left: calc(80% - 520px);
184 | top: -110px;
185 | background: rgb(10 2 21 / 60%);
186 | backdrop-filter: blur(4px);
187 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
188 | z-index: 60;
189 | }
190 | #GeekCard {
191 | width: 550px;
192 | height: 100%;
193 | position: relative;
194 | float: right;
195 | left: calc(80% - 520px);
196 | top: -90px;
197 | z-index: 50;
198 | background: rgb(10 2 21 / 60%);
199 | backdrop-filter: blur(4px);
200 | box-shadow: 0px 6px 20px 0px rgb(0 0 0 / 66%);
201 | transition: all cubic-bezier(0.075, 0.82, 0.165, 1);
202 | }
203 | .oldfloat {
204 | height: 130px !important;
205 | top: -80px !important;
206 | }
207 | #CryptControl {
208 | display: grid;
209 | grid-template-columns: 50% 50%;
210 | grid-template-rows: 40px 40px 40px;
211 | scale: 0.9;
212 | column-gap: 10px;
213 | margin-top: -5px;
214 | align-content: center;
215 | font-size: 16px;
216 | }
217 | #PositionOccupie {
218 | display: none;
219 | }
220 | }
221 |
222 | mdui-text-field::part(label) {
223 | background-color: transparent;
224 | }
225 |
226 | mdui-text-field::part(input) {
227 | scrollbar-width: none;
228 | line-break: anywhere;
229 | }
230 |
--------------------------------------------------------------------------------
/src/components/ImScrollBar.vue:
--------------------------------------------------------------------------------
1 |
298 |
299 |
300 |
308 |
309 |
--------------------------------------------------------------------------------
/patches/mdui+2.1.3.patch:
--------------------------------------------------------------------------------
1 | diff --git a/node_modules/mdui/components/text-field/style.js b/node_modules/mdui/components/text-field/style.js
2 | index 2b52d70..8cb28c4 100644
3 | --- a/node_modules/mdui/components/text-field/style.js
4 | +++ b/node_modules/mdui/components/text-field/style.js
5 | @@ -1,2 +1,2 @@
6 | import { css } from 'lit';
7 | -export const style = css `:host{display:inline-block;width:100%}:host([disabled]:not([disabled=false i])){pointer-events:none}:host([type=hidden]){display:none}.container{position:relative;display:flex;align-items:center;height:100%;padding:.125rem .125rem .125rem 1rem;transition:box-shadow var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard)}.container.has-icon{padding-left:.75rem}.container.has-action,.container.has-right-icon,.container.has-suffix{padding-right:.75rem}:host([variant=filled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface-variant));background-color:rgb(var(--mdui-color-surface-container-highest));border-radius:var(--mdui-shape-corner-extra-small) var(--mdui-shape-corner-extra-small) 0 0}:host([variant=filled]) .container.invalid,:host([variant=filled]) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled]:hover) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .container.invalid,:host([variant=filled]:hover) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .container,:host([variant=filled][focused]) .container{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-primary))}:host([variant=filled][focused-style]) .container.invalid,:host([variant=filled][focused-style]) .container.invalid-style,:host([variant=filled][focused]) .container.invalid,:host([variant=filled][focused]) .container.invalid-style{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled][disabled]:not([disabled=false i])) .container{box-shadow:inset 0 -.0625rem 0 0 rgba(var(--mdui-color-on-surface),38%);background-color:rgba(var(--mdui-color-on-surface),4%)}:host([variant=outlined]) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-outline));border-radius:var(--mdui-shape-corner-extra-small)}:host([variant=outlined]) .container.invalid,:host([variant=outlined]) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-error))}:host([variant=outlined]:hover) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-surface))}:host([variant=outlined]:hover) .container.invalid,:host([variant=outlined]:hover) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-error-container))}:host([variant=outlined][focused-style]) .container,:host([variant=outlined][focused]) .container{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-primary))}:host([variant=outlined][focused-style]) .container.invalid,:host([variant=outlined][focused-style]) .container.invalid-style,:host([variant=outlined][focused]) .container.invalid,:host([variant=outlined][focused]) .container.invalid-style{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-error))}:host([variant=outlined][disabled]:not([disabled=false i])) .container{box-shadow:inset 0 0 0 .125rem rgba(var(--mdui-color-on-surface),12%)}.action,.icon,.prefix,.right-icon,.suffix{display:flex;-webkit-user-select:none;user-select:none;color:rgb(var(--mdui-color-on-surface-variant))}:host([disabled]:not([disabled=false i])) .action,:host([disabled]:not([disabled=false i])) .icon,:host([disabled]:not([disabled=false i])) .prefix,:host([disabled]:not([disabled=false i])) .right-icon,:host([disabled]:not([disabled=false i])) .suffix{color:rgba(var(--mdui-color-on-surface),38%)}.invalid .right-icon,.invalid-style .right-icon{color:rgb(var(--mdui-color-error))}:host(:hover) .invalid .right-icon,:host(:hover) .invalid-style .right-icon{color:rgb(var(--mdui-color-on-error-container))}:host([focused-style]) .invalid .right-icon,:host([focused-style]) .invalid-style .right-icon,:host([focused]) .invalid .right-icon,:host([focused]) .invalid-style .right-icon{color:rgb(var(--mdui-color-error))}.action,.icon,.right-icon{font-size:1.5rem}.action mdui-button-icon,.icon mdui-button-icon,.right-icon mdui-button-icon,::slotted(mdui-button-icon[slot]){margin-left:-.5rem;margin-right:-.5rem}.action .i,.icon .i,.right-icon .i,::slotted([slot$=icon]){font-size:inherit}.has-icon .icon{margin-right:1rem}.has-prefix .prefix{padding-right:.125rem}.has-action .action{margin-left:.75rem}.has-suffix .suffix{padding-right:.25rem;padding-left:.125rem}.has-right-icon .right-icon{margin-left:.75rem}.prefix,.suffix{display:none;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}:host([variant=filled][label]) .prefix,:host([variant=filled][label]) .suffix{padding-top:1rem}.has-value .prefix,.has-value .suffix,:host([focused-style]) .prefix,:host([focused-style]) .suffix,:host([focused]) .prefix,:host([focused]) .suffix{display:flex}.input-container{display:flex;width:100%;height:100%}.label{position:absolute;pointer-events:none;max-width:calc(100% - 1rem);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;transition:all var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard);top:1rem;color:rgb(var(--mdui-color-on-surface-variant));font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}.invalid .label,.invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=outlined]) .label{padding:0 .25rem;margin:0 -.25rem}:host([variant=outlined]:hover) .label{color:rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .invalid .label,:host([variant=filled]:hover) .invalid-style .label,:host([variant=outlined]:hover) .invalid .label,:host([variant=outlined]:hover) .invalid-style .label{color:rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label{color:rgb(var(--mdui-color-primary))}:host([variant=filled]) .has-value .label,:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=filled][type=date]) .label,:host([variant=filled][type=datetime-local]) .label,:host([variant=filled][type=month]) .label,:host([variant=filled][type=time]) .label,:host([variant=filled][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:.25rem}:host([variant=outlined]) .has-value .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label,:host([variant=outlined][type=date]) .label,:host([variant=outlined][type=datetime-local]) .label,:host([variant=outlined][type=month]) .label,:host([variant=outlined][type=time]) .label,:host([variant=outlined][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:-.5rem;left:.75rem;background-color:rgb(var(--mdui-color-background))}:host([variant=filled][focused-style]) .invalid .label,:host([variant=filled][focused-style]) .invalid-style .label,:host([variant=filled][focused]) .invalid .label,:host([variant=filled][focused]) .invalid-style .label,:host([variant=outlined][focused-style]) .invalid .label,:host([variant=outlined][focused-style]) .invalid-style .label,:host([variant=outlined][focused]) .invalid .label,:host([variant=outlined][focused]) .invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=filled][disabled]:not([disabled=false i])) .label,:host([variant=outlined][disabled]:not([disabled=false i])) .label{color:rgba(var(--mdui-color-on-surface),38%)}.input{display:block;width:100%;border:none;outline:0;background:0 0;appearance:none;resize:none;cursor:inherit;font-family:inherit;padding:.875rem .875rem .875rem 0;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height);color:rgb(var(--mdui-color-on-surface));caret-color:rgb(var(--mdui-color-primary))}.has-action .input,.has-right-icon .input{padding-right:.25rem}.has-suffix .input{padding-right:0}.input.hide-input{opacity:0;height:0;min-height:0;width:0;padding:0!important;overflow:hidden}.input::placeholder{color:rgb(var(--mdui-color-on-surface-variant))}.invalid .input,.invalid-style .input{caret-color:rgb(var(--mdui-color-error))}:host([disabled]:not([disabled=false i])) .input{color:rgba(var(--mdui-color-on-surface),38%)}:host([end-aligned]:not([end-aligned=false i])) .input{text-align:right}textarea.input{padding-top:0;margin-top:.875rem}:host([variant=filled]) .label+.input{padding-top:1.375rem;padding-bottom:.375rem}:host([variant=filled]) .label+textarea.input{padding-top:0;margin-top:1.375rem}.supporting{display:flex;justify-content:space-between;padding:.25rem 1rem;color:rgb(var(--mdui-color-on-surface-variant))}.supporting.invalid,.supporting.invalid-style{color:rgb(var(--mdui-color-error))}.helper{display:block;opacity:1;transition:opacity var(--mdui-motion-duration-short4) var(--mdui-motion-easing-linear);font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}:host([disabled]:not([disabled=false i])) .helper{color:rgba(var(--mdui-color-on-surface),38%)}:host([helper-on-focus]:not([helper-on-focus=false i])) .helper{opacity:0}:host([helper-on-focus][focused-style]:not([helper-on-focus=false i])) .helper,:host([helper-on-focus][focused]:not([helper-on-focus=false i])) .helper{opacity:1}.error{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}.counter{flex-wrap:nowrap;padding-left:1rem;font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}::-ms-reveal{display:none}.input[type=number]::-webkit-inner-spin-button,.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none}.input[type=number]{-moz-appearance:textfield}.input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}`;
8 | +export const style = css `:host{display:inline-block;width:100%}:host([disabled]:not([disabled=false i])){pointer-events:none}:host([type=hidden]){display:none}.container{position:relative;display:flex;align-items:center;height:100%;padding:.125rem .125rem .125rem 1rem;transition:box-shadow var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard)}.container.has-icon{padding-left:.75rem}.container.has-action,.container.has-right-icon,.container.has-suffix{padding-right:.75rem}:host([variant=filled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface-variant));background-color:rgb(var(--mdui-color-surface-container-highest));border-radius:var(--mdui-shape-corner-extra-small) var(--mdui-shape-corner-extra-small) 0 0}:host([variant=filled]) .container.invalid,:host([variant=filled]) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled]:hover) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .container.invalid,:host([variant=filled]:hover) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .container,:host([variant=filled][focused]) .container{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-primary))}:host([variant=filled][focused-style]) .container.invalid,:host([variant=filled][focused-style]) .container.invalid-style,:host([variant=filled][focused]) .container.invalid,:host([variant=filled][focused]) .container.invalid-style{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled][disabled]:not([disabled=false i])) .container{box-shadow:inset 0 -.0625rem 0 0 rgba(var(--mdui-color-on-surface),38%);background-color:rgba(var(--mdui-color-on-surface),4%)}:host([variant=outlined]) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-outline));border-radius:var(--mdui-shape-corner-extra-small)}:host([variant=outlined]) .container.invalid,:host([variant=outlined]) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-error))}:host([variant=outlined]:hover) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-surface))}:host([variant=outlined]:hover) .container.invalid,:host([variant=outlined]:hover) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-error-container))}:host([variant=outlined][focused-style]) .container,:host([variant=outlined][focused]) .container{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-primary))}:host([variant=outlined][focused-style]) .container.invalid,:host([variant=outlined][focused-style]) .container.invalid-style,:host([variant=outlined][focused]) .container.invalid,:host([variant=outlined][focused]) .container.invalid-style{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-error))}:host([variant=outlined][disabled]:not([disabled=false i])) .container{box-shadow:inset 0 0 0 .125rem rgba(var(--mdui-color-on-surface),12%)}.action,.icon,.prefix,.right-icon,.suffix{display:flex;-webkit-user-select:none;user-select:none;color:rgb(var(--mdui-color-on-surface-variant))}:host([disabled]:not([disabled=false i])) .action,:host([disabled]:not([disabled=false i])) .icon,:host([disabled]:not([disabled=false i])) .prefix,:host([disabled]:not([disabled=false i])) .right-icon,:host([disabled]:not([disabled=false i])) .suffix{color:rgba(var(--mdui-color-on-surface),38%)}.invalid .right-icon,.invalid-style .right-icon{color:rgb(var(--mdui-color-error))}:host(:hover) .invalid .right-icon,:host(:hover) .invalid-style .right-icon{color:rgb(var(--mdui-color-on-error-container))}:host([focused-style]) .invalid .right-icon,:host([focused-style]) .invalid-style .right-icon,:host([focused]) .invalid .right-icon,:host([focused]) .invalid-style .right-icon{color:rgb(var(--mdui-color-error))}.action,.icon,.right-icon{font-size:1.5rem}.action mdui-button-icon,.icon mdui-button-icon,.right-icon mdui-button-icon,::slotted(mdui-button-icon[slot]){margin-left:-.5rem;margin-right:-.5rem}.action .i,.icon .i,.right-icon .i,::slotted([slot$=icon]){font-size:inherit}.has-icon .icon{margin-right:1rem}.has-prefix .prefix{padding-right:.125rem}.has-action .action{margin-left:.75rem}.has-suffix .suffix{padding-right:.25rem;padding-left:.125rem}.has-right-icon .right-icon{margin-left:.75rem}.prefix,.suffix{display:none;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}:host([variant=filled][label]) .prefix,:host([variant=filled][label]) .suffix{padding-top:1rem}.has-value .prefix,.has-value .suffix,:host([focused-style]) .prefix,:host([focused-style]) .suffix,:host([focused]) .prefix,:host([focused]) .suffix{display:flex}.input-container{display:flex;width:100%;height:100%}.label{position:absolute;pointer-events:none;max-width:calc(100% - 1rem);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;transition:all var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard);top:1rem;color:rgb(var(--mdui-color-on-surface-variant));font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}.invalid .label,.invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=outlined]) .label{padding:0 .25rem;margin:0 -.25rem}:host([variant=outlined]:hover) .label{color:rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .invalid .label,:host([variant=filled]:hover) .invalid-style .label,:host([variant=outlined]:hover) .invalid .label,:host([variant=outlined]:hover) .invalid-style .label{color:rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label{color:transparent;}:host([variant=filled]) .has-value .label,:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=filled][type=date]) .label,:host([variant=filled][type=datetime-local]) .label,:host([variant=filled][type=month]) .label,:host([variant=filled][type=time]) .label,:host([variant=filled][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:.25rem}:host([variant=outlined]) .has-value .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label,:host([variant=outlined][type=date]) .label,:host([variant=outlined][type=datetime-local]) .label,:host([variant=outlined][type=month]) .label,:host([variant=outlined][type=time]) .label,:host([variant=outlined][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:-.5rem;left:.75rem;color:transparent;background-color:rgb(var(--mdui-color-background))}:host([variant=filled][focused-style]) .invalid .label,:host([variant=filled][focused-style]) .invalid-style .label,:host([variant=filled][focused]) .invalid .label,:host([variant=filled][focused]) .invalid-style .label,:host([variant=outlined][focused-style]) .invalid .label,:host([variant=outlined][focused-style]) .invalid-style .label,:host([variant=outlined][focused]) .invalid .label,:host([variant=outlined][focused]) .invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=filled][disabled]:not([disabled=false i])) .label,:host([variant=outlined][disabled]:not([disabled=false i])) .label{color:rgba(var(--mdui-color-on-surface),38%)}.input{display:block;width:100%;border:none;outline:0;background:0 0;appearance:none;resize:none;cursor:inherit;font-family:inherit;padding:.875rem .875rem .875rem 0;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height);color:rgb(var(--mdui-color-on-surface));caret-color:rgb(var(--mdui-color-primary))}.has-action .input,.has-right-icon .input{padding-right:.25rem}.has-suffix .input{padding-right:0}.input.hide-input{opacity:0;height:0;min-height:0;width:0;padding:0!important;overflow:hidden}.input::placeholder{color:rgb(var(--mdui-color-on-surface-variant))}.invalid .input,.invalid-style .input{caret-color:rgb(var(--mdui-color-error))}:host([disabled]:not([disabled=false i])) .input{color:rgba(var(--mdui-color-on-surface),38%)}:host([end-aligned]:not([end-aligned=false i])) .input{text-align:right}textarea.input{padding-top:0;margin-top:.875rem}:host([variant=filled]) .label+.input{padding-top:1.375rem;padding-bottom:.375rem}:host([variant=filled]) .label+textarea.input{padding-top:0;margin-top:1.375rem}.supporting{display:flex;justify-content:space-between;padding:.25rem 1rem;color:rgb(var(--mdui-color-on-surface-variant))}.supporting.invalid,.supporting.invalid-style{color:rgb(var(--mdui-color-error))}.helper{display:block;opacity:1;transition:opacity var(--mdui-motion-duration-short4) var(--mdui-motion-easing-linear);font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}:host([disabled]:not([disabled=false i])) .helper{color:rgba(var(--mdui-color-on-surface),38%)}:host([helper-on-focus]:not([helper-on-focus=false i])) .helper{opacity:0}:host([helper-on-focus][focused-style]:not([helper-on-focus=false i])) .helper,:host([helper-on-focus][focused]:not([helper-on-focus=false i])) .helper{opacity:1}.error{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}.counter{flex-wrap:nowrap;padding-left:1rem;font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}::-ms-reveal{display:none}.input[type=number]::-webkit-inner-spin-button,.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none}.input[type=number]{-moz-appearance:textfield}.input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}`;
9 |
--------------------------------------------------------------------------------
/docs/assets/deps-PoZXHJHQ.css:
--------------------------------------------------------------------------------
1 | :root{--mdui-breakpoint-xs:0px;--mdui-breakpoint-sm:600px;--mdui-breakpoint-md:840px;--mdui-breakpoint-lg:1080px;--mdui-breakpoint-xl:1440px;--mdui-breakpoint-xxl:1920px}:root{--mdui-color-primary-light:103,80,164;--mdui-color-primary-container-light:234,221,255;--mdui-color-on-primary-light:255,255,255;--mdui-color-on-primary-container-light:33,0,94;--mdui-color-inverse-primary-light:208,188,255;--mdui-color-secondary-light:98,91,113;--mdui-color-secondary-container-light:232,222,248;--mdui-color-on-secondary-light:255,255,255;--mdui-color-on-secondary-container-light:30,25,43;--mdui-color-tertiary-light:125,82,96;--mdui-color-tertiary-container-light:255,216,228;--mdui-color-on-tertiary-light:255,255,255;--mdui-color-on-tertiary-container-light:55,11,30;--mdui-color-surface-light:254,247,255;--mdui-color-surface-dim-light:222,216,225;--mdui-color-surface-bright-light:254,247,255;--mdui-color-surface-container-lowest-light:255,255,255;--mdui-color-surface-container-low-light:247,242,250;--mdui-color-surface-container-light:243,237,247;--mdui-color-surface-container-high-light:236,230,240;--mdui-color-surface-container-highest-light:230,224,233;--mdui-color-surface-variant-light:231,224,236;--mdui-color-on-surface-light:28,27,31;--mdui-color-on-surface-variant-light:73,69,78;--mdui-color-inverse-surface-light:49,48,51;--mdui-color-inverse-on-surface-light:244,239,244;--mdui-color-background-light:254,247,255;--mdui-color-on-background-light:28,27,31;--mdui-color-error-light:179,38,30;--mdui-color-error-container-light:249,222,220;--mdui-color-on-error-light:255,255,255;--mdui-color-on-error-container-light:65,14,11;--mdui-color-outline-light:121,116,126;--mdui-color-outline-variant-light:196,199,197;--mdui-color-shadow-light:0,0,0;--mdui-color-surface-tint-color-light:103,80,164;--mdui-color-scrim-light:0,0,0;--mdui-color-primary-dark:208,188,255;--mdui-color-primary-container-dark:79,55,139;--mdui-color-on-primary-dark:55,30,115;--mdui-color-on-primary-container-dark:234,221,255;--mdui-color-inverse-primary-dark:103,80,164;--mdui-color-secondary-dark:204,194,220;--mdui-color-secondary-container-dark:74,68,88;--mdui-color-on-secondary-dark:51,45,65;--mdui-color-on-secondary-container-dark:232,222,248;--mdui-color-tertiary-dark:239,184,200;--mdui-color-tertiary-container-dark:99,59,72;--mdui-color-on-tertiary-dark:73,37,50;--mdui-color-on-tertiary-container-dark:255,216,228;--mdui-color-surface-dark:20,18,24;--mdui-color-surface-dim-dark:20,18,24;--mdui-color-surface-bright-dark:59,56,62;--mdui-color-surface-container-lowest-dark:15,13,19;--mdui-color-surface-container-low-dark:29,27,32;--mdui-color-surface-container-dark:33,31,38;--mdui-color-surface-container-high-dark:43,41,48;--mdui-color-surface-container-highest-dark:54,52,59;--mdui-color-surface-variant-dark:73,69,79;--mdui-color-on-surface-dark:230,225,229;--mdui-color-on-surface-variant-dark:202,196,208;--mdui-color-inverse-surface-dark:230,225,229;--mdui-color-inverse-on-surface-dark:49,48,51;--mdui-color-background-dark:20,18,24;--mdui-color-on-background-dark:230,225,229;--mdui-color-error-dark:242,184,181;--mdui-color-error-container-dark:140,29,24;--mdui-color-on-error-dark:96,20,16;--mdui-color-on-error-container-dark:249,222,220;--mdui-color-outline-dark:147,143,153;--mdui-color-outline-variant-dark:68,71,70;--mdui-color-shadow-dark:0,0,0;--mdui-color-surface-tint-color-dark:208,188,255;--mdui-color-scrim-dark:0,0,0;font-size:16px}.mdui-theme-light,:root{color-scheme:light;--mdui-color-primary:var(--mdui-color-primary-light);--mdui-color-primary-container:var(--mdui-color-primary-container-light);--mdui-color-on-primary:var(--mdui-color-on-primary-light);--mdui-color-on-primary-container:var(--mdui-color-on-primary-container-light);--mdui-color-inverse-primary:var(--mdui-color-inverse-primary-light);--mdui-color-secondary:var(--mdui-color-secondary-light);--mdui-color-secondary-container:var(--mdui-color-secondary-container-light);--mdui-color-on-secondary:var(--mdui-color-on-secondary-light);--mdui-color-on-secondary-container:var(--mdui-color-on-secondary-container-light);--mdui-color-tertiary:var(--mdui-color-tertiary-light);--mdui-color-tertiary-container:var(--mdui-color-tertiary-container-light);--mdui-color-on-tertiary:var(--mdui-color-on-tertiary-light);--mdui-color-on-tertiary-container:var(--mdui-color-on-tertiary-container-light);--mdui-color-surface:var(--mdui-color-surface-light);--mdui-color-surface-dim:var(--mdui-color-surface-dim-light);--mdui-color-surface-bright:var(--mdui-color-surface-bright-light);--mdui-color-surface-container-lowest:var(--mdui-color-surface-container-lowest-light);--mdui-color-surface-container-low:var(--mdui-color-surface-container-low-light);--mdui-color-surface-container:var(--mdui-color-surface-container-light);--mdui-color-surface-container-high:var(--mdui-color-surface-container-high-light);--mdui-color-surface-container-highest:var(--mdui-color-surface-container-highest-light);--mdui-color-surface-variant:var(--mdui-color-surface-variant-light);--mdui-color-on-surface:var(--mdui-color-on-surface-light);--mdui-color-on-surface-variant:var(--mdui-color-on-surface-variant-light);--mdui-color-inverse-surface:var(--mdui-color-inverse-surface-light);--mdui-color-inverse-on-surface:var(--mdui-color-inverse-on-surface-light);--mdui-color-background:var(--mdui-color-background-light);--mdui-color-on-background:var(--mdui-color-on-background-light);--mdui-color-error:var(--mdui-color-error-light);--mdui-color-error-container:var(--mdui-color-error-container-light);--mdui-color-on-error:var(--mdui-color-on-error-light);--mdui-color-on-error-container:var(--mdui-color-on-error-container-light);--mdui-color-outline:var(--mdui-color-outline-light);--mdui-color-outline-variant:var(--mdui-color-outline-variant-light);--mdui-color-shadow:var(--mdui-color-shadow-light);--mdui-color-surface-tint-color:var(--mdui-color-surface-tint-color-light);--mdui-color-scrim:var(--mdui-color-scrim-light);color:rgb(var(--mdui-color-on-background));background-color:rgb(var(--mdui-color-background))}.mdui-theme-dark{color-scheme:dark;--mdui-color-primary:var(--mdui-color-primary-dark);--mdui-color-primary-container:var(--mdui-color-primary-container-dark);--mdui-color-on-primary:var(--mdui-color-on-primary-dark);--mdui-color-on-primary-container:var(--mdui-color-on-primary-container-dark);--mdui-color-inverse-primary:var(--mdui-color-inverse-primary-dark);--mdui-color-secondary:var(--mdui-color-secondary-dark);--mdui-color-secondary-container:var(--mdui-color-secondary-container-dark);--mdui-color-on-secondary:var(--mdui-color-on-secondary-dark);--mdui-color-on-secondary-container:var(--mdui-color-on-secondary-container-dark);--mdui-color-tertiary:var(--mdui-color-tertiary-dark);--mdui-color-tertiary-container:var(--mdui-color-tertiary-container-dark);--mdui-color-on-tertiary:var(--mdui-color-on-tertiary-dark);--mdui-color-on-tertiary-container:var(--mdui-color-on-tertiary-container-dark);--mdui-color-surface:var(--mdui-color-surface-dark);--mdui-color-surface-dim:var(--mdui-color-surface-dim-dark);--mdui-color-surface-bright:var(--mdui-color-surface-bright-dark);--mdui-color-surface-container-lowest:var(--mdui-color-surface-container-lowest-dark);--mdui-color-surface-container-low:var(--mdui-color-surface-container-low-dark);--mdui-color-surface-container:var(--mdui-color-surface-container-dark);--mdui-color-surface-container-high:var(--mdui-color-surface-container-high-dark);--mdui-color-surface-container-highest:var(--mdui-color-surface-container-highest-dark);--mdui-color-surface-variant:var(--mdui-color-surface-variant-dark);--mdui-color-on-surface:var(--mdui-color-on-surface-dark);--mdui-color-on-surface-variant:var(--mdui-color-on-surface-variant-dark);--mdui-color-inverse-surface:var(--mdui-color-inverse-surface-dark);--mdui-color-inverse-on-surface:var(--mdui-color-inverse-on-surface-dark);--mdui-color-background:var(--mdui-color-background-dark);--mdui-color-on-background:var(--mdui-color-on-background-dark);--mdui-color-error:var(--mdui-color-error-dark);--mdui-color-error-container:var(--mdui-color-error-container-dark);--mdui-color-on-error:var(--mdui-color-on-error-dark);--mdui-color-on-error-container:var(--mdui-color-on-error-container-dark);--mdui-color-outline:var(--mdui-color-outline-dark);--mdui-color-outline-variant:var(--mdui-color-outline-variant-dark);--mdui-color-shadow:var(--mdui-color-shadow-dark);--mdui-color-surface-tint-color:var(--mdui-color-surface-tint-color-dark);--mdui-color-scrim:var(--mdui-color-scrim-dark);color:rgb(var(--mdui-color-on-background));background-color:rgb(var(--mdui-color-background))}@media (prefers-color-scheme:dark){.mdui-theme-auto{color-scheme:dark;--mdui-color-primary:var(--mdui-color-primary-dark);--mdui-color-primary-container:var(--mdui-color-primary-container-dark);--mdui-color-on-primary:var(--mdui-color-on-primary-dark);--mdui-color-on-primary-container:var(--mdui-color-on-primary-container-dark);--mdui-color-inverse-primary:var(--mdui-color-inverse-primary-dark);--mdui-color-secondary:var(--mdui-color-secondary-dark);--mdui-color-secondary-container:var(--mdui-color-secondary-container-dark);--mdui-color-on-secondary:var(--mdui-color-on-secondary-dark);--mdui-color-on-secondary-container:var(--mdui-color-on-secondary-container-dark);--mdui-color-tertiary:var(--mdui-color-tertiary-dark);--mdui-color-tertiary-container:var(--mdui-color-tertiary-container-dark);--mdui-color-on-tertiary:var(--mdui-color-on-tertiary-dark);--mdui-color-on-tertiary-container:var(--mdui-color-on-tertiary-container-dark);--mdui-color-surface:var(--mdui-color-surface-dark);--mdui-color-surface-dim:var(--mdui-color-surface-dim-dark);--mdui-color-surface-bright:var(--mdui-color-surface-bright-dark);--mdui-color-surface-container-lowest:var(--mdui-color-surface-container-lowest-dark);--mdui-color-surface-container-low:var(--mdui-color-surface-container-low-dark);--mdui-color-surface-container:var(--mdui-color-surface-container-dark);--mdui-color-surface-container-high:var(--mdui-color-surface-container-high-dark);--mdui-color-surface-container-highest:var(--mdui-color-surface-container-highest-dark);--mdui-color-surface-variant:var(--mdui-color-surface-variant-dark);--mdui-color-on-surface:var(--mdui-color-on-surface-dark);--mdui-color-on-surface-variant:var(--mdui-color-on-surface-variant-dark);--mdui-color-inverse-surface:var(--mdui-color-inverse-surface-dark);--mdui-color-inverse-on-surface:var(--mdui-color-inverse-on-surface-dark);--mdui-color-background:var(--mdui-color-background-dark);--mdui-color-on-background:var(--mdui-color-on-background-dark);--mdui-color-error:var(--mdui-color-error-dark);--mdui-color-error-container:var(--mdui-color-error-container-dark);--mdui-color-on-error:var(--mdui-color-on-error-dark);--mdui-color-on-error-container:var(--mdui-color-on-error-container-dark);--mdui-color-outline:var(--mdui-color-outline-dark);--mdui-color-outline-variant:var(--mdui-color-outline-variant-dark);--mdui-color-shadow:var(--mdui-color-shadow-dark);--mdui-color-surface-tint-color:var(--mdui-color-surface-tint-color-dark);--mdui-color-scrim:var(--mdui-color-scrim-dark);color:rgb(var(--mdui-color-on-background));background-color:rgb(var(--mdui-color-background))}}:root{--mdui-elevation-level0:none;--mdui-elevation-level1:0 .5px 1.5px 0 rgba(var(--mdui-color-shadow), 19%),0 0 1px 0 rgba(var(--mdui-color-shadow), 3.9%);--mdui-elevation-level2:0 .85px 3px 0 rgba(var(--mdui-color-shadow), 19%),0 .25px 1px 0 rgba(var(--mdui-color-shadow), 3.9%);--mdui-elevation-level3:0 1.25px 5px 0 rgba(var(--mdui-color-shadow), 19%),0 .3333px 1.5px 0 rgba(var(--mdui-color-shadow), 3.9%);--mdui-elevation-level4:0 1.85px 6.25px 0 rgba(var(--mdui-color-shadow), 19%),0 .5px 1.75px 0 rgba(var(--mdui-color-shadow), 3.9%);--mdui-elevation-level5:0 2.75px 9px 0 rgba(var(--mdui-color-shadow), 19%),0 .25px 3px 0 rgba(var(--mdui-color-shadow), 3.9%)}:root{--mdui-motion-easing-linear:cubic-bezier(0, 0, 1, 1);--mdui-motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--mdui-motion-easing-standard-accelerate:cubic-bezier(.3, 0, 1, 1);--mdui-motion-easing-standard-decelerate:cubic-bezier(0, 0, 0, 1);--mdui-motion-easing-emphasized:var(--mdui-motion-easing-standard);--mdui-motion-easing-emphasized-accelerate:cubic-bezier(.3, 0, .8, .15);--mdui-motion-easing-emphasized-decelerate:cubic-bezier(.05, .7, .1, 1);--mdui-motion-duration-short1:50ms;--mdui-motion-duration-short2:.1s;--mdui-motion-duration-short3:.15s;--mdui-motion-duration-short4:.2s;--mdui-motion-duration-medium1:.25s;--mdui-motion-duration-medium2:.3s;--mdui-motion-duration-medium3:.35s;--mdui-motion-duration-medium4:.4s;--mdui-motion-duration-long1:.45s;--mdui-motion-duration-long2:.5s;--mdui-motion-duration-long3:.55s;--mdui-motion-duration-long4:.6s;--mdui-motion-duration-extra-long1:.7s;--mdui-motion-duration-extra-long2:.8s;--mdui-motion-duration-extra-long3:.9s;--mdui-motion-duration-extra-long4:1s}.mdui-prose{line-height:1.75;word-wrap:break-word}.mdui-prose :first-child{margin-top:0}.mdui-prose :last-child{margin-bottom:0}.mdui-prose code,.mdui-prose kbd,.mdui-prose pre,.mdui-prose pre tt,.mdui-prose samp{font-family:Consolas,Courier,Courier New,monospace}.mdui-prose caption{text-align:left}.mdui-prose [draggable=true],.mdui-prose [draggable]{cursor:move}.mdui-prose [draggable=false]{cursor:inherit}.mdui-prose dl,.mdui-prose form,.mdui-prose ol,.mdui-prose p,.mdui-prose ul{margin-top:1.25em;margin-bottom:1.25em}.mdui-prose a{text-decoration:none;outline:0;color:rgb(var(--mdui-color-primary))}.mdui-prose a:focus,.mdui-prose a:hover{border-bottom:.0625rem solid rgb(var(--mdui-color-primary))}.mdui-prose small{font-size:.875em}.mdui-prose strong{font-weight:600}.mdui-prose blockquote{margin:1.6em 2em;padding-left:1em;border-left:.25rem solid rgb(var(--mdui-color-surface-variant))}@media only screen and (max-width:599.98px){.mdui-prose blockquote{margin:1.6em 0}}.mdui-prose blockquote footer{font-size:86%;color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose mark{color:inherit;background-color:rgb(var(--mdui-color-secondary-container));border-bottom:.0625rem solid rgb(var(--mdui-color-secondary));margin:0 .375rem;padding:.125rem}.mdui-prose h1,.mdui-prose h2,.mdui-prose h3,.mdui-prose h4,.mdui-prose h5,.mdui-prose h6{font-weight:400}.mdui-prose h1 small,.mdui-prose h2 small,.mdui-prose h3 small,.mdui-prose h4 small,.mdui-prose h5 small,.mdui-prose h6 small{font-weight:inherit;font-size:65%;color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose h1 strong,.mdui-prose h2 strong,.mdui-prose h3 strong,.mdui-prose h4 strong,.mdui-prose h5 strong,.mdui-prose h6 strong{font-weight:600}.mdui-prose h1{font-size:2.5em;margin-top:0;margin-bottom:1.25em;line-height:1.1111}.mdui-prose h2{font-size:1.875em;margin-top:2.25em;margin-bottom:1.125em;line-height:1.3333}.mdui-prose h3{font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.6}.mdui-prose h4{font-size:1.25em;margin-top:1.875em;margin-bottom:.875em;line-height:1.5}.mdui-prose h2+*,.mdui-prose h3+*,.mdui-prose h4+*,.mdui-prose hr+*{margin-top:0}.mdui-prose code,.mdui-prose kbd{font-size:.875em;color:rgb(var(--mdui-color-on-surface-container));background-color:rgba(var(--mdui-color-surface-variant),.28);padding:.125rem .375rem;border-radius:var(--mdui-shape-corner-extra-small)}.mdui-prose kbd{font-size:.9em}.mdui-prose abbr[title]{text-decoration:none;cursor:help;border-bottom:.0625rem dotted rgb(var(--mdui-color-on-surface-variant))}.mdui-prose ins,.mdui-prose u{text-decoration:none;border-bottom:.0625rem solid rgb(var(--mdui-color-on-surface-variant))}.mdui-prose del{text-decoration:line-through}.mdui-prose hr{margin-top:3em;margin-bottom:3em;border:none;border-bottom:.0625rem solid rgb(var(--mdui-color-surface-variant))}.mdui-prose pre{margin-top:1.7143em;margin-bottom:1.7143em}.mdui-prose pre code{padding:.8571em 1.1429em;overflow-x:auto;-webkit-overflow-scrolling:touch;background-color:rgb(var(--mdui-color-surface-container));color:rgb(var(--mdui-color-on-surface-container));border-radius:var(--mdui-shape-corner-extra-small)}.mdui-prose ol,.mdui-prose ul{padding-left:1.625em}.mdui-prose ul{list-style-type:disc}.mdui-prose ol{list-style-type:decimal}.mdui-prose ol[type=A]{list-style-type:upper-alpha}.mdui-prose ol[type=a]{list-style-type:lower-alpha}.mdui-prose ol[type=I]{list-style-type:upper-roman}.mdui-prose ol[type=i]{list-style-type:lower-roman}.mdui-prose ol[type="1"]{list-style-type:decimal}.mdui-prose li{margin-top:.5em;margin-bottom:.5em}.mdui-prose ol>li,.mdui-prose ul>li{padding-left:.375em}.mdui-prose ol>li>p,.mdui-prose ul>li>p{margin-top:.75em;margin-bottom:.75em}.mdui-prose ol>li>:first-child,.mdui-prose ul>li>:first-child{margin-top:1.25em}.mdui-prose ol>li>:last-child,.mdui-prose ul>li>:last-child{margin-bottom:1.25em}.mdui-prose ol>li::marker{font-weight:400;color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose ul>li::marker{color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose ol ol,.mdui-prose ol ul,.mdui-prose ul ol,.mdui-prose ul ul{margin-top:.75em;margin-bottom:.75em}.mdui-prose fieldset,.mdui-prose img{border:none}.mdui-prose figure,.mdui-prose img,.mdui-prose video{margin-top:2em;margin-bottom:2em;max-width:100%}.mdui-prose figure>*{margin-top:0;margin-bottom:0}.mdui-prose figcaption{font-size:.875em;line-height:1.4286;margin-top:.8571em;color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose figcaption:empty:before{z-index:-1;cursor:text;content:attr(placeholder);color:rgb(var(--mdui-color-on-surface-variant))}.mdui-prose table{margin-top:2em;margin-bottom:2em;border:.0625rem solid rgb(var(--mdui-color-surface-variant));border-radius:var(--mdui-shape-corner-large)}.mdui-table{width:100%;overflow-x:auto;margin-top:2em;margin-bottom:2em;border:.0625rem solid rgb(var(--mdui-color-surface-variant));border-radius:var(--mdui-shape-corner-large)}.mdui-table table{margin-top:0;margin-bottom:0;border:none;border-radius:0}.mdui-prose table,.mdui-table table{width:100%;text-align:left;border-collapse:collapse;border-spacing:0}.mdui-prose td,.mdui-prose th,.mdui-table td,.mdui-table th{border-top:.0625rem solid rgb(var(--mdui-color-surface-variant))}.mdui-prose td:not(:first-child),.mdui-prose th:not(:first-child),.mdui-table td:not(:first-child),.mdui-table th:not(:first-child){border-left:.0625rem solid rgb(var(--mdui-color-surface-variant))}.mdui-prose td:not(:last-child),.mdui-prose th:not(:last-child),.mdui-table td:not(:last-child),.mdui-table th:not(:last-child){border-right:.0625rem solid rgb(var(--mdui-color-surface-variant))}.mdui-prose tbody:first-child tr:first-child td,.mdui-prose thead:first-child tr:first-child th,.mdui-table tbody:first-child tr:first-child td,.mdui-table thead:first-child tr:first-child th{border-top:0}.mdui-prose tfoot td,.mdui-prose tfoot th,.mdui-prose thead td,.mdui-prose thead th,.mdui-table tfoot td,.mdui-table tfoot th,.mdui-table thead td,.mdui-table thead th{position:relative;vertical-align:middle;padding:1.125rem 1rem;font-weight:var(--mdui-typescale-title-medium-weight);letter-spacing:var(--mdui-typescale-title-medium-tracking);line-height:var(--mdui-typescale-title-medium-line-height);color:rgb(var(--mdui-color-on-surface-variant));box-shadow:var(--mdui-elevation-level1)}.mdui-prose tbody td,.mdui-prose tbody th,.mdui-table tbody td,.mdui-table tbody th{padding:.875rem 1rem}.mdui-prose tbody th,.mdui-table tbody th{vertical-align:middle;font-weight:inherit}.mdui-prose tbody td,.mdui-table tbody td{vertical-align:baseline}:root{--mdui-shape-corner-none:0;--mdui-shape-corner-extra-small:.25rem;--mdui-shape-corner-small:.5rem;--mdui-shape-corner-medium:.75rem;--mdui-shape-corner-large:1rem;--mdui-shape-corner-extra-large:1.75rem;--mdui-shape-corner-full:1000rem}:root{--mdui-state-layer-hover:.08;--mdui-state-layer-focus:.12;--mdui-state-layer-pressed:.12;--mdui-state-layer-dragged:.16}:root{--mdui-typescale-display-large-weight:400;--mdui-typescale-display-medium-weight:400;--mdui-typescale-display-small-weight:400;--mdui-typescale-display-large-line-height:4rem;--mdui-typescale-display-medium-line-height:3.25rem;--mdui-typescale-display-small-line-height:2.75rem;--mdui-typescale-display-large-size:3.5625rem;--mdui-typescale-display-medium-size:2.8125rem;--mdui-typescale-display-small-size:2.25rem;--mdui-typescale-display-large-tracking:0rem;--mdui-typescale-display-medium-tracking:0rem;--mdui-typescale-display-small-tracking:0rem;--mdui-typescale-headline-large-weight:400;--mdui-typescale-headline-medium-weight:400;--mdui-typescale-headline-small-weight:400;--mdui-typescale-headline-large-line-height:2.5rem;--mdui-typescale-headline-medium-line-height:2.25rem;--mdui-typescale-headline-small-line-height:2rem;--mdui-typescale-headline-large-size:2rem;--mdui-typescale-headline-medium-size:1.75rem;--mdui-typescale-headline-small-size:1.5rem;--mdui-typescale-headline-large-tracking:0rem;--mdui-typescale-headline-medium-tracking:0rem;--mdui-typescale-headline-small-tracking:0rem;--mdui-typescale-title-large-weight:400;--mdui-typescale-title-medium-weight:500;--mdui-typescale-title-small-weight:500;--mdui-typescale-title-large-line-height:1.75rem;--mdui-typescale-title-medium-line-height:1.5rem;--mdui-typescale-title-small-line-height:1.25rem;--mdui-typescale-title-large-size:1.375rem;--mdui-typescale-title-medium-size:1rem;--mdui-typescale-title-small-size:.875rem;--mdui-typescale-title-large-tracking:0rem;--mdui-typescale-title-medium-tracking:.009375rem;--mdui-typescale-title-small-tracking:.00625rem;--mdui-typescale-label-large-weight:500;--mdui-typescale-label-medium-weight:500;--mdui-typescale-label-small-weight:500;--mdui-typescale-label-large-line-height:1.25rem;--mdui-typescale-label-medium-line-height:1rem;--mdui-typescale-label-small-line-height:.375rem;--mdui-typescale-label-large-size:.875rem;--mdui-typescale-label-medium-size:.75rem;--mdui-typescale-label-small-size:.6875rem;--mdui-typescale-label-large-tracking:.00625rem;--mdui-typescale-label-medium-tracking:.03125rem;--mdui-typescale-label-small-tracking:.03125rem;--mdui-typescale-body-large-weight:400;--mdui-typescale-body-medium-weight:400;--mdui-typescale-body-small-weight:400;--mdui-typescale-body-large-line-height:1.5rem;--mdui-typescale-body-medium-line-height:1.25rem;--mdui-typescale-body-small-line-height:1rem;--mdui-typescale-body-large-size:1rem;--mdui-typescale-body-medium-size:.875rem;--mdui-typescale-body-small-size:.75rem;--mdui-typescale-body-large-tracking:.009375rem;--mdui-typescale-body-medium-tracking:.015625rem;--mdui-typescale-body-small-tracking:.025rem}.mdui-lock-screen{overflow:hidden!important}
2 |
--------------------------------------------------------------------------------
/docs/workbox-7ac4974e.js:
--------------------------------------------------------------------------------
1 | define(["exports"],(function(t){"use strict";try{self["workbox:core:7.2.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.2.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=r&&r.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:i})}catch(t){c=Promise.reject(t)}const h=r&&r.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const a=r.match({url:t,sameOrigin:e,request:s,event:n});if(a)return i=a,(Array.isArray(i)&&0===i.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)a=new r(t,e,n);else if("function"==typeof t)a=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t){t.then((()=>{}))}const p=new Set;function y(){return y=Object.assign?Object.assign.bind():function(t){for(var e=1;ee.some((e=>t instanceof e));let g,R;const v=new WeakMap,b=new WeakMap,q=new WeakMap,D=new WeakMap,U=new WeakMap;let x={get(t,e,s){if(t instanceof IDBTransaction){if("done"===e)return b.get(t);if("objectStoreNames"===e)return t.objectStoreNames||q.get(t);if("store"===e)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return E(t[e])},set:(t,e,s)=>(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function I(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(R||(R=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(C(this),e),E(v.get(this))}:function(...e){return E(t.apply(C(this),e))}:function(e,...s){const n=t.call(C(this),e,...s);return q.set(n,e.sort?e.sort():[e]),E(n)}}function L(t){return"function"==typeof t?I(t):(t instanceof IDBTransaction&&function(t){if(b.has(t))return;const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",r),t.removeEventListener("abort",r)},i=()=>{e(),n()},r=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",i),t.addEventListener("error",r),t.addEventListener("abort",r)}));b.set(t,e)}(t),m(t,g||(g=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,x):t)}function E(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("success",i),t.removeEventListener("error",r)},i=()=>{e(E(t.result)),n()},r=()=>{s(t.error),n()};t.addEventListener("success",i),t.addEventListener("error",r)}));return e.then((e=>{e instanceof IDBCursor&&v.set(e,t)})).catch((()=>{})),U.set(e,t),e}(t);if(D.has(t))return D.get(t);const e=L(t);return e!==t&&(D.set(t,e),U.set(e,t)),e}const C=t=>U.get(t);const N=["get","getKey","getAll","getAllKeys","count"],O=["put","add","delete","clear"],k=new Map;function B(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(k.get(e))return k.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,i=O.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!i&&!N.includes(s))return;const r=async function(t,...e){const r=this.transaction(t,i?"readwrite":"readonly");let a=r.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),i&&r.done]))[0]};return k.set(e,r),r}x=(t=>y({},t,{get:(e,s,n)=>B(e,s)||t.get(e,s,n),has:(e,s)=>!!B(e,s)||t.has(e,s)}))(x);try{self["workbox:expiration:7.2.0"]&&_()}catch(t){}const T="cache-entries",M=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class P{constructor(t){this.h=null,this.u=t}l(t){const e=t.createObjectStore(T,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}p(t){this.l(t),this.u&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",(t=>e(t.oldVersion,t))),E(s).then((()=>{}))}(this.u)}async setTimestamp(t,e){const s={url:t=M(t),timestamp:e,cacheName:this.u,id:this.m(t)},n=(await this.getDb()).transaction(T,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(T,this.m(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(T).store.index("timestamp").openCursor(null,"prev");const i=[];let r=0;for(;n;){const s=n.value;s.cacheName===this.u&&(t&&s.timestamp=e?i.push(n.value):r++),n=await n.continue()}const a=[];for(const t of i)await s.delete(T,t.id),a.push(t.url);return a}m(t){return this.u+"|"+M(t)}async getDb(){return this.h||(this.h=await function(t,e,{blocked:s,upgrade:n,blocking:i,terminated:r}={}){const a=indexedDB.open(t,e),o=E(a);return n&&a.addEventListener("upgradeneeded",(t=>{n(E(a.result),t.oldVersion,t.newVersion,E(a.transaction),t)})),s&&a.addEventListener("blocked",(t=>s(t.oldVersion,t.newVersion,t))),o.then((t=>{r&&t.addEventListener("close",(()=>r())),i&&t.addEventListener("versionchange",(t=>i(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this.p.bind(this)})),this.h}}class W{constructor(t,e={}){this.R=!1,this.v=!1,this.q=e.maxEntries,this.D=e.maxAgeSeconds,this.U=e.matchOptions,this.u=t,this._=new P(t)}async expireEntries(){if(this.R)return void(this.v=!0);this.R=!0;const t=this.D?Date.now()-1e3*this.D:0,e=await this._.expireEntries(t,this.q),s=await self.caches.open(this.u);for(const t of e)await s.delete(t,this.U);this.R=!1,this.v&&(this.v=!1,d(this.expireEntries()))}async updateTimestamp(t){await this._.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.D){const e=await this._.getTimestamp(t),s=Date.now()-1e3*this.D;return void 0===e||e200===t.status||0===t.status?t:null};function S(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class K{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}function A(t){return"string"==typeof t?new Request(t):t}class F{constructor(t,e){this.I={},Object.assign(this,e),this.event=e.event,this.L=t,this.C=new K,this.N=[],this.O=[...t.plugins],this.k=new Map;for(const t of this.O)this.k.set(t,{});this.event.waitUntil(this.C.promise)}async fetch(t){const{event:e}=this;let n=A(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.L.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=A(t);let s;const{cacheName:n,matchOptions:i}=this.L,r=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=A(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=r.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.B(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.L,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=S(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,r);for(const e of a)if(i===S(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of p)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.I[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=A(await t({mode:e,request:n,event:this.event,params:this.params}));this.I[s]=n}return this.I[s]}hasCallback(t){for(const e of this.L.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.L.plugins)if("function"==typeof e[t]){const s=this.k.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.N.push(t),t}async doneWaiting(){let t;for(;t=this.N.shift();)await t}destroy(){this.C.resolve(null)}async B(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class H{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new F(this,{event:e,request:s,params:n}),r=this.T(i,s,e);return[r,this.M(r,i,s,e)]}async T(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this.P(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async M(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}try{self["workbox:cacheable-response:7.2.0"]&&_()}catch(t){}class ${constructor(t={}){this.W=t.statuses,this.j=t.headers}isResponseCacheable(t){let e=!0;return this.W&&(e=this.W.includes(t.status)),this.j&&e&&(e=Object.keys(this.j).some((e=>t.headers.get(e)===this.j[e]))),e}}function G(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.2.0"]&&_()}catch(t){}function V(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class J{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class Q{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.S.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.S=t}}let z,X;async function Y(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},a=e?e(r):r,o=function(){if(void 0===z){const t=new Response("");if("body"in t)try{new Response(t.body),z=!0}catch(t){z=!1}z=!1}return z}()?i.body:await i.blob();return new Response(o,a)}class Z extends H{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.K=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async P(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.A(t,e):await this.F(t,e))}async F(t,e){let n;const i=e.params||{};if(!this.K)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,a=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.H(),await e.cachePut(t,n.clone()))}return n}async A(t,e){this.H();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}H(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==Z.copyRedirectedCacheableResponsesPlugin&&(n===Z.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},Z.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await Y(t):t};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.$=new Map,this.G=new Map,this.V=new Map,this.L=new Z({cacheName:f(t),plugins:[...e,new Q({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.L}precache(t){this.addToCacheList(t),this.J||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.J=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=V(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.$.has(i)&&this.$.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.$.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.V.has(t)&&this.V.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.V.set(t,n.integrity)}if(this.$.set(i,t),this.G.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return G(t,(async()=>{const e=new J;this.strategy.plugins.push(e);for(const[e,s]of this.$){const n=this.V.get(s),i=this.G.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return G(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.$.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.$}getCachedURLs(){return[...this.$.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.$.get(e.href)}getIntegrityForCacheKey(t){return this.V.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const et=()=>(X||(X=new tt),X);class st extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.CacheableResponsePlugin=class{constructor(t){this.cacheWillUpdate=async({response:t})=>this.X.isResponseCacheable(t)?t:null,this.X=new $(t)}},t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const i=this.Y(n),r=this.Z(s);d(r.expireEntries());const a=r.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return i?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.Z(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.tt=t,this.D=t.maxAgeSeconds,this.et=new Map,t.purgeOnQuotaError&&function(t){p.add(t)}((()=>this.deleteCacheAndMetadata()))}Z(t){if(t===w())throw new s("expire-custom-caches-only");let e=this.et.get(t);return e||(e=new W(t,this.tt),this.et.set(t,e)),e}Y(t){if(!this.D)return!0;const e=this.st(t);if(null===e)return!0;return e>=Date.now()-1e3*this.D}st(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.et)await self.caches.delete(t),await e.delete();this.et=new Map}},t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.nt(t)),t),this.it=e,this.rt=s}nt({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.rt)if(t.test(s))return!1;return!!this.it.some((t=>t.test(s)))}},t.NetworkFirst=class extends H{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(j),this.ot=t.networkTimeoutSeconds||0}async P(t,e){const n=[],i=[];let r;if(this.ot){const{id:s,promise:a}=this.ct({request:t,logs:n,handler:e});r=s,i.push(a)}const a=this.ht({timeoutId:r,request:t,logs:n,handler:e});i.push(a);const o=await e.waitUntil((async()=>await e.waitUntil(Promise.race(i))||await a)());if(!o)throw new s("no-response",{url:t.url});return o}ct({request:t,logs:e,handler:s}){let n;return{promise:new Promise((e=>{n=setTimeout((async()=>{e(await s.cacheMatch(t))}),1e3*this.ot)})),id:n}}async ht({timeoutId:t,request:e,logs:s,handler:n}){let i,r;try{r=await n.fetchAndCachePut(e)}catch(t){t instanceof Error&&(i=t)}return t&&clearTimeout(t),!i&&r||(r=await n.cacheMatch(e)),r}},t.StaleWhileRevalidate=class extends H{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(j)}async P(t,e){const n=e.fetchAndCachePut(t).catch((()=>{}));e.waitUntil(n);let i,r=await e.cacheMatch(t);if(r);else try{r=await n}catch(t){t instanceof Error&&(i=t)}if(!r)throw new s("no-response",{url:t.url,error:i});return r}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.createHandlerBoundToURL=function(t){return et().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){et().precache(t)}(t),function(t){const e=et();h(new st(e,t))}(e)},t.registerRoute=h}));
2 |
--------------------------------------------------------------------------------
/docs/assets/index-Ct_lBPmX.js:
--------------------------------------------------------------------------------
1 | import{r as e,o as t,a as n,c as l,b as i,d as o,e as a,f as r,n as d,w as u,g as c,h as s,i as m,j as g,t as y,k as p,l as f,F as h,m as v,p as I,s as C}from"./deps-DMDL2Vxr.js";import{A as B}from"./abracadabra-cn-aGnSVyKE.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver((e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)})).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const w=["id"],b=[o("div",{class:"ImScrollBarThumb"},null,-1)],x={__name:"ImScrollBar",props:{ContainerId:String,ContentContainerId:String,Direction:String,Length:String,Width:String,PBottom:String,PRight:String,PMarginOne:String,PMarginTwo:String,Id:String},setup(o){const a=o;var r=e(!1),d=e(!1),u=e(!1);function c(e){r.value?document.getElementById(a.Id).style.opacity="0":"mouseover"==e.type||u.value?(document.getElementById(a.Id).style.opacity="0.701",d.value=!0):"mouseout"!=e.type&&u.value||(document.getElementById(a.Id).style.opacity="0.4",setTimeout((function(){"0.701"!=document.getElementById(a.Id).style.opacity&&(document.getElementById(a.Id).style.opacity="0",d.value=!1)}),1e3))}return t((()=>{})),n((()=>{var t=document.getElementById(a.Id),n=document.getElementById(a.ContentContainerId),l=document.getElementById(a.ContainerId);"Left"==a.Direction?(t.style.float="left",t.style.height=a.Length,t.style.width=a.Width,t.style.bottom=a.PBottom,t.style.right=a.PRight,t.style.marginBottom=a.PMarginOne,t.style.marginTop=a.PMarginTwo):"Right"==a.Direction?(t.style.float="right",t.style.height=a.Length,t.style.width=a.Width,t.style.bottom=a.PBottom,t.style.right=a.PRight,t.style.marginBottom=a.PMarginOne,t.style.marginTop=a.PMarginTwo):("Top"==a.Direction||"Bottom"==a.Direction)&&(t.style.float="left",t.style.width=a.Length,t.style.height=a.Width,t.style.bottom=a.PBottom,t.style.right=a.PRight,t.style.marginLeft=a.PMarginOne,t.style.marginRight=a.PMarginTwo);const i=e("0%");var o;const d=new ResizeObserver((e=>{e.forEach((e=>{const d=e.target;if(d.id==a.ContentContainerId){const e=l;var u=d.scrollHeight,c=d.scrollWidth,s=e.clientHeight,m=e.clientWidth}if(d.id==a.ContainerId){const e=n;u=e.scrollHeight,c=e.scrollWidth,s=d.clientHeight,m=d.clientWidth}var g,y;"Left"==a.Direction||"Right"==a.Direction?(g=u,y=s):("Top"==a.Direction||"Bottom"==a.Direction)&&(g=c,y=m),r.value=g<=y;var p=y/g*100;if(g>y){var f,h=t.childNodes[0];"Left"==a.Direction||"Right"==a.Direction?(h.style.width="100%",h.style.height=p.toString()+"%",f=l.scrollTop/n.scrollHeight*100,h.style.top=f.toString()+"%"):("Top"==a.Direction||"Bottom"==a.Direction)&&(h.style.width=p.toString()+"%",h.style.height="100%",f=l.scrollLeft/n.scrollWidth*100,h.style.left=f.toString()+"%"),i.value=f,"Left"==a.Direction||"Right"==a.Direction?o=t.offsetHeight-h.offsetHeight:("Top"==a.Direction||"Bottom"==a.Direction)&&(o=t.offsetWidth-h.offsetWidth)}}))}));d.observe(l),d.observe(n);var s,m,g,y,p,f=t.childNodes[0],h=!0;f.addEventListener("mousedown",(function(e){"Left"==a.Direction||"Right"==a.Direction?(s=e.clientY,m=this.offsetTop):("Top"==a.Direction||"Bottom"==a.Direction)&&(s=e.clientX,m=this.offsetLeft),h=!1,function(){function e(e){h||(e.preventDefault(),u.value=!0,c({type:"null"}),"Left"==a.Direction||"Right"==a.Direction?g=e.clientY-s+m:("Top"==a.Direction||"Bottom"==a.Direction)&&(g=e.clientX-s+m),g>=o&&(g=o),g<=0&&(g=0),"Left"==a.Direction||"Right"==a.Direction?(f.style.top=g+"px",y=g/t.offsetHeight,p=n.scrollHeight*y,l.scrollTop=p):("Top"==a.Direction||"Bottom"==a.Direction)&&(f.style.left=g+"px",y=g/t.offsetWidth,p=n.scrollWidth*y,l.scrollLeft=p))}document.addEventListener("mouseup",(function(t){u.value=!1,c({type:"null"}),document.removeEventListener("mousemove",e),h=!0}),{once:!0}),document.addEventListener("mousemove",e)}()}));var v=null;l.addEventListener("scroll",(function(e){var t;u.value=!0,c({type:"null"}),"Left"==a.Direction||"Right"==a.Direction?(t=l.scrollTop/n.scrollHeight*100,f.style.top=t.toString()+"%"):("Top"==a.Direction||"Bottom"==a.Direction)&&(t=l.scrollLeft/n.scrollWidth*100,f.style.left=t.toString()+"%"),h&&(clearTimeout(v),v=setTimeout((function(){u.value=!1,c({type:"null"})}),200))}))})),(e,t)=>(i(),l("div",{class:"ImScrollBarTrack",id:a.Id,onMouseover:c,onMouseout:c},b,40,w))}},E=["id"],k=["name"],A={__name:"MdCard",props:{id:String,icon:String,Background:String,TextColor:String,Width:String,Height:String,Other:Object},setup(t){const n=t,u=e({});return u.value={background:n.Background,width:n.Width,height:n.Height,...n.Other},(e,c)=>(i(),l("mdui-card",{id:t.id,class:"baseCard",variant:"filled",style:d(u.value)},[n.icon?(i(),l("mdui-icon",{key:0,class:"cardIcon",name:n.icon,style:{"font-size":"140px"}},null,8,k)):a("",!0),o("div",{class:"cardContent",style:d({color:n.TextColor,"z-index":5})},[r(e.$slots,"default")],4)],12,E))}},R=o("div",{id:"MagicBadge",style:{}},[o("span",{style:{"font-size":"3rem","font-weight":"bold",margin:"10px 10px 10px 20px",height:"fit-content",width:"fit-content"}},"魔曰"),o("span",{style:{"font-size":"1rem","font-variant":"petite-caps","margin-left":"20px",height:"fit-content",width:"fit-content"}},"Abracadabra")],-1),T={id:"MainContainer",style:{display:"grid","grid-template-rows":"80px 150px 80px","grid-gap":"7px"}},D={key:0,id:"InputCard",variant:"outlined",rows:"2",label:"话语",placeholder:"你渴求吟唱的话语",style:{"grid-area":"1",height:"80px",width:"360px"}},S=o("h1",{style:{"align-self":"center","justify-self":"center"}},"选择文件",-1),N=o("p",{style:{"align-self":"center","justify-self":"center"}},"拖拽或点击",-1),P={style:{"align-self":"center","justify-self":"center","margin-bottom":"0"}},L=o("mdui-text-field",{id:"KeyCard",variant:"outlined",rows:"1",label:"魔咒",placeholder:"将一切雪藏的魔咒",style:{"grid-column":"span 3","align-self":"center",width:"360px"}},null,-1),O=o("mdui-slider",{id:"Randomness",step:"25",value:"50",min:"0",max:"100",style:{background:"#0000003b",padding:"0 25px",width:"215px","margin-left":"5px","border-radius":"25px",height:"35px"}},null,-1),_={key:2,id:"OutputText",variant:"outlined",rows:"4",label:"符文",placeholder:"回路末端的符文",style:{"grid-area":"3",height:"120px",width:"360px"}},F=o("h1",{style:{"align-self":"center","justify-self":"center"}},"输出文件",-1),j={id:"CopyrightBadger",style:{"grid-area":"4",display:"grid","grid-template-columns":"50% 50%"}},M=o("p",{style:{position:"relative",width:"fit-content",height:"fit-content",top:"60px","font-size":"1rem","font-variant":"petite-caps","text-align":"left",padding:"6px","border-radius":"inherit",margin:"0px"}},[f(" Abracadabra V3.2.5"),o("br"),o("a",{href:"https://github.com/SheepChef/Abracadabra"},"Github Repo")],-1),W={id:"CryptControl"},U={key:0,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},K={key:2,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},q={key:4,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},H={key:6,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},X={key:8,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},Y={key:10,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},z={key:12,style:{"align-self":"center","justify-self":"right","margin-right":"0px"}},V={id:"MainContainer"},G=o("p",{style:{position:"relative",width:"fit-content",height:"fit-content",top:"0px","font-size":"1rem","font-variant":"petite-caps","text-align":"left",padding:"6px","border-radius":"inherit",margin:"0px"}}," Geek Inspector ",-1),$={rounded:""},J={slot:"description",class:"small"},Q=o("br",null,null,-1),Z=o("br",null,null,-1),ee=o("br",null,null,-1),te=o("br",null,null,-1),ne=o("br",null,null,-1),le=o("br",null,null,-1),ie={rounded:""},oe={slot:"description",class:"small"},ae=o("div",{id:"PositionOccupie"},null,-1),re=o("mdui-snackbar",{"auto-close-delay":"1500",id:"InfoBar"},null,-1),de={__name:"HomeView",setup(t){const r=e("TEXT"),d=e("TEXT"),I=e("Next"),C=e(!0),w=e(!1),b=e(!1),x=e(!1),E=e(!1),k=e(!1),de=e(!1),ue=e(!1),ce=e(!1),se=e(["No Data Available"]),me=e("NONE"),ge=e("None"),ye=e(0);e("#5b6169");var pe=e(new Array);const fe=e(null),he=e("");function ve(e){let t=document.getElementById("InfoBar"),n=e.message;t.innerText=n,t.open=!0}function Ie(e){return new Promise(((t,n)=>{const l=new FileReader;l.onload=e=>{const n=new Uint8Array(e.target.result);t(n)},l.onerror=n,l.readAsArrayBuffer(e)}))}function Ce(e,t,n){const l=new Blob([e],{type:n});return new File([l],t,{type:n})}function Be(e){e.preventDefault(),document.getElementById("FileCard").style.background="#6ea0be"}function we(e){e.preventDefault(),document.getElementById("FileCard").style.background="#5b6169"}function be(e){e.preventDefault()}function xe(e){e.preventDefault(),document.getElementById("FileCard").style.background="#5b6169",Ae(e.dataTransfer.files)}function Ee(e){Ae(e.target.files)}function ke(e){document.querySelector("#fileIn").click()}function Ae(e){pe.value=[];for(let t=0;t{t.WenyanInput(document.getElementById("InputCard").value,"ENCRYPT",e,{PunctuationMark:!de.value,RandomIndex:parseInt(document.querySelector("#Randomness").value),PianwenMode:E.value,LogicMode:k.value,Traditional:ue.value},!0===ce.value?je:null),n()})).finally((()=>{!0===ce.value&&(setInterval((()=>{document.getElementById("ImContentContainer").style.height="100.1%"}),Fe+50),setInterval((()=>{document.getElementById("ImContentContainer").style.height="100%"}),Fe+100),Fe=50)}))}else if("UINT8"==r.value){if(null==window.inputfile||null==window.inputfile)return;""==document.getElementById("KeyCard").value?(e="ABRACADABRA",ve({message:"你没有填写魔咒,自动使用默认魔咒,这不安全",autoCloseDelay:1500}),document.getElementById("KeyCard").value="ABRACADABRA"):e=document.getElementById("KeyCard").value;let n=await Ie(window.inputfile);t.WenyanInput(n,"ENCRYPT",e,{PunctuationMark:!de.value,RandomIndex:parseInt(document.querySelector("#Randomness").value),PianwenMode:E.value,LogicMode:k.value,Traditional:ue.value})}if("TEXT"==d.value)document.getElementById("OutputText").value=t.Output();else if("UINT8"==d.value){let e=Ce(t.Output(),"Abracadabra_Result","application/octet-stream"),n=document.createElement("a");n.download=e.name;let l=URL.createObjectURL(e);n.href=l,n.click(),URL.revokeObjectURL(l)}}catch(n){ve({message:"发生错误, "+n.toString()})}}async function Oe(){ye.value++;let e,t=new B(r.value,d.value);try{if("TEXT"==r.value){if(""==document.getElementById("InputCard").value)return;""==document.getElementById("KeyCard").value?(e="ABRACADABRA",ve({message:"你没有填写魔咒,自动使用默认魔咒,这不安全",autoCloseDelay:1500}),document.getElementById("KeyCard").value="ABRACADABRA"):e=document.getElementById("KeyCard").value,await new Promise((n=>{t.WenyanInput(document.getElementById("InputCard").value,"DECRYPT",e,null,!0===ce.value?je:null),n()})).finally((()=>{!0===ce.value&&(setInterval((()=>{document.getElementById("ImContentContainer").style.height="100.1%"}),Fe+50),setInterval((()=>{document.getElementById("ImContentContainer").style.height="100%"}),Fe+100),Fe=50)}))}else if("UINT8"==r.value){if(null==window.inputfile||null==window.inputfile)return;""==document.getElementById("KeyCard").value?(e="ABRACADABRA",ve({message:"你没有填写魔咒,自动使用默认魔咒,这不安全",autoCloseDelay:1500}),document.getElementById("KeyCard").value="ABRACADABRA"):e=document.getElementById("KeyCard").value;let n=await Ie(window.inputfile);t.WenyanInput(n,"DECRYPT",e)}if("TEXT"==d.value)document.getElementById("OutputText").value=t.Output();else if("UINT8"==d.value){let e=Ce(t.Output(),"Abracadabra_Result","application/octet-stream"),n=document.createElement("a");n.download=e.name;let l=URL.createObjectURL(e);n.href=l,n.click(),URL.revokeObjectURL(l)}}catch(n){ve({message:"发生错误, "+n.toString()})}}function _e(){""!=document.getElementById("OutputText").value&&(document.getElementById("OutputText").select(),navigator.clipboard.writeText(window.getSelection().toString()))}u((()=>pe.value[0]),(e=>{fe.value=e,he.value=e.name,window.inputfile=e}));var Fe=50;function je(e){Fe+=50;let t=ye.value;setTimeout((()=>{let n=ye.value;t==n&&("ROUNDS"==e.Type?se.value=e.Value:(me.value=e.Type,ge.value=e.Value))}),Fe)}async function Me(){window.deferredPrompt&&(window.deferredPrompt.prompt(),"accepted"===(await window.deferredPrompt.userChoice).outcome?ve({message:"感谢你选择魔曰"}):console.log("PWA Install cancelled"))}var We,Ue=0;return n((()=>{var e;(["fullscreen","standalone","minimal-ui"].some((e=>window.matchMedia("(display-mode: "+e+")").matches))||(null==(e=window.navigator)?void 0:e.standalone)||document.referrer.includes("android-app://"))&&(C.value=!1),Re(),document.querySelector("#Randomness").labelFormatter=e=>0==e?"长句优先":25==e?"稍随机":50==e?"适中":75==e?"较随机":100==e?"完全随机":"",u(ce,(()=>{document.getElementById("ImContentContainer").style.height="100.1%",document.getElementById("ImContentContainer").style.height="100%"}))})),c((()=>{})),(e,t)=>(i(),l(h,null,[R,s(A,{id:"FunctionCard"},{default:g((()=>[o("div",T,["TEXT"==r.value?(i(),l("mdui-text-field",D)):a("",!0),"UINT8"==r.value?(i(),m(A,{key:1,id:"FileCard",Background:"#5b6169",Width:"360px",Height:"80px",Other:{"grid-area":1,transition:"all 1s ease"},clickable:"",onDragenter:Be,onDragleave:we,onDragover:be,onDrop:xe,onClick:ke},{default:g((()=>[S,N,o("p",P,y(he.value),1),o("input",{type:"file",id:"fileIn",style:{display:"contents"},onChange:Ee},null,32)])),_:1})):a("",!0),o("div",{id:"controlBar",style:{"grid-area":"2",display:"grid","grid-template-columns":"360px"}},[L,o("div",{id:"NormalControlBar",style:{"align-self":"center",display:"none"}},[o("mdui-button",{icon:"arrow_downward--rounded",onClick:Pe,style:{"align-self":"center",top:"-4px",width:"230px","margin-right":"6px"}},"吟唱你的魔法"),o("mdui-button",{variant:"elevated",icon:"auto_awesome--rounded",onClick:Ne,style:{"align-self":"center",top:"-4px",width:"120px",border:"solid 2px white"}},"文言仿真")]),o("div",{id:"NextControlBar",style:{"align-self":"center",display:"grid","grid-template-columns":"235px 124px"}},[o("mdui-button",{icon:"arrow_downward--rounded",onClick:Pe,style:{"align-self":"center",top:"-4px",width:"230px","margin-right":"6px",display:"none"}},"吟唱你的魔法"),o("div",{style:{display:"grid","grid-template-rows":"40px 33px"}},[o("div",{style:{width:"fit-content","align-self":"center","justify-self":"center","margin-left":"-10px"}},[o("mdui-chip",{icon:"keyboard_double_arrow_down--rounded",onClick:Le,style:{"align-self":"center",width:"105px","text-align":"center","margin-right":"5px"}},"加密"),o("mdui-chip",{icon:"keyboard_double_arrow_down--rounded",onClick:Oe,style:{"align-self":"center",width:"105px","text-align":"center"}},"解密")]),O]),o("mdui-button",{variant:"elevated",icon:"auto_fix_off--rounded",onClick:Ne,style:{"align-self":"center",top:"-4px",width:"120px",border:"solid 2px white"}},"传统加密")])]),"TEXT"==d.value?(i(),l("mdui-text-field",_)):a("",!0),o("mdui-button-icon",{icon:"content_copy--rounded",style:{position:"absolute",bottom:"103px",right:"22px",background:"rgb(11 11 11 / 25%)","backdrop-filter":"blur(2px)"},onClick:_e}),"UINT8"==d.value?(i(),m(A,{key:3,id:"FileCard2",Background:"#5b6169",Width:"360px",Height:"120px",Other:{"grid-area":3,transition:"all 1s ease"}},{default:g((()=>[F])),_:1})):a("",!0),o("div",j,[M,C.value?(i(),l("mdui-chip",{key:0,elevated:"",icon:"file_download--rounded",style:{position:"absolute",bottom:"40px",right:"15px",background:"rgba(11, 11, 11, 0.25)","backdrop-filter":"blur(2px)"},onClick:Me},"安装应用")):a("",!0),o("p",{id:"CopyRightSheepChef",onClick:t[0]||(t[0]=e=>{ce.value?ve({message:"ヾ(≧▽≦*)o 感谢您使用魔曰加密。"}):"0"==document.querySelector("#CopyRightSheepChef").getAttribute("count")?(We=setInterval((function(){if(Ue==parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count"))&&0!=Ue)return Ue=0,document.querySelector("#CopyRightSheepChef").setAttribute("count","0"),void clearInterval(We);Ue=parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count"))}),1e3),Ue=parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count")),document.querySelector("#CopyRightSheepChef").setAttribute("count","1")):(document.querySelector("#CopyRightSheepChef").setAttribute("count",(parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count"))+1).toString()),3==parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count"))&&ve({message:"ヾ(≧▽≦*)o 多点几次!"}),10==parseInt(document.querySelector("#CopyRightSheepChef").getAttribute("count"))&&(ve({message:"极客佐料已激活"}),ce.value=!0))}),count:"0",style:{position:"relative",width:"fit-content",height:"fit-content",top:"98px","font-size":"1rem","font-variant":"petite-caps","text-align":"left",padding:"0px","border-radius":"inherit",margin:"0px",right:"4px","justify-self":"end",opacity:"0.5",cursor:"pointer","user-select":"none"}}," SheepChef © ")])])])),_:1}),s(A,{id:"FloatCard",class:p({oldfloat:"Normal"==I.value})},{default:g((()=>[o("div",W,["Next"==I.value?(i(),l("span",U,"骈文格律")):a("",!0),"Next"==I.value?(i(),l("mdui-switch",{key:1,id:"ForcePian",style:{"align-self":"center","justify-self":"left"},"unchecked-icon":"hdr_auto--rounded","checked-icon":"auto_awesome--rounded",onChange:Re},null,32)):a("",!0),"Next"==I.value?(i(),l("span",K,"逻辑优先")):a("",!0),"Next"==I.value?(i(),l("mdui-switch",{key:3,id:"ForceLogi",style:{"align-self":"center","justify-self":"left"},"unchecked-icon":"hdr_auto--rounded","checked-icon":"auto_awesome--rounded",onChange:Re},null,32)):a("",!0),"Next"==I.value?(i(),l("span",q,"去除标点")):a("",!0),"Next"==I.value?(i(),l("mdui-switch",{key:5,id:"ForceNoMark","checked-icon":"auto_awesome--rounded",style:{"align-self":"center","justify-self":"left"},onChange:De},null,32)):a("",!0),"Next"==I.value?(i(),l("span",H,"繁體中文")):a("",!0),"Next"==I.value?(i(),l("mdui-switch",{key:7,id:"ForceTraditional","checked-icon":"translate--rounded",style:{"align-self":"center","justify-self":"left"},onChange:Se},null,32)):a("",!0),"Normal"==I.value?(i(),l("span",X,"雪藏话语")):a("",!0),"Normal"==I.value?(i(),l("mdui-switch",{key:9,id:"ForceEnc",style:{"align-self":"center","justify-self":"left"},"unchecked-icon":"hdr_auto--rounded","checked-icon":"auto_awesome--rounded",onChange:Re},null,32)):a("",!0),"Normal"==I.value?(i(),l("span",Y,"探求真意")):a("",!0),"Normal"==I.value?(i(),l("mdui-switch",{key:11,id:"ForceDec",style:{"align-self":"center","justify-self":"left"},"unchecked-icon":"hdr_auto--rounded","checked-icon":"auto_awesome--rounded",onChange:Re},null,32)):a("",!0),"Normal"==I.value?(i(),l("span",z,"去除标志")):a("",!0),"Normal"==I.value?(i(),l("mdui-switch",{key:13,id:"Forceq","checked-icon":"auto_awesome--rounded",style:{"align-self":"center","justify-self":"left"},onChange:Te},null,32)):a("",!0)])])),_:1},8,["class"]),ce.value?(i(),m(A,{key:0,id:"GeekCard"},{default:g((()=>[o("div",V,[G,o("mdui-button-icon",{icon:"close--rounded",style:{position:"absolute",top:"10px",right:"10px",background:"rgb(11 11 11 / 25%)","backdrop-filter":"blur(2px)","z-index":"1000",zoom:"82%"},onClick:t[1]||(t[1]=e=>ce.value=!1)}),o("mdui-list",null,[o("mdui-list-item",$,[f(" 密钥轮 "),o("span",J,[f(y(se.value[0]),1),Q,f(" "+y(se.value[1]),1),Z,f(" "+y(se.value[2]),1),ee,f(" "+y(se.value[3]),1),te,f(" "+y(se.value[4]),1),ne,f(" "+y(se.value[5]),1),le])]),o("mdui-list-item",ie,[f(" 步骤 - "+y(me.value)+" ",1),o("span",oe,y(ge.value),1)])])])])),_:1})):a("",!0),ae,re],64))}},ue={id:"ImWindowContainer",ref:"ImContainer"},ce={id:"ImContentContainer"},se={id:"main_content",style:{height:"fit-content"}},me={__name:"ImMainView",setup(t){const a=e(0),r=new ResizeObserver((e=>{e.forEach((e=>{a.value=e.contentRect.height}))}));return n((()=>{r.observe(document.getElementById("ImWindowContainer"))})),(e,t)=>(i(),l("div",ue,[s(x,{ContainerId:"ImWindowContainer",ContentContainerId:"ImContentContainer",Direction:"Right",Length:"calc(100% - 120px)",Width:"10px",PBottom:"10px",PRight:"2px",PMarginOne:"27px",PMarginTwo:"0px",Id:"TestBar"}),o("div",ce,[o("div",se,[s(de)])])],512))}},ge=o("header",null,[o("link",{rel:"shortcut icon",href:"favicon.ico"})],-1),ye={style:{width:"100% !important",height:"100%"}},pe={class:"InnerUI",fullHeight:""},fe={__name:"App",setup:e=>(n((()=>{})),(e,t)=>(i(),l(h,null,[ge,o("mdui-layout",ye,[o("mdui-layout-main",pe,[s(me)])])],64)))};window.addEventListener("beforeinstallprompt",(e=>{e.preventDefault(),window.deferredPrompt=e}));const he=I(fe);C("#09355b"),he.component("Card",A),he.mount("body");
2 |
--------------------------------------------------------------------------------
/src/views/HomeView.vue:
--------------------------------------------------------------------------------
1 |
590 |
591 |
592 |
593 | 魔曰
603 | Abracadabra
613 |
614 |
615 |
619 |
628 |
642 | 选择文件
643 | 拖拽或点击
644 | {{ FILENAME }}
645 |
646 |
647 |
648 |
656 |
657 | 吟唱你的魔法
663 | 文言仿真
670 |
671 |
675 |
吟唱你的魔法
681 |
682 |
690 | 加密
696 | 解密
702 |
703 |
718 |
719 |
传统加密
726 |
727 |
728 |
737 |
738 |
749 |
757 | 输出文件
758 |
759 |
760 |
774 | Abracadabra V3.2.5
Github Repo
775 |
776 |
安装应用
790 |
812 | SheepChef ©
813 |
814 |
815 |
816 |
817 |
818 |
819 | 骈文格律
824 |
832 | 逻辑优先
837 |
845 | 去除标点
850 |
857 | 繁體中文
862 |
869 | 雪藏话语
874 |
882 | 探求真意
887 |
895 | 去除标志
900 |
907 |
908 |
909 |
910 |
911 |
925 | Geek Inspector
926 |
927 |
940 |
941 |
942 | 密钥轮
943 |
944 | {{ Rounds[0] }}
945 | {{ Rounds[1] }}
946 | {{ Rounds[2] }}
947 | {{ Rounds[3] }}
948 | {{ Rounds[4] }}
949 | {{ Rounds[5] }}
950 |
951 |
952 |
953 | 步骤 - {{ Status }}
954 |
955 | {{ StepData }}
956 |
957 |
958 |
959 |
960 |
961 |
962 |
963 |
964 |
965 |
--------------------------------------------------------------------------------