efront 3.25.12 → 3.25.16

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.
@@ -22,7 +22,8 @@ var {
22
22
  console,
23
23
  efrontURI,
24
24
  parseFloat,
25
- PREVENT_FRAMEWORK_MODE,
25
+ preventFrame,
26
+ PREVENT_FRAMEWORK_MODE = preventFrame,
26
27
  devicePixelRatio = 1,
27
28
  startPath: efrontPath,
28
29
  pixelDecoder // = d => d / 16 + "rem"
@@ -14,8 +14,6 @@
14
14
  // }
15
15
  function LoadingArray() {
16
16
  var this0 = [];
17
- this0.totalCount = 0;
18
- this0.data = [];
19
17
  this0.is_errored = null;
20
18
  this0.error_message = null;
21
19
  this0.is_loading = true;
@@ -74,16 +74,29 @@ function alert() {
74
74
  if (close_timer) clearTimeout(close_timer);
75
75
  }
76
76
  onremove(elem, _onclose);
77
- if (autoclose) {
78
- if (autoclose === true) {
79
- autoclose = text.length * 200 + 400;
80
- } else if (autoclose < 100) {
81
- autoclose = autoclose * 1000;
77
+ var close_timer;
78
+ var waitclose = function (autoclose, deltaTime) {
79
+ if (autoclose) {
80
+ if (autoclose === true) {
81
+ autoclose = text.length * 160 + deltaTime;
82
+ } else if (autoclose < 100) {
83
+ autoclose = autoclose * 1000;
84
+ }
85
+ close_timer = setTimeout(function () {
86
+ remove(elem);
87
+ }, autoclose);
82
88
  }
83
- var close_timer = setTimeout(function () {
84
- remove(elem);
85
- }, autoclose);
86
- }
89
+ };
90
+ waitclose(autoclose, 400)
91
+ elem.setText = function (content, timeout = true) {
92
+ var c = elem.children[0];
93
+ c.innerHTML = content;
94
+ text = content;
95
+ if (timeout) {
96
+ clearTimeout(close_timer);
97
+ waitclose(timeout, -100);
98
+ }
99
+ };
87
100
  alerts.push(elem);
88
101
  popup(elem);
89
102
  return elem;
@@ -35,7 +35,13 @@ var renderModel = function (field, data) {
35
35
  data
36
36
  });
37
37
  };
38
+ var unmark = function (select) {
39
+ select.isediter = false;
40
+ select.isreader = false;
41
+ };
42
+ unmark(select);
38
43
  var constructors = {
44
+ input,
39
45
  swap(e) {
40
46
  var { field } = e;
41
47
  e = swap(e);
@@ -186,6 +192,24 @@ var createOptionsMap = function (options) {
186
192
  return map;
187
193
  }
188
194
  readonly_types.select = readonly_types.swap;
195
+ var findReaderForElement = function (type, e) {
196
+ var editor = render.getFromScopes(type, e.$scope, e.$parentScopes);
197
+ if (isFunction(editor) && (editor.isreader || !editor.isediter) && editor.isreader !== false) return editor;
198
+ };
199
+ var findEditerForElement = function (type, e) {
200
+ var editor = render.getFromScopes(type, e.$scope, e.$parentScopes);
201
+ if (isFunction(editor) && (editor.isediter || !editor.isreader) && editor.isediter !== false) return editor;
202
+ };
203
+ var markReader = function (readers) {
204
+ for (var k in readers) {
205
+ readers[k].isreader = true;
206
+ }
207
+ };
208
+ var markEditer = function (editers) {
209
+ for (var k in editers) {
210
+ editers[k].isediter = true;
211
+ }
212
+ };
189
213
  function main(elem) {
190
214
  var build = function () {
191
215
  var { data, readonly, field } = elem;
@@ -214,7 +238,7 @@ function main(elem) {
214
238
  if (field_type === "function") {
215
239
  field_editor(elem);
216
240
  } else {
217
- var create = readonly_types[field_type];
241
+ var create = findReaderForElement(field_type, elem) || readonly_types[field_type];
218
242
  if (create) {
219
243
  var e = create(elem, data, field_ref);
220
244
  if (isNode(e)) {
@@ -249,7 +273,8 @@ function main(elem) {
249
273
  });
250
274
  }
251
275
  } else {
252
- var create = field_type === "function" ? field_editor : constructors[field_type];
276
+ var create = field_type === "function" ? field_editor : findEditerForElement(field_type, elem) || constructors[field_type];
277
+ console.log(create === constructors.select)
253
278
  var ipt = create ? create(elem, field_ref) : field.key ? input(function () {
254
279
  var input = document.createElement('input');
255
280
  input.setAttribute('type', field.type);
@@ -298,23 +323,28 @@ function main(elem) {
298
323
  });
299
324
  return elem;
300
325
  }
301
-
326
+ markEditer(constructors);
327
+ markReader(readonly_types);
302
328
  extend(main, {
303
329
  setEditors(map) {
304
330
  extend(constructors, map);
331
+ markEditer(map);
305
332
  },
306
333
  setReadors(map) {
307
334
  extend(readonly_types, map);
335
+ markReader(map);
308
336
  },
309
- setModels(key, map) {
310
- this.setEditors(key, map);
311
- this.setReadors(key, map);
337
+ setModels(map) {
338
+ this.setEditors(map);
339
+ this.setReadors(map);
312
340
  },
313
341
  setEditor(key, func) {
314
342
  constructors[key] = func;
343
+ func.isediter = true;
315
344
  },
316
345
  setReador(key, func) {
317
346
  readonly_types[key] = func;
347
+ func.isreader = true;
318
348
  },
319
349
  setModel(key, func) {
320
350
  this.setEditor(key, func);
@@ -122,6 +122,7 @@ appendChild(广告, alink);
122
122
  function picture(url, to = 0, key) {
123
123
 
124
124
  var images = {};
125
+ var cacheLength = 8;
125
126
  var gen = function (index, ratio) {
126
127
  if (index >= urls.length || index < 0) return null;
127
128
  if (images[index] && images[index].url !== urls[index]) {
@@ -133,9 +134,9 @@ function picture(url, to = 0, key) {
133
134
  if (!images[index + 1] && index + 1 < urls.length) {
134
135
  images[index + 1] = create.call(p, urls[index + 1], key, p.index === index);
135
136
  }
136
- if (index >= 5) delete images[index - 5];
137
- if (index + 5 < urls.length) {
138
- delete images[index + 5];
137
+ if (index >= cacheLength) delete images[index - cacheLength];
138
+ if (index + cacheLength < urls.length) {
139
+ delete images[index + cacheLength];
139
140
  }
140
141
  var img = images[index]
141
142
  if (ratio > .75 && img) {
@@ -667,7 +667,6 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
667
667
  element.renders = element.renders ? [].concat(element.renders) : [];
668
668
  var { ons, copys, attrs, props, binds, context: withContext, ids, once } = element.$struct;
669
669
  if (once) element.renderid = 9;
670
- delete element.$struct;
671
670
  if (binds.src) {
672
671
  element.$src = parseRepeat(binds.src);
673
672
  }
@@ -710,12 +709,14 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
710
709
  if (replacer.renders) renders = renders.concat(replacer.renders);
711
710
  replacer.renders = renders;
712
711
  if (binds.src) replacer.$src = element.$src;
712
+ delete element.$struct;
713
713
  element = replacer;
714
714
  element.$scope = scope;
715
715
  element.$parentScopes = parentScopes;
716
716
  }
717
717
  }
718
718
  }
719
+ delete element.$struct;
719
720
  if (element.children && element.children.length) renderElement(element.children, scope, parentScopes, once);
720
721
  if (!isFirstRender) return element;
721
722
  var renders = element.renders;
@@ -900,3 +901,4 @@ render.register = function (key, name) {
900
901
  register(key, name);
901
902
  }
902
903
  };
904
+ render.getFromScopes = getFromScopes;
@@ -300,6 +300,17 @@ var setClass = function (tds, cls, old) {
300
300
  old.forEach(td => { if (!td[cls]) removeClass(td, cls) });
301
301
  tds.forEach(td => { addClass(td, cls); delete td[cls] });
302
302
  };
303
+ var removeYIng = function (activeCols) {
304
+ activeCols.forEach(function (td) {
305
+ removeClass(td, 'y-ing');
306
+ });
307
+ };
308
+ var removeXIng = function (activeRows) {
309
+ activeRows.forEach(function (td) {
310
+ removeClass(td, 'x-ing');
311
+ });
312
+ };
313
+
303
314
  var getTdsOfSameRow = function (td) {
304
315
  var tds = [td];
305
316
  var tmp = td;
@@ -337,6 +348,7 @@ var getTdsOfSameRow = function (td) {
337
348
  }
338
349
  return tds;
339
350
  };
351
+
340
352
  function table(elem) {
341
353
  var tableElement = isElement(elem) ? elem : document.createElement("table");
342
354
  var activeCols = [];
@@ -357,6 +369,7 @@ function table(elem) {
357
369
  var td = getTargetIn(tr, event.target, false);
358
370
  if (!td) break a;
359
371
  var tds = getTdsOfSameRow(td);
372
+ removeYIng(activeCols);
360
373
  setClass(tds, 'x-ing', activeRows);
361
374
  activeRows = tds;
362
375
  return;
@@ -368,15 +381,12 @@ function table(elem) {
368
381
  var tds = getTargetIn(cellMatchManager, event.target);
369
382
  if (!tds) return;
370
383
  setClass(tds, 'y-ing', activeCols);
384
+ removeXIng(activeRows);
371
385
  activeCols = tds;
372
386
  });
373
387
  onmouseleave(tableElement, function () {
374
- activeCols.forEach(function (td) {
375
- removeClass(td, "y-ing");
376
- });
377
- activeRows.forEach(function (td) {
378
- removeClass(td, 'x-ing');
379
- });
388
+ removeYIng(activeCols);
389
+ removeXIng(activeRows);
380
390
  });
381
391
  var table = tableElement;
382
392
  var thead;
@@ -207,7 +207,7 @@ var xbox = arriswise(ybox, [].concat(allArgumentsNames, [].slice.call(arguments,
207
207
  */
208
208
  function vbox(generator, $Y) {
209
209
  if ($Y !== false && $Y !== true) {
210
- if (!$Y) {
210
+ if (!isString($Y)) {
211
211
  if (isElement(generator)) {
212
212
  if (generator.hasAttribute('x-box') || generator.hasAttribute('xbox') || /^[xh]/i.test(generator.getAttribute('type') || /^[hx]/i.test(generator.getAttribute('mode')))) {
213
213
  $Y = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.25.12",
3
+ "version": "3.25.16",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {