efront 4.0.40 → 4.0.45
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.
- package/apps/pivot/log/count.js +2 -2
- package/coms/basic/Table.js +4 -2
- package/coms/basic/analyse_test.js +2 -1
- package/coms/basic/arrayEqual.js +8 -0
- package/coms/basic/decodeGBK.js +14 -1
- package/coms/{zimoli → basic}/deepEqual.js +0 -17
- package/coms/basic/encodeUTF8.js +1 -0
- package/coms/basic/isSame.js +2 -1
- package/coms/basic/refilm_decode.js +3 -2
- package/coms/basic/refilm_decode_test.js +2 -0
- package/coms/basic/shallowEqual.js +18 -0
- package/coms/basic/str2array.js +5 -0
- package/coms/compile/Javascript.js +31 -15
- package/coms/compile/Javascript_test.js +3 -0
- package/coms/compile/Program.js +11 -7
- package/coms/compile/common.js +6 -8
- package/coms/compile/formatcode.js +7 -2
- package/coms/compile/patchlist.js +5 -0
- package/coms/compile/patchname.js +9 -0
- package/coms/compile/scanner2_test.js +13 -1
- package/coms/compile/unstruct_test.js +4 -2
- package/coms/pivot/pedit.js +15 -6
- package/coms/reptile/detectWithExtension.js +36 -0
- package/coms/zimoli/data.js +1 -1
- package/coms/zimoli/getChanges.js +2 -2
- package/coms/zimoli/render.js +2 -2
- package/coms/zimoli/select.js +2 -2
- package/coms/zimoli/table.html +2 -2
- package/coms/zimoli/table.js +1 -1
- package/coms/zimoli/table.less +8 -0
- package/docs//345/267/245/345/205/267//345/255/227/347/254/246/351/233/206/346/243/200/346/237/245.xht +72 -14
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/readme-en.md +10 -4
- package/readme.md +7 -4
- /package/coms/{zimoli → basic}/deepEqual_test.js +0 -0
package/coms/zimoli/table.js
CHANGED
|
@@ -527,7 +527,7 @@ function table(elem) {
|
|
|
527
527
|
render(this, $scope, this.$parentScopes.concat(this.$scope));
|
|
528
528
|
$scope.data = Table.from(fields, await data);
|
|
529
529
|
$scope.data.callback = function () {
|
|
530
|
-
|
|
530
|
+
render.digest();
|
|
531
531
|
};
|
|
532
532
|
})
|
|
533
533
|
autodragchildren(
|
package/coms/zimoli/table.less
CHANGED
|
@@ -142,6 +142,7 @@ thead {
|
|
|
142
142
|
position: relative;
|
|
143
143
|
color: #fff;
|
|
144
144
|
background-color: #395268;
|
|
145
|
+
clear: both;
|
|
145
146
|
}
|
|
146
147
|
}
|
|
147
148
|
}
|
|
@@ -188,6 +189,7 @@ thead {
|
|
|
188
189
|
z-index: 1;
|
|
189
190
|
background: #999;
|
|
190
191
|
color: #fff;
|
|
192
|
+
clear: both;
|
|
191
193
|
}
|
|
192
194
|
}
|
|
193
195
|
|
|
@@ -212,4 +214,10 @@ thead {
|
|
|
212
214
|
margin-right: 10px;
|
|
213
215
|
vertical-align: middle;
|
|
214
216
|
display: inline-block;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
[type=money],
|
|
220
|
+
[type=number],
|
|
221
|
+
[type=price] {
|
|
222
|
+
float: right;
|
|
215
223
|
}
|
|
@@ -10,9 +10,16 @@
|
|
|
10
10
|
display: inline-block;
|
|
11
11
|
position: relative;
|
|
12
12
|
vertical-align: top;
|
|
13
|
+
padding-bottom: 44px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
field:nth-child(n+2) [textarea] {
|
|
17
|
+
border: 1px solid #999;
|
|
18
|
+
outline: none;
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
label {
|
|
22
|
+
margin-top: -44px;
|
|
16
23
|
padding: 0 20px;
|
|
17
24
|
}
|
|
18
25
|
|
|
@@ -25,7 +32,7 @@
|
|
|
25
32
|
|
|
26
33
|
[textarea] {
|
|
27
34
|
width: 100%;
|
|
28
|
-
height:
|
|
35
|
+
height: 100%;
|
|
29
36
|
display: block;
|
|
30
37
|
border: 1.2px solid;
|
|
31
38
|
overflow-x: hidden;
|
|
@@ -50,25 +57,46 @@
|
|
|
50
57
|
|
|
51
58
|
button {
|
|
52
59
|
padding: 0 20px;
|
|
60
|
+
margin-left: 20px;
|
|
53
61
|
}
|
|
54
62
|
</style>
|
|
55
63
|
<h2>${i18n`字符集检查工具`}</h2>
|
|
56
|
-
<div style="text-align: right;padding: 0 20px;">
|
|
57
|
-
<button @click="check">${i18n
|
|
64
|
+
<div style="text-align: right;padding: 0 20px;margin-top: -30px;">
|
|
65
|
+
<button @click="encode=utf8;check()">${i18n`检查utf8`}</button>
|
|
66
|
+
<button @click="encode=gbk;check()">${i18n`检查gbk`}</button>
|
|
58
67
|
</div>
|
|
59
68
|
<div>
|
|
60
69
|
<field>
|
|
61
|
-
<label>${i18n
|
|
70
|
+
<label>${i18n`要检查的字符集区间(双字节以内)`}</label>
|
|
62
71
|
<padding>
|
|
63
72
|
<div textarea contenteditable="true" -model="ranges"></div>
|
|
64
73
|
</padding>
|
|
65
74
|
</field>
|
|
66
75
|
<field>
|
|
67
|
-
<label>${i18n`当前浏览器支持的字符集区间`}
|
|
76
|
+
<label>${i18n`当前浏览器支持的字符集区间`}</label>
|
|
68
77
|
<padding>
|
|
69
78
|
<div textarea contenteditable="true" -model="result"></div>
|
|
70
79
|
</padding>
|
|
71
80
|
</field>
|
|
81
|
+
<field style="width: 100%;">
|
|
82
|
+
<label><span -bind="encode.name"></span>${i18n`编码`}</label>
|
|
83
|
+
<padding>
|
|
84
|
+
<div textarea contenteditable="true" -model="result8"></div>
|
|
85
|
+
</padding>
|
|
86
|
+
</field>
|
|
87
|
+
<field>
|
|
88
|
+
<label>${i18n`识别为unicode后的字符`}</label>
|
|
89
|
+
<padding>
|
|
90
|
+
<div textarea contenteditable="true" -model="resultu"></div>
|
|
91
|
+
</padding>
|
|
92
|
+
</field>
|
|
93
|
+
<field>
|
|
94
|
+
<label>${i18n`识别为gbk后的字符`}</label>
|
|
95
|
+
<padding>
|
|
96
|
+
<div textarea contenteditable="true" -model="resultk"></div>
|
|
97
|
+
</padding>
|
|
98
|
+
</field>
|
|
99
|
+
|
|
72
100
|
</div>
|
|
73
101
|
<script>
|
|
74
102
|
var checkOne = function (one) {
|
|
@@ -95,9 +123,9 @@
|
|
|
95
123
|
var str = hex.replace(/^[xu]/, '').replace(/^\{([\s\S]+)\}$/, '$1');
|
|
96
124
|
return parseInt(str, 16);
|
|
97
125
|
}
|
|
126
|
+
var reg = /\\(x[0-9a-f]{2}|u[0-9a-f]{4}|u\{[0-9a-f]+\})/ig;
|
|
98
127
|
var check = async function () {
|
|
99
128
|
var elem = alert(i18n`正在检查`, false);
|
|
100
|
-
var reg = /\\(x[0-9a-f]{2}|u[0-9a-f]{4}|u\{[0-9a-f]+\})/ig;
|
|
101
129
|
var dist0 = [];
|
|
102
130
|
ranges.replace(/<\/?\w+\/?>/g, '').replace(new RegExp(`${reg.source}(?:-${reg.source})?|${/[\s\S]/.source}`, 'ig'), function (_, a, b) {
|
|
103
131
|
dist0.push([_, a, b]);
|
|
@@ -142,16 +170,46 @@
|
|
|
142
170
|
}
|
|
143
171
|
dist.push(temp.join(''))
|
|
144
172
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
173
|
+
var w = a => `<a>${a}</a>`;
|
|
174
|
+
var n = a => a;
|
|
175
|
+
var marks = dist.map((a, i) => a.toUpperCase() === dist1[i][0].toUpperCase() ? n : w);
|
|
176
|
+
result = dist.map((a, i) => {
|
|
177
|
+
if (marks[i] === n) return a;
|
|
178
|
+
dist1[i][0] = `<w>${dist1[i][0]}</w>`;
|
|
179
|
+
return `<a>${a}</a>`;
|
|
180
|
+
}).join('')
|
|
181
|
+
elem.setText(i18n`正在生成报告`);
|
|
151
182
|
ranges = dist1.map(a => a[0]).join("");
|
|
152
|
-
|
|
183
|
+
var hex = a => a ? a < 0xf ? "0" + a.toString(16) : a.toString(16) : '';
|
|
184
|
+
var utf8 = [];
|
|
185
|
+
var gbk = [];
|
|
186
|
+
var unc = [];
|
|
187
|
+
dist.forEach((a, i) => {
|
|
188
|
+
var [start, end = start] = a.split('-');
|
|
189
|
+
var m = marks[i];
|
|
190
|
+
for (var cx = fromHex(start.slice(1)), dx = fromHex(end.slice(1)); cx <= dx; cx++) {
|
|
191
|
+
var u = encode.do(String.fromCharCode(cx));
|
|
192
|
+
utf8.push(m(u.map(hex).join('')));
|
|
193
|
+
gbk.push(m(decodeGBK(u)));
|
|
194
|
+
try {
|
|
195
|
+
unc.push(m(decodeUTF8(u)));
|
|
196
|
+
} catch (e) { }
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
result8 = utf8.join(" ").toUpperCase();
|
|
200
|
+
resultu = unc.join(' ');
|
|
201
|
+
resultk = gbk.join(' ');
|
|
202
|
+
elem.setText(i18n`检查完成`, 600);
|
|
153
203
|
}
|
|
154
|
-
var
|
|
204
|
+
var utf8 = { name: 'utf8', do: encodeUTF8 };
|
|
205
|
+
var gbk = { name: 'gbk', do: decodeGBK.codeFor };
|
|
206
|
+
var encode = {};
|
|
207
|
+
var target = 'utf8';
|
|
208
|
+
var results = '';
|
|
209
|
+
var result8 = '';
|
|
210
|
+
var resultk = '';
|
|
211
|
+
var resultu = '';
|
|
212
|
+
var ranges = "我要这铁棒有何用" + /\xAA\xB5\xBA\xC0-\xD5\xD8-\xF2\xF8-\u02af\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA/.source
|
|
155
213
|
var result = '';
|
|
156
214
|
|
|
157
215
|
</script>
|