efront 4.7.3 → 4.8.2
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/#/345/233/275/351/231/205/345/214/226.yml +30 -0
- package/apps/pay/alipay-query.jsp +2 -2
- package/apps/pivot/cert/main.xht +1 -1
- package/apps/pivot/cert/orders.xht +7 -1
- package/apps/pivot/home/welcome.js +1 -1
- package/apps/pivot/main.js +1 -0
- package/apps/pivot/wow/root.js +8 -32
- package/coms/basic/Speed.js +0 -1
- package/coms/basic/Timer.js +15 -0
- package/coms/basic/compile_test.js +2 -2
- package/coms/basic/cookie.js +2 -2
- package/coms/basic/lazy_test.js +2 -2
- package/coms/compile/Html.js +23 -6
- package/coms/compile/Html_test.js +9 -1
- package/coms/compile/Javascript.js +48 -30
- package/coms/compile/Program.js +30 -7
- package/coms/compile/audit.js +106 -4
- package/coms/compile/audit_test.js +8 -1
- package/coms/compile/autoenum.js +15 -0
- package/coms/compile/common.js +134 -19
- package/coms/compile/downLevel.js +11 -3
- package/coms/compile/downLevel_test.js +9 -1
- package/coms/compile/prefunc.js +38 -0
- package/coms/compile/scanner.js +4 -4
- package/coms/compile/translate.js +2 -2
- package/coms/compile/unstruct.js +1 -33
- package/coms/compile/unstruct_test.js +8 -8
- package/coms/crypt/encode62.js +1 -1
- package/coms/docs/codetext.xht +2 -0
- package/coms/frame/chat.js +1 -1
- package/coms/kugou/qqjc.js +1 -1
- package/coms/pivot/acme2.js +8 -4
- package/coms/random//350/272/253/344/273/275/350/257/201.js +1 -1
- package/coms/third-party/html2canvas.js +3 -3
- package/coms/zimoli/alert.js +3 -0
- package/coms/zimoli/lazySwap.js +1 -1
- package/coms/zimoli/loading.html +1 -1
- package/coms/zimoli/menuList.js +2 -2
- package/coms/zimoli/remove.js +1 -0
- package/coms/zimoli/sessionStorage.js +1 -1
- package/coms/zimoli/speed_test.js +2 -2
- package/coms/zimoli/zimoli.js +1 -4
- package/docs//345/267/245/345/205/267//345/233/275/351/231/205/345/214/226.xht +19 -9
- package/docs//347/273/204/344/273/266.xht +38 -12
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/apps/pivot/wow/root.less +0 -2
package/coms/compile/unstruct.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var { SPACE, COMMENT, EXPRESS, STRAP, QUOTED, STAMP, SCOPED, VALUE, LABEL, canbeTemp: _canbeTemp, isEval, createString, skipAssignment, pickSentence, skipSentenceQueue,
|
|
1
|
+
var { SPACE, COMMENT, EXPRESS, STRAP, QUOTED, STAMP, SCOPED, VALUE, LABEL, canbeTemp: _canbeTemp, isEval, createString, skipAssignment, pickSentence, skipSentenceQueue, splice, relink, createExpressList, snapExpressHead, snapExpressFoot } = require("./common");
|
|
2
2
|
var scanner2 = require("./scanner2");
|
|
3
3
|
var returnText = function () { return this.text };
|
|
4
4
|
var NodeNotClone = o => Object.assign(Object.create(null), o, { toString: returnText });
|
|
@@ -889,38 +889,6 @@ var ternary = function (body, getname, ret) {
|
|
|
889
889
|
}
|
|
890
890
|
return explist;
|
|
891
891
|
};
|
|
892
|
-
var prefunc = function (sbody) {
|
|
893
|
-
var fx = 0;
|
|
894
|
-
for (var cx = 0, dx = sbody.length; cx < dx; cx++) {
|
|
895
|
-
var o = sbody[cx];
|
|
896
|
-
var bx = cx;
|
|
897
|
-
while (o && o.type & (SPACE | COMMENT)) o = sbody[++cx];
|
|
898
|
-
if (!o) break;
|
|
899
|
-
if (o.type === STRAP && /^(async|function|class)$/.test(o.text)) {
|
|
900
|
-
if (!o.isExpress) {
|
|
901
|
-
var ex = skipAssignment(sbody, cx);
|
|
902
|
-
var fname = '';
|
|
903
|
-
o = o.next;
|
|
904
|
-
while (o.type & (STRAP | STAMP)) o = o.next;
|
|
905
|
-
if (o.type === EXPRESS) fname = o.text;
|
|
906
|
-
if (fname) {
|
|
907
|
-
if (isHalfSentence(sbody, cx - 1)) {
|
|
908
|
-
splice(sbody, cx, 0, { type: EXPRESS, text: fname }, { type: STAMP, text: "=" });
|
|
909
|
-
}
|
|
910
|
-
else {
|
|
911
|
-
var sb = splice(sbody, bx, ex - bx);
|
|
912
|
-
splice(sbody, fx, 0, { type: EXPRESS, text: fname }, { type: STAMP, text: "=" }, ...sb);
|
|
913
|
-
fx += ex - bx + 2;
|
|
914
|
-
}
|
|
915
|
-
ex += 2;
|
|
916
|
-
dx += 2;
|
|
917
|
-
}
|
|
918
|
-
cx = ex;
|
|
919
|
-
continue;
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
};
|
|
924
892
|
|
|
925
893
|
var isFunctionOnly = function (body) {
|
|
926
894
|
for (var cx = 2, dx = body.length; cx < dx; cx++) {
|
|
@@ -91,14 +91,14 @@ test("try{a=2+1}catch(e){}", 'return [1, 7];\r\n a = 2 + 1; return [0, 9];\r\n r
|
|
|
91
91
|
test("try{a=2+1}catch(e){a=3}", 'return [65537, 7];\r\n a = 2 + 1; return [0, 9];\r\n e = @; a = 3; return [0, 9];\r\n return [1, 9]', true);
|
|
92
92
|
test("(function(){})", '_ = function () {}; _', true);
|
|
93
93
|
test("(1+2*function(){}())", '_ = 2 * function () {}(), _ = 1 + _; _', true);
|
|
94
|
-
test("function a(){}", 'a = function
|
|
95
|
-
test("if(1) function a(){}", 'if (false) return [1, 0]; a = function
|
|
96
|
-
test("if(1) {function a(){}}", 'if (false) return [1, 0]; a = function
|
|
97
|
-
test("if(a) a = 1;function a(){}", "a = function
|
|
98
|
-
test("if(a) a = 1;async function a(){}", "a = async function
|
|
99
|
-
test("if(a) a = 1;async function* a(){}", "a = async function*
|
|
100
|
-
test("if(a) a = 1;class a{}", "a = class
|
|
101
|
-
test("if(a) a = 1;function* a(){}", "a = function*
|
|
94
|
+
test("function a(){}", 'a = function () {}', true);
|
|
95
|
+
test("if(1) function a(){}", 'if (false) return [1, 0]; a = function () {}; return [1, 0]', true);
|
|
96
|
+
test("if(1) {function a(){}}", 'if (false) return [1, 0]; a = function () {}; return [1, 0]', true);
|
|
97
|
+
test("if(a) a = 1;function a(){}", "a = function () {}; if (!a) return [1, 0]; a = 1; return [1, 0]", true);
|
|
98
|
+
test("if(a) a = 1;async function a(){}", "a = async function () {}; if (!a) return [1, 0]; a = 1; return [1, 0]", true);
|
|
99
|
+
test("if(a) a = 1;async function* a(){}", "a = async function* () {}; if (!a) return [1, 0]; a = 1; return [1, 0]", true);
|
|
100
|
+
test("if(a) a = 1;class a{}", "a = class {}; if (!a) return [1, 0]; a = 1; return [1, 0]", true);
|
|
101
|
+
test("if(a) a = 1;function* a(){}", "a = function* () {}; if (!a) return [1, 0]; a = 1; return [1, 0]", true);
|
|
102
102
|
test("await new Promise(function(){})", '_ = function () {}; _ = new Promise(_); return [_, 1]', true);
|
|
103
103
|
test(`onerror({ status: xhr.status, response: "Cookie解析异常!", toString: toResponse })`, '_ = { status: xhr.status, response: "Cookie解析异常!", toString: toResponse }; onerror(_)', true);
|
|
104
104
|
test(`if (!/^https\\:\\/\\/|^s\\/\\//.test(url)) console.warn("请使用https访问如下路径:" + url)`, '_ = /^https\\:\\/\\/|^s\\/\\//.test(url); if (_) return [1, 0]; _ = "请使用https访问如下路径:" + url; _ = console.warn(_); return [1, 0]', true);
|
package/coms/crypt/encode62.js
CHANGED
|
@@ -104,7 +104,7 @@ Object.assign(encode62, {
|
|
|
104
104
|
return encode62(string);
|
|
105
105
|
},
|
|
106
106
|
genb() {
|
|
107
|
-
return encode62(Date
|
|
107
|
+
return encode62(new Date * Math.random() + "" + Math.random().toString(36) + Math.random().toString(36).toUpperCase());
|
|
108
108
|
},
|
|
109
109
|
huan(x, y) {
|
|
110
110
|
return x.split("").map(s => y[map[s]]).join("");
|
package/coms/docs/codetext.xht
CHANGED
|
@@ -91,7 +91,9 @@
|
|
|
91
91
|
};
|
|
92
92
|
var typescript = new compile$Javascript;
|
|
93
93
|
typescript.straps = typescript.straps.concat("interface", "implements", "declare", "module", "readonly", "enum");
|
|
94
|
+
typescript.tags[0].push(["{", "}"]);
|
|
94
95
|
var js = new compile$Javascript;
|
|
96
|
+
js.tags[0].push(["{", "}"]);
|
|
95
97
|
js.keepspace = true;
|
|
96
98
|
var codesupports = {
|
|
97
99
|
javascript(a, blink) {
|
package/coms/frame/chat.js
CHANGED
|
@@ -106,7 +106,7 @@ function chat(title = '会话窗口') {
|
|
|
106
106
|
page.innerHTML = template;
|
|
107
107
|
drag.on(page.firstElementChild, page);
|
|
108
108
|
resize.on(page);
|
|
109
|
-
var localid = title.id || (Date
|
|
109
|
+
var localid = title.id || (new Date / 1000 | 0) + Math.sin(Math.random());
|
|
110
110
|
var users = [];
|
|
111
111
|
var addToMsgList = function (list, msgs) {
|
|
112
112
|
list.push.apply(list, msgs);
|
package/coms/kugou/qqjc.js
CHANGED
|
@@ -153,7 +153,7 @@ var secret = "0b50b02fd0d73a9c4c8c3a781c30845f";
|
|
|
153
153
|
function createSign(e) {
|
|
154
154
|
if ("[object Object]" !== Object.prototype.toString.call(e))
|
|
155
155
|
throw new Error("The parameter of query must be a Object.");
|
|
156
|
-
var t = Math.floor(Date
|
|
156
|
+
var t = Math.floor(new Date / 1e3);
|
|
157
157
|
extend(e, {
|
|
158
158
|
timestamp: t,
|
|
159
159
|
appid: 16073360
|
package/coms/pivot/acme2.js
CHANGED
|
@@ -185,8 +185,8 @@ var acme2 = new class {
|
|
|
185
185
|
}
|
|
186
186
|
async updateTime(update) {
|
|
187
187
|
if (!acme2.nextUpdateTime || update) {
|
|
188
|
-
if (!acme2.lastUpdateTime || new Date(acme2.lastUpdateTime) + 86400000 + acme2.schadulePeriod * 86400000 < Date
|
|
189
|
-
acme2.nextUpdateTime = parseDate(Date
|
|
188
|
+
if (!acme2.lastUpdateTime || new Date(acme2.lastUpdateTime) + 86400000 + acme2.schadulePeriod * 86400000 < +new Date) {
|
|
189
|
+
acme2.nextUpdateTime = parseDate(+new Date + +acme2.schadulePeriod * 86400000);
|
|
190
190
|
}
|
|
191
191
|
else {
|
|
192
192
|
acme2.nextUpdateTime = parseDate(new Date(acme2.lastUpdateTime) + +acme2.schadulePeriod * 86400000);
|
|
@@ -324,6 +324,7 @@ var acme2 = new class {
|
|
|
324
324
|
}
|
|
325
325
|
async auditOrder(o, setauth) {
|
|
326
326
|
if (o.status !== 'pending') return o;
|
|
327
|
+
var bs = [];
|
|
327
328
|
a: for (var a of o.authorizations) {
|
|
328
329
|
var b = await data.fromURL(a);
|
|
329
330
|
if (b.challenges) {
|
|
@@ -335,9 +336,12 @@ var acme2 = new class {
|
|
|
335
336
|
continue a;
|
|
336
337
|
}
|
|
337
338
|
}
|
|
339
|
+
bs.push(c);
|
|
338
340
|
}
|
|
339
341
|
}
|
|
340
|
-
|
|
342
|
+
if (bs.length === 0) {
|
|
343
|
+
o = await this.waitStatus(o);
|
|
344
|
+
}
|
|
341
345
|
return o;
|
|
342
346
|
}
|
|
343
347
|
async finalizeOrder(o, upload) {
|
|
@@ -353,7 +357,7 @@ var acme2 = new class {
|
|
|
353
357
|
async autoUpdate(saveUnique, domain, setauth, upload) {
|
|
354
358
|
if (!domain.length) return;
|
|
355
359
|
if (acme2.orders.length >= 20) acme2.orders.pop();
|
|
356
|
-
this.lastUpdateTime = filterTime(Date
|
|
360
|
+
this.lastUpdateTime = filterTime(+new Date, 'y-MM-dd hh:mm');
|
|
357
361
|
this.updateTime();
|
|
358
362
|
var o = await acme2.newOrder({ domain });
|
|
359
363
|
await saveUnique();// 及时保存订单信息以便后续查看
|
|
@@ -75,7 +75,7 @@ var prefix = function (source) {
|
|
|
75
75
|
// }([11, 15, 21, 23, 31, 37, 41, 46, 50, 54, 61, 65, 71, 71, 81, 82]);
|
|
76
76
|
var birth = function (q) {
|
|
77
77
|
var d = new Date(1000, q % 12, 1 + q % 31);
|
|
78
|
-
d = new Date(+d + (Date
|
|
78
|
+
d = new Date(+d + (+new Date - d) * (1 - Math.pow(.5, q % 9 + 2)));
|
|
79
79
|
return d;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
@@ -2356,7 +2356,7 @@ var Logger = /** @class */ (function () {
|
|
|
2356
2356
|
var id = _a.id, enabled = _a.enabled;
|
|
2357
2357
|
this.id = id;
|
|
2358
2358
|
this.enabled = enabled;
|
|
2359
|
-
this.start = Date
|
|
2359
|
+
this.start = +new Date;
|
|
2360
2360
|
}
|
|
2361
2361
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2362
2362
|
Logger.prototype.debug = function () {
|
|
@@ -2376,7 +2376,7 @@ var Logger = /** @class */ (function () {
|
|
|
2376
2376
|
}
|
|
2377
2377
|
};
|
|
2378
2378
|
Logger.prototype.getTime = function () {
|
|
2379
|
-
return Date
|
|
2379
|
+
return new Date - this.start;
|
|
2380
2380
|
};
|
|
2381
2381
|
Logger.create = function (options) {
|
|
2382
2382
|
Logger.instances[options.id] = new Logger(options);
|
|
@@ -6937,7 +6937,7 @@ var renderElement = function (element, opts) {
|
|
|
6937
6937
|
if (!defaultView) {
|
|
6938
6938
|
throw new Error("Document is not attached to a Window");
|
|
6939
6939
|
}
|
|
6940
|
-
instanceName = (Math.round(Math.random() * 1000) + Date
|
|
6940
|
+
instanceName = (Math.round(Math.random() * 1000) + +new Date).toString(16);
|
|
6941
6941
|
_a = isBodyElement(element) || isHTMLElement(element) ? parseDocumentSize(ownerDocument) : parseBounds(element), width = _a.width, height = _a.height, left = _a.left, top = _a.top;
|
|
6942
6942
|
defaultResourceOptions = {
|
|
6943
6943
|
allowTaint: false,
|
package/coms/zimoli/alert.js
CHANGED
package/coms/zimoli/lazySwap.js
CHANGED
package/coms/zimoli/loading.html
CHANGED
package/coms/zimoli/menuList.js
CHANGED
|
@@ -166,10 +166,10 @@ function main() {
|
|
|
166
166
|
}
|
|
167
167
|
var enterMenuEnabled = 0;
|
|
168
168
|
onmousemove(page, function () {
|
|
169
|
-
enterMenuEnabled = Date
|
|
169
|
+
enterMenuEnabled = +new Date;
|
|
170
170
|
});
|
|
171
171
|
var enterMenu = lazy(function (menu) {
|
|
172
|
-
if (enterMenuEnabled + 200 < Date
|
|
172
|
+
if (enterMenuEnabled + 200 < +new Date) return;
|
|
173
173
|
enterMenuEnabled = false;
|
|
174
174
|
if (page.ispop) {
|
|
175
175
|
page.setFocus(menu);
|
package/coms/zimoli/remove.js
CHANGED
|
@@ -9,7 +9,7 @@ var clear = function () {
|
|
|
9
9
|
if (key.slice(0, session_storage_prefix.length) === session_storage_prefix)
|
|
10
10
|
localStorage.removeItem(key);
|
|
11
11
|
}
|
|
12
|
-
document.cookie = Date
|
|
12
|
+
document.cookie = +new Date;
|
|
13
13
|
};
|
|
14
14
|
var read = function () {
|
|
15
15
|
for (var cx = 0, dx = localStorage.length; cx < dx; cx++) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var s = speed();
|
|
2
2
|
var id = 0;
|
|
3
|
-
var passed = Date
|
|
3
|
+
var passed = +new Date;
|
|
4
4
|
var test = async function (wait, write = '') {
|
|
5
5
|
var _id = ++id;
|
|
6
6
|
await new Promise(ok => setTimeout(ok, wait));
|
|
7
7
|
if (write) var read = s(write);
|
|
8
8
|
else var read = s();
|
|
9
|
-
var now = Date
|
|
9
|
+
var now = +new Date;
|
|
10
10
|
if (passed) var waited = now - passed;
|
|
11
11
|
else waited = 0;
|
|
12
12
|
passed = now;
|
package/coms/zimoli/zimoli.js
CHANGED
|
@@ -12,7 +12,6 @@ var sessionInitHash = sessionStorage.getItem(sessionSavedHashKey);
|
|
|
12
12
|
var hostoryStorage = sessionStorage;
|
|
13
13
|
var pagehash_reg = /#([\/\w\:@\.\_\(\)\+\-\*\$@!~_'\?,&~%]+)$/;
|
|
14
14
|
var locationInitHash = location.hash;
|
|
15
|
-
var hashchangecount = 0;
|
|
16
15
|
var isFirstTimeLoad = sessionInitHash === null;
|
|
17
16
|
var isSimpleRefresh = sessionInitHash === locationInitHash;
|
|
18
17
|
var isWithHashLoad = !!location.hash;
|
|
@@ -25,10 +24,8 @@ if (isWithHashLoad && !isSimpleRefresh) {
|
|
|
25
24
|
|
|
26
25
|
if (/MSIE\s*[2-7]/.test(navigator.userAgent)) {
|
|
27
26
|
window.onhistorychange = function (url) {
|
|
28
|
-
hashchangecount++;
|
|
29
27
|
// 如果是返回事件,一定不是第一次改变hash
|
|
30
28
|
// 这里刚好可以屏蔽首次手动改变url可能产生的hashchange事件
|
|
31
|
-
if (hashchangecount < 2) return;
|
|
32
29
|
if (preventNextHashChange) return preventNextHashChange = false, window_history.go(-1);
|
|
33
30
|
if (preventNextHashChange === void 0 ? onback && onback() === true : preventNextHashChange = void 0) { }
|
|
34
31
|
};
|
|
@@ -48,7 +45,6 @@ if (/MSIE\s*[2-7]/.test(navigator.userAgent)) {
|
|
|
48
45
|
backman();
|
|
49
46
|
} else {
|
|
50
47
|
onhashchange(window, function (event) {
|
|
51
|
-
hashchangecount++;
|
|
52
48
|
// 如果是返回事件,一定不是第一次改变hash
|
|
53
49
|
// 这里刚好可以屏蔽首次手动改变url可能产生的hashchange事件
|
|
54
50
|
var targetHash = location.hash;
|
|
@@ -550,6 +546,7 @@ var checkonback = function (elements) {
|
|
|
550
546
|
var onback = element && element.onback;
|
|
551
547
|
if (isFunction(onback)) {
|
|
552
548
|
onback = element.onback();
|
|
549
|
+
if (onback === false) console.info(i18n`onback中阻止跳转的功能在新老版本的chrome上及其他不同浏览器上的表现均不一致,建议更换实现方式!`);
|
|
553
550
|
}
|
|
554
551
|
if (onback === false || isString(onback)) {
|
|
555
552
|
break;
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
width: 100%;
|
|
47
47
|
height: 36px;
|
|
48
48
|
}
|
|
49
|
+
|
|
49
50
|
&:last-child {
|
|
50
51
|
float: left;
|
|
51
52
|
}
|
|
@@ -467,14 +468,7 @@
|
|
|
467
468
|
detailWindow.initialStyle = "margin-left:-100px;opacity:0";
|
|
468
469
|
render(detailWindow, detailScope);
|
|
469
470
|
on("remove")(detailWindow, function () {
|
|
470
|
-
|
|
471
|
-
var fanyi = detailScope.fanyi;
|
|
472
|
-
for (var s of supports) {
|
|
473
|
-
if (fanyi[s.id] && fanyi[s.id].trim()) count++;
|
|
474
|
-
}
|
|
475
|
-
if (detailScope.item) {
|
|
476
|
-
detailScope.item.liang = count;
|
|
477
|
-
}
|
|
471
|
+
更新翻译数();
|
|
478
472
|
if (activedRow) {
|
|
479
473
|
removeClass(activedRow, "actived");
|
|
480
474
|
activedRow = null;
|
|
@@ -484,8 +478,19 @@
|
|
|
484
478
|
|
|
485
479
|
}
|
|
486
480
|
}
|
|
481
|
+
var 更新翻译数 = function () {
|
|
482
|
+
var count = 0;
|
|
483
|
+
var fanyi = detailScope.fanyi;
|
|
484
|
+
if (fanyi) for (var s of supports) {
|
|
485
|
+
if (fanyi[s.id] && fanyi[s.id].trim()) count++;
|
|
486
|
+
}
|
|
487
|
+
if (detailScope.item) {
|
|
488
|
+
detailScope.item.liang = count;
|
|
489
|
+
}
|
|
490
|
+
};
|
|
487
491
|
var showDetail = function (event) {
|
|
488
492
|
initDetailWindow();
|
|
493
|
+
更新翻译数();
|
|
489
494
|
var tr = getTargetIn(tableElement.children[1], event.active, false);
|
|
490
495
|
var item = detailScope.item = event.item;
|
|
491
496
|
if (activedRow !== tr) {
|
|
@@ -558,6 +563,7 @@
|
|
|
558
563
|
var textMap = Object.create(null);
|
|
559
564
|
已找到的字符串.is_loading = true;
|
|
560
565
|
var addTranslate = function (translate) {
|
|
566
|
+
if (!isHandled(translate)) return;
|
|
561
567
|
var tmap = textMap[translate];
|
|
562
568
|
if (!tmap) tmap = textMap[translate] = Object.create(null), tmap["#count"] = 0;
|
|
563
569
|
if (!tmap[e.path]) tmap[e.path] = [];
|
|
@@ -573,7 +579,11 @@
|
|
|
573
579
|
addTranslate(t.translate);
|
|
574
580
|
}
|
|
575
581
|
else if (t.transtype === compile$translate.字段名) {
|
|
576
|
-
t.fields.forEach(f =>
|
|
582
|
+
t.fields.forEach(f => {
|
|
583
|
+
addTranslate(f.name);
|
|
584
|
+
addTranslate(f.holder);
|
|
585
|
+
addTranslate(f.comment);
|
|
586
|
+
});
|
|
577
587
|
}
|
|
578
588
|
}
|
|
579
589
|
}
|
|
@@ -195,21 +195,48 @@
|
|
|
195
195
|
});
|
|
196
196
|
var loadcode = async function () {
|
|
197
197
|
jschanged = false;
|
|
198
|
-
var modName = name.replace(/\.js
|
|
198
|
+
var modName = name.replace(/\.js$/i, '_test');
|
|
199
199
|
if (doc.test) {
|
|
200
|
-
var
|
|
201
|
-
|
|
200
|
+
var jstext = [], lessdata = [], htmldata = [];
|
|
201
|
+
for (var f of doc.test) {
|
|
202
|
+
var xhr = await cross("get", "./components:" + name.replace(/[^\\\/]+$/, '') + f);
|
|
203
|
+
if (/\.js$/i.test(f)) {
|
|
204
|
+
jstext.push(xhr.response);
|
|
205
|
+
}
|
|
206
|
+
else if (/\.less$/i.test(f)) {
|
|
207
|
+
lessdata.push(xhr.response);
|
|
208
|
+
}
|
|
209
|
+
else if (/\.html$/i.test(f)) {
|
|
210
|
+
htmldata.push(xhr.response);
|
|
211
|
+
}
|
|
212
|
+
else if (/\.xht$/i.test(f)) {
|
|
213
|
+
alert(i18n`这个文件内的测试代码暂不支持`, 'error');
|
|
214
|
+
break;
|
|
215
|
+
htmldata.push(xhr.response
|
|
216
|
+
.replace(/\<script\>([\s\S]*?)\<\/script\>/ig, function (_, s) {
|
|
217
|
+
jstext.push(s);
|
|
218
|
+
return '';
|
|
219
|
+
})
|
|
220
|
+
.replace(/\<style\>([\s\S]*?)\<\/style\>/ig, function (_, s) {
|
|
221
|
+
lessdata.push(s);
|
|
222
|
+
return '';
|
|
223
|
+
}));
|
|
224
|
+
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
jstext = jstext.join("\r\n");
|
|
228
|
+
lessdata = lessdata.join("\r\n");
|
|
229
|
+
htmldata = htmldata.join("\r\n");
|
|
202
230
|
var code = compile$scanner2(jstext);
|
|
203
231
|
var envs = code.envs;
|
|
204
232
|
var vars = code.vars;
|
|
205
233
|
var commName = modName.replace(/^[\s\S]*\//, '');
|
|
206
|
-
var lessName = commName + ".less",
|
|
234
|
+
var lessName = commName + ".less", lessdata;
|
|
207
235
|
var cssWrap = `css-` + +new Date;
|
|
208
|
-
if (
|
|
209
|
-
|
|
210
|
-
lessData = compile$素馨(lessData.responseText, "." + cssWrap);
|
|
236
|
+
if (lessdata) {
|
|
237
|
+
lessdata = compile$素馨(lessdata, "." + cssWrap);
|
|
211
238
|
if (code.isExpressQueue()) {
|
|
212
|
-
jstext = `return cless(${jstext},\`${
|
|
239
|
+
jstext = `return cless(${jstext},\`${lessdata}\`,"${cssWrap}")`;
|
|
213
240
|
}
|
|
214
241
|
else {
|
|
215
242
|
var entryName;
|
|
@@ -217,7 +244,7 @@
|
|
|
217
244
|
else if (vars.Main) entryName = 'Main';
|
|
218
245
|
else if (vars.MAIN) entryName = "MAIN";
|
|
219
246
|
else if (vars[commName]) entryName = commName;
|
|
220
|
-
if (entryName) jstext += `\r\nreturn cless(${entryName},\`${
|
|
247
|
+
if (entryName) jstext += `\r\nreturn cless(${entryName},\`${lessdata}\`,"${cssWrap}")`;
|
|
221
248
|
}
|
|
222
249
|
}
|
|
223
250
|
else {
|
|
@@ -229,10 +256,9 @@
|
|
|
229
256
|
}
|
|
230
257
|
var templateName = commName;
|
|
231
258
|
if (envs.template) templateName = 'template';
|
|
232
|
-
if (
|
|
259
|
+
if (htmldata) {
|
|
233
260
|
delete envs[templateName];
|
|
234
|
-
|
|
235
|
-
jstext = `var ${templateName}={toString(){return \`${template.responseText.replace(/>\s+</g, '><')}\`}};\r\n` + jstext;
|
|
261
|
+
jstext = `var ${templateName}={toString(){return \`${htmldata.replace(/>\s+</g, '><')}\`}};\r\n` + jstext;
|
|
236
262
|
}
|
|
237
263
|
initcode(jstext);
|
|
238
264
|
}
|