@effect-app/vue-components 4.0.0-beta.39 → 4.0.0-beta.40

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.
@@ -1,40 +1,41 @@
1
- import { useForm as T } from "@tanstack/vue-form";
2
- import { Data as z, S as V, Effect as p, Fiber as W, Option as G, Array as A } from "effect-app";
3
- import { runtimeFiberAsPromise as D } from "./vue-components.es17.js";
4
- import { computed as $, onUnmounted as R, onMounted as Z, onBeforeUnmount as Q, watch as N, ref as X, h as q } from "vue";
5
- import { useIntl as Y } from "./vue-components.es3.js";
6
- import C from "./vue-components.es18.js";
7
- import ee from "./vue-components.es19.js";
8
- import re from "./vue-components.es20.js";
9
- import { toFormSchema as te, generateMetaFromSchema as se, deepMerge as H, defaultsValueFromSchema as ne } from "./vue-components.es12.js";
10
- import oe from "./vue-components.es6.js";
11
- import ie from "./vue-components.es8.js";
12
- import ae from "./vue-components.es21.js";
1
+ import { useForm as z } from "@tanstack/vue-form";
2
+ import { Data as G, ServiceMap as Z, S as V, Effect as b, Fiber as R, Option as Q, Array as A } from "effect-app";
3
+ import { runtimeFiberAsPromise as W } from "./vue-components.es17.js";
4
+ import { computed as $, onUnmounted as D, onMounted as X, onBeforeUnmount as Y, watch as N, ref as C, h as B } from "vue";
5
+ import { useIntl as ee } from "./vue-components.es3.js";
6
+ import re from "./vue-components.es18.js";
7
+ import te from "./vue-components.es19.js";
8
+ import se from "./vue-components.es20.js";
9
+ import { toFormSchema as ne, generateMetaFromSchema as oe, deepMerge as H, defaultsValueFromSchema as ie } from "./vue-components.es12.js";
10
+ import ae from "./vue-components.es6.js";
11
+ import ce from "./vue-components.es8.js";
12
+ import le from "./vue-components.es21.js";
13
+ import { makeRunPromise as ue } from "@effect-app/vue/runtime";
13
14
  import { trace as J } from "./vue-components.es22.js";
14
15
  import { context as _ } from "./vue-components.es23.js";
