@plotdb/form 0.1.3 → 0.2.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/CHANGELOG.md +25 -0
- package/index.js +513 -28
- package/index.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Change Logs
|
|
2
2
|
|
|
3
|
+
## v0.2.1
|
|
4
|
+
|
|
5
|
+
- add `invalidWidgets` api to recursively list all current invalid widgets
|
|
6
|
+
- upgrade dependencies
|
|
7
|
+
- use `@plotdb/quill` to replace `quill`
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## v0.2.0
|
|
11
|
+
|
|
12
|
+
- fix typo in image opset
|
|
13
|
+
- tweak file opset: update i18n and add min-size in size-limit op
|
|
14
|
+
- add `paths` and `resolve` api
|
|
15
|
+
- add experimental conditor module
|
|
16
|
+
- upgrade dependencies
|
|
17
|
+
- fix bug: child isn't reinitialized in manager.order api
|
|
18
|
+
- support export api in manager and widget
|
|
19
|
+
- support `mod.value` api
|
|
20
|
+
- explicitly define the purpose of fromSource option in value api
|
|
21
|
+
- widget.validate: lazy get of widget content to improve performance
|
|
22
|
+
- widget.value: equality check in widget.validate use internal value.
|
|
23
|
+
- add form.value.toString api for convert generic widget value to string
|
|
24
|
+
- add additional utils api for merging exported json
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
3
28
|
## v0.1.3
|
|
4
29
|
|
|
5
30
|
- upgrade dependencies
|
package/index.js
CHANGED
|
@@ -1,7 +1,113 @@
|
|
|
1
1
|
// Generated by LiveScript 1.6.0
|
|
2
2
|
(function(){
|
|
3
|
-
var form, ref$, wordLen, countOps;
|
|
3
|
+
var form, ref$, wordLen, countOps, slice$ = [].slice;
|
|
4
4
|
form = {};
|
|
5
|
+
form.value = {
|
|
6
|
+
toString: function(v){
|
|
7
|
+
var list2str, parts;
|
|
8
|
+
list2str = function(list){
|
|
9
|
+
if (list[0] && list[0].key != null && list[0].value != null) {
|
|
10
|
+
return list.map(function(it){
|
|
11
|
+
return form.value.toString(it.value);
|
|
12
|
+
}).join(' / ');
|
|
13
|
+
} else {
|
|
14
|
+
return list.map(function(it){
|
|
15
|
+
return form.value.toString(it);
|
|
16
|
+
}).join(' / ');
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
if (typeof v === 'string') {
|
|
20
|
+
return v;
|
|
21
|
+
} else if (v == null) {
|
|
22
|
+
return '';
|
|
23
|
+
} else if (Array.isArray(v)) {
|
|
24
|
+
return list2str(v);
|
|
25
|
+
} else if (v.filename) {
|
|
26
|
+
return v.filename;
|
|
27
|
+
} else if (v.key != null && v.value != null) {
|
|
28
|
+
return form.value.toString(v.value);
|
|
29
|
+
} else if (v.list && v.other) {
|
|
30
|
+
parts = (v.list || []).map(function(it){
|
|
31
|
+
return form.value.toString(it);
|
|
32
|
+
});
|
|
33
|
+
if (v.other.enabled && v.other.text) {
|
|
34
|
+
parts = parts.concat([v.other.text]);
|
|
35
|
+
}
|
|
36
|
+
return parts.join(' / ');
|
|
37
|
+
} else if (v.list && Array.isArray(v.list)) {
|
|
38
|
+
return list2str(v.list);
|
|
39
|
+
} else if (v.v != null) {
|
|
40
|
+
return form.value.toString(v.v);
|
|
41
|
+
} else {
|
|
42
|
+
return JSON.stringify(v);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
form.utils = {
|
|
47
|
+
lexCompare: function(a, b){
|
|
48
|
+
var i$, to$, i;
|
|
49
|
+
for (i$ = 0, to$ = Math.max(a.length, b.length); i$ < to$; ++i$) {
|
|
50
|
+
i = i$;
|
|
51
|
+
if (a[i] == null && b[i] != null) {
|
|
52
|
+
return -1;
|
|
53
|
+
}
|
|
54
|
+
if (a[i] != null && b[i] == null) {
|
|
55
|
+
return 1;
|
|
56
|
+
}
|
|
57
|
+
if (a[i] == null && b[i] == null) {
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
if (a[i] !== b[i]) {
|
|
61
|
+
return a[i] - b[i];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return 0;
|
|
65
|
+
},
|
|
66
|
+
mergeExports: function(records){
|
|
67
|
+
var uidMap, headers, k, v, rows;
|
|
68
|
+
uidMap = {};
|
|
69
|
+
records.map(function(cols){
|
|
70
|
+
return cols.map(function(col){
|
|
71
|
+
if (!uidMap[col.uid]) {
|
|
72
|
+
return uidMap[col.uid] = {
|
|
73
|
+
uid: col.uid,
|
|
74
|
+
header: col.header,
|
|
75
|
+
sortKey: col.sortKey
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
headers = (function(){
|
|
81
|
+
var ref$, results$ = [];
|
|
82
|
+
for (k in ref$ = uidMap) {
|
|
83
|
+
v = ref$[k];
|
|
84
|
+
results$.push({
|
|
85
|
+
k: k,
|
|
86
|
+
v: v
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return results$;
|
|
90
|
+
}()).sort(function(a, b){
|
|
91
|
+
return form.utils.lexCompare(a.v.sortKey, b.v.sortKey);
|
|
92
|
+
});
|
|
93
|
+
rows = records.map(function(cols){
|
|
94
|
+
var valMap;
|
|
95
|
+
valMap = {};
|
|
96
|
+
cols.map(function(it){
|
|
97
|
+
return valMap[it.uid] = it.value;
|
|
98
|
+
});
|
|
99
|
+
return headers.map(function(it){
|
|
100
|
+
return valMap[it.k] || '';
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
headers: headers.map(function(it){
|
|
105
|
+
return it.v.header;
|
|
106
|
+
}),
|
|
107
|
+
rows: rows
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
};
|
|
5
111
|
form.condctrl = function(opt){
|
|
6
112
|
var ref$, this$ = this;
|
|
7
113
|
opt == null && (opt = {});
|
|
@@ -243,6 +349,214 @@
|
|
|
243
349
|
};
|
|
244
350
|
return _(this._.list || []);
|
|
245
351
|
}, ref$);
|
|
352
|
+
form.conditor = function(opt){
|
|
353
|
+
var this$ = this;
|
|
354
|
+
opt == null && (opt = {});
|
|
355
|
+
this._ = {
|
|
356
|
+
manager: opt.manager,
|
|
357
|
+
conditions: [],
|
|
358
|
+
results: {},
|
|
359
|
+
virtual: {}
|
|
360
|
+
};
|
|
361
|
+
this._.manager.on('change', debounce(50, function(){
|
|
362
|
+
return this$.run();
|
|
363
|
+
}));
|
|
364
|
+
return this;
|
|
365
|
+
};
|
|
366
|
+
form.conditor.prototype = (ref$ = Object.create(Object.prototype), ref$.init = function(conditions){
|
|
367
|
+
conditions == null && (conditions = []);
|
|
368
|
+
this._.conditions = conditions.map(function(c, i){
|
|
369
|
+
var ref$;
|
|
370
|
+
return ref$ = import$({}, c), ref$.id = c.id || "_c" + i, ref$;
|
|
371
|
+
});
|
|
372
|
+
this._.results = {};
|
|
373
|
+
return this;
|
|
374
|
+
}, ref$.eval = function(cond){
|
|
375
|
+
var sub, cached, src, widgets, vals, terms, this$ = this;
|
|
376
|
+
if (cond == null) {
|
|
377
|
+
return Promise.resolve(false);
|
|
378
|
+
}
|
|
379
|
+
if (typeof cond === 'function') {
|
|
380
|
+
return Promise.resolve().then(function(){
|
|
381
|
+
return !!cond.call(this$);
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
if (Array.isArray(cond)) {
|
|
385
|
+
return Promise.all(cond.map(function(it){
|
|
386
|
+
return this$.eval(it);
|
|
387
|
+
})).then(function(it){
|
|
388
|
+
return it.every(function(it){
|
|
389
|
+
return it;
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
if (cond.logic) {
|
|
394
|
+
sub = Array.isArray(cond.cond)
|
|
395
|
+
? cond.cond
|
|
396
|
+
: [cond.cond];
|
|
397
|
+
return Promise.all(sub.map(function(it){
|
|
398
|
+
return this$.eval(it);
|
|
399
|
+
})).then(function(rs){
|
|
400
|
+
switch (cond.logic) {
|
|
401
|
+
case 'and':
|
|
402
|
+
return rs.every(function(it){
|
|
403
|
+
return it;
|
|
404
|
+
});
|
|
405
|
+
case 'or':
|
|
406
|
+
return rs.some(function(it){
|
|
407
|
+
return it;
|
|
408
|
+
});
|
|
409
|
+
case 'xor':
|
|
410
|
+
return rs.filter(function(it){
|
|
411
|
+
return it;
|
|
412
|
+
}).length === 1;
|
|
413
|
+
case 'not':
|
|
414
|
+
return !rs[0];
|
|
415
|
+
default:
|
|
416
|
+
return false;
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
if (cond.src != null && typeof cond.src === 'string' && (cached = this._.results[cond.src]) != null) {
|
|
421
|
+
return Promise.resolve(cached);
|
|
422
|
+
}
|
|
423
|
+
if (cond.func != null) {
|
|
424
|
+
return Promise.resolve().then(function(){
|
|
425
|
+
return !!cond.func.call(this$);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
if (cond.src != null) {
|
|
429
|
+
src = Array.isArray(cond.src)
|
|
430
|
+
? cond.src
|
|
431
|
+
: [cond.src];
|
|
432
|
+
widgets = this._.manager.resolve(src);
|
|
433
|
+
if (!widgets.length) {
|
|
434
|
+
return Promise.resolve(false);
|
|
435
|
+
}
|
|
436
|
+
if (widgets.some(function(w){
|
|
437
|
+
return w.disabled();
|
|
438
|
+
})) {
|
|
439
|
+
return Promise.resolve(false);
|
|
440
|
+
}
|
|
441
|
+
if (cond.values != null) {
|
|
442
|
+
vals = Array.isArray(cond.values)
|
|
443
|
+
? cond.values
|
|
444
|
+
: [cond.values];
|
|
445
|
+
return Promise.resolve(widgets.every(function(w){
|
|
446
|
+
var content;
|
|
447
|
+
content = w.content();
|
|
448
|
+
content = Array.isArray(content)
|
|
449
|
+
? content
|
|
450
|
+
: [content];
|
|
451
|
+
return content.some(function(it){
|
|
452
|
+
return in$(it, vals);
|
|
453
|
+
});
|
|
454
|
+
}));
|
|
455
|
+
}
|
|
456
|
+
if (cond.term && cond.term.length) {
|
|
457
|
+
terms = cond.term.map(function(t){
|
|
458
|
+
if (t instanceof form.term) {
|
|
459
|
+
return t;
|
|
460
|
+
} else {
|
|
461
|
+
return new form.term(t);
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
return Promise.all(widgets.map(function(w){
|
|
465
|
+
var v;
|
|
466
|
+
v = w.content();
|
|
467
|
+
return Promise.all(terms.map(function(t){
|
|
468
|
+
return t.validate(v);
|
|
469
|
+
})).then(function(it){
|
|
470
|
+
return it.every(function(it){
|
|
471
|
+
return it !== false;
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
})).then(function(it){
|
|
475
|
+
return it.every(function(it){
|
|
476
|
+
return it;
|
|
477
|
+
});
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
return Promise.resolve(widgets.every(function(w){
|
|
481
|
+
return !w.isEmpty();
|
|
482
|
+
}));
|
|
483
|
+
}
|
|
484
|
+
return Promise.resolve(false);
|
|
485
|
+
}, ref$.apply = function(effect, active){
|
|
486
|
+
var targets, i$, len$, target, lresult$, path, j$, ref$, len1$, w, cur, next, changed, results$ = [];
|
|
487
|
+
targets = effect.targets || (effect.target
|
|
488
|
+
? [effect.target]
|
|
489
|
+
: []);
|
|
490
|
+
for (i$ = 0, len$ = targets.length; i$ < len$; ++i$) {
|
|
491
|
+
target = targets[i$];
|
|
492
|
+
lresult$ = [];
|
|
493
|
+
path = Array.isArray(target)
|
|
494
|
+
? target
|
|
495
|
+
: [target];
|
|
496
|
+
if (typeof path[0] === 'string' && path[0].startsWith('$')) {
|
|
497
|
+
this._.virtual[path[0]] = active;
|
|
498
|
+
continue;
|
|
499
|
+
}
|
|
500
|
+
for (j$ = 0, len1$ = (ref$ = this._.manager.resolve(path)).length; j$ < len1$; ++j$) {
|
|
501
|
+
w = ref$[j$];
|
|
502
|
+
cur = w.serialize();
|
|
503
|
+
next = JSON.parse(JSON.stringify(cur));
|
|
504
|
+
if (effect.enabled != null) {
|
|
505
|
+
next.disabled = !!(!effect.enabled !== !active && (effect.enabled || active));
|
|
506
|
+
}
|
|
507
|
+
if (effect.isRequired != null) {
|
|
508
|
+
next.isRequired = !(!effect.isRequired !== !active && (effect.isRequired || active));
|
|
509
|
+
}
|
|
510
|
+
if (effect.readonly != null) {
|
|
511
|
+
next.readonly = !(!effect.readonly !== !active && (effect.readonly || active));
|
|
512
|
+
}
|
|
513
|
+
changed = !!cur.disabled !== !!next.disabled || !!cur.isRequired !== !!next.isRequired || !!cur.readonly !== !!next.readonly;
|
|
514
|
+
if (changed) {
|
|
515
|
+
w.deserialize(next, {
|
|
516
|
+
init: true
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
if (effect.value != null && active) {
|
|
520
|
+
lresult$.push(w.value(effect.value));
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
results$.push(lresult$);
|
|
524
|
+
}
|
|
525
|
+
return results$;
|
|
526
|
+
}, ref$.run = function(){
|
|
527
|
+
var results, evalWithDeps, this$ = this;
|
|
528
|
+
results = this._.results = {};
|
|
529
|
+
evalWithDeps = function(cond){
|
|
530
|
+
var pre, parent;
|
|
531
|
+
if (results[cond.id] != null) {
|
|
532
|
+
return Promise.resolve(results[cond.id]);
|
|
533
|
+
}
|
|
534
|
+
pre = Promise.resolve();
|
|
535
|
+
if (cond.precond) {
|
|
536
|
+
parent = this$._.conditions.find(function(it){
|
|
537
|
+
return it.id === cond.precond;
|
|
538
|
+
});
|
|
539
|
+
if (parent) {
|
|
540
|
+
pre = evalWithDeps(parent);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
return pre.then(function(){
|
|
544
|
+
if (cond.precond != null && !results[cond.precond]) {
|
|
545
|
+
return results[cond.id] = false;
|
|
546
|
+
}
|
|
547
|
+
return this$.eval(cond.when).then(function(active){
|
|
548
|
+
results[cond.id] = active;
|
|
549
|
+
if (cond.effect) {
|
|
550
|
+
this$.apply(cond.effect, active);
|
|
551
|
+
}
|
|
552
|
+
return active;
|
|
553
|
+
});
|
|
554
|
+
});
|
|
555
|
+
};
|
|
556
|
+
return Promise.all(this._.conditions.map(function(c){
|
|
557
|
+
return evalWithDeps(c);
|
|
558
|
+
}));
|
|
559
|
+
}, ref$);
|
|
246
560
|
form.manager = function(o){
|
|
247
561
|
var this$ = this;
|
|
248
562
|
o == null && (o = {});
|
|
@@ -449,6 +763,55 @@
|
|
|
449
763
|
: ret.done / (ret.total || 1);
|
|
450
764
|
return ret;
|
|
451
765
|
},
|
|
766
|
+
invalidWidgets: function(){
|
|
767
|
+
var ret, list, k, s, this$ = this;
|
|
768
|
+
ret = [];
|
|
769
|
+
list = (function(){
|
|
770
|
+
var ref$, results$ = [];
|
|
771
|
+
for (k in ref$ = this._ws.s) {
|
|
772
|
+
s = ref$[k];
|
|
773
|
+
results$.push({
|
|
774
|
+
k: k,
|
|
775
|
+
s: s
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
return results$;
|
|
779
|
+
}.call(this)).filter(function(it){
|
|
780
|
+
return this$._ws.w[it.k] && this$._ws.w[it.k]._meta && !this$._ws.w[it.k]._meta.disabled;
|
|
781
|
+
});
|
|
782
|
+
list.forEach(function(o){
|
|
783
|
+
var w, ms, e;
|
|
784
|
+
w = this$._ws.w[o.k];
|
|
785
|
+
if ((ms = w.manager()).length) {
|
|
786
|
+
ms.filter(function(it){
|
|
787
|
+
return !it.disabled();
|
|
788
|
+
}).forEach(function(m){
|
|
789
|
+
return ret = ret.concat(m.invalidWidgets());
|
|
790
|
+
});
|
|
791
|
+
e = w.errors();
|
|
792
|
+
if (o.s != null && o.s === 2 && !(e.length === 1 && e[0] === 'nested')) {
|
|
793
|
+
ret.push({
|
|
794
|
+
widget: w,
|
|
795
|
+
path: o.k,
|
|
796
|
+
status: 2
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
return;
|
|
800
|
+
}
|
|
801
|
+
e = w.errors();
|
|
802
|
+
if (e.length === 1 && e[0] === 'nested') {
|
|
803
|
+
return;
|
|
804
|
+
}
|
|
805
|
+
if (o.s != null && o.s === 2) {
|
|
806
|
+
return ret.push({
|
|
807
|
+
widget: w,
|
|
808
|
+
path: o.k,
|
|
809
|
+
status: 2
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
return ret;
|
|
814
|
+
},
|
|
452
815
|
_restatus: function(){
|
|
453
816
|
var os, ret, k, v, this$ = this;
|
|
454
817
|
os = this._status;
|
|
@@ -696,6 +1059,8 @@
|
|
|
696
1059
|
if (ms.length) {
|
|
697
1060
|
child = {};
|
|
698
1061
|
ms.map(fn$);
|
|
1062
|
+
} else {
|
|
1063
|
+
child = null;
|
|
699
1064
|
}
|
|
700
1065
|
opt = {
|
|
701
1066
|
idx: 0
|
|
@@ -716,6 +1081,44 @@
|
|
|
716
1081
|
_(this, obj = {});
|
|
717
1082
|
return obj;
|
|
718
1083
|
},
|
|
1084
|
+
'export': function(){
|
|
1085
|
+
var nodeIdx, cols, k, ref$, v, opt, domIdx;
|
|
1086
|
+
nodeIdx = function(r, n, opt){
|
|
1087
|
+
var i$, to$, i, v;
|
|
1088
|
+
opt.idx++;
|
|
1089
|
+
if (r === n) {
|
|
1090
|
+
return true;
|
|
1091
|
+
}
|
|
1092
|
+
if (!(r && r.childNodes)) {
|
|
1093
|
+
return;
|
|
1094
|
+
}
|
|
1095
|
+
for (i$ = 0, to$ = r.childNodes.length; i$ < to$; ++i$) {
|
|
1096
|
+
i = i$;
|
|
1097
|
+
v = nodeIdx(r.childNodes[i], n, opt);
|
|
1098
|
+
if (v) {
|
|
1099
|
+
return true;
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
};
|
|
1103
|
+
cols = [];
|
|
1104
|
+
for (k in ref$ = this._ws.w) {
|
|
1105
|
+
v = ref$[k];
|
|
1106
|
+
opt = {
|
|
1107
|
+
idx: 0
|
|
1108
|
+
};
|
|
1109
|
+
nodeIdx(document.body, v._root, opt);
|
|
1110
|
+
domIdx = opt.idx;
|
|
1111
|
+
cols = cols.concat(v['export']().map(fn$));
|
|
1112
|
+
}
|
|
1113
|
+
return cols.sort(function(a, b){
|
|
1114
|
+
return form.utils.lexCompare(a.sortKey, b.sortKey);
|
|
1115
|
+
});
|
|
1116
|
+
function fn$(col){
|
|
1117
|
+
col.sortKey = [domIdx].concat(col.sortKey);
|
|
1118
|
+
col.uid = col.uid ? k + "|" + col.uid : k;
|
|
1119
|
+
return col;
|
|
1120
|
+
}
|
|
1121
|
+
},
|
|
719
1122
|
manager: function(opt){
|
|
720
1123
|
var ret, k, ref$, s, w, mgrs;
|
|
721
1124
|
ret = [];
|
|
@@ -738,6 +1141,43 @@
|
|
|
738
1141
|
});
|
|
739
1142
|
}
|
|
740
1143
|
return ret;
|
|
1144
|
+
},
|
|
1145
|
+
resolve: function(path){
|
|
1146
|
+
var head, tail, w;
|
|
1147
|
+
if (!path || !path.length) {
|
|
1148
|
+
return [];
|
|
1149
|
+
}
|
|
1150
|
+
head = path[0], tail = slice$.call(path, 1);
|
|
1151
|
+
w = this._ws.w[head];
|
|
1152
|
+
if (!w) {
|
|
1153
|
+
return [];
|
|
1154
|
+
}
|
|
1155
|
+
if (!tail.length) {
|
|
1156
|
+
return [w];
|
|
1157
|
+
}
|
|
1158
|
+
return w.resolve(tail);
|
|
1159
|
+
},
|
|
1160
|
+
paths: function(path){
|
|
1161
|
+
var k, v, head, tail, w;
|
|
1162
|
+
if (!path || !path.length) {
|
|
1163
|
+
return (function(){
|
|
1164
|
+
var ref$, results$ = [];
|
|
1165
|
+
for (k in ref$ = this._ws.w) {
|
|
1166
|
+
v = ref$[k];
|
|
1167
|
+
results$.push({
|
|
1168
|
+
id: k,
|
|
1169
|
+
name: v._meta.title || k
|
|
1170
|
+
});
|
|
1171
|
+
}
|
|
1172
|
+
return results$;
|
|
1173
|
+
}.call(this));
|
|
1174
|
+
}
|
|
1175
|
+
head = path[0], tail = slice$.call(path, 1);
|
|
1176
|
+
w = this._ws.w[head];
|
|
1177
|
+
if (!w) {
|
|
1178
|
+
return [];
|
|
1179
|
+
}
|
|
1180
|
+
return w.paths(tail);
|
|
741
1181
|
}
|
|
742
1182
|
});
|
|
743
1183
|
form.op = function(opt){
|
|
@@ -1001,7 +1441,8 @@
|
|
|
1001
1441
|
i18n: {
|
|
1002
1442
|
"zh-TW": {
|
|
1003
1443
|
"file": "檔案",
|
|
1004
|
-
"size
|
|
1444
|
+
"max-size": "檔案大小上限(位元數)",
|
|
1445
|
+
"min-size": "檔案大小下限(位元數)",
|
|
1005
1446
|
"count-limit": "檔案數量上限",
|
|
1006
1447
|
"extension": "副檔名限制",
|
|
1007
1448
|
"count-max": "檔案數量上限",
|
|
@@ -1010,7 +1451,8 @@
|
|
|
1010
1451
|
},
|
|
1011
1452
|
"en": {
|
|
1012
1453
|
"file": "File",
|
|
1013
|
-
"size
|
|
1454
|
+
"max-size": "Max File Size (bytes)",
|
|
1455
|
+
"min-size": "Min File Size (bytes)",
|
|
1014
1456
|
"count-limit": "Max File Count",
|
|
1015
1457
|
"extension": "File Extension",
|
|
1016
1458
|
"count-max": "Max File Count",
|
|
@@ -1030,14 +1472,17 @@
|
|
|
1030
1472
|
func: function(v, c){
|
|
1031
1473
|
c == null && (c = {});
|
|
1032
1474
|
return !v.filter(function(it){
|
|
1033
|
-
return it.size > c.val;
|
|
1475
|
+
return it.size > c.val && (!it.min || it.min < c.val);
|
|
1034
1476
|
}).length;
|
|
1035
1477
|
},
|
|
1036
1478
|
config: {
|
|
1037
|
-
|
|
1479
|
+
size: {
|
|
1038
1480
|
type: 'number',
|
|
1039
|
-
name: 'size
|
|
1040
|
-
|
|
1481
|
+
name: 'max-size'
|
|
1482
|
+
},
|
|
1483
|
+
min: {
|
|
1484
|
+
type: 'number',
|
|
1485
|
+
name: 'min-size'
|
|
1041
1486
|
}
|
|
1042
1487
|
}
|
|
1043
1488
|
},
|
|
@@ -1128,7 +1573,7 @@
|
|
|
1128
1573
|
max: {
|
|
1129
1574
|
type: 'number',
|
|
1130
1575
|
name: 'max-size',
|
|
1131
|
-
hint: "
|
|
1576
|
+
hint: "maximal size"
|
|
1132
1577
|
}
|
|
1133
1578
|
}
|
|
1134
1579
|
};
|
|
@@ -1501,7 +1946,7 @@
|
|
|
1501
1946
|
other: {}
|
|
1502
1947
|
};
|
|
1503
1948
|
}
|
|
1504
|
-
list = (v.list || []).filter(function(it){
|
|
1949
|
+
list = (v.list || v || []).filter(function(it){
|
|
1505
1950
|
return it;
|
|
1506
1951
|
}).map(toKey);
|
|
1507
1952
|
return {
|
|
@@ -1877,7 +2322,7 @@
|
|
|
1877
2322
|
return this._errors;
|
|
1878
2323
|
},
|
|
1879
2324
|
value: function(v, opt){
|
|
1880
|
-
var _v, this$ = this;
|
|
2325
|
+
var _v, _vs, p, this$ = this;
|
|
1881
2326
|
opt == null && (opt = {});
|
|
1882
2327
|
if (arguments.length === 0) {
|
|
1883
2328
|
return this._value != null
|
|
@@ -1887,16 +2332,21 @@
|
|
|
1887
2332
|
if (this.isEqual(v, this._value)) {
|
|
1888
2333
|
return Promise.resolve();
|
|
1889
2334
|
}
|
|
1890
|
-
_v = v != null ? JSON.parse(JSON.stringify(v)) : v;
|
|
2335
|
+
_v = v != null ? JSON.parse(_vs = JSON.stringify(v)) : v;
|
|
1891
2336
|
this._value = _v;
|
|
1892
2337
|
this._empty = this.isEmpty(_v);
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
2338
|
+
p = this.mod && this.mod.value
|
|
2339
|
+
? Promise.resolve(this.mod.value.call(this, JSON.parse(_vs)))
|
|
2340
|
+
: Promise.resolve();
|
|
2341
|
+
return p.then(function(){
|
|
2342
|
+
return this$.validate({
|
|
2343
|
+
init: opt.init
|
|
2344
|
+
}).then(function(){
|
|
2345
|
+
if (opt.fromSource) {
|
|
2346
|
+
return;
|
|
2347
|
+
}
|
|
2348
|
+
return this$.fire('change', this$._value != null ? JSON.parse(JSON.stringify(this$._value)) : undefined);
|
|
2349
|
+
});
|
|
1900
2350
|
});
|
|
1901
2351
|
},
|
|
1902
2352
|
disabled: function(){
|
|
@@ -1967,17 +2417,28 @@
|
|
|
1967
2417
|
return null;
|
|
1968
2418
|
},
|
|
1969
2419
|
validate: function(opt){
|
|
1970
|
-
var
|
|
2420
|
+
var lc, getVal, this$ = this;
|
|
1971
2421
|
opt == null && (opt = {});
|
|
1972
|
-
|
|
2422
|
+
lc = {
|
|
2423
|
+
v: null,
|
|
2424
|
+
_value: this._value
|
|
2425
|
+
};
|
|
2426
|
+
getVal = function(){
|
|
2427
|
+
if (lc.v) {
|
|
2428
|
+
return lc.v;
|
|
2429
|
+
} else {
|
|
2430
|
+
return lc.v = this$.content();
|
|
2431
|
+
}
|
|
2432
|
+
};
|
|
1973
2433
|
return Promise.resolve().then(function(){
|
|
1974
2434
|
if (this$.mod && this$.mod.validate) {
|
|
1975
2435
|
return this$.mod.validate.call(this$, opt);
|
|
1976
2436
|
}
|
|
1977
2437
|
if (this$._validate) {
|
|
1978
|
-
return this$._validate(
|
|
2438
|
+
return this$._validate(getVal());
|
|
1979
2439
|
}
|
|
1980
2440
|
}).then(function(ret){
|
|
2441
|
+
var ref$;
|
|
1981
2442
|
ret == null && (ret = []);
|
|
1982
2443
|
if (ret.status === 3) {
|
|
1983
2444
|
this$._errors = ret.errors || [];
|
|
@@ -2003,19 +2464,18 @@
|
|
|
2003
2464
|
return this$._errors = [];
|
|
2004
2465
|
}
|
|
2005
2466
|
}
|
|
2006
|
-
return Promise.all(this$._meta
|
|
2467
|
+
return Promise.all((((ref$ = this$._meta) != null ? ref$.term : void 8) || []).filter(function(t){
|
|
2007
2468
|
return t.enabled;
|
|
2008
2469
|
}).map(function(t){
|
|
2009
|
-
return t.validate(
|
|
2470
|
+
return t.validate(getVal()).then(function(v){
|
|
2010
2471
|
return [t, v];
|
|
2011
2472
|
});
|
|
2012
|
-
})).then(function(
|
|
2013
|
-
var
|
|
2014
|
-
|
|
2015
|
-
if (!this$.isEqual(nv, v)) {
|
|
2473
|
+
})).then(function(ret){
|
|
2474
|
+
var ref$, ref1$;
|
|
2475
|
+
if (((ref$ = this$._meta) != null && ((ref1$ = ref$.term) != null && ref1$.length)) && lc._value !== this$._value) {
|
|
2016
2476
|
return;
|
|
2017
2477
|
}
|
|
2018
|
-
this$._errors =
|
|
2478
|
+
this$._errors = ret.filter(function(it){
|
|
2019
2479
|
return !it[1];
|
|
2020
2480
|
}).map(function(it){
|
|
2021
2481
|
return it[0].msg || 'error';
|
|
@@ -2076,6 +2536,31 @@
|
|
|
2076
2536
|
if (this.mod && this.mod.ctrl) {
|
|
2077
2537
|
return this.mod.ctrl.apply(this, args);
|
|
2078
2538
|
}
|
|
2539
|
+
},
|
|
2540
|
+
resolve: function(path){
|
|
2541
|
+
if (this.mod && this.mod.resolve) {
|
|
2542
|
+
return this.mod.resolve.apply(this, [path]);
|
|
2543
|
+
} else {
|
|
2544
|
+
return [];
|
|
2545
|
+
}
|
|
2546
|
+
},
|
|
2547
|
+
paths: function(path){
|
|
2548
|
+
if (this.mod && this.mod.paths) {
|
|
2549
|
+
return this.mod.paths.apply(this, [path]);
|
|
2550
|
+
} else {
|
|
2551
|
+
return [];
|
|
2552
|
+
}
|
|
2553
|
+
},
|
|
2554
|
+
'export': function(){
|
|
2555
|
+
if (this.mod && this.mod['export']) {
|
|
2556
|
+
return this.mod['export'].apply(this);
|
|
2557
|
+
}
|
|
2558
|
+
return [{
|
|
2559
|
+
uid: "",
|
|
2560
|
+
header: this._meta.title || "",
|
|
2561
|
+
sortKey: [],
|
|
2562
|
+
value: form.value.toString(this.value())
|
|
2563
|
+
}];
|
|
2079
2564
|
}
|
|
2080
2565
|
});
|
|
2081
2566
|
if (typeof module != 'undefined' && module !== null) {
|
package/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){var form,ref$,wordLen,countOps;form={};form.condctrl=function(opt){var ref$,this$=this;opt==null&&(opt={});ref$=this._||(this._={});ref$.hash={};ref$.enabled={};ref$.manager=opt.manager;ref$.list=opt.conditions||[];ref$.autorun=false;ref$.applyBaseRule=opt.baseRule||function(){};this._.manager.on("change",function(){if(this$._.autorun){return this$.run()}});return this};form.condctrl.prototype=(ref$=Object.create(Object.prototype),ref$.isEnabled=function(it){return this._.enabled[it]},ref$.get=function(it){return this._.hash[it]},ref$.reset=function(opt){var fields,ref$,i$,to$,i,cond,results$=[];opt==null&&(opt={});this._.autorun=opt.autorun!=null&&!opt.autorun?false:true;this._.list=opt.conditions||this._.list||[];fields=this._.manager.widgets();ref$=this._||(this._={});ref$.hash={};ref$.enabled={};for(i$=0,to$=this._.list.length;i$<to$;++i$){i=i$;cond=this._.list[i];cond.id=cond.id||"_"+(i+1);this._.hash[cond.id]=cond;if(!Array.isArray(cond.config)){cond.config=[cond.config]}cond.config=cond.config.map(fn$);results$.push(cond.config.forEach(fn1$))}return results$;function fn$(it){var ref$;return ref$=import$({},JSON.parse(JSON.stringify(it))),ref$.src=cond.src,ref$.func=cond.func,ref$}function fn1$(cfg){var k,v;if(!cfg.path&&cfg.targets){cfg.path=cfg.targets}if(!cfg.value&&cfg.values){cfg.value=cfg.values}if(!cfg.tag&&cfg.tags){cfg.tag=cfg.tags}return cfg.path=Array.from(new Set((cfg.prefix?cfg.prefix:[]).concat(cfg.path||[],function(){var ref$,results$=[];for(k in ref$=fields){v=ref$[k];results$.push({k:k,v:v})}return results$}().filter(function(arg$){var k,v,ref$;k=arg$.k,v=arg$.v;return(!cfg.prefix?0:cfg.prefix.filter(function(p){return k.startsWith(p)}).length)+((v!=null?(ref$=v.meta)!=null?ref$.tag:void 8:void 8)||[]).filter(function(t){return in$(t,cfg.tag||[])}).length>0}).map(function(it){return it.k}))))}},ref$.subcond=function(arg$){var path,active,config,itf,ms;path=arg$.path,active=arg$.active,config=arg$.config;if(!((itf=this._.manager.widget(path))&&!itf.disabled()&&(ms=itf.manager({depth:1})||[]).length)){return}return ms.forEach(function(m){var cond;cond=m.condition();cond.apply(import$({active:active},config));return cond.run()})},ref$.apply=function(opt){var path,active,enabled,isRequired,readonly,widget,curMeta,newMeta;opt==null&&(opt={});path=opt.path,active=opt.active,enabled=opt.enabled,isRequired=opt.isRequired,readonly=opt.readonly;if(Array.isArray(path)){if(path[1]){return this.subcond({path:path[0],active:active,config:{path:path.slice(1),enabled:enabled,isRequired:isRequired,readonly:readonly}})}path=path[0]}if(enabled!=null){this._.enabled[path]=!(!enabled!==!active&&(enabled||active))}if(widget=this._.manager.widget(path)){curMeta=widget.serialize();newMeta=JSON.parse(JSON.stringify(curMeta));if(enabled!=null){newMeta.disabled=!!(!enabled!==!active&&(enabled||active))}if(readonly!=null){newMeta.readonly=!(!readonly!==!active&&(readonly||active))}if(isRequired!=null){newMeta.isRequired=!(!isRequired!==!active&&(isRequired||active))}this._.applyBaseRule({path:path,widget:widget,meta:newMeta,opt:opt});if(!!curMeta.disabled===!!newMeta.disabled&&!!curMeta.isRequired===!!newMeta.isRequired&&!!curMeta.readonly===!!newMeta.readonly){return}return widget.deserialize(newMeta,{init:true})}},ref$._run=function(cfg,precond){var src,values,paths,isRequired,enabled,readonly,func,result,i$,len$,path,active,ref$,itf,content;cfg==null&&(cfg={});src=cfg.src,values=cfg.value,paths=cfg.path,isRequired=cfg.isRequired,enabled=cfg.enabled,readonly=cfg.readonly,func=cfg.func;if(func){result=true;for(i$=0,len$=paths.length;i$<len$;++i$){path=paths[i$];active=!!func.apply(this,[(ref$=import$({},cfg),ref$.path=path,ref$)])&&!(precond!=null&&!precond);result=result&&active;if(Array.isArray(path)&&path[1]){this.subcond({path:path[0],config:(ref$=import$({},cfg),ref$.path=path.slice(1),ref$),active:active});continue}this.apply({path:path,enabled:enabled,active:active,isRequired:isRequired,readonly:readonly})}}else{values=Array.isArray(values)?values:[values];if(!(itf=this._.manager.widget(src))){return console.error("[@plotdb/form] condctrl: field '"+src+"' not found")}content=itf.content();content=Array.isArray(content)?content:[content];active=!!content.filter(function(it){return in$(it,values)}).length;if(precond!=null&&!precond){active=false}for(i$=0,len$=paths.length;i$<len$;++i$){path=paths[i$];if(Array.isArray(path)&&path[1]){this.subcond({path:path[0],config:(ref$=import$({},cfg),ref$.path=path.slice(1),ref$),active:active});continue}this.apply({path:path,enabled:enabled,active:active,isRequired:isRequired,readonly:readonly})}result=active}return result},ref$.run=function(){var result,_,this$=this;result={};_=function(list,ref){var i$,to$,i,lresult$,cond,j$,ref$,len$,cfg,r,results$=[];ref==null&&(ref=[]);for(i$=0,to$=list.length;i$<to$;++i$){i=i$;lresult$=[];cond=list[i];if(result[cond.id]!=null){continue}if(cond.precond&&this$._.hash[cond.precond]){if(in$(cond.id,ref)){console.error("[@plotdb/form] condctrl: circular ref id "+cond.id)}else{_([this$._.hash[cond.precond]],ref.concat([cond.id]))}}for(j$=0,len$=(ref$=cond.config).length;j$<len$;++j$){cfg=ref$[j$];r=this$._run(cfg,result[cond.precond]);lresult$.push(result[cond.id]=result[cond.id]!=null?result[cond.id]&&r:r)}results$.push(lresult$)}return results$};return _(this._.list||[])},ref$);form.manager=function(o){var this$=this;o==null&&(o={});this._ws={w:{},p:new WeakMap,s:{},l:{}};this._disabled=false;this._evthdr={};this._status=1;this._mode="edit";this._mod={};this._cond=new form.condctrl({manager:this});this._checkDebounced=debounce(10,function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;return this$._check.apply(this$,args)});this._restatusDebounced=debounce(10,function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;return this$._restatus.apply(this$,args)});return this};form.manager.prototype=import$(Object.create(Object.prototype),{on:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var ref$;return((ref$=this$._evthdr)[n]||(ref$[n]=[])).push(cb)})},condition:function(){return this._cond},disabled:function(){return!!this._disabled},disable:function(it){return this._disabled=it!=null?!!it:true},fire:function(n){var v,res$,i$,to$,ref$,len$,cb,results$=[];res$=[];for(i$=1,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}v=res$;for(i$=0,len$=(ref$=this._evthdr[n]||[]).length;i$<len$;++i$){cb=ref$[i$];results$.push(cb.apply(this,v))}return results$},add:function(o){var ref$,w,p,this$=this;if(Array.isArray(o)){return o.map(function(it){return this$.add(it)})}ref$=[o.widget,o.path],w=ref$[0],p=ref$[1];if(this._ws.p.get(w)){return}this._ws.w[p]=w;this._ws.p.set(w,p);this._ws.l[p]={};this._ws.s[p]=w.status();w.mode(this._mode);w.on("meta",this._ws.l[p].m=function(v){return this$.fire("meta",{widget:w,path:p,meta:v})});w.on("change",this._ws.l[p].c=function(v){return this$.fire("change",{widget:w,path:p,value:v})});return w.on("status",this._ws.l[p].s=function(s){this$._ws.s[p]=s;if(this$._ws.w[p]._meta.disabled){return}this$.fire("status",{widget:w,path:p,status:s});return this$._restatusDebounced()})},remove:function(o){var ws,ref$,key$,ref1$,this$=this;if(Array.isArray(o)){return o.map(function(it){return this$.remove(it)})}if(!(ws=this._ws.w[o.path])){return}ws.off("meta",this._ws.l[o.path].m);ws.off("change",this._ws.l[o.path].c);ws.off("status",this._ws.l[o.path].s);this._ws.p["delete"](ws);delete this._ws.w[o.path];return ref1$=(ref$=this._ws.l)[key$=o.path],delete ref$[key$],ref1$},widgets:function(){return import$({},this._ws.w||{})},widget:function(p){return this._ws.w[p]},content:function(p){var that;if(that=this._ws.w[p]){return that.content()}else{return null}},status:function(){return this._status},progress:function(arg$){var _recurred,ref$,ret,list,k,s,this$=this;_recurred=(ref$=(arg$!=null?arg$:{})._recurred)!=null?ref$:false;ret={total:0,invalid:0,done:0};list=function(){var ref$,results$=[];for(k in ref$=this._ws.s){s=ref$[k];results$.push({k:k,s:s})}return results$}.call(this).filter(function(it){return this$._ws.w[it.k]&&this$._ws.w[it.k]._meta&&!this$._ws.w[it.k]._meta.disabled});list.forEach(function(o){var w,ms,e;w=this$._ws.w[o.k];if(!_recurred&&(ms=w.manager()).length){ms=ms.filter(function(it){return!it.disabled()}).filter(function(m){var p;p=m.progress({_recurred:true});ret.total+=p.total;ret.invalid+=p.invalid;ret.done+=p.done;return!!p.invalid});if(ms.length){return}}ret.total+=1;e=w.errors();if(e.length===1&&e[0]==="nested"){return}if(o.s!=null&&o.s===2){ret.invalid+=1}if(o.s!=null&&o.s===0){return ret.done+=1}});ret.percent=!ret.total?1:ret.done/(ret.total||1);return ret},_restatus:function(){var os,ret,k,v,this$=this;os=this._status;delete this._status;ret=function(){var ref$,results$=[];for(k in ref$=this._ws.w){v=ref$[k];results$.push({k:k,v:v})}return results$}.call(this).filter(function(arg$){var k,v;k=arg$.k,v=arg$.v;return!v._meta.disabled}).map(function(arg$){var k,v,s;k=arg$.k,v=arg$.v;s=this$._ws.s[k];if(s==null){return true}if(s===0){return false}if(s===1&&!v._meta.isRequired){return false}return true}).filter(function(it){return it}).length;this._status=ret?1:0;if(os!==this._status){return this.fire("readystatechange",this._status===0)}},check:function(o,opt){var this$=this;if(typeof opt!=="object"){opt={now:opt}}return Promise.resolve().then(function(){var p,w;if(!o){return this$.check(function(){var ref$,results$=[];for(p in ref$=this._ws.w){w=ref$[p];results$.push({widget:w,path:p})}return results$}.call(this$).filter(function(arg$){var widget;widget=arg$.widget;if(widget._meta.disabled){return false}return!opt.skipEmpty?true:!widget.isEmpty()||widget.status()===2}),opt)}this$.checkList=(this$.checkList||(this$.checkList=[])).concat(Array.isArray(o)?o:[o]);return opt.now?this$._check(null,opt):this$._checkDebounced(null,opt)}).then(function(it){this$._restatus();return it})},_check:function(o,opt){var list,this$=this;opt==null&&(opt={});if(!o){list=this.checkList||[];this.checkList=[];return this._check(list,opt)}if(Array.isArray(o)){return Promise.all(o.map(function(it){return this$._check(it,opt)})).then(function(it){return it.filter(function(it){return it})})}return new Promise(function(res,rej){var ref$,w,p,_now;ref$=[o.widget,o.path,o.now],w=ref$[0],p=ref$[1],_now=ref$[2];if(!(w&&p)){return res()}if(!w&&!(w=this$._ws.w[p])){return res()}if(!p){p=this$._ws.p[w]}return w.validate({force:opt.force,init:opt.init,skipEmpty:opt.skipEmpty}).then(function(){var os;os=this$._ws.s[p];this$._ws.s[p]=w.status();if(os!==this$._ws.s[p]){this$.fire("status",{path:p,widget:w,status:this$._ws.s[p]})}return this$._ws.s[p]}).then(function(){if(this$._ws.s[p]===2){return res({widget:w,path:p,status:this$._ws.s[p]})}else{return res()}})})},formData:function(){var fd,p,ref$,w,val,i$,to$,i;fd=new FormData;for(p in ref$=this._ws.w){w=ref$[p];if(w._meta.disabled){continue}val=w.value();if(Array.isArray(v)){for(i$=0,to$=v.length;i$<to$;++i$){i=i$;fd.append(p+"[]",v[i])}}else{fd.append(p,val)}}return fd},value:function(v,opt){var ret,p,ref$,w,ps,res$,e;opt==null&&(opt={});if(!arguments.length){ret={};for(p in ref$=this._ws.w){w=ref$[p];if(!(opt.partial&&w._meta.disabled)){ret[p]=w.value()}}return ret}v=v!=null?JSON.parse(JSON.stringify(v)):{};try{res$=[];for(p in ref$=this._ws.w){w=ref$[p];if(!v.hasOwnProperty(p)&&opt.partial){continue}res$.push(w.value(v[p],opt))}ps=res$;return Promise.all(ps)}catch(e$){e=e$;return Promise.reject(e)}},mode:function(m){var this$=this;if(!(m!=null)){return this._mode}return Promise.resolve().then(function(){var ref$,p,w;if(!(m==="edit"||m==="view"||m==="config")){return Promise.reject((ref$=new Error,ref$.name="lderror",ref$.id=1015,ref$))}if(this$._mode===m){return}this$._mode=m;this$.fire("mode",m);return Promise.all(function(){var ref$,results$=[];for(p in ref$=this._ws.w){w=ref$[p];results$.push(w)}return results$}.call(this$).map(function(w){return w.mode(m)}))})},order:function(){var nodeIdx,_,obj;nodeIdx=function(r,n,opt){var i$,to$,i,v;opt.idx++;if(r===n){return true}if(!(r&&r.childNodes)){return}for(i$=0,to$=r.childNodes.length;i$<to$;++i$){i=i$;v=nodeIdx(r.childNodes[i],n,opt);if(v){return true}}};_=function(m,obj){var ws,k,v,ms,child,opt,results$=[];ws=m._ws.w;for(k in ws){v=ws[k];ms=v.manager()||[];if(ms.length){child={};ms.map(fn$)}opt={idx:0};nodeIdx(document.body,v._root,opt);results$.push(obj[k]={title:v._meta.title,idx:opt.idx,child:child,meta:v.serialize()})}return results$;function fn$(m){return _(m,child)}};_(this,obj={});return obj},manager:function(opt){var ret,k,ref$,s,w,mgrs;ret=[];for(k in ref$=this._ws.s){s=ref$[k];if(!(this._ws.w[it.k]&&this._ws.w[it.k]._meta&&!this._ws.w[it.k]._meta.disabled)){continue}if(!(w=this.widget(k))){continue}if(!(mgrs=w.manager(opt)||[]).length){continue}ret=ret.concat(mgrs)}if(this.disabled()){ret.map(function(it){return it.disable()})}return ret}});form.op=function(opt){opt==null&&(opt={});this.id=opt.id;this.name=opt.name;this.config=opt.config;this.func=opt.func;this.opset=opt.opset;return this};form.op.prototype=import$(Object.create(Object.prototype),{getConfig:function(valspec){if(typeof this.config==="function"){return this.config(valspec)}else{return this.config}},validate:function(val,cfg){var ret;cfg==null&&(cfg={});if(this.opset.convert){val=this.opset.convert(val)}if((ret=this.func(val,cfg))instanceof Promise){return ret}else{return Promise.resolve(!!ret)}},configDefault:function(valspec){var cfg,k,ref$,v;cfg={};for(k in ref$=this.getConfig(valspec)){v=ref$[k];cfg[k]=v["default"]}return cfg}});form.opset=function(opt){var ops,k,v,this$=this;opt==null&&(opt={});this.name=opt.name;this.id=opt.id;this.i18n=opt.i18n;this.convert=opt.convert;this.valdef=opt.valdef||null;this.ops={};ops=Array.isArray(opt.ops)?opt.ops.map(function(it){return{v:it,k:it.id}}):function(){var ref$,results$=[];for(k in ref$=opt.ops){v=ref$[k];results$.push({k:k,v:v})}return results$}();ops.map(function(arg$){var k,v,ref$,ref1$,results$=[];k=arg$.k,v=arg$.v;this$.ops[k]=v instanceof form.op?v:k?new form.op((ref$=typeof v==="function"?{func:v}:v,ref$.id=k,ref$.opset=this$,ref$)):function(){throw new Error("[@plotdb/form/opset] invalid op when initializing opset.")}();for(k in ref$=opt.ops){v=ref$[k];results$.push(this$.ops[k]=new form.op((ref1$=typeof v==="function"?{func:v}:v,ref1$.name=k,ref1$.id=k,ref1$.opset=this$,ref1$)))}return results$});this.defaultOp=this.ops[opt.defaultOp]?opt.defaultOp:function(){var ref$,results$=[];for(k in ref$=this.ops){v=ref$[k];results$.push(k)}return results$}.call(this)[0];return this};form.opset.prototype=import$(Object.create(Object.prototype),{getOp:function(id){return this.ops[id||this.defaultOp]},getOps:function(){var k,ref$,v,results$=[];for(k in ref$=this.ops){v=ref$[k];results$.push(v)}return results$}});form.opset.register=function(it){return(this._list||(this._list=[])).push(it instanceof form.opset?it:new form.opset(it))};form.opset.get=function(id){return(this._list||(this._list=[])).filter(function(it){return(it.id||it.name)===id})[0]};form.opset.list=function(opt){var list,vd;opt==null&&(opt={});list=(this._list||[]).map(function(it){return it});if(!opt.valdef){return list}vd=Array.isArray(opt.valdef)?opt.valdef:[opt.valdef];return list.filter(function(os){if(!os.valdef){return!vd.length||vd.some(function(it){return!it||it==="@plotdb/form:valdef/generic"})}return vd.some(function(v){return in$(v,os.valdef)})})};wordLen=function(v,method){v==null&&(v="");return method==="simple-word"?v.split(/\s|[,.;:!?,。;:︰!?、. "]/).filter(function(it){return it}).map(function(it){return it.split(/[\u1000-\uffff]/).map(function(it){if(it.length){return 2}else{return 1}}).reduce(function(a,b){return a+b},0)-1}).reduce(function(a,b){return a+b},0):v.length};countOps={"count-max":{func:function(v,c){c==null&&(c={});return v.length<=c.val},config:{val:{type:"number",name:"count-max",hint:"maximal amount"}}},"count-min":{func:function(v,c){c==null&&(c={});return v.length>=c.val},config:{val:{type:"number",name:"count-min",hint:"minimal amount"}}},"count-range":{func:function(v,c){c==null&&(c={});return v.length>=c.min&&v.length<=c.max},config:{min:{type:"number",name:"count-min",hint:"minimal amount"},max:{type:"number",name:"count-max",hint:"maximal amount"}}},count:{func:function(v,c){c==null&&(c={});return v.length===c.val},config:{val:{type:"number",name:"count",hint:"number of entries"}}}};form.opset["default"]=[{id:"list",i18n:{"zh-TW":{list:"列表","count-max":"數量上限","count-min":"數量下限","count-range":"數量範圍",count:"數量要求"},en:{list:"List","count-max":"Maximal Count","count-min":"Minimal Count","count-range":"Count Range",count:"Required Count"}},convert:function(v){var ret;ret=Array.isArray(v)?v:v&&Array.isArray(v.list)?v.list.concat(v.other&&v.other.enabled?[v.other.text]:[]):[v];return ret.filter(function(it){return it})},ops:import$({},countOps)},{id:"file",i18n:{"zh-TW":{file:"檔案","size-limit":"檔案大小上限","count-limit":"檔案數量上限",extension:"副檔名限制","count-max":"檔案數量上限","count-min":"檔案數量下限","count-range":"檔案數量範圍"},en:{file:"File","size-limit":"Maximal File Size","count-limit":"Max File Count",extension:"File Extension","count-max":"Max File Count","count-min":"Min File Count","count-range":"File Count Range"}},convert:function(v){return(Array.isArray(v)?v:[v]).filter(function(it){return it})},ops:import$({"size-limit":{func:function(v,c){c==null&&(c={});return!v.filter(function(it){return it.size>c.val}).length},config:{val:{type:"number",name:"size-limit",hint:"maximal size"}}},extension:{func:function(v,c){var exts;c==null&&(c={});exts=(c.str.split(",")||[]).map(function(it){return(it||"").trim().toLowerCase()}).filter(function(it){return it});return!v.filter(function(it){var ext,ref$;return!in$(((ext=(ref$=(it.filename||"").split("."))[ref$.length-1])||"").trim().toLowerCase(),exts)}).length},config:{str:{type:"text",name:"extension",hint:"extension, comma separated, without dot"}}},"count-limit":{func:function(v,c){c==null&&(c={});return v.length<c.val},config:{val:{type:"number",name:"count-limit",hint:"maximal file amount"}}}},countOps)},{id:"image",i18n:{"zh-TW":{image:"圖像","long-side":"長邊尺寸限制","short-side":"短邊尺寸限制",width:"寬度限制",height:"高度限制","pixel-count":"像素量限制","min-size":"最小尺寸","max-size":"最大尺寸"},en:{image:"Image","long-side":"Long Side","short-side":"Short Side",width:"Width",height:"Height","pixel-count":"Max Pixel Count","min-size":"Min Size","max-size":"Max Size"}},convert:function(v){return(Array.isArray(v)?v:[v]).filter(function(it){return it})},ops:Object.fromEntries([["long-side","long"],["short-side","short"],["width","width"],["height","height"],["pixel-count","pixels"]].map(function(n){return[n[0],function(k){return{func:function(v,c){v==null&&(v=[]);c==null&&(c={});return!v.filter(function(it){return!((c.min==null||it[k]>=(c.min||0))&&(c.max==null||it[k]<=c.max))}).length},config:{min:{type:"number",name:"min-size",hint:"minimal size"},max:{type:"number",name:"max-size",hint:"minimal size"}}}}(n[1])]}))},{id:"string",i18n:{"zh-TW":{string:"文字",include:"包含",exclude:"排除",email:"電子郵件",url:"網址",regex:"正規表達式"},en:{string:"Text",include:"Include",exclude:"Exclude",email:"Email",url:"URL",regex:"Regular Expression"}},ops:{include:{func:function(v,c){c==null&&(c={});return~(""+(v||"")).indexOf(c.str||"")},config:{str:{type:"text",name:"include"}}},exclude:{func:function(v,c){c==null&&(c={});return!~(""+(v||"")).indexOf(c.str||"")},config:{str:{type:"text",name:"exclude"}}},email:{func:function(v){return/^[^@]+@[^@]+$/.exec(v)},config:{}},url:{func:function(v){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,15}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)$/.exec(v)},config:{}},regex:{func:function(v,c){c==null&&(c={});if(!c.rule){return true}if(typeof c.rule==="object"&&c.rule.exec){return c.rule.exec(v)}return new RegExp(c.rule).exec(v)},config:{rule:{type:"text",name:"regex"}}}}},{id:"length",i18n:{"zh-TW":{length:"字串長度",lte:"≦ 小於或等於",range:"範圍",number:"數字",method:"計算方式",char:"字元","simple-word":"簡易計字/詞","minimal length":"長度下限","maximal length":"長度上限"},en:{length:"String Length",lte:"≦",range:"Range",number:"Number",method:"Method",char:"By Character","simple-word":"Count Word","minimal length":"Min Length","maximal length":"Max Length"}},ops:{range:{func:function(v,c){var len;c==null&&(c={});len=wordLen(v+"",c.method);return len>=+c.min&&len<=+c.max},config:{min:{type:"number",name:"minimal length"},max:{type:"number",name:"maximal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},lte:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)<=+c.val},config:{val:{type:"number",name:"maximal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},gte:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)>=+c.val},config:{val:{type:"number",name:"minimal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},eq:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)===+c.val},config:{val:{type:"number",name:"length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}}}},{id:"number",i18n:{"zh-TW":{number:"數字",lte:"≦ 小於或等於",gte:"≧ 大於或等於",ne:"≠ 不等於",eq:"= 等於",is:"任何數字","ref-val":"參考值"},en:{number:"Number",lte:"≦ Equal/Less Than",gte:"≧ Equal/Greater Than",ne:"≠ Not Equals",eq:"= Equals",is:"Is Number","ref-val":"Reference Value"}},convert:function(v){return+(v+"").replace(/,/g,"")},ops:{lte:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v<=+c.val}},config:{val:{type:"text",name:"ref-val"}}},gte:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v>=+c.val}},config:{val:{type:"text",name:"ref-val"}}},ne:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v!==+c.val}},config:{val:{type:"text",name:"ref-val"}}},eq:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v===+c.val}},config:{val:{type:"text",name:"ref-val"}}},is:{func:function(v){return!isNaN(v)},config:{}}}},{id:"date",i18n:{"zh-TW":{date:"日期","min age":"最小年齡","max age":"最大年齡",age:"年齡"},en:{date:"Date","min age":"Min Age","max age":"Max Age",age:"Age"}},convert:function(v){return new Date(v)},ops:{age:{config:{min:{type:"number",name:"min age"},max:{type:"number",name:"max age"}},func:function(v,c){var dmin,dmax,dnow;c==null&&(c={});dmin=new Date(v.getYear()+1900+(c.min||0),v.getMonth(),v.getDate()).getTime();dmax=new Date(v.getYear()+1900+(c.max||0),v.getMonth(),v.getDate()).getTime();dnow=Date.now();if(c.min!=null&&dmin>dnow){return false}if(c.max!=null&&dmax<dnow){return false}return true}}}},{id:"choice",valdef:["@plotdb/form:valdef/choice"],i18n:{"zh-TW":{choice:"選擇",is:"選了","is-not":"沒選","is-any":"選了其中一個",val:"選項值",vals:"選項值(任一)"},en:{choice:"Choice",is:"Is","is-not":"Is Not","is-any":"Is Any Of",val:"Option value",vals:"Option values (any)"}},convert:function(v){var toKey,list;toKey=function(item){if(typeof item==="string"){return item}else{return item.key||item.value||""}};if(!v){return{list:[],other:{}}}if(typeof v==="string"){return{list:v?[v]:[],other:{}}}list=(v.list||[]).filter(function(it){return it}).map(toKey);return{list:list,other:v.other||{}}},ops:{is:{func:function(v,c){c==null&&(c={});return!!(c.val&&in$(c.val,v.list))},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{val:values.length?{type:"choice",name:"val",values:values}:{type:"text",name:"val"}}}},"is-not":{func:function(v,c){c==null&&(c={});return!(c.val&&in$(c.val,v.list))},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{val:values.length?{type:"choice",name:"val",values:values}:{type:"text",name:"val"}}}},"is-any":{func:function(v,c){var vals;c==null&&(c={});vals=Array.isArray(c.vals)?c.vals:typeof c.vals==="string"?c.vals.split(",").map(function(it){return it.trim()}).filter(function(it){return it}):[];return vals.some(function(it){return in$(it,v.list)})},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{vals:values.length?{type:"choice",name:"vals",values:values}:{type:"text",name:"vals",hint:"comma separated"}}}}}}];form.opset["default"].map(function(it){return form.opset.register(it)});form.term=function(opt){opt==null&&(opt={});import$((this.enabled=true,this.opset=null,this.op=null,this.config={},this),opt);if(!this.id){this.id=Math.random().toString(36).substring(2)}this.setOpset(opt.opset,opt.op,opt.config);return this};form.term.prototype=import$(Object.create(Object.prototype),{toggle:function(it){return this.enabled=it!=null?it:!this.enabled},setOpset:function(opset,op,cfg){if(typeof opset==="string"){if(!(this.opset=form.opset.get(opset))){throw new Error("no such opset '"+opset+"'")}}else if(opset instanceof form.opset){this.opset=opset}else{throw new Error("invalid opset")}return this.setOp(op,cfg)},setOp:function(id,cfg){if(!this.opset){throw new Error("opset not set")}if(!(this.op=this.opset.getOp(id))){throw new Error("no such op '"+id+"'")}return this.setConfig(cfg)},setConfig:function(cfg){if(!this.op){throw new Error("op not set")}return this.config=!cfg?this.op.configDefault():cfg},validate:function(v){if(!this.op){Promis.reject(new Error("op not set"))}return this.op.validate(v,this.config)},serialize:function(){return{id:this.id,enabled:this.enabled,opset:this.opset.id,op:this.op.id,config:this.config,msg:this.msg}},deserialize:function(v){this.toggle(v.enabled);return this.setOpset(v.opset,v.op,v.config)}});form.widget=function(opt){var o,this$=this;opt==null&&(opt={});this._root=typeof opt.root==="string"?document.querySelector(opt.root):opt.root;this.evtHandler={};this.mod=opt.mod||null;this.i18n={};this._custom={};this._status=1;this._meta={config:{},key:Math.random().toString(36).substring(2)};this._meta_dig="";this._value=undefined;this._empty=true;this._mode=opt.mode||"edit";this._validate=opt.validate||null;this._opsets=(opt.opsets||[]).concat((opt.mod||{}).opsets||[]).map(function(opset){if(typeof opset==="string"){return form.opset.get(opset)}else if(opset instanceof form.opset){return opset}else{return new form.opset(opset)}});this._opsets.filter(function(it){return it.i18n}).map(function(it){var k,ref$,v,ref1$,results$=[];for(k in ref$=it.i18n){v=ref$[k];results$.push(import$((ref1$=this$.i18n)[k]||(ref1$[k]={}),v))}return results$});this._opsets=Object.fromEntries(function(){var i$,ref$,len$,results$=[];for(i$=0,len$=(ref$=this._opsets).length;i$<len$;++i$){o=ref$[i$];results$.push([o.id||o.name||"",o])}return results$}.call(this));this._errors=[];this.init=proxise.once(function(){return this$._init()});return this};form.widget.prototype=import$(Object.create(Object.prototype),{on:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var ref$;return((ref$=this$.evtHandler)[n]||(ref$[n]=[])).push(cb)})},off:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var l,ref$;l=(ref$=this$.evtHandler)[n]||(ref$[n]=[]);if(l.indexOf(cb)>=0){return l.splice(l.indexOf(cb),1)}})},fire:function(n){var v,res$,i$,to$,ref$,len$,cb,results$=[];res$=[];for(i$=1,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}v=res$;for(i$=0,len$=(ref$=this.evtHandler[n]||[]).length;i$<len$;++i$){cb=ref$[i$];results$.push(cb.apply(this,v))}return results$},root:function(){return this._root},_init:function(){var this$=this;return Promise.resolve(this.mod&&this.mod.init?this.mod.init.apply(this):"").then(function(){return this$.fire("init")})},key:function(keyonly){keyonly==null&&(keyonly=false);return keyonly?this._meta.key:this._meta.alias||this._meta.key},status:function(v){var ov;if(!(v!=null)){return this._status}ov=this._status;this._status=v;if(ov!==v){return this.fire("status",v)}},serialize:function(){var ref$,ret,ref1$;ret=(ref1$={},ref1$.key=(ref$=this._meta).key,ref1$.title=ref$.title,ref1$.desc=ref$.desc,ref1$.isRequired=ref$.isRequired,ref1$.disabled=ref$.disabled,ref1$.readonly=ref$.readonly,ref1$.defaultValue=ref$.defaultValue,ref1$);ret.config=JSON.parse(JSON.stringify(this._meta.config||{}));ret.term=(this._meta.term||[]).map(function(it){return it.serialize()});return ret},deserialize:function(v,o){var ref$,dig,this$=this;o==null&&(o={});ref$=this._meta;ref$.key=v.key;ref$.title=v.title;ref$.desc=v.desc;ref$.isRequired=v.isRequired;ref$.disabled=v.disabled;ref$.readonly=v.readonly;ref$.defaultValue=v.defaultValue;this._meta.config=JSON.parse(JSON.stringify(v.config||{}));this._meta.term=(v.term||[]).map(function(t){var that;return new form.term(import$(import$({},t),(that=this$._opsets[t.opset||""])?{opset:that}:{}))});dig=JSON.stringify(v);if(this._meta_dig!==dig){this.fire("meta",this.serialize(),{init:o.init})}this.manager();this._meta_dig=dig;return Promise.resolve().then(function(){if(!o.init){return}if(!(this$._meta.defaultValue!=null&&this$.isEmpty())){return}return this$.value(this$._meta.defaultValue,{init:true,fromSource:true})}).then(function(){return this$.validate({init:o.init})}).then(function(){return this$.render()})},mode:function(m){var this$=this;if(!(m!=null)){return this._mode}return Promise.resolve().then(function(){var ref$;if(!(m==="edit"||m==="view"||m==="config")){return Promise.reject((ref$=new Error,ref$.name="lderror",ref$.id=1015,ref$))}if(this$._mode===m){return}this$._mode=m;this$.fire("mode",m);return this$.validate({init:true}).then(function(){return this$.render()})})},errors:function(){return this._errors},value:function(v,opt){var _v,this$=this;opt==null&&(opt={});if(arguments.length===0){return this._value!=null?JSON.parse(JSON.stringify(this._value)):this._value}if(this.isEqual(v,this._value)){return Promise.resolve()}_v=v!=null?JSON.parse(JSON.stringify(v)):v;this._value=_v;this._empty=this.isEmpty(_v);return this.validate({init:opt.init}).then(function(){if(opt.fromSource){return}return this$.fire("change",this$._value!=null?JSON.parse(JSON.stringify(this$._value)):undefined)})},disabled:function(){return!!this._meta.disabled},readonly:function(){return!!this._meta.readonly},isRequired:function(){return!!this._meta.isRequired},isEmpty:function(v){if(!arguments.length){v=this._value}if(this.mod&&this.mod.isEmpty){return this.mod.isEmpty.call(this,v)}else{return v===null||typeof v==="undefined"||v===""}},isEqual:function(u,v){var eu,ev;if(arguments.length===1){v=this._value}if(this.mod&&this.mod.isEqual){return this.mod.isEqual.call(this,u,v)}eu=this.isEmpty(u);ev=this.isEmpty(v);if(!eu!==!ev&&(eu||ev)){return false}if(eu&&ev){return true}return JSON.stringify(u)===JSON.stringify(v)},content:function(v){if(!arguments.length){v=this._value}if(this.mod&&this.mod.content){return this.mod.content.call(this,v)}else if(typeof v==="object"&&v&&v.hasOwnProperty(v)){return v.v}else{return v}},valdef:function(){if(this.mod&&this.mod.valdef){if(typeof this.mod.valdef==="function"){return this.mod.valdef.call(this)}return this.mod.valdef}return null},valspec:function(){if(this.mod&&this.mod.valspec){if(typeof this.mod.valspec==="function"){return this.mod.valspec.call(this)}return this.mod.valspec}return null},validate:function(opt){var v,this$=this;opt==null&&(opt={});v=this.content();return Promise.resolve().then(function(){if(this$.mod&&this$.mod.validate){return this$.mod.validate.call(this$,opt)}if(this$._validate){return this$._validate(v)}}).then(function(ret){ret==null&&(ret=[]);if(ret.status===3){this$._errors=ret.errors||[];this$.status(3);this$.render();return this$._errors}if(ret&&ret.length){this$._errors=ret;this$.status(opt.init?1:2);this$.render();return this$._errors}if(this$._empty){if(this$._meta.isRequired){this$._errors=["required"];this$.status(opt.init?1:2);this$.render();return this$._errors}else{this$.status(0);this$.render();return this$._errors=[]}}return Promise.all(this$._meta.term.filter(function(t){return t.enabled}).map(function(t){return t.validate(v).then(function(v){return[t,v]})})).then(function(it){var nv;nv=this$.content();if(!this$.isEqual(nv,v)){return}this$._errors=it.filter(function(it){return!it[1]}).map(function(it){return it[0].msg||"error"});this$.status(this$._errors.length?2:0);return this$.render()}).then(function(){return this$._errors})})},render:function(){this.fire("render");if(this.mod&&this.mod.render){return this.mod.render.apply(this)}},adapt:function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;if(this.mod&&this.mod.adapt){return this.mod.adapt.apply(this,args)}},manager:function(arg$){var depth,ref$,ret;depth=(ref$=(arg$!=null?arg$:{}).depth)!=null?ref$:0;ret=this.mod&&this.mod.manager?this.mod.manager.apply(this,[{depth:depth}]):[];ret=(Array.isArray(ret)?ret:[ret]).filter(function(it){return it});if(this.disabled()){ret.map(function(it){return it.disable()})}return ret},ctrl:function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;if(this.mod&&this.mod.ctrl){return this.mod.ctrl.apply(this,args)}}});if(typeof module!="undefined"&&module!==null){module.exports=form}else if(typeof window!="undefined"&&window!==null){window.form=form}function import$(obj,src){var own={}.hasOwnProperty;for(var key in src)if(own.call(src,key))obj[key]=src[key];return obj}function in$(x,xs){var i=-1,l=xs.length>>>0;while(++i<l)if(x===xs[i])return true;return false}}).call(this);
|
|
1
|
+
(function(){var form,ref$,wordLen,countOps,slice$=[].slice;form={};form.value={toString:function(v){var list2str,parts;list2str=function(list){if(list[0]&&list[0].key!=null&&list[0].value!=null){return list.map(function(it){return form.value.toString(it.value)}).join(" / ")}else{return list.map(function(it){return form.value.toString(it)}).join(" / ")}};if(typeof v==="string"){return v}else if(v==null){return""}else if(Array.isArray(v)){return list2str(v)}else if(v.filename){return v.filename}else if(v.key!=null&&v.value!=null){return form.value.toString(v.value)}else if(v.list&&v.other){parts=(v.list||[]).map(function(it){return form.value.toString(it)});if(v.other.enabled&&v.other.text){parts=parts.concat([v.other.text])}return parts.join(" / ")}else if(v.list&&Array.isArray(v.list)){return list2str(v.list)}else if(v.v!=null){return form.value.toString(v.v)}else{return JSON.stringify(v)}}};form.utils={lexCompare:function(a,b){var i$,to$,i;for(i$=0,to$=Math.max(a.length,b.length);i$<to$;++i$){i=i$;if(a[i]==null&&b[i]!=null){return-1}if(a[i]!=null&&b[i]==null){return 1}if(a[i]==null&&b[i]==null){return 0}if(a[i]!==b[i]){return a[i]-b[i]}}return 0},mergeExports:function(records){var uidMap,headers,k,v,rows;uidMap={};records.map(function(cols){return cols.map(function(col){if(!uidMap[col.uid]){return uidMap[col.uid]={uid:col.uid,header:col.header,sortKey:col.sortKey}}})});headers=function(){var ref$,results$=[];for(k in ref$=uidMap){v=ref$[k];results$.push({k:k,v:v})}return results$}().sort(function(a,b){return form.utils.lexCompare(a.v.sortKey,b.v.sortKey)});rows=records.map(function(cols){var valMap;valMap={};cols.map(function(it){return valMap[it.uid]=it.value});return headers.map(function(it){return valMap[it.k]||""})});return{headers:headers.map(function(it){return it.v.header}),rows:rows}}};form.condctrl=function(opt){var ref$,this$=this;opt==null&&(opt={});ref$=this._||(this._={});ref$.hash={};ref$.enabled={};ref$.manager=opt.manager;ref$.list=opt.conditions||[];ref$.autorun=false;ref$.applyBaseRule=opt.baseRule||function(){};this._.manager.on("change",function(){if(this$._.autorun){return this$.run()}});return this};form.condctrl.prototype=(ref$=Object.create(Object.prototype),ref$.isEnabled=function(it){return this._.enabled[it]},ref$.get=function(it){return this._.hash[it]},ref$.reset=function(opt){var fields,ref$,i$,to$,i,cond,results$=[];opt==null&&(opt={});this._.autorun=opt.autorun!=null&&!opt.autorun?false:true;this._.list=opt.conditions||this._.list||[];fields=this._.manager.widgets();ref$=this._||(this._={});ref$.hash={};ref$.enabled={};for(i$=0,to$=this._.list.length;i$<to$;++i$){i=i$;cond=this._.list[i];cond.id=cond.id||"_"+(i+1);this._.hash[cond.id]=cond;if(!Array.isArray(cond.config)){cond.config=[cond.config]}cond.config=cond.config.map(fn$);results$.push(cond.config.forEach(fn1$))}return results$;function fn$(it){var ref$;return ref$=import$({},JSON.parse(JSON.stringify(it))),ref$.src=cond.src,ref$.func=cond.func,ref$}function fn1$(cfg){var k,v;if(!cfg.path&&cfg.targets){cfg.path=cfg.targets}if(!cfg.value&&cfg.values){cfg.value=cfg.values}if(!cfg.tag&&cfg.tags){cfg.tag=cfg.tags}return cfg.path=Array.from(new Set((cfg.prefix?cfg.prefix:[]).concat(cfg.path||[],function(){var ref$,results$=[];for(k in ref$=fields){v=ref$[k];results$.push({k:k,v:v})}return results$}().filter(function(arg$){var k,v,ref$;k=arg$.k,v=arg$.v;return(!cfg.prefix?0:cfg.prefix.filter(function(p){return k.startsWith(p)}).length)+((v!=null?(ref$=v.meta)!=null?ref$.tag:void 8:void 8)||[]).filter(function(t){return in$(t,cfg.tag||[])}).length>0}).map(function(it){return it.k}))))}},ref$.subcond=function(arg$){var path,active,config,itf,ms;path=arg$.path,active=arg$.active,config=arg$.config;if(!((itf=this._.manager.widget(path))&&!itf.disabled()&&(ms=itf.manager({depth:1})||[]).length)){return}return ms.forEach(function(m){var cond;cond=m.condition();cond.apply(import$({active:active},config));return cond.run()})},ref$.apply=function(opt){var path,active,enabled,isRequired,readonly,widget,curMeta,newMeta;opt==null&&(opt={});path=opt.path,active=opt.active,enabled=opt.enabled,isRequired=opt.isRequired,readonly=opt.readonly;if(Array.isArray(path)){if(path[1]){return this.subcond({path:path[0],active:active,config:{path:path.slice(1),enabled:enabled,isRequired:isRequired,readonly:readonly}})}path=path[0]}if(enabled!=null){this._.enabled[path]=!(!enabled!==!active&&(enabled||active))}if(widget=this._.manager.widget(path)){curMeta=widget.serialize();newMeta=JSON.parse(JSON.stringify(curMeta));if(enabled!=null){newMeta.disabled=!!(!enabled!==!active&&(enabled||active))}if(readonly!=null){newMeta.readonly=!(!readonly!==!active&&(readonly||active))}if(isRequired!=null){newMeta.isRequired=!(!isRequired!==!active&&(isRequired||active))}this._.applyBaseRule({path:path,widget:widget,meta:newMeta,opt:opt});if(!!curMeta.disabled===!!newMeta.disabled&&!!curMeta.isRequired===!!newMeta.isRequired&&!!curMeta.readonly===!!newMeta.readonly){return}return widget.deserialize(newMeta,{init:true})}},ref$._run=function(cfg,precond){var src,values,paths,isRequired,enabled,readonly,func,result,i$,len$,path,active,ref$,itf,content;cfg==null&&(cfg={});src=cfg.src,values=cfg.value,paths=cfg.path,isRequired=cfg.isRequired,enabled=cfg.enabled,readonly=cfg.readonly,func=cfg.func;if(func){result=true;for(i$=0,len$=paths.length;i$<len$;++i$){path=paths[i$];active=!!func.apply(this,[(ref$=import$({},cfg),ref$.path=path,ref$)])&&!(precond!=null&&!precond);result=result&&active;if(Array.isArray(path)&&path[1]){this.subcond({path:path[0],config:(ref$=import$({},cfg),ref$.path=path.slice(1),ref$),active:active});continue}this.apply({path:path,enabled:enabled,active:active,isRequired:isRequired,readonly:readonly})}}else{values=Array.isArray(values)?values:[values];if(!(itf=this._.manager.widget(src))){return console.error("[@plotdb/form] condctrl: field '"+src+"' not found")}content=itf.content();content=Array.isArray(content)?content:[content];active=!!content.filter(function(it){return in$(it,values)}).length;if(precond!=null&&!precond){active=false}for(i$=0,len$=paths.length;i$<len$;++i$){path=paths[i$];if(Array.isArray(path)&&path[1]){this.subcond({path:path[0],config:(ref$=import$({},cfg),ref$.path=path.slice(1),ref$),active:active});continue}this.apply({path:path,enabled:enabled,active:active,isRequired:isRequired,readonly:readonly})}result=active}return result},ref$.run=function(){var result,_,this$=this;result={};_=function(list,ref){var i$,to$,i,lresult$,cond,j$,ref$,len$,cfg,r,results$=[];ref==null&&(ref=[]);for(i$=0,to$=list.length;i$<to$;++i$){i=i$;lresult$=[];cond=list[i];if(result[cond.id]!=null){continue}if(cond.precond&&this$._.hash[cond.precond]){if(in$(cond.id,ref)){console.error("[@plotdb/form] condctrl: circular ref id "+cond.id)}else{_([this$._.hash[cond.precond]],ref.concat([cond.id]))}}for(j$=0,len$=(ref$=cond.config).length;j$<len$;++j$){cfg=ref$[j$];r=this$._run(cfg,result[cond.precond]);lresult$.push(result[cond.id]=result[cond.id]!=null?result[cond.id]&&r:r)}results$.push(lresult$)}return results$};return _(this._.list||[])},ref$);form.conditor=function(opt){var this$=this;opt==null&&(opt={});this._={manager:opt.manager,conditions:[],results:{},virtual:{}};this._.manager.on("change",debounce(50,function(){return this$.run()}));return this};form.conditor.prototype=(ref$=Object.create(Object.prototype),ref$.init=function(conditions){conditions==null&&(conditions=[]);this._.conditions=conditions.map(function(c,i){var ref$;return ref$=import$({},c),ref$.id=c.id||"_c"+i,ref$});this._.results={};return this},ref$.eval=function(cond){var sub,cached,src,widgets,vals,terms,this$=this;if(cond==null){return Promise.resolve(false)}if(typeof cond==="function"){return Promise.resolve().then(function(){return!!cond.call(this$)})}if(Array.isArray(cond)){return Promise.all(cond.map(function(it){return this$.eval(it)})).then(function(it){return it.every(function(it){return it})})}if(cond.logic){sub=Array.isArray(cond.cond)?cond.cond:[cond.cond];return Promise.all(sub.map(function(it){return this$.eval(it)})).then(function(rs){switch(cond.logic){case"and":return rs.every(function(it){return it});case"or":return rs.some(function(it){return it});case"xor":return rs.filter(function(it){return it}).length===1;case"not":return!rs[0];default:return false}})}if(cond.src!=null&&typeof cond.src==="string"&&(cached=this._.results[cond.src])!=null){return Promise.resolve(cached)}if(cond.func!=null){return Promise.resolve().then(function(){return!!cond.func.call(this$)})}if(cond.src!=null){src=Array.isArray(cond.src)?cond.src:[cond.src];widgets=this._.manager.resolve(src);if(!widgets.length){return Promise.resolve(false)}if(widgets.some(function(w){return w.disabled()})){return Promise.resolve(false)}if(cond.values!=null){vals=Array.isArray(cond.values)?cond.values:[cond.values];return Promise.resolve(widgets.every(function(w){var content;content=w.content();content=Array.isArray(content)?content:[content];return content.some(function(it){return in$(it,vals)})}))}if(cond.term&&cond.term.length){terms=cond.term.map(function(t){if(t instanceof form.term){return t}else{return new form.term(t)}});return Promise.all(widgets.map(function(w){var v;v=w.content();return Promise.all(terms.map(function(t){return t.validate(v)})).then(function(it){return it.every(function(it){return it!==false})})})).then(function(it){return it.every(function(it){return it})})}return Promise.resolve(widgets.every(function(w){return!w.isEmpty()}))}return Promise.resolve(false)},ref$.apply=function(effect,active){var targets,i$,len$,target,lresult$,path,j$,ref$,len1$,w,cur,next,changed,results$=[];targets=effect.targets||(effect.target?[effect.target]:[]);for(i$=0,len$=targets.length;i$<len$;++i$){target=targets[i$];lresult$=[];path=Array.isArray(target)?target:[target];if(typeof path[0]==="string"&&path[0].startsWith("$")){this._.virtual[path[0]]=active;continue}for(j$=0,len1$=(ref$=this._.manager.resolve(path)).length;j$<len1$;++j$){w=ref$[j$];cur=w.serialize();next=JSON.parse(JSON.stringify(cur));if(effect.enabled!=null){next.disabled=!!(!effect.enabled!==!active&&(effect.enabled||active))}if(effect.isRequired!=null){next.isRequired=!(!effect.isRequired!==!active&&(effect.isRequired||active))}if(effect.readonly!=null){next.readonly=!(!effect.readonly!==!active&&(effect.readonly||active))}changed=!!cur.disabled!==!!next.disabled||!!cur.isRequired!==!!next.isRequired||!!cur.readonly!==!!next.readonly;if(changed){w.deserialize(next,{init:true})}if(effect.value!=null&&active){lresult$.push(w.value(effect.value))}}results$.push(lresult$)}return results$},ref$.run=function(){var results,evalWithDeps,this$=this;results=this._.results={};evalWithDeps=function(cond){var pre,parent;if(results[cond.id]!=null){return Promise.resolve(results[cond.id])}pre=Promise.resolve();if(cond.precond){parent=this$._.conditions.find(function(it){return it.id===cond.precond});if(parent){pre=evalWithDeps(parent)}}return pre.then(function(){if(cond.precond!=null&&!results[cond.precond]){return results[cond.id]=false}return this$.eval(cond.when).then(function(active){results[cond.id]=active;if(cond.effect){this$.apply(cond.effect,active)}return active})})};return Promise.all(this._.conditions.map(function(c){return evalWithDeps(c)}))},ref$);form.manager=function(o){var this$=this;o==null&&(o={});this._ws={w:{},p:new WeakMap,s:{},l:{}};this._disabled=false;this._evthdr={};this._status=1;this._mode="edit";this._mod={};this._cond=new form.condctrl({manager:this});this._checkDebounced=debounce(10,function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;return this$._check.apply(this$,args)});this._restatusDebounced=debounce(10,function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;return this$._restatus.apply(this$,args)});return this};form.manager.prototype=import$(Object.create(Object.prototype),{on:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var ref$;return((ref$=this$._evthdr)[n]||(ref$[n]=[])).push(cb)})},condition:function(){return this._cond},disabled:function(){return!!this._disabled},disable:function(it){return this._disabled=it!=null?!!it:true},fire:function(n){var v,res$,i$,to$,ref$,len$,cb,results$=[];res$=[];for(i$=1,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}v=res$;for(i$=0,len$=(ref$=this._evthdr[n]||[]).length;i$<len$;++i$){cb=ref$[i$];results$.push(cb.apply(this,v))}return results$},add:function(o){var ref$,w,p,this$=this;if(Array.isArray(o)){return o.map(function(it){return this$.add(it)})}ref$=[o.widget,o.path],w=ref$[0],p=ref$[1];if(this._ws.p.get(w)){return}this._ws.w[p]=w;this._ws.p.set(w,p);this._ws.l[p]={};this._ws.s[p]=w.status();w.mode(this._mode);w.on("meta",this._ws.l[p].m=function(v){return this$.fire("meta",{widget:w,path:p,meta:v})});w.on("change",this._ws.l[p].c=function(v){return this$.fire("change",{widget:w,path:p,value:v})});return w.on("status",this._ws.l[p].s=function(s){this$._ws.s[p]=s;if(this$._ws.w[p]._meta.disabled){return}this$.fire("status",{widget:w,path:p,status:s});return this$._restatusDebounced()})},remove:function(o){var ws,ref$,key$,ref1$,this$=this;if(Array.isArray(o)){return o.map(function(it){return this$.remove(it)})}if(!(ws=this._ws.w[o.path])){return}ws.off("meta",this._ws.l[o.path].m);ws.off("change",this._ws.l[o.path].c);ws.off("status",this._ws.l[o.path].s);this._ws.p["delete"](ws);delete this._ws.w[o.path];return ref1$=(ref$=this._ws.l)[key$=o.path],delete ref$[key$],ref1$},widgets:function(){return import$({},this._ws.w||{})},widget:function(p){return this._ws.w[p]},content:function(p){var that;if(that=this._ws.w[p]){return that.content()}else{return null}},status:function(){return this._status},progress:function(arg$){var _recurred,ref$,ret,list,k,s,this$=this;_recurred=(ref$=(arg$!=null?arg$:{})._recurred)!=null?ref$:false;ret={total:0,invalid:0,done:0};list=function(){var ref$,results$=[];for(k in ref$=this._ws.s){s=ref$[k];results$.push({k:k,s:s})}return results$}.call(this).filter(function(it){return this$._ws.w[it.k]&&this$._ws.w[it.k]._meta&&!this$._ws.w[it.k]._meta.disabled});list.forEach(function(o){var w,ms,e;w=this$._ws.w[o.k];if(!_recurred&&(ms=w.manager()).length){ms=ms.filter(function(it){return!it.disabled()}).filter(function(m){var p;p=m.progress({_recurred:true});ret.total+=p.total;ret.invalid+=p.invalid;ret.done+=p.done;return!!p.invalid});if(ms.length){return}}ret.total+=1;e=w.errors();if(e.length===1&&e[0]==="nested"){return}if(o.s!=null&&o.s===2){ret.invalid+=1}if(o.s!=null&&o.s===0){return ret.done+=1}});ret.percent=!ret.total?1:ret.done/(ret.total||1);return ret},invalidWidgets:function(){var ret,list,k,s,this$=this;ret=[];list=function(){var ref$,results$=[];for(k in ref$=this._ws.s){s=ref$[k];results$.push({k:k,s:s})}return results$}.call(this).filter(function(it){return this$._ws.w[it.k]&&this$._ws.w[it.k]._meta&&!this$._ws.w[it.k]._meta.disabled});list.forEach(function(o){var w,ms,e;w=this$._ws.w[o.k];if((ms=w.manager()).length){ms.filter(function(it){return!it.disabled()}).forEach(function(m){return ret=ret.concat(m.invalidWidgets())});e=w.errors();if(o.s!=null&&o.s===2&&!(e.length===1&&e[0]==="nested")){ret.push({widget:w,path:o.k,status:2})}return}e=w.errors();if(e.length===1&&e[0]==="nested"){return}if(o.s!=null&&o.s===2){return ret.push({widget:w,path:o.k,status:2})}});return ret},_restatus:function(){var os,ret,k,v,this$=this;os=this._status;delete this._status;ret=function(){var ref$,results$=[];for(k in ref$=this._ws.w){v=ref$[k];results$.push({k:k,v:v})}return results$}.call(this).filter(function(arg$){var k,v;k=arg$.k,v=arg$.v;return!v._meta.disabled}).map(function(arg$){var k,v,s;k=arg$.k,v=arg$.v;s=this$._ws.s[k];if(s==null){return true}if(s===0){return false}if(s===1&&!v._meta.isRequired){return false}return true}).filter(function(it){return it}).length;this._status=ret?1:0;if(os!==this._status){return this.fire("readystatechange",this._status===0)}},check:function(o,opt){var this$=this;if(typeof opt!=="object"){opt={now:opt}}return Promise.resolve().then(function(){var p,w;if(!o){return this$.check(function(){var ref$,results$=[];for(p in ref$=this._ws.w){w=ref$[p];results$.push({widget:w,path:p})}return results$}.call(this$).filter(function(arg$){var widget;widget=arg$.widget;if(widget._meta.disabled){return false}return!opt.skipEmpty?true:!widget.isEmpty()||widget.status()===2}),opt)}this$.checkList=(this$.checkList||(this$.checkList=[])).concat(Array.isArray(o)?o:[o]);return opt.now?this$._check(null,opt):this$._checkDebounced(null,opt)}).then(function(it){this$._restatus();return it})},_check:function(o,opt){var list,this$=this;opt==null&&(opt={});if(!o){list=this.checkList||[];this.checkList=[];return this._check(list,opt)}if(Array.isArray(o)){return Promise.all(o.map(function(it){return this$._check(it,opt)})).then(function(it){return it.filter(function(it){return it})})}return new Promise(function(res,rej){var ref$,w,p,_now;ref$=[o.widget,o.path,o.now],w=ref$[0],p=ref$[1],_now=ref$[2];if(!(w&&p)){return res()}if(!w&&!(w=this$._ws.w[p])){return res()}if(!p){p=this$._ws.p[w]}return w.validate({force:opt.force,init:opt.init,skipEmpty:opt.skipEmpty}).then(function(){var os;os=this$._ws.s[p];this$._ws.s[p]=w.status();if(os!==this$._ws.s[p]){this$.fire("status",{path:p,widget:w,status:this$._ws.s[p]})}return this$._ws.s[p]}).then(function(){if(this$._ws.s[p]===2){return res({widget:w,path:p,status:this$._ws.s[p]})}else{return res()}})})},formData:function(){var fd,p,ref$,w,val,i$,to$,i;fd=new FormData;for(p in ref$=this._ws.w){w=ref$[p];if(w._meta.disabled){continue}val=w.value();if(Array.isArray(v)){for(i$=0,to$=v.length;i$<to$;++i$){i=i$;fd.append(p+"[]",v[i])}}else{fd.append(p,val)}}return fd},value:function(v,opt){var ret,p,ref$,w,ps,res$,e;opt==null&&(opt={});if(!arguments.length){ret={};for(p in ref$=this._ws.w){w=ref$[p];if(!(opt.partial&&w._meta.disabled)){ret[p]=w.value()}}return ret}v=v!=null?JSON.parse(JSON.stringify(v)):{};try{res$=[];for(p in ref$=this._ws.w){w=ref$[p];if(!v.hasOwnProperty(p)&&opt.partial){continue}res$.push(w.value(v[p],opt))}ps=res$;return Promise.all(ps)}catch(e$){e=e$;return Promise.reject(e)}},mode:function(m){var this$=this;if(!(m!=null)){return this._mode}return Promise.resolve().then(function(){var ref$,p,w;if(!(m==="edit"||m==="view"||m==="config")){return Promise.reject((ref$=new Error,ref$.name="lderror",ref$.id=1015,ref$))}if(this$._mode===m){return}this$._mode=m;this$.fire("mode",m);return Promise.all(function(){var ref$,results$=[];for(p in ref$=this._ws.w){w=ref$[p];results$.push(w)}return results$}.call(this$).map(function(w){return w.mode(m)}))})},order:function(){var nodeIdx,_,obj;nodeIdx=function(r,n,opt){var i$,to$,i,v;opt.idx++;if(r===n){return true}if(!(r&&r.childNodes)){return}for(i$=0,to$=r.childNodes.length;i$<to$;++i$){i=i$;v=nodeIdx(r.childNodes[i],n,opt);if(v){return true}}};_=function(m,obj){var ws,k,v,ms,child,opt,results$=[];ws=m._ws.w;for(k in ws){v=ws[k];ms=v.manager()||[];if(ms.length){child={};ms.map(fn$)}else{child=null}opt={idx:0};nodeIdx(document.body,v._root,opt);results$.push(obj[k]={title:v._meta.title,idx:opt.idx,child:child,meta:v.serialize()})}return results$;function fn$(m){return _(m,child)}};_(this,obj={});return obj},export:function(){var nodeIdx,cols,k,ref$,v,opt,domIdx;nodeIdx=function(r,n,opt){var i$,to$,i,v;opt.idx++;if(r===n){return true}if(!(r&&r.childNodes)){return}for(i$=0,to$=r.childNodes.length;i$<to$;++i$){i=i$;v=nodeIdx(r.childNodes[i],n,opt);if(v){return true}}};cols=[];for(k in ref$=this._ws.w){v=ref$[k];opt={idx:0};nodeIdx(document.body,v._root,opt);domIdx=opt.idx;cols=cols.concat(v["export"]().map(fn$))}return cols.sort(function(a,b){return form.utils.lexCompare(a.sortKey,b.sortKey)});function fn$(col){col.sortKey=[domIdx].concat(col.sortKey);col.uid=col.uid?k+"|"+col.uid:k;return col}},manager:function(opt){var ret,k,ref$,s,w,mgrs;ret=[];for(k in ref$=this._ws.s){s=ref$[k];if(!(this._ws.w[it.k]&&this._ws.w[it.k]._meta&&!this._ws.w[it.k]._meta.disabled)){continue}if(!(w=this.widget(k))){continue}if(!(mgrs=w.manager(opt)||[]).length){continue}ret=ret.concat(mgrs)}if(this.disabled()){ret.map(function(it){return it.disable()})}return ret},resolve:function(path){var head,tail,w;if(!path||!path.length){return[]}head=path[0],tail=slice$.call(path,1);w=this._ws.w[head];if(!w){return[]}if(!tail.length){return[w]}return w.resolve(tail)},paths:function(path){var k,v,head,tail,w;if(!path||!path.length){return function(){var ref$,results$=[];for(k in ref$=this._ws.w){v=ref$[k];results$.push({id:k,name:v._meta.title||k})}return results$}.call(this)}head=path[0],tail=slice$.call(path,1);w=this._ws.w[head];if(!w){return[]}return w.paths(tail)}});form.op=function(opt){opt==null&&(opt={});this.id=opt.id;this.name=opt.name;this.config=opt.config;this.func=opt.func;this.opset=opt.opset;return this};form.op.prototype=import$(Object.create(Object.prototype),{getConfig:function(valspec){if(typeof this.config==="function"){return this.config(valspec)}else{return this.config}},validate:function(val,cfg){var ret;cfg==null&&(cfg={});if(this.opset.convert){val=this.opset.convert(val)}if((ret=this.func(val,cfg))instanceof Promise){return ret}else{return Promise.resolve(!!ret)}},configDefault:function(valspec){var cfg,k,ref$,v;cfg={};for(k in ref$=this.getConfig(valspec)){v=ref$[k];cfg[k]=v["default"]}return cfg}});form.opset=function(opt){var ops,k,v,this$=this;opt==null&&(opt={});this.name=opt.name;this.id=opt.id;this.i18n=opt.i18n;this.convert=opt.convert;this.valdef=opt.valdef||null;this.ops={};ops=Array.isArray(opt.ops)?opt.ops.map(function(it){return{v:it,k:it.id}}):function(){var ref$,results$=[];for(k in ref$=opt.ops){v=ref$[k];results$.push({k:k,v:v})}return results$}();ops.map(function(arg$){var k,v,ref$,ref1$,results$=[];k=arg$.k,v=arg$.v;this$.ops[k]=v instanceof form.op?v:k?new form.op((ref$=typeof v==="function"?{func:v}:v,ref$.id=k,ref$.opset=this$,ref$)):function(){throw new Error("[@plotdb/form/opset] invalid op when initializing opset.")}();for(k in ref$=opt.ops){v=ref$[k];results$.push(this$.ops[k]=new form.op((ref1$=typeof v==="function"?{func:v}:v,ref1$.name=k,ref1$.id=k,ref1$.opset=this$,ref1$)))}return results$});this.defaultOp=this.ops[opt.defaultOp]?opt.defaultOp:function(){var ref$,results$=[];for(k in ref$=this.ops){v=ref$[k];results$.push(k)}return results$}.call(this)[0];return this};form.opset.prototype=import$(Object.create(Object.prototype),{getOp:function(id){return this.ops[id||this.defaultOp]},getOps:function(){var k,ref$,v,results$=[];for(k in ref$=this.ops){v=ref$[k];results$.push(v)}return results$}});form.opset.register=function(it){return(this._list||(this._list=[])).push(it instanceof form.opset?it:new form.opset(it))};form.opset.get=function(id){return(this._list||(this._list=[])).filter(function(it){return(it.id||it.name)===id})[0]};form.opset.list=function(opt){var list,vd;opt==null&&(opt={});list=(this._list||[]).map(function(it){return it});if(!opt.valdef){return list}vd=Array.isArray(opt.valdef)?opt.valdef:[opt.valdef];return list.filter(function(os){if(!os.valdef){return!vd.length||vd.some(function(it){return!it||it==="@plotdb/form:valdef/generic"})}return vd.some(function(v){return in$(v,os.valdef)})})};wordLen=function(v,method){v==null&&(v="");return method==="simple-word"?v.split(/\s|[,.;:!?,。;:︰!?、. "]/).filter(function(it){return it}).map(function(it){return it.split(/[\u1000-\uffff]/).map(function(it){if(it.length){return 2}else{return 1}}).reduce(function(a,b){return a+b},0)-1}).reduce(function(a,b){return a+b},0):v.length};countOps={"count-max":{func:function(v,c){c==null&&(c={});return v.length<=c.val},config:{val:{type:"number",name:"count-max",hint:"maximal amount"}}},"count-min":{func:function(v,c){c==null&&(c={});return v.length>=c.val},config:{val:{type:"number",name:"count-min",hint:"minimal amount"}}},"count-range":{func:function(v,c){c==null&&(c={});return v.length>=c.min&&v.length<=c.max},config:{min:{type:"number",name:"count-min",hint:"minimal amount"},max:{type:"number",name:"count-max",hint:"maximal amount"}}},count:{func:function(v,c){c==null&&(c={});return v.length===c.val},config:{val:{type:"number",name:"count",hint:"number of entries"}}}};form.opset["default"]=[{id:"list",i18n:{"zh-TW":{list:"列表","count-max":"數量上限","count-min":"數量下限","count-range":"數量範圍",count:"數量要求"},en:{list:"List","count-max":"Maximal Count","count-min":"Minimal Count","count-range":"Count Range",count:"Required Count"}},convert:function(v){var ret;ret=Array.isArray(v)?v:v&&Array.isArray(v.list)?v.list.concat(v.other&&v.other.enabled?[v.other.text]:[]):[v];return ret.filter(function(it){return it})},ops:import$({},countOps)},{id:"file",i18n:{"zh-TW":{file:"檔案","max-size":"檔案大小上限(位元數)","min-size":"檔案大小下限(位元數)","count-limit":"檔案數量上限",extension:"副檔名限制","count-max":"檔案數量上限","count-min":"檔案數量下限","count-range":"檔案數量範圍"},en:{file:"File","max-size":"Max File Size (bytes)","min-size":"Min File Size (bytes)","count-limit":"Max File Count",extension:"File Extension","count-max":"Max File Count","count-min":"Min File Count","count-range":"File Count Range"}},convert:function(v){return(Array.isArray(v)?v:[v]).filter(function(it){return it})},ops:import$({"size-limit":{func:function(v,c){c==null&&(c={});return!v.filter(function(it){return it.size>c.val&&(!it.min||it.min<c.val)}).length},config:{size:{type:"number",name:"max-size"},min:{type:"number",name:"min-size"}}},extension:{func:function(v,c){var exts;c==null&&(c={});exts=(c.str.split(",")||[]).map(function(it){return(it||"").trim().toLowerCase()}).filter(function(it){return it});return!v.filter(function(it){var ext,ref$;return!in$(((ext=(ref$=(it.filename||"").split("."))[ref$.length-1])||"").trim().toLowerCase(),exts)}).length},config:{str:{type:"text",name:"extension",hint:"extension, comma separated, without dot"}}},"count-limit":{func:function(v,c){c==null&&(c={});return v.length<c.val},config:{val:{type:"number",name:"count-limit",hint:"maximal file amount"}}}},countOps)},{id:"image",i18n:{"zh-TW":{image:"圖像","long-side":"長邊尺寸限制","short-side":"短邊尺寸限制",width:"寬度限制",height:"高度限制","pixel-count":"像素量限制","min-size":"最小尺寸","max-size":"最大尺寸"},en:{image:"Image","long-side":"Long Side","short-side":"Short Side",width:"Width",height:"Height","pixel-count":"Max Pixel Count","min-size":"Min Size","max-size":"Max Size"}},convert:function(v){return(Array.isArray(v)?v:[v]).filter(function(it){return it})},ops:Object.fromEntries([["long-side","long"],["short-side","short"],["width","width"],["height","height"],["pixel-count","pixels"]].map(function(n){return[n[0],function(k){return{func:function(v,c){v==null&&(v=[]);c==null&&(c={});return!v.filter(function(it){return!((c.min==null||it[k]>=(c.min||0))&&(c.max==null||it[k]<=c.max))}).length},config:{min:{type:"number",name:"min-size",hint:"minimal size"},max:{type:"number",name:"max-size",hint:"maximal size"}}}}(n[1])]}))},{id:"string",i18n:{"zh-TW":{string:"文字",include:"包含",exclude:"排除",email:"電子郵件",url:"網址",regex:"正規表達式"},en:{string:"Text",include:"Include",exclude:"Exclude",email:"Email",url:"URL",regex:"Regular Expression"}},ops:{include:{func:function(v,c){c==null&&(c={});return~(""+(v||"")).indexOf(c.str||"")},config:{str:{type:"text",name:"include"}}},exclude:{func:function(v,c){c==null&&(c={});return!~(""+(v||"")).indexOf(c.str||"")},config:{str:{type:"text",name:"exclude"}}},email:{func:function(v){return/^[^@]+@[^@]+$/.exec(v)},config:{}},url:{func:function(v){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,15}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)$/.exec(v)},config:{}},regex:{func:function(v,c){c==null&&(c={});if(!c.rule){return true}if(typeof c.rule==="object"&&c.rule.exec){return c.rule.exec(v)}return new RegExp(c.rule).exec(v)},config:{rule:{type:"text",name:"regex"}}}}},{id:"length",i18n:{"zh-TW":{length:"字串長度",lte:"≦ 小於或等於",range:"範圍",number:"數字",method:"計算方式",char:"字元","simple-word":"簡易計字/詞","minimal length":"長度下限","maximal length":"長度上限"},en:{length:"String Length",lte:"≦",range:"Range",number:"Number",method:"Method",char:"By Character","simple-word":"Count Word","minimal length":"Min Length","maximal length":"Max Length"}},ops:{range:{func:function(v,c){var len;c==null&&(c={});len=wordLen(v+"",c.method);return len>=+c.min&&len<=+c.max},config:{min:{type:"number",name:"minimal length"},max:{type:"number",name:"maximal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},lte:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)<=+c.val},config:{val:{type:"number",name:"maximal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},gte:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)>=+c.val},config:{val:{type:"number",name:"minimal length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}},eq:{func:function(v,c){c==null&&(c={});return wordLen(v+"",c.method)===+c.val},config:{val:{type:"number",name:"length"},method:{type:"choice",default:"char",values:["char","simple-word"]}}}}},{id:"number",i18n:{"zh-TW":{number:"數字",lte:"≦ 小於或等於",gte:"≧ 大於或等於",ne:"≠ 不等於",eq:"= 等於",is:"任何數字","ref-val":"參考值"},en:{number:"Number",lte:"≦ Equal/Less Than",gte:"≧ Equal/Greater Than",ne:"≠ Not Equals",eq:"= Equals",is:"Is Number","ref-val":"Reference Value"}},convert:function(v){return+(v+"").replace(/,/g,"")},ops:{lte:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v<=+c.val}},config:{val:{type:"text",name:"ref-val"}}},gte:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v>=+c.val}},config:{val:{type:"text",name:"ref-val"}}},ne:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v!==+c.val}},config:{val:{type:"text",name:"ref-val"}}},eq:{func:function(v,c){c==null&&(c={});if(isNaN(v)||isNaN(c.val)){return false}else{return+v===+c.val}},config:{val:{type:"text",name:"ref-val"}}},is:{func:function(v){return!isNaN(v)},config:{}}}},{id:"date",i18n:{"zh-TW":{date:"日期","min age":"最小年齡","max age":"最大年齡",age:"年齡"},en:{date:"Date","min age":"Min Age","max age":"Max Age",age:"Age"}},convert:function(v){return new Date(v)},ops:{age:{config:{min:{type:"number",name:"min age"},max:{type:"number",name:"max age"}},func:function(v,c){var dmin,dmax,dnow;c==null&&(c={});dmin=new Date(v.getYear()+1900+(c.min||0),v.getMonth(),v.getDate()).getTime();dmax=new Date(v.getYear()+1900+(c.max||0),v.getMonth(),v.getDate()).getTime();dnow=Date.now();if(c.min!=null&&dmin>dnow){return false}if(c.max!=null&&dmax<dnow){return false}return true}}}},{id:"choice",valdef:["@plotdb/form:valdef/choice"],i18n:{"zh-TW":{choice:"選擇",is:"選了","is-not":"沒選","is-any":"選了其中一個",val:"選項值",vals:"選項值(任一)"},en:{choice:"Choice",is:"Is","is-not":"Is Not","is-any":"Is Any Of",val:"Option value",vals:"Option values (any)"}},convert:function(v){var toKey,list;toKey=function(item){if(typeof item==="string"){return item}else{return item.key||item.value||""}};if(!v){return{list:[],other:{}}}if(typeof v==="string"){return{list:v?[v]:[],other:{}}}list=(v.list||v||[]).filter(function(it){return it}).map(toKey);return{list:list,other:v.other||{}}},ops:{is:{func:function(v,c){c==null&&(c={});return!!(c.val&&in$(c.val,v.list))},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{val:values.length?{type:"choice",name:"val",values:values}:{type:"text",name:"val"}}}},"is-not":{func:function(v,c){c==null&&(c={});return!(c.val&&in$(c.val,v.list))},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{val:values.length?{type:"choice",name:"val",values:values}:{type:"text",name:"val"}}}},"is-any":{func:function(v,c){var vals;c==null&&(c={});vals=Array.isArray(c.vals)?c.vals:typeof c.vals==="string"?c.vals.split(",").map(function(it){return it.trim()}).filter(function(it){return it}):[];return vals.some(function(it){return in$(it,v.list)})},config:function(valspec){var values;values=((valspec!=null?valspec.values:void 8)||[]).map(function(v){return{value:v.key||v.value||v,name:v.label||v.value||v.key||v}});return{vals:values.length?{type:"choice",name:"vals",values:values}:{type:"text",name:"vals",hint:"comma separated"}}}}}}];form.opset["default"].map(function(it){return form.opset.register(it)});form.term=function(opt){opt==null&&(opt={});import$((this.enabled=true,this.opset=null,this.op=null,this.config={},this),opt);if(!this.id){this.id=Math.random().toString(36).substring(2)}this.setOpset(opt.opset,opt.op,opt.config);return this};form.term.prototype=import$(Object.create(Object.prototype),{toggle:function(it){return this.enabled=it!=null?it:!this.enabled},setOpset:function(opset,op,cfg){if(typeof opset==="string"){if(!(this.opset=form.opset.get(opset))){throw new Error("no such opset '"+opset+"'")}}else if(opset instanceof form.opset){this.opset=opset}else{throw new Error("invalid opset")}return this.setOp(op,cfg)},setOp:function(id,cfg){if(!this.opset){throw new Error("opset not set")}if(!(this.op=this.opset.getOp(id))){throw new Error("no such op '"+id+"'")}return this.setConfig(cfg)},setConfig:function(cfg){if(!this.op){throw new Error("op not set")}return this.config=!cfg?this.op.configDefault():cfg},validate:function(v){if(!this.op){Promis.reject(new Error("op not set"))}return this.op.validate(v,this.config)},serialize:function(){return{id:this.id,enabled:this.enabled,opset:this.opset.id,op:this.op.id,config:this.config,msg:this.msg}},deserialize:function(v){this.toggle(v.enabled);return this.setOpset(v.opset,v.op,v.config)}});form.widget=function(opt){var o,this$=this;opt==null&&(opt={});this._root=typeof opt.root==="string"?document.querySelector(opt.root):opt.root;this.evtHandler={};this.mod=opt.mod||null;this.i18n={};this._custom={};this._status=1;this._meta={config:{},key:Math.random().toString(36).substring(2)};this._meta_dig="";this._value=undefined;this._empty=true;this._mode=opt.mode||"edit";this._validate=opt.validate||null;this._opsets=(opt.opsets||[]).concat((opt.mod||{}).opsets||[]).map(function(opset){if(typeof opset==="string"){return form.opset.get(opset)}else if(opset instanceof form.opset){return opset}else{return new form.opset(opset)}});this._opsets.filter(function(it){return it.i18n}).map(function(it){var k,ref$,v,ref1$,results$=[];for(k in ref$=it.i18n){v=ref$[k];results$.push(import$((ref1$=this$.i18n)[k]||(ref1$[k]={}),v))}return results$});this._opsets=Object.fromEntries(function(){var i$,ref$,len$,results$=[];for(i$=0,len$=(ref$=this._opsets).length;i$<len$;++i$){o=ref$[i$];results$.push([o.id||o.name||"",o])}return results$}.call(this));this._errors=[];this.init=proxise.once(function(){return this$._init()});return this};form.widget.prototype=import$(Object.create(Object.prototype),{on:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var ref$;return((ref$=this$.evtHandler)[n]||(ref$[n]=[])).push(cb)})},off:function(n,cb){var this$=this;return(Array.isArray(n)?n:[n]).map(function(n){var l,ref$;l=(ref$=this$.evtHandler)[n]||(ref$[n]=[]);if(l.indexOf(cb)>=0){return l.splice(l.indexOf(cb),1)}})},fire:function(n){var v,res$,i$,to$,ref$,len$,cb,results$=[];res$=[];for(i$=1,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}v=res$;for(i$=0,len$=(ref$=this.evtHandler[n]||[]).length;i$<len$;++i$){cb=ref$[i$];results$.push(cb.apply(this,v))}return results$},root:function(){return this._root},_init:function(){var this$=this;return Promise.resolve(this.mod&&this.mod.init?this.mod.init.apply(this):"").then(function(){return this$.fire("init")})},key:function(keyonly){keyonly==null&&(keyonly=false);return keyonly?this._meta.key:this._meta.alias||this._meta.key},status:function(v){var ov;if(!(v!=null)){return this._status}ov=this._status;this._status=v;if(ov!==v){return this.fire("status",v)}},serialize:function(){var ref$,ret,ref1$;ret=(ref1$={},ref1$.key=(ref$=this._meta).key,ref1$.title=ref$.title,ref1$.desc=ref$.desc,ref1$.isRequired=ref$.isRequired,ref1$.disabled=ref$.disabled,ref1$.readonly=ref$.readonly,ref1$.defaultValue=ref$.defaultValue,ref1$);ret.config=JSON.parse(JSON.stringify(this._meta.config||{}));ret.term=(this._meta.term||[]).map(function(it){return it.serialize()});return ret},deserialize:function(v,o){var ref$,dig,this$=this;o==null&&(o={});ref$=this._meta;ref$.key=v.key;ref$.title=v.title;ref$.desc=v.desc;ref$.isRequired=v.isRequired;ref$.disabled=v.disabled;ref$.readonly=v.readonly;ref$.defaultValue=v.defaultValue;this._meta.config=JSON.parse(JSON.stringify(v.config||{}));this._meta.term=(v.term||[]).map(function(t){var that;return new form.term(import$(import$({},t),(that=this$._opsets[t.opset||""])?{opset:that}:{}))});dig=JSON.stringify(v);if(this._meta_dig!==dig){this.fire("meta",this.serialize(),{init:o.init})}this.manager();this._meta_dig=dig;return Promise.resolve().then(function(){if(!o.init){return}if(!(this$._meta.defaultValue!=null&&this$.isEmpty())){return}return this$.value(this$._meta.defaultValue,{init:true,fromSource:true})}).then(function(){return this$.validate({init:o.init})}).then(function(){return this$.render()})},mode:function(m){var this$=this;if(!(m!=null)){return this._mode}return Promise.resolve().then(function(){var ref$;if(!(m==="edit"||m==="view"||m==="config")){return Promise.reject((ref$=new Error,ref$.name="lderror",ref$.id=1015,ref$))}if(this$._mode===m){return}this$._mode=m;this$.fire("mode",m);return this$.validate({init:true}).then(function(){return this$.render()})})},errors:function(){return this._errors},value:function(v,opt){var _v,_vs,p,this$=this;opt==null&&(opt={});if(arguments.length===0){return this._value!=null?JSON.parse(JSON.stringify(this._value)):this._value}if(this.isEqual(v,this._value)){return Promise.resolve()}_v=v!=null?JSON.parse(_vs=JSON.stringify(v)):v;this._value=_v;this._empty=this.isEmpty(_v);p=this.mod&&this.mod.value?Promise.resolve(this.mod.value.call(this,JSON.parse(_vs))):Promise.resolve();return p.then(function(){return this$.validate({init:opt.init}).then(function(){if(opt.fromSource){return}return this$.fire("change",this$._value!=null?JSON.parse(JSON.stringify(this$._value)):undefined)})})},disabled:function(){return!!this._meta.disabled},readonly:function(){return!!this._meta.readonly},isRequired:function(){return!!this._meta.isRequired},isEmpty:function(v){if(!arguments.length){v=this._value}if(this.mod&&this.mod.isEmpty){return this.mod.isEmpty.call(this,v)}else{return v===null||typeof v==="undefined"||v===""}},isEqual:function(u,v){var eu,ev;if(arguments.length===1){v=this._value}if(this.mod&&this.mod.isEqual){return this.mod.isEqual.call(this,u,v)}eu=this.isEmpty(u);ev=this.isEmpty(v);if(!eu!==!ev&&(eu||ev)){return false}if(eu&&ev){return true}return JSON.stringify(u)===JSON.stringify(v)},content:function(v){if(!arguments.length){v=this._value}if(this.mod&&this.mod.content){return this.mod.content.call(this,v)}else if(typeof v==="object"&&v&&v.hasOwnProperty(v)){return v.v}else{return v}},valdef:function(){if(this.mod&&this.mod.valdef){if(typeof this.mod.valdef==="function"){return this.mod.valdef.call(this)}return this.mod.valdef}return null},valspec:function(){if(this.mod&&this.mod.valspec){if(typeof this.mod.valspec==="function"){return this.mod.valspec.call(this)}return this.mod.valspec}return null},validate:function(opt){var lc,getVal,this$=this;opt==null&&(opt={});lc={v:null,_value:this._value};getVal=function(){if(lc.v){return lc.v}else{return lc.v=this$.content()}};return Promise.resolve().then(function(){if(this$.mod&&this$.mod.validate){return this$.mod.validate.call(this$,opt)}if(this$._validate){return this$._validate(getVal())}}).then(function(ret){var ref$;ret==null&&(ret=[]);if(ret.status===3){this$._errors=ret.errors||[];this$.status(3);this$.render();return this$._errors}if(ret&&ret.length){this$._errors=ret;this$.status(opt.init?1:2);this$.render();return this$._errors}if(this$._empty){if(this$._meta.isRequired){this$._errors=["required"];this$.status(opt.init?1:2);this$.render();return this$._errors}else{this$.status(0);this$.render();return this$._errors=[]}}return Promise.all((((ref$=this$._meta)!=null?ref$.term:void 8)||[]).filter(function(t){return t.enabled}).map(function(t){return t.validate(getVal()).then(function(v){return[t,v]})})).then(function(ret){var ref$,ref1$;if((ref$=this$._meta)!=null&&((ref1$=ref$.term)!=null&&ref1$.length)&&lc._value!==this$._value){return}this$._errors=ret.filter(function(it){return!it[1]}).map(function(it){return it[0].msg||"error"});this$.status(this$._errors.length?2:0);return this$.render()}).then(function(){return this$._errors})})},render:function(){this.fire("render");if(this.mod&&this.mod.render){return this.mod.render.apply(this)}},adapt:function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;if(this.mod&&this.mod.adapt){return this.mod.adapt.apply(this,args)}},manager:function(arg$){var depth,ref$,ret;depth=(ref$=(arg$!=null?arg$:{}).depth)!=null?ref$:0;ret=this.mod&&this.mod.manager?this.mod.manager.apply(this,[{depth:depth}]):[];ret=(Array.isArray(ret)?ret:[ret]).filter(function(it){return it});if(this.disabled()){ret.map(function(it){return it.disable()})}return ret},ctrl:function(){var args,res$,i$,to$;res$=[];for(i$=0,to$=arguments.length;i$<to$;++i$){res$.push(arguments[i$])}args=res$;if(this.mod&&this.mod.ctrl){return this.mod.ctrl.apply(this,args)}},resolve:function(path){if(this.mod&&this.mod.resolve){return this.mod.resolve.apply(this,[path])}else{return[]}},paths:function(path){if(this.mod&&this.mod.paths){return this.mod.paths.apply(this,[path])}else{return[]}},export:function(){if(this.mod&&this.mod["export"]){return this.mod["export"].apply(this)}return[{uid:"",header:this._meta.title||"",sortKey:[],value:form.value.toString(this.value())}]}});if(typeof module!="undefined"&&module!==null){module.exports=form}else if(typeof window!="undefined"&&window!==null){window.form=form}function import$(obj,src){var own={}.hasOwnProperty;for(var key in src)if(own.call(src,key))obj[key]=src[key];return obj}function in$(x,xs){var i=-1,l=xs.length>>>0;while(++i<l)if(x===xs[i])return true;return false}}).call(this);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"zbryikt","name":"@plotdb/form","license":"MIT","description":"form blocks","version":"0.1
|
|
1
|
+
{"author":"zbryikt","name":"@plotdb/form","license":"MIT","description":"form blocks","version":"0.2.1","browser":"index.min.js","main":"index.min.js","homepage":"https://github.com/plotdb/form","repository":{"type":"git","url":"git+https://github.com/plotdb/form.git"},"engines":{"node":">=10.14.1","npm":">=6.4.1"},"scripts":{"start":"npx server -r web -o true"},"devDependencies":{"@grantdash/composer":"^0.0.3","@loadingio/bootstrap.ext":"^0.0.12","@loadingio/debounce.js":"^1.0.1","@loadingio/ldquery":"^3.0.6","@loadingio/vscroll":"^0.0.11","@makeform/nest":"^0.3.11","@plotdb/datadom":"^0.2.0","@plotdb/datahub":"^0.6.0","@plotdb/json0":"^0.0.5","@plotdb/semver":"^0.0.3","@zbryikt/deploy":"^0.0.4","@zbryikt/template":"^2.4.2","bootstrap":"^4.6.1","bootstrap.native":"^3.0.13","dayjs":"^1.11.20","fedep":"^1.7.3","i18next":"^19.9.2","imgtype":"^0.0.3","ldcover":"^3.5.6","lddatetimepicker":"^0.0.13","ldfile":"^2.0.1","ldiconfont":"^0.3.0","ldloader":"^3.0.3","ldview":"^1.7.0","livescript":"^1.6.0","marked":"^15.0.12","moment":"^2.30.1","moment-timezone":"^0.6.2","@plotdb/quill":"^1.0.0","stylus":"^0.55.0","uglify-js":"^3.13.1","uglifycss":"^0.0.29","zmgr":"^2.2.3"},"frontendDependencies":{"root":"web/static/assets/lib","modules":["@grantdash/composer","@loadingio/bootstrap.ext","@loadingio/ldquery","@loadingio/debounce.js","@loadingio/ldcolorpicker","@loadingio/vscroll","@makeform/nest","@plotdb/sheet","@plotdb/block","@plotdb/json0","@plotdb/datadom","@plotdb/datahub","@plotdb/semver","@plotdb/rescope","@plotdb/suuid","@plotdb/konfig","@plotdb/csscope","bootstrap","bootstrap.native","curegex","dompurify","i18next","ldcolor","ldcover","ldiconfont","ldslider","ldpalettepicker","ldview","marked","proxise","moment-timezone","moment","imgtype","lddatetimepicker","dayjs","@plotdb/quill","ldloader","ldfile","zmgr"]},"dependencies":{"@loadingio/ldcolorpicker":"^3.0.6","@plotdb/block":"^5.7.2","@plotdb/csscope":"^5.0.4","@plotdb/datadom":"^0.2.0","@plotdb/konfig":"^4.11.1","@plotdb/rescope":"^5.0.17","@plotdb/sheet":"^0.7.0","@plotdb/suuid":"^0.6.0","curegex":"^0.0.4","dompurify":"^3.2.4","ldcolor":"^1.1.3","ldpalettepicker":"^4.1.2","ldslider":"^3.1.2","proxise":"^1.0.1"}}
|