efront 3.12.6 → 3.13.4

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.
Files changed (61) hide show
  1. package/apps/pivot/api.yml +8 -0
  2. package/apps/pivot/home/welcome.html +1 -1
  3. package/apps/pivot/home/welcome.js +6 -9
  4. package/apps/pivot/log/boot.html +2 -0
  5. package/apps/pivot/log/boot.js +39 -0
  6. package/apps/pivot/log/boot.less +11 -0
  7. package/apps/pivot/log/count.html +5 -0
  8. package/apps/pivot/log/count.js +22 -0
  9. package/apps/pivot/log/count.less +16 -0
  10. package/apps/pivot/main.js +9 -10
  11. package/apps/pivot/menu.yml +8 -2
  12. package/apps/pivot/proxy/edit.js +1 -0
  13. package/apps/pivot/proxy/list.js +12 -0
  14. package/apps/pivot/share/list.less +0 -4
  15. package/apps/pivot/user/edit.js +1 -0
  16. package/apps/pivot/user/list.js +4 -0
  17. package/apps/pivot/user/tag/edit.js +1 -0
  18. package/apps/pivot/user/tag/list.js +3 -0
  19. package/coms/basic/cross_.js +8 -1
  20. package/coms/basic/encodePack.js +2 -9
  21. package/coms/basic/parseURL_test.js +2 -0
  22. package/coms/basic/parseYML.js +1 -1
  23. package/coms/basic/renderExpress.js +1 -1
  24. package/coms/frame/route.js +4 -0
  25. package/coms/pivot/plist.js +1 -1
  26. package/coms/zimoli/AudioContext_test.html +1 -1
  27. package/coms/zimoli/AudioContext_test.js +3 -3
  28. package/coms/zimoli/bind.js +4 -2
  29. package/coms/zimoli/cloneVisible.js +9 -2
  30. package/coms/zimoli/cross.js +2 -3
  31. package/coms/zimoli/data.js +22 -4
  32. package/coms/zimoli/drag.js +3 -2
  33. package/coms/zimoli/field.html +15 -10
  34. package/coms/zimoli/menu.js +33 -13
  35. package/coms/zimoli/menu.less +31 -9
  36. package/coms/zimoli/menuItem.js +1 -1
  37. package/coms/zimoli/menuList.html +5 -3
  38. package/coms/zimoli/menuList.js +63 -28
  39. package/coms/zimoli/menuList.less +5 -0
  40. package/coms/zimoli/model.js +22 -1
  41. package/coms/zimoli/on.js +5 -3
  42. package/coms/zimoli/picture.js +30 -335
  43. package/coms/zimoli/picture_.js +356 -0
  44. package/coms/zimoli/prompt.js +3 -1
  45. package/coms/zimoli/render.js +22 -10
  46. package/coms/zimoli/renderDefaults.js +1 -0
  47. package/coms/zimoli/search.js +5 -4
  48. package/coms/zimoli/select.js +7 -3
  49. package/coms/zimoli/selectList.js +7 -7
  50. package/coms/zimoli/selectListEdit.js +1 -1
  51. package/coms/zimoli/success.js +4 -0
  52. package/coms/zimoli/success.less +13 -0
  53. package/coms/zimoli/table.html +6 -8
  54. package/coms/zimoli/table.js +25 -2
  55. package/coms/zimoli/table.less +24 -4
  56. package/coms/zimoli/view.less +4 -0
  57. package/package.json +1 -1
  58. package/public/efront.js +1 -1
  59. package/apps/pivot/home/short.html +0 -1
  60. package/apps/pivot/home/short.js +0 -5
  61. package/apps/pivot/home/short.less +0 -1
@@ -1,21 +1,5 @@
1
- var mountedPictures = [];
2
- on("resize")(window, function () {
3
- mountedPictures.forEach(a => a.update());
4
- });
1
+
5
2
  var coordIn = move.coordIn;
