mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add some
This commit is contained in:
parent
ac7f9778ab
commit
74b1e175ea
28
frame.js
28
frame.js
@ -435,7 +435,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
function _cb(sub, value, old) { if (value == old) { return } target.value = value, can.base.isFunc(cb) && cb(sub, value, old) }
|
||||
target.onkeydown = function() { if (event.key == code.ESCAPE && target._can) { return target._can.close(), target.blur() } else if (event.key == code.ENTER) { can.base.isFunc(cb) && cb(event, target.value) } }
|
||||
can.core.ItemCB(can.onfigure[input], function(key, on) { var last = target[key]||function() { }; target[key] = function(event) { can.misc.Event(event, can, function(msg) {
|
||||
function show(sub, cb) { can.base.isFunc(cb) && cb(sub, _cb), can.onlayout.figure(event, can, sub._target, false), can.onmotion.toggle(can, sub._target, true) }
|
||||
function show(sub, cb) { can.base.isFunc(cb) && cb(sub, _cb), can.onlayout.figure(event, can, sub._target), can.onmotion.toggle(can, sub._target, true) }
|
||||
can.core.CallFunc(on, {event: event, can: can, meta: meta, cb: _cb, target: target, sub: target._can, last: last, cbs: function(cb) {
|
||||
target._can? show(target._can, cb): can.onappend._init(can, {type: html.INPUT, name: input, style: meta.name, mode: chat.FLOAT}, [path], function(sub) { sub.Conf(meta)
|
||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
||||
@ -467,28 +467,22 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
|
||||
can.page.SelectChild(can, target, "", function(target) { can.page.styleWidth(can, target, width) })
|
||||
},
|
||||
background: function(can, url, target) { can.page.style(can, target||can._root._target, "background-image", url == "" || url == "void"? "": 'url("'+url+'")') },
|
||||
figure: function(event, can, target, right, max) { if (!event || !event.target) { return {} } target = target||can._fields||can._target
|
||||
figure: function(event, can, target, right, min) { if (!event || !event.target) { return {} } target = target||can._fields||can._target
|
||||
var rect = event.target == document.body? {left: can.page.width()/2, top: can.page.height()/2, right: can.page.width()/2, bottom: can.page.height()/2}: (event.currentTarget||event.target).getBoundingClientRect()
|
||||
var layout = right? {left: rect.right, top: rect.top}: {left: rect.left, top: rect.bottom}
|
||||
can.getActionSize(function(left, top, width, height) { left = left||0, top = top||0, height = can.base.Max(height, can.page.height()-top)
|
||||
if (max && layout.top-top > height*max) {
|
||||
can.page.style(can, target, html.MAX_HEIGHT, layout.top-top-(rect.bottom-rect.top))
|
||||
layout.top = layout.top-target.offsetHeight-(rect.bottom-rect.top)
|
||||
if (layout.top+target.offsetHeight > top+height) {
|
||||
if (min && top+height-layout.top > min) {
|
||||
can.page.style(can, target, html.MAX_HEIGHT, top+height-layout.top)
|
||||
} else if (!right && rect.top-top>target.offsetHeight) {
|
||||
layout.top = rect.top-target.offsetHeight
|
||||
} else {
|
||||
if (!right) { can.page.style(can, target, html.MAX_HEIGHT, max? height*max: top+height-layout.top) }
|
||||
if (layout.top+target.offsetHeight > top+height) { layout.top = top+height-target.offsetHeight }
|
||||
if (!right) { right = true, layout.left += (event.currentTarget||event.target).offsetWidth }
|
||||
can.page.style(can, target, html.MAX_HEIGHT, height)
|
||||
layout.top = top+height-target.offsetHeight
|
||||
}
|
||||
if (layout.left >= left+width) {
|
||||
if (can.page.tagis(event.target, html.SPAN)) {
|
||||
layout.left = left+width-target.offsetWidth-event.target.parentNode.offsetWidth
|
||||
} else {
|
||||
layout.left = left+width-target.offsetWidth-event.target.offsetWidth
|
||||
}
|
||||
} else if (layout.left > left+width-10) {
|
||||
layout.left = left+width-target.offsetWidth-1-event.target.offsetWidth
|
||||
} else if (layout.left+target.offsetWidth > left+width) {
|
||||
layout.left = left+width-target.offsetWidth-1
|
||||
}
|
||||
if (layout.left+target.offsetWidth > left+width) { layout.left = (right? rect.left: left+width)-target.offsetWidth-1 }
|
||||
}); return can.onmotion.move(can, target, layout), layout
|
||||
},
|
||||
})
|
||||
|
32
index.css
32
index.css
@ -1,9 +1,9 @@
|
||||
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;
|
||||
--notice-fg-color:blue; --progress-bg-color:red;
|
||||
--disable-fg-color:gray;
|
||||
--progress-bg-color:red; --disable-fg-color:gray;
|
||||
|
||||
--code-bg-color:black; --code-fg-color:silver; --code-border-color:blue;
|
||||
--code-comment:green; --code-keyword:darkblue; --code-package:blue;
|
||||
@ -79,10 +79,10 @@ fieldset.input.date>div.output td span.lunar.fest { color:red; }
|
||||
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-fg-color); float:left; }
|
||||
body>div.toast div.title { color:var(--notice-bg-color); float:left; }
|
||||
body>div.toast div.duration { color:gray; float:right; }
|
||||
body>div.toast div.content { color:var(--notice-fg-color); text-align:center; }
|
||||
body>div.toast div.progress { border:var(--notice-fg-color) solid 1px; margin-left:0px; height:20px; clear:both; }
|
||||
body>div.toast div.content { color:var(--notice-bg-color); text-align:center; }
|
||||
body>div.toast div.progress { border:var(--notice-bg-color) solid 1px; margin-left:0px; height:20px; clear:both; }
|
||||
body>div.toast div.progress div.current { background-color:var(--progress-bg-color); height:18px; }
|
||||
body>div.toast div.action { width:100%; display:block; }
|
||||
body>div.toast div.action>div.item { float:right; }
|
||||
@ -103,7 +103,7 @@ body>div.input div.action>div.item { margin:5px; float:right; }
|
||||
body>div.input div.action>div.item>input[type=button] { width:110px; }
|
||||
body>div.input.login>div.output { text-align:center; }
|
||||
body>div.upload div.action input[type=file] { width:320px; }
|
||||
body>div.upload div.output { border:var(--notice-fg-color) solid 1px; }
|
||||
body>div.upload div.output { border:var(--notice-bg-color) solid 1px; }
|
||||
body>div.upload div.output div.progress { background-color:var(--progress-bg-color); height:10px; width:0; }
|
||||
body>div.upload div.status div.cost { float:left; }
|
||||
body>div.upload div.status div.show { float:right; }
|
||||
@ -114,7 +114,7 @@ legend { font-size:1.2rem; line-height:32px; height:32px; }
|
||||
select, input { font-size:1rem; height:32px; } input::placeholder, textarea::placeholder { font-style:italic; }
|
||||
textarea { font-size:1rem; tab-size:2; padding:5px; height:96px; width:100%; resize:vertical; }
|
||||
table.content, div.code, div.story[data-type=spark] { white-space:pre; margin:0; }
|
||||
div.story[data-type=spark] { padding:0 5px; border-left:var(--notice-fg-color) solid 5px; }
|
||||
div.story[data-type=spark] { padding:0 5px; border-left:var(--notice-bg-color) solid 5px; }
|
||||
fieldset>div.action>div.tabs { font-style:italic; padding:0 10px;}
|
||||
fieldset>div.output>div.code { font-size:14px; }
|
||||
fieldset>div.status>div.item { padding:5px; height:31px; }
|
||||
@ -240,13 +240,13 @@ div.story[data-type=spark] { cursor:copy; }
|
||||
fieldset>div.status>legend { margin-right:10px; float:right; clear:none; }
|
||||
fieldset>div.status>legend:not(:hover):not(.select) { background-color:unset; box-shadow: var(--box-shadow); }
|
||||
/* hover */
|
||||
input:hover[type=button][name=create] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=insert] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=restart] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=start] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=build] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=run] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=open] { background-color:var(--create-bg-color); color:var(--create-fg-color); }
|
||||
input:hover[type=button][name=create] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=insert] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=restart] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=start] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=build] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=run] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=open] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
input:hover[type=button][name=stop] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
|
||||
input:hover[type=button][name=drop] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
|
||||
input:hover[type=button][name=trash] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
|
||||
@ -301,9 +301,9 @@ div.zone>div.list>div.zone>div.item { background-color:var(--th-bg-color); }
|
||||
div.tabs div { background-color:var(--plugin-bg-color); }
|
||||
div.tabs div:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); }
|
||||
div.tabs div.select { background-color:var(--hover-bg-color); color:var(--hover-fg-color); }
|
||||
div.plug legend { background-color:var(--output-bg-color); }
|
||||
div.plug legend { background-color:var(--output-bg-color); border-radius:0; }
|
||||
div.plug legend:hover { background-color:var(--hover-bg-color); }
|
||||
div.plug legend.select { background-color:var(--plugin-bg-color); }
|
||||
div.plug legend.select { background-color:var(--plugin-bg-color); border-bottom:var(--notice-bg-color) solid; }
|
||||
div.complete>table { background-color:var(--plugin-bg-color); }
|
||||
body.light fieldset.panel:not(.main)>div.output div.state:hover { background-color:var(--panel-hover-bg-color); color:var(--panel-hover-fg-color); }
|
||||
body.light fieldset.panel:not(.main)>div.output div.title:hover { background-color:var(--panel-hover-bg-color); color:var(--panel-hover-fg-color); }
|
||||
|
@ -151,7 +151,7 @@ Volcanos("user", {
|
||||
return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, meta._style == ice.CMD? item: can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }:
|
||||
can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [lex.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item
|
||||
})}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } })
|
||||
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}
|
||||
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 200), close: function() { can.page.Remove(can, ui._target) }}
|
||||
parent && (parent._sub = carte)
|
||||
return carte
|
||||
},
|
||||
@ -196,12 +196,13 @@ Volcanos("user", {
|
||||
}, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) },
|
||||
});
|
||||
if (event && event.target) {
|
||||
can.onlayout.figure(event, can, ui._target, false, 0.8)
|
||||
can.onlayout.figure(event, can, ui._target)
|
||||
} else {
|
||||
can.getActionSize(function(left, top, height) { can.page.style(can, ui._target, html.LEFT, left||0, html.TOP, (height/4||0)) })
|
||||
}
|
||||
can.onmotion.delay(can, function() { action.focus() })
|
||||
can.onmotion.move(can, ui._target, {}), can.onmotion.resize(can, ui._target)
|
||||
// can.onmotion.move(can, ui._target, {})
|
||||
can.onmotion.resize(can, ui._target)
|
||||
return button === true && action.submit(event, can, html.SUBMIT), action
|
||||
},
|
||||
select: function(event, can, type, fields, cb, cbs) {
|
||||
|
@ -14,7 +14,7 @@ Volcanos(chat.ONFIGURE, {key: {
|
||||
}}
|
||||
}), can.onappend._status(can, [mdb.TOTAL, mdb.INDEX]), can.Status(mdb.TOTAL, msg.Length())
|
||||
can.page.style(can, can._output, html.MAX_HEIGHT, can.page.height()/2, html.MIN_WIDTH, target.offsetWidth, html.MAX_WIDTH, can.Conf("style.width")||can.page.width()/2)
|
||||
msg.append.length == 1 && can.page.ClassList.add(can, can._target, chat.SIMPLE), can.onlayout.figure({target: target}, can, can._target)
|
||||
msg.append.length == 1 && can.page.ClassList.add(can, can._target, chat.SIMPLE), can.onlayout.figure({target: target}, can, can._target, false, 200)
|
||||
},
|
||||
onclick: function(event, can, meta, target, cbs) { can.onmotion.focus(can, target) },
|
||||
onfocus: function(event, can, meta, target, cbs) { cbs(function(sub, cb) { if (sub.Status(mdb.TOTAL) > 0) { return }
|
||||
|
@ -12,7 +12,6 @@ fieldset.inner>div.output div.content td.text span.constant { color:var(--code-c
|
||||
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 { width:230px; flex:0 0 230px; box-shadow:var(--box-shadow); }
|
||||
// fieldset.inner>div.output>div.project * { font-size:14px; font-family:monospace; outline:none; }
|
||||
body:not(.windows) fieldset.inner>div.output>div.project * { font-size:14px; font-family:monospace; outline:none; }
|
||||
fieldset.inner>div.output>div.project div.action { width:100%; }
|
||||
fieldset.inner>div.output>div.project input[type=text] { box-shadow:none; }
|
||||
@ -21,7 +20,7 @@ fieldset.inner>div.output>div.project div.zone:hover>div.item span.icon { displa
|
||||
fieldset.inner>div.output>div.project>div.zone>div.item span.icon { font-size:22px; line-height:32px; }
|
||||
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>input { width:calc(100% - 5px); border:var(--plugin-border-color) solid 1px; }
|
||||
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input:hover { border:var(--notice-fg-color) solid 1px; }
|
||||
fieldset.inner>div.output>div.project>div.zone div.action>div.item>input:hover { border:var(--notice-bg-color) solid 1px; }
|
||||
fieldset.inner>div.output>div.project>div.zone div.action>div.item>span.delete { top:3px; right:5px; }
|
||||
fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; }
|
||||
fieldset.inner>div.output>div.layout>div.tabs { font-size:14px; display:none; }
|
||||
@ -56,11 +55,10 @@ fieldset.inner.cmd>div.output>div.layout>div.tabs>div.avatar>img { height:38px;
|
||||
fieldset.inner.cmd>div.output>div.layout>div.tabs>div.time { float:right; position:sticky; top:0; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.path { font-style:italic; padding:5px; display:block; box-shadow:var(--box-shadow); 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); }
|
||||
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.mode.insert { color:red; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.path span.mode.normal { color:blue; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.path span.view { font-size:22px; line-height:12px; padding:0 4px; float:right; }
|
||||
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.plug { height:32px; clear:both; position:fixed; bottom:0; right:0; }
|
||||
fieldset.inner.cmd>div.output>div.layout>div.plug>legend { font-size:1rem; padding:0 10px; float:right; }
|
||||
|
@ -155,7 +155,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
|
||||
can.request(event, msg)
|
||||
can.onaction[button](event, can, button) })}], function(event, tabs) {
|
||||
can._tab = msg._tab = tabs._target, show(skip), skip = true
|
||||
}, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg), can.ui.zone.source.refresh()
|
||||
}, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg) // , can.ui.zone.source.refresh()
|
||||
msg.__content || can.page.Remove(can, msg._content), msg._profile != can.ui._profile && can.page.Remove(can, msg._profile)
|
||||
can.ui._profile._cache && delete(can.ui._profile._cache[key]), can.ui._display._cache && delete(can.ui._display._cache[key])
|
||||
delete(can.db.tabview[key]), can._cache_data && delete(can._cache_data[key])
|
||||
@ -240,12 +240,14 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
|
||||
return can.onmotion.toggle(can, target, false), can.onimport.layout(can), can.user.toastFailure(can, "nothing to display")
|
||||
} return can.onmotion.toggle(can, target, true), can.onmotion.delay(can, function() { can.onimport.layout(can), can.user.toastSuccess(can) })
|
||||
},
|
||||
toolkit: function(can, meta, cb) {
|
||||
can.onimport.tool(can, [meta], function(sub) { meta.index != ice.CAN_PLUGIN && (sub._legend._list = {index: meta.index, args: meta.args}), sub.onexport.record = function(sub, value, key, item) { if (!item.file) { return }
|
||||
if (item.file.indexOf("require/src") == 0) { item.path = nfs.SRC, item.file = line.file.slice(12) }
|
||||
can.onimport.tabview(can, item.path, can.base.trimPrefix(item.file, nfs.PWD), parseInt(item.line)); return true
|
||||
}, can.base.isFunc(cb) && cb(sub), can.user.isWebview && can.onexport.recover(can) }, can.ui.plug.parentNode, can.ui.plug)
|
||||
can.page.isDisplay(can.ui.plug) || can.onmotion.toggle(can, can.ui.plug, true) && can.onimport.layout(can)
|
||||
toolkit: function(can, meta, cb) { var key = [meta.index].concat(meta.args).join(","), sub = can.db.toolkit[key]; if (sub) { sub.select(); return }
|
||||
can.onimport.tool(can, [meta], function(sub) { can.db.toolkit[key] = sub
|
||||
sub.onaction._close = function() { delete(can.db.toolkit[key]), can.page.Remove(can, sub._target), can.page.Remove(can, sub._legend) }
|
||||
sub.onexport.record = function(sub, value, key, data) { if (!data.file) { return }
|
||||
if (data.file.indexOf("require/src") == 0) { data.path = nfs.SRC, data.file = line.file.slice(12) }
|
||||
can.onimport.tabview(can, data.path, can.base.trimPrefix(data.file, nfs.PWD), parseInt(data.line)); return true
|
||||
}, meta.index != ice.CAN_PLUGIN && (sub._legend._list = {index: meta.index, args: meta.args}), can.user.isWebview && can.onexport.recover(can), cb && cb(sub)
|
||||
}, can.ui.plug.parentNode, can.ui.plug), can.page.isDisplay(can.ui.plug) || can.onmotion.toggle(can, can.ui.plug, true) && can.onimport.layout(can)
|
||||
},
|
||||
layout: function(can) { if (can.isSimpleMode() || can.Conf(ctx.STYLE) == html.OUTPUT) { return can.page.style(can, can.ui.content, html.WIDTH, can.ConfWidth()) } if (can.isCmdMode()) { can.ConfHeight(can.page.height()) }
|
||||
var content = can.ui.content; if (content._root) { can.ui.content = content._root } can.ui.size = {profile: can._msg.Option(html.WIDTH), display: can._msg.Option(html.HEIGHT)}
|
||||
@ -336,14 +338,16 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport.
|
||||
content._max = 0, content._msg = msg, msg.__content = content, can.page.Appends(can, content, [{view: ["tips", "", msg.Option(nfs.FILE)]}])
|
||||
if (msg.Length() > 0) { can.onsyntax._change(can, msg), can.onaction.rerankLine(can, "tr.line:not(.delete)>td.line")
|
||||
can.page.Select(can, content, "tr.line.delete>td.line", function(target) { target.innerHTML = "" })
|
||||
} else { can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) }) }
|
||||
} else {
|
||||
can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) })
|
||||
}
|
||||
can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) })
|
||||
can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content)
|
||||
} can.require(["/plugin/local/code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG))
|
||||
var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) {
|
||||
p = can.base.Obj(msg.Result())
|
||||
if (p && p.script) { can._msg.Option("parse", msg.Option("parse"))
|
||||
can.require([p.script], function() { show(can.onsyntax[msg.Option("parse")||parse]) })
|
||||
if (p && p.script) { can._msg.Option(lex.PARSE, msg.Option(lex.PARSE))
|
||||
can.require([p.script], function() { show(can.onsyntax[msg.Option(lex.PARSE)||parse]) })
|
||||
} else {
|
||||
show(can.onsyntax[parse] = p)
|
||||
}
|
||||
@ -480,11 +484,10 @@ Volcanos(chat.ONACTION, {
|
||||
show: function(event, can) { can.runAction(can.request(event, {_toast: "渲染中...", args: can.onexport.session(can, PROFILE_ARGS+can.Option(nfs.PATH)+can.Option(nfs.FILE))}), mdb.RENDER, [can.onexport.parse(can), can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) { can.onimport.profile(can, msg) }) },
|
||||
exec: function(event, can) { can.runAction(can.request(event, {_toast: "执行中...", args: can.onexport.session(can, DISPLAY_ARGS+can.Option(nfs.PATH)+can.Option(nfs.FILE))}), mdb.ENGINE, [can.onexport.parse(can), can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) { can.onimport.display(can, msg) }) },
|
||||
plug: function(event, can) {
|
||||
function show(index, args) { input.cancel(); var sub = can.db.toolkit[index]; if (sub) { sub.select(); return } can.onimport.toolkit(can, {index: index, args: can.core.Split(args||"")}, function(sub) { can.db.toolkit[index] = sub.select() }) }
|
||||
function show(index, args) { input.cancel(); can.onimport.toolkit(can, {index: index, args: can.core.Split(args||"")}, function(sub) { sub.select() }) }
|
||||
var input = can.user.input(event, can, [{type: html.TEXT, name: ctx.INDEX, run: function(event, cmds, cb) { can.run(event, cmds, function(msg) {
|
||||
if (cmds[0] == ctx.ACTION && cmds[1] == mdb.INPUTS && cmds[2] == ctx.INDEX) { var _msg = can.request({})
|
||||
can.core.Item(can.db.toolkit, function(index) { _msg.Push(ctx.INDEX, index) }), _msg.Push(ctx.INDEX, "")
|
||||
_msg.Copy(msg), cb(_msg)
|
||||
can.core.Item(can.db.toolkit, function(index) { _msg.Push(ctx.INDEX, index) }), _msg.Push(ctx.INDEX, ""), _msg.Copy(msg), cb(_msg)
|
||||
} else { cb(msg) }
|
||||
}, true) }}, ctx.ARGS], function(list) { show(list[0], list[1]) })
|
||||
},
|
||||
|
@ -333,6 +333,8 @@ Volcanos(chat.ONSYNTAX, {
|
||||
"--body-bg-color": code.CONSTANT, "--body-fg-color": code.CONSTANT,
|
||||
"--plugin-bg-color": code.CONSTANT, "--plugin-fg-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-shadow": code.CONSTANT,
|
||||
}, include: ["html"],
|
||||
func: function(can, push, text) { text.indexOf("/* ") == 0 && push(can.base.trimPrefix(can.base.trimSuffix(text, " */"), "/* ")) },
|
||||
},
|
||||
|
@ -8,19 +8,15 @@ fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.c
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content { padding-left:5px; width:unset; max-width:600px; display:block; }
|
||||
fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content tr.line:hover { background-color:var(--hover-bg-color); }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.normal tr.line.select>td.line { background-color:blue; color:white; }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.insert tr.line.select>td.line { background-color:red; color:white; }
|
||||
fieldset.vimer>div.output.plugin>div.layout>div.tabs>div.tabs.select { border-top:transparent solid 2px; }
|
||||
fieldset.vimer>div.output.normal>div.layout>div.tabs>div.tabs.select { border-top:var(--notice-bg-color) solid 2px; }
|
||||
fieldset.vimer>div.output.insert>div.layout>div.tabs>div.tabs.select { border-top:var(--danger-bg-color) solid 2px; }
|
||||
fieldset.vimer>div.output.normal>div.layout>div.path span.mode.normal { color:var(--notice-bg-color); }
|
||||
fieldset.vimer>div.output.insert>div.layout>div.path span.mode.insert { color:var(--danger-bg-color); }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.normal tr.line.select>td.line { background-color:var(--notice-bg-color); color:white; }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.insert tr.line.select>td.line { background-color:var(--danger-bg-color); color:white; }
|
||||
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; }
|
||||
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:not([type=button]) { border:var(--notice-fg-color) solid 1px; }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.insert input:not([type=button]) { border:var(--danger-bg-color) solid 1px; }
|
||||
fieldset.vimer>div.output>div.layout>div.path span.mode.insert { color:var(--danger-bg-color); }
|
||||
fieldset.vimer>div.output>div.layout>div.path span.mode.normal { color:var(--notice-fg-color); }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.normal input.current { caret-color:lightgray; }
|
||||
fieldset.vimer>div.output>div.layout>div.layout div.content.insert input.current { caret-color:black; }
|
||||
body.dark fieldset.vimer>div.output>div.layout>div.layout div.content.normal input.current { caret-color:gray; }
|
||||
body.dark fieldset.vimer>div.output>div.layout>div.layout div.content.insert input.current { caret-color:yellow; }
|
||||
body.black fieldset.vimer>div.output>div.layout>div.layout div.content.normal input.current { caret-color:gray; }
|
||||
body.black fieldset.vimer>div.output>div.layout>div.layout div.content.insert input.current { caret-color:yellow; }
|
||||
body.black fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content { background-color:#061c3ceb; }
|
||||
body.white fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content { background-color:aliceblue; }
|
||||
body.white fieldset.vimer>div.output>div.layout>div.layout div.content.insert input.current { caret-color:black; }
|
||||
|
@ -122,7 +122,11 @@ Volcanos(chat.ONKEYMAP, {
|
||||
scrollHold: function(can, count, begin) { var scroll = can.ui.content.scrollLeft; can.ui.current.focus(), count != undefined && can.onkeymap.cursorMove(can.ui.current, count, begin == undefined? count: begin), can.ui.content.scrollLeft = scroll },
|
||||
cursorDown: function(can, target) { var p = can.onkeymap.cursorMove(target); can.onaction.selectLine(can, can.current.next()), can.onkeymap.cursorMove(target, 0, p) },
|
||||
cursorUp: function(can, target) { var p = can.onkeymap.cursorMove(target); can.onaction.selectLine(can, can.current.prev()), can.onkeymap.cursorMove(target, 0, p) },
|
||||
_model: function(can, value) { can.db.mode = value, can.onimport.__tabPath(can, true), can.core.List([mdb.PLUGIN, mdb.NORMAL, mdb.INSERT], function(item) { can.page.ClassList.del(can, can.ui.content, item) }), can.page.ClassList.add(can, can.ui.content, value) },
|
||||
_model: function(can, value) {
|
||||
can.db.mode = value, can.onimport.__tabPath(can, true),
|
||||
can.core.List([mdb.PLUGIN, mdb.NORMAL, mdb.INSERT], function(item) { can.page.ClassList.del(can, can.ui.content, item) }), can.page.ClassList.add(can, can.ui.content, value)
|
||||
can.core.List([mdb.PLUGIN, mdb.NORMAL, mdb.INSERT], function(item) { can.page.ClassList.del(can, can._output, item) }), can.page.ClassList.add(can, can._output, value)
|
||||
},
|
||||
_plugin: function(can) { can.onkeymap._model(can, mdb.PLUGIN), can.ui.current.blur() },
|
||||
_normal: function(can) { can.onkeymap._model(can, mdb.NORMAL), can.onkeymap.scrollHold(can) },
|
||||
_insert: function(event, can, count, begin) { can.onkeymap._model(can, mdb.INSERT), can.onkeymap.scrollHold(can, count, begin), can.onkeymap.prevent(event) },
|
||||
|
@ -50,7 +50,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
||||
})
|
||||
}
|
||||
return {view: [[html.ZONE, zone.name]], list: [
|
||||
{view: html.ITEM, inner: can.user.trans(can, zone.name), _init: function(target) { zone._legend = target }, onclick: function() {
|
||||
{view: html.ITEM, list: [{text: can.user.trans(can, zone.name)}], _init: function(target) { zone._legend = target }, onclick: function() {
|
||||
if (zone._delay_init) { zone._delay_init(zone._target, zone), delete(zone._delay_init) }
|
||||
can.onmotion.toggle(can, zone._action), can.onmotion.toggle(can, zone._action.nextSibling||zone._target), zone._toggle && zone._toggle()
|
||||
}, oncontextmenu: function(event) { var menu = zone._menu
|
||||
@ -122,8 +122,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
||||
}}, {view: html.LIST}]); can.onimport.list(can, item, cb, ui.list, cbs) })
|
||||
},
|
||||
tabs: function(can, list, cb, cbs, action) { action = action||can._action; return can.page.Append(can, action, can.core.List(list, function(tabs) {
|
||||
function close(target) { var next = target.nextSibling||target.previousSibling; if (!next) { return }
|
||||
next.click(), can.onmotion.delay(can, function() { can.base.isFunc(cbs) && cbs(tabs), can.page.Remove(can, target) })
|
||||
function close(target) {
|
||||
if (can.page.ClassList.has(can, target, html.SELECT)) {
|
||||
var next = target.nextSibling||target.previousSibling; if (!next) { return } next.click()
|
||||
} cbs && cbs(tabs), can.page.Remove(can, target)
|
||||
}
|
||||
return {view: html.TABS, title: tabs.text, list: [{text: [tabs.name, html.SPAN, mdb.NAME]}, {icon: mdb.DELETE, onclick: function(event) {
|
||||
close(tabs._target), can.onkeymap.prevent(event)
|
||||
|
Loading…
x
Reference in New Issue
Block a user