efront 3.20.2 → 3.20.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.
@@ -5,15 +5,11 @@ WEB:
5
5
  文件管理: /wow/root
6
6
  长连接管理: /link/index
7
7
  字典: /dict/list
8
- 接口: /api/list
9
8
  任务:
10
9
  密钥管理: /token/list
11
10
  任务建立: /task/list
12
11
  定期执行: /tick/list
13
12
  # 服务器: /api/host
14
- 用户:
15
- 账号列表: /user/list
16
- 标签管理: /user/tag/list
17
13
  服务器日志:
18
14
  访问计数: /log/count
19
15
  启动记录: /log/boot
@@ -0,0 +1,424 @@
1
+ var notMatchLength = new Error("矩阵长度不一致");
2
+ class Matrix extends Array {
3
+ static create2d(theta = 0) {
4
+ return MatrixTransposed.matrix2d(theta);
5
+ }
6
+ static create3d(factor = [0, 0, 0]) {
7
+ return MathMatrix.matrix3d(factor);
8
+ }
9
+ size() {
10
+ return size(this);
11
+ }
12
+ dirty() {
13
+ this._invert = null;
14
+ }
15
+ _invert = null;
16
+ get invert() {
17
+ if (this._invert) return this._invert;
18
+ return this._invert = this.slice().inverse();
19
+ }
20
+ transpose() {
21
+ if (this.constructor === MathMatrix) {
22
+ var m = new MatrixTransposed;
23
+ }
24
+ else {
25
+ var m = new MathMatrix;
26
+ }
27
+ m.push.apply(m, this);
28
+ m.transpose_();
29
+ return m;
30
+ }
31
+ transpose_() {
32
+ var [size] = this.size();
33
+ for (var cx = 0, dx = size; cx < dx; cx++) {
34
+ for (var cy = cx + 1, dy = dx; cy < dy; cy++) {
35
+ var i = cx * size + cy;
36
+ var j = cy * size + cx;
37
+ var tmp = this[i];
38
+ this[i] = this[j];
39
+ this[j] = tmp;
40
+ }
41
+ }
42
+ return this;
43
+ }
44
+ inverse() {
45
+ this.dirty();
46
+ return this.constructor.逆(this);
47
+ }
48
+ rotate(factor, center) {
49
+ this.dirty();
50
+ if (center) this.translate(center.map(负));
51
+ if (factor.length) {
52
+ this.multiply(this.constructor.matrix3d(factor));
53
+ }
54
+ else {
55
+ this.multiply(this.constructor.matrix2d(factor));
56
+ }
57
+ if (center) this.translate(center);
58
+ return this;
59
+ }
60
+ translate(vector) {
61
+ this.dirty();
62
+ return this.constructor.translate(this, vector);
63
+ }
64
+ scale(ratio, center) {
65
+ this.dirty();
66
+ if (center) this.translate(center.map(负));
67
+ times(this, ratio);
68
+ if (center) this.translate(center);
69
+ this[this.length - 1] = 1;
70
+ return this;
71
+ }
72
+ multiply(a) {
73
+ this.dirty();
74
+ return this.constructor.multiply(this, a);
75
+ }
76
+ transform(dots) {
77
+ if (dots instanceof Array) return this.constructor.transform(this, dots);
78
+ if (arguments.length > 1) {
79
+ var a = Array.prototype.slice.apply(arguments, 0);
80
+ return this.constructor.transform(this, a);
81
+ }
82
+ return dots;
83
+ }
84
+ }
85
+ class MathMatrix extends Matrix {
86
+
87
+ static transform(B, dots) {
88
+ var dimention = Math.sqrt(B.length - 1) | 0;
89
+ if (dots.length % dimention !== 0) throw notMatchLength;
90
+ if (dots === B) B = B.slice(0);
91
+ var ds = dots.slice(0);
92
+ var dim2 = B.length % dimention !== 0 ? dimention + 1 : dimention;
93
+ for (var cx = 0, dx = dots.length; cx < dx; cx += dimention) {
94
+ for (var cy = 0, dy = dimention; cy < dy; cy++) {
95
+ var sum = 0;
96
+ for (var ct = 0, dt = dimention; ct < dt; ct++) {
97
+ sum += ds[cx + ct] * B[ct * dim2 + cy];
98
+ }
99
+ sum += B[dimention * dim2 + cy];
100
+ dots[cx + cy] = sum;
101
+ }
102
+ }
103
+ return dots;
104
+ };
105
+
106
+
107
+ static translate(A, delta) {
108
+ var [dim2, dim] = size(A);
109
+ var inc = 0;
110
+ for (var cx = dim * dim2, dx = cx + dim; cx < dx; cx++) {
111
+ A[cx] = (A[cx] || 0) + delta[inc++];
112
+ }
113
+ return A;
114
+ }
115
+
116
+ static multiply(A, B) {
117
+ if (A.length !== B.length) throw notMatchLength;
118
+ var dim = Math.sqrt(A.length) | 0;
119
+ if (dim * dim !== A.length) throw notMatchLength;
120
+ var X = A.slice(0);
121
+ for (var cx = 0, dx = A.length; cx < dx; cx += dim) {
122
+ for (var cy = 0, dy = dim; cy < dy; cy++) {
123
+ var sum = 0;
124
+ for (var ct = 0, dt = dim; ct < dt; ct++) {
125
+ sum += X[cx + ct] * B[ct * dim + cy];
126
+ }
127
+ A[cx + cy] = sum;
128
+ }
129
+ }
130
+ return A;
131
+ }
132
+
133
+
134
+ static matrix2d(theta) {
135
+ var cosa = Math.cos(theta);
136
+ var sina = Math.sin(theta);
137
+ return new MathMatrix(
138
+ cosa, sina, 0,
139
+ -sina, cosa, 0,
140
+ 0, 0, 1
141
+ );
142
+ };
143
+
144
+ static matrix3d(factor) {
145
+ var n = norm(factor.slice(0, 3));
146
+ var theta = factor.length === 4 ? factor[3] : n;
147
+ var vec = times(factor, 1 / n);
148
+ var cosa = Math.cos(theta);
149
+ var sina = Math.sin(theta);
150
+ var vera = 1 - cosa;
151
+ var [x_u, y_u, z_u] = !n ? [0, 0, 1] : vec;
152
+ return new MathMatrix(
153
+ cosa + x_u * x_u * vera, x_u * y_u * vera - z_u * sina, x_u * z_u * vera + y_u * sina, 0,
154
+ x_u * y_u * vera + z_u * sina, cosa + y_u * y_u * vera, y_u * z_u * vera - x_u * sina, 0,
155
+ x_u * z_u * vera - y_u * sina, y_u * z_u * vera + x_u * sina, cosa + z_u * z_u * vera, 0,
156
+ 0, 0, 0, 1
157
+ );
158
+ }
159
+
160
+ static 逆 = function (A) {
161
+ var dim = Math.sqrt(A.length) | 0;
162
+ if (dim * dim !== A.length) throw notMatchLength;
163
+ var E = new Array(A.length).fill(0);
164
+ for (var cx = 0, dx = dim; cx < dx; cx++)E[cx * dim + cx] = 1;
165
+ var X = A.splice(0, A.length);
166
+ A.push.apply(A, E);
167
+ for (var cx = 0, dx = dim; cx < dx; cx++) {
168
+ var start = cx * dim + cx;
169
+ var max_ct, v = 0;
170
+ for (var ct = start, dt = X.length; ct < dt; ct += dim) {
171
+ var v0 = Math.abs(X[ct]);
172
+ if (v0 > v) {
173
+ max_ct = ct;
174
+ v = v0;
175
+ }
176
+ }
177
+ ct = max_ct;
178
+ if (ct !== start) {
179
+ var delta = ct - start;
180
+ var ratio = (1 - X[start]) / X[ct];
181
+ for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
182
+ X[cy] += X[cy + delta] * ratio;
183
+ A[cy] += A[cy + delta] * ratio;
184
+ }
185
+ }
186
+ if (X[start] !== 1) {
187
+ var ratio = 1 / X[start];
188
+ for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
189
+ X[cy] *= ratio;
190
+ A[cy] *= ratio;
191
+ }
192
+ }
193
+ for (var ct = start + dim, dt = X.length; ct < dt; ct += dim) {
194
+ if (X[ct] === 0) continue;
195
+ var ratio = -X[ct];
196
+ var delta = start - ct;
197
+ for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
198
+ X[cy] += X[cy + delta] * ratio;
199
+ A[cy] += A[cy + delta] * ratio;
200
+ }
201
+ }
202
+ }
203
+ for (var cx = dim - 1; cx > 0; cx--) {
204
+ var start = cx * dim + cx;
205
+ for (var ct = start - dim; ct >= 0; ct -= dim) {
206
+ if (X[ct] === 0) continue;
207
+ var ratio = -X[ct];
208
+ var delta = start - ct;
209
+ for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
210
+ X[cy] += X[cy + delta] * ratio;
211
+ A[cy] += A[cy + delta] * ratio;
212
+ }
213
+ }
214
+ }
215
+ return A;
216
+ };
217
+
218
+ }
219
+ class MatrixTransposed extends Matrix {
220
+ static transform(B, dots) {
221
+ var dimention = Math.sqrt(B.length - 1) | 0;
222
+ if (dots.length % dimention !== 0) throw notMatchLength;
223
+ if (dots === B) B = B.slice(0);
224
+ var ds = dots.slice(0);
225
+ var dim2 = B.length % dimention !== 0 ? dimention + 1 : dimention;
226
+ for (var cx = 0, dx = dots.length; cx < dx; cx += dimention) {
227
+ for (var cy = 0, dy = dimention; cy < dy; cy++) {
228
+ var sum = 0;
229
+ var start = dim2 * cy;
230
+ for (var ct = 0, dt = dimention; ct < dt; ct++) {
231
+ sum += ds[cx + ct] * B[start + ct];
232
+ }
233
+ sum += B[start + dimention];
234
+ dots[cx + cy] = sum;
235
+ }
236
+ }
237
+ return dots;
238
+ };
239
+
240
+ static translate(A, delta) {
241
+ var [dim2, dim] = size(A);
242
+ var inc = 0;
243
+ for (var cx = dim, dx = dim * dim2; cx < dx; cx += dim2) {
244
+ A[cx] = (A[cx] || 0) + delta[inc++];
245
+ }
246
+ return A;
247
+ }
248
+
249
+ static multiply(A, B) {
250
+ if (A.length !== B.length) throw notMatchLength;
251
+ var dim = Math.sqrt(A.length) | 0;
252
+ if (dim * dim !== A.length) throw notMatchLength;
253
+ var X = A.slice(0);
254
+ for (var cx = 0, dx = A.length; cx < dx; cx += dim) {
255
+ for (var cy = 0, dy = dim; cy < dy; cy++) {
256
+ var sum = 0;
257
+ for (var ct = 0, dt = dim; ct < dt; ct++) {
258
+ sum += B[cx + ct] * X[ct * dim + cy];
259
+ }
260
+ A[cx + cy] = sum;
261
+ }
262
+ }
263
+ return A;
264
+ }
265
+
266
+ static matrix2d(theta) {
267
+ var cosa = Math.cos(theta);
268
+ var sina = Math.sin(theta);
269
+ return new MatrixTransposed(
270
+ cosa, -sina, 0,
271
+ sina, cosa, 0,
272
+ 0, 0, 1
273
+ );
274
+ }
275
+
276
+ static matrix3d(factor) {
277
+ var n = norm(factor.slice(0, 3));
278
+ var theta = factor.length === 4 ? factor[3] : n;
279
+ var vec = times(factor, 1 / n);
280
+ var cosa = Math.cos(theta);
281
+ var sina = Math.sin(theta);
282
+ var vera = 1 - cosa;
283
+ var [x_u, y_u, z_u] = !n ? [0, 0, 1] : vec;
284
+ return new MatrixTransposed(
285
+ cosa + x_u * x_u * vera, x_u * y_u * vera + z_u * sina, x_u * z_u * vera - y_u * sina, 0,
286
+ x_u * y_u * vera - z_u * sina, cosa + y_u * y_u * vera, y_u * z_u * vera + x_u * sina, 0,
287
+ x_u * z_u * vera + y_u * sina, y_u * z_u * vera - x_u * sina, cosa + z_u * z_u * vera, 0,
288
+ 0, 0, 0, 1
289
+ );
290
+ }
291
+ static 逆 = function (A) {
292
+ var dim = Math.sqrt(A.length) | 0;
293
+ if (dim * dim !== A.length) throw notMatchLength;
294
+ var E = new Array(A.length).fill(0);
295
+ for (var cx = 0, dx = dim; cx < dx; cx++)E[cx * dim + cx] = 1;
296
+ var X = A.splice(0, A.length);
297
+ A.push.apply(A, E);
298
+ for (var cx = 0, dx = dim; cx < dx; cx++) {
299
+ var start = cx * dim + cx;
300
+ var max_ct, v = 0;
301
+ for (var ct = start, dt = cx * dim + dim; ct < dt; ct++) {
302
+ var v0 = Math.abs(X[ct]);
303
+ if (v0 > v) {
304
+ max_ct = ct;
305
+ v = v0;
306
+ }
307
+ }
308
+ ct = max_ct;
309
+ if (ct !== start) {
310
+ var delta = ct - start;
311
+ var ratio = (1 - X[start]) / X[ct];
312
+ for (var cy = cx, dy = X.length; cy < dy; cy += dim) {
313
+ X[cy] += X[cy + delta] * ratio;
314
+ A[cy] += A[cy + delta] * ratio;
315
+ }
316
+ }
317
+ if (X[start] !== 1) {
318
+ var ratio = 1 / X[start];
319
+ for (var cy = cx, dy = X.length; cy < dy; cy += dim) {
320
+ X[cy] *= ratio;
321
+ A[cy] *= ratio;
322
+ }
323
+ }
324
+ for (var ct = start + 1, dt = start + dim - cx; ct < dt; ct++) {
325
+ if (X[ct] === 0) continue;
326
+ var ratio = -X[ct];
327
+ var delta = start - ct;
328
+ for (var cy = cx + ct - start, dy = X.length; cy < dy; cy += dim) {
329
+ X[cy] += X[cy + delta] * ratio;
330
+ A[cy] += A[cy + delta] * ratio;
331
+ }
332
+ }
333
+ }
334
+ for (var cx = dim - 1; cx >= 0; cx--) {
335
+ var start = cx * dim + cx;
336
+ for (var ct = start - 1, dt = start - cx; ct >= dt; ct--) {
337
+ if (X[ct] === 0) continue;
338
+ var ratio = -X[ct];
339
+ var delta = start - ct;
340
+ for (var cy = cx + ct - start, dy = X.length; cy < dy; cy += dim) {
341
+ X[cy] += X[cy + delta] * ratio;
342
+ A[cy] += A[cy + delta] * ratio;
343
+ }
344
+ }
345
+ }
346
+ return A;
347
+ };
348
+
349
+ }
350
+ Matrix.MathMatrix = MathMatrix;
351
+ Matrix.MatrixTransposed = MatrixTransposed;
352
+
353
+
354
+ function inner(vec1, vec2) {
355
+ if (vec1.length !== vec2.length) throw notMatchLength;
356
+ var sum = 0;
357
+ for (var cx = 0, dx = vec1.length; cx < dx; cx++) {
358
+ sum += vec1[cx] * vec2[cx];
359
+ }
360
+ return sum;
361
+ }
362
+
363
+ function cross2(vec1, vec2) {
364
+ var [x1, y1] = vec1;
365
+ var [x2, y2] = vec2;
366
+ return x1 * y2 - x2 * y1;
367
+ }
368
+ function cross3(vec1, vec2) {
369
+ var [x1, y1, z1] = vec1;
370
+ var [x2, y2, z2] = vec2;
371
+ return [y1 * z2 - y2 * z1, z1 * x2 - z2 * x1, x1 * y2 - x2 * y1];
372
+ }
373
+ function cross(vec1, vec2) {
374
+ if (vec1.length !== vec2.length) throw notMatchLength;
375
+ if (vec1.length === 2) return cross2(vec1, vec2);
376
+ if (vec1.length === 3) return cross3(vec1, vec2);
377
+ throw new Error("向量维度不支持!");
378
+ }
379
+ function 负(a) {
380
+ return -a;
381
+ }
382
+ function times(vector, factor) {
383
+ for (var cx = 0, dx = vector.length; cx < dx; cx++) {
384
+ vector[cx] *= factor;
385
+ }
386
+ return vector;
387
+ }
388
+
389
+ var norm = function (vector) {
390
+ var sum = 0;
391
+ for (var cx = 0, dx = vector.length; cx < dx; cx++) {
392
+ sum += vector[cx] * vector[cx];
393
+ }
394
+ return Math.sqrt(sum);
395
+ };
396
+
397
+
398
+ function size(A) {
399
+ var dim = Math.sqrt(A.length - 1) | 0;
400
+ var dim2 = dim;
401
+ if (A.length % dim !== 0) {
402
+ dim2++;
403
+ }
404
+ if ((dim + 1) * dim2 !== A.length) throw notMatchLength;
405
+ return [dim2, dim];
406
+ }
407
+
408
+
409
+ function olinde(v, vector) {
410
+ // 罗德里格旋转公式
411
+ // https://baike.baidu.com/item/%E7%BD%97%E5%BE%B7%E9%87%8C%E6%A0%BC%E6%97%8B%E8%BD%AC%E5%85%AC%E5%BC%8F/18878562
412
+ // https://www.cnblogs.com/flyinggod/p/8144100.html 旋转矩阵、欧拉角、四元数理论及其转换关系
413
+ var theta = norm(vector);
414
+ var k = times(vector.slice(0), 1 / theta);
415
+ var cosa = Math.cos(theta);
416
+ var sina = Math.sin(theta);
417
+ var inna = inner(k, v);
418
+ var aa = inna * (1 - cosa);
419
+ var kv = cross(k, v);
420
+ for (var cx = 0, dx = k.length; cx < dx; cx++) {
421
+ v[cx] = v[cx] * cosa + aa * k[cx] + sina * kv[cx];
422
+ }
423
+ return v;
424
+ }
@@ -23,6 +23,7 @@ var parseCookieFromText = function (cookie) {
23
23
  };
