efront 4.19.5 → 4.19.7

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.
@@ -153,6 +153,10 @@ Html.prototype.createScoped = function (code) {
153
153
  var id = c.text.slice(1);
154
154
  vars[toCamelCase(id)] = true;
155
155
  }
156
+ else if (/\#$/.test(c.text)) {
157
+ var id = c.text.slice(0, c.text.length - 1);
158
+ vars[toCamelCase(id)] = true;
159
+ }
156
160
  }
157
161
  break;
158
162
  case QUOTED:
@@ -17,7 +17,7 @@ function main(dataid, datapath) {
17
17
  if (s.hash || s.url) {
18
18
  kugou$player.play(s);
19
19
  } else {
20
- go(datapath, s);
20
+ zimoli.go(datapath, s);
21
21
  }
22
22
  },
23
23
  datas: data.from(dataid, parseSongsList)
@@ -13,7 +13,7 @@ function Main(dataid, datapath, titleid) {
13
13
  if (s.hash) {
14
14
  this.player.play(s);
15
15
  } else {
16
- go(datapath, s);
16
+ zimoli.go(datapath, s);
17
17
  }
18
18
  },
19
19
  png: img,
@@ -5,7 +5,8 @@
5
5
  right: 0;
6
6
  bottom: -60px;
7
7
  top: 0;
8
- height: auto;
8
+ height: 100%;
9
+ display: block;
9
10
  background: #323336;
10
11
  }
11
12
  &+.titlebar>back{
package/coms/zimoli/on.js CHANGED
@@ -228,7 +228,7 @@ function checkKeyNeed(eventtypes, e) {
228
228
  for (var cx = 0, dx = keyneed.length; cx < dx; cx++) {
229
229
  var key = keyneed[cx];
230
230
  keykeep[key] = true;
231
- if (!e[key + "Key"]) return false;
231
+ if (!e[key + "Key"] && e.keyCode !== keyCodeMap[key]) return false;
232
232
  }
233
233
  }
234
234
  if (eventtypes.only) {
@@ -545,3 +545,21 @@ var invoke = function (event, type, pointerType) {
545
545
  }
546
546
 
547
547
  }());
548
+
549
+ /**
550
+ * 在挂载后执行
551
+ * 如果是已挂载的元素,立即执行传入的函数
552
+ * 如果是未挂载的元素,等到挂载时执行
553
+ * @param {Element} target
554
+ * @param {Function} handle
555
+ */
556
+ var autofire = function (key) {
557
+ var h = on(key);
558
+ handlersMap["on" + key] = function (target, handle) {
559
+ var on = h(target, handle);
560
+ if (isMounted(target)) handle.call(target);
561
+ return on;
562
+ };
563
+ };
564
+ autofire('mounted');
565
+ autofire('append');
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
  var oncetree = {};
3
3
  function emit(ontype, target, handler, firstmost) {
4
+ var fired = false;
4
5
  var off = ontype(target, function (event) {
5
- off();
6
+ if (fired) return;
7
+ fired = true;
8
+ if (!off) Promise.resolve().then(function () {
9
+ off();
10
+ });
11
+ else off();
6
12
  return handler.call(this, event);
7
13
  }, firstmost);
8
14
  return off;
@@ -1,13 +1 @@
1
- /**
2
- * 在挂载后执行
3
- * 如果是已挂载的元素,立即执行传入的函数
4
- * 如果是未挂载的元素,等到挂载时执行
5
- * @param {Element} target
6
- * @param {Function} handle
7
- */
8
- function onmounted(target, handle) {
9
- if (isMounted(target)) {
10
- handle.call(target);
11
- }
12
- return on("mounted")(target, handle);
13
- }
1
+ return on("mounted");
@@ -543,7 +543,7 @@ var directives = {
543
543
  var style = elem.style;
544
544
  if (style.display !== display) style.display = display;
545
545
  }, function (elem) {
546
- return elem.style.display === 'none';
546
+ return elem.style.display !== 'none';
547
547
  }),
548
548
  style: createMapper(css, css.styleToMap),
549
549
  class: createMapper(addClass, addClass.classToMap),
@@ -708,6 +708,7 @@ var emiters = {
708
708
  };
709
709
  emiters.v = emiters.ng = emiters.on;
710
710
 
