efront 3.4.4 → 3.5.0

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
@@ -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 @@
1
+ <table :src=[fields,data]></table>
@@ -0,0 +1,24 @@
1
+ var fields = refilm`
2
+ 路径/path
3
+ 操作 btn ${[{
4
+ name: "删除",
5
+ do(e) {
6
+ console.log(e)
7
+ alert("暂不支持删除!");
8
+ }
9
+ }]}
10
+ `;
11
+ console.log(fields)
12
+ function main() {
13
+ var page = div();
14
+ page.innerHTML = list;
15
+ var a = data.from("share", a => {
16
+ if (a) return a.map(b => ({ path: b }));
17
+ });
18
+ renderWithDefaults(page, {
19
+ data: a,
20
+ fields,
21
+ });
22
+ console.log(a)
23
+ return page;
24
+ }
@@ -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;
@@ -8,6 +8,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);
@@ -1 +1 @@
1
- ▢<s>✓</s>
1
+ <s>✓</s>
@@ -1,12 +1,16 @@
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;
11
+ margin-top: .15em;
12
+ border-radius: .12em;
13
+ vertical-align: middle;
10
14
 
11
15
  >s {
12
16
  display: none;
@@ -15,13 +19,13 @@
15
19
  font-weight: bold;
16
20
  left: 0;
17
21
  right: 0;
18
- top: -.15em;
22
+ top: -.4em;
19
23
  }
20
24
  }
21
25
 
22
26
 
23
27
  &.checked {
24
28
  >s {
25
- display: inline;
29
+ display: block;
26
30
  }
27
31
  }
@@ -37,6 +37,7 @@ var trim3v = function (r, g, b) {
37
37
  if (b > 0) b += rest;
38
38
  }
39
39
  } while (rest > 0);
40
+
40
41
  return [r, g, b];
41
42
  }
42
43
 
@@ -56,7 +57,7 @@ var rgb4s = function (r, g, b, s) {
56
57
  g -= m;
57
58
  b -= m;
58
59
  }
