efront 4.21.4 → 4.22.0
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/#/345/233/275/351/231/205/345/214/226.yml +24 -0
- package/apps/blank/index.html +1 -1
- package/apps/index.jsp +76 -27
- package/apps/pay/alipay-query.jsp +1 -1
- package/apps/pay/alipay.jsp +1 -1
- package/apps/pivot/auth/login.js +2 -2
- package/apps/pivot/cert/main.xht +18 -5
- package/apps/pivot/db/act.xht +53 -0
- package/apps/pivot/db/config.xht +56 -16
- package/apps/pivot/home/welcome.html +12 -13
- package/apps/pivot/home/welcome.js +6 -6
- package/apps/pivot/home/welcome.less +12 -3
- package/apps/pivot/link/room.js +1 -1
- package/apps/pivot/main.js +3 -2
- package/apps/pivot/task/invoke.js +3 -3
- package/apps/pivot/task/rsync.js +2 -2
- package/apps/pivot/wow/root.js +8 -8
- package/coms/basic/#loader.js +9 -8
- package/coms/basic/Item.js +2 -2
- package/coms/basic/Tree.js +14 -2
- package/coms/basic/crc.js +5 -1
- package/coms/basic/cross_.js +2 -2
- package/coms/basic/decode62S.js +44 -0
- package/coms/basic/encode62S.js +40 -0
- package/coms/basic/encode62S_test.js +18 -0
- package/coms/basic/enrich.js +6 -1
- package/coms/basic/refilm_decode.js +40 -20
- package/coms/basic/refilm_decode_test.js +4 -0
- package/coms/basic/valid.js +4 -0
- package/coms/basic_/&Array.js +64 -49
- package/coms/basic_/&extends.js +9 -2
- package/coms/compile/Javascript.js +1 -1
- package/coms/compile/audit.js +23 -1
- package/coms/compile/cloneNode.js +3 -1
- package/coms/compile/downLevel.js +21 -11
- package/coms/compile/downLevel_test.js +52 -14
- package/coms/compile/rescan.js +8 -2
- package/coms/compile/unstruct.js +9 -9
- package/coms/crypt/encode62.js +36 -6
- package/coms/crypt/encode62_test.js +8 -48
- package/coms/explorer/main.less +1 -5
- package/coms/frame/chat.js +2 -2
- package/coms/frame/left.html +5 -4
- package/coms/frame/left.js +1 -0
- package/coms/frame/left.less +5 -3
- package/coms/frame/payment.js +2 -2
- package/coms/pivot/acme2.js +7 -4
- package/coms/pivot/left-footer.xht +25 -0
- package/coms/pivot/pedit.js +3 -3
- package/coms/pivot/plist.js +2 -2
- package/coms/pivot/qrcode.xht +3 -0
- package/coms/zimoli/XMLHttpRequest.js +2 -2
- package/coms/zimoli/container.js +34 -34
- package/coms/zimoli/design.html +6 -13
- package/coms/zimoli/design.js +49 -13
- package/coms/zimoli/design.less +62 -25
- package/coms/zimoli/drag.js +8 -3
- package/coms/zimoli/encode62.js +40 -12
- package/coms/zimoli/lattice.js +0 -1
- package/coms/zimoli/list.js +0 -8
- package/coms/zimoli/menu.js +29 -5
- package/coms/zimoli/model.js +150 -195
- package/coms/zimoli/model.less +4 -8
- package/coms/zimoli/on.js +14 -12
- package/coms/zimoli/padding.less +1 -0
- package/coms/zimoli/progbar.xht +9 -8
- package/coms/zimoli/prompt.less +0 -3
- package/coms/zimoli/render.js +210 -125
- package/coms/zimoli/select.js +9 -4
- package/coms/zimoli/select.less +3 -14
- package/coms/zimoli/selectList.js +5 -1
- package/coms/zimoli/selectList.less +3 -0
- package/coms/zimoli/table.html +7 -7
- package/coms/zimoli/table.js +12 -9
- package/coms/zimoli/table.less +5 -0
- package/coms/zimoli/user.js +2 -2
- package/coms/zimoli/view.js +3 -4
- package/coms/zimoli/watch.js +3 -1
- package/coms/zimoli/zimoli.js +6 -2
- package/coms//350/214/250/350/217/260/tab.js +26 -2
- package/coms//350/214/250/350/217/260//346/240/207/347/255/276/345/214/226.js +1 -1
- package/coms//350/214/250/350/217/260//347/274/226/350/276/221/346/241/206.xht +183 -20
- package/docs//345/267/245/345/205/267//345/233/275/351/231/205/345/214/226.xht +1 -0
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/pivot/pedit.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
function send(type, key, value, origin) {
|
|
2
2
|
return data.from(origin, {
|
|
3
3
|
type,
|
|
4
|
-
key: encode62.
|
|
5
|
-
value: isHandled(value) ? encode62.
|
|
6
|
-
}, e => e ? JSAM.parse(encode62.
|
|
4
|
+
key: encode62.packencode(key),
|
|
5
|
+
value: isHandled(value) ? encode62.packencode(JSON.stringify(value)) : '',
|
|
6
|
+
}, e => e ? JSAM.parse(encode62.packdecode(e)) : '').loading_promise;
|
|
7
7
|
}
|
|
8
8
|
function pedit(title, type, params, idkey = params.fields[0].key) {
|
|
9
9
|
var pdata = params.data;
|
package/coms/pivot/plist.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
function load(type, idkey) {
|
|
2
|
-
return data.from("list", { type, idkey: encode62.
|
|
2
|
+
return data.from("list", { type, idkey: encode62.packencode(idkey) }, a => JSAM.parse(encode62.packdecode(a || '')));
|
|
3
3
|
}
|
|
4
4
|
function remove(type, key) {
|
|
5
|
-
return data.from("edit", { type, key: encode62.
|
|
5
|
+
return data.from("edit", { type, key: encode62.packencode(key), value: encode62.packencode("") }).loading_promise;
|
|
6
6
|
}
|
|
7
7
|
function plist() {
|
|
8
8
|
var title, type, fields, edit_ref, options, idkey, buttons;
|
package/coms/pivot/qrcode.xht
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
if (this.XMLHttpRequest
|
|
1
|
+
if (this.XMLHttpRequest && this.XMLHttpRequest.prototype && "onreadystatechange" in this.XMLHttpRequest.prototype) return this.XMLHttpRequest;
|
|
2
2
|
if (this.ActiveXObject) return this.ActiveXObject.bind(null, 'Microsoft.XMLHTTP');
|
|
3
3
|
if (!this.fetch) return;
|
|
4
4
|
var window = this;
|
|
@@ -28,7 +28,7 @@ XMLHttpRequest.prototype.send = function (data) {
|
|
|
28
28
|
xhr.responseText = d;
|
|
29
29
|
if (xhr.onreadystatechange) xhr.onreadystatechange({ target: xhr });
|
|
30
30
|
if (xhr.onload) xhr.onload({ target: xhr });
|
|
31
|
-
})
|
|
31
|
+
})["catch"](function (e) {
|
|
32
32
|
xhr.readyState = 4;
|
|
33
33
|
if (xhr.onreadystatechange) xhr.onreadystatechange({ target: xhr });
|
|
34
34
|
if (xhr.onerror) xhr.onerror({ target: xhr });
|
package/coms/zimoli/container.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
css(src, c.value);
|
|
13
|
-
}
|
|
14
|
-
else src.setAttribute(c.name, c.value);
|
|
1
|
+
var change = async function (src) {
|
|
2
|
+
if (src !== this.$src) return;
|
|
3
|
+
if (!src) remove(this.with);
|
|
4
|
+
else if (isNode(src)) {
|
|
5
|
+
if (isElement(src) && this.$struct.copys) {
|
|
6
|
+
for (var c of this.$struct.copys) {
|
|
7
|
+
if (c.name === 'class') {
|
|
8
|
+
addClass(src, c.value);
|
|
9
|
+
}
|
|
10
|
+
else if (c.name === 'style') {
|
|
11
|
+
css(src, c.value);
|
|
15
12
|
}
|
|
13
|
+
else src.setAttribute(c.name, c.value);
|
|
16
14
|
}
|
|
17
|
-
zimoli.global(src, this);
|
|
18
|
-
}
|
|
19
|
-
else if (isString(src) || +src < 0) {
|
|
20
|
-
watch(this, 'params', onparams);
|
|
21
|
-
onparams.call(this, this.params);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
var gosrc = function (src) {
|
|
25
|
-
if (!isHandled(this.$src) && !isHandled(src)) return;
|
|
26
|
-
if (src !== this.$src) {
|
|
27
|
-
this.$src = src;
|
|
28
|
-
change.call(this, src);
|
|
29
15
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
zimoli.global(src, this);
|
|
17
|
+
}
|
|
18
|
+
else if (isString(src) || +src < 0) {
|
|
19
|
+
onparams.call(this, this.params);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var gosrc = function (src) {
|
|
23
|
+
if (!isHandled(this.$src) && !isHandled(src)) return;
|
|
24
|
+
if (src !== this.$src) {
|
|
25
|
+
this.$src = src;
|
|
26
|
+
change.call(this, src);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var goone = function (src) {
|
|
30
|
+
if ("$src" in this) return;
|
|
31
|
+
gosrc.call(this, src);
|
|
32
|
+
};
|
|
33
|
+
var onparams = function (params) {
|
|
34
|
+
zimoli.go(this.$src, params, this);
|
|
35
|
+
};
|
|
36
|
+
function container(element) {
|
|
34
37
|
var comment = document.createComment('container');
|
|
35
38
|
comment.$struct = element.$struct;
|
|
36
39
|
care(comment, gosrc);
|
|
37
40
|
if (element.hasAttribute && element.hasAttribute('src')) {
|
|
38
41
|
var src = element.getAttribute('src');
|
|
39
|
-
if (src) oncemount(comment,
|
|
40
|
-
if ("$src" in this) return;
|
|
41
|
-
gosrc.call(this, src);
|
|
42
|
-
});
|
|
42
|
+
if (src) oncemount(comment, goone);
|
|
43
43
|
}
|
|
44
44
|
return comment;
|
|
45
45
|
}
|
package/coms/zimoli/design.html
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
<div class="options">
|
|
2
|
-
<btn
|
|
2
|
+
<btn ng-click=add()><i>+</i><SPAN>添加字段</SPAN></btn>
|
|
3
3
|
</div>
|
|
4
|
-
<
|
|
4
|
+
<dlist ng-src='(f,cx) in fields' class="fields">
|
|
5
5
|
<padding>
|
|
6
6
|
<div class="field-item">
|
|
7
|
-
<
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
<input @focus="focus(this.parentNode)" @blur="blur(this.parentNode)" placeholder="键名" ng-model=field.key />
|
|
11
|
-
<select @focus="focus(this.parentNode)" -model="field.type" @blur="blur(this.parentNode)"
|
|
12
|
-
ng-model=field.type >
|
|
13
|
-
<option value="">请选择字段类型</option>
|
|
14
|
-
<option _value="type.key" ng-repeat="type in types" -text="type.name"></option>
|
|
15
|
-
</select>
|
|
16
|
-
<btn ng-click=remove(field)>移除</btn>
|
|
7
|
+
<i .index -bind="cx+1"></i>
|
|
8
|
+
<field -src="[d,f]" -repeat="d in defines"></field>
|
|
9
|
+
<drop ng-click="remove(f)"></drop>
|
|
17
10
|
</div>
|
|
18
11
|
</padding>
|
|
19
|
-
</
|
|
12
|
+
</dlist>
|
package/coms/zimoli/design.js
CHANGED
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
var field_Id = 0;
|
|
2
2
|
function main(fields, types) {
|
|
3
|
-
var page =
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var page = fields;
|
|
4
|
+
if (isElement(fields)) {
|
|
5
|
+
fields = [];
|
|
6
|
+
types = [
|
|
7
|
+
{ name: '字符串', key: 'string' },
|
|
8
|
+
{ name: '布尔值', key: 'boolean' },
|
|
9
|
+
{ name: '列表', key: 'array' },
|
|
10
|
+
{ name: '攻举', key: 'enum' },
|
|
11
|
+
{ name: '对象', key: 'object' },
|
|
12
|
+
{ name: '双精度数值', key: 'number' },
|
|
13
|
+
{ name: "时间戳", key: "timestamp" }
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
page = form();
|
|
18
|
+
}
|
|
19
|
+
var avoid = [].concat(fields);
|
|
20
|
+
var defines = refilm`
|
|
21
|
+
/name/显示名 input ^${avoid}
|
|
22
|
+
*/key/键名 input ^${avoid}
|
|
23
|
+
/type/选择类型 select ${types}
|
|
24
|
+
`;
|
|
25
|
+
var scope = {
|
|
6
26
|
select,
|
|
7
27
|
fields,
|
|
8
|
-
|
|
28
|
+
field,
|
|
29
|
+
defines,
|
|
30
|
+
dlist: list,
|
|
9
31
|
btn: button,
|
|
32
|
+
drop,
|
|
10
33
|
padding,
|
|
11
34
|
focus(a) {
|
|
12
35
|
addClass(a, 'focus');
|
|
@@ -15,23 +38,36 @@ function main(fields, types) {
|
|
|
15
38
|
removeClass(a, 'focus');
|
|
16
39
|
},
|
|
17
40
|
add() {
|
|
18
|
-
|
|
41
|
+
var field = {
|
|
19
42
|
id: ++field_Id
|
|
20
|
-
}
|
|
43
|
+
}
|
|
44
|
+
this.fields.push(field);
|
|
45
|
+
avoid.push(field);
|
|
21
46
|
setTimeout(() => {
|
|
22
47
|
fieldsContainer.go(this.fields.length);
|
|
23
48
|
})
|
|
24
49
|
},
|
|
25
50
|
remove(field) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (fields[cx] === field) {
|
|
29
|
-
fields.splice(cx, 1);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
51
|
+
removeFromList(this.fields, field);
|
|
52
|
+
removeFromList(avoid, field);
|
|
32
53
|
},
|
|
33
54
|
types
|
|
34
|
-
}
|
|
55
|
+
};
|
|
56
|
+
care(page, function (fields1) {
|
|
57
|
+
if (isArray(fields1[0])) {
|
|
58
|
+
[fields1, types] = fields1;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
fields1 = fields1;
|
|
62
|
+
}
|
|
63
|
+
field_Id = fields1.length;
|
|
64
|
+
fields = scope.fields = fields1;
|
|
65
|
+
avoid.splice(0, avoid.length, ...fields1);
|
|
66
|
+
defines[2].options = types;
|
|
67
|
+
});
|
|
68
|
+
page.innerHTML = design;
|
|
69
|
+
render(page, scope);
|
|
70
|
+
|
|
35
71
|
var [options, fieldsContainer] = page.children;
|
|
36
72
|
// vbox(fieldsContainer);
|
|
37
73
|
autodragchildren(fieldsContainer, fieldsContainer, function (src, dst, dst1) {
|
package/coms/zimoli/design.less
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
& {
|
|
2
|
-
padding: 16px 0;
|
|
3
2
|
position: relative;
|
|
3
|
+
width: 412px;
|
|
4
|
+
display: block;
|
|
5
|
+
margin: 0 auto;
|
|
6
|
+
height: 260px;
|
|
7
|
+
padding-top: 30px;
|
|
4
8
|
}
|
|
5
9
|
|
|
6
10
|
|
|
@@ -10,7 +14,23 @@
|
|
|
10
14
|
>.options {
|
|
11
15
|
text-align: right;
|
|
12
16
|
padding: 0 16px;
|
|
13
|
-
|
|
17
|
+
height: 30px;
|
|
18
|
+
line-height: 30px;
|
|
19
|
+
width: 100%;
|
|
20
|
+
margin-top: -30px;
|
|
21
|
+
|
|
22
|
+
>btn {
|
|
23
|
+
width: auto;
|
|
24
|
+
padding: 0 16px;
|
|
25
|
+
height: 28px;
|
|
26
|
+
line-height: 28px;
|
|
27
|
+
border-radius: 0 0 0 12px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
>btn:nth-last-child(n+2) {
|
|
31
|
+
padding-right: 32px;
|
|
32
|
+
margin-right: -16px;
|
|
33
|
+
}
|
|
14
34
|
}
|
|
15
35
|
|
|
16
36
|
.padding {
|
|
@@ -21,13 +41,21 @@
|
|
|
21
41
|
.field-item {
|
|
22
42
|
.index {
|
|
23
43
|
position: absolute;
|
|
24
|
-
|
|
25
|
-
|
|
44
|
+
cursor: grab;
|
|
45
|
+
|
|
46
|
+
&:active {
|
|
47
|
+
cursor: grabbing;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
font-size: 12px;
|
|
51
|
+
margin-top: -13px;
|
|
26
52
|
top: 0;
|
|
27
53
|
left: 6px;
|
|
28
54
|
padding: 0 14px;
|
|
29
55
|
line-height: 1;
|
|
30
|
-
|
|
56
|
+
color: #fff;
|
|
57
|
+
border-radius: 8px 0 0 0;
|
|
58
|
+
background: #666;
|
|
31
59
|
display: block;
|
|
32
60
|
border: 1px solid;
|
|
33
61
|
border-color: inherit;
|
|
@@ -35,7 +63,6 @@
|
|
|
35
63
|
}
|
|
36
64
|
|
|
37
65
|
border-radius: 3px;
|
|
38
|
-
text-align: right;
|
|
39
66
|
display: block;
|
|
40
67
|
width: 390px;
|
|
41
68
|
max-width: 100%;
|
|
@@ -49,44 +76,61 @@
|
|
|
49
76
|
|
|
50
77
|
.index {
|
|
51
78
|
border-color: inherit;
|
|
79
|
+
background: #39c;
|
|
52
80
|
}
|
|
53
81
|
}
|
|
54
82
|
|
|
55
|
-
>
|
|
56
|
-
|
|
57
|
-
>btn {
|
|
83
|
+
>[field] {
|
|
84
|
+
vertical-align: top;
|
|
58
85
|
position: relative;
|
|
86
|
+
padding: 0;
|
|
59
87
|
width: auto;
|
|
60
|
-
height: 28px;
|
|
61
88
|
border: none;
|
|
62
89
|
line-height: 28px;
|
|
63
90
|
display: inline-block;
|
|
64
|
-
vertical-align: middle;
|
|
65
91
|
box-sizing: border-box;
|
|
66
92
|
outline: none;
|
|
67
93
|
appearance: none;
|
|
68
94
|
}
|
|
69
95
|
|
|
70
|
-
>
|
|
96
|
+
>[field=name] {
|
|
71
97
|
border-radius: 3px 0 0 3px;
|
|
72
98
|
padding-left: 6px;
|
|
73
|
-
width:
|
|
99
|
+
width: 132px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
>[field=type] {
|
|
103
|
+
min-width: 120px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
>[field=key] {
|
|
107
|
+
width: 120px;
|
|
74
108
|
}
|
|
75
109
|
|
|
76
|
-
>
|
|
77
|
-
|
|
110
|
+
>drop {
|
|
111
|
+
line-height: 30px;
|
|
112
|
+
width: 30px;
|
|
113
|
+
text-align: center;
|
|
114
|
+
padding: 0;
|
|
115
|
+
display: none;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&:hover,
|
|
119
|
+
&:focus {
|
|
120
|
+
>drop {
|
|
121
|
+
display: block;
|
|
122
|
+
}
|
|
78
123
|
}
|
|
79
124
|
|
|
80
125
|
>btn {
|
|
81
126
|
padding: 0 6px;
|
|
82
|
-
|
|
127
|
+
overflow: hidden;
|
|
83
128
|
}
|
|
84
129
|
}
|
|
85
130
|
|
|
86
131
|
&>.fields {
|
|
87
|
-
max-height: 372px;
|
|
88
132
|
overflow: hidden;
|
|
89
|
-
height:
|
|
133
|
+
height: 100%;
|
|
90
134
|
|
|
91
135
|
>.focus {
|
|
92
136
|
outline: 1px solid #39c;
|
|
@@ -98,11 +142,4 @@ i {
|
|
|
98
142
|
font-style: normal;
|
|
99
143
|
display: inline-block;
|
|
100
144
|
margin-right: 6px;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.add {
|
|
104
|
-
width: auto;
|
|
105
|
-
padding: 0 16px;
|
|
106
|
-
height: 28px;
|
|
107
|
-
line-height: 28px;
|
|
108
145
|
}
|
package/coms/zimoli/drag.js
CHANGED
|
@@ -15,6 +15,11 @@ var getOffset = function (e) {
|
|
|
15
15
|
if (isFinite(e.screenLeft)) return [e.screenLeft, e.screenTop];
|
|
16
16
|
if (isFinite(e.screenX)) return [e.screenX, e.screenY];
|
|
17
17
|
};
|
|
18
|
+
|
|
19
|
+
var getMouse = function (e) {
|
|
20
|
+
console.log(e)
|
|
21
|
+
return [e.clientX, e.clientY];
|
|
22
|
+
};
|
|
18
23
|
var z;
|
|
19
24
|
var addZIndex = function (clone) {
|
|
20
25
|
if (clone.style) clone.style.zIndex = z + (+clone.style.zIndex || 0);
|
|
@@ -47,7 +52,7 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
47
52
|
if ((!target.hasAttribute || target.hasAttribute('draggable')) && target.draggable === false) return;
|
|
48
53
|
initialEvent.preventDefault();
|
|
49
54
|
var target_offset = getOffset(target);
|
|
50
|
-
var saved_delta = { x: target_offset[0] - initialEvent.
|
|
55
|
+
var saved_delta = { x: target_offset[0] - initialEvent.clientX, y: target_offset[1] - initialEvent.clientY };
|
|
51
56
|
var clone;
|
|
52
57
|
if (target.style) {
|
|
53
58
|
var saved_opacity = target.style.opacity;
|
|
@@ -87,8 +92,8 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
87
92
|
dispatch("dragstart", target);
|
|
88
93
|
}
|
|
89
94
|
event.moveLocked = true;
|
|
90
|
-
var offsetLeft = saved_delta.x + event.
|
|
91
|
-
var offsetTop = saved_delta.y + event.
|
|
95
|
+
var offsetLeft = saved_delta.x + event.clientX;
|
|
96
|
+
var offsetTop = saved_delta.y + event.clientY;
|
|
92
97
|
var [c_left, c_top] = getOffset(clone);
|
|
93
98
|
var cloneDeltaLeft = -c_left, cloneDeltaTop = -c_top;
|
|
94
99
|
var [c_left, c_top] = move.call(clone, offsetLeft, offsetTop, preventOverflow);
|
package/coms/zimoli/encode62.js
CHANGED
|
@@ -5,6 +5,17 @@ var encode62 = {
|
|
|
5
5
|
src,
|
|
6
6
|
map,
|
|
7
7
|
time_delta: parseInt("zzzzz", 36),
|
|
8
|
+
pack: 'efront-encode62s',
|
|
9
|
+
packdecode(string) {
|
|
10
|
+
if (!string) return string;
|
|
11
|
+
return this.timedecode(string, this.pack);
|
|
12
|
+
},
|
|
13
|
+
packencode(string) {
|
|
14
|
+
return this.timeencode(string, this.pack);
|
|
15
|
+
},
|
|
16
|
+
packupdate(string) {
|
|
17
|
+
return this.timeupdate(string, this.pack);
|
|
18
|
+
},
|
|
8
19
|
geta(string) {
|
|
9
20
|
string = String(string)
|
|
10
21
|
string = string.length + string + "2017-08-19";
|
|
@@ -26,34 +37,51 @@ var encode62 = {
|
|
|
26
37
|
string = this.encode(string, sign, offset).replace(/\.\.?/g, a => a === '.' ? "%" : ".");
|
|
27
38
|
return decodeURIComponent(string);
|
|
28
39
|
},
|
|
29
|
-
timedecode(string) {
|
|
40
|
+
timedecode(string, pack) {
|
|
30
41
|
var { time_delta } = this;
|
|
31
42
|
var time_rest = string.slice(string.length - time_delta.toString(36).length, string.length);
|
|
32
43
|
var time_start = parseInt((new Date() - parseInt(time_rest, 36)) / time_delta) * time_delta;
|
|
33
44
|
var time_stamp = time_start + parseInt(time_rest, 36);
|
|
34
|
-
|
|
45
|
+
string = string.slice(0, string.length - time_delta.toString(36).length);
|
|
46
|
+
if (pack) {
|
|
47
|
+
string = this.decode62(string, time_stamp.toString(36) + pack);
|
|
48
|
+
var sign = string.slice(string.length - 7, string.length);
|
|
49
|
+
sign = parseInt(sign, 36);
|
|
50
|
+
sign -= 0x600000000 + (time_stamp & 0xffffffff);
|
|
51
|
+
string = string.slice(0, string.length - 7);
|
|
52
|
+
string = decode62S(string);
|
|
53
|
+
if (crc.string(time_stamp.toString(36) + pack + string) !== sign) throw new Error('数据校验不通过!');
|
|
54
|
+
return string;
|
|
55
|
+
}
|
|
56
|
+
return this.safedecode(string, time_stamp.toString(36));
|
|
35
57
|
},
|
|
36
|
-
timeencode(string) {
|
|
58
|
+
timeencode(string, pack) {
|
|
37
59
|
var { time_delta } = this;
|
|
38
60
|
var time_free = time_delta / 6 | 0;
|
|
39
|
-
var
|
|
40
|
-
time = time - time % (time_delta >> 2);
|
|
41
|
-
var time_stamp = time - time_free;
|
|
61
|
+
var time_stamp = +new Date() - time_free;
|
|
42
62
|
var time_rest = time_stamp % time_delta;
|
|
43
63
|
var time_rest_str = time_rest.toString(36);
|
|
44
64
|
var time_delta_str = time_delta.toString(36);
|
|
45
|
-
|
|
65
|
+
if (pack) {
|
|
66
|
+
var sign = crc.string(time_stamp.toString(36) + pack + string);
|
|
67
|
+
sign += 0x600000000 + (time_stamp & 0xffffffff);
|
|
68
|
+
string = encode62S(string) + sign.toString(36);
|
|
69
|
+
string = this.encode62(string, time_stamp.toString(36) + pack);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
string = this.safeencode(string, time_stamp.toString(36));
|
|
73
|
+
}
|
|
74
|
+
return string + repeat("0", time_delta_str.length - time_rest_str.length) + time_rest_str;
|
|
46
75
|
},
|
|
47
|
-
timeupdate(string) {
|
|
76
|
+
timeupdate(string, pack) {
|
|
48
77
|
var { time_delta } = this;
|
|
49
78
|
var time_rest = string.slice(string.length - time_delta.toString(36).length, string.length);
|
|
50
|
-
var
|
|
51
|
-
var time_start = parseInt((time - parseInt(time_rest, 36)) / time_delta) * time_delta;
|
|
79
|
+
var time_start = parseInt((new Date() - parseInt(time_rest, 36)) / time_delta) * time_delta;
|
|
52
80
|
var time_stamp = time_start + parseInt(time_rest, 36);
|
|
53
|
-
if (time_stamp + (time_delta >> 1) >
|
|
81
|
+
if (time_stamp + (time_delta >> 1) > +new Date()) {
|
|
54
82
|
return string;
|
|
55
83
|
} else {
|
|
56
|
-
return this.timeencode(this.timedecode(string));
|
|
84
|
+
return this.timeencode(this.timedecode(string, pack), pack);
|
|
57
85
|
}
|
|
58
86
|
},
|
|
59
87
|
encode(data, sign, offset = 0) {
|
package/coms/zimoli/lattice.js
CHANGED
package/coms/zimoli/list.js
CHANGED
|
@@ -9,14 +9,6 @@ function ylist(container, generator, $Y) {
|
|
|
9
9
|
list.autoFix = true;
|
|
10
10
|
var saved_itemIndex = 0;
|
|
11
11
|
addClass(list, 'list-' + $Y.toLowerCase());
|
|
12
|
-
if (!list.$renders) {
|
|
13
|
-
list.$renders = [];
|
|
14
|
-
}
|
|
15
|
-
list.$renders.push(function () {
|
|
16
|
-
var a = saved_itemIndex;
|
|
17
|
-
saved_itemIndex = void 0;
|
|
18
|
-
if (a !== void 0) scrollTo(a);
|
|
19
|
-
});
|
|
20
12
|
var getNodeTarget = function (node) {
|
|
21
13
|
if (node.nodeType === 8 && node.$template) {
|
|
22
14
|
var t = node.$template;
|
package/coms/zimoli/menu.js
CHANGED
|
@@ -89,9 +89,11 @@ var getTreeNodes = function (elem) {
|
|
|
89
89
|
[].forEach.call(elem.children, run);
|
|
90
90
|
return nodes;
|
|
91
91
|
};
|
|
92
|
-
|
|
92
|
+
var menusList = [];
|
|
93
|
+
var menusActived = data.getInstance('zimoli-actived');
|
|
93
94
|
function main() {
|
|
94
95
|
var [elem, mode] = arguments;
|
|
96
|
+
var istag = false;
|
|
95
97
|
if (isElement(elem)) {
|
|
96
98
|
// var os = /Samsung|Firefox|Chrome|MSIE|Safari/i.exec(navigator.userAgent);
|
|
97
99
|
// if (os) {
|
|
@@ -111,13 +113,16 @@ function main() {
|
|
|
111
113
|
|| elem.hasAttribute('tools')
|
|
112
114
|
|| elem.hasAttribute('bar')
|
|
113
115
|
) mode = "toolbar";
|
|
116
|
+
else if (elem.hasAttribute('tag') || elem.hasAttribute('tagbar')) {
|
|
117
|
+
mode = 'tag';
|
|
118
|
+
}
|
|
114
119
|
}
|
|
115
120
|
if (!mode) {
|
|
116
|
-
if (/^[
|
|
121
|
+
if (/^[xyhvtcig]/i.test(elem.tagName)) {
|
|
117
122
|
mode = elem.tagName.slice(0, 1);
|
|
118
123
|
if (/^t$/i.test(mode)) mode = elem.tagName.slice(0, 2);
|
|
119
124
|
}
|
|
120
|
-
else if (/[
|
|
125
|
+
else if (/[xyhvcig]$/i.test(elem.tagName)) {
|
|
121
126
|
mode = elem.tagName.slice(elem.tagName.length - 1);
|
|
122
127
|
}
|
|
123
128
|
}
|
|
@@ -132,7 +137,7 @@ function main() {
|
|
|
132
137
|
if (elem) {
|
|
133
138
|
var generator = getGenerator(elem, 'menu-item');
|
|
134
139
|
care(elem, function (src) {
|
|
135
|
-
if (src) src = getTreeFromData(src);
|
|
140
|
+
if (src) src = getTreeFromData(src, selectedId);
|
|
136
141
|
var hasIcon = src.hasIcon;
|
|
137
142
|
elem.useIcon = hasIcon;
|
|
138
143
|
elem.src = src;
|
|
@@ -157,6 +162,10 @@ function main() {
|
|
|
157
162
|
case "toolbar":
|
|
158
163
|
direction = 't';
|
|
159
164
|
mode = "toolbar";
|
|
165
|
+
case "tag":
|
|
166
|
+
case "tagbar":
|
|
167
|
+
case "g":
|
|
168
|
+
istag = true;
|
|
160
169
|
case "h":
|
|
161
170
|
case "x":
|
|
162
171
|
case "horizonal":
|
|
@@ -176,7 +185,7 @@ function main() {
|
|
|
176
185
|
care(elem, function (src) {
|
|
177
186
|
bindGlobalkey(elem, src.keymap);
|
|
178
187
|
src0.splice(0, src0.length);
|
|
179
|
-
var s = getTreeFromData(src);
|
|
188
|
+
var s = getTreeFromData(src, selectedId);
|
|
180
189
|
if (s.actived) {
|
|
181
190
|
elem.selected = s.actived;
|
|
182
191
|
}
|
|
@@ -207,6 +216,21 @@ function main() {
|
|
|
207
216
|
if (!elem.hasAttribute('mode')) elem.setAttribute('mode', mode);
|
|
208
217
|
if (!elem.hasAttribute(mode)) elem.setAttribute(mode, '');
|
|
209
218
|
elem.target = document.body;
|
|
219
|
+
var selectedId = null;
|
|
220
|
+
if (istag) {
|
|
221
|
+
on("remove")(elem, function () {
|
|
222
|
+
removeFromList(menusList, elem);
|
|
223
|
+
});
|
|
224
|
+
on('append')(elem, function () {
|
|
225
|
+
selectedId = menusActived[menusList.length] || 1;
|
|
226
|
+
menusList.push(elem);
|
|
227
|
+
});
|
|
228
|
+
on('actived')(elem, function () {
|
|
229
|
+
var i = menusList.indexOf(elem) + 1;
|
|
230
|
+
menusList.splice(i, menusList.length - i);
|
|
231
|
+
data.setInstance('zimoli-actived', menusList.map(e => e.selected?.id));
|
|
232
|
+
});
|
|
233
|
+
}
|
|
210
234
|
return elem;
|
|
211
235
|
|
|
212
236
|
}
|