efront 4.4.13 → 4.5.0

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 (54) hide show
  1. package/#/345/233/275/351/231/205/345/214/226.yml +54 -6
  2. package/apps/pivot/api.yml +3 -0
  3. package/apps/pivot/cert/main.xht +181 -0
  4. package/apps/pivot/cert/orders.xht +144 -0
  5. package/apps/pivot/menu.yml +1 -0
  6. package/coms/basic/assert.js +40 -16
  7. package/coms/basic/cross_.js +20 -3
  8. package/coms/basic/i18n.md +4 -2
  9. package/coms/basic/renderTags.js +23 -0
  10. package/coms/basic/shallowClone.js +8 -0
  11. package/coms/basic/shallowEqual.js +13 -4
  12. package/coms/basic/valid.js +15 -2
  13. package/coms/compile/common.js +23 -0
  14. package/coms/compile/translate.js +29 -11
  15. package/coms/compile/translate_test.js +8 -0
  16. package/coms/compile//347/264/240/351/246/250.js +2 -1
  17. package/coms/docs/codetext.xht +3 -3
  18. package/coms/frame/chat.js +1 -1
  19. package/coms/kugou/bindScroll.js +1 -1
  20. package/coms/kugou/krc.js +2 -2
  21. package/coms/layer/leftCenter.js +5 -5
  22. package/coms/pivot/acme2.js +185 -0
  23. package/coms/reptile/colored_console.js +5 -17
  24. package/coms/zimoli/appendChild.js +3 -2
  25. package/coms/zimoli/autofocus.js +2 -2
  26. package/coms/zimoli/button.less +4 -3
  27. package/coms/zimoli/checker.js +34 -15
  28. package/coms/zimoli/checker.less +2 -3
  29. package/coms/zimoli/container.js +20 -16
  30. package/coms/zimoli/data.js +64 -46
  31. package/coms/zimoli/field.js +3 -3
  32. package/coms/zimoli/field.less +8 -2
  33. package/coms/zimoli/filterTime.js +40 -9
  34. package/coms/zimoli/fromBase64.js +2 -0
  35. package/coms/zimoli/grid.js +2 -2
  36. package/coms/zimoli/isMounted.js +3 -3
  37. package/coms/zimoli/list.js +3 -3
  38. package/coms/zimoli/maps.js +1 -1
  39. package/coms/zimoli/menuList.js +1 -1
  40. package/coms/zimoli/model.js +41 -5
  41. package/coms/zimoli/on.js +4 -4
  42. package/coms/zimoli/remove.js +3 -3
  43. package/coms/zimoli/render.js +25 -33
  44. package/coms/zimoli/scrollbar.js +52 -19
  45. package/coms/zimoli/scrollbar.less +14 -2
  46. package/coms/zimoli/scrollbar_test.less +1 -0
  47. package/coms/zimoli/select.js +3 -3
  48. package/coms/zimoli/table.js +1 -1
  49. package/coms/zimoli/toBase64.js +16 -6
  50. package/coms/zimoli/view.js +19 -12
  51. package/coms/zimoli/view.less +5 -3
  52. package/docs/loader.js +1 -1
  53. package/package.json +1 -1
  54. package/public/efront.js +1 -1
