efront 3.20.0 → 3.20.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/wow/root.js +1 -1
- package/coms/{zimoli → basic}/Item.js +0 -0
- package/coms/basic/Tree.js +154 -0
- package/coms/basic/cookie.js +16 -0
- package/coms/basic/cross_.js +49 -25
- package/coms/layer/glance.js +5 -4
- package/coms/pivot/left-header.html +1 -1
- package/coms/pivot/left-header.js +1 -0
- package/coms/reptile/submit.js +1 -0
- package/coms/zimoli/cloneVisible.js +1 -1
- package/coms/zimoli/data.js +10 -0
- package/coms/zimoli/drag.js +1 -0
- package/coms/zimoli/field.html +2 -2
- package/coms/zimoli/field.js +2 -1
- package/coms/zimoli/gallery.js +2 -16
- package/coms/zimoli/getTreeFromData.js +1 -53
- package/coms/zimoli/lattice.js +10 -13
- package/coms/zimoli/menu.js +6 -13
- package/coms/zimoli/menu.less +4 -4
- package/coms/zimoli/render.js +32 -26
- package/coms/zimoli/resize.js +5 -7
- package/coms/zimoli/resizingList.js +21 -3
- package/coms/zimoli/select.js +12 -0
- package/coms/zimoli/tree.js +5 -85
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/zimoli/menu.less
CHANGED
|
@@ -178,7 +178,7 @@ body:active & {
|
|
|
178
178
|
|
|
179
179
|
&.hover {
|
|
180
180
|
text-shadow: none;
|
|
181
|
-
color: #fff;
|
|
181
|
+
// color: #fff;
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
}
|
|
@@ -188,17 +188,17 @@ body:active & {
|
|
|
188
188
|
line-height: 28px;
|
|
189
189
|
|
|
190
190
|
&.open {
|
|
191
|
-
color: #fff;
|
|
192
191
|
background: #1e282c;
|
|
193
|
-
|
|
192
|
+
|
|
194
193
|
& s:after {
|
|
195
194
|
top: -9.2px;
|
|
196
195
|
}
|
|
197
196
|
}
|
|
198
|
-
|
|
197
|
+
|
|
199
198
|
&.checked,
|
|
200
199
|
&.actived,
|
|
201
200
|
&.selected {
|
|
201
|
+
color: #fff;
|
|
202
202
|
border-left-color: #3c8dbc;
|
|
203
203
|
}
|
|
204
204
|
|
package/coms/zimoli/render.js
CHANGED
|
@@ -451,37 +451,25 @@ var directives = {
|
|
|
451
451
|
oldValue = value;
|
|
452
452
|
this.setValue(value);
|
|
453
453
|
} : null;
|
|
454
|
+
var setter2 = function (key) {
|
|
455
|
+
var value = getter();
|
|
456
|
+
if (value === undefined) value = "";
|
|
457
|
+
if (deepEqual(oldValue, value)) return;
|
|
458
|
+
oldValue = value;
|
|
459
|
+
this[key] = value;
|
|
460
|
+
};
|
|
454
461
|
if (/^input$/i.test(this.tagName) && /^checkbox$/i.test(this.type) || /^checkbox$/i.test(this.tagName)) {
|
|
455
|
-
this.renders.push(setter ||
|
|
456
|
-
var value = getter();
|
|
457
|
-
if (value === undefined) value = "";
|
|
458
|
-
if (deepEqual(oldValue, value)) return;
|
|
459
|
-
oldValue = value;
|
|
460
|
-
this.checked = value;
|
|
461
|
-
});
|
|
462
|
+
this.renders.push(setter || setter2.bind(this, 'checked'));
|
|
462
463
|
var change = new Function(`${search[0]}with(this.$scope)${search[1]}=${getstr || "this.checked"}`).bind(this);
|
|
463
464
|
} else if (("value" in this || this.getValue instanceof Function) && this.setValue instanceof Function) {
|
|
464
|
-
this.renders.push(setter
|
|
465
|
-
var value = getter();
|
|
466
|
-
if (value === undefined) value = "";
|
|
467
|
-
if (deepEqual(oldValue, value)) return;
|
|
468
|
-
oldValue = value;
|
|
469
|
-
if ((this.getValue instanceof Function ? this.getValue() : this.value) !== value) this.setValue(value);
|
|
470
|
-
});
|
|
465
|
+
this.renders.push(setter);
|
|
471
466
|
var change = new Function(`${search[0]}with(this.$scope)${search[1]}=${getstr || "this.value"}`).bind(this);
|
|
472
467
|
} else if (/^(select|input|textarea)$/i.test(this.tagName) || "value" in this) {
|
|
473
|
-
this.renders.push(setter ||
|
|
474
|
-
var value = getter();
|
|
475
|
-
if (isEmpty(value)) value = "";
|
|
476
|
-
if (deepEqual(oldValue, value)) return;
|
|
477
|
-
oldValue = value;
|
|
478
|
-
if (this.value !== value) this.value = value;
|
|
479
|
-
});
|
|
468
|
+
this.renders.push(setter || setter2.bind(this, 'value'));
|
|
480
469
|
var change = new Function(`${search[0]}with(this.$scope)${search[1]}=${getstr || "this.value"}`).bind(this);
|
|
481
470
|
} else {
|
|
482
471
|
this.renders.push(setter || function () {
|
|
483
472
|
var value = getter();
|
|
484
|
-
|
|
485
473
|
if (value === undefined) value = "";
|
|
486
474
|
if (deepEqual(oldValue, value)) return;
|
|
487
475
|
oldValue = value;
|
|
@@ -489,8 +477,18 @@ var directives = {
|
|
|
489
477
|
});
|
|
490
478
|
var change = new Function("html", `${search[0]}with(this.$scope)${search[1]}=${getstr || "'value' in this?this.value:html(this)"}`).bind(this, html);
|
|
491
479
|
}
|
|
492
|
-
|
|
493
|
-
|
|
480
|
+
setter2 = null;
|
|
481
|
+
var onchange = function () {
|
|
482
|
+
change.call(this);
|
|
483
|
+
var value = getter();
|
|
484
|
+
if (value === oldValue) {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
oldValue = value;
|
|
488
|
+
change.call(this, value);
|
|
489
|
+
userChanged = true;
|
|
490
|
+
};
|
|
491
|
+
eventsBinders.forEach(on => on(this, onchange, true));
|
|
494
492
|
},
|
|
495
493
|
|
|
496
494
|
"class"(search) {
|
|
@@ -869,8 +867,16 @@ function render(element, scope, parentScopes, lazy = true) {
|
|
|
869
867
|
var digest = lazy(refresh, -{});
|
|
870
868
|
render.digest = render.apply = render.refresh = digest;
|
|
871
869
|
render.parseRepeat = parseRepeat;
|
|
872
|
-
var
|
|
873
|
-
|
|
870
|
+
var eventsBinders = "fullscreenchange,load,change,click,paste,resize,keydown,keypress,keyup,input,drop".split(",").map(k => on(k));
|
|
871
|
+
var userChanged = false;
|
|
872
|
+
eventsBinders.splice(0, 2).forEach(on => on(window, digest));
|
|
873
|
+
var changeListener = function () {
|
|
874
|
+
if (userChanged) {
|
|
875
|
+
userChanged = false;
|
|
876
|
+
digest();
|
|
877
|
+
}
|
|
878
|
+
};
|
|
879
|
+
eventsBinders.forEach(on => on(window, changeListener));
|
|
874
880
|
on("render")(window, digest);
|
|
875
881
|
var register = function (key, creater) {
|
|
876
882
|
key = key.replace(/\-(\w)/, (_, a) => a.toUpperCase()).replace(/^\w/, a => a.toLowerCase());
|
package/coms/zimoli/resize.js
CHANGED
|
@@ -124,11 +124,7 @@ var handle = {
|
|
|
124
124
|
css(dragging.rect, style);
|
|
125
125
|
move.call(rect, isFinite(style.left) ? style.left : rect.offsetLeft, isFinite(style.top) ? style.top : rect.offsetTop);
|
|
126
126
|
dispatch(dragging.rect, 'resize');
|
|
127
|
-
resizingList.
|
|
128
|
-
if (getTargetIn(dragging.rect, a)) {
|
|
129
|
-
dispatch(a, 'resize');
|
|
130
|
-
}
|
|
131
|
-
});
|
|
127
|
+
resizingList.hit(rect);
|
|
132
128
|
},
|
|
133
129
|
end(e) {
|
|
134
130
|
dragging = null;
|
|
@@ -151,14 +147,16 @@ resize.on = function (elem, dragHandle) {
|
|
|
151
147
|
var computed = getComputedStyle(elem);
|
|
152
148
|
var resizeh = function () {
|
|
153
149
|
var elem = this;
|
|
150
|
+
var resized = false;
|
|
154
151
|
if (elem.scrollWidth > elem.clientWidth) {
|
|
155
152
|
css(elem, { width: elem.offsetWidth });
|
|
156
|
-
|
|
153
|
+
resized = true;
|
|
157
154
|
}
|
|
158
155
|
if (elem.scrollHeight > elem.clientHeight) {
|
|
159
156
|
css(elem, { height: elem.offsetHeight });
|
|
160
|
-
|
|
157
|
+
resized = true;
|
|
161
158
|
}
|
|
159
|
+
if (resized) dispatch(elem, 'resize'), resizingList.hit(elem);
|
|
162
160
|
if (unbind && parseInt(computed.height) && parseInt(computed.width)) {
|
|
163
161
|
unbind();
|
|
164
162
|
unbind = null;
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
onresize(window, function () {
|
|
2
|
-
for (var
|
|
3
|
-
dispatch(
|
|
2
|
+
for (var r of resizingList) {
|
|
3
|
+
dispatch(r, 'resize');
|
|
4
4
|
}
|
|
5
5
|
});
|
|
6
|
-
var
|
|
6
|
+
var mount = function () {
|
|
7
|
+
resizingList.push(this);
|
|
8
|
+
dispatch(this, 'resize');
|
|
9
|
+
};
|
|
10
|
+
var unmount = function () {
|
|
11
|
+
removeFromList(resizingList, this);
|
|
12
|
+
};
|
|
13
|
+
var resizingList = [];
|
|
14
|
+
resizingList.set = function (e) {
|
|
15
|
+
on('append')(e, mount);
|
|
16
|
+
on("remove")(e, unmount);
|
|
17
|
+
};
|
|
18
|
+
resizingList.hit = function (e) {
|
|
19
|
+
for (var a of this) {
|
|
20
|
+
if (getTargetIn(e, a)) {
|
|
21
|
+
dispatch(a, 'resize');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
package/coms/zimoli/select.js
CHANGED
|
@@ -119,13 +119,25 @@ function select(target, list, removeOnSelect, direction) {
|
|
|
119
119
|
}
|
|
120
120
|
else if (target.$src) {
|
|
121
121
|
var generator = getGenerator(target);
|
|
122
|
+
var optionsMap = {};
|
|
122
123
|
var initList2 = function (src) {
|
|
124
|
+
src.forEach(s => {
|
|
125
|
+
optionsMap[s.key] = s;
|
|
126
|
+
});
|
|
123
127
|
list = selectList(generator, src, !!target.multiple, !!target.editable);
|
|
124
128
|
if (!target.multiple) {
|
|
125
129
|
onclick(list, onlistclick);
|
|
126
130
|
}
|
|
131
|
+
if (target.value) {
|
|
132
|
+
target.setValue(target.value);
|
|
133
|
+
}
|
|
127
134
|
bindEvent();
|
|
128
135
|
};
|
|
136
|
+
target.setValue = function (v) {
|
|
137
|
+
var s = optionsMap[v];
|
|
138
|
+
this.innerHTML = `<option selected value="${v}">${s ? s.name : ''}</option>`;
|
|
139
|
+
this.value = v;
|
|
140
|
+
};
|
|
129
141
|
care(target, initList2);
|
|
130
142
|
var initList = function () {
|
|
131
143
|
};
|
package/coms/zimoli/tree.js
CHANGED
|
@@ -1,31 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var root = [];
|
|
3
|
-
root.tab = -Infinity;
|
|
4
|
-
root.count = 0;
|
|
5
|
-
root.total = 0;
|
|
6
|
-
var path = [root];
|
|
7
|
-
for (var cx = 0, dx = array.length; cx < dx; cx++) {
|
|
8
|
-
var arg = array[cx];
|
|
9
|
-
var item = new Item(arg);
|
|
10
|
-
item.root = root;
|
|
11
|
-
for (var cy = path.length - 1; cy >= 0; cy--) {
|
|
12
|
-
var parentElement = path[cy];
|
|
13
|
-
if (parentElement.tab < arg.tab) {
|
|
14
|
-
item.parent = parentElement;
|
|
15
|
-
parentElement.push(item);
|
|
16
|
-
path.splice(cy + 1, path.length - cy - 1, item);
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
parentElement.parent.count += parentElement.count || parentElement.length || 1;
|
|
20
|
-
parentElement.parent.total += (parentElement.total || parentElement.length) + 1;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
while (path.length > 1) {
|
|
24
|
-
var item = path.pop();
|
|
25
|
-
path[path.length - 1].count += item.count || item.length || 1;
|
|
26
|
-
}
|
|
27
|
-
return root;
|
|
28
|
-
}
|
|
1
|
+
var getTreeFromArray = Tree.fromArray;
|
|
29
2
|
function buildCrack(com, set) {
|
|
30
3
|
var count = com.length;
|
|
31
4
|
for (var cx = 0, dx = com.length; cx < dx; cx++) {
|
|
@@ -54,55 +27,8 @@ function getCrackTarget(com) {
|
|
|
54
27
|
return com.target;
|
|
55
28
|
}
|
|
56
29
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var result = [];
|
|
60
|
-
var max_deep = 1;
|
|
61
|
-
loop: while (pathcx.length) {
|
|
62
|
-
var pathindex = pathcx.length - 1;
|
|
63
|
-
var cx = pathcx[pathindex];
|
|
64
|
-
var item = path[pathindex];
|
|
65
|
-
if (cx >= item.length) {
|
|
66
|
-
path.pop();
|
|
67
|
-
pathcx.pop();
|
|
68
|
-
continue loop;
|
|
69
|
-
}
|
|
70
|
-
var elem = item[cx];
|
|
71
|
-
elem.parent = item;
|
|
72
|
-
result.push(elem);
|
|
73
|
-
pathcx[pathindex] = ++cx;
|
|
74
|
-
if (!skipClosed || !elem.isClosed()) {
|
|
75
|
-
if (elem.length) {
|
|
76
|
-
path.push(elem);
|
|
77
|
-
pathcx.push(0);
|
|
78
|
-
if (pathcx.length > max_deep) {
|
|
79
|
-
max_deep = pathcx.length;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
result.deep = max_deep;
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
function appendTo(parent, datas) {
|
|
88
|
-
var tab = parent && parent.tab + 1 || 1;
|
|
89
|
-
var length = parent.length;
|
|
90
|
-
datas.map(function (data) {
|
|
91
|
-
if (isObject(data)) {
|
|
92
|
-
data.tab = tab;
|
|
93
|
-
var item = new Item(data);
|
|
94
|
-
item.parent = parent;
|
|
95
|
-
item.root = parent.root;
|
|
96
|
-
parent.push(item);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
var delta = parent.length - length;
|
|
101
|
-
while (parent) {
|
|
102
|
-
parent.count += delta;
|
|
103
|
-
parent = parent.parent;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
30
|
+
var getArrayFromTree = Tree.toArray;
|
|
31
|
+
var appendTo = Tree.appendTo;
|
|
106
32
|
|
|
107
33
|
function tree() {
|
|
108
34
|
var element, generator;
|
|
@@ -294,14 +220,8 @@ function tree() {
|
|
|
294
220
|
|
|
295
221
|
|
|
296
222
|
banner.setData = function (src) {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
root = getTreeFromArray(src);
|
|
300
|
-
} else {
|
|
301
|
-
root = getTreeFromData(src);
|
|
302
|
-
}
|
|
303
|
-
refresh();
|
|
304
|
-
}
|
|
223
|
+
root = new Tree(src);
|
|
224
|
+
refresh();
|
|
305
225
|
};
|
|
306
226
|
banner.addData = function (data, parent = root) {
|
|
307
227
|
appendTo(parent, data);
|