@effect-app/vue-components 4.0.0-beta.27 → 4.0.0-beta.271
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/README.md +13 -9
- package/dist/reset.css +39 -38
- package/dist/types/components/CommandButton.vue.d.ts +24 -5
- package/dist/types/components/OmegaForm/InputProps.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaArray.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaAutoGen.vue.d.ts +2 -2
- package/dist/types/components/OmegaForm/OmegaErrorsInternal.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaFormInput.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaInput.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaInternalInput.vue.d.ts +2 -1
- package/dist/types/components/OmegaForm/OmegaTaggedUnion.vue.d.ts +2 -2
- package/dist/types/components/OmegaForm/OmegaTaggedUnionInternal.vue.d.ts +3 -3
- package/dist/types/components/OmegaForm/OmegaWrapper.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/createUseFormWithCustomInput.d.ts +2 -2
- package/dist/types/components/OmegaForm/errors.d.ts +33 -0
- package/dist/types/components/OmegaForm/getOmegaStore.d.ts +1 -1
- package/dist/types/components/OmegaForm/hocs.d.ts +3 -0
- package/dist/types/components/OmegaForm/index.d.ts +13 -3
- package/dist/types/components/OmegaForm/inputs.d.ts +4 -0
- package/dist/types/components/OmegaForm/meta/checks.d.ts +4 -0
- package/dist/types/components/OmegaForm/meta/createMeta.d.ts +33 -0
- package/dist/types/components/OmegaForm/meta/defaults.d.ts +21 -0
- package/dist/types/components/OmegaForm/meta/redacted.d.ts +2 -0
- package/dist/types/components/OmegaForm/meta/types.d.ts +56 -0
- package/dist/types/components/OmegaForm/meta/walker.d.ts +18 -0
- package/dist/types/components/OmegaForm/persistency.d.ts +58 -0
- package/dist/types/components/OmegaForm/submit.d.ts +60 -0
- package/dist/types/components/OmegaForm/types.d.ts +289 -0
- package/dist/types/components/OmegaForm/useOmegaForm.d.ts +7 -213
- package/dist/types/components/OmegaForm/validation/localized.d.ts +10 -0
- package/dist/types/index.d.ts +0 -1
- package/dist/types/utils/index.d.ts +8 -8
- package/dist/vue-components.es.js +29 -44
- package/dist/vue-components10.es.js +5 -0
- package/dist/vue-components11.es.js +20 -0
- package/dist/vue-components12.es.js +49 -0
- package/dist/vue-components13.es.js +128 -0
- package/dist/vue-components14.es.js +65 -0
- package/dist/vue-components15.es.js +114 -0
- package/dist/vue-components16.es.js +22 -0
- package/dist/vue-components17.es.js +5 -0
- package/dist/vue-components18.es.js +80 -0
- package/dist/vue-components19.es.js +93 -0
- package/dist/vue-components2.es.js +11 -0
- package/dist/vue-components20.es.js +73 -0
- package/dist/vue-components21.es.js +12 -0
- package/dist/vue-components22.es.js +56 -0
- package/dist/vue-components23.es.js +5 -0
- package/dist/vue-components24.es.js +44 -0
- package/dist/vue-components25.es.js +5 -0
- package/dist/vue-components26.es.js +84 -0
- package/dist/vue-components28.es.js +8 -0
- package/dist/vue-components29.es.js +9 -0
- package/dist/vue-components3.es.js +98 -0
- package/dist/vue-components30.es.js +269 -0
- package/dist/vue-components32.es.js +8 -0
- package/dist/vue-components33.es.js +73 -0
- package/dist/vue-components34.es.js +5 -0
- package/dist/vue-components35.es.js +52 -0
- package/dist/vue-components36.es.js +5 -0
- package/dist/vue-components37.es.js +24 -0
- package/dist/vue-components38.es.js +5 -0
- package/dist/vue-components39.es.js +59 -0
- package/dist/vue-components4.es.js +5 -0
- package/dist/vue-components40.es.js +5 -0
- package/dist/vue-components41.es.js +12 -0
- package/dist/vue-components42.es.js +22 -0
- package/dist/vue-components44.es.js +9 -0
- package/dist/vue-components45.es.js +4 -0
- package/dist/vue-components46.es.js +38 -0
- package/dist/vue-components47.es.js +27 -0
- package/dist/vue-components48.es.js +28 -0
- package/dist/vue-components49.es.js +7 -0
- package/dist/vue-components5.es.js +24 -0
- package/dist/vue-components50.es.js +18 -0
- package/dist/vue-components51.es.js +36 -0
- package/dist/vue-components52.es.js +18 -0
- package/dist/vue-components53.es.js +21 -0
- package/dist/vue-components54.es.js +30 -0
- package/dist/vue-components55.es.js +7 -0
- package/dist/vue-components56.es.js +9 -0
- package/dist/vue-components57.es.js +38 -0
- package/dist/vue-components58.es.js +25 -0
- package/dist/vue-components59.es.js +128 -0
- package/dist/vue-components6.es.js +13 -0
- package/dist/vue-components60.es.js +24 -0
- package/dist/vue-components61.es.js +21 -0
- package/dist/vue-components62.es.js +9 -0
- package/dist/vue-components63.es.js +19 -0
- package/dist/vue-components64.es.js +5 -0
- package/dist/vue-components65.es.js +29 -0
- package/dist/vue-components66.es.js +5 -0
- package/dist/vue-components67.es.js +43 -0
- package/dist/vue-components68.es.js +100 -0
- package/dist/vue-components69.es.js +33 -0
- package/dist/vue-components7.es.js +13 -0
- package/dist/vue-components70.es.js +19 -0
- package/dist/vue-components71.es.js +48 -0
- package/dist/vue-components8.es.js +35 -0
- package/dist/vue-components9.es.js +47 -0
- package/package.json +30 -30
- package/src/components/CommandButton.vue +96 -16
- package/src/components/OmegaForm/InputProps.ts +1 -1
- package/src/components/OmegaForm/OmegaArray.vue +8 -9
- package/src/components/OmegaForm/OmegaAutoGen.vue +3 -2
- package/src/components/OmegaForm/OmegaErrorsInternal.vue +1 -1
- package/src/components/OmegaForm/OmegaFormInput.vue +1 -1
- package/src/components/OmegaForm/OmegaInput.vue +15 -38
- package/src/components/OmegaForm/OmegaInputVuetify.vue +5 -2
- package/src/components/OmegaForm/OmegaInternalInput.vue +17 -5
- package/src/components/OmegaForm/OmegaTaggedUnion.vue +10 -3
- package/src/components/OmegaForm/OmegaTaggedUnionInternal.vue +6 -6
- package/src/components/OmegaForm/OmegaWrapper.vue +1 -1
- package/src/components/OmegaForm/blockDialog.ts +18 -6
- package/src/components/OmegaForm/createUseFormWithCustomInput.ts +2 -1
- package/src/components/OmegaForm/errors.ts +136 -0
- package/src/components/OmegaForm/getOmegaStore.ts +1 -1
- package/src/components/OmegaForm/hocs.ts +19 -0
- package/src/components/OmegaForm/index.ts +16 -4
- package/src/components/OmegaForm/inputs.ts +22 -0
- package/src/components/OmegaForm/meta/checks.ts +82 -0
- package/src/components/OmegaForm/meta/createMeta.ts +140 -0
- package/src/components/OmegaForm/meta/defaults.ts +261 -0
- package/src/components/OmegaForm/meta/redacted.ts +66 -0
- package/src/components/OmegaForm/meta/types.ts +78 -0
- package/src/components/OmegaForm/meta/walker.ts +248 -0
- package/src/components/OmegaForm/persistency.ts +247 -0
- package/src/components/OmegaForm/submit.ts +131 -0
- package/src/components/OmegaForm/types.ts +759 -0
- package/src/components/OmegaForm/useOmegaForm.ts +99 -893
- package/src/components/OmegaForm/useRegisterField.ts +1 -1
- package/src/components/OmegaForm/validation/localized.ts +203 -0
- package/src/index.ts +0 -1
- package/src/reset.css +39 -38
- package/src/utils/index.ts +11 -8
- package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +0 -159
- package/dist/types/constants/index.d.ts +0 -1
- package/dist/vue-components.es10.js +0 -239
- package/dist/vue-components.es11.js +0 -32
- package/dist/vue-components.es12.js +0 -503
- package/dist/vue-components.es13.js +0 -49
- package/dist/vue-components.es14.js +0 -4
- package/dist/vue-components.es15.js +0 -4
- package/dist/vue-components.es16.js +0 -13
- package/dist/vue-components.es17.js +0 -6
- package/dist/vue-components.es18.js +0 -13
- package/dist/vue-components.es19.js +0 -57
- package/dist/vue-components.es2.js +0 -30
- package/dist/vue-components.es20.js +0 -56
- package/dist/vue-components.es21.js +0 -8
- package/dist/vue-components.es22.js +0 -8
- package/dist/vue-components.es23.js +0 -5
- package/dist/vue-components.es24.js +0 -5
- package/dist/vue-components.es25.js +0 -4
- package/dist/vue-components.es26.js +0 -4
- package/dist/vue-components.es27.js +0 -4
- package/dist/vue-components.es28.js +0 -4
- package/dist/vue-components.es29.js +0 -19
- package/dist/vue-components.es3.js +0 -17
- package/dist/vue-components.es30.js +0 -194
- package/dist/vue-components.es32.js +0 -31
- package/dist/vue-components.es33.js +0 -6
- package/dist/vue-components.es34.js +0 -4
- package/dist/vue-components.es35.js +0 -4
- package/dist/vue-components.es36.js +0 -113
- package/dist/vue-components.es38.js +0 -9
- package/dist/vue-components.es39.js +0 -34
- package/dist/vue-components.es4.js +0 -52
- package/dist/vue-components.es41.js +0 -6
- package/dist/vue-components.es42.js +0 -25
- package/dist/vue-components.es43.js +0 -7
- package/dist/vue-components.es44.js +0 -23
- package/dist/vue-components.es45.js +0 -32
- package/dist/vue-components.es46.js +0 -24
- package/dist/vue-components.es47.js +0 -14
- package/dist/vue-components.es48.js +0 -7
- package/dist/vue-components.es49.js +0 -21
- package/dist/vue-components.es5.js +0 -52
- package/dist/vue-components.es50.js +0 -11
- package/dist/vue-components.es51.js +0 -33
- package/dist/vue-components.es52.js +0 -50
- package/dist/vue-components.es53.js +0 -28
- package/dist/vue-components.es54.js +0 -13
- package/dist/vue-components.es55.js +0 -31
- package/dist/vue-components.es56.js +0 -67
- package/dist/vue-components.es57.js +0 -58
- package/dist/vue-components.es58.js +0 -19
- package/dist/vue-components.es59.js +0 -35
- package/dist/vue-components.es6.js +0 -69
- package/dist/vue-components.es60.js +0 -44
- package/dist/vue-components.es61.js +0 -4
- package/dist/vue-components.es62.js +0 -46
- package/dist/vue-components.es63.js +0 -4
- package/dist/vue-components.es7.js +0 -83
- package/dist/vue-components.es8.js +0 -63
- package/dist/vue-components.es9.js +0 -21
- package/src/components/OmegaForm/OmegaFormStuff.ts +0 -1276
- package/src/constants/index.ts +0 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { useIntl as e } from "./vue-components6.es.js";
|
|
2
|
+
import { generateMetaFromSchema as t, unwrapDeclaration as n } from "./vue-components14.es.js";
|
|
3
|
+
import { defaultsValueFromSchema as r, fillNestedDefaults as i } from "./vue-components15.es.js";
|
|
4
|
+
import { toFormSchema as a } from "./vue-components16.es.js";
|
|
5
|
+
import { usePersistency as o } from "./vue-components18.es.js";
|
|
6
|
+
import { annotateLiteralUnionMessages as s, toLocalizedStandardSchemaV1 as c } from "./vue-components19.es.js";
|
|
7
|
+
import { eHoc as l, makeFieldMap as u } from "./vue-components20.es.js";
|
|
8
|
+
import { fHoc as d } from "./vue-components21.es.js";
|
|
9
|
+
import f from "./vue-components23.es.js";
|
|
10
|
+
import p from "./vue-components25.es.js";
|
|
11
|
+
import m from "./vue-components29.es.js";
|
|
12
|
+
import h from "./vue-components36.es.js";
|
|
13
|
+
import g from "./vue-components40.es.js";
|
|
14
|
+
import _ from "./vue-components44.es.js";
|
|
15
|
+
import { makeSubmitHandlers as v, wrapOnSubmit as y } from "./vue-components67.es.js";
|
|
16
|
+
import { watch as b } from "vue";
|
|
17
|
+
import * as x from "effect-app/Schema";
|
|
18
|
+
import { revalidateLogic as S, useForm as C } from "@tanstack/vue-form";
|
|
19
|
+
import * as w from "effect-app/Context";
|
|
20
|
+
import { makeRunPromise as T } from "@effect-app/vue/runtime";
|
|
21
|
+
//#region src/components/OmegaForm/useOmegaForm.ts
|
|
22
|
+
var E = Symbol("OmegaForm"), D = T(w.empty()), O = (w, T, E) => {
|
|
23
|
+
if (!w) throw Error("Schema is required");
|
|
24
|
+
let { trans: O } = e(), k = a(w), A = s(k, O), j = n(k.ast), M = (e) => i(j, e), N = c(A, O), P = {
|
|
25
|
+
...N,
|
|
26
|
+
"~standard": {
|
|
27
|
+
...N["~standard"],
|
|
28
|
+
validate: (e) => N["~standard"].validate(M(e))
|
|
29
|
+
}
|
|
30
|
+
}, F = x.decodeUnknownEffectConcurrently(k), I = (e) => F(M(e)), { meta: L, unionMeta: R } = t(k), z = { form: void 0 }, B = o({
|
|
31
|
+
meta: L,
|
|
32
|
+
persistency: E?.persistency,
|
|
33
|
+
preventWindowExit: E?.preventWindowExit,
|
|
34
|
+
defaultValuesPriority: E?.defaultValuesPriority,
|
|
35
|
+
tanstackDefaultValues: T?.defaultValues,
|
|
36
|
+
schemaDefaultValues: () => r(w),
|
|
37
|
+
getForm: () => z.form
|
|
38
|
+
}), V = C({
|
|
39
|
+
...T,
|
|
40
|
+
validationLogic: S(),
|
|
41
|
+
validators: {
|
|
42
|
+
onDynamic: P,
|
|
43
|
+
...T?.validators
|
|
44
|
+
},
|
|
45
|
+
onSubmit: y(T?.onSubmit, I, D),
|
|
46
|
+
defaultValues: B.defaultValues.value
|
|
47
|
+
});
|
|
48
|
+
z.form = V;
|
|
49
|
+
let H = () => {
|
|
50
|
+
let e = V.state.values, t = i(j, e);
|
|
51
|
+
if (t === e || !t || typeof t != "object") return;
|
|
52
|
+
let n = e, r = t;
|
|
53
|
+
for (let e of Object.keys(r)) if (r[e] !== n[e]) {
|
|
54
|
+
let t = e;
|
|
55
|
+
V.setFieldValue(t, r[e], {
|
|
56
|
+
dontUpdateMeta: !0,
|
|
57
|
+
dontValidate: !0
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, U = () => {
|
|
61
|
+
Object.keys(L).forEach((e) => {
|
|
62
|
+
V.setFieldValue(e, void 0);
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
if (E?.preventWindowExit === "prevent-and-reset") {
|
|
66
|
+
let e = V.useStore((e) => e.isSubmitting), t = V.useStore((e) => e.submissionAttempts), n = V.useStore((e) => e.canSubmit), r = V.useStore((e) => e.values);
|
|
67
|
+
b([e, t], ([e, t], [i]) => {
|
|
68
|
+
i && !e && t > 0 && n.value && V.reset(r.value);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
let { handleSubmit: W, handleSubmitEffect: G } = v(V), { fieldMap: K, registerField: q } = u(), J = Object.assign(V, {
|
|
72
|
+
i18nNamespace: E?.i18nNamespace,
|
|
73
|
+
ignorePreventCloseEvents: E?.ignorePreventCloseEvents,
|
|
74
|
+
meta: L,
|
|
75
|
+
unionMeta: R,
|
|
76
|
+
clear: U,
|
|
77
|
+
normalizeNullableStructs: H,
|
|
78
|
+
handleSubmit: W,
|
|
79
|
+
handleSubmitEffect: G,
|
|
80
|
+
registerField: q
|
|
81
|
+
}), Y = {
|
|
82
|
+
form: J,
|
|
83
|
+
fieldMap: K
|
|
84
|
+
};
|
|
85
|
+
return Object.assign(J, {
|
|
86
|
+
_paths: void 0,
|
|
87
|
+
_keys: void 0,
|
|
88
|
+
_schema: w,
|
|
89
|
+
errorContext: Y,
|
|
90
|
+
Form: d(J)(_),
|
|
91
|
+
Input: d(J)(E?.input ?? h),
|
|
92
|
+
TaggedUnion: d(J)(g),
|
|
93
|
+
Field: V.Field,
|
|
94
|
+
Errors: l(Y)(m),
|
|
95
|
+
Array: d(J)(f),
|
|
96
|
+
AutoGen: d(J)(p)
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
//#endregion
|
|
100
|
+
export { E as OmegaFormKey, O as useOmegaForm };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import e from "./vue-components36.es.js";
|
|
2
|
+
import { useOmegaForm as t } from "./vue-components68.es.js";
|
|
3
|
+
import { h as n } from "vue";
|
|
4
|
+
//#region src/components/OmegaForm/createUseFormWithCustomInput.ts
|
|
5
|
+
var r = (r) => (...i) => {
|
|
6
|
+
let [a, o, s] = i, c = {
|
|
7
|
+
name: "WrappedInput",
|
|
8
|
+
inheritAttrs: !1,
|
|
9
|
+
setup(t, { attrs: i, slots: a }) {
|
|
10
|
+
return () => n(e, {
|
|
11
|
+
...t,
|
|
12
|
+
...i
|
|
13
|
+
}, {
|
|
14
|
+
default: ({ field: e, state: t, ...o }) => n(r, {
|
|
15
|
+
...Object.fromEntries(Object.entries(i).filter(([e]) => !Object.prototype.hasOwnProperty.call(o, e) && e !== "form")),
|
|
16
|
+
field: e,
|
|
17
|
+
state: t,
|
|
18
|
+
inputProps: o
|
|
19
|
+
}, {
|
|
20
|
+
...a.label && { label: (e) => a.label(e) },
|
|
21
|
+
...a.default && { default: (e) => a.default(e) }
|
|
22
|
+
}),
|
|
23
|
+
...a.label && { label: (e) => a.label(e) }
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
return t(a, o, {
|
|
28
|
+
...s,
|
|
29
|
+
input: c
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { r as createUseFormWithCustomInput };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { onMounted as e, onUnmounted as t } from "vue";
|
|
2
|
+
//#region src/components/OmegaForm/onMountedWithCleanup.ts
|
|
3
|
+
function n(n) {
|
|
4
|
+
let r;
|
|
5
|
+
e(() => {
|
|
6
|
+
let e = n();
|
|
7
|
+
e && (r = e);
|
|
8
|
+
}), t(() => {
|
|
9
|
+
r && r();
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { n as onMountedWithCleanup };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "./vue-components8.es.js";
|
|
2
|
+
import "./vue-components11.es.js";
|
|
3
|
+
import "./vue-components14.es.js";
|
|
4
|
+
import "./vue-components15.es.js";
|
|
5
|
+
import "./vue-components16.es.js";
|
|
6
|
+
import "./vue-components18.es.js";
|
|
7
|
+
import "./vue-components19.es.js";
|
|
8
|
+
import "./vue-components20.es.js";
|
|
9
|
+
import "./vue-components34.es.js";
|
|
10
|
+
import "./vue-components36.es.js";
|
|
11
|
+
import "./vue-components38.es.js";
|
|
12
|
+
import "./vue-components40.es.js";
|
|
13
|
+
import "./vue-components67.es.js";
|
|
14
|
+
import "./vue-components68.es.js";
|
|
15
|
+
import "./vue-components69.es.js";
|
|
16
|
+
//#region src/components/OmegaForm/index.ts
|
|
17
|
+
var e = (e) => e;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { e as duplicateSchema };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { __exportAll as e } from "./vue-components2.es.js";
|
|
2
|
+
import t from "./vue-components4.es.js";
|
|
3
|
+
import { useOnClose as n, usePreventClose as r } from "./vue-components8.es.js";
|
|
4
|
+
import i from "./vue-components10.es.js";
|
|
5
|
+
import { getInputType as a } from "./vue-components11.es.js";
|
|
6
|
+
import { createMeta as o, generateMetaFromSchema as s, isNullableOrUndefined as c, metadataFromAst as l } from "./vue-components14.es.js";
|
|
7
|
+
import { defaultsValueFromSchema as u } from "./vue-components15.es.js";
|
|
8
|
+
import { toFormSchema as d } from "./vue-components16.es.js";
|
|
9
|
+
import { deepMerge as f } from "./vue-components18.es.js";
|
|
10
|
+
import { makeStandardSchemaV1Hooks as p, toLocalizedStandardSchemaV1 as m } from "./vue-components19.es.js";
|
|
11
|
+
import { useErrorLabel as h } from "./vue-components20.es.js";
|
|
12
|
+
import g from "./vue-components34.es.js";
|
|
13
|
+
import _ from "./vue-components36.es.js";
|
|
14
|
+
import v from "./vue-components38.es.js";
|
|
15
|
+
import y from "./vue-components40.es.js";
|
|
16
|
+
import { FormErrors as b } from "./vue-components67.es.js";
|
|
17
|
+
import { OmegaFormKey as x, useOmegaForm as S } from "./vue-components68.es.js";
|
|
18
|
+
import { createUseFormWithCustomInput as C } from "./vue-components69.es.js";
|
|
19
|
+
import { duplicateSchema as w } from "./vue-components70.es.js";
|
|
20
|
+
//#region src/components/index.ts
|
|
21
|
+
var T = /* @__PURE__ */ e({
|
|
22
|
+
CommandButton: () => t,
|
|
23
|
+
Dialog: () => i,
|
|
24
|
+
FormErrors: () => b,
|
|
25
|
+
OmegaFormKey: () => x,
|
|
26
|
+
OmegaInput: () => _,
|
|
27
|
+
OmegaTaggedUnion: () => y,
|
|
28
|
+
OmegaTaggedUnionInternal: () => v,
|
|
29
|
+
OmegaVuetifyInput: () => g,
|
|
30
|
+
createMeta: () => o,
|
|
31
|
+
createUseFormWithCustomInput: () => C,
|
|
32
|
+
deepMerge: () => f,
|
|
33
|
+
defaultsValueFromSchema: () => u,
|
|
34
|
+
duplicateSchema: () => w,
|
|
35
|
+
generateMetaFromSchema: () => s,
|
|
36
|
+
getInputType: () => a,
|
|
37
|
+
isNullableOrUndefined: () => c,
|
|
38
|
+
makeStandardSchemaV1Hooks: () => p,
|
|
39
|
+
metadataFromAst: () => l,
|
|
40
|
+
toFormSchema: () => d,
|
|
41
|
+
toLocalizedStandardSchemaV1: () => m,
|
|
42
|
+
useErrorLabel: () => h,
|
|
43
|
+
useOmegaForm: () => S,
|
|
44
|
+
useOnClose: () => n,
|
|
45
|
+
usePreventClose: () => r
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
export { T as components_exports };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import e from "./vue-components5.es.js";
|
|
2
|
+
import { useIntl as t } from "./vue-components6.es.js";
|
|
3
|
+
import { onMountedWithCleanup as n } from "./vue-components7.es.js";
|
|
4
|
+
import { inject as r, provide as i } from "vue";
|
|
5
|
+
//#region src/components/OmegaForm/blockDialog.ts
|
|
6
|
+
var a = () => e(), o = Symbol("DialogBus"), s = () => r(o, null), c = () => {
|
|
7
|
+
let e = a();
|
|
8
|
+
return i(o, e), e;
|
|
9
|
+
}, l = (e) => {
|
|
10
|
+
let r = s();
|
|
11
|
+
if (!r) return;
|
|
12
|
+
let { formatMessage: i, trans: a } = t(), o = e(), c = "There are unsaved changes. Are you sure you want to close?";
|
|
13
|
+
n(() => {
|
|
14
|
+
let e = (e) => {
|
|
15
|
+
if (o.value) {
|
|
16
|
+
let t = i ? i({
|
|
17
|
+
id: "form.unsaved_changes_confirm",
|
|
18
|
+
defaultMessage: c
|
|
19
|
+
}) : a?.("form.unsaved_changes_confirm") ?? c;
|
|
20
|
+
confirm(t) || (e.prevent = !0);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return r.on("dialog-closing", e), () => r.off("dialog-closing", e);
|
|
24
|
+
});
|
|
25
|
+
}, u = (e) => {
|
|
26
|
+
let t = s();
|
|
27
|
+
return t ||= c(), () => {
|
|
28
|
+
let n = {};
|
|
29
|
+
t.emit("dialog-closing", n), n.prevent ? typeof n.prevent == "object" && "then" in n.prevent && n.prevent.then((t) => {
|
|
30
|
+
t && e();
|
|
31
|
+
}).catch(console.error) : e();
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { u as useOnClose, l as usePreventClose };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { onMountedWithCleanup as e } from "./vue-components7.es.js";
|
|
2
|
+
import { useOnClose as t } from "./vue-components8.es.js";
|
|
3
|
+
import { computed as n, createBlock as r, createSlots as i, defineComponent as a, guardReactiveProps as o, mergeModels as s, normalizeProps as c, openBlock as l, renderList as u, renderSlot as d, resolveComponent as f, unref as p, useModel as m, useSlots as h, withCtx as g } from "vue";
|
|
4
|
+
//#region src/components/Dialog.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _ = /*@__PURE__*/ a({
|
|
6
|
+
__name: "Dialog",
|
|
7
|
+
props: /*@__PURE__*/ s({ persistent: { type: Boolean } }, {
|
|
8
|
+
modelValue: {
|
|
9
|
+
type: Boolean,
|
|
10
|
+
default: !1
|
|
11
|
+
},
|
|
12
|
+
modelModifiers: {}
|
|
13
|
+
}),
|
|
14
|
+
emits: ["update:modelValue"],
|
|
15
|
+
setup(a) {
|
|
16
|
+
let s = a, _ = m(a, "modelValue"), v = h(), y = n(() => {
|
|
17
|
+
let { default: e, ...t } = v;
|
|
18
|
+
return t;
|
|
19
|
+
}), b = t(() => _.value = !1);
|
|
20
|
+
return e(() => {
|
|
21
|
+
let e = (e) => {
|
|
22
|
+
_.value && !s.persistent && e.code === "Escape" && b();
|
|
23
|
+
};
|
|
24
|
+
return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
|
|
25
|
+
}), (e, t) => {
|
|
26
|
+
let n = f("v-dialog");
|
|
27
|
+
return l(), r(n, {
|
|
28
|
+
modelValue: _.value,
|
|
29
|
+
"onUpdate:modelValue": t[0] ||= (e) => _.value = e,
|
|
30
|
+
persistent: "",
|
|
31
|
+
"onClick:outside": p(b)
|
|
32
|
+
}, i({
|
|
33
|
+
default: g(({ isActive: t }) => [d(e.$slots, "default", {
|
|
34
|
+
open: _.value,
|
|
35
|
+
cancel: p(b),
|
|
36
|
+
isActive: t
|
|
37
|
+
})]),
|
|
38
|
+
_: 2
|
|
39
|
+
}, [u(y.value, (t, n) => ({
|
|
40
|
+
name: n,
|
|
41
|
+
fn: g((t) => [d(e.$slots, n, c(o(t)))])
|
|
42
|
+
}))]), 1032, ["modelValue", "onClick:outside"]);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
export { _ as default };
|
package/package.json
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.271",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
|
-
"effect": "^4.0.0-beta.
|
|
7
|
-
"intl-messageformat": "^11.
|
|
6
|
+
"effect": "^4.0.0-beta.84",
|
|
7
|
+
"intl-messageformat": "^11.2.7",
|
|
8
8
|
"mdi-js": "^1.0.1",
|
|
9
9
|
"primeflex": "^4.0.0",
|
|
10
10
|
"primeicons": "^7.0.0",
|
|
11
|
-
"primevue": "^4.5.
|
|
12
|
-
"vue": "^3.5.
|
|
13
|
-
"vuetify": "^4.0.
|
|
11
|
+
"primevue": "^4.5.5",
|
|
12
|
+
"vue": "^3.5.35",
|
|
13
|
+
"vuetify": "^4.0.8"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@storybook/vue3": "^10.
|
|
17
|
-
"@storybook/vue3-vite": "^10.
|
|
18
|
-
"@types/node": "^25.
|
|
19
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
20
|
-
"@vue/test-utils": "^2.4.
|
|
21
|
-
"@vueuse/core": "^14.
|
|
22
|
-
"
|
|
23
|
-
"jsdom": "^28.1.0",
|
|
16
|
+
"@storybook/vue3": "^10.4.1",
|
|
17
|
+
"@storybook/vue3-vite": "^10.4.1",
|
|
18
|
+
"@types/node": "^25.9.1",
|
|
19
|
+
"@vitejs/plugin-vue": "^6.0.7",
|
|
20
|
+
"@vue/test-utils": "^2.4.10",
|
|
21
|
+
"@vueuse/core": "^14.3.0",
|
|
22
|
+
"jsdom": "^29.1.1",
|
|
24
23
|
"rimraf": "^6.1.3",
|
|
25
|
-
"sass": "^1.
|
|
26
|
-
"storybook": "^10.
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"vite
|
|
24
|
+
"sass": "^1.100.0",
|
|
25
|
+
"storybook": "^10.4.1",
|
|
26
|
+
"storybook-vue3-router": "^7.0.0",
|
|
27
|
+
"typescript": "~6.0.3",
|
|
28
|
+
"vite": "^8.0.15",
|
|
29
|
+
"vite-plugin-css-injected-by-js": "^5.0.1",
|
|
30
30
|
"vitepress": "^1.6.4",
|
|
31
|
-
"vitest": "^4.
|
|
32
|
-
"vue-router": "^5.0
|
|
31
|
+
"vitest": "^4.1.7",
|
|
32
|
+
"vue-router": "^5.1.0",
|
|
33
33
|
"vue-toastification": "^2.0.0-rc.5",
|
|
34
|
-
"vue-tsc": "^3.
|
|
35
|
-
"vuetify": "^4.0.
|
|
36
|
-
"@effect-app/eslint-shared-config": "0.
|
|
34
|
+
"vue-tsc": "^3.3.3",
|
|
35
|
+
"vuetify": "^4.0.8",
|
|
36
|
+
"@effect-app/eslint-shared-config": "0.6.0-beta.32"
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
39
|
"src",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@opentelemetry/api": "^1.9.
|
|
56
|
-
"@tanstack/vue-form": "^1.
|
|
55
|
+
"@opentelemetry/api": "^1.9.1",
|
|
56
|
+
"@tanstack/vue-form": "^1.32.0",
|
|
57
57
|
"highlight.js": "^11.11.1",
|
|
58
58
|
"mitt": "^3.0.1",
|
|
59
59
|
"vue3-highlightjs": "^1.0.5",
|
|
60
|
-
"@effect-app/vue": "4.0.0-beta.
|
|
61
|
-
"effect-app": "4.0.0-beta.
|
|
60
|
+
"@effect-app/vue": "4.0.0-beta.271",
|
|
61
|
+
"effect-app": "4.0.0-beta.271"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
64
|
"check": "vue-tsc",
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
"docs:dev": "vitepress dev docs",
|
|
68
68
|
"docs:build": "vitepress build docs",
|
|
69
69
|
"docs:serve": "vitepress serve docs",
|
|
70
|
-
"lint": "NODE_OPTIONS=--max-old-space-size=8192 eslint src stories .storybook",
|
|
70
|
+
"lint": "oxlint --quiet --type-aware src stories && NODE_OPTIONS=--max-old-space-size=8192 ESLINT_TS=1 eslint --quiet src stories .storybook && pnpm exec dprint check --config ../../dprint.jsonc .",
|
|
71
71
|
"ncu": "ncu",
|
|
72
72
|
"clean": "rm -rf dist",
|
|
73
|
-
"lint-fix": "pnpm
|
|
73
|
+
"lint-fix": "oxlint --quiet --type-aware --fix src stories && NODE_OPTIONS=--max-old-space-size=8192 ESLINT_TS=1 eslint --quiet --fix src stories .storybook && pnpm exec dprint fmt --config ../../dprint.jsonc .",
|
|
74
74
|
"storybook": "storybook dev -p 6006",
|
|
75
75
|
"build-storybook": "storybook build",
|
|
76
76
|
"test": "vitest",
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<script
|
|
2
2
|
setup
|
|
3
3
|
lang="ts"
|
|
4
|
-
generic="I = never"
|
|
4
|
+
generic="I = never, RA = unknown, RE = unknown"
|
|
5
5
|
>
|
|
6
|
-
import type { CommandBase } from "@effect-app/vue"
|
|
6
|
+
import type { CommandBase, Progress } from "@effect-app/vue/makeClient"
|
|
7
|
+
import * as Option from "effect-app/Option"
|
|
8
|
+
import type * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
|
|
7
9
|
import { computed } from "vue"
|
|
8
10
|
import type { VBtn } from "vuetify/components"
|
|
9
11
|
|
|
@@ -14,38 +16,89 @@ const props = defineProps<
|
|
|
14
16
|
& (
|
|
15
17
|
| {
|
|
16
18
|
input: NoInfer<I>
|
|
17
|
-
|
|
19
|
+
optionalInput?: undefined
|
|
20
|
+
command: CommandBase<I, any, RA, RE>
|
|
18
21
|
empty?: boolean
|
|
19
22
|
}
|
|
20
23
|
| {
|
|
21
|
-
|
|
24
|
+
optionalInput: Option.Option<NoInfer<I>>
|
|
22
25
|
input?: undefined
|
|
26
|
+
command: CommandBase<I, any, RA, RE>
|
|
27
|
+
empty?: boolean
|
|
28
|
+
}
|
|
29
|
+
| {
|
|
30
|
+
command: CommandBase<any, any, RA, RE>
|
|
31
|
+
input?: undefined
|
|
32
|
+
optionalInput?: undefined
|
|
23
33
|
empty?: boolean
|
|
24
34
|
}
|
|
25
35
|
)
|
|
26
36
|
& {
|
|
27
37
|
disabled?: ButtonProps["disabled"]
|
|
28
38
|
title?: string // why isn't it part of VBtnProps??
|
|
39
|
+
mapProgress?: (result: AsyncResult.AsyncResult<RA, RE>) => Progress | undefined
|
|
29
40
|
}
|
|
30
41
|
& ButtonProps
|
|
31
42
|
>()
|
|
32
43
|
|
|
33
|
-
const
|
|
44
|
+
const resolvedInput = computed<{ _tag: "ready"; value: I } | { _tag: "missing" } | { _tag: "void" }>(() => {
|
|
45
|
+
if ("optionalInput" in props && props.optionalInput !== undefined) {
|
|
46
|
+
return Option.isSome(props.optionalInput)
|
|
47
|
+
? { _tag: "ready", value: props.optionalInput.value }
|
|
48
|
+
: { _tag: "missing" }
|
|
49
|
+
}
|
|
50
|
+
if ("input" in props && props.input !== undefined) {
|
|
51
|
+
return { _tag: "ready", value: props.input as I }
|
|
52
|
+
}
|
|
53
|
+
return { _tag: "void" }
|
|
54
|
+
})
|
|
34
55
|
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
const isDisabled = computed(() =>
|
|
57
|
+
props.command.blocked
|
|
58
|
+
|| props.disabled
|
|
59
|
+
|| resolvedInput.value._tag === "missing"
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
const resolvedProgress = computed(() => {
|
|
63
|
+
if (props.mapProgress) {
|
|
64
|
+
const result = props.command.result
|
|
65
|
+
return result !== undefined ? props.mapProgress(result) : undefined
|
|
39
66
|
}
|
|
67
|
+
return props.command.progress
|
|
68
|
+
})
|
|
40
69
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
70
|
+
const progressText = computed(() => {
|
|
71
|
+
const p = resolvedProgress.value
|
|
72
|
+
if (p === undefined) return undefined
|
|
73
|
+
return typeof p === "string" ? p : p.text
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
const progressPercentage = computed(() => {
|
|
77
|
+
const p = resolvedProgress.value
|
|
78
|
+
return typeof p === "object" && p !== null ? p.percentage : undefined
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
const handleClick = () => {
|
|
82
|
+
if (isDisabled.value) return
|
|
83
|
+
const ri = resolvedInput.value
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
|
+
const handle = props.command.handle as any
|
|
86
|
+
if (ri._tag === "ready") handle(ri.value)
|
|
87
|
+
else if (ri._tag === "void") handle(undefined)
|
|
88
|
+
// _tag === "missing" can't reach here — guarded by isDisabled
|
|
45
89
|
}
|
|
46
90
|
</script>
|
|
47
91
|
<script lang="ts">
|
|
48
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* CommandButton connects a command to a button and tracks disabled / loading state.
|
|
94
|
+
*
|
|
95
|
+
* Input variants:
|
|
96
|
+
* - `input`: pass a validated value; button enabled when command + disabled allow it.
|
|
97
|
+
* - `optionalInput`: pass an `Option<I>`. `Some` → enabled, click fires with the value.
|
|
98
|
+
* `None` → disabled. Use this when the input is gated by a `computed` instead of
|
|
99
|
+
* a `v-if` on the button itself.
|
|
100
|
+
* - neither: command takes no input.
|
|
101
|
+
*/
|
|
49
102
|
export default {
|
|
50
103
|
name: "CommandButton"
|
|
51
104
|
}
|
|
@@ -55,27 +108,54 @@ export default {
|
|
|
55
108
|
v-if="command.allowed && !empty"
|
|
56
109
|
v-bind="$attrs"
|
|
57
110
|
:loading="command.waiting"
|
|
111
|
+
:disabled="isDisabled"
|
|
58
112
|
:aria-disabled="isDisabled"
|
|
59
113
|
:title="title ?? command.action"
|
|
60
114
|
:class="{ 'v-btn--disabled': isDisabled }"
|
|
61
115
|
@click="handleClick"
|
|
62
116
|
>
|
|
117
|
+
<template
|
|
118
|
+
v-if="progressText !== undefined"
|
|
119
|
+
#loader
|
|
120
|
+
>
|
|
121
|
+
<v-progress-circular
|
|
122
|
+
:indeterminate="progressPercentage === undefined"
|
|
123
|
+
:model-value="progressPercentage"
|
|
124
|
+
size="20"
|
|
125
|
+
width="2"
|
|
126
|
+
/>
|
|
127
|
+
<span class="ml-2">{{ progressText }}</span>
|
|
128
|
+
</template>
|
|
63
129
|
<slot
|
|
64
130
|
:loading="command.waiting"
|
|
65
131
|
:disabled="isDisabled"
|
|
66
132
|
:label="command.label"
|
|
67
133
|
:title="title ?? command.action"
|
|
68
134
|
>
|
|
69
|
-
|
|
135
|
+
{{ command.label }}
|
|
70
136
|
</slot>
|
|
71
137
|
</v-btn>
|
|
72
138
|
<v-btn
|
|
73
139
|
v-else-if="command.allowed"
|
|
74
140
|
v-bind="$attrs"
|
|
75
141
|
:loading="command.waiting"
|
|
142
|
+
:disabled="isDisabled"
|
|
76
143
|
:aria-disabled="isDisabled"
|
|
77
144
|
:title="title ?? command.action"
|
|
78
145
|
:class="{ 'v-btn--disabled': isDisabled }"
|
|
79
146
|
@click="handleClick"
|
|
80
|
-
|
|
147
|
+
>
|
|
148
|
+
<template
|
|
149
|
+
v-if="progressText !== undefined"
|
|
150
|
+
#loader
|
|
151
|
+
>
|
|
152
|
+
<v-progress-circular
|
|
153
|
+
:indeterminate="progressPercentage === undefined"
|
|
154
|
+
:model-value="progressPercentage"
|
|
155
|
+
size="20"
|
|
156
|
+
width="2"
|
|
157
|
+
/>
|
|
158
|
+
<span class="ml-2">{{ progressText }}</span>
|
|
159
|
+
</template>
|
|
160
|
+
</v-btn>
|
|
81
161
|
</template>
|
|
@@ -43,7 +43,7 @@ export type InputProps<From extends Record<PropertyKey, any>, TName extends Deep
|
|
|
43
43
|
inputClass: string | undefined | null
|
|
44
44
|
}
|
|
45
45
|
field: OmegaFieldInternalApi<From, TName>
|
|
46
|
-
/**
|
|
46
|
+
/** reactive field state, sourced from `field.state` (the Field slot's own `state` prop is a stale snapshot since @tanstack/vue-form 1.32) */
|
|
47
47
|
state: OmegaFieldInternalApi<From, TName>["state"]
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -3,24 +3,23 @@
|
|
|
3
3
|
:is="form.Field"
|
|
4
4
|
:name="name"
|
|
5
5
|
>
|
|
6
|
-
|
|
6
|
+
<!-- `field.state` is reactive; the Field slot's `state` prop is a stale snapshot since @tanstack/vue-form 1.32 -->
|
|
7
|
+
<template #default="{ field }">
|
|
7
8
|
<slot
|
|
8
9
|
name="pre-array"
|
|
9
|
-
v-bind="{ field, state }"
|
|
10
|
+
v-bind="{ field, state: field.state }"
|
|
10
11
|
/>
|
|
11
12
|
<component
|
|
12
13
|
:is="form.Field"
|
|
13
14
|
v-for="(_, i) of items"
|
|
14
15
|
:key="`${name}[${Number(i)}]`"
|
|
15
|
-
:name="
|
|
16
|
-
`${name}[${Number(i)}]` as DeepKeys<From>
|
|
17
|
-
"
|
|
16
|
+
:name="`${name}[${Number(i)}]` as DeepKeys<From>"
|
|
18
17
|
>
|
|
19
|
-
<template #default="{ field: subField
|
|
18
|
+
<template #default="{ field: subField }">
|
|
20
19
|
<slot
|
|
21
20
|
v-bind="{
|
|
22
21
|
subField,
|
|
23
|
-
subState,
|
|
22
|
+
subState: subField.state,
|
|
24
23
|
index: Number(i),
|
|
25
24
|
field
|
|
26
25
|
}"
|
|
@@ -29,7 +28,7 @@
|
|
|
29
28
|
</component>
|
|
30
29
|
<slot
|
|
31
30
|
name="post-array"
|
|
32
|
-
v-bind="{ field, state }"
|
|
31
|
+
v-bind="{ field, state: field.state }"
|
|
33
32
|
/>
|
|
34
33
|
<!-- TODO: legacy slot, remove this slot -->
|
|
35
34
|
<slot
|
|
@@ -46,7 +45,7 @@
|
|
|
46
45
|
>
|
|
47
46
|
import { type DeepKeys } from "@tanstack/vue-form"
|
|
48
47
|
import { computed, onMounted, provide } from "vue"
|
|
49
|
-
import { type OmegaArrayProps } from "./
|
|
48
|
+
import { type OmegaArrayProps } from "./types"
|
|
50
49
|
|
|
51
50
|
const props = defineProps<OmegaArrayProps<From, To, Name>>()
|
|
52
51
|
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
Name extends DeepKeys<From>"
|
|
21
21
|
>
|
|
22
22
|
import { type DeepKeys } from "@tanstack/vue-form"
|
|
23
|
-
import
|
|
23
|
+
import * as Order from "effect/Order"
|
|
24
24
|
import { computed } from "vue"
|
|
25
|
-
import { type FieldMeta
|
|
25
|
+
import { type FieldMeta } from "./meta/types"
|
|
26
|
+
import { type FieldPath, type OmegaAutoGenMeta, type OmegaInputProps } from "./types"
|
|
26
27
|
|
|
27
28
|
type NewMeta = OmegaAutoGenMeta<From, To, Name>
|
|
28
29
|
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
import type { StandardSchemaV1Issue } from "@tanstack/vue-form"
|
|
103
103
|
import { computed, getCurrentInstance } from "vue"
|
|
104
104
|
import { useIntl } from "../../utils"
|
|
105
|
-
import { type OmegaError } from "./
|
|
105
|
+
import { type OmegaError } from "./types"
|
|
106
106
|
|
|
107
107
|
const instance = getCurrentInstance()
|
|
108
108
|
const vuetified = instance?.appContext.components["VAlert"]
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
import { type DeepKeys } from "@tanstack/vue-form"
|
|
18
18
|
import { inject } from "vue"
|
|
19
19
|
import type { MergedInputProps } from "./InputProps"
|
|
20
|
-
import type { BaseProps, DefaultTypeProps, OmegaInputProps } from "./OmegaFormStuff"
|
|
21
20
|
import OmegaInput from "./OmegaInput.vue"
|
|
21
|
+
import type { BaseProps, DefaultTypeProps, OmegaInputProps } from "./types"
|
|
22
22
|
import { OmegaFormKey } from "./useOmegaForm"
|
|
23
23
|
|
|
24
24
|
const form = inject(OmegaFormKey) as unknown as OmegaInputProps<
|