efront 3.22.3 → 3.22.6
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/auth/login.html +3 -0
- package/apps/pivot/auth/login.js +1 -1
- package/apps/pivot/auth/login.less +16 -3
- package/apps/pivot/log/boot.js +3 -2
- package/coms/kugou/dragview.js +1 -1
- package/coms/layer/glance.js +5 -3
- package/coms/zimoli/autodragchildren.js +91 -35
- package/coms/zimoli/autodragchildren_test.html +6 -2
- package/coms/zimoli/autodragchildren_test.js +17 -2
- package/coms/zimoli/autodragchildren_test.less +7 -2
- package/coms/zimoli/bindtouch.js +2 -2
- package/coms/zimoli/cloneVisible.js +4 -5
- package/coms/zimoli/drag.js +3 -4
- package/coms/zimoli/list.js +26 -20
- package/coms/zimoli/pagination.html +1 -1
- package/coms/zimoli/pagination.js +9 -24
- package/coms/zimoli/pagination.less +34 -19
- package/coms/zimoli/random_test.js +1 -1
- package/coms/zimoli/refilm_test.html +18 -16
- package/coms/zimoli/refilm_test.less +9 -2
- package/coms/zimoli/resize.js +3 -1
- package/coms/zimoli/slider.js +1 -1
- package/coms/zimoli/table.html +9 -1
- package/coms/zimoli/table.js +99 -47
- package/coms/zimoli/table.less +32 -17
- package/coms/zimoli/table_test.html +32 -0
- package/coms/zimoli/table_test.js +1 -8
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/apps/pivot/auth/login.js
CHANGED
|
@@ -4,11 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
[foot],
|
|
6
6
|
[head] {
|
|
7
|
-
&::before{
|
|
7
|
+
&::before {
|
|
8
8
|
display: none;
|
|
9
9
|
}
|
|
10
|
+
|
|
10
11
|
text-align: center;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
[message] {
|
|
15
|
+
padding: 2px 4px;
|
|
16
|
+
line-height: 1.2;
|
|
17
|
+
text-align: center;
|
|
18
|
+
color: #29c;
|
|
19
|
+
border-top: 1px solid #29c;
|
|
20
|
+
background: #29c1;
|
|
21
|
+
margin: 0 auto;
|
|
22
|
+
font-size: 12px;
|
|
14
23
|
}
|
|
24
|
+
|
|
25
|
+
.button {
|
|
26
|
+
padding: 0px 40px;
|
|
27
|
+
}
|
package/apps/pivot/log/boot.js
CHANGED
|
@@ -5,10 +5,11 @@ var fields = refilm`
|
|
|
5
5
|
var ip = e.data[e.field.key];
|
|
6
6
|
var m = /(\d+\.){3}\d+$/.exec(ip);
|
|
7
7
|
if (m) {
|
|
8
|
+
var l = document.createElement('label');
|
|
9
|
+
appendChild(e, l);
|
|
10
|
+
l.innerHTML = ' ';
|
|
8
11
|
var setAddress = function (a) {
|
|
9
|
-
var l = document.createElement('label');
|
|
10
12
|
l.innerText = a;
|
|
11
|
-
appendChild(e, l);
|
|
12
13
|
};
|
|
13
14
|
if (e.data.address) setAddress(e.data.address);
|
|
14
15
|
else e.data.address = data.from("iplocation", { ip: m[0] }, function (a) {
|
package/coms/kugou/dragview.js
CHANGED
|
@@ -12,7 +12,7 @@ var dragview = function (event) {
|
|
|
12
12
|
var deltaY = savedY - event.clientY;
|
|
13
13
|
|
|
14
14
|
if (!moving) {
|
|
15
|
-
if (
|
|
15
|
+
if (!onclick.preventClick) return;
|
|
16
16
|
if (deltaX > 0 && !freeOffset(page.style.left || 0) || Math.abs(deltaY) >= Math.abs(deltaX)) {
|
|
17
17
|
moving = -1;
|
|
18
18
|
} else {
|
package/coms/layer/glance.js
CHANGED
|
@@ -40,7 +40,7 @@ var dragview = function (dragview) {
|
|
|
40
40
|
var deltaY = savedY - event.clientY;
|
|
41
41
|
event.preventDefault();
|
|
42
42
|
if (!moving) {
|
|
43
|
-
if (
|
|
43
|
+
if (!onclick.preventClick) return;
|
|
44
44
|
if (Math.abs(deltaY) >= Math.abs(deltaX)) {
|
|
45
45
|
moving = -1;
|
|
46
46
|
} else {
|
|
@@ -139,10 +139,12 @@ function main(mainPath, historyName = "") {
|
|
|
139
139
|
}, 20);
|
|
140
140
|
}
|
|
141
141
|
};
|
|
142
|
-
|
|
142
|
+
var update = function (event) {
|
|
143
143
|
if (event.target !== this) return;
|
|
144
144
|
dispatch(window, 'resize');
|
|
145
|
-
}
|
|
145
|
+
};
|
|
146
|
+
on("transitionrun")(layer, update);
|
|
147
|
+
on("transitionend")(layer, update);
|
|
146
148
|
layer.closeLeft = function () {
|
|
147
149
|
closed = true;
|
|
148
150
|
bindClass();
|
|
@@ -21,33 +21,33 @@ var moveChildrenX = function (targetBox, previousElements, followedElements, mov
|
|
|
21
21
|
var dragPosition = getScreenPosition(dragTarget);
|
|
22
22
|
var dragPositionLeft = dragPosition.left;
|
|
23
23
|
var dragPositionRight = dragPosition.left + dragPosition.width;
|
|
24
|
-
previousElements.
|
|
24
|
+
previousElements.forEach(function (element) {
|
|
25
25
|
var elementPosition = getScreenPosition(element);
|
|
26
26
|
var elementCenter = elementPosition.left + elementPosition.width / 2;
|
|
27
27
|
var delta = elementCenter - (element.moved || 0);
|
|
28
|
-
if (delta +
|
|
28
|
+
if (delta + 2 <= dragPositionLeft) {
|
|
29
29
|
recover(element);
|
|
30
|
-
} else if (delta -
|
|
30
|
+
} else if (delta - 2 >= dragPositionLeft) {
|
|
31
31
|
moveMargin(element, dragPosition.width);
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
|
-
followedElements.
|
|
34
|
+
followedElements.forEach(function (element) {
|
|
35
35
|
var elementPosition = getScreenPosition(element);
|
|
36
36
|
var elementCenter = elementPosition.left + elementPosition.width / 2;
|
|
37
37
|
var delta = elementCenter - (element.moved || 0);
|
|
38
|
-
if (delta +
|
|
38
|
+
if (delta + 2 <= dragPositionRight) {
|
|
39
39
|
moveMargin(element, -dragPosition.width);
|
|
40
|
-
} else if (delta -
|
|
40
|
+
} else if (delta - 2 >= dragPositionRight) {
|
|
41
41
|
recover(element);
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
} else {
|
|
45
|
-
previousElements.
|
|
46
|
-
followedElements.
|
|
45
|
+
previousElements.forEach(recover);
|
|
46
|
+
followedElements.forEach(recover);
|
|
47
47
|
}
|
|
48
48
|
} else {
|
|
49
|
-
previousElements.
|
|
50
|
-
followedElements.
|
|
49
|
+
previousElements.forEach(recover);
|
|
50
|
+
followedElements.forEach(recover);
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
var scrollX = function (targetBox, moveChildren) {
|
|
@@ -65,6 +65,7 @@ var scrollX = function (targetBox, moveChildren) {
|
|
|
65
65
|
vscroll.X.call(targetBox, scrollDelta / 16, false);
|
|
66
66
|
moveChildren();
|
|
67
67
|
}
|
|
68
|
+
return scrollDelta;
|
|
68
69
|
};
|
|
69
70
|
var scrollY = arriswise(scrollX, arguments);
|
|
70
71
|
var moveMarginY = arriswise(moveMarginX, arguments);
|
|
@@ -84,14 +85,9 @@ var bindTarget = function (index, element) {
|
|
|
84
85
|
};
|
|
85
86
|
|
|
86
87
|
var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (dragbox && !getTargetIn(dragbox, event.target)) return;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
dragbox = this;
|
|
94
|
-
}
|
|
88
|
+
var boxfinder;
|
|
89
|
+
var isMovingSource = isMovingSource !== false;
|
|
90
|
+
if (isMovingSource === false) boxfinder = matcher, matcher = null;
|
|
95
91
|
var that = this;
|
|
96
92
|
|
|
97
93
|
var draggingSourceOpacity = isMovingSource !== false ? 0 : 1;
|
|
@@ -100,7 +96,7 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
100
96
|
moveMargin(element, 0);
|
|
101
97
|
};
|
|
102
98
|
var cloneCell = function (element) {
|
|
103
|
-
var targets = getTargetIn(matcher, element, false);
|
|
99
|
+
var targets = matcher ? getTargetIn(matcher, element, false) : element;
|
|
104
100
|
if (isArray(targets)) {
|
|
105
101
|
var extra = targets.slice(1);
|
|
106
102
|
targets = cloneVisible(targets[0]);
|
|
@@ -131,6 +127,7 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
131
127
|
};
|
|
132
128
|
var getBoundingClientRect = function () { return getScreenPosition(this.target) }
|
|
133
129
|
var bindExtra = function (element) {
|
|
130
|
+
if (!matcher) return element;
|
|
134
131
|
var targets = getTargetIn(matcher, element, false);
|
|
135
132
|
if (isArray(targets)) {
|
|
136
133
|
var [target] = targets;
|
|
@@ -150,11 +147,10 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
150
147
|
}
|
|
151
148
|
var targetBox, saved_opacity, saved_filter, moveMargin, moveChildren;
|
|
152
149
|
var previousElements, followedElements, rebuildTargets, scroll;
|
|
153
|
-
var that = this;
|
|
154
150
|
var draginit = function () {
|
|
155
151
|
that.setAttribute('dragchildren', '');
|
|
156
152
|
if (targetBox) addClass(targetBox, 'dropping');
|
|
157
|
-
if (
|
|
153
|
+
if (isMovingSource !== false) {
|
|
158
154
|
targetBox = targetChild.parentNode;
|
|
159
155
|
previousElements = getPreviousElementSiblings(targetChild);
|
|
160
156
|
followedElements = getFollowedElementSiblings(targetChild);
|
|
@@ -168,7 +164,7 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
168
164
|
followedElements = [];
|
|
169
165
|
moveChildren = () => { };
|
|
170
166
|
rebuildTargets = function () {
|
|
171
|
-
var temp =
|
|
167
|
+
var temp = boxfinder(drag.target);
|
|
172
168
|
if (temp === targetBox) return;
|
|
173
169
|
if (previousElements) previousElements.map(recover);
|
|
174
170
|
if (followedElements) followedElements.map(recover);
|
|
@@ -186,16 +182,21 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
186
182
|
previousElements = [].slice.call(targetBox.children, 0).reverse();
|
|
187
183
|
followedElements = [];
|
|
188
184
|
[moveMargin, moveChildren, scroll] = getMoveFuncs(previousElements[0]);
|
|
189
|
-
moveChildren = moveChildren.bind(null,
|
|
185
|
+
moveChildren = moveChildren.bind(null, targetBox, previousElements, followedElements, moveMargin, recover);
|
|
190
186
|
};
|
|
191
187
|
}
|
|
192
188
|
};
|
|
193
189
|
var dragfire = function () {
|
|
190
|
+
if (!targetBox) return;
|
|
194
191
|
that.removeAttribute('dragchildren');
|
|
195
192
|
removeClass(targetBox, "dropping");
|
|
196
193
|
var dst, appendSibling, delta;
|
|
197
|
-
var
|
|
198
|
-
|
|
194
|
+
var k0 = -1;
|
|
195
|
+
for (var k0 in previousElements) break;
|
|
196
|
+
if (previousElements.length) var src = previousElements.length - k0;
|
|
197
|
+
else var src = 0;
|
|
198
|
+
if (k0 >= 0 && previousElements[k0].moved) for (var k in previousElements) {
|
|
199
|
+
var cx = +k + 1;
|
|
199
200
|
if (!previousElements[cx]) {
|
|
200
201
|
dst = 0;
|
|
201
202
|
delta = 0;
|
|
@@ -207,14 +208,16 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
207
208
|
break;
|
|
208
209
|
}
|
|
209
210
|
}
|
|
210
|
-
|
|
211
|
-
|
|
211
|
+
var k0 = -1;
|
|
212
|
+
for (var k0 in followedElements) break;
|
|
213
|
+
if (k0 >= 0 && followedElements[k0].moved) for (var k in followedElements) {
|
|
214
|
+
var cx = +k + 1;
|
|
212
215
|
if (!followedElements[cx]) {
|
|
213
|
-
dst =
|
|
216
|
+
dst = targetBox.children.length - 1;
|
|
214
217
|
delta = 0;
|
|
215
218
|
appendSibling = appendChild.after;
|
|
216
219
|
} else if (!followedElements[cx].moved) {
|
|
217
|
-
dst =
|
|
220
|
+
dst = targetBox.children.length - followedElements.length + cx - 1;
|
|
218
221
|
delta = 1;
|
|
219
222
|
appendSibling = appendChild.before;
|
|
220
223
|
break;
|
|
@@ -224,7 +227,8 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
224
227
|
var children = targetBox.children;
|
|
225
228
|
var srcElement = children[src];
|
|
226
229
|
var dstElement = children[dst + delta];
|
|
227
|
-
|
|
230
|
+
console.log(targetChild, src)
|
|
231
|
+
src = bindTarget(src, isMovingSource ? targetChild : srcElement);
|
|
228
232
|
dst = bindTarget(dst, dstElement);
|
|
229
233
|
var needFire = !isFunction(move) || move(src, dst, dst + delta, appendSibling, targetBox) !== false;
|
|
230
234
|
if (needFire && srcElement === children[src] && dstElement === children[dst + delta] && srcElement && dstElement) appendSibling(dstElement, srcElement);
|
|
@@ -244,8 +248,60 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
244
248
|
var offmousup = on("mouseup")(window, offall);
|
|
245
249
|
var autoScroll = function () {
|
|
246
250
|
if (autoScroll.ing) return;
|
|
247
|
-
if (scroll)
|
|
248
|
-
|
|
251
|
+
if (scroll) autoScroll.ing = setInterval(function () {
|
|
252
|
+
var delta = scroll(targetBox, moveChildren);
|
|
253
|
+
if (isMovingSource === false) { }
|
|
254
|
+
else if (delta < 0) {
|
|
255
|
+
var p = null;
|
|
256
|
+
for (var k in previousElements) {
|
|
257
|
+
if (!previousElements[k].parentNode) {
|
|
258
|
+
delete previousElements[k];
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
if (previousElements[+k + 1] && previousElements[k].previousElementSibling !== previousElements[+k + 1]) {
|
|
262
|
+
previousElements.splice(+k + 1, previousElements.length - k - 1);
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
var k = 0;
|
|
267
|
+
for (var k in followedElements) {
|
|
268
|
+
if (followedElements[k].parentNode) break;
|
|
269
|
+
delete followedElements[k];
|
|
270
|
+
}
|
|
271
|
+
var p = previousElements[previousElements.length - 1] || followedElements[k];
|
|
272
|
+
if (p && p.previousElementSibling) {
|
|
273
|
+
k -= 1;
|
|
274
|
+
if (k >= 0) followedElements[k] = p.previousElementSibling;
|
|
275
|
+
else if (p === followedElements[0]) setOpacity(p.previousElementSibling, draggingSourceOpacity);
|
|
276
|
+
else previousElements.push(p.previousElementSibling);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else if (delta > 0) {
|
|
280
|
+
for (var k in followedElements) {
|
|
281
|
+
if (!followedElements[k].parentNode) {
|
|
282
|
+
delete followedElements[k];
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (followedElements[+k + 1] && followedElements[k].nextElementSibling !== followedElements[+k + 1]) {
|
|
286
|
+
followedElements.splice(+k + 1, followedElements.length - k - 1);
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
var k = 0;
|
|
292
|
+
for (var k in previousElements) {
|
|
293
|
+
if (previousElements[k].parentNode) break;
|
|
294
|
+
delete previousElements[k];
|
|
295
|
+
}
|
|
296
|
+
var f = followedElements[followedElements.length - 1] || previousElements[k];
|
|
297
|
+
if (f && f.nextElementSibling) {
|
|
298
|
+
k -= 1;
|
|
299
|
+
if (k >= 0) previousElements[k] = f.nextElementSibling;
|
|
300
|
+
else if (f === previousElements[0]) setOpacity(f.nextElementSibling, draggingSourceOpacity);
|
|
301
|
+
else followedElements.push(f.nextElementSibling);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}, 16);
|
|
249
305
|
};
|
|
250
306
|
var cancelScroll = function () {
|
|
251
307
|
clearInterval(autoScroll.ing);
|
|
@@ -321,7 +377,7 @@ var hookEvent = function (matcher, move, event) {
|
|
|
321
377
|
hooka.call(this, matcher, move, event, targetChild);
|
|
322
378
|
};
|
|
323
379
|
function addhook() {
|
|
324
|
-
var mousedownEvent, targetElement, callback,
|
|
380
|
+
var mousedownEvent, targetElement, callback, boxfinder, dropid, allowdrops;
|
|
325
381
|
[].forEach.call(arguments, function (arg) {
|
|
326
382
|
switch (typeof arg) {
|
|
327
383
|
case "string":
|
|
@@ -331,7 +387,7 @@ function addhook() {
|
|
|
331
387
|
if (!callback) {
|
|
332
388
|
callback = arg;
|
|
333
389
|
} else {
|
|
334
|
-
|
|
390
|
+
boxfinder = callback;
|
|
335
391
|
callback = arg;
|
|
336
392
|
}
|
|
337
393
|
break;
|
|
@@ -354,7 +410,7 @@ function addhook() {
|
|
|
354
410
|
if (!mousedownEvent) return;
|
|
355
411
|
var target = targetElement || mousedownEvent.currentTarget;
|
|
356
412
|
hooka.call(targetElement, function (target) {
|
|
357
|
-
var res =
|
|
413
|
+
var res = Array.prototype.filter.call(allowdrops || (boxfinder ? boxfinder(target) : document.querySelectorAll("[allowdrop]")), function (child) {
|
|
358
414
|
return target && overlap(child, target);
|
|
359
415
|
}).filter(e => {
|
|
360
416
|
var a = e.getAttribute("allowdrop");
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
</tr>
|
|
75
75
|
</tbody>
|
|
76
76
|
</table>
|
|
77
|
-
<list>
|
|
77
|
+
<list cell-list>
|
|
78
78
|
<div> cell_1</div>
|
|
79
79
|
<div> cell_2</div>
|
|
80
80
|
<div> cell_3</div>
|
|
@@ -88,4 +88,8 @@
|
|
|
88
88
|
<div> cell_b</div>
|
|
89
89
|
<div> cell_c</div>
|
|
90
90
|
<div> cell_d</div>
|
|
91
|
-
</list>
|
|
91
|
+
</list>
|
|
92
|
+
|
|
93
|
+
<xlist -src="a in xsrc">
|
|
94
|
+
<div> list-item <span -bind="a"></span></div>
|
|
95
|
+
</xlist>
|
|
@@ -3,7 +3,22 @@ function main() {
|
|
|
3
3
|
page.innerHTML = autodragchildren_test;
|
|
4
4
|
var body = page.querySelector("tbody");
|
|
5
5
|
autodragchildren(body, body);
|
|
6
|
-
var
|
|
7
|
-
autodragchildren(
|
|
6
|
+
var cellList = page.querySelector("list");
|
|
7
|
+
autodragchildren(cellList, cellList);
|
|
8
|
+
var xList = page.querySelector("xlist");
|
|
9
|
+
render(xList, {
|
|
10
|
+
xlist: list,
|
|
11
|
+
xsrc: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
|
|
12
|
+
})
|
|
13
|
+
autodragchildren(xList, xList, function (src, dst) {
|
|
14
|
+
var xsrc = xList.$scope.xsrc;
|
|
15
|
+
var src = src.target.index || 0;
|
|
16
|
+
var dst = xList.children[dst].index || 0;
|
|
17
|
+
var [e] = xsrc.splice(src, 1);
|
|
18
|
+
xsrc.splice(dst, 0, e);
|
|
19
|
+
render.refresh();
|
|
20
|
+
return false;
|
|
21
|
+
});
|
|
22
|
+
|
|
8
23
|
return page;
|
|
9
24
|
}
|
package/coms/zimoli/bindtouch.js
CHANGED
|
@@ -22,7 +22,7 @@ function bindtouch(target, bindder, lockDirection = false) {
|
|
|
22
22
|
var deltay = clientY - saved_y;
|
|
23
23
|
if (lockDirection) {
|
|
24
24
|
if (!direction) {
|
|
25
|
-
if (
|
|
25
|
+
if (!onclick.preventClick) return;
|
|
26
26
|
if (target.onmovestart) {
|
|
27
27
|
target.onmovestart();
|
|
28
28
|
}
|
|
@@ -31,7 +31,7 @@ function bindtouch(target, bindder, lockDirection = false) {
|
|
|
31
31
|
} else if (abs(deltax) <= .618 * abs(deltay)) {
|
|
32
32
|
direction = "y";
|
|
33
33
|
} else {
|
|
34
|
-
|
|
34
|
+
direction = 'o';
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
if (direction !== lockDirection)
|
|
@@ -61,7 +61,7 @@ var cloneChildren = function (td, copy, clone) {
|
|
|
61
61
|
});
|
|
62
62
|
break;
|
|
63
63
|
default:
|
|
64
|
-
var children =
|
|
64
|
+
var children = Array.prototype.slice.call(td.childNodes, 0).filter(isMaybeVisible);
|
|
65
65
|
children.sort((a, b) => {
|
|
66
66
|
return getZIndex(a) - getZIndex(b);
|
|
67
67
|
}).forEach(clone);
|
|
@@ -130,21 +130,20 @@ var cloneVisible = function (td) {
|
|
|
130
130
|
var _left, _top, _right, _bottom;
|
|
131
131
|
var span = document.createElement("x");
|
|
132
132
|
var hasSvg = false;
|
|
133
|
-
|
|
134
133
|
var clone = function (td) {
|
|
135
134
|
if (!isMaybeVisible(td)) return;
|
|
136
135
|
if (td.nodeType === 3) {
|
|
137
136
|
var copy = span.cloneNode();
|
|
138
137
|
copy.appendChild(td.cloneNode());
|
|
139
138
|
var parentNode = td.parentNode;
|
|
139
|
+
parentNode.insertBefore(copy, td);
|
|
140
140
|
parentNode.removeChild(td);
|
|
141
|
-
parentNode.appendChild(copy);
|
|
142
141
|
var { left, top, width, height } = getScreenPosition(copy);
|
|
143
142
|
var style = getComputedStyle(copy);
|
|
144
143
|
copyStyle(style, copy.style, cloneProperties);
|
|
145
144
|
copy.style.lineHeight = height + "px";
|
|
145
|
+
parentNode.insertBefore(td, copy);
|
|
146
146
|
parentNode.removeChild(copy);
|
|
147
|
-
parentNode.appendChild(td);
|
|
148
147
|
result.appendChild(copy);
|
|
149
148
|
} else if (td.nodeType !== 1) return;
|
|
150
149
|
|
|
@@ -187,7 +186,7 @@ var cloneVisible = function (td) {
|
|
|
187
186
|
width: _right - _left + "px",
|
|
188
187
|
height: _bottom - _top + "px"
|
|
189
188
|
});
|
|
190
|
-
|
|
189
|
+
Array.prototype.map.call(result.children, function (element) {
|
|
191
190
|
var { left, top, width, height } = element.tempstyle;
|
|
192
191
|
extend(element.style, {
|
|
193
192
|
position: "absolute",
|
package/coms/zimoli/drag.js
CHANGED
|
@@ -33,7 +33,7 @@ var setZIndex = function () {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
36
|
-
if (/^(?:select|input|textarea)$/i.test(initialEvent.target.tagName) || getTargetIn(a => a.nodrag || a.hasAttribute('nodrag')
|
|
36
|
+
if (/^(?:select|input|textarea)$/i.test(initialEvent.target.tagName) || getTargetIn(a => a.nodrag || a.hasAttribute('nodrag'), initialEvent.target)) return;
|
|
37
37
|
if (target.dragable === false) return;
|
|
38
38
|
initialEvent.preventDefault();
|
|
39
39
|
if (isArray(target)) {
|
|
@@ -57,11 +57,9 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
57
57
|
var mousemove = function (event) {
|
|
58
58
|
if (event.moveLocked) return;
|
|
59
59
|
if (/resize/i.test(getComputedStyle(document.body).cursor)) return;
|
|
60
|
-
event.moveLocked = true;
|
|
61
60
|
if (!saved_delta.ing) {
|
|
62
|
-
var abs = Math.abs;
|
|
63
61
|
var [target_left, target_top] = getOffset(target);
|
|
64
|
-
if (
|
|
62
|
+
if (!onclick.preventClick) return;
|
|
65
63
|
saved_delta.ing = true;
|
|
66
64
|
drag.target = target;
|
|
67
65
|
dispatch("dragstart", target);
|
|
@@ -82,6 +80,7 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
82
80
|
saved_delta.x += clone_left - target_left;
|
|
83
81
|
saved_delta.y += clone_top - target_top;
|
|
84
82
|
}
|
|
83
|
+
event.moveLocked = true;
|
|
85
84
|
drag.target = clone;
|
|
86
85
|
var offsetLeft = saved_delta.x + event.screenX;
|
|
87
86
|
var offsetTop = saved_delta.y + event.screenY;
|
package/coms/zimoli/list.js
CHANGED
|
@@ -46,21 +46,22 @@ function ylist(container, generator, $Y) {
|
|
|
46
46
|
var children = list.childNodes;
|
|
47
47
|
for (var cx = 0, dx = children.length; cx < dx; cx++) {
|
|
48
48
|
var child = children[cx];
|
|
49
|
-
if (!(isFinite(child.index) || nodeType === 2 && child.offsetHeight)) continue;
|
|
50
|
-
child = getNodeTarget(child);
|
|
49
|
+
if (!(isFinite(child.index) && (nodeType === 0 || child.index !== null) || nodeType === 2 && child.offsetHeight)) continue;
|
|
50
|
+
if (nodeType === 1) child = getNodeTarget(child);
|
|
51
51
|
return child;
|
|
52
52
|
}
|
|
53
53
|
return null;
|
|
54
54
|
};
|
|
55
|
-
var getFirstVisibleElement = function (deltaY
|
|
55
|
+
var getFirstVisibleElement = function (deltaY) {
|
|
56
56
|
var children = list.childNodes;
|
|
57
57
|
var { scrollTop } = list;
|
|
58
|
-
|
|
58
|
+
deltaY = +deltaY;
|
|
59
|
+
if (deltaY) scrollTop += deltaY;
|
|
59
60
|
for (var cx = 0, dx = children.length; cx < dx; cx++) {
|
|
60
61
|
var child = children[cx];
|
|
61
|
-
if (!isFinite(child.index)) continue;
|
|
62
|
-
|
|
63
|
-
if (
|
|
62
|
+
if (!isFinite(child.index) || child.index === null) continue;
|
|
63
|
+
var c = getNodeTarget(child);
|
|
64
|
+
if (c.offsetTop + c.offsetHeight > scrollTop) return deltaY === 0 ? child : c;
|
|
64
65
|
}
|
|
65
66
|
return null;
|
|
66
67
|
};
|
|
@@ -86,16 +87,17 @@ function ylist(container, generator, $Y) {
|
|
|
86
87
|
return scrollBy(deltab < deltat ? deltat : deltab);
|
|
87
88
|
}
|
|
88
89
|
};
|
|
89
|
-
var getLastVisibleElement = function (deltaY
|
|
90
|
+
var getLastVisibleElement = function (deltaY) {
|
|
90
91
|
var { scrollTop } = list;
|
|
91
|
-
|
|
92
|
+
deltaY = +deltaY;
|
|
93
|
+
if (deltaY) scrollTop += deltaY;
|
|
92
94
|
var children = list.children;
|
|
93
95
|
for (var cx = children.length - 1; cx >= 0; cx--) {
|
|
94
96
|
var child = children[cx];
|
|
95
97
|
if (!isFinite(child.index)) continue;
|
|
96
|
-
|
|
97
|
-
if (
|
|
98
|
-
return child;
|
|
98
|
+
var c = getNodeTarget(child);
|
|
99
|
+
if (c.offsetTop < scrollTop + list.clientHeight) {
|
|
100
|
+
return deltaY === 0 ? child : c;
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
return null;
|
|
@@ -106,7 +108,7 @@ function ylist(container, generator, $Y) {
|
|
|
106
108
|
var map = {};
|
|
107
109
|
for (var cx = 0, dx = children.length; cx < dx; cx++) {
|
|
108
110
|
var child = children[cx];
|
|
109
|
-
if (isFinite(child.index)) {
|
|
111
|
+
if (isFinite(child.index) && child.index !== null) {
|
|
110
112
|
map[child.index] = child;
|
|
111
113
|
}
|
|
112
114
|
}
|
|
@@ -133,7 +135,8 @@ function ylist(container, generator, $Y) {
|
|
|
133
135
|
if (itemIndex < 0) index--;
|
|
134
136
|
var ratio = itemIndex - index || 0;
|
|
135
137
|
var childrenMap = getChildrenMap();
|
|
136
|
-
var offsetBottom = 0, ratioTop = 0, offset = index, last_item = getFirstElement() || null, last_index = last_item && last_item.index || offset;
|
|
138
|
+
var offsetBottom = 0, ratioTop = 0, offset = index, last_item = getFirstElement(0) || null, last_index = last_item && last_item.index || offset;
|
|
139
|
+
if (last_item) last_item = getNodeTarget(last_item);
|
|
137
140
|
var count = 0, delta = 1, bottom_item, offsett = offset, offsetb = offset, top_item;
|
|
138
141
|
var indexed_item;
|
|
139
142
|
while (offsetBottom - ratioTop <= list.clientHeight + cache_height || indexed_item && top_item && indexed_item.offsetTop - top_item.offsetTop < cache_height) {
|
|
@@ -187,9 +190,9 @@ function ylist(container, generator, $Y) {
|
|
|
187
190
|
var runbuild = lazy(function () {
|
|
188
191
|
patchBottom();
|
|
189
192
|
patchTop();
|
|
190
|
-
var firstElement = getFirstElement(
|
|
193
|
+
var firstElement = getFirstElement(), y;
|
|
191
194
|
if (firstElement) {
|
|
192
|
-
y = firstElement.index * firstElement.offsetHeight;
|
|
195
|
+
y = firstElement.index * getNodeTarget(firstElement).offsetHeight;
|
|
193
196
|
} else {
|
|
194
197
|
y = 0;
|
|
195
198
|
}
|
|
@@ -208,9 +211,10 @@ function ylist(container, generator, $Y) {
|
|
|
208
211
|
list.insertBefore(topinsert, list.firstChild);
|
|
209
212
|
//计算当前高度
|
|
210
213
|
var currentY = function () {
|
|
211
|
-
var firstElement = getFirstElement(
|
|
214
|
+
var firstElement = getFirstElement();
|
|
212
215
|
if (!firstElement) return;
|
|
213
216
|
var index = firstElement.index;
|
|
217
|
+
firstElement = getNodeTarget(firstElement);
|
|
214
218
|
if (index < 0) index = index - index | 0;
|
|
215
219
|
return index * firstElement.offsetHeight + list.scrollTop;
|
|
216
220
|
};
|
|
@@ -298,7 +302,7 @@ function ylist(container, generator, $Y) {
|
|
|
298
302
|
var cache_height = list.offsetHeight;
|
|
299
303
|
|
|
300
304
|
var childrenMap = getChildrenMap();
|
|
301
|
-
var first_element, flag_element = first_element = getFirstElement(
|
|
305
|
+
var first_element, flag_element = first_element = getFirstElement();
|
|
302
306
|
if (!flag_element || !isFinite(flag_element.offsetTop)) return;
|
|
303
307
|
var offset = flag_element.index || 0;
|
|
304
308
|
var offsetTop = flag_element.offsetTop;
|
|
@@ -421,15 +425,17 @@ function ylist(container, generator, $Y) {
|
|
|
421
425
|
list.scrollBy = scrollBy;
|
|
422
426
|
list.index = function (update) {
|
|
423
427
|
if (update === false) return saved_itemIndex;
|
|
424
|
-
var firstVisible = getFirstVisibleElement();
|
|
428
|
+
var firstVisible = getFirstVisibleElement(0);
|
|
425
429
|
if (!firstVisible) return saved_itemIndex;
|
|
426
430
|
var index = firstVisible.index;
|
|
431
|
+
firstVisible = getNodeTarget(firstVisible);
|
|
432
|
+
if (!firstVisible) return saved_itemIndex;
|
|
427
433
|
var firstElement = getFirstElement(1);
|
|
428
434
|
var scrolled = (list.scrollTop - firstVisible.offsetTop + firstElement.offsetTop + .5 | 0) / firstVisible.offsetHeight;
|
|
429
435
|
return index + scrolled;
|
|
430
436
|
};
|
|
431
437
|
list.topIndex = function () {
|
|
432
|
-
var element = getFirstElement(
|
|
438
|
+
var element = getFirstElement();
|
|
433
439
|
return element ? element.index : 0;
|
|
434
440
|
};
|
|
435
441
|
list.getIndexedElement = getIndexedElement;
|