efront 3.4.5 → 3.5.1

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.
@@ -1,3 +1,4 @@
1
1
  ./aapi/ authorization:
2
2
  login: options /::login-:a
3
- run: options /:::run
3
+ run: options /:::run
4
+ share: options /::share-:opt
@@ -13,12 +13,12 @@ function main() {
13
13
  } catch { }
14
14
  target.removeAttribute('pending');
15
15
  },
16
- logout() {
16
+ async logout() {
17
17
  data.setSource('authorization', null);
18
- user.logout();
19
- location.reload();
18
+ await user.Logout();
19
+ zimoli.switch();
20
+ zimoli();
20
21
  }
21
22
  });
22
- console.log(page)
23
23
  return page;
24
24
  }
@@ -1,6 +1,9 @@
1
1
  data.loadConfig("api.yml");
2
2
  user.loginPath = '/auth/login';
3
- // user.token = data.getSource('authorization');
3
+ var token = data.getSource('authorization');
4
+ if (token) {
5
+ user.login({});
6
+ }
4
7
  setInterval(function () {
5
8
  var auth = data.getSource('authorization');
6
9
  if (!auth) return;
@@ -0,0 +1,3 @@
1
+ >:not([layer]) {
2
+ padding: 50px 10px 0;
3
+ }
@@ -1,3 +1,5 @@
1
1
  首页: /home/welcome
2
- 工作台: /home/short
2
+ 共享目录管理: /share/list
3
+ 短链接: /home/short
4
+ # 用户: /home/short
3
5
  # 用户列表: /user/list
@@ -0,0 +1,10 @@
1
+ <div head>修改</div>
2
+ <div body>
3
+ <form>
4
+ <field -repeat="f in fields" -src="[f,data]"></field>
5
+ </form>
6
+ </div>
7
+ <div foot>
8
+ <button white @click="close()">取消</button>
9
+ <button @click="save()"> 保存 </button>
10
+ </div>
@@ -0,0 +1,16 @@
1
+ function main({ fields, item }) {
2
+ var page = view();
3
+ page.innerHTML = edit;
4
+ renderWithDefaults(page, {
5
+ fields,
6
+ close() {
7
+ return remove(page);
8
+ },
9
+ save() {
10
+ return data.from("share", { opt: item ? 'update' : 'create', data: this.data }).loading_promise;
11
+ },
12
+ data: Object.assign({}, item)
13
+ });
14
+ drag.on(page.firstChild, page);
15
+ return page;
16
+ }
@@ -0,0 +1 @@
1
+ <table :src=[fields,data]></table>
@@ -0,0 +1,36 @@
1
+ var fields = refilm`
2
+ 路径/path
3
+ 挂载点/name
4
+ `;
5
+ var options = [
6
+ {
7
+ name: "删除",
8
+ do(e) {
9
+ data.from('share', { opt: 'delete', item: e });
10
+ }
11
+ },
12
+ {
13
+ name: "修改",
14
+ do(e) {
15
+ popup('/share/edit', { fields, item: e });
16
+ }
17
+ }
18
+ ];
19
+ console.log(fields)
20
+ function main() {
21
+ var page = div();
22
+ page.innerHTML = list;
23
+ var a = data.from("share", { opt: 'list' }, a => {
24
+ if (a) return a.map(b => ({ path: b }));
25
+ });
26
+ renderWithDefaults(page, {
27
+ data: a,
28
+ fields: fields.concat({
29
+ name: "操作",
30
+ type: 'button',
31
+ options,
32
+ }),
33
+ });
34
+ console.log(a)
35
+ return page;
36
+ }
@@ -90,14 +90,14 @@ function main(mainPath, historyName = "") {
90
90
  var hook = function () {
91
91
  if (--index !== 0) return;
92
92
  if (leftPath) {
93
- var page = zimoli.go(leftPath, null, leftLayer);
93
+ var page = zimoli.create(leftPath);
94
94
  page.setAttribute('layer', 'left');
95
95
  appendChild.replace(leftLayer, page);
96
96
  leftLayer = page;
97
97
  dragview({ page: layer, toLeft: layer.closeLeft, toRight: layer.openLeft, menu: leftLayer });
98
98
  }
99
99
  if (topPath) {
100
- var page = zimoli.go(topPath, null, topLayer);
100
+ var page = zimoli.create(topPath);
101
101
  page.setAttribute('layer', 'top');
102
102
  appendChild.replace(topLayer, page);
103
103
  topLayer = page;
@@ -1,13 +1,14 @@
1
1
  var styles = {
2
- blue: "#2a53cd",
2
+ blue: "#2a83cd",
3
3
  green: "#228B22",
4
- orange: "#dd6a16",
5
- red: "#dc352e"
4
+ orange: "#fdca86",
5
+ red: "#cc352e"
6
6
  };
7
7
  styles.success = styles.pass = styles.green;
8
8
  styles.info = styles.blue;
9
9
  styles.error = styles.danger = styles.red;
10
10
  styles.warn = styles.orange;
11
+ styles.default = '#000';
11
12
  var alerts = [];
12
13
  var clean = Cleanup(alerts);
13
14
  var build = function () {
@@ -21,15 +22,15 @@ var build = function () {
21
22
  };
22
23
  var fontSize = 16;
23
24
  var singleHeight = fontSize * 3.125 | 0;
24
- var _text = function (color, parameters) {
25
+ var _text = function (bgcolor, parameters) {
25
26
  var box = div();
26
27
  css(box, `top:${fromPixel(alerts.length ? Math.max.apply(Math, alerts.map(e => e.offsetTop + e.children[0].offsetHeight)) : 0)};height:0;line-height:${fromPixel(singleHeight - 20)};left:0;right:0;font-size:${fromPixel(fontSize)}; transition: all 0.2s ease-out;position:absolute;color:#fff;text-align:center;`);
27
- box.innerHTML = `<div style='width: 720px;white-space:pre-wrap;max-width:100%;display:inline-block;height:auto;padding:${fromPixel(10)} ${fromPixel(20)};background-color:${color};'>${[].slice.call(parameters, 0).join(", ")}</div>`;
28
+ box.innerHTML = `<div style='width: 720px;white-space:pre-wrap;max-width:100%;display:inline-block;height:auto;padding:${fromPixel(10)} ${fromPixel(20)};background-color:${bgcolor};color:${color.pair(bgcolor)};'>${[].slice.call(parameters, 0).join(", ")}</div>`;
28
29
  box.initialStyle = `margin:-${fromPixel(singleHeight)} auto;opacity:0;`;
29
30
  return box;
30
31
  };
31
32
  function alert() {
32
- var color = String(this), text, autoclose = true, onclose;
33
+ var color = String(isString(this) && this || styles.default), text, autoclose = true, onclose;
33
34
  var color_reg = /^#(?:\w{6}|\w{3})$/;
34
35
  [].map.call(arguments, function (arg) {
35
36
  switch (typeof arg) {
@@ -116,6 +116,7 @@ appendChild.insert = function (parent, element, relative = parent.childNodes[0]
116
116
  }
117
117
  };
118
118
  appendChild.replace = function (alreadyMounted, element) {
119
+ if (alreadyMounted === element) return;
119
120
  if (!alreadyMounted || !alreadyMounted.parentNode) return;
120
121
  insertBefore(alreadyMounted, element);
121
122
  remove(alreadyMounted);
@@ -95,6 +95,11 @@ function button(texter, type) {
95
95
  if (_texter.tagName) {
96
96
  var button = _texter;
97
97
  if (button.childNodes.length) {
98
+ if (button.childNodes.length === 1 && button.childNodes[0].nodeType !== 1) {
99
+ _texter = createElement(_label);
100
+ _texter.appendChild(button.childNodes[0]);
101
+ button.appendChild(_texter);
102
+ }
98
103
  appendChild.before(button.childNodes[0], tracker);
99
104
  } else {
100
105
  appendChild(button, tracker);
@@ -18,7 +18,9 @@
18
18
  overflow: hidden;
19
19
  outline: none;
20
20
  }
21
-
21
+ >.label{
22
+ position: relative;
23
+ }
22
24
 
23
25
  @keyframes busy-loading {
24
26
  0% {
@@ -139,9 +141,11 @@
139
141
  margin-left: -2px;
140
142
  height: 200%;
141
143
  background: #fff9;
144
+ background: inherit;
145
+ opacity: 0.9;
142
146
  border-left: 1px #fff3 solid;
143
147
  border-right: 3px #fff6 solid;
144
- animation: ltr 3s linear 1s infinite;
148
+ animation: ltr 2s linear 0s infinite;
145
149
  }
146
150
 
147
151
  }
@@ -1 +1 @@
1
- ▢<s>✓</s>
1
+ <s>✓</s>
@@ -1,13 +1,15 @@
1
1
  & {
2
- height: 1em;
3
- width: 1em;
2
+ height: .8em;
3
+ width: .8em;
4
4
  position: relative;
5
- margin-right: 4px;
5
+ border: .1em solid;
6
+ margin-right: .3em;
6
7
  font-family: sans-serif;
7
8
  display: inline-block;
8
9
  line-height: 1;
9
10
  text-align: center;
10
- padding-top: 1%;
11
+ margin-top: .15em;
12
+ border-radius: .12em;
11
13
  vertical-align: middle;
12
14
 
13
15
  >s {
@@ -17,13 +19,13 @@
17
19
  font-weight: bold;
18
20
  left: 0;
19
21
  right: 0;
20
- top: -.15em;
22
+ top: -.4em;
21
23
  }
22
24
  }
23
25
 
24
26
 
25
27
  &.checked {
26
28
  >s {
27
- display: inline;
29
+ display: block;
28
30
  }
29
31
  }
@@ -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
- v = v - rgb2v(r, g, b);
10
- return trim3v(r + v, g + v, b + v);
9
+ var d = v - rgb2v(r, g, b);
10
+ return [r + d, g + d, b + d];
11
11
  };
12
12
 
13
- var trim3v = function (r, g, b) {
14
- do {
15
- var rest = 0;
16
- var count = 1;
17
- if (r >= 255) rest += (r - 255) * .299, r = 255, count -= .299;
18
- if (g >= 255) rest += (g - 255) * .587, g = 255, count -= .587;
19
- if (b >= 255) rest += (b - 255) * .114, b = 255, count -= .114;
20
- if (count > 0.01 && rest > 0) {
21
- rest = rest / count;
22
- if (r < 255) r += rest;
23
- if (g < 255) g += rest;
24
- if (b < 255) b += rest;
25
- }
26
- } while (rest > 0);
27
- do {
28
- var rest = 0;
29
- var count = 1;
30
- if (r <= 0) rest += r * .299, r = 0, count -= .299;
31
- if (g <= 0) rest += g * .587, g = 0, count -= .587;
32
- if (b <= 0) rest += b * .114, b = 0, count -= .114;
33
- if (count > 0.01 && rest > 0) {
34
- rest = rest / count;
35
- if (r > 0) r += rest;
36
- if (g > 0) g += rest;
37
- if (b > 0) b += rest;
38
- }
39
- } while (rest > 0);
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 = Math.min(r, g, b);
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 Math.max(r, g, b) / 255;
82
+ return max(r, g, b) / 255;
51
83
  };
52
84
  var rgb4s = function (r, g, b, s) {
53
- var m = Math.min(r, g, b);
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 / Math.max(r, g, b);
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
- var u = sqrt(3) / 3;
75
- var pu = 1 / 3;
76
- var cosa = cos(theta);
77
- var sina = sin(theta);
78
- var vera = 1 - cosa;
79
- var red = (cosa + pu * vera) * r + (pu * vera - u * sina) * g + (pu * vera + u * sina) * b;
80
- var green = (pu * vera + u * sina) * r + (cosa + pu * vera) * g + (pu * vera - u * sina) * b;
81
- var blue = (pu * vera - u * sina) * r + (pu * vera + u * sina) * g + (cosa + pu * vera) * b;
82
- var m = mode([red, green, blue]);
83
- var _min = min(red, green, blue);
84
- var d = [m - red, m - green, m - blue]
85
- if (_min < 0) {
86
- var index = red < 0 ? 0 : green < 0 ? 1 : 2;
87
- var [dr, dg, db] = single(d, -_min / d[index]);
88
- } else {
89
- var _max = max(red, green, blue);
90
- if (_max > 255) {
91
- var index = red > 255 ? 0 : green > 255 ? 1 : 2;
92
- var [dr, dg, db] = single(d, (255 - _max) / d[index]);
93
- } else {
94
- var dr, dg, db = dr = dg = 0;
95
- }
96
- }
97
- red += dr;
98
- green += dg;
99
- blue += db;
100
- [red, green, blue] = rgb4s(red, green, blue, s);
101
- [red, green, blue] = rgb4v(red, green, blue, v);
102
- return [red, green, blue, a];
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
- c1 = parse(c1);
229
- c2 = parse(c2);
230
- c1 = normal(c1);
231
- c2 = normal(c2);
232
- var [r1, g1, b1] = single(c1);
233
- var [r2, g2, b2] = single(c2);
234
- var c = [g1 * b2 - g2 * b1, b1 * r2 - b2 * r1, r1 * g2 - r2 * g1];
235
- var d = r1 * r2 + g1 * g2 + b1 * b2;
236
- var e = c[0] > 0 ? mode(c) : -mode(c);
237
- var theta = Math.asin(e > 1 ? 1 : e < -1 ? -1 : e);
238
- var phi = Math.acos(d > 1 ? 1 : d < -1 ? -1 : d);
239
- if (theta < 0) {
240
- theta = Math.PI * 2 - phi;
241
- } else {
242
- theta = phi;
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 *= .299;
277
- g *= .587;
278
- b *= .114;
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,
@@ -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
- var c = color.rotate(sample, z * (Math.PI + Math.PI));
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 = "#ff4949";
88
+ var sample = "#ff0000";
91
89
  var buildpad = function (pad, c = sample) {
92
90
  var canvas = getCanvas(pad);
93
91
  canvas.width = 256;
@@ -310,7 +310,11 @@ var parseData = function (sourceText) {
310
310
  sourceText = sourceText.replace(/^[^\(]+\(([\s\S]*)\)[^\)]*$/, "$1");
311
311
  }
312
312
  try {
313
- sourceText = parseYML(sourceText);
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
- oh(parseData(xhr.response || xhr.responseText || xhr.statusText || xhr.status));
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 = {
@@ -121,18 +121,8 @@ function main() {
121
121
  minWidth = arg;
122
122
  }
123
123
  });
124
- var src = element.getAttribute("src") || element.getAttribute("ng-src") || element.getAttribute("v-src");
125
- if (src) {
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();