59
- s = s * 255 / Math.max(r, g, b);
60
+ s = s * 255 / (Math.max(r, g, b) || 1);
60
61
  if (s) {
61
62
  r *= s;
62
63
  g *= s;
@@ -276,7 +277,7 @@ var rgb2v = function (r, g, b) {
276
277
  r *= .299;
277
278
  g *= .587;
278
279
  b *= .114;
279
- return r + g + b;
280
+ return Math.max(r, g, b) / .587;
280
281
  };
281
282
  var v2rgb = function (v, r, g, b) {
282
283
  var t = r + g + b || 1;
@@ -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
  }
@@ -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();
@@ -1,6 +1,6 @@
1
1
 
2
2
  var _slider = createElement(div);
3
- var getGenerator = function (container, parsedSrc) {
3
+ var getGenerator = function (container) {
4
4
  if (!container) return;
5
5
  var template = document.createElement("div");
6
6
  var templates = [].concat.apply([], container.childNodes).filter(a => {
@@ -20,26 +20,27 @@ var getGenerator = function (container, parsedSrc) {
20
20
  appendChild(template, templates);
21
21
  container.insertBefore = _slider.insertBefore;
22
22
  container.appendChild = _slider.appendChild;
23
+ var scopes = container.$parentScopes.concat(container.$scope);
23
24
  return function (index, com) {
24
25
  if (!com) {
25
26
  if (!container.src || index >= container.src.length) return;
26
27
  com = container.src[index];
27
28
  }
28
29
  if (!com) return;
29
- var template1 = template.cloneNode();
30
- template1.innerHTML = template.innerHTML;
30
+ var template1 = template.cloneNode(true);
31
31
  if (!template1.childNodes.length) return template1;
32
32
  var item = template1.childNodes[0];
33
33
  item.with = [].concat.apply([], template1.childNodes).slice(1);
34
+ var parsedSrc = container.$src;
34
35
  if (parsedSrc) {
35
36
  var { keyName, itemName, indexName } = parsedSrc;
36
- var newScope = extend(Object.create(container.$scope), {
37
+ var newScope = {
37
38
  [keyName || '$key']: index,
38
39
  [itemName || '$item']: com,
39
40
  [indexName || '$index']: index
40
- });
41
- var newItem = render(item, newScope);
42
- newItem.with = render(item.with, newScope);
41
+ };
42
+ var newItem = render(item, newScope, scopes);
43
+ if (item.with.length) newItem.with = render(item.with, newScope, scopes);
43
44
  } else {
44
45
  var newScope = container.src[index];
45
46
  if (!isObject(newScope)) newScope = {
@@ -59,8 +60,8 @@ var getGenerator = function (container, parsedSrc) {
59
60
  return this.$item;
60
61
  }
61
62
  }
62
- var newItem = render(item, newScope, [container.$scope]);
63
- newItem.with = render(newItem.with = item.with, newScope, [container.$scope]);
63
+ var newItem = render(item, newScope, scopes);
64
+ newItem.with = render(newItem.with = item.with, newScope, scopes);
64
65
  }
65
66
  return newItem;
66
67
  };
@@ -14,6 +14,8 @@
14
14
 
15
15
  >.button {
16
16
  border: none;
17
+ width: 100%;
18
+ cursor: pointer;
17
19
 
18
20
  >.track {
19
21
 
@@ -433,18 +433,8 @@ function list() {
433
433
  bindSrc = container;
434
434
  container = div();
435
435
  } else if (container && !generator) {
436
- var src = container.getAttribute("src") || container.getAttribute("ng-src") || container.getAttribute("v-src");
437
- if (src) {
438
- var parsedSrc = render.parseRepeat(src);
439
- if (!parsedSrc) {
440
- container.setAttribute("ng-src", src);
441
- container.removeAttribute("src");
442
- var generator = getGenerator(container);
443
- } else {
444
- container.setAttribute("ng-src", parsedSrc.srcName);
445
- container.removeAttribute("src");
446
- var generator = getGenerator(container, parsedSrc);
447
- }
436
+ if ("$src" in container) {
437
+ generator = getGenerator(container);
448
438
  care(container, function () {
449
439
  var index = container.index();
450
440
  container.clean();
@@ -110,18 +110,6 @@ function main(elem, mode) {
110
110
  }
111
111
  }
112
112
  mode = mode ? mode.toLowerCase() : "horizonal";
113
- var src = elem.getAttribute("src") || elem.getAttribute("ng-src") || elem.getAttribute("v-src");
114
- if (src) {
115
- var parsedSrc = render.parseRepeat(src);
116
- if (!parsedSrc) {
117
- elem.removeAttribute("src");
118
- var generator = getGenerator(elem);
119
- } else {
120
- elem.removeAttribute("src");
121
- var generator = getGenerator(elem, parsedSrc);
122
- }
123
- elem.setAttribute("ng-src", parsedSrc ? parsedSrc.srcName : src);
124
- }
125
113
 
126
114
  switch (mode) {
127
115
  case "i":
@@ -130,6 +118,7 @@ function main(elem, mode) {
130
118
  case "t":
131
119
  case "tree":
132
120
  if (elem) {
121
+ var generator = getGenerator(elem);
133
122
  tree(elem, function (index, item) {
134
123
  var e = generator(index, item);
135
124
  if (!e || e.children.length) return e;
@@ -165,9 +154,9 @@ function main(elem, mode) {
165
154
  var emit = function (item) {
166
155
  active(elem, item, item.value);
167
156
  };
168
- if (src) {
157
+ if ("$src" in elem) {
169
158
  care(elem, function (src) {
170
- menuList(elem, getTreeFromData(src), emit, generator, direction);
159
+ menuList(elem, getTreeFromData(src), emit, direction);
171
160
  });
172
161
  } else {
173
162
  var nodes = getArrayNodes(elem);
@@ -8,7 +8,7 @@ var release = function () {
8
8
  var clear = function () {
9
9
  clearTimeout(releaseTimer);
10
10
  };
11
- function main(page, items, active, generator, direction = 'y') {
11
+ function main(page, items, active, direction = 'y') {
12
12
  if (!isNode(page)) {
13
13
  var page = div();
14
14
  }
@@ -21,7 +21,7 @@ function main(page, items, active, generator, direction = 'y') {
21
21
  if (!item.children || !item.children.length) return;
22
22
  var clone = template.cloneNode();
23
23
  clone.innerHTML = template.innerHTML;
24
- var menu = main(clone, item.children, active, generator);
24
+ var menu = main(clone, item.children, active);
25
25
  mounted_menus.push(menu);
26
26
 
27
27
  page.active = menu;
@@ -46,7 +46,7 @@ function main(page, items, active, generator, direction = 'y') {
46
46
  template.innerHTML = page.innerHTML;
47
47
  page.tempalte = template;
48
48
  }
49
- if (!generator || !page.children.length || page.menutype === 1) {
49
+ if (!page.children.length || page.menutype === 1) {
50
50
  page.innerHTML = menuList;
51
51
  page.menutype = 1;
52
52
  var hasIcon = function () {
@@ -82,6 +82,7 @@ function main(page, items, active, generator, direction = 'y') {
82
82
  this.$scope.hasIcon = hasIcon();
83
83
  });
84
84
  } else {
85
+ var generator = getGenerator(page);
85
86
  list(page, function (index) {
86
87
  var elem = generator(index);
87
88
  if (!elem) return;
@@ -1,4 +1,4 @@
1
1
  <a ng-repeat="o in options" ng-click="select(o)" ng-class="{activate:o===options.active}">
2
- <r>◯<s>●</s></r>
2
+ <r><s></s></r>
3
3
  <span ng-bind=o.name||o></span>
4
4
  </a>
@@ -6,18 +6,36 @@
6
6
  font-family: sans-serif;
7
7
  display: inline-block;
8
8
  position: relative;
9
- margin-right: 4px;
10
- line-height: 1;
9
+ margin-right: .3em;
11
10
  text-align: center;
12
-
11
+ vertical-align: middle;
12
+ width: 1em;
13
+ height: 1em;
14
+ border: .1em solid;
15
+ border-radius: 50%;
16
+
13
17
  >s {
14
18
  display: none;
15
19
  position: absolute;
16
20
  text-decoration: none;
17
- left: 0;
18
- right: 0;
19
- top: 0;
20
- bottom: 0;
21
+ overflow: hidden;
22
+ border-radius: 50%;
23
+ width: .4em;
24
+ height: .4em;
25
+ top: 50%;
26
+ left: 50%;
27
+ margin: -.2em;
28
+
29
+ text-indent: -.5em;
30
+
31
+ &:after {
32
+ position: absolute;
33
+ left: 0;
34
+ top: 0;
35
+ display: block;
36
+ content: "";
37
+ border: .3em solid;
38
+ }
21
39
  }
22
40
  }
23
41
 
@@ -25,7 +43,7 @@
25
43
  &.activate {
26
44
  >r {
27
45
  >s {
28
- display: inline;
46
+ display: block;
29
47
  }
30
48
  }
31
49
  }