From 32c28a9f1a5be749a2a7ed8c190773c5de48c639 Mon Sep 17 00:00:00 2001 From: shy Date: Thu, 2 Nov 2023 11:50:54 +0800 Subject: [PATCH] add some --- frame.js | 14 +++++++++----- index.css | 4 ++-- lib/base.js | 7 ++++++- plugin/local/code/inner.css | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/frame.js b/frame.js index 0066f1c6..973931ce 100644 --- a/frame.js +++ b/frame.js @@ -341,7 +341,10 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }, _init: function(target) { can.page.style(can, target, html.WIDTH, (select.offsetWidth||80)+10), 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)) - for (var i = 0; i < msg.append.length-1; i++) { if (msg.append[i] == ctx.ACTION) { msg.append[i] = msg.append[msg.append.length-1], msg.append[msg.append.length-1] = ctx.ACTION } } + 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) var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, data, list) { if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = data.key } data = {}, can.core.List(list, function(item) { data[item.key] = item.value }) } function run(event, cmd, arg) { can.misc.Event(event, can, function(msg) { can.run(can.request(event, data, can.Option()), [ctx.ACTION, cmd].concat(arg)) }) } @@ -408,7 +411,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { target.addEventListener("scroll", function(event) { var height = can.base.Min(target.offsetHeight*target.offsetHeight/target.scrollHeight, target.offsetHeight/4) target.scrollHeight > target.offsetHeight && can.page.style(can, vbar, html.HEIGHT, height, html.RIGHT, -target.scrollLeft, html.VISIBILITY, html.VISIBLE, - html.TOP, target.scrollTop+target.scrollTop/(target.scrollHeight-target.offsetHeight)*(target.offsetHeight-height), + html.TOP, can.base.Max(target.scrollTop+target.scrollTop/(target.scrollHeight-target.offsetHeight)*(target.offsetHeight-height)-10, target.scrollHeight-height), ) vbar.innerHTML = `${parseInt(target.scrollTop)}+${target.offsetHeight}/${target.scrollHeight}` var width = can.base.Min(target.offsetWidth*target.offsetWidth/target.scrollWidth, target.offsetWidth/4) @@ -428,9 +431,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { {view: [[html.DISPLAY, html.TOGGLE]], onclick: function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) }}, {view: [[html.PROFILE, html.TOGGLE]], onclick: function() { can.onmotion.toggle(can, can.ui.profile), can.onimport.layout(can) }}, ]) - toggle.layout = function() { + toggle.layout = function() { var up = "\u25B2", down = "\u25BC", left = can.page.unicode.prev, right = can.page.unicode.next // var up = "\u25B2", down = "\u25BC", left = "\u25C0", right = "\u25B6" - var up = "\u25B2", down = "\u25BC", left = can.page.unicode.prev, right = can.page.unicode.next can.page.Modify(can, toggle.project, can.page.isDisplay(can.ui.project)? left: right) can.page.Modify(can, toggle.display, can.page.isDisplay(can.ui.display)? down: up) can.page.Modify(can, toggle.profile, can.page.isDisplay(can.ui.profile)? right: left) @@ -634,7 +636,9 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) { if (can.page.Select(can, document.body, list[i], function(target) { return target._close? target._close(): can.page.Remove(can, target) }).length > 0) { return true } } }, - clearCarte: function(can) { can.page.SelectChild(can, document.body, "div.carte.float,fieldset.input.float", function(target) { can.page.Remove(can, target) }) }, + clearCarte: function(can) { + can.page.SelectChild(can, document.body, "div.carte.float", function(target) { can.page.Remove(can, target) }) + }, clearInput: function(can) { can.page.SelectChild(can, document.body, "div.input.float", function(target) { can.page.Remove(can, target) }) }, hidden: function(can, target, show) { target = target||can._target if (!target.tagName && target.length > 0) { return can.core.List(target, function(target) { can.onmotion.hidden(can, target, show) }) } diff --git a/index.css b/index.css index 9690478e..ae4f7fff 100644 --- a/index.css +++ b/index.css @@ -298,7 +298,7 @@ div.display:not(.toggle) { border-top:var(--box-border); } div.output.card>div.item.stop { color:var(--disable-fg-color); } div.output.card>div.item { background:var(--plugin-bg-color); padding:10px; border:var(--box-border); border-radius:var(--plugin-radius); margin:10px; width:320px; float:left; box-shadow:var(--box-shadow); } div.output.card>div.item>div.title { font-size:1.2rem; font-weight:bold; padding:10px; border-bottom:var(--box-border); } -div.output.card>div.item>div.content { padding:10px; height:70px; } +div.output.card>div.item>div.content { padding:10px; height:48px; } div.output.card>div.item>div.action { text-align:right; width:100%; display:flex; } div.output.card>div.item>div.action>input { margin-right:var(--button-margin); box-shadow:var(--box-shadow); } input[type=button].danger:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } @@ -406,7 +406,7 @@ div.carte div.item.notice:hover { background-color:var(--notice-bg-color); color body.cmd.mobile { overflow:hidden; } body.mobile table.content { width:100%; } body.mobile form.option>div.item:not(.icon) { margin-right:var(--button-margin); } -body.mobile:not(.cmd) form.option>div.item.button>input { display:none; } +body.mobile:not(.cmd) form.option>div.item.button.icons>input { display:none; } body.mobile table.content input:not(:last-child) { margin-right:var(--button-margin); } body.mobile fieldset>div.status { max-height:32px; overflow:hidden; } body.mobile fieldset>div.action>div.item { margin-right:var(--button-margin); } diff --git a/lib/base.js b/lib/base.js index 49fb2615..99007bed 100644 --- a/lib/base.js +++ b/lib/base.js @@ -5,7 +5,6 @@ Volcanos("base", { return val < min? min: val > max? max: val }, Max: function(val, max) { return val > max? max: val }, - Obj: function(val, def) { try { if (typeof val == code.STRING) { if (val == "") { return def } val = JSON.parse(val) } @@ -115,6 +114,12 @@ Volcanos("base", { isFunc: function(val) { return typeof val == code.FUNCTION }, isUndefined: function(val) { return val == undefined }, isNull: function(val) { return val == null }, + toLast: function(list, value) { + for (var i = 0; i < list.length-1; i++) { if (list[i] == value) { + for (i; i < list.length-1; i++) { list[i] = list[i+1] } + list[list.length-1] = value + } } + }, getValid: function() { for (var i = 0; i < arguments.length; i++) { var v = arguments[i] if (typeof v == code.OBJECT) { if (v == null) { continue } if (v.length > 0) { return v } for (var k in v) { return v } diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index 68b2fd11..afc6bf04 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -47,7 +47,7 @@ fieldset.inner.cmd>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding:5p 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.head>div.avatar { padding:0; } -fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:38px; } +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.path>span:hover { background-color:var(--hover-bg-color); }