1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-03-13 20:35:35 +08:00
parent 7577841e7b
commit 6fe918550a
5 changed files with 25 additions and 25 deletions

View File

@ -790,6 +790,15 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
(meta.run||can.run)(sub.request(event, can.Option()), cmds, cb, true)
}, target._can = sub, can.base.Copy(sub, can.onfigure[input], true), sub._name = sub._path = path
sub._target._close = sub.close = function() { can.page.Remove(can, sub._target), delete(target._can) }, sub.hidden = function() { return !can.page.isDisplay(sub._target) }
sub.layout = function(msg) {
can.onappend._status(sub, [mdb.TOTAL]), sub.Status(mdb.TOTAL, msg.Length()), can.onmotion.toggle(can, sub._status, msg.Length() > 5)
msg.append.length == 1 && can.page.ClassList.add(can, sub._target, chat.SIMPLE)
can.page.style(can, sub._target, html.MAX_HEIGHT, can.page.height()/2, html.MIN_WIDTH, target.offsetWidth, html.MAX_WIDTH, can.page.width()/2)
can.onlayout.figure({target: target}, can, sub._target, false, 200, function(height, width) {
can.page.style(can, sub._output, html.MAX_HEIGHT, height-sub._status.offsetHeight)
sub.Status(html.HEIGHT, parseInt(height-sub._status.offsetHeight)), sub.Status(html.WIDTH, parseInt(width))
})
}
meta.mode && can.onappend.style(sub, meta.mode), can.page.style(sub, sub._target, meta.style), can.base.isFunc(meta._init) && meta._init(sub, sub._target)
show(sub, cb)
}, can._root._target)
@ -827,7 +836,7 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
}); return height+margin
},
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, min) { if (!event || !event.target) { return {} } target = target||can._fields||can._target
figure: function(event, can, target, right, min, cb) { 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)
@ -849,6 +858,7 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
}
can.page.style(can, target, html.MAX_HEIGHT, top+height-layout.top)
can.page.style(can, target, html.MAX_WIDTH, left+width-layout.left)
cb && cb(top+height-layout.top, left+width-layout.left)
}); can.onmotion.move(can, target, layout), can.onmotion.slideGrow(can, target)
return layout
},

View File

@ -222,6 +222,7 @@ fieldset>div.header img { height:var(--action-height); float:right; }
fieldset>form.option>div.item:not(.icon) { margin-right:var(--button-margin); }
fieldset>div.action>div.item:not(:last-child) { margin-right:var(--button-margin); }
fieldset.input>legend { display:none; }
fieldset.input.icons table { width:100%; text-align:center; }
fieldset.input.key div.action { display:none; }
fieldset.input.key div.output table.content { font-family:var(--code-font-family); width:100%; }
fieldset.input.key div.output table.content td:first-child { cursor:pointer; }

View File

@ -9,11 +9,10 @@ Volcanos(chat.ONFIGURE, {icon: {
can.close(), can.base.isFunc(cb) && cb(can, value.name, target.value)
target._icon.className = value.name
}}])
}), can.onappend._status(can, [mdb.TOTAL]), can.Status(mdb.TOTAL, msg.Length())
can.onlayout.figure({target: target}, can, can._target, false, 200)
}), can.layout(msg)
},
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 }
onfocus: function(event, can, meta, target, cbs, mod) { meta._force && mod.onclick(event, can, meta, target, cbs) },
onclick: function(event, can, meta, target, cbs) { cbs(function(sub, cb) { if (sub.Status(mdb.TOTAL) > 0) { return }
target._icon = target._icon || can.page.insertBefore(can, [{type: "i"}], target)
meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value)
}) },
@ -23,11 +22,9 @@ Volcanos(chat.ONFIGURE, {icon: {
can.onmotion.hidden(can, target, target.title.indexOf(event.target.value) > -1)
})
can.page.Select(can, sub._output, html.TR, function(target) {
can.onmotion.hidden(can, target,
can.page.Select(can, target, html.TD, function(target) {
if (!can.page.ClassList.has(can, target, html.HIDE)) { return target }
}).length > 0
)
can.onmotion.hidden(can, target, can.page.Select(can, target, html.TD, function(target) {
if (!can.page.ClassList.has(can, target, html.HIDE)) { return target }
}).length > 0)
})
},
}})

View File

