@emotionalamo/plugin-extratheme 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/README.zh-CN.md +22 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/index.js +1 -1
- package/dist/shared/color.d.ts +11 -1
- package/dist/shared/color.js +32 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -18,6 +18,23 @@ section on and saves. Turning every section off cleanly restores the native look
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
Published on npm as
|
|
24
|
+
[`@emotionalamo/plugin-extratheme`](https://www.npmjs.com/package/@emotionalamo/plugin-extratheme).
|
|
25
|
+
Requires NocoBase **2.x** (and the bundled **theme-editor** plugin for cross-reload
|
|
26
|
+
persistence).
|
|
27
|
+
|
|
28
|
+
Add it from the NocoBase **Plugin manager** (`Add new` → npm package name
|
|
29
|
+
`@emotionalamo/plugin-extratheme`), or from the CLI:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
yarn pm add @emotionalamo/plugin-extratheme
|
|
33
|
+
yarn pm enable @emotionalamo/plugin-extratheme
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
21
38
|
## Scope
|
|
22
39
|
|
|
23
40
|
| Surface | Themed | Notes |
|
|
@@ -65,6 +82,15 @@ served by the anonymous `extraTheme:getPublic` action, which drives the injected
|
|
|
65
82
|
`<style>`. `ThemeInjector` caches the config in `localStorage` and paints from cache
|
|
66
83
|
first to avoid a flash.
|
|
67
84
|
|
|
85
|
+
**Uploaded background images and fonts are inlined** as base64 `data:` URIs in the
|
|
86
|
+
config — never stored as a NocoBase attachment URL. Attachment URLs are per-storage: a
|
|
87
|
+
private S3/MinIO/OSS bucket hands back a short-lived **presigned** link that 403s after
|
|
88
|
+
its TTL (≈1h), which would silently break the background for every visitor. Inlining is
|
|
89
|
+
immune to storage type, bucket privacy, domain changes, and migration, so the plugin
|
|
90
|
+
works on any installer's setup. Each asset is capped at **1 MB** — optimize large images
|
|
91
|
+
(WebP) and subset CJK fonts (woff2). The settings page also flags a legacy config whose
|
|
92
|
+
background URL still looks like an expiring signed link, prompting a re-upload.
|
|
93
|
+
|
|
68
94
|
---
|
|
69
95
|
|
|
70
96
|
## Security
|
package/README.zh-CN.md
CHANGED
|
@@ -14,6 +14,22 @@ URL / 渐变预设 / 纯色,支持铺满 / 适应 / 拉伸 / 平铺)、表面**
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
## 安装
|
|
18
|
+
|
|
19
|
+
已发布到 npm:
|
|
20
|
+
[`@emotionalamo/plugin-extratheme`](https://www.npmjs.com/package/@emotionalamo/plugin-extratheme)。
|
|
21
|
+
需要 NocoBase **2.x**(以及随 NocoBase 内置的 **theme-editor** 插件,用于跨刷新持久化)。
|
|
22
|
+
|
|
23
|
+
在 NocoBase **插件管理器**里添加(`添加`→ 填 npm 包名
|
|
24
|
+
`@emotionalamo/plugin-extratheme`),或用命令行:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
yarn pm add @emotionalamo/plugin-extratheme
|
|
28
|
+
yarn pm enable @emotionalamo/plugin-extratheme
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
17
33
|
## 作用范围
|
|
18
34
|
|
|
19
35
|
| 界面 | 是否美化 | 说明 |
|
|
@@ -56,6 +72,12 @@ NocoBase 把每个自定义"代码块"业务页渲染在一个**隔离的嵌套
|
|
|
56
72
|
原始设置存在服务端集合 **`extraThemeSettings`**,由匿名的 `extraTheme:getPublic` 动作提供,
|
|
57
73
|
驱动注入的 `<style>`。`ThemeInjector` 把配置缓存在 `localStorage`,先从缓存渲染以避免闪烁。
|
|
58
74
|
|
|
75
|
+
**上传的背景图和字体以 base64 `data:` URI 内联**存进配置,**不**存成 NocoBase 附件地址。
|
|
76
|
+
附件地址因存储而异:私有 S3/MinIO/OSS 桶返回的是**预签名**临时链接,过期(约 1 小时)后
|
|
77
|
+
会 403,导致所有访问者的背景静默失效。内联方式对存储类型、桶私有性、换域名、迁移全免疫,
|
|
78
|
+
因此在任何人的环境里都能用。每个资源上限 **1 MB** —— 大图请压缩(WebP),中文字体请子集化
|
|
79
|
+
(woff2)。设置页还会检测旧配置里疑似"过期签名链接"的背景地址并提示重新上传。
|
|
80
|
+
|
|
59
81
|
---
|
|
60
82
|
|
|
61
83
|
## 安全
|
package/dist/client/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("react"),require("antd"),require("@nocobase/client")):"function"==typeof define&&define.amd?define("@emotionalamo/plugin-extratheme",["react-i18next","react","antd","@nocobase/client"],t):"object"==typeof exports?exports["@emotionalamo/plugin-extratheme"]=t(require("react-i18next"),require("react"),require("antd"),require("@nocobase/client")):e["@emotionalamo/plugin-extratheme"]=t(e["react-i18next"],e.react,e.antd,e["@nocobase/client"])}(self,function(e,t,r,n){return function(){"use strict";var a={342:function(e){e.exports=n},59:function(e){e.exports=r},155:function(e){e.exports=t},953:function(t){t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return a[e](r,r.exports,l),r.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(i=l.g.location+"");var i,c=l.g.document;if(!i&&c&&(c.currentScript&&"SCRIPT"===c.currentScript.tagName.toUpperCase()&&(i=c.currentScript.src),!i)){var u=c.getElementsByTagName("script");if(u.length)for(var s=u.length-1;s>-1&&(!i||!/^http(s?):/.test(i));)i=u[s--].src}if(!i)throw Error("Automatic publicPath is not supported in this browser");l.p=i.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var f={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var r=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");r.indexOf("/static/plugins/@emotionalamo/plugin-extratheme/dist/client/")>=0&&(e=r.replace(/\/[^\/]+$/,"/"))}if(!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@emotionalamo/plugin-extratheme/dist/client/")}if(!e){var a=window.__nocobase_modern_client_prefix__||"v",o="/"+(a=String(a).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",c=i.indexOf(o);e=c>=0?i.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+a+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@emotionalamo/plugin-extratheme/dist/client/"}l.p=e}(),!function(){l.r(f),l.d(f,{default:function(){return eC}});var e=l(342),t=JSON.parse('{"ExtraTheme":"主题增强","主题增强":"主题增强","工作区外观":"工作区外观","登录页外观":"登录页外观","总开关":"总开关","背景":"背景","类型":"类型","纯色":"纯色","渐变":"渐变","图片":"图片","背景颜色":"背景颜色","渐变预设":"渐变预设","自定义":"自定义","角度":"角度","自定义色标":"自定义色标","图片 URL":"图片 URL","需公网可读":"需公网可读","上传":"上传","铺法":"铺法","铺满":"铺满","适应":"适应","拉伸":"拉伸","平铺":"平铺","暗化遮罩":"暗化遮罩","内容区卡片":"内容区卡片","卡片不透明度":"卡片不透明度","背景模糊":"背景模糊","浅色描边":"浅色描边","风格":"风格","实色":"实色","毛玻璃":"毛玻璃","不透明度":"不透明度","文字颜色":"文字颜色","深色":"深色","浅色":"浅色","登录卡片":"登录卡片","圆角":"圆角","投影":"投影","顶部导航栏":"顶部导航栏","侧边导航栏":"侧边导航栏","颜色由主题编辑器管理,这里只叠加透明度与模糊。":"颜色由主题编辑器管理,这里只叠加透明度与模糊。","滚动条":"滚动条","显示方式":"显示方式","始终显示":"始终显示","始终隐藏":"始终隐藏","“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。":"“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。","全局字体":"全局字体","字体":"字体","自定义字体":"自定义字体","字体预览":"预览","字体来源":"字体来源","系统字体":"系统字体","上传字体":"上传字体","上传字体文件":"上传字体文件","选择字体文件":"选择字体文件","字体名称":"字体名称","已上传":"已上传","重新上传":"重新上传","移除":"移除","提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。":"提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。","提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。","上传成功":"上传成功","上传失败":"上传失败","已保存并应用":"已保存并应用","保存失败":"保存失败","保存并应用":"保存并应用","重置本组":"重置本组","实时预览":"实时预览","提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。":"提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。","概览":"概览","数据":"数据","设置":"设置","菜单":"菜单","订单":"订单","报表":"报表","内容卡片":"内容卡片","欢迎登录":"欢迎登录","登录":"登录"}'),r=JSON.parse('{"ExtraTheme":"ExtraTheme","主题增强":"ExtraTheme","工作区外观":"Workspace","登录页外观":"Sign-in page","总开关":"Enable","背景":"Background","类型":"Type","纯色":"Solid","渐变":"Gradient","图片":"Image","背景颜色":"Background color","渐变预设":"Preset","自定义":"Custom","角度":"Angle","自定义色标":"Custom stops","图片 URL":"Image URL","需公网可读":"Must be public","上传":"Upload","铺法":"Fit","铺满":"Cover","适应":"Contain","拉伸":"Stretch","平铺":"Repeat","暗化遮罩":"Dim","内容区卡片":"Content cards","卡片不透明度":"Card opacity","背景模糊":"Blur","浅色描边":"Light border","风格":"Style","实色":"Solid","毛玻璃":"Frosted","不透明度":"Opacity","文字颜色":"Text color","深色":"Dark","浅色":"Light","登录卡片":"Login card","圆角":"Radius","投影":"Shadow","顶部导航栏":"Top navigation","侧边导航栏":"Side navigation","颜色由主题编辑器管理,这里只叠加透明度与模糊。":"Color is managed by the theme editor — here you only add opacity and blur.","滚动条":"Scrollbar","显示方式":"Display","始终显示":"Always show","始终隐藏":"Always hide","“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。":"“Always show” is a persistent slim scrollbar; “Always hide” removes the scrollbar (content still scrolls).","全局字体":"Global font","字体":"Font","自定义字体":"Custom font","字体预览":"Preview","字体来源":"Font source","系统字体":"System font","上传字体":"Upload font","上传字体文件":"Upload font file","选择字体文件":"Choose font file","字体名称":"Font name","已上传":"Uploaded","重新上传":"Replace","移除":"Remove","提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。":"The font must be installed on the viewer\'s system. “Sans / System default” usually matches the OS default — pick e.g. Kaiti / Songti to see a clear change.","提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"An uploaded font works for every viewer without a local install. CJK font files are large — prefer woff2 or subset the font to speed up loading.","上传成功":"Uploaded","上传失败":"Upload failed","已保存并应用":"Saved and applied","保存失败":"Save failed","保存并应用":"Save & apply","重置本组":"Reset","实时预览":"Live preview","提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。":"Off by default — turn on the switch and save to apply; disabling the plugin or the switch restores the native look instantly.","概览":"Overview","数据":"Data","设置":"Settings","菜单":"Menu","订单":"Orders","报表":"Reports","内容卡片":"Content card","欢迎登录":"Welcome back","登录":"Sign in"}');function n(e){var t=(e||"").replace(/[;{}<>\\/*]/g,"").replace(/[\r\n\t]+/g," ").trim();return(t.match(/"/g)||[]).length%2&&(t=t.replace(/"/g,"")),(t.match(/'/g)||[]).length%2&&(t=t.replace(/'/g,"")),t.slice(0,200)}function a(e){var t;return({woff2:"woff2",woff:"woff",ttf:"truetype",otf:"opentype",ttc:"truetype"})[((null==(t=(e||"").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i))?void 0:t[1])||"").toLowerCase()]||""}function o(e){return(e||"").replace(/["')(;{}<>\\]/g,"").replace(/\s+/g,"").slice(0,2e3)}function i(e,t){var r=(e||"").replace("#","");3===r.length&&(r=r.split("").map(function(e){return e+e}).join(""));var n=parseInt(r.slice(0,2),16),a=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16);return"rgba(".concat(n,",").concat(a,",").concat(o,",").concat(t,")")}function c(e){var t=(e||"").trim();return/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t)||/^(rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/]+\)$/i.test(t)||/^[a-z]+$/i.test(t)?t:"transparent"}function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=Number(e);return Number.isFinite(r)?r:t}function s(e,t){var r=function(e){var t=(e||"").trim(),r=t.match(/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)/i);if(r)return[Math.round(+r[1]),Math.round(+r[2]),Math.round(+r[3])];var n=t.replace("#","");return(3===n.length&&(n=n.split("").map(function(e){return e+e}).join("")),/^[0-9a-f]{6}$/i.test(n))?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}(e);return r?"rgba(".concat(r[0],",").concat(r[1],",").concat(r[2],",").concat(u(t),")"):"transparent"}function d(e){var t,r={image:"transparent",size:"auto",repeat:"no-repeat",position:"center"};if(!e||"none"===e.type)return r;if("color"===e.type)return{image:c(e.color),size:"auto",repeat:"no-repeat",position:"center"};if("gradient"===e.type){var n=(e.gradient.colors||[]).map(c).join(",");return{image:"linear-gradient(".concat(u(e.gradient.angle),"deg,").concat(n,")"),size:"cover",repeat:"no-repeat",position:"center"}}var a=o((null==(t=e.image)?void 0:t.url)||"");if(!a)return r;var l=e.image.fit;return{image:'url("'.concat(a,'")'),size:"repeat"===l?"auto":"stretch"===l?"100% 100%":"contain"===l?"contain":"cover",repeat:"repeat"===l?"repeat":"no-repeat",position:"center"}}var p=["woff2","woff","truetype","opentype"];function b(e,t){return t.split(",").map(function(t){return"".concat(e," ").concat(t.trim())}).join(",")}function m(e){var t=u(e);return"backdrop-filter:blur(".concat(t,"px);-webkit-backdrop-filter:blur(").concat(t,"px);")}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var y={晴空:["#e0f2fe","#ede9fe"],暖阳:["#fff7ed","#ffedd5","#fed7aa"],极光:["#c7d2fe","#a7f3d0","#fbcfe8"],海洋:["#cffafe","#bae6fd","#a5b4fc"],薄荷:["#d1fae5","#a7f3d0"],樱粉:["#fce7f3","#fbcfe8","#ddd6fe"],深夜:["#1e293b","#0f172a"]},h=[{label:"系统默认",value:""},{label:"无衬线(苹方/雅黑)",value:'"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",Roboto,system-ui,sans-serif'},{label:"思源黑体",value:'"Source Han Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif'},{label:"衬线(宋体)",value:'"Songti SC","Noto Serif CJK SC","SimSun",Georgia,"Times New Roman",serif'},{label:"楷体",value:'"Kaiti SC","STKaiti","KaiTi","Noto Serif CJK SC",serif'},{label:"圆体",value:'"Yuanti SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif'},{label:"等宽(代码)",value:'"SF Mono","JetBrains Mono","Fira Code",Consolas,"Courier New",monospace'}],v={enabled:!1,background:{type:"gradient",color:"#eef2f7",gradient:{preset:"晴空",angle:135,colors:y["晴空"]},image:{url:"",fit:"cover",position:"center"},dim:0},card:{glass:!0,opacity:72,blur:12,border:!0},header:{enabled:!1,style:"frosted",color:"#ffffff",opacity:90,blur:14,text:"dark"},sider:{enabled:!1,style:"frosted",color:"#ffffff",opacity:86,blur:16,text:"dark"},font:{enabled:!1,source:"system",family:h[1].value,upload:{url:"",name:"",format:""}},scrollbar:{enabled:!1,mode:"always"}},w={enabled:!1,background:{type:"gradient",color:"#1e293b",gradient:{preset:"暖阳",angle:135,colors:y["暖阳"]},image:{url:"",fit:"cover",position:"center"},dim:15},card:{glass:!0,opacity:70,blur:18,radius:18,shadow:!0}};function E(e){return null!=e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)}function S(e,t){if(!E(e))return void 0===t?e:t;var r=Array.isArray(e)?function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return g(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return g(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),n=!0,a=!1,o=void 0;try{for(var l,i=Object.keys(e)[Symbol.iterator]();!(n=(l=i.next()).done);n=!0){var c=l.value;E(e[c])?r[c]=S(e[c],null==t?void 0:t[c]):t&&void 0!==t[c]&&(r[c]=t[c])}}catch(e){a=!0,o=e}finally{try{n||null==i.return||i.return()}finally{if(a)throw o}}return r}function x(e){return{app:S(v,null==e?void 0:e.app),login:S(w,null==e?void 0:e.login)}}function O(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function k(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var C="extra-theme-style",j="EXTRA_THEME_CACHE",P=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");k(this,"request",void 0),k(this,"selectors",void 0),this.request=e,this.selectors=r}return e=[{key:"start",value:function(){var e=this;try{var t=localStorage.getItem(j);t&&this.apply(x(JSON.parse(t)))}catch(e){}this.refresh(),window.addEventListener("extra-theme:changed",function(){return e.refresh()})}},{key:"refresh",value:function(){var e;return(e=function(){var e,t,r,n,a;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,this.request({url:"extraTheme:getPublic",method:"get"})];case 1:a=x(null!=(e=null!=(t=null==(n=o.sent())||null==(r=n.data)?void 0:r.data)?t:null==n?void 0:n.data)?e:{});try{localStorage.setItem(j,JSON.stringify(a))}catch(e){}return this.apply(a),[3,3];case 2:return o.sent(),[3,3];case 3:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){O(o,n,a,l,i,"next",e)}function i(e){O(o,n,a,l,i,"throw",e)}l(void 0)})}).call(this)}},{key:"apply",value:function(e){var t,r=document.body;if(r){r.classList.toggle("extra-theme-app-on",!!((l=e.app).enabled||l.header.enabled||l.sider.enabled||(null==(c=l.font)?void 0:c.enabled)||(null==(f=l.scrollbar)?void 0:f.enabled))),r.classList.toggle("extra-theme-login-on",!!(null==(t=e.login)?void 0:t.enabled));var l,c,f,g,y=document.getElementById(C);y||((y=document.createElement("style")).id=C,document.head.appendChild(y)),y.textContent=(g=this.selectors,(function(e,t){var r,l,c="body.extra-theme-app-on",f=[];if(e.enabled&&(f.push("".concat(c,"{").concat(function(e){var t=d(e),r=t.image,n=u(e.dim);if(n>0&&"none"!==e.type){var a=i("#000000",n/100);r="linear-gradient(".concat(a,",").concat(a,"),").concat(t.image)}return"background:".concat(r,"!important;")+"background-size:".concat(t.size,"!important;")+"background-repeat:".concat(t.repeat,"!important;")+"background-position:".concat(t.position,"!important;")+"background-attachment:fixed!important;"}(e.background),"}")),f.push("".concat(c," .ant-layout-sider-children{top:auto!important;bottom:0!important;}")),f.push("".concat(b(c,t.content),"{background:transparent!important;}")),f.push("".concat(b(c,t.card+" div:not([class]):not([id])"),"{background-color:transparent!important;}")),e.card.glass&&e.card.blur>0&&f.push("".concat(b(c,t.card),",").concat(c," .code-block{").concat(m(e.card.blur),"}"))),e.header.enabled){var g=s(e.header.color,e.header.opacity/100),y="frosted"===e.header.style&&e.header.blur>0?m(e.header.blur):"";f.push("".concat(c," .ant-layout-header,").concat(c," .ant-pro-layout-header{background:").concat(g,"!important;").concat(y,"}"))}var h=e.font;if(null==h?void 0:h.enabled){if("upload"===h.source&&(null==(l=h.upload)?void 0:l.url)){var v=n(h.upload.name||"").replace(/["']/g,"")||"ExtraTheme Font",w=o(h.upload.url),E=p.includes(h.upload.format)?h.upload.format:a(h.upload.url);w&&(f.push('@font-face{font-family:"'.concat(v,'";src:url("').concat(w,'")').concat(E?' format("'.concat(E,'")'):"",";font-display:swap;}")),f.push("".concat(c,'{font-family:"').concat(v,'"!important;}')))}else if("upload"!==h.source){var S=n(h.family||"");S&&f.push("".concat(c,"{font-family:").concat(S,"!important;}"))}}if(e.sider.enabled){var x=s(e.sider.color,e.sider.opacity/100),O="frosted"===e.sider.style&&e.sider.blur>0?m(e.sider.blur):"";f.push("".concat(c," .ant-layout-sider{background:transparent!important;}")+"".concat(c," .ant-layout-sider-children{background:").concat(x,"!important;border-right:none!important;").concat(O,"}")+"".concat(c," .ant-layout-sider .ant-menu{background:transparent!important;border-inline-end:none!important;}")+"".concat(c," .ant-layout-sider .ant-menu::-webkit-scrollbar{width:6px;height:6px;}")+"".concat(c," .ant-layout-sider .ant-menu::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}")+"".concat(c," .ant-layout-sider .ant-menu::-webkit-scrollbar-track{background:transparent;}"))}return(null==(r=e.scrollbar)?void 0:r.enabled)&&("hidden"===e.scrollbar.mode?f.push("".concat(c," ::-webkit-scrollbar,").concat(c,"::-webkit-scrollbar{display:none;width:0;height:0;}")+"".concat(c,",").concat(c," *{scrollbar-width:none;-ms-overflow-style:none;}")):f.push("".concat(c," ::-webkit-scrollbar,").concat(c,"::-webkit-scrollbar{width:10px;height:10px;}")+"".concat(c," ::-webkit-scrollbar-thumb,").concat(c,"::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.22);border-radius:8px;border:2px solid transparent;background-clip:content-box;}")+"".concat(c," ::-webkit-scrollbar-thumb:hover,").concat(c,"::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.4);background-clip:content-box;}")+"".concat(c," ::-webkit-scrollbar-track,").concat(c,"::-webkit-scrollbar-track{background:transparent;}"))),f.join("\n")})(e.app,g.app).trim())}}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),T={app:{appRoot:".ant-layout",header:".ant-layout-header",sider:".ant-layout-sider",card:".ant-card",content:'.ant-pro-layout-content,.ant-pro-layout-container,.ant-layout-content,.ant-page-header,[class*="nb-subpages-slot"],[class*="nb-subpages-slot"]>div'},login:{loginRoot:".ant-layout",loginCard:".ant-card"}},_=l(155),I=l.n(_),B=l(59);function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}var z={Table:{colorBgContainer:"#ffffff"},Input:{colorBgContainer:"#ffffff"},InputNumber:{colorBgContainer:"#ffffff"},Select:{colorBgContainer:"#ffffff"},TreeSelect:{colorBgContainer:"#ffffff"},Cascader:{colorBgContainer:"#ffffff"},Mentions:{colorBgContainer:"#ffffff"},DatePicker:{colorBgContainer:"#ffffff"}},F=["colorBgContainer","colorBgLayout","fontFamily"],R=l(953),D="@amo/plugin-extratheme";function U(){var e=(0,R.useTranslation)([D,"client"]).t;return function(t,r){return e(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:D},r))}}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function N(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function L(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){N(o,n,a,l,i,"next",e)}function i(e){N(o,n,a,l,i,"throw",e)}l(void 0)})}}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function W(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function $(e){return function(e){if(Array.isArray(e))return M(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||H(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){if(e){if("string"==typeof e)return M(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return M(e,t)}}function J(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function G(e){var t;return"string"==typeof e?e:(null==e||null==(t=e.toHexString)?void 0:t.call(e))||"#ffffff"}var K=function(e){var t=e.label,r=e.value,n=e.children;return I().createElement("div",{style:{marginBottom:14}},I().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:7}},I().createElement("span",{style:{fontSize:12.5,color:"#475569"}},t),null!=r&&I().createElement("span",{style:{fontSize:12,fontWeight:600,color:"#6d5ae6",fontVariantNumeric:"tabular-nums"}},r)),n)},Y=function(e){var t=e.title,r=e.right,n=e.children,a=e.first;return I().createElement("div",{style:{marginTop:18*!a,paddingTop:16*!a,borderTop:a?"none":"1px solid rgba(0,0,0,0.05)"}},t&&I().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12}},I().createElement("span",{style:{fontSize:12.5,fontWeight:700,color:"#0f172a"}},t),r),n)},V=function(e){var t=e.title,r=e.right,n=e.children,a=e.style;return I().createElement("div",{style:q({flex:"1 1 300px",minWidth:280,background:"#fff",borderRadius:14,border:"1px solid rgba(15,23,42,0.08)",boxShadow:"0 1px 3px rgba(15,23,42,0.04)",padding:"16px 20px 20px",alignSelf:"stretch"},a)},I().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:16,paddingBottom:13,borderBottom:"1px solid rgba(15,23,42,0.07)"}},I().createElement("b",{style:{fontSize:14,letterSpacing:.2,color:"#0f172a"}},t),r),n)},X=function(e){return e?{}:{opacity:.4,pointerEvents:"none",filter:"grayscale(0.4)"}},Q=function(e){var t=e.bg,r=e.onChange,n=e.uploadImage,a=e.first,o=U(),l=function(e){return r(q({},t,e))},i=Object.keys(y),c=!i.includes(t.gradient.preset);return I().createElement(Y,{title:o("背景"),first:a},I().createElement(K,{label:o("类型")},I().createElement(B.Segmented,{block:!0,size:"small",value:t.type,onChange:function(e){return l({type:e})},options:[{label:o("纯色"),value:"color"},{label:o("渐变"),value:"gradient"},{label:o("图片"),value:"image"}]})),"color"===t.type&&I().createElement(K,{label:o("背景颜色")},I().createElement(B.ColorPicker,{value:t.color,onChangeComplete:function(e){return l({color:G(e)})},showText:!0,disabledAlpha:!0})),"gradient"===t.type&&I().createElement(I().Fragment,null,I().createElement(K,{label:o("渐变预设")},I().createElement(B.Select,{style:{width:"100%"},value:c?"__custom__":t.gradient.preset,onChange:function(e){"__custom__"===e?l({gradient:W(q({},t.gradient),{preset:"自定义"})}):l({gradient:W(q({},t.gradient),{preset:e,colors:y[e]})})},options:$(i.map(function(e){return{label:e,value:e}})).concat([{label:o("自定义"),value:"__custom__"}])})),I().createElement(K,{label:o("角度"),value:"".concat(t.gradient.angle,"\xb0")},I().createElement(B.Slider,{min:0,max:360,value:t.gradient.angle,onChange:function(e){return l({gradient:W(q({},t.gradient),{angle:e})})}})),c&&I().createElement(K,{label:o("自定义色标")},I().createElement("div",{style:{display:"flex",gap:8}},I().createElement(B.ColorPicker,{disabledAlpha:!0,value:t.gradient.colors[0]||"#ffffff",onChangeComplete:function(e){return l({gradient:W(q({},t.gradient),{colors:[G(e),t.gradient.colors[1]||"#ffffff"]})})}}),I().createElement(B.ColorPicker,{disabledAlpha:!0,value:t.gradient.colors[1]||"#ffffff",onChangeComplete:function(e){return l({gradient:W(q({},t.gradient),{colors:[t.gradient.colors[0]||"#ffffff",G(e)]})})}})))),"image"===t.type&&I().createElement(I().Fragment,null,I().createElement(K,{label:o("图片 URL")},I().createElement(B.Input,{value:t.image.url,placeholder:"https://…",onChange:function(e){return l({image:W(q({},t.image),{url:e.target.value})})},addonAfter:n?I().createElement(B.Upload,{showUploadList:!1,beforeUpload:function(e){return L(function(){var r;return J(this,function(a){switch(a.label){case 0:return[4,n(e)];case 1:return(r=a.sent())&&l({image:W(q({},t.image),{url:r})}),[2,!1]}})})()}},I().createElement("span",{style:{cursor:"pointer"}},o("上传"))):null})),I().createElement(K,{label:o("铺法")},I().createElement(B.Segmented,{block:!0,size:"small",value:t.image.fit,onChange:function(e){return l({image:W(q({},t.image),{fit:e})})},options:[{label:o("铺满"),value:"cover"},{label:o("适应"),value:"contain"},{label:o("拉伸"),value:"stretch"},{label:o("平铺"),value:"repeat"}]}))),I().createElement(K,{label:o("暗化遮罩"),value:"".concat(t.dim,"%")},I().createElement(B.Slider,{min:0,max:80,value:t.dim,onChange:function(e){return l({dim:e})}})))},Z=function(e){var t=e.card,r=e.onChange,n=U(),a=function(e){return r(q({},t,e))};return I().createElement(Y,{title:n("内容区卡片"),right:I().createElement(B.Switch,{size:"small",checked:t.glass,onChange:function(e){return a({glass:e})}})},I().createElement("div",{style:X(t.glass)},I().createElement(K,{label:n("卡片不透明度"),value:"".concat(t.opacity,"%")},I().createElement(B.Slider,{min:10,max:100,value:t.opacity,onChange:function(e){return a({opacity:e})}})),I().createElement(K,{label:n("背景模糊"),value:"".concat(t.blur,"px")},I().createElement(B.Slider,{min:0,max:40,value:t.blur,onChange:function(e){return a({blur:e})}})),I().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},I().createElement("span",{style:{fontSize:12.5,color:"#475569"}},n("浅色描边")),I().createElement(B.Switch,{size:"small",checked:t.border,onChange:function(e){return a({border:e})}}))))},ee=function(e){var t=e.scrollbar,r=e.onChange,n=U(),a=function(e){return r(q({},t,e))};return I().createElement(Y,{title:n("滚动条"),right:I().createElement(B.Switch,{size:"small",checked:t.enabled,onChange:function(e){return a({enabled:e})}})},I().createElement("div",{style:X(t.enabled)},I().createElement(K,{label:n("显示方式")},I().createElement(B.Segmented,{block:!0,size:"small",value:t.mode,onChange:function(e){return a({mode:e})},options:[{label:n("始终显示"),value:"always"},{label:n("始终隐藏"),value:"hidden"}]})),I().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:2,lineHeight:1.6}},n("“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。"))))},et=function(e){var t=e.nav,r=e.onChange,n=U(),a=function(e){return r(q({},t,e))};return I().createElement(Y,{first:!0},I().createElement(K,{label:n("背景颜色")},I().createElement(B.ColorPicker,{value:t.color,onChangeComplete:function(e){return a({color:G(e)})},showText:!0,disabledAlpha:!0})),I().createElement(K,{label:n("风格")},I().createElement(B.Segmented,{block:!0,size:"small",value:t.style,onChange:function(e){return a({style:e})},options:[{label:n("实色"),value:"solid"},{label:n("毛玻璃"),value:"frosted"}]})),I().createElement(K,{label:n("不透明度"),value:"".concat(t.opacity,"%")},I().createElement(B.Slider,{min:0,max:100,value:t.opacity,onChange:function(e){return a({opacity:e})}})),I().createElement(K,{label:n("背景模糊"),value:"".concat(t.blur,"px")},I().createElement(B.Slider,{min:0,max:40,value:t.blur,disabled:"frosted"!==t.style,onChange:function(e){return a({blur:e})}})))},er=function(e){var t,r=e.font,n=e.onChange,a=e.uploadFont,o=U(),l=function(e){return n(q({},r,e))},i=h.some(function(e){return e.value===r.family}),c=function(e){if(Array.isArray(e))return e}(t=I().useState(!i))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a=[],o=!0,l=!1;try{for(n=n.call(e);!(o=(t=n.next()).done)&&(a.push(t.value),2!==a.length);o=!0);}catch(e){l=!0,r=e}finally{try{o||null==n.return||n.return()}finally{if(l)throw r}}return a}}(t)||H(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),u=c[0],s=c[1],f=I().useRef(r.family);I().useEffect(function(){r.family!==f.current&&(f.current=r.family,s(!h.some(function(e){return e.value===r.family})))},[r.family]);var d=function(e){f.current=e,l({family:e})},p=u||!i,b=r.upload;I().useEffect(function(){var e=window.FontFace;if("upload"===r.source&&(null==b?void 0:b.url)&&(null==b?void 0:b.name)&&e&&document.fonts)try{new e(b.name,'url("'.concat(b.url,'")')).load().then(function(e){return document.fonts.add(e)}).catch(function(){})}catch(e){}},[r.source,null==b?void 0:b.url,null==b?void 0:b.name]);var m=function(e){return L(function(){var t;return J(this,function(o){switch(o.label){case 0:if(!a)return[3,2];return[4,a(e)];case 1:(t=o.sent()).url&&n(W(q({},r),{upload:t})),o.label=2;case 2:return[2,!1]}})})()},g="upload"===r.source&&(null==b?void 0:b.url)?'"'.concat(b.name,'"'):r.family||void 0;return I().createElement(Y,{first:!0},I().createElement(K,{label:o("字体来源")},I().createElement(B.Segmented,{block:!0,size:"small",value:r.source,onChange:function(e){return l({source:e})},options:[{label:o("系统字体"),value:"system"},{label:o("上传字体"),value:"upload"}]})),"system"===r.source?I().createElement(I().Fragment,null,I().createElement(K,{label:o("字体")},I().createElement(B.Select,{style:{width:"100%"},value:p?"__custom__":r.family,onChange:function(e){"__custom__"===e?s(!0):(s(!1),d(e))},options:$(h.map(function(e){return{label:e.label,value:e.value}})).concat([{label:o("自定义"),value:"__custom__"}])})),p&&I().createElement(K,{label:o("自定义字体")},I().createElement(B.Input,{value:r.family,placeholder:'"Font Name", sans-serif',onChange:function(e){return d(e.target.value)}}))):(null==b?void 0:b.url)?I().createElement(I().Fragment,null,I().createElement(K,{label:o("字体名称")},I().createElement(B.Input,{value:b.name,placeholder:"Custom Font",onChange:function(e){var t;return t={name:e.target.value},n(W(q({},r),{upload:q({},r.upload,t)}))}})),I().createElement("div",{style:{display:"flex",gap:12,alignItems:"center",marginBottom:14}},I().createElement("span",{style:{fontSize:12,color:"#16a34a"}},o("已上传"),b.format?" \xb7 ".concat(b.format):""),I().createElement(B.Upload,{showUploadList:!1,accept:".ttf,.otf,.woff,.woff2",beforeUpload:m},I().createElement(B.Button,{type:"link",size:"small",style:{padding:0}},o("重新上传"))),I().createElement(B.Button,{type:"link",size:"small",danger:!0,style:{padding:0},onClick:function(){return n(W(q({},r),{upload:{url:"",name:"",format:""}}))}},o("移除")))):I().createElement(K,{label:o("上传字体文件")},I().createElement(B.Upload,{showUploadList:!1,accept:".ttf,.otf,.woff,.woff2",beforeUpload:m},I().createElement(B.Button,{size:"small"},o("选择字体文件")))),I().createElement("div",{style:{marginTop:12,padding:"14px 16px",borderRadius:10,background:"#f8fafc",border:"1px solid rgba(15,23,42,0.06)",fontFamily:g}},I().createElement("div",{style:{fontSize:19,fontWeight:700,color:"#0f172a",lineHeight:1.4}},o("字体预览")," Aa 永和"),I().createElement("div",{style:{fontSize:13,color:"#475569",marginTop:5}},"中文示例文本 \xb7 The quick brown fox \xb7 0123456789")),I().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:8,lineHeight:1.6}},o("upload"===r.source?"提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。")))},en=function(e){var t=e.app,r=e.onChange,n=e.uploadImage,a=e.uploadFont,o=U(),l={flex:"0 0 auto"};return I().createElement("div",{style:{display:"flex",gap:20,flexWrap:"wrap",alignItems:"stretch"}},I().createElement(V,{title:o("工作区外观"),right:I().createElement(B.Switch,{checked:t.enabled,onChange:function(e){return r(W(q({},t),{enabled:e}))}})},I().createElement("div",{style:X(t.enabled)},I().createElement(Q,{first:!0,bg:t.background,onChange:function(e){return r(W(q({},t),{background:e}))},uploadImage:n}),I().createElement(Z,{card:t.card,onChange:function(e){return r(W(q({},t),{card:e}))}})),I().createElement(ee,{scrollbar:t.scrollbar,onChange:function(e){return r(W(q({},t),{scrollbar:e}))}})),I().createElement("div",{style:{flex:"1 1 300px",minWidth:280,display:"flex",flexDirection:"column",gap:20}},I().createElement(V,{style:l,title:o("顶部导航栏"),right:I().createElement(B.Switch,{checked:t.header.enabled,onChange:function(e){return r(W(q({},t),{header:W(q({},t.header),{enabled:e})}))}})},I().createElement("div",{style:X(t.header.enabled)},I().createElement(et,{nav:t.header,onChange:function(e){return r(W(q({},t),{header:e}))}}))),I().createElement(V,{style:l,title:o("侧边导航栏"),right:I().createElement(B.Switch,{checked:t.sider.enabled,onChange:function(e){return r(W(q({},t),{sider:W(q({},t.sider),{enabled:e})}))}})},I().createElement("div",{style:X(t.sider.enabled)},I().createElement(et,{nav:t.sider,onChange:function(e){return r(W(q({},t),{sider:e}))}})))),I().createElement(V,{title:o("全局字体"),right:I().createElement(B.Switch,{checked:t.font.enabled,onChange:function(e){return r(W(q({},t),{font:W(q({},t.font),{enabled:e})}))}})},I().createElement("div",{style:X(t.font.enabled)},I().createElement(er,{font:t.font,onChange:function(e){return r(W(q({},t),{font:e}))},uploadFont:a}))))};function ea(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function eo(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function el(e){var t=d(e),r=t.image;if(e.dim>0&&"none"!==e.type){var n=i("#000000",e.dim/100);r="linear-gradient(".concat(n,",").concat(n,"),").concat(t.image)}return{background:r,backgroundSize:t.size,backgroundRepeat:t.repeat,backgroundPosition:t.position}}function ei(e){var t="frosted"===e.style&&e.blur>0?"blur(".concat(e.blur,"px)"):void 0;return{background:s(e.color,e.opacity/100),backdropFilter:t,WebkitBackdropFilter:t,color:"light"===e.text?"#f8fafc":"#1f2733"}}var ec={position:"relative",height:300,borderRadius:12,overflow:"hidden",border:"1px solid rgba(0,0,0,0.08)",boxShadow:"0 8px 30px rgba(0,0,0,0.12)"},eu=function(e){var t=e.scope,r=e.app,n=e.login,a=U();if("app"===t){var o,l=r.enabled&&r.card.glass?{flex:1,borderRadius:10,padding:12,background:i("#ffffff",r.card.opacity/100),backdropFilter:r.card.blur>0?"blur(".concat(r.card.blur,"px)"):void 0,WebkitBackdropFilter:r.card.blur>0?"blur(".concat(r.card.blur,"px)"):void 0,border:r.card.border?"1px solid rgba(255,255,255,0.5)":"1px solid transparent",color:"#1f2733",fontSize:12}:{flex:1,borderRadius:10,padding:12,background:"#fff",border:"1px solid rgba(0,0,0,0.06)",color:"#1f2733",fontSize:12},c={background:"#fff",border:"1px solid rgba(0,0,0,0.12)",borderRadius:6},u=(null==(o=r.font)?void 0:o.enabled)&&r.font.family?r.font.family:void 0;return I().createElement("div",{style:ea(eo(ea({},ec),{fontFamily:u}),r.enabled?el(r.background):{background:"#f0f2f5"})},I().createElement("div",{style:ea({height:40,display:"flex",alignItems:"center",padding:"0 14px",fontWeight:700,fontSize:13},r.header.enabled?ei(r.header):{background:"#fff",color:"#1f2733"})},"NocoBase",I().createElement("span",{style:{marginLeft:"auto",display:"flex",gap:14,fontWeight:500,opacity:.85}},I().createElement("span",null,a("概览")),I().createElement("span",null,a("数据")),I().createElement("span",null,a("设置")))),I().createElement("div",{style:{display:"flex",height:"calc(100% - 40px)"}},I().createElement("div",{style:ea({width:92,padding:10,display:"flex",flexDirection:"column",gap:8,fontSize:12},r.sider.enabled?ei(r.sider):{background:"#fff",color:"#1f2733"})},I().createElement("div",{style:{fontWeight:700}},a("菜单")),I().createElement("div",{style:{opacity:.8}},a("概览")),I().createElement("div",{style:{opacity:.8}},a("订单")),I().createElement("div",{style:{opacity:.8}},a("报表"))),I().createElement("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:10}},I().createElement("div",{style:eo(ea({},l),{display:"flex",flexDirection:"column",gap:6})},I().createElement("span",null,a("内容卡片")," A"),I().createElement("div",{style:eo(ea({},c),{height:22})}),I().createElement("div",{style:eo(ea({},c),{overflow:"hidden"})},I().createElement("div",{style:{height:16,borderBottom:"1px solid rgba(0,0,0,0.07)"}}),I().createElement("div",{style:{height:16}}))),I().createElement("div",{style:{display:"flex",gap:10,flex:1}},I().createElement("div",{style:l},"B"),I().createElement("div",{style:l},"C")))))}var s=n.card,f={width:220,padding:"22px 20px",borderRadius:s.radius,background:i("#ffffff",s.opacity/100),backdropFilter:s.glass&&s.blur>0?"blur(".concat(s.blur,"px)"):void 0,WebkitBackdropFilter:s.glass&&s.blur>0?"blur(".concat(s.blur,"px)"):void 0,boxShadow:s.shadow?"0 24px 70px rgba(15,23,42,0.28)":"none",color:"#1f2733",textAlign:"center"},d={height:30,borderRadius:8,background:"rgba(255,255,255,0.6)",border:"1px solid rgba(0,0,0,0.1)",margin:"8px 0"};return I().createElement("div",{style:ea(eo(ea({},ec),{display:"flex",alignItems:"center",justifyContent:"center"}),n.enabled?el(n.background):{background:"#f0f2f5"})},I().createElement("div",{style:f},I().createElement("div",{style:{fontWeight:800,fontSize:16,marginBottom:4}},"NocoBase"),I().createElement("div",{style:{fontSize:11,opacity:.7,marginBottom:10}},a("欢迎登录")),I().createElement("div",{style:d}),I().createElement("div",{style:d}),I().createElement("div",{style:{height:32,borderRadius:8,background:"#6d5ae6",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,marginTop:6}},a("登录"))))};function es(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ef(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function ed(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){ef(o,n,a,l,i,"next",e)}function i(e){ef(o,n,a,l,i,"throw",e)}l(void 0)})}}function ep(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function eb(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function em(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,i=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(i)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return es(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return es(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eg(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var ey="amo-extratheme",eh=function(){var t=U(),r=(0,e.useAPIClient)(),o=(0,e.useGlobalTheme)(),l=o.setTheme,c=o.theme,u=em((0,_.useState)(function(){return x({})}),2),s=u[0],f=u[1],d=em((0,_.useState)(!0),2),p=d[0],b=d[1],m=em((0,_.useState)(!1),2),g=m[0],y=m[1];return((0,_.useEffect)(function(){var e=!0;return ed(function(){var t,n,a,o;return eg(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,3,4]),[4,r.request({url:"extraTheme:getPublic",method:"get"})];case 1:return o=null!=(t=null==(a=l.sent())||null==(n=a.data)?void 0:n.data)?t:{},e&&f(x(o)),[3,4];case 2:return l.sent(),[3,4];case 3:return e&&b(!1),[7];case 4:return[2]}})})(),function(){e=!1}},[r]),p)?I().createElement("div",{style:{padding:60,textAlign:"center"}},I().createElement(B.Spin,null)):I().createElement("div",{style:{padding:4,width:"100%"}},I().createElement(en,{app:s.app,onChange:function(e){return f(eb(ep({},s),{app:e}))},uploadImage:function(e){return ed(function(){var n,a,o,l,i;return eg(this,function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),(o=new FormData).append("file",e),[4,r.request({url:"attachments:create",method:"post",data:o})];case 1:if(!(i=(null==(l=c.sent())||null==(a=l.data)||null==(n=a.data)?void 0:n.url)||""))throw Error("no url");return B.message.success(t("上传成功")),[2,i.startsWith("http")?i:window.location.origin+i];case 2:return c.sent(),B.message.error(t("上传失败")),[2,""];case 3:return[2]}})})()},uploadFont:function(e){return ed(function(){var n,o,l,i,c,u,s,f;return eg(this,function(d){switch(d.label){case 0:n={url:"",name:"",format:""},d.label=1;case 1:return d.trys.push([1,3,,4]),(i=new FormData).append("file",e),[4,r.request({url:"attachments:create",method:"post",data:i})];case 2:if(!(u=(null==(c=d.sent())||null==(l=c.data)||null==(o=l.data)?void 0:o.url)||""))throw Error("no url");return u.startsWith("http")||(u=window.location.origin+u),s=(e.name||"Custom Font").replace(/\.[^.]+$/,"")||"Custom Font",f=a(e.name||u),B.message.success(t("上传成功")),[2,{url:u,name:s,format:f}];case 3:return d.sent(),B.message.error(t("上传失败")),[2,n];case 4:return[2]}})})()}}),I().createElement(B.Space,{style:{marginTop:20}},I().createElement(B.Button,{type:"primary",loading:g,onClick:function(){return ed(function(){return eg(this,function(a){switch(a.label){case 0:y(!0),a.label=1;case 1:return a.trys.push([1,4,5,6]),[4,r.request({url:"extraTheme:set",method:"post",data:{scope:"app",config:s.app}})];case 2:var o;return a.sent(),[4,(o=s.app,ed(function(){var t,a,u,s,f,d,p,b,m,g,y;return eg(this,function(h){switch(h.label){case 0:a=t=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};arguments.length>2&&void 0!==arguments[2]&&arguments[2];var a=A({},r),o=!0,l=!1,c=void 0;try{for(var u,s=F[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var f=u.value;delete a[f]}}catch(e){l=!0,c=e}finally{try{o||null==s.return||s.return()}finally{if(l)throw c}}a.colorBgElevated="#ffffff",e.enabled&&(a.colorBgLayout="transparent",e.card.glass&&(a.colorBgContainer=i("#ffffff",e.card.opacity/100)));var d=e.font;if(null==d?void 0:d.enabled){if("upload"===d.source&&(null==(t=d.upload)?void 0:t.url)){var p=n(d.upload.name||"").replace(/["']/g,"");p&&(a.fontFamily='"'.concat(p,'"'))}else if("upload"!==d.source){var b=n(d.family||"");b&&(a.fontFamily=b)}}return{name:"Modern",token:a,components:A({},z),cssVar:!0}}(o,(null==c?void 0:c.token)||(null===e.defaultTheme||void 0===e.defaultTheme?void 0:e.defaultTheme.token)||{},(null===e.defaultTheme||void 0===e.defaultTheme?void 0:e.defaultTheme.token)||{}),h.label=1;case 1:return h.trys.push([1,9,,10]),[4,r.resource("themeConfig").list({filter:{uid:ey},pageSize:1})];case 2:if(b=null==(p=null==(d=h.sent())||null==(s=d.data)||null==(u=s.data)?void 0:u[0])?void 0:p.id,(null==p||null==(f=p.config)?void 0:f.name)&&(a=eb(ep({},t),{name:p.config.name})),!p)return[3,4];return[4,r.resource("themeConfig").update({filterByTk:b,values:{config:a,default:!0,optional:!0}})];case 3:return h.sent(),[3,6];case 4:return[4,r.resource("themeConfig").create({values:{config:a,optional:!0,isBuiltIn:!1,uid:ey,default:!0}})];case 5:b=null==(y=h.sent())||null==(g=y.data)||null==(m=g.data)?void 0:m.id,h.label=6;case 6:if(null==b)return[3,8];return[4,r.resource("users").updateTheme({values:{themeId:b}})];case 7:h.sent(),h.label=8;case 8:return[3,10];case 9:return h.sent(),[3,10];case 10:try{null==l||l(a)}catch(e){}return[2]}})})())];case 3:return a.sent(),window.dispatchEvent(new Event("extra-theme:changed")),B.message.success(t("已保存并应用")),[3,6];case 4:return a.sent(),B.message.error(t("保存失败")),[3,6];case 5:return y(!1),[7];case 6:return[2]}})})()}},t("保存并应用")),I().createElement(B.Button,{onClick:function(){return f(eb(ep({},s),{app:JSON.parse(JSON.stringify(v))}))}},t("重置本组"))),I().createElement("div",{style:{marginTop:24}},I().createElement("div",{style:{fontSize:12,color:"#94a3b8",marginBottom:8}},t("实时预览")),I().createElement(eu,{scope:"app",app:s.app,login:s.login}),I().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:10,lineHeight:1.6}},t("提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。"))))};function ev(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function ew(e,t,r){return(ew=eO()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&eS(a,r.prototype),a}).apply(null,arguments)}function eE(e){return(eE=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eS(e,t){return(eS=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ex(e){var t="function"==typeof Map?new Map:void 0;return(ex=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return ew(e,arguments,eE(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),eS(r,e)})(e)}function eO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(eO=function(){return!!e})()}var ek="@amo/plugin-extratheme",eC=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function a(){var e,t;if(!(this instanceof a))throw TypeError("Cannot call a class as a function");return e=a,t=arguments,e=eE(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,eO()?Reflect.construct(e,t||[],eE(this).constructor):e.apply(this,t))}return a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),e&&eS(a,e),n=[{key:"load",value:function(){var e;return(e=function(){var e;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(n){return e=this,this.app.i18n.addResources("zh-CN",ek,t),this.app.i18n.addResources("en-US",ek,r),new P(function(t){return e.app.apiClient.request(t)},T).start(),this.app.addComponents({ExtraThemeSettings:eh}),this.app.pluginSettingsManager.add("extra-theme",{title:this.app.i18n.t("主题增强",{ns:ek}),icon:"BgColorsOutlined",Component:"ExtraThemeSettings",aclSnippet:"pm.extra-theme",sort:500}),[2]})},function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){ev(o,n,a,l,i,"next",e)}function i(e){ev(o,n,a,l,i,"throw",e)}l(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(a.prototype,n),a}(ex(e.Plugin))}(),f}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("react"),require("antd"),require("@nocobase/client")):"function"==typeof define&&define.amd?define("@emotionalamo/plugin-extratheme",["react-i18next","react","antd","@nocobase/client"],t):"object"==typeof exports?exports["@emotionalamo/plugin-extratheme"]=t(require("react-i18next"),require("react"),require("antd"),require("@nocobase/client")):e["@emotionalamo/plugin-extratheme"]=t(e["react-i18next"],e.react,e.antd,e["@nocobase/client"])}(self,function(e,t,r,n){return function(){"use strict";var a={342:function(e){e.exports=n},59:function(e){e.exports=r},155:function(e){e.exports=t},953:function(t){t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return a[e](r,r.exports,l),r.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(i=l.g.location+"");var i,c=l.g.document;if(!i&&c&&(c.currentScript&&"SCRIPT"===c.currentScript.tagName.toUpperCase()&&(i=c.currentScript.src),!i)){var u=c.getElementsByTagName("script");if(u.length)for(var s=u.length-1;s>-1&&(!i||!/^http(s?):/.test(i));)i=u[s--].src}if(!i)throw Error("Automatic publicPath is not supported in this browser");l.p=i.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var f={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var r=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");r.indexOf("/static/plugins/@emotionalamo/plugin-extratheme/dist/client/")>=0&&(e=r.replace(/\/[^\/]+$/,"/"))}if(!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@emotionalamo/plugin-extratheme/dist/client/")}if(!e){var a=window.__nocobase_modern_client_prefix__||"v",o="/"+(a=String(a).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",c=i.indexOf(o);e=c>=0?i.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+a+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@emotionalamo/plugin-extratheme/dist/client/"}l.p=e}(),!function(){l.r(f),l.d(f,{default:function(){return eP}});var e=l(342),t=JSON.parse('{"ExtraTheme":"主题增强","主题增强":"主题增强","工作区外观":"工作区外观","登录页外观":"登录页外观","总开关":"总开关","背景":"背景","类型":"类型","纯色":"纯色","渐变":"渐变","图片":"图片","背景颜色":"背景颜色","渐变预设":"渐变预设","自定义":"自定义","角度":"角度","自定义色标":"自定义色标","图片 URL":"图片 URL","需公网可读":"需公网可读","上传":"上传","铺法":"铺法","铺满":"铺满","适应":"适应","拉伸":"拉伸","平铺":"平铺","暗化遮罩":"暗化遮罩","内容区卡片":"内容区卡片","卡片不透明度":"卡片不透明度","背景模糊":"背景模糊","浅色描边":"浅色描边","风格":"风格","实色":"实色","毛玻璃":"毛玻璃","不透明度":"不透明度","文字颜色":"文字颜色","深色":"深色","浅色":"浅色","登录卡片":"登录卡片","圆角":"圆角","投影":"投影","顶部导航栏":"顶部导航栏","侧边导航栏":"侧边导航栏","颜色由主题编辑器管理,这里只叠加透明度与模糊。":"颜色由主题编辑器管理,这里只叠加透明度与模糊。","滚动条":"滚动条","显示方式":"显示方式","始终显示":"始终显示","始终隐藏":"始终隐藏","“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。":"“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。","全局字体":"全局字体","字体":"字体","自定义字体":"自定义字体","字体预览":"预览","字体来源":"字体来源","系统字体":"系统字体","上传字体":"上传字体","上传字体文件":"上传字体文件","选择字体文件":"选择字体文件","字体名称":"字体名称","已上传":"已上传","重新上传":"重新上传","移除":"移除","提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。":"提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。","提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。","上传成功":"上传成功","上传失败":"上传失败","已保存并应用":"已保存并应用","保存失败":"保存失败","保存并应用":"保存并应用","重置本组":"重置本组","实时预览":"实时预览","提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。":"提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。","概览":"概览","数据":"数据","设置":"设置","菜单":"菜单","订单":"订单","报表":"报表","内容卡片":"内容卡片","欢迎登录":"欢迎登录","登录":"登录"}'),r=JSON.parse('{"ExtraTheme":"ExtraTheme","主题增强":"ExtraTheme","工作区外观":"Workspace","登录页外观":"Sign-in page","总开关":"Enable","背景":"Background","类型":"Type","纯色":"Solid","渐变":"Gradient","图片":"Image","背景颜色":"Background color","渐变预设":"Preset","自定义":"Custom","角度":"Angle","自定义色标":"Custom stops","图片 URL":"Image URL","需公网可读":"Must be public","上传":"Upload","铺法":"Fit","铺满":"Cover","适应":"Contain","拉伸":"Stretch","平铺":"Repeat","暗化遮罩":"Dim","内容区卡片":"Content cards","卡片不透明度":"Card opacity","背景模糊":"Blur","浅色描边":"Light border","风格":"Style","实色":"Solid","毛玻璃":"Frosted","不透明度":"Opacity","文字颜色":"Text color","深色":"Dark","浅色":"Light","登录卡片":"Login card","圆角":"Radius","投影":"Shadow","顶部导航栏":"Top navigation","侧边导航栏":"Side navigation","颜色由主题编辑器管理,这里只叠加透明度与模糊。":"Color is managed by the theme editor — here you only add opacity and blur.","滚动条":"Scrollbar","显示方式":"Display","始终显示":"Always show","始终隐藏":"Always hide","“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。":"“Always show” is a persistent slim scrollbar; “Always hide” removes the scrollbar (content still scrolls).","全局字体":"Global font","字体":"Font","自定义字体":"Custom font","字体预览":"Preview","字体来源":"Font source","系统字体":"System font","上传字体":"Upload font","上传字体文件":"Upload font file","选择字体文件":"Choose font file","字体名称":"Font name","已上传":"Uploaded","重新上传":"Replace","移除":"Remove","提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。":"The font must be installed on the viewer\'s system. “Sans / System default” usually matches the OS default — pick e.g. Kaiti / Songti to see a clear change.","提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"An uploaded font works for every viewer without a local install. CJK font files are large — prefer woff2 or subset the font to speed up loading.","上传成功":"Uploaded","上传失败":"Upload failed","已保存并应用":"Saved and applied","保存失败":"Save failed","保存并应用":"Save & apply","重置本组":"Reset","实时预览":"Live preview","提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。":"Off by default — turn on the switch and save to apply; disabling the plugin or the switch restores the native look instantly.","概览":"Overview","数据":"Data","设置":"Settings","菜单":"Menu","订单":"Orders","报表":"Reports","内容卡片":"Content card","欢迎登录":"Welcome back","登录":"Sign in"}');function n(e){var t=(e||"").replace(/[;{}<>\\/*]/g,"").replace(/[\r\n\t]+/g," ").trim();return(t.match(/"/g)||[]).length%2&&(t=t.replace(/"/g,"")),(t.match(/'/g)||[]).length%2&&(t=t.replace(/'/g,"")),t.slice(0,200)}function a(e){var t;return({woff2:"woff2",woff:"woff",ttf:"truetype",otf:"opentype",ttc:"truetype"})[((null==(t=(e||"").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i))?void 0:t[1])||"").toLowerCase()]||""}var o=/^data:[\w.+-]+\/[\w.+-]+;base64,[A-Za-z0-9+/=]+$/;function i(e){var t=e||"";return o.test(t)?t:t.replace(/["')(;{}<>\\]/g,"").replace(/\s+/g,"").slice(0,2e3)}function c(e,t){var r=(e||"").replace("#","");3===r.length&&(r=r.split("").map(function(e){return e+e}).join(""));var n=parseInt(r.slice(0,2),16),a=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16);return"rgba(".concat(n,",").concat(a,",").concat(o,",").concat(t,")")}function u(e){var t=(e||"").trim();return/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t)||/^(rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/]+\)$/i.test(t)||/^[a-z]+$/i.test(t)?t:"transparent"}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=Number(e);return Number.isFinite(r)?r:t}function p(e,t){var r=function(e){var t=(e||"").trim(),r=t.match(/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)/i);if(r)return[Math.round(+r[1]),Math.round(+r[2]),Math.round(+r[3])];var n=t.replace("#","");return(3===n.length&&(n=n.split("").map(function(e){return e+e}).join("")),/^[0-9a-f]{6}$/i.test(n))?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}(e);return r?"rgba(".concat(r[0],",").concat(r[1],",").concat(r[2],",").concat(s(t),")"):"transparent"}function d(e){var t,r={image:"transparent",size:"auto",repeat:"no-repeat",position:"center"};if(!e||"none"===e.type)return r;if("color"===e.type)return{image:u(e.color),size:"auto",repeat:"no-repeat",position:"center"};if("gradient"===e.type){var n=(e.gradient.colors||[]).map(u).join(",");return{image:"linear-gradient(".concat(s(e.gradient.angle),"deg,").concat(n,")"),size:"cover",repeat:"no-repeat",position:"center"}}var a=i((null==(t=e.image)?void 0:t.url)||"");if(!a)return r;var o=e.image.fit;return{image:'url("'.concat(a,'")'),size:"repeat"===o?"auto":"stretch"===o?"100% 100%":"contain"===o?"contain":"cover",repeat:"repeat"===o?"repeat":"no-repeat",position:"center"}}var b=["woff2","woff","truetype","opentype"];function m(e,t){return t.split(",").map(function(t){return"".concat(e," ").concat(t.trim())}).join(",")}function g(e){var t=s(e);return"backdrop-filter:blur(".concat(t,"px);-webkit-backdrop-filter:blur(").concat(t,"px);")}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var h={晴空:["#e0f2fe","#ede9fe"],暖阳:["#fff7ed","#ffedd5","#fed7aa"],极光:["#c7d2fe","#a7f3d0","#fbcfe8"],海洋:["#cffafe","#bae6fd","#a5b4fc"],薄荷:["#d1fae5","#a7f3d0"],樱粉:["#fce7f3","#fbcfe8","#ddd6fe"],深夜:["#1e293b","#0f172a"]},v=[{label:"系统默认",value:""},{label:"无衬线(苹方/雅黑)",value:'"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",Roboto,system-ui,sans-serif'},{label:"思源黑体",value:'"Source Han Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif'},{label:"衬线(宋体)",value:'"Songti SC","Noto Serif CJK SC","SimSun",Georgia,"Times New Roman",serif'},{label:"楷体",value:'"Kaiti SC","STKaiti","KaiTi","Noto Serif CJK SC",serif'},{label:"圆体",value:'"Yuanti SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif'},{label:"等宽(代码)",value:'"SF Mono","JetBrains Mono","Fira Code",Consolas,"Courier New",monospace'}],w={enabled:!1,background:{type:"gradient",color:"#eef2f7",gradient:{preset:"晴空",angle:135,colors:h["晴空"]},image:{url:"",fit:"cover",position:"center"},dim:0},card:{glass:!0,opacity:72,blur:12,border:!0},header:{enabled:!1,style:"frosted",color:"#ffffff",opacity:90,blur:14,text:"dark"},sider:{enabled:!1,style:"frosted",color:"#ffffff",opacity:86,blur:16,text:"dark"},font:{enabled:!1,source:"system",family:v[1].value,upload:{url:"",name:"",format:""}},scrollbar:{enabled:!1,mode:"always"}},E={enabled:!1,background:{type:"gradient",color:"#1e293b",gradient:{preset:"暖阳",angle:135,colors:h["暖阳"]},image:{url:"",fit:"cover",position:"center"},dim:15},card:{glass:!0,opacity:70,blur:18,radius:18,shadow:!0}};function S(e){return null!=e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)}function x(e,t){if(!S(e))return void 0===t?e:t;var r=Array.isArray(e)?function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return y(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return y(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),n=!0,a=!1,o=void 0;try{for(var l,i=Object.keys(e)[Symbol.iterator]();!(n=(l=i.next()).done);n=!0){var c=l.value;S(e[c])?r[c]=x(e[c],null==t?void 0:t[c]):t&&void 0!==t[c]&&(r[c]=t[c])}}catch(e){a=!0,o=e}finally{try{n||null==i.return||i.return()}finally{if(a)throw o}}return r}function O(e){return{app:x(w,null==e?void 0:e.app),login:x(E,null==e?void 0:e.login)}}function k(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function C(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var j="extra-theme-style",P="EXTRA_THEME_CACHE",T=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");C(this,"request",void 0),C(this,"selectors",void 0),this.request=e,this.selectors=r}return e=[{key:"start",value:function(){var e=this;try{var t=localStorage.getItem(P);t&&this.apply(O(JSON.parse(t)))}catch(e){}this.refresh(),window.addEventListener("extra-theme:changed",function(){return e.refresh()})}},{key:"refresh",value:function(){var e;return(e=function(){var e,t,r,n,a;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,this.request({url:"extraTheme:getPublic",method:"get"})];case 1:a=O(null!=(e=null!=(t=null==(n=o.sent())||null==(r=n.data)?void 0:r.data)?t:null==n?void 0:n.data)?e:{});try{localStorage.setItem(P,JSON.stringify(a))}catch(e){}return this.apply(a),[3,3];case 2:return o.sent(),[3,3];case 3:return[2]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){k(o,n,a,l,i,"next",e)}function i(e){k(o,n,a,l,i,"throw",e)}l(void 0)})}).call(this)}},{key:"apply",value:function(e){var t,r=document.body;if(r){r.classList.toggle("extra-theme-app-on",!!((o=e.app).enabled||o.header.enabled||o.sider.enabled||(null==(l=o.font)?void 0:l.enabled)||(null==(u=o.scrollbar)?void 0:u.enabled))),r.classList.toggle("extra-theme-login-on",!!(null==(t=e.login)?void 0:t.enabled));var o,l,u,f,y=document.getElementById(j);y||((y=document.createElement("style")).id=j,document.head.appendChild(y)),y.textContent=(f=this.selectors,(function(e,t){var r,o,l="body.extra-theme-app-on",u=[];if(e.enabled&&(u.push("".concat(l,"{").concat(function(e){var t=d(e),r=t.image,n=s(e.dim);if(n>0&&"none"!==e.type){var a=c("#000000",n/100);r="linear-gradient(".concat(a,",").concat(a,"),").concat(t.image)}return"background:".concat(r,"!important;")+"background-size:".concat(t.size,"!important;")+"background-repeat:".concat(t.repeat,"!important;")+"background-position:".concat(t.position,"!important;")+"background-attachment:fixed!important;"}(e.background),"}")),u.push("".concat(l," .ant-layout-sider-children{top:auto!important;bottom:0!important;}")),u.push("".concat(m(l,t.content),"{background:transparent!important;}")),u.push("".concat(m(l,t.card+" div:not([class]):not([id])"),"{background-color:transparent!important;}")),e.card.glass&&e.card.blur>0&&u.push("".concat(m(l,t.card),",").concat(l," .code-block{").concat(g(e.card.blur),"}"))),e.header.enabled){var f=p(e.header.color,e.header.opacity/100),y="frosted"===e.header.style&&e.header.blur>0?g(e.header.blur):"";u.push("".concat(l," .ant-layout-header,").concat(l," .ant-pro-layout-header{background:").concat(f,"!important;").concat(y,"}"))}var h=e.font;if(null==h?void 0:h.enabled){if("upload"===h.source&&(null==(o=h.upload)?void 0:o.url)){var v=n(h.upload.name||"").replace(/["']/g,"")||"ExtraTheme Font",w=i(h.upload.url),E=b.includes(h.upload.format)?h.upload.format:a(h.upload.url);w&&(u.push('@font-face{font-family:"'.concat(v,'";src:url("').concat(w,'")').concat(E?' format("'.concat(E,'")'):"",";font-display:swap;}")),u.push("".concat(l,'{font-family:"').concat(v,'"!important;}')))}else if("upload"!==h.source){var S=n(h.family||"");S&&u.push("".concat(l,"{font-family:").concat(S,"!important;}"))}}if(e.sider.enabled){var x=p(e.sider.color,e.sider.opacity/100),O="frosted"===e.sider.style&&e.sider.blur>0?g(e.sider.blur):"";u.push("".concat(l," .ant-layout-sider{background:transparent!important;}")+"".concat(l," .ant-layout-sider-children{background:").concat(x,"!important;border-right:none!important;").concat(O,"}")+"".concat(l," .ant-layout-sider .ant-menu{background:transparent!important;border-inline-end:none!important;}")+"".concat(l," .ant-layout-sider .ant-menu::-webkit-scrollbar{width:6px;height:6px;}")+"".concat(l," .ant-layout-sider .ant-menu::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}")+"".concat(l," .ant-layout-sider .ant-menu::-webkit-scrollbar-track{background:transparent;}"))}return(null==(r=e.scrollbar)?void 0:r.enabled)&&("hidden"===e.scrollbar.mode?u.push("".concat(l," ::-webkit-scrollbar,").concat(l,"::-webkit-scrollbar{display:none;width:0;height:0;}")+"".concat(l,",").concat(l," *{scrollbar-width:none;-ms-overflow-style:none;}")):u.push("".concat(l," ::-webkit-scrollbar,").concat(l,"::-webkit-scrollbar{width:10px;height:10px;}")+"".concat(l," ::-webkit-scrollbar-thumb,").concat(l,"::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.22);border-radius:8px;border:2px solid transparent;background-clip:content-box;}")+"".concat(l," ::-webkit-scrollbar-thumb:hover,").concat(l,"::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.4);background-clip:content-box;}")+"".concat(l," ::-webkit-scrollbar-track,").concat(l,"::-webkit-scrollbar-track{background:transparent;}"))),u.join("\n")})(e.app,f.app).trim())}}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),_={app:{appRoot:".ant-layout",header:".ant-layout-header",sider:".ant-layout-sider",card:".ant-card",content:'.ant-pro-layout-content,.ant-pro-layout-container,.ant-layout-content,.ant-page-header,[class*="nb-subpages-slot"],[class*="nb-subpages-slot"]>div'},login:{loginRoot:".ant-layout",loginCard:".ant-card"}},I=l(155),B=l.n(I),A=l(59);function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}var F={Table:{colorBgContainer:"#ffffff"},Input:{colorBgContainer:"#ffffff"},InputNumber:{colorBgContainer:"#ffffff"},Select:{colorBgContainer:"#ffffff"},TreeSelect:{colorBgContainer:"#ffffff"},Cascader:{colorBgContainer:"#ffffff"},Mentions:{colorBgContainer:"#ffffff"},DatePicker:{colorBgContainer:"#ffffff"}},R=["colorBgContainer","colorBgLayout","fontFamily"],U=l(953),D="@amo/plugin-extratheme";function M(){var e=(0,U.useTranslation)([D,"client"]).t;return function(t,r){return e(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:D},r))}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function N(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function $(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){N(o,n,a,l,i,"next",e)}function i(e){N(o,n,a,l,i,"throw",e)}l(void 0)})}}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function W(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function H(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||J(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e,t){if(e){if("string"==typeof e)return L(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return L(e,t)}}function K(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function G(e){var t;return"string"==typeof e?e:(null==e||null==(t=e.toHexString)?void 0:t.call(e))||"#ffffff"}var Y=function(e){var t=e.label,r=e.value,n=e.children;return B().createElement("div",{style:{marginBottom:14}},B().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:7}},B().createElement("span",{style:{fontSize:12.5,color:"#475569"}},t),null!=r&&B().createElement("span",{style:{fontSize:12,fontWeight:600,color:"#6d5ae6",fontVariantNumeric:"tabular-nums"}},r)),n)},V=function(e){var t=e.title,r=e.right,n=e.children,a=e.first;return B().createElement("div",{style:{marginTop:18*!a,paddingTop:16*!a,borderTop:a?"none":"1px solid rgba(0,0,0,0.05)"}},t&&B().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12}},B().createElement("span",{style:{fontSize:12.5,fontWeight:700,color:"#0f172a"}},t),r),n)},X=function(e){var t=e.title,r=e.right,n=e.children,a=e.style;return B().createElement("div",{style:q({flex:"1 1 300px",minWidth:280,background:"#fff",borderRadius:14,border:"1px solid rgba(15,23,42,0.08)",boxShadow:"0 1px 3px rgba(15,23,42,0.04)",padding:"16px 20px 20px",alignSelf:"stretch"},a)},B().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:16,paddingBottom:13,borderBottom:"1px solid rgba(15,23,42,0.07)"}},B().createElement("b",{style:{fontSize:14,letterSpacing:.2,color:"#0f172a"}},t),r),n)},Z=function(e){return e?{}:{opacity:.4,pointerEvents:"none",filter:"grayscale(0.4)"}},Q=function(e){var t,r=e.bg,n=e.onChange,a=e.uploadImage,o=e.first,l=M(),i=function(e){return n(q({},r,e))},c=Object.keys(h),u=!c.includes(r.gradient.preset);return B().createElement(V,{title:l("背景"),first:o},B().createElement(Y,{label:l("类型")},B().createElement(A.Segmented,{block:!0,size:"small",value:r.type,onChange:function(e){return i({type:e})},options:[{label:l("纯色"),value:"color"},{label:l("渐变"),value:"gradient"},{label:l("图片"),value:"image"}]})),"color"===r.type&&B().createElement(Y,{label:l("背景颜色")},B().createElement(A.ColorPicker,{value:r.color,onChangeComplete:function(e){return i({color:G(e)})},showText:!0,disabledAlpha:!0})),"gradient"===r.type&&B().createElement(B().Fragment,null,B().createElement(Y,{label:l("渐变预设")},B().createElement(A.Select,{style:{width:"100%"},value:u?"__custom__":r.gradient.preset,onChange:function(e){"__custom__"===e?i({gradient:W(q({},r.gradient),{preset:"自定义"})}):i({gradient:W(q({},r.gradient),{preset:e,colors:h[e]})})},options:H(c.map(function(e){return{label:e,value:e}})).concat([{label:l("自定义"),value:"__custom__"}])})),B().createElement(Y,{label:l("角度"),value:"".concat(r.gradient.angle,"\xb0")},B().createElement(A.Slider,{min:0,max:360,value:r.gradient.angle,onChange:function(e){return i({gradient:W(q({},r.gradient),{angle:e})})}})),u&&B().createElement(Y,{label:l("自定义色标")},B().createElement("div",{style:{display:"flex",gap:8}},B().createElement(A.ColorPicker,{disabledAlpha:!0,value:r.gradient.colors[0]||"#ffffff",onChangeComplete:function(e){return i({gradient:W(q({},r.gradient),{colors:[G(e),r.gradient.colors[1]||"#ffffff"]})})}}),B().createElement(A.ColorPicker,{disabledAlpha:!0,value:r.gradient.colors[1]||"#ffffff",onChangeComplete:function(e){return i({gradient:W(q({},r.gradient),{colors:[r.gradient.colors[0]||"#ffffff",G(e)]})})}})))),"image"===r.type&&B().createElement(B().Fragment,null,B().createElement(Y,{label:l("图片 URL")},B().createElement(A.Input,{value:r.image.url,placeholder:"https://…",onChange:function(e){return i({image:W(q({},r.image),{url:e.target.value})})},addonAfter:a?B().createElement(A.Upload,{showUploadList:!1,beforeUpload:function(e){return $(function(){var t;return K(this,function(n){switch(n.label){case 0:return[4,a(e)];case 1:return(t=n.sent())&&i({image:W(q({},r.image),{url:t})}),[2,!1]}})})()}},B().createElement("span",{style:{cursor:"pointer"}},l("上传"))):null})),(t=r.image.url||"",!!/^https?:/i.test(t)&&(/[?&](X-Amz-(Signature|Expires|Credential)|OSSAccessKeyId|q-signature|q-sign-time)=/i.test(t)||/[?&](Signature|sig)=/i.test(t)&&/[?&](Expires|se)=/i.test(t))&&B().createElement("div",{style:{margin:"-4px 0 12px",padding:"8px 10px",borderRadius:8,background:"#fff7ed",border:"1px solid #fed7aa",fontSize:11.5,color:"#c2410c",lineHeight:1.6}},l("⚠ 当前图片是临时签名链接,过期后会 403 失效。请点上方“上传”重新选择图片,将改为内联存储,永不过期。"))),B().createElement(Y,{label:l("铺法")},B().createElement(A.Segmented,{block:!0,size:"small",value:r.image.fit,onChange:function(e){return i({image:W(q({},r.image),{fit:e})})},options:[{label:l("铺满"),value:"cover"},{label:l("适应"),value:"contain"},{label:l("拉伸"),value:"stretch"},{label:l("平铺"),value:"repeat"}]}))),B().createElement(Y,{label:l("暗化遮罩"),value:"".concat(r.dim,"%")},B().createElement(A.Slider,{min:0,max:80,value:r.dim,onChange:function(e){return i({dim:e})}})))},ee=function(e){var t=e.card,r=e.onChange,n=M(),a=function(e){return r(q({},t,e))};return B().createElement(V,{title:n("内容区卡片"),right:B().createElement(A.Switch,{size:"small",checked:t.glass,onChange:function(e){return a({glass:e})}})},B().createElement("div",{style:Z(t.glass)},B().createElement(Y,{label:n("卡片不透明度"),value:"".concat(t.opacity,"%")},B().createElement(A.Slider,{min:10,max:100,value:t.opacity,onChange:function(e){return a({opacity:e})}})),B().createElement(Y,{label:n("背景模糊"),value:"".concat(t.blur,"px")},B().createElement(A.Slider,{min:0,max:40,value:t.blur,onChange:function(e){return a({blur:e})}})),B().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},B().createElement("span",{style:{fontSize:12.5,color:"#475569"}},n("浅色描边")),B().createElement(A.Switch,{size:"small",checked:t.border,onChange:function(e){return a({border:e})}}))))},et=function(e){var t=e.scrollbar,r=e.onChange,n=M(),a=function(e){return r(q({},t,e))};return B().createElement(V,{title:n("滚动条"),right:B().createElement(A.Switch,{size:"small",checked:t.enabled,onChange:function(e){return a({enabled:e})}})},B().createElement("div",{style:Z(t.enabled)},B().createElement(Y,{label:n("显示方式")},B().createElement(A.Segmented,{block:!0,size:"small",value:t.mode,onChange:function(e){return a({mode:e})},options:[{label:n("始终显示"),value:"always"},{label:n("始终隐藏"),value:"hidden"}]})),B().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:2,lineHeight:1.6}},n("“始终显示”为常驻细滚动条;“始终隐藏”完全隐藏滚动条(内容仍可滚动)。"))))},er=function(e){var t=e.nav,r=e.onChange,n=M(),a=function(e){return r(q({},t,e))};return B().createElement(V,{first:!0},B().createElement(Y,{label:n("背景颜色")},B().createElement(A.ColorPicker,{value:t.color,onChangeComplete:function(e){return a({color:G(e)})},showText:!0,disabledAlpha:!0})),B().createElement(Y,{label:n("风格")},B().createElement(A.Segmented,{block:!0,size:"small",value:t.style,onChange:function(e){return a({style:e})},options:[{label:n("实色"),value:"solid"},{label:n("毛玻璃"),value:"frosted"}]})),B().createElement(Y,{label:n("不透明度"),value:"".concat(t.opacity,"%")},B().createElement(A.Slider,{min:0,max:100,value:t.opacity,onChange:function(e){return a({opacity:e})}})),B().createElement(Y,{label:n("背景模糊"),value:"".concat(t.blur,"px")},B().createElement(A.Slider,{min:0,max:40,value:t.blur,disabled:"frosted"!==t.style,onChange:function(e){return a({blur:e})}})))},en=function(e){var t,r=e.font,n=e.onChange,a=e.uploadFont,o=M(),l=function(e){return n(q({},r,e))},i=v.some(function(e){return e.value===r.family}),c=function(e){if(Array.isArray(e))return e}(t=B().useState(!i))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a=[],o=!0,l=!1;try{for(n=n.call(e);!(o=(t=n.next()).done)&&(a.push(t.value),2!==a.length);o=!0);}catch(e){l=!0,r=e}finally{try{o||null==n.return||n.return()}finally{if(l)throw r}}return a}}(t)||J(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),u=c[0],s=c[1],f=B().useRef(r.family);B().useEffect(function(){r.family!==f.current&&(f.current=r.family,s(!v.some(function(e){return e.value===r.family})))},[r.family]);var p=function(e){f.current=e,l({family:e})},d=u||!i,b=r.upload;B().useEffect(function(){var e=window.FontFace;if("upload"===r.source&&(null==b?void 0:b.url)&&(null==b?void 0:b.name)&&e&&document.fonts)try{new e(b.name,'url("'.concat(b.url,'")')).load().then(function(e){return document.fonts.add(e)}).catch(function(){})}catch(e){}},[r.source,null==b?void 0:b.url,null==b?void 0:b.name]);var m=function(e){return $(function(){var t;return K(this,function(o){switch(o.label){case 0:if(!a)return[3,2];return[4,a(e)];case 1:(t=o.sent()).url&&n(W(q({},r),{upload:t})),o.label=2;case 2:return[2,!1]}})})()},g="upload"===r.source&&(null==b?void 0:b.url)?'"'.concat(b.name,'"'):r.family||void 0;return B().createElement(V,{first:!0},B().createElement(Y,{label:o("字体来源")},B().createElement(A.Segmented,{block:!0,size:"small",value:r.source,onChange:function(e){return l({source:e})},options:[{label:o("系统字体"),value:"system"},{label:o("上传字体"),value:"upload"}]})),"system"===r.source?B().createElement(B().Fragment,null,B().createElement(Y,{label:o("字体")},B().createElement(A.Select,{style:{width:"100%"},value:d?"__custom__":r.family,onChange:function(e){"__custom__"===e?s(!0):(s(!1),p(e))},options:H(v.map(function(e){return{label:e.label,value:e.value}})).concat([{label:o("自定义"),value:"__custom__"}])})),d&&B().createElement(Y,{label:o("自定义字体")},B().createElement(A.Input,{value:r.family,placeholder:'"Font Name", sans-serif',onChange:function(e){return p(e.target.value)}}))):(null==b?void 0:b.url)?B().createElement(B().Fragment,null,B().createElement(Y,{label:o("字体名称")},B().createElement(A.Input,{value:b.name,placeholder:"Custom Font",onChange:function(e){var t;return t={name:e.target.value},n(W(q({},r),{upload:q({},r.upload,t)}))}})),B().createElement("div",{style:{display:"flex",gap:12,alignItems:"center",marginBottom:14}},B().createElement("span",{style:{fontSize:12,color:"#16a34a"}},o("已上传"),b.format?" \xb7 ".concat(b.format):""),B().createElement(A.Upload,{showUploadList:!1,accept:".ttf,.otf,.woff,.woff2",beforeUpload:m},B().createElement(A.Button,{type:"link",size:"small",style:{padding:0}},o("重新上传"))),B().createElement(A.Button,{type:"link",size:"small",danger:!0,style:{padding:0},onClick:function(){return n(W(q({},r),{upload:{url:"",name:"",format:""}}))}},o("移除")))):B().createElement(Y,{label:o("上传字体文件")},B().createElement(A.Upload,{showUploadList:!1,accept:".ttf,.otf,.woff,.woff2",beforeUpload:m},B().createElement(A.Button,{size:"small"},o("选择字体文件")))),B().createElement("div",{style:{marginTop:12,padding:"14px 16px",borderRadius:10,background:"#f8fafc",border:"1px solid rgba(15,23,42,0.06)",fontFamily:g}},B().createElement("div",{style:{fontSize:19,fontWeight:700,color:"#0f172a",lineHeight:1.4}},o("字体预览")," Aa 永和"),B().createElement("div",{style:{fontSize:13,color:"#475569",marginTop:5}},"中文示例文本 \xb7 The quick brown fox \xb7 0123456789")),B().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:8,lineHeight:1.6}},o("upload"===r.source?"提示:上传字体对所有访问者生效,无需本机安装;中文字体文件较大,建议使用 woff2 或先做子集化以加快加载。":"提示:字体需系统已安装才生效;“无衬线/系统默认”通常与本机默认字体一致,选“楷体/宋体”等可看到明显变化。")))},ea=function(e){var t=e.app,r=e.onChange,n=e.uploadImage,a=e.uploadFont,o=M(),l={flex:"0 0 auto"};return B().createElement("div",{style:{display:"flex",gap:20,flexWrap:"wrap",alignItems:"stretch"}},B().createElement(X,{title:o("工作区外观"),right:B().createElement(A.Switch,{checked:t.enabled,onChange:function(e){return r(W(q({},t),{enabled:e}))}})},B().createElement("div",{style:Z(t.enabled)},B().createElement(Q,{first:!0,bg:t.background,onChange:function(e){return r(W(q({},t),{background:e}))},uploadImage:n}),B().createElement(ee,{card:t.card,onChange:function(e){return r(W(q({},t),{card:e}))}})),B().createElement(et,{scrollbar:t.scrollbar,onChange:function(e){return r(W(q({},t),{scrollbar:e}))}})),B().createElement("div",{style:{flex:"1 1 300px",minWidth:280,display:"flex",flexDirection:"column",gap:20}},B().createElement(X,{style:l,title:o("顶部导航栏"),right:B().createElement(A.Switch,{checked:t.header.enabled,onChange:function(e){return r(W(q({},t),{header:W(q({},t.header),{enabled:e})}))}})},B().createElement("div",{style:Z(t.header.enabled)},B().createElement(er,{nav:t.header,onChange:function(e){return r(W(q({},t),{header:e}))}}))),B().createElement(X,{style:l,title:o("侧边导航栏"),right:B().createElement(A.Switch,{checked:t.sider.enabled,onChange:function(e){return r(W(q({},t),{sider:W(q({},t.sider),{enabled:e})}))}})},B().createElement("div",{style:Z(t.sider.enabled)},B().createElement(er,{nav:t.sider,onChange:function(e){return r(W(q({},t),{sider:e}))}})))),B().createElement(X,{title:o("全局字体"),right:B().createElement(A.Switch,{checked:t.font.enabled,onChange:function(e){return r(W(q({},t),{font:W(q({},t.font),{enabled:e})}))}})},B().createElement("div",{style:Z(t.font.enabled)},B().createElement(en,{font:t.font,onChange:function(e){return r(W(q({},t),{font:e}))},uploadFont:a}))))};function eo(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function el(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function ei(e){var t=d(e),r=t.image;if(e.dim>0&&"none"!==e.type){var n=c("#000000",e.dim/100);r="linear-gradient(".concat(n,",").concat(n,"),").concat(t.image)}return{background:r,backgroundSize:t.size,backgroundRepeat:t.repeat,backgroundPosition:t.position}}function ec(e){var t="frosted"===e.style&&e.blur>0?"blur(".concat(e.blur,"px)"):void 0;return{background:p(e.color,e.opacity/100),backdropFilter:t,WebkitBackdropFilter:t,color:"light"===e.text?"#f8fafc":"#1f2733"}}var eu={position:"relative",height:300,borderRadius:12,overflow:"hidden",border:"1px solid rgba(0,0,0,0.08)",boxShadow:"0 8px 30px rgba(0,0,0,0.12)"},es=function(e){var t=e.scope,r=e.app,n=e.login,a=M();if("app"===t){var o,l=r.enabled&&r.card.glass?{flex:1,borderRadius:10,padding:12,background:c("#ffffff",r.card.opacity/100),backdropFilter:r.card.blur>0?"blur(".concat(r.card.blur,"px)"):void 0,WebkitBackdropFilter:r.card.blur>0?"blur(".concat(r.card.blur,"px)"):void 0,border:r.card.border?"1px solid rgba(255,255,255,0.5)":"1px solid transparent",color:"#1f2733",fontSize:12}:{flex:1,borderRadius:10,padding:12,background:"#fff",border:"1px solid rgba(0,0,0,0.06)",color:"#1f2733",fontSize:12},i={background:"#fff",border:"1px solid rgba(0,0,0,0.12)",borderRadius:6},u=(null==(o=r.font)?void 0:o.enabled)&&r.font.family?r.font.family:void 0;return B().createElement("div",{style:eo(el(eo({},eu),{fontFamily:u}),r.enabled?ei(r.background):{background:"#f0f2f5"})},B().createElement("div",{style:eo({height:40,display:"flex",alignItems:"center",padding:"0 14px",fontWeight:700,fontSize:13},r.header.enabled?ec(r.header):{background:"#fff",color:"#1f2733"})},"NocoBase",B().createElement("span",{style:{marginLeft:"auto",display:"flex",gap:14,fontWeight:500,opacity:.85}},B().createElement("span",null,a("概览")),B().createElement("span",null,a("数据")),B().createElement("span",null,a("设置")))),B().createElement("div",{style:{display:"flex",height:"calc(100% - 40px)"}},B().createElement("div",{style:eo({width:92,padding:10,display:"flex",flexDirection:"column",gap:8,fontSize:12},r.sider.enabled?ec(r.sider):{background:"#fff",color:"#1f2733"})},B().createElement("div",{style:{fontWeight:700}},a("菜单")),B().createElement("div",{style:{opacity:.8}},a("概览")),B().createElement("div",{style:{opacity:.8}},a("订单")),B().createElement("div",{style:{opacity:.8}},a("报表"))),B().createElement("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:10}},B().createElement("div",{style:el(eo({},l),{display:"flex",flexDirection:"column",gap:6})},B().createElement("span",null,a("内容卡片")," A"),B().createElement("div",{style:el(eo({},i),{height:22})}),B().createElement("div",{style:el(eo({},i),{overflow:"hidden"})},B().createElement("div",{style:{height:16,borderBottom:"1px solid rgba(0,0,0,0.07)"}}),B().createElement("div",{style:{height:16}}))),B().createElement("div",{style:{display:"flex",gap:10,flex:1}},B().createElement("div",{style:l},"B"),B().createElement("div",{style:l},"C")))))}var s=n.card,f={width:220,padding:"22px 20px",borderRadius:s.radius,background:c("#ffffff",s.opacity/100),backdropFilter:s.glass&&s.blur>0?"blur(".concat(s.blur,"px)"):void 0,WebkitBackdropFilter:s.glass&&s.blur>0?"blur(".concat(s.blur,"px)"):void 0,boxShadow:s.shadow?"0 24px 70px rgba(15,23,42,0.28)":"none",color:"#1f2733",textAlign:"center"},p={height:30,borderRadius:8,background:"rgba(255,255,255,0.6)",border:"1px solid rgba(0,0,0,0.1)",margin:"8px 0"};return B().createElement("div",{style:eo(el(eo({},eu),{display:"flex",alignItems:"center",justifyContent:"center"}),n.enabled?ei(n.background):{background:"#f0f2f5"})},B().createElement("div",{style:f},B().createElement("div",{style:{fontWeight:800,fontSize:16,marginBottom:4}},"NocoBase"),B().createElement("div",{style:{fontSize:11,opacity:.7,marginBottom:10}},a("欢迎登录")),B().createElement("div",{style:p}),B().createElement("div",{style:p}),B().createElement("div",{style:{height:32,borderRadius:8,background:"#6d5ae6",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,marginTop:6}},a("登录"))))};function ef(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ep(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function ed(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){ep(o,n,a,l,i,"next",e)}function i(e){ep(o,n,a,l,i,"throw",e)}l(void 0)})}}function eb(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function em(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function eg(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,i=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(i)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ef(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ef(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ey(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eh="amo-extratheme";function ev(e){return new Promise(function(t,r){var n=new FileReader;n.onerror=function(){return r(n.error||Error("read failed"))},n.onload=function(){var a,o=String(n.result||""),l=o.indexOf(","),i=l>=0?o.slice(l+1):"";if(!i)return r(Error("empty"));var c=e.type||({png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif",bmp:"image/bmp",svg:"image/svg+xml",woff2:"font/woff2",woff:"font/woff",ttf:"font/ttf",otf:"font/otf",ttc:"font/collection"})[((null==(a=(e.name||"").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i))?void 0:a[1])||"").toLowerCase()]||"application/octet-stream";t("data:".concat(c,";base64,").concat(i))},n.readAsDataURL(e)})}var ew=function(){var t=M(),r=(0,e.useAPIClient)(),o=(0,e.useGlobalTheme)(),l=o.setTheme,i=o.theme,u=eg((0,I.useState)(function(){return O({})}),2),s=u[0],f=u[1],p=eg((0,I.useState)(!0),2),d=p[0],b=p[1],m=eg((0,I.useState)(!1),2),g=m[0],y=m[1];return((0,I.useEffect)(function(){var e=!0;return ed(function(){var t,n,a,o;return ey(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,3,4]),[4,r.request({url:"extraTheme:getPublic",method:"get"})];case 1:return o=null!=(t=null==(a=l.sent())||null==(n=a.data)?void 0:n.data)?t:{},e&&f(O(o)),[3,4];case 2:return l.sent(),[3,4];case 3:return e&&b(!1),[7];case 4:return[2]}})})(),function(){e=!1}},[r]),d)?B().createElement("div",{style:{padding:60,textAlign:"center"}},B().createElement(A.Spin,null)):B().createElement("div",{style:{padding:4,width:"100%"}},B().createElement(ea,{app:s.app,onChange:function(e){return f(em(eb({},s),{app:e}))},uploadImage:function(e){return ed(function(){var r;return ey(this,function(n){switch(n.label){case 0:if(n.trys.push([0,2,,3]),e.size>1048576)return A.message.error(t("图片过大,上限 1MB。背景图会内联进主题配置,请压缩后再上传(推荐 WebP,≤400KB)。")),[2,""];return[4,ev(e)];case 1:return r=n.sent(),e.size>409600&&A.message.warning(t("图片较大,已内联进配置;建议压缩到 400KB 以内。")),A.message.success(t("已内联,不依赖存储、永不过期")),[2,r];case 2:return n.sent(),A.message.error(t("上传失败")),[2,""];case 3:return[2]}})})()},uploadFont:function(e){return ed(function(){var r,n,o,l;return ey(this,function(i){switch(i.label){case 0:r={url:"",name:"",format:""},i.label=1;case 1:if(i.trys.push([1,3,,4]),e.size>1048576)return A.message.error(t("字体文件过大,上限 1MB。字体会内联进主题配置,请使用子集化后的 woff2。")),[2,r];return[4,ev(e)];case 2:return n=i.sent(),o=(e.name||"Custom Font").replace(/\.[^.]+$/,"")||"Custom Font",l=a(e.name),A.message.success(t("已内联,不依赖存储、永不过期")),[2,{url:n,name:o,format:l}];case 3:return i.sent(),A.message.error(t("上传失败")),[2,r];case 4:return[2]}})})()}}),B().createElement(A.Space,{style:{marginTop:20}},B().createElement(A.Button,{type:"primary",loading:g,onClick:function(){return ed(function(){return ey(this,function(a){switch(a.label){case 0:y(!0),a.label=1;case 1:return a.trys.push([1,4,5,6]),[4,r.request({url:"extraTheme:set",method:"post",data:{scope:"app",config:s.app}})];case 2:var o;return a.sent(),[4,(o=s.app,ed(function(){var t,a,u,s,f,p,d,b,m,g,y;return ey(this,function(h){switch(h.label){case 0:a=t=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};arguments.length>2&&void 0!==arguments[2]&&arguments[2];var a=z({},r),o=!0,l=!1,i=void 0;try{for(var u,s=R[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var f=u.value;delete a[f]}}catch(e){l=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(l)throw i}}a.colorBgElevated="#ffffff",e.enabled&&(a.colorBgLayout="transparent",e.card.glass&&(a.colorBgContainer=c("#ffffff",e.card.opacity/100)));var p=e.font;if(null==p?void 0:p.enabled){if("upload"===p.source&&(null==(t=p.upload)?void 0:t.url)){var d=n(p.upload.name||"").replace(/["']/g,"");d&&(a.fontFamily='"'.concat(d,'"'))}else if("upload"!==p.source){var b=n(p.family||"");b&&(a.fontFamily=b)}}return{name:"Modern",token:a,components:z({},F),cssVar:!0}}(o,(null==i?void 0:i.token)||(null===e.defaultTheme||void 0===e.defaultTheme?void 0:e.defaultTheme.token)||{},(null===e.defaultTheme||void 0===e.defaultTheme?void 0:e.defaultTheme.token)||{}),h.label=1;case 1:return h.trys.push([1,9,,10]),[4,r.resource("themeConfig").list({filter:{uid:eh},pageSize:1})];case 2:if(b=null==(d=null==(p=h.sent())||null==(s=p.data)||null==(u=s.data)?void 0:u[0])?void 0:d.id,(null==d||null==(f=d.config)?void 0:f.name)&&(a=em(eb({},t),{name:d.config.name})),!d)return[3,4];return[4,r.resource("themeConfig").update({filterByTk:b,values:{config:a,default:!0,optional:!0}})];case 3:return h.sent(),[3,6];case 4:return[4,r.resource("themeConfig").create({values:{config:a,optional:!0,isBuiltIn:!1,uid:eh,default:!0}})];case 5:b=null==(y=h.sent())||null==(g=y.data)||null==(m=g.data)?void 0:m.id,h.label=6;case 6:if(null==b)return[3,8];return[4,r.resource("users").updateTheme({values:{themeId:b}})];case 7:h.sent(),h.label=8;case 8:return[3,10];case 9:return h.sent(),[3,10];case 10:try{null==l||l(a)}catch(e){}return[2]}})})())];case 3:return a.sent(),window.dispatchEvent(new Event("extra-theme:changed")),A.message.success(t("已保存并应用")),[3,6];case 4:return a.sent(),A.message.error(t("保存失败")),[3,6];case 5:return y(!1),[7];case 6:return[2]}})})()}},t("保存并应用")),B().createElement(A.Button,{onClick:function(){return f(em(eb({},s),{app:JSON.parse(JSON.stringify(w))}))}},t("重置本组"))),B().createElement("div",{style:{marginTop:24}},B().createElement("div",{style:{fontSize:12,color:"#94a3b8",marginBottom:8}},t("实时预览")),B().createElement(es,{scope:"app",app:s.app,login:s.login}),B().createElement("div",{style:{fontSize:11,color:"#94a3b8",marginTop:10,lineHeight:1.6}},t("提示:默认关闭,开启总开关并保存后才生效;关闭插件或关闭开关立即恢复原生外观。"))))};function eE(e,t,r,n,a,o,l){try{var i=e[o](l),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,a)}function eS(e,t,r){return(eS=eC()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&eO(a,r.prototype),a}).apply(null,arguments)}function ex(e){return(ex=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eO(e,t){return(eO=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ek(e){var t="function"==typeof Map?new Map:void 0;return(ek=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return eS(e,arguments,ex(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),eO(r,e)})(e)}function eC(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(eC=function(){return!!e})()}var ej="@amo/plugin-extratheme",eP=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function a(){var e,t;if(!(this instanceof a))throw TypeError("Cannot call a class as a function");return e=a,t=arguments,e=ex(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,eC()?Reflect.construct(e,t||[],ex(this).constructor):e.apply(this,t))}return a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),e&&eO(a,e),n=[{key:"load",value:function(){var e;return(e=function(){var e;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],n=0}finally{r=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(n){return e=this,this.app.i18n.addResources("zh-CN",ej,t),this.app.i18n.addResources("en-US",ej,r),new T(function(t){return e.app.apiClient.request(t)},_).start(),this.app.addComponents({ExtraThemeSettings:ew}),this.app.pluginSettingsManager.add("extra-theme",{title:this.app.i18n.t("主题增强",{ns:ej}),icon:"BgColorsOutlined",Component:"ExtraThemeSettings",aclSnippet:"pm.extra-theme",sort:500}),[2]})},function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){eE(o,n,a,l,i,"next",e)}function i(e){eE(o,n,a,l,i,"throw",e)}l(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(a.prototype,n),a}(ek(e.Plugin))}(),f}()});
|
package/dist/client-v2/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@nocobase/client-v2")):"function"==typeof define&&define.amd?define("@emotionalamo/plugin-extratheme/client-v2",["@nocobase/client-v2"],e):"object"==typeof exports?exports["@emotionalamo/plugin-extratheme/client-v2"]=e(require("@nocobase/client-v2")):t["@emotionalamo/plugin-extratheme/client-v2"]=e(t["@nocobase/client-v2"])}(self,function(t){return function(){"use strict";var e={485:function(e){e.exports=t}},r={};function n(t){var o=r[t];if(void 0!==o)return o.exports;var a=r[t]={exports:{}};return e[t](a,a.exports,n),a.exports}n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.g.importScripts&&(o=n.g.location+"");var o,a=n.g.document;if(!o&&a&&(a.currentScript&&"SCRIPT"===a.currentScript.tagName.toUpperCase()&&(o=a.currentScript.src),!o)){var c=a.getElementsByTagName("script");if(c.length)for(var i=c.length-1;i>-1&&(!o||!/^http(s?):/.test(o));)o=c[i--].src}if(!o)throw Error("Automatic publicPath is not supported in this browser");n.p=o.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var l={};return!function(){var t="",e="u">typeof document?document.currentScript:null;if(e&&e.src){var r=e.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");r.indexOf("/static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/")>=0&&(t=r.replace(/\/[^\/]+$/,"/"))}if(!t){var o=window.__webpack_public_path__||"";o&&("/"!==o.charAt(o.length-1)&&(o+="/"),t=o+"static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/")}if(!t){var a=window.__nocobase_modern_client_prefix__||"v",c="/"+(a=String(a).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(t=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",l=i.indexOf(c);t=l>=0?i.slice(0,l+1):"/"}t&&(t=t.replace(RegExp("/"+a+"/?$"),"/")),t||(t="/"),"/"!==t.charAt(t.length-1)&&(t+="/"),t+="static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/"}n.p=t}(),!function(){n.r(l),n.d(l,{default:function(){return $}});var t=n(485);function e(t){var e=(t||"").replace(/[;{}<>\\/*]/g,"").replace(/[\r\n\t]+/g," ").trim();return(e.match(/"/g)||[]).length%2&&(e=e.replace(/"/g,"")),(e.match(/'/g)||[]).length%2&&(e=e.replace(/'/g,"")),e.slice(0,200)}function r(t){return(t||"").replace(/["')(;{}<>\\]/g,"").replace(/\s+/g,"").slice(0,2e3)}function o(t){var e=(t||"").trim();return/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e)||/^(rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/]+\)$/i.test(e)||/^[a-z]+$/i.test(e)?e:"transparent"}function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=Number(t);return Number.isFinite(r)?r:e}function c(t,e){var r=function(t){var e=(t||"").trim(),r=e.match(/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)/i);if(r)return[Math.round(+r[1]),Math.round(+r[2]),Math.round(+r[3])];var n=e.replace("#","");return(3===n.length&&(n=n.split("").map(function(t){return t+t}).join("")),/^[0-9a-f]{6}$/i.test(n))?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}(t);return r?"rgba(".concat(r[0],",").concat(r[1],",").concat(r[2],",").concat(a(e),")"):"transparent"}var i=["woff2","woff","truetype","opentype"];function u(t,e){return e.split(",").map(function(e){return"".concat(t," ").concat(e.trim())}).join(",")}function s(t){var e=a(t);return"backdrop-filter:blur(".concat(e,"px);-webkit-backdrop-filter:blur(").concat(e,"px);")}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var f={enabled:!1,background:{type:"gradient",color:"#eef2f7",gradient:{preset:"晴空",angle:135,colors:["#e0f2fe","#ede9fe"]},image:{url:"",fit:"cover",position:"center"},dim:0},card:{glass:!0,opacity:72,blur:12,border:!0},header:{enabled:!1,style:"frosted",color:"#ffffff",opacity:90,blur:14,text:"dark"},sider:{enabled:!1,style:"frosted",color:"#ffffff",opacity:86,blur:16,text:"dark"},font:{enabled:!1,source:"system",family:'"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",Roboto,system-ui,sans-serif',upload:{url:"",name:"",format:""}},scrollbar:{enabled:!1,mode:"always"}},d={enabled:!1,background:{type:"gradient",color:"#1e293b",gradient:{preset:"暖阳",angle:135,colors:["#fff7ed","#ffedd5","#fed7aa"]},image:{url:"",fit:"cover",position:"center"},dim:15},card:{glass:!0,opacity:70,blur:18,radius:18,shadow:!0}};function b(t){return null!=t&&(void 0===t?"undefined":t&&"u">typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)=="object"&&!Array.isArray(t)}function y(t,e){if(!b(t))return void 0===e?t:e;var r=Array.isArray(t)?function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("u">typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t){if(t){if("string"==typeof t)return p(t,void 0);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return p(t,void 0)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){var n;n=r[e],e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n})}return t}({},t),n=!0,o=!1,a=void 0;try{for(var c,i=Object.keys(t)[Symbol.iterator]();!(n=(c=i.next()).done);n=!0){var l=c.value;b(t[l])?r[l]=y(t[l],null==e?void 0:e[l]):e&&void 0!==e[l]&&(r[l]=e[l])}}catch(t){o=!0,a=t}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}function h(t){return{app:y(f,null==t?void 0:t.app),login:y(d,null==t?void 0:t.login)}}function m(t,e,r,n,o,a,c){try{var i=t[a](c),l=i.value}catch(t){r(t);return}i.done?e(l):Promise.resolve(l).then(n,o)}function v(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var g="extra-theme-style",w="EXTRA_THEME_CACHE",k=function(){var t;function n(t,e){if(!(this instanceof n))throw TypeError("Cannot call a class as a function");v(this,"request",void 0),v(this,"selectors",void 0),this.request=t,this.selectors=e}return t=[{key:"start",value:function(){var t=this;try{var e=localStorage.getItem(w);e&&this.apply(h(JSON.parse(e)))}catch(t){}this.refresh(),window.addEventListener("extra-theme:changed",function(){return t.refresh()})}},{key:"refresh",value:function(){var t;return(t=function(){var t,e,r,n,o;return function(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(c,"next",{value:l(0)}),i(c,"throw",{value:l(1)}),i(c,"return",{value:l(2)}),"function"==typeof Symbol&&i(c,Symbol.iterator,{value:function(){return this}}),c;function l(i){return function(l){var u=[i,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(t,a)}catch(t){u=[6,t],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,this.request({url:"extraTheme:getPublic",method:"get"})];case 1:o=h(null!=(t=null!=(e=null==(n=a.sent())||null==(r=n.data)?void 0:r.data)?e:null==n?void 0:n.data)?t:{});try{localStorage.setItem(w,JSON.stringify(o))}catch(t){}return this.apply(o),[3,3];case 2:return a.sent(),[3,3];case 3:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function c(t){m(a,n,o,c,i,"next",t)}function i(t){m(a,n,o,c,i,"throw",t)}c(void 0)})}).call(this)}},{key:"apply",value:function(t){var n,l=document.body;if(l){l.classList.toggle("extra-theme-app-on",!!((p=t.app).enabled||p.header.enabled||p.sider.enabled||(null==(f=p.font)?void 0:f.enabled)||(null==(d=p.scrollbar)?void 0:d.enabled))),l.classList.toggle("extra-theme-login-on",!!(null==(n=t.login)?void 0:n.enabled));var p,f,d,b,y=document.getElementById(g);y||((y=document.createElement("style")).id=g,document.head.appendChild(y)),y.textContent=(b=this.selectors,(function(t,n){var l,p,f="body.extra-theme-app-on",d=[];if(t.enabled&&(d.push("".concat(f,"{").concat(function(t){var e=function(t){var e,n={image:"transparent",size:"auto",repeat:"no-repeat",position:"center"};if(!t||"none"===t.type)return n;if("color"===t.type)return{image:o(t.color),size:"auto",repeat:"no-repeat",position:"center"};if("gradient"===t.type){var c=(t.gradient.colors||[]).map(o).join(",");return{image:"linear-gradient(".concat(a(t.gradient.angle),"deg,").concat(c,")"),size:"cover",repeat:"no-repeat",position:"center"}}var i=r((null==(e=t.image)?void 0:e.url)||"");if(!i)return n;var l=t.image.fit;return{image:'url("'.concat(i,'")'),size:"repeat"===l?"auto":"stretch"===l?"100% 100%":"contain"===l?"contain":"cover",repeat:"repeat"===l?"repeat":"no-repeat",position:"center"}}(t),n=e.image,c=a(t.dim);if(c>0&&"none"!==t.type){var i,l,u,s,p,f=(i=c/100,3===(l="#000000".replace("#","")).length&&(l=l.split("").map(function(t){return t+t}).join("")),u=parseInt(l.slice(0,2),16),s=parseInt(l.slice(2,4),16),p=parseInt(l.slice(4,6),16),"rgba(".concat(u,",").concat(s,",").concat(p,",").concat(i,")"));n="linear-gradient(".concat(f,",").concat(f,"),").concat(e.image)}return"background:".concat(n,"!important;")+"background-size:".concat(e.size,"!important;")+"background-repeat:".concat(e.repeat,"!important;")+"background-position:".concat(e.position,"!important;")+"background-attachment:fixed!important;"}(t.background),"}")),d.push("".concat(f," .ant-layout-sider-children{top:auto!important;bottom:0!important;}")),d.push("".concat(u(f,n.content),"{background:transparent!important;}")),d.push("".concat(u(f,n.card+" div:not([class]):not([id])"),"{background-color:transparent!important;}")),t.card.glass&&t.card.blur>0&&d.push("".concat(u(f,n.card),",").concat(f," .code-block{").concat(s(t.card.blur),"}"))),t.header.enabled){var b=c(t.header.color,t.header.opacity/100),y="frosted"===t.header.style&&t.header.blur>0?s(t.header.blur):"";d.push("".concat(f," .ant-layout-header,").concat(f," .ant-pro-layout-header{background:").concat(b,"!important;").concat(y,"}"))}var h=t.font;if(null==h?void 0:h.enabled){if("upload"===h.source&&(null==(p=h.upload)?void 0:p.url)){var m,v=e(h.upload.name||"").replace(/["']/g,"")||"ExtraTheme Font",g=r(h.upload.url),w=i.includes(h.upload.format)?h.upload.format:({woff2:"woff2",woff:"woff",ttf:"truetype",otf:"opentype",ttc:"truetype"})[((null==(m=(h.upload.url||"").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i))?void 0:m[1])||"").toLowerCase()]||"";g&&(d.push('@font-face{font-family:"'.concat(v,'";src:url("').concat(g,'")').concat(w?' format("'.concat(w,'")'):"",";font-display:swap;}")),d.push("".concat(f,'{font-family:"').concat(v,'"!important;}')))}else if("upload"!==h.source){var k=e(h.family||"");k&&d.push("".concat(f,"{font-family:").concat(k,"!important;}"))}}if(t.sider.enabled){var x=c(t.sider.color,t.sider.opacity/100),j="frosted"===t.sider.style&&t.sider.blur>0?s(t.sider.blur):"";d.push("".concat(f," .ant-layout-sider{background:transparent!important;}")+"".concat(f," .ant-layout-sider-children{background:").concat(x,"!important;border-right:none!important;").concat(j,"}")+"".concat(f," .ant-layout-sider .ant-menu{background:transparent!important;border-inline-end:none!important;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar{width:6px;height:6px;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar-track{background:transparent;}"))}return(null==(l=t.scrollbar)?void 0:l.enabled)&&("hidden"===t.scrollbar.mode?d.push("".concat(f," ::-webkit-scrollbar,").concat(f,"::-webkit-scrollbar{display:none;width:0;height:0;}")+"".concat(f,",").concat(f," *{scrollbar-width:none;-ms-overflow-style:none;}")):d.push("".concat(f," ::-webkit-scrollbar,").concat(f,"::-webkit-scrollbar{width:10px;height:10px;}")+"".concat(f," ::-webkit-scrollbar-thumb,").concat(f,"::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.22);border-radius:8px;border:2px solid transparent;background-clip:content-box;}")+"".concat(f," ::-webkit-scrollbar-thumb:hover,").concat(f,"::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.4);background-clip:content-box;}")+"".concat(f," ::-webkit-scrollbar-track,").concat(f,"::-webkit-scrollbar-track{background:transparent;}"))),d.join("\n")})(t.app,b.app).trim())}}}],function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}(n.prototype,t),n}(),x={app:{appRoot:".ant-layout",header:".ant-layout-header",sider:".ant-layout-sider",card:".ant-card",content:'.ant-pro-layout-content,.ant-pro-layout-container,.ant-layout-content,.ant-page-header,[class*="nb-subpages-slot"],[class*="nb-subpages-slot"]>div'},login:{loginRoot:".ant-layout",loginCard:".ant-card"}};function j(t,e,r,n,o,a,c){try{var i=t[a](c),l=i.value}catch(t){r(t);return}i.done?e(l):Promise.resolve(l).then(n,o)}function O(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function c(t){j(a,n,o,c,i,"next",t)}function i(t){j(a,n,o,c,i,"throw",t)}c(void 0)})}}function S(t,e,r){return(S=I()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&P(o,r.prototype),o}).apply(null,arguments)}function _(t){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function P(t,e){return(P=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function E(t){var e="function"==typeof Map?new Map:void 0;return(E=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return S(t,arguments,_(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),P(r,t)})(t)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(I=function(){return!!t})()}function T(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(c,"next",{value:l(0)}),i(c,"throw",{value:l(1)}),i(c,"return",{value:l(2)}),"function"==typeof Symbol&&i(c,Symbol.iterator,{value:function(){return this}}),c;function l(i){return function(l){var u=[i,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(t,a)}catch(t){u=[6,t],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function A(){return O(function(){var t,e;return T(this,function(r){switch(r.label){case 0:return[4,fetch("/api/extraTheme:getPublic",{headers:{Accept:"application/json"}})];case 1:return t=r.sent(),e={},[4,t.json()];case 2:return[2,(e.data=r.sent(),e)]}})})()}var $=function(t){var e;if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");function r(){var t,e;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return t=r,e=arguments,t=_(t),function(t,e){var r;if(e&&("object"==((r=e)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof e))return e;if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(this,I()?Reflect.construct(t,e||[],_(this).constructor):t.apply(this,e))}return r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),t&&P(r,t),e=[{key:"load",value:function(){return O(function(){return T(this,function(t){return new k(A,x).start(),[2]})})()}}],function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}(r.prototype,e),r}(E(t.Plugin))}(),l}()});
|
|
10
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@nocobase/client-v2")):"function"==typeof define&&define.amd?define("@emotionalamo/plugin-extratheme/client-v2",["@nocobase/client-v2"],e):"object"==typeof exports?exports["@emotionalamo/plugin-extratheme/client-v2"]=e(require("@nocobase/client-v2")):t["@emotionalamo/plugin-extratheme/client-v2"]=e(t["@nocobase/client-v2"])}(self,function(t){return function(){"use strict";var e={485:function(e){e.exports=t}},r={};function n(t){var o=r[t];if(void 0!==o)return o.exports;var a=r[t]={exports:{}};return e[t](a,a.exports,n),a.exports}n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.g.importScripts&&(o=n.g.location+"");var o,a=n.g.document;if(!o&&a&&(a.currentScript&&"SCRIPT"===a.currentScript.tagName.toUpperCase()&&(o=a.currentScript.src),!o)){var c=a.getElementsByTagName("script");if(c.length)for(var i=c.length-1;i>-1&&(!o||!/^http(s?):/.test(o));)o=c[i--].src}if(!o)throw Error("Automatic publicPath is not supported in this browser");n.p=o.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var l={};return!function(){var t="",e="u">typeof document?document.currentScript:null;if(e&&e.src){var r=e.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");r.indexOf("/static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/")>=0&&(t=r.replace(/\/[^\/]+$/,"/"))}if(!t){var o=window.__webpack_public_path__||"";o&&("/"!==o.charAt(o.length-1)&&(o+="/"),t=o+"static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/")}if(!t){var a=window.__nocobase_modern_client_prefix__||"v",c="/"+(a=String(a).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(t=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",l=i.indexOf(c);t=l>=0?i.slice(0,l+1):"/"}t&&(t=t.replace(RegExp("/"+a+"/?$"),"/")),t||(t="/"),"/"!==t.charAt(t.length-1)&&(t+="/"),t+="static/plugins/@emotionalamo/plugin-extratheme/dist/client-v2/"}n.p=t}(),!function(){n.r(l),n.d(l,{default:function(){return C}});var t=n(485);function e(t){var e=(t||"").replace(/[;{}<>\\/*]/g,"").replace(/[\r\n\t]+/g," ").trim();return(e.match(/"/g)||[]).length%2&&(e=e.replace(/"/g,"")),(e.match(/'/g)||[]).length%2&&(e=e.replace(/'/g,"")),e.slice(0,200)}var r=/^data:[\w.+-]+\/[\w.+-]+;base64,[A-Za-z0-9+/=]+$/;function o(t){var e=t||"";return r.test(e)?e:e.replace(/["')(;{}<>\\]/g,"").replace(/\s+/g,"").slice(0,2e3)}function a(t){var e=(t||"").trim();return/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e)||/^(rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/]+\)$/i.test(e)||/^[a-z]+$/i.test(e)?e:"transparent"}function c(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=Number(t);return Number.isFinite(r)?r:e}function i(t,e){var r=function(t){var e=(t||"").trim(),r=e.match(/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)/i);if(r)return[Math.round(+r[1]),Math.round(+r[2]),Math.round(+r[3])];var n=e.replace("#","");return(3===n.length&&(n=n.split("").map(function(t){return t+t}).join("")),/^[0-9a-f]{6}$/i.test(n))?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}(t);return r?"rgba(".concat(r[0],",").concat(r[1],",").concat(r[2],",").concat(c(e),")"):"transparent"}var u=["woff2","woff","truetype","opentype"];function s(t,e){return e.split(",").map(function(e){return"".concat(t," ").concat(e.trim())}).join(",")}function p(t){var e=c(t);return"backdrop-filter:blur(".concat(e,"px);-webkit-backdrop-filter:blur(").concat(e,"px);")}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var d={enabled:!1,background:{type:"gradient",color:"#eef2f7",gradient:{preset:"晴空",angle:135,colors:["#e0f2fe","#ede9fe"]},image:{url:"",fit:"cover",position:"center"},dim:0},card:{glass:!0,opacity:72,blur:12,border:!0},header:{enabled:!1,style:"frosted",color:"#ffffff",opacity:90,blur:14,text:"dark"},sider:{enabled:!1,style:"frosted",color:"#ffffff",opacity:86,blur:16,text:"dark"},font:{enabled:!1,source:"system",family:'"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",Roboto,system-ui,sans-serif',upload:{url:"",name:"",format:""}},scrollbar:{enabled:!1,mode:"always"}},b={enabled:!1,background:{type:"gradient",color:"#1e293b",gradient:{preset:"暖阳",angle:135,colors:["#fff7ed","#ffedd5","#fed7aa"]},image:{url:"",fit:"cover",position:"center"},dim:15},card:{glass:!0,opacity:70,blur:18,radius:18,shadow:!0}};function y(t){return null!=t&&(void 0===t?"undefined":t&&"u">typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)=="object"&&!Array.isArray(t)}function h(t,e){if(!y(t))return void 0===e?t:e;var r=Array.isArray(t)?function(t){if(Array.isArray(t))return f(t)}(t)||function(t){if("u">typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t){if(t){if("string"==typeof t)return f(t,void 0);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return f(t,void 0)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){var n;n=r[e],e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n})}return t}({},t),n=!0,o=!1,a=void 0;try{for(var c,i=Object.keys(t)[Symbol.iterator]();!(n=(c=i.next()).done);n=!0){var l=c.value;y(t[l])?r[l]=h(t[l],null==e?void 0:e[l]):e&&void 0!==e[l]&&(r[l]=e[l])}}catch(t){o=!0,a=t}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}function m(t){return{app:h(d,null==t?void 0:t.app),login:h(b,null==t?void 0:t.login)}}function v(t,e,r,n,o,a,c){try{var i=t[a](c),l=i.value}catch(t){r(t);return}i.done?e(l):Promise.resolve(l).then(n,o)}function g(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var w="extra-theme-style",k="EXTRA_THEME_CACHE",x=function(){var t;function r(t,e){if(!(this instanceof r))throw TypeError("Cannot call a class as a function");g(this,"request",void 0),g(this,"selectors",void 0),this.request=t,this.selectors=e}return t=[{key:"start",value:function(){var t=this;try{var e=localStorage.getItem(k);e&&this.apply(m(JSON.parse(e)))}catch(t){}this.refresh(),window.addEventListener("extra-theme:changed",function(){return t.refresh()})}},{key:"refresh",value:function(){var t;return(t=function(){var t,e,r,n,o;return function(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(c,"next",{value:l(0)}),i(c,"throw",{value:l(1)}),i(c,"return",{value:l(2)}),"function"==typeof Symbol&&i(c,Symbol.iterator,{value:function(){return this}}),c;function l(i){return function(l){var u=[i,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(t,a)}catch(t){u=[6,t],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,this.request({url:"extraTheme:getPublic",method:"get"})];case 1:o=m(null!=(t=null!=(e=null==(n=a.sent())||null==(r=n.data)?void 0:r.data)?e:null==n?void 0:n.data)?t:{});try{localStorage.setItem(k,JSON.stringify(o))}catch(t){}return this.apply(o),[3,3];case 2:return a.sent(),[3,3];case 3:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function c(t){v(a,n,o,c,i,"next",t)}function i(t){v(a,n,o,c,i,"throw",t)}c(void 0)})}).call(this)}},{key:"apply",value:function(t){var r,n=document.body;if(n){n.classList.toggle("extra-theme-app-on",!!((l=t.app).enabled||l.header.enabled||l.sider.enabled||(null==(f=l.font)?void 0:f.enabled)||(null==(d=l.scrollbar)?void 0:d.enabled))),n.classList.toggle("extra-theme-login-on",!!(null==(r=t.login)?void 0:r.enabled));var l,f,d,b,y=document.getElementById(w);y||((y=document.createElement("style")).id=w,document.head.appendChild(y)),y.textContent=(b=this.selectors,(function(t,r){var n,l,f="body.extra-theme-app-on",d=[];if(t.enabled&&(d.push("".concat(f,"{").concat(function(t){var e=function(t){var e,r={image:"transparent",size:"auto",repeat:"no-repeat",position:"center"};if(!t||"none"===t.type)return r;if("color"===t.type)return{image:a(t.color),size:"auto",repeat:"no-repeat",position:"center"};if("gradient"===t.type){var n=(t.gradient.colors||[]).map(a).join(",");return{image:"linear-gradient(".concat(c(t.gradient.angle),"deg,").concat(n,")"),size:"cover",repeat:"no-repeat",position:"center"}}var i=o((null==(e=t.image)?void 0:e.url)||"");if(!i)return r;var l=t.image.fit;return{image:'url("'.concat(i,'")'),size:"repeat"===l?"auto":"stretch"===l?"100% 100%":"contain"===l?"contain":"cover",repeat:"repeat"===l?"repeat":"no-repeat",position:"center"}}(t),r=e.image,n=c(t.dim);if(n>0&&"none"!==t.type){var i,l,u,s,p,f=(i=n/100,3===(l="#000000".replace("#","")).length&&(l=l.split("").map(function(t){return t+t}).join("")),u=parseInt(l.slice(0,2),16),s=parseInt(l.slice(2,4),16),p=parseInt(l.slice(4,6),16),"rgba(".concat(u,",").concat(s,",").concat(p,",").concat(i,")"));r="linear-gradient(".concat(f,",").concat(f,"),").concat(e.image)}return"background:".concat(r,"!important;")+"background-size:".concat(e.size,"!important;")+"background-repeat:".concat(e.repeat,"!important;")+"background-position:".concat(e.position,"!important;")+"background-attachment:fixed!important;"}(t.background),"}")),d.push("".concat(f," .ant-layout-sider-children{top:auto!important;bottom:0!important;}")),d.push("".concat(s(f,r.content),"{background:transparent!important;}")),d.push("".concat(s(f,r.card+" div:not([class]):not([id])"),"{background-color:transparent!important;}")),t.card.glass&&t.card.blur>0&&d.push("".concat(s(f,r.card),",").concat(f," .code-block{").concat(p(t.card.blur),"}"))),t.header.enabled){var b=i(t.header.color,t.header.opacity/100),y="frosted"===t.header.style&&t.header.blur>0?p(t.header.blur):"";d.push("".concat(f," .ant-layout-header,").concat(f," .ant-pro-layout-header{background:").concat(b,"!important;").concat(y,"}"))}var h=t.font;if(null==h?void 0:h.enabled){if("upload"===h.source&&(null==(l=h.upload)?void 0:l.url)){var m,v=e(h.upload.name||"").replace(/["']/g,"")||"ExtraTheme Font",g=o(h.upload.url),w=u.includes(h.upload.format)?h.upload.format:({woff2:"woff2",woff:"woff",ttf:"truetype",otf:"opentype",ttc:"truetype"})[((null==(m=(h.upload.url||"").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i))?void 0:m[1])||"").toLowerCase()]||"";g&&(d.push('@font-face{font-family:"'.concat(v,'";src:url("').concat(g,'")').concat(w?' format("'.concat(w,'")'):"",";font-display:swap;}")),d.push("".concat(f,'{font-family:"').concat(v,'"!important;}')))}else if("upload"!==h.source){var k=e(h.family||"");k&&d.push("".concat(f,"{font-family:").concat(k,"!important;}"))}}if(t.sider.enabled){var x=i(t.sider.color,t.sider.opacity/100),j="frosted"===t.sider.style&&t.sider.blur>0?p(t.sider.blur):"";d.push("".concat(f," .ant-layout-sider{background:transparent!important;}")+"".concat(f," .ant-layout-sider-children{background:").concat(x,"!important;border-right:none!important;").concat(j,"}")+"".concat(f," .ant-layout-sider .ant-menu{background:transparent!important;border-inline-end:none!important;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar{width:6px;height:6px;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;}")+"".concat(f," .ant-layout-sider .ant-menu::-webkit-scrollbar-track{background:transparent;}"))}return(null==(n=t.scrollbar)?void 0:n.enabled)&&("hidden"===t.scrollbar.mode?d.push("".concat(f," ::-webkit-scrollbar,").concat(f,"::-webkit-scrollbar{display:none;width:0;height:0;}")+"".concat(f,",").concat(f," *{scrollbar-width:none;-ms-overflow-style:none;}")):d.push("".concat(f," ::-webkit-scrollbar,").concat(f,"::-webkit-scrollbar{width:10px;height:10px;}")+"".concat(f," ::-webkit-scrollbar-thumb,").concat(f,"::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.22);border-radius:8px;border:2px solid transparent;background-clip:content-box;}")+"".concat(f," ::-webkit-scrollbar-thumb:hover,").concat(f,"::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.4);background-clip:content-box;}")+"".concat(f," ::-webkit-scrollbar-track,").concat(f,"::-webkit-scrollbar-track{background:transparent;}"))),d.join("\n")})(t.app,b.app).trim())}}}],function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}(r.prototype,t),r}(),j={app:{appRoot:".ant-layout",header:".ant-layout-header",sider:".ant-layout-sider",card:".ant-card",content:'.ant-pro-layout-content,.ant-pro-layout-container,.ant-layout-content,.ant-page-header,[class*="nb-subpages-slot"],[class*="nb-subpages-slot"]>div'},login:{loginRoot:".ant-layout",loginCard:".ant-card"}};function O(t,e,r,n,o,a,c){try{var i=t[a](c),l=i.value}catch(t){r(t);return}i.done?e(l):Promise.resolve(l).then(n,o)}function S(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function c(t){O(a,n,o,c,i,"next",t)}function i(t){O(a,n,o,c,i,"throw",t)}c(void 0)})}}function _(t,e,r){return(_=I()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&E(o,r.prototype),o}).apply(null,arguments)}function P(t){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function E(t,e){return(E=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function A(t){var e="function"==typeof Map?new Map:void 0;return(A=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return _(t,arguments,P(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),E(r,t)})(t)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(I=function(){return!!t})()}function T(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(c,"next",{value:l(0)}),i(c,"throw",{value:l(1)}),i(c,"return",{value:l(2)}),"function"==typeof Symbol&&i(c,Symbol.iterator,{value:function(){return this}}),c;function l(i){return function(l){var u=[i,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(t,a)}catch(t){u=[6,t],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function $(){return S(function(){var t,e;return T(this,function(r){switch(r.label){case 0:return[4,fetch("/api/extraTheme:getPublic",{headers:{Accept:"application/json"}})];case 1:return t=r.sent(),e={},[4,t.json()];case 2:return[2,(e.data=r.sent(),e)]}})})()}var C=function(t){var e;if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");function r(){var t,e;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return t=r,e=arguments,t=P(t),function(t,e){var r;if(e&&("object"==((r=e)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof e))return e;if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(this,I()?Reflect.construct(t,e||[],P(this).constructor):t.apply(this,e))}return r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),t&&E(r,t),e=[{key:"load",value:function(){return S(function(){return T(this,function(t){return new x($,j).start(),[2]})})()}}],function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}(r.prototype,e),r}(A(t.Plugin))}(),l}()});
|
package/dist/shared/color.d.ts
CHANGED
|
@@ -13,8 +13,18 @@ import type { BackgroundConfig } from './types';
|
|
|
13
13
|
export declare function sanitizeFontFamily(family: string): string;
|
|
14
14
|
/** Map a font file URL's extension to an @font-face src `format()` value (''=unknown). */
|
|
15
15
|
export declare function fontFormatFromUrl(url: string): string;
|
|
16
|
-
/** Make a URL safe to drop inside CSS `url("...")` — strip chars that could close the
|
|
16
|
+
/** Make a URL safe to drop inside CSS `url("...")` — strip chars that could close the
|
|
17
|
+
* string/rule. A validated base64 `data:` URI is passed through INTACT (it must not hit
|
|
18
|
+
* the stripper, which would eat the `;` in `;base64,` and truncate the payload at 2000). */
|
|
17
19
|
export declare function sanitizeCssUrl(url: string): string;
|
|
20
|
+
/** Map a filename extension to a MIME type — used to build a `data:` URI when `File.type`
|
|
21
|
+
* is missing/unreliable (common for font files). '' when unknown. */
|
|
22
|
+
export declare function mimeFromFilename(name: string): string;
|
|
23
|
+
/** Heuristic: does this URL look like a temporary/expiring SIGNED link (S3/MinIO/OSS/COS/
|
|
24
|
+
* Azure SAS)? Such a URL must NOT be snapshotted into config — it 403s after its TTL (≈1h),
|
|
25
|
+
* silently breaking the background for everyone. Used to warn in the settings UI; base64
|
|
26
|
+
* `data:` URIs and relative paths are never ephemeral. */
|
|
27
|
+
export declare function isEphemeralUrl(url: string): boolean;
|
|
18
28
|
/** '#ffffff', 0.9 -> 'rgba(255,255,255,0.9)'. Accepts 3/6-digit hex, with or without '#'. */
|
|
19
29
|
export declare function hexToRgba(hex: string, alpha: number): string;
|
|
20
30
|
/**
|
package/dist/shared/color.js
CHANGED
|
@@ -29,6 +29,8 @@ __export(color_exports, {
|
|
|
29
29
|
buildBackground: () => buildBackground,
|
|
30
30
|
fontFormatFromUrl: () => fontFormatFromUrl,
|
|
31
31
|
hexToRgba: () => hexToRgba,
|
|
32
|
+
isEphemeralUrl: () => isEphemeralUrl,
|
|
33
|
+
mimeFromFilename: () => mimeFromFilename,
|
|
32
34
|
safeCssColor: () => safeCssColor,
|
|
33
35
|
safeNum: () => safeNum,
|
|
34
36
|
sanitizeCssUrl: () => sanitizeCssUrl,
|
|
@@ -48,8 +50,35 @@ function fontFormatFromUrl(url) {
|
|
|
48
50
|
const ext = (((_a = (url || "").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i)) == null ? void 0 : _a[1]) || "").toLowerCase();
|
|
49
51
|
return { woff2: "woff2", woff: "woff", ttf: "truetype", otf: "opentype", ttc: "truetype" }[ext] || "";
|
|
50
52
|
}
|
|
53
|
+
const DATA_URI_RE = /^data:[\w.+-]+\/[\w.+-]+;base64,[A-Za-z0-9+/=]+$/;
|
|
51
54
|
function sanitizeCssUrl(url) {
|
|
52
|
-
|
|
55
|
+
const u = url || "";
|
|
56
|
+
if (DATA_URI_RE.test(u)) return u;
|
|
57
|
+
return u.replace(/["')(;{}<>\\]/g, "").replace(/\s+/g, "").slice(0, 2e3);
|
|
58
|
+
}
|
|
59
|
+
function mimeFromFilename(name) {
|
|
60
|
+
var _a;
|
|
61
|
+
const ext = (((_a = (name || "").split("?")[0].split("#")[0].match(/\.([a-z0-9]+)$/i)) == null ? void 0 : _a[1]) || "").toLowerCase();
|
|
62
|
+
return {
|
|
63
|
+
png: "image/png",
|
|
64
|
+
jpg: "image/jpeg",
|
|
65
|
+
jpeg: "image/jpeg",
|
|
66
|
+
gif: "image/gif",
|
|
67
|
+
webp: "image/webp",
|
|
68
|
+
avif: "image/avif",
|
|
69
|
+
bmp: "image/bmp",
|
|
70
|
+
svg: "image/svg+xml",
|
|
71
|
+
woff2: "font/woff2",
|
|
72
|
+
woff: "font/woff",
|
|
73
|
+
ttf: "font/ttf",
|
|
74
|
+
otf: "font/otf",
|
|
75
|
+
ttc: "font/collection"
|
|
76
|
+
}[ext] || "";
|
|
77
|
+
}
|
|
78
|
+
function isEphemeralUrl(url) {
|
|
79
|
+
const u = url || "";
|
|
80
|
+
if (!/^https?:/i.test(u)) return false;
|
|
81
|
+
return /[?&](X-Amz-(Signature|Expires|Credential)|OSSAccessKeyId|q-signature|q-sign-time)=/i.test(u) || /[?&](Signature|sig)=/i.test(u) && /[?&](Expires|se)=/i.test(u);
|
|
53
82
|
}
|
|
54
83
|
function hexToRgba(hex, alpha) {
|
|
55
84
|
let h = (hex || "").replace("#", "");
|
|
@@ -113,6 +142,8 @@ function buildBackground(bg) {
|
|
|
113
142
|
buildBackground,
|
|
114
143
|
fontFormatFromUrl,
|
|
115
144
|
hexToRgba,
|
|
145
|
+
isEphemeralUrl,
|
|
146
|
+
mimeFromFilename,
|
|
116
147
|
safeCssColor,
|
|
117
148
|
safeNum,
|
|
118
149
|
sanitizeCssUrl,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emotionalamo/plugin-extratheme",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"displayName": "ExtraTheme",
|
|
5
5
|
"displayName.zh-CN": "主题增强",
|
|
6
6
|
"description": "Global theme-enhancement plugin for NocoBase 2.x: custom background (image/gradient/color + fit modes), transparency, frosted-glass, top/side navigation styling, global font (system/custom/uploaded), and macOS-style scrollbar. Configured globally in one settings page; disabled by default.",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"main": "dist/server/index.js",
|
|
27
27
|
"dependencies": {},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
+
"@nocobase/actions": "2.x",
|
|
29
30
|
"@nocobase/client": "2.x",
|
|
30
31
|
"@nocobase/client-v2": "2.x",
|
|
31
32
|
"@nocobase/database": "2.x",
|