efront 3.25.14 → 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;
@@ -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);
@@ -901,6 +901,4 @@ render.register = function (key, name) {
901
901
  register(key, name);
902
902
  }
903
903
  };
904
- render.style = function (element, search) {
905
- return directives.style.call(element, search);
906
- }
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,30 +369,24 @@ 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;
375
+ return;
362
376
  }
363
377
  if (!thead) {
364
378
  thead = getThead(table);
365
379
  }
366
- if (!getTargetIn(thead, event.target)) {
367
- activeCols.forEach(function (td) {
368
- removeClass(td, 'y-ing');
369
- });
370
- return;
371
- }
380
+ if (!getTargetIn(thead, event.target)) return;
372
381
  var tds = getTargetIn(cellMatchManager, event.target);
373
382
  if (!tds) return;
374
383
  setClass(tds, 'y-ing', activeCols);
384
+ removeXIng(activeRows);
375
385
  activeCols = tds;
376
386
  });
377
387
  onmouseleave(tableElement, function () {
378
- activeCols.forEach(function (td) {
379
- removeClass(td, "y-ing");
380
- });
381
- activeRows.forEach(function (td) {
382
- removeClass(td, 'x-ing');
383
- });
388
+ removeYIng(activeCols);
389
+ removeXIng(activeRows);
384
390
  });
385
391
  var table = tableElement;
386
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.14",
3
+ "version": "3.25.16",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {