efront 3.16.0 → 3.17.2

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.
@@ -11,9 +11,9 @@ var fields = refilm`
11
11
  appendChild(e, l);
12
12
  };
13
13
  if (e.data.address) setAddress(e.data.address);
14
- else data.from("iplocation", { ip: m[0] }, function (a) {
15
- e.data.address = a.address;
14
+ else e.data.address = data.from("iplocation", { ip: m[0] }, function (a) {
16
15
  setAddress(a.address);
16
+ return a.address;
17
17
  });
18
18
  }
19
19
  return e;
@@ -24,8 +24,11 @@ var fields = refilm`
24
24
  端口/port ${async function (e) {
25
25
  var { data, field } = e;
26
26
  var ports = data[field.key].split(/,/);
27
- var loaded = [];
28
- for (var p of ports) {
27
+ var loaded = data.loaded || ports;
28
+ data.loaded = loaded;
29
+ e.innerHTML = loaded.join(' ');
30
+ if (data.loaded === ports) for (let cx = 0, dx = ports.length; cx < dx; cx++) {
31
+ var p = ports[cx];
29
32
  var p0 = p;
30
33
  var protocol = /^https/.test(p) ? "https://" : "http://";
31
34
  p = p.replace(/[^\d]+/g, '');
@@ -40,18 +43,18 @@ var fields = refilm`
40
43
  }
41
44
  var xhr = await cross("options", `${protocol}${ip}${p}/:version`);
42
45
  if (xhr.responseText === 'efront ' + data.version) {
43
- loaded.push(`<span style="color:green">${p0}</span>`);
46
+ loaded[cx] = (`<span style="color:green">${p0}</span>`);
44
47
  } else {
45
- loaded.push(`<span style="color:red">${p0}</span>`);
48
+ loaded[cx] = (`<span style="color:red">${p0}</span>`);
46
49
  }
47
50
  } catch (e) {
48
- loaded.push(`<span style="color:gray">${p0}</span>`);
51
+ loaded[cx] = (`<span style="color:gray">${p0}</span>`);
49
52
  }
50
- e.innerHTML = loaded.join('');
53
+ e.innerHTML = loaded.join(' ');
51
54
  }
52
55
  }}
53
- 版本 / version text
54
- 进程 / pid
56
+ 版本/version input
57
+ 进程/pid
55
58
  `;
56
59
  function main() {
57
60
  var page = div();
@@ -1,4 +1,5 @@
1
1
  >:not([layer]) {
2
2
  padding: 50px 10px 0;
3
3
  min-height: 100%;
4
+ display: block;
4
5
  }
@@ -42,6 +42,11 @@ var join = function (o) {
42
42
  return s;
43
43
  };
44
44
  function stringify(memery, preload) {
45
+ if (!isEmpty(preload)) {
46
+ preload = [].concat(preload);
47
+ var i = preload.indexOf(memery) + 1;
48
+ if (i > 0) return i + ',';
49
+ }
45
50
  if (memery === undefined) return '';
46
51
  if (check(memery)) return String(memery);
47
52
  if (typeof memery === 'symbol') return symbol(memery);
@@ -57,17 +62,22 @@ function stringify(memery, preload) {
57
62
  var trimed = [memery instanceof Array ? [] : {}];
58
63
  var objects = [trimed[0]];
59
64
  if (!isEmpty(preload)) dist = dist.concat(preload);
65
+ var preload_used = false;
60
66
  while (rest.length) {
61
67
  var memery = rest.shift();
62
68
  var o = objects.shift();
63
69
  var inc = 0, arr = [];
64
70
  o[""] = arr;
65
71
  o._ = dist.indexOf(memery.constructor);
72
+ if (o._ > 0) preload_used = true;
66
73
  for (var k in memery) {
67
74
  var m = memery[k];
68
75
  f: if (typeof m === 'function') {
69
76
  for (var k in m) break f;
70
- if (dist.indexOf(m) >= 0) break f;
77
+ if (dist.indexOf(m) >= 0) {
78
+ preload_used = true;
79
+ break f;
80
+ }
71
81
  continue;
72
82
  }
73
83
  if (inc === +k && k !== '') {
@@ -113,7 +123,7 @@ function stringify(memery, preload) {
113
123
  }
114
124
  }
115
125
  var result = trimed.map(join).join(',');
116
- if (trimed.length === 1) result += ',';
126
+ if (trimed.length === 1 && preload_used) result += ',';
117
127
  return result;
118
128
  }
119
129
  var create = function (a, dst) {
@@ -181,7 +191,7 @@ function parse(string, preload) {
181
191
  reg4.lastIndex = cx;
182
192
  var m = reg4.exec(string);
183
193
  o._ = typeid || string.slice(cx, m.index);
184
- cx = reg4.lastIndex;
194
+ cx = m.index;
185
195
  }
186
196
  break;
187
197
  case "/":
@@ -212,12 +222,10 @@ function parse(string, preload) {
212
222
  trimed.push(s);
213
223
  break;
214
224
  default:
215
- reg4.lastIndex = cx + 1;
225
+ reg4.lastIndex = cx;
216
226
  var match = reg4.exec(string);
217
227
  var index = match.index;
218
-
219
228
  var s = string.slice(cx, index);
220
- cx = index;
221
229
  switch (s) {
222
230
  case "null":
223
231
  s = null;
@@ -244,8 +252,10 @@ function parse(string, preload) {
244
252
 
245
253
  }
246
254
  trimed.push(s);
255
+ cx = index;
247
256
  }
248
257
  }
258
+ if (string.charAt(string.length - 1) === ',') trimed.push(undefined);
249
259
  var dist = [trimed[0]];
250
260
  if (!isEmpty(preload)) dist = dist.concat(preload);
251
261
  var preloads_length = dist.length - 1;
@@ -264,7 +274,8 @@ function parse(string, preload) {
264
274
  var t = dist[index];
265
275
  var arr = o[""];
266
276
  delete o[""];
267
- for (var k in arr) {
277
+ delete o._;
278
+ if (arr) for (var k in arr) {
268
279
  t[k] = dist[arr[k]];
269
280
  }
270
281
  for (var k in o) {
@@ -272,12 +283,15 @@ function parse(string, preload) {
272
283
  t[dist[k]] = dist[v];
273
284
  }
274
285
  }
286
+ if (trimed.length > 1 && typeof trimed[0] === 'number') {
287
+ return dist[trimed[0]];
288
+ }
275
289
  return dist[0];
276
290
  }
277
291
  module.exports = {
278
292
  stringify,
279
293
  parse(data, preload) {
280
- if (!/^\s*([\[\{]|\[\s*\]|\{\s*\})/.test(data)) return parse(data, preload);
294
+ if (!/^\s*([\[\{]|\[\s*\]|\{\s*\})$/.test(data)) return parse(data, preload);
281
295
  if (/^\s*\{[\d\,\:\s]*\}\s*,/.test(data)) return parse(data, preload);
282
296
  if (/^\s*\[[\d\,\:\s]*\]\s*,/.test(data)) return parse(data, preload);
283
297
  return JSON.parse(data, preload);
@@ -22,12 +22,12 @@ function inertia(gun) {
22
22
  }
23
23
  var smooth = function () {
24
24
  var args = spd.read();
25
- if (decrease && args.filter(a => Math.abs(a) > .5).length === 0) {
25
+ if (decrease && args.filter(a => Math.abs(a) > 2).length === 0) {
26
26
  spd.reset();
27
27
  _decrease();
28
28
  return;
29
29
  }
30
- if (args.filter(a => Math.abs(a) > .1).length === 0) {
30
+ if (args.filter(a => Math.abs(a) > .5).length === 0) {
31
31
  spd.reset();
32
32
  return;
33
33
  }
@@ -8,9 +8,13 @@ function lazy(run, time = false) {
8
8
  var fire = function () {
9
9
  if (time >= 0) {
10
10
  if (ing === true) {
11
- ing = wait(fire, +time);
11
+ ing = wait(fire, +time / 2);
12
12
  }
13
- else if (isFinite(ing)) {
13
+ else if (isFinite(ing) && ing !== 0) {
14
+ wait(fire, +time);
15
+ ing = 0;
16
+ }
17
+ else if (ing === 0) {
14
18
  ing = run.apply(that, args);
15
19
  }
16
20
  else {
@@ -9,5 +9,5 @@
9
9
  <span ng-bind="user.roles"></span>
10
10
  </span>
11
11
  </header>
12
- <ylist mode=inline ng-src="menu in menus" class="sidebar-menu" ng-active="menus.open(event.value)">
12
+ <ylist mode=inline ng-src="menu in menus" class="sidebar-menu" ng-active="menus.open(menu)">
13
13
  </ylist>
@@ -1,15 +1,14 @@
1
1
  function main(elem) {
2
2
  elem = elem || document.createElement("song");
3
- if (!elem.innerHTML) elem.innerHTML = song;
4
3
  var $scope = {
5
4
  filterTime,
6
5
  png: img,
7
6
  playState: kugou$playState,
8
7
  song: {},
9
- musicList:kugou$musicList,
8
+ musicList: kugou$musicList,
10
9
  };
11
- render(elem, $scope);
12
10
  care(elem, function (item) {
11
+ if (!elem.innerHTML) elem.innerHTML = song;
13
12
  var songName = String(item.name || item.songName || item.songname_original || '');
14
13
  var singerName = String(item.singer || item.singerName || item.singername || '');
15
14
  if (~songName.indexOf(singerName)) {
@@ -24,6 +23,7 @@ function main(elem) {
24
23
  songMarked: mark(songName, elem.mark),
25
24
  singerMarked: mark(singerName, elem.mark)
26
25
  };
26
+ render(elem.children, $scope);
27
27
  });
28
28
  return block(elem);
29
29
  }
@@ -1,32 +1,39 @@
1
1
  var id = 0;
2
2
  function Item(value) {
3
- this.value = isObject(value) ? value : Object.create(value);
4
- this.valueOf = function () {
5
- return value;
6
- };
7
- this.toString = function () {
8
- return String(value);
9
- };
10
3
  this.children = this;
11
- if (value.children instanceof Array) {
12
- var children = value.children.map(item => new Item(item));
13
- children.forEach(item => item.parent = item);
14
- this.push.apply(this, children);
15
- }
16
- if (isObject(value)) {
17
- this.name = value.name;
18
- this.tab = value.tab;
19
- this.icon = value.icon;
20
- this.color = value.color;
21
- this.test = value.test;
22
- this.line = value.line;
23
- }
24
4
  this.count = 0;//子项中的叶子节点数
25
5
  this.total = 0;//子项中的节点数
26
6
  this.crack = 0;
27
7
  this.id = ++id;
8
+ this.extends(value);
28
9
  }
29
10
  Item.prototype = extend([], {
11
+ extends(value) {
12
+ this.value = value;
13
+ if (value.children instanceof Array) {
14
+ var children = value.children.map(item => new Item(item));
15
+ children.forEach(item => item.parent = item);
16
+ this.push.apply(this, children);
17
+ }
18
+ if (isObject(value)) {
19
+ this.name = value.name;
20
+ this.tab = value.tab;
21
+ this.icon = value.icon;
22
+ this.color = value.color;
23
+ this.test = value.test;
24
+ this.line = value.line;
25
+ }
26
+ else {
27
+ this.name = value;
28
+ }
29
+ },
30
+
31
+ valueOf() {
32
+ return this.value;
33
+ },
34
+ toString() {
35
+ return String(this.value);
36
+ },
30
37
  isClosed() {
31
38
  return !!this.value.closed;
32
39
  },
@@ -34,14 +41,21 @@ Item.prototype = extend([], {
34
41
  this.value.closed = value;
35
42
  },
36
43
  isActive() {
37
- return !!(this.value.active || this.value.actived);
44
+ if (isObject(this.value)) {
45
+ if ("active" in this.value) return this.value.active;
46
+ if ('actived' in this.value) return this.value.actived;
47
+ }
48
+ return !!this.actived;
38
49
  },
39
50
  setActive(value) {
40
- if ('active' in this.value) {
41
- this.value.active = value;
42
- } else {
43
- this.value.actived = value;
51
+ if (isObject(this.value)) {
52
+ if ('active' in this.value) {
53
+ this.value.active = value;
54
+ } else {
55
+ this.value.actived = value;
56
+ }
44
57
  }
58
+ this.actived = value;
45
59
  },
46
60
  isSelected() {
47
61
  return !!this.value.selected;
@@ -53,3 +67,4 @@ Item.prototype = extend([], {
53
67
  return !!this.value.class;
54
68
  }
55
69
  });
70
+ Item.prototype.isActived = Item.prototype.isActive;
@@ -11,26 +11,24 @@ function hasEnterStyle(e) {
11
11
  return e.initialStyle || e.enterStyle || e.leavingStyle || e.leaveStyle;
12
12
  }
13
13
 
14
- function _onappend(node, event) {
14
+ function _onappend(node, append = createEvent("append"), mount = createEvent("mounted")) {
15
15
  if (node.isMounted) return;
16
16
  if (node.nodeType === 1 || node.nodeType === 8) node.isMounted = true;
17
- if (!event) {
18
- event = createEvent("append");
19
- }
20
- dispatch(node, event);
17
+ dispatch(node, append);
21
18
  var onappend = node.onappend;
22
19
  if (isArray(onappend)) {
23
20
  onappend.map(function (append_handler) {
24
- append_handler.call(this, event);
21
+ append_handler.call(this, append);
25
22
  }, node);
26
23
  }
27
24
  if (isFunction(onappend)) {
28
- onappend.call(node, event);
25
+ onappend.call(node, append);
29
26
  }
30
27
  var children = [].concat.apply([], node.childNodes);
31
28
  if (children) for (var cx = 0, dx = children.length; cx < dx; cx++) {
32
- _onappend(children[cx], event);
29
+ _onappend(children[cx], append, mount);
33
30
  }
31
+ dispatch(node, mount);
34
32
  }
35
33
  function appendChild(parent, obj, transition) {
36
34
  if (transition === false) {
@@ -1,7 +1,17 @@
1
1
  var change = function (data) {
2
2
  zimoli.go(data, this.params, this);
3
3
  };
4
+ var gosrc = function () {
5
+ if (this.hasAttribute('src')) {
6
+ var src = this.getAttribute('src');
7
+ if (src !== this.src) {
8
+ this.src = src;
9
+ if (src) cast(this, this.getAttribute('src'));
10
+ }
11
+ }
12
+ };
4
13
  function container(element) {
5
14
  care(element, change);
15
+ element.renders = [gosrc];
6
16
  return element;
7
17
  }
@@ -0,0 +1,7 @@
1
+ function createItemTarget(item) {
2
+ var $scope = {};
3
+ var { itemName } = this.$src;
4
+ if (itemName) $scope[itemName] = item;
5
+ else $scope.$item = item;
6
+ return { $scope };
7
+ }
@@ -22,12 +22,15 @@ var setZIndex = function () {
22
22
  if (!isElement(target)) return;
23
23
  var computed = getComputedStyle(target);
24
24
  var z0 = zIndex(0);
25
- if (!z || computed.zIndex < z0) {
25
+ if (!z || +computed.zIndex < z0) {
26
26
  z = zIndex();
27
27
  if (/^(absolute|fixed)$/i.test(computed.position)) {
28
28
  css(target, { zIndex: z });
29
29
  }
30
30
  }
31
+ else if (z < +computed.zIndex) {
32
+ z = +computed.zIndex;
33
+ }
31
34
  };
32
35
  function drag(target, initialEvent, preventOverflow, isMovingSource) {
33
36
  if (/^(?:select|input|textarea)$/i.test(initialEvent.target.tagName)) return;
@@ -39,7 +42,6 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
39
42
  } else {
40
43
  var extraTargets = target.with ? [].concat(target.with) : [];
41
44
  }
42
-
43
45
  var target_offset = getOffset(target);
44
46
  var saved_delta = { x: target_offset[0] - initialEvent.screenX, y: target_offset[1] - initialEvent.screenY };
45
47
  var clone;
@@ -47,8 +47,8 @@ var getGenerator = function (container, tagName = 'item') {
47
47
  [itemName || '$item']: com,
48
48
  [indexName || '$index']: index
49
49
  };
50
- var newItem = render(element, newScope, scopes);
51
- if (element.with) newItem.with = render(element.with, newScope, scopes);
50
+ var newItem = render(element, newScope, scopes, false);
51
+ if (element.with) newItem.with = render(element.with, newScope, scopes, false);
52
52
  } else {
53
53
  var newScope = container.src[index];
54
54
  if (!isObject(newScope)) newScope = {
@@ -68,8 +68,8 @@ var getGenerator = function (container, tagName = 'item') {
68
68
  return this.$item;
69
69
  }
70
70
  }
71
- var newItem = render(element, newScope, scopes);
72
- if (element.with) newItem.with = render(newItem.with = element.with, newScope, scopes);
71
+ var newItem = render(element, newScope, scopes, false);
72
+ if (element.with) newItem.with = render(newItem.with = element.with, newScope, scopes, false);
73
73
  }
74
74
  return newItem;
75
75
  };
@@ -5,8 +5,10 @@ function getTreeFromData(array) {
5
5
  root.count = 0;
6
6
  var map = {};
7
7
  array = array.filter(a => !!a);
8
+ var active_item = null;
8
9
  array.forEach(function (data) {
9
10
  var item = new Item(data);
11
+ if (!active_item && item.isActived()) active_item = item;
10
12
  if (data.id) {
11
13
  map[data.id] = item;
12
14
  } else {
@@ -46,5 +48,6 @@ function getTreeFromData(array) {
46
48
  return item.count = count;
47
49
  };
48
50
  run(root);
51
+ root.actived = active_item;
49
52
  return root;
50
53
  }
@@ -381,7 +381,7 @@ function ylist(container, generator, $Y) {
381
381
  }
382
382
  if (deltay < 1) y = target_y;
383
383
  else if (deltay > count || deltay > 3) {
384
- y = last_y + (target_y > last_y ? .8 : -.8);
384
+ y = last_y + Math.max(2 * (target_y > last_y ? .8 : -.8));
385
385
  }
386
386
  else {
387
387
  y = (target_y + last_y) / 2;
@@ -90,7 +90,11 @@ var getTreeNodes = function (elem) {
90
90
  [].forEach.call(elem.children, run);
91
91
  return nodes;
92
92
  };
93
-
93
+ var emitEvent = function (item, event) {
94
+ event.preventDefault(true);
95
+ if (item.disabled) return;
96
+ active(this, item, item, createItemTarget.call(this, item));
97
+ }
94
98
  function bindGlobalkey(elem, keymap, emit) {
95
99
  if (elem.keymap) {
96
100
  for (var off of elem.keyoff) {
@@ -99,14 +103,6 @@ function bindGlobalkey(elem, keymap, emit) {
99
103
  }
100
104
  if (!keymap) return;
101
105
  var keyoff = [];
102
- var emitEvent = function (item, event) {
103
- event.preventDefault(true);
104
- var $scope = {};
105
- var { itemName } = this.$src;
106
- if (itemName) $scope[itemName] = item;
107
- else $scope.menu = item, $scope.$item = item;
108
- emit(item, { $scope });
109
- }
110
106
  for (let k in keymap) {
111
107
  keyoff.push(bind("keydown." + k)(elem, emitEvent.bind(elem, keymap[k])));
112
108
  }
@@ -153,10 +149,10 @@ function main(elem, mode) {
153
149
  mode = "inline";
154
150
  if (elem) {
155
151
  var generator = getGenerator(elem, 'menu-item');
156
- tree(elem, function (index, item) {
152
+ tree(elem, function (index, item, menu) {
157
153
  var e = generator(index, item);
158
154
  if (!e || e.children.length) return e;
159
- var m = menuItem(e, item, elem.useIcon);
155
+ var m = menuItem(e, menu, elem.useIcon);
160
156
  return m;
161
157
  });
162
158
  care(elem, function (data) {
@@ -198,8 +194,8 @@ function main(elem, mode) {
198
194
  case "y":
199
195
  case "vertical":
200
196
  if (!direction) mode = "vertical", direction = 'y';
201
- var emit = function (item, target) {
202
- active(elem, item.value, item, target);
197
+ var emit = function (item) {
198
+ active(elem, item.value, item, createItemTarget.call(elem, item.value));
203
199
  };
204
200
  if ("$src" in elem) {
205
201
  getGenerator(elem, 'menu-item');
@@ -209,6 +205,13 @@ function main(elem, mode) {
209
205
  bindGlobalkey(elem, src.keymap, emit);
210
206
  src0.splice(0, src0.length);
211
207
  var s = getTreeFromData(src);
208
+ if (s.actived) {
209
+ elem.selected = s.actived;
210
+ }
211
+ else if (direction === 't') {
212
+ elem.selected = s[0];
213
+ if (elem.selected) elem.selected.setActive(true);
214
+ }
212
215
  var i = 0;
213
216
  while (i < s.length) {
214
217
  src0.push.apply(src0, s.slice(i, i += 1000));
@@ -4,7 +4,7 @@ function main(elem, scope, hasIcon) {
4
4
  item.innerHTML = menuItem;
5
5
  if (isObject(scope) && scope !== item.$scope) {
6
6
  }
7
- else {
7
+ else if (item.$scope) {
8
8
  var scope = item.$scope;
9
9
  }
10
10
  if (scope.menu) scope = scope.menu;
@@ -17,7 +17,7 @@ function main(elem, scope, hasIcon) {
17
17
  else {
18
18
  item.removeAttribute("disabled");
19
19
  }
20
- render(item.children, scope, hasIcon instanceof Array ? hasIcon : [{ useIcon: hasIcon, hasIcon, name, icon }]);
20
+ render(item.children, scope, hasIcon instanceof Array ? hasIcon : [{ useIcon: hasIcon, hasIcon, name, icon }], false);
21
21
  if (scope.line) item.setAttribute("line", ''), on("click")(item, preventDefault);
22
22
  if (scope.hotkey) bindAccesskey(item, scope.hotkey);
23
23
  return item;
@@ -1,6 +1,6 @@
1
1
  <menu-item ng-repeat="menu in menus" ng-if="!menu.hidden" ng-click="open.call(this)" ng-mouseleave="cancel()"
2
2
  ng-mouseenter="popMenu.call(this)" ng-mousedown="popMenu1.call(this,event)" ng-class="{'has-children':menu.children&&menu.children.length,
3
3
  'warn':menu.type==='danger'||menu.type==='warn'||menu.type==='red',
4
- 'selected':menu.selected
4
+ 'actived':menu.isActived()
5
5
  }">
6
6
  </menu-item>
@@ -166,18 +166,19 @@ function register() {
166
166
  }
167
167
  function main(page, items, active, direction = 'y') {
168
168
  if (!isNode(page)) {
169
- var page = div();
169
+ var page = document.createElement("menu-list");
170
170
  }
171
171
  var main = this;
172
172
  if (direction == 'y') page.ispop = true;
173
173
  var istoolbar = direction === 't';
174
- function popMenu(item, target) {
174
+ function popMenu(item, target, emptyFocus) {
175
175
  if (page.actived) {
176
176
  clear();
177
177
  remove(page.actived);
178
178
  }
179
+ if (emptyFocus !== false) page.setFocus(target);
180
+ if (!item.length) return;
179
181
  page.setFocus(target);
180
- if (!item.children || !item.children.length) return;
181
182
  var clone = template.cloneNode();
182
183
  clone.$parentScopes = page.$parentScopes;
183
184
  clone.$scope = page.$scope;
@@ -188,7 +189,6 @@ function main(page, items, active, direction = 'y') {
188
189
  page.actived = menu;
189
190
  menu.root = page.root || page;
190
191
  popup(menu, target);
191
- menu.setFocus(menu.firstMenu);
192
192
  if (page.ispop === true) {
193
193
  } else {
194
194
  page.ispop = 1;
@@ -234,18 +234,19 @@ function main(page, items, active, direction = 'y') {
234
234
  var pop = active(this.menu, this);
235
235
  if (pop === false) return;
236
236
  var root = page.root || page;
237
- if (root.direction === 't') {
237
+ if (root.direction === 't' || root.selected) {
238
238
  var menu = this.menu;
239
+ if (root.selected) root.selected.setActive(false);
239
240
  if (root !== page) {
240
- delete menu.children;
241
241
  var target = root.actived.target;
242
- menu = extend(target.menu, menu);
242
+ if (isObject(menu.value)) delete menu.value.children;
243
+ target.menu.extends(menu.value);
244
+ menu = target.menu;
243
245
  }
244
246
  else {
245
247
  target = this;
246
248
  }
247
- if (root.selected) root.selected.selected = false;
248
- menu.selected = true;
249
+ menu.setActive(true);
249
250
  root.selected = target.menu;
250
251
  }
251
252
  if (root.ispop === 1) root.ispop = false;
@@ -253,7 +254,7 @@ function main(page, items, active, direction = 'y') {
253
254
  while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page.actived) remove(mounted_menus.pop());
254
255
  if (!mounted_menus.length) {
255
256
  if (byMousedown === false) return;
256
- popMenu(this.menu, this);
257
+ popMenu(this.menu, this, false);
257
258
  }
258
259
  else {
259
260
  remove(mounted_menus.pop());
@@ -262,7 +263,7 @@ function main(page, items, active, direction = 'y') {
262
263
  else {
263
264
  while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page) remove(mounted_menus.pop());
264
265
  if (byMousedown === false) return;
265
- popMenu(this.menu, this);
266
+ popMenu(this.menu, this, false);
266
267
  if (!page.actived) {
267
268
  (page.root || page).blur();
268
269
  }
@@ -286,7 +287,7 @@ function main(page, items, active, direction = 'y') {
286
287
  var $scope = {
287
288
  "menu-item"(e, s) {
288
289
  var a = button(
289
- menuItem(e, s, this.hasIcon)
290
+ menuItem(e, s.value, this.hasIcon)
290
291
  );
291
292
  if (!page.firstMenu) {
292
293
  page.firstMenu = a;
@@ -307,14 +308,13 @@ function main(page, items, active, direction = 'y') {
307
308
  var itemName = src.itemName;
308
309
  var className = `{'has-children':${itemName}.children&&${itemName}.children.length,
309
310
  'warn':${itemName}.type==='danger'||${itemName}.type==='warn'||${itemName}.type==='red',
310
- 'selected':${itemName}.selected
311
+ actived:${itemName}.isActived()
311
312
  }`;
312
313
  var notHidden = `!${itemName}.hidden`;
313
314
  var generator = getGenerator(page, 'menu-item');
314
315
  list(page, function (index) {
315
316
  var item = items[index];
316
317
  if (!item) return;
317
- if (item instanceof Item) item = item.value;
318
318
  var a = $scope["menu-item"](null, item);
319
319
  if (src.itemName) a.setAttribute("e-if", notHidden);
320
320
  a.setAttribute("e-class", className);
@@ -29,7 +29,7 @@
29
29
  color: #29c;
30
30
  }
31
31
 
32
- &.selected {
32
+ &.actived {
33
33
  background: #29c;
34
34
  color: #fff;
35
35
  }
package/coms/zimoli/on.js CHANGED
@@ -253,7 +253,7 @@ var checkroot = function (element, k) {
253
253
  if (!(k in element)) {
254
254
  if (element === window && k in document) {
255
255
  element = document;
256
- if (!checkroot[k]) checkroot[k] = true, console.warn("use ", k, "on document instead of on window");
256
+ if (!checkroot[k]) checkroot[k] = true, console.warn("使用 document 的", k, "替代 window ");
257
257
  }
258
258
  }
259
259
  return element;