efront 4.19.6 → 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:
package/coms/zimoli/on.js CHANGED
@@ -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");
@@ -861,7 +861,8 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
861
861
  if (element.$renderid !== 9) {
862
862
  on("append")(element, addRenderElement);
863
863
  onremove(element, removeRenderElement);
864
- if (isMounted(element) || element.$renderid > 1) addRenderElement.call(element);
864
+ if (isMounted(element));
865
+ else if (element.$renderid > 1) addRenderElement.call(element);
865
866
  else if (eagermount) rebuild(element);
866
867
  }
867
868
  else {
@@ -1055,7 +1056,7 @@ function createStructure(element, useExists) {
1055
1056
  if (value) ons.push([emiters[ngon], name.replace(emiter_reg, ''), value]);
1056
1057
  }
1057
1058
  // placeholder_ href_ checked_ ...
1058
- else if (/[_@\:\.&\?\*\+]$/.test(name)) {
1059
+ else if (/[_@\:\.&\?\*\+\#]$/.test(name)) {
1059
1060
  var key = name.slice(0, name.length - 1);
1060
1061
  if (value) attr1[key] = value;
1061
1062
  else {
@@ -1076,6 +1077,9 @@ function createStructure(element, useExists) {
1076
1077
  case "+":
1077
1078
  binds[key] = key;
1078
1079
  break;
1080
+ case "#":
1081
+ ids.push(key);
1082
+ break;
1079
1083
  }
1080
1084
  element.setAttribute(key.replace(/\./g, '-'), '');
1081
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.6",
4
- "description": "一个开发环境,提供前端开发所需的各种功能。此项目不依赖vue和angular的基础库,却同样提供了对vue/angular的语法的支持,像v-if/v-else,ng-if,v-show,ng-model,v-bind,ng-bind,@click,ng-click等可在同一个文件中使用,另外组件可以拆分成脚本、样式、模板分三个文件保存,也可以合并成一个文件保存,这取决于使用者的偏好,而不是冷冰冰的硬性规定。像vue3中直接绑定变量,vue2绑定的却是data中的数据,这种vue不同版本不兼容的问题,efront同时兼容两种绑定方式,同样取决于使用者的喜好,而不是框架作者的喜好。",
3
+ "version": "4.19.7",
4
+ "description": "一个开发环境,提供一种自由的前端开发模式,也可作为辅助工具使用。",
5
5
  "main": "public/efront.js",
6
6
  "directories": {
7
7
  "test": "test"