@elurjs/core 3.5.0
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/LICENSE +21 -0
- package/README.md +157 -0
- package/dist/lib/async.cjs +16 -0
- package/dist/lib/async.js +123 -0
- package/dist/lib/component.cjs +2 -0
- package/dist/lib/component.js +66 -0
- package/dist/lib/context.cjs +2 -0
- package/dist/lib/context.js +52 -0
- package/dist/lib/devtools.cjs +59 -0
- package/dist/lib/devtools.js +419 -0
- package/dist/lib/elur/async.cjs +16 -0
- package/dist/lib/elur/async.cjs.map +1 -0
- package/dist/lib/elur/async.d.cts +32 -0
- package/dist/lib/elur/async.d.ts +32 -0
- package/dist/lib/elur/async.js +123 -0
- package/dist/lib/elur/async.js.map +1 -0
- package/dist/lib/elur/component.cjs +2 -0
- package/dist/lib/elur/component.cjs.map +1 -0
- package/dist/lib/elur/component.d.cts +17 -0
- package/dist/lib/elur/component.d.ts +17 -0
- package/dist/lib/elur/component.js +66 -0
- package/dist/lib/elur/component.js.map +1 -0
- package/dist/lib/elur/context.cjs +2 -0
- package/dist/lib/elur/context.cjs.map +1 -0
- package/dist/lib/elur/context.d.cts +29 -0
- package/dist/lib/elur/context.d.ts +29 -0
- package/dist/lib/elur/context.js +52 -0
- package/dist/lib/elur/context.js.map +1 -0
- package/dist/lib/elur/devtools.cjs +59 -0
- package/dist/lib/elur/devtools.cjs.map +1 -0
- package/dist/lib/elur/devtools.d.cts +24 -0
- package/dist/lib/elur/devtools.d.ts +24 -0
- package/dist/lib/elur/devtools.js +419 -0
- package/dist/lib/elur/devtools.js.map +1 -0
- package/dist/lib/elur/form.cjs +2 -0
- package/dist/lib/elur/form.cjs.map +1 -0
- package/dist/lib/elur/form.d.cts +283 -0
- package/dist/lib/elur/form.d.ts +283 -0
- package/dist/lib/elur/form.js +315 -0
- package/dist/lib/elur/form.js.map +1 -0
- package/dist/lib/elur/hydrate/index.cjs +2 -0
- package/dist/lib/elur/hydrate/index.cjs.map +1 -0
- package/dist/lib/elur/hydrate/index.d.cts +13 -0
- package/dist/lib/elur/hydrate/index.d.ts +13 -0
- package/dist/lib/elur/hydrate/index.js +410 -0
- package/dist/lib/elur/hydrate/index.js.map +1 -0
- package/dist/lib/elur/index.d.cts +19 -0
- package/dist/lib/elur/index.d.ts +19 -0
- package/dist/lib/elur/lifecycle.cjs +2 -0
- package/dist/lib/elur/lifecycle.cjs.map +1 -0
- package/dist/lib/elur/lifecycle.d.cts +45 -0
- package/dist/lib/elur/lifecycle.d.ts +45 -0
- package/dist/lib/elur/lifecycle.js +39 -0
- package/dist/lib/elur/lifecycle.js.map +1 -0
- package/dist/lib/elur/plugins.cjs +2 -0
- package/dist/lib/elur/plugins.cjs.map +1 -0
- package/dist/lib/elur/plugins.d.cts +48 -0
- package/dist/lib/elur/plugins.d.ts +48 -0
- package/dist/lib/elur/plugins.js +59 -0
- package/dist/lib/elur/plugins.js.map +1 -0
- package/dist/lib/elur/reactivity.cjs +2 -0
- package/dist/lib/elur/reactivity.cjs.map +1 -0
- package/dist/lib/elur/reactivity.d.cts +60 -0
- package/dist/lib/elur/reactivity.d.ts +60 -0
- package/dist/lib/elur/reactivity.js +188 -0
- package/dist/lib/elur/reactivity.js.map +1 -0
- package/dist/lib/elur/router.cjs +12 -0
- package/dist/lib/elur/router.cjs.map +1 -0
- package/dist/lib/elur/router.d.cts +137 -0
- package/dist/lib/elur/router.d.ts +137 -0
- package/dist/lib/elur/router.js +513 -0
- package/dist/lib/elur/router.js.map +1 -0
- package/dist/lib/elur/server/index.cjs +2 -0
- package/dist/lib/elur/server/index.cjs.map +1 -0
- package/dist/lib/elur/server/index.d.cts +44 -0
- package/dist/lib/elur/server/index.d.ts +44 -0
- package/dist/lib/elur/server/index.js +307 -0
- package/dist/lib/elur/server/index.js.map +1 -0
- package/dist/lib/elur/store.cjs +2 -0
- package/dist/lib/elur/store.cjs.map +1 -0
- package/dist/lib/elur/store.d.cts +137 -0
- package/dist/lib/elur/store.d.ts +137 -0
- package/dist/lib/elur/store.js +143 -0
- package/dist/lib/elur/store.js.map +1 -0
- package/dist/lib/elur/template/bindings.cjs +2 -0
- package/dist/lib/elur/template/bindings.cjs.map +1 -0
- package/dist/lib/elur/template/bindings.d.cts +40 -0
- package/dist/lib/elur/template/bindings.d.ts +40 -0
- package/dist/lib/elur/template/bindings.js +214 -0
- package/dist/lib/elur/template/bindings.js.map +1 -0
- package/dist/lib/elur/template/dom-write.cjs +2 -0
- package/dist/lib/elur/template/dom-write.cjs.map +1 -0
- package/dist/lib/elur/template/dom-write.d.cts +5 -0
- package/dist/lib/elur/template/dom-write.d.ts +5 -0
- package/dist/lib/elur/template/dom-write.js +16 -0
- package/dist/lib/elur/template/dom-write.js.map +1 -0
- package/dist/lib/elur/template/error-boundary.cjs +2 -0
- package/dist/lib/elur/template/error-boundary.cjs.map +1 -0
- package/dist/lib/elur/template/error-boundary.d.cts +7 -0
- package/dist/lib/elur/template/error-boundary.d.ts +7 -0
- package/dist/lib/elur/template/error-boundary.js +90 -0
- package/dist/lib/elur/template/error-boundary.js.map +1 -0
- package/dist/lib/elur/template/html.cjs +2 -0
- package/dist/lib/elur/template/html.cjs.map +1 -0
- package/dist/lib/elur/template/html.d.cts +8 -0
- package/dist/lib/elur/template/html.d.ts +8 -0
- package/dist/lib/elur/template/html.js +104 -0
- package/dist/lib/elur/template/html.js.map +1 -0
- package/dist/lib/elur/template/index.cjs +1 -0
- package/dist/lib/elur/template/index.d.cts +15 -0
- package/dist/lib/elur/template/index.d.ts +15 -0
- package/dist/lib/elur/template/index.js +13 -0
- package/dist/lib/elur/template/keyed-diff.cjs +2 -0
- package/dist/lib/elur/template/keyed-diff.cjs.map +1 -0
- package/dist/lib/elur/template/keyed-diff.d.cts +32 -0
- package/dist/lib/elur/template/keyed-diff.d.ts +32 -0
- package/dist/lib/elur/template/keyed-diff.js +100 -0
- package/dist/lib/elur/template/keyed-diff.js.map +1 -0
- package/dist/lib/elur/template/keyed.cjs +2 -0
- package/dist/lib/elur/template/keyed.cjs.map +1 -0
- package/dist/lib/elur/template/keyed.d.cts +27 -0
- package/dist/lib/elur/template/keyed.d.ts +27 -0
- package/dist/lib/elur/template/keyed.js +52 -0
- package/dist/lib/elur/template/keyed.js.map +1 -0
- package/dist/lib/elur/template/mount-helpers.cjs +2 -0
- package/dist/lib/elur/template/mount-helpers.cjs.map +1 -0
- package/dist/lib/elur/template/mount-helpers.d.cts +29 -0
- package/dist/lib/elur/template/mount-helpers.d.ts +29 -0
- package/dist/lib/elur/template/mount-helpers.js +132 -0
- package/dist/lib/elur/template/mount-helpers.js.map +1 -0
- package/dist/lib/elur/template/node-binding.cjs +2 -0
- package/dist/lib/elur/template/node-binding.cjs.map +1 -0
- package/dist/lib/elur/template/node-binding.d.cts +6 -0
- package/dist/lib/elur/template/node-binding.d.ts +6 -0
- package/dist/lib/elur/template/node-binding.js +95 -0
- package/dist/lib/elur/template/node-binding.js.map +1 -0
- package/dist/lib/elur/template/portal.cjs +2 -0
- package/dist/lib/elur/template/portal.cjs.map +1 -0
- package/dist/lib/elur/template/portal.d.cts +19 -0
- package/dist/lib/elur/template/portal.d.ts +19 -0
- package/dist/lib/elur/template/portal.js +49 -0
- package/dist/lib/elur/template/portal.js.map +1 -0
- package/dist/lib/elur/template/raw.cjs +2 -0
- package/dist/lib/elur/template/raw.cjs.map +1 -0
- package/dist/lib/elur/template/raw.d.cts +9 -0
- package/dist/lib/elur/template/raw.d.ts +9 -0
- package/dist/lib/elur/template/raw.js +29 -0
- package/dist/lib/elur/template/raw.js.map +1 -0
- package/dist/lib/elur/template/sanitize.cjs +2 -0
- package/dist/lib/elur/template/sanitize.cjs.map +1 -0
- package/dist/lib/elur/template/sanitize.d.cts +16 -0
- package/dist/lib/elur/template/sanitize.d.ts +16 -0
- package/dist/lib/elur/template/sanitize.js +29 -0
- package/dist/lib/elur/template/sanitize.js.map +1 -0
- package/dist/lib/elur/template/transitions.cjs +2 -0
- package/dist/lib/elur/template/transitions.cjs.map +1 -0
- package/dist/lib/elur/template/transitions.d.cts +43 -0
- package/dist/lib/elur/template/transitions.d.ts +43 -0
- package/dist/lib/elur/template/transitions.js +96 -0
- package/dist/lib/elur/template/transitions.js.map +1 -0
- package/dist/lib/elur/template/types.cjs +2 -0
- package/dist/lib/elur/template/types.cjs.map +1 -0
- package/dist/lib/elur/template/types.d.cts +114 -0
- package/dist/lib/elur/template/types.d.ts +114 -0
- package/dist/lib/elur/template/types.js +23 -0
- package/dist/lib/elur/template/types.js.map +1 -0
- package/dist/lib/elur.cjs +1 -0
- package/dist/lib/elur.js +18 -0
- package/dist/lib/form.cjs +2 -0
- package/dist/lib/form.js +315 -0
- package/dist/lib/hydrate.cjs +2 -0
- package/dist/lib/hydrate.js +410 -0
- package/dist/lib/index.cjs +1 -0
- package/dist/lib/index.d.cts +2 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/lifecycle.cjs +2 -0
- package/dist/lib/lifecycle.js +39 -0
- package/dist/lib/plugins.cjs +2 -0
- package/dist/lib/plugins.js +59 -0
- package/dist/lib/router.cjs +12 -0
- package/dist/lib/router.js +513 -0
- package/dist/lib/server.cjs +2 -0
- package/dist/lib/server.js +307 -0
- package/dist/lib/signals.cjs +2 -0
- package/dist/lib/signals.js +188 -0
- package/dist/lib/store.cjs +2 -0
- package/dist/lib/store.js +143 -0
- package/dist/lib/template.cjs +1 -0
- package/dist/lib/template.js +13 -0
- package/package.json +216 -0
package/dist/lib/form.js
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { batch as e, computed as t, effect as n, signal as r } from "./signals.js";
|
|
2
|
+
//#region src/elur/form.ts
|
|
3
|
+
function i(e = "Required") {
|
|
4
|
+
return (t) => t == null || t === "" || Array.isArray(t) && t.length === 0 ? e : null;
|
|
5
|
+
}
|
|
6
|
+
function a(e, t) {
|
|
7
|
+
return (n) => typeof n == "string" && n.length < e ? t ?? `Minimum ${e} characters` : null;
|
|
8
|
+
}
|
|
9
|
+
function o(e, t) {
|
|
10
|
+
return (n) => typeof n == "string" && n.length > e ? t ?? `Maximum ${e} characters` : null;
|
|
11
|
+
}
|
|
12
|
+
function s(e, t = "Invalid format") {
|
|
13
|
+
return (n) => typeof n == "string" && !e.test(n) ? t : null;
|
|
14
|
+
}
|
|
15
|
+
function c(e = "Invalid email") {
|
|
16
|
+
return s(/^[^\s@]+@[^\s@]+\.[^\s@]+$/, e);
|
|
17
|
+
}
|
|
18
|
+
function l(e, t) {
|
|
19
|
+
return (n) => typeof n == "number" && n < e ? t ?? `Minimum value is ${e}` : null;
|
|
20
|
+
}
|
|
21
|
+
function u(e, t) {
|
|
22
|
+
return (n) => typeof n == "number" && n > e ? t ?? `Maximum value is ${e}` : null;
|
|
23
|
+
}
|
|
24
|
+
function d(e) {
|
|
25
|
+
return e;
|
|
26
|
+
}
|
|
27
|
+
var f = {
|
|
28
|
+
required: i,
|
|
29
|
+
minLength: a,
|
|
30
|
+
maxLength: o,
|
|
31
|
+
email: c,
|
|
32
|
+
pattern: s,
|
|
33
|
+
min: l,
|
|
34
|
+
max: u
|
|
35
|
+
};
|
|
36
|
+
function p(e, t) {
|
|
37
|
+
return {
|
|
38
|
+
...e,
|
|
39
|
+
...t
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function m(i, a = [], o = "blur", s) {
|
|
43
|
+
let c = r(i), l = r(!1), u = r(!1), d = r(null), f = r(!1), p = i, m = !0, h = n(() => {
|
|
44
|
+
if (c.value, m) {
|
|
45
|
+
m = !1;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
d.peek() !== null && (d.value = null);
|
|
49
|
+
}), g = t(() => {
|
|
50
|
+
if (d.value) return d.value;
|
|
51
|
+
let e = s?.();
|
|
52
|
+
for (let t of a) {
|
|
53
|
+
let n = t(c.value, e);
|
|
54
|
+
if (n) return n;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}), _ = t(() => (o === "input" ? u.value || l.value : o === "submit" ? f.value : l.value) ? g.value : null);
|
|
58
|
+
function v(e) {
|
|
59
|
+
return e.type === "checkbox" || e.type === "radio";
|
|
60
|
+
}
|
|
61
|
+
function y(e) {
|
|
62
|
+
if (!e || !("value" in e)) return i;
|
|
63
|
+
let t = e, n = t.value;
|
|
64
|
+
return typeof i == "boolean" ? t.checked === !0 ? !0 : v(t) ? !1 : n === "true" || n === "1" ? !0 : n === "false" || n === "0" || n === "" ? !1 : i : typeof i == "number" ? n === "" ? NaN : Number(n) : n;
|
|
65
|
+
}
|
|
66
|
+
let b = (e) => {
|
|
67
|
+
c.value = y(e.target), u.value = !0;
|
|
68
|
+
}, x = () => {
|
|
69
|
+
l.value = !0;
|
|
70
|
+
};
|
|
71
|
+
function S() {
|
|
72
|
+
e(() => {
|
|
73
|
+
c.value = p, l.value = !1, u.value = !1, d.value = null, f.value = !1;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function C(t, n = {}) {
|
|
77
|
+
let { shouldTouch: r = !1, shouldDirty: i = !0, shouldValidate: a = !0 } = n;
|
|
78
|
+
e(() => {
|
|
79
|
+
c.value = t, i && (u.value = !0), r && (l.value = !0), a && (f.value = !0);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function w(e) {
|
|
83
|
+
d.value = e, e && (l.value = !0);
|
|
84
|
+
}
|
|
85
|
+
function T() {
|
|
86
|
+
l.value = !0, f.value = !0;
|
|
87
|
+
}
|
|
88
|
+
function E(e) {
|
|
89
|
+
p = e;
|
|
90
|
+
}
|
|
91
|
+
function D() {
|
|
92
|
+
h(), _.dispose(), g.dispose();
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
value: c,
|
|
96
|
+
error: _,
|
|
97
|
+
rawError: g,
|
|
98
|
+
touched: l,
|
|
99
|
+
dirty: u,
|
|
100
|
+
onInput: b,
|
|
101
|
+
onBlur: x,
|
|
102
|
+
reset: S,
|
|
103
|
+
setValue: C,
|
|
104
|
+
_setExternalError: w,
|
|
105
|
+
_forceVisible: T,
|
|
106
|
+
_setInitialValue: E,
|
|
107
|
+
_dispose: D
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function h(e, n = {}, i = "blur") {
|
|
111
|
+
function a(e) {
|
|
112
|
+
let t = {};
|
|
113
|
+
for (let r in e) {
|
|
114
|
+
let a = n[r] ?? [];
|
|
115
|
+
t[r] = m(e[r], a, i);
|
|
116
|
+
}
|
|
117
|
+
return t;
|
|
118
|
+
}
|
|
119
|
+
let o = r(e.map(a)), s = e, c = t(() => o.value.length);
|
|
120
|
+
function l(e) {
|
|
121
|
+
o.value = [...o.value, a(e)];
|
|
122
|
+
}
|
|
123
|
+
function u(e) {
|
|
124
|
+
let t = o.value;
|
|
125
|
+
if (!(e < 0 || e >= t.length)) {
|
|
126
|
+
for (let n in t[e]) t[e][n]._dispose();
|
|
127
|
+
o.value = t.filter((t, n) => n !== e);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function d(e, t) {
|
|
131
|
+
let n = [...o.value];
|
|
132
|
+
if (e < 0 || e >= n.length || t < 0 || t >= n.length || e === t) return;
|
|
133
|
+
let [r] = n.splice(e, 1);
|
|
134
|
+
n.splice(t, 0, r), o.value = n;
|
|
135
|
+
}
|
|
136
|
+
function f(e, t) {
|
|
137
|
+
let n = [...o.value];
|
|
138
|
+
if (!(e < 0 || e >= n.length)) {
|
|
139
|
+
for (let t in n[e]) n[e][t]._dispose();
|
|
140
|
+
n[e] = a(t), o.value = n;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function p(e) {
|
|
144
|
+
for (let e of o.value) for (let t in e) e[t]._dispose();
|
|
145
|
+
o.value = e.map(a);
|
|
146
|
+
}
|
|
147
|
+
function h(e) {
|
|
148
|
+
let t = [...o.value];
|
|
149
|
+
for (let n = 0; n < e.length; n++) {
|
|
150
|
+
let r = e[n];
|
|
151
|
+
if (n >= t.length) {
|
|
152
|
+
t.push(a(r));
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
let i = t[n];
|
|
156
|
+
for (let [e, t] of Object.entries(r)) i[e] && i[e].setValue(t, {
|
|
157
|
+
shouldDirty: !1,
|
|
158
|
+
shouldTouch: !1,
|
|
159
|
+
shouldValidate: !1
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
o.value = t;
|
|
163
|
+
}
|
|
164
|
+
function g(e) {
|
|
165
|
+
e && (s = e);
|
|
166
|
+
for (let e of o.value) for (let t in e) e[t]._dispose();
|
|
167
|
+
o.value = s.map(a);
|
|
168
|
+
}
|
|
169
|
+
function _() {
|
|
170
|
+
for (let e of o.value) for (let t in e) e[t]._dispose();
|
|
171
|
+
c.dispose();
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
fields: o,
|
|
175
|
+
append: l,
|
|
176
|
+
remove: u,
|
|
177
|
+
move: d,
|
|
178
|
+
replace: f,
|
|
179
|
+
length: c,
|
|
180
|
+
setValues: p,
|
|
181
|
+
patchValues: h,
|
|
182
|
+
reset: g,
|
|
183
|
+
_dispose: _
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
function g(e) {
|
|
187
|
+
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
188
|
+
}
|
|
189
|
+
function _(e, t = "", n = []) {
|
|
190
|
+
for (let [r, i] of Object.entries(e)) {
|
|
191
|
+
let e = t ? `${t}.${r}` : r;
|
|
192
|
+
if (g(i) && Object.keys(i).length > 0) {
|
|
193
|
+
_(i, e, n);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
n.push([e, i]);
|
|
197
|
+
}
|
|
198
|
+
return n;
|
|
199
|
+
}
|
|
200
|
+
function v(e, t, n) {
|
|
201
|
+
let r = t.split("."), i = e;
|
|
202
|
+
for (let e = 0; e < r.length - 1; e++) {
|
|
203
|
+
let t = r[e], n = i[t];
|
|
204
|
+
g(n) || (i[t] = {}), i = i[t];
|
|
205
|
+
}
|
|
206
|
+
i[r[r.length - 1]] = n;
|
|
207
|
+
}
|
|
208
|
+
function y(n, i = {}) {
|
|
209
|
+
let a = i.validateOn ?? "blur", o = {}, s = i.validators;
|
|
210
|
+
function c() {
|
|
211
|
+
let e = {};
|
|
212
|
+
for (let t in o) v(e, t, o[t].value.value);
|
|
213
|
+
return e;
|
|
214
|
+
}
|
|
215
|
+
for (let [e, t] of _(n)) o[e] = m(t, s?.[e] ?? [], a, c);
|
|
216
|
+
let l = r(!1), u = r(0), d = t(() => c()), f = t(() => {
|
|
217
|
+
let e = {};
|
|
218
|
+
for (let t in o) {
|
|
219
|
+
let n = o[t].error.value;
|
|
220
|
+
n && (e[t] = n);
|
|
221
|
+
}
|
|
222
|
+
return e;
|
|
223
|
+
}), p = t(() => {
|
|
224
|
+
for (let e in o) if (o[e].rawError.value) return !1;
|
|
225
|
+
return !0;
|
|
226
|
+
}), h = t(() => {
|
|
227
|
+
for (let e in o) if (o[e].error.value) return !1;
|
|
228
|
+
return !0;
|
|
229
|
+
}), g = t(() => {
|
|
230
|
+
for (let e in o) if (o[e].dirty.value) return !0;
|
|
231
|
+
return !1;
|
|
232
|
+
}), y = t(() => {
|
|
233
|
+
for (let e in o) if (o[e].touched.value) return !0;
|
|
234
|
+
return !1;
|
|
235
|
+
});
|
|
236
|
+
function b(e) {
|
|
237
|
+
for (let t in e) o[t]?._setExternalError(e[t] ?? null);
|
|
238
|
+
}
|
|
239
|
+
function x(e, t, n = {}) {
|
|
240
|
+
let r = o[e];
|
|
241
|
+
r && r.setValue(t, n);
|
|
242
|
+
}
|
|
243
|
+
function S(t, n = {}) {
|
|
244
|
+
let { keepDirty: r = !1, keepTouched: i = !1, keepErrors: a = !0 } = n;
|
|
245
|
+
e(() => {
|
|
246
|
+
for (let [e, n] of _(t)) {
|
|
247
|
+
let t = o[e];
|
|
248
|
+
t && (t.setValue(n, {
|
|
249
|
+
shouldDirty: !r,
|
|
250
|
+
shouldTouch: !1,
|
|
251
|
+
shouldValidate: !a
|
|
252
|
+
}), i || (t.touched.value = !1));
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
function C(e) {
|
|
257
|
+
if (e) for (let [t, n] of _(e)) {
|
|
258
|
+
let e = o[t];
|
|
259
|
+
e && e._setInitialValue(n);
|
|
260
|
+
}
|
|
261
|
+
for (let e in o) o[e].reset();
|
|
262
|
+
l.value = !1, u.value = 0;
|
|
263
|
+
}
|
|
264
|
+
function w() {
|
|
265
|
+
d.dispose(), f.dispose(), p.dispose(), h.dispose(), g.dispose(), y.dispose();
|
|
266
|
+
for (let e in o) o[e]._dispose();
|
|
267
|
+
}
|
|
268
|
+
function T(e) {
|
|
269
|
+
return (t) => {
|
|
270
|
+
t.preventDefault(), u.value++;
|
|
271
|
+
for (let e in o) o[e]._forceVisible();
|
|
272
|
+
let n = d.value;
|
|
273
|
+
if (i.validate) {
|
|
274
|
+
let e = i.validate(n);
|
|
275
|
+
if (e) {
|
|
276
|
+
let t = {}, n = !1;
|
|
277
|
+
for (let r in e) {
|
|
278
|
+
let i = e[r], a = Array.isArray(i) ? i[0] ?? null : i ?? null;
|
|
279
|
+
a && (t[r] = a, n = !0);
|
|
280
|
+
}
|
|
281
|
+
if (n) {
|
|
282
|
+
b(t);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
for (let e in o) if (o[e].rawError.value) return;
|
|
288
|
+
let r = e(n);
|
|
289
|
+
r instanceof Promise && (l.value = !0, r.finally(() => {
|
|
290
|
+
l.value = !1;
|
|
291
|
+
}).catch(() => {}));
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
fields: o,
|
|
296
|
+
values: d,
|
|
297
|
+
errors: f,
|
|
298
|
+
canSubmit: p,
|
|
299
|
+
valid: h,
|
|
300
|
+
dirty: g,
|
|
301
|
+
touched: y,
|
|
302
|
+
isSubmitting: l,
|
|
303
|
+
submitCount: u,
|
|
304
|
+
handleSubmit: T,
|
|
305
|
+
reset: C,
|
|
306
|
+
setValue: x,
|
|
307
|
+
setValues: S,
|
|
308
|
+
setErrors: b,
|
|
309
|
+
dispose: w
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//#endregion
|
|
313
|
+
export { y as createForm, d as createValidator, m as elurField, h as elurFieldArray, c as email, p as extendValidators, u as max, o as maxLength, l as min, a as minLength, s as pattern, i as required, f as validators };
|
|
314
|
+
|
|
315
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./signals.cjs`),t=require(`./elur/template/types.cjs`),n=require(`./lifecycle.cjs`),r=require(`./context.cjs`),i=require(`./elur/template/keyed.cjs`),a=require(`./elur/template/keyed-diff.cjs`),o=require(`./elur/template/sanitize.cjs`),s=require(`./elur/template/bindings.cjs`);function c(e,r,i={}){try{if(n.isElurComponent(e))return l(e,r,i);let a=e[t.ELUR_TEMPLATE_DESCRIPTOR];return a||S(i,-1,`descriptor`,`Template has no hydration descriptor`),{unmount:u(a,r,i)}}catch(t){if(i.mismatch===`throw`)throw t;return i.mismatch!==`remount`&&console.warn(`[elur] Hydration mismatch; remounting root:`,t),r.replaceChildren(),{unmount:n.isElurComponent(e)?e.render()._render(r,null):e._render(r,null)}}}function l(e,n,i){r._pushComponentContext();let a=()=>{};try{try{e.onInit?.()}catch(t){if(e.onError)e.onError(t);else throw t}let r=e.render()[t.ELUR_TEMPLATE_DESCRIPTOR];r||S(i,-1,`descriptor`,`Component template has no hydration descriptor`),a=u(r,n,i)}finally{r._popComponentContext()}let o=e.onMount?.();return{unmount(){e.onUnmount?.(),typeof o==`function`&&o(),a()}}}function u(e,t,n,r){let i=d(t,r),a=[];for(let t=0;t<e.contexts.length;t++){let r=e.contexts[t],o=e.values[t];if(r.type===`event`){let e=i.events.get(t);e||S(n,t,`event`,`Missing event marker ${t}`),e.removeAttribute(`data-elur-e-${t}`),a.push(p(e,r.eventName,r.modifiers,o));continue}if(r.type===`attr`){let e=i.attributes.get(t);e||S(n,t,`attribute`,`Missing attribute marker ${t}`),e.removeAttribute(`data-elur-a-${t}`),a.push(m(e,r.attrName,r.url===!0,o));continue}let s=i.nodes.get(t);s||S(n,t,`node`,`Missing node marker ${t}`);let c=h(s,o,n,i.keyed.get(t),i.arrayItems.get(t));c&&a.push(c)}return()=>{for(let e=a.length-1;e>=0;e--)a[e]()}}function d(e,t){let n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=[],l=[],u=[],d=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),p;for(;p=d.nextNode();){if(t&&!f(p,t))continue;if(p.nodeType===Node.COMMENT_NODE){let e=p,t=/^elur-(\d+)$/.exec(e.data);if(t){let n=Number(t[1]);c.length===0&&r.set(n,e),c.push(n);continue}let i=/^elur-end-(\d+)$/.exec(e.data);if(i){let t=Number(i[1]);if(c.pop()===t&&c.length===0){let i=r.get(t);i&&n.set(t,{start:i,end:e})}continue}let a=/^elur-ki:(.+)$/.exec(e.data);if(a){let t=a[1];l.length===0&&c.length===1?l.push({start:e,serializedKey:t,parentIndex:c[c.length-1]}):l.push({start:e,serializedKey:t,parentIndex:-1});continue}if(e.data===`elur-ke`){let t=l.pop();if(t){if(t.parentIndex>=0){let n=o.get(t.parentIndex)??[];n.push({start:t.start,end:e,serializedKey:t.serializedKey}),o.set(t.parentIndex,n)}}else throw Error(`[elur] Hydration marker mismatch: orphan keyed end marker (elur-ke)`);continue}if(e.data===`elur-ai`){u.length===0&&c.length===1?u.push({start:e,parentIndex:c[c.length-1]}):u.push({start:e,parentIndex:-1});continue}if(e.data===`elur-aiend`){let t=u.pop();if(t&&t.parentIndex>=0){let n=s.get(t.parentIndex)??[];n.push({start:t.start,end:e}),s.set(t.parentIndex,n)}continue}continue}if(c.length>0)continue;let e=p;for(let t of Array.from(e.attributes)){let n=/^data-elur-e-(\d+)$/.exec(t.name);n&&a.set(Number(n[1]),e);let r=/^data-elur-a-(\d+)$/.exec(t.name);r&&i.set(Number(r[1]),e)}}return{nodes:n,attributes:i,events:a,keyed:o,arrayItems:s}}function f(e,t){let n=document.createRange();return n.setStartAfter(t.start),n.setEndBefore(t.end),n.intersectsNode(e)}function p(e,t,n,r){if(typeof r!=`function`)throw TypeError(`Event "${t}" requires a function`);let i=r;if(s.isDelegableEvent(t)&&!n.includes(`capture`)&&!n.includes(`once`)&&document.body.contains(e))return s.activateDelegatedEvent(e,t,n,i);let a={once:n.includes(`once`),capture:n.includes(`capture`),passive:n.includes(`passive`)},o=e=>{n.includes(`prevent`)&&e.preventDefault(),n.includes(`stop`)&&e.stopPropagation(),!(n.includes(`self`)&&e.target!==e.currentTarget)&&i(e)};return e.addEventListener(t,o,a),()=>e.removeEventListener(t,o,a)}function m(t,n,r,i){if(n===`ref`){let e=i;return e.el=t,()=>{e.el=null}}let a=(n===`value`||n===`checked`||n===`selected`)&&n in t,s=!0,c=!1,l=e=>{if(a)if(!s)t[n]=e??``;else{let r=t[n];if(String(r)!==String(e??``)&&!c){c=!0;let e=n===`checked`||n===`selected`?`change`:`input`;queueMicrotask(()=>{c=!1,t.dispatchEvent(new Event(e,{bubbles:!0}))})}}else if(e==null||e===!1)t.removeAttribute(n);else{let i=r?o.sanitizeUrl(String(e)):String(e);t.setAttribute(n,i)}s=!1};return typeof i==`function`?e.effect(()=>l(i())):(l(i),()=>{})}function h(n,i,o,s,c){if(typeof i!=`function`)return g(n,i,o,s,c);let l=!0,u,d=b(n),f=null,p=r._captureContextSnapshot(),m=a.createKeyedMount(p),h=e=>{console.warn(`[elur] repeat(): duplicate key "${e}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`)},v=e.effect(()=>{let e=i();if(t.isKeyedList(e)){if(l&&!f){let t=_(e,s,o);f={state:t.state,prevOrder:t.prevOrder},u=t.cleanup,a.reconcileKeyedList({zoneStart:n.start,anchor:n.end,state:f.state,prevOrder:f.prevOrder,list:e,mount:m,ctxSnapshot:p,onDuplicateKey:h}),d=null,l=!1;return}f||(u?.(),x(n),f={state:new Map,prevOrder:[]},u=()=>{for(let e of f.state.values())e.cleanup()}),a.reconcileKeyedList({zoneStart:n.start,anchor:n.end,state:f.state,prevOrder:f.prevOrder,list:e,mount:m,ctxSnapshot:p,onDuplicateKey:h}),d=null,l=!1;return}f&&(u?.(),x(n),f=null,u=void 0),typeof e==`string`||typeof e==`number`||typeof e==`bigint`?d?d.nodeValue!==String(e)&&(d.nodeValue=String(e)):(d=document.createTextNode(String(e)),n.end.parentNode.insertBefore(d,n.end)):l?u=g(n,e,o,s,c):(u?.(),x(n),u=y(n,e),d=b(n)),l=!1});return()=>{v(),u?.()}}function g(e,i,o,s,c){if(t.isKeyedList(i)){let t=r._captureContextSnapshot(),n=_(i,s,o);return a.reconcileKeyedList({zoneStart:e.start,anchor:e.end,state:n.state,prevOrder:n.prevOrder,list:i,mount:a.createKeyedMount(t),ctxSnapshot:t,onDuplicateKey:e=>{console.warn(`[elur] repeat(): duplicate key "${e}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`)}}),n.cleanup}if(Array.isArray(i)){let t=[],n=c!==void 0&&c.length>0;for(let r=0;r<i.length;r++){let a=i[r],s=c?.[r];if(n&&s){let e=g(s,a,o);e&&t.push(e)}else if(n){let n=y(e,a);n&&t.push(n)}else{let n=g(e,a,o);n&&t.push(n)}}return t.length?()=>{for(let e=t.length-1;e>=0;e--)t[e]()}:void 0}if(t.isElurTemplate(i)){let n=i[t.ELUR_TEMPLATE_DESCRIPTOR];return n||S(o,-1,`descriptor`,`Nested template has no hydration descriptor`),u(n,e.start.parentNode,o,e)}if(n.isElurComponent(i)){r._pushComponentContext();let n;try{try{i.onInit?.()}catch(e){if(i.onError)i.onError(e);else throw e}let r=i.render()[t.ELUR_TEMPLATE_DESCRIPTOR];r||S(o,-1,`descriptor`,`Nested component has no hydration descriptor`);let a=u(r,e.start.parentNode,o,e),s=i.onMount?.();n=()=>{i.onUnmount?.(),typeof s==`function`&&s(),a()}}finally{r._popComponentContext()}return n}if(typeof i==`object`&&i){let n=i[t.ELUR_RENDER_PROTOCOL];if(n?.hydrateDom)return n.hydrateDom({parent:e.start.parentNode,bounds:e,context:o.context,render:t=>g(e,t,o)})??void 0}}function _(e,t,n){let r=new Map,a=[];if(!t||t.length===0)return{state:r,prevOrder:a,cleanup:()=>{}};let o=new Map;for(let t=0;t<e.items.length;t++){let n=i.normalizeRepeatKey(e.keyFn(e.items[t],t),t),r=i.serializeRepeatKey(n);o.has(r)&&console.warn(`[elur] repeat(): duplicate client key "${n}" during hydration. Keys must be unique; entries after the first leak.`),o.set(r,t)}for(let s of t){let t=o.get(s.serializedKey);if(t===void 0){v(s);continue}let c=e.items[t],l=i.normalizeRepeatKey(e.keyFn(c,t),t);if(i.serializeRepeatKey(l)!==s.serializedKey&&console.warn(`[elur] repeat(): hydration key mismatch at index ${t} (${i.deserializeRepeatKey(s.serializedKey)} != ${l}). The SSR item is adopted by position.`),r.has(l)){console.warn(`[elur] repeat(): duplicate key "${l}" during hydration; removing duplicate SSR node.`),v(s);continue}let u=e.renderFn(c,t),d=g({start:s.start,end:s.end},u,n);r.set(l,{start:s.start,end:s.end,cleanup:d??(()=>{})}),a.push(l)}return{state:r,prevOrder:a,cleanup:()=>{for(let e of r.values())e.cleanup()}}}function v(e){let t=e.start.nextSibling;for(;t&&t!==e.end;){let e=t.nextSibling;t.parentNode?.removeChild(t),t=e}e.start.parentNode?.removeChild(e.start),e.end.parentNode?.removeChild(e.end)}function y(e,r){if(r==null||r===!1||r===!0)return;if(Array.isArray(r)){let t=[];for(let n of r){let r=y(e,n);r&&t.push(r)}return t.length?()=>{for(let e=t.length-1;e>=0;e--)t[e]()}:void 0}if(t.isElurTemplate(r))return r._render(e.end.parentNode,e.end);if(n.isElurComponent(r))return r.render()._render(e.end.parentNode,e.end);let i=document.createTextNode(String(r));return e.end.parentNode.insertBefore(i,e.end),()=>i.parentNode?.removeChild(i)}function b(e){let t=e.start.nextSibling;for(;t&&t!==e.end;){if(t.nodeType===Node.TEXT_NODE)return t;t=t.nextSibling}return null}function x(e){let t=e.start.nextSibling;for(;t&&t!==e.end;){let e=t.nextSibling;t.parentNode?.removeChild(t),t=e}}function S(e,t,n,r){let i={index:t,kind:n,message:r};e.onMismatch?.(i);let a=Error(`[elur] Hydration marker mismatch: ${r}`);throw Object.assign(a,{mismatch:i}),a}exports.hydrate=c;
|
|
2
|
+
//# sourceMappingURL=hydrate.cjs.map
|