efront 4.23.0 → 4.23.3

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.
Files changed (45) hide show
  1. package/coms/basic/ArrayFill.js +5 -1
  2. package/coms/basic/BigNumber.js +2 -2
  3. package/coms/basic/data.js +11 -10
  4. package/coms/basic/extend.js +18 -1
  5. package/coms/basic/isFinit.js +1 -0
  6. package/coms/basic_/&ArrayFill.js +1 -5
  7. package/coms/basic_/&extend.js +1 -18
  8. package/coms/basic_/WeakMap.js +19 -6
  9. package/coms/reptile/alert.js +5 -1
  10. package/coms/reptile/data.js +3 -0
  11. package/coms/zimoli/$cared.js +1 -0
  12. package/coms/zimoli/$casted.js +1 -0
  13. package/coms/zimoli/$upwith.js +1 -0
  14. package/coms/zimoli/$watches.js +1 -0
  15. package/coms/zimoli/alert.js +4 -2
  16. package/coms/zimoli/care.js +27 -9
  17. package/coms/zimoli/cast.js +13 -14
  18. package/coms/zimoli/data.js +16 -0
  19. package/coms/zimoli/getChanged.js +8 -0
  20. package/coms/zimoli/menuList.js +0 -1
  21. package/coms/zimoli/model.js +7 -4
  22. package/coms/zimoli/on.js +12 -4
  23. package/coms/zimoli/popup.js +5 -5
  24. package/coms/zimoli/render.js +253 -173
  25. package/coms/zimoli/scrollbar.js +1 -1
  26. package/coms/zimoli/view.js +1 -1
  27. package/coms/zimoli/watch.js +7 -5
  28. package/coms/zimoli/zimoli.js +72 -55
  29. package/docs//347/273/204/344/273/266.xht +14 -1
  30. package/package.json +1 -1
  31. package/public/efront.js +1 -1
  32. package/public/pivot/api.yml +46 -0
  33. package/public/pivot/menu.yml +16 -0
  34. package/public/pivot/page/auth/login.txt +1 -0
  35. package/public/pivot/page/cert/main.txt +1 -0
  36. package/public/pivot/page/cert/orders.txt +1 -0
  37. package/public/pivot/page/cert/update.txt +1 -0
  38. package/public/pivot/page/db/act.txt +1 -0
  39. package/public/pivot/page/db/config.txt +1 -0
  40. package/public/pivot/page/db/edit.txt +1 -0
  41. package/public/pivot/page/db/list.txt +1 -0
  42. package/public/pivot//344/270/273/351/241/265.html +46 -0
  43. package/coms/reptile/on.js +0 -4
  44. package/coms/reptile/onmounted.js +0 -1
  45. /package/coms/{zimoli → basic}/encode62.js +0 -0
@@ -1 +1,5 @@
1
- &ArrayFill;
1
+ function ArrayFill(size, item) {
2
+ var result = Array(size);
3
+ for (var cx = 0; cx < size; cx++)result[cx] = item;
4
+ return result;
5
+ }
@@ -243,8 +243,8 @@ class BigNumber {
243
243
  else if (!dist.length) dist.push(0);
244
244
  if (s) dist.unshift('-');
245
245
  BigNumber.DECIMAL_DIGIT = BACK_DIGIT;
246
- if (system_scale <= 36) dist = dist.map(d => Number.isFinite(d) ? vsrc[d] : d);
247
- else dist = dist.map(d => Number.isFinite(d) ? '[' + d + ']' : d);
246
+ if (system_scale <= 36) dist = dist.map(d => isFinit(d) ? vsrc[d] : d);
247
+ else dist = dist.map(d => isFinit(d) ? '[' + d + ']' : d);
248
248
  return dist.join('');
249
249
  };
250
250
  add(bignumber) {
@@ -690,11 +690,7 @@ var getInstanceId = function () {
690
690
  }
691
691
  return instanceId;
692
692
  };
693
- var error_report = isProduction ? alert : function (error, type) {
694
- error_report = alert;
695
- error_report(error, type);
696
- console.info(i18n`已使用默认的报错工具,您可以使用 ${"data.setReporter(error_reporter,error_finder)"} 替换! 本信息在仅在开发环境显示。`);
697
- };
693
+ var error_report = () => { throw new Error('请使用data.setReporter(alert)进行初始化,然后再使用data') };
698
694
 
