@effect-app/vue-components 2.5.0 → 2.6.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/dist/vue-components.es10.js +123 -115
- package/dist/vue-components.es12.js +14 -14
- package/dist/vue-components.es16.js +1 -1
- package/dist/vue-components.es17.js +1 -1
- package/dist/vue-components.es20.js +2 -2
- package/dist/vue-components.es21.js +2 -2
- package/dist/vue-components.es30.js +191 -41
- package/dist/vue-components.es32.js +42 -2
- package/dist/vue-components.es33.js +2 -89
- package/dist/vue-components.es34.js +4 -0
- package/dist/vue-components.es35.js +89 -7
- package/dist/vue-components.es37.js +9 -0
- package/dist/vue-components.es38.js +27 -187
- package/dist/vue-components.es40.js +1 -1
- package/dist/vue-components.es7.js +14 -14
- package/package.json +3 -3
- package/src/components/OmegaForm/OmegaFormStuff.ts +8 -8
- package/src/components/OmegaForm/OmegaInternalInput.vue +2 -2
- package/src/components/OmegaForm/useOmegaForm.ts +17 -5
- package/dist/vue-components.es31.js +0 -4
- package/dist/vue-components.es36.js +0 -34
|
@@ -1,194 +1,34 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { defineComponent as m, createElementBlock as d, openBlock as u, withModifiers as f, createElementVNode as l, unref as s, renderSlot as a } from "vue";
|
|
2
|
+
import { useStore as b } from "@tanstack/vue-form";
|
|
3
|
+
import { usePreventClose as p } from "./vue-components.es11.js";
|
|
4
|
+
import { getOmegaStore as c } from "./vue-components.es53.js";
|
|
5
|
+
const S = ["disabled"], V = /* @__PURE__ */ m({
|
|
6
|
+
__name: "OmegaWrapper",
|
|
6
7
|
props: {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
form: {},
|
|
9
|
+
disabled: { type: Boolean },
|
|
10
|
+
subscribe: {}
|
|
10
11
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
setup(o) {
|
|
13
|
+
const e = o, i = b(
|
|
14
|
+
e.form.store,
|
|
15
|
+
(t) => t.isSubmitting
|
|
16
|
+
), n = c(
|
|
17
|
+
e.form,
|
|
18
|
+
e.subscribe
|
|
19
|
+
);
|
|
20
|
+
return e.form.ignorePreventCloseEvents || p(() => e.form.useStore((t) => t.isDirty)), (t, r) => (u(), d("form", {
|
|
21
|
+
novalidate: "",
|
|
22
|
+
onSubmit: r[0] || (r[0] = f((v) => o.form.handleSubmit(), ["prevent", "stop"]))
|
|
23
|
+
}, [
|
|
24
|
+
l("fieldset", {
|
|
25
|
+
disabled: s(i) || o.disabled
|
|
19
26
|
}, [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
name: e.field.name,
|
|
24
|
-
label: e.inputProps.label,
|
|
25
|
-
"error-messages": e.inputProps.errorMessages,
|
|
26
|
-
error: e.inputProps.error,
|
|
27
|
-
ripple: ""
|
|
28
|
-
}, l.$attrs, {
|
|
29
|
-
"model-value": e.state.value,
|
|
30
|
-
onChange: i[0] || (i[0] = (t) => e.field.handleChange(t.target.checked))
|
|
31
|
-
}), d({ _: 2 }, [
|
|
32
|
-
l.$slots.label ? {
|
|
33
|
-
name: "label",
|
|
34
|
-
fn: r(() => [
|
|
35
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
36
|
-
]),
|
|
37
|
-
key: "0"
|
|
38
|
-
} : void 0
|
|
39
|
-
]), 1040, ["id", "name", "label", "error-messages", "error", "model-value"])) : u("", !0),
|
|
40
|
-
e.inputProps.type === "email" || e.inputProps.type === "string" || e.inputProps.type === "password" || e.inputProps.type === "date" ? (a(), n(y, o({
|
|
41
|
-
key: 1,
|
|
42
|
-
id: e.inputProps.id,
|
|
43
|
-
required: e.inputProps.required,
|
|
44
|
-
"min-length": e.inputProps.minLength,
|
|
45
|
-
"max-length": e.inputProps.maxLength,
|
|
46
|
-
type: C(c)(e.inputProps.type),
|
|
47
|
-
name: e.field.name,
|
|
48
|
-
label: e.inputProps.label,
|
|
49
|
-
"error-messages": e.inputProps.errorMessages,
|
|
50
|
-
error: e.inputProps.error
|
|
51
|
-
}, l.$attrs, {
|
|
52
|
-
"model-value": e.state.value,
|
|
53
|
-
"onUpdate:modelValue": e.field.handleChange
|
|
54
|
-
}), d({ _: 2 }, [
|
|
55
|
-
l.$slots.label ? {
|
|
56
|
-
name: "label",
|
|
57
|
-
fn: r(() => [
|
|
58
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
59
|
-
]),
|
|
60
|
-
key: "0"
|
|
61
|
-
} : void 0
|
|
62
|
-
]), 1040, ["id", "required", "min-length", "max-length", "type", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
63
|
-
e.inputProps.type === "text" ? (a(), n(p, o({
|
|
64
|
-
key: 2,
|
|
65
|
-
id: e.inputProps.id,
|
|
66
|
-
required: e.inputProps.required,
|
|
67
|
-
"min-length": e.inputProps.minLength,
|
|
68
|
-
"max-length": e.inputProps.maxLength,
|
|
69
|
-
name: e.field.name,
|
|
70
|
-
label: e.inputProps.label,
|
|
71
|
-
"error-messages": e.inputProps.errorMessages,
|
|
72
|
-
error: e.inputProps.error
|
|
73
|
-
}, l.$attrs, {
|
|
74
|
-
"model-value": e.state.value,
|
|
75
|
-
"onUpdate:modelValue": e.field.handleChange
|
|
76
|
-
}), d({ _: 2 }, [
|
|
77
|
-
l.$slots.label ? {
|
|
78
|
-
name: "label",
|
|
79
|
-
fn: r(() => [
|
|
80
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
81
|
-
]),
|
|
82
|
-
key: "0"
|
|
83
|
-
} : void 0
|
|
84
|
-
]), 1040, ["id", "required", "min-length", "max-length", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
85
|
-
e.inputProps.type === "number" || e.inputProps.type === "range" ? (a(), n(g(e.inputProps.type === "range" ? "v-slider" : "v-text-field"), o({
|
|
86
|
-
key: 3,
|
|
87
|
-
id: e.inputProps.id,
|
|
88
|
-
required: e.inputProps.required,
|
|
89
|
-
min: e.inputProps.min,
|
|
90
|
-
max: e.inputProps.max,
|
|
91
|
-
type: e.inputProps.type,
|
|
92
|
-
name: e.field.name,
|
|
93
|
-
label: e.inputProps.label,
|
|
94
|
-
"error-messages": e.inputProps.errorMessages,
|
|
95
|
-
error: e.inputProps.error
|
|
96
|
-
}, l.$attrs, {
|
|
97
|
-
"model-value": e.state.value,
|
|
98
|
-
"onUpdate:modelValue": i[1] || (i[1] = (t) => {
|
|
99
|
-
t || t === 0 ? e.field.handleChange(Number(t)) : e.field.handleChange(void 0);
|
|
100
|
-
})
|
|
101
|
-
}), d({ _: 2 }, [
|
|
102
|
-
l.$slots.label ? {
|
|
103
|
-
name: "label",
|
|
104
|
-
fn: r(() => [
|
|
105
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
106
|
-
]),
|
|
107
|
-
key: "0"
|
|
108
|
-
} : void 0
|
|
109
|
-
]), 1040, ["id", "required", "min", "max", "type", "name", "label", "error-messages", "error", "model-value"])) : u("", !0),
|
|
110
|
-
e.inputProps.type === "radio" ? (a(), n(h, o({
|
|
111
|
-
key: 4,
|
|
112
|
-
id: e.inputProps.id,
|
|
113
|
-
name: e.field.name,
|
|
114
|
-
label: e.inputProps.label,
|
|
115
|
-
"error-messages": e.inputProps.errorMessages,
|
|
116
|
-
error: e.inputProps.error
|
|
117
|
-
}, l.$attrs, {
|
|
118
|
-
"model-value": e.state.value,
|
|
119
|
-
"onUpdate:modelValue": e.field.handleChange
|
|
120
|
-
}), d({
|
|
121
|
-
default: r(() => [
|
|
122
|
-
(a(!0), v(V, null, U(e.inputProps.options, (t) => (a(), n(f, {
|
|
123
|
-
key: t.value,
|
|
124
|
-
label: t.title,
|
|
125
|
-
value: t.value
|
|
126
|
-
}, null, 8, ["label", "value"]))), 128))
|
|
127
|
-
]),
|
|
128
|
-
_: 2
|
|
129
|
-
}, [
|
|
130
|
-
l.$slots.label ? {
|
|
131
|
-
name: "label",
|
|
132
|
-
fn: r(() => [
|
|
133
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
134
|
-
]),
|
|
135
|
-
key: "0"
|
|
136
|
-
} : void 0
|
|
137
|
-
]), 1040, ["id", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
138
|
-
e.inputProps.type === "select" || e.inputProps.type === "multiple" ? (a(), n(q, o({
|
|
139
|
-
key: 5,
|
|
140
|
-
id: e.inputProps.id,
|
|
141
|
-
clearable: e.inputProps.type === "select",
|
|
142
|
-
required: e.inputProps.required,
|
|
143
|
-
multiple: e.inputProps.type === "multiple",
|
|
144
|
-
chips: e.inputProps.type === "multiple",
|
|
145
|
-
name: e.field.name,
|
|
146
|
-
label: e.inputProps.label,
|
|
147
|
-
items: e.inputProps.options,
|
|
148
|
-
"error-messages": e.inputProps.errorMessages,
|
|
149
|
-
error: e.inputProps.error
|
|
150
|
-
}, l.$attrs, {
|
|
151
|
-
"model-value": e.state.value,
|
|
152
|
-
onClear: i[2] || (i[2] = (t) => e.field.handleChange(void 0)),
|
|
153
|
-
"onUpdate:modelValue": e.field.handleChange
|
|
154
|
-
}), d({ _: 2 }, [
|
|
155
|
-
l.$slots.label ? {
|
|
156
|
-
name: "label",
|
|
157
|
-
fn: r(() => [
|
|
158
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
159
|
-
]),
|
|
160
|
-
key: "0"
|
|
161
|
-
} : void 0
|
|
162
|
-
]), 1040, ["id", "clearable", "required", "multiple", "chips", "name", "label", "items", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
163
|
-
e.inputProps.type === "autocomplete" || e.inputProps.type === "autocompletemultiple" ? (a(), n($, o({
|
|
164
|
-
key: 6,
|
|
165
|
-
id: e.inputProps.id,
|
|
166
|
-
clearable: e.inputProps.type === "autocomplete",
|
|
167
|
-
multiple: e.inputProps.type === "autocompletemultiple",
|
|
168
|
-
required: e.inputProps.required,
|
|
169
|
-
name: e.field.name,
|
|
170
|
-
label: e.inputProps.label,
|
|
171
|
-
items: e.inputProps.options,
|
|
172
|
-
"error-messages": e.inputProps.errorMessages,
|
|
173
|
-
error: e.inputProps.error,
|
|
174
|
-
chips: e.inputProps.type === "autocompletemultiple"
|
|
175
|
-
}, l.$attrs, {
|
|
176
|
-
"model-value": e.state.value,
|
|
177
|
-
onClear: i[3] || (i[3] = (t) => e.field.handleChange(void 0)),
|
|
178
|
-
"onUpdate:modelValue": e.field.handleChange
|
|
179
|
-
}), d({ _: 2 }, [
|
|
180
|
-
l.$slots.label ? {
|
|
181
|
-
name: "label",
|
|
182
|
-
fn: r(() => [
|
|
183
|
-
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
184
|
-
]),
|
|
185
|
-
key: "0"
|
|
186
|
-
} : void 0
|
|
187
|
-
]), 1040, ["id", "clearable", "multiple", "required", "name", "label", "items", "error-messages", "error", "chips", "model-value", "onUpdate:modelValue"])) : u("", !0)
|
|
188
|
-
], 32);
|
|
189
|
-
};
|
|
27
|
+
a(t.$slots, "default", { subscribedValues: s(n) }, void 0, !0)
|
|
28
|
+
], 8, S)
|
|
29
|
+
], 32));
|
|
190
30
|
}
|
|
191
31
|
});
|
|
192
32
|
export {
|
|
193
|
-
|
|
33
|
+
V as default
|
|
194
34
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
import o from "./vue-components.
|
|
2
|
+
import o from "./vue-components.es30.js";
|
|
3
3
|
|
|
4
4
|
export {
|
|
5
5
|
o as default
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
import { defineComponent as
|
|
2
|
+
import { defineComponent as M, computed as n, getCurrentInstance as N, useAttrs as S, useSlots as k, useId as q, renderSlot as m, normalizeProps as s, guardReactiveProps as d, createElementVNode as B, normalizeClass as w, createBlock as I, createCommentVNode as L, unref as A, openBlock as F, mergeProps as O, createSlots as R, withCtx as V } from "vue";
|
|
3
3
|
import { useStore as z } from "@tanstack/vue-form";
|
|
4
|
-
import T from "./vue-components.
|
|
4
|
+
import T from "./vue-components.es30.js";
|
|
5
5
|
|
|
6
|
-
const H = /* @__PURE__ */
|
|
6
|
+
const H = /* @__PURE__ */ M({
|
|
7
7
|
inheritAttrs: !1,
|
|
8
8
|
__name: "OmegaInternalInput",
|
|
9
9
|
props: {
|
|
@@ -19,24 +19,24 @@ const H = /* @__PURE__ */ N({
|
|
|
19
19
|
options: { default: void 0 }
|
|
20
20
|
},
|
|
21
21
|
setup(p) {
|
|
22
|
-
const e = p, l = n(() => e.required ?? e?.meta?.required), f =
|
|
22
|
+
const e = p, l = n(() => e.required ?? e?.meta?.required), f = N()?.appContext.components.VTextField, c = S(), g = k(), v = n(() => {
|
|
23
23
|
const { class: t, ...a } = c;
|
|
24
24
|
return a;
|
|
25
|
-
}), o =
|
|
25
|
+
}), o = q(), h = e.field, y = z(h.store, (t) => t), b = n(() => e.type ? e.type : e.meta?.type === "string" ? e.meta.format === "email" ? "email" : "string" : e.meta?.type || "unknown");
|
|
26
26
|
e.register(n(() => ({ name: e.field.name, label: e.label, id: o })));
|
|
27
27
|
const C = n(() => y.value.meta.errors ?? []), i = n(
|
|
28
28
|
() => (
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
30
|
C.value.map((t) => t?.message).filter(Boolean)
|
|
31
31
|
)
|
|
32
|
-
),
|
|
33
|
-
|
|
32
|
+
), x = (t) => t == null || t === !1 || t === "" || Number.isNaN(t), _ = (t) => {
|
|
33
|
+
x(t) && e.meta?.type !== "boolean" && e.meta?.nullableOrUndefined ? e.field.handleChange(
|
|
34
34
|
e.meta.nullableOrUndefined === "undefined" ? void 0 : null
|
|
35
35
|
) : e.field.handleChange(t), e.field.setMeta((a) => ({ ...a, errorMap: { ...a.errorMap, onSubmit: void 0 } }));
|
|
36
36
|
}, P = (t) => {
|
|
37
37
|
const a = {
|
|
38
38
|
get(E, $, W) {
|
|
39
|
-
return $ === "handleChange" ?
|
|
39
|
+
return $ === "handleChange" ? _ : Reflect.get(...arguments);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
return new Proxy(t, a);
|
|
@@ -46,8 +46,8 @@ const H = /* @__PURE__ */ N({
|
|
|
46
46
|
required: l.value,
|
|
47
47
|
minLength: e.meta?.type === "string" && e.meta?.minLength,
|
|
48
48
|
maxLength: e.meta?.type === "string" && e.meta?.maxLength,
|
|
49
|
-
max: e.meta?.type === "number" && e.meta?.maximum,
|
|
50
|
-
min: e.meta?.type === "number" && e.meta?.minimum,
|
|
49
|
+
max: e.meta?.type === "number" && (e.meta?.maximum || e.meta?.exclusiveMaximum),
|
|
50
|
+
min: e.meta?.type === "number" && (e.meta?.minimum || e.meta?.exclusiveMinimum),
|
|
51
51
|
errorMessages: i.value,
|
|
52
52
|
error: !!i.value.length,
|
|
53
53
|
type: b.value,
|
|
@@ -60,10 +60,10 @@ const H = /* @__PURE__ */ N({
|
|
|
60
60
|
field: P(e.field)
|
|
61
61
|
}));
|
|
62
62
|
return (t, a) => m(t.$slots, "default", s(d({ ...r.value.inputProps, field: r.value.field, state: r.value.state })), () => [
|
|
63
|
-
|
|
64
|
-
class:
|
|
63
|
+
B("div", {
|
|
64
|
+
class: w(t.$attrs.class)
|
|
65
65
|
}, [
|
|
66
|
-
A(f) ? (F(),
|
|
66
|
+
A(f) ? (F(), I(T, s(O({ key: 0 }, { ...v.value, ...r.value, class: e.inputClass })), R({ _: 2 }, [
|
|
67
67
|
t.$slots.label ? {
|
|
68
68
|
name: "label",
|
|
69
69
|
fn: V((u) => [
|
|
@@ -71,7 +71,7 @@ const H = /* @__PURE__ */ N({
|
|
|
71
71
|
]),
|
|
72
72
|
key: "0"
|
|
73
73
|
} : void 0
|
|
74
|
-
]), 1040)) :
|
|
74
|
+
]), 1040)) : L("", !0)
|
|
75
75
|
], 2)
|
|
76
76
|
]);
|
|
77
77
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
6
|
"effect": "^3.18.0",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"highlight.js": "^11.11.1",
|
|
54
54
|
"mitt": "^3.0.1",
|
|
55
55
|
"vue3-highlightjs": "^1.0.5",
|
|
56
|
-
"
|
|
57
|
-
"effect-app": "
|
|
56
|
+
"effect-app": "3.12.0",
|
|
57
|
+
"@effect-app/vue": "2.92.2"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "pnpm build:run",
|
|
@@ -772,7 +772,7 @@ export const generateInputStandardSchemaFromFieldMeta = (
|
|
|
772
772
|
})
|
|
773
773
|
}
|
|
774
774
|
|
|
775
|
-
if (meta.maxLength) {
|
|
775
|
+
if (typeof meta.maxLength === "number") {
|
|
776
776
|
schema = schema.pipe(S.maxLength(meta.maxLength)).annotations({
|
|
777
777
|
message: () =>
|
|
778
778
|
trans("validation.string.maxLength", {
|
|
@@ -780,7 +780,7 @@ export const generateInputStandardSchemaFromFieldMeta = (
|
|
|
780
780
|
})
|
|
781
781
|
})
|
|
782
782
|
}
|
|
783
|
-
if (meta.minLength) {
|
|
783
|
+
if (typeof meta.minLength === "number") {
|
|
784
784
|
schema = schema.pipe(S.minLength(meta.minLength)).annotations({
|
|
785
785
|
message: () =>
|
|
786
786
|
trans("validation.string.minLength", {
|
|
@@ -800,16 +800,16 @@ export const generateInputStandardSchemaFromFieldMeta = (
|
|
|
800
800
|
message: () => trans("validation.empty")
|
|
801
801
|
})
|
|
802
802
|
}
|
|
803
|
-
if (meta.minimum) {
|
|
803
|
+
if (typeof meta.minimum === "number") {
|
|
804
804
|
schema = schema.pipe(S.greaterThanOrEqualTo(meta.minimum)).annotations({
|
|
805
805
|
message: () =>
|
|
806
|
-
trans("validation.number.min", {
|
|
806
|
+
trans(meta.minimum === 0 ? "validation.number.positive" : "validation.number.min", {
|
|
807
807
|
minimum: meta.minimum,
|
|
808
808
|
isExclusive: true
|
|
809
809
|
})
|
|
810
810
|
})
|
|
811
811
|
}
|
|
812
|
-
if (meta.maximum) {
|
|
812
|
+
if (typeof meta.maximum === "number") {
|
|
813
813
|
schema = schema.pipe(S.lessThanOrEqualTo(meta.maximum)).annotations({
|
|
814
814
|
message: () =>
|
|
815
815
|
trans("validation.number.max", {
|
|
@@ -818,16 +818,16 @@ export const generateInputStandardSchemaFromFieldMeta = (
|
|
|
818
818
|
})
|
|
819
819
|
})
|
|
820
820
|
}
|
|
821
|
-
if (meta.exclusiveMinimum) {
|
|
821
|
+
if (typeof meta.exclusiveMinimum === "number") {
|
|
822
822
|
schema = schema.pipe(S.greaterThan(meta.exclusiveMinimum)).annotations({
|
|
823
823
|
message: () =>
|
|
824
|
-
trans("validation.number.min", {
|
|
824
|
+
trans(meta.exclusiveMinimum === 0 ? "validation.number.positive" : "validation.number.min", {
|
|
825
825
|
minimum: meta.exclusiveMinimum,
|
|
826
826
|
isExclusive: false
|
|
827
827
|
})
|
|
828
828
|
})
|
|
829
829
|
}
|
|
830
|
-
if (meta.exclusiveMaximum) {
|
|
830
|
+
if (typeof meta.exclusiveMaximum === "number") {
|
|
831
831
|
schema = schema.pipe(S.lessThan(meta.exclusiveMaximum)).annotations({
|
|
832
832
|
message: () =>
|
|
833
833
|
trans("validation.number.max", {
|
|
@@ -154,8 +154,8 @@ const inputProps: ComputedRef<InputProps<From, Name>> = computed(() => ({
|
|
|
154
154
|
required: isRequired.value,
|
|
155
155
|
minLength: props.meta?.type === "string" && props.meta?.minLength,
|
|
156
156
|
maxLength: props.meta?.type === "string" && props.meta?.maxLength,
|
|
157
|
-
max: props.meta?.type === "number" && props.meta?.maximum,
|
|
158
|
-
min: props.meta?.type === "number" && props.meta?.minimum,
|
|
157
|
+
max: props.meta?.type === "number" && (props.meta?.maximum || props.meta?.exclusiveMaximum),
|
|
158
|
+
min: props.meta?.type === "number" && (props.meta?.minimum || props.meta?.exclusiveMinimum),
|
|
159
159
|
errorMessages: errors.value,
|
|
160
160
|
error: !!errors.value.length,
|
|
161
161
|
type: fieldType.value,
|
|
@@ -677,7 +677,8 @@ export const useOmegaForm = <
|
|
|
677
677
|
// Normalize default values based on schema metadata
|
|
678
678
|
// Convert empty strings to null/undefined for nullable fields
|
|
679
679
|
// Also initialize missing nullable fields with null/undefined
|
|
680
|
-
const normalizeDefaultValues = (values
|
|
680
|
+
const normalizeDefaultValues = (values?: Partial<From>): Partial<From> | undefined => {
|
|
681
|
+
if (!values) return undefined
|
|
681
682
|
const normalized: any = { ...values }
|
|
682
683
|
|
|
683
684
|
// Process all fields in the schema metadata
|
|
@@ -705,11 +706,22 @@ export const useOmegaForm = <
|
|
|
705
706
|
return normalized
|
|
706
707
|
}
|
|
707
708
|
|
|
709
|
+
// Extract default values from schema constructors (e.g., withDefaultConstructor)
|
|
710
|
+
const extractSchemaDefaults = (defaultValues: Partial<From> = {}) => {
|
|
711
|
+
try {
|
|
712
|
+
// Note: Partial schemas don't have .make() method yet (https://github.com/Effect-TS/effect/issues/4222)
|
|
713
|
+
if ("make" in schema && typeof (schema as any).make === "function") {
|
|
714
|
+
return (schema as any).make(defaultValues, { disableValidation: true })
|
|
715
|
+
}
|
|
716
|
+
} catch (error) {
|
|
717
|
+
console.warn("Could not extract schema constructor defaults:", error)
|
|
718
|
+
return {}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
|
|
708
722
|
const defaultValues = computed(() => {
|
|
709
723
|
// Normalize tanstack default values at the beginning
|
|
710
|
-
const normalizedTanstackDefaults = tanstackFormOptions?.defaultValues
|
|
711
|
-
? normalizeDefaultValues(tanstackFormOptions.defaultValues)
|
|
712
|
-
: undefined
|
|
724
|
+
const normalizedTanstackDefaults = extractSchemaDefaults(normalizeDefaultValues(tanstackFormOptions?.defaultValues))
|
|
713
725
|
|
|
714
726
|
if (
|
|
715
727
|
normalizedTanstackDefaults
|
|
@@ -764,7 +776,7 @@ export const useOmegaForm = <
|
|
|
764
776
|
}
|
|
765
777
|
|
|
766
778
|
// to be sure we have a valid object at the end of the gathering process
|
|
767
|
-
defValuesPatch ??= {}
|
|
779
|
+
defValuesPatch ??= extractSchemaDefaults({})
|
|
768
780
|
|
|
769
781
|
if (!normalizedTanstackDefaults) {
|
|
770
782
|
// we just return what we gathered from the query/storage
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { defineComponent as m, createElementBlock as d, openBlock as u, withModifiers as f, createElementVNode as l, unref as s, renderSlot as a } from "vue";
|
|
2
|
-
import { useStore as b } from "@tanstack/vue-form";
|
|
3
|
-
import { usePreventClose as p } from "./vue-components.es11.js";
|
|
4
|
-
import { getOmegaStore as c } from "./vue-components.es53.js";
|
|
5
|
-
const S = ["disabled"], V = /* @__PURE__ */ m({
|
|
6
|
-
__name: "OmegaWrapper",
|
|
7
|
-
props: {
|
|
8
|
-
form: {},
|
|
9
|
-
disabled: { type: Boolean },
|
|
10
|
-
subscribe: {}
|
|
11
|
-
},
|
|
12
|
-
setup(o) {
|
|
13
|
-
const e = o, i = b(
|
|
14
|
-
e.form.store,
|
|
15
|
-
(t) => t.isSubmitting
|
|
16
|
-
), n = c(
|
|
17
|
-
e.form,
|
|
18
|
-
e.subscribe
|
|
19
|
-
);
|
|
20
|
-
return e.form.ignorePreventCloseEvents || p(() => e.form.useStore((t) => t.isDirty)), (t, r) => (u(), d("form", {
|
|
21
|
-
novalidate: "",
|
|
22
|
-
onSubmit: r[0] || (r[0] = f((v) => o.form.handleSubmit(), ["prevent", "stop"]))
|
|
23
|
-
}, [
|
|
24
|
-
l("fieldset", {
|
|
25
|
-
disabled: s(i) || o.disabled
|
|
26
|
-
}, [
|
|
27
|
-
a(t.$slots, "default", { subscribedValues: s(n) }, void 0, !0)
|
|
28
|
-
], 8, S)
|
|
29
|
-
], 32));
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
export {
|
|
33
|
-
V as default
|
|
34
|
-
};
|