mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt wiki
This commit is contained in:
parent
d224fcca43
commit
6b930ef204
13
frame.js
13
frame.js
@ -31,7 +31,6 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
|||||||
can.misc.Runs(event, can, {names: pane._name}, cmds, cb)
|
can.misc.Runs(event, can, {names: pane._name}, cmds, cb)
|
||||||
pane.run(event, ["search", "Footer.onimport.ncmd"])
|
pane.run(event, ["search", "Footer.onimport.ncmd"])
|
||||||
}, engine: function(event, can, msg, pane, cmds, cb) { return false },
|
}, engine: function(event, can, msg, pane, cmds, cb) { return false },
|
||||||
|
|
||||||
listen: shy("事件回调", {}, [], function(can, name, cb) {
|
listen: shy("事件回调", {}, [], function(can, name, cb) {
|
||||||
arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb)
|
arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb)
|
||||||
}),
|
}),
|
||||||
@ -40,7 +39,6 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
|||||||
can.core.CallFunc(cb, {msg: msg})
|
can.core.CallFunc(cb, {msg: msg})
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
|
|
||||||
river: {
|
river: {
|
||||||
"serivce": {name: "运营群", storm: {
|
"serivce": {name: "运营群", storm: {
|
||||||
"wx": {name: "公众号 wx", action: [
|
"wx": {name: "公众号 wx", action: [
|
||||||
@ -215,7 +213,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
if (!cmds[i]) { cmds.pop() } else { break }
|
if (!cmds[i]) { cmds.pop() } else { break }
|
||||||
}
|
}
|
||||||
|
|
||||||
var last = sub._history[sub._history.length-1]; !sub.core.Eq(last, cmds) && cmds[0] != "action" && !slient && sub._history.push(cmds)
|
var last = sub._history[sub._history.length-1]; !sub.base.Eq(last, cmds) && cmds[0] != "action" && !slient && sub._history.push(cmds)
|
||||||
return cmds
|
return cmds
|
||||||
},
|
},
|
||||||
}, list.concat(Volcanos.meta.volcano, Volcanos.meta.libs), function(sub) { sub.Conf(meta)
|
}, list.concat(Volcanos.meta.volcano, Volcanos.meta.libs), function(sub) { sub.Conf(meta)
|
||||||
@ -569,12 +567,10 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can) {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, target) {
|
Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, target) {
|
||||||
can.onkeypop._build(can)
|
|
||||||
var focus = []; can.onengine.listen(can, "keymap.focus", function(cb) {
|
var focus = []; can.onengine.listen(can, "keymap.focus", function(cb) {
|
||||||
cb? focus.push(cb): focus.pop()
|
cb? focus.push(cb): focus.pop()
|
||||||
can.base.Log("---", cb)
|
|
||||||
})
|
})
|
||||||
|
can.onkeypop._build(can)
|
||||||
target.onkeydown = function(event) {
|
target.onkeydown = function(event) {
|
||||||
if (focus.length > 0) { return focus[focus.length-1](event) }
|
if (focus.length > 0) { return focus[focus.length-1](event) }
|
||||||
if (event.target != target) { return }
|
if (event.target != target) { return }
|
||||||
@ -592,7 +588,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
}), can.onkeypop._engine[item] = engine
|
}), can.onkeypop._engine[item] = engine
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_parse: function(event, can, mode, list, target) { list.push(event.key)
|
_parse: function(event, can, mode, list, target) { list = list||[], list.push(event.key)
|
||||||
can.Status("按键", list.join(""))
|
can.Status("按键", list.join(""))
|
||||||
for (var pre = 0; pre < list.length; pre++) {
|
for (var pre = 0; pre < list.length; pre++) {
|
||||||
if ("0" <= list[pre] && list[pre] <= "9") { continue } break
|
if ("0" <= list[pre] && list[pre] <= "9") { continue } break
|
||||||
@ -605,6 +601,9 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
}
|
}
|
||||||
|
|
||||||
var map = can.onkeypop._mode[mode]
|
var map = can.onkeypop._mode[mode]
|
||||||
|
var cb = map && map[event.key]; if (typeof cb == "function" && event.key.length > 1) {
|
||||||
|
repeat(cb, count); return list
|
||||||
|
}
|
||||||
var cb = map && map[event.key.toLowerCase()]; if (typeof cb == "function" && event.key.length > 1) {
|
var cb = map && map[event.key.toLowerCase()]; if (typeof cb == "function" && event.key.length > 1) {
|
||||||
repeat(cb, count); return list
|
repeat(cb, count); return list
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
<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="/page/cache.css">
|
<link rel="stylesheet" type="text/css" href="/page/cache.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/page/index.css">
|
<link rel="stylesheet" type="text/css" href="/page/index.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/page/print.css" media="print"/>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script src="/proto.js"></script>
|
<script src="/proto.js"></script>
|
||||||
|
159
lib/base.js
159
lib/base.js
@ -1,5 +1,5 @@
|
|||||||
Volcanos("base", {help: "基础模块",
|
Volcanos("base", {help: "数据类型",
|
||||||
Int: function(value) { return parseInt(value)||0 },
|
Int: function(value, def) { return parseInt(value)||def||0 },
|
||||||
Obj: function(value, def) {
|
Obj: function(value, def) {
|
||||||
try {
|
try {
|
||||||
return (typeof value == "string" && value != ""? JSON.parse(value): value) || def || {}
|
return (typeof value == "string" && value != ""? JSON.parse(value): value) || def || {}
|
||||||
@ -7,7 +7,53 @@ Volcanos("base", {help: "基础模块",
|
|||||||
return [value]
|
return [value]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Copy: function(to, from, fields) {
|
||||||
|
var list = []
|
||||||
|
for (var i = 2; i < arguments.length; i++) {
|
||||||
|
list.push(arguments[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < list.length; i++) {
|
||||||
|
to[list[i]] = from[list[i]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Eq: function(obj, other) { var self = arguments.callee
|
||||||
|
// undefined null
|
||||||
|
// string number boolen
|
||||||
|
// object function
|
||||||
|
if (typeof obj != typeof other) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (typeof obj == "object") {
|
||||||
|
if (obj.length != other.length) { return false }
|
||||||
|
for (var i = 0; i < obj.length; i++) {
|
||||||
|
if (!self(obj[i], other[i])) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var k in obj) {
|
||||||
|
if (!self(obj[k], other[k])) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return obj === other
|
||||||
|
},
|
||||||
|
|
||||||
|
Ext: function(file) { return (file.split("/").pop().split(".").pop()).toLowerCase() },
|
||||||
|
Path: function() { var res = ""
|
||||||
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
|
res += (arguments[i].indexOf("/") == 0 || res.indexOf("/")==res.length-1? "": "/") + arguments[i].trim()
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
},
|
||||||
|
Args: function(obj) {var res = [];
|
||||||
|
for (var k in obj) {
|
||||||
|
res.push(encodeURIComponent(k)+"="+encodeURIComponent(obj[k]))
|
||||||
|
}
|
||||||
|
return res.join("&")
|
||||||
|
},
|
||||||
URLMerge: function(url) { var args = {}
|
URLMerge: function(url) { var args = {}
|
||||||
var arg = url.split("?")[1]||""
|
var arg = url.split("?")[1]||""
|
||||||
arg && arg.split("&").forEach(function(item) {
|
arg && arg.split("&").forEach(function(item) {
|
||||||
@ -39,57 +85,13 @@ Volcanos("base", {help: "基础模块",
|
|||||||
return url.split("?")[0]+(list.length>0? "?"+list.join("&"): "")
|
return url.split("?")[0]+(list.length>0? "?"+list.join("&"): "")
|
||||||
},
|
},
|
||||||
|
|
||||||
Ext: function(file) { return (file.split("/").pop().split(".").pop()||"txt").toLowerCase() },
|
Date: function(time) { var now = new Date()
|
||||||
Path: function() { var res = ""
|
if (typeof time == "string" && time != "") { var ls = time.split(" ")
|
||||||
for (var i = 0; i < arguments.length; i++) {
|
|
||||||
res += (arguments[i].indexOf("/") == 0 || res.indexOf("/")==res.length-1? "": "/") + arguments[i].trim()
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
},
|
|
||||||
Args: function(obj) {var res = [];
|
|
||||||
for (var k in obj) {
|
|
||||||
res.push(encodeURIComponent(k)+"="+encodeURIComponent(obj[k]))
|
|
||||||
}
|
|
||||||
return res.join("&")
|
|
||||||
},
|
|
||||||
|
|
||||||
Size: function(size) {size = parseInt(size)
|
|
||||||
if (size > 1000000000) {
|
|
||||||
return parseInt(size / 1000000000) + "." + parseInt(size / 10000000 % 100) + "G"
|
|
||||||
}
|
|
||||||
if (size > 1000000) {
|
|
||||||
return parseInt(size / 1000000) + "." + parseInt(size / 10000 % 100) + "M"
|
|
||||||
}
|
|
||||||
if (size > 1000) {
|
|
||||||
return parseInt(size / 1000) + "." + parseInt(size / 10 % 100) + "K"
|
|
||||||
}
|
|
||||||
return size + "B"
|
|
||||||
},
|
|
||||||
Date: function(t) { var now = new Date()
|
|
||||||
if (t == "") { return now }
|
|
||||||
if (typeof t == "string") { var ls = t.split(" ")
|
|
||||||
var vs = ls[0].split("-")
|
var vs = ls[0].split("-")
|
||||||
now.setFullYear(parseInt(vs[0]))
|
now.setFullYear(parseInt(vs[0]))
|
||||||
now.setMonth(parseInt(vs[1])-1)
|
now.setMonth(parseInt(vs[1])-1)
|
||||||
now.setDate(parseInt(vs[2]))
|
now.setDate(parseInt(vs[2]))
|
||||||
|
|
||||||
var vs = ls[1].split(":")
|
|
||||||
now.setHours(parseInt(vs[0]))
|
|
||||||
now.setMinutes(parseInt(vs[1]))
|
|
||||||
now.setSeconds(parseInt(vs[2]))
|
|
||||||
} else if (t) {
|
|
||||||
now = t
|
|
||||||
}
|
|
||||||
return now
|
|
||||||
},
|
|
||||||
Time: shy("时间格式化", function(time, fmt) {
|
|
||||||
var now = new Date()
|
|
||||||
if (time && typeof time == "string") { var ls = time.split(" ")
|
|
||||||
var vs = ls[0].split("-")
|
|
||||||
now.setFullYear(parseInt(vs[0]))
|
|
||||||
now.setMonth(parseInt(vs[1]))
|
|
||||||
now.setDate(parseInt(vs[2]))
|
|
||||||
|
|
||||||
var vs = ls[1].split(":")
|
var vs = ls[1].split(":")
|
||||||
now.setHours(parseInt(vs[0]))
|
now.setHours(parseInt(vs[0]))
|
||||||
now.setMinutes(parseInt(vs[1]))
|
now.setMinutes(parseInt(vs[1]))
|
||||||
@ -97,8 +99,9 @@ Volcanos("base", {help: "基础模块",
|
|||||||
} else if (time) {
|
} else if (time) {
|
||||||
now = time
|
now = time
|
||||||
}
|
}
|
||||||
// var now = time? new Date(time): new Date()
|
return now
|
||||||
|
},
|
||||||
|
Time: shy("时间格式化", function(time, fmt) { var now = this.Date(time)
|
||||||
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||||||
fmt = fmt || "%y-%m-%d %H:%M:%S"
|
fmt = fmt || "%y-%m-%d %H:%M:%S"
|
||||||
fmt = fmt.replace("%y", now.getFullYear())
|
fmt = fmt.replace("%y", now.getFullYear())
|
||||||
@ -117,19 +120,25 @@ Volcanos("base", {help: "基础模块",
|
|||||||
h = parseInt(n/1000), h > 0 && (res += h), n = n % 1000
|
h = parseInt(n/1000), h > 0 && (res += h), n = n % 1000
|
||||||
return res + (n > 0? "."+parseInt(n/10): "") + "s"
|
return res + (n > 0? "."+parseInt(n/10): "") + "s"
|
||||||
},
|
},
|
||||||
|
Format: shy("数据格式化", function(obj) { return JSON.stringify(obj) }),
|
||||||
Number: shy("数字格式化", function(d, n) { var result = []
|
Number: shy("数字格式化", function(d, n) { var result = []
|
||||||
while (d > 0) { result.push(d % 10); d = parseInt(d / 10); n-- }
|
while (d > 0) { result.push(d % 10); d = parseInt(d / 10); n-- }
|
||||||
while (n > 0) { result.push("0"); n-- }
|
while (n > 0) { result.push("0"); n-- }
|
||||||
return result.reverse(), result.join("")
|
return result.reverse(), result.join("")
|
||||||
}),
|
}),
|
||||||
Format: shy("数据格式化", function(obj) { return JSON.stringify(obj) }),
|
Size: function(size) {size = parseInt(size)
|
||||||
|
if (size > 1000000000) {
|
||||||
TimeAdd: shy("时间格式化", function(t, d) {
|
return parseInt(size / 1000000000) + "." + parseInt(size / 10000000 % 100) + "G"
|
||||||
return new Date(t - t%(24*3600*1000) - 8*3600*1000 + d*24*3600*1000)
|
}
|
||||||
}),
|
if (size > 1000000) {
|
||||||
isNight: function() { var now = new Date()
|
return parseInt(size / 1000000) + "." + parseInt(size / 10000 % 100) + "M"
|
||||||
return now.getHours() < 7 || now.getHours() > 17
|
}
|
||||||
|
if (size > 1000) {
|
||||||
|
return parseInt(size / 1000) + "." + parseInt(size / 10 % 100) + "K"
|
||||||
|
}
|
||||||
|
return size + "B"
|
||||||
},
|
},
|
||||||
|
|
||||||
parseSize: function(size) { size = size.toLowerCase()
|
parseSize: function(size) { size = size.toLowerCase()
|
||||||
if (size.endsWith("tb") || size.endsWith("t")) {
|
if (size.endsWith("tb") || size.endsWith("t")) {
|
||||||
return parseInt(size) * 1024 * 1024 * 1024 * 1024
|
return parseInt(size) * 1024 * 1024 * 1024 * 1024
|
||||||
@ -145,20 +154,17 @@ Volcanos("base", {help: "基础模块",
|
|||||||
}
|
}
|
||||||
return parseInt(size)
|
return parseInt(size)
|
||||||
},
|
},
|
||||||
|
isNight: function() { var now = new Date()
|
||||||
|
return now.getHours() < 7 || now.getHours() > 17
|
||||||
|
},
|
||||||
|
TimeAdd: shy("时间格式化", function(t, d) {
|
||||||
|
return new Date(t - t%(24*3600*1000) - 8*3600*1000 + d*24*3600*1000)
|
||||||
|
}),
|
||||||
|
|
||||||
_fileLine: function() { var obj = {}
|
Debug: function() {
|
||||||
Error.captureStackTrace && Error.captureStackTrace(obj, arguments.callee)
|
var args = [this.Time(null, "%H:%M:%S"), this.FileLine(2, 3), "debug"]
|
||||||
return obj.stack || ""
|
|
||||||
},
|
|
||||||
fileLine: function(depth) {
|
|
||||||
return (this._fileLine().split("\n")[1+depth]||"").trim()
|
|
||||||
},
|
|
||||||
FileLine: function(depth, length) {
|
|
||||||
return this.fileLine(depth+1).split("/").slice(3).slice(-length).join("/").split(")")[0]
|
|
||||||
},
|
|
||||||
Log: function() {
|
|
||||||
var args = [this.Time(null, "%H:%M:%S"), this.FileLine(2, 3)]
|
|
||||||
for (var i in arguments) { args.push(arguments[i]) }
|
for (var i in arguments) { args.push(arguments[i]) }
|
||||||
|
args.push(this.fileLine(2, 3))
|
||||||
console.log.apply(console, args)
|
console.log.apply(console, args)
|
||||||
},
|
},
|
||||||
Warn: function() {
|
Warn: function() {
|
||||||
@ -167,11 +173,20 @@ Volcanos("base", {help: "基础模块",
|
|||||||
args.push("\n", this._fileLine().split("\n").slice(2).join("\n"))
|
args.push("\n", this._fileLine().split("\n").slice(2).join("\n"))
|
||||||
console.log.apply(console, args)
|
console.log.apply(console, args)
|
||||||
},
|
},
|
||||||
Debug: function() {
|
Log: function() {
|
||||||
var args = [this.Time(null, "%H:%M:%S"), this.FileLine(2, 3), "debug"]
|
var args = [this.Time(null, "%H:%M:%S"), this.FileLine(2, 3)]
|
||||||
for (var i in arguments) { args.push(arguments[i]) }
|
for (var i in arguments) { args.push(arguments[i]) }
|
||||||
args.push(this.fileLine(2, 3))
|
|
||||||
console.log.apply(console, args)
|
console.log.apply(console, args)
|
||||||
},
|
},
|
||||||
|
FileLine: function(depth, length) {
|
||||||
|
return this.fileLine(depth+1).split("/").slice(3).slice(-length).join("/").split(")")[0]
|
||||||
|
},
|
||||||
|
fileLine: function(depth) {
|
||||||
|
return (this._fileLine().split("\n")[1+depth]||"").trim()
|
||||||
|
},
|
||||||
|
_fileLine: function() { var obj = {}
|
||||||
|
Error.captureStackTrace && Error.captureStackTrace(obj, arguments.callee)
|
||||||
|
return obj.stack || ""
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
240
lib/core.js
240
lib/core.js
@ -1,106 +1,4 @@
|
|||||||
Volcanos("core", {help: "核心模块",
|
Volcanos("core", {help: "数据结构",
|
||||||
Items: shy("迭代器", function(obj, cb) { var list = []
|
|
||||||
for (var key in obj) {
|
|
||||||
list = list.concat(this.List(obj[key], function(value, index, array) {
|
|
||||||
return typeof cb == "function" && cb(value, index, key, obj)
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
return list
|
|
||||||
}),
|
|
||||||
Item: shy("迭代器", function(obj, cb) { var list = []
|
|
||||||
for (var k in obj) {
|
|
||||||
var res = typeof cb == "function"? cb(k, obj[k]): k
|
|
||||||
res && list.push(res)
|
|
||||||
}
|
|
||||||
return list
|
|
||||||
}),
|
|
||||||
List: shy("迭代器", function(obj, cb, interval, cbs) {
|
|
||||||
if (typeof obj == "number") {
|
|
||||||
var begin = 0, end = obj, step = 1
|
|
||||||
if (typeof interval == "number") {
|
|
||||||
step = interval
|
|
||||||
}
|
|
||||||
if (typeof cb == "number") {
|
|
||||||
begin = obj, end = cb
|
|
||||||
}
|
|
||||||
|
|
||||||
var list = []
|
|
||||||
for (var i = begin; i < end; i += step) {
|
|
||||||
list.push(i)
|
|
||||||
}
|
|
||||||
return list
|
|
||||||
}
|
|
||||||
|
|
||||||
obj = typeof obj == "string"? [obj]: (obj || [])
|
|
||||||
if (interval > 0) {
|
|
||||||
function loop(i) { if (i >= obj.length) { return typeof cbs == "function" && cbs(obj) }
|
|
||||||
typeof cb == "function" && cb(obj[i], i, obj), setTimeout(function() { loop(i+1) }, interval)
|
|
||||||
}
|
|
||||||
obj.length > 0 && setTimeout(function() { loop(0) }, interval/4)
|
|
||||||
return obj
|
|
||||||
}
|
|
||||||
|
|
||||||
var list = [], res
|
|
||||||
for (var i = 0; i < obj.length; i++) {
|
|
||||||
typeof cb == "function"? (res = cb(obj[i], i, obj)) != undefined && list.push(res): list.push(obj[i])
|
|
||||||
}
|
|
||||||
return list
|
|
||||||
}),
|
|
||||||
Next: shy("迭代器", function(obj, cb, cbs) { obj = typeof obj == "string"? [obj]: (obj || [])
|
|
||||||
function next(list, cb, index) {
|
|
||||||
list && list.length > 0? typeof cb == "function" && cb(list[0], function() {
|
|
||||||
list.length > 0 && next(list.slice(1), cb, index+1)
|
|
||||||
}, index, obj): typeof cbs == "function" && cbs()
|
|
||||||
}
|
|
||||||
next(obj, cb, 0)
|
|
||||||
}),
|
|
||||||
|
|
||||||
|
|
||||||
Keys: function() { var list = []
|
|
||||||
for (var i = 0; i < arguments.length; i++) { var v = arguments[i]
|
|
||||||
switch (typeof v) {
|
|
||||||
case "number": list.push(v+""); break
|
|
||||||
case "string": list.push(v); break
|
|
||||||
case "object": list.push(arguments.callee.apply(this, v)); break
|
|
||||||
case "function": list.push(v()); break
|
|
||||||
default: list.push(v+"")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list.join(".")
|
|
||||||
},
|
|
||||||
Value: function(data, key, value) {
|
|
||||||
if (data == undefined) { return }
|
|
||||||
if (key == undefined) { return data }
|
|
||||||
if (typeof key == "object") { for (var k in key) {
|
|
||||||
arguments.callee.call(this, data, k, key[k])
|
|
||||||
}; return data }
|
|
||||||
|
|
||||||
if (value != undefined) { data[key] = value }
|
|
||||||
if (data[key] != undefined) { return data[key] }
|
|
||||||
|
|
||||||
var p = data, ls = key.split("."); while (p && ls.length > 0) {
|
|
||||||
if (ls[0] == "-1") { ls[0] = p.length-1 }
|
|
||||||
p = p[ls[0]], ls = ls.slice(1)
|
|
||||||
}; return p
|
|
||||||
},
|
|
||||||
CallFunc: shy("调用器", function(func, args, mod) { args = args||{}
|
|
||||||
var can = args["can"]||args[0], msg = args["msg"]||args[1]
|
|
||||||
|
|
||||||
func = typeof func == "function"? func: typeof func == "string"? this.Value(mod||can, func):
|
|
||||||
typeof func == "object" && func.slice? this.Value(func[0], this.Keys(func.slice(1))): null
|
|
||||||
if (typeof func != "function") { return }
|
|
||||||
|
|
||||||
var cb = args["cb"]
|
|
||||||
var ls = func.toString().split(")")[0].split("(")[1].split(",")
|
|
||||||
var list = [], echo = false; this.List(ls, function(item, index) { item = item.trim()
|
|
||||||
list.push(args[item] || args[index] || msg&&msg.Option&&msg.Option(item) || can&&can.Conf&&can.Conf(item) || null)
|
|
||||||
if (item == "cb") { echo = true }
|
|
||||||
})
|
|
||||||
|
|
||||||
var res = func.apply(mod||can, list)
|
|
||||||
if (!echo && typeof cb == "function") { res && msg.Echo(res), arguments.callee.apply(this, [cb, {msg: msg, res: res}]) }
|
|
||||||
return res
|
|
||||||
}),
|
|
||||||
Split: shy("分词器", function(str) { if (!str || !str.length) { return [] }
|
Split: shy("分词器", function(str) { if (!str || !str.length) { return [] }
|
||||||
var opt = {detail: false}, arg = []; for (var i = 1; i < arguments.length; i++) {
|
var opt = {detail: false}, arg = []; for (var i = 1; i < arguments.length; i++) {
|
||||||
typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i])
|
typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i])
|
||||||
@ -170,51 +68,119 @@ Volcanos("core", {help: "核心模块",
|
|||||||
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
||||||
return typeof cbs == "function" && cbs(timer, interval)
|
return typeof cbs == "function" && cbs(timer, interval)
|
||||||
}
|
}
|
||||||
return typeof cb == "function" && cb(timer, interval.value||interval[i], i, interval)?
|
return typeof cb == "function" && cb(timer, interval.interval||interval[i], i, interval)?
|
||||||
typeof cbs == "function" && cbs(timer, interval): setTimeout(function() { loop(timer, i+1) }, interval.value||interval[i+1])
|
typeof cbs == "function" && cbs(timer, interval): setTimeout(function() { loop(timer, i+1) }, interval.interval||interval[i+1])
|
||||||
}
|
}
|
||||||
setTimeout(function() { loop(timer, 0) }, interval.value||interval[0])
|
setTimeout(function() { loop(timer, 0) }, interval.interval||interval[0])
|
||||||
return timer
|
return timer
|
||||||
}),
|
}),
|
||||||
Delay: function(list, interval, cb, cbs) {
|
Delay: shy("延时器", function(list, interval, cb, cbs) {
|
||||||
list.push(cb); this.Timer(interval, function() {
|
list.push(cb); this.Timer(interval, function() {
|
||||||
var cb = list.pop(); list.length = 0
|
var cb = list.pop(); list.length = 0
|
||||||
typeof cb == "function" && cb()
|
typeof cb == "function" && cb()
|
||||||
}, cbs)
|
}, cbs)
|
||||||
},
|
}),
|
||||||
|
|
||||||
Copy: function(to, from, fields) {
|
Items: shy("迭代器", function(obj, cb) { var list = []
|
||||||
var list = []
|
for (var key in obj) {
|
||||||
for (var i = 2; i < arguments.length; i++) {
|
list = list.concat(this.List(obj[key], function(value, index, array) {
|
||||||
list.push(arguments[i])
|
return typeof cb == "function" && cb(value, index, key, obj)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}),
|
||||||
|
Item: shy("迭代器", function(obj, cb) { var list = []
|
||||||
|
for (var k in obj) {
|
||||||
|
var res = typeof cb == "function"? cb(k, obj[k]): k
|
||||||
|
res && list.push(res)
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}),
|
||||||
|
List: shy("迭代器", function(obj, cb, interval, cbs) {
|
||||||
|
if (typeof obj == "number") {
|
||||||
|
var begin = 0, end = obj, step = 1
|
||||||
|
if (typeof interval == "number") {
|
||||||
|
step = interval
|
||||||
|
}
|
||||||
|
if (typeof cb == "number") {
|
||||||
|
begin = obj, end = cb
|
||||||
|
}
|
||||||
|
|
||||||
|
var list = []
|
||||||
|
for (var i = begin; i < end; i += step) {
|
||||||
|
list.push(i)
|
||||||
|
}
|
||||||
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < list.length; i++) {
|
obj = typeof obj == "string"? [obj]: (obj || [])
|
||||||
to[list[i]] = from[list[i]]
|
if (interval > 0) {
|
||||||
}
|
function loop(i) { if (i >= obj.length) { return typeof cbs == "function" && cbs(obj) }
|
||||||
},
|
typeof cb == "function" && cb(obj[i], i, obj), setTimeout(function() { loop(i+1) }, interval)
|
||||||
Eq: function(obj, other) { var self = arguments.callee
|
|
||||||
// undefined null
|
|
||||||
// string number boolen
|
|
||||||
// object function
|
|
||||||
if (typeof obj != typeof other) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (typeof obj == "object") {
|
|
||||||
if (obj.length != other.length) { return false }
|
|
||||||
for (var i = 0; i < obj.length; i++) {
|
|
||||||
if (!self(obj[i], other[i])) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (var k in obj) {
|
obj.length > 0 && setTimeout(function() { loop(0) }, interval/4)
|
||||||
if (!self(obj[k], other[k])) {
|
return obj
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
return obj === other
|
|
||||||
},
|
var list = [], res
|
||||||
|
for (var i = 0; i < obj.length; i++) {
|
||||||
|
typeof cb == "function"? (res = cb(obj[i], i, obj)) != undefined && list.push(res): list.push(obj[i])
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}),
|
||||||
|
Next: shy("迭代器", function(obj, cb, cbs) { obj = typeof obj == "string"? [obj]: (obj || [])
|
||||||
|
function next(list, cb, index) {
|
||||||
|
list && list.length > 0? typeof cb == "function" && cb(list[0], function() {
|
||||||
|
list.length > 0 && next(list.slice(1), cb, index+1)
|
||||||
|
}, index, obj): typeof cbs == "function" && cbs()
|
||||||
|
}
|
||||||
|
next(obj, cb, 0)
|
||||||
|
}),
|
||||||
|
|
||||||
|
Keys: shy("生成器", function() { var list = []
|
||||||
|
for (var i = 0; i < arguments.length; i++) { var v = arguments[i]
|
||||||
|
switch (typeof v) {
|
||||||
|
case "number": list.push(v+""); break
|
||||||
|
case "string": list.push(v); break
|
||||||
|
case "object": list.push(arguments.callee.apply(this, v)); break
|
||||||
|
case "function": list.push(v()); break
|
||||||
|
default: list.push(v+"")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list.join(".")
|
||||||
|
}),
|
||||||
|
Value: shy("存储器", function(data, key, value) {
|
||||||
|
if (data == undefined) { return }
|
||||||
|
if (key == undefined) { return data }
|
||||||
|
if (typeof key == "object") { for (var k in key) {
|
||||||
|
arguments.callee.call(this, data, k, key[k])
|
||||||
|
}; return data }
|
||||||
|
|
||||||
|
if (value != undefined) { data[key] = value }
|
||||||
|
if (data[key] != undefined) { return data[key] }
|
||||||
|
|
||||||
|
var p = data, ls = key.split("."); while (p && ls.length > 0) {
|
||||||
|
if (ls[0] == "-1") { ls[0] = p.length-1 }
|
||||||
|
p = p[ls[0]], ls = ls.slice(1)
|
||||||
|
}; return p
|
||||||
|
}),
|
||||||
|
CallFunc: shy("调用器", function(func, args, mod) { args = args||{}
|
||||||
|
var can = args["can"]||args[0], msg = args["msg"]||args[1]
|
||||||
|
|
||||||
|
func = typeof func == "function"? func: typeof func == "string"? this.Value(mod||can, func):
|
||||||
|
typeof func == "object" && func.slice? this.Value(func[0], this.Keys(func.slice(1))): null
|
||||||
|
if (typeof func != "function") { return }
|
||||||
|
|
||||||
|
var cb = args["cb"]
|
||||||
|
var ls = func.toString().split(")")[0].split("(")[1].split(",")
|
||||||
|
var list = [], echo = false; this.List(ls, function(item, index) { item = item.trim()
|
||||||
|
list.push(args[item] || args[index] || msg&&msg.Option&&msg.Option(item) || can&&can.Conf&&can.Conf(item) || null)
|
||||||
|
if (item == "cb") { echo = true }
|
||||||
|
})
|
||||||
|
|
||||||
|
var res = func.apply(mod||can, list)
|
||||||
|
if (!echo && typeof cb == "function") { res && msg.Echo(res), arguments.callee.apply(this, [cb, {msg: msg, res: res}]) }
|
||||||
|
return res
|
||||||
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
]},
|
]},
|
||||||
], ondblclick: function(event) { ui.Close() }}])
|
], ondblclick: function(event) { ui.Close() }}])
|
||||||
|
|
||||||
var timer = can.core.Timer({value: 100, length: (meta.duration||1000)/100}, function(event, interval, index) {
|
var timer = can.core.Timer({interval: 100, length: (meta.duration||1000)/100}, function(event, interval, index) {
|
||||||
if (index > 20) { ui.duration.innerHTML = parseInt(index/10)+"."+(index%10)+"s..." }
|
if (index > 20) { ui.duration.innerHTML = parseInt(index/10)+"."+(index%10)+"s..." }
|
||||||
}, function() {
|
}, function() {
|
||||||
can.page.Remove(can, ui.first), timer.stop = true
|
can.page.Remove(can, ui.first), timer.stop = true
|
||||||
|
@ -112,7 +112,7 @@ table.layout th {
|
|||||||
}
|
}
|
||||||
|
|
||||||
table.content {
|
table.content {
|
||||||
width:-webkit-fill-available;
|
/* width:-webkit-fill-available; */
|
||||||
border:0; white-space:pre;
|
border:0; white-space:pre;
|
||||||
font-size:14px; font-family:monospace;
|
font-size:14px; font-family:monospace;
|
||||||
cursor:pointer; overflow: auto;
|
cursor:pointer; overflow: auto;
|
||||||
|
@ -8,6 +8,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
|
|
||||||
can.onappend.plugin(can, item, function(sub, meta) {
|
can.onappend.plugin(can, item, function(sub, meta) {
|
||||||
can.onimport._plugin(can, river, storm, sub, meta), next()
|
can.onimport._plugin(can, river, storm, sub, meta), next()
|
||||||
|
sub._option.dataset = sub._option.dataset || {}
|
||||||
sub._option.dataset.id = item.id
|
sub._option.dataset.id = item.id
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -16,8 +17,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
||||||
var toast = msg.Option("_toast") && can.user.toast(can, msg.Option("_toast"), "", 1000000)
|
var toast = msg.Option("_toast") && can.user.toast(can, msg.Option("_toast"), "", 1000000)
|
||||||
return can.run(event, (can.onengine[cmds[0]]? []: [river, storm, item.id||item.index||item.key+"."+item.name]).concat(cmds), function(msg) {
|
return can.run(event, (can.onengine[cmds[0]]? []: [river, storm, item.id||item.index||item.key+"."+item.name]).concat(cmds), function(msg) {
|
||||||
console.log(sub)
|
|
||||||
console.log(item)
|
|
||||||
toast && toast.Close(), typeof cb == "function" && cb(msg)
|
toast && toast.Close(), typeof cb == "function" && cb(msg)
|
||||||
})
|
})
|
||||||
}, can._plugins = (can._plugins||[]).concat([sub])
|
}, can._plugins = (can._plugins||[]).concat([sub])
|
||||||
|
@ -100,7 +100,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}) })
|
}) })
|
||||||
},
|
},
|
||||||
_time: function(can, target) {
|
_time: function(can, target) {
|
||||||
can.core.Timer({interval: 1000, length: -1}, function() {
|
can.core.Timer({interval: 1000}, function() {
|
||||||
can.onimport.time(can, target)
|
can.onimport.time(can, target)
|
||||||
})
|
})
|
||||||
can.onappend.figure(can, {style: {left: "", right: "0", top: can._target.offsetHeight}}, "@date", target)
|
can.onappend.figure(can, {style: {left: "", right: "0", top: can._target.offsetHeight}}, "@date", target)
|
||||||
@ -188,7 +188,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
var msg = can.request(event, {name: meta.name, content: JSON.stringify(Volcanos.meta.pack)})
|
var msg = can.request(event, {name: meta.name, content: JSON.stringify(Volcanos.meta.pack)})
|
||||||
|
|
||||||
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
||||||
can.run(event, ["pack"], function(msg) {
|
can.run(event, ["webpack"], function(msg) {
|
||||||
toast.Close(), can.user.toast(can, "打包成功", "webpack")
|
toast.Close(), can.user.toast(can, "打包成功", "webpack")
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
|
@ -37,7 +37,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
|||||||
]},
|
]},
|
||||||
{view: "tags", style: {"max-height": 160}},
|
{view: "tags", style: {"max-height": 160}},
|
||||||
]},
|
]},
|
||||||
]); can.core.Copy(can.ui, ui, "search", "word", "tags")
|
]); can.base.Copy(can.ui, ui, "search", "word", "tags")
|
||||||
},
|
},
|
||||||
_favor: function(can, target) {
|
_favor: function(can, target) {
|
||||||
can.onappend.plugin(can, {index: "web.code.favor"}, function(sub) {
|
can.onappend.plugin(can, {index: "web.code.favor"}, function(sub) {
|
||||||
@ -207,7 +207,11 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "运行", "搜索"]
|
|||||||
|
|
||||||
typeof line == "object" && can.page.Select(can, line, "td.text", function(item) {
|
typeof line == "object" && can.page.Select(can, line, "td.text", function(item) {
|
||||||
can.current = {
|
can.current = {
|
||||||
scroll: function(x, y) { return can.ui.content.scrollBy(x, y) },
|
scroll: function(x, y) {
|
||||||
|
can.ui.content.scrollLeft += x
|
||||||
|
can.ui.content.scrollTop += y
|
||||||
|
// return can.ui.content.scrollBy(x, y)
|
||||||
|
},
|
||||||
window: function() { return can.ui.content.offsetHeight },
|
window: function() { return can.ui.content.offsetHeight },
|
||||||
offset: function() { return can.ui.content.scrollTop },
|
offset: function() { return can.ui.content.scrollTop },
|
||||||
|
|
||||||
@ -219,7 +223,7 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "运行", "搜索"]
|
|||||||
}
|
}
|
||||||
|
|
||||||
var push = {path: can.Option("path"), file: can.Option("file"), line: can.Option("line")}
|
var push = {path: can.Option("path"), file: can.Option("file"), line: can.Option("line")}
|
||||||
can.core.Eq({path: push.path, file: push.file}, can.history[can.history.length-1]) || can.history.push(push)
|
can.base.Eq({path: push.path, file: push.file}, can.history[can.history.length-1]) || can.history.push(push)
|
||||||
can.Status("跳转数", can.history.length)
|
can.Status("跳转数", can.history.length)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -15,7 +15,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _merge: function(can, sub)
|
|||||||
}, onblur: function(event) {
|
}, onblur: function(event) {
|
||||||
can.current.text(can.ui.current.value)
|
can.current.text(can.ui.current.value)
|
||||||
}, onfocus: function(event) {
|
}, onfocus: function(event) {
|
||||||
can._output.scrollBy(-1000, 0)
|
can._output.scrollLeft += -1000
|
||||||
|
|
||||||
can.current.scroll(-1000, 0)
|
can.current.scroll(-1000, 0)
|
||||||
}, onclick: function(event) {
|
}, onclick: function(event) {
|
||||||
can.onkeymap._insert(can)
|
can.onkeymap._insert(can)
|
||||||
@ -23,10 +24,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _merge: function(can, sub)
|
|||||||
{view: ["command", "input"], onkeydown: function(event) {
|
{view: ["command", "input"], onkeydown: function(event) {
|
||||||
can.onkeymap.parse(event, can, "command")
|
can.onkeymap.parse(event, can, "command")
|
||||||
}, onfocus: function(event) {
|
}, onfocus: function(event) {
|
||||||
can._output.scrollBy(-1000, 0)
|
can._output.scrollLeft += -1000
|
||||||
can.current.scroll(-1000, 0)
|
can.current.scroll(-1000, 0)
|
||||||
}},
|
}},
|
||||||
]); can.core.Copy(can.ui, ui, "current", "command")
|
]); can.base.Copy(can.ui, ui, "current", "command")
|
||||||
|
|
||||||
var ui = can.page.Appends(can, can.ui.display, [
|
var ui = can.page.Appends(can, can.ui.display, [
|
||||||
{view: "action", list: [
|
{view: "action", list: [
|
||||||
@ -43,7 +44,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _merge: function(can, sub)
|
|||||||
can.onmotion.hidden(can, can.ui.display)
|
can.onmotion.hidden(can, can.ui.display)
|
||||||
} ]},
|
} ]},
|
||||||
]}, {view: "output"},
|
]}, {view: "output"},
|
||||||
]); can.core.Copy(can.ui, ui, "output", "cmd")
|
]); can.base.Copy(can.ui, ui, "output", "cmd")
|
||||||
}, target)
|
}, target)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
fieldset.drawer div.output div.content svg {
|
fieldset.draw div.output div.content svg {
|
||||||
background-color:#1b5b738c;
|
background-color:#1b5b738c;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ fieldset.word h2.story {
|
|||||||
fieldset.word h3.story {
|
fieldset.word h3.story {
|
||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset.word h1:hover {
|
fieldset.word h1:hover {
|
||||||
background:green;
|
background:green;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
@ -61,11 +60,6 @@ fieldset.word div.story[data-type=spark] span:hover {
|
|||||||
fieldset.word svg.story {
|
fieldset.word svg.story {
|
||||||
display:block; float:left;
|
display:block; float:left;
|
||||||
}
|
}
|
||||||
fieldset.word fieldset.story {
|
|
||||||
margin:10px; border:0;
|
|
||||||
clear:both; float:left;
|
|
||||||
box-shadow: 4px 4px 10px 1px #626bd0;
|
|
||||||
}
|
|
||||||
fieldset.word code.story {
|
fieldset.word code.story {
|
||||||
display:block; border:solid 3px green;
|
display:block; border:solid 3px green;
|
||||||
color:white; background-color:#272822;
|
color:white; background-color:#272822;
|
||||||
@ -74,25 +68,41 @@ fieldset.word code.story {
|
|||||||
padding:10px; white-space:pre;
|
padding:10px; white-space:pre;
|
||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
|
fieldset.word fieldset.story {
|
||||||
|
margin:10px; border:0;
|
||||||
|
clear:both; float:left;
|
||||||
|
box-shadow: 4px 4px 10px 1px #626bd0;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset.word.float {
|
fieldset.word.float {
|
||||||
width:-webkit-fill-available;
|
width:-webkit-fill-available;
|
||||||
height:-webkit-fill-available;
|
|
||||||
position:absolute; left:0; top:0;
|
position:absolute; left:0; top:0;
|
||||||
background-color:aliceblue;
|
background-color:aliceblue;
|
||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
fieldset.word.float div.project {
|
fieldset.word.float>div.output {
|
||||||
background-color:aliceblue;
|
background-color:aliceblue;
|
||||||
|
overflow:auto;
|
||||||
|
padding:20px;
|
||||||
|
}
|
||||||
|
fieldset.word.float div.project {
|
||||||
|
background-color:#bad1e6a6;
|
||||||
padding:10px;
|
padding:10px;
|
||||||
}
|
}
|
||||||
fieldset.word.float div.content div.page {
|
fieldset.word.float div.content div.page {
|
||||||
|
background-color:aliceblue;
|
||||||
margin-top:30px;
|
margin-top:30px;
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
fieldset.word.float div.content div.page.select {
|
fieldset.word.float div.content div.page.select {
|
||||||
display:block;
|
display:block;
|
||||||
}
|
}
|
||||||
|
fieldset.word.float div.content.grid div.page {
|
||||||
|
float:left; display:block;
|
||||||
|
width:200px; height:200px;
|
||||||
|
overflow:auto; margin:10px;
|
||||||
|
background-color:#a4cbecb5;
|
||||||
|
}
|
||||||
|
|
||||||
fieldset.word.float h1 {
|
fieldset.word.float h1 {
|
||||||
text-align:center;
|
text-align:center;
|
||||||
@ -104,73 +114,3 @@ fieldset.word.float h3 {
|
|||||||
text-align:center;
|
text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.show>div.control {
|
|
||||||
background-color:aliceblue;
|
|
||||||
}
|
|
||||||
div.show>div.project div.item {
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
div.show>div.project div.item:hover {
|
|
||||||
background-color:white;
|
|
||||||
}
|
|
||||||
div.show>div.content {
|
|
||||||
background-color:aliceblue;
|
|
||||||
text-align:center;
|
|
||||||
padding:20px;
|
|
||||||
|
|
||||||
}
|
|
||||||
div.show>div.content h1 {
|
|
||||||
margin-top:100px;
|
|
||||||
font-size:60px;
|
|
||||||
}
|
|
||||||
div.show>div.content h2 {
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
div.show>div.content h3 {
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
div.show>div.content ul {
|
|
||||||
text-align:left;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page.first {
|
|
||||||
}
|
|
||||||
div.show>div.content div.page.first ul {
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page {
|
|
||||||
margin-top:30px;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page.show {
|
|
||||||
background-color:aliceblue;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page ul li.H2 {
|
|
||||||
font-size:24px;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page ul li.H3 {
|
|
||||||
font-size:16px;
|
|
||||||
}
|
|
||||||
div.show>div.content div.page code.story {
|
|
||||||
display:block; border:solid 3px green;
|
|
||||||
color:white; background-color:#272822;
|
|
||||||
font-size:14px; font-family:monospace;
|
|
||||||
max-height:640px; overflow:auto;
|
|
||||||
padding:10px; white-space:pre;
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.white fieldset.word p.story[data-name=inner] {
|
|
||||||
/* background-color:#bad8f7; */
|
|
||||||
border-left:solid 4px blue;
|
|
||||||
}
|
|
||||||
body.white fieldset.word div.story[data-type=spark] {
|
|
||||||
/* background-color:#c2daef; */
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
body.white fieldset.word div.story[data-type=spark] span:hover {
|
|
||||||
background-color:blue;
|
|
||||||
/* background-color:white; */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -7,20 +7,20 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.page.Select(can, target, ".story", function(item) { var data = item.dataset||{}
|
can.page.Select(can, target, ".story", function(item) { var data = item.dataset||{}
|
||||||
can.core.CallFunc([can.onimport, data.type], [can, data, item])
|
can.core.CallFunc([can.onimport, data.type], [can, data, item])
|
||||||
can.page.Modify(can, item, {style: can.base.Obj(data.style)})
|
can.page.Modify(can, item, {style: can.base.Obj(data.style)})
|
||||||
|
// delete(data.meta)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
premenu: function(can, list, target) { var meta = can.base.Obj(list.meta)
|
premenu: function(can, data, target) {
|
||||||
can.page.Select(can, can._output, "h2.story, h3.story", function(item) {
|
can.page.Select(can, can._output, "h2.story, h3.story", function(item) {
|
||||||
can.page.Append(can, target, [{text: [item.innerHTML, "li", item.tagName], onclick: function() {
|
can.page.Append(can, target, [{text: [item.innerHTML, "li", item.tagName], onclick: function() {
|
||||||
item.scrollIntoView()
|
item.scrollIntoView()
|
||||||
}}]), item.onclick = function(event) {
|
}}])
|
||||||
target.scrollIntoView()
|
item.onclick = function(event) { target.scrollIntoView() }
|
||||||
}
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
spark: function(can, item, target) {
|
spark: function(can, data, target) {
|
||||||
if (item["name"] == "inner") {
|
if (data["name"] == "inner") {
|
||||||
target.title = "点击复制", target.onclick = function(event) {
|
target.title = "点击复制", target.onclick = function(event) {
|
||||||
can.user.copy(event, can, target.innerText)
|
can.user.copy(event, can, target.innerText)
|
||||||
}
|
}
|
||||||
@ -32,61 +32,44 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
field: function(can, item, target) { var meta = can.base.Obj(item.meta)
|
table: function(can, data, target) {
|
||||||
meta.width = can.Conf("width"), meta.height = can.Conf("height")
|
can.page.ClassList.add(can, target, "content")
|
||||||
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
|
|
||||||
sub.run = function(event, cmds, cb, silent) {
|
|
||||||
can.run(event, (cmds[0] == "search"? []: ["action", "story", item.type, item.name, item.text]).concat(cmds), cb, true)
|
|
||||||
}
|
|
||||||
delete(target.dataset.meta)
|
|
||||||
}, can._output, target)
|
|
||||||
},
|
|
||||||
|
|
||||||
table: function(can, list, target) {
|
|
||||||
can.page.Select(can, target, "td", function(item) {
|
can.page.Select(can, target, "td", function(item) {
|
||||||
item.title = "点击复制", item.onclick = function(event) {
|
item.title = "点击复制", item.onclick = function(event) {
|
||||||
can.user.copy(event, can, item.innerText)
|
can.user.copy(event, can, item.innerText)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
iframe: function(can, list, target) { var meta = can.base.Obj(list.meta)
|
field: function(can, data, target) { var meta = can.base.Obj(data.meta)
|
||||||
|
meta.width = can.Conf("width"), meta.height = can.Conf("height")
|
||||||
|
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
|
||||||
|
sub.run = function(event, cmds, cb, silent) {
|
||||||
|
can.run(event, (cmds[0] == "search"? []: ["action", "story", data.type, data.name, data.text]).concat(cmds), cb, true)
|
||||||
|
}
|
||||||
|
}, can._output, target)
|
||||||
|
},
|
||||||
|
|
||||||
|
iframe: function(can, data, target) { var meta = can.base.Obj(data.meta)
|
||||||
can.page.Modify(can, target, {width: can.Conf("width")-200})
|
can.page.Modify(can, target, {width: can.Conf("width")-200})
|
||||||
},
|
},
|
||||||
keydown: function(event, can, key) {
|
|
||||||
switch (key) {
|
|
||||||
case "g":
|
|
||||||
can.ui["布局"].value = "网格"
|
|
||||||
can.onaction.grid(can)
|
|
||||||
break
|
|
||||||
case "f":
|
|
||||||
can.ui["布局"].value = "快闪"
|
|
||||||
can.onaction.flash(can)
|
|
||||||
break
|
|
||||||
case "s":
|
|
||||||
can.ui["布局"].value = "层叠"
|
|
||||||
can.onaction.spring(can)
|
|
||||||
break
|
|
||||||
case "n":
|
|
||||||
case "j":
|
|
||||||
case "ArrowRight":
|
|
||||||
can.onaction.next(can)
|
|
||||||
break
|
|
||||||
case "k":
|
|
||||||
case "p":
|
|
||||||
case "ArrowLeft":
|
|
||||||
can.onaction.prev(can)
|
|
||||||
break
|
|
||||||
case "t":
|
|
||||||
can.page.Toggle(can, can.ui.content)
|
|
||||||
break
|
|
||||||
case "q":
|
|
||||||
can.ui && can.page.Remove(can, can.ui.show)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}, ["/plugin/local/wiki/word.css"])
|
}, ["/plugin/local/wiki/word.css"])
|
||||||
|
Volcanos("onkeypop", {help: "键盘交互", list: [],
|
||||||
|
_mode: {
|
||||||
|
normal: {
|
||||||
|
"n": function(event, can) { can.onaction.next(can.sub) },
|
||||||
|
"j": function(event, can) { can.onaction.next(can.sub) },
|
||||||
|
"ArrowRight": function(event, can) { can.onaction.next(can.sub) },
|
||||||
|
"ArrowLeft": function(event, can) { can.onaction.prev(can.sub) },
|
||||||
|
"k": function(event, can) { can.onaction.prev(can.sub) },
|
||||||
|
"p": function(event, can) { can.onaction.prev(can.sub) },
|
||||||
|
|
||||||
|
"q": function(event, can) { can.onaction["结束"](event, can.sub) },
|
||||||
|
"h": function(event, can) { can.onaction["隐藏"](event, can.sub) },
|
||||||
|
},
|
||||||
|
}, _engine: {},
|
||||||
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: [],
|
Volcanos("onaction", {help: "控件交互", list: [],
|
||||||
"演示": function(event, can) {
|
"演示": function(event, can) { var list = [], current = []
|
||||||
var current = [], list = []
|
|
||||||
can.page.Select(can, can._output, ".story", function(item) {
|
can.page.Select(can, can._output, ".story", function(item) {
|
||||||
switch (item.tagName) {
|
switch (item.tagName) {
|
||||||
case "H1":
|
case "H1":
|
||||||
@ -98,174 +81,90 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
|||||||
current.push(item)
|
current.push(item)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.onappend._init(can, {type: "story word float"}, [], function(sub) {
|
can.onappend._init(can, {type: "story word float"}, [], function(sub) { sub.sup = can
|
||||||
sub.ui = sub.page.Append(sub, sub._output, [{view: "project"}, {view: "content"}])
|
can.onappend._action(sub, [
|
||||||
sub.run = function(event, cmds, cb) { can.run(event, cmds, cb, true) }
|
["布局", "开讲", "快闪", "网格"],
|
||||||
|
|
||||||
sub.onappend._action(sub, [
|
|
||||||
["布局", "开讲", "快闪", "网格", "层叠"],
|
|
||||||
"大纲", "首页", "上一页",
|
"大纲", "首页", "上一页",
|
||||||
["菜单"].concat(can.page.Select(can, can._output, "h1,h2,h3", function(item) { return item.innerHTML })),
|
["菜单"].concat(can.core.List(list, function(page) { return page[0].innerHTML })),
|
||||||
"下一页", "隐藏", "结束",
|
"下一页", "隐藏", "结束",
|
||||||
], sub._action, {
|
], sub._action, can.onaction)
|
||||||
"开讲": function(event) { sub.onaction.show(sub, 0) },
|
|
||||||
"网格": function(event) { sub.onaction.grid(sub) },
|
|
||||||
"快闪": function(event) { sub.onaction.flash(sub) },
|
|
||||||
"层叠": function(event) { sub.onaction.spring(sub) },
|
|
||||||
|
|
||||||
"大纲": function(event) { sub.page.Toggle(sub, sub.ui.project) },
|
can.sub = sub, can.onkeypop._build(can)
|
||||||
|
can.onengine.signal(can, "keymap.focus", can.request(event, {cb: function(event) {
|
||||||
"首页": function(event) { can.onaction.show(sub, 0) },
|
can.keylist = can.onkeypop._parse(event, can, "normal", can.keylist)
|
||||||
"上一页": function(event) { can.onaction.prev(sub, sub.ui.content) },
|
}}))
|
||||||
"菜单": function(event) { can.onaction.show(sub, event.target.selectedIndex) },
|
|
||||||
"下一页": function(event) { can.onaction.next(sub, sub.ui.content) },
|
|
||||||
|
|
||||||
"隐藏": function(event) { sub.page.Toggle(sub, sub._output) },
|
|
||||||
"结束": function(event) { sub.page.Remove(sub, sub._target) },
|
|
||||||
})
|
|
||||||
|
|
||||||
can.onmotion.hidden(can, sub.ui.project)
|
|
||||||
can.page.Select(can, can._output, "h1.story,h2.story,h3.story", function(item, index) {
|
|
||||||
can.onappend.item(can, "item", {name: item.innerHTML}, function(event) {
|
|
||||||
can.onaction.show(sub, index)
|
|
||||||
}, function(event) {
|
|
||||||
|
|
||||||
}, sub.ui.project)
|
|
||||||
})
|
|
||||||
|
|
||||||
|
sub.list = list
|
||||||
|
sub.page.Modify(sub, sub._output, {style: {"width": window.innerWidth-40}})
|
||||||
|
sub.page.Modify(sub, sub._output, {style: {"height": window.innerHeight-93}})
|
||||||
|
sub.ui = sub.page.Append(sub, sub._output, [{view: "project"}, {view: "content"}])
|
||||||
can.core.List(list, function(page, index) {
|
can.core.List(list, function(page, index) {
|
||||||
var items = can.core.List(page, function(item) {
|
can.onappend.item(can, "item", {name: page[0].innerHTML}, function(event) {
|
||||||
switch (item.tagName) {
|
can.onaction.show(sub, index)
|
||||||
case "FIELDSET":
|
}, function(event) {}, sub.ui.project)
|
||||||
return can.onappend._init(can, can.base.Obj(item.dataset.meta), ["/plugin/state.js"], function(sub) {
|
|
||||||
sub.run = function(event, cmds, cb) {
|
|
||||||
can.run(event, (cmds[0] == "search"? []: ["action", "story", item.dataset.type, item.dataset.name, item.dataset.text]).concat(cmds), cb, true)
|
|
||||||
}
|
|
||||||
}, sub.ui.content)._target
|
|
||||||
default: return item.cloneNode(true)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
sub.page.Append(sub, sub.ui.content, [{view: "page "+(index==0?"select": "")+(index==0? " first": ""), list: items}])
|
sub.page.Append(sub, sub.ui.content, [{view: "page"+(index==0? " first": ""), list: can.core.List(page, function(item) { var data = item.dataset||{}
|
||||||
|
switch (data.type) {
|
||||||
|
case "premenu": item = item.cloneNode(false); break
|
||||||
|
case "field": item = can.onappend.field(can, "story", can.base.Obj(data.meta), sub.ui.content).first; break
|
||||||
|
default: item = item.cloneNode(true)
|
||||||
|
}
|
||||||
|
return can.core.CallFunc([can.onimport, data.type], [can, data, item]), item
|
||||||
|
}), }])
|
||||||
|
}), can.onmotion.hidden(can, sub.ui.project)
|
||||||
|
can.onaction.show(sub, 0)
|
||||||
|
|
||||||
|
sub.Status("from", can.base.Time(null, "%H:%M:%S"))
|
||||||
|
var from = new Date(); can.core.Timer({interval: 100}, function() { var now = new Date()
|
||||||
|
sub.Status("cost", can.base.Duration(now-from))
|
||||||
})
|
})
|
||||||
}, document.body)
|
}, document.body)
|
||||||
},
|
},
|
||||||
|
|
||||||
show: function(can, which) {
|
"开讲": function(event, sub) { sub.sup.onaction.show(sub, 0) },
|
||||||
can.page.Select(can, can.ui.content, "div.page", function(page, index) {
|
"快闪": function(event, sub) { sub.sup.onaction.flash(sub) },
|
||||||
if (index == which) {
|
"网格": function(event, sub) { sub.sup.onaction.grid(sub) },
|
||||||
can.page.ClassList.add(can, page, "select")
|
|
||||||
can.page.Select(can, page, "h1,h2,h3", function(item) {
|
|
||||||
can.Action("菜单", item.innerHTML)
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
can.page.ClassList.del(can, page, "select")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
next: function(can, target) {
|
|
||||||
can.page.Select(can, target, "div.page.select", function(page) {
|
|
||||||
if (page.nextSibling) {
|
|
||||||
can.page.ClassList.del(can, page, "select")
|
|
||||||
can.page.ClassList.add(can, page.nextSibling, "select")
|
|
||||||
|
|
||||||
can.page.Select(can, page.nextSibling, "h1,h2,h3", function(item) {
|
"大纲": function(event, sub) { sub.page.Toggle(sub, sub.ui.project) },
|
||||||
can.Action("菜单", item.innerHTML)
|
"首页": function(event, sub) { sub.sup.onaction.show(sub, 0) },
|
||||||
})
|
"上一页": function(event, sub) { sub.sup.onaction.prev(sub, sub.ui.content) },
|
||||||
} else {
|
"菜单": function(event, sub) { sub.sup.onaction.show(sub, event.target.selectedIndex) },
|
||||||
can.user.toast(can, "end")
|
"下一页": function(event, sub) { sub.sup.onaction.next(sub, sub.ui.content) },
|
||||||
}
|
"隐藏": function(event, sub) { sub.page.Toggle(sub, sub._output) },
|
||||||
})
|
"结束": function(event, sub) { sub.page.Remove(sub, sub._target)
|
||||||
|
sub.onengine.signal(sub, "keymap.focus", sub.request(event, {cb: null}))
|
||||||
},
|
},
|
||||||
prev: function(can, target) {
|
|
||||||
can.page.Select(can, target, "div.page.select", function(page) {
|
|
||||||
if (page.previousSibling) {
|
|
||||||
can.page.ClassList.del(can, page, "select")
|
|
||||||
can.page.ClassList.add(can, page.previousSibling, "select")
|
|
||||||
|
|
||||||
can.page.Select(can, page.previousSibling, "h1,h2,h3", function(item) {
|
show: function(sub, which) { sub.page.Modify(sub, sub.ui.content, {className: "content"})
|
||||||
can.Action("菜单", item.innerHTML)
|
sub.page.Select(sub, sub.ui.content, "div.page", function(page, index) {
|
||||||
})
|
if (index == which || page == which) {
|
||||||
|
sub.page.Select(sub, page, "h1,h2,h3", function(item) { sub.Action("菜单", item.innerHTML) })
|
||||||
|
sub.onmotion.select(sub, sub.ui.project, "div.item", index)
|
||||||
|
sub.page.ClassList.add(sub, page, "select")
|
||||||
|
sub.Status("page", index+1+"/"+sub.list.length)
|
||||||
} else {
|
} else {
|
||||||
can.user.toast(can, "end")
|
sub.page.ClassList.del(sub, page, "select")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
grid: function(can) {
|
next: function(sub) {
|
||||||
can.page.Select(can, can.ui.content, "div.page.show", function(page) {
|
sub.page.Select(sub, sub.ui.content, "div.page.select", function(page) {
|
||||||
can.page.ClassList.del(can, page, "show")
|
page.nextSibling? sub.sup.onaction.show(sub, page.nextSibling):
|
||||||
})
|
sub.user.toast(sub, "end")
|
||||||
can.core.Next(can.page.Select(can, can.ui.content, "div.page"), function(page, next, index) {
|
|
||||||
can.page.ClassList.add(can, page, "show"), can.page.Modify(can, page, {style: {
|
|
||||||
"position": "relative", "float": "left",
|
|
||||||
"margin-left": 0, "margin-top": 0,
|
|
||||||
"width": 200, "height": 200,
|
|
||||||
"border": "solid 2px red",
|
|
||||||
"overflow": "auto",
|
|
||||||
}, onclick: function(event) {
|
|
||||||
page.style.position == "absolute"? can.page.Modify(can, page, {style: {
|
|
||||||
"position": "relative", "float": "left",
|
|
||||||
"margin-left": 0, "margin-top": 0,
|
|
||||||
"width": 200, "height": 200,
|
|
||||||
"border": "solid 2px red",
|
|
||||||
"overflow": "auto",
|
|
||||||
"z-index": 0,
|
|
||||||
}}): can.page.Modify(can, page, {style: {
|
|
||||||
"position": "absolute", "float": "none",
|
|
||||||
"margin-left": 20, "margin-top": 40,
|
|
||||||
"width": document.body.offsetWidth, "height": document.body.offsetHeight,
|
|
||||||
"overflow": "auto",
|
|
||||||
"border": "",
|
|
||||||
"z-index": 10,
|
|
||||||
}})
|
|
||||||
}, })
|
|
||||||
can.onmotion.show(can, {value: 10, length: 20}, next, page)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
flash: function(can) {
|
prev: function(sub) {
|
||||||
can.page.Select(can, can.ui.content, "div.page.show", function(page) {
|
sub.page.Select(sub, sub.ui.content, "div.page.select", function(page) {
|
||||||
can.page.ClassList.del(can, page, "show")
|
page.previousSibling? sub.sup.onaction.show(sub, page.previousSibling):
|
||||||
})
|
sub.user.toast(sub, "end")
|
||||||
can.core.Next(can.page.Select(can, can.ui.content, "div.page"), function(page, next, index) {
|
|
||||||
can.page.ClassList.add(can, page, "show"), can.page.Modify(can, page, {style: {
|
|
||||||
"position": "absolute", "float": "none",
|
|
||||||
"margin-left": 20, "margin-top": 40,
|
|
||||||
"width": document.body.offsetWidth, "height": document.body.offsetHeight,
|
|
||||||
"border": "none",
|
|
||||||
"overflow": "auto",
|
|
||||||
}, ondblclick: function(event) {
|
|
||||||
can.onaction.show(can, index)
|
|
||||||
can.ui["布局"].value = "开讲"
|
|
||||||
}, onclick: function(event) {
|
|
||||||
can.onaction.show(can, index)
|
|
||||||
can.ui["布局"].value = "开讲"
|
|
||||||
}, })
|
|
||||||
can.onmotion.show(can, {value: 10, length: 20}, next, page)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
spring: function(can) {
|
flash: function(sub) {
|
||||||
can.page.Select(can, can.ui.content, "div.page.show", function(page) {
|
sub.core.Next(sub.page.Select(sub, sub.ui.content, "div.page"), function(page, next) {
|
||||||
can.page.ClassList.del(can, page, "show")
|
sub.core.Timer(500, function() { next() })
|
||||||
})
|
sub.sup.onaction.show(sub, page)
|
||||||
can.core.Next(can.page.Select(can, can.ui.content, "div.page"), function(page, next, index) {
|
|
||||||
can.page.ClassList.add(can, page, "show"), can.page.Modify(can, page, {style: {
|
|
||||||
"position": "absolute", "float": "none",
|
|
||||||
"margin-left": 10*(index+1), "margin-top": 60*(index+1),
|
|
||||||
"height": document.body.offsetHeight,
|
|
||||||
"width": document.body.offsetWidth,
|
|
||||||
"border": "solid 2px red",
|
|
||||||
"overflow": "auto",
|
|
||||||
}, onclick: function(event) {
|
|
||||||
page.style["margin-left"] == "0px"? can.page.Modify(can, page, {style: {
|
|
||||||
"margin-left": 10*(index+1), "margin-top": 60*(index+1),
|
|
||||||
"z-index": 0,
|
|
||||||
}}): can.page.Modify(can, page, {style: {
|
|
||||||
"margin-left": 0, "margin-top": 60*(index+1),
|
|
||||||
"z-index": 10,
|
|
||||||
}})
|
|
||||||
}, })
|
|
||||||
can.onmotion.show(can, {value: 10, length: 20}, next, page)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
grid: function(sub) { sub.page.Modify(sub, sub.ui.content, {className: "content grid"}) },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can._tree = can.onimport._tree(can, msg.Table(), "path", "/")
|
can._tree = can.onimport._tree(can, msg.Table(), "path", "/")
|
||||||
|
|
||||||
can.onmotion.clear(can)
|
can.onmotion.clear(can)
|
||||||
can.onappend.plugins(can, {index: "web.wiki.draw"}, function(sub) {
|
can.onappend.plugins(can, {type: "inner draw drawer", index: "web.wiki.draw"}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
typeof cb == "function" && cb(sub.request())
|
typeof cb == "function" && cb(sub.request())
|
||||||
can.core.Timer(100, function() { can.sub = sub._outputs[0]
|
can.core.Timer(100, function() { can.sub = sub._outputs[0]
|
||||||
@ -16,9 +16,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
sub.Action("go", "run")
|
sub.Action("go", "run")
|
||||||
|
|
||||||
can.onaction[can.Action("view")](event, can)
|
can.onaction[can.Action("view")](event, can)
|
||||||
can.onlayout.resize(can, "action.resize", function(event) {
|
|
||||||
can.onaction[can.Action("view")](event, can)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.Action("height", parseInt(msg.Option("height")||"400"))
|
can.Action("height", parseInt(msg.Option("height")||"400"))
|
||||||
|
|
||||||
can.onmotion.clear(can)
|
can.onmotion.clear(can)
|
||||||
can.onappend.plugins(can, {index: "web.wiki.draw"}, function(sub) {
|
can.onappend.plugins(can, {type: "inner draw drawer", index: "web.wiki.draw"}, function(sub) {
|
||||||
sub.run = function(event, cmds, cb) { typeof cb == "function" && cb(sub.request())
|
sub.run = function(event, cmds, cb) { typeof cb == "function" && cb(sub.request())
|
||||||
can.core.Timer(100, function() { can.sub = sub._outputs[0]
|
can.core.Timer(100, function() { can.sub = sub._outputs[0]
|
||||||
can.sub.onmotion.hidden(can.sub, can.sub.ui.project)
|
can.sub.onmotion.hidden(can.sub, can.sub.ui.project)
|
||||||
|
2
proto.js
2
proto.js
@ -24,7 +24,7 @@ var Volcanos = shy("火山架", {pack: {}, libs: [], cache: {}}, [], function(na
|
|||||||
// 根模块
|
// 根模块
|
||||||
name = Config.name, can = {_follow: Config.name, _target: document.body}
|
name = Config.name, can = {_follow: Config.name, _target: document.body}
|
||||||
libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) {
|
libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) {
|
||||||
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.base.Log(name, "run", can)
|
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.base.Log(can.user.title(), "run", can)
|
||||||
document.body.onresize = function() { can.onlayout._init(can, can._target) }
|
document.body.onresize = function() { can.onlayout._init(can, can._target) }
|
||||||
}, can._target)
|
}, can._target)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user