diff --git a/frame.js b/frame.js
index 55ec80f8..c3471af5 100644
--- a/frame.js
+++ b/frame.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONENGINE, {help: "搜索引擎", list: [], _init: function(can, meta, list, cb, target) {
+Volcanos(chat.ONENGINE, {help: "搜索引擎", _init: function(can, meta, list, cb, target) {
if (can.misc.Search(can, ice.MSG_SESSID)) { can.misc.CookieSessid(can, can.misc.Search(can, ice.MSG_SESSID))
return can.misc.Search(can, ice.MSG_SESSID, "")
}
@@ -105,7 +105,7 @@ Volcanos(chat.ONENGINE, {help: "搜索引擎", list: [], _init: function(can, me
return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length
}),
})
-Volcanos(chat.ONDAEMON, {help: "推荐引擎", list: [], _init: function(can, name) { if (can.user.isLocalFile) { return }
+Volcanos(chat.ONDAEMON, {help: "推荐引擎", _init: function(can, name) { if (can.user.isLocalFile) { return }
can.misc.WSS(can, {type: html.CHROME, name: can.misc.Search(can, cli.DAEMON)||name||"", text: can.user.title()}, function(event, msg, cmd, arg) { if (!msg) { return }
var sub = can.ondaemon._list[msg.Option(ice.MSG_TARGET)]
can.base.isFunc(can.ondaemon[cmd])? can.core.CallFunc(can.ondaemon[cmd], {
@@ -119,7 +119,7 @@ Volcanos(chat.ONDAEMON, {help: "推荐引擎", list: [], _init: function(can, na
pwd: function(can, msg, arg) { can.ondaemon._list[0] = arg[0] },
exit: function(can, msg, sub) { can.user.close() },
})
-Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) {
+Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list, cb, target, field) {
meta.name = (meta.name||"").split(ice.SP)[0].split(ice.PT).pop()
field = field||can.onappend.field(can, meta.type, meta, target).first
var legend = can.page.Select(can, field, html.LEGEND)[0]
@@ -427,7 +427,7 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: [], _init: function(can, me
})
},
})
-Volcanos(chat.ONLAYOUT, {help: "页面布局", list: [], _init: function(can, target) { target = target||can._root._target
+Volcanos(chat.ONLAYOUT, {help: "页面布局", _init: function(can, target) { target = target||can._root._target
if (can.page.Select(can, target, can.core.Keys(html.FIELDSET_MAIN, html.PAGE)).length > 0) {
can.page.Select(can, target, html.FIELDSET_LEFT, function(field) { can.page.styleHeight(can, field, "")
can.page.Select(can, target, [[html.FIELDSET_LEFT, html.DIV_OUTPUT]], function(output) {
@@ -452,7 +452,7 @@ Volcanos(chat.ONLAYOUT, {help: "页面布局", list: [], _init: function(can, ta
can.user.isMobile || (width -= field.offsetWidth)
can.page.styleHeight(can, field, height-offset)
can.page.Select(can, target, [[html.FIELDSET_LEFT, html.DIV_OUTPUT]], function(output) {
- can.page.styleHeight(can, output, height-offset-html.ACTION_HEIGHT-1)
+ can.page.styleHeight(can, output, height-offset-html.ACTION_HEIGHT-2)
})
})
@@ -473,7 +473,7 @@ Volcanos(chat.ONLAYOUT, {help: "页面布局", list: [], _init: function(can, ta
if (layout) { return can.page.style(can, target, layout), can.onmotion.move(can, target, layout), layout }
if (!event || !event.target || !event.clientX) { return {} }
- var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight-5; if (right) {
+ var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight-1; if (right) {
var left = event.clientX-event.offsetX+event.target.offsetWidth, top = event.clientY-event.offsetY
}
@@ -535,7 +535,7 @@ Volcanos(chat.ONLAYOUT, {help: "页面布局", list: [], _init: function(can, ta
] }]); return can.ui = ui
},
})
-Volcanos(chat.ONMOTION, {help: "动态特效", list: [], _init: function(can, target) {
+Volcanos(chat.ONMOTION, {help: "动态特效", _init: function(can, target) {
window.addEventListener(html.ORIENTATIONCHANGE, function(event) { can.onengine.signal(can, html.ORIENTATIONCHANGE) })
can.onmotion.float.auto(can, target)
},
@@ -775,7 +775,7 @@ Volcanos(chat.ONMOTION, {help: "动态特效", list: [], _init: function(can, ta
} can.onkeymap.prevent(event)
},
})
-Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
+Volcanos(chat.ONKEYMAP, {help: "键盘交互", _focus: [], _init: function(can, target) {
document.body.onclick = function(event) {
if (window.webview) {
if (event.target.tagName == "A") { can.user.open(event.target.href) }
diff --git a/lib/page.js b/lib/page.js
index 8ae49bd4..65d14784 100644
--- a/lib/page.js
+++ b/lib/page.js
@@ -56,6 +56,7 @@ Volcanos("page", {help: "用户界面", ClassList: {
"left": true, "right": true, "top": true, "bottom": true,
"height": true, "max-height": true, "min-height": true,
"width": true, "max-width": true, "min-width": true,
+ "padding": true,
}
if (size[k] && v && (can.base.isNumber(v) || v.indexOf && v.indexOf("px") == -1)) { v += "px" }
diff --git a/page/index.css b/page/index.css
index 4d5aa3f5..aca13ba4 100644
--- a/page/index.css
+++ b/page/index.css
@@ -1,10 +1,17 @@
body, fieldset, table, tr, th, td { padding:0; border:0; margin:0; }
body { background-color:black; color:cyan; font-size:14px; font-family:sans-serif; }
+body { overflow:-moz-scrollbars-none; -ms-overflow-style:none; }
+body::-webkit-scrollbar { width:0 !important; height:0 !important; }
+fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; }
+div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; }
+div.project::-webkit-scrollbar { width:0 !important; height:0 !important; }
+div.content::-webkit-scrollbar { width:0 !important; height:0 !important; }
+
legend { background-color:#339999; color:white; padding:0px 20px; margin-top:4px 5px; }
select { background-color:black; color:cyan; padding:0 10px; height:1.92rem; }
textarea { background-color:cyan; height:60px; width:400px; }
-input[type=button] { background-color:black; color:cyan; }
+input[type=button] { background-color:black; color:cyan; height:31px; }
input[name=cmd] { background-color:black; color:white; width:240px; }
input[type=text] { background-color:cyan; color:black; padding:0 4px; height:27px; width:90px; }
input[type=password] { background-color:cyan; color:black; padding:0 4px; height:27px; width:90px; }
diff --git a/page/index.js b/page/index.js
index c240092f..4b251f17 100644
--- a/page/index.js
+++ b/page/index.js
@@ -4,7 +4,7 @@ Volcanos({name: "chat", panels: [
{name: "Action", help: "工作台", pos: html.MAIN},
{name: "Footer", help: "状态条", pos: html.FOOT, state: ["ncmd"]},
{name: "Search", help: "搜索框", pos: html.AUTO},
- ], main: {name: "Header", list: []}, river: {
+ ], main: {name: "Header"}, river: {
product: {name: "产品群", storm: {
office: {name: "办公 office", list: [
{name: "feel", help: "影音媒体", index: "web.wiki.feel"},
diff --git a/panel/action.css b/panel/action.css
index e6ca26a4..d51f448e 100644
--- a/panel/action.css
+++ b/panel/action.css
@@ -1,5 +1,5 @@
fieldset.Action { background-color:rgba(114, 153, 162, 0.54); min-width:160px; }
-fieldset.Action>div.action { background-color:#159cc7b0; padding:0; margin:0; height:28px; display:none; position:absolute; }
+fieldset.Action>div.action { background-color:#159cc7b0; padding:0; margin:0; height:29px; display:none; position:absolute; }
fieldset.Action.tabs>div.action { display:block; }
fieldset.Action.tabs>div.output { margin-top:28px; }
diff --git a/panel/action.js b/panel/action.js
index 7b18c160..0626d332 100644
--- a/panel/action.js
+++ b/panel/action.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
var river = can.Conf(chat.RIVER), storm = can.Conf(chat.STORM)
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) {
item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y)
@@ -54,7 +54,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.page.styleHeight(can._target, height)
},
})
-Volcanos(chat.ONENGINE, {help: "解析引擎", list: [], _engine: function(event, page, msg, can, cmds, cb) {
+Volcanos(chat.ONENGINE, {help: "解析引擎", _engine: function(event, page, msg, can, cmds, cb) {
var storm = can.core.Value(can._root, can.core.Keys(chat.RIVER, cmds[0], chat.STORM, cmds[1]))
if (!storm || cmds.length != 2) { return false }
@@ -75,7 +75,7 @@ Volcanos(chat.ONENGINE, {help: "解析引擎", list: [], _engine: function(event
}
return true
}})
-Volcanos(chat.ONPLUGIN, {help: "注册插件", list: [],
+Volcanos(chat.ONPLUGIN, {help: "注册插件",
"parse": shy("解析", {
"show": function(can, msg, cmds) {
can.require(["/plugin/story/parse.js"], function() {
@@ -110,7 +110,7 @@ Volcanos(chat.ONPLUGIN, {help: "注册插件", list: [],
}),
"can.code.inner.plugin": shy("插件", {}, [{type: "button", name: "list", action: "auto"}, "back"], function(can, msg, cmds) {}),
})
-Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [], _focus: [], _init: function(can, target) {
+Volcanos(chat.ONKEYMAP, {help: "键盘交互", _focus: [], _init: function(can, target) {
can.onkeymap._build(can), can.onengine.listen(can, chat.ONKEYDOWN, function(msg, model) {
can._keylist = can.onkeymap._parse(msg._event, can, model, can._keylist||[], can._output)
})
@@ -144,7 +144,7 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [], _focus: [], _init: func
},
}, _engine: {},
})
-Volcanos(chat.ONACTION, {help: "交互操作", list: [], _init: function(can, cb, target) {
+Volcanos(chat.ONACTION, {help: "交互操作", _init: function(can, cb, target) {
can.Conf(html.MARGIN_Y, 4*html.PLUGIN_MARGIN+2*html.ACTION_HEIGHT+html.ACTION_MARGIN)
can.Conf(html.MARGIN_X, 4*html.PLUGIN_MARGIN)
@@ -232,7 +232,7 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [], _init: function(can, cb
})
},
})
-Volcanos(chat.ONLAYOUT, {help: "导出数据", list: [],
+Volcanos(chat.ONLAYOUT, {help: "导出数据",
auto: function(can) {
can.Conf(chat.LAYOUT, "")
},
@@ -258,7 +258,7 @@ Volcanos(chat.ONLAYOUT, {help: "导出数据", list: [],
return can.onmotion.toimage(event, can, can.Conf(chat.STORM), can._output), true
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
args: function(can, msg, cb, target) {
can.core.Next(can.page.Select(can, target, [[html.FIELDSET_PLUGIN, html.FORM_OPTION]]), function(item, next, index, array) {
item.dataset.args = JSON.stringify(can.page.Select(can, item, html.OPTION_ARGS, function(item) { return item.value||"" }))
diff --git a/panel/footer.js b/panel/footer.js
index 1eba48f7..85725bda 100644
--- a/panel/footer.js
+++ b/panel/footer.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
can.onimport._title(can, msg, target)
can.onimport._state(can, msg, target)
@@ -49,7 +49,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.onimport.count(can, "ncmd")
},
})
-Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb, target) {
+Volcanos(chat.ONACTION, {help: "交互数据", _init: function(can, cb, target) {
if (can.user.mod.isPod || can.user.isExtension) { can.onmotion.hidden(can, can._target) }
can.base.isFunc(cb) && cb()
},
@@ -59,7 +59,7 @@ Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb
onaction_cmd: function(can, msg) { can.onmotion.hidden(can) },
oncommandfocus: function(can) { can.page.Select(can, can._output, ["div.cmd", "input"], function(target) { can.onmotion.focus(can, target) }) },
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
height: function(can) { return can._target.offsetHeight },
float: function(can, msg, cb, name, bottom) { if (can[name]) { return can[name].close() }
var ui = can.onappend.field(can, "story toast float", {}, can._root._target)
diff --git a/panel/header.js b/panel/header.js
index e870735c..91cbf68e 100644
--- a/panel/header.js
+++ b/panel/header.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can)
can.onimport._title(can, msg, target)
can.onimport._state(can, msg, target)
@@ -102,7 +102,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
}) }]).first
},
})
-Volcanos(chat.ONPLUGIN, {help: "注册插件", list: [],
+Volcanos(chat.ONPLUGIN, {help: "注册插件",
"topic": shy("主题", {
"demo": function(can, msg, cmds) { can.onimport.topic(can, cmds[0]) },
}, ["topic:select=white,black", "run:button", "demo:button"], function(can, msg, cmds) {
@@ -123,7 +123,7 @@ Volcanos(chat.ONPLUGIN, {help: "注册插件", list: [],
console.log(cmds[0])
}),
})
-Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb, target) {
+Volcanos(chat.ONACTION, {help: "交互数据", _init: function(can, cb, target) {
can.base.isFunc(cb) && cb()
},
_menus: [["setting", chat.BLACK, chat.WHITE, chat.PRINT, code.WEBPACK, "toimage", ctx.CONFIG]],
@@ -240,7 +240,7 @@ Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb
clear: function(event, can) { can.onimport.background(event, can, ""), can.onimport.avatar(event, can, "") },
logout: function(event, can) { can.user.logout(can) },
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
height: function(can) { return can._target.offsetHeight },
topic: function(can) { return can._topic },
avatar: function(can) {
diff --git a/panel/river.js b/panel/river.js
index 8ecd3dca..3d4dbe59 100644
--- a/panel/river.js
+++ b/panel/river.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can), can.river_list = {}, can.storm_list = {}
can.onimport._main(can, msg), can.onimport._menu(can, msg)
@@ -6,9 +6,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
return can.onimport._river(can, item, function(target) {
(index == 0 || item.hash == can._main_river) && (select = target)
})
- })), select && can.onmotion.delay(can, function() {
- can.onlayout._init(can), select.click()
- })
+ })), select && select.click()
},
_main: function(can, msg) {
// if (can.user.isMobile) { can._main_river = "product", can._main_storm = "office" }
@@ -54,7 +52,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
var show = can.onmotion.toggle(can, can._target); can.onlayout._init(can); return show
},
})
-Volcanos(chat.ONENGINE, {help: "解析引擎", list: [], _engine: function(event, can, msg, panel, cmds, cb) {
+Volcanos(chat.ONENGINE, {help: "解析引擎", _engine: function(event, can, msg, panel, cmds, cb) {
var list = can._root.river
cmds.length == 0 && can.core.ItemSort(list, "order", function(key, value) {
if (can.core.Item(value.storm).length == 0) { return }
@@ -66,7 +64,7 @@ Volcanos(chat.ONENGINE, {help: "解析引擎", list: [], _engine: function(event
msg.Push({hash: key, name: can.user.language(can) == "en"? key: value.name}) // 应用列表
}), can.base.isFunc(cb) && cb(msg); return true
}})
-Volcanos(chat.ONACTION, {help: "控件交互", list: [], _init: function(can, cb, target) {
+Volcanos(chat.ONACTION, {help: "控件交互", _init: function(can, cb, target) {
can.onmotion.hidden(can, target), can.base.isFunc(cb) && cb()
},
onlogin: function(can, msg) {
@@ -111,9 +109,12 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [], _init: function(can, cb
can.onmotion.select(can, can._output, html.DIV_ITEM, can.river_list[river])
can.onmotion.select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], can.storm_list[can.core.Keys(river, storm)])
- can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {
- river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm),
- }))
+ can.onmotion.delay(can, function() {
+ can.onlayout._init(can)
+ can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {
+ river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm),
+ }))
+ })
},
create: function(event, can) {
@@ -232,7 +233,7 @@ Volcanos(chat.ONDETAIL, {help: "菜单交互",
})
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
width: function(can) { return can._target.offsetWidth },
storm: function(can, msg, word) {
var fields = (msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(",")
diff --git a/panel/search.js b/panel/search.js
index 088cb633..167ec862 100644
--- a/panel/search.js
+++ b/panel/search.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, list, cb, target) {
can.list = msg.Table(), can.onmotion.clear(can, can.ui.content)
var table = can.onappend.table(can, msg, function(value, key, index, line, array) { can.Status(mdb.TOTAL, index+1)
return {text: [key == mdb.TEXT && can.base.isFunc(line.text) && line.text.help || value, html.TD], onclick: function(event) {
@@ -126,7 +126,7 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [cli.CLOSE, cli.CLEAR, cli.
}, can.ui.profile)
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
select: function(can) {
return can.page.Select(can, can.ui.display, html.TR, function(tr) {
return can.page.Select(can, tr, html.TD, function(td) { return td.innerHTML })
diff --git a/plugin/input.js b/plugin/input.js
index 9a40730b..d8034f15 100644
--- a/plugin/input.js
+++ b/plugin/input.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONACTION, {help: "控件交互", list: [], _init: function(can, meta, cb, target) {
+Volcanos(chat.ONACTION, {help: "控件交互", _init: function(can, meta, cb, target) {
can.base.isFunc(cb) && cb(); switch (meta.type) {
case html.SELECT: meta.value && (target.value = meta.value); break
case html.BUTTON: meta.action == ice.AUTO && target.click(); break
diff --git a/plugin/input/date.js b/plugin/input/date.js
index 9b448506..9dcd0da2 100644
--- a/plugin/input/date.js
+++ b/plugin/input/date.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONFIGURE, {help: "控件详情", list: [], date: {onclick: function(event, can, meta, cb, target) { cb(function(can, cbs) {
+Volcanos(chat.ONFIGURE, {help: "控件详情", date: {onclick: function(event, can, meta, cb, target) { cb(function(can, cbs) {
function set(now) { target.value = can.user.time(can, now), can.close(), meta && meta.action == ice.AUTO && can.run({}) }
// 添加控件
diff --git a/plugin/input/key.js b/plugin/input/key.js
index 36fa1a4a..0a6b6327 100644
--- a/plugin/input/key.js
+++ b/plugin/input/key.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONFIGURE, {help: "控件详情", list: [], key: {
+Volcanos(chat.ONFIGURE, {help: "控件详情", key: {
_init: function(event, can, cbs, target, name, value) { var call = arguments.callee
can.runAction(event, mdb.INPUTS, [name, value||target.value], function(msg) {
can.onmotion.clear(can), can.onappend.table(can, msg, function(value) {
diff --git a/plugin/input/province.js b/plugin/input/province.js
index 3317d2a7..f0d65475 100644
--- a/plugin/input/province.js
+++ b/plugin/input/province.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONFIGURE, {help: "控件详情", list: [], province: {onclick: function(event, can, meta, cb, target) { cb(function(can, cbs) {
+Volcanos(chat.ONFIGURE, {help: "控件详情", province: {onclick: function(event, can, meta, cb, target) { cb(function(can, cbs) {
can.require(["/require/shylinux.com/x/echarts/echarts.js", "/require/shylinux.com/x/echarts/china.js"], function() {
var china_chart = echarts.init(can.page.Append(can, can._output, [{type: html.DIV, style: {width: 600, height: 400}}]).first)
china_chart.setOption({geo: {map: 'china'}}), china_chart.on(html.CLICK, function (params) {
diff --git a/plugin/local/chat/div.js b/plugin/local/chat/div.js
index 0634eb65..ce48e67a 100644
--- a/plugin/local/chat/div.js
+++ b/plugin/local/chat/div.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
var meta = {}; msg.Table(function(value) { meta[value.key] = value.value })
can._meta = can.base.Obj(meta.text, {meta: {name: meta.name||"hi"}, list: []})
can.base.isFunc(cb) && cb(msg)
@@ -76,7 +76,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
return field
},
}, ["/plugin/local/chat/div.css"])
-Volcanos(chat.ONACTION, {help: "操作数据", list: [],
+Volcanos(chat.ONACTION, {help: "操作数据",
"添加": function(event, can) {
can.user.input(event, can, [mdb.NAME, ctx.INDEX, ctx.ARGS, ctx.STYLE, html.HEIGHT, html.WIDTH], function(data) {
can.current._add({meta: data, list: []})
@@ -89,4 +89,3 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: [],
can.onmotion.share(event, can, [], [mdb.LINK, can.misc.MergeURL(can, {_path: "/chat/div/"+can.Option("hash")})])
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: []})
diff --git a/plugin/local/chat/media.js b/plugin/local/chat/media.js
index e883864a..a4a41b34 100644
--- a/plugin/local/chat/media.js
+++ b/plugin/local/chat/media.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.ui = can.onlayout.display(can, target)
can.ui.canvas = can.page.Append(can, can.ui.display, [{type: "canvas", width: 320, height: 240, style: {display: "none"}}]).first
@@ -14,7 +14,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.base.isFunc(cb) && cb(msg)
},
})
-Volcanos(chat.ONACTION, {help: "操作数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONACTION, {help: "操作数据", _init: function(can, msg, cb, target) {
},
open: function(event, can) {
@@ -31,5 +31,3 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: [], _init: function(can, ms
can.page.Append(can, can.ui.display, [{type: "img", src: can.ui.canvas.toDataURL('image/webp')}])
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
-})
diff --git a/plugin/local/chat/trans.js b/plugin/local/chat/trans.js
index b6cf9820..97020aa5 100644
--- a/plugin/local/chat/trans.js
+++ b/plugin/local/chat/trans.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can)
can.from = can.onimport._plugin(can, nfs.DIR, html.LEFT, "from", "to")
can.to = can.onimport._plugin(can, nfs.DIR, html.RIGHT, "to", "from")
@@ -21,7 +21,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
})
},
})
-Volcanos(chat.ONACTION, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONACTION, {help: "导入数据", _init: function(can, msg, cb, target) {
},
send: function(can, from, to, event, cmds, cb) { var _from = can[from], _to = can[to]
var path = can.request(event).Option(nfs.PATH)
diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css
index ec6f415e..fc90d7d3 100644
--- a/plugin/local/code/inner.css
+++ b/plugin/local/code/inner.css
@@ -21,7 +21,7 @@ fieldset.inner>div.output div.content td.text span.datatype { color:lightgreen;
fieldset.inner>div.output div.content td.text span.function { color:cyan; font-weight:bold; }
fieldset.inner>div.output div.content td.text span.constant { color:magenta; }
fieldset.inner>div.output div.content td.text span.string { color:magenta; }
-fieldset.inner>div.output div.content legend { margin-right:4px; height:30px; float:left; }
+fieldset.inner>div.output div.content legend { margin-right:4px; float:left; }
fieldset.inner>div.output div.profile>div.output>fieldset>legend { padding:0.1rem; float:left; }
fieldset.inner>div.output div.display { border:solid 1px greenyellow; }
diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js
index eb12e840..ff816d87 100644
--- a/plugin/local/code/inner.js
+++ b/plugin/local/code/inner.js
@@ -279,9 +279,10 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.page.styleWidth(can, can.ui.profile_output, can.profile_size[can.onexport.keys(can)]||(width-can.ui.project.offsetWidth)/2)
can.page.styleWidth(can, can.ui.content, width-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
can.page.styleWidth(can, can.ui.display, width-can.ui.project.offsetWidth)
+ can.page.style(can, can._output, html.MAX_WIDTH, "")
+ if (can.Conf("mode") == "simple") { return }
- if (!height && can.Conf("mode") == "simple") { return }
- var height = can.ConfHeight()-(can.user.isMobile && can._mode == "cmd"? (can.user.isLandscape()? 14: 54): 0)-(can.user.isWindows? 20: 0)
+ var height = can.ConfHeight()
if (!height || height > can._root._height) { height = can._root._height - 200 }
if (can.user.isMobile && can.user.isLandscape() && height < 200) { height = 400 }
diff --git a/plugin/local/code/snippet.js b/plugin/local/code/snippet.js
index 7481060d..50e19756 100644
--- a/plugin/local/code/snippet.js
+++ b/plugin/local/code/snippet.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can)
if (msg.Option("content")) {
can.onappend.plugin(can, {index: "web.code.vimer", style: "full"}, function(sub) {
@@ -19,7 +19,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.onappend.board(can, msg)
},
})
-Volcanos(chat.ONACTION, {help: "操作数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONACTION, {help: "操作数据", _init: function(can, msg, cb, target) {
},
run: function(event, can, msg) {
can.runAction(event, ice.RUN, ["go", "hi.go", can.sub.onexport.content(can.sub)], function(msg) {
@@ -27,5 +27,3 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: [], _init: function(can, ms
})
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) {
-}})
diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js
index 93ce118a..d11730fd 100644
--- a/plugin/local/code/vimer.js
+++ b/plugin/local/code/vimer.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.require(["inner.js"], function(can) { can.onimport.inner_init(can, msg, function() { can.undo = [], can.redo = []
can.onkeymap._build(can), can.onimport._input(can), can.onkeymap._plugin({}, can), can.base.isFunc(cb) && cb(msg)
@@ -26,7 +26,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
]); can.ui.current = ui.current, can.ui.complete = ui.complete
},
}, [""])
-Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [],
+Volcanos(chat.ONKEYMAP, {help: "键盘交互",
_model: function(can, value) { can.Status("模式", can.mode = value)
can.page.styleClass(can, can.ui.current, ["current", can.mode]), value
can.page.styleClass(can, can.ui.complete, ["complete", can.mode]), value
diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js
index 462c30ba..e0aed5f9 100644
--- a/plugin/local/team/plan.js
+++ b/plugin/local/team/plan.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can, target)
can.ui = can.onlayout.profile(can)
can.onimport[can.Option("scale")||"week"](can, msg)
diff --git a/plugin/local/wiki/data.js b/plugin/local/wiki/data.js
index 12b0a2bd..4682c2cd 100644
--- a/plugin/local/wiki/data.js
+++ b/plugin/local/wiki/data.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) {
can.ui = can.onlayout.display(can)
can.base.isFunc(cb) && cb(msg)
@@ -18,7 +18,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.onaction._compute(event, can)
},
})
-Volcanos(chat.ONFIGURE, {help: "组件菜单", list: [],
+Volcanos(chat.ONFIGURE, {help: "组件菜单",
"求和": function(event, can, res, td, index) {
res[index] = parseInt(td.innerText) + (res[index]||0);
},
@@ -131,7 +131,7 @@ Volcanos(chat.ONDETAIL, {help: "组件详情", list: ["复制", "删除"],
can.page.Remove(can, event.target.parentNode)
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
file: function(can) {
return can.page.Select(can, can.ui.content, "tr", function(tr) {
return can.page.Select(can, tr, "th,td", function(td) {return td.innerHTML}).join(",")
diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js
index cad68efb..6f8260ae 100644
--- a/plugin/local/wiki/draw.js
+++ b/plugin/local/wiki/draw.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
can.onimport._show(can, msg), can.onmotion.hidden(can, can._action)
can.keylist = [], can.onkeymap._build(can)
@@ -114,7 +114,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
return value && g.Value(value), g
},
}, [""])
-Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
+Volcanos(chat.ONFIGURE, {help: "图形绘制",
_get: function(can, item, name) {
return can.onfigure[name]||can.onfigure[item.getAttribute(mdb.NAME)]||can.onfigure[item.tagName]
},
@@ -215,7 +215,7 @@ Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
text: function(can, data, target) { can.onfigure.rect.text(can, data, target) },
},
}, [])
-Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [],
+Volcanos(chat.ONKEYMAP, {help: "键盘交互",
_mode: {
normal: {
gr: function(event, can) { can.Action("go", "run") },
diff --git a/plugin/local/wiki/draw/heart.js b/plugin/local/wiki/draw/heart.js
index a2ddaee5..9e16d115 100644
--- a/plugin/local/wiki/draw/heart.js
+++ b/plugin/local/wiki/draw/heart.js
@@ -1,4 +1,4 @@
-Volcanos("heart", {help: "心形", list: [],
+Volcanos("heart", {help: "心形",
data: {name: "path", size: {},
copy: ["d", "name", "meta", "tt", "xx", "yy"],
x: function(event, can, value, cmd, target) {
diff --git a/plugin/local/wiki/draw/path.js b/plugin/local/wiki/draw/path.js
index 7714d8db..0bd247d6 100644
--- a/plugin/local/wiki/draw/path.js
+++ b/plugin/local/wiki/draw/path.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
+Volcanos(chat.ONFIGURE, {help: "图形绘制",
path2v: { //
data: {name: "path", size: {}, copy: []},
draw: function(event, can, point) {
diff --git a/plugin/local/wiki/draw/walk_trash.js b/plugin/local/wiki/draw/walk_trash.js
index 24ae647b..23a58a85 100644
--- a/plugin/local/wiki/draw/walk_trash.js
+++ b/plugin/local/wiki/draw/walk_trash.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [],
+Volcanos(chat.ONIMPORT, {help: "导入数据",
init: function(can, msg, cb, output, action, option) {output.innerHTML = "";
if (!msg.result || msg.result.length == 0) {
var table = can.page.AppendTable(can, msg, output, msg.append);
diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js
index b9fa9e6e..34ec707e 100644
--- a/plugin/local/wiki/feel.js
+++ b/plugin/local/wiki/feel.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.path = can.request(), can.list = [], msg.Table(function(value) {
can.base.endWith(value.path, ice.PS)? can.path.Push(value): can.list.push(value)
}), can.base.isFunc(cb) && cb(msg)
@@ -29,7 +29,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.Status({begin: begin, limit: limit, total: can.list.length})
},
}, [""])
-Volcanos(chat.ONFIGURE, {help: "组件菜单", list: [],
+Volcanos(chat.ONFIGURE, {help: "组件菜单",
png: function(can, path, index) { return can.onfigure.image(can, path, index) },
jpg: function(can, path, index) { return can.onfigure.image(can, path, index) },
jpeg: function(can, path, index) { return can.onfigure.image(can, path, index) },
diff --git a/plugin/local/wiki/word.css b/plugin/local/wiki/word.css
index 5dc496e7..6248efa2 100644
--- a/plugin/local/wiki/word.css
+++ b/plugin/local/wiki/word.css
@@ -1,6 +1,6 @@
fieldset.word form.option input[name=path] { width:127px; }
-fieldset.word>div.navmenu { background-color:inherit; overflow:auto; margin-right:10px; min-width:120px; clear:both; float:left; }
+fieldset.word>div.navmenu { background-color:inherit; overflow:auto; min-width:120px; clear:both; float:left; }
fieldset.word>div.navmenu div.list { margin-left:20px; }
fieldset.word>div.navmenu div.item { font-size:1.6em; font-weight:bold; font-family:cursive; padding:4px 10px; }
fieldset.word>div.navmenu>div.item { font-size:2em; }
@@ -20,6 +20,16 @@ fieldset.word svg.story { font-family:fangsong; }
fieldset.word video.story { max-height:320px; }
fieldset.word fieldset.story { margin:10px; }
+fieldset.word div.story[data-type=spark][data-name=field]>div.menu {
+ float:left; overflow:auto;
+}
+fieldset.word div.story[data-type=spark][data-name=field]>div.list {
+ float:left; overflow:auto;
+}
+fieldset.word div.story[data-type=spark][data-name=field]>div.menu div.list div.item {
+ padding:0 20px;
+}
+
fieldset.word.float { padding:0; margin:0; width:-webkit-fill-available; position:fixed; left:0; top:0; z-index:10; }
fieldset.word.float>div.action { display:contents; }
fieldset.word.float>div.status { clear:none; }
diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js
index 19f0338e..a7d0f101 100644
--- a/plugin/local/wiki/word.js
+++ b/plugin/local/wiki/word.js
@@ -1,5 +1,4 @@
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
-
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
if (msg.Length() > 0) { return can.onappend.table(can, msg) }
@@ -7,23 +6,10 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.page.Select(can, target, wiki.ITEM, function(item) { var data = item.dataset||{}
can.page.style(can, item, can.base.Obj(data.style))
can.core.CallFunc([can.onimport, data.type], [can, data, item])
- // can.page.style(can, item, html.MAX_WIDTH, can.ConfWidth()-(can.user.isWindows? 40: 30))
})
},
- image: function(can, data, target) {
- can.page.style(can, target, html.MAX_HEIGHT, can.ConfHeight()/2, html.MAX_WIDTH, can.ConfWidth())
-
- // if (can.user.isMobile) {
- if (can.user.isLandscape()) {
- } else{
- can.page.style(can, target, html.MAX_HEIGHT, can.ConfHeight(), html.MAX_WIDTH, can.ConfWidth())
- }
- // return
- // }
- // can.page.style(can, target, html.MAX_HEIGHT, can.ConfHeight()/4)
- },
navmenu: function(can, data, target) { var nav = can.sup._navmenu
- nav = nav||can.page.Append(can, can._fields, [{view: wiki.NAVMENU}]).first
+ nav = nav||can.page.Append(can, can._fields, [wiki.NAVMENU]).first
can.onmotion.clear(can, nav), can._fields.insertBefore(nav, can._output)
can.onimport.list(can, can.base.Obj(data.data), function(event, item) {
@@ -37,10 +23,11 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.getActionSize(function(msg) {
can.page.style(can, nav, html.HEIGHT, can.ConfHeight()+(can._mode == "cmd"? msg.Option(html.MARGIN_Y): 0))
- can.ConfWidth(can.ConfWidth()-nav.offsetWidth-(can._mode == "cmd"? 10: 20)-10)
+ can.ConfWidth(can.ConfWidth()-nav.offsetWidth-20)
can.page.style(can, can._output,
- html.HEIGHT, can.sup._navmenu.offsetHeight, html.MAX_WIDTH, can.ConfWidth(),
- html.FLOAT, html.LEFT, html.CLEAR, html.NONE
+ html.HEIGHT, can.sup._navmenu.offsetHeight-20, html.MAX_WIDTH, can.ConfWidth(),
+ html.FLOAT, html.LEFT, html.CLEAR, html.NONE,
+ html.PADDING, 10,
)
})
},
@@ -57,7 +44,6 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
refer: function(can, data, target) {
can.page.Select(can, target, html.A, function(item) {
item.onclick = function(event) {
- can.request(event, kit.Dict(ice.MSG_HANDLE, ice.TRUE))
can.runAction(event, mdb.CREATE, [mdb.TYPE, "refer", mdb.NAME, item.dataset.name, mdb.TEXT, item.href])
}
})
@@ -67,8 +53,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
function deep(text) { var d = 0
for (var i = 0; i < text.length; i++) {
switch (text[i]) {
- case "\t": d += 4; break
- case " ": d++; break
+ case ice.TB: d += 4; break
+ case ice.SP: d++; break
default: return d
}
}
@@ -82,40 +68,40 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
var first; function show(item, index, target, output) {
var ui = can.page.Append(can, target, [{view: [html.ITEM, html.DIV, item.meta.name||item.meta.index], onclick: function(event) {
- if (ui.list.innerText) { return can.onmotion.toggle(can, ui.list) }
can.onmotion.select(can, view.menu, html.DIV_ITEM, event.target)
+ if (ui.list.innerText) { return can.onmotion.toggle(can, ui.list) }
if (can.onmotion.cache(can, function() { return index }, output)) { return }
+
can.core.List(item.list, function(item) {
can.onappend.plugin(can, item.meta, function(sub) {
- sub.run = function(event, cmds, cb, silent) {
- can.runActionCommand(event, item.meta.index, cmds, cb)
- }
- sub.ConfWidth(item.meta.width = can.ConfWidth()-165)
- sub.ConfHeight(item.meta.height = can.ConfHeight()-300)
- can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth()-2*html.PLUGIN_MARGIN)
- can.page.style(can, sub._status, html.MAX_WIDTH, sub.ConfWidth()-2*html.PLUGIN_MARGIN)
+ sub.run = function(event, cmds, cb) { can.runActionCommand(event, item.meta.index, cmds, cb) }
+ sub.ConfHeight(item.meta.height = can.ConfHeight()/2), sub.ConfWidth(item.meta.width = can.ConfWidth()-165)
+ can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth())
}, output)
})
- }}, {view: html.LIST}])
+ }}, html.LIST])
can.core.List(item.list, function(item) { item.list.length > 0 && show(item, can.core.Keys(index, item.meta.index), ui.list, output) })
ui.list.innerText == "" && (first = first||ui.item)
}
- var view = can.page.Appends(can, target, [{view: html.MENU}, {view: html.LIST}])
+ var view = can.page.Appends(can, target, [
+ {view: html.MENU, style: {height: can.ConfHeight()/2, width: 120}},
+ {view: html.LIST, style: {height: can.ConfHeight()/2, width: can.ConfWidth()-165}},
+ ])
return show(list[0], list[0]._index, view.menu, view.list), first.click()
}
+
if (data[mdb.NAME] == html.INNER) { return can.onmotion.copy(can, target) }
- can.page.Select(can, target, html.A, function(item) { can.onmotion.link(can, item) })
can.page.Select(can, target, html.SPAN, function(item) {
can.onmotion.copy(can, item, "", function(event) {
- can.runAction(event, mdb.CREATE, [mdb.TYPE, "spark", mdb.NAME, "shell", mdb.TEXT, item.innerText])
+ can.runAction(event, mdb.CREATE, [mdb.TYPE, "spark", mdb.NAME, "shell", mdb.TEXT, item.innerText], function() {})
})
})
},
chart: function(can, data, target) {
target.oncontextmenu = function(event) {
can.user.carteClient(event, can, kit.Dict(mdb.EXPORT, function(event, can, button) {
- can.onmotion.toimage(event, can, "hi.png", target)
+ can.onmotion.toimage(event, can, "hi", target)
}), [mdb.EXPORT])
}
},
@@ -123,26 +109,25 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.page.OrderTable(can, target), can.page.ClassList.add(can, target, chat.CONTENT)
can.page.Select(can, target, html.TD, function(item) { can.onmotion.copy(can, item) })
},
+ image: function(can, data, target) {
+ can.page.style(can, target, html.MAX_HEIGHT, can.ConfHeight()/(can.user.isMobile? 2: 1), html.MAX_WIDTH, can.ConfWidth())
+ },
field: function(can, data, target, width) { var item = can.base.Obj(data.meta)
can.onappend._init(can, item, [chat.PLUGIN_STATE_JS], function(sub) {
sub.run = function(event, cmds, cb, silent) {
can.runAction(event, chat.STORY, can.misc.concat(can, [data.type, data.name, data.text], cmds), cb)
}
- sub.ConfHeight(can.ConfHeight())
- sub.ConfWidth(item.width = (width||can.ConfWidth())-(can.user.isWindows? 40: 20))
+
+ sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(item.width = (width||can.ConfWidth())-(can.user.isWindows? 40: 20))
can.page.style(can, sub._output, html.MAX_WIDTH, sub.ConfWidth())
- can.core.Value(item, "auto.cmd") && can.core.Timer300ms(function() {
- var msg = sub.request({}, can.core.Value(item, "opts")); msg.Option(ice.MSG_HANDLE, ice.TRUE)
- sub.Update(msg, [ctx.ACTION, can.core.Value(item, "auto.cmd")])
+ can.core.Value(item, "auto.cmd") && can.onmotion.delay(function() {
+ sub.runAction(sub.request({}, can.core.Value(item, "opts")), can.core.Value(item, "auto.cmd"))
})
}, can._output, target)
},
- iframe: function(can, data, target) { var meta = can.base.Obj(data.meta)
- can.page.Modify(can, target, {width: can.ConfWidth()-200})
- },
}, [""])
-Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [],
+Volcanos(chat.ONKEYMAP, {help: "键盘交互",
_mode: {
normal: {
"n": function(event, can) { can.ondetail.next(can.sub) },
@@ -157,23 +142,16 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [],
},
}, _engine: {},
})
-Volcanos(chat.ONACTION, {help: "控件交互", list: [],
+Volcanos(chat.ONACTION, {help: "控件交互",
_trans: {view: "视图"},
play: function(event, can) { var list = [], current = []
can.page.Select(can, can._output, wiki.ITEM, function(item) {
- switch (item.tagName) {
- case "H1":
- case "H2":
- case "H3":
- list.push(current = [])
- break
- }
- current.push(item)
+ can.page.tagis(["h1", "h2", "h3"], item) && list.push(current = []), current.push(item)
})
can.onappend._init(can, {type: "story word float"}, [], function(sub) {
sub.run = can.run, sub.sup = can, can.sub = sub, can.onappend._action(sub, [
- ["布局", "开讲", "快闪", "网格"], "大纲", "首页", "上一页",
+ ["布局", "开讲", "网格", "快闪"], "大纲", "首页", "上一页",
["菜单"].concat(can.core.List(list, function(page) { return page[0].innerHTML })),
"下一页", "隐藏", "结束",
], sub._action, can.ondetail)
@@ -216,8 +194,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
}
},
})
-Volcanos(chat.ONDETAIL, {help: "交互操作", list: ["删除"], _init: function(can, msg, list, cb, target) {
- },
+Volcanos(chat.ONDETAIL, {help: "交互操作", list: ["删除"],
show: function(sub, which) { sub.page.styleClass(sub, sub.ui.content, chat.CONTENT)
sub.page.Select(sub, sub.ui.content, wiki.DIV_PAGE, function(page, index) {
if (index == which || page == which) {
@@ -248,8 +225,8 @@ Volcanos(chat.ONDETAIL, {help: "交互操作", list: ["删除"], _init: function
grid: function(sub) { sub.page.styleClass(sub, sub.ui.content, "content grid") },
"开讲": function(event, can) { can.sup.ondetail.show(can, 0) },
- "快闪": function(event, can) { can.sup.ondetail.flash(can) },
"网格": function(event, can) { can.sup.ondetail.grid(can) },
+ "快闪": function(event, can) { can.sup.ondetail.flash(can) },
"大纲": function(event, can) { can.onmotion.toggle(can, can.ui.project) },
"首页": function(event, can) { can.sup.ondetail.show(can, 0) },
diff --git a/plugin/state.js b/plugin/state.js
index 1c78c75d..77c1e31f 100644
--- a/plugin/state.js
+++ b/plugin/state.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, meta, cb, target) {},
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, conf, cb, target) {},
_process: function(can, msg) {
msg.OptionStatus() && can.onmotion.clear(can, can._status) && can.onappend._status(can, can.base.Obj(msg.OptionStatus()))
return can.core.CallFunc([can.onimport, msg.OptionProcess()], {can: can, msg: msg})
@@ -88,7 +88,7 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
"刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [
"其它", "刷新页面", "保存参数", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具","摄像头",
],
- ], _init: function(can, msg, list, cb, target) {},
+ ],
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) },
"刷新数据": function(event, can) { can.Update({}, can.Input([], true)) },
@@ -198,7 +198,7 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(list) { add(list[0]) })
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
+Volcanos(chat.ONEXPORT, {help: "导出数据",
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
var res = [msg.append && msg.append.join(ice.FS)]; msg.Table(function(line, index, array) {
res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS))
diff --git a/plugin/story/form.js b/plugin/story/form.js
index dbc3f1c5..9458357a 100644
--- a/plugin/story/form.js
+++ b/plugin/story/form.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.page.ClassList.add(can, target, "form")
msg.Push("type", "text")
msg.Push("name", "name")
diff --git a/plugin/story/json.js b/plugin/story/json.js
index 0a6e0df7..cd269cf5 100644
--- a/plugin/story/json.js
+++ b/plugin/story/json.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.page.ClassList.add(can, target, "json")
can.onmotion.clear(can, target), can.base.isFunc(cb) && cb(msg)
can.onappend.table(can, msg), can.onimport.show(can, can.base.Obj(msg.Result(), {}), target)
@@ -57,4 +57,3 @@ Volcanos(chat.ONACTION, {help: "组件菜单", list: ["展开", "折叠", "复
can.user.copy(event, can, can._msg.Result())
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: []})
diff --git a/plugin/story/media.js b/plugin/story/media.js
index ea1b3015..76912c06 100644
--- a/plugin/story/media.js
+++ b/plugin/story/media.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.base.isFunc(cb) && cb(msg)
}})
Volcanos(chat.ONACTION, {help: "操作数据", list: ["打开屏幕", "打开摄像", "打开录音"],
@@ -46,4 +46,3 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: ["打开屏幕", "打开摄
})
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: []})
diff --git a/plugin/story/parse.js b/plugin/story/parse.js
index 0e2504a5..5feffef2 100644
--- a/plugin/story/parse.js
+++ b/plugin/story/parse.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: [],
+Volcanos(chat.ONAPPEND, {help: "渲染引擎",
parse: function(can, list, target, keys, data, type) { target = target||can._output, data = data||{}
if (!list) { return } else if (can.base.isArray(list)) {
return can.core.List(list, function(meta, index) {
diff --git a/plugin/story/pie.js b/plugin/story/pie.js
index 27c45021..cc6b8e61 100644
--- a/plugin/story/pie.js
+++ b/plugin/story/pie.js
@@ -34,7 +34,11 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
var begin = 0; msg[cli.COLOR] = [], msg["weight"] = [], msg.Table(function(value, index) { var span = can.onimport._parseInt(can, value[field])/total*360
var p = index==which? pos(x, y, margin, begin+span/2): [x, y], c = color[index%color.length]
- pie(p[0], p[1], r, begin, span, c, function(event) { can.onimport._draw(can, msg, field, color, x, y, r, margin, index) }), begin += span
+ if (msg.Length() == 1) {
+ can.onimport.draw({}, can, {shape: svg.CIRCLE, point: [{x: x, y: y}, {x: x, y: y+r}], style: {fill: color[0]}})
+ } else {
+ pie(p[0], p[1], r, begin, span, c, function(event) { can.onimport._draw(can, msg, field, color, x, y, r, margin, index) }), begin += span
+ }
msg.Push(cli.COLOR, ' ')
msg.Push("weight", parseInt(span*100/360)+"%")
if (index == which) { can.Status(value), can.Status("weight", parseInt(span*100/360)+"%") }
@@ -48,4 +52,4 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
return parseInt(value)
}
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: [], _show: function(can) {}})
+Volcanos(chat.ONEXPORT, {help: "导出数据", _show: function(can) {}})
diff --git a/plugin/story/spide.js b/plugin/story/spide.js
index 98ad502e..367298cc 100644
--- a/plugin/story/spide.js
+++ b/plugin/story/spide.js
@@ -121,7 +121,7 @@ Volcanos(chat.ONACTION, {help: "用户操作", list: [
})
},
})
-Volcanos(chat.ONDETAIL, {help: "用户交互", list: [],
+Volcanos(chat.ONDETAIL, {help: "用户交互",
onmouseenter: function(event, can, tree) { var y = tree.y+tree.height*can.margin/2
can.page.Remove(can, can.pos), can.pos = can.onimport.draw({}, can, {shape: svg.RECT, point: [
{x: tree.x-can.margin/4, y: y-can.margin/2}, {x: tree.x+tree.width+can.margin/8, y: y+can.margin/2},
@@ -156,7 +156,7 @@ Volcanos(chat.ONDETAIL, {help: "用户交互", list: [],
sub.run = function(event, cmds, cb) { can.runAction(can.request(event), prefix, cmds, cb) }
sub._mode = "float", can.getActionSize(function(left, top, width, height) { left = left||0
var top = can._mode == undefined? 120: 0; if (can.user.isMobile) { top = can.user.isLandscape()? 0: 48 }
- sub.ConfHeight(height-top-html.ACTION_HEIGHT-(can.user.isMobile&&!can.user.isLandscape()? 2*html.ACTION_HEIGHT: 0)), sub.ConfWidth(width)
+ sub.ConfHeight(height-top-2*html.ACTION_HEIGHT-(can.user.isMobile&&!can.user.isLandscape()? 2*html.ACTION_HEIGHT: 0)), sub.ConfWidth(width)
can.onmotion.move(can, sub._target, {position: html.FIXED, left: left, top: top})
})
})
diff --git a/plugin/story/trend.js b/plugin/story/trend.js
index 6e1134db..6d754448 100644
--- a/plugin/story/trend.js
+++ b/plugin/story/trend.js
@@ -110,12 +110,12 @@ Volcanos(chat.ONACTION, {help: "组件菜单", list: [
space: function(event, can) { can.onimport.layout(can) },
speed: function(event, can) { can.onimport.layout(can) },
})
-Volcanos(chat.ONDETAIL, {help: "用户交互", list: [],
+Volcanos(chat.ONDETAIL, {help: "用户交互",
onmouseenter: function(event, can, line) { can.Status(line) },
})
Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["from", "commit", "total", "max", "date", "text", "add", "del"],
height: function(can) { var height = can.Action(html.HEIGHT)
if (height == ice.AUTO) { height = can.ConfHeight() }
- return parseInt(height)
+ return parseInt(height||can._root._height/2)
},
})
diff --git a/plugin/story/video.js b/plugin/story/video.js
index 352a2000..e8c41d31 100644
--- a/plugin/story/video.js
+++ b/plugin/story/video.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onimport.select(can, msg)
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
can.onappend.table(can, msg), can.onappend.board(can, msg)
@@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
]))
},
})
-Volcanos(chat.ONACTION, {help: "控件交互", list: [],
+Volcanos(chat.ONACTION, {help: "控件交互",
next: function(event, can) { var msg = can._msg
msg.Table(function(line, index) {
if (line.link == location.href) {
@@ -44,4 +44,3 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
})
},
})
-Volcanos(chat.ONEXPORT, {help: "导出数据", list: []})
diff --git a/plugin/table.js b/plugin/table.js
index 7adb173a..340b3ccf 100644
--- a/plugin/table.js
+++ b/plugin/table.js
@@ -1,4 +1,4 @@
-Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
+Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.user.isMobile && !can.user.isLandscape() && can.onmotion.hidden(can, can._action)
var cbs = can.onimport[can._args[ctx.STYLE]]; if (can.base.isFunc(cbs)) {
can.page.ClassList.add(can, target, can._args[ctx.STYLE])
diff --git a/proto.js b/proto.js
index 6ba2ff62..6159da87 100644
--- a/proto.js
+++ b/proto.js
@@ -233,7 +233,7 @@ var html = {
OPACITY: "opacity",
STROKE_WIDTH: "stroke-width", STROKE: "stroke", FILL: "fill", FONT_SIZE: "font-size", FONT_FAMILY: "font-family", MONOSPACE: "monospace",
SCROLL: "scroll", HEIGHT: "height", WIDTH: "width", LEFT: "left", TOP: "top", RIGHT: "right", BOTTOM: "bottom",
- SPEED: "speed",
+ SPEED: "speed", PADDING: "padding",
MIN_HEIGHT: "min-height", MAX_HEIGHT: "max-height", MAX_WIDTH: "max-width", MIN_WIDTH: "min-width", MARGIN_TOP: "margin-top", MARGIN_X: "margin-x", MARGIN_Y: "margin-y",
PLUGIN_MARGIN: 10, ACTION_HEIGHT: 29, ACTION_MARGIN: 200,
TEXT_ANCHOR: "text-anchor",
diff --git a/publish/client/nodejs/proto.js b/publish/client/nodejs/proto.js
index c0591c9a..67988f2c 100644
--- a/publish/client/nodejs/proto.js
+++ b/publish/client/nodejs/proto.js
@@ -1,4 +1,4 @@
-Volcanos("onappend", {help: "渲染引擎", list: [],
+Volcanos("onappend", {help: "渲染引擎",
table: function(can, msg) {
var max = {}; msg.Table(function(value, index, array) {
for (var k in value) { if (value[k].length > (max[k]||0)) {