24
24
 
25
25
  function addCookie(cookie_text, originDomain = "") {
26
+ originDomain = getDomainPath(originDomain);
26
27
  if (!cookie_text) return;
27
28
  if (cookie_text instanceof Array) cookie_text = cookie_text.join(",");
28
29
  var cookies = cookie_text.replace(/(^|;|,)\s*(expires)=(\w*),([^=]*)(;|$)/ig, "$1$2=$3.$4$5")
@@ -57,6 +58,7 @@ function addCookie(cookie_text, originDomain = "") {
57
58
  }
58
59
 
59
60
  function getCookies(domainPath) {
61
+ domainPath = getDomainPath(domainPath);
60
62
  var cookieObject = {};
61
63
  var splited = domainPath.split("/");
62
64
  var domain = splited[0];
@@ -87,10 +89,16 @@ function getCookies(domainPath) {
87
89
  }
88
90
 
89
91
  function delCookies(domainPath) {
92
+ domainPath = getDomainPath(domainPath);
90
93
  var splited = domainPath.split("/");
91
94
  var domain = splited[0];
92
95
  delete cookiesMap[domain];
93
96
  }
97
+ function getDomainPath(url) {
98
+ var { host, pathname } = parseURL(url);
99
+ if (pathname) return host + pathname;
100
+ return host;
101
+ }
94
102
 
95
103
  return {
96
104
  cookiesMap,
@@ -322,6 +322,9 @@ function cross_(jsonp, digest = noop, method, url, headers) {
322
322
  xhr.nocookie = true;
323
323
  return xhr;
324
324
  };
325
+ xhr.getCookies = function () {
326
+ return getCookies(originDomain);
327
+ };
325
328
  requests.push(xhr);
326
329
  return xhr;
327
330
  }
@@ -42,7 +42,8 @@ function queue(list, count = 1, context = null) {
42
42
  if (!(count >= 1)) {
43
43
  count = 1;
44
44
  }
45
- while (cx < count) {
45
+ if (list.length === 0) run();
46
+ else while (cx < count) {
46
47
  run();
47
48
  }
48
49
  });
@@ -8,7 +8,7 @@
8
8
  cursor: default;
9
9
  box-sizing: border-box;
10
10
  background-color: #fff;
11
- border: 1px solid #0001;
11
+ border: 1px solid #999;
12
12
  box-shadow: 0 0 16px -6px rgba(0, 0, 0, .2);
13
13
  }
14
14
 
@@ -128,6 +128,7 @@ var bindActionTarget = function (action, actionTarget) {
128
128
  };
129
129
 
130
130
  drag.on = function (target, actionTarget = target.dragTarget) {
131
+ if (getTargetIn(target, actionTarget, false)) [target, actionTarget] = [actionTarget, target];
131
132
  if (!actionTarget) {
132
133
  if (target.dragHandle) {
133
134
  actionTarget = target;
@@ -4,7 +4,7 @@
4
4
  <span class="required" ng-if="field.required">*</span>
5
5
  </div>
6
6
  <div class="body">
7
- <model _data=data _field=field></model>
7
+ <model _data=data _field=field _readonly="readonly"></model>
8
8
  <span class="error" ng-bind="error"></span>
9
9
  </div>
10
10
  <div class="foot" ng-if="field.msg">
@@ -12,5 +12,5 @@
12
12
  </div>
13
13
  </template>
14
14
  <template v-else>
15
- <model _data=data _field=field></model>
15
+ <model _data=data _field=field _readonly="readonly"></model>
16
16
  </template>
@@ -9,7 +9,8 @@ function main(elem) {
9
9
  model,
10
10
  data,
11
11
  error: null,
12
- field: f
12
+ field: f,
13
+ readonly: !!this.readonly
13
14
  });
14
15
  elem.oldValue = data[f.key];
15
16
  elem.setAttribute("field", f.key);
@@ -0,0 +1 @@
1
+ Matrix
@@ -312,6 +312,10 @@ function main(page, items, active, direction = 'y') {
312
312
  }`;
313
313
  var notHidden = `!${itemName}.hidden`;
314
314
  var generator = getGenerator(page, 'menu-item');
315
+ var fire0 = function () {
316
+ fire.apply(this, arguments);
317
+ dispatch(window, 'render');
318
+ };
315
319
  list(page, function (index) {
316
320
  var item = items[index];
317
321
  if (!item) return;
@@ -325,7 +329,7 @@ function main(page, items, active, direction = 'y') {
325
329
  on("mouseenter")(a, open);
326
330
  on("pointermove")(a, open);
327
331
  if (istoolbar) on("pointerdown")(a, open1);
328
- on("click")(a, fire);
332
+ on("click")(a, fire0);
329
333
  return a;
330
334
  });
331
335
  on("append")(page, function () {
@@ -358,7 +362,7 @@ function main(page, items, active, direction = 'y') {
358
362
  on("mouseenter")(elem, open);
359
363
  on("pointermove")(elem, cancel);
360
364
  if (istoolbar) on("pointerdown")(elem, open1);
361
- on("click")(elem, fire);
365
+ on("click")(elem, fire0);
362
366
  return elem;
363
367
  }, direction);
364
368
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.20.2",
3
+ "version": "3.20.6",
4
4
  "description": "一个开发工具,开放源代码,自带组件库和编译环境,可以用来开发web组件,web应用或nodejs模块,或做为已有代码的加密工具,也可以做为静态页面服务器或跨域中转服务器使用",
5
5
  "main": "public/efront.js",
6
6
  "directories": {