efront 4.1.5 → 4.1.6

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.
@@ -1,4 +1,77 @@
1
1
  function refilm(str) {
2
2
  if (str.raw) str = str.raw;
3
3
  return refilm_decode.apply(null, [str].concat([].slice.call(arguments, 1)));
4
- }
4
+ }
5
+ var patchOffset = refilm.patchOffset = function (fields, offset = fields.offset || 0) {
6
+ fields.offset = offset;
7
+ fields.forEach(f => {
8
+ f.offset = offset;
9
+ fields[f.key] = f;
10
+ offset += f.size * f.ratio;
11
+ });
12
+ fields.size = offset - fields.offset;
13
+ return offset;
14
+ };
15
+ refilm.createFromFields = function (fields, values) {
16
+ if (!fields.size) patchOffset(fields);
17
+ var size = fields.size;
18
+ var data = new Uint8Array(size);
19
+ if (!values) values = Object.create(null);
20
+ for (var f of fields) {
21
+ if (f.key in values || !f.value) continue;
22
+ values[f.key] = f.value;
23
+ }
24
+ writeFields(data, fields, values, 0);
25
+ return data;
26
+ }
27
+ var writeField = refilm.writeField = function (data, field, value, offset = field.offset, byteLimit = field.size * field.ratio) {
28
+ if (isArrayLike(value));
29
+ else if (typeof value === "string") {
30
+ value = encodeUTF8(value);
31
+ }
32
+ else if (typeof value === "number") {
33
+ var v = [];
34
+ var limit = byteLimit;
35
+ while (limit-- > 0) {
36
+ v.push(value & 0xff);
37
+ value = value >>> 8;
38
+ }
39
+ if (value) throw new Error("数据过大");
40
+ value = v;
41
+ }
42
+ else value = [value | 0];
43
+ if (value.length > byteLimit) {
44
+ throw new Error("数据超出大小限制!");
45
+ }
46
+ var offset = field.offset;
47
+ while (value.length) data[offset++] = value.shift();
48
+ };
49
+ var writeFields = refilm.writeFields = function (data, fields, values, offset = fields.offset) {
50
+ for (var f of fields) {
51
+ var size = f.size * f.ratio;
52
+ if (f.key in values) writeField(data, f, values[f.key], offset, size);
53
+ offset += size;
54
+ }
55
+ };
56
+ var toint = function (buf) {
57
+ var n = 0;
58
+ for (var cx = 0, dx = buf.length; cx < dx; cx++) {
59
+ n += buf[cx] << (cx << 3);
60
+ }
61
+ return n;
62
+ };
63
+ var readField = refilm.readField = function (data, field, offset = field.offset, size = field.size * field.ratio) {
64
+ return data.slice(offset, offset + size);
65
+ };
66
+
67
+ refilm.readFields = function (data, fields, offset = fields.offset || 0) {
68
+ var res = Object.create(null);
69
+ for (var f of fields) {
70
+ var size = f.size * f.ratio;
71
+ var v = readField(data, f, offset, size);
72
+ if (size <= 4) v = toint(v);
73
+ res[f.key] = v;
74
+ offset += size;
75
+ }
76
+ return res;
77
+ };
@@ -411,6 +411,7 @@ function parse(piece) {
411
411
  name = is(name);
412
412
  key = is(key);
413
413
  }
414
+ if (typeof size === 'string') size = parseFloat(size);
414
415
  var field = {
415
416
  name, type, key, value, comment, options,
416
417
  size, unit, ratio,
@@ -6,12 +6,13 @@ btn {
6
6
  height: 100%;
7
7
  }
8
8
 
9
- btn{
9
+ btn {
10
10
  margin-right: 6px;
11
11
  }
12
+
12
13
  table {
13
14
 
14
- td {
15
+ tbody td {
15
16
 
16
17
  >[type=text] {
17
18
  white-space: pre-wrap;
@@ -230,7 +230,7 @@ function enrichField(f) {
230
230
  }
231
231
  }
232
232
  if (width > 600) width = 600;
233
- f.width = width + 60;
233
+ f.width = parseFloat(width) + 60;
234
234
  if (!f.key && f.options && isEmpty(f.fixed)) {
235
235
  f.fixed = true;
236
236
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.1.5",
3
+ "version": "4.1.6",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {