mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt carte
This commit is contained in:
parent
e7ed0ce3e6
commit
6335a8a3fe
38
frame.js
38
frame.js
@ -3,17 +3,21 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
|||||||
can.core.Next(list, function(item, next) { item.type = "panel"
|
can.core.Next(list, function(item, next) { item.type = "panel"
|
||||||
can.onappend._init(can, item, item.list, function(panel) {
|
can.onappend._init(can, item, item.list, function(panel) {
|
||||||
panel.onaction && panel.onappend._action(panel, item.action||panel.onaction.list)
|
panel.onaction && panel.onappend._action(panel, item.action||panel.onaction.list)
|
||||||
panel.Status = panel.Status || function(key, value) { panel.run({}, ["search", "Footer.onimport."+key, value]) }
|
panel.Status = panel.Status || function(key, value) { panel.search({}, ["Footer.onimport."+key, value]) }
|
||||||
|
|
||||||
panel.run = function(event, cmds, cb) { var msg = panel.request(event); cmds = cmds || []
|
panel.run = function(event, cmds, cb) { var msg = panel.request(event); cmds = cmds || []
|
||||||
return (can.onengine[cmds[0]]||can.onengine[meta.main.engine]||can.onengine.remote)(event, can, msg, panel, cmds, cb)
|
return (can.onengine[cmds[0]]||can.onengine[meta.main.engine]||can.onengine.remote)(event, can, msg, panel, cmds, cb)
|
||||||
}, can[item.name] = panel, next()
|
}, can[item.name] = panel, next()
|
||||||
|
|
||||||
|
panel.page.Modify(panel, panel._output, {onmouseover: function(event) {
|
||||||
|
Volcanos.meta.data.menu && panel.page.Remove(panel, Volcanos.meta.data.menu.first)
|
||||||
|
}})
|
||||||
}, target)
|
}, target)
|
||||||
}, function() {
|
}, function() {
|
||||||
var panel = can[meta.main.name], msg = can.request()
|
var panel = can[meta.main.name], msg = can.request()
|
||||||
panel.onmotion._init(panel, target), panel.onkeypop._init(panel, target)
|
panel.onmotion._init(panel, target), panel.onkeypop._init(panel, target)
|
||||||
panel.onaction._init(panel, msg, [], cb, panel._target)
|
panel.onaction._init(panel, msg, [], cb, panel._target)
|
||||||
}), can.ondaemon._init(can)
|
})
|
||||||
},
|
},
|
||||||
search: function(event, can, msg, panel, cmds, cb) {
|
search: function(event, can, msg, panel, cmds, cb) {
|
||||||
var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split("."), function(value) {
|
var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split("."), function(value) {
|
||||||
@ -34,7 +38,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
|||||||
delete(msg._handle), delete(msg._toast)
|
delete(msg._handle), delete(msg._toast)
|
||||||
if (panel.onengine.engine(event, can, msg, panel, cmds, cb)) { return }
|
if (panel.onengine.engine(event, can, msg, panel, cmds, cb)) { return }
|
||||||
can.misc.Runs(event, can, {names: panel._name, daemon: can._daemon+"."+msg._daemon}, cmds, cb)
|
can.misc.Runs(event, can, {names: panel._name, daemon: can._daemon+"."+msg._daemon}, cmds, cb)
|
||||||
panel.run(event, ["search", "Footer.onimport.ncmd"])
|
panel.search(event, ["Footer.onimport.ncmd"])
|
||||||
}, engine: function(event, can, msg, panel, cmds, cb) { return false },
|
}, engine: function(event, can, msg, panel, 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)
|
||||||
@ -267,6 +271,10 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
can.base.isFunc(cb) && cb(sub)
|
can.base.isFunc(cb) && cb(sub)
|
||||||
meta.option = can.base.Obj(meta.option||"{}", {})
|
meta.option = can.base.Obj(meta.option||"{}", {})
|
||||||
meta.inputs && sub.onappend._option(sub, meta, sub._option)
|
meta.inputs && sub.onappend._option(sub, meta, sub._option)
|
||||||
|
|
||||||
|
sub.page.Modify(sub, sub._legend, {
|
||||||
|
onmouseenter: function(event) { sub.user.carte(event, sub, sub.onaction, sub.onaction.list) },
|
||||||
|
})
|
||||||
}); return sub
|
}); return sub
|
||||||
},
|
},
|
||||||
_option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, [])
|
_option: function(can, meta, option) { var index = -1, args = can.base.Obj(meta.args||meta.arg, [])
|
||||||
@ -405,7 +413,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
item: function(can, type, item, cb, cbs, target) {
|
item: function(can, type, item, cb, cbs, target) { target = target||can._output
|
||||||
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],
|
||||||
onclick: function(event) { cb(event, ui.first)
|
onclick: function(event) { cb(event, ui.first)
|
||||||
can.onmotion.select(can, target, "div."+type, ui.first)
|
can.onmotion.select(can, target, "div."+type, ui.first)
|
||||||
@ -527,6 +535,12 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
}, can._figure = sub
|
}, can._figure = sub
|
||||||
|
|
||||||
meta.style && sub.page.Modify(sub, sub._target, {style: meta.style})
|
meta.style && sub.page.Modify(sub, sub._target, {style: meta.style})
|
||||||
|
|
||||||
|
var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight
|
||||||
|
var left = event.clientX, top = event.clientY
|
||||||
|
if (left+sub._target.offsetWidth>window.innerWidth) { left = window.innerWidth - sub._target.offsetWidth }
|
||||||
|
can.page.Modify(can, sub._target, {style: {left: left, top: top}})
|
||||||
|
|
||||||
cb(event, sub, meta, target)
|
cb(event, sub, meta, target)
|
||||||
}, document.body)
|
}, document.body)
|
||||||
}
|
}
|
||||||
@ -543,12 +557,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
|||||||
meta.height = meta.height||can.Conf("height")
|
meta.height = meta.height||can.Conf("height")
|
||||||
meta.type = meta.type||"story"
|
meta.type = meta.type||"story"
|
||||||
|
|
||||||
can.page.Modify(can, can._output, {
|
|
||||||
onmouseover: function(event) {
|
|
||||||
Volcanos.meta.data.menu && can.page.Remove(can, Volcanos.meta.data.menu.first)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
|
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
|
||||||
meta.type == "story" && sub.page.Remove(sub, sub._legend)
|
meta.type == "story" && sub.page.Remove(sub, sub._legend)
|
||||||
sub.base.isFunc(cb) && cb(sub, meta)
|
sub.base.isFunc(cb) && cb(sub, meta)
|
||||||
@ -716,11 +724,11 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
j: function(event, can, target) { target.scrollBy(0, event.ctrlKey? 300: 30) },
|
j: function(event, can, target) { target.scrollBy(0, event.ctrlKey? 300: 30) },
|
||||||
k: function(event, can, target) { target.scrollBy(0, -30) },
|
k: function(event, can, target) { target.scrollBy(0, -30) },
|
||||||
|
|
||||||
b: function(event, can, target) { can.run(event, ["search", "Header.onaction.black"]) },
|
b: function(event, can, target) { can.search(event, ["Header.onaction.black"]) },
|
||||||
w: function(event, can, target) { can.run(event, ["search", "Header.onaction.white"]) },
|
w: function(event, can, target) { can.search(event, ["Header.onaction.white"]) },
|
||||||
|
|
||||||
s: function(event, can, target) { can.run(event, ["search", "River.ondetail.添加应用"]) },
|
s: function(event, can, target) { can.search(event, ["River.ondetail.添加应用"]) },
|
||||||
t: function(event, can, target) { can.run(event, ["search", "River.ondetail.添加工具"]) },
|
t: function(event, can, target) { can.search(event, ["River.ondetail.添加工具"]) },
|
||||||
|
|
||||||
" ": function(event, can, target) {
|
" ": function(event, can, target) {
|
||||||
can.page.Select(can, document.body, "fieldset.panel.Header div.search input", function(target) {
|
can.page.Select(can, document.body, "fieldset.panel.Header div.search input", function(target) {
|
||||||
@ -729,7 +737,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
|||||||
},
|
},
|
||||||
enter: function(event, can, target) { can.base.Log("enter") },
|
enter: function(event, can, target) { can.base.Log("enter") },
|
||||||
escape: function(event, can, target) {
|
escape: function(event, can, target) {
|
||||||
can.run(event, ["search", "Search.onaction.hide"])
|
can.search(event, ["Search.onaction.hide"])
|
||||||
can.base.Log("enter")
|
can.base.Log("enter")
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
41
lib/user.js
41
lib/user.js
@ -87,10 +87,10 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
close: function(event) { ui.Close() },
|
close: function(event) { ui.Close() },
|
||||||
})
|
})
|
||||||
|
|
||||||
can.run && can.run(can.request({}, {
|
can.search && can.search(can.request({}, {
|
||||||
title: meta.title, content: meta.content,
|
title: meta.title, content: meta.content,
|
||||||
time: can.base.Time(), fileline: can.base.FileLine(2, 2),
|
time: can.base.Time(), fileline: can.base.FileLine(2, 2),
|
||||||
})._event, ["search", "Footer.onimport.toast"], null, true)
|
})._event, ["Footer.onimport.toast"], null, true)
|
||||||
return ui
|
return ui
|
||||||
},
|
},
|
||||||
share: function(can, msg, cmd) {
|
share: function(can, msg, cmd) {
|
||||||
@ -129,7 +129,7 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
can.user.reload(true)
|
can.user.reload(true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
can.run(event, ["search"].concat(msg["detail"]||[]), function(msg) {
|
can.search(event, msg["detail"]||[], function(msg) {
|
||||||
msg.Reply()
|
msg.Reply()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -144,32 +144,25 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
|
|
||||||
can.page.Modify(can, ui.first, {style: {left: (window.innerWidth-ui.first.offsetWidth)/2}})
|
can.page.Modify(can, ui.first, {style: {left: (window.innerWidth-ui.first.offsetWidth)/2}})
|
||||||
},
|
},
|
||||||
carte: function(event, can, meta, list, cb, view) {
|
carte: function(event, can, meta, list, cb) {
|
||||||
meta = meta||can.ondetail||can.onaction||{}, list = list&&list.length > 0? list: meta.list||[]; if (list.length == 0) { return }
|
meta = meta||can.ondetail||can.onaction||{}, list = list&&list.length > 0? list: meta.list||[]; if (list.length == 0) { return }
|
||||||
cb = cb||function(ev, item, meta) {
|
cb = cb||function(ev, item, meta) { var cb = meta[item]; can.base.isFunc(cb) && cb(event, can, item) }
|
||||||
var cb = meta[item] || can.ondetail&&can.ondetail[item] || can.onaction&&can.onaction[item]
|
|
||||||
typeof cb == "function" && cb(event, can, item)
|
|
||||||
}
|
|
||||||
|
|
||||||
var x = event.clientX, y = event.clientY; y += 0; if (x > 600) { x -= 20 }
|
var ui = can.page.Append(can, document.body, [{view: "carte", style: {left: 0, top: 0}, onmouseleave: function(event) {
|
||||||
|
|
||||||
var ui = can.page.Append(can, document.body, [{view: "carte", style: {left: x, top: y}, onmouseleave: function(event) {
|
|
||||||
can.page.Remove(can, ui.first)
|
can.page.Remove(can, ui.first)
|
||||||
}, list: can.core.List(list, function(item) {
|
}, list: can.core.List(list, function(item) {
|
||||||
return {view: "item", list: [typeof item == "string"? /* button */ {text: can.user.trans(can, item), click: function(event) {
|
return {view: "item", list: [{text: can.user.trans(can, item), click: function(event) {
|
||||||
can.user.isMobile && can.page.Remove(can, ui.first)
|
can.user.isMobile && can.page.Remove(can, ui.first)
|
||||||
typeof cb == "function" && cb(event, item, meta)
|
can.base.isFunc(cb) && cb(event, item, meta)
|
||||||
}}: item.args? /* input */ {text: item.name, click: function(event) {
|
} }] }
|
||||||
can.user.input(event, can, item.args, cb)
|
}) }] )
|
||||||
}}: /* select */ {select: [item, function(event) {
|
|
||||||
typeof cb == "function" && cb(event, event.target.value, meta)
|
|
||||||
}]} ]}
|
|
||||||
}) }])
|
|
||||||
|
|
||||||
view && can.page.Modify(can, ui.first, view)
|
var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight
|
||||||
event.stopPropagation()
|
if (left+ui.first.offsetWidth>window.innerWidth) { left = window.innerWidth - ui.first.offsetWidth }
|
||||||
event.preventDefault()
|
can.page.Modify(can, ui.first, {style: {left: left, top: top}})
|
||||||
return ui
|
|
||||||
|
Volcanos.meta.data.menu && can.page.Remove(can, Volcanos.meta.data.menu.first)
|
||||||
|
return event.stopPropagation(), event.preventDefault(), Volcanos.meta.data.menu = ui
|
||||||
},
|
},
|
||||||
input: function(event, can, form, cb) { // form [ string, array, object, {_input: }, {button: []} ]
|
input: function(event, can, form, cb) { // form [ string, array, object, {_input: }, {button: []} ]
|
||||||
var msg = can.request(event, can.Option())
|
var msg = can.request(event, can.Option())
|
||||||
@ -226,7 +219,7 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
},
|
},
|
||||||
select: function(event, can, type, fields, cb, cbs) {
|
select: function(event, can, type, fields, cb, cbs) {
|
||||||
var msg = can.request(event, {fields: fields||"type,name,text"})
|
var msg = can.request(event, {fields: fields||"type,name,text"})
|
||||||
can.run(msg._event, ["search", "Search.onimport.select", type, "", ""], function(list) {
|
can.search(msg._event, ["Search.onimport.select", type, "", ""], function(list) {
|
||||||
can.core.Next(list, cb, cbs||function() {
|
can.core.Next(list, cb, cbs||function() {
|
||||||
can.user.toast(can, "添加成功")
|
can.user.toast(can, "添加成功")
|
||||||
})
|
})
|
||||||
|
@ -34,18 +34,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
can.onmotion.select(can, can._output, "fieldset.plugin", sub._target)
|
can.onmotion.select(can, can._output, "fieldset.plugin", sub._target)
|
||||||
can.onmotion.select(can, can._action, "div.item", event.target)
|
can.onmotion.select(can, can._action, "div.item", event.target)
|
||||||
}}])
|
}}])
|
||||||
|
|
||||||
sub.page.Modify(sub, sub._legend, {
|
|
||||||
onmouseenter: function(event) {
|
|
||||||
Volcanos.meta.data.menu && sub.page.Remove(sub, Volcanos.meta.data.menu.first)
|
|
||||||
Volcanos.meta.data.menu = sub.user.carte(event, sub, sub.onaction, sub.onaction.list)
|
|
||||||
|
|
||||||
sub.page.Modify(sub, Volcanos.meta.data.menu.first, {style: {
|
|
||||||
left: event.target.offsetLeft+can.run(event, ["search", "River.onexport.width"]),
|
|
||||||
top: event.target.offsetTop-(can.user.isMobile? can._target.parentNode.parentNode.scrollTop: can._output.scrollTop)+event.target.offsetHeight+can.run(event, ["search", "Header.onexport.height"]),
|
|
||||||
}})
|
|
||||||
},
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
_share: function(can, msg, share) {
|
_share: function(can, msg, share) {
|
||||||
can.Conf(can._WIDTH, window.innerWidth)
|
can.Conf(can._WIDTH, window.innerWidth)
|
||||||
@ -57,7 +45,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
can.onaction._layout(can, "flow")
|
can.onaction._layout(can, "flow")
|
||||||
},
|
},
|
||||||
_menu: function(can) {
|
_menu: function(can) {
|
||||||
!can.user.isMobile && can.run({}, [can._SEARCH, "Header.onimport.menu", can._ACTION,
|
!can.user.isMobile && can.search({}, ["Header.onimport.menu", can._ACTION,
|
||||||
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
||||||
], function(event, key) { can.onaction._layout(can, key) })
|
], function(event, key) { can.onaction._layout(can, key) })
|
||||||
},
|
},
|
||||||
@ -95,8 +83,8 @@ Volcanos("onengine", {help: "解析引擎", list: [],
|
|||||||
Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.const(
|
can.const(
|
||||||
"output", "fields",
|
"output", "fields",
|
||||||
"search", "action", "share", "river", "storm",
|
"action", "share", "river", "storm",
|
||||||
"title", "topic", "layout", "width", "height", "top", "left",
|
"title", "topic", "layout", "width", "height", "top", "left", "scroll",
|
||||||
"plugin",
|
"plugin",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -112,7 +100,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
|||||||
can.onaction._select(can, msg, river, storm)
|
can.onaction._select(can, msg, river, storm)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.onengine.listen(can, can._SEARCH, function(msg, word) {
|
can.onengine.listen(can, "search", function(msg, word) {
|
||||||
if (word[0] == "*" || word[0] == can._PLUGIN) { can.onexport.plugin(can, msg, word) }
|
if (word[0] == "*" || word[0] == can._PLUGIN) { can.onexport.plugin(can, msg, word) }
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -167,7 +155,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
|||||||
can.onimport._init(can, msg)
|
can.onimport._init(can, msg)
|
||||||
} else {
|
} else {
|
||||||
var msg = can.request({}, {river: river, storm: storm})
|
var msg = can.request({}, {river: river, storm: storm})
|
||||||
can.run(msg._event, [can._SEARCH, "River.ondetail.添加工具"])
|
can.search(msg._event, ["River.ondetail.添加工具"])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -184,6 +172,7 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
msg.Option(can._LEFT, can._target.offsetLeft)
|
msg.Option(can._LEFT, can._target.offsetLeft)
|
||||||
msg.Option(can._WIDTH, can._target.offsetWidth)
|
msg.Option(can._WIDTH, can._target.offsetWidth)
|
||||||
msg.Option(can._HEIGHT, can._target.offsetHeight)
|
msg.Option(can._HEIGHT, can._target.offsetHeight)
|
||||||
|
msg.Option(can._SCROLL, can.user.isMobile? can._target.parentNode.parentNode.scrollTop: can._output.scrollTop)
|
||||||
},
|
},
|
||||||
layout: function(can, msg) { return can.Conf(can._LAYOUT) },
|
layout: function(can, msg) { return can.Conf(can._LAYOUT) },
|
||||||
plugin: function(can, msg, word) {
|
plugin: function(can, msg, word) {
|
||||||
|
@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
_toast: function(can, msg, target) {
|
_toast: function(can, msg, target) {
|
||||||
can.toast = can.page.Append(can, target, [{view: "toast", onclick: function(event) {
|
can.toast = can.page.Append(can, target, [{view: "toast", onclick: function(event) {
|
||||||
var ui = can.onappend.field(can, "story toast float", {}, document.body)
|
var ui = can.onappend.field(can, "story toast float", {}, document.body)
|
||||||
can.run({}, ["search", "Action.onexport.size"], function(msg, top, left, width, height) {
|
can.search({}, ["Action.onexport.size"], function(msg, top, left, width, height) {
|
||||||
can.page.Modify(can, ui.output, {style: {"max-width": width, "max-height": height-28}})
|
can.page.Modify(can, ui.output, {style: {"max-width": width, "max-height": height-28}})
|
||||||
can.page.Modify(can, ui.first, {style: {top: top, left: left}})
|
can.page.Modify(can, ui.first, {style: {top: top, left: left}})
|
||||||
} )
|
} )
|
||||||
|
@ -32,9 +32,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onimport._menu(can, msg, target)
|
can.onimport._menu(can, msg, target)
|
||||||
|
|
||||||
can.base.isFunc(cb) && cb(msg)
|
can.base.isFunc(cb) && cb(msg)
|
||||||
can.page.Modify(can, can._output, {onmouseover: function(event) {
|
|
||||||
can.menu && can.page.Remove(can, can.menu.first)
|
|
||||||
}})
|
|
||||||
},
|
},
|
||||||
_title: function(can, msg, target) {
|
_title: function(can, msg, target) {
|
||||||
can.user.title(can.user.Search(can, can._TITLE)||can.user.Search(can, "pod"))
|
can.user.title(can.user.Search(can, can._TITLE)||can.user.Search(can, "pod"))
|
||||||
@ -47,9 +44,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
_state: function(can, msg, target) {
|
_state: function(can, msg, target) {
|
||||||
can.core.List(can.base.Obj(msg.Option("state"), can.Conf("state")||["time", can._USERNAME]), function(item) {
|
can.core.List(can.base.Obj(msg.Option("state"), can.Conf("state")||["time", can._USERNAME]), function(item) {
|
||||||
if (item == can._AVATAR) {
|
if (item == can._AVATAR) {
|
||||||
can.page.Append(can, target, [{view: ["state "+item], list: [{img: can.Conf(item), onmouseenter: function(event) {
|
can.page.Append(can, target, [{view: ["state "+item], list: [{img: can.Conf(item)}], onmouseenter: function(event) {
|
||||||
can.onaction.carte(event, can, [can.page.Format("img", can.Conf(item), 160)])
|
can.onaction.carte(event, can, [can.page.Format("img", can.Conf(item), 160)])
|
||||||
}}]}])
|
}}])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,9 +58,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
_search: function(can, msg, target) {
|
_search: function(can, msg, target) {
|
||||||
var ui = can.page.Append(can, target, [{view: can._SEARCH, list: [{type: "input", data: {placeholder: can._SEARCH}, onkeydown: function(event) {
|
var ui = can.page.Append(can, target, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
||||||
can.onkeypop.input(event, can); switch (event.key) {
|
can.onkeypop.input(event, can); switch (event.key) {
|
||||||
case "Enter": can.run(event, [can._SEARCH, "Search.onimport.select", "*", event.target.value]); break
|
case "Enter": can.search(event, ["Search.onimport.select", "*", event.target.value]); break
|
||||||
}
|
}
|
||||||
}}] }])
|
}}] }])
|
||||||
// ; can.onmotion.autosize(can, ui.input, 240, 120)
|
// ; can.onmotion.autosize(can, ui.input, 240, 120)
|
||||||
@ -160,7 +157,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.const(
|
can.const(
|
||||||
"search", "action", "share", "title", "river", "storm",
|
"action", "share", "title", "river", "storm",
|
||||||
"grant",
|
"grant",
|
||||||
"username", "background", "avatar",
|
"username", "background", "avatar",
|
||||||
)
|
)
|
||||||
@ -175,11 +172,12 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
can.Conf(can._RIVER, river), can.Conf(can._STORM, storm)
|
can.Conf(can._RIVER, river), can.Conf(can._STORM, storm)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.run(msg._event, [can._SEARCH, "Footer.onaction._init"])
|
can.search(msg._event, ["Footer.onaction._init"])
|
||||||
can.run(msg._event, [can._SEARCH, "Action.onaction._init"])
|
can.search(msg._event, ["Action.onaction._init"])
|
||||||
can.run(msg._event, [can._SEARCH, "River.onaction._init"])
|
can.search(msg._event, ["River.onaction._init"])
|
||||||
can.run(msg._event, [can._SEARCH, "Search.onaction._init"])
|
can.search(msg._event, ["Search.onaction._init"])
|
||||||
can.base.isFunc(cb) && cb(msg)
|
can.base.isFunc(cb) && cb(msg)
|
||||||
|
can.ondaemon._init(can)
|
||||||
}, can._output)
|
}, can._output)
|
||||||
|
|
||||||
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
||||||
@ -203,12 +201,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
can.user.jumps(can.user.MergeURL(can, args, true))
|
can.user.jumps(can.user.MergeURL(can, args, true))
|
||||||
},
|
},
|
||||||
carte: function(event, can, list, cb) {
|
carte: function(event, can, list, cb) { can.user.carte(event, can, can.onaction, list) },
|
||||||
can.menu && can.page.Remove(can, can.menu.first)
|
|
||||||
can.menu = can.user.carte(event, can, can.onaction, list, cb)
|
|
||||||
can.page.Modify(can, can.menu.first, {style: {top: can._target.offsetHeight, left: event.target.offsetLeft}})
|
|
||||||
return can.menu
|
|
||||||
},
|
|
||||||
river: function(event, can) { can.onaction.River(can) },
|
river: function(event, can) { can.onaction.River(can) },
|
||||||
black: function(event, can, button) {
|
black: function(event, can, button) {
|
||||||
can.onlayout.topic(can, button)
|
can.onlayout.topic(can, button)
|
||||||
@ -253,9 +246,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
},
|
},
|
||||||
|
|
||||||
username: function(event, can) {
|
username: function(event, can) {
|
||||||
var ui = can.onaction.carte(event, can, ["shareuser", "usernick", "clear", "logout"])
|
can.onaction.carte(event, can, ["shareuser", "usernick", "clear", "logout"])
|
||||||
|
|
||||||
can.user.isMobile && can.page.Modify(can, ui.first, {style: {left: 320}})
|
|
||||||
},
|
},
|
||||||
shareuser: function(event, can) {
|
shareuser: function(event, can) {
|
||||||
can.user.share(can, can.request(event), [can._ACTION, can._SHARE, "type", "login"])
|
can.user.share(can, can.request(event), [can._ACTION, can._SHARE, "type", "login"])
|
||||||
@ -275,8 +266,8 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
clear: function(event, can, button) { can.onimport.background(event, can, "") },
|
clear: function(event, can, button) { can.onimport.background(event, can, "") },
|
||||||
logout: function(event, can) { can.user.logout(can) },
|
logout: function(event, can) { can.user.logout(can) },
|
||||||
|
|
||||||
River: function(can) { can.run({}, [can._SEARCH, "River.onmotion.toggle"]) },
|
River: function(can) { can.search({}, ["River.onmotion.toggle"]) },
|
||||||
Footer: function(can) { can.run({}, [can._SEARCH, "Footer.onmotion.toggle"]) },
|
Footer: function(can) { can.search({}, ["Footer.onmotion.toggle"]) },
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [],
|
||||||
height: function(can) { return can._target.offsetHeight },
|
height: function(can) { return can._target.offsetHeight },
|
||||||
|
@ -22,7 +22,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can._main_title = can.user.Search(can, can._TITLE) || msg.Option("sess.title") || Volcanos.meta.args.title || can.user.Search(can, "pod") || can._main_title
|
can._main_title = can.user.Search(can, can._TITLE) || msg.Option("sess.title") || Volcanos.meta.args.title || can.user.Search(can, "pod") || can._main_title
|
||||||
},
|
},
|
||||||
_menu: function(can, msg) {
|
_menu: function(can, msg) {
|
||||||
can.run({}, [can._SEARCH, "Header.onimport.menu", can._RIVER,
|
can.search({}, ["Header.onimport.menu", can._RIVER,
|
||||||
["添加", "创建群组", "添加应用", "添加工具", "添加用户", "添加设备", "创建空间"],
|
["添加", "创建群组", "添加应用", "添加工具", "添加用户", "添加设备", "创建空间"],
|
||||||
!can.user.isMobile && ["访问", "内部系统", "访问应用", "访问工具", "访问用户", "访问设备", "工作任务"],
|
!can.user.isMobile && ["访问", "内部系统", "访问应用", "访问工具", "访问用户", "访问设备", "工作任务"],
|
||||||
["共享", "共享群组", "共享应用", "共享工具", "共享主机"],
|
["共享", "共享群组", "共享应用", "共享工具", "共享主机"],
|
||||||
@ -35,21 +35,21 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}})
|
}})
|
||||||
},
|
},
|
||||||
|
|
||||||
_river: function(can, value) {
|
_river: function(can, meta) {
|
||||||
var item = can.onappend.item(can, "item", value, function(event, item) {
|
var item = can.onappend.item(can, "item", meta, function(event) {
|
||||||
// 左键选中
|
// 左键选中
|
||||||
can.onaction.storm(event, can, value.hash)
|
can.onaction.storm(event, can, meta.hash)
|
||||||
}, function(event) {
|
}, function(event) {
|
||||||
// 右键菜单
|
// 右键菜单
|
||||||
can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, item, meta) {
|
can.onaction.carte(event, can, can.ondetail.list, function(ev, button, module) {
|
||||||
can.ondetail[item](event, can, item, value.hash)
|
module[button](event, can, button, meta.hash)
|
||||||
}, {style: {left: can._target.offsetWidth}})
|
})
|
||||||
}, can._output)
|
})
|
||||||
|
|
||||||
!can.user.isMobile && can.page.Modify(can, item, {onmouseenter: function(event) {
|
!can.user.isMobile && can.page.Modify(can, item, {onmouseenter: function(event) {
|
||||||
can.menu = can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, item, meta) {
|
can.onaction.carte(event, can, can.ondetail.list, function(ev, button, module) {
|
||||||
can.ondetail[item](event, can, item, value.hash)
|
module[button](event, can, item, meta.hash)
|
||||||
}, {style: {left: can._target.offsetWidth}})
|
})
|
||||||
}})
|
}})
|
||||||
return item
|
return item
|
||||||
},
|
},
|
||||||
@ -76,19 +76,16 @@ Volcanos("onengine", {help: "解析引擎", list: [], engine: function(event, ca
|
|||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) {
|
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.const(
|
can.const(
|
||||||
"search", "title", "river", "storm",
|
"title", "river", "storm",
|
||||||
)
|
)
|
||||||
can.run({}, [], function(msg) { can.onimport._init(can, msg, list, cb, can._output) })
|
can.run({}, [], function(msg) { can.onimport._init(can, msg, list, cb, can._output) })
|
||||||
|
|
||||||
can.onengine.listen(can, can._SEARCH, function(msg, word) {
|
can.onengine.listen(can, "search", function(msg, word) {
|
||||||
if (word[0] == "*" || word[0] == can._STORM) { can.onexport.storm(can, msg, word) }
|
if (word[0] == "*" || word[0] == can._STORM) { can.onexport.storm(can, msg, word) }
|
||||||
})
|
})
|
||||||
|
|
||||||
can.onengine.listen(can, "action.touch", function() {
|
can.onengine.listen(can, "action.touch", function() {
|
||||||
can.user.isMobile && can.onmotion.hidden(can)
|
can.user.isMobile && can.onmotion.hidden(can)
|
||||||
can.page.Select(can, document.body, "div.carte", function(item) {
|
|
||||||
can.page.Remove(can, item)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
storm: function(event, can, river) {
|
storm: function(event, can, river) {
|
||||||
@ -107,9 +104,9 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
|||||||
can.user.title(can._main_title || storm.name)
|
can.user.title(can._main_title || storm.name)
|
||||||
|
|
||||||
// 右键点击
|
// 右键点击
|
||||||
can.user.carte(event, can, can.ondetail, ["共享应用", "添加工具", "保存参数", "重命名应用", "删除应用"], function(ev, item, meta) {
|
can.onaction.carte(event, can, ["共享应用", "添加工具", "保存参数", "重命名应用", "删除应用"], function(ev, button, module) {
|
||||||
can.ondetail[item](event, can, item, river, storm.hash)
|
module[button](event, can, button, river, storm.hash)
|
||||||
}, {style: {left: can._target.offsetWidth}})
|
})
|
||||||
}}
|
}}
|
||||||
}) }]).first, list.children.length > 0 && list.children[select].click()
|
}) }]).first, list.children.length > 0 && list.children[select].click()
|
||||||
|
|
||||||
@ -138,17 +135,18 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
carte: function(event, can, list, cb) {
|
carte: function(event, can, list, cb) {
|
||||||
can.menu && can.page.Remove(can, can.menu.first)
|
var ui = can.user.carte(event, can, can.ondetail, list, cb)
|
||||||
can.menu = can.user.carte(event, can, can.ondetail, list, cb)
|
can.page.Modify(can, ui.first, {style: {
|
||||||
can.page.Modify(can, can.menu.first, {style: {left: can._target.offsetWidth, top: event.target.offsetTop+60-can._output.scrollTop}})
|
left: event.clientX-event.offsetX+event.target.offsetWidth-3, top: event.clientY-event.offsetY,
|
||||||
|
}})
|
||||||
},
|
},
|
||||||
|
|
||||||
"创建": function(event, can) { can.onaction.create(event, can) },
|
"创建": function(event, can) { can.onaction.create(event, can) },
|
||||||
"刷新": function(event, can) {
|
"刷新": function(event, can) {
|
||||||
can.user.Search(can, {
|
can.user.Search(can, {
|
||||||
river: can.Conf(can._RIVER), storm: can.Conf(can._STORM),
|
river: can.Conf(can._RIVER), storm: can.Conf(can._STORM),
|
||||||
topic: can.run(event, [can._SEARCH, "Header.onexport.topic"]),
|
topic: can.search(event, ["Header.onexport.topic"]),
|
||||||
layout: can.run(event, [can._SEARCH, "Action.onexport.layout"]),
|
layout: can.search(event, ["Action.onexport.layout"]),
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -222,7 +220,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
"保存参数": function(event, can, button, river, storm) {
|
"保存参数": function(event, can, button, river, storm) {
|
||||||
can.run(event, [can._SEARCH, "Action.onexport.args"], function(item, next, index, array) {
|
can.search(event, ["Action.onexport.args"], function(item, next, index, array) {
|
||||||
var msg = can.request({}, {hash: storm, id: item.dataset.id})
|
var msg = can.request({}, {hash: storm, id: item.dataset.id})
|
||||||
can.run(msg._event, [river, "tool", "action", "modify", "arg", item.dataset.args], function(msg) {
|
can.run(msg._event, [river, "tool", "action", "modify", "arg", item.dataset.args], function(msg) {
|
||||||
can.user.toast(can, "保存"+(index+1)+"/"+array.length)
|
can.user.toast(can, "保存"+(index+1)+"/"+array.length)
|
||||||
|
@ -29,7 +29,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onimport._word(can, msg, cmds, fields)
|
can.onimport._word(can, msg, cmds, fields)
|
||||||
}, can.onimport._word(can, msg, cmds, fields)
|
}, can.onimport._word(can, msg, cmds, fields)
|
||||||
|
|
||||||
can.search(["Action.onexport.size"], function(msg, top, left, width, height) {
|
can.search(event, ["Action.onexport.size"], function(msg, top, left, width, height) {
|
||||||
can.page.Modify(can, can._output, {style: {"max-width": width, "max-height": height-75}})
|
can.page.Modify(can, can._output, {style: {"max-width": width, "max-height": height-75}})
|
||||||
can.page.Modify(can, can._target, {style: {top: top, left: left}})
|
can.page.Modify(can, can._target, {style: {top: top, left: left}})
|
||||||
} )
|
} )
|
||||||
@ -91,18 +91,6 @@ Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"]
|
|||||||
can.base.isFunc(cb) && cb(msg)
|
can.base.isFunc(cb) && cb(msg)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
sub.page.Modify(sub, sub._legend, {
|
|
||||||
onmouseenter: function(event) {
|
|
||||||
Volcanos.meta.data.menu && sub.page.Remove(sub, Volcanos.meta.data.menu.first)
|
|
||||||
Volcanos.meta.data.menu = sub.user.carte(event, sub, can.ondetail, can.ondetail.list)
|
|
||||||
|
|
||||||
sub.page.Modify(sub, Volcanos.meta.data.menu.first, {style: {
|
|
||||||
left: event.target.offsetLeft+can.run(event, ["search", "River.onexport.width"])+10,
|
|
||||||
top: event.target.offsetTop-(can.user.isMobile? can._target.parentNode.parentNode.scrollTop: can._output.scrollTop)+event.target.offsetHeight+can.run(event, ["search", "Header.onexport.height"])+32,
|
|
||||||
}})
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}, can.ui.preview)
|
}, can.ui.preview)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -104,10 +104,10 @@ Volcanos("ondetail", {help: "组件菜单", list: ["关闭", "下载", "上一
|
|||||||
"上一个": function(event, can) { can.order > 0? can.show(--can.order): can.user.toast(can, "已经是第一张啦!") },
|
"上一个": function(event, can) { can.order > 0? can.show(--can.order): can.user.toast(can, "已经是第一张啦!") },
|
||||||
"下一个": function(event, can) { can.order < can.list.length-1? can.show(++can.order): can.user.toast(can, "已经是最后一张啦!") },
|
"下一个": function(event, can) { can.order < can.list.length-1? can.show(++can.order): can.user.toast(can, "已经是最后一张啦!") },
|
||||||
"设置头像": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
"设置头像": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
||||||
can.run(event, ["search", "Header.onimport.avatar"], null, true)
|
can.search(event, ["Header.onimport.avatar"], null, true)
|
||||||
},
|
},
|
||||||
"设置背景": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
"设置背景": function(event, can) { var msg = can.request(event, {url: can.onimport._file(can, can.list[can.order].path)})
|
||||||
can.run(event, ["search", "Header.onimport.background"], null, true)
|
can.search(event, ["Header.onimport.background"], null, true)
|
||||||
},
|
},
|
||||||
"复制链接": function(event, can) {
|
"复制链接": function(event, can) {
|
||||||
can.user.copy(event, can, can.user.MergeURL(can, {_path: can.onimport._file(can, can.list[can.order].path)}, true))
|
can.user.copy(event, can, can.user.MergeURL(can, {_path: can.onimport._file(can, can.list[can.order].path)}, true))
|
||||||
|
@ -175,4 +175,10 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
|||||||
},
|
},
|
||||||
grid: function(sub) { sub.page.Modify(sub, sub.ui.content, {className: "content grid"}) },
|
grid: function(sub) { sub.page.Modify(sub, sub.ui.content, {className: "content grid"}) },
|
||||||
})
|
})
|
||||||
|
Volcanos("ondetail", {help: "交互操作", list: ["删除"], _init: function(can, msg, list, cb, target) {
|
||||||
|
},
|
||||||
|
"删除": function(event, sub) {
|
||||||
|
sub.page.Remove(sub, sub._target)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ Volcanos("onaction", {help: "交互操作", list: ["保存参数", "清空参数
|
|||||||
},
|
},
|
||||||
"保存参数": function(event, can) { var meta = can.Conf()
|
"保存参数": function(event, can) { var meta = can.Conf()
|
||||||
var msg = can.request(event, {river: can.Conf("river"), storm: can.Conf("storm"), id: meta.id})
|
var msg = can.request(event, {river: can.Conf("river"), storm: can.Conf("storm"), id: meta.id})
|
||||||
can.run(event, ["search", "River.ondetail.保存参数"], function(msg) {
|
can.search(event, ["River.ondetail.保存参数"], function(msg) {
|
||||||
can.user.toast(can, "保存成功")
|
can.user.toast(can, "保存成功")
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
@ -79,7 +79,7 @@ Volcanos("onaction", {help: "交互操作", list: ["保存参数", "清空参数
|
|||||||
"name", list[0], "text", JSON.stringify(can.Pack([], true)),
|
"name", list[0], "text", JSON.stringify(can.Pack([], true)),
|
||||||
"river", meta.ctx||meta.key||"", "storm", meta.index||meta.cmd||meta.name,
|
"river", meta.ctx||meta.key||"", "storm", meta.index||meta.cmd||meta.name,
|
||||||
]})
|
]})
|
||||||
can.run(event, ["search", "Header.onaction.share"])
|
can.search(event, ["Header.onaction.share"])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"刷新数据": function(event, can) { var meta = can.Conf()
|
"刷新数据": function(event, can) { var meta = can.Conf()
|
||||||
|
@ -145,7 +145,7 @@ Volcanos("ondetail", {help: "用户交互", list: [],
|
|||||||
can.run(event, ["action", "inner"].concat(cmds), cb, true)
|
can.run(event, ["action", "inner"].concat(cmds), cb, true)
|
||||||
can.onlayout.figure(event, sub, sub._target)
|
can.onlayout.figure(event, sub, sub._target)
|
||||||
|
|
||||||
can.search(["Action.onexport.size"], function(msg, left, top, width, height) { left = left||0
|
can.search(event, ["Action.onexport.size"], function(msg, left, top, width, height) { left = left||0
|
||||||
can.page.Modify(can, sub._target, {style: {position: "fixed", left: left, top: 120}})
|
can.page.Modify(can, sub._target, {style: {position: "fixed", left: left, top: 120}})
|
||||||
can.page.Modify(can, sub._output, {style: {"max-width": width}})
|
can.page.Modify(can, sub._output, {style: {"max-width": width}})
|
||||||
})
|
})
|
||||||
|
12
proto.js
12
proto.js
@ -72,17 +72,17 @@ var Volcanos = shy("火山架", {args: {}, data: {}, pack: {}, libs: [], cache:
|
|||||||
can["_"+v.toUpperCase()] = v
|
can["_"+v.toUpperCase()] = v
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
get: function(target, field) {
|
||||||
|
return can.search({}, [target+".onexport."+field])
|
||||||
|
},
|
||||||
set: function(target, field, value) { var event = {}
|
set: function(target, field, value) { var event = {}
|
||||||
var msg = can.request(event, {}); msg.Option(field, value)
|
var msg = can.request(event, {}); msg.Option(field, value)
|
||||||
return can.run(event, ["search", target+".onimport."+field])
|
return can.search(event, [target+".onimport."+field])
|
||||||
},
|
},
|
||||||
cmd: function(target, field) {
|
cmd: function(target, field) {
|
||||||
return can.run({}, ["search", target+".onaction."+field])
|
return can.search({}, [target+".onaction."+field])
|
||||||
},
|
},
|
||||||
get: function(target, field) {
|
search: function(event, cmds, cb) { can.run(event, ["search"].concat(cmds), cb, true) },
|
||||||
return can.run({}, ["search", target+".onexport."+field])
|
|
||||||
},
|
|
||||||
search: function(cmds, cb) { can.run({}, ["search"].concat(cmds), cb, true) },
|
|
||||||
Conf: function(key, value) { return can.core.Value(can._conf, key, value) }, _conf: {},
|
Conf: function(key, value) { return can.core.Value(can._conf, key, value) }, _conf: {},
|
||||||
// }; can = can || {}; for (var k in proto) { can.hasOwnProperty(k) || (can[k] = proto[k]) }
|
// }; can = can || {}; for (var k in proto) { can.hasOwnProperty(k) || (can[k] = proto[k]) }
|
||||||
}; can = can || {}; can.__proto__ = proto
|
}; can = can || {}; can.__proto__ = proto
|
||||||
|
Loading…
x
Reference in New Issue
Block a user