diff --git a/frame.js b/frame.js index a4f274cd..1c568949 100644 --- a/frame.js +++ b/frame.js @@ -14,7 +14,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ }), can._path = location.href }, _search: function(event, can, msg, panel, cmds, cb) { - var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split(ice.PT), function(value) { fun && (sub = mod, mod = fun, fun = mod[value], key = value) }) + var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split(nfs.PT), function(value) { fun && (sub = mod, mod = fun, fun = mod[value], key = value) }) if (!sub || !mod || !fun) { can.misc.Warn(ice.ErrNotFound, cmds); return can.base.isFunc(cb) && cb(msg.Echo(ice.ErrWarn, ice.ErrNotFound, cmds)) } return can.core.CallFunc(fun, {event: event, can: sub, msg: msg, cmds: cmds.slice(2), cb: cb, target: sub._target, button: key, cmd: key, arg: cmds.slice(2), list: cmds.slice(2)}, mod) }, @@ -32,11 +32,11 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ if (msg.Option("log.trace") == ice.TRUE) { debugger } can.misc.Run(event, can, {names: names, daemon: msg[ice.MSG_DAEMON]}, cmds, function(msg) { toast && toast.close(), toast = true if (msg.Option("log.trace") == ice.TRUE) { debugger } - can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))] = msg + can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(mdb.FS))] = msg }) }, _static: function(event, can, msg, panel, cmds, cb) { if (!can.user.isLocalFile) { return false } - var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))], msg = can.request(event); msg.Clear(ice.MSG_APPEND) + var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(mdb.FS))], msg = can.request(event); msg.Clear(ice.MSG_APPEND) return res? msg.Copy(res): can.user.toast(can, "miss data"), can.base.isFunc(cb) && cb(msg), true }, _engine: function(event, can, msg, panel, cmds, cb) { return false }, @@ -69,8 +69,8 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ } }), signal: function(can, name, msg) { msg = msg||can.request(); var _msg = name == chat.ONREMOTE? msg.Option("_msg"): msg - _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(ice.SP), name == chat.ONMAIN? can: _msg) - // _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(ice.SP), name == chat.ONMAIN? can: _msg, _msg._can._target) + _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(lex.SP), name == chat.ONMAIN? can: _msg) + // _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(lex.SP), name == chat.ONMAIN? can: _msg, _msg._can._target) return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length, msg }, }) @@ -96,7 +96,7 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile) }) return } - if (arg[0].indexOf(ice.PT) == -1 && can.page.SelectInput(can, sub._option, arg[0], function(target) { target.type == html.BUTTON? target.click(): (target.value = arg[1]||"", target.focus()); return target })) { return } + if (arg[0].indexOf(nfs.PT) == -1 && can.page.SelectInput(can, sub._option, arg[0], function(target) { target.type == html.BUTTON? target.click(): (target.value = arg[1]||"", target.focus()); return target })) { return } var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT); if (_sub && _sub.onaction && _sub.onaction[arg[0]]) { return _sub.onaction[arg[0]]({}, _sub, arg[0]) } if (sub && sub.onaction && sub.onaction[arg[0]]) { return sub.onaction[arg[0]]({}, sub, arg[0], _sub) } can.core.CallFunc(can.core.Value(can, arg[0]), kit.Dict({can: can}, arg.slice(1))) @@ -120,7 +120,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { _legend: legend, _option: option, _action: action, _output: output, _status: status, _history: [], Status: function(key, value) { if (can.base.isObject(key)) { return can.core.Item(key, sub.Status), key } can.page.Select(can, status, [[[html.SPAN, key]]], function(target) { - if (can.base.beginWith(value, ice.PS, ice.HTTP)) { value = can.page.Format(html.A, value) } + if (can.base.beginWith(value, nfs.PS, ice.HTTP)) { value = can.page.Format(html.A, value) } return can.base.isUndefined(value)? (value = target.innerHTML): (target.innerHTML = value.trim? value.trim(): value||"") }); return value }, @@ -135,7 +135,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { can.onappend._init(can, meta, list, function(sub) { can.base.isFunc(cb) && cb(sub, true), can.onmotion.delay(can, sub.Focus) }, target) }, }, list, function(sub) { meta.feature = can.base.Obj(meta.feature, {}), sub.Conf(meta) - can.onappend.style(sub, meta.index? meta.index.split(ice.PT): meta.name), can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onappend.style(sub, sub.Mode()) + can.onappend.style(sub, meta.index? meta.index.split(nfs.PT): meta.name), can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onappend.style(sub, sub.Mode()) sub._trans = can.base.Copy(sub._trans||{}, can.core.Value(sub, [chat.ONACTION, chat._TRANS])) can.core.Item(meta.feature, function(key, cb) { cb.help && sub.user.trans(sub, kit.Dict(key, cb.help)) }) meta.msg && can.onmotion.delay(can, function() { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg)) @@ -253,7 +253,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }, _status: function(can, list, status) { status = status||can._status, can.onmotion.clear(can, status) can.core.List(can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST])), function(item) { item = can.base.isString(item)? {name: item}: item - if (can.base.beginWith(item.value, ice.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) } + if (can.base.beginWith(item.value, nfs.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) } can.page.Append(can, status, [{view: html.ITEM, list: [ {text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": item.value.trim())+"", html.SPAN, item.name]}, ], onclick: function(event) { can.user.copy(event, can, item.value) }}]) @@ -325,14 +325,14 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { {type: html.FIELDSET_FLOAT, style: [PLUGIN_STYLE]}, {type: html.DIV_FLOAT, style: [PLUGIN_STYLE]}, {type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [TABLE_HEAD_STYLE, CARTE_ITEM_STYLE]}]}, {type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [CARTE_ITEM_HOVER_STYLE]}]}, - ].concat(list); const DF = ice.DF, FS = ";" - function render(pre, list) { return can.core.List(list, function(item) { if (!item) { return } var type = item.type+can.core.List(item.name, function(name) { return (name==html.HOVER? ice.DF: ice.PT)+name }).join("") - if (!item.name && type.indexOf(ice.PT+html.SELECT) == -1 && type.indexOf(ice.DF+html.HOVER) == -1 && can.base.isArray(item.style) && item.style.join(ice.FS).indexOf("-hover-") > -1) { type += ice.DF+html.HOVER } - return (item.style? (pre+ice.SP+type+" { "+(can.base.isArray(item.style)? can.core.List(item.style, function(item) { + ].concat(list); const DF = nfs.DF, FS = ";" + function render(pre, list) { return can.core.List(list, function(item) { if (!item) { return } var type = item.type+can.core.List(item.name, function(name) { return (name==html.HOVER? nfs.DF: nfs.PT)+name }).join("") + if (!item.name && type.indexOf(nfs.PT+html.SELECT) == -1 && type.indexOf(nfs.DF+html.HOVER) == -1 && can.base.isArray(item.style) && item.style.join(mdb.FS).indexOf("-hover-") > -1) { type += nfs.DF+html.HOVER } + return (item.style? (pre+lex.SP+type+" { "+(can.base.isArray(item.style)? can.core.List(item.style, function(item) { return can.core.Item(style[item], function(key, value) { return key&&value? key+DF+value: undefined }).join(FS) - }).join(FS): can.core.Item(can.base.Obj(item.style), function(key, value) { return key+DF+value }).join(FS))+" }"): "")+(item.list? render(pre+ice.SP+type, item.list): "") - }).join(ice.NL) } - var text = render(html.BODY+ice.PT+theme, list) + }).join(FS): can.core.Item(can.base.Obj(item.style), function(key, value) { return key+DF+value }).join(FS))+" }"): "")+(item.list? render(pre+lex.SP+type, item.list): "") + }).join(lex.NL) } + var text = render(html.BODY+nfs.PT+theme, list) can.page.Append(can, document.head, ctx.STYLE, {"innerText": text}) return text }, @@ -389,7 +389,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (text.indexOf(" 0) { can.page.Select(can, target, html.FIELDSET, function(target) { var data = target.dataset data.index && can.onappend.plugin(can, {index: data.index}, function(sub) { - can.page.Modify(can, sub._legend, data.index.split(ice.PT).pop()) + can.page.Modify(can, sub._legend, data.index.split(nfs.PT).pop()) }, can._output, target) }) } @@ -409,7 +409,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { if (item.index) { item._index = count++, ui.size[item._index] = item.height||item.width can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub]) item.layout = function(height, width) { sub.onimport.size(sub, height, width) } - }, target, ui[item._index] = can.onappend.field(can, item.type, {name: item.index.split(ice.PT).pop(), help: item.help}, target)._target) + }, target, ui[item._index] = can.onappend.field(can, item.type, {name: item.index.split(nfs.PT).pop(), help: item.help}, target)._target) } else { can.page.Append(can, target, [item]) } } }); return list } ui.list = append(target, type, list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]]) @@ -564,7 +564,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) { }); return old }, modify: function(can, target, cb, item) { var back = target.innerHTML, _target = target - if (back.length > 120 || back.indexOf(ice.NL) > -1) { return can.onmotion.modifys(can, target, cb) } + if (back.length > 120 || back.indexOf(lex.NL) > -1) { return can.onmotion.modifys(can, target, cb) } var ui = can.page.Appends(can, target, [{type: html.INPUT, value: target.innerText, style: {width: can.base.Max(target.offsetWidth-20, 400)}, onkeydown: function(event) { switch (event.key) { case lang.ENTER: target.innerHTML = event.target.value, event.target.value == back || cb(event, event.target.value, back); break case lang.ESCAPE: target.innerHTML = back; break @@ -702,8 +702,8 @@ Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||documen d: function(event, can, target) { can.onkeymap.deleteText(target, 0, target.selectionStart) }, w: function(event, can, target) { var start = target.selectionStart-2, end = target.selectionEnd-1 for (var i = start; i >= 0; i--) { - if (target.value[end] == ice.SP && target.value[i] != ice.SP) { break } - if (target.value[end] != ice.SP && target.value[i] == ice.SP) { break } + if (target.value[end] == lex.SP && target.value[i] != lex.SP) { break } + if (target.value[end] != lex.SP && target.value[i] == lex.SP) { break } } can.onkeymap.deleteText(target, i+1, end-i) }, n: function(event, can, target) { var his = target._history||[], pos = target._current||0 diff --git a/index.css b/index.css index 88a072b7..9cc103d4 100644 --- a/index.css +++ b/index.css @@ -409,6 +409,7 @@ body.mobile.simple div.output.card div.item { width:100%; } body.mobile.landscape div.output.card div.item { width:auto; float:left; } /* scrollbar */ fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; } +fieldset.panel.River>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; } div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; } div.project::-webkit-scrollbar { width:0 !important; height:0 !important; } div.content::-webkit-scrollbar { width:0 !important; height:0 !important; } diff --git a/lib/base.js b/lib/base.js index e3e4b670..8c0e4bf4 100644 --- a/lib/base.js +++ b/lib/base.js @@ -6,7 +6,7 @@ Volcanos("base", { try { if (typeof val == code.STRING) { if (val == "") { return def } val = JSON.parse(val) } if (val.length > 0) { return val } for (var k in val) { return val } return def - } catch (e) { return typeof val == code.STRING && val.split(ice.FS) || def } + } catch (e) { return typeof val == code.STRING && val.split(mdb.FS) || def } }, Copy: function(to, from, merge) { if (!from) { return to } if (arguments.length == 2 || typeof merge == code.BOOLEAN) { for (var k in from) { if (k == undefined) { continue } @@ -20,18 +20,18 @@ Volcanos("base", { for (var k in to) { if (k != skip && !call(to[k], from[k])) { return false } } return true } return to === from }, - Ext: function(path) { return path.split(ice.PS).pop().split(ice.PT).pop().toLowerCase() }, - Dir: function(path) { return path.endsWith(ice.PS)? path: path.slice(0, path.lastIndexOf(ice.PS)+1) }, + Ext: function(path) { return path.split(nfs.PS).pop().split(nfs.PT).pop().toLowerCase() }, + Dir: function(path) { return path.endsWith(nfs.PS)? path: path.slice(0, path.lastIndexOf(nfs.PS)+1) }, Path: function(path) { var res = "", arg = arguments; for (var i = 0; i < arg.length; i++) { if (!arg[i]) { continue } - res += (arg[i][0]==ice.PS || res=="" || res[res.length-1]==ice.PS? "": ice.PS) + arg[i].trim() + res += (arg[i][0]==nfs.PS || res=="" || res[res.length-1]==nfs.PS? "": nfs.PS) + arg[i].trim() } return res }, - Args: function() { var res = [], arg = arguments; function encode(k, v) { k && v != undefined && v != null && res.push(encodeURIComponent(k)+ice.EQ+encodeURIComponent(v)) } + Args: function() { var res = [], arg = arguments; function encode(k, v) { k && v != undefined && v != null && res.push(encodeURIComponent(k)+mdb.EQ+encodeURIComponent(v)) } for (var i = 0; i < arg.length; i += 2) { if (typeof arg[i] == code.OBJECT) { if (arg[i].length > 0) { for (var j = 0; j < arg[i].length; j += 2) { encode(arg[i][j], arg[i][j+1]) } } else { for (var k in arg[i]) { encode(k, arg[i][k]) } } i-- } else { encode(arg[i], arg[i+1]) } } return res.join("&") }, _parse: function(url, res) { var list = url.split("#")[0].split(ice.QS); res = res||{}, res._origin = list[0] - list[1] && list[1].split("&").forEach(function(item) { var ls = item.split(ice.EQ); res[decodeURIComponent(ls[0])] = decodeURIComponent(ls[1]) }) + list[1] && list[1].split("&").forEach(function(item) { var ls = item.split(mdb.EQ); res[decodeURIComponent(ls[0])] = decodeURIComponent(ls[1]) }) return res }, MergeURL: function(url) { var arg = this._parse(url); delete(arg._origin); for (var i = 1; i < arguments.length; i += 2) { delete(arg[arguments[i]]) } @@ -39,7 +39,7 @@ Volcanos("base", { }, ParseURL: function(url) { var res = this._parse(url); res.link = url, res.origin = res._origin; return res }, ParseJSON: function(str) { var res; if (typeof str == code.OBJECT) { return str } - if (str.indexOf(ice.HTTP) == 0) { var res = this._parse(str, {type: mdb.LINK, name: "", text: str}); return res.name = res._origin.split("://").pop().split(ice.PS)[0], res } + if (str.indexOf(ice.HTTP) == 0) { var res = this._parse(str, {type: mdb.LINK, name: "", text: str}); return res.name = res._origin.split("://").pop().split(nfs.PS)[0], res } try { res = JSON.parse(str), res.text = res.text||str, res.type = res.type||nfs.JSON } catch (e) { res = {type: mdb.TEXT, text: str} } return res }, ParseSize: function(size) { size = size.toLowerCase() @@ -50,10 +50,10 @@ Volcanos("base", { return parseInt(size) }, _unit: {k: 1024, m: 1024*1024, g: 1024*1024*1024, t: 1024*1024*1024*1024}, Size: function(size) { size = parseInt(size); var n = 100, k = this._unit.k, m = this._unit.m, g = this._unit.g, t = this._unit.t - if (size > t) { return parseInt(size/t) + ice.PT + parseInt(size/g%k*n/k) + "T" } - if (size > g) { return parseInt(size/g) + ice.PT + parseInt(size/m%k*n/k) + "G" } - if (size > m) { return parseInt(size/m) + ice.PT + parseInt(size/k%k*n/k) + "M" } - if (size > k) { return parseInt(size/k) + ice.PT + parseInt(size%k*n/k) + "K" } + if (size > t) { return parseInt(size/t) + nfs.PT + parseInt(size/g%k*n/k) + "T" } + if (size > g) { return parseInt(size/g) + nfs.PT + parseInt(size/m%k*n/k) + "G" } + if (size > m) { return parseInt(size/m) + nfs.PT + parseInt(size/k%k*n/k) + "M" } + if (size > k) { return parseInt(size/k) + nfs.PT + parseInt(size%k*n/k) + "K" } return size + "B" }, Number: function(d, n) { var res = [] @@ -83,9 +83,9 @@ Volcanos("base", { fmt = fmt.replace("%s", this.Number(now.getMilliseconds(), 3)) return fmt }, - Date: function(time) { var now = new Date(); if (typeof time == code.STRING && time != "") { var ls = time.split(ice.SP) + Date: function(time) { var now = new Date(); if (typeof time == code.STRING && time != "") { var ls = time.split(lex.SP) var vs = ls[0].split("-"); now.setFullYear(parseInt(vs[0])), now.setMonth(parseInt(vs[1])-1), now.setDate(parseInt(vs[2])) - var vs = ls[1].split(ice.DF); now.setHours(parseInt(vs[0])), now.setMinutes(parseInt(vs[1])), now.setSeconds(parseInt(vs[2])) + var vs = ls[1].split(nfs.DF); now.setHours(parseInt(vs[0])), now.setMinutes(parseInt(vs[1])), now.setSeconds(parseInt(vs[2])) } else if (time) { now = time } return now }, DateAdd: function(stamp, days) { return new Date(stamp - stamp%(24*3600*1000) - 8*3600*1000 + days*24*3600*1000) }, Duration: function(n) { var res = "", h = 0 @@ -93,7 +93,7 @@ Volcanos("base", { h = parseInt(n/3600000), h > 0 && (res += h+"h"), n = n % 3600000 h = parseInt(n/60000), h > 0 && (res += h+"m"), n = n % 60000 h = parseInt(n/1000), h > 0 && (res += h), n = n % 1000 - return res + (n > 0? ice.PT+parseInt(n/10): "") + "s" + return res + (n > 0? nfs.PT+parseInt(n/10): "") + "s" }, isNight: function() { var now = new Date(); return now.getHours() < 7 || now.getHours() > 17 }, isNumber: function(val) { return typeof val == code.NUMBER }, @@ -127,8 +127,8 @@ Volcanos("base", { trim: function(arg) { if (this.isString(arg)) { return arg.trim() } if (this.isArray(arg)) { for (var i = arg.length-1; i >= 0; i--) { if (!arg[i]) { arg.pop() } else { break } } } return arg }, - join: function(list, sp) { return typeof list == code.STRING? list: (list||[]).join(sp||ice.SP) }, - joins: function(list, inner, outer) { for (var i = 0; i < list.length; i++) { list[i] = typeof list[i] == code.STRING? list[i]: list[i].join(inner||ice.FS) } return list.join(outer||ice.SP) }, - joinKV: function(list, inner, outer) { var res = []; for (var i = 0; i < list.length-1; i += 2) { res.push(list[i]+(inner||": ")+list[i+1]) } return res.join(outer||ice.SP) }, + join: function(list, sp) { return typeof list == code.STRING? list: (list||[]).join(sp||lex.SP) }, + joins: function(list, inner, outer) { for (var i = 0; i < list.length; i++) { list[i] = typeof list[i] == code.STRING? list[i]: list[i].join(inner||mdb.FS) } return list.join(outer||lex.SP) }, + joinKV: function(list, inner, outer) { var res = []; for (var i = 0; i < list.length-1; i += 2) { res.push(list[i]+(inner||": ")+list[i+1]) } return res.join(outer||lex.SP) }, random: function(max, min) { return min = min||0, parseInt(Math.random()*(max-min))+min }, }) diff --git a/lib/core.js b/lib/core.js index 4c5cf3a9..d85f5a63 100644 --- a/lib/core.js +++ b/lib/core.js @@ -8,16 +8,16 @@ Volcanos("core", { case lang.NUMBER: list.push(v+""); break case lang.FUNCTION: v = v() default: v && list.push(v+"") - } } return list.join(ice.PT) + } } return list.join(nfs.PT) }, Value: function(data, key, value) { if (data == undefined) { return } if (key == undefined) { return data } - if (typeof key == lang.OBJECT) { if (key.length != undefined) { key = key.join(ice.PT) } else { for (var k in key) { arguments.callee.call(this, data, k, key[k]) } return data } } - if (value != undefined) { var _node = data, keys = key.split(ice.PT) + if (typeof key == lang.OBJECT) { if (key.length != undefined) { key = key.join(nfs.PT) } else { for (var k in key) { arguments.callee.call(this, data, k, key[k]) } return data } } + if (value != undefined) { var _node = data, keys = key.split(nfs.PT) for (var i = 0; i < keys.length; i++) { var _next = _node[keys[i]]||{}; _node[keys[i]] = _next if (i < keys.length - 1) { _node = _next } else { _node[keys[i]] = value } } } - var node = data, keys = key.split(ice.PT); while (node && keys.length > 0) { + var node = data, keys = key.split(nfs.PT); while (node && keys.length > 0) { if (keys[0] == "-1") { keys[0] = node.length-1 } node = node[keys[0]], keys = keys.slice(1) } return node == undefined? data[key]: node }, @@ -51,10 +51,10 @@ Volcanos("core", { case mdb.NAME: return {type: html.TEXT, name: item} case mdb.TEXT: return {type: html.TEXTAREA, name: item} case ctx.ARGS: return {type: html.TEXTAREA, name: item} - default: var ls = this.Split(item, ice.SP, "*:=@"), res = {type: type, name: ls[0]}; for (var i = 1; i < ls.length; i += 2) { switch (ls[i]) { + default: var ls = this.Split(item, lex.SP, "*:=@"), res = {type: type, name: ls[0]}; for (var i = 1; i < ls.length; i += 2) { switch (ls[i]) { case "*": res["need"] = "must", i--; break - case ice.DF: res[mdb.TYPE] = ls[i+1]; break - case ice.EQ: + case nfs.DF: res[mdb.TYPE] = ls[i+1]; break + case mdb.EQ: if (res[mdb.TYPE] == html.SELECT) { res.values = this.Split(ls[i+1]); for (var j = 1; j < res.values.length; j++) { if (res.values[0] == "" || res.values[0] == res.values[j]) { res.value = res.values[0], res.values = res.values.slice(1); break } } } else { res.value = ls[i+1] } break @@ -65,7 +65,7 @@ Volcanos("core", { if (Array.isArray(args)) { this.List(args, function(arg) { if (!arg) { return } if (arg.request && arg.run) { can = arg } else if (arg.Append && arg.Result) { msg = arg } else if (typeof arg == code.FUNCTION) { cb = arg } }) } func = typeof func == lang.FUNCTION? func: typeof func == lang.OBJECT && func.length > 0? this.Value(func[0], this.Keys(func.slice(1))): typeof func == lang.STRING? this.Value(mod||can, func): null if (typeof func != lang.FUNCTION) { if (typeof cb == lang.FUNCTION) { cb() } return } - var list = [], echo = false; args.length > 0? list = args: this.List(func.toString().split(")")[0].split("(")[1].split(ice.FS), function(item, index) { item = item.trim(); if (item == "") { return } + var list = [], echo = false; args.length > 0? list = args: this.List(func.toString().split(")")[0].split("(")[1].split(mdb.FS), function(item, index) { item = item.trim(); if (item == "") { return } list.push(args[item] || 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 (msg && msg.Defer) { msg.Defer() } if (!echo && typeof cb == lang.FUNCTION) { res && msg&&msg.Echo&&msg.Echo(res), arguments.callee.apply(this, [cb, {msg: msg, res: res}]) } return res diff --git a/lib/misc.js b/lib/misc.js index a24f7308..9e953cba 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -23,7 +23,7 @@ Volcanos("misc", { if (val == undefined) { return can.base.isIn(key, msg.append) && msg[key] && msg[key][0] || "" } return msg.append = can.base.AddUniq(msg.append, key), msg[key] = can.core.List(arguments).slice(1), val }, - Result: function() { if (!msg.result) { return "" } return msg.result[0] == ice.ErrWarn? msg.result.join(ice.SP): msg.result.join("") }, + Result: function() { if (!msg.result) { return "" } return msg.result[0] == ice.ErrWarn? msg.result.join(lex.SP): msg.result.join("") }, Results: function() { return msg.result && msg.result[0] == ice.ErrWarn? "": msg.Result() }, TableDetail: function() { var item = can.Option(); return msg.Table(function(value) { can.core.Value(item, value.key, value.value) }), item }, Table: function(cb) { return can.core.List(msg.Length(), function(index) { var item = {} @@ -82,9 +82,9 @@ Volcanos("misc", { if (msg._upload) { var data = new FormData(); can.core.ItemForm(form, function(v, i, k) { data.append(k, v) }) data.append(ice.MSG_UPLOAD, web.UPLOAD), data.append(web.UPLOAD, msg._upload) xhr.upload.onprogress = function(event) { can.base.isFunc(msg._progress) && msg._progress(event, parseInt(event.loaded*100/event.total), event.total, event.loaded) } - } else if (can.user.isMailMaster) { var data = can.core.ItemForm(form, function(value, index, key) { return key+ice.EQ+encodeURIComponent(value) }).join("&") + } else if (can.user.isMailMaster) { var data = can.core.ItemForm(form, function(value, index, key) { return key+mdb.EQ+encodeURIComponent(value) }).join("&") if (data) { xhr.open(msg._method||web.POST, url += (url.indexOf(url, ice.QS) == -1? ice.QS: "&")+data) } - } else { var data = can.core.ItemForm(form, function(v, i, k) { return k+ice.EQ+encodeURIComponent(v) }).join("&") + } else { var data = can.core.ItemForm(form, function(v, i, k) { return k+mdb.EQ+encodeURIComponent(v) }).join("&") xhr.setRequestHeader(web.ContentType, web.ContentFORM) } try { xhr.send(data) } catch(e) { can.misc.Warn(e) } }, @@ -114,7 +114,7 @@ Volcanos("misc", { } catch (e) { can.misc.Warn(e), msg.Reply() } }) } }, - MergePath: function(can, file, path) { return file.indexOf(ice.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) }, + MergePath: function(can, file, path) { return file.indexOf(nfs.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) }, MergeCache: function(can, hash) { return can.misc.MergeURL(can, {_path: can.base.Path(web.SHARE_CACHE, hash)}, true) }, MergePodCmd: function(can, obj) { if (can.base.beginWith(obj.pod, "http://", "https://")) { return obj.pod } @@ -124,17 +124,17 @@ Volcanos("misc", { can.misc.Search(can, log.DEBUG) && (obj.debug = ice.TRUE); var hash = obj._hash||""; delete(obj._hash) var args = [web.CHAT]; can.core.List([ice.POD, ice.CMD, web.WEBSITE], function(key) { obj[key] && args.push(key, obj[key]), delete(obj[key]) }) var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) } - return can.base.MergeURL(_location.origin+(args.length == 1? path: ice.PS+args.join(ice.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "") + return can.base.MergeURL(_location.origin+(args.length == 1? path: nfs.PS+args.join(nfs.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "") }, ParseURL: function(can, url) { var args = can.base.ParseURL(url), _location = new URL(url) delete(args.link), delete(args.origin), delete(args._origin) - var ls = can.core.Split(_location.pathname, ice.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] } + var ls = can.core.Split(_location.pathname, nfs.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] } for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD, web.WEBSITE])) { args[ls[i]] = ls[i+1] } } return args }, - SplitPath: function(can, path) { var ls = path.split(ice.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] } - if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(ice.PS)+ice.PS, ls.slice(2).join(ice.PS)] } - return [ls.slice(0, 1).join(ice.PS)+ice.PS, ls.slice(1).join(ice.PS)] + SplitPath: function(can, path) { var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] } + if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(nfs.PS)+nfs.PS, ls.slice(2).join(nfs.PS)] } + return [ls.slice(0, 1).join(nfs.PS)+nfs.PS, ls.slice(1).join(nfs.PS)] }, Search: function(can, key, value) { var args = this.ParseURL(can, location.href) if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) { @@ -148,18 +148,18 @@ Volcanos("misc", { hash = can.core.List(arguments, function(item) { return can.base.replaceAll(item, ":", "%3A") return encodeURIComponent(item) - }).slice(1).join(ice.DF) + }).slice(1).join(nfs.DF) if (can.isCmdMode() || can._name == "Action") { location.hash = hash } } - return can.core.List(can.core.Split(can.base.trimPrefix(location.hash, "#"), ice.DF)||[], function(item) { return decodeURIComponent(item) }) + return can.core.List(can.core.Split(can.base.trimPrefix(location.hash, "#"), nfs.DF)||[], function(item) { return decodeURIComponent(item) }) }, SearchOrConf: function(can, key, def) { return can.misc.Search(can, key)||Volcanos.meta.args[key]||can.misc.sessionStorage(can, "can."+key)||can.misc.localStorage(can, "can."+key)||can.Conf(key)||def }, CookieSessid: function(can, value, path) { return can.misc.Cookie(can, ice.MSG_SESSID+"_"+(location.port||(location.protocol == "https:"? "443": "80")), value, path) }, - Cookie: function(can, key, value, path) { function set(k, v) { document.cookie = k+ice.EQ+v+";path="+(path||ice.PS) } + Cookie: function(can, key, value, path) { function set(k, v) { document.cookie = k+mdb.EQ+v+";path="+(path||nfs.PS) } if (can.base.isObject(key)) { for (var k in key) { set(k, key[k]) } key = undefined } - if (can.base.isUndefined(key)) { var cs = {}; if (!document.cookie) { return } return document.cookie.split("; ").forEach(function(item) { var ls = item.split(ice.EQ); cs[ls[0]] = ls[1] }), cs } + if (can.base.isUndefined(key)) { var cs = {}; if (!document.cookie) { return } return document.cookie.split("; ").forEach(function(item) { var ls = item.split(mdb.EQ); cs[ls[0]] = ls[1] }), cs } if (value === "") { var expires = new Date(); expires.setTime(expires.getTime() - 10) - return document.cookie = key+ice.EQ+value+";path="+(path||ice.PS)+";expires=" + expires.toGMTString(); + return document.cookie = key+mdb.EQ+value+";path="+(path||nfs.PS)+";expires=" + expires.toGMTString(); } can.base.isUndefined(value) || set(key, value) var val = (new RegExp(key+"=([^;]*);?")).exec(document.cookie); return val && val.length > 1? val[1]: "" }, @@ -179,38 +179,38 @@ Volcanos("misc", { Info: function() { var args = this._args(log.INFO, arguments); console.info.apply(console, args), this._signal(args) }, Warn: function() { var args = this._args(log.WARN, arguments); console.warn.apply(console, args), this._signal(args); debugger }, Error: function() { - var args = this._args(log.ERROR, arguments); args.push(ice.NL, this._stacks().slice(1).join(ice.NL)), console.error.apply(console, args), this._signal(args); debugger + var args = this._args(log.ERROR, arguments); args.push(lex.NL, this._stacks().slice(1).join(lex.NL)), console.error.apply(console, args), this._signal(args); debugger }, - Debug: function() { var args = this._args(log.DEBUG, arguments); args.push(ice.NL, this._stacks().slice(1, 4).join(ice.NL)), console.debug.apply(console, args), this._signal(args) }, + Debug: function() { var args = this._args(log.DEBUG, arguments); args.push(lex.NL, this._stacks().slice(1, 4).join(lex.NL)), console.debug.apply(console, args), this._signal(args) }, Trace: function() { var output = false for (var i in arguments) { var arg = arguments[i]; if (arg.Conf && arg.Conf("log.trace") == ice.TRUE || arg.Option && arg.Option("log.trace") == ice.TRUE) { output = true } } if (!output) { return } - var args = this._args(log.TRACE, arguments); args.push(ice.NL, this._stacks().slice(1, 4).join(ice.NL)), console.debug.apply(console, args), this._signal(args) + var args = this._args(log.TRACE, arguments); args.push(lex.NL, this._stacks().slice(1, 4).join(lex.NL)), console.debug.apply(console, args), this._signal(args) }, FileLine: function(depth, length) { var file = this.fileLine(depth+1, length||9); return file.link }, fileLine: function(depth, length) { var list = this._stacks() function split(i) { if (!list[i]) { return {} } var ls = /(https*:\/\/[^/]+)*([^:]+):([0-9]+):([0-9]+)/.exec(list[i]) - var name = ""; list[i].lastIndexOf(ice.TB) > 0 && (name = list[i].split(ice.TB).pop()) - if (ls[0].indexOf(ice.QS) > -1) { ls[0] = ls[0].split(ice.QS)[0]+ice.DF+ls[3]+ice.DF+ls[4] } - return {name: name, link: ls[0], path: ls[2], file: ls[2].split(ice.PS).slice(-length).join(ice.PS), line: ls[3], cols: ls[4]} + var name = ""; list[i].lastIndexOf(lex.TB) > 0 && (name = list[i].split(lex.TB).pop()) + if (ls[0].indexOf(ice.QS) > -1) { ls[0] = ls[0].split(ice.QS)[0]+nfs.DF+ls[3]+nfs.DF+ls[4] } + return {name: name, link: ls[0], path: ls[2], file: ls[2].split(nfs.PS).slice(-length).join(nfs.PS), line: ls[3], cols: ls[4]} } if (depth < 0) { var current = split(-depth) for (var i = -depth+1; i < list.length; i++) { var pos = split(i); if (pos.path != current.path) { return pos } } } return split(depth)||{} }, - _stacks: function(n, s) { var list = ((s||(new Error())).stack||"").split(ice.NL).slice(typeof n == undefined? 2: n) - for (var i = 0; i < list.length; i++) { var ls = list[i].trim().split(ice.SP) + _stacks: function(n, s) { var list = ((s||(new Error())).stack||"").split(lex.NL).slice(typeof n == undefined? 2: n) + for (var i = 0; i < list.length; i++) { var ls = list[i].trim().split(lex.SP) list[i] = ls.pop().trim(); if (list[i][0] == "(") { list[i] = list[i].slice(1, -1) } list[i] = " "+list[i]; if (ls.length > 1) { list[i] += " "+ls.pop() } list[i] = list[i].replace(/\?[^:]+/, "").replace(location.origin, "") } return list - }, _stack: function() { return ((new Error()).stack||"").split(ice.NL).slice(2) }, + }, _stack: function() { return ((new Error()).stack||"").split(lex.NL).slice(2) }, _time: function() { var now = new Date() var hour = now.getHours(); hour < 10 && (hour = "0"+hour) var minute = now.getMinutes(); minute < 10 && (minute = "0"+minute) var second = now.getSeconds(); second < 10 && (second = "0"+second) var mill = now.getMilliseconds(); mill < 10 && (mill = "00"+mill) || mill < 100 && (mill = "0"+mill) - return [hour, minute, second].join(ice.DF)+ice.PT+mill + return [hour, minute, second].join(nfs.DF)+nfs.PT+mill }, _args: function(level, arg) { var args = [this._time(), this.FileLine(this._skip+1, 3)].concat(level? [level]: []) for (var i in arg) { arg[i] != undefined && args.push(arg[i]) } return args diff --git a/lib/page.js b/lib/page.js index 70585944..3ed3024e 100644 --- a/lib/page.js +++ b/lib/page.js @@ -1,12 +1,12 @@ Volcanos("page", { ClassList: { - has: function(can, target, key) { var list = target.className? target.className.split(ice.SP): []; return list.indexOf(key) > -1 }, - add: function(can, target, key) { Array.isArray(key) && (key = key.join(ice.SP)) - var list = target.className? target.className.split(ice.SP): []; can.core.List(can.core.Split(key), function(key) { can.base.AddUniq(list, key) }) - var value = list.join(ice.SP).trim(); return value != target.className && (target.className = value), value + has: function(can, target, key) { var list = target.className? target.className.split(lex.SP): []; return list.indexOf(key) > -1 }, + add: function(can, target, key) { Array.isArray(key) && (key = key.join(lex.SP)) + var list = target.className? target.className.split(lex.SP): []; can.core.List(can.core.Split(key), function(key) { can.base.AddUniq(list, key) }) + var value = list.join(lex.SP).trim(); return value != target.className && (target.className = value), value }, - del: function(can, target, key) { var list = target.className? target.className.split(ice.SP): [] - return target.className = can.core.List(list, function(value) { return value == key? undefined: value }).join(ice.SP).trim() + del: function(can, target, key) { var list = target.className? target.className.split(lex.SP): [] + return target.className = can.core.List(list, function(value) { return value == key? undefined: value }).join(lex.SP).trim() }, set: function(can, target, key, condition) { return (condition? this.add(can, target, key): this.del(can, target, key)).indexOf(key) > -1 }, neg: function(can, target, key) { return (this.has(can, target, key)? this.del(can, target, key): this.add(can, target, key)).indexOf(key) > -1 }, @@ -16,7 +16,7 @@ Volcanos("page", { if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, target, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] } if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] } if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } } - if (key.indexOf(ice.PT) > -1) { return [""] } + if (key.indexOf(nfs.PT) > -1) { return [""] } key && can.base.isString(cb) && can.page.Select(can, target, "div.item."+key+">span.value", cb) return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb) }, @@ -24,11 +24,11 @@ Volcanos("page", { SelectChild: function(can, target, key, cb) { return can.core.List(can.page.Select(can, target, key, function(node) { if (node.parentNode == target) { return node } }), cb) }, SelectOne: function(can, target, key, cb) { return can.page.Select(can, target, key, function(target, index) { return index == 0 && can.base.isFunc(cb) && cb(target), target })[0] }, Select: function(can, target, key, cb, interval, cbs) { target = target || document.body - return can.core.List(key == ice.PT? [target]: target.querySelectorAll(can.page.Keys(key)), cb, interval, cbs) + return can.core.List(key == nfs.PT? [target]: target.querySelectorAll(can.page.Keys(key)), cb, interval, cbs) }, Modify: function(can, target, value) { target = can.base.isString(target)? document.querySelector(target): target; if (!target) { return } can.base.isString(value)? (target.innerHTML = value): can.core.Item(value, function(key, val) { - key == "className" && can.base.isArray(val) && (val = val.join(ice.SP)), !can.base.isObject(val)? (target[key] = val): can.core.Item(val, function(k, v) { + key == "className" && can.base.isArray(val) && (val = val.join(lex.SP)), !can.base.isObject(val)? (target[key] = val): can.core.Item(val, function(k, v) { if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width") && parseInt(v) < 0) { return target[key] && (target[key][k] = "") } if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width", "left", "top", "right", "bottom", "margin-left", "margin-top", "margin", "padding", "font-size") && v && (can.base.isNumber(v) || !can.base.endWith(v, "px"))) { v += "px" } target[key] && (target[key][k] = v) @@ -50,9 +50,9 @@ Volcanos("page", { case html.INNER: data.innerHTML = item.inner; break default: can.base.isUndefined(item[key]) || (data[key] = item[key]) } }) - if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) { list[0] = list[0].join(ice.SP) } + if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) { list[0] = list[0].join(lex.SP) } list[0] && can.page.ClassList.add(can, data, list[0]), type = list[1]||type, data.innerHTML = list[2]||data.innerHTML||"", name = list[3]||name - } else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(ice.SP) } + } else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(lex.SP) } data.innerHTML = list[0]||data.innerHTML||"", type = list[1]||item.type||html.SPAN, list[2] && can.page.ClassList.add(can, data, list[2]) } else if (item.icon) { var list = can.core.List(item.icon) type = html.SPAN, name = list[0], data.className = "icon "+list[0], data.innerText = can.page.unicode[list[0]] @@ -76,12 +76,12 @@ Volcanos("page", { // if (type == html.SELECT) { data.title = can.user.trans(can, data.title||name) } if (type == html.INPUT) { if (data.type == html.TEXT||data.type == html.PASSWORD||!data.type) { - data.placeholder = (data.placeholder||name||"").split(ice.PT).pop(), data.title = can.user.trans(can, data.title||data.placeholder) + data.placeholder = (data.placeholder||name||"").split(nfs.PT).pop(), data.title = can.user.trans(can, data.title||data.placeholder) data.autocomplete = data.autocomplete||"off" } else if (data.type == html.BUTTON) { // data.value = can.user.trans(can, data.value) } - } if (type == html.TEXTAREA) { data.placeholder = can.user.trans(can, (data.placeholder||name||"").split(ice.PT).pop()) } + } if (type == html.TEXTAREA) { data.placeholder = can.user.trans(can, (data.placeholder||name||"").split(nfs.PT).pop()) } can.core.List(["className", "placeholder", "title"], function(key) { data[key] || delete(data[key]) }) name && (data.name = name); var node = can.page.Create(can, type, data) value[type] = value[name] = value[can.core.Split(data.className)[0]] = node, value._target = value._target||node, value.first = value.first||node, value.last = node @@ -92,7 +92,7 @@ Volcanos("page", { AppendData: function(can, target, prefix, key, value, cb) { var open = can.page.unicode.open, close = can.page.unicode.close function short(value, length) { if (length == undefined) { - value.indexOf(ice.NL) > -1 && (value = value.trim().split(ice.NL)[0]+can.page.unicode.inner) + value.indexOf(lex.NL) > -1 && (value = value.trim().split(lex.NL)[0]+can.page.unicode.inner) return can.page.replace(can, value) } else { if (length > 5) { return can.page.unicode.inner } @@ -101,21 +101,21 @@ Volcanos("page", { function show(value, deep) { deep = deep == undefined? 2: 0; switch (typeof value) { case lang.OBJECT: if (!value) { return {} } if (value._path) { return {value: "@\""+value._path+"\""} } - if (value.tagName) { return {type: nfs.TARGET, value: "$ "+value.tagName.toLowerCase()+(value.className? ice.PT+value.className.replaceAll(ice.SP, ice.PT):"")} } + if (value.tagName) { return {type: nfs.TARGET, value: "$ "+value.tagName.toLowerCase()+(value.className? nfs.PT+value.className.replaceAll(lex.SP, nfs.PT):"")} } if (deep < 0) { return {value: value.length == undefined? "{"+can.page.unicode.inner+"}": "["+can.page.unicode.inner+"]"} } - if (value.length != undefined) { return {value: (value.length > 3? value.length+ice.SP: "")+"["+can.core.List(value, function(value, index) { if (index < 6) { return short(show(value, deep-1).value, index+1) } }).join(ice.FS)+"]"} } - return {value: "{"+can.core.Item(value, function(key, val, list) { if (value.hasOwnProperty(key) && val && list.length < 7) { return short(key+ice.DF+show(val, deep-1).value, list.length) } }).join(ice.FS)+"}"} + if (value.length != undefined) { return {value: (value.length > 3? value.length+lex.SP: "")+"["+can.core.List(value, function(value, index) { if (index < 6) { return short(show(value, deep-1).value, index+1) } }).join(mdb.FS)+"]"} } + return {value: "{"+can.core.Item(value, function(key, val, list) { if (value.hasOwnProperty(key) && val && list.length < 7) { return short(key+nfs.DF+show(val, deep-1).value, list.length) } }).join(mdb.FS)+"}"} case lang.STRING: return {open: "s", close: "s", value: "\""+(deep == 2? value.replaceAll("\n", "\\n"): short(value))+"\""} case lang.NUMBER: return {open: "n", close: "n", value: value} case lang.BOOLEAN: return {open: "b", close: "b", value: value} - case lang.FUNCTION: return {open: "f", close: "f", value: deep == 2? (""+value).split(ice.NL)[0]: "function(..) {..}"} + case lang.FUNCTION: return {open: "f", close: "f", value: deep == 2? (""+value).split(lex.NL)[0]: "function(..) {..}"} default: return {value: value} } } var loaded = false, _show = show(value); _show.open = _show.open||open, _show.close = _show.close||close var ui = can.page.Append(can, target, [!key && value.tagName? can.page.AppendView(can, value): {view: [[html.ITEM, _show.type||typeof(value)], key == ""? html.SPAN: html.DIV], list: [ - {view: [mdb.ICON, html.SPAN, _show.close+ice.SP]}, {view: [mdb.NAME, html.SPAN, key || key === 0? key+ice.SP: ""]}, {view: [mdb.VALUE, html.SPAN, _show.value]}, + {view: [mdb.ICON, html.SPAN, _show.close+lex.SP]}, {view: [mdb.NAME, html.SPAN, key || key === 0? key+lex.SP: ""]}, {view: [mdb.VALUE, html.SPAN, _show.value]}, ], onclick: function() { cb && cb(prefix, value); if (typeof value != lang.OBJECT) { return } - ui.icon.innerText = (can.onmotion.toggle(can, ui.list)? _show.open: _show.close)+ice.SP - if (loaded) { return } loaded = true, ui.icon.innerText = _show.open+ice.SP + ui.icon.innerText = (can.onmotion.toggle(can, ui.list)? _show.open: _show.close)+lex.SP + if (loaded) { return } loaded = true, ui.icon.innerText = _show.open+lex.SP if (value.tagName) { can.page.Append(can, ui.list, [can.page.AppendView(can, value)]), can.onappend.style(can, mdb.VIEW, ui.list) can.core.List(can.core.Item(target, function(key, value) { if (["textContent", "innerHTML", "outerHTML"].indexOf(key) > -1 || typeof value == lang.FUNCTION || key.toUpperCase() == key) { return } return key }).sort(), function(key) { target[key] && can.page.AppendData(can, ui.list, can.core.Keys(prefix, key), key, target[key], cb) @@ -133,18 +133,18 @@ Volcanos("page", { }, AppendView: function(can, target, tag, list, loaded, cb) { function field(target) { return target? can.core.List(target.attributes, function(item) { - return item.value == "" || item.value == item.name? {type: html.SPAN, list: [{text: ice.SP}, {text: item.name}]}: - {type: html.SPAN, list: [{text: ice.SP}, {text: item.name}, {text: ice.EQ}, {className: code.STRING, text: "\""+item.value+"\""}]} + return item.value == "" || item.value == item.name? {type: html.SPAN, list: [{text: lex.SP}, {text: item.name}]}: + {type: html.SPAN, list: [{text: lex.SP}, {text: item.name}, {text: mdb.EQ}, {className: code.STRING, text: "\""+item.value+"\""}]} }): [] } var ui = {}; tag = tag||target.tagName.toLowerCase(), isclose = tag != mdb.META && tag != mdb.LINK, _field = field(target) var inner = target.innerHTML? can.page.unicode.inner: ""; if (target && target.tagName) { target.innerText == target.innerHTML && (inner = target.innerText) } return {view: mdb.VIEW, list: [ {view: [[html.ITEM, target.tagName && target.tagName.toLowerCase()]], list: [ - {text: (target.children.length > 0? can.page.unicode.close: ice.SP)+ice.SP, _init: function(target) { ui.toggle = target }}, + {text: (target.children.length > 0? can.page.unicode.close: lex.SP)+lex.SP, _init: function(target) { ui.toggle = target }}, {className: code.KEYWORD, text: can.page.replace(can, ice.LT)}, {className: code.KEYWORD, text: tag}, {type: html.SPAN, list: _field}, {className: code.KEYWORD, text: can.page.replace(can, ice.GT)}, inner && {text: inner, _init: function(target) { ui.inner = target }}, - isclose && {className: code.KEYWORD, text: can.page.replace(can, ice.LT+ice.PS+tag+ice.GT), _init: function(target) { ui._close = target }}, - ], onclick: function(event) { ui.toggle.innerText = (can.onmotion.toggle(can, ui.list)? can.page.unicode.open: can.page.unicode.close)+ice.SP + isclose && {className: code.KEYWORD, text: can.page.replace(can, ice.LT+nfs.PS+tag+ice.GT), _init: function(target) { ui._close = target }}, + ], onclick: function(event) { ui.toggle.innerText = (can.onmotion.toggle(can, ui.list)? can.page.unicode.open: can.page.unicode.close)+lex.SP ui.inner && can.onmotion.toggle(can, ui.inner), can.onmotion.toggle(can, ui.close), can.onmotion.toggle(can, ui._close) if (!loaded) { if (can.page.tagis(target, ctx.STYLE, nfs.SCRIPT)) { can.page.Append(can, ui.list, [{text: target.innerHTML}]) } else { can.page.Append(can, ui.list, can.core.List(target.children, function(node) { return can.page.AppendView(can, node, "", null, false, cb) })) @@ -154,7 +154,7 @@ Volcanos("page", { !can.page.tagis(target, nfs.SCRIPT) && can.onappend.style(can, "picker", target) }, _init: function(target) { can.onmotion.delay(can, function() { loaded && target.click() }) }}, isclose && {view: [[html.LIST, html.HIDE]], style: {"margin-left": "20px"}, _init: function(target) { ui.list = target }, list: list}, - isclose && {view: [[html.ITEM, html.HIDE]], list: [{text: " "}, {className: code.KEYWORD, text: can.page.replace(can, ice.LT+ice.PS+tag+ice.GT)}], _init: function(target) { ui.close = target }}, + isclose && {view: [[html.ITEM, html.HIDE]], list: [{text: " "}, {className: code.KEYWORD, text: can.page.replace(can, ice.LT+nfs.PS+tag+ice.GT)}], _init: function(target) { ui.close = target }}, ]} }, AppendTable: function(can, msg, target, list, cb) { if (!msg.append||msg.append.length == 0) { return } @@ -192,11 +192,11 @@ Volcanos("page", { case html.IMG: return arg[2]? "": "" case html.SPAN: return arg[2]? ""+arg[1]+"": arg[1] default: /* type inner arg... */ - var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(ice.SP+arg[i]+ice.EQ+arg[i+1]) } + var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(lex.SP+arg[i]+mdb.EQ+arg[i+1]) } return list.concat(">", arg[1], "").join("") } }, Color: function(text) { if (typeof text != lang.STRING) { return "" } text = text.replace(/\\n/g, "
") - if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(ice.SP); text = ""+ls[0]+""+ls.slice(1).join(ice.SP) } + if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(lex.SP); text = ""+ls[0]+""+ls.slice(1).join(lex.SP) } if (text.indexOf("export ctx_dev=") == 0 && text.length > 10) { return "
"+""+text+""+"
" } @@ -215,10 +215,10 @@ Volcanos("page", { }, Keys: function() { var list = []; /* FS SP GT PT */ for (var i = 0; i < arguments.length; i++) { var v = arguments[i]; if (typeof v == lang.OBJECT) { for (var j = 0; j < v.length; j++) { if (typeof v[j] == lang.OBJECT) { - for (var k = 0; k < v[j].length; k++) { if (typeof v[j][k] == lang.OBJECT) { v[j][k] = v[j][k].join(ice.PT) } } + for (var k = 0; k < v[j].length; k++) { if (typeof v[j][k] == lang.OBJECT) { v[j][k] = v[j][k].join(nfs.PT) } } v[j] = v[j].join(ice.GT) - } } list.push(v.join(ice.SP)) - } else { list.push(v+"") } } return list.join(ice.FS) }, + } } list.push(v.join(lex.SP)) + } else { list.push(v+"") } } return list.join(mdb.FS) }, Cache: function(name, output, data) { if (!name) { return } var cache = output._cache||{}; output._cache = cache if (data) { if (output.children.length == 0) { return } var temp = document.createDocumentFragment() while (output.childNodes.length > 0) { var item = output.childNodes[0]; item.parentNode.removeChild(item), temp.appendChild(item) } @@ -241,7 +241,7 @@ Volcanos("page", { tagis: function(target) { if (!target || !target.tagName) { return } var type = target.tagName.toLowerCase(); for (var i = 1; i < arguments.length; i++) { if (type == arguments[i]) { return true } } }, - tagClass: function(target) { return target.tagName.toLowerCase()+(target.className? ice.PT+target.className.replaceAll(ice.SP, ice.PT): "") }, + tagClass: function(target) { return target.tagName.toLowerCase()+(target.className? nfs.PT+target.className.replaceAll(lex.SP, nfs.PT): "") }, isDisplay: function(target) { return target && target.style.display != html.NONE && target.className.indexOf(html.HIDE) == -1 }, editable: function(can, item, ok) { item.setAttribute("contenteditable", ok) }, draggable: function(can, item, ok) { item.setAttribute("draggable", ok) }, @@ -293,7 +293,7 @@ Volcanos("page", { } return input }, requireModules: function(can, libs, cb, cbs) { - for (var i = 0; i < libs.length; i++) { if (libs[i].indexOf(ice.PS) == 0 || libs[i].indexOf(ice.HTTP) == 0) { continue } + for (var i = 0; i < libs.length; i++) { if (libs[i].indexOf(nfs.PS) == 0 || libs[i].indexOf(ice.HTTP) == 0) { continue } if (libs[i].indexOf(nfs._CSS) == -1 && libs[i].indexOf(nfs._JS) == -1) { libs[i] = libs[i]+"/lib/"+libs[i]+nfs._JS } libs[i] = "/require/modules/"+libs[i] } can.require(libs, cb, cbs) diff --git a/lib/user.js b/lib/user.js index a25209fa..1b8275ad 100644 --- a/lib/user.js +++ b/lib/user.js @@ -41,7 +41,7 @@ Volcanos("user", { close: function(url) { window.close() }, theme: function(can, name) { can.base.isString(name) && (name = [name]) || name || [], can.user.isWindows && name.push("windows") can.user.isWebview && name.push(html.WEBVIEW), can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE) - can.user.language(can) && name.push(can.user.language(can)), can.page.styleClass(can, document.body, name.join(ice.SP)) + can.user.language(can) && name.push(can.user.language(can)), can.page.styleClass(can, document.body, name.join(lex.SP)) }, title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title }, language: function(can) { return can.misc.SearchOrConf(can, aaa.LANGUAGE)||can.user.info.language||"zh" }, @@ -75,7 +75,7 @@ Volcanos("user", { toastSuccess: function(can, content, title) { return can.user.toast(can, {content: "\u2705 "+(content||ice.SUCCESS), title: title||can._name, caller: 2}) }, toastFailure: function(can, content, title) { return can.user.toast(can, {content: "\u274C "+(content||ice.FAILURE), title: title||can._name, duration: 10000, caller: 2}) }, toast: function(can, content, title, duration, progress, caller) { - var meta = can.base.isObject(content)? content: {content: content, title: title||can._name.split(ice.PS).slice(-2).join(ice.PS), duration: duration, progress: progress, caller: caller} + var meta = can.base.isObject(content)? content: {content: content, title: title||can._name.split(nfs.PS).slice(-2).join(nfs.PS), duration: duration, progress: progress, caller: caller} var width = meta.width||400; if (width < 0) { width = window.innerWidth + width } meta.action = meta.action||[""] var ui = can.page.Append(can, document.body, [{view: [[chat.TOAST, chat.FLOAT]], style: {left: (window.innerWidth-width)/2, width: width, top: can.page.height()/2}, list: [ {text: [meta.title||"", html.DIV, html.TITLE], title: "点击复制", onclick: function(event) { can.user.copy(event, can, meta.title) }}, @@ -127,7 +127,7 @@ Volcanos("user", { can.onimport && can.onimport[item[0]] && can.onimport[item[0]](can, button) }, carte, trans); can.onlayout.figure(event, can, sub._target, true), remove_sub(carte), carte._sub = sub } return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, meta._style == ice.CMD? item: can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }: - can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [ice.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item + can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [lex.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item })}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } }) var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}; return carte }, @@ -185,14 +185,14 @@ Volcanos("user", { show: function (event, value, total, loaded) { ui.cost.innerHTML = can.base.Duration(new Date() - begin) ui.show.innerHTML = value+"%", value == 0 && action.begin(event) - ui.size.innerHTML = can.base.Size(loaded)+ice.PS+can.base.Size(total) + ui.size.innerHTML = can.base.Size(loaded)+nfs.PS+can.base.Size(total) can.page.styleWidth(can, ui.progress, value*(ui.output.offsetWidth-2)/100) }, _target: ui._target, }); can.page.Select(can, ui.action, html.INPUT_FILE)[0].click(), silent && can.onmotion.hidden(can, ui._target); return action }, downloads: function(can, text, name, ext) { return text && can.user.download(can, URL.createObjectURL(new Blob([text])), name, ext) }, download: function(can, path, name, ext) { - var a = can.page.Append(can, document.body, [{type: html.A, href: path, download: can.core.Keys(name, ext)||path.split(ice.PS).pop()}])._target + var a = can.page.Append(can, document.body, [{type: html.A, href: path, download: can.core.Keys(name, ext)||path.split(nfs.PS).pop()}])._target return a.click(), can.page.Remove(can, a), path }, toimage: function(can, name, target, silent) { var toast = can.user.toastProcess(can, "生成中...") @@ -219,7 +219,7 @@ Volcanos("user", { can.require(["http://localhost:9020/code/git/token/get/"+location.host], function() { }) can.user.isChrome && can.misc.POST(can, can.request(), "http://localhost:9020/code/git/token/get/"+location.host, {}, function(msg) { - msg.Results() && can.misc.POST(can, can.request(), "/code/git/token/sid/"+msg.result[0]+ice.PS+msg.result[1], {}, function(msg) { + msg.Results() && can.misc.POST(can, can.request(), "/code/git/token/sid/"+msg.result[0]+nfs.PS+msg.result[1], {}, function(msg) { if (msg.Result() == ice.OK) { can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() } }) }) diff --git a/panel/action.js b/panel/action.js index 2b3142d8..72f2e024 100644 --- a/panel/action.js +++ b/panel/action.js @@ -59,7 +59,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) { }, _onaction_cmd: function(can) { can.onengine.signal(can, chat.ONACTION_CMD), can.onlayout._init(can) }, onaction_cmd: function(can, msg) { can.page.ClassList.add(can, can._target, can.Mode(chat.CMD)), can.Conf(html.MARGIN_Y, 0), can.Conf(html.MARGIN_X, 0) }, - onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(ice.FS) + onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(mdb.FS) if (arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) } if (arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) } }, diff --git a/panel/footer.js b/panel/footer.js index b9b8b258..6649802f 100644 --- a/panel/footer.js +++ b/panel/footer.js @@ -19,13 +19,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.Conf(NKEY, can. close(); switch (event.target.value) { case cli.CLEAR: case cli.CLOSE: break - default: var list = can.core.Split(event.target.value, ice.SP) + default: var list = can.core.Split(event.target.value, lex.SP) can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+10, html.RIGHT, "") }) }) } }}, "", target, [chat.TITLE]) }, _data: function(can, name, item) { can.db[name] = can.db[name]||can.request(), can.db[name].Push(item), can.onimport.count(can, name) }, count: function(can, name) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+"" }) }, - ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, fileline: can.base.trimPrefix(msg.Option("log.caller"), location.origin+ice.PS), title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(ice.SP)) }, + ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, fileline: can.base.trimPrefix(msg.Option("log.caller"), location.origin+nfs.PS), title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(lex.SP)) }, ncmd: function(can, msg, _follow, _cmds) { can.onimport._data(can, NCMD, {time: can.base.Time(), follow: _follow, cmds: _cmds}), can.onimport.nlog(can, NLOG) }, nlog: function(can, name) { can.onimport.count(can, name) }, }) @@ -77,20 +77,20 @@ Volcanos(chat.ONPLUGIN, { ]}].concat(can.core.List(can.misc._list, function(list) { stat[list[2]] = ((stat[list[2]]||0)+1); return (!arg || !arg[0] || arg[0] == "log" || arg[0] == list[2]) && {type: html.TR, list: [ {type: html.TD, list: can.core.List(list, function(item, index) { var vimer if (index == 1) { var _ls = /(https*:\/\/[^/]+)\/*([^:]+):([0-9]+):([0-9]+)/.exec(list[1]); _ls[2] = _ls[2].split(ice.QS)[0] - return {view: [html.ITEM, html.SPAN], list: [{text: ice.SP+can.page.unicode.close+ice.SP}, {text: [(_ls[1] == location.origin? "": _ls[1])+_ls[2]+ice.DF+_ls[3], "", nfs.PATH], onclick: function(event) { + return {view: [html.ITEM, html.SPAN], list: [{text: lex.SP+can.page.unicode.close+lex.SP}, {text: [(_ls[1] == location.origin? "": _ls[1])+_ls[2]+nfs.DF+_ls[3], "", nfs.PATH], onclick: function(event) { if (can.onexport.record(can, list[1], mdb.LINK, {time: list[0], link: list[1], type: list[2], path: ice.USR_VOLCANOS, file: _ls[2], line: _ls[3]})) { return } if (vimer) { return can.page.Remove(can, vimer._target), vimer = null } vimer = can.onappend.plugin(_can, {index: web.CODE_INNER, args: [ice.USR_VOLCANOS, _ls[2], _ls[3]]}, function(sub) {}, event.target.parentNode) }}]} - } if (!can.base.isObject(item)) { return item && {text: (index > 0? ice.SP: "")+item} } + } if (!can.base.isObject(item)) { return item && {text: (index > 0? lex.SP: "")+item} } return {view: [mdb.DATA, html.SPAN], _init: function(target) { - if (item.tagName) { var detail; var ui = can.page.Append(can, target, [{text: ice.SP}, - {text: can.page.unicode.close+ice.SP, _init: function(target) { can.onmotion.delay(can, function() { ui.toggle = target }) }}, + if (item.tagName) { var detail; var ui = can.page.Append(can, target, [{text: lex.SP}, + {text: can.page.unicode.close+lex.SP, _init: function(target) { can.onmotion.delay(can, function() { ui.toggle = target }) }}, {view: [[html.ITEM, nfs.TARGET], html.SPAN, can.page.tagClass(item)], onclick: function() { - if (detail) { return can.page.Remove(can, detail), detail = null, can.page.Modify(can, ui.toggle, can.page.unicode.close+ice.SP) } - detail = can.page.AppendData(can, target, "", "", item)._target, detail.click(), can.page.Modify(can, ui.toggle, can.page.unicode.open+ice.SP) + if (detail) { return can.page.Remove(can, detail), detail = null, can.page.Modify(can, ui.toggle, can.page.unicode.close+lex.SP) } + detail = can.page.AppendData(can, target, "", "", item)._target, detail.click(), can.page.Modify(can, ui.toggle, can.page.unicode.open+lex.SP) }}, - ]) } else { can.page.Append(can, target, [{text: ice.SP}]), can.page.AppendData(can, target, "", "", item) } + ]) } else { can.page.Append(can, target, [{text: lex.SP}]), can.page.AppendData(can, target, "", "", item) } }} })}, ]} })) }]); arg && arg[1] && can.page.Select(can, can._output, html.TR, function(tr) { can.page.ClassList.set(can, tr, html.HIDE, tr.innerText.indexOf(arg[1]) == -1) }) @@ -99,7 +99,7 @@ Volcanos(chat.ONPLUGIN, { ].concat(can.core.List([log.INFO, log.WARN, log.ERROR, chat.ONREMOTE, html.WSS], function(item) { return {name: item, value: stat[item]||"0"} }))) }), data: shy("网页数据", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can - arg[0]? can.page.AppendData(can, can._output, arg[0], arg[0].split(ice.PT).pop(), can.core.Value(can._root, arg[0]), function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click(): + arg[0]? can.page.AppendData(can, can._output, arg[0], arg[0].split(nfs.PT).pop(), can.core.Value(can._root, arg[0]), function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click(): can.page.AppendData(can, can._output, "", can._root._name, can._root, function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click() }), view: shy("网页元素", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can @@ -107,7 +107,7 @@ Volcanos(chat.ONPLUGIN, { var ui = can.page.Append(can, can._output, [can.page.AppendView(can, document, "html", [ can.page.AppendView(can, document.head, html.HEAD), can.page.AppendView(can, document.body, html.BODY, null, false, function(target) { var list = []; for (var p = target; p && p.tagName && p != document.body; p = p.parentNode) { - list.push(p.tagName.toLowerCase()+(p.className? ice.PT+p.className.replaceAll(ice.SP, ice.PT).replace(".picker", ""): "")) + list.push(p.tagName.toLowerCase()+(p.className? nfs.PT+p.className.replaceAll(lex.SP, nfs.PT).replace(".picker", ""): "")) } can.Option(mdb.KEY, list.reverse().join(ice.GT)) }), ], true)]); can.onmotion.delay(can, function() { can.page.Select(can, ui._target, "div.item.head,div.item.body", function(target) { target.click() }) }) diff --git a/panel/header.js b/panel/header.js index 7c67d3ad..9401916b 100644 --- a/panel/header.js +++ b/panel/header.js @@ -5,7 +5,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.page.Append(can, target, [{view: [[html.ITEM, chat.TITLE], "", item], title: "返回主页", onclick: function(event) { can.onaction.title(event, can) }}]) }) }, _state: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.USERNICK, aaa.AVATAR, mdb.TIME]).reverse(), function(item) { - if (item == aaa.AVATAR ) { can.user.isLocalFile || can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item]], list: [{img: ice.SP}], onclick: function(event) { + if (item == aaa.AVATAR ) { can.user.isLocalFile || can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item]], list: [{img: lex.SP}], onclick: function(event) { can.core.CallFunc([can.onaction, item], [event, can, item]) }}]); return } can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item], "", (can.Conf(item)||msg.Option(item)||"").split(ice.AT)[0].slice(0, 10)], onclick: function(event) { diff --git a/panel/river.js b/panel/river.js index 1488b853..c6d7e48d 100644 --- a/panel/river.js +++ b/panel/river.js @@ -5,7 +5,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onimport._main(can, msg })), select && select.click(), can.onimport._menu(can, msg) }, _main: function(can, msg) { can.ui = {river_list: {}, storm_list: {}, sublist: {}} - var ls = location.hash.slice(1).split(ice.DF) + var ls = location.hash.slice(1).split(nfs.DF) can._main_river = ls[0]||can.misc.SearchOrConf(can, chat.RIVER)||msg.Option(ice.MSG_RIVER)||"project" can._main_storm = ls[1]||can.misc.SearchOrConf(can, chat.STORM)||msg.Option(ice.MSG_STORM)||"studio" }, @@ -47,7 +47,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func can.onaction.storm({target: can.ui.river_list[river]}, can, river), can.onmotion.toggle(can, can.ui.sublist[river], true) can.onmotion.select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], can.ui.storm_list[can.core.Keys(river, storm)]) can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)})) - // location.hash = [river, storm].join(ice.DF) + // location.hash = [river, storm].join(nfs.DF) // can.misc.sessionStorage(can, "can.river", river), can.misc.sessionStorage(can, "can.storm", storm) }, carte: function(event, can, list, river, storm) { can.onkeymap.prevent(event); if (can.core.Value(can._root, can.core.Keys(chat.RIVER, river))) { return } @@ -78,7 +78,7 @@ Volcanos(chat.ONDETAIL, { }, _menu: ["share", "savearg", "addcmd", "rename", "remove"], share: function(event, can, button, river, storm) { can.onmotion.share(event, can, [{name: chat.TITLE, value: can.user.title()}, {name: chat.THEME, values: [ice.AUTO, html.DARK, html.LIGHT, cli.WHITE, cli.BLACK]}], [mdb.TYPE, chat.STORM, chat.RIVER, river, chat.STORM, storm]) }, - savearg: function(event, can, button, river, storm) { can.getAction(ctx.ARGS, function(args, sub, next, index, array) { var toast = can.user.toast(can, (index+1)+ice.PS+array.length, button, 10000, (index+1)*100/array.length) + savearg: function(event, can, button, river, storm) { can.getAction(ctx.ARGS, function(args, sub, next, index, array) { var toast = can.user.toast(can, (index+1)+nfs.PS+array.length, button, 10000, (index+1)*100/array.length) can.run({}, [river, storm, chat.STORM, ctx.ACTION, mdb.MODIFY, mdb.ID, sub.Conf(mdb.ID), ctx.ARGS, JSON.stringify(args)], function() { can.onmotion.delay(can, function() { toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can) }) }) @@ -105,4 +105,4 @@ Volcanos(chat.ONENGINE, {_engine: function(event, can, msg, panel, cmds, cb) { v can.core.ItemOrder(river.storm, "order", function(key, value) { msg.Push({hash: key, name: can.user.language(can) == "en"? key: value.name}) }) can.base.isFunc(cb) && cb(msg); return true }}) -})() \ No newline at end of file +})() diff --git a/panel/search.js b/panel/search.js index cc1d4106..960bd4d2 100644 --- a/panel/search.js +++ b/panel/search.js @@ -11,12 +11,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onmotion.clear(can, can can.ConfHeight(can.base.Min(height-can.ui.content.offsetHeight-can.ui.display.offsetHeight-html.ACTION_HEIGHT, height/2)) }) }, _input: function(can, msg, arg, fields) { if (can.base.contains(arg[1], ";")) { arg = can.core.Split(arg[1], "\t ;", "\t ;") } - can.run(can.request({}, {fields: fields.join(ice.FS)}, msg), arg, function(res) { can.db.type = arg[0] + can.run(can.request({}, {fields: fields.join(mdb.FS)}, msg), arg, function(res) { can.db.type = arg[0] res.Option(ice.ARG, arg), can.onengine.signal(can, chat.ONSEARCH, res), can.onimport._init(can, res) }), can.onmotion.toggle(can, can._target, true) }, select: function(can, msg, cmds, cb) { can.ui.filter.value = cmds[1], can.ui.input = function(event, word) { cmds[1] = word||cmds[1]; can.onimport._input(can, msg, cmds, fields) } - var fields = (cmds[2]||msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(ice.FS); can.page.Appends(can, can.ui.display, [{th: fields}]), can.onmotion.hidden(can, can.ui.display), can.onmotion.clear(can, can.ui.profile) + var fields = (cmds[2]||msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(mdb.FS); can.page.Appends(can, can.ui.display, [{th: fields}]), can.onmotion.hidden(can, can.ui.display), can.onmotion.clear(can, can.ui.profile) can.ui.done = function() { can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hidden(can) }, can.db = {}, can._plugins = [], can.onimport._input(can, msg, cmds, fields) }, }) @@ -45,11 +45,11 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list }}]); show() }, plugin: function(event, can, data) { if (can.base.isFunc(data.text)) { return can.onmotion.hidden(can), data.text(event) } - var cmd = data.cmd == ctx.COMMAND? can.core.Keys(data.type, data.name.split(ice.SP)[0]): can.core.Keys(data.ctx, data.cmd) + var cmd = data.cmd == ctx.COMMAND? can.core.Keys(data.type, data.name.split(lex.SP)[0]): can.core.Keys(data.ctx, data.cmd) var meta = {type: html.PLUGIN, index: cmd||msg.Option(mdb.INDEX), args: cmd == web.WIKI_WORD? [data.name]: []} if (data.type == cli.OPENS) { return can.runAction(event, cli.OPENS, [data.text], null, true) } if (data.type == ssh.SHELL) { meta = {index: web.CODE_XTERM, args: [data.text]} } - if (data.type == ctx.INDEX) { meta = {index: data.text.split(ice.FS)[0], args: data.text.split(ice.FS).slice(1) } } + if (data.type == ctx.INDEX) { meta = {index: data.text.split(mdb.FS)[0], args: data.text.split(mdb.FS).slice(1) } } if (data.type == nfs.FILE) { meta = {index: web.CODE_VIMER, args: can.misc.SplitPath(can, data.text)} } can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true), sub.Focus() }, can.ui.profile) }, diff --git a/plugin/input/date.js b/plugin/input/date.js index 46b6ec07..7b48076b 100644 --- a/plugin/input/date.js +++ b/plugin/input/date.js @@ -19,7 +19,7 @@ Volcanos(chat.ONFIGURE, {date: { function show(now) { can.Action(YEAR, now.getFullYear()), can.Action(MONTH, now.getMonth()+1) can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/5)*5), can.Action(SECOND, parseInt(now.getSeconds()/5)*5) can.page.Appends(can, can._table, can.date.List(can, function(event, day) { day.setHours(now.getHours()), day.setMinutes(now.getMinutes()), day.getSeconds(now.getSeconds()), _cb(day), can.close() }, now)) - var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(ice.SP)}]) + var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(lex.SP)}]) return now } show(now), can._show = function(d) { d? _cb(show(now = new Date(now.getTime()+d*24*3600*1000))): _cb(show(now)) } })}, diff --git a/plugin/input/img.js b/plugin/input/img.js index 8249136f..815056af 100644 --- a/plugin/input/img.js +++ b/plugin/input/img.js @@ -2,7 +2,7 @@ Volcanos(chat.ONFIGURE, {img: { _init: function(can, meta, target) { var images = can.core.Split(target.value); can.onmotion.hidden(can, target) var count = parseInt(meta.value||"1"), width = target.parentNode.offsetWidth-12; for (var n = 1; n < 10; n++) { if (n*n >= count) { width = width/n; break } } width -= 1 function add(target, hash) { target._hash = hash, can.page.Appends(can, target, [{img: can.misc.MergeURL(can, {_path: web.SHARE_CACHE+hash}, true), height: width, width: width}]) } - function set() { target.value = can.page.SelectChild(can, target.parentNode, html.DIV, function(target) { return target._hash }).join(ice.FS) } + function set() { target.value = can.page.SelectChild(can, target.parentNode, html.DIV, function(target) { return target._hash }).join(mdb.FS) } for (var i = 0; i < count; i++) { can.page.Append(can, target.parentNode, [{type: html.DIV, style: { "background-color": "yellow", "float": "left", "clear": i%n == 0? "both": "none", "margin": 1, height: width, width: width, diff --git a/plugin/input/keyboard.js b/plugin/input/keyboard.js index 038992b6..b4335d93 100644 --- a/plugin/input/keyboard.js +++ b/plugin/input/keyboard.js @@ -8,7 +8,7 @@ Volcanos(chat.ONFIGURE, {keyboard: { msg.Table(function(item) { item.type == html.HEAD && can.page.Append(can, can._output, html.BR) function add(value) { target.value += value, target.focus(), can.user.toast(can, value||item.name) } function hold() { can.page.ClassList.add(can, div, "hold") } - var div = can.page.Append(can, can._output, [{view: item.type+ice.SP+item.name+(item.name.indexOf(ice.NL)>-1? " double": item.name.length>1? " special": ""), list: [{text: [item.name]}], onclick: function(event) { + var div = can.page.Append(can, can._output, [{view: item.type+lex.SP+item.name+(item.name.indexOf(lex.NL)>-1? " double": item.name.length>1? " special": ""), list: [{text: [item.name]}], onclick: function(event) { switch (item.name) { case cli.CLEAR: target.value = "", target.focus(); break case cli.CLOSE: can.close(); break @@ -19,10 +19,10 @@ Volcanos(chat.ONFIGURE, {keyboard: { case lang.ENTER: break default: can._shift = can._shift||event.shiftKey if (item.name == lang.TAB) { - add(ice.TB) + add(lex.TB) } else if (item.name == lang.SPACE) { - add(ice.SP) - } else if (item.name.indexOf(ice.NL) > -1) { var ls = can.core.Split(item.name, ice.NL, ice.NL, ice.NL) + add(lex.SP) + } else if (item.name.indexOf(lex.NL) > -1) { var ls = can.core.Split(item.name, lex.NL, lex.NL, lex.NL) add(can._shift? ls[0]: ls[1]) } else { add(can._shift? item.name.toUpperCase(): item.name) @@ -37,7 +37,7 @@ Volcanos(chat.ONFIGURE, {keyboard: { ["4", "5", "6"], ["7", "8", "9"], ], function(list) { can.core.List(list, function(item, index) { - msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, (index == 0? html.HEAD: "")].join(ice.SP), name: item}) + msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, (index == 0? html.HEAD: "")].join(lex.SP), name: item}) }) }); return 150 }, _normal: function(can, msg) { @@ -48,7 +48,7 @@ Volcanos(chat.ONFIGURE, {keyboard: { [lang.SHIFT, "z", "x", "c", "v", "b", "n", "m", "<\n,", ">\n.", "?\n/", lang.SHIFT], [lang.CTRL, lang.CMD, lang.ALT, lang.SPACE, lang.ALT, lang.CMD, lang.CTRL], ], function(list) { can.core.List(list, function(item, index) { - msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, index == 0? html.HEAD: index == list.length-1? "tail": ""].join(ice.SP), name: item}) + msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, index == 0? html.HEAD: index == list.length-1? "tail": ""].join(lex.SP), name: item}) }) }); return 750 } }}) diff --git a/plugin/local/chat/location.js b/plugin/local/chat/location.js index eb434cd8..099a8bfa 100644 --- a/plugin/local/chat/location.js +++ b/plugin/local/chat/location.js @@ -47,14 +47,14 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can._msg.Table(function(item) { can.onimport._item(can, item) }) }, _search0: function(can, keyword) { var p = can.onimport.point(can, can.current.item) - can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], ice.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) { + can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], mdb.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) { var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) { can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target) }) }) }, _search: function(can, keyword) { var p = can.onimport.point(can, can.current.item) - can.runAction(can.request({}, {"boundary": "region("+can.base.join([can.Status("city"), p.lat, p.lng], ice.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) { + can.runAction(can.request({}, {"boundary": "region("+can.base.join([can.Status("city"), p.lat, p.lng], mdb.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) { var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) { can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.search._target) }) @@ -262,7 +262,7 @@ Volcanos(chat.ONACTION, {list: [["mode", "select", "insert"], explore: function(event, can, button) { var p = can.onimport.point(can, can.current.item); can.onmotion.clear(can, can.ui.explore._target) for (var i = 1; i < 6; i++) { - can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], ice.FS)+")", "page_index": i}), button, [], function(msg) { + can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], mdb.FS)+")", "page_index": i}), button, [], function(msg) { var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) { can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target) }) @@ -272,7 +272,7 @@ Volcanos(chat.ONACTION, {list: [["mode", "select", "insert"], direction: function(event, can, button) { var p = can.map.getCenter(); can.onmotion.clear(can, can.ui.direction._target) can.user.input(event, can, [["type", "driving", "walking", "bicycling", "transit"]], function(list) { var from = can.onimport.point(can, can._current), to = can.onimport.point(can, can.current.item) - var msg = can.request({}, {type: list[0], "from": can.base.join([from.lat, from.lng], ice.FS), "to": can.base.join([to.lat, to.lng], ice.FS)}) + var msg = can.request({}, {type: list[0], "from": can.base.join([from.lat, from.lng], mdb.FS), "to": can.base.join([to.lat, to.lng], mdb.FS)}) can.runAction(msg._event, button, [], function(msg) { var res = can.base.Obj(msg.Result()), route = res.result.routes[0] var coors = route.polyline, pl = [], kr = 1000000 for (var i = 2; i < coors.length; i++) { coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr } diff --git a/plugin/local/chat/trans.js b/plugin/local/chat/trans.js index 62a4ce38..5c008ecf 100644 --- a/plugin/local/chat/trans.js +++ b/plugin/local/chat/trans.js @@ -11,7 +11,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { return can.onappend.plugin(can, {type: chat.STORY, index: index}, function(sub) { sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()/2, false) can.page.style(can, sub._target, {float: pos, clear: pos}) - sub._legend.innerHTML = can.Option(from)+ice.SP+index + sub._legend.innerHTML = can.Option(from)+lex.SP+index sub.run = function(event, cmds, cb) { if (can.onaction[cmds[1]]) { return can.onaction[cmds[1]](can, from, to, event, cmds, cb) } @@ -26,7 +26,7 @@ Volcanos(chat.ONACTION, { var path = can.request(event).Option(nfs.PATH) var msg = can.request(event, {_handle: ice.TRUE, from: can.Option(from), from_path: path, - to: can.Option(to), to_path: _to.Option(nfs.PATH)+path.split(ice.PS).pop(), + to: can.Option(to), to_path: _to.Option(nfs.PATH)+path.split(nfs.PS).pop(), }) can.run(event, cmds, function() { _to.Update() }, true) }, diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index 2f2bc106..d26043be 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -76,6 +76,8 @@ body.white fieldset.inner>div.output div.content tr.select { background-color:al body.white fieldset.inner>div.output div.content tr.select td.line { background-color:steelblue; color:white; } body.mobile fieldset.inner>form.option input[name=file] { width:90px; } body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; } +body.windows fieldset.inner>div.output { overflow:hidden; } +body.windows fieldset.inner>div.output>div.layout>div.layout>div.profile { overflow:hidden; } body.zh fieldset.inner>div.output>div.project>div.zone>div.item { letter-spacing:10px; } div.path span.item { padding:5px; } div.carte.path.float { font-size:14px; border-radius:0; } div.carte.path.float div.item { padding:5px; } diff --git a/plugin/local/code/inner/debug.js b/plugin/local/code/inner/debug.js index eb4fe1e2..46597b98 100644 --- a/plugin/local/code/inner/debug.js +++ b/plugin/local/code/inner/debug.js @@ -1,11 +1,11 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.core.List(can.misc._list, function(item) { msg.Push(mdb.TIME, item[0]) - msg.Push(nfs.FILE, item[1].split(ice.DF)[0].split("?")[0]) - msg.Push(nfs.LINE, item[1].split(ice.DF)[1]) + msg.Push(nfs.FILE, item[1].split(nfs.DF)[0].split("?")[0]) + msg.Push(nfs.LINE, item[1].split(nfs.DF)[1]) msg.Push(mdb.TYPE, item[2]) msg.Push(mdb.NAME, item[3]) - msg.Push(mdb.TEXT, item.slice(4).join(ice.SP)||"") + msg.Push(mdb.TEXT, item.slice(4).join(lex.SP)||"") }), msg.StatusTimeCount(), can.onmotion.clear(can), can.onappend.table(can, msg) can.page.Select(can, can._option, "input[name=name]", function(target) { target.onkeyup = function(event) { can.misc.Event(event, can, function(msg) { diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index 8efe0ba6..ddb38c67 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -134,8 +134,8 @@ Volcanos(chat.ONSYNTAX, { }, func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t ") opts.chapter = opts.chapter||0 - if (ls[0] == "chapter") { opts.chapter++, opts.section = 0, push(opts.chapter+ice.SP+ls[1]) } - if (ls[0] == "section") { opts.section++, push(opts.chapter+ice.PT+opts.section+ice.SP+ls[1]) } + if (ls[0] == "chapter") { opts.chapter++, opts.section = 0, push(opts.chapter+lex.SP+ls[1]) } + if (ls[0] == "section") { opts.section++, push(opts.chapter+nfs.PT+opts.section+lex.SP+ls[1]) } }, }, py: {prefix: {"#!": code.COMMENT, "# ": code.COMMENT}, keyword: {"import": code.KEYWORD, "from": code.KEYWORD, "return": code.KEYWORD, "print": code.FUNCTION}}, @@ -163,19 +163,19 @@ Volcanos(chat.ONSYNTAX, { }, func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t *", "({:})") function isKey() { return opts.block == "cmds" && ls[1] == ":" && ls[2] == "{" } function isEnd() { return ls[0] == "}" } - function prefix(key, pre) { return key.toLowerCase() == key? "- ": ("+ "+(pre? pre+ice.PT: "")) } + function prefix(key, pre) { return key.toLowerCase() == key? "- ": ("+ "+(pre? pre+nfs.PT: "")) } if (indent == 0) { switch (ls[0]) { case "package": opts.package = ls[1]; break - case "func": if (ls[1] == "(") { push(prefix(ls[5])+ls[2]+ice.PT+ls[5]); break } + case "func": if (ls[1] == "(") { push(prefix(ls[5])+ls[2]+nfs.PT+ls[5]); break } case "const": case "var": if (ls[1] == "(") { break } case "type": push(prefix(ls[1], opts.package)+ls[1]); break } opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") { if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" } } else if (indent == 8) { - if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+ice.PT+ls[0] } + if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+nfs.PT+ls[0] } } else if (indent == 12) { - if (isKey()) { push("+ "+opts.cmds+ice.SP+ls[0]) } + if (isKey()) { push("+ "+opts.cmds+lex.SP+ls[0]) } } }, }, mod: {prefix: {"//": code.COMMENT}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {}, @@ -206,20 +206,20 @@ Volcanos(chat.ONSYNTAX, { "res": code.OBJECT, "sub": code.OBJECT, "sup": code.OBJECT, }, complete: function(event, can, msg, target, pre, key) { - var ls = can.core.Split(can.core.Split(pre, "\t {(:,)}").pop(), ice.PT), list = {can: can, msg: msg, target: target, event: event, window: window} + var ls = can.core.Split(can.core.Split(pre, "\t {(:,)}").pop(), nfs.PT), list = {can: can, msg: msg, target: target, event: event, window: window} can.core.ItemKeys(key == ""? list: can.core.Value(list, ls)||can.core.Value(window, ls)||window, function(k, v) { - msg.Push(mdb.NAME, k).Push(mdb.TEXT, (v+"").split(ice.NL)[0]) + msg.Push(mdb.NAME, k).Push(mdb.TEXT, (v+"").split(lex.NL)[0]) }) }, - func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t (,", ice.DF) + func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t (,", nfs.DF) if (indent == 0 && can.base.beginWith(text, "Volcanos")) { var _block = can.base.trimPrefix(ls[1], "chat.").toLowerCase() if (_block != opts.block) { push("") } opts.block = _block - if (text.indexOf(chat._INIT) > -1) { push(opts.block+ice.PT+chat._INIT) } + if (text.indexOf(chat._INIT) > -1) { push(opts.block+nfs.PT+chat._INIT) } } else if (indent == 0 && can.base.beginWith(text, "var ")) { opts.block = ls[1] - } else if (indent == 4 && ls[1] == ice.DF) { - ls[0] && push(opts.block+ice.PT+ls[0]) + } else if (indent == 4 && ls[1] == nfs.DF) { + ls[0] && push(opts.block+nfs.PT+ls[0]) } }, }, json: {}, diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 94c69028..c6c3a011 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -115,7 +115,7 @@ Volcanos(chat.ONACTION, {list: ["编译", "变更", "源码", "终端", "导图" "首页": function(event, can) { can.onimport.tabview(can, "", location.origin+nfs.PS+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": ""), web.SPACE) }, insertLine: function(can, value, before) { var line = can.onaction.appendLine(can, value); before && can.ui.content.insertBefore(line, can.onaction._getLine(can, before)); return can.onaction.rerankLine(can), can.onexport.line(can, line) }, deleteLine: function(can, line) { line = can.onaction._getLine(can, line); var next = line.nextSibling||line.previousSibling; return can.page.Remove(can, line), can.onaction.rerankLine(can), next }, - _selectLine: function(can) { can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText + _selectLine: function(can) { can.current && can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.TOP, td.offsetTop, html.WIDTH, can.base.Min(td.offsetWidth, can.ui.content.offsetWidth-can.page.Select(can, can.current.line, "td.line")[0].offsetWidth)) can.db.mode == mdb.NORMAL && can.onkeymap._normal(can) diff --git a/plugin/local/code/xterm.js b/plugin/local/code/xterm.js index 9f1b4881..a2b05b48 100644 --- a/plugin/local/code/xterm.js +++ b/plugin/local/code/xterm.js @@ -39,9 +39,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireModules term.onData(function(data) { can.onimport._input(can, term, data) }) term.onCursorMove(function() { can.onexport.term(can, term) }) term.loadAddon(new WebLinksAddon.WebLinksAddon()) - can.onmotion.clear(can, output), term.open(output), term.focus(), text && can.onmotion.delay(can, function() { term.write(text.replaceAll(ice.NL, "\r\n")) }) + can.onmotion.clear(can, output), term.open(output), term.focus(), text && can.onmotion.delay(can, function() { term.write(text.replaceAll(lex.NL, "\r\n")) }) can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can = can.core.Value(can.sup, chat._OUTPUTS_CURRENT) - term.selectAll(), can.onimport._connect(can, item, output, tabs, can.base.trimSuffix(term.getSelection(), ice.NL)) + term.selectAll(), can.onimport._connect(can, item, output, tabs, can.base.trimSuffix(term.getSelection(), lex.NL)) }), can.page.style(can, output, html.BACKGROUND_COLOR, term._publicOptions.theme.background||cli.BLACK) output.onclick = function() { output._tabs._current = output can.onmotion.select(can, can._fields, html.DIV_OUTPUT, can._output = output), term.focus(), can.onexport.term(can, term) @@ -78,19 +78,19 @@ Volcanos(chat.ONKEYMAP, { p: function(event, can) { can._output._tabs.previousSibling && can._output._tabs.previousSibling.click() }, s: function(event, can) { can.onaction.sess(event, can) }, t: function(event, can) { can.user.input({target: can._output._tabs}, can, [ctx.INDEX, ctx.ARGS], function(list, data) { can.onimport.tool(can, [data], function(sub) { - sub.select(), sub.onexport.record = function(_, value) { can.onimport._input(can, can._output._term, value+ice.NL) } + sub.select(), sub.onexport.record = function(_, value) { can.onimport._input(can, can._output._term, value+lex.NL) } }, can._fields) }) }, f: function(event, can) { var input = can.user.input({target: can._output._tabs}, can, [{type: mdb.TEXT, name: nfs.FILE, select: function(item) { - var ls = item.split(ice.DF); switch (ls[0]) { + var ls = item.split(nfs.DF); switch (ls[0]) { case "tabs": can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { target.innerText == ls[1] && target.click() }); break case web.LAYOUT: can.Option(mdb.HASH, ls[1]), can.Update(); break case ctx.INDEX: can.onimport.tool(can, [ls[1]], function(sub) { sub.select() }); break case ssh.SHELL: can.onaction.tabnew(can.request({}, {_handle: ice.TRUE, type: ls[1]}), can); break - default: can.onimport._input(can, can._output._term, item+ice.NL) + default: can.onimport._input(can, can._output._term, item+lex.NL) } input.cancel() }, run: function(event, cmds, cb) { can.run(event, cmds, function(msg) { var _msg = can.request() - function push(type, name) { _msg.Push(nfs.FILE, can.core.List(arguments).join(ice.DF)) } + function push(type, name) { _msg.Push(nfs.FILE, can.core.List(arguments).join(nfs.DF)) } can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { push("tabs", target.innerText) }) _msg.Copy(msg), can.core.Item(can.onengine.plugin.meta, function(key, value) { push(ctx.INDEX, "can."+key) }), cb(_msg) }) }}], function(list) {}) @@ -129,7 +129,7 @@ Volcanos(chat.ONACTION, { }, sess: function(event, can) { can.user.input({target: can._legend}, can, [mdb.NAME], function(list) { can.runAction({}, mdb.CREATE, [mdb.TYPE, html.LAYOUT, mdb.NAME, list[0], mdb.TEXT, can.base.Format(can.onexport.sess(can))], function(msg) { - can.user.toastSuccess(can, can.user.trans(can, nfs.SAVE)+ice.SP+msg.Result()) + can.user.toastSuccess(can, can.user.trans(can, nfs.SAVE)+lex.SP+msg.Result()) }, true) }) }, onkeydown: function(event, can) { diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index c02e2f17..6651b09f 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -23,14 +23,14 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( ondragstart: function(event) { var target = event.target; can.drop = function(event, td, time) { td.append(target) can.onaction.modifyTask(event, can, task, team.BEGIN_TIME, time+task.begin_time.slice(time.length), task.begin_time) } }, draggable: time != undefined, title: can.onexport.title(can, task), _init: function(target) { - var item = can.onimport.item(can, {nick: task.name+ice.DF+task.text}, function() { can.onmotion.delay(can, function() { + var item = can.onimport.item(can, {nick: task.name+nfs.DF+task.text}, function() { can.onmotion.delay(can, function() { can.onmotion.select(can, can.ui.content, html.TD, target.parentNode), can.onimport._profile(can, task), can.onimport._display(can, task), can.onimport.layout(can) }) }, null, can.ui.project); task._target = target, target.onclick = function(event) { item.click() }, can.list[can.core.Keys(task.zone, task.id)] = target }} }), } }, _profile: function(can, task) { can.onmotion.toggle(can, can.ui.profile, true), can.onexport.hash(can, task) - if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(ice.PT) }, can.ui.profile)) { return } + if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(nfs.PT) }, can.ui.profile)) { return } task.extra && can.core.Item(can.base.Obj(task.extra), function(key, value) { task["extra."+key] = value }), delete(task.extra) var table = can.page.Appends(can, can.ui.profile, [{view: [chat.CONTENT, html.TABLE], list: [{th: [can.user.trans(can, mdb.KEY, "字段"), can.user.trans(can, mdb.VALUE, "属性")]}]}])._target can.core.Item(task, function(key, value) { key != "_target" && can.page.Append(can, table, [{ @@ -42,13 +42,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( }]) }), can.onmotion.story.auto(can, can.ui.profile) }, _display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true) - if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(ice.PT) }, can.ui.display)) { return } + if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(nfs.PT) }, can.ui.display)) { return } task[ctx.EXTRA_INDEX] && can.onappend.plugin(can, {index: task[ctx.EXTRA_INDEX], args: task[ctx.EXTRA_ARGS], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) { sub.run = function(event, cmds, cb) { can.request(event, kit.Dict(team.TASK_POD, task.pod, team.TASK_ZONE, task.zone, team.TASK_ID, task.id)) can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb) } sub.onexport.output = function() { can.onmotion.delay(can, function() { - sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth) + sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(mdb.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth) can.onimport.layout(can) }) }, sub.onaction.close = function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) } }, can.ui.display) @@ -106,7 +106,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( can.ui.layout(can.ConfHeight(), can.ConfWidth()) return can.page.styleHeight(can, can._output, can.ConfHeight()), can.page.styleHeight(can, can.ui.project, can.ConfHeight()) - var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(ice.FS): ""]||html.ACTION_HEIGHT + var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(mdb.FS): ""]||html.ACTION_HEIGHT if (!can.ui.display.innerHTML || can.ui.display.style.display == html.NONE) { height = 0 } can.page.style(can, can.ui.table, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth) can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth) @@ -148,12 +148,12 @@ Volcanos(chat.ONACTION, {list: [ }) Volcanos(chat.ONEXPORT, {list: [mdb.COUNT, team.BEGIN_TIME, mdb.ZONE, mdb.ID, mdb.TYPE, mdb.NAME, mdb.TEXT], span: function(can) { return kit.Dict(team.DAY, 24*3600*1000, team.WEEK, 7*24*3600*1000, team.MONTH, 30*24*3600*1000, team.YAER, 365*24*3600*1000, team.LONG, 365*24*3600*1000)[can.Option("scale")]||0 }, - hash: function(can, task) { if (!can.isCmdMode()) { return } location.hash = [task.zone, task.id].join(ice.DF) }, + hash: function(can, task) { if (!can.isCmdMode()) { return } location.hash = [task.zone, task.id].join(nfs.DF) }, head: function(can, scale) { if ([team.YEAR, team.LONG].indexOf(scale) > -1) { return } return [scale].concat(can.user.time(can, "", "%W")) }, name: function(can, task) { return task.name }, text: function(can, task) { return task.name+": "+(task.text||"") }, level: function(can, task) { return "l-"+(task.level||3)+": "+(task.name||"") }, score: function(can, task) { return "s-"+(task.level||3)+": "+(task.name||"") }, title: function(can, task) { return task.zone+": "+(task.type||"") }, - style: function(can, task) { return [html.ITEM, task.status, mdb.ID+task.id, "l"+(task.level||""), "s"+(task.score||"")].join(ice.SP) }, + style: function(can, task) { return [html.ITEM, task.status, mdb.ID+task.id, "l"+(task.level||""), "s"+(task.score||"")].join(lex.SP) }, }) diff --git a/plugin/local/wiki/data.js b/plugin/local/wiki/data.js index 8eab5e08..4f51f1d5 100644 --- a/plugin/local/wiki/data.js +++ b/plugin/local/wiki/data.js @@ -72,6 +72,6 @@ Volcanos(chat.ONDETAIL, {list: ["复制", "删除"], }) Volcanos(chat.ONEXPORT, { content: function(can) { return can.page.Select(can, can.ui.content, html.TR, function(tr) { - return can.page.Select(can, tr, can.page.Keys(html.TH, html.TD), function(td) {return td.innerHTML}).join(ice.FS) - }).join(ice.NL) }, + return can.page.Select(can, tr, can.page.Keys(html.TH, html.TD), function(td) {return td.innerHTML}).join(mdb.FS) + }).join(lex.NL) }, }) diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index 9011f4b4..851679d0 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -19,7 +19,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( target.Group = function() { for (var node = target; node; node = node.parentNode) { if (can.page.tagis(node, svg.G, html.SVG)) { return node } } return can.svg } target.Groups = function() { if (target == can.svg) { return html.SVG } var list = [] for (var node = target; node && !can.page.tagis(node, html.SVG); node = node.parentNode) { can.page.tagis(node, svg.G) && node.Value(html.CLASS) && list.push(node.Value(html.CLASS)) } - return list.reverse().join(ice.PT) + return list.reverse().join(nfs.PT) }; return target }, _group: function(can, target) { if (!can.ui.project) { return } var name = target.Groups() @@ -147,7 +147,7 @@ Volcanos(chat.ONACTION, {list: [[svg.GRID, 10, 1, 2, 3, 4, 5, 10, 20], oncontextmenu: function(event, can) { can.page.style(can, can.user.carte(event, can, can.ondetail, null, function(ev, button, meta) { meta[button](event, can, button) })._target, {left: event.clientX, top: event.clientY}) }, }) Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.REMOVE], - _select(can, name, cb) { if (!name) { return } var target = can.page.SelectOne(can, can.svg, ice.PT+name, cb) + _select(can, name, cb) { if (!name) { return } var target = can.page.SelectOne(can, can.svg, nfs.PT+name, cb) can.onimport._profile(can, target), can.onimport._display(can, target), can.onimport.layout(can) return target }, @@ -178,7 +178,7 @@ Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb. target.Value(mdb.TEXT, can.onexport._pid(can, can.onimport.block(can, html.TEXT, can.onexport._text(can, target, can.onfigure._get(can, target), {inner: list[0]}), target.Group()) )) }) }, - toimage: function(event, can) { can.user.toimage(can, can.Option(nfs.PATH).split(ice.PS).pop().split(ice.PT)[0], can.svg) }, + toimage: function(event, can) { can.user.toimage(can, can.Option(nfs.PATH).split(nfs.PS).pop().split(nfs.PT)[0], can.svg) }, remove: function(event, can) { if (target == can.svg) { return } var target = event.target can.core.List(target.Value(ice.SHIP), function(item) { can.ondetail._select(can, item.pid, function(target) { can.page.Remove(can, target) }) }) can.ondetail._select(can, target.Value(mdb.TEXT), function(target) { can.page.Remove(can, target) }), can.page.Remove(can, target) @@ -192,31 +192,31 @@ Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb. Volcanos(chat.ONEXPORT, {list: [svg.GROUP, svg.FIGURE, ctx.INDEX, "pos"], _point: function(event, can) { var p = can.svg.getBoundingClientRect(), point = {x: event.clientX-p.x, y: event.clientY-p.y} point.x = point.x - point.x % parseInt(can.Action(svg.GRID)), point.y = point.y - point.y % parseInt(can.Action(svg.GRID)) - return can.Status("pos", point.x+ice.FS+point.y), point + return can.Status("pos", point.x+mdb.FS+point.y), point }, _pid: function(can, target) { if (target.Value(svg.PID)) { return target.Value(svg.PID) } var pid = "p"+can.svg.Val(mdb.COUNT, can.svg.Val(mdb.COUNT)+1) - return target.Value(html.CLASS, [target.Value(html.CLASS), target.Value(svg.PID, pid)].join(ice.SP).trim()), pid + return target.Value(html.CLASS, [target.Value(html.CLASS), target.Value(svg.PID, pid)].join(lex.SP).trim()), pid }, _text: function(can, target, figure, data) { var trans = can.core.Value(figure.data, svg.TRANS)||{} if (figure.text) { return figure.text(can, target, data) } return data.x = target.Val(trans[svg.X]||svg.X), data.y = target.Val(trans[svg.Y]||svg.Y), data }, _size: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{} - return "<("+target.Val(trans[html.HEIGHT]||html.HEIGHT)+ice.FS+target.Val(trans[html.WIDTH]||html.WIDTH)+")" + return "<("+target.Val(trans[html.HEIGHT]||html.HEIGHT)+mdb.FS+target.Val(trans[html.WIDTH]||html.WIDTH)+")" }, _position: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{} - return "@("+target.Val(trans[svg.X]||svg.X)+ice.FS+target.Val(trans[svg.Y]||svg.Y)+")" + return "@("+target.Val(trans[svg.X]||svg.X)+mdb.FS+target.Val(trans[svg.Y]||svg.Y)+")" }, _show: function(can, target) { var figure = can.onfigure._get(can, target) - function show() { return can.onexport._size(can, target, figure)+ice.SP+can.onexport._position(can, target, figure) } - can.Status(svg.FIGURE, target.tagName+ice.DF+target.Value(svg.PID)+ice.SP+(figure? (figure.show||show)(can, target, figure): "")) + function show() { return can.onexport._size(can, target, figure)+lex.SP+can.onexport._position(can, target, figure) } + can.Status(svg.FIGURE, target.tagName+nfs.DF+target.Value(svg.PID)+lex.SP+(figure? (figure.show||show)(can, target, figure): "")) can.Status(svg.GROUP, target.Groups()||can.group.Groups()||html.SVG) can.Status(ctx.INDEX, target.Value(ctx.INDEX)||"") }, content: function(can, target) { return ['", target? target.innerHTML: "", ""]).join("") + target? can.core.List([mdb.COUNT, svg.PID], function(item) { return target.Value(item)? can.base.joinKV([item, target.Value(item)], mdb.EQ): ""}).join(lex.SP): "").concat([">", target? target.innerHTML: "", ""]).join("") }, cursor: function(event, can, target) { var p = target.getBoundingClientRect(), q = {x: event.clientX, y: event.clientY}, pos = 5, margin = 20 @@ -308,7 +308,7 @@ Volcanos(chat.ONFIGURE, { return {x1: p0.x, y1: p0.y, x2: p1.x, y2: p1.y, ship: ship.length > 0? ship: undefined} }, text: function(can, target, data) { return data.x = (target.Val(svg.X1)+target.Val(svg.X2))/2, data.y = (target.Val(svg.Y1)+target.Val(svg.Y2))/2, data }, - show: function(can, target, figure) { return "<("+(target.Val(svg.Y2)-target.Val(svg.Y1))+ice.FS+(target.Val(svg.X2)-target.Val(svg.X1))+")"+can.onexport._position(can, target, figure) }, + show: function(can, target, figure) { return "<("+(target.Val(svg.Y2)-target.Val(svg.Y1))+mdb.FS+(target.Val(svg.X2)-target.Val(svg.X1))+")"+can.onexport._position(can, target, figure) }, }, circle: { // "25" cy="75" r="20"/> data: {points: 2, trans: {height: svg.R, width: svg.R, x: svg.CX, y: svg.CY}, copy: [svg.R]}, diff --git a/plugin/local/wiki/feel.js b/plugin/local/wiki/feel.js index 1416281e..6fc1fc5f 100644 --- a/plugin/local/wiki/feel.js +++ b/plugin/local/wiki/feel.js @@ -1,5 +1,5 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.clear(can), can.dir_root = msg.Option(nfs.DIR_ROOT) - can._path = can.request(), can.list = [], msg.Table(function(value) { can.base.endWith(value.path, ice.PS)? can._path.Push(value): can.list.push(value) }) + can._path = can.request(), can.list = [], msg.Table(function(value) { can.base.endWith(value.path, nfs.PS)? can._path.Push(value): can.list.push(value) }) can.ui = can.onappend.layout(can, [html.PROJECT, html.DISPLAY]) can._path.Table(function(item) { item.name = item.path can.onimport.item(can, item, function() { can.Option(nfs.PATH, item.path), can.Update() }, function() {}, can.ui.project) @@ -61,7 +61,7 @@ Volcanos(chat.ONACTION, {list: [ record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) { var height = window.innerHeight navigator.mediaDevices.getDisplayMedia({video: {height: height}}).then(function(stream) { can.core.Next([3, 2, 1], function(item, next) { can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { can.user.toast(can, "现在开始截图") - cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+ice.PT+ext) + cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+nfs.PT+ext) can.runAction(msg, html.UPLOAD, [], function() { can.user.toast(can, "上传成功"), can.Update() }) can.core.List(stream.getTracks(), function(item) { item.stop() }) }) @@ -85,7 +85,7 @@ Volcanos(chat.ONDETAIL, {list: ["关闭", "上一个", "下一个", "设置头 sub.page.style(sub, sub._target, {left: left||0, top: top||0}), sub.page.style(sub, sub._output, html.HEIGHT, height-2*html.ACTION_HEIGHT, html.WIDTH, width) can.order = index, can.show = function(order) { path = can.onimport._file(can, can.list[order].path); var cb = can.onfigure[can.base.Ext(path)]||can.onfigure[wiki.IMAGE] sub.page.Appends(sub, sub._output, [can.base.Copy(cb(can, path, index), {height: "", style: kit.Dict(html.MAX_WIDTH, width, html.MAX_HEIGHT, height-2*html.ACTION_HEIGHT)})]) - sub.Status(cli.BEGIN, order+1+ice.PS+can.list.length), sub.Status(nfs.FILE, path) + sub.Status(cli.BEGIN, order+1+nfs.PS+can.list.length), sub.Status(nfs.FILE, path) }, can.show(can.order) }), sub.run = function(can, cmds, cb) { can.run(can, cmds, cb, true) } }, can._root._target) @@ -101,5 +101,5 @@ Volcanos(chat.ONDETAIL, {list: ["关闭", "上一个", "下一个", "设置头 }) Volcanos(chat.ONEXPORT, {list: [cli.BEGIN, mdb.LIMIT, mdb.TOTAL, nfs.FILE, "position"], height: function(can) { var height = can.Action(html.HEIGHT); return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height)||200 }, - position: function(can, index, total) { total = total || can.max; return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+ice.PS+parseInt(total) }, + position: function(can, index, total) { total = total || can.max; return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+nfs.PS+parseInt(total) }, }) diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index f4638d45..3e9dfac2 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -120,7 +120,7 @@ Volcanos(chat.ONDETAIL, {list: ["删除"], if (index == which || page == which) { sub.page.Select(sub, page, sub.page.Keys(html.H1, html.H2, html.H3), function(item) { sub.Action("菜单", item.innerHTML) }) sub.onmotion.select(sub, sub.ui.project, html.DIV_ITEM, index) - sub.Status(mdb.PAGE, index+1+ice.PS+sub.list.length) + sub.Status(mdb.PAGE, index+1+nfs.PS+sub.list.length) sub.page.ClassList.add(sub, page, html.SHOW) } else { sub.page.ClassList.del(sub, page, html.SHOW) diff --git a/plugin/state.js b/plugin/state.js index d4d7e357..e28d36db 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -98,8 +98,8 @@ Volcanos(chat.ONACTION, {list: [ ], [mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input())]) }, "打开链接": function(event, can) { can.user.open(can.onexport.link(can)) }, "生成链接": function(event, can) { can.onmotion.share(event, can, [], [mdb.LINK, can.user.copy(event, can, can.onexport.link(can))]) }, - "生成脚本": function(event, can) { var conf = can.Conf(), args = can.Input().join(ice.SP), list = [ - "export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp cmd "+(conf.index||"")+ice.SP+args, + "生成脚本": function(event, can) { var conf = can.Conf(), args = can.Input().join(lex.SP), list = [ + "export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp cmd "+(conf.index||"")+lex.SP+args, "ish_sys_dev_run_command "+args, "ish_sys_dev_run_action", "ish_sys_dev_run_source", ]; can.user.copy(event, can, list[0]) }, "生成图片": function(event, can) { can.user.toimage(can, can._name) }, @@ -163,7 +163,7 @@ Volcanos(chat.ONACTION, {list: [ record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) { navigator.mediaDevices.getDisplayMedia({video: {height: window.innerHeight}}).then(function(stream) { var toast can.core.Next([3, 2, 1], function(item, next) { toast = can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { toast.close() - cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+ice.PT+ext) + cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+nfs.PT+ext) can.runAction(msg, html.UPLOAD, [], function() { can.user.toastSuccess(can), can.Update() }) can.core.List(stream.getTracks(), function(item) { item.stop() }) }) diff --git a/plugin/story/json.js b/plugin/story/json.js index b977131e..04d7a97d 100644 --- a/plugin/story/json.js +++ b/plugin/story/json.js @@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( } break case code.STRING: can.page.Append(can, target, [{text: ['"'+data+'"', "", code.STRING]}]); break default: can.page.Append(can, target, [{text: [''+data+'', "", code.CONSTANT]}]) - } (index < total-1) && can.page.Append(can, target, [{text: ice.FS}]); return list + } (index < total-1) && can.page.Append(can, target, [{text: mdb.FS}]); return list }; show(data, can.page.Append(can, target, [html.ITEM])._target, 0, 0) }, }, [""]) diff --git a/plugin/story/pie.js b/plugin/story/pie.js index f87b0259..21af511d 100644 --- a/plugin/story/pie.js +++ b/plugin/story/pie.js @@ -18,7 +18,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(ca function pie(x, y, r, begin, span, color, cb) { can.onimport.draw(can, {shape: svg.PATH, style: kit.Dict( svg.STROKE, color, svg.FILL, color, "d", can.base.joins([ ["M", x, y], ["L"].concat(pos(x, y, r, begin)), ["A", r, r, "0", span>180? "1": "0", "1"].concat(pos(x, y, r, begin+span)), ["Z"] - ], ice.SP, ice.FS), + ], lex.SP, mdb.FS), ), onmouseenter: function(event) { can.base.isFunc(cb) && cb(event) } }) } can.onmotion.clear(can, can.svg), can.svg.Value(mdb.COUNT, 0) var begin = 0; can.core.List(can.list, function(item, index) { var p = index==which? pos(x, y, margin, begin+item.span/2): [x, y] diff --git a/plugin/story/spide.js b/plugin/story/spide.js index 198f2abd..0f55c635 100644 --- a/plugin/story/spide.js +++ b/plugin/story/spide.js @@ -1,4 +1,4 @@ -Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.ConfDefault({field: msg.append[0], split: ice.PS}) +Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.ConfDefault({field: msg.append[0], split: nfs.PS}) can.dir_root = can.Conf(nfs.DIR_ROOT)||msg.Option(nfs.DIR_ROOT), can._tree = can.onimport._tree(can, msg.Table(), can.Conf(mdb.FIELD), can.Conf(lex.SPLIT)) can.onaction.list = [], can.base.isFunc(cb) && cb(msg), can.onimport.layout(can) can.onappend._status(can, msg.Option(ice.MSG_STATUS)) diff --git a/plugin/table.js b/plugin/table.js index 5cab9a83..0334f660 100644 --- a/plugin/table.js +++ b/plugin/table.js @@ -17,7 +17,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( _system_app: function(can, msg, target) { can.page.Appends(can, target, msg.Table(function(item) { var name = item.name||item.text return {view: html.ITEM, style: {"text-align": "center", margin: 10, width: 100, "float": "left"}, list: [ {type: html.IMG, src: "/share/local/usr/icons/"+item.text, style: {display: html.BLOCK, width: 100}}, - {text: name.split(ice.PT)[0].replace(ice.SP, ice.NL), style: {display: html.BLOCK, height: 40}}, + {text: name.split(nfs.PT)[0].replace(lex.SP, lex.NL), style: {display: html.BLOCK, height: 40}}, ], onclick: function(event) { can.runAction(can.request(event, item, can.Option()), "xterm", []) }} })) }, card: function(can, msg, target) { can.page.Appends(can, target||can._output, msg.Table(function(item) { @@ -60,7 +60,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear( can.core.List(list.reverse(), function(meta) { can.base.isString(meta) && (meta = {index: meta}), meta.mode = html.FLOAT can.onimport.plug(can, meta, function(sub) { can.onmotion.hidden(can, sub._target), sub._legend._target = sub._target status.appendChild(sub._legend), sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) { - if (can.page.SelectOne(can, status, ice.PT+html.SELECT, function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return } + if (can.page.SelectOne(can, status, nfs.PT+html.SELECT, function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return } can.onmotion.select(can, status, html.LEGEND, sub._legend), can.onmotion.toggle(can, sub._target, true), sub.Focus() if (sub._delay_init || meta.msg) { sub._delay_init = false, meta.msg = false, sub.Update() } }) }, sub._delay_init = true, sub.onaction.close = function() { sub.select() }, sub.select = function() { return sub._legend.click(), sub } @@ -170,7 +170,7 @@ Volcanos(chat.ONEXPORT, { can._legend.innerHTML = title, can.isCmdMode() && can.user.title(title); var sup = can.sup; if (sup) { sup._header_tabs && (sup._header_tabs.innerHTML = title), sup._tabs && (sup._tabs.innerHTML = title) } }, table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return } - var res = [msg.append && msg.append.join(ice.FS)]; msg.Table(function(line, index, array) { res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS)) }); return res.join(ice.NL) + var res = [msg.append && msg.append.join(mdb.FS)]; msg.Table(function(line, index, array) { res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS)) }); return res.join(lex.NL) }, board: function(can) { var msg = can._msg; return msg.Result() }, }) diff --git a/proto.js b/proto.js index aa195893..48dc03c8 100644 --- a/proto.js +++ b/proto.js @@ -72,7 +72,8 @@ var mdb = { KEYS: "keys", MAIN: "main", PAGE: "page", NEXT: "next", PREV: "prev", LIMIT: "limit", OFFEND: "offend", FOREACH: "*", RANDOMS: "%", - EQ: "=", FS: ",", + QS: ice.QS, AT: ice.AT, + EQ: ice.EQ, FS: ice.FS, } var web = {CHAT: "chat", SHARE: "share", SPACE: "space", DREAM: "dream", @@ -100,7 +101,7 @@ var aaa = { } var lex = { SPLIT: "split", PREFIX: "prefix", SUFFIX: "suffix", - TB: "\t", SP: " ", NL: "\n", + TB: ice.TB, SP: ice.SP, NL: ice.NL, } var yac = { } @@ -122,7 +123,7 @@ var nfs = { SVG: "svg", HTML: "html", CSS: "css", JS: "js", SH: "sh", GO: "go", CSV: "csv", JSON: "json", TXT: "txt", PNG: "png", WEBM: "webm", _CSS: ".css", _JS: ".js", - DF: ":", PS: "/", PT: ".", + DF: ice.DF, PS: ice.PS, PT: ice.PT, PWD: "./", SRC: "src/", } var cli = { @@ -329,7 +330,7 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} can.run(event, [ctx.ACTION].concat(action, args), cb, silent) }, search: function(event, cmds, cb) { - if (cmds && typeof cmds == lang.OBJECT && cmds.length > 0 && typeof cmds[0] == lang.OBJECT && cmds[0].length > 0 ) { cmds[0] = cmds[0].join(ice.PT) } + if (cmds && typeof cmds == lang.OBJECT && cmds.length > 0 && typeof cmds[0] == lang.OBJECT && cmds[0].length > 0 ) { cmds[0] = cmds[0].join(nfs.PT) } return (can._root||can).run(event, [chat._SEARCH].concat(cmds), cb, true) }, get: function(name, key, cb) { var value; can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb||function(msg) { value = msg.Result() }); return value }, @@ -357,7 +358,7 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} for (var i = 0; i < arguments.length; i += 2) { if (typeof key == lang.OBJECT) { res = can.core.Value(can._conf, arguments[i]), i--; continue } res = can.core.Value(can._conf, arguments[i], arguments[i+1]) - } return can.base.isUndefined(res) && key.indexOf(ctx.FEATURE+ice.PT) == -1? can.Conf(can.core.Keys(ctx.FEATURE, key)): res + } return can.base.isUndefined(res) && key.indexOf(ctx.FEATURE+nfs.PT) == -1? can.Conf(can.core.Keys(ctx.FEATURE, key)): res }, _conf: {}, }, meta)); if (_can_name) { meta.cache[_can_name] = meta.cache[_can_name]||[], meta.cache[_can_name].push(can) } else { list.push(can) } return can.require(can._follow? libs.concat(meta.libs, meta.volcano): libs, cb), can @@ -366,14 +367,14 @@ try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth if (window._version && window.outerWidth-window.innerWidth < 100) { meta.version = window._version } meta._load = function(url, cb) { var v = meta.version? meta.version+"&_tt="+(new Date()).getTime(): "" - switch (url.split(ice.QS)[0].split(ice.PT).pop().toLowerCase()) { + switch (url.split(ice.QS)[0].split(nfs.PT).pop().toLowerCase()) { case nfs.CSS: var item = document.createElement(mdb.LINK); item.href = url+v, item.rel = "stylesheet", item.onload = cb, document.head.appendChild(item); break default: var item = document.createElement(nfs.SCRIPT); item.src = url+v, item.onerror = cb, item.onload = cb, document.body.appendChild(item) } } meta._init = function(can) { window.onerror = function(message, source, lineno, colno, error) { - meta.version? alert([message].concat(can.misc._stacks(0, error)).join(ice.NL)): can.misc.Error(message, ice.NL+[source, lineno, colno].join(ice.DF), error) + meta.version? alert([message].concat(can.misc._stacks(0, error)).join(lex.NL)): can.misc.Error(message, lex.NL+[source, lineno, colno].join(ice.DF), error) }, window.onbeforeunload = function() { can.Action._socket && can.Action._socket.close() } var last = can.page.width() < can.page.height(); window.onresize = function(event) { can.misc.Event(event, can, function(msg) { if (can.user.isMobile && last === can.page.width() < can.page.height()) { return } last = can.page.width() < can.page.height() diff --git a/publish/chrome/contexts.js b/publish/chrome/contexts.js index b550fd29..e53eabfb 100644 --- a/publish/chrome/contexts.js +++ b/publish/chrome/contexts.js @@ -9,21 +9,21 @@ setTimeout(function() { Volcanos({ var has = {}; target = target||document.body can.page.Select(can, target, html.AUDIO, function(target) { if (!target.src || has[target.src]) { return } has[target.src] = true - var name = target.src.split("?")[0].split(ice.PT).pop() + var name = target.src.split("?")[0].split(nfs.PT).pop() msg.Push(mdb.TYPE, html.AUDIO) - msg.Push(mdb.NAME, html.AUDIO+ice.PT+name) + msg.Push(mdb.NAME, html.AUDIO+nfs.PT+name) msg.Push(mdb.LINK, target.src) }) can.page.Select(can, target, html.VIDEO, function(target) { if (!target.src || has[target.src]) { return } has[target.src] = true - var name = target.src.split("?")[0].split(ice.PT).pop() + var name = target.src.split("?")[0].split(nfs.PT).pop() msg.Push(mdb.TYPE, html.VIDEO) - msg.Push(mdb.NAME, html.VIDEO+ice.PT+name) + msg.Push(mdb.NAME, html.VIDEO+nfs.PT+name) msg.Push(mdb.LINK, target.src) }) can.page.Select(can, target, html.IMG, function(target) { if (!target.src || has[target.src]) { return } has[target.src] = true - var name = target.src.split("?")[0].split(ice.PS).pop() + var name = target.src.split("?")[0].split(nfs.PS).pop() msg.Push(mdb.TYPE, html.IMG) if (target.src.indexOf("data:image") == 0) { msg.Push(mdb.NAME, target.src.slice(target.src.length-20)) @@ -46,7 +46,7 @@ setTimeout(function() { Volcanos({ }) }, style: function(can, msg, arg) { - can.core.List(arg[0].split(ice.FS), function(item) { + can.core.List(arg[0].split(mdb.FS), function(item) { can.page.Select(can, document.body, item, function(target) { can.page.Modify(can, target, can.base.Obj(arg[1])) }) diff --git a/publish/client/nodejs/proto.js b/publish/client/nodejs/proto.js index 9c4946c6..2a73211e 100644 --- a/publish/client/nodejs/proto.js +++ b/publish/client/nodejs/proto.js @@ -1,6 +1,6 @@ try { if (typeof(global) == lang.OBJECT) { // nodejs Volcanos.meta._load = function(url, cb) { if (!url) { return cb() } - switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) { + switch (url.split("?")[0].split(nfs.PT).pop().toLowerCase()) { case nfs.JS: // console.log("require", url) require(url.indexOf("/src/") == 0? path.join(process.cwd(), url): path.join(process.cwd(), "usr/volcanos", url)) @@ -26,22 +26,22 @@ Volcanos("onappend", { if (index == 0) { for (var i = 0; i < msg.append.length; i++) { line.push(msg.append[i]) for (var j = 0; j <= max[msg.append[i]]-msg.append[i].length; j++) { - line.push(ice.SP) + line.push(lex.SP) } - line.push(ice.SP) + line.push(lex.SP) } list.push(line.join("")) } line = []; for (var i = 0; i < msg.append.length; i++) { var k = msg.append[i] line.push(value[k]) for (var j = 0; j <= max[k]-value[k]; j++) { - line.push(ice.SP) + line.push(lex.SP) } - line.push(ice.SP) + line.push(lex.SP) } list.push(line.join("")) }) - console.log(list.join(ice.NL)) + console.log(list.join(lex.NL)) }, board: function(can, msg) { console.log(msg.Result())