From 7fdd6bd314394f4ec86b6c2500909007461d4325 Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 11 Sep 2023 09:26:08 +0800 Subject: [PATCH] add some --- const.js | 1 + frame.js | 6 +++--- index.css | 4 ++-- lib/base.js | 2 +- lib/page.js | 2 +- panel/header.js | 22 +++++++++++----------- plugin/local/code/inner.css | 1 + plugin/local/code/inner.js | 1 + plugin/local/code/inner/syntax.js | 6 +++--- plugin/table.js | 9 ++++++--- 10 files changed, 30 insertions(+), 24 deletions(-) diff --git a/const.js b/const.js index 239bb6a6..1a06c024 100644 --- a/const.js +++ b/const.js @@ -82,6 +82,7 @@ var web = {CHAT: "chat", STUDIO: "studio", WEBSITE: "website", DRAW: "draw", PLAY: "play", CLEAR: "clear", REFRESH: "refresh", RESIZE: "resize", FILTER: "filter", INPUT: "input", CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", DOWNLOAD: "download", TOIMAGE: "toimage", CONFIRM: "confirm", + THEME: "theme", SHARE_CACHE: "/share/cache/", SHARE_LOCAL: "/share/local/", WORKER: "worker", SERVER: "server", GATEWAY: "gateway", OPEN: "open", diff --git a/frame.js b/frame.js index 137d3fad..0f6723bb 100644 --- a/frame.js +++ b/frame.js @@ -242,8 +242,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (sub.onimport && can.base.isArray(sub.onimport.list) && sub.onimport.list.length > 0) { can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: can.page.inputs(can, sub.onimport.list, html.TEXT) }) } - can.page.requireModules(can, can.Conf("modules"), function() { - if (sub.Mode() != "result") { can.onmotion.clear(can) } + can.page.requireModules(can, can.Conf("modules"), function() { if (sub.Mode() != "result") { can.onmotion.clear(can) } can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) { if (action !== false) { can.onkeymap._build(sub) can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action) @@ -358,7 +357,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }) } return code.scrollBy && code.scrollBy(0, 10000), code }, tools: function(can, msg, cb, target) { - can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), can.misc.sessionStorage(can, [can.ConfIndex(), "tool"]))||[], cb, target) + // can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), can.misc.sessionStorage(can, [can.ConfIndex(), "tool"]))||[], cb, target) + can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT))||[], cb, target) }, style: function(can, style, target) { target = target||can._fields||can._target diff --git a/index.css b/index.css index cc36fc96..4b2ed984 100644 --- a/index.css +++ b/index.css @@ -1,10 +1,10 @@ body { + --body-bg-color:black; --body-fg-color:silver; --danger-bg-color:red; --danger-fg-color:white; --notice-bg-color:blue; --notice-fg-color:white; --create-bg-color:blue; --create-fg-color:white; --progress-bg-color:red; --disable-fg-color:gray; --hover-bg-color:#5066b945; --hover-fg-color:white; - --body-bg-color:black; --body-fg-color:silver; --box-border:#404141 solid 1px; --box-notice:var(--notice-bg-color) solid 1px; --box-shadow:var(--body-fg-color) 2px 2px 8px; @@ -109,7 +109,7 @@ fieldset.input.date>div.status { text-align:center; } /* float */ body div.float { padding:5px; box-shadow:var(--box-shadow); } body>div.toast div.title { color:var(--notice-bg-color); float:left; } -body>div.toast div.delete { color:var(--body-bg-color); float:right; cursor:pointer; } +body>div.toast div.delete { color:var(--notice-bg-color); float:right; cursor:pointer; } body>div.toast div.delete:hover { background-color:var(--hover-bg-color); } body>div.toast div.duration { color:var(--disable-fg-color); float:right; } body>div.toast div.content { color:var(--notice-bg-color); text-align:center; } diff --git a/lib/base.js b/lib/base.js index 259f1af4..03a0af5f 100644 --- a/lib/base.js +++ b/lib/base.js @@ -1,7 +1,7 @@ Volcanos("base", { Int: function(val, def) { return parseInt(val)||def||0 }, Min: function(val, min, max) { - return val > min? val > max && max? max: val: min + return val > max? max: val < min? min: val }, Max: function(val, max) { return val < max? val: max }, Obj: function(val, def) { diff --git a/lib/page.js b/lib/page.js index 34d30acf..a2e7bb65 100644 --- a/lib/page.js +++ b/lib/page.js @@ -357,7 +357,7 @@ Volcanos("page", { can.base.isIn(name, mdb.REMOVE, mdb.DELETE, mdb.PRUNES, mdb.PRUNE, nfs.TRASH, "drop", cli.STOP)? "danger": "" }, exportValue: function(can, msg) { - const styles = getComputedStyle(can._target); can.core.List(["--plugin-bg-color", "--plugin-fg-color"].concat(can.core.List(arguments).slice(2)), function(key) { msg.Option(key, styles.getPropertyValue(key)) }) + const styles = getComputedStyle(document.body); can.core.List(["--plugin-bg-color", "--plugin-fg-color"].concat(can.core.List(arguments).slice(2)), function(key) { msg.Option(key, styles.getPropertyValue(key)) }) return msg }, }) diff --git a/panel/header.js b/panel/header.js index 3a328e72..5685a3a3 100644 --- a/panel/header.js +++ b/panel/header.js @@ -32,9 +32,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.user.info.background = background, can.onimport._background(can, msg), can.user.toastSuccess(can) }) }, language: function(can, language) { can.runAction(event, aaa.LANGUAGE, [language == ice.AUTO? "": language], function(msg) { - can.user.toastConfirm(can, "reload page for "+language, "language", function() { can.user.reload(true) }) + can.user.toastConfirm(can, can.user.trans(can, "reload page for "+language), aaa.LANGUAGE, function() { can.user.reload(true) }) }) }, - theme: function(can, theme) { theme && can.runAction({}, "theme", [theme]) + theme: function(can, theme) { theme && can.runAction({}, web.THEME, [theme]) theme && can.misc.localStorage(can, "can.theme", can._theme = theme == ice.AUTO? "": theme) && can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: theme})), can.user.theme(can, can.onexport.theme(can)) }, menu: function(can, cmds, cb, trans) { can.base.isString(cmds) && (cmds = [cmds]) @@ -111,17 +111,20 @@ Volcanos(chat.ONACTION, {_init: function(can) { }, _params: [log.DEBUG, chat.TITLE], - _menus: ["shareuser", - [chat.THEME, ice.AUTO], - [aaa.LANGUAGE, ice.AUTO], + _menus: ["shareuser", [web.THEME], [aaa.LANGUAGE], [nfs.SAVE, aaa.EMAIL, web.TOIMAGE, code.WEBPACK], [aaa.USER, "setnick", aaa.PASSWORD, cli.CLEAR, aaa.LOGOUT], ], _trans: kit.Dict( - "shareuser", "共享用户", chat.THEME, "界面主题", aaa.LANGUAGE, "语言地区", + "shareuser", "共享用户", web.THEME, "界面主题", aaa.LANGUAGE, "语言地区", nfs.SAVE, "保存网页", aaa.EMAIL, "发送邮件", web.TOIMAGE, "生成图片", code.WEBPACK, "打包页面", aaa.USER, "用户信息", "setnick", "设置昵称", aaa.PASSWORD, "修改密码", web.CLEAR, "清除背景", aaa.LOGOUT, "退出登录", + "reload page for zh-cn", "切换语言为中文", + "reload page for en-us", "切换语言为英文", + "en-us", "英文", + "zh-cn", "中文", + "auto", "默认", ), }) Volcanos(chat.ONEXPORT, {height: function(can) { return can._target.offsetHeight }, @@ -167,11 +170,8 @@ Volcanos(chat.ONPLUGIN, { background: shy("背景图片", function(can, sub, cb) { can.page.Append(can, sub._output, [{img: can.user.info.background, style: kit.Dict(html.MAX_HEIGHT, sub.ConfHeight(), html.MAX_WIDTH, sub.ConfWidth())}]) }), language: shy("语言地区", {_init: function(can) { can.Option(aaa.LANGUAGE, can.user.info.language||ice.AUTO) }}, ["language:select=auto,zh,en", ice.RUN], function(can, msg, arg) { can.onimport.language(can, arg[0]) }), title: shy("网页标题", [chat.TITLE], function(can, msg, arg) { msg.Echo(can.user.title(arg[0])) }), - theme: shy("界面主题", { - _init: function(can) { can.Option(chat.THEME, can.getHeader(chat.THEME)) }, - save: function(can, sup) { - can.user.downloads(can, sup._themes[can.Option("theme")], can.Option("theme"), "css") - }, + theme: shy("界面主题", {_init: function(can) { can.Option(chat.THEME, can.getHeader(chat.THEME)) }, + save: function(can, sup) { can.user.downloads(can, sup._themes[can.Option(web.THEME)], can.Option(web.THEME), nfs.CSS) }, }, ["theme:select=auto,dark,light,print,white,black", ice.RUN, nfs.SAVE], function(can, msg, arg) { if (arg[0] == ice.AUTO) { arg[0] = "", can._theme = "" } can.misc.localStorage(can, "can.theme", arg[0]), can.onimport.theme(can, arg[0]) }), diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index 310cc96c..617bd711 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -62,6 +62,7 @@ div.path span.item { padding:5px; } div.carte.path.float { font-size:var(--code-font-size); } div.carte.path.float div.item { padding:5px; } div.carte.cmd.float { font-size:var(--code-font-size); } div.carte.cmd.float div.item { padding:5px; } div.vimer.open.float td:first-child { display:none; } +div.vimer.open.float td:nth-child(2) { display:none; } div.layout.flex>input.current { clear:both; } tr.line>td.line { user-select:none; } tr.line>td.line { text-align:right; padding:0 10px; position:sticky; left:0; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index b9a56b11..abf6707d 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -29,6 +29,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp can.onexport.session(can, PROJECT_HIDE) == html.HIDE && can.onmotion.hidden(can, can.ui.project) if (can.onexport.session(can, TABVIEW_HIDE) == html.HIDE) { can.onmotion.hidden(can, can.ui.project), can.onmotion.hidden(can, can.ui.tabs) } can.onengine.listen(can, chat.ONUNLOAD, function() { can.onexport.recover(can) }) + msg.Option(ice.MSG_TOOLKIT, "[]") case chat.FULL: // no break default: can.user.isMobile && can.onmotion.hidden(can, can.ui.project), can.onimport.project(can, paths), can.onimport._tabs(can) } var args = can.misc.SearchHash(can), tabs = can.onexport.session(can, RECOVER_TABS), tool = can.onexport.session(can, RECOVER_TOOL) diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index 2e9b35bd..c9214701 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -334,11 +334,11 @@ Volcanos(chat.ONSYNTAX, { "contexts": code.CONSTANT, "--body-bg-color": code.CONSTANT, "--body-fg-color": code.CONSTANT, - "--plugin-bg-color": code.CONSTANT, "--plugin-fg-color": code.CONSTANT, + "--danger-bg-color": code.CONSTANT, "--notice-bg-color": code.CONSTANT, "--hover-bg-color": code.CONSTANT, "--hover-fg-color": code.CONSTANT, - "--notice-bg-color": code.CONSTANT, "--danger-bg-color": code.CONSTANT, + "--box-border": code.CONSTANT, "--box-notice": code.CONSTANT, "--box-shadow": code.CONSTANT, "--output-bg-color": code.CONSTANT, - "--box-border": code.CONSTANT, "--box-shadow": code.CONSTANT, + "--plugin-bg-color": code.CONSTANT, "--plugin-fg-color": code.CONSTANT, }, include: ["html"], func: function(can, push, text) { text.indexOf("/* ") == 0 && push(can.base.trimPrefix(can.base.trimSuffix(text, " */"), "/* ")) }, }, diff --git a/plugin/table.js b/plugin/table.js index c281bf81..6d27f65b 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -181,20 +181,23 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( tool: function(can, list, cb, target, status) { target = target||can._output, status = status||can._status can.core.List(list.reverse(), function(meta) { can.base.isString(meta) && (meta = {index: meta}), meta.mode = html.FLOAT can.onimport.plug(can, meta, function(sub) { can.onmotion.hidden(can, sub._target), sub._legend._target = sub._target, sub._legend._meta = {index: meta.index} - can.page.Append(can, sub._legend,[{text: [can.page.unicode.remove, "", "remove"], onclick: function(event) { + can.page.Append(can, sub._legend,[{text: [can.page.unicode.remove, "", mdb.REMOVE], onclick: function(event) { can.page.Remove(can, sub._target), can.page.Remove(can, sub._legend), can.onexport.tool(can), can.onkeymap.prevent(event) }}]) status.appendChild(sub._legend), sub._legend.oncontextmenu = sub._legend.onclick, sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) { if (can.page.SelectOne(can, status, nfs.PT+html.SELECT, function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return } - sub.onimport.size(sub, can.ConfHeight()/2, (can.ConfWidth()-(can.ui && can.ui.project? can.ui.project.offsetWidth: 0))/2) + // sub.onimport.size(sub, can.ConfHeight()/2, can.base.Min((can.ConfWidth()-(can.ui && can.ui.project? can.ui.project.offsetWidth: 0))/2, sub._target.offsetWidth)) can.onmotion.select(can, status, html.LEGEND, sub._legend), can.onmotion.toggle(can, sub._target, true) can.onmotion.select(can, target, "fieldset.plug", sub._target) - // sub.Focus() if (sub._delay_init || meta.msg) { sub._delay_init = false, meta.msg = false, sub.Update() } }) }, sub._delay_init = true, sub.onaction.close = function() { sub.select() }, sub.select = function(show) { if (show && can.page.ClassList.has(can, sub._legend, html.SELECT)) { return sub } return sub._legend.click(), sub } + sub.onexport.output = function() { var width = can.ConfWidth()-(can.ui && can.ui.project? can.ui.project.offsetWidth: 0) + can.page.style(can, can._output, html.MAX_HEIGHT, "", html.HEIGHT, "", html.WIDTH, "", html.MAX_WIDTH, "") + sub.onimport.size(sub, can.ConfHeight()/2, can.base.Min(sub._target.offsetWidth, width/2, width), true) + } sub.hidden = function() { can.onmotion.hidden(can, sub._target), can.page.ClassList.del(can, sub._legend, html.SELECT) } sub.onaction._close = function() { can.page.Remove(can, sub._target), can.page.Remove(can, sub._legend), can.onexport.tool(can) } can.base.isFunc(cb) && cb(sub), can.onexport.tool(can)