efront 3.36.2 → 3.36.5
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/coms/basic/#loader.js +51 -35
- package/coms/basic/YAML.js +8 -2
- package/coms/basic/YAML_test.js +9 -0
- package/coms/compile/Javascript.js +1 -1
- package/coms/compile/Program.js +6 -1
- package/coms/compile/richcss.js +3 -5
- package/coms/compile/richcss_test.js +8 -1
- package/coms/docs/codetext.xht +284 -0
- package/coms/docs/markdown.js +9 -144
- package/coms/zimoli/AudioContext_test.less +1 -1
- package/coms/zimoli/alert.js +10 -21
- package/coms/zimoli/alert.less +12 -0
- package/coms/zimoli/data_test.js +0 -3
- package/coms/zimoli/getGenerator.js +1 -1
- package/coms/zimoli/render.js +2 -1
- package/coms/zimoli/zimoli.js +2 -1
- package/docs/components.jsp +1 -1
- package/docs/main.xht +9 -3
- package/docs/mark.xht +0 -80
- package/docs//345/267/245/345/205/267//345/233/275/351/231/205/345/214/226.xht +1 -1
- package/docs//347/273/204/344/273/266.xht +329 -21
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/apps/sciters/main.js +0 -31
- package/coms/zimoli/onhistoryback.js +0 -0
package/coms/docs/markdown.js
CHANGED
|
@@ -81,149 +81,10 @@ function richtext(line) {
|
|
|
81
81
|
else a = p(line);
|
|
82
82
|
if (a) content.push(a);
|
|
83
83
|
}
|
|
84
|
-
var codecolor = function (c) {
|
|
85
|
-
var envs = c.envs;
|
|
86
|
-
var predefs = Object.create(null);
|
|
87
|
-
predefs.module = true;
|
|
88
|
-
predefs.exports = true;
|
|
89
|
-
predefs["module.exports"] = true;
|
|
90
|
-
predefs.Promise = true;
|
|
91
|
-
[Boolean, Number, String, Function, Object, Array, Date, RegExp, Error].forEach(p => predefs[p.name] = true);
|
|
92
|
-
var { STRAP, SCOPED, QUOTED, LABEL, COMMENT, STAMP, VALUE, EXPRESS, PROPERTY, PIECE } = c;
|
|
93
|
-
var deep = 0;
|
|
94
|
-
var setcolor = function (o) {
|
|
95
|
-
switch (o.type) {
|
|
96
|
-
case LABEL:
|
|
97
|
-
o.text = `<label>${o.text}</label>`;
|
|
98
|
-
break;
|
|
99
|
-
case QUOTED:
|
|
100
|
-
case PIECE:
|
|
101
|
-
if (!o.length) {
|
|
102
|
-
if (/^\//.test(o.text)) {
|
|
103
|
-
o.text = `<regexp>${encode(o.text)}</regexp>`;
|
|
104
|
-
}
|
|
105
|
-
else o.text = `<text>${encode(o.text)}</text>`;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
o.forEach(setcolor);
|
|
109
|
-
o.entry = "<text>" + o.entry;
|
|
110
|
-
o.leave = o.leave + "</text>";
|
|
111
|
-
break;
|
|
112
|
-
case SCOPED:
|
|
113
|
-
deep++;
|
|
114
|
-
o.forEach(setcolor);
|
|
115
|
-
deep--;
|
|
116
|
-
o.entry = `<deep${deep}>${o.entry}</deep${deep}>`;
|
|
117
|
-
o.leave = `<deep${deep}>${o.leave}</deep${deep}>`;
|
|
118
|
-
break;
|
|
119
|
-
case VALUE:
|
|
120
|
-
if (o.isdigit) o.text = `<digit>${o.text}</digit>`;
|
|
121
|
-
else o.text = `<value>${o.text}</value>`;
|
|
122
|
-
break;
|
|
123
|
-
case PROPERTY:
|
|
124
|
-
var next = o.next;
|
|
125
|
-
if (next && next.type === c.SCOPED && next.entry === '(') {
|
|
126
|
-
o.text = `<method>${o.text}</method>`;
|
|
127
|
-
}
|
|
128
|
-
else o.text = `<property>${o.text}</property>`;
|
|
129
|
-
|
|
130
|
-
break;
|
|
131
|
-
case EXPRESS:
|
|
132
|
-
var keys = o.text.split(".");
|
|
133
|
-
var next = o.next;
|
|
134
|
-
if (next && next.type === c.SCOPED && next.entry === '(') {
|
|
135
|
-
keys[keys.length - 1] = `<invoke>${keys[keys.length - 1]}</invoke>`;
|
|
136
|
-
}
|
|
137
|
-
var [name] = keys;
|
|
138
|
-
if (/^</.test(name));
|
|
139
|
-
else if (/^(arguments|this|super|Infinity|NaN)$/.test(name)) name = `<strap>${name}</strap>`;
|
|
140
|
-
else if (name in envs) name = name in predefs ? `<predef>${name}</predef>` : `<outside>${name}</outside>`;
|
|
141
|
-
|
|
142
|
-
keys[0] = name;
|
|
143
|
-
o.text = keys.map(k => /^\</.test(k) || !k ? k : `<express>${k}</express>`).join(".");
|
|
144
|
-
break;
|
|
145
|
-
case STRAP:
|
|
146
|
-
if (/^(if|else|switch|case|do|while|for|break|continue|default|import|from|as|export|try|catch|finally|await|yield|return)/.test(o.text))
|
|
147
|
-
o.text = `<flow>${o.text}</flow>`;
|
|
148
|
-
else o.text = `<strap>${o.text}</strap>`;
|
|
149
|
-
break;
|
|
150
|
-
case STAMP:
|
|
151
|
-
if (/^(=>)$/.test(o.text) || o.text === "*" && o.prev && o.prev.type === c.STRAP) o.text = `<strap>${encode(o.text)}</strap>`;
|
|
152
|
-
else if (!/^[<\/>]+$/.test(o.text));
|
|
153
|
-
else o.text = `<stamp>${encode(o.text)}</stamp>`;
|
|
154
|
-
break;
|
|
155
|
-
case COMMENT:
|
|
156
|
-
o.text = `<comment>${encode(o.text)}</comment>`;
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
c.forEach(setcolor);
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
var typescript = new compile$Javascript;
|
|
164
|
-
typescript.straps = typescript.straps.concat("interface", "implements", "declare", "module", "readonly", "enum");
|
|
165
|
-
var codesupports = {
|
|
166
|
-
javascript(a) {
|
|
167
|
-
var c = compile$scanner2(a);
|
|
168
|
-
codecolor(c);
|
|
169
|
-
return c.toString();
|
|
170
|
-
},
|
|
171
|
-
typescript(a) {
|
|
172
|
-
var c = compile$scanner2(a, typescript);
|
|
173
|
-
codecolor(c);
|
|
174
|
-
return c.toString();
|
|
175
|
-
},
|
|
176
|
-
html(a) {
|
|
177
|
-
var code = compile$scanner2(a, 'html');
|
|
178
|
-
var scoped = code.scoped;
|
|
179
|
-
codecolor(code);
|
|
180
|
-
backEach(scoped.richNodes, n => {
|
|
181
|
-
if (n.isScript) {
|
|
182
|
-
var js = compile$scanner2(n.innerText);
|
|
183
|
-
codecolor(js);
|
|
184
|
-
code.splice(n.innerStart, n.innerEnd - n.innerStart, { text: js.toString() });
|
|
185
|
-
}
|
|
186
|
-
})
|
|
187
|
-
return code.toString();
|
|
188
|
-
},
|
|
189
|
-
css(a) {
|
|
190
|
-
var c = compile$scanner2(a);
|
|
191
|
-
codecolor(c);
|
|
192
|
-
return c.toString();
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
codesupports.cmd = codesupports.bat;
|
|
196
|
-
codesupports.jsx = codesupports.js = codesupports.javascript;
|
|
197
|
-
codesupports.tsx = codesupports.ts = codesupports.typescript;
|
|
198
|
-
codesupports.xml = codesupports.html;
|
|
199
|
-
function codetext(type, text) {
|
|
200
|
-
try {
|
|
201
|
-
type = type.toLowerCase();
|
|
202
|
-
if (type in codesupports) text = codesupports[type](text);
|
|
203
|
-
else text = encode(text);
|
|
204
|
-
|
|
205
|
-
} catch (e) {
|
|
206
|
-
console.error(e);
|
|
207
|
-
}
|
|
208
|
-
text = text.replace(/^(\r\n|\r|\n)|\s+$/g, '');
|
|
209
|
-
var codes = text.split(/\r\n|\r|\n/);
|
|
210
|
-
var minSpace = 0;
|
|
211
|
-
for (var c of codes) {
|
|
212
|
-
var m = /^\s*/.exec(c);
|
|
213
|
-
if (m && m[0].length < c.length) {
|
|
214
|
-
minSpace = m[0].length;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (minSpace > 0) codes = codes.map(c => c.slice(minSpace));
|
|
218
|
-
return `<code type=${type}>${codes.join("<br/>").replace(/\t/g, Array(5).join(' ')).replace(/\s/g, ' ')}</code> `;
|
|
219
|
-
}
|
|
220
84
|
/**
|
|
221
85
|
* @type {Element}
|
|
222
86
|
*/
|
|
223
87
|
var content;
|
|
224
|
-
var encode = function (text) {
|
|
225
|
-
return text.replace(/[\<\>\|]/g, a => `&#${a.charCodeAt()};`)
|
|
226
|
-
};
|
|
227
88
|
function markdown(text) {
|
|
228
89
|
var c = content = [];
|
|
229
90
|
text.replace(/ *(`+|\*+)(\S[\s\S]*?)\1 */g, function (_, q, c, i) {
|
|
@@ -233,16 +94,20 @@ function markdown(text) {
|
|
|
233
94
|
if (m & 2) c = `<b>${c}</b>`;
|
|
234
95
|
return c;
|
|
235
96
|
}
|
|
236
|
-
_ = encode(_.trim()).slice(1, -1);
|
|
97
|
+
_ = codetext.encode(_.trim()).slice(1, -1);
|
|
237
98
|
if (/[\*#\.]\s/.test(text.slice(i - 1, i + 1))) _ = " " + _;
|
|
238
99
|
if (q.length === 1) return `<m>${_}</m>`;
|
|
239
100
|
var t = /^\S+/.exec(c);
|
|
240
|
-
if (t) t = t[0]; c = c.slice(t.length);
|
|
241
|
-
|
|
101
|
+
if (t) t = t[0]; c = c.slice(t.length).replace(/^(\r\n|\r|\n)|\s+$/g, '');
|
|
102
|
+
try {
|
|
103
|
+
return codetext(t, c);
|
|
104
|
+
} catch (e) {
|
|
105
|
+
console.error(e);
|
|
106
|
+
return c;
|
|
107
|
+
}
|
|
242
108
|
}).replace(/\s*(( \s*)+)/g, "$1").split(/\r\n|\r|\n/).forEach(richtext);
|
|
243
109
|
list_elem = null;
|
|
244
110
|
list_tag = null;
|
|
245
111
|
content = null;
|
|
246
112
|
return c.join('');
|
|
247
|
-
}
|
|
248
|
-
markdown.javascript = codetext.bind(null, 'javascript');
|
|
113
|
+
}
|
package/coms/zimoli/alert.js
CHANGED
|
@@ -9,24 +9,15 @@ styles.info = styles.blue;
|
|
|
9
9
|
styles.error = styles.danger = styles.red;
|
|
10
10
|
styles.warn = styles.orange;
|
|
11
11
|
styles.default = '#000a';
|
|
12
|
-
var alerts = [];
|
|
13
|
-
var clean = Cleanup(alerts);
|
|
14
|
-
var build = function () {
|
|
15
|
-
var sum = 0;
|
|
16
|
-
alerts.forEach(function (elem) {
|
|
17
|
-
if (elem.offsetTop !== sum) {
|
|
18
|
-
elem.style.top = fromOffset(sum);
|
|
19
|
-
};
|
|
20
|
-
sum += elem.offsetHeight;
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
12
|
var fontSize = 16;
|
|
24
13
|
var singleHeight = fontSize * 3.125 | 0;
|
|
14
|
+
var container = document.createElement('alert-container');
|
|
15
|
+
css(container, 'top:0;height:0;left:0;right:0;transition:all 0.2s ease-out;position:absolute;')
|
|
25
16
|
var _text = function (bgcolor, parameters) {
|
|
26
|
-
var box = div
|
|
27
|
-
css(box, `
|
|
28
|
-
box.innerHTML =
|
|
29
|
-
box.initialStyle = `margin-top:-${fromPixel(singleHeight)}
|
|
17
|
+
var box = document.createElement('div');
|
|
18
|
+
css(box, `background-color:${bgcolor};color:${color.pair(bgcolor, 1)};`);
|
|
19
|
+
box.innerHTML = [].slice.call(parameters, 0).join(", ");
|
|
20
|
+
box.initialStyle = `margin-top:-${fromPixel(singleHeight)};`;
|
|
30
21
|
return box;
|
|
31
22
|
};
|
|
32
23
|
function alert() {
|
|
@@ -65,14 +56,12 @@ function alert() {
|
|
|
65
56
|
} else {
|
|
66
57
|
elem = _text(styles.log, [text]);
|
|
67
58
|
}
|
|
68
|
-
var _onclose = function (event) {
|
|
59
|
+
var _onclose = lazy(function (event) {
|
|
69
60
|
if (onclose) {
|
|
70
61
|
onclose.call(this, event);
|
|
71
62
|
}
|
|
72
|
-
clean(this);
|
|
73
|
-
build();
|
|
74
63
|
if (close_timer) clearTimeout(close_timer);
|
|
75
|
-
}
|
|
64
|
+
});
|
|
76
65
|
onremove(elem, _onclose);
|
|
77
66
|
var close_timer;
|
|
78
67
|
var waitclose = function (autoclose, deltaTime) {
|
|
@@ -97,8 +86,8 @@ function alert() {
|
|
|
97
86
|
waitclose(timeout, -100);
|
|
98
87
|
}
|
|
99
88
|
};
|
|
100
|
-
|
|
101
|
-
|
|
89
|
+
if (!container.parentNode) popup(container);
|
|
90
|
+
if (!elem.parentNode) appendChild(container, elem);
|
|
102
91
|
return elem;
|
|
103
92
|
}
|
|
104
93
|
for (var k in styles) {
|
package/coms/zimoli/data_test.js
CHANGED
|
@@ -24,7 +24,7 @@ var getGenerator = function (container, tagName = 'item') {
|
|
|
24
24
|
var template = document.createElement(container.tagName);
|
|
25
25
|
var templates = [];
|
|
26
26
|
for (let a of container.childNodes) {
|
|
27
|
-
if (a.hasAttribute('insert')) {
|
|
27
|
+
if (a.nodeType === 1 && a.hasAttribute('insert')) {
|
|
28
28
|
if (!templates.length) a.$isbefore = true;
|
|
29
29
|
else a.$isafter = true;
|
|
30
30
|
}
|
package/coms/zimoli/render.js
CHANGED
|
@@ -503,7 +503,7 @@ var directives = {
|
|
|
503
503
|
}),
|
|
504
504
|
src(src) {
|
|
505
505
|
var parsedSrc = this.$src;
|
|
506
|
-
return src2.call(this, parsedSrc ? parsedSrc.srcName : src);
|
|
506
|
+
return src2.call(this, parsedSrc && /[\{\[\s]/.test(src) ? parsedSrc.srcName : src);
|
|
507
507
|
},
|
|
508
508
|
model(search, target) {
|
|
509
509
|
var getter = createGetter(this, search);
|
|
@@ -886,6 +886,7 @@ class Struct {
|
|
|
886
886
|
function createStructure(element) {
|
|
887
887
|
if (isArrayLike(element)) return Array.prototype.map.call(element, createStructure);
|
|
888
888
|
if (element.$struct) return element.$struct;
|
|
889
|
+
if (element.nodeType !== 1) return;
|
|
889
890
|
// 处理结构流
|
|
890
891
|
var attributes = element.attributes;
|
|
891
892
|
var attrs = Array.apply(null, attributes);
|
package/coms/zimoli/zimoli.js
CHANGED
|
@@ -58,7 +58,8 @@ if (/MSIE\s*[2-7]/.test(navigator.userAgent)) {
|
|
|
58
58
|
if (currentHash && currentHash === targetHash) return;
|
|
59
59
|
var targetHashIndex = targetHash.indexOf("#" + current_history);
|
|
60
60
|
if (targetHashIndex < 0) return;
|
|
61
|
-
var targetpath = targetHash.slice(targetHashIndex + current_history.length);
|
|
61
|
+
var targetpath = targetHash.slice(targetHashIndex + current_history.length + 1);
|
|
62
|
+
targetpath = decodeURI(targetpath);
|
|
62
63
|
go(targetpath);
|
|
63
64
|
return;
|
|
64
65
|
}
|
package/docs/components.jsp
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require("fs").promises;
|
|
4
4
|
var path = require("path");
|
|
5
|
-
var comm_file_reg = /\.([tj]sx?|xht|md|less)$/i;
|
|
5
|
+
var comm_file_reg = /\.([tj]sx?|xht|md|less|html)$/i;
|
|
6
6
|
var basepath = path.join(String(__efront), 'coms');
|
|
7
7
|
if (req.id) {
|
|
8
8
|
var compath = path.join(basepath, req.id);
|
package/docs/main.xht
CHANGED
|
@@ -150,7 +150,13 @@
|
|
|
150
150
|
var map = Object.create(null);
|
|
151
151
|
var children = [];
|
|
152
152
|
for (var a of c.children) {
|
|
153
|
-
if (
|
|
153
|
+
if (/_test\.([tj]sx?|xht|html|less|css|md)$/i.test(a)) {
|
|
154
|
+
var testName = a.replace(/\.\w+$/g, '');
|
|
155
|
+
if (!map[testName]) map[testName] = [];
|
|
156
|
+
map[testName].push(a);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
else if (!/\.([jt]sx?|xht)$/i.test(a)) {
|
|
154
160
|
map[a.replace(/\.\w+$/g, a => a.toLowerCase())] = a;
|
|
155
161
|
continue;
|
|
156
162
|
}
|
|
@@ -159,7 +165,7 @@
|
|
|
159
165
|
for (var cc of children) {
|
|
160
166
|
cc.data = {
|
|
161
167
|
mark: !!map[cc.name.replace(/\.[tj]sx?$/i, ".md")],
|
|
162
|
-
test:
|
|
168
|
+
test: map[cc.name.replace(/\.[tj]sx?$/i, "_test")],
|
|
163
169
|
less: !!map[cc.name.replace(/\.[tj]sx?$/i, ".less")]
|
|
164
170
|
}
|
|
165
171
|
if (cc.data.less) cc.name += "<f less></f>"
|
|
@@ -169,7 +175,7 @@
|
|
|
169
175
|
c.children = children;
|
|
170
176
|
c.closed = true;
|
|
171
177
|
}
|
|
172
|
-
|
|
178
|
+
data.setInstance('components', m);
|
|
173
179
|
menus[2].children = m;
|
|
174
180
|
};
|
|
175
181
|
var initMenus = async function () {
|
package/docs/mark.xht
CHANGED
|
@@ -55,86 +55,6 @@
|
|
|
55
55
|
border: 1.2px solid #0007;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
code {
|
|
59
|
-
padding: 10px 20px;
|
|
60
|
-
border-radius: 3px;
|
|
61
|
-
display: inline-block;
|
|
62
|
-
background: #333;
|
|
63
|
-
color: #d4d4d4;
|
|
64
|
-
vertical-align: top;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
strap,
|
|
68
|
-
value {
|
|
69
|
-
color: #569cd6;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
regexp {
|
|
73
|
-
color: #d16969;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
text {
|
|
77
|
-
color: #ce9178;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
flow {
|
|
81
|
-
color: #c586c0;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
digit {
|
|
85
|
-
color: #b5cea8;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
label {
|
|
89
|
-
color: #569cd6;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
@deep(@num, @color) {
|
|
93
|
-
deep@num {
|
|
94
|
-
color: @color;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@deep(0, #ffd700);
|
|
99
|
-
@deep(1, #da70d6);
|
|
100
|
-
@deep(2, #179fff);
|
|
101
|
-
@deep(3, #ffd700);
|
|
102
|
-
@deep(4, #da70d6);
|
|
103
|
-
@deep(5, #179fff);
|
|
104
|
-
@deep(6, #ffd700);
|
|
105
|
-
@deep(7, #da70d6);
|
|
106
|
-
@deep(8, #179fff);
|
|
107
|
-
@deep(9, #ffd700);
|
|
108
|
-
@deep(10, #da70d6);
|
|
109
|
-
@deep(11, #179fff);
|
|
110
|
-
@deep(12, #ffd700);
|
|
111
|
-
@deep(13, #da70d6);
|
|
112
|
-
@deep(14, #179fff);
|
|
113
|
-
@deep(15, #ffd700);
|
|
114
|
-
@deep(16, #da70d6);
|
|
115
|
-
@deep(17, #179fff);
|
|
116
|
-
|
|
117
|
-
express,
|
|
118
|
-
property {
|
|
119
|
-
color: #9cdcfe;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
invoke,
|
|
123
|
-
method {
|
|
124
|
-
color: #dcdcaa;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
predef {
|
|
128
|
-
color: #4ec9b0;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
outside {
|
|
132
|
-
color: #4fc1ff;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
comment {
|
|
136
|
-
color: #6a9955;
|
|
137
|
-
}
|
|
138
58
|
</style>
|
|
139
59
|
<script>
|
|
140
60
|
var history = [];
|
|
@@ -524,7 +524,7 @@
|
|
|
524
524
|
var liang = 0, fanyi = {};
|
|
525
525
|
for (var { lang: k, id } of supports) {
|
|
526
526
|
if (!d[k]) continue;
|
|
527
|
-
if (preMap[d[k]]) continue loop;
|
|
527
|
+
if (preMap[d[k]] && preMap[d[k]] !== d) continue loop;
|
|
528
528
|
preMap[d[k]] = d;
|
|
529
529
|
liang++;
|
|
530
530
|
fanyi[id] = d[k];
|