6
- var trimCoord = move.trimCoord;
7
- var getstation = function (n, s) {
8
- var scale = Math.pow(10, Math.round(Math.log(n) / Math.log(10)));
9
- var step;
10
- if (n / scale < 1) {
11
- step = s ? .01 : .05;
12
- } else {
13
- step = s ? .05 : .1;
14
- }
15
- step = step * scale;
16
- n = Math.round(n / step) * step;
17
- return n;
18
- };
19
3
  var _createImage = function (url, callback) {
20
4
  var imgpic;
21
5
  if (url instanceof Image) {
@@ -38,17 +22,11 @@ var _createImage = function (url, callback) {
38
22
  return imgpic;
39
23
  };
40
24
  var create = function (url, key) {
41
-
42
- var __css = function (a) {
43
- css.apply(a, arguments);
44
- if (imgpic) dispatch(imgpic, 'scaled');
45
- dispatch(p, 'scaled');
46
- };
47
25
  if (!url) return;
48
- var image = div();
26
+
27
+ var image = picture_();
49
28
  image.url = url;
50
29
  if (广告 && !广告.parentNode) appendChild(image, 广告);
51
-
52
30
  if (isObject(url)) {
53
31
  if (key) {
54
32
  url = seek(url, key);
@@ -56,56 +34,34 @@ var create = function (url, key) {
56
34
  }
57
35
  var p = this;
58
36
  var createImage = p.createImage || _createImage;
59
- var image_width, image_height;
60
- var scaled, x, y, min_scale, loaded_scale, locked_scale, click_scale, loaded_x, loaded_y;
61
- var origin_width, origin_height;
62
- var max_scale = 10 * devicePixelRatio;
63
37
 
64
- var setInitParams = function () {
38
+ image.shape = function (x, y, scaled, rotate) {
39
+ var style = get_style(x, y, scaled, rotate);
40
+ css(imgpic, style);
41
+ if (imgpic) dispatch(imgpic, 'scaled');
42
+ };
43
+ image.park = function (x, y, scaled, rotate) {
44
+ var style = get_style(x, y, scaled, rotate);
45
+ var a = transition(imgpic, style, true);
46
+ setTimeout(function () {
47
+ // set_unlock();
48
+ // image.locked = false;
49
+ }, a || 0);
50
+
51
+ };
52
+ var init = function () {
65
53
  if (!imgpic) return;
66
54
  if (!image.clientHeight || !image.clientWidth) {
67
55
  image.width = imgpic.width;
68
56
  image.height = imgpic.height;
69
57
  return;
70
58
  }
71
- image_width = image.width / devicePixelRatio;
72
- image_height = image.height / devicePixelRatio;
73
- origin_width = image.clientWidth;
74
- origin_height = image.clientHeight;
75
- origin_rotate = 0;
76
59
  if (p.current === image) {
77
60
  p.width = image.width;
78
61
  p.height = image.height;
79
62
  }
80
- locked_scale = loaded_scale = Math.min(image.clientHeight / image_height, image.clientWidth / image_width);
81
- if (loaded_scale >= 0.9) {
82
- if (loaded_scale < 1.2) {
83
- click_scale = 1;
84
- loaded_scale = .8;
85
- } else if (loaded_scale < max_scale) {
86
- click_scale = loaded_scale;
87
- loaded_scale = 1;
88
- } else {
89
- click_scale = max_scale;
90
- loaded_scale = 1;
91
- }
92
- } else {
93
- click_scale = 1;
94
- }
95
- loaded_x = (image.clientWidth - image_width * loaded_scale) / 2;
96
- loaded_y = (image.clientHeight - image_height * loaded_scale) / 2;
97
- min_scale = loaded_scale * .75;
98
- scaled = loaded_scale;
99
- x = loaded_x;
100
- y = loaded_y;
101
- updatexy();
102
- };
103
- var set_unlock = function () {
104
- if (!loaded_scale) return;
105
- setInitParams();
106
- __css(imgpic, get_style(-1));
63
+ image.init();
107
64
  };
108
-
109
65
  var imgpic;
110
66
  image.setImage = function (_imgpic) {
111
67
  if (!isElement(_imgpic)) _imgpic = this;
@@ -118,66 +74,24 @@ var create = function (url, key) {
118
74
  remove(imgpic);
119
75
  appendChild(image, _imgpic);
120
76
  imgpic = _imgpic;
121
- } else {
77
+ }
78
+ else {
122
79
  imgpic = _imgpic;
123
80
  _imgpic.setAttribute('imgpic', '');
124
81
  _imgpic.draggable = false;
125
82
  image.width = _imgpic.width;
126
83
  image.height = _imgpic.height;
127
84
  appendChild(image, _imgpic);
128
- setInitParams();
129
- set_unlock();
85
+ init();
130
86
  }
131
87
  };
88
+
132
89
  createImage(url, image.setImage);
133
- on("append")(image, setInitParams);
134
90
 
135
91
 
136
- image.locked = false;
137
- var last_click_time = 0;
138
- on("click")(image, function (event) {
139
- var time = +new Date;
140
- var delta_time = time - last_click_time;
141
- last_click_time = time;
142
- if (delta_time > 300) return;
143
- var image = this;
144
- var __scaled = scaled, _x = x, _y = y;
145
- setInitParams();
146
- image.locked = __scaled === loaded_scale && loaded_x === _x && loaded_y === _y;
147
- var layerx = event.offsetX || 0;
148
- var layery = event.offsetY || 0;
149
- if (layerx)
150
- if (image.locked) {
151
- var width = image_width * loaded_scale, height = image_height * loaded_scale;
152
- if (layerx > loaded_x + width || layerx < loaded_x || width < image.offsetWidth >> 2) {
153
- layerx = loaded_x + width / 2;
154
- }
155
- if (layery > loaded_y + height || layery < loaded_y || height < image.offsetHeight >> 2) {
156
- layery = loaded_y + height / 2;
157
- }
158
- scale(layerx, layery, click_scale / loaded_scale);
159
- } else {
160
- set_unlock();
161
- }
162
- });
163
- image.getScale = function () {
164
- if (!this.locked && !loaded_scale) {
165
- setInitParams();
166
- }
167
- return +String(+scaled + 0.00005).slice(0, 6);
168
- };
169
- var get_style = function (type) {
170
- var width = image_width * scaled;
171
- var height = image_height * scaled;
172
- var r = image.rotate | 0;
173
- var [, , w, h] = getrotatedltwh(r);
174
- if (type <= 0) {
175
- var x0 = x + (width - w) / 2;
176
- var y0 = y + (height - h) / 2;
177
- var [x1, y1] = trimCoord([image.clientWidth, image.clientHeight], [x0, y0, w, h], type);
178
- x += x1 - x0;
179
- y += y1 - y0;
180
- }
92
+ var get_style = function (x, y, scaled, rotate) {
93
+ var width = image.width * scaled;
94
+ var height = image.height * scaled;
181
95
  var [left, top, marginLeft, marginTop] = coordIn([image.clientWidth, image.clientHeight], [x, y, width, height]);
182
96
  return {
183
97
  imageRendering: scaled >= 3 / devicePixelRatio ? "pixelated" : "",
@@ -186,203 +100,9 @@ var create = function (url, key) {
186
100
  left,
187
101
  top,
188
102
  marginLeft,
189
- transform: `rotate(${origin_rotate}deg)`,
103
+ transform: `rotate(${rotate}deg)`,
190
104
  marginTop
191
105
  };
192
- };
193
- var scale = function (layerx, layery, ratio) {
194
- if (!image.locked) return;
195
- scaled *= ratio;
196
- x = (x - layerx) * ratio + layerx;
197
- y = (y - layery) * ratio + layery;
198
- __css(imgpic, get_style());
199
- };
200
- var touch = function ([x1, y1, x2, y2], [m1, n1, m2, n2]) {
201
- var l1 = Math.sqrt(Math.pow(m1 - m2, 2) + Math.pow(n1 - n2, 2));
202
- var l2 = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
203
- var scale = l1 / l2;
204
- if (scaled >= max_scale * 1.1 && scale > 1) return;
205
- if (scaled <= min_scale && scale < 1) return;
206
- scaled *= scale;
207
- var centerx = (x1 + x2) / 2;
208
- var centery = (y1 + y2) / 2;
209
- var centerm = (m1 + m2) / 2;
210
- var centern = (n1 + n2) / 2;
211
- x = (x - centerx) * scale + centerm;
212
- y = (y - centery) * scale + centern;
213
- __css(imgpic, get_style());
214
- };
215
- var recover = function (change) {
216
- var aimed_scale = getstation(scaled);
217
- if (aimed_scale !== scaled) {
218
- change = true;
219
- x = (x - image.clientWidth / 2) / scaled * aimed_scale + image.clientWidth / 2;
220
- y = (y - image.clientHeight / 2) / scaled * aimed_scale + image.clientHeight / 2;
221
- scaled = aimed_scale;
222
- }
223
- if (scaled <= loaded_scale * 1.2) {
224
- scaled = loaded_scale;
225
- x = loaded_x;
226
- y = loaded_y;
227
- change = true;
228
- }
229
- if (scaled > max_scale) {
230
- change = true;
231
- x = (x - image.clientWidth / 2) * max_scale / scaled + image.clientWidth / 2;
232
- y = (y - image.clientHeight / 2) * max_scale / scaled + image.clientHeight / 2;
233
- scaled = max_scale;
234
- }
235
- var saved_x = x, saved_y = y;
236
- var style = get_style(-1);
237
- if (change || saved_x !== x || saved_y !== y) {
238
- var a = transition(imgpic, style, true);
239
- if (scaled === loaded_scale) {
240
- setTimeout(function () {
241
- set_unlock();
242
- image.locked = false;
243
- }, a || 0);
244
- }
245
- }
246
- };
247
- var move = inertia(function (deltax, deltay) {
248
- var saved_x = x, saved_y = y;
249
- x += deltax, y += deltay;
250
- __css(imgpic, get_style(-1));
251
- if (saved_x === x && saved_y === y) return false;
252
- });
253
- var saved_event, wheeltime;
254
- onmousewheel(image, function (event) {
255
- var { offsetX: layerX, offsetY: layerY, deltaY } = event;
256
- if (this.locked) event.preventDefault();
257
- if (!deltaY) return;
258
- if (!this.locked) setInitParams();
259
- this.locked = true;
260
- var ratio = Math.pow(0.99, 20 * Math.atan(deltaY / 20));
261
- var __scaled = scaled;
262
- __scaled *= ratio;
263
- if (__scaled > max_scale && ratio > 1) {
264
- __scaled = max_scale;
265
- }
266
- if (__scaled < min_scale && ratio < 1) {
267
- __scaled = min_scale;
268
- }
269
- ratio = __scaled / scaled;
270
- scale(layerX, layerY, ratio);
271
- });
272
- moveupon(image, {
273
- start(event) {
274
- event.preventDefault();
275
- saved_event = event;
276
- event.moveLocked = scaled > locked_scale;
277
- if (!this.locked) {
278
- setInitParams();
279
- }
280
- move.reset();
281
- },
282
- move(event) {
283
- if (event.moveLocked) return;
284
- event.moveLocked = scaled > locked_scale;
285
- event.preventDefault();
286
- if (event.touches && saved_event.touches) {
287
- if (event.touches.length !== saved_event.touches.length) {
288
- saved_event = event;
289
- return;
290
- }
291
-
292
- switch (event.touches.length) {
293
- case 1:
294
- if (!this.locked) return;
295
- break;
296
- case 2:
297
- this.locked = true;
298
- event.moveLocked = true;
299
- var [xy1, xy2] = saved_event.touches;
300
- var [mn1, mn2] = event.touches;
301
- var { left, top } = getScreenPosition(image);
302
- top += image.clientTop;
303
- left += image.clientLeft;
304
- touch(
305
- [xy1.clientX - left, xy1.clientY - top, xy2.clientX - left, xy2.clientY - top],
306
- [mn1.clientX - left, mn1.clientY - top, mn2.clientX - left, mn2.clientY - top]
307
- );
308
- saved_event = event;
309
- return;
310
- }
311
- }
312
- if (!this.locked) return;
313
- var deltax = event.clientX - saved_event.clientX,
314
- deltay = event.clientY - saved_event.clientY;
315
- move(deltax, deltay);
316
- saved_event = event;
317
- },
318
- end(event) {
319
- if (saved_event) {
320
- if (event.timeStamp - saved_event.timeStamp > 120) {
321
- move.reset();
322
- }
323
- }
324
- saved_event = null;
325
- event.moveLocked = scaled >= locked_scale;
326
-
327
- if (this.locked && onclick.preventClick) move.smooth(recover);
328
- }
329
- });
330
- on("append")(image, function () {
331
- mountedPictures.push(image);
332
- set_unlock();
333
- });
334
- on("remove")(image, function () {
335
- removeFromList(mountedPictures, image);
336
- });
337
- var origin_rotate = 0;
338
- var updatexy = function () {
339
- var deg = image.rotate - origin_rotate;
340
- if (isFinite(deg)) {
341
- origin_rotate = image.rotate;
342
- [x, y] = getrotatedltwh(deg, scaled);
343
- }
344
- };
345
- var getrotatedltwh = function (a, s = scaled) {
346
- var w = image_width * s;
347
- var h = image_height * s;
348
- var c = [image.clientWidth / 2, image.clientHeight / 2];
349
- var m = x + w / 2;
350
- var n = y + h / 2;
351
- var [c1, c2] = rotate([m, n], -a, c);
352
- c1 -= w / 2;
353
- c2 -= h / 2;
354
- a = origin_rotate;
355
- var l = c[0] - w / 2;
356
- var r = l + w;
357
- var t = c[1] - h / 2;
358
- var b = t + h;
359
- var [x1, y1] = rotate([l, t], a, c);
360
- var [x2, y2] = rotate([r, t], a, c);
361
- var [x3, y3] = rotate([l, b], a, c);
362
- var [x4, y4] = rotate([r, b], a, c);
363
- var l = Math.min(x1, x2, x3, x4);
364
- var t = Math.min(y1, y2, y3, y4);
365
- var w = Math.max(x1, x2, x3, x4) - l;
366
- var h = Math.max(y1, y2, y3, y4) - t;
367
- return [c1, c2, w, h];
368
- };
369
- image.update = function (animate) {
370
- if (image.locked) {
371
- updatexy();
372
- x += (image.clientWidth - origin_width) / 2;
373
- y += (image.clientHeight - origin_height) / 2;
374
- origin_height = image.clientHeight;
375
- origin_width = image.clientWidth;
376
- __css(imgpic, get_style(-1));
377
- return;
378
- }
379
- setInitParams();
380
- if (animate !== false) {
381
- recover();
382
- } else {
383
- __css(imgpic, get_style(-1));
384
- }
385
-
386
106
  }
387
107
  return image;
388
108
  };
@@ -446,39 +166,14 @@ function picture(url, to = 0, key) {
446
166
  p.rotateTo = function (deg) {
447
167
  var img = p.current;
448
168
  if (!img) return;
449
- img.rotate = deg;
450
- img.update();
169
+ img.rotateTo(deg);
451
170
  return deg;
452
171
  };
453
172
  p.rotateBy = function (deg) {
454
173
  var img = p.current;
455
174
  if (!img) return;
456
- var r = img.rotate | 0;
457
- if (deg === 90 || deg === -90) {
458
- r += deg;
459
- if (deg > 0) {
460
- // 九进八舍
461
- var a = r / 90;
462
- if (Math.ceil(a) - a < .01) {
463
- r = Math.ceil(a) * 90;
464
- } else {
465
- r = Math.floor(a) * 90;
466
- }
467
- } else {
468
- // 一进零舍
469
- var a = r / 90;
470
- if (Math.ceil(a) - a > .01) {
471
- r = Math.ceil(a) * 90;
472
- } else {
473
- r = Math.floor(a) * 90;
474
- }
475
- }
476
- } else {
477
- r += deg;
478
- }
479
- img.rotate = r;
480
- img.update(deg === 90 || deg === -90);
481
- return r;
175
+ img.rotateBy(deg);
176
+ return img.rotate;
482
177
  };
483
178
  return p;
484
179
  }