@effect-app/vue-components 3.0.1 → 3.0.2
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 +26 -22
- package/dist/vue-components.es11.js +2 -2
- package/dist/vue-components.es12.js +1 -1
- package/dist/vue-components.es16.js +11 -4
- package/dist/vue-components.es17.js +4 -10
- package/dist/vue-components.es18.js +10 -55
- package/dist/vue-components.es19.js +50 -63
- package/dist/vue-components.es20.js +68 -6
- package/dist/vue-components.es21.js +5 -5
- package/dist/vue-components.es22.js +6 -3
- package/dist/vue-components.es23.js +3 -3
- package/dist/vue-components.es24.js +3 -2
- package/dist/vue-components.es25.js +1 -1
- package/dist/vue-components.es26.js +1 -1
- package/dist/vue-components.es27.js +1 -1
- package/dist/vue-components.es28.js +2 -17
- package/dist/vue-components.es29.js +16 -10
- package/dist/vue-components.es30.js +41 -191
- package/dist/vue-components.es32.js +2 -42
- package/dist/vue-components.es33.js +111 -2
- package/dist/vue-components.es35.js +7 -111
- package/dist/vue-components.es36.js +34 -0
- package/dist/vue-components.es38.js +187 -27
- package/dist/vue-components.es40.js +1 -1
- package/dist/vue-components.es5.js +1 -1
- package/dist/vue-components.es6.js +31 -37
- package/dist/vue-components.es7.js +1 -1
- package/package.json +1 -1
- package/src/components/OmegaForm/OmegaInput.vue +0 -13
- package/src/components/OmegaForm/OmegaInternalInput.vue +1 -0
- package/src/components/OmegaForm/useOmegaForm.ts +12 -2
- package/src/components/OmegaForm/useRegisterField.ts +3 -1
- package/dist/vue-components.es37.js +0 -9
- /package/dist/{vue-components.es34.js → vue-components.es31.js} +0 -0
|
@@ -1,34 +1,194 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
__name: "OmegaWrapper",
|
|
1
|
+
import { defineComponent as k, resolveComponent as b, createElementBlock as v, openBlock as a, createBlock as n, createCommentVNode as u, resolveDynamicComponent as g, mergeProps as o, createSlots as d, withCtx as r, renderSlot as m, normalizeProps as s, guardReactiveProps as P, unref as C, Fragment as V, renderList as U } from "vue";
|
|
2
|
+
import { getInputType as c } from "./vue-components.es12.js";
|
|
3
|
+
const w = /* @__PURE__ */ k({
|
|
4
|
+
inheritAttrs: !1,
|
|
5
|
+
__name: "OmegaInputVuetify",
|
|
7
6
|
props: {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
inputProps: {},
|
|
8
|
+
field: {},
|
|
9
|
+
state: {}
|
|
11
10
|
},
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
11
|
+
emits: ["focus", "blur"],
|
|
12
|
+
setup(e) {
|
|
13
|
+
return (l, i) => {
|
|
14
|
+
const y = b("v-text-field"), p = b("v-textarea"), f = b("v-radio"), h = b("v-radio-group"), q = b("v-select"), $ = b("v-autocomplete");
|
|
15
|
+
return a(), v("div", {
|
|
16
|
+
class: "omega-input",
|
|
17
|
+
onFocusout: i[4] || (i[4] = (t) => l.$emit("blur", t)),
|
|
18
|
+
onFocusin: i[5] || (i[5] = (t) => l.$emit("focus", t))
|
|
26
19
|
}, [
|
|
27
|
-
a(
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
e.inputProps.type === "boolean" || e.inputProps.type === "switch" ? (a(), n(g(e.inputProps.type === "boolean" ? "v-checkbox" : "v-switch"), o({
|
|
21
|
+
key: 0,
|
|
22
|
+
id: e.inputProps.id,
|
|
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
|
+
};
|
|
30
190
|
}
|
|
31
191
|
});
|
|
32
192
|
export {
|
|
33
|
-
|
|
193
|
+
w as default
|
|
34
194
|
};
|
|
@@ -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.es38.js";
|
|
3
3
|
|
|
4
4
|
export {
|
|
5
5
|
o as default
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as v, mergeModels as C, useModel as k, useSlots as V, computed as _, resolveComponent as g, createBlock as y, openBlock as B, unref as a, createSlots as E, withCtx as u, renderSlot as d, renderList as M, normalizeProps as S, guardReactiveProps as w } from "vue";
|
|
2
2
|
import { useOnClose as L } from "./vue-components.es11.js";
|
|
3
|
-
import { onMountedWithCleanup as h } from "./vue-components.
|
|
3
|
+
import { onMountedWithCleanup as h } from "./vue-components.es16.js";
|
|
4
4
|
const z = /* @__PURE__ */ v({
|
|
5
5
|
__name: "Dialog",
|
|
6
6
|
props: /* @__PURE__ */ C({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as F, computed as
|
|
2
|
-
import { useIntl as
|
|
3
|
-
import { generateInputStandardSchemaFromFieldMeta as
|
|
4
|
-
import
|
|
5
|
-
import { useErrorLabel as
|
|
1
|
+
import { defineComponent as F, computed as o, useAttrs as $, inject as k, createBlock as u, openBlock as i, resolveDynamicComponent as A, withCtx as m, createCommentVNode as M, mergeProps as S, unref as w, createSlots as I, renderSlot as f, normalizeProps as c, guardReactiveProps as d } from "vue";
|
|
2
|
+
import { useIntl as P } from "./vue-components.es3.js";
|
|
3
|
+
import { generateInputStandardSchemaFromFieldMeta as j } from "./vue-components.es12.js";
|
|
4
|
+
import B from "./vue-components.es7.js";
|
|
5
|
+
import { useErrorLabel as E } from "./vue-components.es10.js";
|
|
6
6
|
const V = /* @__PURE__ */ F({
|
|
7
7
|
inheritAttrs: !1,
|
|
8
8
|
__name: "OmegaInput",
|
|
@@ -13,52 +13,46 @@ const V = /* @__PURE__ */ F({
|
|
|
13
13
|
name: {},
|
|
14
14
|
inputClass: {}
|
|
15
15
|
},
|
|
16
|
-
setup(
|
|
17
|
-
const e =
|
|
16
|
+
setup(t) {
|
|
17
|
+
const e = t, l = o(() => e.name), v = $(), p = o(() => {
|
|
18
18
|
if (e.inputClass !== null)
|
|
19
|
-
return e.inputClass !== void 0 ? e.inputClass :
|
|
20
|
-
}),
|
|
19
|
+
return e.inputClass !== void 0 ? e.inputClass : v.class;
|
|
20
|
+
}), n = k(
|
|
21
21
|
"getMetaFromArray",
|
|
22
22
|
null
|
|
23
|
-
),
|
|
24
|
-
|
|
25
|
-
if (!t) return n.value;
|
|
26
|
-
const r = t;
|
|
27
|
-
return `${n.value}-${r.type}-${r.minLength ?? ""}-${r.maxLength ?? ""}-${r.minimum ?? ""}-${r.maximum ?? ""}`;
|
|
28
|
-
}), { trans: C } = j(), b = l(() => {
|
|
29
|
-
if (!o.value)
|
|
23
|
+
), r = o(() => n?.value && n.value(e.name) ? n.value(l.value) : e.form.meta[l.value]), { trans: g } = P(), C = o(() => {
|
|
24
|
+
if (!r.value)
|
|
30
25
|
throw console.log(e.name, Object.keys(e.form.meta), e.form.meta), new Error("Meta is undefined");
|
|
31
|
-
return
|
|
32
|
-
}),
|
|
33
|
-
return (
|
|
34
|
-
|
|
35
|
-
name: a.name,
|
|
26
|
+
return j(r.value, g);
|
|
27
|
+
}), b = E(e.form);
|
|
28
|
+
return (a, N) => (i(), u(A(t.form.Field), {
|
|
29
|
+
name: t.name,
|
|
36
30
|
validators: {
|
|
37
|
-
onChange:
|
|
38
|
-
...
|
|
31
|
+
onChange: C.value,
|
|
32
|
+
...t.validators
|
|
39
33
|
}
|
|
40
34
|
}, {
|
|
41
|
-
default:
|
|
42
|
-
|
|
43
|
-
field:
|
|
44
|
-
state:
|
|
45
|
-
register:
|
|
46
|
-
label:
|
|
47
|
-
meta:
|
|
48
|
-
}),
|
|
49
|
-
default:
|
|
50
|
-
|
|
35
|
+
default: m(({ field: h, state: y }) => [
|
|
36
|
+
r.value ? (i(), u(B, S({ key: 0 }, { ...a.$attrs, ...a.$props, inputClass: p.value }, {
|
|
37
|
+
field: h,
|
|
38
|
+
state: y,
|
|
39
|
+
register: t.form.registerField,
|
|
40
|
+
label: t.label ?? w(b)(l.value),
|
|
41
|
+
meta: r.value
|
|
42
|
+
}), I({
|
|
43
|
+
default: m((s) => [
|
|
44
|
+
f(a.$slots, "default", c(d(s)))
|
|
51
45
|
]),
|
|
52
46
|
_: 2
|
|
53
47
|
}, [
|
|
54
|
-
|
|
48
|
+
a.$slots.label ? {
|
|
55
49
|
name: "label",
|
|
56
|
-
fn:
|
|
57
|
-
|
|
50
|
+
fn: m((s) => [
|
|
51
|
+
f(a.$slots, "label", c(d(s)))
|
|
58
52
|
]),
|
|
59
53
|
key: "0"
|
|
60
54
|
} : void 0
|
|
61
|
-
]), 1040, ["field", "state", "register", "label", "meta"])) :
|
|
55
|
+
]), 1040, ["field", "state", "register", "label", "meta"])) : M("", !0)
|
|
62
56
|
]),
|
|
63
57
|
_: 3
|
|
64
58
|
}, 8, ["name", "validators"]));
|
|
@@ -1,7 +1,7 @@
|
|
|
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
2
|
import { defineComponent as N, computed as n, getCurrentInstance as k, useAttrs as q, useSlots as B, useId as S, renderSlot as d, normalizeProps as s, guardReactiveProps as p, createElementVNode as w, normalizeClass as F, createBlock as I, createCommentVNode as L, unref as A, openBlock as O, mergeProps as R, createSlots as V, withCtx as z } from "vue";
|
|
3
3
|
import { useStore as f } from "@tanstack/vue-form";
|
|
4
|
-
import T from "./vue-components.
|
|
4
|
+
import T from "./vue-components.es38.js";
|
|
5
5
|
|
|
6
6
|
const H = /* @__PURE__ */ N({
|
|
7
7
|
inheritAttrs: !1,
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<component
|
|
3
3
|
:is="form.Field"
|
|
4
|
-
:key="fieldKey"
|
|
5
4
|
:name="name"
|
|
6
5
|
:validators="{
|
|
7
6
|
onChange: schema,
|
|
@@ -82,18 +81,6 @@ const meta = computed(() => {
|
|
|
82
81
|
return props.form.meta[propsName.value]
|
|
83
82
|
})
|
|
84
83
|
|
|
85
|
-
// Key to force Field re-mount when meta type changes (for TaggedUnion support)
|
|
86
|
-
const fieldKey = computed(() => {
|
|
87
|
-
const m = meta.value
|
|
88
|
-
if (!m) return propsName.value
|
|
89
|
-
// Include type and key constraints in the key so Field re-mounts when validation rules change
|
|
90
|
-
// Cast to any since not all FieldMeta variants have these properties
|
|
91
|
-
const fm = m as any
|
|
92
|
-
return `${propsName.value}-${fm.type}-${fm.minLength ?? ""}-${fm.maxLength ?? ""}-${fm.minimum ?? ""}-${
|
|
93
|
-
fm.maximum ?? ""
|
|
94
|
-
}`
|
|
95
|
-
})
|
|
96
|
-
|
|
97
84
|
// Call useIntl during setup to avoid issues when computed re-evaluates
|
|
98
85
|
const { trans } = useIntl()
|
|
99
86
|
|
|
@@ -102,6 +102,7 @@ props.register(computed(() => ({ name: props.field.name, label: props.label, id
|
|
|
102
102
|
// This ensures errors persist when Field components re-mount due to :key changes
|
|
103
103
|
const _errors = computed(() => {
|
|
104
104
|
const fieldMeta = formFieldMeta.value[props.field.name] as any
|
|
105
|
+
// Treat errors as an array (like useOmegaForm does)
|
|
105
106
|
return fieldMeta?.errors ?? []
|
|
106
107
|
})
|
|
107
108
|
const errors = computed(() =>
|
|
@@ -962,8 +962,18 @@ export const useOmegaForm = <
|
|
|
962
962
|
// /** @experimental */
|
|
963
963
|
handleSubmitEffect,
|
|
964
964
|
registerField: (field: ComputedRef<{ name: string; label: string; id: string }>) => {
|
|
965
|
-
watch(field, (f) =>
|
|
966
|
-
|
|
965
|
+
watch(field, (f) => {
|
|
966
|
+
fieldMap.value.set(f.name, { label: f.label, id: f.id })
|
|
967
|
+
}, { immediate: true })
|
|
968
|
+
onUnmounted(() => {
|
|
969
|
+
// Only delete if we still own this entry (id matches)
|
|
970
|
+
// This prevents old components from deleting entries registered by new components
|
|
971
|
+
// during re-mount transitions (e.g., when :key changes)
|
|
972
|
+
const currentEntry = fieldMap.value.get(field.value.name)
|
|
973
|
+
if (currentEntry?.id === field.value.id) {
|
|
974
|
+
fieldMap.value.delete(field.value.name)
|
|
975
|
+
}
|
|
976
|
+
})
|
|
967
977
|
}
|
|
968
978
|
})
|
|
969
979
|
|
|
@@ -5,7 +5,9 @@ const Key = Symbol("injected") as InjectionKey<Map<string, { label: string; id:
|
|
|
5
5
|
|
|
6
6
|
export const useRegisterField = (field: ComputedRef<{ name: string; label: string; id: string }>) => {
|
|
7
7
|
const map = injectCertain(Key)
|
|
8
|
-
watch(field, (f) =>
|
|
8
|
+
watch(field, (f) => {
|
|
9
|
+
map.set(f.name, { label: f.label, id: f.id })
|
|
10
|
+
}, { immediate: true })
|
|
9
11
|
onUnmounted(() => map.delete(field.value.name)) // todo; perhap only when owned
|
|
10
12
|
}
|
|
11
13
|
|
|
File without changes
|