efront 3.25.14 → 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/model.js +36 -6
- package/coms/zimoli/render.js +1 -3
- package/coms/zimoli/table.js +18 -12
- 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/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/render.js
CHANGED
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,30 +369,24 @@ 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;
|
|
375
|
+
return;
|
|
362
376
|
}
|
|
363
377
|
if (!thead) {
|
|
364
378
|
thead = getThead(table);
|
|
365
379
|
}
|
|
366
|
-
if (!getTargetIn(thead, event.target))
|
|
367
|
-
activeCols.forEach(function (td) {
|
|
368
|
-
removeClass(td, 'y-ing');
|
|
369
|
-
});
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
380
|
+
if (!getTargetIn(thead, event.target)) return;
|
|
372
381
|
var tds = getTargetIn(cellMatchManager, event.target);
|
|
373
382
|
if (!tds) return;
|
|
374
383
|
setClass(tds, 'y-ing', activeCols);
|
|
384
|
+
removeXIng(activeRows);
|
|
375
385
|
activeCols = tds;
|
|
376
386
|
});
|
|
377
387
|
onmouseleave(tableElement, function () {
|
|
378
|
-
activeCols
|
|
379
|
-
|
|
380
|
-
});
|
|
381
|
-
activeRows.forEach(function (td) {
|
|
382
|
-
removeClass(td, 'x-ing');
|
|
383
|
-
});
|
|
388
|
+
removeYIng(activeCols);
|
|
389
|
+
removeXIng(activeRows);
|
|
384
390
|
});
|
|
385
391
|
var table = tableElement;
|
|
386
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;
|