efront 4.8.3 → 4.9.1
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 +3 -0
- package/coms/compile/Html_test.js +4 -0
- package/coms/compile/Program.js +5 -5
- package/coms/compile/audit.js +18 -4
- package/coms/compile/common.js +3 -3
- package/coms/docs/codecolor.js +22 -12
- package/coms/docs/codetext.xht +4 -3
- package/coms/explorer/main.js +2 -2
- package/coms/zimoli/autodragchildren.js +11 -5
- package/coms/zimoli/cloneVisible.js +4 -0
- package/coms/zimoli/cloneVisible_test.xht +4 -1
- package/coms/zimoli/drag.js +0 -1
- package/coms/zimoli/grid.js +2 -4
- package/coms/zimoli/grid_test.js +2 -0
- package/coms/zimoli/overlap_test.js +1 -1
- package/coms/zimoli/remove.js +2 -1
- package/coms/zimoli/touchList_test.js +1 -0
- package/docs//347/273/204/344/273/266.xht +18 -25
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/coms/docs/execute.js +0 -52
- package/docs/loader.js +0 -135
|
@@ -20,3 +20,7 @@ test('<!--<input ng-model=data.name/>-->');
|
|
|
20
20
|
test('<div><!--<input ng-model=data.name/>--></div>');
|
|
21
21
|
test('<div><div>{</div><div>}</div></div>');
|
|
22
22
|
test('<div>${`<div></div>`}</div>');
|
|
23
|
+
test('<div>\\${${`<div></div>`}</div>');
|
|
24
|
+
test('<div>$\\{${`<div></div>`}</div>');
|
|
25
|
+
test('<div>$\\{${typeof `<div></div>`}</div>');
|
|
26
|
+
test('<div>$\\{${\\a+typeof`<div></div>`}</div>','<div>$\\{${\\a + typeof `<div></div>`}</div>');
|
package/coms/compile/Program.js
CHANGED
|
@@ -91,7 +91,7 @@ class Program {
|
|
|
91
91
|
["`", "`", /\\[\s\S]/, ["${", "}"]],
|
|
92
92
|
]
|
|
93
93
|
tags = [
|
|
94
|
-
[["<", "</"], /\/?>/,
|
|
94
|
+
[["<", "</"], /\/?>/, /\\[\s\S]/, "'", '"', "<!--", ["${", "}"]]
|
|
95
95
|
];
|
|
96
96
|
scriptTags = [];
|
|
97
97
|
ignoreTags = ["STYLE", "SCRIPT"];
|
|
@@ -187,6 +187,10 @@ class Program {
|
|
|
187
187
|
};
|
|
188
188
|
var row = 1, colstart = -1;
|
|
189
189
|
var save = (type) => {
|
|
190
|
+
if (type & (SPACE | COMMENT | PIECE | QUOTED)) {
|
|
191
|
+
row += m.replace(/[^\r\n\u2028\u2029]+/g, '').replace(/\r\n|\r|\n|\u2028|\u2029/g, ' ').length;
|
|
192
|
+
colstart = start + m.length - m.replace(/^[\s\S]*?([^\r\n\u2028\u2029]*)$/, '$1').length - 1;
|
|
193
|
+
}
|
|
190
194
|
if (lasttype === STAMP && type === STAMP && !/[,;\:]/.test(m)) {
|
|
191
195
|
var scope = queue[queue.length - 1];
|
|
192
196
|
if (/=>$/i.test(scope.text) ||
|
|
@@ -511,7 +515,6 @@ class Program {
|
|
|
511
515
|
queue.inExpress = true;
|
|
512
516
|
queue.end = index;
|
|
513
517
|
queue.text = text.slice(queue.start, index);
|
|
514
|
-
row += queue.text.replace(/[^\r\n\u2028\u2029]+/g, ':').replace(/\r\n/g, ',').replace(/:/g, '').length;
|
|
515
518
|
pop_parents();
|
|
516
519
|
continue;
|
|
517
520
|
}
|
|
@@ -525,9 +528,6 @@ class Program {
|
|
|
525
528
|
}
|
|
526
529
|
if (this.space_reg.test(m)) {
|
|
527
530
|
if (/[\r\n\u2028\u2029]/.test(m)) {
|
|
528
|
-
m = m.replace(/^[^\r\n\u2028\u2029]+/, '').replace(/\r\n|\r|\n|\u2028|\u2029/g, "\r\n");
|
|
529
|
-
row += m.replace(/[^\r\n]+/g, '').length >> 1;
|
|
530
|
-
colstart = match.index + m.replace(/[^\r\n]+$/, '').length - 1;
|
|
531
531
|
var last = queue.last;
|
|
532
532
|
if (last && last.isend === false) {
|
|
533
533
|
last.isend = true;
|
package/coms/compile/audit.js
CHANGED
|
@@ -141,13 +141,22 @@ var suggest = {
|
|
|
141
141
|
var { used, args } = body.scoped;
|
|
142
142
|
if (!args?.length) return;
|
|
143
143
|
var access_start = body.reststart ?? args?.length;
|
|
144
|
+
var checkNames = ["arguments"];
|
|
144
145
|
a: if (access_start > 0) {
|
|
145
146
|
for (var a of used.arguments) {
|
|
146
147
|
if (a.text !== 'arguments') continue;
|
|
147
148
|
var n = a.next;
|
|
148
149
|
if (!n || n.type !== SCOPED || n.entry !== '[') {
|
|
149
150
|
access_start = 0;
|
|
150
|
-
|
|
151
|
+
var p = a.prev;
|
|
152
|
+
while (p && p.type === STAMP && p.text === '=') {
|
|
153
|
+
var pp = p.prev;
|
|
154
|
+
if (pp?.type === EXPRESS) {
|
|
155
|
+
checkNames.push(pp.text);
|
|
156
|
+
}
|
|
157
|
+
p = pp.prev;
|
|
158
|
+
}
|
|
159
|
+
continue;
|
|
151
160
|
}
|
|
152
161
|
if (n.last && n.last === n.first) {
|
|
153
162
|
if (n.last.isdigit) {
|
|
@@ -159,7 +168,6 @@ var suggest = {
|
|
|
159
168
|
}
|
|
160
169
|
if (access_start >= args.length) return;
|
|
161
170
|
var broken = false;
|
|
162
|
-
var arguments = used.arguments;
|
|
163
171
|
var arg_start = Infinity;
|
|
164
172
|
a: for (var a of args) {
|
|
165
173
|
if (access_start > 0) {
|
|
@@ -185,8 +193,14 @@ var suggest = {
|
|
|
185
193
|
}
|
|
186
194
|
}
|
|
187
195
|
if (!broken) return;
|
|
188
|
-
|
|
189
|
-
|
|
196
|
+
a: {
|
|
197
|
+
for (var a of checkNames) {
|
|
198
|
+
var args = used[a];
|
|
199
|
+
args = args.filter(a => a.start >= arg_start);
|
|
200
|
+
if (args.length) break a;
|
|
201
|
+
}
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
190
204
|
var h = snapSentenceHead(body);
|
|
191
205
|
var matched = [];
|
|
192
206
|
while (h && h !== body) {
|
package/coms/compile/common.js
CHANGED
|
@@ -1089,8 +1089,8 @@ var breakSpace = function (o) {
|
|
|
1089
1089
|
};
|
|
1090
1090
|
var hasBreakBetween = function (prev, next) {
|
|
1091
1091
|
if (!prev || !next) return true;
|
|
1092
|
-
if (prev.type === STAMP && /^[,;]
|
|
1093
|
-
if (next.type === STAMP && /^[,;]
|
|
1092
|
+
if (prev.type === STAMP && /^[,;]/.test(prev.text)) return true;
|
|
1093
|
+
if (next.type === STAMP && /^[,;]/.test(next.text)) return true;
|
|
1094
1094
|
if (prev.type === EXPRESS && /\.$/.test(prev.text)) return true;
|
|
1095
1095
|
if (next.type === EXPRESS && /^[\.\[]/.test(next.text)) return true;
|
|
1096
1096
|
};
|
|
@@ -1328,7 +1328,7 @@ var createString = function (parsed) {
|
|
|
1328
1328
|
else if ((STRAP | EXPRESS | PROPERTY | COMMENT | VALUE) & lasttype && (STRAP | EXPRESS | PROPERTY | VALUE | LABEL) & o.type) {
|
|
1329
1329
|
if (autospace) result.push(" ");
|
|
1330
1330
|
}
|
|
1331
|
-
else if (o.prev && o.type === STAMP && !/^
|
|
1331
|
+
else if (o.prev && o.type === STAMP && !/^[,;]/.test(o.text)) {
|
|
1332
1332
|
if (result[result.length - 1] === " " || (lasttype === PROPERTY || !o.isExpress && o.prev && o.prev.type !== LABEL) && o.text === ':') { }
|
|
1333
1333
|
else if (lasttype === STAMP) {
|
|
1334
1334
|
var prev = o.prev;
|
package/coms/docs/codecolor.js
CHANGED
|
@@ -9,6 +9,27 @@ predefs.Promise = true;
|
|
|
9
9
|
var codecolor = function (c, encode) {
|
|
10
10
|
var envs = c.envs;
|
|
11
11
|
var deep = 0;
|
|
12
|
+
var used = c.used;
|
|
13
|
+
var setExpress = function (o, label) {
|
|
14
|
+
var text = o.text;
|
|
15
|
+
var keys = o.text.split(".");
|
|
16
|
+
var next = o.next;
|
|
17
|
+
if (next && next.type === SCOPED && next.entry === '(') {
|
|
18
|
+
keys[keys.length - 1] = `<invoke>${keys[keys.length - 1]}</invoke>`;
|
|
19
|
+
}
|
|
20
|
+
var [name0] = text.split(".");
|
|
21
|
+
var [name] = keys;
|
|
22
|
+
if (/^</.test(name0));
|
|
23
|
+
else if (/^(arguments|this|super|Infinity|NaN)$/.test(name0)) name = `<strap>${name}</strap>`;
|
|
24
|
+
keys[0] = name;
|
|
25
|
+
o.text = keys.map(k => /^\</.test(k) || !k ? k : `<${label}>${k}</${label}>`).join(".");
|
|
26
|
+
}
|
|
27
|
+
var setPredef = o => setExpress(o, 'predef');
|
|
28
|
+
var setOutside = o => setExpress(o, 'outside');
|
|
29
|
+
if (used) for (var k in envs) {
|
|
30
|
+
used[k].forEach(k in predefs ? setPredef : setOutside);
|
|
31
|
+
}
|
|
32
|
+
|
|
12
33
|
var setcolor = function (o) {
|
|
13
34
|
var text = o.text;
|
|
14
35
|
switch (o.type) {
|
|
@@ -61,18 +82,7 @@ var codecolor = function (c, encode) {
|
|
|
61
82
|
|
|
62
83
|
break;
|
|
63
84
|
case EXPRESS:
|
|
64
|
-
|
|
65
|
-
var next = o.next;
|
|
66
|
-
if (next && next.type === SCOPED && next.entry === '(') {
|
|
67
|
-
keys[keys.length - 1] = `<invoke>${keys[keys.length - 1]}</invoke>`;
|
|
68
|
-
}
|
|
69
|
-
var [name0] = text.split(".");
|
|
70
|
-
var [name] = keys;
|
|
71
|
-
if (/^</.test(name0));
|
|
72
|
-
else if (/^(arguments|this|super|Infinity|NaN)$/.test(name0)) name = `<strap>${name}</strap>`;
|
|
73
|
-
else if (name0 in envs) name = name0 in predefs ? `<predef>${name}</predef>` : `<outside>${name}</outside>`;
|
|
74
|
-
keys[0] = name;
|
|
75
|
-
o.text = keys.map(k => /^\</.test(k) || !k ? k : `<express>${k}</express>`).join(".");
|
|
85
|
+
setExpress(o, 'express');
|
|
76
86
|
break;
|
|
77
87
|
case STRAP:
|
|
78
88
|
if (/^(if|else|switch|case|do|while|for|break|continue|default|import|from|as|export|try|catch|finally|throw|await|yield|return)$/.test(text))
|
package/coms/docs/codetext.xht
CHANGED
|
@@ -94,13 +94,12 @@
|
|
|
94
94
|
typescript.tags[0].push(["{", "}"]);
|
|
95
95
|
var js = new compile$Javascript;
|
|
96
96
|
js.tags[0].push(["{", "}"]);
|
|
97
|
-
js.keepspace = true;
|
|
98
97
|
var codesupports = {
|
|
99
98
|
javascript(a, blink) {
|
|
100
99
|
if (blink) var index = a.indexOf(blink);
|
|
101
100
|
if (index >= 0) a = a.slice(0, index) + a.slice(index + 1);
|
|
102
|
-
js.keepspace = !!blink;
|
|
103
101
|
var c = compile$scanner2(a, js);
|
|
102
|
+
c.scoped;
|
|
104
103
|
if (index >= 0) {
|
|
105
104
|
var patched = patchBlink(c, index, blink);
|
|
106
105
|
}
|
|
@@ -137,7 +136,7 @@
|
|
|
137
136
|
codesupports.jsx = codesupports.js = codesupports.javascript;
|
|
138
137
|
codesupports.tsx = codesupports.ts = codesupports.typescript;
|
|
139
138
|
codesupports.xml = codesupports.html;
|
|
140
|
-
var { SCOPED, QUOTED } = compile$common;
|
|
139
|
+
var { SCOPED, QUOTED, SPACE, EXPRESS } = compile$common;
|
|
141
140
|
var patchBlink = function (code, index, blink) {
|
|
142
141
|
for (var cx = 0, dx = code.length; cx < dx; cx++) {
|
|
143
142
|
var c = code[cx];
|
|
@@ -169,6 +168,7 @@
|
|
|
169
168
|
}
|
|
170
169
|
else {
|
|
171
170
|
c.blink = c.text.length;
|
|
171
|
+
c.text += blink;
|
|
172
172
|
}
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
@@ -194,6 +194,7 @@
|
|
|
194
194
|
code.leave = blink + code.leave;
|
|
195
195
|
return true;
|
|
196
196
|
}
|
|
197
|
+
if (c) return c.text += blink, true;
|
|
197
198
|
return false;
|
|
198
199
|
};
|
|
199
200
|
function codetext(type, text, blink) {
|
package/coms/explorer/main.js
CHANGED
|
@@ -58,8 +58,8 @@ var touch = {
|
|
|
58
58
|
if (!drag.tip) {
|
|
59
59
|
var t = document.createElement('dragtip');
|
|
60
60
|
drag.tip = t;
|
|
61
|
-
drag.
|
|
62
|
-
drag.
|
|
61
|
+
drag.shadow.appendChild(t);
|
|
62
|
+
drag.shadow.style.zIndex = zIndex(0) + 2;
|
|
63
63
|
css(t, {
|
|
64
64
|
display: "bock",
|
|
65
65
|
padding: "6px 10px",
|
|
@@ -14,7 +14,7 @@ var moveMarginX = function moveMarginX(element, movePixels) {
|
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
var moveChildrenX = function (targetBox, previousElements, followedElements, moveMargin, recover) {
|
|
17
|
-
var dragTarget = drag.
|
|
17
|
+
var dragTarget = drag.shadow;
|
|
18
18
|
if (dragTarget) {
|
|
19
19
|
var area = overlap(dragTarget, targetBox);
|
|
20
20
|
if (area > 0) {
|
|
@@ -55,7 +55,7 @@ var moveChildrenX = function (targetBox, previousElements, followedElements, mov
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
var scrollX = function (targetBox, moveChildren) {
|
|
58
|
-
var dragTarget = drag.
|
|
58
|
+
var dragTarget = drag.shadow;
|
|
59
59
|
if (!dragTarget || !targetBox) return;
|
|
60
60
|
targetBox = getTargetIn(function (a) {
|
|
61
61
|
var computed = getComputedStyle(a);
|
|
@@ -203,8 +203,14 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
203
203
|
var dst, appendSibling, delta;
|
|
204
204
|
var k0 = -1;
|
|
205
205
|
for (var k0 in previousElements) break;
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
var target = drag.target;
|
|
207
|
+
if (isMounted(target)) {
|
|
208
|
+
if (previousElements.length) var src = previousElements.length - k0;
|
|
209
|
+
else var src = 0;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
var src = target.index;
|
|
213
|
+
}
|
|
208
214
|
if (k0 >= 0 && previousElements[k0].moved) for (var k in previousElements) {
|
|
209
215
|
var cx = +k + 1;
|
|
210
216
|
if (!previousElements[cx]) {
|
|
@@ -235,7 +241,7 @@ var hooka = function (matcher, move, event, targetChild, isMovingSource) {
|
|
|
235
241
|
}
|
|
236
242
|
if (appendSibling) {
|
|
237
243
|
var children = targetBox.children;
|
|
238
|
-
var srcElement =
|
|
244
|
+
var srcElement = target;
|
|
239
245
|
var dstElement = children[dst + delta];
|
|
240
246
|
if (srcElement) {
|
|
241
247
|
src = bindTarget(src, isMovingSource ? targetChild : srcElement);
|
|
@@ -53,6 +53,7 @@ var cloneChildren = function (td, copy, clone) {
|
|
|
53
53
|
break;
|
|
54
54
|
case "img":
|
|
55
55
|
copy.src = td.src;
|
|
56
|
+
case "canvas":
|
|
56
57
|
break;
|
|
57
58
|
case "svg":
|
|
58
59
|
case "math":
|
|
@@ -214,6 +215,9 @@ var createElementFromNode = function (node) {
|
|
|
214
215
|
if (node.namespaceURI && !/html$/i.test(node.namespaceURI)) {
|
|
215
216
|
return document.createElementNS(node.namespaceURI, node.tagName);
|
|
216
217
|
}
|
|
218
|
+
if (/^canvas$/i.test(node.tagName)) {
|
|
219
|
+
return cloneCanvas(node);
|
|
220
|
+
}
|
|
217
221
|
return document.createElement(node.tagName);
|
|
218
222
|
}
|
|
219
223
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
strong{
|
|
4
4
|
color: #666;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
td:first-child span:before{
|
|
7
7
|
content: '<a>pseudo</a>';
|
|
8
8
|
display: 'inline-block';
|
|
9
9
|
padding: 0 16px;
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
padding: 10px 16px;
|
|
15
15
|
background: #fff;
|
|
16
16
|
}
|
|
17
|
+
*{
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
}
|
|
17
20
|
|
|
18
21
|
clone,
|
|
19
22
|
canvas {
|
package/coms/zimoli/drag.js
CHANGED
|
@@ -87,7 +87,6 @@ function drag(target, initialEvent, preventOverflow, isMovingSource) {
|
|
|
87
87
|
dispatch("dragstart", target);
|
|
88
88
|
}
|
|
89
89
|
event.moveLocked = true;
|
|
90
|
-
drag.target = clone;
|
|
91
90
|
var offsetLeft = saved_delta.x + event.screenX;
|
|
92
91
|
var offsetTop = saved_delta.y + event.screenY;
|
|
93
92
|
var [c_left, c_top] = getOffset(clone);
|
package/coms/zimoli/grid.js
CHANGED
|
@@ -297,6 +297,7 @@ function grid(breakpoints) {
|
|
|
297
297
|
}
|
|
298
298
|
} else {
|
|
299
299
|
grid.setData(breakpoints);
|
|
300
|
+
grid.forEachCell(e => e.target = document.createElement('cell'));
|
|
300
301
|
grid.reshape();
|
|
301
302
|
}
|
|
302
303
|
grid.setAttribute("grid", "");
|
|
@@ -448,7 +449,7 @@ var grid_prototype = {
|
|
|
448
449
|
if (points instanceof Array) {
|
|
449
450
|
points.forEach(run);
|
|
450
451
|
}
|
|
451
|
-
if (points.
|
|
452
|
+
if (!points.length) {
|
|
452
453
|
call.call(thisObj, points);
|
|
453
454
|
}
|
|
454
455
|
};
|
|
@@ -547,9 +548,6 @@ var grid_prototype = {
|
|
|
547
548
|
current_b = temp_b;
|
|
548
549
|
} else {
|
|
549
550
|
var _div = point.target;
|
|
550
|
-
if (!_div) {
|
|
551
|
-
// point.target = _div = document.createElement('cell');
|
|
552
|
-
}
|
|
553
551
|
if (_div && _div.parentNode !== grid) appendChild(grid, _div);
|
|
554
552
|
var current_value;
|
|
555
553
|
if (current_d === "x") {
|
package/coms/zimoli/grid_test.js
CHANGED
|
@@ -6,7 +6,7 @@ var assert = function (a, b) {
|
|
|
6
6
|
else return console.info(i18n`验证通过`), 1;
|
|
7
7
|
}
|
|
8
8
|
var getElement = function (left, top, width, height) {
|
|
9
|
-
var element1 =
|
|
9
|
+
var element1 = sample.cloneNode();
|
|
10
10
|
var cssText = `left:${left}px;top:${top}px;width:${width}px;height:${height}px;background:${color.random()};opacity:.6`;
|
|
11
11
|
text(element1, cssText);
|
|
12
12
|
css(element1, cssText);
|
package/coms/zimoli/remove.js
CHANGED
|
@@ -197,31 +197,24 @@
|
|
|
197
197
|
jschanged = false;
|
|
198
198
|
var modName = name.replace(/\.js$/i, '_test');
|
|
199
199
|
if (doc.test) {
|
|
200
|
-
var
|
|
200
|
+
var lessdata = [], htmldata = [];
|
|
201
|
+
jstext = [];
|
|
201
202
|
for (var f of doc.test) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
jstext.push(
|
|
203
|
+
if (/\.xht$/i.test(f)) {
|
|
204
|
+
if (isProduction) alert(i18n`这个文件内的测试代码暂不支持在线查看`, 'error');
|
|
205
|
+
else jstext.push(`return ${modName.replace(/\//g, '$')}`);
|
|
205
206
|
}
|
|
206
|
-
else
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
jstext.push(s);
|
|
218
|
-
return '';
|
|
219
|
-
})
|
|
220
|
-
.replace(/\<style\>([\s\S]*?)\<\/style\>/ig, function (_, s) {
|
|
221
|
-
lessdata.push(s);
|
|
222
|
-
return '';
|
|
223
|
-
}));
|
|
224
|
-
|
|
207
|
+
else {
|
|
208
|
+
var xhr = await cross("get", "./components:" + name.replace(/[^\\\/]+$/, '') + f);
|
|
209
|
+
if (/\.js$/i.test(f)) {
|
|
210
|
+
jstext.push(xhr.response);
|
|
211
|
+
}
|
|
212
|
+
else if (/\.less$/i.test(f)) {
|
|
213
|
+
lessdata.push(xhr.response);
|
|
214
|
+
}
|
|
215
|
+
else if (/\.html$/i.test(f)) {
|
|
216
|
+
htmldata.push(xhr.response);
|
|
217
|
+
}
|
|
225
218
|
}
|
|
226
219
|
}
|
|
227
220
|
jstext = jstext.join("\r\n");
|
|
@@ -252,7 +245,7 @@
|
|
|
252
245
|
else if (vars.main) jstext += '\r\nreturn main';
|
|
253
246
|
else if (vars.Main) jstext += '\r\nreturn Main';
|
|
254
247
|
else if (vars.MAIN) jstext += "\r\nreturn MAIN";
|
|
255
|
-
else if (vars[
|
|
248
|
+
else if (vars[commName]) jstext += "\r\nreturn " + commName;
|
|
256
249
|
}
|
|
257
250
|
var templateName = commName;
|
|
258
251
|
if (envs.template) templateName = 'template';
|
|
@@ -376,13 +369,13 @@
|
|
|
376
369
|
c.scrollLeft = scrollLeft;
|
|
377
370
|
c.contentEditable = true;
|
|
378
371
|
};
|
|
372
|
+
var trimspace = (_, a) => a ? "" : " ";
|
|
379
373
|
var updatecode = lazy(function () {
|
|
380
374
|
var trimreg = /[\s\u00a0\u2002\u0080]+([\}\{\;\[\]\(\)\,\>\<\+\-\*\&\^\/%!~:?])*/g;
|
|
381
375
|
var innerText = coder.innerText;
|
|
382
376
|
if (jstext.replace(trimreg, trimspace).trim() === innerText.replace(trimreg, trimspace).trim()) return;
|
|
383
377
|
markAnchorOffset();
|
|
384
378
|
var innerText = coder.innerText;
|
|
385
|
-
var trimspace = (_, a) => a ? "" : " ";
|
|
386
379
|
unmarkAnchorOffset();
|
|
387
380
|
initcode(innerText);
|
|
388
381
|
unmarkAnchorOffset();
|