@ -2,18 +2,15 @@ Volcanos(chat.ONFIGURE, {icons: {
_load: function(event, can, cb, target, name, value) {
can.runAction(event, mdb.INPUTS, [mdb.ICONS], function(msg) { can._show(can, msg, cb, target, name) })
},
_show: function(can, msg, cb, target, name) { can.onmotion.clear(can)
var table = can.page.Append(can, can._output, [{type: html.TABLE}])._target, tr
_show: function(can, msg, cb, target, name) { var table = can.page.Appends(can, can._output, [{type: html.TABLE}])._target, tr
msg.Table(function(value, index) { if (index%5 == 0) { tr = can.page.Append(can, table, [{type: html.TR}])._target }
can.page.Append(can, tr, [{type: html.TD, title: value.icons, list: [{img: can.misc.Resource(can, value.icons), style: {width: 60, height: 60}}], onclick: function() {
can.close(), can.base.isFunc(cb) && cb(can, value.icons, target.value)
target._icon.src = can.misc.Resource(can, value.icons)
can.close(), can.base.isFunc(cb) && cb(can, value.icons, target.value), target._icon.src = can.misc.Resource(can, value.icons)
}}])
}), can.onappend._status(can, [mdb.TOTAL]), can.Status(mdb.TOTAL, msg.Length())
can.onlayout.figure({target: target}, can, can._target, false, 200)
}), can.layout(msg)
},
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 }
onfocus: function(event, can, meta, target, cbs, mod) { meta._force && mod.onclick(event, can, meta, target, cbs) },
onclick: function(event, can, meta, target, cbs) { cbs(function(sub, cb) { if (sub.Status(mdb.TOTAL) > 0) { return }
target._icon = target._icon || can.page.insertBefore(can, [{img: can.misc.Resource(can, "usr/icons/icebergs.png") }], target)
meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value)
}) },

View File

@ -16,8 +16,7 @@ Volcanos(chat.ONFIGURE, {key: {
can.close(); if (msg.cb && msg.cb[index]) { return msg.cb[index](value) }
var _cb = can.Conf("select"); if (_cb) { return _cb(target.value = value) } can.base.isFunc(cb) && cb(can, value, target.value)
}}
}), can.onappend._status(can, [mdb.TOTAL, mdb.INDEX]), can.Status(mdb.TOTAL, msg.Length()), can.Status("index", "-1")
can.onmotion.toggle(can, can._status, msg.Length() > 5), can.onmotion.toggle(can, can._target, can.Status("total") > 0)
}), can.layout(msg)
can.showIcons = function(value, icons, title) { can.ui = can.ui||{}
if (!can.ui.img) {
can.ui.img = can.page.insertBefore(can, [{type: html.IMG}], target)
@ -31,10 +30,6 @@ Volcanos(chat.ONFIGURE, {key: {
}
can.core.CallFunc([can.oninputs, "_show"], {event: event, can: can, msg: msg, target: target, name: name})
can.core.CallFunc([can.sup.sub, "oninputs", name], {event: event, can: can, msg: msg, target: target, name: name})
// can.core.CallFunc([can.sup.sub, "oninputs", "_show"], {event: event, can: can, msg: msg, target: target, name: name})
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, false, 200)
},
onfocus: function(event, can, meta, target, cbs, mod) { meta._force && mod.onclick(event, can, meta, target, cbs) },
onclick: function(event, can, meta, target, cbs) { (target.value == "" || meta._force) && cbs(function(sub, cb) { if (sub.Status(mdb.TOTAL) > 0) { return }
@ -42,7 +37,7 @@ Volcanos(chat.ONFIGURE, {key: {
meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value)
}) },
onblur: function(event, can, sub, cb) { sub && can.onmotion.delay(can, sub.close, 300) },
onkeydown: function(event, can, meta, cb, target, sub, last) { if (event.key == code.TAB) { return }
onkeyup: function(event, can, meta, cb, target, sub, last) { if (event.key == code.TAB) { return }
if (event.key == code.ENTER) { return meta._enter && (!can.page.tagis(event.target, html.TEXTAREA) || event.ctrlKey) && meta._enter(event, target.value)? sub && sub.close(): last(event) }
if (!sub) { return } can.onmotion.toggle(can, sub._target, true)
sub.hidden() || can.onkeymap.selectCtrlN(event, can, sub._output, "tr:not(.hidden)>td:first-child", function(td) { return meta.select && (sub.close(), meta.select(target.value = td.innerText)), cb(sub, td.innerText, target.value), td })