efront 3.26.6 → 3.26.8

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.
@@ -127,7 +127,9 @@ var mergedata = function (cachedata, pkv) {
127
127
  }
128
128
  return res;
129
129
  };
130
-
130
+ function createResponse(response, status = 0) {
131
+ return { status, response: response, toString: toResponse }
132
+ }
131
133
  /**
132
134
  * @param { () => XMLHttpRequest } jsonp
133
135
  * @this { () => XMLHttpRequest }
@@ -162,12 +164,15 @@ function cross_(jsonp, digest = noop, method, url, headers) {
162
164
  if (!~requests.indexOf(_xhr)) return;
163
165
  removeFromList(requests, _xhr);
164
166
  errored = e || "未知错误!";
167
+ if (typeof errored === 'string') {
168
+ errored = createResponse(e, xhr.status);
169
+ }
165
170
  flush();
166
171
  digest();
167
172
  };
168
173
  var onerror = async function (e) {
169
174
  if (e.type === 'error') {
170
- e = { response: "无法访问服务器", toString: toResponse };
175
+ e = createResponse("无法访问服务器!");
171
176
  }
172
177
  for (var r of reforms) {
173
178
  var r = await reform.call(xhr, r, { method, url, status: xhr.status, headers: _headers }, fire, onerror1, e);
@@ -245,13 +250,13 @@ function cross_(jsonp, digest = noop, method, url, headers) {
245
250
  xhr.responseText = xhr.response;
246
251
  }
247
252
  catch (e) {
248
- return onerror({ status: xhr.status, response: "数据无法解析!", toString: toResponse })
253
+ return onerror("数据无法解析!")
249
254
  }
250
255
  };
251
256
  switch (xhr.status) {
252
257
  case 0:
253
258
  if (!xhr.response) {
254
- onerror({ status: 0, response: "无法访问服务器", toString: toResponse });
259
+ onerror("无法访问服务器");
255
260
  break;
256
261
  }
257
262
  case 200:
@@ -312,9 +317,7 @@ function cross_(jsonp, digest = noop, method, url, headers) {
312
317
  forceForm = true;
313
318
  xhr.data(data);
314
319
  };
315
- var fire = async function () {
316
- if (!~requests.indexOf(xhr)) return;
317
- var code = await xhr.encrypt;
320
+ var fire = async function (code) {
318
321
  if (!~requests.indexOf(xhr)) return;
319
322
  xhr.encrypt = code;
320
323
  var isform = /^f/i.test(method);
@@ -366,7 +369,7 @@ function cross_(jsonp, digest = noop, method, url, headers) {
366
369
  else send.call(xhr);
367
370
  digest();
368
371
  };
369
- Promise.resolve().then(fire);
372
+ Promise.resolve(xhr.encrypt).then(fire, onerror1);
370
373
  }
371
374
  var setRequestHeader = xhr.setRequestHeader;
372
375
  var realHeaders = Object.create(null);
@@ -448,7 +451,7 @@ function addReform(r) {
448
451
  function getCode() {
449
452
  return new Promise((ok, oh) => {
450
453
  this('get', base + "!").then((xhr) => { return ok(encode62.timedecode(xhr.response || xhr.responseText)) }, () => {
451
- return oh('未连接到可加密的服务器!');
454
+ return oh('无法连接可加密的服务器!');
452
455
  });
453
456
  });
454
457
  }
@@ -279,7 +279,6 @@ function main(elem) {
279
279
  }
280
280
  } else {
281
281
  var create = field_type === "function" ? field_editor : findEditerForElement(field_type, elem) || constructors[field_type];
282
- console.log(create === constructors.select)
283
282
  var ipt = create ? create(elem, field_ref) : field.key ? input(function () {
284
283
  var input = document.createElement('input');
285
284
  input.setAttribute('type', field.type);
@@ -189,6 +189,7 @@ var createRepeat = function (search, id = 0) {
189
189
  // 懒渲染
190
190
  var getter = createGetter(srcName).bind(this);
191
191
  var element = this, clonedElements = [], savedValue, savedOrigin;
192
+ if (this.$struct.if) id = -7;
192
193
  var renders = [function () {
193
194
  var result = getter();
194
195
  var origin = result;
@@ -266,6 +267,8 @@ var createIf = function (search, id = 0) {
266
267
  var savedValue;
267
268
  elements.parent = this.parentNode;
268
269
  elements.comment = search;
270
+ if (this.$struct.repeat) id = -3;
271
+
269
272
  elements.renders = [function () {
270
273
  var shouldMount = -1;
271
274
  for (var cx = 0, dx = elements.length; cx < dx; cx += 2) {
@@ -363,23 +366,21 @@ var parseIfWithRepeat = function (ifExpression, repeatExpression) {
363
366
  var renderStructure = function (element) {
364
367
  var $struct = element.$struct;
365
368
  if ($struct.if) var { name: ifkey, key, value: ifexp } = $struct.if;
366
- if ($struct.repeat) var { name: forkey, value: repeat } = $struct.repeat;
367
- if (!ifkey) return element.removeAttribute(forkey), structures.repeat.call(element, repeat);
368
- if (!repeat) return element.removeAttribute(ifkey), structures[key].call(element, ifexp);
369
- if (!ifexp) {
370
- element.removeAttribute(ifkey);
371
- return structures[key].call(element, ifexp);
372
- }
369
+ if ($struct.repeat) var { value: repeat } = $struct.repeat;
370
+ if (!ifkey) return createRepeat.call(element, repeat);
371
+ if (!ifexp || !repeat) return structures[key].call(element, ifexp);
373
372
  var { before, after } = parseIfWithRepeat(ifexp, repeat);
374
- element.removeAttribute(ifkey);
375
373
  if (after.length) {
376
- element.setAttribute("a-if", after.join("&&"));
374
+ $struct.if = { key, name: ifkey, value: after.join("&&") };
375
+ }
376
+ else {
377
+ delete $struct.if;
377
378
  }
378
379
  if (before.length > 0) {
379
- // 懒渲染
380
380
  return createIf.call(element, before.join("&&"), null);
381
381
  } else {
382
- element.removeAttribute(forkey);
382
+ delete $struct.repeat;
383
+ if (!repeat) debugger;
383
384
  return createRepeat.call(element, repeat, null);
384
385
  }
385
386
  };
@@ -684,7 +685,6 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
684
685
 
685
686
  if (isEmpty(s.once)) s.once = once;
686
687
  element.$eval = $eval;
687
- if (!element.$struct) console.log(element, element.$struct, element.renderid, s)
688
688
  }
689
689
  if (element.renderid <= -1) element = renderStructure(element);
690
690
  if (!element) return;
@@ -881,6 +881,7 @@ function createStructure(element) {
881
881
  }
882
882
  if (!element.renderid) element.renderid = -1;
883
883
  else element.renderid = -2;
884
+ element.removeAttribute(name);
884
885
  continue;
885
886
  }
886
887
  // ng-html,ng-src,ng-text,ng-model,ng-style,ng-class,...
@@ -943,9 +944,9 @@ function render(element, scope, parentScopes, lazy = true) {
943
944
  var digest = lazy(refresh, -{});
944
945
  render.digest = render.apply = render.refresh = digest;
945
946
  render.parseRepeat = parseRepeat;
946
- var eventsBinders = "fullscreenchange,resize,load,change,click,paste,resize,keydown,keypress,keyup,input,drop".split(",").map(k => on(k));
947
+ "fullscreenchange,resize,load,hashchange".split(",").forEach(e => on(e)(window, digest));
948
+ var eventsBinders = "change,click,paste,resize,keydown,keypress,keyup,input,drop".split(",").map(k => on(k));
947
949
  var userChanged = false;
948
- eventsBinders.splice(0, 3).forEach(on => on(window, digest));
949
950
  var changeListener = function () {
950
951
  if (userChanged) {
951
952
  userChanged = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.26.6",
3
+ "version": "3.26.8",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {