efront 3.4.6 → 3.5.2
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/api.yml +2 -1
- package/apps/pivot/home/welcome.js +4 -4
- package/apps/pivot/main.js +4 -1
- package/apps/pivot/main.less +3 -0
- package/apps/pivot/menu.yml +3 -1
- package/apps/pivot/share/edit.html +10 -0
- package/apps/pivot/share/edit.js +16 -0
- package/apps/pivot/share/list.html +1 -0
- package/apps/pivot/share/list.js +36 -0
- package/coms/layer/glance.js +2 -2
- package/coms/zimoli/alert.js +7 -6
- package/coms/zimoli/appendChild.js +1 -0
- package/coms/zimoli/autodragchildren.js +96 -116
- package/coms/zimoli/button.js +5 -0
- package/coms/zimoli/button.less +6 -2
- package/coms/zimoli/color.js +128 -83
- package/coms/zimoli/colorpad.js +2 -4
- package/coms/zimoli/data.js +8 -4
- package/coms/zimoli/drag.js +2 -1
- package/coms/zimoli/gallery.js +2 -12
- package/coms/zimoli/getGenerator.js +16 -10
- package/coms/zimoli/image.less +4 -0
- package/coms/zimoli/list.js +2 -12
- package/coms/zimoli/menu.js +4 -14
- package/coms/zimoli/menuList.js +4 -3
- package/coms/zimoli/on.js +18 -0
- package/coms/zimoli/render.js +97 -101
- package/coms/zimoli/table.html +16 -0
- package/coms/zimoli/table.js +23 -1
- package/coms/zimoli/table.less +57 -39
- package/coms/zimoli/view.less +4 -3
- package/coms/zimoli/zimoli.js +11 -5
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/zimoli/color.js
CHANGED
|
@@ -3,60 +3,92 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
var { min, max, sin, cos, round, sqrt, random, PI, abs = a => a < 0 ? -a : a } = Math;
|
|
6
|
-
|
|
6
|
+
var [v_r, v_g, v_b] = [.299, .587, .114];
|
|
7
7
|
|
|
8
8
|
var rgb4v = function (r, g, b, v) {
|
|
9
|
-
|
|
10
|
-
return
|
|
9
|
+
var d = v - rgb2v(r, g, b);
|
|
10
|
+
return [r + d, g + d, b + d];
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var rgb4h = function (r, g, b, h) {
|
|
16
|
+
var [p, q, s] = [r, g, b].sort();
|
|
17
|
+
var m = s - p;
|
|
18
|
+
h = (h % 360 + 360) % 360;
|
|
19
|
+
if (h < 60) {
|
|
20
|
+
r = s;
|
|
21
|
+
g = p + m * h / 60;
|
|
22
|
+
b = p;
|
|
23
|
+
}
|
|
24
|
+
else if (h < 120) {
|
|
25
|
+
r = p + m * (120 - h) / 60;
|
|
26
|
+
g = s;
|
|
27
|
+
b = p;
|
|
28
|
+
}
|
|
29
|
+
else if (h < 180) {
|
|
30
|
+
r = p;
|
|
31
|
+
g = s;
|
|
32
|
+
b = p + m * (h - 120) / 60
|
|
33
|
+
}
|
|
34
|
+
else if (h < 240) {
|
|
35
|
+
r = p;
|
|
36
|
+
g = p + m * (240 - h) / 60;
|
|
37
|
+
b = s;
|
|
38
|
+
}
|
|
39
|
+
else if (h < 300) {
|
|
40
|
+
r = p + m * (h - 240) / 60;
|
|
41
|
+
g = p;
|
|
42
|
+
b = s;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
r = s;
|
|
46
|
+
g = p;
|
|
47
|
+
b = p + m * (360 - h) / 60;
|
|
48
|
+
}
|
|
40
49
|
return [r, g, b];
|
|
41
|
-
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
var rgb2h = function (r, g, b) {
|
|
54
|
+
var m = max(r, g, b);
|
|
55
|
+
var n = min(r, g, b);
|
|
56
|
+
var h;
|
|
57
|
+
if (m === n) h = 0;
|
|
58
|
+
else if (m === r) {
|
|
59
|
+
if (g >= b) {
|
|
60
|
+
h = 60 * (g - b) / (m - n);
|
|
61
|
+
} else {
|
|
62
|
+
h = 360 + 60 * (g - b) / (m - n);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (m === g) {
|
|
66
|
+
h = 120 + 60 * (b - r) / (m - n);
|
|
67
|
+
}
|
|
68
|
+
else if (m === b) {
|
|
69
|
+
h = 240 + 60 * (r - g) / (m - n);
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
return h;
|
|
73
|
+
};
|
|
42
74
|
|
|
43
75
|
var rgb2s = function (r, g, b) {
|
|
44
|
-
var m =
|
|
76
|
+
var m = min(r, g, b);
|
|
45
77
|
if (m) {
|
|
46
78
|
r -= m;
|
|
47
79
|
g -= m;
|
|
48
80
|
b -= m;
|
|
49
81
|
}
|
|
50
|
-
return
|
|
82
|
+
return max(r, g, b) / 255;
|
|
51
83
|
};
|
|
52
84
|
var rgb4s = function (r, g, b, s) {
|
|
53
|
-
var m =
|
|
85
|
+
var m = min(r, g, b);
|
|
54
86
|
if (m) {
|
|
55
87
|
r -= m;
|
|
56
88
|
g -= m;
|
|
57
89
|
b -= m;
|
|
58
90
|
}
|
|
59
|
-
s = s * 255 /
|
|
91
|
+
s = s * 255 / (max(r, g, b) || 1);
|
|
60
92
|
if (s) {
|
|
61
93
|
r *= s;
|
|
62
94
|
g *= s;
|
|
@@ -69,37 +101,45 @@ var rgb4s = function (r, g, b, s) {
|
|
|
69
101
|
function rotate_rgb(RGBA, theta) {
|
|
70
102
|
var [r, g, b, a] = RGBA;
|
|
71
103
|
if (isNaN(theta)) return [r, g, b, a];
|
|
104
|
+
var h = rgb2h(r, g, b);
|
|
72
105
|
var s = rgb2s(r, g, b);
|
|
73
106
|
var v = rgb2v(r, g, b);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
green
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
h += theta * 180 / Math.PI;
|
|
108
|
+
[r, g, b] = rgb4h(r, g, b, h);
|
|
109
|
+
[r, g, b] = rgb4s(r, g, b, s);
|
|
110
|
+
[r, g, b] = rgb4v(r, g, b, v);
|
|
111
|
+
return [r, g, b];
|
|
112
|
+
// var s = rgb2s(r, g, b);
|
|
113
|
+
// var v = rgb2v(r, g, b);
|
|
114
|
+
// var u = sqrt(3) / 3;
|
|
115
|
+
// var pu = 1 / 3;
|
|
116
|
+
// var cosa = cos(theta);
|
|
117
|
+
// var sina = sin(theta);
|
|
118
|
+
// var vera = 1 - cosa;
|
|
119
|
+
// var red = (cosa + pu * vera) * r + (pu * vera - u * sina) * g + (pu * vera + u * sina) * b;
|
|
120
|
+
// var green = (pu * vera + u * sina) * r + (cosa + pu * vera) * g + (pu * vera - u * sina) * b;
|
|
121
|
+
// var blue = (pu * vera - u * sina) * r + (pu * vera + u * sina) * g + (cosa + pu * vera) * b;
|
|
122
|
+
// var m = mode([red, green, blue]);
|
|
123
|
+
// var _min = min(red, green, blue);
|
|
124
|
+
// var d = [m - red, m - green, m - blue]
|
|
125
|
+
// if (_min < 0) {
|
|
126
|
+
// var index = red < 0 ? 0 : green < 0 ? 1 : 2;
|
|
127
|
+
// var [dr, dg, db] = single(d, -_min / d[index]);
|
|
128
|
+
// } else {
|
|
129
|
+
// var _max = max(red, green, blue);
|
|
130
|
+
// if (_max > 255) {
|
|
131
|
+
// var index = red > 255 ? 0 : green > 255 ? 1 : 2;
|
|
132
|
+
// var [dr, dg, db] = single(d, (255 - _max) / d[index]);
|
|
133
|
+
// } else {
|
|
134
|
+
// var dr, dg, db = dr = dg = 0;
|
|
135
|
+
// }
|
|
136
|
+
// }
|
|
137
|
+
// red += dr;
|
|
138
|
+
// green += dg;
|
|
139
|
+
// blue += db;
|
|
140
|
+
// [red, green, blue] = rgb4s(red, green, blue, s);
|
|
141
|
+
// [red, green, blue] = rgb4v(red, green, blue, v);
|
|
142
|
+
// return [red, green, blue, a];
|
|
103
143
|
}
|
|
104
144
|
// 对比度
|
|
105
145
|
function contrast_rgb(RGBA, ratio) {
|
|
@@ -225,22 +265,24 @@ function single(c, u) {
|
|
|
225
265
|
return [r * u, g * u, b * u];
|
|
226
266
|
}
|
|
227
267
|
function angle(c1, c2) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
c1 =
|
|
231
|
-
c2 =
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
var
|
|
235
|
-
var
|
|
236
|
-
var
|
|
237
|
-
var
|
|
238
|
-
var
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
268
|
+
var theta = rgb2h(c2[0], c2[1], c2[2]) - rgb2h(c1[0], c1[1], c1[2]);
|
|
269
|
+
if (theta < 0) theta += 360;
|
|
270
|
+
// c1 = parse(c1);
|
|
271
|
+
// c2 = parse(c2);
|
|
272
|
+
// c1 = normal(c1);
|
|
273
|
+
// c2 = normal(c2);
|
|
274
|
+
// var [r1, g1, b1] = single(c1);
|
|
275
|
+
// var [r2, g2, b2] = single(c2);
|
|
276
|
+
// var c = [g1 * b2 - g2 * b1, b1 * r2 - b2 * r1, r1 * g2 - r2 * g1];
|
|
277
|
+
// var d = r1 * r2 + g1 * g2 + b1 * b2;
|
|
278
|
+
// var e = c[0] > 0 ? mode(c) : -mode(c);
|
|
279
|
+
// var theta = Math.asin(e > 1 ? 1 : e < -1 ? -1 : e);
|
|
280
|
+
// var phi = Math.acos(d > 1 ? 1 : d < -1 ? -1 : d);
|
|
281
|
+
// if (theta < 0) {
|
|
282
|
+
// theta = Math.PI * 2 - phi;
|
|
283
|
+
// } else {
|
|
284
|
+
// theta = phi;
|
|
285
|
+
// }
|
|
244
286
|
return theta;
|
|
245
287
|
}
|
|
246
288
|
function equal(c1, c2) {
|
|
@@ -273,9 +315,9 @@ var colorDesigner = {
|
|
|
273
315
|
contrast: 1
|
|
274
316
|
};
|
|
275
317
|
var rgb2v = function (r, g, b) {
|
|
276
|
-
r *=
|
|
277
|
-
g *=
|
|
278
|
-
b *=
|
|
318
|
+
r *= v_r;
|
|
319
|
+
g *= v_g;
|
|
320
|
+
b *= v_b;
|
|
279
321
|
return r + g + b;
|
|
280
322
|
};
|
|
281
323
|
var v2rgb = function (v, r, g, b) {
|
|
@@ -320,6 +362,9 @@ extend(color, {
|
|
|
320
362
|
contrast(color, ratio) {
|
|
321
363
|
return doWith(contrast_rgb, color, ratio);
|
|
322
364
|
},
|
|
365
|
+
rgb2h,
|
|
366
|
+
rgb4h,
|
|
367
|
+
rgb4s,
|
|
323
368
|
rgb2v,
|
|
324
369
|
rgb4v,
|
|
325
370
|
rgb2s,
|
package/coms/zimoli/colorpad.js
CHANGED
|
@@ -4,9 +4,7 @@ var xy2c = function (a, x, y) {
|
|
|
4
4
|
return a * x * (1 - y) + (.5 + x / 2) * y * 255;
|
|
5
5
|
};
|
|
6
6
|
var z2rgb = function (z) {
|
|
7
|
-
|
|
8
|
-
var [r, g, b] = color.parse(c);
|
|
9
|
-
return color.rgb4s(r, g, b, 1);
|
|
7
|
+
return color.rgb4h(255, 0, 0, z * 360);
|
|
10
8
|
};
|
|
11
9
|
var z2c = function (z) {
|
|
12
10
|
return color.stringify(z2rgb(z));
|
|
@@ -87,7 +85,7 @@ var c2xy = function (c1, c2) {
|
|
|
87
85
|
var getCanvas = function (e) {
|
|
88
86
|
return e.getElementsByTagName('canvas')[0];
|
|
89
87
|
};
|
|
90
|
-
var sample = "#
|
|
88
|
+
var sample = "#ff0000";
|
|
91
89
|
var buildpad = function (pad, c = sample) {
|
|
92
90
|
var canvas = getCanvas(pad);
|
|
93
91
|
canvas.width = 256;
|
package/coms/zimoli/data.js
CHANGED
|
@@ -310,7 +310,11 @@ var parseData = function (sourceText) {
|
|
|
310
310
|
sourceText = sourceText.replace(/^[^\(]+\(([\s\S]*)\)[^\)]*$/, "$1");
|
|
311
311
|
}
|
|
312
312
|
try {
|
|
313
|
-
|
|
313
|
+
if (/^[\[\{][\d\:,]+[\}\]],|^(Infinity|''|NaN|\d+|)$|^\/[\s\S]*?\/\w*$/.test(sourceText)) {
|
|
314
|
+
sourceText = JSAM.parse(sourceText);
|
|
315
|
+
} else {
|
|
316
|
+
sourceText = parseYML(sourceText);
|
|
317
|
+
}
|
|
314
318
|
} catch (e) {
|
|
315
319
|
throw "数据无法解析";
|
|
316
320
|
}
|
|
@@ -539,7 +543,8 @@ var privates = {
|
|
|
539
543
|
ok(e.response || e.responseText);
|
|
540
544
|
}).error(xhr => {
|
|
541
545
|
try {
|
|
542
|
-
|
|
546
|
+
var e = getErrorMessage(parseData(xhr.response || xhr.responseText || xhr.statusText || xhr.status));
|
|
547
|
+
oh({ status: xhr.status, error: e })
|
|
543
548
|
} catch (error) {
|
|
544
549
|
oh(error);
|
|
545
550
|
}
|
|
@@ -608,8 +613,7 @@ function responseCrash(e, data) {
|
|
|
608
613
|
} else {
|
|
609
614
|
data.error = e;
|
|
610
615
|
}
|
|
611
|
-
error_report(data.error_message, 'error');
|
|
612
|
-
|
|
616
|
+
error_report(data.error_message, e.status < 500 ? 'warn' : 'error');
|
|
613
617
|
}
|
|
614
618
|
|
|
615
619
|
var data = {
|
package/coms/zimoli/drag.js
CHANGED
|
@@ -46,6 +46,8 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
46
46
|
var [target_left, target_top] = getOffset(target);
|
|
47
47
|
if (abs(target_left - event.screenX - saved_delta.x) < MOVELOCK_DELTA && abs(target_top - event.screenY - saved_delta.y) < MOVELOCK_DELTA) return;
|
|
48
48
|
saved_delta.ing = true;
|
|
49
|
+
drag.target = target;
|
|
50
|
+
dispatch("dragstart", target);
|
|
49
51
|
if (isElement(target) && !/absolute|fixed/.test(getComputedStyle(target).position)) {
|
|
50
52
|
clone = toCloneTarget(target, isMovingSource);
|
|
51
53
|
appendChild(document.body, clone);
|
|
@@ -62,7 +64,6 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
62
64
|
clone.style.zIndex = zIndex();
|
|
63
65
|
extraClones.map(e => e.style.zIndex = clone.style.zIndex);
|
|
64
66
|
}
|
|
65
|
-
dispatch("dragstart", target);
|
|
66
67
|
}
|
|
67
68
|
drag.target = clone;
|
|
68
69
|
var offsetLeft = saved_delta.x + event.screenX;
|
package/coms/zimoli/gallery.js
CHANGED
|
@@ -121,18 +121,8 @@ function main() {
|
|
|
121
121
|
minWidth = arg;
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var parsedSrc = render.parseRepeat(src);
|
|
127
|
-
if (!parsedSrc) {
|
|
128
|
-
element.setAttribute("ng-src", src);
|
|
129
|
-
element.removeAttribute("src");
|
|
130
|
-
var generator = getGenerator(element);
|
|
131
|
-
} else {
|
|
132
|
-
element.setAttribute("ng-src", parsedSrc.srcName);
|
|
133
|
-
element.removeAttribute("src");
|
|
134
|
-
var generator = getGenerator(element, parsedSrc);
|
|
135
|
-
}
|
|
124
|
+
if ("$src" in element) {
|
|
125
|
+
var generator = getGenerator(element);
|
|
136
126
|
care(element, function () {
|
|
137
127
|
var index = element.index();
|
|
138
128
|
element.clean();
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
var _slider = createElement(div);
|
|
3
|
-
var
|
|
3
|
+
var empty = function (index, item) {
|
|
4
|
+
if (!item) return;
|
|
5
|
+
return document.createElement('empty');
|
|
6
|
+
};
|
|
7
|
+
var getGenerator = function (container) {
|
|
4
8
|
if (!container) return;
|
|
9
|
+
if (!container.childNodes.length) return container.$generator || empty;
|
|
5
10
|
var template = document.createElement("div");
|
|
6
11
|
var templates = [].concat.apply([], container.childNodes).filter(a => {
|
|
7
12
|
if (a.hasAttribute('insert')) {
|
|
@@ -20,26 +25,27 @@ var getGenerator = function (container, parsedSrc) {
|
|
|
20
25
|
appendChild(template, templates);
|
|
21
26
|
container.insertBefore = _slider.insertBefore;
|
|
22
27
|
container.appendChild = _slider.appendChild;
|
|
23
|
-
|
|
28
|
+
var scopes = container.$parentScopes.concat(container.$scope);
|
|
29
|
+
return container.$generator = function (index, com) {
|
|
24
30
|
if (!com) {
|
|
25
31
|
if (!container.src || index >= container.src.length) return;
|
|
26
32
|
com = container.src[index];
|
|
27
33
|
}
|
|
28
34
|
if (!com) return;
|
|
29
|
-
var template1 = template.cloneNode();
|
|
30
|
-
template1.innerHTML = template.innerHTML;
|
|
35
|
+
var template1 = template.cloneNode(true);
|
|
31
36
|
if (!template1.childNodes.length) return template1;
|
|
32
37
|
var item = template1.childNodes[0];
|
|
33
38
|
item.with = [].concat.apply([], template1.childNodes).slice(1);
|
|
39
|
+
var parsedSrc = container.$src;
|
|
34
40
|
if (parsedSrc) {
|
|
35
41
|
var { keyName, itemName, indexName } = parsedSrc;
|
|
36
|
-
var newScope =
|
|
42
|
+
var newScope = {
|
|
37
43
|
[keyName || '$key']: index,
|
|
38
44
|
[itemName || '$item']: com,
|
|
39
45
|
[indexName || '$index']: index
|
|
40
|
-
}
|
|
41
|
-
var newItem = render(item, newScope);
|
|
42
|
-
newItem.with = render(item.with, newScope);
|
|
46
|
+
};
|
|
47
|
+
var newItem = render(item, newScope, scopes);
|
|
48
|
+
if (item.with.length) newItem.with = render(item.with, newScope, scopes);
|
|
43
49
|
} else {
|
|
44
50
|
var newScope = container.src[index];
|
|
45
51
|
if (!isObject(newScope)) newScope = {
|
|
@@ -59,8 +65,8 @@ var getGenerator = function (container, parsedSrc) {
|
|
|
59
65
|
return this.$item;
|
|
60
66
|
}
|
|
61
67
|
}
|
|
62
|
-
var newItem = render(item, newScope,
|
|
63
|
-
newItem.with = render(newItem.with = item.with, newScope,
|
|
68
|
+
var newItem = render(item, newScope, scopes);
|
|
69
|
+
newItem.with = render(newItem.with = item.with, newScope, scopes);
|
|
64
70
|
}
|
|
65
71
|
return newItem;
|
|
66
72
|
};
|
package/coms/zimoli/image.less
CHANGED
package/coms/zimoli/list.js
CHANGED
|
@@ -433,18 +433,8 @@ function list() {
|
|
|
433
433
|
bindSrc = container;
|
|
434
434
|
container = div();
|
|
435
435
|
} else if (container && !generator) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
var parsedSrc = render.parseRepeat(src);
|
|
439
|
-
if (!parsedSrc) {
|
|
440
|
-
container.setAttribute("ng-src", src);
|
|
441
|
-
container.removeAttribute("src");
|
|
442
|
-
var generator = getGenerator(container);
|
|
443
|
-
} else {
|
|
444
|
-
container.setAttribute("ng-src", parsedSrc.srcName);
|
|
445
|
-
container.removeAttribute("src");
|
|
446
|
-
var generator = getGenerator(container, parsedSrc);
|
|
447
|
-
}
|
|
436
|
+
if ("$src" in container) {
|
|
437
|
+
generator = getGenerator(container);
|
|
448
438
|
care(container, function () {
|
|
449
439
|
var index = container.index();
|
|
450
440
|
container.clean();
|
package/coms/zimoli/menu.js
CHANGED
|
@@ -110,18 +110,6 @@ function main(elem, mode) {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
mode = mode ? mode.toLowerCase() : "horizonal";
|
|
113
|
-
var src = elem.getAttribute("src") || elem.getAttribute("ng-src") || elem.getAttribute("v-src");
|
|
114
|
-
if (src) {
|
|
115
|
-
var parsedSrc = render.parseRepeat(src);
|
|
116
|
-
if (!parsedSrc) {
|
|
117
|
-
elem.removeAttribute("src");
|
|
118
|
-
var generator = getGenerator(elem);
|
|
119
|
-
} else {
|
|
120
|
-
elem.removeAttribute("src");
|
|
121
|
-
var generator = getGenerator(elem, parsedSrc);
|
|
122
|
-
}
|
|
123
|
-
elem.setAttribute("ng-src", parsedSrc ? parsedSrc.srcName : src);
|
|
124
|
-
}
|
|
125
113
|
|
|
126
114
|
switch (mode) {
|
|
127
115
|
case "i":
|
|
@@ -130,6 +118,7 @@ function main(elem, mode) {
|
|
|
130
118
|
case "t":
|
|
131
119
|
case "tree":
|
|
132
120
|
if (elem) {
|
|
121
|
+
var generator = getGenerator(elem);
|
|
133
122
|
tree(elem, function (index, item) {
|
|
134
123
|
var e = generator(index, item);
|
|
135
124
|
if (!e || e.children.length) return e;
|
|
@@ -165,9 +154,10 @@ function main(elem, mode) {
|
|
|
165
154
|
var emit = function (item) {
|
|
166
155
|
active(elem, item, item.value);
|
|
167
156
|
};
|
|
168
|
-
if (src) {
|
|
157
|
+
if ("$src" in elem) {
|
|
158
|
+
getGenerator(elem);
|
|
169
159
|
care(elem, function (src) {
|
|
170
|
-
menuList(elem, getTreeFromData(src), emit,
|
|
160
|
+
menuList(elem, getTreeFromData(src), emit, direction);
|
|
171
161
|
});
|
|
172
162
|
} else {
|
|
173
163
|
var nodes = getArrayNodes(elem);
|
package/coms/zimoli/menuList.js
CHANGED
|
@@ -8,7 +8,7 @@ var release = function () {
|
|
|
8
8
|
var clear = function () {
|
|
9
9
|
clearTimeout(releaseTimer);
|
|
10
10
|
};
|
|
11
|
-
function main(page, items, active,
|
|
11
|
+
function main(page, items, active, direction = 'y') {
|
|
12
12
|
if (!isNode(page)) {
|
|
13
13
|
var page = div();
|
|
14
14
|
}
|
|
@@ -21,7 +21,7 @@ function main(page, items, active, generator, direction = 'y') {
|
|
|
21
21
|
if (!item.children || !item.children.length) return;
|
|
22
22
|
var clone = template.cloneNode();
|
|
23
23
|
clone.innerHTML = template.innerHTML;
|
|
24
|
-
var menu = main(clone, item.children, active
|
|
24
|
+
var menu = main(clone, item.children, active);
|
|
25
25
|
mounted_menus.push(menu);
|
|
26
26
|
|
|
27
27
|
page.active = menu;
|
|
@@ -46,7 +46,7 @@ function main(page, items, active, generator, direction = 'y') {
|
|
|
46
46
|
template.innerHTML = page.innerHTML;
|
|
47
47
|
page.tempalte = template;
|
|
48
48
|
}
|
|
49
|
-
if (!
|
|
49
|
+
if (!page.children.length || page.menutype === 1) {
|
|
50
50
|
page.innerHTML = menuList;
|
|
51
51
|
page.menutype = 1;
|
|
52
52
|
var hasIcon = function () {
|
|
@@ -82,6 +82,7 @@ function main(page, items, active, generator, direction = 'y') {
|
|
|
82
82
|
this.$scope.hasIcon = hasIcon();
|
|
83
83
|
});
|
|
84
84
|
} else {
|
|
85
|
+
var generator = getGenerator(page);
|
|
85
86
|
list(page, function (index) {
|
|
86
87
|
var elem = generator(index);
|
|
87
88
|
if (!elem) return;
|
package/coms/zimoli/on.js
CHANGED
|
@@ -144,6 +144,22 @@ function checkKeyNeed(eventtypes, e) {
|
|
|
144
144
|
}
|
|
145
145
|
return true;
|
|
146
146
|
}
|
|
147
|
+
function wrapHandler(h) {
|
|
148
|
+
if (h instanceof Function) {
|
|
149
|
+
return function () {
|
|
150
|
+
var res = h.apply(this, arguments);
|
|
151
|
+
if (res && isFunction(res.then)) {
|
|
152
|
+
this.setAttribute('pending', '');
|
|
153
|
+
var removePending = () => {
|
|
154
|
+
this.removeAttribute('pending');
|
|
155
|
+
};
|
|
156
|
+
res.then(removePending, removePending);
|
|
157
|
+
}
|
|
158
|
+
return res;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return h;
|
|
162
|
+
}
|
|
147
163
|
if (is_addEventListener_enabled) {
|
|
148
164
|
var on = function (k) {
|
|
149
165
|
var on_event_path = "on" + k;
|
|
@@ -151,6 +167,7 @@ if (is_addEventListener_enabled) {
|
|
|
151
167
|
var eventtypes = parseEventTypes(k);
|
|
152
168
|
k = k.replace(eventtypereg, '');
|
|
153
169
|
function addhandler(element, handler, firstmost) {
|
|
170
|
+
handler = wrapHandler(handler);
|
|
154
171
|
if (eventtypes.capture) firstmost = true;
|
|
155
172
|
if (k === changes_key) {
|
|
156
173
|
if (!element.needchanges) element.needchanges = 0;
|
|
@@ -190,6 +207,7 @@ if (is_addEventListener_enabled) {
|
|
|
190
207
|
|
|
191
208
|
if (handlersMap[on_event_path]) return handlersMap[on_event_path];
|
|
192
209
|
function addhandler(element, handler, firstmost = false) {
|
|
210
|
+
handler = wrapHandler(handler);
|
|
193
211
|
if (eventtypes.capture) {
|
|
194
212
|
console.warn("当前运行环境不支持事件capture");
|
|
195
213
|
firstmost = true;
|