699
695
  var error_check = function (data) { };
700
696
 
@@ -722,10 +718,6 @@ function responseCrash(e, data) {
722
718
  error_report(e, e.status < 500 ? 'warn' : 'error');
723
719
  }
724
720
  var toDataString = function () { return isEmpty(this.data) ? '' : this.data };
725
- var updateLoadingCount = function () {
726
- data.loading_count = cross.requests.length;
727
- };
728
- on('render')(window, updateLoadingCount, true);
729
721
  var bubApply = function (f, args) {
730
722
  if (args.length === 1) {
731
723
  var [instanceMap] = args;
@@ -766,12 +758,14 @@ var oncatch = function (e) {
766
758
  if (e === OUTDATE || e === ABORTED) return;
767
759
  throw e;
768
760
  };
761
+ var cross = () => { throw new Error('请使用data.setEnvs(cross,on,onmounted)进行初始化,然后再使用data') };
762
+ var on = () => { throw new Error("请使用data.setEnvs(cross,on,onmounted)") };
763
+ var onmounted = () => { throw new Error("请使用data.setEnvs(cross,on,onmounted)") };
769
764
  var data = {
770
765
  prepareURL,
771
766
  decodeStructure,
772
767
  getUrlParamsForApi,
773
768
  encodeStructure,
774
- abortAll: cross.abortAll,
775
769
  responseLoaded(response) {
776
770
  if (isObject(response)) {
777
771
  response.is_loaded = true;
@@ -789,6 +783,13 @@ var data = {
789
783
  response.abort = LoadingArray_abort;
790
784
  }
791
785
  },
786
+ setEnvs(cross1, on1, onmounted1) {
787
+ delete data.setEnvs;
788
+ cross = cross1;
789
+ on = on1;
790
+ onmounted = onmounted1;
791
+ data.abortAll = cross.abortAll;
792
+ },
792
793
  setReporter(report, checker) {
793
794
  if (report instanceof Function) {
794
795
  error_report = report;
@@ -1 +1,18 @@
1
- &extend;
1
+ /*
2
+ * 不枝雀
3
+ * 2017-3-18 11:18:18
4
+ */
5
+
6
+ var hasOwnProperty = {}.hasOwnProperty, Object = {}.constructor;
7
+
8
+ var extend = Object.assign || function (o1) {
9
+ o1 = Object(o1);
10
+ for (var cx = 1, dx = arguments.length; cx < dx; cx++) {
11
+ var o2 = arguments[cx];
12
+ for (var k in o2) {
13
+ if (hasOwnProperty.call(o2, k)) o1[k] = o2[k];
14
+ }
15
+ }
16
+ return o1;
17
+ };
18
+ return extend;
@@ -0,0 +1 @@
1
+ a => typeof a === 'number' && a < Infinity && a > -Infinity;
@@ -1,5 +1 @@
1
- function ArrayFill(size, item) {
2
- var result = Array(size);
3
- for (var cx = 0; cx < size; cx++)result[cx] = item;
4
- return result;
5
- }
1
+ basic$ArrayFill;
@@ -1,18 +1 @@
1
- /*
2
- * 不枝雀
3
- * 2017-3-18 11:18:18
4
- */
5
-
6
- var hasOwnProperty = {}.hasOwnProperty, Object = {}.constructor;
7
-
8
- var extend = Object.assign || function (o1) {
9
- o1 = Object(o1);
10
- for (var cx = 1, dx = arguments.length; cx < dx; cx++) {
11
- var o2 = arguments[cx];
12
- for (var k in o2) {
13
- if (hasOwnProperty.call(o2, k)) o1[k] = o2[k];
14
- }
15
- }
16
- return o1;
17
- };
18
- return extend;
1
+ basic$extend
@@ -1,5 +1,5 @@
1
1
  var WeakMap = this.WeakMap;
2
- if (WeakMap) return WeakMap;
2
+ if (WeakMap && WeakMap.prototype.get) return WeakMap;
3
3
  var id = 0;
4
4
  WeakMap = class WeakMap {
5
5
  id = "#" + ++id;
@@ -7,11 +7,8 @@ WeakMap = class WeakMap {
7
7
  return o[this.id];
8
8
  }
9
9
  set(o, v) {
10
- Object.defineProperty(o, this.id, {
11
- value: v,
12
- enumerable: false,
13
- configurable: true
14
- });
10
+ defineObj.value = v;
11
+ Object.defineProperty(o, this.id, defineObj);
15
12
  }
16
13
  has(o) {
17
14
  return this.id in o;
@@ -20,4 +17,20 @@ WeakMap = class WeakMap {
20
17
  delete o[this.id];
21
18
  }
22
19
  }
20
+ var defineObj = {
21
+ value: null,
22
+ enumerable: true,
23
+ writable: true,
24
+ configurable: false
25
+ }
26
+ var defineProperty = Object.defineProperty;
27
+ try {
28
+ defineProperty(document, '#weakmap', defineObj);
29
+ delete document["#weakmap"];
30
+ } catch {
31
+ defineProperty = function (o, k, d) {
32
+ o[k] = d.value;
33
+ }
34
+ delete defineObj.enumerable;
35
+ }
23
36
  return WeakMap;
@@ -1 +1,5 @@
1
- a => console.warn(a);
1
+ (title, type) => {
2
+ if (console[type]) console[type](title);
3
+ else if (console[title]) console[title](type);
4
+ else console.warn(title);
5
+ }
@@ -0,0 +1,3 @@
1
+ basic$data.setReporter(alert);
2
+ basic$data.setEnvs(cross);
3
+ return basic$data;
@@ -0,0 +1 @@
1
+ new WeakMap;
@@ -0,0 +1 @@
1
+ new WeakMap;
@@ -0,0 +1 @@
1
+ new WeakMap;
@@ -0,0 +1 @@
1
+ new WeakMap;
@@ -72,7 +72,7 @@ function alert() {
72
72
  }
73
73
  close_timer = setTimeout(function () {
74
74
  remove(elem);
75
- }, autoclose);
75
+ }, +autoclose);
76
76
  }
77
77
  };
78
78
  var setContent = function (elem) {
@@ -83,7 +83,9 @@ function alert() {
83
83
  } else {
84
84
  elem = _text(elem, styles.log, t);
85
85
  }
86
- if (!isMounted(container)) popup(container);
86
+ Promise.resolve().then(function () {
87
+ if (!isMounted(container)) popup(container);
88
+ });
87
89
  if (!isMounted(elem)) appendChild(container, elem);
88
90
  waitclose(autoclose, 400);
89
91
  return elem;
@@ -6,16 +6,18 @@
6
6
  * @param {Function} listener
7
7
  */
8
8
  function care() {
9
- var [target, type, listener, allowMultiHandle] = parse.apply(this, arguments);
10
- if (!target[type]) {
11
- target[type] = [];
12
- }
13
- var listeners = target[type];
9
+ var [listeners, listener, target, type, allowMultiHandle] = parse.apply(this, arguments);
14
10
  if (listeners.length && !allowMultiHandle) return;
15
11
  if (listener instanceof Function && !~listeners.indexOf(listener)) {
16
12
  if (listeners.length > 600) throw new Error(i18n`请不要在同一个对象上使用过多的同类型的care!`);
17
13
  listeners.push(listener);
18
14
  }
15
+ var casted = $casted.get(target);
16
+ if (!casted) return;
17
+ var datas = casted[type];
18
+ if (!datas) return;
19
+ delete casted[type];
20
+ datas.forEach(listeners.cast, listeners);
19
21
  }
20
22
  function parse() {
21
23
  var [target, type, listener] = arguments;
@@ -46,12 +48,28 @@ function parse() {
46
48
  throw new Error(i18n`参数数量不正确`);
47
49
  }
48
50
  if (!isObject(target)) throw new Error(i18n`care只能使用在对象上!`);
49
- type = `care(${type})`;
50
- return [target, type, listener, allowMultiHandle];
51
+ var cared = $cared.get(target);
52
+ if (!cared) {
53
+ cared = {};
54
+ $cared.set(target, cared);
55
+ }
56
+ var listeners = cared[type];
57
+ if (!listeners) listeners = cared[type] = [], listeners.cast = cast(target);
58
+ return [listeners, listener, target, type, allowMultiHandle];
51
59
  }
60
+ function cast(target) {
61
+ var newdata, olddata;
62
+ var call = function (listener) {
63
+ listener.call(target, newdata, olddata);
64
+ }
65
+ return function (data) {
66
+ newdata = data;
67
+ this.forEach(call);
68
+ olddata = data;
69
+ }
70
+ };
52
71
  function clean() {
53
- var [target, type, listener] = parse.apply(this, arguments);
54
- var listeners = target[type];
72
+ var [listeners, listener] = parse.apply(this, arguments);
55
73
  if (listener instanceof Function) {
56
74
  for (var cx = listeners.length - 1; cx >= 0; cx--) {
57
75
  if (listeners[cx] === listener) listeners.splice(cx, 1);
@@ -20,20 +20,19 @@ function cast(target, type, data) {
20
20
  throw new Error(i18n`参数数量不正确`);
21
21
  }
22
22
  if (!isObject(target)) return;
23
-
24
- var datakey = `cast(${type})`;
25
- type = `care(${type})`;
26
- if (target[type] instanceof Array) {
27
- var listeners = target[type];
28
- if (!listeners.datas) listeners.datas = [];
29
- var datas = listeners.datas;
30
- datas.push(data);
31
- if (datas.length === 1) {
32
- while (datas.length) target[type].forEach(function (listener) {
33
- if (listener instanceof Function) {
34
- listener.call(target, datas[0], target[datakey]);
35
- }
36
- }), target[datakey] = datas.shift();
23
+ var cared = $cared.get(target);
24
+ if (cared) var listeners = cared[type];
25
+ if (listeners) listeners.cast(data);
26
+ else {
27
+ var casted = $casted.get(target);
28
+ if (!casted) {
29
+ casted = {};
30
+ $casted.set(target, casted);
31
+ }
32
+ var datas = casted[type];
33
+ if (!datas) {
34
+ datas = casted[type] = [];
37
35
  }
36
+ datas.push(data);
38
37
  }
39
38
  }
@@ -0,0 +1,16 @@
1
+ basic$data.setReporter(
2
+ alert
3
+ // <!--
4
+ && function (error, type) {
5
+ basic$data.setReporter(alert);
6
+ alert(error, type);
7
+ console.info(i18n`已使用默认的报错工具,您可以使用 ${"data.setReporter(error_reporter,error_finder)"} 替换! 本信息在仅在开发环境显示。`);
8
+ }
9
+ // -->
10
+ );
11
+ basic$data.setEnvs(cross, on, onmounted);
12
+ var updateLoadingCount = function () {
13
+ basic$data.loading_count = cross.requests.length;
14
+ };
15
+ on('render')(window, updateLoadingCount, true);
16
+ return basic$data;
@@ -0,0 +1,8 @@
1
+ function getChanged(current_props, previous_props) {
2
+ var changed = [];
3
+ keys(previous_props, current_props).forEach(function (key) {
4
+ if (key.charAt(0) === "$") return;
5
+ if (!isSame(current_props[key], previous_props[key])) changed.push(key);
6
+ });
7
+ return changed;
8
+ }
@@ -163,7 +163,6 @@ function main() {
163
163
  template.innerHTML = page.innerHTML;
164
164
  page.$template = template;
165
165
  }
166
- var cloner = render.createCloner(template);
167
166
  var enterMenuEnabled = 0;
168
167
  onmousemove(page, function () {
169
168
  enterMenuEnabled = +new Date;
@@ -305,12 +305,15 @@ var getOptionsFrom = function () {
305
305
  var { data, field } = this;
306
306
  return data[field.options_from];
307
307
  };
308
- function setModel(ipt) {
308
+ function setModel(renders, ipt) {
309
309
  var elem = this;
310
310
  if (isHandled(ipt)) {
311
311
  if (isNode(ipt)) {
312
312
  var model = new Model(getScopeValue, setScopeValue, ipt);
313
- model.hook(elem, elem.field.option_to ? copyOptionData : true);
313
+ var binder = model.hook(elem, elem.field.option_to ? copyOptionData : true);
314
+ removeFromList(renders, elem.$binder);
315
+ renders.push(binder);
316
+ elem.$binder = binder;
314
317
  if (elem !== ipt) appendChild(elem, ipt);
315
318
  }
316
319
  else {
@@ -330,9 +333,9 @@ function setBinder(elem, binder) {
330
333
  else {
331
334
  var ipt = binder(elem);
332
335
  if (ipt && isFunction(ipt.then)) {
333
- ipt.then(setModel.bind(elem));
336
+ ipt.then(setModel.bind(elem, renders));
334
337
  }
335
- else setModel.call(elem, ipt);
338
+ else setModel.call(elem, renders, ipt);
336
339
  binder = null;
337
340
  }
338
341
  elem.$binder = binder;
package/coms/zimoli/on.js CHANGED
@@ -270,6 +270,7 @@ function pending(h, event) {
270
270
  }
271
271
  return h;
272
272
  }
273
+ var changes = new WeakMap;
273
274
  var remove = function (k, hk, [eventtypes, handler, context]) {
274
275
  var element = this;
275
276
  var hs = hk.get(element);
@@ -278,7 +279,11 @@ var remove = function (k, hk, [eventtypes, handler, context]) {
278
279
  var [e, h, c] = hs[cx];
279
280
  if (h === handler && shallowEqual(e, eventtypes, 2) && c === context) {
280
281
  hs.splice(cx, 1);
281
- if (k === changes_key) element.$needchanges--;
282
+ if (k === changes_key) {
283
+ var i = changes.get(element) - 1;
284
+ if (i > 0) changes.set(element, i);
285
+ else changes.delete(element), $watches.delete(element);
286
+ };
282
287
  }
283
288
  }
284
289
  if (!hs.length && hs.h) {
@@ -346,8 +351,11 @@ var append = function (k, hk, listener2, firstmost) {
346
351
  if (h === handler && c === context && shallowEqual(eventtypes, e, 2)) return d.dulp = true, d;
347
352
  }
348
353
  if (k === changes_key) {
349
- if (!element.$needchanges) element.$needchanges = 0;
350
- element.$needchanges++;
354
+ var i = changes.get(element) || 0;
355
+ changes.set(element, i + 1);
356
+ if (i === 0) {
357
+ if (!$watches.has(element)) $watches.set(element, {});
358
+ }
351
359
  }
352
360
  if (firstmost) handlers.unshift(listener2);
353
361
  else handlers.push(listener2);
@@ -417,7 +425,7 @@ var on = document.efronton = function (k) {
417
425
  if (e.keyCode) {
418
426
  if (e.which === undefined) e.which = e.keyCode;
419
427
  }
420
- broadcast.call(target, k, emiters, e);
428
+ broadcast.call(target, k, hk, e);
421
429
  return e.returnValue;
422
430
  };
423
431
  var emiters = [];
@@ -27,20 +27,20 @@ var popup = function (path) {
27
27
  throw new Error(i18n`参数异常:${path}`);
28
28
  };
29
29
  var onAppendUp = function () {
30
- var upwith = this.$upwith;
30
+ var upwith = $upwith.get(this);
31
31
  if (isArray(upwith) && upwith.indexOf(this) < 0) {
32
32
  upwith.push(this);
33
33
  }
34
34
  };
35
35
  var onRemoveUp = function () {
36
- var upwith = this.$upwith;
36
+ var upwith = $upwith.get(this);
37
37
  if (isArray(upwith)) {
38
38
  removeFromList(upwith, this);
39
39
  }
40
40
  };
41
41
  var setUpwith = function (page, upwith) {
42
42
  if (!isArray(upwith)) return;
43
- page.$upwith = upwith;
43
+ $upwith.set(page, upwith);
44
44
  on('append')(page, onAppendUp);
45
45
  on('remove')(page, onRemoveUp);
46
46
  };
@@ -365,7 +365,7 @@ var _as_yextra = function (global, innerWidth, innerHeight, element, target, poi
365
365
  };
366
366
  var _as_xextra = arriswise(_as_yextra, arguments);
367
367
  var popup_as_single = function (element, z) {
368
- if (!isMounted(element)) css(element, `z-index:${Number.isFinite(z) ? z : zIndex()};`);
368
+ if (!isMounted(element)) css(element, `z-index:${isFinit(z) ? z : zIndex()};`);
369
369
  global(element, false);
370
370
  };
371
371
  var popup_to_point = function (element, [x, y]) {
@@ -427,7 +427,7 @@ popup.upwith = function (collects) {
427
427
  };
428
428
  var global = function (element, issingle) {
429
429
  once("remove")(element, cleanup);
430
- var upwith = element.$upwith || rootElements;
430
+ var upwith = $upwith.get(element) || rootElements;
431
431
  if (upwith.indexOf(element) < 0) upwith.push(element);
432
432
  if (isMounted(element)) return;
433
433
  popup.global &&