711
+ var 驼峰化 = key => key.replace(/\-([a-z])/ig, (_, w) => w.toUpperCase());
711
712
  var keyAdapters = [
712
713
  key => key,
713
714
  key => key.toLowerCase(),
@@ -860,7 +861,8 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
860
861
  if (element.$renderid !== 9) {
861
862
  on("append")(element, addRenderElement);
862
863
  onremove(element, removeRenderElement);
863
- if (isMounted(element) || element.$renderid > 1) addRenderElement.call(element);
864
+ if (isMounted(element));
865
+ else if (element.$renderid > 1) addRenderElement.call(element);
864
866
  else if (eagermount) rebuild(element);
865
867
  }
866
868
  else {
@@ -947,7 +949,7 @@ class Struct {
947
949
 
948
950
  var pushid = function (ids, name) {
949
951
  ids.push(name);
950
- var name1 = name.replace(/\-([a-z])/ig, (_, a) => a.toUpperCase());
952
+ var name1 = 驼峰化(name);
951
953
  if (name1 !== name) ids.push(name1);
952
954
  };
953
955
 
@@ -1021,22 +1023,28 @@ function createStructure(element, useExists) {
1021
1023
  }
1022
1024
  // ng-html,ng-src,ng-text,ng-model,ng-style,ng-class,...
1023
1025
  var key = name.replace(/^(ng|v|[^\_\:\.]*?)\-|^[\:\_\.\?\@\*&]|^v\-bind\:/i, "").toLowerCase();
1024
- if (key.length !== name.length && directives.hasOwnProperty(key) || /^([\_\:\.]|v\-bind\:)/.test(name) || /^[@&\?\*]/.test(name) && !value) {
1026
+ if (key.length !== name.length && directives.hasOwnProperty(key) || /^([\_\:\.]|v\-bind\:)/.test(name) || /^[@&\?\*\+]/.test(name) && !value) {
1025
1027
  if (value) binds[key] = value;
1026
- else switch (name.charAt(0)) {
1027
- case "?":
1028
- case ":":
1029
- binds.text = key;
1030
- break;
1031
- case "@":
1032
- binds.html = key;
1033
- break;
1034
- case "*":
1035
- binds.model = key;
1036
- break;
1037
- case "&":
1038
- binds.src = key;
1039
- break;
1028
+ else {
1029
+ key = 驼峰化(name.slice(1));
1030
+ switch (name.charAt(0)) {
1031
+ case "?":
1032
+ case ":":
1033
+ binds.text = key;
1034
+ break;
1035
+ case "@":
1036
+ binds.html = key;
1037
+ break;
1038
+ case "*":
1039
+ binds.model = key;
1040
+ break;
1041
+ case "&":
1042
+ binds.src = key;
1043
+ break;
1044
+ case "+":
1045
+ binds[key] = key;
1046
+ break;
1047
+ }
1040
1048
  }
1041
1049
  element.removeAttribute(name);
1042
1050
  }
@@ -1048,10 +1056,11 @@ function createStructure(element, useExists) {
1048
1056
  if (value) ons.push([emiters[ngon], name.replace(emiter_reg, ''), value]);
1049
1057
  }
1050
1058
  // placeholder_ href_ checked_ ...
1051
- else if (/[_@\:\.&\?\*]$/.test(name)) {
1059
+ else if (/[_@\:\.&\?\*\+\#]$/.test(name)) {
1052
1060
  var key = name.slice(0, name.length - 1);
1053
1061
  if (value) attr1[key] = value;
1054
1062
  else {
1063
+ key = 驼峰化(name.slice(0, name.length - 1));
1055
1064
  switch (name.charAt(name.length - 1)) {
1056
1065
  case "?":
1057
1066
  binds.text = key;
@@ -1065,6 +1074,12 @@ function createStructure(element, useExists) {
1065
1074
  case "&":
1066
1075
  binds.src = key;
1067
1076
  break;
1077
+ case "+":
1078
+ binds[key] = key;
1079
+ break;
1080
+ case "#":
1081
+ ids.push(key);
1082
+ break;
1068
1083
  }
1069
1084
  element.setAttribute(key.replace(/\./g, '-'), '');
1070
1085
  }
@@ -284,6 +284,7 @@ function slider() {
284
284
  negative_index = -index;
285
285
  var _removingMain = _imageMain;
286
286
  reshape(index, false);
287
+ if (_removingMain === _imageMain) return;
287
288
  css(_removingMain, "transition:.1s opacity ease-out,.1s transform;z-index:1;left:0;");
288
289
  appendChild(outter, _removingMain);
289
290
  setTimeout(function () {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.19.5",
4
- "description": "简化前端开发,优化web性能",
3
+ "version": "4.19.7",
4
+ "description": "一个开发环境,提供一种自由的前端开发模式,也可作为辅助工具使用。",
5
5
  "main": "public/efront.js",
6
6
  "directories": {
7
7
  "test": "test"