efront 3.18.0 → 3.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/pivot/link/chat.js +2 -5
- package/apps/pivot/link/list.html +2 -4
- package/apps/pivot/link/list.js +1 -1
- package/apps/pivot/link/list.less +7 -2
- package/coms/basic/cross_.js +8 -1
- package/coms/frame/chat.html +12 -6
- package/coms/frame/chat.js +48 -15
- package/coms/frame/chat.less +61 -9
- package/coms/frame/list.js +13 -4
- package/coms/maps/baidu.js +6 -1
- package/coms/maps/gaode.js +3 -0
- package/coms/maps/google.js +2 -2
- package/coms/maps/osm.js +1 -1
- package/coms/pivot/pedit.less +3 -0
- package/coms/pivot/plist.js +7 -1
- package/coms/random/sfz.js +154 -0
- package/coms/reptile/cross.js +9 -4
- package/coms/zimoli/HexEditor.js +1 -0
- package/coms/zimoli/HexEditor.less +2 -2
- package/coms/zimoli/Item.js +5 -0
- package/coms/zimoli/container.js +13 -7
- package/coms/zimoli/contextmenu.js +1 -19
- package/coms/zimoli/createItemTarget.js +8 -2
- package/coms/zimoli/grid.js +69 -19
- package/coms/zimoli/list.js +1 -1
- package/coms/zimoli/maps.js +323 -144
- package/coms/zimoli/maps.less +8 -0
- package/coms/zimoli/maps_test.html +2 -0
- package/coms/zimoli/maps_test.js +37 -28
- package/coms/zimoli/maps_test.less +4 -6
- package/coms/zimoli/menu.js +8 -7
- package/coms/zimoli/menuItem.js +1 -1
- package/coms/zimoli/menuList.js +5 -3
- package/coms/zimoli/onmousewheel.js +1 -0
- package/coms/zimoli/popup.js +2 -1
- package/coms/zimoli/render.js +25 -9
- package/coms/zimoli/tree.js +1 -1
- package/coms/zimoli/zimoli.js +12 -2
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/apps/pivot/link/chat.js
CHANGED
|
@@ -12,14 +12,11 @@ async function link(id, page) {
|
|
|
12
12
|
var xhr = null;
|
|
13
13
|
while (true) {
|
|
14
14
|
if (removed) break;
|
|
15
|
-
xhr = data.from("care", { id }
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
await xhr;
|
|
15
|
+
xhr = data.from("care", { id });
|
|
16
|
+
page.push(await xhr);
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
19
|
function main(id) {
|
|
22
|
-
console.log(id)
|
|
23
20
|
var page = frame$chat();
|
|
24
21
|
care(page, 'send', function (msg) {
|
|
25
22
|
data.from("cast", { id: page.roomid, msg });
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
<btn @click="chat()">新建连接</btn>
|
|
2
|
-
<div>
|
|
3
|
-
自动刷新<swap -model="autoreload"></swap>
|
|
4
|
-
</div>
|
|
5
1
|
<div class="clusters">
|
|
6
2
|
<a -repeat="(c,i) in clusters" ng-class="{current:i===index.index}" @click="active(i,c)">
|
|
7
3
|
<span -text="c"></span>
|
|
8
4
|
</a>
|
|
5
|
+
自动刷新<swap -model="autoreload"></swap>
|
|
6
|
+
<btn @click="chat()">新建连接</btn>
|
|
9
7
|
</div>
|
|
10
8
|
<lattice -src="c in clients">
|
|
11
9
|
<padding>
|
package/apps/pivot/link/list.js
CHANGED
|
@@ -4,7 +4,7 @@ function main() {
|
|
|
4
4
|
page.innerHTML = template;
|
|
5
5
|
renderWithDefaults(page, {
|
|
6
6
|
load: lazy(async function () {
|
|
7
|
-
this.clusters = data.
|
|
7
|
+
this.clusters = data.lazyInstance("cluster", { opt: "list" });
|
|
8
8
|
await this.clusters;
|
|
9
9
|
this.active();
|
|
10
10
|
}, -1000),
|
package/coms/basic/cross_.js
CHANGED
|
@@ -230,12 +230,16 @@ function cross_(jsonp, digest = noop, method, url, headers) {
|
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
+
var is_gb2312 = /^[gbk][^e]/i.test(method);
|
|
234
|
+
if (is_gb2312) method = method.slice(1);
|
|
233
235
|
if (nocross) {
|
|
234
236
|
extend(realHeaders, _headers);
|
|
235
237
|
xhr.open(method, url);
|
|
236
238
|
} else {
|
|
237
239
|
xhr.open(method, getCrossUrl(url, _headers));
|
|
238
240
|
}
|
|
241
|
+
if (is_gb2312) xhr.overrideMimeType("text/plain; charset=gb2312");
|
|
242
|
+
|
|
239
243
|
Object.keys(realHeaders).forEach(key => setRequestHeader.call(xhr, key, realHeaders[key]));
|
|
240
244
|
if (!isEmpty(datas)) send.call(xhr, datas);
|
|
241
245
|
else send.call(xhr);
|
|
@@ -286,7 +290,10 @@ function addDirect(a) {
|
|
|
286
290
|
if (typeof a === 'string' || a instanceof RegExp) cors_hosts.push(a);
|
|
287
291
|
}
|
|
288
292
|
function notCross(domain) {
|
|
289
|
-
if (!base ||
|
|
293
|
+
if (!base ||
|
|
294
|
+
location_href && location_href === domain.slice(0, location_href.length) ||
|
|
295
|
+
!/^https?\:\/\/|^s?\/\//.test(domain) ||
|
|
296
|
+
domain.replace(domainReg, '$2') === base.replace(domainReg, '$2')) return true;
|
|
290
297
|
for (var cx = 0, dx = cors_hosts.length; cx < dx; cx++) {
|
|
291
298
|
var host = cors_hosts[cx];
|
|
292
299
|
if (host instanceof RegExp) {
|
package/coms/frame/chat.html
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
<div head
|
|
1
|
+
<div head>
|
|
2
|
+
<template -src="title">
|
|
3
|
+
</template>
|
|
4
|
+
<close @click="remove()"></close>
|
|
2
5
|
</div>
|
|
3
|
-
<grid body>
|
|
6
|
+
<grid body #body>
|
|
4
7
|
<chat -src="m in msglist">
|
|
5
|
-
<
|
|
8
|
+
<padding>
|
|
9
|
+
<msg class="msg"></msg>
|
|
10
|
+
<div style="clear: both;"></div>
|
|
11
|
+
</padding>
|
|
6
12
|
</chat>
|
|
7
|
-
<div textarea>
|
|
8
|
-
<div contenteditable="true" -model="text"></div>
|
|
13
|
+
<div textarea @mousedown="this.firstChild.focus()">
|
|
14
|
+
<div @keydown.alt.enter="send()" contenteditable="true" -model="text"></div>
|
|
9
15
|
</div>
|
|
10
16
|
</grid>
|
|
11
17
|
<div foot>
|
|
12
|
-
<btn @click="send()">发送</btn>
|
|
18
|
+
<btn @click="send();">发送</btn>
|
|
13
19
|
</div>
|
package/coms/frame/chat.js
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
|
|
2
|
-
function msg(elem) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
function msg(elem, { m: data }, parentScopes) {
|
|
3
|
+
if (!data) return;
|
|
4
|
+
data = encode62.timedecode(data);
|
|
5
|
+
var m = JSAM.parse(data);
|
|
6
|
+
if (m.sender === parentScopes[parentScopes.length - 1].localid) {
|
|
7
|
+
elem.setAttribute("self", "");
|
|
8
|
+
}
|
|
9
|
+
if (m) switch (m.type) {
|
|
10
|
+
case "html":
|
|
11
|
+
elem.innerHTML = m.content;
|
|
12
|
+
break;
|
|
13
|
+
default:
|
|
14
|
+
elem.innerText = data;
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
function chat(title = '会话窗口') {
|
|
16
18
|
var page = view();
|
|
17
19
|
page.innerHTML = template;
|
|
18
|
-
drag.on(page.
|
|
20
|
+
drag.on(page.firstElementChild, page);
|
|
19
21
|
resize.on(page);
|
|
22
|
+
page.push = function (msgs) {
|
|
23
|
+
var { msglist } = this.$scope;
|
|
24
|
+
msglist.push.apply(msglist, msgs);
|
|
25
|
+
var chat = page.querySelector("chat");
|
|
26
|
+
var lastmsg = chat.getLastVisibleElement();
|
|
27
|
+
if (msgs.length && (!lastmsg || lastmsg.offsetTop + lastmsg.offsetHeight === chat.scrollHeight)) {
|
|
28
|
+
chat.go(msglist.length ? msglist.length - 1 : 0);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
page.renders = [function () {
|
|
32
|
+
this.$scope.resize(this.$scope.body);
|
|
33
|
+
}];
|
|
20
34
|
renderWithDefaults(page, {
|
|
21
35
|
chat: list,
|
|
22
36
|
title,
|
|
@@ -25,13 +39,32 @@ function chat(title = '会话窗口') {
|
|
|
25
39
|
text: '',
|
|
26
40
|
localid: Math.random(),
|
|
27
41
|
msg,
|
|
42
|
+
remove() {
|
|
43
|
+
remove(page);
|
|
44
|
+
},
|
|
45
|
+
resize(body) {
|
|
46
|
+
var textarea = body.querySelector("[textarea]");
|
|
47
|
+
var lastElementChild = textarea.lastElementChild;
|
|
48
|
+
var targetHeight = Math.min(textarea.scrollHeight, body.clientHeight * .6, lastElementChild.offsetTop + lastElementChild.offsetHeight);
|
|
49
|
+
if (Math.abs(targetHeight - textarea.clientHeight) < 2) return;
|
|
50
|
+
|
|
51
|
+
body.resizeCell(textarea, 'top', textarea.clientHeight - targetHeight - 2);
|
|
52
|
+
},
|
|
28
53
|
send() {
|
|
29
54
|
if (!this.text) return;
|
|
30
|
-
|
|
55
|
+
var data = JSAM.stringify({
|
|
31
56
|
type: 'html',
|
|
32
57
|
sender: this.localid,
|
|
33
58
|
content: this.text,
|
|
34
|
-
})
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
data = encode62.timeencode(data);
|
|
62
|
+
if (this.text.length > 2000) {
|
|
63
|
+
alert("信息太长,无法发送!");
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
cast(page, "send", data);
|
|
67
|
+
this.body.lastElementChild.focus();
|
|
35
68
|
this.text = '';
|
|
36
69
|
}
|
|
37
70
|
});
|
package/coms/frame/chat.less
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@height:
|
|
2
|
-
@width:
|
|
1
|
+
@height: 420px;
|
|
2
|
+
@width: 480px;
|
|
3
3
|
@margin-top: -160px;
|
|
4
4
|
@margin-left: -180px;
|
|
5
5
|
|
|
@@ -18,9 +18,56 @@
|
|
|
18
18
|
max-height: 100%;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
padding {
|
|
22
|
+
display: block;
|
|
23
|
+
position: relative;
|
|
24
|
+
|
|
25
|
+
&:after {
|
|
26
|
+
display: "";
|
|
27
|
+
display: block;
|
|
28
|
+
clear: both;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
21
31
|
|
|
22
32
|
msg {
|
|
23
33
|
display: block;
|
|
34
|
+
border-radius: 4px;
|
|
35
|
+
padding: 6px 12px;
|
|
36
|
+
line-height: 20px;
|
|
37
|
+
white-space: normal;
|
|
38
|
+
word-break: break-all;
|
|
39
|
+
background: #fff;
|
|
40
|
+
position: relative;
|
|
41
|
+
margin: 0 10px;
|
|
42
|
+
float: left;
|
|
43
|
+
|
|
44
|
+
&:before {
|
|
45
|
+
content: "";
|
|
46
|
+
display: block;
|
|
47
|
+
position: absolute;
|
|
48
|
+
border: 6px solid transparent;
|
|
49
|
+
top: 22px;
|
|
50
|
+
margin: -12px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:not([self]):before {
|
|
54
|
+
display: block;
|
|
55
|
+
left: 0;
|
|
56
|
+
border-right-color: #fff;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&[self] {
|
|
60
|
+
&:before {
|
|
61
|
+
right: 0;
|
|
62
|
+
border-left-color: #77ddaa;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
margin-left: 20px;
|
|
66
|
+
|
|
67
|
+
float: right;
|
|
68
|
+
background-color: #77ddaa;
|
|
69
|
+
color: #333;
|
|
70
|
+
}
|
|
24
71
|
}
|
|
25
72
|
|
|
26
73
|
|
|
@@ -55,7 +102,7 @@ chat {
|
|
|
55
102
|
height: 100%;
|
|
56
103
|
}
|
|
57
104
|
|
|
58
|
-
.editor-height(
|
|
105
|
+
.editor-height(96px);
|
|
59
106
|
|
|
60
107
|
[textarea] {
|
|
61
108
|
display: block;
|
|
@@ -67,14 +114,17 @@ chat {
|
|
|
67
114
|
border: none;
|
|
68
115
|
outline: none;
|
|
69
116
|
border-top: 1px solid #000;
|
|
117
|
+
border-bottom: 28px solid transparent;
|
|
70
118
|
ime-mode: active;
|
|
119
|
+
overflow: auto;
|
|
71
120
|
|
|
72
121
|
>div {
|
|
73
|
-
height:
|
|
122
|
+
height: auto;
|
|
123
|
+
min-height: 52px;
|
|
74
124
|
width: 100%;
|
|
75
125
|
vertical-align: top;
|
|
76
|
-
padding: 6px 16px
|
|
77
|
-
|
|
126
|
+
padding: 6px 16px;
|
|
127
|
+
box-sizing: border-box;
|
|
78
128
|
outline: none;
|
|
79
129
|
}
|
|
80
130
|
}
|
|
@@ -104,10 +154,12 @@ chat {
|
|
|
104
154
|
.editor-height(36px);
|
|
105
155
|
|
|
106
156
|
[textarea] {
|
|
107
|
-
border: none;
|
|
157
|
+
border-bottom: none;
|
|
108
158
|
outline: none;
|
|
109
|
-
|
|
110
|
-
|
|
159
|
+
|
|
160
|
+
>div {
|
|
161
|
+
min-height: 30px;
|
|
162
|
+
padding-right: 110px;
|
|
111
163
|
}
|
|
112
164
|
}
|
|
113
165
|
}
|
package/coms/frame/list.js
CHANGED
|
@@ -2,11 +2,20 @@ function main(title, { fields, options: options0, load, remove }, edit_ref) {
|
|
|
2
2
|
prepare(edit_ref);
|
|
3
3
|
var page = document.createElement("div");
|
|
4
4
|
var edit = function (o) {
|
|
5
|
+
if (!edit_ref) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
var callback = function () {
|
|
9
|
+
page.$scope.load();
|
|
10
|
+
};
|
|
11
|
+
if (isFunction(edit_ref)) {
|
|
12
|
+
var p = edit_ref(o, callback);
|
|
13
|
+
if (p) on('submited')(p, callback);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
5
16
|
zimoli.prepare(edit_ref, function () {
|
|
6
|
-
var p = popup(edit_ref, { fields, data: o
|
|
7
|
-
on("submited")(p,
|
|
8
|
-
page.$scope.load();
|
|
9
|
-
})
|
|
17
|
+
var p = popup(edit_ref, { fields, data: o})
|
|
18
|
+
on("submited")(p, callback);
|
|
10
19
|
})
|
|
11
20
|
};
|
|
12
21
|
page.innerHTML = template;
|
package/coms/maps/baidu.js
CHANGED
|
@@ -27,14 +27,19 @@ var baidu = {
|
|
|
27
27
|
getURL: function (x, y, z) {
|
|
28
28
|
if (x < 0) x = "M" + -x;
|
|
29
29
|
if (y < 0) y = "M" + -y;
|
|
30
|
-
return `
|
|
30
|
+
return `https://maponline2.bdimg.com/tile/?qt=tile&x=${x}&y=${y}&z=${z}&styles=pl&scaler=1&udt=20180721`;
|
|
31
31
|
},
|
|
32
32
|
lat2y,
|
|
33
33
|
lng2x,
|
|
34
34
|
x2lng,
|
|
35
35
|
y2lat,
|
|
36
|
+
minLng: -180,
|
|
37
|
+
maxLng: 180,
|
|
36
38
|
direction: -1,
|
|
37
39
|
lat2tile(lat, zoom) {
|
|
38
40
|
return Math.ceil(this.lat2y(lat, zoom));
|
|
41
|
+
},
|
|
42
|
+
lng2tile(lng, zoom) {
|
|
43
|
+
return Math.floor(this.lng2x(lng, zoom));
|
|
39
44
|
}
|
|
40
45
|
}
|
package/coms/maps/google.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var google = {
|
|
2
|
-
url: `
|
|
3
|
-
url: `
|
|
2
|
+
url: `https://mt{1-3}.google.cn/vt/lyrs=h&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}`,
|
|
3
|
+
url: `https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s%40781&hl=zh-CN&gl=CN&x={x}&y={y}&z={z}&src=app&scale=1&from=app`
|
|
4
4
|
};
|
package/coms/maps/osm.js
CHANGED
package/coms/pivot/plist.js
CHANGED
|
@@ -9,5 +9,11 @@ function main(title, type, fields, edit_ref, options, idkey = fields[0].key) {
|
|
|
9
9
|
},
|
|
10
10
|
fields,
|
|
11
11
|
options,
|
|
12
|
-
}, edit_ref)
|
|
12
|
+
}, edit_ref ? edit_ref : function (o) {
|
|
13
|
+
var p = pedit(title, type, { data: o, fields });
|
|
14
|
+
p.initialStyle = popup.style;
|
|
15
|
+
popup(p, true);
|
|
16
|
+
move.setPosition(p, [.5, .5]);
|
|
17
|
+
return p;
|
|
18
|
+
});
|
|
13
19
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// data.setConfig(data.parseConfig(`
|
|
2
|
+
// https://shenfen.supfree.net/:
|
|
3
|
+
// sheng: gget:[].bblue #title=!title&href=!href&short=!innerText
|
|
4
|
+
// shi: gget:[].bblue sheng.asp?sheng#title=!title&href=!href&short=!innerText
|
|
5
|
+
// qu: gget:[].bblue shi.asp?sheng&shi#title=!title&href=!href&short=!innerText
|
|
6
|
+
// `));
|
|
7
|
+
// var setid = function (a) {
|
|
8
|
+
// a = a.filter(a => a.title);
|
|
9
|
+
// for (var o of a) {
|
|
10
|
+
// o.name = o.title.replace(/身份证|号码/g, "").replace(/市县/, '市');
|
|
11
|
+
// o.id = o.href.replace(/^([^\d]+)\.asp\?[\s\S]*\1\=(\d+)[\s\S]*?$/g, "$2");
|
|
12
|
+
// delete o.href;
|
|
13
|
+
// delete o.title;
|
|
14
|
+
// }
|
|
15
|
+
// return a;
|
|
16
|
+
// };
|
|
17
|
+
// var prefix = {};
|
|
18
|
+
// var tree = {};
|
|
19
|
+
// await queue.call(await data.from("sheng", setid), async function (h) {
|
|
20
|
+
// var shi = await data.from("shi", { sheng: h.id }, setid);
|
|
21
|
+
// var so = {};
|
|
22
|
+
// tree[h.short] = so;
|
|
23
|
+
// while (shi.length) {
|
|
24
|
+
// var s = shi.pop();
|
|
25
|
+
// var qu = await data.from("qu", { sheng: h.id, shi: s.id }, setid);
|
|
26
|
+
// var qo = {};
|
|
27
|
+
// so[s.short] = qo;
|
|
28
|
+
// while (qu.length) {
|
|
29
|
+
// var q = qu.pop();
|
|
30
|
+
// var id = +`${h.id}${s.id}${q.id}`;
|
|
31
|
+
// qo[q.short] = id;
|
|
32
|
+
// prefix[id] = { id, sheng: h.short, shi: s.short, qu: q.short };
|
|
33
|
+
// }
|
|
34
|
+
// }
|
|
35
|
+
// }, 9);
|
|
36
|
+
// prefix = Object.keys(prefix).sort((a, b) => a - b).map(k => prefix[k]);
|
|
37
|
+
// console.log(tree)
|
|
38
|
+
// var prefix = [...];
|
|
39
|
+
// console.log(prefix)
|
|
40
|
+
// for (var cx = 0, ci = 0, cs = prefix[0]; cx < prefix.length; cx++) {
|
|
41
|
+
// if (prefix[cx + 1] !== prefix[cx] + 1) {
|
|
42
|
+
// prefix.splice(ci + 1, cx - ci, prefix[cx] - prefix[ci]);
|
|
43
|
+
// if (ci > 1) {
|
|
44
|
+
// var temp = prefix[ci];
|
|
45
|
+
// prefix[ci] -= cs;
|
|
46
|
+
// cs = temp;
|
|
47
|
+
// }
|
|
48
|
+
// cx = ci + 1;
|
|
49
|
+
// ci = cx + 1;
|
|
50
|
+
// };
|
|
51
|
+
// }
|
|
52
|
+
// console.log(prefix)
|
|
53
|
+
|
|
54
|
+
var prefix = function (source) {
|
|
55
|
+
var src = [];
|
|
56
|
+
do {
|
|
57
|
+
var s = source[0];
|
|
58
|
+
src.push(s);
|
|
59
|
+
if (source[1] === 0) {
|
|
60
|
+
if (source.length <= 2) break;
|
|
61
|
+
source[2] += source[0], source.shift(), source.shift();
|
|
62
|
+
}
|
|
63
|
+
else source[0]++, source[1]--;
|
|
64
|
+
} while (source.length);
|
|
65
|
+
return src;
|
|
66
|
+
}([110101, 8, 10, 6, 117, 1, 9873, 14, 120, 0, 2, 0, 2, 0, 9876, 7, 20, 0, 2, 10, 58, 4, 20, 7, 20, 0, 2, 2, 4, 0, 2, 1, 52, 2, 20, 3, 20, 3, 80, 3, 5, 0, 15, 0, 2, 12, 58, 0, 20, 2, 20, 14, 60, 1, 20, 3, 20, 17, 60, 3, 20, 2, 4, 1, 16, 12, 80, 3, 20, 7, 80, 2, 20, 9, 60, 3, 20, 2, 21, 4, 6, 0, 53, 1, 20, 1, 20, 7, 60, 1, 8920, 0, 4, 5, 16, 2, 60, 0, 20, 2, 10, 1, 10, 6, 80, 2, 10, 0, 10, 1, 80, 1, 10, 0, 10, 0, 2, 8, 58, 0, 20, 1, 20, 1, 3, 1, 57, 0, 20, 2, 20, 3, 80, 1, 20, 8, 60, 0, 20, 1, 20, 9, 60, 1, 20, 1, 20, 11, 60, 0, 20, 1, 20, 13, 60, 1, 20, 1, 20, 9, 60, 1, 1020, 1, 21, 1, 3, 9, 176, 1, 20, 3, 6, 0, 2, 2, 4, 0, 168, 2, 20, 2, 4, 0, 2, 9, 74, 2, 22, 4, 6, 4, 7372, 4, 20, 4, 80, 6, 20, 2, 80, 3, 100, 3, 20, 5, 7, 2, 73, 1, 20, 5, 60, 0, 21, 0, 19, 6, 80, 1, 20, 6, 60, 4, 20, 1, 20, 5, 80, 1, 20, 8, 60, 0, 1120, 5, 21, 1, 5, 4, 74, 1, 20, 3, 80, 1, 21, 5, 179, 1, 21, 9, 79, 1, 23, 3, 5, 3, 5, 0, 67, 0, 21, 6, 79, 0, 21, 5, 99, 2, 57180, 5, 10, 3, 11, 2, 59, 0, 20, 3, 10, 2, 13, 0, 57, 2, 20, 3, 10, 0, 10, 0, 2, 0, 58, 0, 20, 3, 10, 0, 10, 2, 80, 4, 20, 1, 80, 3, 23, 0, 57, 1, 20, 2, 10, 0, 15, 1, 55, 1, 20, 3, 10, 0, 70, 1, 20, 4, 10, 0, 10, 1, 80, 4, 10, 0, 10, 0, 60, 0, 20, 2, 20, 1, 80, 1, 3, 0, 17, 0, 2, 1, 58, 1, 20, 2, 20, 1, 3, 0, 57, 1, 20, 3, 20, 1, 60, 0, 8620, 5, 11, 0, 10, 0, 59, 2, 20, 3, 10, 0, 10, 0, 60, 3, 20, 2, 21, 1, 59, 1, 20, 2, 20, 1, 80, 2, 20, 0, 2, 1, 58, 1, 20, 1, 20, 2, 4, 0, 56, 0, 20, 1, 20, 3, 80, 1, 20, 1, 60, 1, 1520, 5, 23, 0, 2, 0, 7675, 7, 20, 0, 2, 6, 58, 3, 20, 7, 20, 0, 2, 2, 4, 0, 2, 2, 52, 0, 20, 6, 20, 0, 60, 1, 20, 6, 20, 1, 80, 2, 4, 1, 16, 3, 80, 5, 20, 3, 80, 15, 21, 0, 59, 0, 20, 4, 10, 0, 11, 0, 4, 0, 2, 0, 5, 0, 48, 1, 20, 3, 20, 0, 80, 4, 23, 1, 57, 0, 2, 2, 18, 1, 20, 0, 2, 1, 58, 1, 20, 1, 20, 5, 60, 2, 1020, 3, 23, 2, 6, 2, 391, 2, 77380, 0, 2, 7, 9, 8, 118, 0, 9871, 6, 10, 5, 10, 4, 80, 5, 10, 0, 70, 2, 20, 4, 10, 0, 10, 3, 60, 1, 20, 1, 3, 1, 7, 1, 70, 2, 20, 6, 10, 0, 70, 5, 20, 1, 10, 0, 10, 0, 2, 0, 58, 3, 20, 0, 2, 3, 18, 3, 80, 3, 10, 0, 10, 0, 5, 0, 3, 2, 53, 0, 19, 2, 20, 4, 7, 0, 53, 1, 20, 2, 10, 0, 12, 0, 4, 0, 54, 0, 3, 0, 4, 0, 13, 1, 10, 1, 10, 0, 60, 2, 20, 2, 80, 3, 20, 1, 20, 3, 8780, 5, 7, 2, 14, 0, 5, 0, 54, 4, 20, 0, 2, 3, 8, 1, 14, 2, 56, 2, 20, 3, 21, 0, 2, 0, 2, 3, 55, 1, 20, 1, 10, 0, 10, 0, 3, 0, 57, 2, 20, 2, 20, 2, 80, 1, 20, 0, 3, 0, 57, 2, 20, 2, 20, 0, 2, 0, 3, 1, 55, 3, 20, 2, 20, 1, 3, 1, 57, 0, 20, 2, 20, 1, 80, 3, 20, 3, 60, 1, 20, 1, 20, 6, 60, 0, 1320, 1, 21, 1, 3, 4, 7576, 3, 10, 0, 10, 2, 80, 3, 6, 0, 14, 2, 80, 3, 10, 0, 10, 2, 80, 5, 20, 0, 80, 4, 20, 0, 80, 3, 20, 0, 80, 2, 10, 0, 10, 0, 80, 2, 10, 0, 11, 6, 59, 0, 120, 3, 20, 3, 80, 2, 21, 0, 2, 2, 57, 1, 20, 3, 20, 6, 60, 1, 20, 1, 20, 3, 80, 1, 20, 3, 80, 2, 20, 4, 80, 1, 20, 2, 80, 1, 20, 2, 80, 1, 20, 4, 60, 0, 520, 0, 21, 1, 3, 2, 76, 1, 21, 1, 7, 2, 72, 0, 21, 1, 3, 1, 276, 0, 20, 2, 7180, 4, 10, 0, 10, 4, 7, 0, 53, 1, 20, 5, 10, 2, 90, 4, 20, 1, 80, 2, 20, 0, 2, 7, 58, 0, 20, 4, 20, 0, 3, 3, 57, 2, 20, 2, 21, 7, 59, 0, 20, 1, 20, 4, 60, 3, 20, 1, 20, 4, 60, 0, 20, 1, 20, 5, 60, 1, 1220, 2, 24, 0, 2, 4, 7874, 4, 10, 0, 10, 3, 80, 2, 21, 0, 59, 0, 20, 1, 12, 0, 8, 2, 80, 2, 20, 0, 2, 7, 58, 0, 20, 1, 20, 0, 80, 1, 21, 0, 59, 0, 20, 1, 20, 14, 60, 1, 20, 2, 20, 9, 60, 0, 20, 1, 20, 5, 60, 2, 20, 1, 20, 9, 80, 1, 20, 9, 60, 0, 1020, 3, 25, 3, 6, 1, 69, 1, 20, 5, 8, 2, 5, 0, 67, 1, 20, 9, 11, 0, 70, 0, 20, 7, 9, 1, 7570, 4, 11, 1, 11, 3, 58, 0, 20, 2, 4, 0, 6, 3, 70, 4, 20, 5, 20, 2, 80, 5, 80, 0, 20, 2, 20, 2, 80, 1, 10, 2, 23, 0, 47, 6, 20, 4, 23, 1, 57, 5, 20, 1, 10, 0, 15, 6, 55, 2, 20, 2, 10, 0, 10, 0, 2, 0, 59, 1, 19, 1, 80, 2, 20, 1, 20, 1, 80, 2, 100, 1, 10, 1, 10, 8, 80, 1, 20, 7, 60, 1, 20, 1, 20, 5, 60, 0, 20, 1, 20, 5, 80, 1, 20, 7, 580, 0, 20, 0, 2, 2, 5, 0, 2, 0, 571, 0, 21, 4, 6, 2, 37173, 5, 7, 0, 14, 0, 59, 4, 20, 4, 10, 0, 10, 4, 80, 6, 10, 0, 11, 7, 59, 0, 20, 3, 10, 0, 10, 2, 4, 0, 56, 1, 20, 5, 10, 0, 11, 1, 4, 1, 55, 0, 20, 2, 10, 0, 10, 1, 80, 3, 10, 0, 10, 0, 3, 4, 57, 1, 20, 3, 10, 0, 10, 2, 4, 0, 56, 2, 20, 1, 21, 1, 4, 2, 75, 1, 22, 2, 58, 1, 20, 1, 20, 2, 80, 1, 20, 1, 3, 0, 57, 1, 20, 2, 20, 9, 60, 0, 20, 2, 20, 5, 60, 0, 20, 2, 20, 7, 80, 1, 20, 7, 60, 0, 20, 1, 20, 8, 980, 1, 20, 7, 80, 0, 20, 8, 7280, 6, 10, 6, 90, 4, 21, 0, 59, 0, 20, 2, 20, 4, 60, 0, 120, 5, 20, 0, 4, 4, 56, 2, 20, 1, 5, 1, 15, 0, 3, 2, 58, 2, 19, 3, 100, 1, 3, 0, 17, 1, 60, 0, 20, 1, 20, 2, 60, 3, 20, 2, 21, 2, 59, 0, 2, 0, 4, 0, 14, 1, 20, 6, 60, 1, 20, 1, 20, 3, 60, 0, 20, 1, 80, 0, 1420, 1, 21, 1, 3, 3, 6179, 2, 17, 0, 1080, 4, 10, 0, 10, 1, 3, 0, 57, 0, 20, 3, 10, 0, 10, 0, 2, 2, 58, 0, 20, 1, 3, 0, 17, 0, 60, 1, 20, 7, 10, 1, 10, 3, 5, 0, 55, 1, 20, 2, 10, 0, 10, 4, 6, 2, 54, 0, 20, 2, 10, 0, 10, 0, 2, 1, 3, 0, 55, 1, 20, 2, 20, 5, 60, 0, 20, 1, 10, 0, 10, 1, 80, 2, 20, 2, 60, 0, 20, 2, 20, 7, 60, 0, 20, 2, 20, 8, 80, 1, 20, 9, 60, 0, 20, 1, 20, 1, 60, 1, 1120, 2, 21, 0, 2, 0, 477, 0, 100, 0, 21, 5, 8, 0, 6971, 6, 10, 3, 70, 3, 20, 3, 20, 3, 8, 0, 3, 1, 49, 1, 20, 0, 2, 5, 98, 3, 20, 0, 80, 0, 5, 9, 17, 0, 59, 1, 19, 7, 80, 3, 20, 0, 2, 2, 78, 4, 20, 3, 10, 0, 12, 0, 2, 0, 56, 2, 20, 2, 22, 0, 58, 2, 220, 2, 22, 3, 60, 1, 18, 2, 21, 2, 59, 0, 20, 1, 20, 3, 5, 1, 55, 0, 20, 1, 20, 0, 2, 0, 58, 0, 20, 1, 20, 4, 80, 1, 20, 0, 2, 0, 58, 0, 20, 1, 20, 0, 2, 0, 2, 2, 56, 1, 20, 0, 100, 0, 3100, 1, 20, 1, 80, 1, 20, 1, 3, 0, 57, 0, 20, 1, 20, 2, 60, 0, 4720, 5, 10, 0, 10, 6, 80, 4, 10, 0, 10, 5, 80, 4, 10, 0, 10, 11, 80, 0, 2, 2, 8, 0, 10, 2, 60, 0, 20, 2, 11, 0, 9, 0, 80, 2, 20, 0, 60, 0, 20, 2, 20, 1, 80, 3, 20, 0, 60, 0, 20, 1, 20, 3, 60, 0, 20, 1, 20, 10, 80, 1, 20, 2, 80, 1, 20, 8, 60, 0, 20, 1, 20, 3, 60, 0, 20, 1, 20, 4, 60, 0, 620, 0, 21, 2, 4, 7, 75, 0, 22, 8, 179, 0, 22, 0, 3, 1, 174, 0, 21, 10, 79, 1, 22, 8, 7278, 6, 24, 3, 5, 1, 3, 3, 68, 7, 100, 0, 8800, 2, 4, 2, 20, 3, 5, 1, 3, 6, 31068, 14, 121, 16, 18, 3, 141, 3, 9720, 0, 3, 4, 8, 3, 9, 4, 8, 0, 2, 1, 50, 3, 120, 3, 10, 0, 10, 1, 80, 2, 10, 0, 10, 1, 80, 3, 20, 1, 3, 1, 77, 0, 2, 0, 20, 0, 3, 0, 55, 2, 20, 0, 2, 1, 19, 5, 59, 0, 20, 1, 10, 1, 10, 3, 80, 3, 20, 2, 80, 1, 10, 0, 13, 1, 4, 0, 73, 1, 10, 2, 12, 1, 3, 0, 3, 0, 3, 1, 49, 0, 120, 3, 20, 4, 60, 0, 20, 1, 20, 4, 80, 1, 20, 8, 80, 1, 20, 2, 60, 0, 20, 1, 20, 4, 60, 0, 20, 1, 20, 6, 80, 1, 20, 2, 80, 1, 20, 1, 60, 0, 920, 1, 20, 2, 8, 1, 72, 0, 21, 6, 99, 12, 100, 17, 80, 0, 21, 15, 279, 0, 20, 2, 100, 5, 6280, 2, 10, 3, 10, 2, 60, 0, 20, 2, 20, 1, 80, 2, 20, 9, 60, 1, 20, 1, 20, 4, 1780, 0, 21, 8, 79, 0, 21, 6, 79, 0, 21, 6, 79, 0, 25, 4, 75, 0, 21, 14, 79, 1, 21, 1, 3, 7, 7376, 2, 10, 2, 10, 1, 3, 5, 57, 0, 120, 1, 20, 5, 7, 0, 53, 0, 20, 1, 20, 7, 80, 1, 20, 3, 80, 1, 20, 9, 80, 1, 20, 3, 80, 1, 20, 8, 80, 1, 20, 6, 1180, 0, 21, 9, 179, 0, 21, 7, 9, 0, 170, 1, 21, 10, 99, 7, 80, 0, 21, 8, 79, 0, 21, 1, 79, 0, 21, 10, 79, 0, 21, 3, 79, 2, 21, 2, 99, 3, 100, 0, 2, 2, 98, 2, 100, 7, 6580, 1, 20, 6, 2000, 8, 11, 5, 89, 8, 10, 2, 70, 0, 21, 16, 99, 9, 100, 7, 100, 6, 67480, 3, 10, 5, 10, 1, 3, 2, 77, 3, 20, 1, 80, 3, 20, 3, 5, 5, 75, 3, 21, 9, 59, 0, 20, 1, 20, 7, 60, 1, 20, 1, 20, 11, 80, 1, 20, 9, 80, 1, 20, 10, 80, 1, 20, 8, 80, 1, 20, 5, 1380, 0, 21, 8, 79, 0, 21, 5, 179, 0, 21, 10, 7379, 4, 10, 0, 10, 2, 80, 0, 100, 1, 20, 0, 80, 2, 20, 2, 80, 2, 20, 4, 80, 1, 20, 2, 80, 1, 20, 4, 80, 1, 20, 5, 80, 1, 20, 3, 60, 1, 20, 1, 20, 6, 80, 1, 20, 5, 980, 2, 22, 3, 78, 0, 21, 4, 79, 0, 21, 1, 4, 0, 95, 0, 3, 5, 197, 0, 2, 7, 78, 0, 21, 5, 79, 0, 20, 6, 80, 0, 20, 6, 80, 0, 20, 6, 7080, 4, 20, 2, 2000, 7, 100, 3, 100, 3, 200, 4, 100, 5, 100, 5, 80, 1, 20, 2, 7280, 5, 10, 0, 10, 1, 60, 0, 20, 4, 20, 2, 80, 1, 20, 3, 60, 1, 20, 1, 21, 3, 79, 1, 20, 1, 1700, 5, 7880, 7, 20, 0, 80, 4, 1900, 0, 21, 1, 79, 0, 21, 1, 79, 2, 22, 2, 4, 1, 374, 0, 21, 1, 79, 0, 21, 7, 79, 0, 21, 7, 79, 0, 21, 2, 79, 0, 20, 10, 80, 0, 20, 6, 780, 2, 20, 7, 180, 1, 20, 0, 2, 3, 78, 0, 20, 5, 4680, 3]);
|
|
67
|
+
// var prefix = function (source) {
|
|
68
|
+
// var src = [];
|
|
69
|
+
// do {
|
|
70
|
+
// var sheng = source[0]++;
|
|
71
|
+
// src.push(sheng);
|
|
72
|
+
// if (source[0] > source[1]) source.shift(), source.shift();
|
|
73
|
+
// } while (source.length);
|
|
74
|
+
// return src;
|
|
75
|
+
// }([11, 15, 21, 23, 31, 37, 41, 46, 50, 54, 61, 65, 71, 71, 81, 82]);
|
|
76
|
+
var birth = function (q) {
|
|
77
|
+
var d = new Date(1000, q % 12, 1 + q % 31);
|
|
78
|
+
d = new Date(+d + (Date.now() - d) * (1 - Math.pow(.5, q % 9 + 2)));
|
|
79
|
+
return d;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @param {Date} d;
|
|
83
|
+
*/
|
|
84
|
+
var date = function (d = birth(), y = d.getFullYear()) {
|
|
85
|
+
return y * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
|
|
86
|
+
};
|
|
87
|
+
var order = function (r = Math.random(), q = r * 20220309 | 0) {
|
|
88
|
+
return (Math.pow(r, q % 10 + 4) * 498 + 1 | 0);
|
|
89
|
+
};
|
|
90
|
+
var code = function (q = Math.random() * 202203091636) {
|
|
91
|
+
return String(prefix[q % prefix.length]);
|
|
92
|
+
};
|
|
93
|
+
var parse = function (r) {
|
|
94
|
+
var p, y, m, d, o, s, x;
|
|
95
|
+
if (typeof r === 'string') switch (r.length) {
|
|
96
|
+
case 18:
|
|
97
|
+
s = r.slice(17, 18);
|
|
98
|
+
case 17:
|
|
99
|
+
o = r.slice(14, 17);
|
|
100
|
+
case 14:
|
|
101
|
+
d = r.slice(12, 14);
|
|
102
|
+
case 12:
|
|
103
|
+
m = r.slice(10, 12);
|
|
104
|
+
case 10:
|
|
105
|
+
y = r.slice(6, 10);
|
|
106
|
+
case 6:
|
|
107
|
+
p = r.slice(0, 6);
|
|
108
|
+
break;
|
|
109
|
+
case 8:
|
|
110
|
+
y = r.slice(0, 4);
|
|
111
|
+
m = r.slice(4, 6);
|
|
112
|
+
d = r.slice(6, 8);
|
|
113
|
+
break;
|
|
114
|
+
case 4:
|
|
115
|
+
y = r.slice(0, 4);
|
|
116
|
+
break;
|
|
117
|
+
case 3:
|
|
118
|
+
o = r >> 1;
|
|
119
|
+
case 1:
|
|
120
|
+
x = o & 1;
|
|
121
|
+
break;
|
|
122
|
+
case 2:
|
|
123
|
+
m = r;
|
|
124
|
+
}
|
|
125
|
+
else if (r === 1 || r === 0) x = r;
|
|
126
|
+
return [p, y, m, d, o, x, s];
|
|
127
|
+
}
|
|
128
|
+
function sex(r = Math.random()) {
|
|
129
|
+
return r < .5 | 0;
|
|
130
|
+
}
|
|
131
|
+
function sfz(r) {
|
|
132
|
+
var p17, middle;
|
|
133
|
+
if (typeof r === 'string' || r === 1 || r === 0) {
|
|
134
|
+
var r0 = Math.random();
|
|
135
|
+
var q = r0 * 20220309 | 0;
|
|
136
|
+
var d = birth(q);
|
|
137
|
+
var [p = code(q), y = d.getFullYear(), m = d.getMonth() + 1, d = d.getDate(), o = order(r0), x = sex(r0)] = parse(r);
|
|
138
|
+
middle = (y * 10000 + m * 100 + d) * 1000 + (o << 1 | x);
|
|
139
|
+
p17 = p + middle;
|
|
140
|
+
}
|
|
141
|
+
if (!p17) {
|
|
142
|
+
var q = r * 20220309 | 0;
|
|
143
|
+
var d = birth(q);
|
|
144
|
+
middle = (d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate()) * 1000 + (order(r) << 1 | sex(r))
|
|
145
|
+
p17 = code(q) + middle;
|
|
146
|
+
}
|
|
147
|
+
var s = 0;
|
|
148
|
+
var a = [2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7];
|
|
149
|
+
for (var p of p17) {
|
|
150
|
+
s += p * a.pop();
|
|
151
|
+
}
|
|
152
|
+
var end = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2][s % 11];
|
|
153
|
+
return p17 + end;
|
|
154
|
+
}
|
package/coms/reptile/cross.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
return cross_.bind(function (callback, onerror) {
|
|
2
|
-
var response, responseObject, responseType = "", error;
|
|
2
|
+
var response, responseObject, responseType = "", decoder, error;
|
|
3
3
|
var xhr = {
|
|
4
4
|
status: 0,
|
|
5
5
|
readyState: 0,
|
|
@@ -11,7 +11,7 @@ return cross_.bind(function (callback, onerror) {
|
|
|
11
11
|
get response() {
|
|
12
12
|
if (responseType === "" || responseType === "text") {
|
|
13
13
|
if (this.readyState !== 4) return '';
|
|
14
|
-
return String(response);
|
|
14
|
+
return decoder ? decoder(response) : String(response);
|
|
15
15
|
}
|
|
16
16
|
else if (error) return null;
|
|
17
17
|
if (responseObject !== null) return responseObject;
|
|
@@ -20,7 +20,7 @@ return cross_.bind(function (callback, onerror) {
|
|
|
20
20
|
return response.buffer;
|
|
21
21
|
case "json":
|
|
22
22
|
if (!response) return null;
|
|
23
|
-
responseObject = JSON.parse(String(response));
|
|
23
|
+
responseObject = JSON.parse(decoder ? decoder(response) : String(response));
|
|
24
24
|
return responseObject;
|
|
25
25
|
}
|
|
26
26
|
return responseObject;
|
|
@@ -103,7 +103,12 @@ return cross_.bind(function (callback, onerror) {
|
|
|
103
103
|
setRequestHeader(key, value) {
|
|
104
104
|
this.headers[key] = value;
|
|
105
105
|
},
|
|
106
|
-
|
|
106
|
+
overrideMimeType(type) {
|
|
107
|
+
responseType = type;
|
|
108
|
+
if (/gb(k|2312|18030)/.test(type)) {
|
|
109
|
+
decoder = require("../efront/gbk2utf8");
|
|
110
|
+
}
|
|
111
|
+
},
|
|
107
112
|
};
|
|
108
113
|
return xhr;
|
|
109
114
|
}, null, undefined);
|
package/coms/zimoli/HexEditor.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
min-height: 100px;
|
|
8
8
|
padding: 0 0 10px 16px;
|
|
9
9
|
font-family: 宋体;
|
|
10
|
-
width:
|
|
10
|
+
width: 438px;
|
|
11
11
|
|
|
12
12
|
>a {
|
|
13
13
|
display: inline-block;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
&:before {
|
|
33
33
|
position: relative;
|
|
34
34
|
white-space: nowrap;
|
|
35
|
-
box-sizing:
|
|
35
|
+
box-sizing: content-box;
|
|
36
36
|
color: #ccc;
|
|
37
37
|
word-spacing: 2px;
|
|
38
38
|
font-size: inherit;
|
package/coms/zimoli/Item.js
CHANGED
|
@@ -22,6 +22,11 @@ Item.prototype = extend([], {
|
|
|
22
22
|
this.color = value.color;
|
|
23
23
|
this.test = value.test;
|
|
24
24
|
this.line = value.line;
|
|
25
|
+
if (value.path) this.path = value.path;
|
|
26
|
+
if (value.id) this.id = value.id;
|
|
27
|
+
if (value.url) this.url = value.url;
|
|
28
|
+
if (value.href) this.href = value.href;
|
|
29
|
+
if (value.src) this.src = value.src;
|
|
25
30
|
}
|
|
26
31
|
else {
|
|
27
32
|
this.name = value;
|