@effect-app/vue-components 2.6.2 → 2.7.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/types/components/OmegaForm/InputProps.d.ts +10 -4
- package/dist/types/components/OmegaForm/OmegaTaggedUnion.vue.d.ts +9 -13
- package/dist/types/components/OmegaForm/OmegaTaggedUnionInternal.vue.d.ts +2 -9
- package/dist/types/components/OmegaForm/useOmegaForm.d.ts +2 -1
- package/dist/vue-components.es10.js +203 -148
- package/dist/vue-components.es12.js +137 -115
- package/dist/vue-components.es22.js +1 -1
- package/dist/vue-components.es23.js +1 -1
- package/dist/vue-components.es36.js +1 -1
- package/dist/vue-components.es40.js +4 -23
- package/dist/vue-components.es41.js +23 -5
- package/dist/vue-components.es42.js +5 -21
- package/dist/vue-components.es43.js +16 -25
- package/dist/vue-components.es44.js +23 -15
- package/dist/vue-components.es45.js +17 -7
- package/dist/vue-components.es46.js +12 -5
- package/dist/vue-components.es47.js +5 -19
- package/dist/vue-components.es48.js +19 -9
- package/dist/vue-components.es49.js +9 -31
- package/dist/vue-components.es50.js +25 -42
- package/dist/vue-components.es51.js +38 -16
- package/dist/vue-components.es52.js +26 -11
- package/dist/vue-components.es53.js +11 -4
- package/dist/vue-components.es54.js +1 -1
- package/dist/vue-components.es56.js +1 -1
- package/dist/vue-components.es58.js +3 -3
- package/dist/vue-components.es59.js +1 -1
- package/dist/vue-components.es8.js +29 -36
- package/dist/vue-components.es9.js +7 -6
- package/package.json +3 -3
- package/src/components/OmegaForm/InputProps.ts +17 -8
- package/src/components/OmegaForm/OmegaFormStuff.ts +52 -0
- package/src/components/OmegaForm/OmegaTaggedUnion.vue +16 -35
- package/src/components/OmegaForm/OmegaTaggedUnionInternal.vue +2 -1
- package/src/components/OmegaForm/useOmegaForm.ts +123 -10
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
(
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { NoopTracer as o } from "./vue-components.es44.js";
|
|
2
|
+
var p = (
|
|
3
|
+
/** @class */
|
|
4
|
+
(function() {
|
|
5
|
+
function r() {
|
|
6
|
+
}
|
|
7
|
+
return r.prototype.getTracer = function(e, n, t) {
|
|
8
|
+
return new o();
|
|
9
|
+
}, r;
|
|
10
|
+
})()
|
|
11
|
+
);
|
|
5
12
|
export {
|
|
6
|
-
|
|
13
|
+
p as NoopTracerProvider
|
|
7
14
|
};
|
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return a.test(n) && n !== r;
|
|
6
|
-
}
|
|
7
|
-
function e(n) {
|
|
8
|
-
return o.test(n) && n !== t;
|
|
9
|
-
}
|
|
10
|
-
function A(n) {
|
|
11
|
-
return I(n.traceId) && e(n.spanId);
|
|
12
|
-
}
|
|
13
|
-
function D(n) {
|
|
14
|
-
return new i(n);
|
|
15
|
-
}
|
|
1
|
+
var N;
|
|
2
|
+
(function(E) {
|
|
3
|
+
E[E.NONE = 0] = "NONE", E[E.SAMPLED = 1] = "SAMPLED";
|
|
4
|
+
})(N || (N = {}));
|
|
16
5
|
export {
|
|
17
|
-
|
|
18
|
-
e as isValidSpanId,
|
|
19
|
-
I as isValidTraceId,
|
|
20
|
-
D as wrapSpanContext
|
|
6
|
+
N as TraceFlags
|
|
21
7
|
};
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
1
|
+
import { INVALID_TRACEID as r, INVALID_SPANID as t } from "./vue-components.es49.js";
|
|
2
|
+
import { NonRecordingSpan as i } from "./vue-components.es50.js";
|
|
3
|
+
var a = /^([0-9a-f]{32})$/i, o = /^[0-9a-f]{16}$/i;
|
|
4
|
+
function I(n) {
|
|
5
|
+
return a.test(n) && n !== r;
|
|
6
|
+
}
|
|
7
|
+
function e(n) {
|
|
8
|
+
return o.test(n) && n !== t;
|
|
9
|
+
}
|
|
10
|
+
function A(n) {
|
|
11
|
+
return I(n.traceId) && e(n.spanId);
|
|
12
|
+
}
|
|
13
|
+
function D(n) {
|
|
14
|
+
return new i(n);
|
|
15
|
+
}
|
|
7
16
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
A as isSpanContextValid,
|
|
18
|
+
e as isValidSpanId,
|
|
19
|
+
I as isValidTraceId,
|
|
20
|
+
D as wrapSpanContext
|
|
11
21
|
};
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
return t.prototype.spanContext = function() {
|
|
9
|
-
return this._spanContext;
|
|
10
|
-
}, t.prototype.setAttribute = function(n, e) {
|
|
11
|
-
return this;
|
|
12
|
-
}, t.prototype.setAttributes = function(n) {
|
|
13
|
-
return this;
|
|
14
|
-
}, t.prototype.addEvent = function(n, e) {
|
|
15
|
-
return this;
|
|
16
|
-
}, t.prototype.addLink = function(n) {
|
|
17
|
-
return this;
|
|
18
|
-
}, t.prototype.addLinks = function(n) {
|
|
19
|
-
return this;
|
|
20
|
-
}, t.prototype.setStatus = function(n) {
|
|
21
|
-
return this;
|
|
22
|
-
}, t.prototype.updateName = function(n) {
|
|
23
|
-
return this;
|
|
24
|
-
}, t.prototype.end = function(n) {
|
|
25
|
-
}, t.prototype.isRecording = function() {
|
|
26
|
-
return !1;
|
|
27
|
-
}, t.prototype.recordException = function(n, e) {
|
|
28
|
-
}, t;
|
|
29
|
-
})()
|
|
30
|
-
);
|
|
1
|
+
import { TraceFlags as I } from "./vue-components.es47.js";
|
|
2
|
+
var a = "0000000000000000", r = "00000000000000000000000000000000", A = {
|
|
3
|
+
traceId: r,
|
|
4
|
+
spanId: a,
|
|
5
|
+
traceFlags: I.NONE
|
|
6
|
+
};
|
|
31
7
|
export {
|
|
32
|
-
|
|
8
|
+
a as INVALID_SPANID,
|
|
9
|
+
A as INVALID_SPAN_CONTEXT,
|
|
10
|
+
r as INVALID_TRACEID
|
|
33
11
|
};
|
|
@@ -1,50 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { DiagAPI as u } from "./vue-components.es54.js";
|
|
4
|
-
var y = function(t, e) {
|
|
5
|
-
var a = typeof Symbol == "function" && t[Symbol.iterator];
|
|
6
|
-
if (!a) return t;
|
|
7
|
-
var n = a.call(t), o, r = [], i;
|
|
8
|
-
try {
|
|
9
|
-
for (; (e === void 0 || e-- > 0) && !(o = n.next()).done; ) r.push(o.value);
|
|
10
|
-
} catch (c) {
|
|
11
|
-
i = { error: c };
|
|
12
|
-
} finally {
|
|
13
|
-
try {
|
|
14
|
-
o && !o.done && (a = n.return) && a.call(n);
|
|
15
|
-
} finally {
|
|
16
|
-
if (i) throw i.error;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return r;
|
|
20
|
-
}, d = function(t, e, a) {
|
|
21
|
-
if (a || arguments.length === 2) for (var n = 0, o = e.length, r; n < o; n++)
|
|
22
|
-
(r || !(n in e)) && (r || (r = Array.prototype.slice.call(e, 0, n)), r[n] = e[n]);
|
|
23
|
-
return t.concat(r || Array.prototype.slice.call(e));
|
|
24
|
-
}, l = "context", _ = new f(), A = (
|
|
1
|
+
import { INVALID_SPAN_CONTEXT as o } from "./vue-components.es49.js";
|
|
2
|
+
var i = (
|
|
25
3
|
/** @class */
|
|
26
4
|
(function() {
|
|
27
|
-
function t() {
|
|
5
|
+
function t(n) {
|
|
6
|
+
n === void 0 && (n = o), this._spanContext = n;
|
|
28
7
|
}
|
|
29
|
-
return t.
|
|
30
|
-
return this.
|
|
31
|
-
}, t.prototype.
|
|
32
|
-
return
|
|
33
|
-
}, t.prototype.
|
|
34
|
-
return this
|
|
35
|
-
}, t.prototype.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
39
|
-
}, t.prototype.
|
|
40
|
-
return this
|
|
41
|
-
}, t.prototype.
|
|
42
|
-
return
|
|
43
|
-
}, t.prototype.
|
|
44
|
-
this
|
|
8
|
+
return t.prototype.spanContext = function() {
|
|
9
|
+
return this._spanContext;
|
|
10
|
+
}, t.prototype.setAttribute = function(n, e) {
|
|
11
|
+
return this;
|
|
12
|
+
}, t.prototype.setAttributes = function(n) {
|
|
13
|
+
return this;
|
|
14
|
+
}, t.prototype.addEvent = function(n, e) {
|
|
15
|
+
return this;
|
|
16
|
+
}, t.prototype.addLink = function(n) {
|
|
17
|
+
return this;
|
|
18
|
+
}, t.prototype.addLinks = function(n) {
|
|
19
|
+
return this;
|
|
20
|
+
}, t.prototype.setStatus = function(n) {
|
|
21
|
+
return this;
|
|
22
|
+
}, t.prototype.updateName = function(n) {
|
|
23
|
+
return this;
|
|
24
|
+
}, t.prototype.end = function(n) {
|
|
25
|
+
}, t.prototype.isRecording = function() {
|
|
26
|
+
return !1;
|
|
27
|
+
}, t.prototype.recordException = function(n, e) {
|
|
45
28
|
}, t;
|
|
46
29
|
})()
|
|
47
30
|
);
|
|
48
31
|
export {
|
|
49
|
-
|
|
32
|
+
i as NonRecordingSpan
|
|
50
33
|
};
|
|
@@ -1,28 +1,50 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { NoopContextManager as f } from "./vue-components.es59.js";
|
|
2
|
+
import { registerGlobal as s, getGlobal as p, unregisterGlobal as g } from "./vue-components.es57.js";
|
|
3
|
+
import { DiagAPI as u } from "./vue-components.es54.js";
|
|
4
|
+
var y = function(t, e) {
|
|
5
|
+
var a = typeof Symbol == "function" && t[Symbol.iterator];
|
|
6
|
+
if (!a) return t;
|
|
7
|
+
var n = a.call(t), o, r = [], i;
|
|
8
|
+
try {
|
|
9
|
+
for (; (e === void 0 || e-- > 0) && !(o = n.next()).done; ) r.push(o.value);
|
|
10
|
+
} catch (c) {
|
|
11
|
+
i = { error: c };
|
|
12
|
+
} finally {
|
|
13
|
+
try {
|
|
14
|
+
o && !o.done && (a = n.return) && a.call(n);
|
|
15
|
+
} finally {
|
|
16
|
+
if (i) throw i.error;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return r;
|
|
20
|
+
}, d = function(t, e, a) {
|
|
21
|
+
if (a || arguments.length === 2) for (var n = 0, o = e.length, r; n < o; n++)
|
|
22
|
+
(r || !(n in e)) && (r || (r = Array.prototype.slice.call(e, 0, n)), r[n] = e[n]);
|
|
23
|
+
return t.concat(r || Array.prototype.slice.call(e));
|
|
24
|
+
}, l = "context", _ = new f(), A = (
|
|
7
25
|
/** @class */
|
|
8
26
|
(function() {
|
|
9
27
|
function t() {
|
|
10
|
-
this._proxyTracerProvider = new i(), this.wrapSpanContext = c, this.isSpanContextValid = h, this.deleteSpan = g, this.getSpan = S, this.getActiveSpan = x, this.getSpanContext = d, this.setSpan = f, this.setSpanContext = l;
|
|
11
28
|
}
|
|
12
29
|
return t.getInstance = function() {
|
|
13
30
|
return this._instance || (this._instance = new t()), this._instance;
|
|
14
|
-
}, t.prototype.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
}, t.prototype.setGlobalContextManager = function(e) {
|
|
32
|
+
return s(l, e, u.instance());
|
|
33
|
+
}, t.prototype.active = function() {
|
|
34
|
+
return this._getContextManager().active();
|
|
35
|
+
}, t.prototype.with = function(e, a, n) {
|
|
36
|
+
for (var o, r = [], i = 3; i < arguments.length; i++)
|
|
37
|
+
r[i - 3] = arguments[i];
|
|
38
|
+
return (o = this._getContextManager()).with.apply(o, d([e, a, n], y(r), !1));
|
|
39
|
+
}, t.prototype.bind = function(e, a) {
|
|
40
|
+
return this._getContextManager().bind(e, a);
|
|
41
|
+
}, t.prototype._getContextManager = function() {
|
|
42
|
+
return p(l) || _;
|
|
21
43
|
}, t.prototype.disable = function() {
|
|
22
|
-
|
|
44
|
+
this._getContextManager().disable(), g(l, u.instance());
|
|
23
45
|
}, t;
|
|
24
46
|
})()
|
|
25
47
|
);
|
|
26
48
|
export {
|
|
27
|
-
|
|
49
|
+
A as ContextAPI
|
|
28
50
|
};
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { registerGlobal as a, getGlobal as p, unregisterGlobal as s } from "./vue-components.es57.js";
|
|
2
|
+
import { ProxyTracerProvider as i } from "./vue-components.es45.js";
|
|
3
|
+
import { wrapSpanContext as c, isSpanContextValid as h } from "./vue-components.es48.js";
|
|
4
|
+
import { deleteSpan as g, getSpan as S, getActiveSpan as x, getSpanContext as d, setSpan as f, setSpanContext as l } from "./vue-components.es58.js";
|
|
5
|
+
import { DiagAPI as o } from "./vue-components.es54.js";
|
|
6
|
+
var n = "trace", y = (
|
|
7
|
+
/** @class */
|
|
8
|
+
(function() {
|
|
9
|
+
function t() {
|
|
10
|
+
this._proxyTracerProvider = new i(), this.wrapSpanContext = c, this.isSpanContextValid = h, this.deleteSpan = g, this.getSpan = S, this.getActiveSpan = x, this.getSpanContext = d, this.setSpan = f, this.setSpanContext = l;
|
|
11
|
+
}
|
|
12
|
+
return t.getInstance = function() {
|
|
13
|
+
return this._instance || (this._instance = new t()), this._instance;
|
|
14
|
+
}, t.prototype.setGlobalTracerProvider = function(r) {
|
|
15
|
+
var e = a(n, this._proxyTracerProvider, o.instance());
|
|
16
|
+
return e && this._proxyTracerProvider.setDelegate(r), e;
|
|
17
|
+
}, t.prototype.getTracerProvider = function() {
|
|
18
|
+
return p(n) || this._proxyTracerProvider;
|
|
19
|
+
}, t.prototype.getTracer = function(r, e) {
|
|
20
|
+
return this.getTracerProvider().getTracer(r, e);
|
|
21
|
+
}, t.prototype.disable = function() {
|
|
22
|
+
s(n, o.instance()), this._proxyTracerProvider = new i();
|
|
23
|
+
}, t;
|
|
24
|
+
})()
|
|
25
|
+
);
|
|
11
26
|
export {
|
|
12
|
-
|
|
27
|
+
y as TraceAPI
|
|
13
28
|
};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { useStore as u } from "@tanstack/vue-form";
|
|
2
|
+
import { computed as f } from "vue";
|
|
3
|
+
function c(o, t) {
|
|
4
|
+
return f(() => t ? u(o.store, (n) => {
|
|
5
|
+
const r = {};
|
|
6
|
+
for (const e of t)
|
|
7
|
+
r[e] = n[e];
|
|
8
|
+
return r;
|
|
9
|
+
}).value : {});
|
|
10
|
+
}
|
|
4
11
|
export {
|
|
5
|
-
|
|
12
|
+
c as getOmegaStore
|
|
6
13
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DiagComponentLogger as m } from "./vue-components.es55.js";
|
|
2
2
|
import { createLogLevelDiagLogger as y } from "./vue-components.es56.js";
|
|
3
|
-
import { DiagLogLevel as d } from "./vue-components.
|
|
3
|
+
import { DiagLogLevel as d } from "./vue-components.es42.js";
|
|
4
4
|
import { unregisterGlobal as p, getGlobal as v, registerGlobal as w } from "./vue-components.es57.js";
|
|
5
5
|
var b = function(i, n) {
|
|
6
6
|
var r = typeof Symbol == "function" && i[Symbol.iterator];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createContextKey as o } from "./vue-components.
|
|
2
|
-
import { NonRecordingSpan as a } from "./vue-components.
|
|
3
|
-
import { ContextAPI as u } from "./vue-components.
|
|
1
|
+
import { createContextKey as o } from "./vue-components.es41.js";
|
|
2
|
+
import { NonRecordingSpan as a } from "./vue-components.es50.js";
|
|
3
|
+
import { ContextAPI as u } from "./vue-components.es51.js";
|
|
4
4
|
var n = o("OpenTelemetry Context Key SPAN");
|
|
5
5
|
function r(e) {
|
|
6
6
|
return e.getValue(n) || void 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent as s, createElementBlock as f, openBlock as d, Fragment as c, renderSlot as n, createVNode as a, unref as o, withCtx as r, createCommentVNode as g, createSlots as $, renderList as y, normalizeProps as b, guardReactiveProps as p } from "vue";
|
|
2
|
+
import C from "./vue-components.es9.js";
|
|
3
|
+
const F = /* @__PURE__ */ s({
|
|
4
4
|
__name: "OmegaTaggedUnion",
|
|
5
5
|
props: {
|
|
6
6
|
name: {},
|
|
@@ -9,40 +9,33 @@ const B = /* @__PURE__ */ d({
|
|
|
9
9
|
options: {},
|
|
10
10
|
label: {}
|
|
11
11
|
},
|
|
12
|
-
setup(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
e.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
field: a,
|
|
37
|
-
state: l.value
|
|
38
|
-
}, b({ _: 2 }, [
|
|
39
|
-
y(t.$slots, (C, r) => ({
|
|
40
|
-
name: r,
|
|
41
|
-
fn: u((s) => [
|
|
42
|
-
f(t.$slots, r, F($(s)))
|
|
12
|
+
setup(e) {
|
|
13
|
+
return (t, k) => (d(), f(c, null, [
|
|
14
|
+
n(t.$slots, "OmegaCustomInput", {}, () => [
|
|
15
|
+
a(o(e.form).Input, {
|
|
16
|
+
name: e.name ? `${e.name}._tag` : "_tag",
|
|
17
|
+
label: e.label,
|
|
18
|
+
type: e.type ?? "select",
|
|
19
|
+
options: e.options
|
|
20
|
+
}, null, 8, ["name", "label", "type", "options"])
|
|
21
|
+
]),
|
|
22
|
+
a(o(e.form).Field, {
|
|
23
|
+
name: e.name ?? ""
|
|
24
|
+
}, {
|
|
25
|
+
default: r(({ field: u, state: m }) => [
|
|
26
|
+
m.value ? n(t.$slots, "default", { key: 0 }) : g("", !0),
|
|
27
|
+
a(C, {
|
|
28
|
+
field: u,
|
|
29
|
+
state: m.value,
|
|
30
|
+
name: e.name
|
|
31
|
+
}, $({ _: 2 }, [
|
|
32
|
+
y(t.$slots, (v, l) => ({
|
|
33
|
+
name: l,
|
|
34
|
+
fn: r((i) => [
|
|
35
|
+
n(t.$slots, l, b(p(i)))
|
|
43
36
|
])
|
|
44
37
|
}))
|
|
45
|
-
]), 1032, ["field", "state"])
|
|
38
|
+
]), 1032, ["field", "state", "name"])
|
|
46
39
|
]),
|
|
47
40
|
_: 3
|
|
48
41
|
}, 8, ["name"])
|
|
@@ -50,5 +43,5 @@ const B = /* @__PURE__ */ d({
|
|
|
50
43
|
}
|
|
51
44
|
});
|
|
52
45
|
export {
|
|
53
|
-
|
|
46
|
+
F as default
|
|
54
47
|
};
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { defineComponent as l, watch as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as l, watch as i, renderSlot as m, createCommentVNode as s, normalizeProps as o, mergeProps as r } from "vue";
|
|
2
|
+
const f = /* @__PURE__ */ l({
|
|
3
3
|
__name: "OmegaTaggedUnionInternal",
|
|
4
4
|
props: {
|
|
5
5
|
state: {},
|
|
6
|
-
field: {}
|
|
6
|
+
field: {},
|
|
7
|
+
name: {}
|
|
7
8
|
},
|
|
8
9
|
setup(e) {
|
|
9
10
|
const a = e;
|
|
10
|
-
return
|
|
11
|
+
return i(() => a.state?._tag, (t, n) => {
|
|
11
12
|
t === null && a.field.setValue(null), t !== n && setTimeout(() => {
|
|
12
13
|
a.field.validate("change");
|
|
13
14
|
}, 0);
|
|
14
|
-
}), (t, n) => e.state?._tag ?
|
|
15
|
+
}), (t, n) => e.state?._tag ? m(t.$slots, `${e.name ? `${e.name}.` : ""}${e.state?._tag}`, o(r({ key: 0 }, { field: e.field, state: e.state }))) : s("", !0);
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
+
f as default
|
|
19
20
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.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
|
-
"effect-app": "
|
|
57
|
-
"
|
|
56
|
+
"@effect-app/vue": "2.92.2",
|
|
57
|
+
"effect-app": "3.12.0"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "pnpm build:run",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import type { DeepKeys, DeepValue, FieldApi, FieldAsyncValidateOrFn, FieldValidateAsyncFn, FieldValidateFn, FieldValidateOrFn, FormAsyncValidateOrFn, FormValidateOrFn, StandardSchemaV1 } from "@tanstack/vue-form"
|
|
3
|
+
import { type IsUnion } from "effect-app/utils"
|
|
3
4
|
|
|
4
5
|
export type OmegaFieldInternalApi<From extends Record<PropertyKey, any>, TName extends DeepKeys<From>> = FieldApi<
|
|
5
6
|
/* in out TParentData*/ From,
|
|
@@ -60,10 +61,13 @@ export type VuetifyInputProps<From extends Record<PropertyKey, any>, TName exten
|
|
|
60
61
|
// Utility type to extract _tag literal values from a discriminated union
|
|
61
62
|
// For a union like { _tag: "A", ... } | { _tag: "B", ... }, this returns "A" | "B"
|
|
62
63
|
// For nullable unions like { _tag: "A" } | { _tag: "B" } | null, this still returns "A" | "B" (excluding null)
|
|
63
|
-
export type ExtractTagValue<
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
export type ExtractTagValue<
|
|
65
|
+
From extends Record<PropertyKey, any>,
|
|
66
|
+
TName extends DeepKeys<From> | undefined
|
|
67
|
+
> = IsUnion<TName> extends true ? From extends { _tag: infer Tag } ? Tag : never
|
|
68
|
+
: DeepValue<From, TName> extends infer U ? U extends { _tag: infer Tag } ? Tag
|
|
66
69
|
: never
|
|
70
|
+
: never
|
|
67
71
|
|
|
68
72
|
// Utility type to extract a specific branch from a discriminated union based on _tag value
|
|
69
73
|
// For union { _tag: "A", foo: string } | { _tag: "B", bar: number } and Tag="A", returns { _tag: "A", foo: string }
|
|
@@ -72,16 +76,21 @@ export type ExtractUnionBranch<T, Tag> = T extends { _tag: Tag } ? T
|
|
|
72
76
|
|
|
73
77
|
// Option type for TaggedUnion component with strongly-typed value
|
|
74
78
|
// The value can be either one of the _tag values OR null (for the placeholder)
|
|
75
|
-
export type TaggedUnionOption<From extends Record<PropertyKey, any>, TName extends DeepKeys<From
|
|
79
|
+
export type TaggedUnionOption<From extends Record<PropertyKey, any>, TName extends DeepKeys<From> | undefined> = {
|
|
76
80
|
readonly title: string
|
|
77
81
|
readonly value: ExtractTagValue<From, TName> | null
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
// Options array must ALWAYS start with a null option (placeholder), followed by the actual options
|
|
81
|
-
export type TaggedUnionOptionsArray<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
export type TaggedUnionOptionsArray<
|
|
86
|
+
From extends Record<PropertyKey, any>,
|
|
87
|
+
TName extends DeepKeys<From> | undefined
|
|
88
|
+
> =
|
|
89
|
+
| readonly [
|
|
90
|
+
{ readonly title: string; readonly value: null },
|
|
91
|
+
...ReadonlyArray<{ readonly title: string; readonly value: ExtractTagValue<From, TName> }>
|
|
92
|
+
]
|
|
93
|
+
| ReadonlyArray<{ readonly title: string; readonly value: ExtractTagValue<From, TName> }>
|
|
85
94
|
|
|
86
95
|
// Props for TaggedUnion component
|
|
87
96
|
export type TaggedUnionProps<From extends Record<PropertyKey, any>, TName extends DeepKeys<From>> = {
|
|
@@ -695,6 +695,58 @@ const flattenMeta = <From, To>(
|
|
|
695
695
|
return flattenMeta(S.make(ast.from))
|
|
696
696
|
}
|
|
697
697
|
|
|
698
|
+
// Handle root-level Union types (discriminated unions)
|
|
699
|
+
if (ast._tag === "Union") {
|
|
700
|
+
const unionAst = ast as any
|
|
701
|
+
const types = unionAst.types || []
|
|
702
|
+
|
|
703
|
+
// Filter out null/undefined types and unwrap transformations
|
|
704
|
+
const nonNullTypes = types
|
|
705
|
+
.filter((t: any) => t._tag !== "UndefinedKeyword" && t !== S.Null.ast)
|
|
706
|
+
.map(getTransformationFrom)
|
|
707
|
+
|
|
708
|
+
// Check if this is a discriminated union (all members are structs)
|
|
709
|
+
const allStructs = nonNullTypes.every((t: any) => t._tag === "TypeLiteral" && "propertySignatures" in t)
|
|
710
|
+
|
|
711
|
+
if (allStructs && nonNullTypes.length > 0) {
|
|
712
|
+
// Extract discriminator values from each union member
|
|
713
|
+
const discriminatorValues: any[] = []
|
|
714
|
+
|
|
715
|
+
// Merge metadata from all union members
|
|
716
|
+
for (const memberType of nonNullTypes) {
|
|
717
|
+
if ("propertySignatures" in memberType) {
|
|
718
|
+
// Find the discriminator field (usually _tag)
|
|
719
|
+
const tagProp = memberType.propertySignatures.find(
|
|
720
|
+
(p: any) => p.name.toString() === "_tag"
|
|
721
|
+
)
|
|
722
|
+
|
|
723
|
+
if (tagProp && S.AST.isLiteral(tagProp.type)) {
|
|
724
|
+
discriminatorValues.push(tagProp.type.literal)
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
// Create metadata for this member's properties
|
|
728
|
+
const memberMeta = createMeta<To>({
|
|
729
|
+
propertySignatures: memberType.propertySignatures
|
|
730
|
+
})
|
|
731
|
+
|
|
732
|
+
// Merge into result
|
|
733
|
+
Object.assign(result, memberMeta)
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
// Create metadata for the discriminator field
|
|
738
|
+
if (discriminatorValues.length > 0) {
|
|
739
|
+
result["_tag" as DeepKeys<To>] = {
|
|
740
|
+
type: "select",
|
|
741
|
+
members: discriminatorValues,
|
|
742
|
+
required: true
|
|
743
|
+
} as FieldMeta
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
return result
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
|
|
698
750
|
if ("propertySignatures" in ast) {
|
|
699
751
|
const meta = createMeta<To>({
|
|
700
752
|
propertySignatures: ast.propertySignatures
|