@effect-app/vue-components 0.13.5 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/components/OmegaForm/OmegaArray.vue.d.ts +2 -6
- package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +1 -1
- package/dist/types/components/OmegaForm/useOmegaForm.d.ts +1 -1
- package/dist/vue-components.es7.js +32 -35
- package/package.json +3 -3
- package/src/components/OmegaForm/OmegaArray.vue +40 -28
|
@@ -2,21 +2,17 @@ import { type OmegaInputProps } from "./OmegaFormStuff";
|
|
|
2
2
|
import { type DeepValue, type DeepKeys } from "@tanstack/vue-form";
|
|
3
3
|
declare const _default: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
4
4
|
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & (Omit<OmegaInputProps<From, To>, "type" | "label" | "items" | "options" | "validators"> & {
|
|
5
|
-
|
|
5
|
+
defaultItems?: DeepValue<To, DeepKeys<To>>;
|
|
6
|
+
items?: "please use `defaultItems` instead";
|
|
6
7
|
}) & Partial<{}>> & import("vue").PublicProps;
|
|
7
8
|
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
8
9
|
attrs: any;
|
|
9
10
|
slots: {
|
|
10
11
|
default?: (props: {
|
|
11
|
-
field: import("@tanstack/vue-form").FieldApi<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined>;
|
|
12
12
|
subField: import("@tanstack/vue-form").FieldApi<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined>;
|
|
13
13
|
subState: import("@tanstack/vue-form").FieldState<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined>;
|
|
14
14
|
index: number;
|
|
15
15
|
}) => any;
|
|
16
|
-
} & {
|
|
17
|
-
field?: (props: {
|
|
18
|
-
field: import("@tanstack/vue-form").FieldApi<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, DeepKeys<From>, DeepValue<From, DeepKeys<From>>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined>;
|
|
19
|
-
}) => any;
|
|
20
16
|
};
|
|
21
17
|
emit: {};
|
|
22
18
|
}>) => import("vue").VNode & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S, type Effect } from "effect-app";
|
|
1
|
+
import { S, type Record, type Effect } from "effect-app";
|
|
2
2
|
import { type FormAsyncValidateOrFn, type FormValidateOrFn, type StandardSchemaV1, type FormApi, type VueFormApi, type FormOptions, type DeepKeys, type FieldValidateOrFn, type FieldAsyncValidateOrFn, type FormState } from "@tanstack/vue-form";
|
|
3
3
|
import { OmegaFormReturn } from "./useOmegaForm";
|
|
4
4
|
import { OmegaFieldInternalApi } from "./InputProps";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeepKeys } from "@tanstack/vue-form";
|
|
2
|
-
import { S } from "effect-app";
|
|
2
|
+
import { type Record, S } from "effect-app";
|
|
3
3
|
import { type NestedKeyOf, type FilterItems, type FormProps, type MetaRecord, type OmegaFormApi, TypeOverride, FieldValidators } from "./OmegaFormStuff";
|
|
4
4
|
import { type InjectionKey } from "vue";
|
|
5
5
|
import { InputProps } from "./InputProps";
|
|
@@ -1,60 +1,57 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { createMeta as
|
|
3
|
-
const C = /* @__PURE__ */
|
|
1
|
+
import { defineComponent as y, computed as u, onMounted as c, provide as g, resolveComponent as _, createElementBlock as M, openBlock as p, Fragment as v, renderList as F, createBlock as h, withCtx as k, renderSlot as S, mergeProps as $ } from "vue";
|
|
2
|
+
import { createMeta as A } from "./vue-components.es10.js";
|
|
3
|
+
const C = /* @__PURE__ */ y({
|
|
4
4
|
inheritAttrs: !1,
|
|
5
5
|
__name: "OmegaArray",
|
|
6
6
|
props: {
|
|
7
7
|
form: {},
|
|
8
8
|
name: {},
|
|
9
|
+
defaultItems: {},
|
|
9
10
|
items: {}
|
|
10
11
|
},
|
|
11
|
-
setup(
|
|
12
|
-
const
|
|
13
|
-
c(() => {
|
|
14
|
-
|
|
12
|
+
setup(l) {
|
|
13
|
+
const r = l, i = r.form.useStore((e) => e.values), m = u(() => r.name.split(".").reduce((e, o) => e[o], i.value));
|
|
14
|
+
c(async () => {
|
|
15
|
+
r.defaultItems && !m.value && r.form.setFieldValue(r.name, r.defaultItems);
|
|
15
16
|
});
|
|
16
|
-
const
|
|
17
|
-
const e =
|
|
17
|
+
const f = u(() => {
|
|
18
|
+
const e = r.form.meta[r.name];
|
|
18
19
|
if (e && e.type === "multiple") {
|
|
19
|
-
const o = e.rest.reduce((t,
|
|
20
|
+
const o = e.rest.reduce((t, n) => n.type._tag === "TypeLiteral" ? {
|
|
20
21
|
...t,
|
|
21
22
|
propertySignatures: [
|
|
22
23
|
...t.propertySignatures || [],
|
|
23
|
-
...
|
|
24
|
+
...n.type.propertySignatures
|
|
24
25
|
]
|
|
25
26
|
} : {
|
|
26
27
|
...t,
|
|
27
|
-
property:
|
|
28
|
-
}, {}), a =
|
|
28
|
+
property: n.type
|
|
29
|
+
}, {}), a = A({ ...o, meta: e });
|
|
29
30
|
return (t) => {
|
|
30
31
|
if (t.endsWith("]")) return a;
|
|
31
|
-
const
|
|
32
|
-
return a[
|
|
32
|
+
const n = t.split("]."), s = n[n.length - 1];
|
|
33
|
+
return a[s];
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
return (o) => {
|
|
36
37
|
};
|
|
37
38
|
});
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
l(e.$slots, "field", _(A({ field: a })))
|
|
55
|
-
]),
|
|
56
|
-
_: 3
|
|
57
|
-
}, 8, ["name"]));
|
|
39
|
+
return g("getMetaFromArray", f), (e, o) => {
|
|
40
|
+
const a = _("form.Field");
|
|
41
|
+
return p(!0), M(v, null, F(m.value, (d, t) => (p(), h(a, {
|
|
42
|
+
key: `${e.name}[${Number(t)}]`,
|
|
43
|
+
name: `${e.name}[${Number(t)}]`
|
|
44
|
+
}, {
|
|
45
|
+
default: k(({ field: n, state: s }) => [
|
|
46
|
+
S(e.$slots, "default", $({ ref_for: !0 }, {
|
|
47
|
+
subField: n,
|
|
48
|
+
subState: s,
|
|
49
|
+
index: Number(t)
|
|
50
|
+
}))
|
|
51
|
+
]),
|
|
52
|
+
_: 2
|
|
53
|
+
}, 1032, ["name"]))), 128);
|
|
54
|
+
};
|
|
58
55
|
}
|
|
59
56
|
});
|
|
60
57
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
6
|
"@tanstack/vue-form": "^1.2.4",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"highlight.js": "^11.11.1",
|
|
52
52
|
"vue3-highlightjs": "^1.0.5",
|
|
53
|
-
"@effect-app/vue": "2.51.
|
|
54
|
-
"effect-app": "3.
|
|
53
|
+
"@effect-app/vue": "2.51.11",
|
|
54
|
+
"effect-app": "3.0.10"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "pnpm build:run",
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
subState,
|
|
18
|
-
index: Number(i),
|
|
19
|
-
}"
|
|
20
|
-
/>
|
|
21
|
-
</template>
|
|
22
|
-
</component>
|
|
23
|
-
<slot name="field" v-bind="{ field }" />
|
|
2
|
+
<form.Field
|
|
3
|
+
v-for="(_, i) of items"
|
|
4
|
+
:key="`${name}[${Number(i)}]`"
|
|
5
|
+
:name="
|
|
6
|
+
`${name}[${Number(i)}]` as DeepKeys<From>
|
|
7
|
+
"
|
|
8
|
+
>
|
|
9
|
+
<template #default="{ field: subField, state: subState }">
|
|
10
|
+
<slot
|
|
11
|
+
v-bind="{
|
|
12
|
+
subField,
|
|
13
|
+
subState,
|
|
14
|
+
index: Number(i),
|
|
15
|
+
}"
|
|
16
|
+
/>
|
|
24
17
|
</template>
|
|
25
|
-
</
|
|
18
|
+
</form.Field>
|
|
26
19
|
</template>
|
|
27
20
|
|
|
28
|
-
<script
|
|
21
|
+
<script
|
|
22
|
+
setup
|
|
23
|
+
lang="ts"
|
|
24
|
+
generic="
|
|
25
|
+
From extends Record<PropertyKey, any>,
|
|
26
|
+
To extends Record<PropertyKey, any>
|
|
27
|
+
"
|
|
28
|
+
>
|
|
29
29
|
import { computed, onMounted, provide } from "vue"
|
|
30
30
|
import {
|
|
31
31
|
type CreateMeta,
|
|
@@ -39,7 +39,9 @@ const props = defineProps<
|
|
|
39
39
|
OmegaInputProps<From, To>,
|
|
40
40
|
"validators" | "options" | "label" | "type" | "items"
|
|
41
41
|
> & {
|
|
42
|
-
|
|
42
|
+
defaultItems?: DeepValue<To, DeepKeys<To>>
|
|
43
|
+
// deprecated items, caused bugs in state update, use defaultItems instead. It's not a simple Never, because Volar explodes
|
|
44
|
+
items?: "please use `defaultItems` instead"
|
|
43
45
|
}
|
|
44
46
|
>()
|
|
45
47
|
|
|
@@ -47,9 +49,19 @@ defineOptions({
|
|
|
47
49
|
inheritAttrs: false,
|
|
48
50
|
})
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
const store = props.form.useStore(state => state.values)
|
|
53
|
+
const items = computed(() => {
|
|
54
|
+
return props.name.split(".").reduce((acc, curr) => {
|
|
55
|
+
if (curr === "items") {
|
|
56
|
+
return acc[curr]
|
|
57
|
+
}
|
|
58
|
+
return acc[curr] as typeof store.value
|
|
59
|
+
}, store.value)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
onMounted(async () => {
|
|
63
|
+
if (props.defaultItems && !items.value) {
|
|
64
|
+
props.form.setFieldValue(props.name, props.defaultItems)
|
|
53
65
|
}
|
|
54
66
|
})
|
|
55
67
|
|