mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add carte
This commit is contained in:
parent
f6119d4b0b
commit
be7cb7ce4f
119
frame.js
119
frame.js
@ -1,54 +1,29 @@
|
|||||||
Volcanos("onimport", {
|
Volcanos("onaction", { _init: function(can, meta, list, cb, target) {
|
||||||
_init: function(can, meta, list, cb, target) {
|
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
can.core.Next(meta.panes, function(item, next) {
|
can.core.Next(meta.panes, function(item, next) {
|
||||||
can.onappend._init(can, item, Config.libs.concat(item.list), function(pane) {
|
can.onappend._init(can, item, Config.libs.concat(item.list), function(pane) {
|
||||||
// 插件回调
|
pane.Conf(item), pane.run = function(event, cmds, cb) {
|
||||||
pane.Conf(item), pane.run = function(event, cmds, cb) { var msg = pane.request(event);
|
(can.onaction[cmds[0]]||can.onaction[meta.main.engine])(event, can, pane.request(event), pane, cmds, cb);
|
||||||
if (can.onaction[cmds[0]]) {
|
|
||||||
can.onaction[cmds[0]](event, can, msg, pane, cmds, cb);
|
|
||||||
} else {
|
|
||||||
can.onaction[meta.main.engine](event, can, msg, pane, cmds, cb);
|
|
||||||
}
|
|
||||||
}, can[item.name] = pane, next();
|
}, can[item.name] = pane, next();
|
||||||
}, can._target);
|
}, can._target);
|
||||||
}, function() { can.onlayout._init(can, meta, list, function() {
|
}, function() { can.onlayout._init(can, meta, list, function() {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
var pane = can[meta.main.name], msg = can.request(can._event);
|
var pane = can[meta.main.name], msg = can.request(can._event);
|
||||||
pane.onaction._init(pane, msg, msg.option||[], cb, target);
|
pane.onaction._init(pane, msg, msg.option||[], cb, target);
|
||||||
}, target) });
|
}, target) });
|
||||||
},
|
},
|
||||||
})
|
|
||||||
Volcanos("onaction", {
|
|
||||||
search: function(event, can, msg, pane, cmds, cb) { var chain = cmds[1]
|
search: function(event, can, msg, pane, cmds, cb) { var chain = cmds[1]
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
var sub, mod = can, key, fun = can; can.core.List(chain.split("."), function(value, index, array) {
|
var sub, mod = can, key, fun = can; can.core.List(chain.split("."), function(value, index, array) {
|
||||||
fun && (sub = mod, mod = fun, key = value, fun = mod[value])
|
fun && (sub = mod, mod = fun, key = value, fun = mod[value])
|
||||||
}); if (!sub || !mod || !fun) { console.error("not found", chain); return }
|
}); if (!sub || !mod || !fun) { console.error("not found", chain); return }
|
||||||
|
|
||||||
Volcanos.meta.debug[can._root] && console.log(can._root, can._name, "engine", chain, "match", sub._name+"."+mod._name)
|
typeof fun == "function" && fun(sub, msg, cmds.slice(2), cb, sub._target)
|
||||||
typeof fun == "function" && fun(sub, msg, cmds.slice(2), function(value) {
|
|
||||||
typeof cb == "function" && cb(value)
|
|
||||||
}, sub._target)
|
|
||||||
},
|
},
|
||||||
remote: function(event, can, msg, pane, cmds, cb) {
|
remote: function(event, can, msg, pane, cmds, cb) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
if (can.onengine && can.onengine.remote(event, can, msg, pane, cmds, cb)) { return }
|
||||||
if (can.onengine && can.onengine.remote(event, can, msg, pane, cmds, cb)) {
|
if (location.protocol == "file:") { typeof cb == "function" && cb(msg); return }
|
||||||
return
|
can.misc.Run(event, can, {names: pane._name}, cmds, cb)
|
||||||
}
|
|
||||||
if (location.protocol == "file:") {
|
|
||||||
typeof cb == "function" && cb(msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
Volcanos.meta.debug[can._root] && console.log(can._root, pane._name, "remote", msg._name, "detail", cmds);
|
|
||||||
can.misc.Run(event, can, {names: pane._name}, cmds, function(msg) {
|
|
||||||
typeof cb == "function" && cb(msg);
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onappend", {
|
Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||||
_init: function(can, meta, list, cb, target, field) {
|
|
||||||
field = field || can.onappend.field(can, target, meta.type||"plugin", meta);
|
field = field || can.onappend.field(can, target, meta.type||"plugin", meta);
|
||||||
var option = can.page.Select(can, field, "form.option")[0];
|
var option = can.page.Select(can, field, "form.option")[0];
|
||||||
var action = can.page.Select(can, field, "div.action")[0];
|
var action = can.page.Select(can, field, "div.action")[0];
|
||||||
@ -56,12 +31,13 @@ Volcanos("onappend", {
|
|||||||
var feature = can.base.Obj(meta.feature)
|
var feature = can.base.Obj(meta.feature)
|
||||||
|
|
||||||
// 添加插件
|
// 添加插件
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
var sub = Volcanos(meta.name, { _help: meta.name, _target: field,
|
var sub = Volcanos(meta.name, { _help: meta.name, _target: field,
|
||||||
_option: option, _action: action, _output: output, _history: [],
|
_option: option, _action: action, _output: output, _history: [],
|
||||||
|
_follow: can._follow+"."+meta.name,
|
||||||
}, [Config.volcano].concat(list), function(sub) {
|
}, [Config.volcano].concat(list), function(sub) {
|
||||||
sub.onimport._init(sub, sub.Conf(meta), list, function() {
|
meta.feature = can.base.Obj(meta.feature, {})
|
||||||
}, field);
|
meta.detail = meta.feature["detail"] || {}
|
||||||
|
sub.onimport._init(sub, sub.Conf(meta), list, function() {}, field);
|
||||||
|
|
||||||
// 添加控件
|
// 添加控件
|
||||||
var args = can.base.Obj(meta.args, [])
|
var args = can.base.Obj(meta.args, [])
|
||||||
@ -69,12 +45,12 @@ Volcanos("onappend", {
|
|||||||
sub[item.name] = Volcanos(item.name, { _help: item.name,
|
sub[item.name] = Volcanos(item.name, { _help: item.name,
|
||||||
_target: can.onappend.input(sub, option, item.type, item, args[index]),
|
_target: can.onappend.input(sub, option, item.type, item, args[index]),
|
||||||
_option: option, _action: action, _output: output,
|
_option: option, _action: action, _output: output,
|
||||||
|
_follow: can._follow+"."+meta.name+"."+item.name,
|
||||||
}, Config.libs.concat([item.display||"plugin/input.js"]), function(input) {
|
}, Config.libs.concat([item.display||"plugin/input.js"]), function(input) {
|
||||||
input.onimport._init(input, input.Conf(item), item.list||[], function() {
|
input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target);
|
||||||
}, input._target);
|
|
||||||
|
|
||||||
// 控件回调
|
|
||||||
input.run = function(event, cmds, cb, silent) {
|
input.run = function(event, cmds, cb, silent) {
|
||||||
|
// 控件回调
|
||||||
switch (item.name) {
|
switch (item.name) {
|
||||||
case "返回":
|
case "返回":
|
||||||
// 历史命令
|
// 历史命令
|
||||||
@ -99,12 +75,12 @@ Volcanos("onappend", {
|
|||||||
var display = "plugin/"+(msg.Option("_display")||feature.display||"table.js")
|
var display = "plugin/"+(msg.Option("_display")||feature.display||"table.js")
|
||||||
sub[display] = Volcanos(display, { _target: output,
|
sub[display] = Volcanos(display, { _target: output,
|
||||||
_option: option, _action: action, _output: output,
|
_option: option, _action: action, _output: output,
|
||||||
}, Config.libs.concat(["frame.js", display]), function(table) {
|
_follow: can._follow+"."+meta.name+"."+display,
|
||||||
table.onimport._init(table, msg, msg.append||[], function() {
|
}, Config.libs.concat(["frame.js", display]), function(table) { table.Conf(sub.Conf())
|
||||||
}, output)
|
table.onimport._init(table, msg, msg.append||[], function() {}, output)
|
||||||
|
|
||||||
// 组件回调
|
|
||||||
table.run = function(event, cmds, cb, silent) {
|
table.run = function(event, cmds, cb, silent) {
|
||||||
|
// 组件回调
|
||||||
cmds[0] == "field"? sub.run(event, cmds.slice(1), cb, silent):
|
cmds[0] == "field"? sub.run(event, cmds.slice(1), cb, silent):
|
||||||
input.run(event, cmds, cb, silent)
|
input.run(event, cmds, cb, silent)
|
||||||
}
|
}
|
||||||
@ -127,11 +103,9 @@ Volcanos("onappend", {
|
|||||||
})
|
})
|
||||||
}); cb(sub);
|
}); cb(sub);
|
||||||
},
|
},
|
||||||
|
|
||||||
item: function(can, target, type, item, cb, cbs) {
|
item: function(can, target, type, item, cb, cbs) {
|
||||||
var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name],
|
var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name],
|
||||||
oncontextmenu: function(event) { cbs(event, ui.item) },
|
oncontextmenu: function(event) { cbs(event, ui.item) }, click: function(event) {
|
||||||
click: function(event) {
|
|
||||||
can.page.Select(can, target, "div."+type, function(item) {
|
can.page.Select(can, target, "div."+type, function(item) {
|
||||||
can.page.ClassList.del(can, item, "select");
|
can.page.ClassList.del(can, item, "select");
|
||||||
}); can.page.ClassList.add(can, ui.item, "select");
|
}); can.page.ClassList.add(can, ui.item, "select");
|
||||||
@ -158,7 +132,6 @@ Volcanos("onappend", {
|
|||||||
var input = {type: "input", name: item.name, data: item, dataset: {}};
|
var input = {type: "input", name: item.name, data: item, dataset: {}};
|
||||||
switch (item.type = item.type || item._type || item._input || "text") {
|
switch (item.type = item.type || item._type || item._input || "text") {
|
||||||
case "upfile": item.type = "file"; break
|
case "upfile": item.type = "file"; break
|
||||||
// case "button": item.value = item.value || item.name || "查看"; break
|
|
||||||
case "button": item.value = item.name || item.value || "查看"; break
|
case "button": item.value = item.name || item.value || "查看"; break
|
||||||
case "select":
|
case "select":
|
||||||
item.values = typeof item.values == "string"? item.values.split(" "): item.values;
|
item.values = typeof item.values == "string"? item.values.split(" "): item.values;
|
||||||
@ -197,18 +170,64 @@ Volcanos("onappend", {
|
|||||||
item.type == "select" && (target.value = item.value || item.values[item.index||0]);
|
item.type == "select" && (target.value = item.value || item.values[item.index||0]);
|
||||||
return target;
|
return target;
|
||||||
},
|
},
|
||||||
table: function(can, target, type, msg, cb) {
|
table: function(can, target, type, msg) {
|
||||||
var table = can.page.AppendTable(can, can._output, msg, msg.append, function(event, value, key, index, tr, td) {
|
var table = can.page.AppendTable(can, can._output, msg, msg.append, function(event, value, key, index, tr, td) {
|
||||||
can.page.Select(can, can._option, "input.args", function(input) { if (input.name == key) { var data = input.dataset || {}
|
can.page.Select(can, can._option, "input.args", function(input) { if (input.name == key) { var data = input.dataset || {}
|
||||||
input.value = value; if (data.action == "auto") {
|
input.value = value; if (data.action == "auto") {
|
||||||
can.run(event, [], function(msg) {})
|
can.run(event, [], function(msg) {})
|
||||||
}
|
}
|
||||||
} })
|
} })
|
||||||
|
}, function(event, value, key, index, tr, td) {
|
||||||
|
can.onappend.carte(can, can.ondetail||{}, msg["_detail"] || can.Conf("detail") || can.ondetail.list, function(event, item, meta) {
|
||||||
|
var res = can.request(event); can.core.List(msg.append, function(key) {
|
||||||
|
res.Option(key, msg[key][index])
|
||||||
|
}); can.run(event, ["field", "action", item, key, value.trim()], function(res) {}, true)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
board: function(can, target, type, msg) {
|
||||||
|
msg.result && can.page.AppendBoard(can, can._output, can.page.Display(msg.Result()))
|
||||||
|
},
|
||||||
|
carte: function(can, meta, list, cb) {
|
||||||
|
can._carte = can._carte || can.page.Append(can, can._target, [{view: "carte", onmouseleave: function(event) {
|
||||||
|
can.page.Modify(can, can._carte, {style: {display: "none"}})
|
||||||
|
}}]).last
|
||||||
|
|
||||||
|
can.page.Appends(can, can._carte, can.core.List(list, function(item) {
|
||||||
|
return {view: ["item"], list: [typeof item == "string"? {text: [item], click: function(event) {
|
||||||
|
typeof cb == "function" && cb(event, item, meta)
|
||||||
|
}}: item.args? {text: [item.name], click: function(event) {
|
||||||
|
can.user.input(event, can, item.args, function(event, cmd, form, list) {
|
||||||
|
var msg = can.Event(event);
|
||||||
|
can.core.Item(form, function(key, value) {msg.Option(key, value)})
|
||||||
|
cmd == "提交" && typeof cb == "function" && cb(event, item.name, meta)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}}: {select: [item, function(event) {
|
||||||
|
typeof cb == "function" && cb(event, event.target.value, meta)
|
||||||
|
}], value: src[item[0]]||""}]}
|
||||||
|
}))
|
||||||
|
|
||||||
|
var pos = {position: "absolute", display: "block", left: event.x, top: event.y}
|
||||||
|
if (document.body.clientWidth - event.x < 60) {
|
||||||
|
var pos = {display: "block", right: event.x, top: event.y}
|
||||||
|
}
|
||||||
|
pos.left += "px"; pos.top += "px";
|
||||||
|
can.page.Modify(can, can._carte, {style: pos})
|
||||||
|
|
||||||
|
event.stopPropagation()
|
||||||
|
event.preventDefault()
|
||||||
|
},
|
||||||
|
share: function(can, meta) {
|
||||||
|
return
|
||||||
|
can._share = can._share || can.page.Append(can, can._target, [{view: "share", onmouseleave: function(event) {
|
||||||
|
can.page.Modify(can, can._carte, {style: {display: "none"}})
|
||||||
|
}}]).last
|
||||||
|
|
||||||
|
can.page.Appends(can, can._share, [{view: ["title", "div", ]},])
|
||||||
}
|
}
|
||||||
}, [], function(can) {})
|
}, [], function(can) {})
|
||||||
Volcanos("onlayout", {
|
Volcanos("onlayout", { _init: function(can, meta, list, cb, target) {
|
||||||
_init: function(can, meta, list, cb, target) {
|
|
||||||
var width = can._width, height = can._height;
|
var width = can._width, height = can._height;
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
if (Volcanos.meta.follow[can._root]) { debugger }
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=0.7,user-scalable=no">
|
<meta name="viewport" content="width=device-width,initial-scale=0.7,user-scalable=no">
|
||||||
<title>volcanos</title>
|
<title>volcanos</title>
|
||||||
|
|
||||||
<link rel="shortcut icon" type="image/ico" href="favicon.ico">
|
<link rel="shortcut icon" type="image/ico" href="favicon.ico">
|
||||||
<link rel="stylesheet" type="text/css" href="style.css">
|
<link rel="stylesheet" type="text/css" href="style.css">
|
||||||
</head>
|
</head>
|
||||||
|
8
index.js
8
index.js
@ -6,7 +6,9 @@ var Config = {name: "demo", volcano: "frame.js", iceberg: "/chat/", intshell: "p
|
|||||||
{type: "pane", name: "River", help: "群聊组", pos: "left", list: ["pane/River.js", "pane/River.css"]},
|
{type: "pane", name: "River", help: "群聊组", pos: "left", list: ["pane/River.js", "pane/River.css"]},
|
||||||
{type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["pane/Storm.js", "pane/Storm.css"]},
|
{type: "pane", name: "Storm", help: "应用流", pos: "right", list: ["pane/Storm.js", "pane/Storm.css"]},
|
||||||
{type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["pane/Action.js", "pane/Action.css"]},
|
{type: "pane", name: "Action", help: "工作台", pos: "middle", list: ["pane/Action.js", "pane/Action.css"]},
|
||||||
{type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["pane/Footer.js", "pane/Footer.css"]},
|
{type: "pane", name: "Footer", help: "状态条", pos: "foot", list: ["pane/Footer.js", "pane/Footer.css"], state: [
|
||||||
|
"ncmd",
|
||||||
|
]},
|
||||||
], main: {name: "Header", engine: "remote", list: []},
|
], main: {name: "Header", engine: "remote", list: []},
|
||||||
list: ["plugin/state.js", "plugin/input.js", "plugin/table.js",
|
list: ["plugin/state.js", "plugin/input.js", "plugin/table.js",
|
||||||
"plugin/input/key",
|
"plugin/input/key",
|
||||||
@ -21,11 +23,11 @@ var Preload = Config.libs; Config.panes.forEach(function(pane) {
|
|||||||
Preload = Preload.concat(pane.list);
|
Preload = Preload.concat(pane.list);
|
||||||
}); Preload = Preload.concat(Config.list)
|
}); Preload = Preload.concat(Config.list)
|
||||||
|
|
||||||
Volcanos(Config.name, { _target: document.body,
|
Volcanos(Config.name, { _target: document.body, _follow: "demo",
|
||||||
_head: document.head, _body: document.body,
|
_head: document.head, _body: document.body,
|
||||||
_width: window.innerWidth, _height: window.innerHeight,
|
_width: window.innerWidth, _height: window.innerHeight,
|
||||||
}, Preload.concat(Config.volcano), function(can) { // 程序入口
|
}, Preload.concat(Config.volcano), function(can) { // 程序入口
|
||||||
can.onimport._init(can, can.Conf(Config), [], function(msg) {
|
can.onaction._init(can, can.Conf(Config), [], function(msg) {
|
||||||
console.log(can._root, can._name, "start", can, msg);
|
console.log(can._root, can._name, "start", can, msg);
|
||||||
can.Footer.onaction._init(can.Footer, msg);
|
can.Footer.onaction._init(can.Footer, msg);
|
||||||
}, can._target)
|
}, can._target)
|
||||||
|
@ -2,10 +2,16 @@ fieldset.Action {
|
|||||||
min-width:160px;
|
min-width:160px;
|
||||||
min-height:160px;
|
min-height:160px;
|
||||||
}
|
}
|
||||||
|
fieldset.Action>div.output {
|
||||||
|
overflow:auto;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset.Action fieldset.plugin {
|
fieldset.Action fieldset.plugin {
|
||||||
margin:5px;
|
margin:5px;
|
||||||
}
|
}
|
||||||
|
fieldset.Action fieldset.plugin:hover {
|
||||||
|
border-color:red;
|
||||||
|
}
|
||||||
fieldset.Action fieldset.plugin legend {
|
fieldset.Action fieldset.plugin legend {
|
||||||
border:ridge 2px cyan;
|
border:ridge 2px cyan;
|
||||||
margin-top:5px;
|
margin-top:5px;
|
||||||
@ -17,9 +23,3 @@ fieldset.Action fieldset.plugin div.output {
|
|||||||
margin:5px;
|
margin:5px;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
fieldset.Action fieldset.plugin div.output tr {
|
|
||||||
background:green;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
Volcanos("onimport", {help: "导入数据", list: [],
|
||||||
_init: function(can, meta, list, cb, target) {
|
_init: function(can, meta, list, cb, target) {},
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互操作", list: [],
|
Volcanos("onaction", {help: "交互操作", list: [],
|
||||||
_init: function(can, msg, list, cb, target) {
|
_init: function(can, msg, list, cb, target) {
|
||||||
@ -9,36 +8,25 @@ Volcanos("onaction", {help: "交互操作", list: [],
|
|||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) { var key = "action";
|
_init: function(can, msg, list, cb, target) { var key = "action";
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
can.run(msg._event, ["search", "Storm.onaction._init"], function(msg) {
|
can.run(msg._event, ["search", "Storm.onaction._init"], function(msg) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1);
|
||||||
can.Cache(can.Conf("river")+can.Conf("storm"), can._output, can.Conf(key));
|
var river = can.Conf("river", msg.Option("river")), storm = can.Conf("storm", msg.Option("storm"));
|
||||||
var river = can.Conf("river", msg.Option("river"));
|
var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)));
|
||||||
var storm = can.Conf("storm", msg.Option("storm"));
|
if (position) { can._output.scrollTo(0, position-1); typeof cb == "function" && cb(msg); return }
|
||||||
console.log(can._root, can._name, "show", river, storm);
|
|
||||||
if (can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)))) {
|
|
||||||
typeof cb == "function" && cb(msg); return
|
|
||||||
}
|
|
||||||
|
|
||||||
var pod = can.user.Search(can, "pod")
|
var pod = can.user.Search(can, "pod"); msg = can.request({}, {});
|
||||||
msg = can.request({}, {}), can.run(msg._event, [river, storm], function(msg) { can._output.innerHTML = "";
|
can.run(msg._event, [river, storm], function(msg) { can._output.innerHTML = ""; msg.Table(function(value, index, array) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
// 添加插件
|
||||||
msg.Table(function(value, index, array) {
|
can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) {
|
||||||
// 添加列表
|
sub.run = function(event, cmds, cb, silent) {
|
||||||
can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) {
|
|
||||||
// 插件回调
|
// 插件回调
|
||||||
sub.run = function(event, cmds, cb, silent) {
|
var msg = can.request(event); pod && msg.Option("pod", pod);
|
||||||
var msg = can.request(event)
|
can.run(event, [river, storm, index].concat(cmds), cb, silent);
|
||||||
pod && msg.Option("pod", pod)
|
can.run(msg._event, ["search", "Footer.onaction.cmd"])
|
||||||
can.run(event, [river, storm, index].concat(cmds), cb, silent)
|
}
|
||||||
}
|
}, can._output);
|
||||||
}, can._output)
|
}); typeof cb == "function" && cb(msg); })
|
||||||
can.Conf(key, "which")
|
});
|
||||||
});
|
|
||||||
msg.Option(key, can.Conf(key))
|
|
||||||
typeof cb == "function" && cb(msg)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
32
pane/Carte.css
Normal file
32
pane/Carte.css
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
fieldset.dialog.Carte {
|
||||||
|
padding:0;
|
||||||
|
border:solid 2px red;
|
||||||
|
/* background-color:greenyellow; */
|
||||||
|
position:absolute;
|
||||||
|
display:none;
|
||||||
|
z-index:200;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.action {
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output {
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output button {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output select {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output div.layout>div {
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output div.item {
|
||||||
|
padding:0px 6px;
|
||||||
|
}
|
||||||
|
fieldset.dialog.Carte>div.output div.space {
|
||||||
|
border:solid 1px gray;
|
||||||
|
margin-top:8px;
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
|
11
pane/Carte.js
Normal file
11
pane/Carte.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Volcanos("onimport", {help: "导入数据", list: [],
|
||||||
|
_init: function(can, conf, output, action, option, field) {
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Volcanos("onaction", {help: "组件交互", list: [],
|
||||||
|
onmouseleave: function(event, can) {can.Hide()},
|
||||||
|
})
|
||||||
|
Volcanos("onchoice", {help: "组件菜单", list: []})
|
||||||
|
Volcanos("ondetail", {help: "组件详情", list: []})
|
||||||
|
Volcanos("onexport", {help: "导出数据", list: []})
|
||||||
|
|
@ -6,20 +6,23 @@ Volcanos("onaction", {help: "交互数据", list: [],
|
|||||||
_init: function(can, msg, list, cb, target) {
|
_init: function(can, msg, list, cb, target) {
|
||||||
can.onexport._init(can, msg, list, cb, target)
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
},
|
},
|
||||||
|
cmd: function(can, msg, list, cb, target) {
|
||||||
|
can.Conf("ncmd", parseInt(can.Conf("ncmd")||"0")+1+"")
|
||||||
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
|
_init: function(can, msg, list, cb, target) {
|
||||||
msg = can.request({}, {})
|
msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
||||||
can.run(msg._event, [], function(msg) {
|
|
||||||
console.log(can._root, can._name, "show", msg.result)
|
|
||||||
can.core.List(msg.result, function(title) {
|
can.core.List(msg.result, function(title) {
|
||||||
can.page.Append(can, can._output, [{view: ["title", "div", title]}])
|
can.page.Append(can, can._output, [{view: ["title", "div", title]}])
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log(can._root, can._name, "show", can.Conf("state"))
|
|
||||||
can.ui = can.page.Append(can, can._output, [{view: "state", list: can.core.List(can.Conf("state"), function(item) {
|
can.ui = can.page.Append(can, can._output, [{view: "state", list: can.core.List(can.Conf("state"), function(item) {
|
||||||
return {text: can.Conf(item)||"", className: item, click: function(event) {can.onaction[item](event, can, item)}};
|
return {view: "item", list: [{text: item}, {text: ": "}, {text: can.Conf(item)||""}], click: function(event) {
|
||||||
})}])
|
can.onaction[item](event, can, item);
|
||||||
|
}};
|
||||||
|
}) }])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -5,12 +5,15 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
|||||||
Volcanos("onaction", {help: "交互数据", list: [],
|
Volcanos("onaction", {help: "交互数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) {
|
_init: function(can, msg, list, cb, target) {
|
||||||
can.onexport._init(can, msg, list, cb, target)
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
can.run(msg._event, ["search", "Footer.onaction._init"], function(msg) {
|
can.run(msg._event, ["search", "River.onaction._init"], function(msg) {
|
||||||
})
|
})
|
||||||
can.run(msg._event, ["search", "Action.onaction._init"], function(msg) {
|
can.run(msg._event, ["search", "Footer.onaction._init"], function(msg) {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
title: function(event, can, key) {
|
title: function(event, can, key) {
|
||||||
|
can.run(event, ["search", "Action.onaction._init"], function(msg) {
|
||||||
|
console.log(msg)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
username: function(event, can, key) {
|
username: function(event, can, key) {
|
||||||
// can.ui[key].innerHTML = can.base.Time().split(" ")[1]
|
// can.ui[key].innerHTML = can.base.Time().split(" ")[1]
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
Volcanos("onimport", {help: "导入数据", list: [],
|
||||||
_init: function(can, meta, list, cb, target) {
|
_init: function(can, meta, list, cb, target) {},
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互数据", list: [],
|
Volcanos("onaction", {help: "交互数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) {
|
_init: function(can, msg, list, cb, target) {
|
||||||
@ -9,30 +8,19 @@ Volcanos("onaction", {help: "交互数据", list: [],
|
|||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) { var key = "river";
|
_init: function(can, msg, list, cb, target) { var key = "river";
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
if (msg.Option(key, can.Conf(key))) { typeof cb == "function" && cb (msg); return }
|
||||||
if (msg.Option(key, can.Conf(key))) {
|
|
||||||
typeof cb == "function" && cb (msg); return
|
|
||||||
}
|
|
||||||
|
|
||||||
msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
||||||
var select; msg.Table(function(value, index, array) {
|
// 左键点击
|
||||||
// 添加列表
|
can.Conf(key, value.key); can.run(event, ["search", "Storm.onaction._init"], function(action) { });
|
||||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
}, function(event) {
|
||||||
// 左键点击
|
// 右键点击
|
||||||
can.Conf(key, value.key); can.run(event, ["search", "Storm.onaction._init"], function(action) {
|
});
|
||||||
// 切换群组
|
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
||||||
});
|
msg.Option(key, value.key), select = view
|
||||||
}, function(event) {
|
}
|
||||||
// 右键点击
|
}); select && select.click(); typeof cb == "function" && cb(msg); })
|
||||||
});
|
|
||||||
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
|
||||||
msg.Option("river", value.key)
|
|
||||||
select = view
|
|
||||||
}
|
|
||||||
}); select && select.click();
|
|
||||||
typeof cb == "function" && cb(msg)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,42 +1,43 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
Volcanos("onimport", {help: "导入数据", list: [],
|
||||||
_init: function(can, meta, list, cb, target) {
|
_init: function(can, meta, list, cb, target) {},
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互数据", list: [],
|
Volcanos("onaction", {help: "交互操作", list: [],
|
||||||
_init: function(can, msg, list, cb, target) {
|
_init: function(can, msg, list, cb, target) {
|
||||||
can.onexport._init(can, msg, list, cb, target)
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"],
|
||||||
|
_init: function(can, msg, list, cb, target) {
|
||||||
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
|
},
|
||||||
|
"共享": function(event, can, value) {
|
||||||
|
can.onappend.share(can, {river: can.Conf("river"), storm: can.Conf("storm")})
|
||||||
|
},
|
||||||
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) { var key = "storm";
|
_init: function(can, msg, list, cb, target) { var key = "storm";
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
can.run(msg._event, ["search", "River.onaction._init"], function(msg) {
|
can.run(msg._event, ["search", "River.onaction._init"], function(msg) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
|
||||||
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
||||||
var river = can.Conf("river", msg.Option("river"));
|
var river = can.Conf("river", msg.Option("river"));
|
||||||
console.log(can._root, can._name, "show", river);
|
if (can.Conf(key, msg.Option(key, can.Cache(river, can._output)))) { typeof cb == "function" && cb (msg); return }
|
||||||
if (can.Conf(key, msg.Option(key, can.Cache(river, can._output)))) {
|
|
||||||
typeof cb == "function" && cb (msg); return
|
|
||||||
}
|
|
||||||
|
|
||||||
msg = can.request({}, {}), can.run(msg._event, [river], function(msg) { can._output.innerHTML = "";
|
msg = can.request({}, {}), can.run(msg._event, [river], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) {
|
||||||
if (Volcanos.meta.follow[can._root]) { debugger }
|
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
||||||
var select; msg.Table(function(value, index, array) {
|
// 左键点击
|
||||||
// 添加列表
|
can.Conf(key, value.key); can.run(event, ["search", "Action.onaction._init"], function(msg) {})
|
||||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
}, function(event, item) {
|
||||||
// 左键点击
|
// 右键点击
|
||||||
can.Conf(key, value.key); can.run(event, ["search", "Action.onaction._init"], function(msg) {
|
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||||
})
|
meta[item] && meta[item](event, can, value)
|
||||||
}, function(event, item) {
|
console.log(item)
|
||||||
// 右键点击
|
})
|
||||||
});
|
});
|
||||||
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
|
||||||
msg.Option("storm", value.key)
|
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
||||||
select = view
|
msg.Option(key, value.key), select = view
|
||||||
}
|
}
|
||||||
}); select && select.click();
|
}); select && select.click(); typeof cb == "function" && cb(msg); })
|
||||||
typeof cb == "function" && cb(msg)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
|||||||
switch (event.key) {
|
switch (event.key) {
|
||||||
case "Enter":
|
case "Enter":
|
||||||
can.run(event, [], function() {})
|
can.run(event, [], function() {})
|
||||||
|
event.stopPropagation()
|
||||||
|
event.preventDefault()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -21,6 +23,8 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
|||||||
switch (event.key) {
|
switch (event.key) {
|
||||||
case "Enter":
|
case "Enter":
|
||||||
can.run(event, [], function() {})
|
can.run(event, [], function() {})
|
||||||
|
event.stopPropagation()
|
||||||
|
event.preventDefault()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -13,6 +13,6 @@ Volcanos("onfigure", {help: "控件详情", list: [],
|
|||||||
});
|
});
|
||||||
}},
|
}},
|
||||||
}, [
|
}, [
|
||||||
"plugin/github.com/shylinux/echarts/echarts.js",
|
// "plugin/github.com/shylinux/echarts/echarts.js",
|
||||||
"plugin/github.com/shylinux/echarts/china.js",
|
// "plugin/github.com/shylinux/echarts/china.js",
|
||||||
])
|
])
|
||||||
|
@ -15,12 +15,9 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
|||||||
can.Action("mode", "draw")
|
can.Action("mode", "draw")
|
||||||
can.Action("shape", "path")
|
can.Action("shape", "path")
|
||||||
},
|
},
|
||||||
init: function(can, msg, cb, output, action, option) {output.innerHTML = "";
|
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
|
||||||
if (msg.Option("_display") == "table") {
|
if (msg.Option("_display") == "table") {
|
||||||
// 文件目录
|
can.onappend.table(can, target, "table", msg)
|
||||||
can.page.AppendTable(can, output, msg, msg.append, function(event, value, key, index, tr, td) {
|
|
||||||
can.Export(event, value, key)
|
|
||||||
})
|
|
||||||
return typeof cb == "function" && cb(msg);
|
return typeof cb == "function" && cb(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,8 +28,8 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
|||||||
can.last = null
|
can.last = null
|
||||||
|
|
||||||
// 加载绘图
|
// 加载绘图
|
||||||
var code = can.page.AppendBoard(can, output, msg.Result()||can.Export(event, null, "file"))
|
var code = can.page.AppendBoard(can, can._output, msg.Result()||can.Export(event, null, "file"))
|
||||||
can.page.Select(can, output, "svg", function(svg) {
|
can.page.Select(can, can._output, "svg", function(svg) {
|
||||||
// 画布
|
// 画布
|
||||||
can.onaction.init(event, can, msg, "init", svg);
|
can.onaction.init(event, can, msg, "init", svg);
|
||||||
can.group = can.svg = svg;
|
can.group = can.svg = svg;
|
||||||
|
@ -18,14 +18,15 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
|||||||
can.page.ClassList.add(can, can.ui.display, "hidden")
|
can.page.ClassList.add(can, can.ui.display, "hidden")
|
||||||
},
|
},
|
||||||
}])
|
}])
|
||||||
can.data = can.msg.Table()
|
can.data = msg.Table()
|
||||||
can.page.ClassList.add(can, can.ui.total, "status")
|
can.page.ClassList.add(can, can.ui.total, "status")
|
||||||
|
|
||||||
can.sub = can.Output(can, {}, "/plugin/local/wiki/draw", can.Event({}), function() {
|
return
|
||||||
|
can.sub = can.Output(can, {}, "/plugin/local/wiki/draw", can.request({}), function() {
|
||||||
can.Action("width", 600)
|
can.Action("width", 600)
|
||||||
can.onaction["编辑"]({}, can)
|
can.onaction["编辑"]({}, can)
|
||||||
can.onaction["股价图"]({}, can)
|
can.onaction["股价图"]({}, can)
|
||||||
}, can.ui.output, can.ui.action, option, can.ui.status)
|
}, can.ui.output, can.ui.action, can._option, can.ui.status)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", "股价图", "趋势", "比例", ["width", "200", "400", "600", "800", "1000"], ["height", "200", "400", "600"], "表格"],
|
Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", "股价图", "趋势", "比例", ["width", "200", "400", "600", "800", "1000"], ["height", "200", "400", "600"], "表格"],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
Volcanos("onimport", {help: "导入数据", list: [],
|
||||||
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
|
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
|
||||||
can.onappend.table(can, target, "table", msg)
|
can.onappend.table(can, target, "table", msg)
|
||||||
msg.result && can.page.AppendBoard(can, can._output, msg.result.join(""))
|
can.onappend.board(can, target, "board", msg)
|
||||||
return typeof cb == "function" && cb(msg)
|
return typeof cb == "function" && cb(msg)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
87
style.css
87
style.css
@ -1,18 +1,18 @@
|
|||||||
* {
|
|
||||||
background:black;
|
|
||||||
}
|
|
||||||
body {
|
body {
|
||||||
|
background:black;
|
||||||
padding:0;
|
padding:0;
|
||||||
margin:0;
|
margin:0;
|
||||||
}
|
}
|
||||||
fieldset {
|
fieldset {
|
||||||
color:cyan;
|
color:cyan;
|
||||||
padding:2px;
|
padding:2px;
|
||||||
margin:0px;
|
|
||||||
}
|
}
|
||||||
legend {
|
legend {
|
||||||
margin-left:10px;
|
margin-left:10px;
|
||||||
}
|
}
|
||||||
|
div.hidden {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset>form.option {
|
fieldset>form.option {
|
||||||
padding:0 5px;
|
padding:0 5px;
|
||||||
@ -51,18 +51,19 @@ fieldset>form.option>div.item input.opts {
|
|||||||
width:80px;
|
width:80px;
|
||||||
}
|
}
|
||||||
fieldset>form.option>div.item textarea.args {
|
fieldset>form.option>div.item textarea.args {
|
||||||
|
background-color:cyan;
|
||||||
width:300px;
|
width:300px;
|
||||||
height:50px;
|
height:50px;
|
||||||
background-color:cyan;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset>form.option>div.item.text>input {
|
fieldset>form.option>div.item.text>input {
|
||||||
background-color:cyan;
|
background-color:cyan;
|
||||||
}
|
}
|
||||||
fieldset>form.option>div.item.button>input {
|
fieldset>form.option>div.item.button>input {
|
||||||
|
background:black;
|
||||||
color:cyan;
|
color:cyan;
|
||||||
}
|
}
|
||||||
fieldset>form.option>div.item.select>select {
|
fieldset>form.option>div.item.select>select {
|
||||||
|
background:black;
|
||||||
color:cyan;
|
color:cyan;
|
||||||
}
|
}
|
||||||
fieldset>form.option>div.item.textarea {
|
fieldset>form.option>div.item.textarea {
|
||||||
@ -70,46 +71,37 @@ fieldset>form.option>div.item.textarea {
|
|||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset.Action>div.output {
|
fieldset div.output {
|
||||||
overflow:auto;
|
|
||||||
}
|
|
||||||
fieldset>div.output {
|
|
||||||
margin-top:4px;
|
margin-top:4px;
|
||||||
clear:both;
|
clear:both;
|
||||||
overflow:auto;
|
overflow:auto;
|
||||||
}
|
}
|
||||||
|
fieldset div.code {
|
||||||
|
color:white;
|
||||||
|
font-size:14px;
|
||||||
|
font-family:monospace;
|
||||||
|
background-color:#343a34f2;
|
||||||
|
white-space:pre;
|
||||||
|
padding:10px;
|
||||||
|
overflow:auto;
|
||||||
|
border:solid 3px green;
|
||||||
|
max-height:640px;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset table {
|
fieldset table {
|
||||||
font-size:14px;
|
font-size:14px;
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
fieldset table caption {
|
|
||||||
font-size:18px;
|
|
||||||
font-style:italic;
|
|
||||||
border:solid 1px green;
|
|
||||||
}
|
|
||||||
fieldset table tbody {
|
|
||||||
overflow:auto;
|
|
||||||
}
|
|
||||||
fieldset table td sup.more {
|
|
||||||
color:red;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset table {
|
|
||||||
border:solid 1px green;
|
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
|
border:solid 1px green;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
fieldset table tr:hover {
|
fieldset table tr:hover {
|
||||||
background-color:#0fbd45;
|
background-color:#0fbd45;
|
||||||
}
|
}
|
||||||
fieldset table tr.over {
|
|
||||||
background:red;
|
|
||||||
}
|
|
||||||
fieldset table tr.select {
|
fieldset table tr.select {
|
||||||
background-color:#0fbd45;
|
background-color:#0fbd45;
|
||||||
}
|
}
|
||||||
fieldset table th {
|
fieldset table tr.over {
|
||||||
background-color:#0fbd45;
|
background:red;
|
||||||
}
|
}
|
||||||
fieldset table th {
|
fieldset table th {
|
||||||
font-family:monospace;
|
font-family:monospace;
|
||||||
@ -130,30 +122,15 @@ fieldset table td.select {
|
|||||||
background-color:red;
|
background-color:red;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset div.code {
|
div.carte {
|
||||||
color:white;
|
background:black;
|
||||||
font-size:14px;
|
border:solid 2px red;
|
||||||
font-family:monospace;
|
|
||||||
background-color:#343a34f2;
|
|
||||||
white-space:pre;
|
|
||||||
padding:10px;
|
|
||||||
overflow:auto;
|
|
||||||
border:solid 3px green;
|
|
||||||
max-height:640px;
|
|
||||||
}
|
}
|
||||||
fieldset div.hidden {
|
div.carte div.item {
|
||||||
display:none;
|
padding:0 5px;
|
||||||
}
|
}
|
||||||
|
div.carte div.item:hover {
|
||||||
fieldset div.code {
|
background:red;
|
||||||
color:white;
|
border:solid 2px yellow;
|
||||||
font-size:14px;
|
cursor:pointer;
|
||||||
font-family:monospace;
|
|
||||||
background-color:#343a34f2;
|
|
||||||
white-space:pre;
|
|
||||||
padding:10px;
|
|
||||||
overflow:auto;
|
|
||||||
border:solid 3px green;
|
|
||||||
max-height:640px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user