15
- class ce extends z.TaggedError("FormErrors") {
16
+ class de extends G.TaggedError("FormErrors") {
16
17
  }
17
18
  const F = (a) => function(s) {
18
19
  return {
19
20
  render() {
20
- return q(s, {
21
+ return B(s, {
21
22
  form: a,
22
23
  ...this.$attrs
23
24
  }, this.$slots);
24
25
  }
25
26
  };
26
- }, le = (a) => {
27
- const { formatMessage: c } = Y(), s = (l) => l.replace(/([A-Z])/g, " $1").replace(/^./, (S) => S.toUpperCase()).trim(), f = (l) => c ? c({ id: `general.fields.${l}`, defaultMessage: s(l) }) : s(l);
28
- return (l) => a.i18nNamespace ? c({ id: `${a.i18nNamespace}.fields.${l}`, defaultMessage: f(l) }) : f(l);
29
- }, ue = (a) => function(s) {
27
+ }, me = (a) => {
28
+ const { formatMessage: c } = ee(), s = (l) => l.replace(/([A-Z])/g, " $1").replace(/^./, (h) => h.toUpperCase()).trim(), m = (l) => c ? c({ id: `general.fields.${l}`, defaultMessage: s(l) }) : s(l);
29
+ return (l) => a.i18nNamespace ? c({ id: `${a.i18nNamespace}.fields.${l}`, defaultMessage: m(l) }) : m(l);
30
+ }, fe = (a) => function(s) {
30
31
  return {
31
32
  setup() {
32
- const { fieldMap: f, form: v } = a, l = v.useStore((h) => h.errors), S = v.useStore((h) => h.fieldMeta), M = v.useStore((h) => h.errorMap), b = le(v), L = $(() => {
33
- const h = Object.entries(S.value).reduce((o, [y, g]) => {
33
+ const { fieldMap: m, form: p } = a, l = p.useStore((v) => v.errors), h = p.useStore((v) => v.fieldMeta), M = p.useStore((v) => v.errorMap), S = me(p), L = $(() => {
34
+ const v = Object.entries(h.value).reduce((o, [y, g]) => {
34
35
  const u = g?.errors ?? [];
35
36
  if (!u.length)
36
37
  return o;
37
- const d = f.value.get(y);
38
+ const d = m.value.get(y);
38
39
  return d && o.push({
39
40
  label: d.label,
40
41
  inputId: d.id,
@@ -48,9 +49,9 @@ const F = (a) => function(s) {
48
49
  const u = g;
49
50
  if (u?.path && A.isArray(u.path) && u.path.length) {
50
51
  const d = u.path.join(".");
51
- if (!f.value.has(d)) {
52
+ if (!m.value.has(d)) {
52
53
  O.push({
53
- label: b(d),
54
+ label: S(d),
54
55
  inputId: d,
55
56
  errors: [u.message].filter(Boolean)
56
57
  });
@@ -59,34 +60,34 @@ const F = (a) => function(s) {
59
60
  }
60
61
  }
61
62
  }
62
- return [...h, ...O];
63
+ return [...v, ...O];
63
64
  });
64
65
  return {
65
66
  generalErrors: l,
66
67
  errors: L
67
68
  };
68
69
  },
69
- render({ errors: f, generalErrors: v }) {
70
- return q(s, {
71
- errors: f,
72
- generalErrors: v,
70
+ render({ errors: m, generalErrors: p }) {
71
+ return B(s, {
72
+ errors: m,
73
+ generalErrors: p,
73
74
  ...this.$attrs
74
75
  }, this.$slots);
75
76
  }
76
77
  };
77
- }, w = (a, c) => a.includes(c), Oe = (a, c, s) => {
78
+ }, w = (a, c) => a.includes(c), q = ue(Z.empty()), Ue = (a, c, s) => {
78
79
  if (!a) throw new Error("Schema is required");
79
- const f = te(a), v = V.toStandardSchemaV1(f), l = V.decodeUnknownEffect(f), { meta: S, unionMeta: M } = se(a), b = $(() => {
80
+ const m = ne(a), p = V.toStandardSchemaV1(m), l = V.decodeUnknownEffect(m), { meta: h, unionMeta: M } = oe(a), S = $(() => {
80
81
  if (s?.persistency?.id)
81
82
  return s.persistency.id;
82
- const e = window.location.pathname, r = Object.keys(S);
83
+ const e = window.location.pathname, r = Object.keys(h);
83
84
  return `${e}-${r.join("-")}`;
84
85
  }), L = () => {
85
86
  const e = new URLSearchParams(window.location.search);
86
- e.delete(b.value);
87
+ e.delete(S.value);
87
88
  const r = new URL(window.location.href);
88
89
  r.search = e.toString(), window.history.replaceState({}, "", r.toString());
89
- }, h = $(() => {
90
+ }, v = $(() => {
90
91
  let e;
91
92
  const r = s?.persistency;
92
93
  if (
@@ -97,16 +98,16 @@ const F = (a) => function(s) {
97
98
  if (n)
98
99
  try {
99
100
  const t = JSON.parse(
100
- n.getItem(b.value) || "{}"
101
+ n.getItem(S.value) || "{}"
101
102
  );
102
- n.removeItem(b.value), e = t;
103
+ n.removeItem(S.value), e = t;
103
104
  } catch (t) {
104
105
  console.error(t);
105
106
  }
106
107
  }
107
108
  if (r?.policies && w(r.policies, "querystring"))
108
109
  try {
109
- const t = new URLSearchParams(window.location.search).get(b.value);
110
+ const t = new URLSearchParams(window.location.search).get(S.value);
110
111
  L(), t && (e = H(e || {}, JSON.parse(t)));
111
112
  } catch (n) {
112
113
  console.error(n);
@@ -115,47 +116,47 @@ const F = (a) => function(s) {
115
116
  const i = {
116
117
  tanstack: c?.defaultValues || {},
117
118
  persistency: e,
118
- schema: ne(a)
119
+ schema: ie(a)
119
120
  };
120
121
  return (s?.defaultValuesPriority || ["tanstack", "persistency", "schema"]).reverse().reduce(
121
122
  (n, t) => Object.keys(n).length ? H(n, i[t]) : i[t],
122
123
  {}
123
124
  );
124
- }), O = (e, r) => e ? _.with(J.setSpan(_.active(), e), r) : r(), o = T({
125
+ }), O = (e, r) => e ? _.with(J.setSpan(_.active(), e), r) : r(), o = z({
125
126
  ...c,
126
127
  validators: {
127
- onSubmit: v,
128
+ onSubmit: p,
128
129
  ...c?.validators || {}
129
130
  },
130
131
  onSubmit: c?.onSubmit ? ({ formApi: e, meta: r, value: i }) => O(r?.currentSpan, async () => {
131
- const n = await p.runPromise(l(i)), t = c.onSubmit({
132
+ const n = await q(l(i)), t = c.onSubmit({
132
133
  formApi: e,
133
134
  meta: r,
134
135
  value: n
135
136
  });
136
- if (W.isFiber(t))
137
- return await D(t);
138
- if (p.isEffect(t)) {
139
- const m = await p.runPromise(t);
140
- return W.isFiber(m) ? await D(m) : m;
137
+ if (R.isFiber(t))
138
+ return await W(t);
139
+ if (b.isEffect(t)) {
140
+ const f = await q(t);
141
+ return R.isFiber(f) ? await W(f) : f;
141
142
  }
142
143
  return t;
143
144
  }) : void 0,
144
- defaultValues: h.value
145
+ defaultValues: v.value
145
146
  }), y = () => {
146
- Object.keys(S).forEach((e) => {
147
+ Object.keys(h).forEach((e) => {
147
148
  o.setFieldValue(e, void 0);
148
149
  });
149
150
  }, g = (e) => e.reduce((r, i) => {
150
151
  const n = i.split(".");
151
- return n.reduce((t, m, U) => (U === n.length - 1 ? t[m] = o.getFieldValue(i) : t[m] = t[m] ?? {}, t[m]), r), r;
152
+ return n.reduce((t, f, U) => (U === n.length - 1 ? t[f] = o.getFieldValue(i) : t[f] = t[f] ?? {}, t[f]), r), r;
152
153
  }, {}), u = (e) => {
153
154
  if (!e) return;
154
155
  const { banKeys: r, keys: i } = e;
155
156
  if (A.isArray(i))
156
157
  return g(i);
157
158
  if (A.isArray(r)) {
158
- const n = Object.keys(S).filter((t) => r.includes(t));
159
+ const n = Object.keys(h).filter((t) => r.includes(t));
159
160
  return g(n);
160
161
  }
161
162
  return o.store.state.values;
@@ -165,54 +166,54 @@ const F = (a) => function(s) {
165
166
  const r = w(e.policies, "local") ? localStorage : sessionStorage;
166
167
  if (!r) return;
167
168
  const i = u(e);
168
- return r.setItem(b.value, JSON.stringify(i));
169
+ return r.setItem(S.value, JSON.stringify(i));
169
170
  }
170
171
  }, j = () => {
171
172
  const e = s?.persistency;
172
173
  if (!(!e?.policies || e.policies.length === 0) && w(e.policies, "querystring")) {
173
174
  const r = u(e), i = new URLSearchParams(window.location.search);
174
- i.set(b.value, JSON.stringify(r));
175
+ i.set(S.value, JSON.stringify(r));
175
176
  const n = new URL(window.location.href);
176
177
  n.search = i.toString(), window.history.replaceState({}, "", n.toString());
177
178
  }
178
- }, x = (e) => {
179
+ }, k = (e) => {
179
180
  o.store.state.isDirty && e.preventDefault();
180
181
  };
181
- if (R(d), Z(() => {
182
- window.addEventListener("beforeunload", d), window.addEventListener("blur", j), s?.preventWindowExit && s.preventWindowExit !== "nope" && window.addEventListener("beforeunload", x);
183
- }), Q(() => {
184
- window.removeEventListener("beforeunload", d), window.removeEventListener("blur", j), s?.preventWindowExit && s.preventWindowExit !== "nope" && window.removeEventListener("beforeunload", x);
182
+ if (D(d), X(() => {
183
+ window.addEventListener("beforeunload", d), window.addEventListener("blur", j), s?.preventWindowExit && s.preventWindowExit !== "nope" && window.addEventListener("beforeunload", k);
184
+ }), Y(() => {
185
+ window.removeEventListener("beforeunload", d), window.removeEventListener("blur", j), s?.preventWindowExit && s.preventWindowExit !== "nope" && window.removeEventListener("beforeunload", k);
185
186
  }), s?.preventWindowExit === "prevent-and-reset") {
186
187
  const e = o.useStore((t) => t.isSubmitting), r = o.useStore((t) => t.submissionAttempts), i = o.useStore((t) => t.canSubmit), n = o.useStore((t) => t.values);
187
- N([e, r], ([t, m], [U]) => {
188
- U && !t && m > 0 && i.value && o.reset(n.value);
188
+ N([e, r], ([t, f], [U]) => {
189
+ U && !t && f > 0 && i.value && o.reset(n.value);
189
190
  });
190
191
  }
191
- const k = (e) => p.currentSpan.pipe(
192
- p.option,
193
- p.flatMap(
194
- (r) => p.promise(() => o.handleSubmit(G.isSome(r) ? { currentSpan: r.value, ...e } : e))
192
+ const x = (e) => b.currentSpan.pipe(
193
+ b.option,
194
+ b.flatMap(
195
+ (r) => b.promise(() => o.handleSubmit(Q.isSome(r) ? { currentSpan: r.value, ...e } : e))
195
196
  )
196
- ), B = (e) => e?.checkErrors ? k(e?.meta).pipe(p.flatMap(p.fnUntraced(function* () {
197
+ ), K = (e) => e?.checkErrors ? x(e?.meta).pipe(b.flatMap(b.fnUntraced(function* () {
197
198
  const r = o.getAllErrors();
198
199
  if (Object.keys(r.fields).length || r.form.errors.length)
199
- return yield* p.fail(new ce({ form: r.form, fields: r.fields }));
200
- }))) : k(e?.meta), K = o.handleSubmit, P = X(/* @__PURE__ */ new Map()), E = Object.assign(o, {
200
+ return yield* b.fail(new de({ form: r.form, fields: r.fields }));
201
+ }))) : x(e?.meta), T = o.handleSubmit, P = C(/* @__PURE__ */ new Map()), E = Object.assign(o, {
201
202
  i18nNamespace: s?.i18nNamespace,
202
203
  ignorePreventCloseEvents: s?.ignorePreventCloseEvents,
203
- meta: S,
204
+ meta: h,
204
205
  unionMeta: M,
205
206
  clear: y,
206
207
  handleSubmit: (e) => {
207
208
  const r = J.getSpan(_.active());
208
- return K({ currentSpan: r, ...e });
209
+ return T({ currentSpan: r, ...e });
209
210
  },
210
211
  // /** @experimental */
211
- handleSubmitEffect: B,
212
+ handleSubmitEffect: K,
212
213
  registerField: (e) => {
213
214
  N(e, (r) => {
214
215
  P.value.set(r.name, { label: r.label, id: r.id });
215
- }, { immediate: !0 }), R(() => {
216
+ }, { immediate: !0 }), D(() => {
216
217
  P.value.get(e.value.name)?.id === e.value.id && P.value.delete(e.value.name);
217
218
  });
218
219
  }
@@ -223,17 +224,17 @@ const F = (a) => function(s) {
223
224
  _keys: void 0,
224
225
  _schema: a,
225
226
  errorContext: I,
226
- Form: F(E)(ae),
227
- Input: F(E)(s?.input ?? oe),
228
- TaggedUnion: F(E)(ie),
227
+ Form: F(E)(le),
228
+ Input: F(E)(s?.input ?? ae),
229
+ TaggedUnion: F(E)(ce),
229
230
  Field: o.Field,
230
- Errors: ue(I)(re),
231
- Array: F(E)(C),
232
- AutoGen: F(E)(ee)
231
+ Errors: fe(I)(se),
232
+ Array: F(E)(re),
233
+ AutoGen: F(E)(te)
233
234
  });
234
235
  };
235
236
  export {
236
- ce as FormErrors,
237
- le as useErrorLabel,
238
- Oe as useOmegaForm
237
+ de as FormErrors,
238
+ me as useErrorLabel,
239
+ Ue as useOmegaForm
239
240
  };
@@ -1,6 +1,6 @@
1
1
  import { Exit as c, Cause as u } from "effect";
2
- import { dual as i } from "./vue-components.es30.js";
3
- import { isFunction as m } from "./vue-components.es31.js";
2
+ import { dual as i } from "./vue-components.es32.js";
3
+ import { isFunction as m } from "./vue-components.es33.js";
4
4
  const n = /* @__PURE__ */ Symbol.for("clone-trait"), a = i(2, (o, t) => n in o ? o[n](t) : Object.setPrototypeOf(t, Object.getPrototypeOf(o)));
5
5
  i(2, (o, t) => a(o, { ...o, ...m(t) ? t(o) : t }));
6
6
  const O = (o, t) => new Promise((r, s) => o.addObserver((e) => {
@@ -1,7 +1,7 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");if(a.appendChild(document.createTextNode('.v-enter-from[data-v-6b2bf87e],.v-leave-to[data-v-6b2bf87e]{max-height:0px;grid-template-rows:0fr;opacity:0}.v-enter-active[data-v-6b2bf87e],.v-leave-active[data-v-6b2bf87e]{display:grid;transition:all .15s}.v-enter-to[data-v-6b2bf87e],.v-leave-from[data-v-6b2bf87e]{grid-template-rows:1fr;max-height:50vh;opacity:1}.error-alert[data-v-6b2bf87e]{transition-behavior:allow-discrete;display:grid;overflow:hidden;min-height:0}.error-alert>*[data-v-6b2bf87e]{min-height:0}.error-list[data-v-6b2bf87e]{list-style-position:inside}.error-list [data-v-6b2bf87e]::marker{margin:0;padding:0}.error-alert-content[data-v-6b2bf87e]{background-color:var(--error-background, #fff5f5);color:var(--error-color, #c92a2a);padding:1em}.error-link[data-v-6b2bf87e]{font-weight:700;position:relative;color:var(--error-color, #c92a2a);cursor:pointer}.error-link[data-v-6b2bf87e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(from var(--error-color, #c92a2a) r g b / .5)}.text-h6[data-v-6b2bf87e]{font-weight:700;font-size:1.25em}.error-message[data-v-6b2bf87e]{font-style:italic}.error-item[data-v-6b2bf87e]{margin-bottom:.5em;overflow:hidden}.error-item>div[data-v-6b2bf87e]{float:right;width:100%;max-width:calc(100% - 1.5em)}.container[data-v-6b2bf87e]{display:flex;gap:1.5em}.container svg[data-v-6b2bf87e]{width:3em}.container .single-error[data-v-6b2bf87e]{display:inline-block}')),document.head.appendChild(a),window.customElements){const e=window.customElements.define;window.customElements.define=function(i,t){const r=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(r&&r.call(this),this.shadowRoot){const o=document.createElement("style");o.appendChild(document.createTextNode('.v-enter-from[data-v-6b2bf87e],.v-leave-to[data-v-6b2bf87e]{max-height:0px;grid-template-rows:0fr;opacity:0}.v-enter-active[data-v-6b2bf87e],.v-leave-active[data-v-6b2bf87e]{display:grid;transition:all .15s}.v-enter-to[data-v-6b2bf87e],.v-leave-from[data-v-6b2bf87e]{grid-template-rows:1fr;max-height:50vh;opacity:1}.error-alert[data-v-6b2bf87e]{transition-behavior:allow-discrete;display:grid;overflow:hidden;min-height:0}.error-alert>*[data-v-6b2bf87e]{min-height:0}.error-list[data-v-6b2bf87e]{list-style-position:inside}.error-list [data-v-6b2bf87e]::marker{margin:0;padding:0}.error-alert-content[data-v-6b2bf87e]{background-color:var(--error-background, #fff5f5);color:var(--error-color, #c92a2a);padding:1em}.error-link[data-v-6b2bf87e]{font-weight:700;position:relative;color:var(--error-color, #c92a2a);cursor:pointer}.error-link[data-v-6b2bf87e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(from var(--error-color, #c92a2a) r g b / .5)}.text-h6[data-v-6b2bf87e]{font-weight:700;font-size:1.25em}.error-message[data-v-6b2bf87e]{font-style:italic}.error-item[data-v-6b2bf87e]{margin-bottom:.5em;overflow:hidden}.error-item>div[data-v-6b2bf87e]{float:right;width:100%;max-width:calc(100% - 1.5em)}.container[data-v-6b2bf87e]{display:flex;gap:1.5em}.container svg[data-v-6b2bf87e]{width:3em}.container .single-error[data-v-6b2bf87e]{display:inline-block}')),this.shadowRoot.appendChild(o)}},e.call(window.customElements,i,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import r from "./vue-components.es34.js";
2
+ import r from "./vue-components.es36.js";
3
3
 
4
- import o from "./vue-components.es36.js";
4
+ import o from "./vue-components.es38.js";
5
5
  const m = /* @__PURE__ */ o(r, [["__scopeId", "data-v-6b2bf87e"]]);
6
6
  export {
7
7
  m as default
@@ -1,7 +1,7 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var n=document.createElement("style");if(n.appendChild(document.createTextNode("fieldset[data-v-8c9cb27c]{display:contents}fieldset[disabled][data-v-8c9cb27c]>*{pointer-events:none}")),document.head.appendChild(n),window.customElements){const e=window.customElements.define;window.customElements.define=function(o,t){const d=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(d&&d.call(this),this.shadowRoot){const c=document.createElement("style");c.appendChild(document.createTextNode("fieldset[data-v-8c9cb27c]{display:contents}fieldset[disabled][data-v-8c9cb27c]>*{pointer-events:none}")),this.shadowRoot.appendChild(c)}},e.call(window.customElements,o,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import o from "./vue-components.es37.js";
2
+ import o from "./vue-components.es39.js";
3
3
 
4
- import m from "./vue-components.es36.js";
4
+ import m from "./vue-components.es38.js";
5
5
  const a = /* @__PURE__ */ m(o, [["__scopeId", "data-v-8c9cb27c"]]);
6
6
  export {
7
7
  a as default
@@ -1,31 +1,194 @@
1
- const s = function(e, r) {
2
- switch (e) {
3
- case 0:
4
- case 1:
5
- throw new RangeError(`Invalid arity ${e}`);
6
- case 2:
7
- return function(n, t) {
8
- return arguments.length >= 2 ? r(n, t) : function(u) {
9
- return r(u, n);
10
- };
11
- };
12
- case 3:
13
- return function(n, t, u) {
14
- return arguments.length >= 3 ? r(n, t, u) : function(c) {
15
- return r(c, n, t);
16
- };
17
- };
18
- default:
19
- return function() {
20
- if (arguments.length >= e)
21
- return r.apply(this, arguments);
22
- const n = arguments;
23
- return function(t) {
24
- return r(t, ...n);
25
- };
26
- };
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",
6
+ props: {
7
+ inputProps: {},
8
+ field: {},
9
+ state: {}
10
+ },
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))
19
+ }, [
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
+ };
27
190
  }
28
- };
191
+ });
29
192
  export {
30
- s as dual
193
+ w as default
31
194
  };
@@ -1,4 +1,31 @@
1
- import f from "./vue-components.es18.js";
1
+ const s = function(e, r) {
2
+ switch (e) {
3
+ case 0:
4
+ case 1:
5
+ throw new RangeError(`Invalid arity ${e}`);
6
+ case 2:
7
+ return function(n, t) {
8
+ return arguments.length >= 2 ? r(n, t) : function(u) {
9
+ return r(u, n);
10
+ };
11
+ };
12
+ case 3:
13
+ return function(n, t, u) {
14
+ return arguments.length >= 3 ? r(n, t, u) : function(c) {
15
+ return r(c, n, t);
16
+ };
17
+ };
18
+ default:
19
+ return function() {
20
+ if (arguments.length >= e)
21
+ return r.apply(this, arguments);
22
+ const n = arguments;
23
+ return function(t) {
24
+ return r(t, ...n);
25
+ };
26
+ };
27
+ }
28
+ };
2
29
  export {
3
- f as default
30
+ s as dual
4
31
  };
@@ -1,4 +1,6 @@
1
- import f from "./vue-components.es19.js";
1
+ function t(n) {
2
+ return typeof n == "function";
3
+ }
2
4
  export {
3
- f as default
5
+ t as isFunction
4
6
  };
@@ -1,113 +1,4 @@
1
- import { defineComponent as _, getCurrentInstance as B, computed as V, createBlock as i, openBlock as e, Transition as x, withCtx as u, createElementBlock as o, createCommentVNode as p, renderSlot as g, normalizeProps as b, guardReactiveProps as I, resolveDynamicComponent as h, unref as d, normalizeClass as v, createElementVNode as n, toDisplayString as a, Fragment as w, renderList as y, createTextVNode as C } from "vue";
2
- import { useIntl as L } from "./vue-components.es3.js";
3
- const M = {
4
- key: 0,
5
- class: "error-alert"
6
- }, j = { class: "container" }, D = {
7
- key: 0,
8
- viewBox: "0 0 24 24",
9
- fill: "none",
10
- xmlns: "http://www.w3.org/2000/svg"
11
- }, N = { class: "text-h6" }, z = {
12
- key: 0,
13
- class: "error-list"
14
- }, G = ["for"], H = { key: 1 }, T = /* @__PURE__ */ _({
15
- __name: "OmegaErrorsInternal",
16
- props: {
17
- generalErrors: {},
18
- errors: {},
19
- hideErrorDetails: { type: Boolean }
20
- },
21
- setup(l) {
22
- const c = B()?.appContext.components.VAlert, k = l, { trans: E } = L(), m = V(() => k.generalErrors ? k.generalErrors.filter((s) => !!s).flatMap(
23
- (s) => Object.values(s).filter((t) => !!t).flatMap(
24
- (t) => t.filter(
25
- (r) => !!r?.message
26
- ).map((r) => r.message)
27
- )
28
- ) : []);
29
- return (s, t) => (e(), i(x, null, {
30
- default: u(() => [
31
- l.errors.length || m.value.length ? (e(), o("div", M, [
32
- g(s.$slots, "default", b(I({ errors: l.errors, showedGeneralErrors: m.value })), () => [
33
- (e(), i(h(d(c) ? "v-alert" : "div"), {
34
- class: v([d(c) ? "mb-4" : "error-alert-content", "mb-4"]),
35
- type: "error",
36
- variant: "tonal",
37
- role: "alert",
38
- "aria-live": "polite"
39
- }, {
40
- default: u(() => [
41
- n("div", j, [
42
- g(s.$slots, "icon", {}, () => [
43
- d(c) ? p("", !0) : (e(), o("svg", D, [...t[0] || (t[0] = [
44
- n("path", {
45
- d: "M16 2H8L2 8V16L8 22H16L22 16V8L16 2Z",
46
- stroke: "currentColor",
47
- "stroke-width": "2",
48
- "stroke-linecap": "round",
49
- "stroke-linejoin": "round"
50
- }, null, -1),
51
- n("path", {
52
- d: "M12 8V12",
53
- stroke: "currentColor",
54
- "stroke-width": "2",
55
- "stroke-linecap": "round",
56
- "stroke-linejoin": "round"
57
- }, null, -1),
58
- n("path", {
59
- d: "M12 16.0195V16",
60
- stroke: "currentColor",
61
- "stroke-width": "2",
62
- "stroke-linecap": "round",
63
- "stroke-linejoin": "round"
64
- }, null, -1)
65
- ])]))
66
- ], !0),
67
- n("div", null, [
68
- n("div", N, a(d(E)("form.includes_error")) + ": ", 1),
69
- l.errors.length ? (e(), o("ul", z, [
70
- (e(!0), o(w, null, y(l.errors, (r) => (e(), o("li", {
71
- key: r.inputId,
72
- class: "error-item"
73
- }, [
74
- n("div", null, [
75
- n("label", {
76
- for: r.inputId,
77
- class: "error-link"
78
- }, a(r.label), 9, G),
79
- t[1] || (t[1] = C(" " + a(" ") + " ", -1)),
80
- l.hideErrorDetails ? p("", !0) : (e(), o("div", {
81
- key: 0,
82
- class: v(["error-message", r.errors.length < 2 && "single-error"])
83
- }, [
84
- (e(), i(h(r.errors.length > 1 ? "ul" : "div"), { class: "error-list" }, {
85
- default: u(() => [
86
- (e(!0), o(w, null, y(r.errors, (f) => (e(), i(h(r.errors.length > 1 ? "li" : "span"), { key: f }, {
87
- default: u(() => [
88
- C(a(f), 1)
89
- ]),
90
- _: 2
91
- }, 1024))), 128))
92
- ]),
93
- _: 2
94
- }, 1024))
95
- ], 2))
96
- ])
97
- ]))), 128))
98
- ])) : (e(), o("span", H, a(m.value[0]), 1))
99
- ])
100
- ])
101
- ]),
102
- _: 3
103
- }, 8, ["class"]))
104
- ], !0)
105
- ])) : p("", !0)
106
- ]),
107
- _: 3
108
- }));
109
- }
110
- });
1
+ import f from "./vue-components.es18.js";
111
2
  export {
112
- T as default
3
+ f as default
113
4
  };
@@ -0,0 +1,4 @@
1
+ import f from "./vue-components.es19.js";
2
+ export {
3
+ f as default
4
+ };
@@ -1,9 +1,113 @@
1
- const s = (t, e) => {
2
- const o = t.__vccOpts || t;
3
- for (const [r, c] of e)
4
- o[r] = c;
5
- return o;
6
- };
1
+ import { defineComponent as _, getCurrentInstance as B, computed as V, createBlock as i, openBlock as e, Transition as x, withCtx as u, createElementBlock as o, createCommentVNode as p, renderSlot as g, normalizeProps as b, guardReactiveProps as I, resolveDynamicComponent as h, unref as d, normalizeClass as v, createElementVNode as n, toDisplayString as a, Fragment as w, renderList as y, createTextVNode as C } from "vue";
2
+ import { useIntl as L } from "./vue-components.es3.js";
3
+ const M = {
4
+ key: 0,
5
+ class: "error-alert"
6
+ }, j = { class: "container" }, D = {
7
+ key: 0,
8
+ viewBox: "0 0 24 24",
9
+ fill: "none",
10
+ xmlns: "http://www.w3.org/2000/svg"
11
+ }, N = { class: "text-h6" }, z = {
12
+ key: 0,
13
+ class: "error-list"
14
+ }, G = ["for"], H = { key: 1 }, T = /* @__PURE__ */ _({
15
+ __name: "OmegaErrorsInternal",
16
+ props: {
17
+ generalErrors: {},
18
+ errors: {},
19
+ hideErrorDetails: { type: Boolean }
20
+ },
21
+ setup(l) {
22
+ const c = B()?.appContext.components.VAlert, k = l, { trans: E } = L(), m = V(() => k.generalErrors ? k.generalErrors.filter((s) => !!s).flatMap(
23
+ (s) => Object.values(s).filter((t) => !!t).flatMap(
24
+ (t) => t.filter(
25
+ (r) => !!r?.message
26
+ ).map((r) => r.message)
27
+ )
28
+ ) : []);
29
+ return (s, t) => (e(), i(x, null, {
30
+ default: u(() => [
31
+ l.errors.length || m.value.length ? (e(), o("div", M, [
32
+ g(s.$slots, "default", b(I({ errors: l.errors, showedGeneralErrors: m.value })), () => [
33
+ (e(), i(h(d(c) ? "v-alert" : "div"), {
34
+ class: v([d(c) ? "mb-4" : "error-alert-content", "mb-4"]),
35
+ type: "error",
36
+ variant: "tonal",
37
+ role: "alert",
38
+ "aria-live": "polite"
39
+ }, {
40
+ default: u(() => [
41
+ n("div", j, [
42
+ g(s.$slots, "icon", {}, () => [
43
+ d(c) ? p("", !0) : (e(), o("svg", D, [...t[0] || (t[0] = [
44
+ n("path", {
45
+ d: "M16 2H8L2 8V16L8 22H16L22 16V8L16 2Z",
46
+ stroke: "currentColor",
47
+ "stroke-width": "2",
48
+ "stroke-linecap": "round",
49
+ "stroke-linejoin": "round"
50
+ }, null, -1),
51
+ n("path", {
52
+ d: "M12 8V12",
53
+ stroke: "currentColor",
54
+ "stroke-width": "2",
55
+ "stroke-linecap": "round",
56
+ "stroke-linejoin": "round"
57
+ }, null, -1),
58
+ n("path", {
59
+ d: "M12 16.0195V16",
60
+ stroke: "currentColor",
61
+ "stroke-width": "2",
62
+ "stroke-linecap": "round",
63
+ "stroke-linejoin": "round"
64
+ }, null, -1)
65
+ ])]))
66
+ ], !0),
67
+ n("div", null, [
68
+ n("div", N, a(d(E)("form.includes_error")) + ": ", 1),
69
+ l.errors.length ? (e(), o("ul", z, [
70
+ (e(!0), o(w, null, y(l.errors, (r) => (e(), o("li", {
71
+ key: r.inputId,
72
+ class: "error-item"
73
+ }, [
74
+ n("div", null, [
75
+ n("label", {
76
+ for: r.inputId,
77
+ class: "error-link"
78
+ }, a(r.label), 9, G),
79
+ t[1] || (t[1] = C(" " + a(" ") + " ", -1)),
80
+ l.hideErrorDetails ? p("", !0) : (e(), o("div", {
81
+ key: 0,
82
+ class: v(["error-message", r.errors.length < 2 && "single-error"])
83
+ }, [
84
+ (e(), i(h(r.errors.length > 1 ? "ul" : "div"), { class: "error-list" }, {
85
+ default: u(() => [
86
+ (e(!0), o(w, null, y(r.errors, (f) => (e(), i(h(r.errors.length > 1 ? "li" : "span"), { key: f }, {
87
+ default: u(() => [
88
+ C(a(f), 1)
89
+ ]),
90
+ _: 2
91
+ }, 1024))), 128))
92
+ ]),
93
+ _: 2
94
+ }, 1024))
95
+ ], 2))
96
+ ])
97
+ ]))), 128))
98
+ ])) : (e(), o("span", H, a(m.value[0]), 1))
99
+ ])
100
+ ])
101
+ ]),
102
+ _: 3
103
+ }, 8, ["class"]))
104
+ ], !0)
105
+ ])) : p("", !0)
106
+ ]),
107
+ _: 3
108
+ }));
109
+ }
110
+ });
7
111
  export {
8
- s as default
112
+ T as default
9
113
  };
@@ -0,0 +1,9 @@
1
+ const s = (t, e) => {
2
+ const o = t.__vccOpts || t;
3
+ for (const [r, c] of e)
4
+ o[r] = c;
5
+ return o;
6
+ };
7
+ export {
8
+ s as default
9
+ };
@@ -1,194 +1,34 @@
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",
1
+ import { defineComponent as m, createElementBlock as d, openBlock as u, withModifiers as f, createElementVNode as l, unref as s, renderSlot as a } from "vue";
2
+ import { useStore as b } from "@tanstack/vue-form";
3
+ import { usePreventClose as p } from "./vue-components.es11.js";
4
+ import { getOmegaStore as c } from "./vue-components.es54.js";
5
+ const S = ["disabled"], V = /* @__PURE__ */ m({
6
+ __name: "OmegaWrapper",
6
7
  props: {
7
- inputProps: {},
8
- field: {},
9
- state: {}
8
+ form: {},
9
+ disabled: { type: Boolean },
10
+ subscribe: {}
10
11
  },
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))
12
+ setup(o) {
13
+ const e = o, i = b(
14
+ e.form.store,
15
+ (t) => t.isSubmitting
16
+ ), n = c(
17
+ e.form,
18
+ e.subscribe
19
+ );
20
+ return e.form.ignorePreventCloseEvents || p(() => e.form.useStore((t) => t.isDirty)), (t, r) => (u(), d("form", {
21
+ novalidate: "",
22
+ onSubmit: r[0] || (r[0] = f((v) => o.form.handleSubmit(), ["prevent", "stop"]))
23
+ }, [
24
+ l("fieldset", {
25
+ disabled: s(i) || o.disabled
19
26
  }, [
20
- 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
- };
27
+ a(t.$slots, "default", { subscribedValues: s(n) }, void 0, !0)
28
+ ], 8, S)
29
+ ], 32));
190
30
  }
191
31
  });
192
32
  export {
193
- w as default
33
+ V as default
194
34
  };
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import o from "./vue-components.es39.js";
2
+ import o from "./vue-components.es30.js";
3
3
 
4
4
  export {
5
5
  o as default
@@ -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 k, computed as a, getCurrentInstance as q, useAttrs as B, useSlots as S, useId as w, renderSlot as p, normalizeProps as s, guardReactiveProps as f, createElementVNode as F, normalizeClass as I, createBlock as L, createCommentVNode as A, unref as O, openBlock as R, mergeProps as V, createSlots as z, withCtx as T } from "vue";
3
3
  import { useStore as c } from "@tanstack/vue-form";
4
- import U from "./vue-components.es39.js";
4
+ import U from "./vue-components.es30.js";
5
5
 
6
6
  const J = /* @__PURE__ */ k({
7
7
  inheritAttrs: !1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue-components",
3
- "version": "4.0.0-beta.39",
3
+ "version": "4.0.0-beta.40",
4
4
  "peerDependencies": {
5
5
  "@mdi/js": "^7.4.47",
6
6
  "effect": "^4.0.0-beta.40",
@@ -57,8 +57,8 @@
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.39",
61
- "effect-app": "4.0.0-beta.39"
60
+ "@effect-app/vue": "4.0.0-beta.40",
61
+ "effect-app": "4.0.0-beta.40"
62
62
  },
63
63
  "scripts": {
64
64
  "check": "vue-tsc",
@@ -3,7 +3,7 @@
3
3
 
4
4
  import * as api from "@opentelemetry/api"
5
5
  import { type DeepKeys, DeepValue, type FormAsyncValidateOrFn, type FormValidateOrFn, type StandardSchemaV1, StandardSchemaV1Issue, useForm, ValidationError, ValidationErrorMap } from "@tanstack/vue-form"
6
- import { Array, Data, Effect, Fiber, Option, Order, S } from "effect-app"
6
+ import { Array, Data, Effect, Fiber, Option, Order, S, ServiceMap } from "effect-app"
7
7
  import { runtimeFiberAsPromise, UnionToTuples } from "effect-app/utils"
8
8
  import { Component, computed, ComputedRef, ConcreteComponent, h, type InjectionKey, onBeforeUnmount, onMounted, onUnmounted, Ref, ref, watch } from "vue"
9
9
  import { useIntl } from "../../utils"
@@ -16,6 +16,8 @@ import OmegaInput from "./OmegaInput.vue"
16
16
  import OmegaTaggedUnion from "./OmegaTaggedUnion.vue"
17
17
  import OmegaForm from "./OmegaWrapper.vue"
18
18
 
19
+ import { makeRunPromise } from "@effect-app/vue/runtime"
20
+
19
21
  type keysRule<T> =
20
22
  | {
21
23
  keys?: NestedKeyOf<T>[]
@@ -668,6 +670,8 @@ export interface OmegaFormReturn<
668
670
  }
669
671
  }
670
672
 
673
+ const runPromise = makeRunPromise(ServiceMap.empty())
674
+
671
675
  export const useOmegaForm = <
672
676
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
673
677
  From extends Record<PropertyKey, any>,
@@ -791,7 +795,7 @@ export const useOmegaForm = <
791
795
  ? ({ formApi, meta, value }) =>
792
796
  wrapWithSpan(meta?.currentSpan, async () => {
793
797
  // validators only validate, they don't actually transform, so we have to do that manually here.
794
- const parsedValue = await Effect.runPromise(decode(value))
798
+ const parsedValue = await runPromise(decode(value))
795
799
  const r = tanstackFormOptions.onSubmit!({
796
800
  formApi: formApi as OmegaFormApi<From, To>,
797
801
  meta,
@@ -801,7 +805,7 @@ export const useOmegaForm = <
801
805
  return await runtimeFiberAsPromise(r)
802
806
  }
803
807
  if (Effect.isEffect(r)) {
804
- const effectResult = await Effect.runPromise(r)
808
+ const effectResult = await runPromise(r)
805
809
  return Fiber.isFiber(effectResult)
806
810
  ? await runtimeFiberAsPromise(effectResult)
807
811
  : effectResult
@@ -1,6 +0,0 @@
1
- function t(n) {
2
- return typeof n == "function";
3
- }
4
- export {
5
- t as isFunction
6
- };
@@ -1,34 +0,0 @@
1
- import { defineComponent as m, createElementBlock as d, openBlock as u, withModifiers as f, createElementVNode as l, unref as s, renderSlot as a } from "vue";
2
- import { useStore as b } from "@tanstack/vue-form";
3
- import { usePreventClose as p } from "./vue-components.es11.js";
4
- import { getOmegaStore as c } from "./vue-components.es54.js";
5
- const S = ["disabled"], V = /* @__PURE__ */ m({
6
- __name: "OmegaWrapper",
7
- props: {
8
- form: {},
9
- disabled: { type: Boolean },
10
- subscribe: {}
11
- },
12
- setup(o) {
13
- const e = o, i = b(
14
- e.form.store,
15
- (t) => t.isSubmitting
16
- ), n = c(
17
- e.form,
18
- e.subscribe
19
- );
20
- return e.form.ignorePreventCloseEvents || p(() => e.form.useStore((t) => t.isDirty)), (t, r) => (u(), d("form", {
21
- novalidate: "",
22
- onSubmit: r[0] || (r[0] = f((v) => o.form.handleSubmit(), ["prevent", "stop"]))
23
- }, [
24
- l("fieldset", {
25
- disabled: s(i) || o.disabled
26
- }, [
27
- a(t.$slots, "default", { subscribedValues: s(n) }, void 0, !0)
28
- ], 8, S)
29
- ], 32));
30
- }
31
- });
32
- export {
33
- V as default
34
- };