efront 3.25.12 → 3.25.16
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 +2 -1
- package/coms/zimoli/LoadingArray.js +0 -2
- package/coms/zimoli/alert.js +22 -9
- package/coms/zimoli/model.js +36 -6
- package/coms/zimoli/picture.js +4 -3
- package/coms/zimoli/render.js +3 -1
- package/coms/zimoli/table.js +16 -6
- package/coms/zimoli/vbox.js +1 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/readme.md +0 -2
package/coms/basic/loader.js
CHANGED
package/coms/zimoli/alert.js
CHANGED
|
@@ -74,16 +74,29 @@ function alert() {
|
|
|
74
74
|
if (close_timer) clearTimeout(close_timer);
|
|
75
75
|
}
|
|
76
76
|
onremove(elem, _onclose);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
var close_timer;
|
|
78
|
+
var waitclose = function (autoclose, deltaTime) {
|
|
79
|
+
if (autoclose) {
|
|
80
|
+
if (autoclose === true) {
|
|
81
|
+
autoclose = text.length * 160 + deltaTime;
|
|
82
|
+
} else if (autoclose < 100) {
|
|
83
|
+
autoclose = autoclose * 1000;
|
|
84
|
+
}
|
|
85
|
+
close_timer = setTimeout(function () {
|
|
86
|
+
remove(elem);
|
|
87
|
+
}, autoclose);
|
|
82
88
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
89
|
+
};
|
|
90
|
+
waitclose(autoclose, 400)
|
|
91
|
+
elem.setText = function (content, timeout = true) {
|
|
92
|
+
var c = elem.children[0];
|
|
93
|
+
c.innerHTML = content;
|
|
94
|
+
text = content;
|
|
95
|
+
if (timeout) {
|
|
96
|
+
clearTimeout(close_timer);
|
|
97
|
+
waitclose(timeout, -100);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
87
100
|
alerts.push(elem);
|
|
88
101
|
popup(elem);
|
|
89
102
|
return elem;
|
package/coms/zimoli/model.js
CHANGED
|
@@ -35,7 +35,13 @@ var renderModel = function (field, data) {
|
|
|
35
35
|
data
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
|
+
var unmark = function (select) {
|
|
39
|
+
select.isediter = false;
|
|
40
|
+
select.isreader = false;
|
|
41
|
+
};
|
|
42
|
+
unmark(select);
|
|
38
43
|
var constructors = {
|
|
44
|
+
input,
|
|
39
45
|
swap(e) {
|
|
40
46
|
var { field } = e;
|
|
41
47
|
e = swap(e);
|
|
@@ -186,6 +192,24 @@ var createOptionsMap = function (options) {
|
|
|
186
192
|
return map;
|
|
187
193
|
}
|
|
188
194
|
readonly_types.select = readonly_types.swap;
|
|
195
|
+
var findReaderForElement = function (type, e) {
|
|
196
|
+
var editor = render.getFromScopes(type, e.$scope, e.$parentScopes);
|
|
197
|
+
if (isFunction(editor) && (editor.isreader || !editor.isediter) && editor.isreader !== false) return editor;
|
|
198
|
+
};
|
|
199
|
+
var findEditerForElement = function (type, e) {
|
|
200
|
+
var editor = render.getFromScopes(type, e.$scope, e.$parentScopes);
|
|
201
|
+
if (isFunction(editor) && (editor.isediter || !editor.isreader) && editor.isediter !== false) return editor;
|
|
202
|
+
};
|
|
203
|
+
var markReader = function (readers) {
|
|
204
|
+
for (var k in readers) {
|
|
205
|
+
readers[k].isreader = true;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
var markEditer = function (editers) {
|
|
209
|
+
for (var k in editers) {
|
|
210
|
+
editers[k].isediter = true;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
189
213
|
function main(elem) {
|
|
190
214
|
var build = function () {
|
|
191
215
|
var { data, readonly, field } = elem;
|
|
@@ -214,7 +238,7 @@ function main(elem) {
|
|
|
214
238
|
if (field_type === "function") {
|
|
215
239
|
field_editor(elem);
|
|
216
240
|
} else {
|
|
217
|
-
var create = readonly_types[field_type];
|
|
241
|
+
var create = findReaderForElement(field_type, elem) || readonly_types[field_type];
|
|
218
242
|
if (create) {
|
|
219
243
|
var e = create(elem, data, field_ref);
|
|
220
244
|
if (isNode(e)) {
|
|
@@ -249,7 +273,8 @@ function main(elem) {
|
|
|
249
273
|
});
|
|
250
274
|
}
|
|
251
275
|
} else {
|
|
252
|
-
var create = field_type === "function" ? field_editor : constructors[field_type];
|
|
276
|
+
var create = field_type === "function" ? field_editor : findEditerForElement(field_type, elem) || constructors[field_type];
|
|
277
|
+
console.log(create === constructors.select)
|
|
253
278
|
var ipt = create ? create(elem, field_ref) : field.key ? input(function () {
|
|
254
279
|
var input = document.createElement('input');
|
|
255
280
|
input.setAttribute('type', field.type);
|
|
@@ -298,23 +323,28 @@ function main(elem) {
|
|
|
298
323
|
});
|
|
299
324
|
return elem;
|
|
300
325
|
}
|
|
301
|
-
|
|
326
|
+
markEditer(constructors);
|
|
327
|
+
markReader(readonly_types);
|
|
302
328
|
extend(main, {
|
|
303
329
|
setEditors(map) {
|
|
304
330
|
extend(constructors, map);
|
|
331
|
+
markEditer(map);
|
|
305
332
|
},
|
|
306
333
|
setReadors(map) {
|
|
307
334
|
extend(readonly_types, map);
|
|
335
|
+
markReader(map);
|
|
308
336
|
},
|
|
309
|
-
setModels(
|
|
310
|
-
this.setEditors(
|
|
311
|
-
this.setReadors(
|
|
337
|
+
setModels(map) {
|
|
338
|
+
this.setEditors(map);
|
|
339
|
+
this.setReadors(map);
|
|
312
340
|
},
|
|
313
341
|
setEditor(key, func) {
|
|
314
342
|
constructors[key] = func;
|
|
343
|
+
func.isediter = true;
|
|
315
344
|
},
|
|
316
345
|
setReador(key, func) {
|
|
317
346
|
readonly_types[key] = func;
|
|
347
|
+
func.isreader = true;
|
|
318
348
|
},
|
|
319
349
|
setModel(key, func) {
|
|
320
350
|
this.setEditor(key, func);
|
package/coms/zimoli/picture.js
CHANGED
|
@@ -122,6 +122,7 @@ appendChild(广告, alink);
|
|
|
122
122
|
function picture(url, to = 0, key) {
|
|
123
123
|
|
|
124
124
|
var images = {};
|
|
125
|
+
var cacheLength = 8;
|
|
125
126
|
var gen = function (index, ratio) {
|
|
126
127
|
if (index >= urls.length || index < 0) return null;
|
|
127
128
|
if (images[index] && images[index].url !== urls[index]) {
|
|
@@ -133,9 +134,9 @@ function picture(url, to = 0, key) {
|
|
|
133
134
|
if (!images[index + 1] && index + 1 < urls.length) {
|
|
134
135
|
images[index + 1] = create.call(p, urls[index + 1], key, p.index === index);
|
|
135
136
|
}
|
|
136
|
-
if (index >=
|
|
137
|
-
if (index +
|
|
138
|
-
delete images[index +
|
|
137
|
+
if (index >= cacheLength) delete images[index - cacheLength];
|
|
138
|
+
if (index + cacheLength < urls.length) {
|
|
139
|
+
delete images[index + cacheLength];
|
|
139
140
|
}
|
|
140
141
|
var img = images[index]
|
|
141
142
|
if (ratio > .75 && img) {
|
package/coms/zimoli/render.js
CHANGED
|
@@ -667,7 +667,6 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
|
|
|
667
667
|
element.renders = element.renders ? [].concat(element.renders) : [];
|
|
668
668
|
var { ons, copys, attrs, props, binds, context: withContext, ids, once } = element.$struct;
|
|
669
669
|
if (once) element.renderid = 9;
|
|
670
|
-
delete element.$struct;
|
|
671
670
|
if (binds.src) {
|
|
672
671
|
element.$src = parseRepeat(binds.src);
|
|
673
672
|
}
|
|
@@ -710,12 +709,14 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
|
|
|
710
709
|
if (replacer.renders) renders = renders.concat(replacer.renders);
|
|
711
710
|
replacer.renders = renders;
|
|
712
711
|
if (binds.src) replacer.$src = element.$src;
|
|
712
|
+
delete element.$struct;
|
|
713
713
|
element = replacer;
|
|
714
714
|
element.$scope = scope;
|
|
715
715
|
element.$parentScopes = parentScopes;
|
|
716
716
|
}
|
|
717
717
|
}
|
|
718
718
|
}
|
|
719
|
+
delete element.$struct;
|
|
719
720
|
if (element.children && element.children.length) renderElement(element.children, scope, parentScopes, once);
|
|
720
721
|
if (!isFirstRender) return element;
|
|
721
722
|
var renders = element.renders;
|
|
@@ -900,3 +901,4 @@ render.register = function (key, name) {
|
|
|
900
901
|
register(key, name);
|
|
901
902
|
}
|
|
902
903
|
};
|
|
904
|
+
render.getFromScopes = getFromScopes;
|
package/coms/zimoli/table.js
CHANGED
|
@@ -300,6 +300,17 @@ var setClass = function (tds, cls, old) {
|
|
|
300
300
|
old.forEach(td => { if (!td[cls]) removeClass(td, cls) });
|
|
301
301
|
tds.forEach(td => { addClass(td, cls); delete td[cls] });
|
|
302
302
|
};
|
|
303
|
+
var removeYIng = function (activeCols) {
|
|
304
|
+
activeCols.forEach(function (td) {
|
|
305
|
+
removeClass(td, 'y-ing');
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
var removeXIng = function (activeRows) {
|
|
309
|
+
activeRows.forEach(function (td) {
|
|
310
|
+
removeClass(td, 'x-ing');
|
|
311
|
+
});
|
|
312
|
+
};
|
|
313
|
+
|
|
303
314
|
var getTdsOfSameRow = function (td) {
|
|
304
315
|
var tds = [td];
|
|
305
316
|
var tmp = td;
|
|
@@ -337,6 +348,7 @@ var getTdsOfSameRow = function (td) {
|
|
|
337
348
|
}
|
|
338
349
|
return tds;
|
|
339
350
|
};
|
|
351
|
+
|
|
340
352
|
function table(elem) {
|
|
341
353
|
var tableElement = isElement(elem) ? elem : document.createElement("table");
|
|
342
354
|
var activeCols = [];
|
|
@@ -357,6 +369,7 @@ function table(elem) {
|
|
|
357
369
|
var td = getTargetIn(tr, event.target, false);
|
|
358
370
|
if (!td) break a;
|
|
359
371
|
var tds = getTdsOfSameRow(td);
|
|
372
|
+
removeYIng(activeCols);
|
|
360
373
|
setClass(tds, 'x-ing', activeRows);
|
|
361
374
|
activeRows = tds;
|
|
362
375
|
return;
|
|
@@ -368,15 +381,12 @@ function table(elem) {
|
|
|
368
381
|
var tds = getTargetIn(cellMatchManager, event.target);
|
|
369
382
|
if (!tds) return;
|
|
370
383
|
setClass(tds, 'y-ing', activeCols);
|
|
384
|
+
removeXIng(activeRows);
|
|
371
385
|
activeCols = tds;
|
|
372
386
|
});
|
|
373
387
|
onmouseleave(tableElement, function () {
|
|
374
|
-
activeCols
|
|
375
|
-
|
|
376
|
-
});
|
|
377
|
-
activeRows.forEach(function (td) {
|
|
378
|
-
removeClass(td, 'x-ing');
|
|
379
|
-
});
|
|
388
|
+
removeYIng(activeCols);
|
|
389
|
+
removeXIng(activeRows);
|
|
380
390
|
});
|
|
381
391
|
var table = tableElement;
|
|
382
392
|
var thead;
|
package/coms/zimoli/vbox.js
CHANGED
|
@@ -207,7 +207,7 @@ var xbox = arriswise(ybox, [].concat(allArgumentsNames, [].slice.call(arguments,
|
|
|
207
207
|
*/
|
|
208
208
|
function vbox(generator, $Y) {
|
|
209
209
|
if ($Y !== false && $Y !== true) {
|
|
210
|
-
if (
|
|
210
|
+
if (!isString($Y)) {
|
|
211
211
|
if (isElement(generator)) {
|
|
212
212
|
if (generator.hasAttribute('x-box') || generator.hasAttribute('xbox') || /^[xh]/i.test(generator.getAttribute('type') || /^[hx]/i.test(generator.getAttribute('mode')))) {
|
|
213
213
|
$Y = false;
|