efront 3.18.2 → 3.18.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.
@@ -12,17 +12,11 @@ async function link(id, page) {
12
12
  var xhr = null;
13
13
  while (true) {
14
14
  if (removed) break;
15
- xhr = data.from("care", { id }, function (data) {
16
- page.$scope.msglist.push.apply(page.$scope.msglist, data);
17
- var { msglist } = page.$scope;
18
- var chat = page.querySelector("chat");
19
- chat.go(msglist.length ? msglist.length - 1 : 0);
20
- });
21
- await xhr;
15
+ xhr = data.from("care", { id });
16
+ page.push(await xhr);
22
17
  }
23
18
  }
24
19
  function main(id) {
25
- console.log(id)
26
20
  var page = frame$chat();
27
21
  care(page, 'send', function (msg) {
28
22
  data.from("cast", { id: page.roomid, msg });
@@ -230,12 +230,16 @@ function cross_(jsonp, digest = noop, method, url, headers) {
230
230
  }
231
231
  }
232
232
  }
233
+ var is_gb2312 = /^[gbk][^e]/i.test(method);
234
+ if (is_gb2312) method = method.slice(1);
233
235
  if (nocross) {
234
236
  extend(realHeaders, _headers);
235
237
  xhr.open(method, url);
236
238
  } else {
237
239
  xhr.open(method, getCrossUrl(url, _headers));
238
240
  }
241
+ if (is_gb2312) xhr.overrideMimeType("text/plain; charset=gb2312");
242
+
239
243
  Object.keys(realHeaders).forEach(key => setRequestHeader.call(xhr, key, realHeaders[key]));
240
244
  if (!isEmpty(datas)) send.call(xhr, datas);
241
245
  else send.call(xhr);
@@ -286,7 +290,10 @@ function addDirect(a) {
286
290
  if (typeof a === 'string' || a instanceof RegExp) cors_hosts.push(a);
287
291
  }
288
292
  function notCross(domain) {
289
- if (!base || location_href && location_href === domain.slice(0, location_href.length) || !/^https?\:\/\/|^s?\/\//.test(domain)) return true;
293
+ if (!base ||
294
+ location_href && location_href === domain.slice(0, location_href.length) ||
295
+ !/^https?\:\/\/|^s?\/\//.test(domain) ||
296
+ domain.replace(domainReg, '$2') === base.replace(domainReg, '$2')) return true;
290
297
  for (var cx = 0, dx = cors_hosts.length; cx < dx; cx++) {
291
298
  var host = cors_hosts[cx];
292
299
  if (host instanceof RegExp) {
@@ -11,7 +11,7 @@
11
11
  </padding>
12
12
  </chat>
13
13
  <div textarea @mousedown="this.firstChild.focus()">
14
- <div @input="resize(body)" @keydown.alt.enter="send()" contenteditable="true" -model="text"></div>
14
+ <div @keydown.alt.enter="send()" contenteditable="true" -model="text"></div>
15
15
  </div>
16
16
  </grid>
17
17
  <div foot>
@@ -17,8 +17,20 @@ function msg(elem, { m: data }, parentScopes) {
17
17
  function chat(title = '会话窗口') {
18
18
  var page = view();
19
19
  page.innerHTML = template;
20
- drag.on(page.firstChild, page);
20
+ drag.on(page.firstElementChild, page);
21
21
  resize.on(page);
22
+ page.push = function (msgs) {
23
+ var { msglist } = this.$scope;
24
+ msglist.push.apply(msglist, msgs);
25
+ var chat = page.querySelector("chat");
26
+ var lastmsg = chat.getLastVisibleElement();
27
+ if (msgs.length && (!lastmsg || lastmsg.offsetTop + lastmsg.offsetHeight === chat.scrollHeight)) {
28
+ chat.go(msglist.length ? msglist.length - 1 : 0);
29
+ }
30
+ };
31
+ page.renders = [function () {
32
+ this.$scope.resize(this.$scope.body);
33
+ }];
22
34
  renderWithDefaults(page, {
23
35
  chat: list,
24
36
  title,
@@ -102,7 +102,7 @@ chat {
102
102
  height: 100%;
103
103
  }
104
104
 
105
- .editor-height(80px);
105
+ .editor-height(96px);
106
106
 
107
107
  [textarea] {
108
108
  display: block;
@@ -114,13 +114,13 @@ chat {
114
114
  border: none;
115
115
  outline: none;
116
116
  border-top: 1px solid #000;
117
- border-bottom: 30px solid transparent;
117
+ border-bottom: 28px solid transparent;
118
118
  ime-mode: active;
119
119
  overflow: auto;
120
120
 
121
121
  >div {
122
122
  height: auto;
123
- min-height: 49px;
123
+ min-height: 52px;
124
124
  width: 100%;
125
125
  vertical-align: top;
126
126
  padding: 6px 16px;
@@ -2,11 +2,20 @@ function main(title, { fields, options: options0, load, remove }, edit_ref) {
2
2
  prepare(edit_ref);
3
3
  var page = document.createElement("div");
4
4
  var edit = function (o) {
5
+ if (!edit_ref) {
6
+ return;
7
+ }
8
+ var callback = function () {
9
+ page.$scope.load();
10
+ };
11
+ if (isFunction(edit_ref)) {
12
+ var p = edit_ref(o, callback);
13
+ if (p) on('submited')(p, callback);
14
+ return;
15
+ }
5
16
  zimoli.prepare(edit_ref, function () {
6
- var p = popup(edit_ref, { fields, data: o })
7
- on("submited")(p, function () {
8
- page.$scope.load();
9
- })
17
+ var p = popup(edit_ref, { fields, data: o})
18
+ on("submited")(p, callback);
10
19
  })
11
20
  };
12
21
  page.innerHTML = template;
@@ -27,14 +27,19 @@ var baidu = {
27
27
  getURL: function (x, y, z) {
28
28
  if (x < 0) x = "M" + -x;
29
29
  if (y < 0) y = "M" + -y;
30
- return `http://online0.map.bdimg.com/tile/?qt=tile&x=${x}&y=${y}&z=${z}&styles=pl&scaler=1&udt=20180721`;
30
+ return `https://maponline2.bdimg.com/tile/?qt=tile&x=${x}&y=${y}&z=${z}&styles=pl&scaler=1&udt=20180721`;
31
31
  },
32
32
  lat2y,
33
33
  lng2x,
34
34
  x2lng,
35
35
  y2lat,
36
+ minLng: -180,
37
+ maxLng: 180,
36
38
  direction: -1,
37
39
  lat2tile(lat, zoom) {
38
40
  return Math.ceil(this.lat2y(lat, zoom));
41
+ },
42
+ lng2tile(lng, zoom) {
43
+ return Math.floor(this.lng2x(lng, zoom));
39
44
  }
40
45
  }
@@ -0,0 +1,3 @@
1
+ return {
2
+ url:'http://webst04.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}'
3
+ };
@@ -1,4 +1,4 @@
1
1
  var google = {
2
- url: `http://mt{1-3}.google.cn/vt/lyrs=h&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}`,
3
- url: `http://mt{1-3}.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}`
2
+ url: `https://mt{1-3}.google.cn/vt/lyrs=h&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}`,
3
+ url: `https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s%40781&hl=zh-CN&gl=CN&x={x}&y={y}&z={z}&src=app&scale=1&from=app`
4
4
  };
package/coms/maps/osm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var osm = {
2
- url: `http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png`,
2
+ url: `https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png`,
3
3
  loadImage(image, src) {
4
4
  var img = new Image;
5
5
  img.crossOrigin = "anonymous";
@@ -0,0 +1,3 @@
1
+ &{
2
+ position: absolute;
3
+ }
@@ -9,5 +9,11 @@ function main(title, type, fields, edit_ref, options, idkey = fields[0].key) {
9
9
  },
10
10
  fields,
11
11
  options,
12
- }, edit_ref);
12
+ }, edit_ref ? edit_ref : function (o) {
13
+ var p = pedit(title, type, { data: o, fields });
14
+ p.initialStyle = popup.style;
15
+ popup(p, true);
16
+ move.setPosition(p, [.5, .5]);
17
+ return p;
18
+ });
13
19
  }
@@ -0,0 +1,154 @@
1
+ // data.setConfig(data.parseConfig(`
2
+ // https://shenfen.supfree.net/:
3
+ // sheng: gget:[].bblue #title=!title&href=!href&short=!innerText
4
+ // shi: gget:[].bblue sheng.asp?sheng#title=!title&href=!href&short=!innerText
5
+ // qu: gget:[].bblue shi.asp?sheng&shi#title=!title&href=!href&short=!innerText
6
+ // `));
7
+ // var setid = function (a) {
8
+ // a = a.filter(a => a.title);
9
+ // for (var o of a) {
10
+ // o.name = o.title.replace(/身份证|号码/g, "").replace(/市县/, '市');
11
+ // o.id = o.href.replace(/^([^\d]+)\.asp\?[\s\S]*\1\=(\d+)[\s\S]*?$/g, "$2");
12
+ // delete o.href;
13
+ // delete o.title;
14
+ // }
15
+ // return a;
16
+ // };
17
+ // var prefix = {};
18
+ // var tree = {};
19
+ // await queue.call(await data.from("sheng", setid), async function (h) {
20
+ // var shi = await data.from("shi", { sheng: h.id }, setid);
21
+ // var so = {};
22
+ // tree[h.short] = so;
23
+ // while (shi.length) {
24
+ // var s = shi.pop();
25
+ // var qu = await data.from("qu", { sheng: h.id, shi: s.id }, setid);
26
+ // var qo = {};
27
+ // so[s.short] = qo;
28
+ // while (qu.length) {
29
+ // var q = qu.pop();
30
+ // var id = +`${h.id}${s.id}${q.id}`;
31
+ // qo[q.short] = id;
32
+ // prefix[id] = { id, sheng: h.short, shi: s.short, qu: q.short };
33
+ // }
34
+ // }
35
+ // }, 9);
36
+ // prefix = Object.keys(prefix).sort((a, b) => a - b).map(k => prefix[k]);
37
+ // console.log(tree)
38
+ // var prefix = [...];
39
+ // console.log(prefix)
40
+ // for (var cx = 0, ci = 0, cs = prefix[0]; cx < prefix.length; cx++) {
41
+ // if (prefix[cx + 1] !== prefix[cx] + 1) {
42
+ // prefix.splice(ci + 1, cx - ci, prefix[cx] - prefix[ci]);
43
+ // if (ci > 1) {
44
+ // var temp = prefix[ci];
45
+ // prefix[ci] -= cs;
46
+ // cs = temp;
47
+ // }
48
+ // cx = ci + 1;
49
+ // ci = cx + 1;
50
+ // };
51
+ // }
52
+ // console.log(prefix)
53
+
54
+ var prefix = function (source) {
55
+ var src = [];
56
+ do {
57
+ var s = source[0];
58
+ src.push(s);
59
+ if (source[1] === 0) {
60
+ if (source.length <= 2) break;
61
+ source[2] += source[0], source.shift(), source.shift();
62
+ }
63
+ else source[0]++, source[1]--;
64
+ } while (source.length);
65
+ return src;
66
+ }([110101, 8, 10, 6, 117, 1, 9873, 14, 120, 0, 2, 0, 2, 0, 9876, 7, 20, 0, 2, 10, 58, 4, 20, 7, 20, 0, 2, 2, 4, 0, 2, 1, 52, 2, 20, 3, 20, 3, 80, 3, 5, 0, 15, 0, 2, 12, 58, 0, 20, 2, 20, 14, 60, 1, 20, 3, 20, 17, 60, 3, 20, 2, 4, 1, 16, 12, 80, 3, 20, 7, 80, 2, 20, 9, 60, 3, 20, 2, 21, 4, 6, 0, 53, 1, 20, 1, 20, 7, 60, 1, 8920, 0, 4, 5, 16, 2, 60, 0, 20, 2, 10, 1, 10, 6, 80, 2, 10, 0, 10, 1, 80, 1, 10, 0, 10, 0, 2, 8, 58, 0, 20, 1, 20, 1, 3, 1, 57, 0, 20, 2, 20, 3, 80, 1, 20, 8, 60, 0, 20, 1, 20, 9, 60, 1, 20, 1, 20, 11, 60, 0, 20, 1, 20, 13, 60, 1, 20, 1, 20, 9, 60, 1, 1020, 1, 21, 1, 3, 9, 176, 1, 20, 3, 6, 0, 2, 2, 4, 0, 168, 2, 20, 2, 4, 0, 2, 9, 74, 2, 22, 4, 6, 4, 7372, 4, 20, 4, 80, 6, 20, 2, 80, 3, 100, 3, 20, 5, 7, 2, 73, 1, 20, 5, 60, 0, 21, 0, 19, 6, 80, 1, 20, 6, 60, 4, 20, 1, 20, 5, 80, 1, 20, 8, 60, 0, 1120, 5, 21, 1, 5, 4, 74, 1, 20, 3, 80, 1, 21, 5, 179, 1, 21, 9, 79, 1, 23, 3, 5, 3, 5, 0, 67, 0, 21, 6, 79, 0, 21, 5, 99, 2, 57180, 5, 10, 3, 11, 2, 59, 0, 20, 3, 10, 2, 13, 0, 57, 2, 20, 3, 10, 0, 10, 0, 2, 0, 58, 0, 20, 3, 10, 0, 10, 2, 80, 4, 20, 1, 80, 3, 23, 0, 57, 1, 20, 2, 10, 0, 15, 1, 55, 1, 20, 3, 10, 0, 70, 1, 20, 4, 10, 0, 10, 1, 80, 4, 10, 0, 10, 0, 60, 0, 20, 2, 20, 1, 80, 1, 3, 0, 17, 0, 2, 1, 58, 1, 20, 2, 20, 1, 3, 0, 57, 1, 20, 3, 20, 1, 60, 0, 8620, 5, 11, 0, 10, 0, 59, 2, 20, 3, 10, 0, 10, 0, 60, 3, 20, 2, 21, 1, 59, 1, 20, 2, 20, 1, 80, 2, 20, 0, 2, 1, 58, 1, 20, 1, 20, 2, 4, 0, 56, 0, 20, 1, 20, 3, 80, 1, 20, 1, 60, 1, 1520, 5, 23, 0, 2, 0, 7675, 7, 20, 0, 2, 6, 58, 3, 20, 7, 20, 0, 2, 2, 4, 0, 2, 2, 52, 0, 20, 6, 20, 0, 60, 1, 20, 6, 20, 1, 80, 2, 4, 1, 16, 3, 80, 5, 20, 3, 80, 15, 21, 0, 59, 0, 20, 4, 10, 0, 11, 0, 4, 0, 2, 0, 5, 0, 48, 1, 20, 3, 20, 0, 80, 4, 23, 1, 57, 0, 2, 2, 18, 1, 20, 0, 2, 1, 58, 1, 20, 1, 20, 5, 60, 2, 1020, 3, 23, 2, 6, 2, 391, 2, 77380, 0, 2, 7, 9, 8, 118, 0, 9871, 6, 10, 5, 10, 4, 80, 5, 10, 0, 70, 2, 20, 4, 10, 0, 10, 3, 60, 1, 20, 1, 3, 1, 7, 1, 70, 2, 20, 6, 10, 0, 70, 5, 20, 1, 10, 0, 10, 0, 2, 0, 58, 3, 20, 0, 2, 3, 18, 3, 80, 3, 10, 0, 10, 0, 5, 0, 3, 2, 53, 0, 19, 2, 20, 4, 7, 0, 53, 1, 20, 2, 10, 0, 12, 0, 4, 0, 54, 0, 3, 0, 4, 0, 13, 1, 10, 1, 10, 0, 60, 2, 20, 2, 80, 3, 20, 1, 20, 3, 8780, 5, 7, 2, 14, 0, 5, 0, 54, 4, 20, 0, 2, 3, 8, 1, 14, 2, 56, 2, 20, 3, 21, 0, 2, 0, 2, 3, 55, 1, 20, 1, 10, 0, 10, 0, 3, 0, 57, 2, 20, 2, 20, 2, 80, 1, 20, 0, 3, 0, 57, 2, 20, 2, 20, 0, 2, 0, 3, 1, 55, 3, 20, 2, 20, 1, 3, 1, 57, 0, 20, 2, 20, 1, 80, 3, 20, 3, 60, 1, 20, 1, 20, 6, 60, 0, 1320, 1, 21, 1, 3, 4, 7576, 3, 10, 0, 10, 2, 80, 3, 6, 0, 14, 2, 80, 3, 10, 0, 10, 2, 80, 5, 20, 0, 80, 4, 20, 0, 80, 3, 20, 0, 80, 2, 10, 0, 10, 0, 80, 2, 10, 0, 11, 6, 59, 0, 120, 3, 20, 3, 80, 2, 21, 0, 2, 2, 57, 1, 20, 3, 20, 6, 60, 1, 20, 1, 20, 3, 80, 1, 20, 3, 80, 2, 20, 4, 80, 1, 20, 2, 80, 1, 20, 2, 80, 1, 20, 4, 60, 0, 520, 0, 21, 1, 3, 2, 76, 1, 21, 1, 7, 2, 72, 0, 21, 1, 3, 1, 276, 0, 20, 2, 7180, 4, 10, 0, 10, 4, 7, 0, 53, 1, 20, 5, 10, 2, 90, 4, 20, 1, 80, 2, 20, 0, 2, 7, 58, 0, 20, 4, 20, 0, 3, 3, 57, 2, 20, 2, 21, 7, 59, 0, 20, 1, 20, 4, 60, 3, 20, 1, 20, 4, 60, 0, 20, 1, 20, 5, 60, 1, 1220, 2, 24, 0, 2, 4, 7874, 4, 10, 0, 10, 3, 80, 2, 21, 0, 59, 0, 20, 1, 12, 0, 8, 2, 80, 2, 20, 0, 2, 7, 58, 0, 20, 1, 20, 0, 80, 1, 21, 0, 59, 0, 20, 1, 20, 14, 60, 1, 20, 2, 20, 9, 60, 0, 20, 1, 20, 5, 60, 2, 20, 1, 20, 9, 80, 1, 20, 9, 60, 0, 1020, 3, 25, 3, 6, 1, 69, 1, 20, 5, 8, 2, 5, 0, 67, 1, 20, 9, 11, 0, 70, 0, 20, 7, 9, 1, 7570, 4, 11, 1, 11, 3, 58, 0, 20, 2, 4, 0, 6, 3, 70, 4, 20, 5, 20, 2, 80, 5, 80, 0, 20, 2, 20, 2, 80, 1, 10, 2, 23, 0, 47, 6, 20, 4, 23, 1, 57, 5, 20, 1, 10, 0, 15, 6, 55, 2, 20, 2, 10, 0, 10, 0, 2, 0, 59, 1, 19, 1, 80, 2, 20, 1, 20, 1, 80, 2, 100, 1, 10, 1, 10, 8, 80, 1, 20, 7, 60, 1, 20, 1, 20, 5, 60, 0, 20, 1, 20, 5, 80, 1, 20, 7, 580, 0, 20, 0, 2, 2, 5, 0, 2, 0, 571, 0, 21, 4, 6, 2, 37173, 5, 7, 0, 14, 0, 59, 4, 20, 4, 10, 0, 10, 4, 80, 6, 10, 0, 11, 7, 59, 0, 20, 3, 10, 0, 10, 2, 4, 0, 56, 1, 20, 5, 10, 0, 11, 1, 4, 1, 55, 0, 20, 2, 10, 0, 10, 1, 80, 3, 10, 0, 10, 0, 3, 4, 57, 1, 20, 3, 10, 0, 10, 2, 4, 0, 56, 2, 20, 1, 21, 1, 4, 2, 75, 1, 22, 2, 58, 1, 20, 1, 20, 2, 80, 1, 20, 1, 3, 0, 57, 1, 20, 2, 20, 9, 60, 0, 20, 2, 20, 5, 60, 0, 20, 2, 20, 7, 80, 1, 20, 7, 60, 0, 20, 1, 20, 8, 980, 1, 20, 7, 80, 0, 20, 8, 7280, 6, 10, 6, 90, 4, 21, 0, 59, 0, 20, 2, 20, 4, 60, 0, 120, 5, 20, 0, 4, 4, 56, 2, 20, 1, 5, 1, 15, 0, 3, 2, 58, 2, 19, 3, 100, 1, 3, 0, 17, 1, 60, 0, 20, 1, 20, 2, 60, 3, 20, 2, 21, 2, 59, 0, 2, 0, 4, 0, 14, 1, 20, 6, 60, 1, 20, 1, 20, 3, 60, 0, 20, 1, 80, 0, 1420, 1, 21, 1, 3, 3, 6179, 2, 17, 0, 1080, 4, 10, 0, 10, 1, 3, 0, 57, 0, 20, 3, 10, 0, 10, 0, 2, 2, 58, 0, 20, 1, 3, 0, 17, 0, 60, 1, 20, 7, 10, 1, 10, 3, 5, 0, 55, 1, 20, 2, 10, 0, 10, 4, 6, 2, 54, 0, 20, 2, 10, 0, 10, 0, 2, 1, 3, 0, 55, 1, 20, 2, 20, 5, 60, 0, 20, 1, 10, 0, 10, 1, 80, 2, 20, 2, 60, 0, 20, 2, 20, 7, 60, 0, 20, 2, 20, 8, 80, 1, 20, 9, 60, 0, 20, 1, 20, 1, 60, 1, 1120, 2, 21, 0, 2, 0, 477, 0, 100, 0, 21, 5, 8, 0, 6971, 6, 10, 3, 70, 3, 20, 3, 20, 3, 8, 0, 3, 1, 49, 1, 20, 0, 2, 5, 98, 3, 20, 0, 80, 0, 5, 9, 17, 0, 59, 1, 19, 7, 80, 3, 20, 0, 2, 2, 78, 4, 20, 3, 10, 0, 12, 0, 2, 0, 56, 2, 20, 2, 22, 0, 58, 2, 220, 2, 22, 3, 60, 1, 18, 2, 21, 2, 59, 0, 20, 1, 20, 3, 5, 1, 55, 0, 20, 1, 20, 0, 2, 0, 58, 0, 20, 1, 20, 4, 80, 1, 20, 0, 2, 0, 58, 0, 20, 1, 20, 0, 2, 0, 2, 2, 56, 1, 20, 0, 100, 0, 3100, 1, 20, 1, 80, 1, 20, 1, 3, 0, 57, 0, 20, 1, 20, 2, 60, 0, 4720, 5, 10, 0, 10, 6, 80, 4, 10, 0, 10, 5, 80, 4, 10, 0, 10, 11, 80, 0, 2, 2, 8, 0, 10, 2, 60, 0, 20, 2, 11, 0, 9, 0, 80, 2, 20, 0, 60, 0, 20, 2, 20, 1, 80, 3, 20, 0, 60, 0, 20, 1, 20, 3, 60, 0, 20, 1, 20, 10, 80, 1, 20, 2, 80, 1, 20, 8, 60, 0, 20, 1, 20, 3, 60, 0, 20, 1, 20, 4, 60, 0, 620, 0, 21, 2, 4, 7, 75, 0, 22, 8, 179, 0, 22, 0, 3, 1, 174, 0, 21, 10, 79, 1, 22, 8, 7278, 6, 24, 3, 5, 1, 3, 3, 68, 7, 100, 0, 8800, 2, 4, 2, 20, 3, 5, 1, 3, 6, 31068, 14, 121, 16, 18, 3, 141, 3, 9720, 0, 3, 4, 8, 3, 9, 4, 8, 0, 2, 1, 50, 3, 120, 3, 10, 0, 10, 1, 80, 2, 10, 0, 10, 1, 80, 3, 20, 1, 3, 1, 77, 0, 2, 0, 20, 0, 3, 0, 55, 2, 20, 0, 2, 1, 19, 5, 59, 0, 20, 1, 10, 1, 10, 3, 80, 3, 20, 2, 80, 1, 10, 0, 13, 1, 4, 0, 73, 1, 10, 2, 12, 1, 3, 0, 3, 0, 3, 1, 49, 0, 120, 3, 20, 4, 60, 0, 20, 1, 20, 4, 80, 1, 20, 8, 80, 1, 20, 2, 60, 0, 20, 1, 20, 4, 60, 0, 20, 1, 20, 6, 80, 1, 20, 2, 80, 1, 20, 1, 60, 0, 920, 1, 20, 2, 8, 1, 72, 0, 21, 6, 99, 12, 100, 17, 80, 0, 21, 15, 279, 0, 20, 2, 100, 5, 6280, 2, 10, 3, 10, 2, 60, 0, 20, 2, 20, 1, 80, 2, 20, 9, 60, 1, 20, 1, 20, 4, 1780, 0, 21, 8, 79, 0, 21, 6, 79, 0, 21, 6, 79, 0, 25, 4, 75, 0, 21, 14, 79, 1, 21, 1, 3, 7, 7376, 2, 10, 2, 10, 1, 3, 5, 57, 0, 120, 1, 20, 5, 7, 0, 53, 0, 20, 1, 20, 7, 80, 1, 20, 3, 80, 1, 20, 9, 80, 1, 20, 3, 80, 1, 20, 8, 80, 1, 20, 6, 1180, 0, 21, 9, 179, 0, 21, 7, 9, 0, 170, 1, 21, 10, 99, 7, 80, 0, 21, 8, 79, 0, 21, 1, 79, 0, 21, 10, 79, 0, 21, 3, 79, 2, 21, 2, 99, 3, 100, 0, 2, 2, 98, 2, 100, 7, 6580, 1, 20, 6, 2000, 8, 11, 5, 89, 8, 10, 2, 70, 0, 21, 16, 99, 9, 100, 7, 100, 6, 67480, 3, 10, 5, 10, 1, 3, 2, 77, 3, 20, 1, 80, 3, 20, 3, 5, 5, 75, 3, 21, 9, 59, 0, 20, 1, 20, 7, 60, 1, 20, 1, 20, 11, 80, 1, 20, 9, 80, 1, 20, 10, 80, 1, 20, 8, 80, 1, 20, 5, 1380, 0, 21, 8, 79, 0, 21, 5, 179, 0, 21, 10, 7379, 4, 10, 0, 10, 2, 80, 0, 100, 1, 20, 0, 80, 2, 20, 2, 80, 2, 20, 4, 80, 1, 20, 2, 80, 1, 20, 4, 80, 1, 20, 5, 80, 1, 20, 3, 60, 1, 20, 1, 20, 6, 80, 1, 20, 5, 980, 2, 22, 3, 78, 0, 21, 4, 79, 0, 21, 1, 4, 0, 95, 0, 3, 5, 197, 0, 2, 7, 78, 0, 21, 5, 79, 0, 20, 6, 80, 0, 20, 6, 80, 0, 20, 6, 7080, 4, 20, 2, 2000, 7, 100, 3, 100, 3, 200, 4, 100, 5, 100, 5, 80, 1, 20, 2, 7280, 5, 10, 0, 10, 1, 60, 0, 20, 4, 20, 2, 80, 1, 20, 3, 60, 1, 20, 1, 21, 3, 79, 1, 20, 1, 1700, 5, 7880, 7, 20, 0, 80, 4, 1900, 0, 21, 1, 79, 0, 21, 1, 79, 2, 22, 2, 4, 1, 374, 0, 21, 1, 79, 0, 21, 7, 79, 0, 21, 7, 79, 0, 21, 2, 79, 0, 20, 10, 80, 0, 20, 6, 780, 2, 20, 7, 180, 1, 20, 0, 2, 3, 78, 0, 20, 5, 4680, 3]);
67
+ // var prefix = function (source) {
68
+ // var src = [];
69
+ // do {
70
+ // var sheng = source[0]++;
71
+ // src.push(sheng);
72
+ // if (source[0] > source[1]) source.shift(), source.shift();
73
+ // } while (source.length);
74
+ // return src;
75
+ // }([11, 15, 21, 23, 31, 37, 41, 46, 50, 54, 61, 65, 71, 71, 81, 82]);
76
+ var birth = function (q) {
77
+ var d = new Date(1000, q % 12, 1 + q % 31);
78
+ d = new Date(+d + (Date.now() - d) * (1 - Math.pow(.5, q % 9 + 2)));
79
+ return d;
80
+ }
81
+ /**
82
+ * @param {Date} d;
83
+ */
84
+ var date = function (d = birth(), y = d.getFullYear()) {
85
+ return y * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
86
+ };
87
+ var order = function (r = Math.random(), q = r * 20220309 | 0) {
88
+ return (Math.pow(r, q % 10 + 4) * 498 + 1 | 0);
89
+ };
90
+ var code = function (q = Math.random() * 202203091636) {
91
+ return String(prefix[q % prefix.length]);
92
+ };
93
+ var parse = function (r) {
94
+ var p, y, m, d, o, s, x;
95
+ if (typeof r === 'string') switch (r.length) {
96
+ case 18:
97
+ s = r.slice(17, 18);
98
+ case 17:
99
+ o = r.slice(14, 17);
100
+ case 14:
101
+ d = r.slice(12, 14);
102
+ case 12:
103
+ m = r.slice(10, 12);
104
+ case 10:
105
+ y = r.slice(6, 10);
106
+ case 6:
107
+ p = r.slice(0, 6);
108
+ break;
109
+ case 8:
110
+ y = r.slice(0, 4);
111
+ m = r.slice(4, 6);
112
+ d = r.slice(6, 8);
113
+ break;
114
+ case 4:
115
+ y = r.slice(0, 4);
116
+ break;
117
+ case 3:
118
+ o = r >> 1;
119
+ case 1:
120
+ x = o & 1;
121
+ break;
122
+ case 2:
123
+ m = r;
124
+ }
125
+ else if (r === 1 || r === 0) x = r;
126
+ return [p, y, m, d, o, x, s];
127
+ }
128
+ function sex(r = Math.random()) {
129
+ return r < .5 | 0;
130
+ }
131
+ function sfz(r) {
132
+ var p17, middle;
133
+ if (typeof r === 'string' || r === 1 || r === 0) {
134
+ var r0 = Math.random();
135
+ var q = r0 * 20220309 | 0;
136
+ var d = birth(q);
137
+ var [p = code(q), y = d.getFullYear(), m = d.getMonth() + 1, d = d.getDate(), o = order(r0), x = sex(r0)] = parse(r);
138
+ middle = (y * 10000 + m * 100 + d) * 1000 + (o << 1 | x);
139
+ p17 = p + middle;
140
+ }
141
+ if (!p17) {
142
+ var q = r * 20220309 | 0;
143
+ var d = birth(q);
144
+ middle = (d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate()) * 1000 + (order(r) << 1 | sex(r))
145
+ p17 = code(q) + middle;
146
+ }
147
+ var s = 0;
148
+ var a = [2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7];
149
+ for (var p of p17) {
150
+ s += p * a.pop();
151
+ }
152
+ var end = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2][s % 11];
153
+ return p17 + end;
154
+ }
@@ -1,5 +1,5 @@
1
1
  return cross_.bind(function (callback, onerror) {
2
- var response, responseObject, responseType = "", error;
2
+ var response, responseObject, responseType = "", decoder, error;
3
3
  var xhr = {
4
4
  status: 0,
5
5
  readyState: 0,
@@ -11,7 +11,7 @@ return cross_.bind(function (callback, onerror) {
11
11
  get response() {
12
12
  if (responseType === "" || responseType === "text") {
13
13
  if (this.readyState !== 4) return '';
14
- return String(response);
14
+ return decoder ? decoder(response) : String(response);
15
15
  }
16
16
  else if (error) return null;
17
17
  if (responseObject !== null) return responseObject;
@@ -20,7 +20,7 @@ return cross_.bind(function (callback, onerror) {
20
20
  return response.buffer;
21
21
  case "json":
22
22
  if (!response) return null;
23
- responseObject = JSON.parse(String(response));
23
+ responseObject = JSON.parse(decoder ? decoder(response) : String(response));
24
24
  return responseObject;
25
25
  }
26
26
  return responseObject;
@@ -103,7 +103,12 @@ return cross_.bind(function (callback, onerror) {
103
103
  setRequestHeader(key, value) {
104
104
  this.headers[key] = value;
105
105
  },
106
-
106
+ overrideMimeType(type) {
107
+ responseType = type;
108
+ if (/gb(k|2312|18030)/.test(type)) {
109
+ decoder = require("../efront/gbk2utf8");
110
+ }
111
+ },
107
112
  };
108
113
  return xhr;
109
114
  }, null, undefined);
@@ -30,26 +30,8 @@ function contextmenu(target, menuItems) {
30
30
  css(menu, {
31
31
  position: "absolute",
32
32
  });
33
- popup(menu);
33
+ popup(menu, event);
34
34
  menu.focus();
35
- var { offsetWidth, offsetHeight } = menu;
36
- var left = event.clientX, top = event.clientY;
37
- if (offsetWidth + left > innerWidth) {
38
- left = left - offsetWidth;
39
- }
40
- if (left < 0) {
41
- left = 0;
42
- }
43
- if (offsetHeight + top > innerHeight) {
44
- top = top - offsetHeight;
45
- }
46
- if (top < 0) {
47
- top = 0;
48
- }
49
- css(menu, {
50
- left: left + "px",
51
- top: top + "px"
52
- });
53
35
  onmousedown(menu, e => e.preventDefault());
54
36
  onblur(menu, lazy(e => remove(menu)));
55
37
  });
@@ -1,7 +1,13 @@
1
- function createItemTarget(item) {
1
+ function createItemTarget(item, target) {
2
2
  var $scope = {};
3
- var { itemName } = this.$src;
3
+ var { itemName, indexName, keyName } = this.$src;
4
4
  if (itemName) $scope[itemName] = item;
5
5
  else $scope.$item = item;
6
+ if (target && target.$scope) {
7
+ if (indexName) $scope[indexName] = target.$scope[indexName];
8
+ if (keyName) $scope[keyName] = target.$scope[keyName];
9
+ $scope.$index = target.$scope.$index;
10
+ $scope.$key = target.$scope.$key;
11
+ }
6
12
  return { $scope };
7
13
  }
@@ -351,7 +351,7 @@ function ylist(container, generator, $Y) {
351
351
  }
352
352
  }
353
353
  };
354
-
354
+ list.getLastVisibleElement = getLastVisibleElement;
355
355
  list.stopY = function (count, spd) {
356
356
  var firstElement = getFirstVisibleElement();
357
357
  var lastElement = getLastVisibleElement();