From 44461f941c6f1094ca82479dbf70c8095e01b601 Mon Sep 17 00:00:00 2001 From: shy Date: Fri, 24 Nov 2023 17:46:35 +0800 Subject: [PATCH] add some --- const.js | 7 +- frame.js | 3 +- index.css | 156 +++++++++++++++++++----------------- lib/base.js | 6 +- lib/page.js | 14 ++-- lib/user.js | 13 ++- panel/footer.css | 5 +- panel/header.css | 8 +- panel/header.js | 4 +- panel/river.css | 1 - plugin/local/code/inner.css | 94 +++++++++------------- plugin/local/code/inner.js | 17 ++-- plugin/local/code/vimer.css | 5 +- plugin/local/wiki/word.js | 2 +- plugin/table.js | 11 +-- 15 files changed, 164 insertions(+), 182 deletions(-) diff --git a/const.js b/const.js index 695e38a9..a0a89be6 100644 --- a/const.js +++ b/const.js @@ -257,9 +257,7 @@ var http = { GET: "GET", PUT: "PUT", POST: "POST", DELETE: "DELETE", Accept: "Accept", ContentType: "Content-Type", ApplicationJSON: "application/json", ApplicationFORM: "application/x-www-form-urlencoded", } -var html = { - RIVER_MARGIN: 80, - PLUGIN_MARGIN: 10, PLUGIN_PADDING: 10, ACTION_MARGIN: 200, ACTION_HEIGHT: 32, STATUS_HEIGHT: 32, +var html = {RIVER_MARGIN: 80, PLUGIN_MARGIN: 10, PLUGIN_PADDING: 10, ACTION_MARGIN: 200, ACTION_HEIGHT: 32, STATUS_HEIGHT: 32, FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status", OPTION_ARGS: "select.args,input.args,textarea.args", INPUT_ARGS: "input.args,textarea.args", INPUT_BUTTON: "input[type=button]", INPUT_FILE: "input[type=file]", FORM_OPTION: "form.option", DIV_ACTION: "div.action", DIV_OUTPUT: "div.output", DIV_STATUS: "div.status", @@ -315,8 +313,7 @@ var html = { IMAGE_PNG: "image/png", VIDEO_WEBM: "video/webm", } var icon = { - SEARCH: "bi bi-search", TERMINAL: "bi bi-terminal", - CHEVRON_DOWN: "bi bi-chevron-down", + CHEVRON_DOWN: "bi bi-chevron-down", SEARCH: "bi bi-search", TERMINAL: "bi bi-terminal", } var svg = { GROUP: "group", PID: "pid", GRID: "grid", diff --git a/frame.js b/frame.js index 66aabb08..c3fa1b9e 100644 --- a/frame.js +++ b/frame.js @@ -342,7 +342,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { can.onappend.style(can, html.SELECT, item) } }) - }, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+10), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}]) + }, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+30), can.onappend.style(can, html.HIDE, select) }}, {icon: mdb.SELECT}]) }, table: function(can, msg, cb, target, keys) { if (!msg || msg.Length() == 0) { return } var meta = can.base.Obj(msg.Option(mdb.META)) if (can.user.isMobile) { can.base.toLast(msg.append, mdb.TIME) } can.base.toLast(msg.append, web.LINK), can.base.toLast(msg.append, ctx.ACTION) @@ -489,6 +489,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }), can.core.List(list, function(item) { if (can.base.isArray(item)) { layout(type == FLOW? FLEX: FLOW, item, height, width) } }) } ui.profile && can.onmotion.hidden(can, ui.profile), ui.display && can.onmotion.hidden(can, ui.display) if (can.onimport.filter) { ui.filter = can.onimport.filter(can, ui.project) } + ui.project && can.user.isMobile && can.onmotion.hidden(can, ui.project) ui.layout = function(height, width, delay, cb) { can.onmotion.delay(can, function() { defer = [], layout(type, ui.list, height, width), defer.forEach(function(cb) { cb() }), cb && cb(content_height, content_width) }, delay||0) }; return ui }, tabview: function(can, meta, list, target) { var ui = can.page.Append(can, target, [html.ACTION, html.OUTPUT]) diff --git a/index.css b/index.css index 7b569c7f..32a21096 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:var(--hover-fg-color); - --notice-bg-color:blue; --notice-fg-color:var(--hover-fg-color); - --create-bg-color:var(--notice-bg-color); --create-fg-color:var(--hover-fg-color); + --danger-bg-color:red; --danger-fg-color:var(--notice-fg-color); + --notice-bg-color:blue; --notice-fg-color:white; + --create-bg-color:var(--notice-bg-color); --create-fg-color:var(--notice-fg-color); --progress-bg-color:red; --disable-fg-color:gray; - --hover-bg-color:#5066b945; --hover-fg-color:white; + --hover-bg-color:#5066b945; --hover-fg-color:var(--notice-fg-color); --box-border:#404141 solid 1px; --box-shadow:var(--body-fg-color) 2px 2px 8px; --box-notice:var(--notice-bg-color) solid 1px; --plugin-bg-color:var(--body-bg-color); --plugin-fg-color:var(--body-fg-color); --plugin-border-color:var(--box-border); @@ -14,8 +14,8 @@ body { --th-bg-color:var(--plugin-bg-color); --th-fg-color:var(--plugin-fg-color); --tr-hover-bg-color:var(--hover-bg-color); --td-hover-bg-color:var(--hover-bg-color); --panel-hover-bg-color:var(--hover-bg-color); --panel-hover-fg-color:var(--hover-fg-color); - --panel-output-bg-color:var(--panel-bg-color); --panel-output-fg-color:var(--panel-fg-color); - --panel-input-bg-color:var(--panel-bg-color); --panel-input-fg-color:var(--panel-fg-color); + --panel-output-bg-color:var(--panel-bg-color); --panel-output-fg-color:var(--panel-fg-color); + --panel-input-bg-color:var(--panel-bg-color); --panel-input-fg-color:var(--panel-fg-color); --panel-bg-color:var(--plugin-bg-color); --panel-fg-color:var(--plugin-fg-color); --float-bg-color:var(--plugin-bg-color); --float-fg-color:var(--plugin-fg-color); --carte-bg-color:var(--plugin-bg-color); @@ -24,11 +24,13 @@ body { --code-comment:green; --code-keyword:royalblue; --code-function:lightgreen; --code-constant:gray; --code-string:orange; --code-object:silver; --code-datatype:lavender; --code-package:blue; - --code-font-family:monospace; --svg-stroke-width:1; - --code-font-size:14px; --svg-font-size:24px; --status-font-size:12px; - --body-font-size:16px; --legend-font-size:20px; + --code-font-family:monospace; - --legend-padding:20px; --title-margin:var(--legend-padding); --river-margin:80px; + --body-font-size:16px; --legend-font-size:20px; --icon-font-size:20px; + --code-font-size:14px; --code-line-height:20px; --code-tabs-height:48px; + --svg-font-size:24px; --svg-stroke-width:1; --status-font-size:12px; + + --legend-padding:20px; --title-margin:var(--legend-padding); --river-margin:80px; --textarea-height:96px; --qrcode-height:320px; --iframe-height:420px; --action-height:32px; --status-height:var(--action-height); --footer-height:var(--action-height); --header-height:48px; --project-width:230px; --river-width:var(--project-width); --input-width:120px; --button-width:60px; @@ -39,6 +41,7 @@ body { body.width1 { /* 320-640 手机竖屏 */ --footer-height:60px; --input-width:80px; --river-margin:0; --plugin-margin:0; --button-margin:5px; + --project-width:120px; --river-width:280px;; --svg-font-size:13px; } body.width2 { /* 640-960 手机横屏 平板竖屏 笔记本调试 */ @@ -54,6 +57,7 @@ body.width5 { /* 1600-1920 */ } body.width6 { /* 1920-2240 显示器 */ --river-width:280px; --input-width:180px; --plugin-padding:20px; + --code-line-height:26px; --code-font-size:18px; } body.windows { --code-font-family:"Courier New"; } @@ -62,14 +66,8 @@ body.windows { --code-font-family:"Courier New"; } legend { padding:0 var(--legend-padding); } select { padding:0 var(--button-padding); } input:not([type=file]) { padding:0 var(--button-padding); } -input:not([type=button]) { padding:0 var(--input-padding); width:var(--input-width); border-radius:0; outline:none; } -body:not(.mobile) input[name=path] { width:var(--project-width); } -input[name=line] { width:var(--button-width) !important; } -input[name=limit] { width:var(--button-width); } -input[name=offend] { width:var(--button-width); } -input[name=id] { width:var(--button-width); } -input[name=url] { width:var(--river-width); } -table.kcontent.full { width:100%; } +input:not([type=button]) { padding:0 var(--input-padding); border-radius:0; outline:none; } +table.content.full { width:100%; } table.content thead { position:sticky; top:2px; } table.content tr.offline { color:var(--disable-fg-color); } table.content tr.offline a { color:var(--disable-fg-color); } @@ -139,7 +137,7 @@ body>div.toast div.action { width:100%; display:block; } body>div.toast div.action>div.item { float:right; } body>div.carte { padding:0; } body>div.carte input[name=filter] { margin:var(--input-margin); width:calc(100% - 10px); position:sticky; top:var(--input-margin); } -body>div.carte div.item { white-space:pre; padding:var(--input-padding) var(--button-padding); } +body>div.carte div.item { white-space:pre; padding:var(--button-padding); } body>div.carte div.item span.icon.next { float:right; line-height:22px; height:22px; } body>div.carte.select.float>div.item { text-align:center; } @@ -173,9 +171,9 @@ body>div.input input[name=cancel] { border:var(--danger-bg-color) solid 1px; } body>div.input input[name=submit] { border:var(--notice-bg-color) solid 1px; } body>div.input input[name=submit]:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } body>div.input input[name=cancel]:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } -body>div.input div.action { padding:0 var(--button-padding); width:100%; position:sticky; bottom:0; } +body>div.input div.action { padding:0 var(--table-padding); width:100%; position:sticky; bottom:0; flex-direction:row-reverse; } body>div.input div.action>div.item { margin-left:var(--button-margin); float:right; } -body>div.input div.action>div.item>input[type=button] { width:110px; } +body>div.input div.action>div.item>input[type=button] { width:112px; } body>div.input.login { box-shadow:unset; } body>div.input.login>div.action { display:flex; align-items:center; justify-content:center; border-bottom:var(--box-border); } body>div.input.login>div.action>div.tabs { padding:var(--button-padding); } @@ -227,58 +225,65 @@ body div.path { font-family:var(--code-font-family); } body div.carte { font-family:var(--code-font-family); } /* icon */ fieldset>legend>i { margin-right:var(--input-margin); } -form.option div.icon, form.option span.icon { font-size:20px; line-height:var(--action-height); padding:0 var(--input-padding); margin:0; height:var(--action-height); } -form.option div.icon.refresh { font-size:28px; line-height:28px; } -form.option div.icon.goback { font-size:28px; line-height:28px; } -form.option div.icon.next { font-size:18px; } -form.option div.icon.prev { font-size:18px; } -form.option>div.icons>i { font-size:21px; line-height:var(--action-height); padding:var(--input-padding); } -form.option div.icons.prunes>span.icon { padding-top:1px; display:inline-block; } -div.action div.icon, div.action>div.item:not(.tabs)>span.icon { font-size:20px; line-height:var(--action-height); padding:0 var(--input-padding); margin:0; height:var(--action-height); display:inline-block; } -div.action>div.item.icons>i { font-size:21px; line-height:var(--action-height); padding:var(--input-padding); } -div.action>div.item.icons.create>span.icon { font-size:30px; line-height:28px; } -div.action>div.item.icons.insert>span.icon { font-size:30px; line-height:28px; } -div.action>div.item.icons.start>span.icon { font-size:30px; line-height:28px; } -div.action>div.item.icons.refresh>span.icon { font-size:30px; line-height:28px; } -div.action>div.item.icons.prunes>span.icon { padding-top:2px; display:inline-block; } -div.item.select { position:relative; } -div.item.select>span.icon { position:absolute; right:0; visibility:hidden; } -div.item.select:hover>span.icon { visibility:visible; } -div.item.text { position:relative; } -div.item.text.will input { border:var(--box-notice); } -div.item.text>span.icon { position:absolute; right:0; visibility:hidden; } +div.item>i:first-child { margin-right:var(--button-margin); height:var(--action-height); } +form.option>div.item.icon { position:relative; height:var(--action-height); overflow:hidden; } +form.option>div.item.icon { font-size:var(--icon-font-size); padding:0 var(--input-padding); } +form.option>div.item.icon.refresh { font-size:28px; margin-top:-3px; } +form.option>div.item.icon.goback { font-size:28px; margin-top:-3px; } +form.option>div.item.icon.play { font-size:16px; } +div.item.text { position:relative; display:flex; align-items:center; } +div.item.text>input { width:var(--input-width); height:var(--action-height); } +div.item.text.id>input { width:var(--button-width); } +div.item.text.url>input { width:var(--river-width); } +div.item.text.path>input { width:var(--project-width); } +div.item.text.line>input { width:var(--button-width) !important; } +div.item.text.limit>input { width:var(--button-width); } +div.item.text.offend>input { width:var(--button-width); } +div.item.text>i:first-child { position:absolute; padding:var(--input-padding); } +div.item.text>span.icon { font-size:var(--icon-font-size); padding:0 var(--input-padding); position:absolute; right:0; visibility:hidden; } div.item.text:hover>span.icon { visibility:visible; } -div.item.button>span.icon.create { font-size:var(--action-height); line-height:28px; display:block; } -div.item.button>span.icon.insert { font-size:var(--action-height); line-height:28px; display:block; } -div.tabs span.icon { font-style:normal; line-height:20px; padding:0 var(--input-padding); visibility:hidden; } -div.tabs>div.select>span.icon { visibility:visible; } -div.tabs>div:hover>span.icon { visibility:visible; } +div.item.button { position:relative; display:flex; align-items:center; height:var(--action-height); } +div.item.button>span.icon { font-size:var(--icon-font-size); padding:0 var(--input-padding); position:absolute; right:0; visibility:hidden; } +div.item.button.select:hover>span.icon { visibility:visible; } +div.item.button.create>span.icon { font-size:30px; margin-top:-5px; } +div.item.button.insert>span.icon { font-size:30px; margin-top:-5px; } +div.tabs:not(.hide) { display:flex; align-items:center; } +div.tabs>span { font-style:italic; } +div.tabs>span.icon { font-size:var(--icon-font-size); font-style:normal; padding-left:var(--input-padding); visibility:hidden; } +div.tabs.select>span.icon { visibility:visible; } div.tabs:hover>span.icon { visibility:visible; } -div.item>i:first-child { margin-right:var(--button-margin); } -div.project div.item>i:first-child { color:var(--panel-output-fg-color); } -div.project div.item.text:hover>i:first-child { color:var(--plugin-fg-color); } -fieldset.panel>div.action>div.button>span.icon { display:none; } +/* form.option>div.icons>i { font-size:21px; } */ +/* div.action>div.item.icons>i { font-size:21px; line-height:var(--action-height); padding:var(--input-padding); } */ +/* div.action>div.item.icons.start>span.icon { font-size:30px; line-height:28px; } */ +/* div.item.text.will input { border:var(--box-notice); } */ fieldset.plugin>legend { font-style:italic; font-weight:bold; } +fieldset.plugin:not(.float):not(.full):not(.cmd)>form.option>div.icon { display:none; } +fieldset.plugin.float>form.option>div.button.icons>input { display:none; } +fieldset.plugin.float>form.option>div.button.icons>span.icon { visibility:visible; } +fieldset.plugin.float>div.action>div.button.icons>input { display:none; } +fieldset.plugin.float>div.action>div.button.icons>span.icon { visibility:visible; position:unset; } +fieldset.plugin.full>form.option>div.button.icons>input { display:none; } +fieldset.plugin.full>form.option>div.button.icons>span.icon { visibility:visible; } +fieldset.plugin.full>div.action>div.button.icons>input { display:none; } +fieldset.plugin.full>div.action>div.button.icons>span.icon { visibility:visible; position:unset; } fieldset.plugin.cmd>form.option>div.icon.delete { display:none; } -fieldset.plugin:not(.story):not(.float):not(.full):not(.cmd)>form.option>div.icon { display:none; } -fieldset.plugin:not(.story):not(.float):not(.full):not(.cmd)>form.option>div.button:not(.select)>span.icon { display:none; } -fieldset.plugin:not(.story):not(.float):not(.full):not(.cmd)>div.action>div.button:not(.select)>span.icon { display:none; } +fieldset.plugin.cmd>form.option>div.button.icons>input { display:none; } +fieldset.plugin.cmd>form.option>div.button.icons>span.icon { visibility:visible; position:unset; } +fieldset.plugin.cmd>div.action>div.button.icons>input { display:none; } +fieldset.plugin.cmd>div.action>div.button.icons>span.icon { visibility:visible; position:unset; } fieldset.story>form.option>div.button.icons>input { display:none; } -fieldset.float>form.option>div.button.icons>input { display:none; } -fieldset.full>form.option>div.button.icons>input { display:none; } -fieldset.cmd>form.option>div.button.icons>input { display:none; } fieldset.story>div.action>div.button.icons>input { display:none; } -fieldset.float>div.action>div.button.icons>input { display:none; } -fieldset.full>div.action>div.button.icons>input { display:none; } -fieldset.cmd>div.action>div.button.icons>input { display:none; } +fieldset.plug>form.option>div.icon:first-child { margin-left:var(--input-margin); } +fieldset.plug>form.option>div.button.icons>input { display:none; } +fieldset.plug>div.action>div.button.icons>input { display:none; } +fieldset.plug>div.action>div.button.icons>span.icon { visibility:visible; position:unset; } fieldset:not(.float)>form.option>div.text>span.value { display:none; } fieldset.float.plug>form.option>div.text>span.value { display:none; } fieldset.float:not(.plug)>form.option>div.text>input { display:none; } -fieldset.float:not(.plug)>form.option>div.text>span { display:none; } -fieldset.float:not(.plug)>form.option>div.text>span.value { white-space:pre; padding:7px; height:var(--action-height); max-width:200px; display:block; overflow:auto; } -fieldset.float:not(.plug)>form.option>div.text { box-shadow:none; } -body.windows form.option>div.icon { font-size:21px; line-height:var(--action-height); } +fieldset.float:not(.plug)>form.option>div.text>span.icon { display:none; } +fieldset>form.option>div.text>span.value { white-space:pre; padding:var(--input-padding); max-width:200px; height:var(--action-height); overflow:auto; } body.mobile:not(.landscape) fieldset.float>form.option>div.text>span.value { display:none; } +body.windows form.option>div.icon { font-size:21px; line-height:var(--action-height); } /* svg */ svg text { font-size:var(--svg-font-size); font-family:var(--code-font-family); stroke:var(--body-fg-color); fill:var(--body-fg-color); cursor:pointer; } svg text.offline { stroke:var(--disable-fg-color); fill:var(--disable-fg-color); } @@ -304,17 +309,18 @@ div.project div.list { margin-left:var(--button-margin); clear:both; } div.project div.list fieldset { position:static; } div.project div.item { white-space:pre; line-height:24px; padding:0 var(--button-margin); } div.project div.item img { height:var(--action-height); width:var(--action-height); } -div.project div.item.filter { padding:0; } -div.project div.item.filter>i:first-child { position:absolute; padding:var(--input-padding); } -div.project div.item.filter>input { padding-left:var(--button-padding); width:100% !important; } -div.project div.item.filter>span { padding:var(--input-padding); } -div.project div.item.search { width:100%; position:relative; } -div.project div.item.search>i:first-child { position:absolute; padding:var(--input-padding); } -div.project div.item.search>input { padding-left:var(--button-padding); width:100% !important; } -div.project div.item.search>span { right:var(--button-margin); } +div.project div.item.filter { padding:0; width:100%; } +div.project div.item.filter>input { width:100%; padding:0 25px; } +div.project div.item.search { padding:0; width:100%; } +div.project div.item.search>input { width:100%; padding:0 25px; } div.project div.item>div.name { padding-left:var(--button-padding); } -div.project div.zone>div.item { text-align:center; padding:3px; } -div.project div.zone>div.item>div.icon { margin-left:var(--input-margin); float:right; } +div.project div.zone>div.item { text-align:center; padding:var(--input-padding); display:flex; align-items:center; } +div.project div.zone>div.item span:first-child { flex-grow:1; } +div.project div.zone>div.item span:first-child:hover { background-color:var(--hover-bg-color); } +div.project>div.zone>div.item span:first-child { font-style:italic; font-weight:bold; line-height:var(--action-height); } +div.project div.zone>div.item span.icon { font-size:22px; letter-spacing:0; padding:0 var(--input-padding); display:none; } +div.project div.zone>div.item span.icon.refresh { margin-top:-2px; } +div.project div.zone:hover>div.item span.icon { display:block; } div.project div.zone>div.list>div.zone>div.item { text-align:left; padding-left:var(--button-padding); transition:all .5s; } div.project div.zone>div.list>div.zone>div.item:hover { margin-left:var(--button-margin); transition:all .3s; } div.project div.expand { margin-right:var(--input-margin); float:left; transition:all .5s; } @@ -355,7 +361,7 @@ fieldset.panel>legend, fieldset.panel>div.status { display:none; } fieldset.output>legend, fieldset.output>form.option, fieldset.output>div.action, fieldset.output>div.status, fieldset.output>div.item { display:none; } fieldset>form.option, fieldset>div.action { display:contents; } form.option.hide, div.action.hide, .hide, .hidden { display:none; } div.action, div.output, div.status, div.project, div.content, div.profile, div.display, table.content, table.content td, div.list, div.code, div.story, div.float, fieldset.float { overflow:auto; } -legend, form.option, form.option>div.item, div.action, div.action>div.item, div.action>div.tabs, fieldset>div.status>div.item { float:left; } +legend, form.option, form.option>div.item, div.action, div.action>div.item, div.action>div.tabs, fieldset>div.status>div.item { float:left; display:flex; align-items:center; } fieldset.story, fieldset>div.output, fieldset>div.status, div.output>div.project div.item, div.content:not(.item), div.code, div.story[data-type=spark] { clear:both; } fieldset.story { position:sticky; left:0; } fieldset.full { position:fixed; left:0; top:0; } @@ -388,7 +394,7 @@ input:not([type=button]):hover { border:var(--box-notice); } input:not([type=button]):focus { border:var(--box-notice); } input.select[type=button]:hover { border:var(--box-notice); } input.select[type=button]:focus { border:var(--box-notice); } -input.select[type=button] { border:var(--input-border); padding:0 var(--input-padding); } +input.select[type=button] { border:var(--input-border); padding:0 var(--button-padding); } input[type=button]:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } input[type=button].danger:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } input[type=button].notice:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } diff --git a/lib/base.js b/lib/base.js index 44790119..52dc52f1 100644 --- a/lib/base.js +++ b/lib/base.js @@ -1,10 +1,14 @@ Volcanos("base", { Int: function(val, def) { return parseInt(val)||def||0 }, Min: function(val, min, max) { + if (max < min) { max = min } if (val == "max") { return max } return val < min? min: val > max? max: val }, - Max: function(val, max) { return val > max? max: val }, + Max: function(val, max, min) { + if (min > max) { min = max } + return val > max? max: val < min? min: val + }, Obj: function(val, def) { try { if (typeof val == code.STRING) { if (val == "") { return def } val = JSON.parse(val) } diff --git a/lib/page.js b/lib/page.js index 6000bf88..e631e07b 100644 --- a/lib/page.js +++ b/lib/page.js @@ -269,16 +269,16 @@ Volcanos("page", { width: function() { return window.innerWidth }, ismodkey: function(event) { return [code.META, code.ALT, code.CONTROL, code.SHIFT].indexOf(event.key) > -1 }, unicode: { - refresh: "↻", goback: "↺", start: "+", - create: "+", remove: "✕", insert: "+", delete: "✕", - prunes: "♻︎", prune: "♻︎", + refresh: "↻", goback: "↺", play: "▶", create: "+", insert: "+", prunes: "♻︎", prune: "♻︎", + select: "▿", remove: "✕", delete: "✕", + menu: "☰", open: "▾", close: "▸", + prev: "❮", next: "❯", - menu: "☰", play: "▸", prev: "❮", next: "❯", - push: "⇈", pull: "⇊", open: "▾", close: "▸", - - select: "▿", inner: "..", + start: "+", // play: "▸", back: "◀", reback: "▶", + push: "⇈", pull: "⇊", lt: "❮", gt: "❯", + inner: "..", }, inputs: function(can, list, type) { var _list = []; for (var i = 0; i < list.length; i++) { switch (list[i]) { case "": _list.push(""); break diff --git a/lib/user.js b/lib/user.js index 3b7b4272..96bf8f6f 100644 --- a/lib/user.js +++ b/lib/user.js @@ -176,7 +176,8 @@ Volcanos("user", { {view: html.OPTION, list: [{type: html.TABLE, list: can.core.List(form, function(item) { item = can.base.isString(item)? {type: html.TEXT, name: item}: item.length > 0? {type: html.SELECT, name: item[0], values: item.slice(1)}: item item.type = item.type||(item.values? html.SELECT: item.name == html.TEXT? html.TEXTAREA: html.TEXT), need[item.name] = item.need - item._init = function(target) { if (item.type == html.SELECT) { target.value = item.value||item.values[0]; return can.onmotion.delay(can, function() { can.onappend.select(can, target, item) }) } + item._init = function(target) { + // if (item.type == html.SELECT) { target.value = item.value||item.values[0]; return can.onmotion.delay(can, function() { can.onappend.select(can, target, item) }) } if (item.name && item.name != ctx.ACTION) { target.value = item.value||msg.Option(item.name)||can.Option(item.name)||can.Status(item.name)||target.value||"" } item.mode = chat.SIMPLE, can.onappend.figure(can, can.base.Copy({space: msg.Option(web.SPACE), run: function(event, cmds, cb) { var _msg = can.request(event, {_handle: ice.TRUE, action: msg.Option(html.ACTION)}, msg, can.Option()) can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) { item.name && item.value && _msg.Option(item.name, item.value) }) @@ -187,14 +188,12 @@ Volcanos("user", { item.title = can.user.trans(can, item.title||item.placeholder||item.name, null, html.INPUT) return {view: [[item.name, item.type, item.action], html.TR], list: [ {type: html.TD, list: [{text: [can.user.trans(can, item.name||"", item._trans, html.INPUT), html.LABEL]}]}, {type: html.TD, list: [{text: item.need == "must"? "*": "", style: {color: cli.RED}}]}, - {type: html.TD, list: [can.page.input(can, item), item.type == html.TEXT && {icon: "delete", onclick: function(event) { event.target.previousSibling.value = "" }}]}, + {type: html.TD, _init: function(target) { + can.onappend.input(can, item, "", target) + }}, ]} })}]}, html.ACTION, - ], onclick: function(event) { - if (!can.page.tagis(event.target, html.INPUT, html.TEXTAREA)) { - can.onmotion.clearCarte(can) - } - }}]) + ], onclick: function(event) { if (!can.page.tagis(event.target, html.INPUT, html.TEXTAREA)) { can.onmotion.clearCarte(can) } }}]) var action = can.onappend._action(can, button||[html.SUBMIT, html.CANCEL], ui.action, { _trans: {submit: msg.Option(web.SUBMIT)}, focus: function() { can.onmotion.focus(can, can.page.Select(can, ui._target, html.INPUT_ARGS)[0]) }, diff --git a/panel/footer.css b/panel/footer.css index bc1cb07a..45ab8296 100644 --- a/panel/footer.css +++ b/panel/footer.css @@ -4,10 +4,9 @@ fieldset.Footer>div.output div.title:first-child { font-weight:bold; text-align: fieldset.Footer>div.output div.state { float:right; } fieldset.Footer>div.output div.state label { font-size:var(--status-font-size); } fieldset.Footer>div.output div.toast { float:right; line-height:18px; } -fieldset.Footer>div.output div.cmd { padding:0; margin-left:20px; position:relative; } -fieldset.Footer>div.output div.cmd>i { padding:7px; position:absolute; } +fieldset.Footer>div.output div.cmd { padding:0; margin-left:20px; } +fieldset.Footer>div.output div.cmd>i { padding:7px; } fieldset.Footer>div.output div.cmd>input[name=cmd] { padding-left:30px; } -fieldset.Footer>div.output div.cmd>span.delete { padding:var(--input-padding); } fieldset.Footer>div.output div.menu>div.River { display:flex; justify-content:space-around; } fieldset.Footer>div.output div.menu>div.River>div.item { height:var(--footer-height); display:flex; flex-direction:column; text-align:center; flex-grow:1; } fieldset.Footer>div.output div.menu>div.River>div.item>i { font-size:24px; margin-right:0; } diff --git a/panel/header.css b/panel/header.css index a920da3a..3dd012bb 100644 --- a/panel/header.css +++ b/panel/header.css @@ -1,12 +1,12 @@ fieldset.Header>div.output { line-height:21px; height:var(--header-height); overflow:hidden; } fieldset.Header>div.output div.item { background-color:var(--panel-output-bg-color); padding:13.5px; height:var(--header-height); float:left; } -fieldset.Header>div.output div.title:first-child { font-size:var(--legend-font-size); font-style:italic; font-weight:bold; width:var(--river-width); display:flex; align-items:center; justify-content:center; overflow:auto; } +fieldset.Header>div.output div.title:first-child { font-size:var(--legend-font-size); font-style:italic; font-weight:bold; width:var(--river-width); display:flex; align-items:center; justify-content:center; overflow:hidden; } fieldset.Header>div.output div.title img { margin-right:var(--button-margin); height:var(--action-height); width:var(--action-height); } fieldset.Header>div.output div.state { float:right; } fieldset.Header>div.output div.state.avatar { padding:0; } fieldset.Header>div.output div.state.avatar>img { height:var(--header-height); clip-path:circle(40%); } -fieldset.Header>div.output div.search.title { padding:7px 5px; margin-left:15px; position:relative; } -fieldset.Header>div.output div.search>i { padding:7px; position:absolute; } +fieldset.Header>div.output div.search.title { padding:7px 5px; margin-left:15px; } +fieldset.Header>div.output div.search>i { padding:7px; } fieldset.Header>div.output div.search>input { padding-left:25px; } -fieldset.Header>div.output div.search>span.delete { padding:var(--input-padding) var(--button-padding); } +fieldset.Header>div.output div.search>span.icon { padding:var(--input-padding) var(--button-padding); } body.mobile fieldset.Header>div.output div.state.avatar { margin-right:var(--button-margin); } diff --git a/panel/header.js b/panel/header.js index 1938c098..ba13dffd 100644 --- a/panel/header.js +++ b/panel/header.js @@ -41,7 +41,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { return can.page.Append(can, can._output, [{view: cmds[0], list: can.core.List(can.base.getValid(cmds.slice(1), [cmds[0]]), function(item) { return can.base.isString(item)? /* 1.string */ {view: [[html.ITEM, html.MENU], "", can.user.trans(can, item, trans)], onclick: function(event) { can.base.isFunc(cb) && cb(event, item, [item]) }}: can.base.isArray(item)? /* 2.array */ {view: [[html.ITEM, html.MENU], "", can.user.trans(can, item[0], trans)], onclick: function(event) { can.onkeymap.prevent(event) - can.onaction.carte(event, can, item.slice(1), function(event, button, meta) { can.base.isFunc(cb) && cb(event, button, item) }, trans) + can.onaction.carte(can.request(event, {_style: "header "+item[0]}), can, item.slice(1), function(event, button, meta) { can.base.isFunc(cb) && cb(event, button, item) }, trans) }}: /* 3.others */ item }) }])._target }, @@ -108,7 +108,7 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onaction.carte(can.request(event, {_style: "header avatar"}), can, [ can.user.isMobile? ``: can.page.Format(html.IMG, src, can.page.height()/2) ]) }, - usernick: function(event, can) { can.onaction.carte(event, can, can.onaction._menus) }, + usernick: function(event, can) { can.onaction.carte(can.request(event, {_style: "header usernick"}), can, can.onaction._menus) }, shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, mdb.TYPE, aaa.LOGIN, mdb.NAME, can.user.title(), mdb.TEXT, location.href]) }, toimage: function(event, can) { can.onmotion.clearCarte(can), can.user.toimage(can, can.user.title(), can._target.parentNode) }, webpack: function(event, can) { can.onengine.signal(can, chat.ONWEBPACK, can.request(event)) }, diff --git a/panel/river.css b/panel/river.css index 961da4be..a8a85936 100644 --- a/panel/river.css +++ b/panel/river.css @@ -5,5 +5,4 @@ fieldset.River>div.output div.item:hover { color:var(--panel-hover-fg-color); } fieldset.River>div.output div.item.select { color:var(--panel-hover-fg-color); } fieldset.River>div.output div.list div.item { border-left:#ccdc4c solid 3px; } fieldset.River>div.output div.list { margin-left:var(--legend-padding); } -body:not(.mobile) fieldset.River>div.output { padding:var(--plugin-padding); } fieldset.River>div.output { margin:var(--river-margin) 0; } diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index f94ab81e..a593ba69 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -1,84 +1,68 @@ -fieldset.inner>div.output div.content td.text { height:20px; } -fieldset.inner>div.output>div.layout>div.layout div.content div.tips { color:var(--disable-fg-color); font-style:italic; position:absolute; top:0; right:10px; } +fieldset.inner>div.output div.content td.text { height:var(--code-line-height); } fieldset.inner>div.output div.content td.text span.comment { color:var(--code-comment); } fieldset.inner>div.output div.content td.text span.keyword { color:var(--code-keyword); box-shadow:var(--box-shadow); } -fieldset.inner>div.output div.content td.text span.package { color:var(--code-package); } -fieldset.inner>div.output div.content td.text span.datatype { color:var(--code-datatype); } fieldset.inner>div.output div.content td.text span.function { color:var(--code-function); } fieldset.inner>div.output div.content td.text span.constant { color:var(--code-constant); } fieldset.inner>div.output div.content td.text span.string { color:var(--code-string); box-shadow:var(--box-shadow); } fieldset.inner>div.output div.content td.text span.object { color:var(--code-object); } -fieldset.inner>div.output>div.project>div.zone>div.item { font-style:italic; font-weight:bold; line-height:32px; } -fieldset.inner>div.output>div.project div.zone>div.item span.icon { font-style:normal; font-weight:normal; letter-spacing:0; } -fieldset.inner>div.output>div.project div.zone>div.item span.icon { font-size:22px; line-height:26px; padding:0 5px; float:right; display:none; } -fieldset.inner>div.output>div.project div.zone:hover>div.item span.icon { display:block; } -fieldset.inner>div.output>div.project div.zone div.action { width:100%; } +fieldset.inner>div.output div.content td.text span.datatype { color:var(--code-datatype); } +fieldset.inner>div.output div.content td.text span.package { color:var(--code-package); } +fieldset.inner>div.output>div.project div.zone div.action:not(.hide) { width:100%; display:flex; align-items:center; } fieldset.inner>div.output>div.project div.zone div.action>div.item { padding-right:0; width:100%; } -fieldset.inner>div.output>div.project div.zone div.action>div.item>i { position:absolute; padding:4px 6px; } fieldset.inner>div.output>div.project div.zone div.action>div.item>input { padding-left:25px; width:100%; } -fieldset.inner>div.output>div.project div.zone div.action>div.item>span.delete { font-size:20px; margin-right:-10px; } -fieldset.inner>div.output>div.project { box-shadow:var(--box-shadow); } -fieldset.inner>div.output>div.layout>div.display { box-shadow:var(--box-shadow); } -fieldset.inner>div.output>div.layout>div.layout>div.profile { box-shadow:var(--box-shadow); } fieldset.inner>div.output>div.layout>div.tabs { font-size:var(--code-font-size); display:none; } fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding-right:0; box-shadow:var(--box-shadow); margin-left:5px; } fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs:hover { background-color:var(--output-bg-color); border-top-left-radius:var(--button-radius); border-top-right-radius:var(--button-radius); } fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs.select { background-color:var(--output-bg-color); border-top-left-radius:var(--button-radius); border-top-right-radius:var(--button-radius); border-bottom:lightgray solid 2px; } fieldset.inner>div.output>div.layout>div.path { font-size:var(--code-font-size); display:none; } -fieldset.inner>div.output>div.layout>div.layout>iframe.profile { border-left:var(--box-border); } -fieldset.inner>div.output>div.layout>div.layout>div.profile h1 { text-align:left; padding:10px 0; border-bottom:var(--box-border); margin:20px 0; } -fieldset.inner>div.output>div.layout>div.layout>div.profile h2 { padding:10px 0; border-bottom:var(--box-border); margin:20px 0; } -fieldset.inner>div.output>div.layout>div.layout>div.profile pre>code { padding-left:10px; border-left:var(--code-border-color) solid 5px; display:block; } -fieldset.inner>div.output>div.layout>div.layout>div.profile>div.code { white-space:unset; padding:20px; } -fieldset.inner>div.output>div.layout>div.layout>div.profile div.status>div { padding:5px; float:left; } -fieldset.inner>div.output>div.layout>div.display h1 { text-align:left; padding:10px 0; border-bottom:var(--box-border); margin:20px 0; } -fieldset.inner>div.output>div.layout>div.display h2 { padding:10px 0; border-bottom:var(--box-border); margin:20px 0; } -fieldset.inner>div.output>div.layout>div.display pre>code { padding-left:10px; border-left:var(--code-border-color) solid 5px; display:block; } -fieldset.inner>div.output>div.layout>div.display div.code { white-space:unset; padding:20px; } -fieldset.inner>div.output>div.layout>div.display div.status>div { padding:5px; float:left; } +fieldset.inner>div.output>div.layout>div.display h1 { border-bottom:var(--box-border); margin:var(--title-margin) 0; } +fieldset.inner>div.output>div.layout>div.display h2 { border-bottom:var(--box-border); margin:var(--title-margin) 0; } +fieldset.inner>div.output>div.layout>div.display pre>code { padding-left:var(--table-padding); border-left:var(--code-border-color) solid 5px; display:block; } +fieldset.inner>div.output>div.layout>div.display div.code { white-space:unset; padding:var(--table-padding); } +fieldset.inner>div.output>div.layout>div.display div.status>div { padding:var(--input-padding); float:left; } fieldset.inner>div.output>div.layout>div.display div.status { position:sticky; bottom:0; } -fieldset.inner.cmd>div.output>div.layout>div.tabs { background-color:var(--plugin-bg-color); height:38px; display:flex; } -fieldset.inner.cmd>div.output>div.layout>div.tabs.hide { display:none; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div { height:38px; display:flex; } +fieldset.inner>div.output>div.layout>div.layout>div.profile h1 { border-bottom:var(--box-border); margin:var(--title-margin) 0; } +fieldset.inner>div.output>div.layout>div.layout>div.profile h2 { border-bottom:var(--box-border); margin:var(--title-margin) 0; } +fieldset.inner>div.output>div.layout>div.layout>div.profile pre>code { padding-left:var(--table-padding); border-left:var(--code-border-color) solid 5px; display:block; } +fieldset.inner>div.output>div.layout>div.layout>div.profile>div.code { white-space:unset; padding:var(--table-padding); } +fieldset.inner>div.output>div.layout>div.layout>div.profile div.status>div { padding:var(--input-padding); float:left; } +fieldset.inner>div.output>div.layout>div.layout div.content div.tips { color:var(--disable-fg-color); font-style:italic; position:absolute; top:0; right:10px; } +fieldset.inner.cmd>div.output>div.layout>div.tabs:not(.hide) { background-color:var(--plugin-bg-color); height:var(--code-tabs-height); display:flex; } +fieldset.inner.cmd>div.output>div.layout>div.tabs>div { height:var(--code-tabs-height); display:flex; align-items:center; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.icon>div.icon { font-size:26px; line-height:32px; padding:2px 5px; position:sticky; top:0; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs { flex-grow:1; flex-wrap:wrap; overflow:auto; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs:hover { background-color:unset; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding:5px; height:38px; display:flex; align-items:center; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs>span { font-style:italic; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div { white-space:pre; padding:10px; height:38px; display:flex; align-items:center; } +fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding:var(--input-padding) var(--button-padding); height:var(--code-tabs-height); } +fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div { white-space:pre; padding:10px; height:var(--code-tabs-height); display:flex; align-items:center; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar { padding:0; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:38px; clip-path:circle(40%); } -fieldset.inner.cmd>div.output>div.layout>div.path { font-style:italic; padding:5px; box-shadow:var(--box-shadow); display:block; cursor:pointer; } -fieldset.inner.cmd>div.output>div.layout>div.path.hide { display:none; } +fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:var(--code-tabs-height); clip-path:circle(40%); } +fieldset.inner.cmd>div.output>div.layout>div.path:not(.hide) { font-style:italic; box-shadow:var(--box-shadow); display:flex; align-items:center; cursor:pointer; } fieldset.inner.cmd>div.output>div.layout>div.path>span:hover { background-color:var(--hover-bg-color); } -fieldset.inner.cmd>div.output>div.layout>div.path span.func { padding:5px 10px; margin-left:20px; } -fieldset.inner.cmd>div.output>div.layout>div.path span.mode { padding:5px 10px; margin-left:20px; } -fieldset.inner.cmd>div.output>div.layout>div.path span.view { font-size:22px; padding:0 5px; margin-top:-5px; float:right; } -fieldset.inner.cmd>div.output>div.layout>fieldset.plug { bottom:32px; } +fieldset.inner.cmd>div.output>div.layout>div.path span.func { padding:var(--input-padding) var(--button-padding); margin-left:var(--button-margin); flex-grow:1; } +fieldset.inner.cmd>div.output>div.layout>div.path span.mode { padding:var(--input-padding) var(--button-padding); margin-left:var(--button-margin); flex-grow:1; } +fieldset.inner.cmd>div.output>div.layout>div.path span.view { font-size:22px; padding:0 var(--input-padding); margin-top:-5px; float:right; } +fieldset.inner.cmd>div.output>div.layout>fieldset.plug { bottom:var(--action-height); } fieldset.inner.cmd>div.output>div.layout>fieldset.plug.output { white-space:pre; } -fieldset.inner.cmd>div.output>div.layout>div.plug { height:32px; position:fixed; right:0; bottom:0; } -fieldset.inner.cmd>div.output>div.layout>div.plug>legend { font-size:1rem; font-style:italic; padding:0 10px; float:right; } -fieldset.inner.cmd>div.output>div.layout>div.plug>legend>span.remove { padding:5px; } +fieldset.inner.cmd>div.output>div.layout>div.plug { height:var(--action-height); position:fixed; right:0; bottom:0; } +fieldset.inner.cmd>div.output>div.layout>div.plug>legend { font-size:var(--legend-font-size); font-style:italic; padding:0 var(--legend-padding); float:right; } +fieldset.inner.cmd>div.output>div.layout>div.plug>legend>span.remove { padding:var(--input-padding); } fieldset.inner.cmd>div.output>div.layout>div.plug>legend>span.remove:hover { background-color:var(--hover-bg-color); } fieldset.inner.cmd>div.output>div.layout>div.plug>legend:not(:hover)>span.remove { visibility:hidden; } -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.path span.item { padding:var(--input-padding); } +div.carte.cmd.float { font-size:var(--code-font-size); } div.carte.cmd.float div.item { padding:var(--input-padding); } +div.carte.path.float { font-size:var(--code-font-size); } div.carte.path.float div.item { padding:var(--input-padding); } 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; } -tr.line>td.text { white-space:pre; line-height:20px; padding-left:10px; width:100%; } +tr.line>td.line { user-select:none; border-right:var(--box-border); } +tr.line>td.line { text-align:right; padding:0 var(--button-padding); position:sticky; left:0; } +tr.line>td.text { white-space:pre; line-height:var(--code-line-height); padding-left:var(--input-padding); width:100%; } tr.line:hover { background-color:var(--hover-bg-color); } -tr.line.delete { background-color:#3c2626; } -tr.line.insert { background-color:#283e2d; } -body.light tr.line.delete { background-color:#e6ffed; } -body.light tr.line.insert { background-color:#ffeef0; } -body.white tr.line.delete { background-color:#e6ffed; } -body.white tr.line.insert { background-color:#ffeef0; } - +tr.line.insert { background-color:#283e2d; } tr.line.delete { background-color:#3c2626; } +body.light tr.line.insert { background-color:#ffeef0; } body.light tr.line.delete { background-color:#e6ffed; } +body.white tr.line.insert { background-color:#ffeef0; } body.white tr.line.delete { background-color:#e6ffed; } fieldset.inner:not(.monaco)>div.output div.content>tr.line * { font-family:var(--code-font-family); font-size:var(--code-font-size); } -body:not(.windows) fieldset.inner>div.output>div.project * { font-family:var(--code-font-family); font-size:var(--code-font-size); } +/* body:not(.windows) fieldset.inner>div.output>div.project * { font-family:var(--code-font-family); font-size:var(--code-font-size); } */ +body:not(.windows) fieldset.inner>div.output>div.project * { font-family:var(--code-font-family); } body:not(.windows) fieldset.inner>div.output>div.layout>div.tabs { font-family:var(--code-font-family); font-size:var(--code-font-size); } body:not(.windows) fieldset.inner>div.output>div.layout>div.path { font-family:var(--code-font-family); font-size:var(--code-font-size); } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index d29faaac..0ec6eb0b 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -116,18 +116,11 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp }, _tabIcon: function(can) { can.user.isWindows || can.page.Append(can, can.ui.path, can.core.Item({ - "\u25E8 ": function(event) { - if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) - }, - "\u25E8": shy({"font-size": "23px", rotate: "90deg", translate: "1px 1px"}, function(event) { - if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) - }), - "\u25E7": function(event) { - var show = can.onmotion.toggle(can, can.ui.project); can.onimport.layout(can) - can.isCmdMode() && can.onexport.session(can, PROJECT_HIDE, show? "": html.HIDE) - }, - "\u2756": shy({"font-size": "20px", translate: "0 2px"}, function(event) { can.onaction.plug(event, can) }), - "\u271A": shy({"font-size": "20px", translate: "0 2px"}, function(event) { can.onaction.open(event, can) }), + "\u271A": shy({translate: "0 2px"}, function(event) { can.onaction.open(event, can) }), + "\u2756": shy({translate: "0 2px"}, function(event) { can.onaction.plug(event, can) }), + "\u25E7": function(event) { var show = can.onmotion.toggle(can, can.ui.project); can.onimport.layout(can), can.isCmdMode() && can.onexport.session(can, PROJECT_HIDE, show? "": html.HIDE) }, + "\u25E8": shy({translate: "0 2px", rotate: "90deg"}, function(event) { if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) }), + "\u25E8 ": function(event) { if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) }, }, function(text, cb) { return cb && {text: [text, html.SPAN, html.VIEW], style: cb.meta, onclick: cb} })) }, tabview: function(can, path, file, line, cb) { path = path||can.Option(nfs.PATH); var key = can.onexport.keys(can, path, file) diff --git a/plugin/local/code/vimer.css b/plugin/local/code/vimer.css index 094099ce..6c5e2eee 100644 --- a/plugin/local/code/vimer.css +++ b/plugin/local/code/vimer.css @@ -1,10 +1,9 @@ fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); } -/* fieldset.inner>div.output>div.layout>div.layout>div.content div.tips { display:none; } */ -fieldset.vimer>div.output>div.layout>div.layout div.content input.current { background-color:transparent; color:transparent; padding-left:10px; height:20px; position:absolute; } +fieldset.vimer>div.output>div.layout>div.layout div.content input.current { background-color:transparent; color:transparent; padding-left:var(--input-padding); height:var(--code-line-height); position:absolute; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete { background-color:unset; padding-top:0; display:none; position:absolute; height:1px; overflow:visible; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete div.prefix { color:transparent; white-space:pre; float:left; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content thead { display:none; } -fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content { padding-left:5px; width:unset; max-width:600px; display:block; box-shadow:var(--box-shadow); } +fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content { padding-left:var(--input-padding); width:unset; max-width:600px; display:block; box-shadow:var(--box-shadow); } fieldset.vimer>div.output>div.layout>div.layout div.content.insert div.complete:not(.hide) { display:block; top:unset; } fieldset.vimer>div.output>div.layout>div.layout div.content.normal input.current { caret-color:var(--notice-bg-color); border:var(--notice-bg-color) solid 1px; } fieldset.vimer>div.output>div.layout>div.layout div.content.insert input.current { caret-color:var(--danger-bg-color); border:var(--danger-bg-color) solid 1px; } diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index 6e7e0a7d..1861d6a5 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -44,7 +44,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.Conf(html.PADDI }); select && select.click() }, field: function(can, meta, target) { var item = can.base.Obj(meta.meta), width = item.width - if (can.Option(nfs.PATH).indexOf(nfs.DF) > 0) { var ls = can.core.Split(can.Option(nfs.PATH), nfs.DF); item.space = ls[0] } + // if (can.Option(nfs.PATH).indexOf(nfs.DF) > 0) { var ls = can.core.Split(can.Option(nfs.PATH), nfs.DF); item.space = ls[0] } can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub]) sub.onimport.size(sub, can.base.Min(can.ConfHeight()/2, 300, 600), sub.Conf("_width", width)||(can.ConfWidth()-2*can.Conf(html.PADDING)), true) var size = sub.onimport.size; sub.onimport.size = function(can, height, width, auto, mode) { size(can, height, width, auto, mode), can.page.style(can, sub._output, html.MAX_HEIGHT, "", "overflow-y", "hidden") } diff --git a/plugin/table.js b/plugin/table.js index 74b0dd67..1fd4affc 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -29,8 +29,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( _zone: function(can, zone, index, cb, field) { zone._delay_init = function() { can.onimport.plug(can, can.base.isObject(index)? index: {index: index, style: html.OUTPUT, mode: mdb.ZONE, field: field}, function(sub) { sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, {mode: mdb.ZONE}), index.index||index, cmds, cb) } zone._icon(kit.Dict( - can.page.unicode.refresh, function(event) { sub.Update(event) }, - "+", function(event) { sub.Update(event, [ctx.ACTION, mdb.CREATE]) }, + web.REFRESH, function(event) { sub.Update(event) }, + mdb.CREATE, function(event) { sub.Update(event, [ctx.ACTION, mdb.CREATE]) }, "=", function() { can.onimport.tabview(can, "", [sub.ConfIndex()].concat(sub.Conf(ctx.ARGS)).join(","), ctx.INDEX) }, )) var action = can.core.List(sub.Conf(ctx.INPUTS), function(item) { if (item.type == html.BUTTON && [ice.LIST, ice.BACK].indexOf(item.name) == -1) { return item.name } }) @@ -82,7 +82,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( ]} })) }, - _icon: function(can, name, button, target) { can.page.Append(can, target, [{text: [can.page.unicode[name]||name, html.SPAN, html.ICON], onclick: function(event) { + _icon: function(can, name, button, target) { can.page.Append(can, target, [{text: [can.page.unicode[name]||name, html.SPAN, [html.ICON, name]], onclick: function(event) { can.base.isFunc(button)? button(event, button): can.onaction[button](event, can, button), can.onkeymap.prevent(event) }}]) }, icon: function(can, msg, target, cb) { return msg.Table(function(value) { @@ -186,9 +186,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( can.core.Next(list.reverse(), function(meta, next) { can.base.isString(meta) && (meta = {index: meta}), meta.mode = html.FLOAT can.onimport.plug(can, meta, function(sub) { sub.onexport.output = function() { var width = can.ConfWidth()-(can.ui && can.ui.project? can.ui.project.offsetWidth: 0) + var height = can.base.Max(can.ConfHeight()/2, 320, can.ConfHeight()-html.ACTION_HEIGHT) can.page.style(can, sub._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/(can.base.isIn(sub.ConfIndex(), code.COMPILE, cli.RUNTIME)? 1: 2)), true) - sub.onimport.size(sub, can.ConfHeight()/2, can.base.Min(sub._target.offsetWidth, width/2, width), true) + sub.onimport.size(sub, height, can.base.Min(sub._target.offsetWidth, can.base.Min(width/2, 640), width/(can.base.isIn(sub.ConfIndex(), code.COMPILE, cli.RUNTIME)? 1: 2)), false) + can.onmotion.delay(can, function() { sub.onimport.size(sub, height, can.base.Min(sub._target.offsetWidth, can.base.Min(width/2, 640), width), false) }) } 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, "", mdb.REMOVE], onclick: function(event) {