@@ -98,7 +98,7 @@ var seekFromSource = function (obj, base) {
98
98
  function getErrorMessage(error = this) {
99
99
  if (!isObject(error)) return String(error);
100
100
  if (error instanceof Error) return String(error);
101
- var words = "reason,message,desc,descption,msg,err,error,data".split(',');
101
+ var words = "reason,message,desc,descption,msg,err,error,detail,data".split(',');
102
102
  while (words.length) {
103
103
  var a = words.shift();
104
104
  if (error[a]) {
@@ -178,11 +178,10 @@ function getUrlParamsForApi(api, url) {
178
178
  var cap = [];
179
179
  var base = api.url.replace(/[\?\#][\s\S]*$/, '')
180
180
  .replace(/[\.\*\+\-\[\]\{\}\(\)\\\/\!<\>\^]/g, '\\$&')
181
- .replace(/\:\w+/, function (a) {
181
+ .replace(/\:\w+/g, function (a) {
182
182
  cap.push(a.slice(1));
183
183
  return r;
184
184
  });
185
- if (api.base) base = api.base + base;
186
185
  if (/\/$/.test(base)) base += "?";
187
186
  var params = {};
188
187
  url = url.replace(/[\?#]*$/g, function (match) {
@@ -192,13 +191,14 @@ function getUrlParamsForApi(api, url) {
192
191
  params[k] = v;
193
192
  });
194
193
  return '';
195
- }).replace(new RegExp(`^${base}$`, 'ig'), function () {
194
+ });
195
+ if (api.base) url = url.slice(api.base.length);
196
+ url.replace(new RegExp(`^${base}$`, 'ig'), function () {
196
197
  var args = arguments;
197
198
  cap.forEach(function (a, cx) {
198
199
  params[a] = args[cx + 1];
199
200
  });
200
201
  });
201
- params = serialize(params);
202
202
  return params;
203
203
  }
204
204
 
@@ -256,7 +256,7 @@ function seekResponse(data, seeker, apiMap = {}) {
256
256
  data = JSON.parse(data);
257
257
  }
258
258
  if (next) {
259
- data = (pick || next.id) + "?" + getUrlParamsForApi(next, data);
259
+ data = (pick || next.id) + "?" + serialize(getUrlParamsForApi(next, data));
260
260
  if (getNextValue) {
261
261
  data = getParamsFromUrl(data);
262
262
  if (pick) data = data[pick];
@@ -300,7 +300,7 @@ function parseConfig(api) {
300
300
  });
301
301
  return '';
302
302
  });
303
- url.replace(/[\?\#][\s\S]*$/, '').replace(/([\:\\]\:|\:\w+)/g, function (p) {
303
+ url.replace(/[\#][\s\S]*$/, '').replace(/([\:\\]\:|\:\w+)/g, function (p) {
304
304
  p = p.slice(1);
305
305
  if (!required[p] && p !== ':') {
306
306
  required.push(p);
@@ -468,7 +468,43 @@ function LoadingArray_then(ok, oh) {
468
468
  function LoadingArray_abort(ok, oh) {
469
469
  if (this.loading) this.loading.abort();
470
470
  }
471
-
471
+ var getApi = function (serviceId, promised_map) {
472
+ return promised_map.then((apiMap) => {
473
+ serviceId = serviceId.replace(/[\?\:][\s\S]*$/, "");
474
+ const api = apiMap[serviceId];
475
+ if (!api) throw new Error(i18n`没有找到对应的接口 id ${serviceId}.`);
476
+ return extend({}, api, { root: apiMap });
477
+ });
478
+ };
479
+ var prepareURL = function (url, params) {
480
+ var rest = [];
481
+ var search;
482
+ var uri = url.replace(/#[\s\S]*$/, "").replace(/[\\\:]\:|\:[a-z\_][\w]*/gi, function (d) {
483
+ d = d.slice(1);
484
+ if (d === ":") return d;
485
+ rest.push(d);
486
+ return seekResponse(params, d) || '';
487
+ });
488
+ if (isObject(params)) params = extend(params instanceof Array ? [] : {}, params);
489
+ if (/\?/.test(uri)) search = uri.replace(/^[\s\S]*?\?/, "");
490
+ var baseuri = uri.replace(/\?[\s\S]*$/, "");
491
+ var hasOwnProperty = {}.hasOwnProperty;
492
+ if (search) {
493
+ var searchParams = parseKV(search);
494
+ if (params) for (var k in searchParams) {
495
+ if (hasOwnProperty.call(searchParams, k) && hasOwnProperty.call(params, k)) {
496
+ searchParams[k] = params[k];
497
+ rest.push(k);
498
+ }
499
+ }
500
+ search = serialize(searchParams);
501
+ if (search) uri = baseuri + "?" + search;
502
+ else uri = baseuri;
503
+ } else {
504
+ uri = baseuri;
505
+ }
506
+ return [uri, rest, baseuri, search];
507
+ };
472
508
  var privates = {
473
509
  pack(serviceId, params) {
474
510
  if (/\?/.test(serviceId)) {
@@ -545,12 +581,7 @@ var privates = {
545
581
  return true;
546
582
  },
547
583
  getApi(serviceId) {
548
- return this.getConfigPromise().then((apiMap) => {
549
- serviceId = serviceId.replace(/[\?\:][\s\S]*$/, "");
550
- const api = apiMap[serviceId];
551
- if (!api) throw new Error(i18n`没有找到对应的接口 id ${serviceId}.`);
552
- return extend({}, api, { root: apiMap });
553
- });
584
+ return getApi(serviceId, this.getConfigPromise());
554
585
  },
555
586
  prepare(method, url, params) {
556
587
  var spliterIndex = /[\:\|\/\~\!\?]/.exec(method), search;
@@ -558,33 +589,8 @@ var privates = {
558
589
  else spliterIndex = method.length;
559
590
  var coinmethod = method.slice(0, spliterIndex).toLowerCase();
560
591
  var realmethod = coinmethod.replace(/\W+$/g, '');
561
- var rest = [];
562
- var uri = url.replace(/#[\s\S]*$/, "").replace(/[\\\:]\:|\:[a-z\_][\w]*/gi, function (d) {
563
- d = d.slice(1);
564
- if (d === ":") return d;
565
- rest.push(d);
566
- return seekResponse(params, d) || '';
567
- });
568
- if (isObject(params)) params = extend(params instanceof Array ? [] : {}, params);
569
- if (/\?/.test(uri)) search = uri.replace(/^[\s\S]*?\?/, "");
570
- var baseuri = uri.replace(/\?[\s\S]*$/, "");
571
- var hasOwnProperty = {}.hasOwnProperty;
572
- if (search) {
573
- var searchParams = parseKV(search);
574
- if (params) for (var k in searchParams) {
575
- if (hasOwnProperty.call(searchParams, k) && hasOwnProperty.call(params, k)) {
576
- searchParams[k] = params[k];
577
- rest.push(k);
578
- }
579
- }
580
- search = serialize(searchParams);
581
- if (search) uri = baseuri + "?" + search;
582
- else uri = baseuri;
583
- } else {
584
- uri = baseuri;
585
- }
586
-
587
- rest.forEach(k => delete params[k]);
592
+ var [uri, rest, baseuri, search] = prepareURL(url, params);
593
+ if (params && rest.length) rest.forEach(r => delete params[r]);
588
594
  return { method: realmethod, coinmethod, selector: method.slice(spliterIndex + 1), search, baseuri, uri, params };
589
595
  },
590
596
  loadIgnoreConfig(method, url, params1, api) {
@@ -605,7 +611,7 @@ var privates = {
605
611
  }).error(xhr => {
606
612
  try {
607
613
  var e = getErrorMessage(parseData(xhr.response || xhr.responseText || xhr.statusText || xhr.status));
608
- oh({ status: xhr.status, api, params: params1, error: e, toString: getErrorMessage })
614
+ oh({ status: loading.status, api, params: params1, error: e, toString: getErrorMessage })
609
615
  } catch (error) {
610
616
  oh(error);
611
617
  }
@@ -681,6 +687,10 @@ function responseCrash(e, data) {
681
687
  } else {
682
688
  data.error = e;
683
689
  }
690
+ if (isObject(e)) {
691
+ if (e.reported) return;
692
+ e.reported = true;
693
+ }
684
694
  error_report(e, e.status < 500 ? 'warn' : 'error');
685
695
  }
686
696
  var toDataString = function () { return isEmpty(this.data) ? '' : this.data };
@@ -724,8 +734,13 @@ var unbindInstance = function (instanceId, callback) {
724
734
  };
725
735
  var OUTDATE = new Error(i18n`请求被覆盖`);
726
736
  var ABORTED = new Error(i18n`请求已取消`);
737
+ var wrapRequest = function (p, req) {
738
+
739
+ };
727
740
  var data = {
741
+ prepareURL,
728
742
  decodeStructure,
743
+ getUrlParamsForApi,
729
744
  encodeStructure,
730
745
  abortAll: cross.abortAll,
731
746
  responseLoaded(response) {
@@ -812,12 +827,15 @@ var data = {
812
827
  config = Promise.resolve(config).then(createApiMap);
813
828
  }
814
829
  return enrich({
815
- from(id, params) {
816
- return config.then(function (data) {
817
- var a = data[id];
818
- return privates.fromApi(a, params);
830
+ from(id, params, parse) {
831
+ return config.then(function (map) {
832
+ var a = map[id];
833
+ return data.fromApi(a, params, parse);
819
834
  });
820
835
  },
836
+ getApi(id) {
837
+ return getApi(id, config);
838
+ },
821
839
  queue(ids, params, cb) {
822
840
  ids = ids.slice(0);
823
841
  config.then(function (res) {
@@ -1,8 +1,7 @@
1
1
  function main(elem) {
2
2
  elem = optionbar.apply(null, arguments);
3
3
  var scope = {};
4
- care(elem, function (p) {
5
- if (elem.childNodes.length) return;
4
+ if (!elem.childNodes.length) care(elem, function (p) {
6
5
  var [f, data] = p;
7
6
  elem.innerHTML = field;
8
7
  render(elem, scope = {
@@ -10,13 +9,14 @@ function main(elem) {
10
9
  data,
11
10
  error: null,
12
11
  field: f,
12
+ container,
13
13
  readonly: !!this.readonly
14
14
  });
15
15
  elem.oldValue = data[f.key];
16
16
  elem.setAttribute("field", f.key);
17
17
  }, false);
18
18
  elem.setAttribute("field", '');
19
- elem.renders = [function () {
19
+ elem.$renders = [function () {
20
20
  if (!(this.src instanceof Array)) return;
21
21
  var [f, data] = this.src;
22
22
  if (!f || !data) return;
@@ -2,6 +2,11 @@
2
2
  height: auto;
3
3
  box-shadow: none !important;
4
4
 
5
+ >model:first-child {
6
+ padding: 6px 10px;
7
+ display: block;
8
+ }
9
+
5
10
  >.head {
6
11
  vertical-align: top;
7
12
 
@@ -47,7 +52,8 @@
47
52
  border-color: #f32;
48
53
  outline: 1px solid #f32;
49
54
  }
50
- .error{
51
- color:#c32;
55
+
56
+ .error {
57
+ color: #c32;
52
58
  }
53
59
  }
@@ -38,6 +38,7 @@ function format(formater) {
38
38
  });
39
39
  }
40
40
  function filterTime(time, format) {
41
+ if (!isHandled(time)) return '';
41
42
  if (isFinite(time)) time = +time;
42
43
  var value = new Date(time);
43
44
  if (!+value) {
@@ -50,37 +51,67 @@ function filterTime(time, format) {
50
51
  format = format.charAt(0);
51
52
  }
52
53
  var splited = getSplitedDate(value);
54
+ var now = new Date;
53
55
  var [year, month, date, hour, minute, second, milli, day] = splited;
54
- var [year1, month1, date1, hour1, minute1] = getSplitedDate(new Date);
56
+ var [year1, month1, date1, hour1, minute1, second1, milli1, day1] = getSplitedDate(now);
55
57
  var today = new Date(year1, month1 - 1, date1);
56
58
  var thatday = new Date(year, month - 1, date);
57
59
  var delta = (today - thatday) / 24 / 3600000;
58
- var time = `${hour}:${fixLength(minute)}`;
59
- if (delta < 6 && delta > 2) {
60
- return `星期` + days[day] + hour + "点";
60
+ if (minute === 0) var time = hour + "点";
61
+ else if (minute === 30) time = hour + "点半";
62
+ else time = `${hour}:${fixLength(minute)}`;
63
+ if (delta < 7 && delta > 2) {
64
+ if (day >= day1) {
65
+ return `上星期` + days[day] + time;
66
+ }
67
+ return `星期` + days[day] + time;
68
+ }
69
+ else if (delta > -7 && delta < -2) {
70
+ if (day <= day1) {
71
+ return `下星期` + days[day] + time;
72
+ }
73
+ return `星期` + days[day] + time;
61
74
  }
62
75
  switch (delta) {
63
76
  case 0:
64
77
  if (minute === minute1 && hour === hour1) {
65
- return `刚刚`;
78
+ if (second <= second1) return `刚刚`;
79
+ return `${second - second1}秒后`;
80
+ }
81
+ else if (value > now) {
82
+ if (hour === hour1) {
83
+ return `${minute - minute1}分钟后`;
84
+ }
85
+ return `还有${hour - hour1}小时${minute - minute1}分钟`;
66
86
  }
67
87
  return time;
88
+ case -1:
89
+ return "明天" + time;
68
90
  case 1:
69
- return '昨天' + hour + "点"
91
+ return '昨天' + time;
70
92
  case 2:
71
- return '前天' + hour + "点"
93
+ return '前天' + time;
94
+ case -2:
95
+ return "后天" + time;
72
96
  default:
73
97
  switch (year1 - year) {
74
98
  case 0:
99
+ if (value > now) {
100
+ return `今年${month}${format || '月'}${date}${format ? '' : '日'} ${time}`;
101
+ }
75
102
  return `${month}${format || '月'}${date}${format ? '' : '日'} `;
76
103
  case 1:
77
- if (month1 % 12 - month % 12 === 1) {
104
+ if (month1 < month) {
78
105
  return `${month}${format || '月'}${date}${format ? '' : '日'} `;
79
106
  }
80
107
  return "去年" + month + "月";
108
+ case -1:
109
+ return "明年" + month + "月" + date + "日";
81
110
  case 2:
82
111
  return "前年" + month + "月";
112
+ case -2:
113
+ return "后年" + month + "月" + date + "日";
83
114
  }
84
- return `${year}${format || '年'}`;
115
+ return `${year}${format || '年'}${month}${format || "月"}`;
85
116
  }
86
117
  }
@@ -5,6 +5,8 @@ var decodeMap = function () {
5
5
  for (var cx = 0, dx = encoding.length; cx < dx; cx++) {
6
6
  map[encoding[cx]] = cx;
7
7
  }
8
+ map["-"] = map["+"];
9
+ map["_"] = map["/"];
8
10
  return map;
9
11
  }();
10
12
  function fromBase64(input) {
@@ -290,7 +290,7 @@ function grid(breakpoints) {
290
290
  }
291
291
  extend(grid, grid_prototype);
292
292
  if (!breakpoints) {
293
- if (grid.clientHeight || grid.isMounted) {
293
+ if (grid.clientHeight || grid.$mounted) {
294
294
  createPointsWithChildren.call(grid);
295
295
  } else {
296
296
  on("append")(grid, createPointsWithChildren);
@@ -454,7 +454,7 @@ var grid_prototype = {
454
454
  run(this.breakpoints);
455
455
  },
456
456
  reshape() {
457
- if (this.isMounted || this.offsetWidth || this.offsetHeight) {
457
+ if (this.$mounted || this.offsetWidth || this.offsetHeight) {
458
458
  this._reshape();
459
459
  } else {
460
460
  once("append")(this, this._reshape);
@@ -1,9 +1,9 @@
1
1
  function isMounted(parent) {
2
- if ("isMounted" in parent) return parent.isMounted;
2
+ if ("$mounted" in parent) return parent.$mounted;
3
3
  var temp = parent;
4
4
  while (temp && temp !== document.documentElement) {
5
- if ("isMounted" in temp) {
6
- return parent.isMounted = temp.isMounted;
5
+ if ("$mounted" in temp) {
6
+ return parent.$mounted = temp.$mounted;
7
7
  }
8
8
  temp = temp.parentNode;
9
9
  }
@@ -9,10 +9,10 @@ function ylist(container, generator, $Y) {
9
9
  list.autoFix = true;
10
10
  var saved_itemIndex = 0;
11
11
  addClass(list, 'list-' + $Y.toLowerCase());
12
- if (!list.renders) {
13
- list.renders = [];
12
+ if (!list.$renders) {
13
+ list.$renders = [];
14
14
  }
15
- list.renders.push(function () {
15
+ list.$renders.push(function () {
16
16
  var a = saved_itemIndex;
17
17
  saved_itemIndex = void 0;
18
18
  if (a !== void 0) scrollTo(a);
@@ -185,7 +185,7 @@ function maps(config = {}) {
185
185
  canvas.map.refresh();
186
186
  canvas._default = canvas.map.defaultImage();
187
187
  };
188
- if (canvas.isMounted) reshape();
188
+ if (canvas.$mounted) reshape();
189
189
  else once("append")(canvas, reshape);
190
190
  bind('resize')(canvas, reshape);
191
191
 
@@ -296,7 +296,7 @@ function main() {
296
296
  }
297
297
  return generator(index, item);
298
298
  }, direction);
299
- page.renders.unshift(function () {
299
+ page.$renders.unshift(function () {
300
300
  this.$scope.hasIcon = hasIcon();
301
301
  });
302
302
  page.open = function (a) {
@@ -46,6 +46,36 @@ unmark(checkbox);
46
46
  unmark(swap);
47
47
  unmark(image);
48
48
  unmark(success);
49
+ var renderOption = function (o, index) {
50
+ if (typeof o === 'string') return o;
51
+ if (isFunction(o)) {
52
+ var name = typeof index === 'number' ? o.name : index;
53
+ return `<a href="javascript:;" @click=field.options[${strings.encode(index)}](data)>${name}</a>`
54
+ }
55
+ if (isObject(o)) {
56
+ if (o.href) {
57
+ return `<a href=${strings.encode(o.href)}>${o.name}</a>`;
58
+ }
59
+ return `<a href='javascript:;' @click=field.options[${strings.encode(index)}](data)>${o.name}</a>`
60
+ }
61
+ return o;
62
+ }
63
+ var renderOptions = function (field, data) {
64
+ var { options } = field;
65
+ if (typeof options === 'string') return options;
66
+ if (isFunction(options)) return renderOption(options);
67
+ if (options instanceof Array) {
68
+ return options.map(renderOption).join('');
69
+ }
70
+ else if (isObject(options)) {
71
+ return Object.keys(options).map(k => renderOption(options[k], k)).join('');
72
+ }
73
+ return '';
74
+ }
75
+ var onoff = function () {
76
+ var { data, field } = this;
77
+ data[field.key] = checker.changeValue(data[field.key]);
78
+ };
49
79
  var constructors = {
50
80
  input,
51
81
  swap(e) {
@@ -77,7 +107,7 @@ var constructors = {
77
107
  date() {
78
108
  var elem = document.createElement("input");
79
109
  elem.type = "date";
80
- elem.renders = [function () {
110
+ elem.$renders = [function () {
81
111
  var { data, field } = this.$scope;
82
112
  if (data && field) elem.value = parseDate(data[field.key]);
83
113
  }]
@@ -96,6 +126,11 @@ var constructors = {
96
126
  if (options) img.setAttribute("uploadto", options.uploadto);
97
127
  return img;
98
128
  },
129
+ checker(elem) {
130
+ var { data, field } = elem;
131
+ elem.innerHTML = `<span @click="onoff()"><checker -model=data[field.key]></checker><span -bind='field.holder'></span></span>${renderOptions(field, data)}`;
132
+ render(elem.children, { onoff, checker, data, a: button, field });
133
+ },
99
134
  checkbox({ field }) {
100
135
  var elem = checkbox();
101
136
  cast(elem, field);
@@ -132,7 +167,7 @@ var constructors = {
132
167
  },
133
168
  "repeat"(_, field_type) {
134
169
  var elem = input();
135
- elem.renders = [function () {
170
+ elem.$renders = [function () {
136
171
  var { field, data } = this.$scope;
137
172
  var { status } = this;
138
173
  var valid = this.value === data[field_type];
@@ -183,7 +218,8 @@ var readonly_types = {
183
218
  if (field.options) {
184
219
  if (!field.optionsMap) field.optionsMap = createOptionsMap(field.options);
185
220
  var o = field.optionsMap[v];
186
- if (isObject(o)) return o.name;
221
+ try { e.setAttribute(field.key, v); } catch { }
222
+ if (isObject(o)) return `<s></s>` + o.name;
187
223
  if (isHandled(o)) return o;
188
224
  }
189
225
  if (isEmpty(v)) v = '';
@@ -293,7 +329,7 @@ function main(elem) {
293
329
  if (!ipt.$scope) {
294
330
  renderModel.call(ipt, field, data);
295
331
  var saved_sataus;
296
- ipt.renders.push(function () {
332
+ ipt.$renders.push(function () {
297
333
  var { valid, status } = this;
298
334
  if (elem.valid !== valid) elem.valid = valid;
299
335
  if (saved_sataus === status) return;
@@ -310,7 +346,7 @@ function main(elem) {
310
346
  on("change")(ipt, copyOptionData);
311
347
  }
312
348
  if ("options_from" in field) {
313
- ipt.renders.push(rebuildOptions);
349
+ ipt.$renders.push(rebuildOptions);
314
350
  }
315
351
  }
316
352
  }
package/coms/zimoli/on.js CHANGED
@@ -263,7 +263,7 @@ var remove = function (k, hk, [eventtypes, handler, context]) {
263
263
  var [e, h, c] = hs[cx];
264
264
  if (h === handler && e === eventtypes && c === context) {
265
265
  hs.splice(cx, 1);
266
- if (k === changes_key) element.needchanges--;
266
+ if (k === changes_key) element.$needchanges--;
267
267
  }
268
268
  }
269
269
  if (!hs.length && hs.h) {
@@ -330,8 +330,8 @@ var append = function (k, hk, listener2, firstmost) {
330
330
  if (h === handler && eventtypes === e && c === context) return;
331
331
  }
332
332
  if (k === changes_key) {
333
- if (!element.needchanges) element.needchanges = 0;
334
- element.needchanges++;
333
+ if (!element.$needchanges) element.$needchanges = 0;
334
+ element.$needchanges++;
335
335
  }
336
336
  if (firstmost) handlers.unshift(listener2);
337
337
  else handlers.push(listener2);
@@ -342,7 +342,7 @@ var on = document.efronton = function (k) {
342
342
  if (handlersMap[on_event_path]) return handlersMap[on_event_path];
343
343
  var eventtypes = parseEventTypes(k);
344
344
  k = k.replace(eventtypereg, '');
345
- var handler_path = k + "handlers";
345
+ var handler_path = "$h_" + k;
346
346
  var hk = handler_path + +!!eventtypes.capture;
347
347
  if (supportPassive) hk += +!!eventtypes.passive;
348
348
  if (is_addEventListener_enabled) var addhandler = function (context, handler, firstmost = false) {
@@ -40,14 +40,14 @@ function hasLeaveStyle(o) {
40
40
  }
41
41
 
42
42
  function _onremove(node, event) {
43
- if (!node || node.isMounted === false) return;
43
+ if (!node || node.$mounted === false) return;
44
44
  var children = node.childNodes;
45
- if (node.isMounted) {
45
+ if (node.$mounted) {
46
46
  if (!event) {
47
47
  event = createEvent("remove");
48
48
  }
49
49
  dispatch(node, event);
50
- node.isMounted = false;
50
+ node.$mounted = false;
51
51
  }
52
52
  if (children) for (var cx = 0, dx = children.length; cx < dx; cx++) {
53
53
  _onremove(children[cx], event);