@effect-app/vue-components 2.10.0 → 2.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/components/OmegaForm/useOmegaForm.d.ts +13 -3
- package/dist/vue-components.es10.js +132 -125
- package/dist/vue-components.es17.js +1 -1
- package/dist/vue-components.es20.js +2 -2
- package/dist/vue-components.es21.js +2 -2
- package/dist/vue-components.es30.js +41 -191
- package/dist/vue-components.es31.js +4 -0
- package/dist/vue-components.es32.js +2 -42
- package/dist/vue-components.es33.js +111 -2
- package/dist/vue-components.es35.js +7 -111
- package/dist/vue-components.es36.js +34 -0
- package/dist/vue-components.es38.js +187 -27
- package/dist/vue-components.es40.js +1 -1
- package/dist/vue-components.es7.js +1 -1
- package/package.json +3 -3
- package/src/components/OmegaForm/useOmegaForm.ts +46 -30
- package/dist/vue-components.es34.js +0 -4
- package/dist/vue-components.es37.js +0 -9
|
@@ -1,34 +1,194 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
__name: "OmegaWrapper",
|
|
1
|
+
import { defineComponent as k, resolveComponent as b, createElementBlock as v, openBlock as a, createBlock as n, createCommentVNode as u, resolveDynamicComponent as g, mergeProps as o, createSlots as d, withCtx as r, renderSlot as m, normalizeProps as s, guardReactiveProps as P, unref as C, Fragment as V, renderList as U } from "vue";
|
|
2
|
+
import { getInputType as c } from "./vue-components.es12.js";
|
|
3
|
+
const w = /* @__PURE__ */ k({
|
|
4
|
+
inheritAttrs: !1,
|
|
5
|
+
__name: "OmegaInputVuetify",
|
|
7
6
|
props: {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
inputProps: {},
|
|
8
|
+
field: {},
|
|
9
|
+
state: {}
|
|
11
10
|
},
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return e.form.ignorePreventCloseEvents || p(() => e.form.useStore((t) => t.isDirty)), (t, r) => (u(), d("form", {
|
|
21
|
-
novalidate: "",
|
|
22
|
-
onSubmit: r[0] || (r[0] = f((v) => o.form.handleSubmit(), ["prevent", "stop"]))
|
|
23
|
-
}, [
|
|
24
|
-
l("fieldset", {
|
|
25
|
-
disabled: s(i) || o.disabled
|
|
11
|
+
emits: ["focus", "blur"],
|
|
12
|
+
setup(e) {
|
|
13
|
+
return (l, i) => {
|
|
14
|
+
const y = b("v-text-field"), p = b("v-textarea"), f = b("v-radio"), h = b("v-radio-group"), q = b("v-select"), $ = b("v-autocomplete");
|
|
15
|
+
return a(), v("div", {
|
|
16
|
+
class: "omega-input",
|
|
17
|
+
onFocusout: i[4] || (i[4] = (t) => l.$emit("blur", t)),
|
|
18
|
+
onFocusin: i[5] || (i[5] = (t) => l.$emit("focus", t))
|
|
26
19
|
}, [
|
|
27
|
-
a(
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
e.inputProps.type === "boolean" || e.inputProps.type === "switch" ? (a(), n(g(e.inputProps.type === "boolean" ? "v-checkbox" : "v-switch"), o({
|
|
21
|
+
key: 0,
|
|
22
|
+
id: e.inputProps.id,
|
|
23
|
+
name: e.field.name,
|
|
24
|
+
label: e.inputProps.label,
|
|
25
|
+
"error-messages": e.inputProps.errorMessages,
|
|
26
|
+
error: e.inputProps.error,
|
|
27
|
+
ripple: ""
|
|
28
|
+
}, l.$attrs, {
|
|
29
|
+
"model-value": e.state.value,
|
|
30
|
+
onChange: i[0] || (i[0] = (t) => e.field.handleChange(t.target.checked))
|
|
31
|
+
}), d({ _: 2 }, [
|
|
32
|
+
l.$slots.label ? {
|
|
33
|
+
name: "label",
|
|
34
|
+
fn: r(() => [
|
|
35
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
36
|
+
]),
|
|
37
|
+
key: "0"
|
|
38
|
+
} : void 0
|
|
39
|
+
]), 1040, ["id", "name", "label", "error-messages", "error", "model-value"])) : u("", !0),
|
|
40
|
+
e.inputProps.type === "email" || e.inputProps.type === "string" || e.inputProps.type === "password" || e.inputProps.type === "date" ? (a(), n(y, o({
|
|
41
|
+
key: 1,
|
|
42
|
+
id: e.inputProps.id,
|
|
43
|
+
required: e.inputProps.required,
|
|
44
|
+
"min-length": e.inputProps.minLength,
|
|
45
|
+
"max-length": e.inputProps.maxLength,
|
|
46
|
+
type: C(c)(e.inputProps.type),
|
|
47
|
+
name: e.field.name,
|
|
48
|
+
label: e.inputProps.label,
|
|
49
|
+
"error-messages": e.inputProps.errorMessages,
|
|
50
|
+
error: e.inputProps.error
|
|
51
|
+
}, l.$attrs, {
|
|
52
|
+
"model-value": e.state.value,
|
|
53
|
+
"onUpdate:modelValue": e.field.handleChange
|
|
54
|
+
}), d({ _: 2 }, [
|
|
55
|
+
l.$slots.label ? {
|
|
56
|
+
name: "label",
|
|
57
|
+
fn: r(() => [
|
|
58
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
59
|
+
]),
|
|
60
|
+
key: "0"
|
|
61
|
+
} : void 0
|
|
62
|
+
]), 1040, ["id", "required", "min-length", "max-length", "type", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
63
|
+
e.inputProps.type === "text" ? (a(), n(p, o({
|
|
64
|
+
key: 2,
|
|
65
|
+
id: e.inputProps.id,
|
|
66
|
+
required: e.inputProps.required,
|
|
67
|
+
"min-length": e.inputProps.minLength,
|
|
68
|
+
"max-length": e.inputProps.maxLength,
|
|
69
|
+
name: e.field.name,
|
|
70
|
+
label: e.inputProps.label,
|
|
71
|
+
"error-messages": e.inputProps.errorMessages,
|
|
72
|
+
error: e.inputProps.error
|
|
73
|
+
}, l.$attrs, {
|
|
74
|
+
"model-value": e.state.value,
|
|
75
|
+
"onUpdate:modelValue": e.field.handleChange
|
|
76
|
+
}), d({ _: 2 }, [
|
|
77
|
+
l.$slots.label ? {
|
|
78
|
+
name: "label",
|
|
79
|
+
fn: r(() => [
|
|
80
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
81
|
+
]),
|
|
82
|
+
key: "0"
|
|
83
|
+
} : void 0
|
|
84
|
+
]), 1040, ["id", "required", "min-length", "max-length", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
85
|
+
e.inputProps.type === "number" || e.inputProps.type === "range" ? (a(), n(g(e.inputProps.type === "range" ? "v-slider" : "v-text-field"), o({
|
|
86
|
+
key: 3,
|
|
87
|
+
id: e.inputProps.id,
|
|
88
|
+
required: e.inputProps.required,
|
|
89
|
+
min: e.inputProps.min,
|
|
90
|
+
max: e.inputProps.max,
|
|
91
|
+
type: e.inputProps.type,
|
|
92
|
+
name: e.field.name,
|
|
93
|
+
label: e.inputProps.label,
|
|
94
|
+
"error-messages": e.inputProps.errorMessages,
|
|
95
|
+
error: e.inputProps.error
|
|
96
|
+
}, l.$attrs, {
|
|
97
|
+
"model-value": e.state.value,
|
|
98
|
+
"onUpdate:modelValue": i[1] || (i[1] = (t) => {
|
|
99
|
+
t || t === 0 ? e.field.handleChange(Number(t)) : e.field.handleChange(void 0);
|
|
100
|
+
})
|
|
101
|
+
}), d({ _: 2 }, [
|
|
102
|
+
l.$slots.label ? {
|
|
103
|
+
name: "label",
|
|
104
|
+
fn: r(() => [
|
|
105
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
106
|
+
]),
|
|
107
|
+
key: "0"
|
|
108
|
+
} : void 0
|
|
109
|
+
]), 1040, ["id", "required", "min", "max", "type", "name", "label", "error-messages", "error", "model-value"])) : u("", !0),
|
|
110
|
+
e.inputProps.type === "radio" ? (a(), n(h, o({
|
|
111
|
+
key: 4,
|
|
112
|
+
id: e.inputProps.id,
|
|
113
|
+
name: e.field.name,
|
|
114
|
+
label: e.inputProps.label,
|
|
115
|
+
"error-messages": e.inputProps.errorMessages,
|
|
116
|
+
error: e.inputProps.error
|
|
117
|
+
}, l.$attrs, {
|
|
118
|
+
"model-value": e.state.value,
|
|
119
|
+
"onUpdate:modelValue": e.field.handleChange
|
|
120
|
+
}), d({
|
|
121
|
+
default: r(() => [
|
|
122
|
+
(a(!0), v(V, null, U(e.inputProps.options, (t) => (a(), n(f, {
|
|
123
|
+
key: t.value,
|
|
124
|
+
label: t.title,
|
|
125
|
+
value: t.value
|
|
126
|
+
}, null, 8, ["label", "value"]))), 128))
|
|
127
|
+
]),
|
|
128
|
+
_: 2
|
|
129
|
+
}, [
|
|
130
|
+
l.$slots.label ? {
|
|
131
|
+
name: "label",
|
|
132
|
+
fn: r(() => [
|
|
133
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
134
|
+
]),
|
|
135
|
+
key: "0"
|
|
136
|
+
} : void 0
|
|
137
|
+
]), 1040, ["id", "name", "label", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
138
|
+
e.inputProps.type === "select" || e.inputProps.type === "multiple" ? (a(), n(q, o({
|
|
139
|
+
key: 5,
|
|
140
|
+
id: e.inputProps.id,
|
|
141
|
+
clearable: e.inputProps.type === "select",
|
|
142
|
+
required: e.inputProps.required,
|
|
143
|
+
multiple: e.inputProps.type === "multiple",
|
|
144
|
+
chips: e.inputProps.type === "multiple",
|
|
145
|
+
name: e.field.name,
|
|
146
|
+
label: e.inputProps.label,
|
|
147
|
+
items: e.inputProps.options,
|
|
148
|
+
"error-messages": e.inputProps.errorMessages,
|
|
149
|
+
error: e.inputProps.error
|
|
150
|
+
}, l.$attrs, {
|
|
151
|
+
"model-value": e.state.value,
|
|
152
|
+
onClear: i[2] || (i[2] = (t) => e.field.handleChange(void 0)),
|
|
153
|
+
"onUpdate:modelValue": e.field.handleChange
|
|
154
|
+
}), d({ _: 2 }, [
|
|
155
|
+
l.$slots.label ? {
|
|
156
|
+
name: "label",
|
|
157
|
+
fn: r(() => [
|
|
158
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
159
|
+
]),
|
|
160
|
+
key: "0"
|
|
161
|
+
} : void 0
|
|
162
|
+
]), 1040, ["id", "clearable", "required", "multiple", "chips", "name", "label", "items", "error-messages", "error", "model-value", "onUpdate:modelValue"])) : u("", !0),
|
|
163
|
+
e.inputProps.type === "autocomplete" || e.inputProps.type === "autocompletemultiple" ? (a(), n($, o({
|
|
164
|
+
key: 6,
|
|
165
|
+
id: e.inputProps.id,
|
|
166
|
+
clearable: e.inputProps.type === "autocomplete",
|
|
167
|
+
multiple: e.inputProps.type === "autocompletemultiple",
|
|
168
|
+
required: e.inputProps.required,
|
|
169
|
+
name: e.field.name,
|
|
170
|
+
label: e.inputProps.label,
|
|
171
|
+
items: e.inputProps.options,
|
|
172
|
+
"error-messages": e.inputProps.errorMessages,
|
|
173
|
+
error: e.inputProps.error,
|
|
174
|
+
chips: e.inputProps.type === "autocompletemultiple"
|
|
175
|
+
}, l.$attrs, {
|
|
176
|
+
"model-value": e.state.value,
|
|
177
|
+
onClear: i[3] || (i[3] = (t) => e.field.handleChange(void 0)),
|
|
178
|
+
"onUpdate:modelValue": e.field.handleChange
|
|
179
|
+
}), d({ _: 2 }, [
|
|
180
|
+
l.$slots.label ? {
|
|
181
|
+
name: "label",
|
|
182
|
+
fn: r(() => [
|
|
183
|
+
m(l.$slots, "label", s(P({ required: e.inputProps.required, id: e.inputProps.id, label: e.inputProps.label })))
|
|
184
|
+
]),
|
|
185
|
+
key: "0"
|
|
186
|
+
} : void 0
|
|
187
|
+
]), 1040, ["id", "clearable", "multiple", "required", "name", "label", "items", "error-messages", "error", "chips", "model-value", "onUpdate:modelValue"])) : u("", !0)
|
|
188
|
+
], 32);
|
|
189
|
+
};
|
|
30
190
|
}
|
|
31
191
|
});
|
|
32
192
|
export {
|
|
33
|
-
|
|
193
|
+
w as default
|
|
34
194
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
import o from "./vue-components.
|
|
2
|
+
import o from "./vue-components.es38.js";
|
|
3
3
|
|
|
4
4
|
export {
|
|
5
5
|
o as default
|
|
@@ -1,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 $, computed as n, getCurrentInstance as N, useAttrs as S, useSlots as k, useId as q, renderSlot as u, normalizeProps as s, guardReactiveProps as d, createElementVNode as B, normalizeClass as w, createBlock as I, createCommentVNode as L, unref as A, openBlock as F, mergeProps as O, createSlots as R, withCtx as V } from "vue";
|
|
3
3
|
import { useStore as z } from "@tanstack/vue-form";
|
|
4
|
-
import T from "./vue-components.
|
|
4
|
+
import T from "./vue-components.es38.js";
|
|
5
5
|
|
|
6
6
|
const H = /* @__PURE__ */ $({
|
|
7
7
|
inheritAttrs: !1,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
6
|
"effect": "^3.19.3",
|
|
@@ -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/vue": "2.93.
|
|
57
|
-
"effect-app": "3.14.
|
|
56
|
+
"@effect-app/vue": "2.93.3",
|
|
57
|
+
"effect-app": "3.14.2"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "pnpm build:run",
|
|
@@ -4,7 +4,7 @@
|
|
|
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
6
|
import { Array, Data, Effect, Fiber, Option, Order, S } from "effect-app"
|
|
7
|
-
import { runtimeFiberAsPromise } from "effect-app/utils"
|
|
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 { MergedInputProps } from "./InputProps"
|
|
10
10
|
import OmegaArray from "./OmegaArray.vue"
|
|
@@ -147,6 +147,13 @@ const eHoc = (errorProps: {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
+
export type Policies = "local" | "session" | "querystring"
|
|
151
|
+
export type defaultValuesPriorityUnion = "tanstack" | "persistency" | "schema"
|
|
152
|
+
|
|
153
|
+
const includesPolicy = (arr: Policies[], policy: Policies) => {
|
|
154
|
+
return arr.includes(policy)
|
|
155
|
+
}
|
|
156
|
+
|
|
150
157
|
export type OmegaConfig<T> = {
|
|
151
158
|
i18nNamespace?: string
|
|
152
159
|
|
|
@@ -155,8 +162,8 @@ export type OmegaConfig<T> = {
|
|
|
155
162
|
* - "querystring": Highest priority when persisting
|
|
156
163
|
* - "local" and then "session": Lower priority storage options
|
|
157
164
|
*/
|
|
158
|
-
policies?:
|
|
159
|
-
overrideDefaultValues?:
|
|
165
|
+
policies?: UnionToTuples<Policies>
|
|
166
|
+
overrideDefaultValues?: "deprecated: use defaultValuesPriority"
|
|
160
167
|
id?: string
|
|
161
168
|
} & keysRule<T>
|
|
162
169
|
|
|
@@ -174,7 +181,15 @@ export type OmegaConfig<T> = {
|
|
|
174
181
|
|
|
175
182
|
input?: any
|
|
176
183
|
|
|
177
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Default values order is: Tanstack default values passed as second parameter to useOmegaForm, then persistency
|
|
186
|
+
* default values from querystring or local/session storage, then defaults from schema
|
|
187
|
+
* You can customize the order and with omegaConfig.defaultValuesPriority
|
|
188
|
+
* default value = ['tanstack', 'persistency', 'schema']
|
|
189
|
+
*/
|
|
190
|
+
defaultValuesPriority?: UnionToTuples<defaultValuesPriorityUnion>
|
|
191
|
+
|
|
192
|
+
defaultFromSchema?: "deprecated: use defaultValuesPriority"
|
|
178
193
|
}
|
|
179
194
|
|
|
180
195
|
export interface OF<From, To> extends OmegaFormApi<From, To> {
|
|
@@ -665,18 +680,18 @@ export const useOmegaForm = <
|
|
|
665
680
|
|
|
666
681
|
const defaultValues = computed(() => {
|
|
667
682
|
// will contain what we get from querystring or local/session storage
|
|
668
|
-
let
|
|
683
|
+
let persistencyDefaultValues
|
|
669
684
|
|
|
670
685
|
const persistency = omegaConfig?.persistency
|
|
671
686
|
|
|
672
687
|
if (
|
|
673
688
|
// query string has higher priority than local/session storage
|
|
674
689
|
persistency?.policies
|
|
675
|
-
&& !
|
|
676
|
-
&& (persistency.policies
|
|
677
|
-
|| persistency.policies
|
|
690
|
+
&& !persistencyDefaultValues
|
|
691
|
+
&& (includesPolicy(persistency.policies, "local")
|
|
692
|
+
|| includesPolicy(persistency.policies, "session"))
|
|
678
693
|
) {
|
|
679
|
-
const storage = persistency.policies
|
|
694
|
+
const storage = includesPolicy(persistency.policies, "local")
|
|
680
695
|
? localStorage
|
|
681
696
|
: sessionStorage
|
|
682
697
|
if (storage) {
|
|
@@ -685,19 +700,19 @@ export const useOmegaForm = <
|
|
|
685
700
|
storage.getItem(persistencyKey.value) || "{}"
|
|
686
701
|
)
|
|
687
702
|
storage.removeItem(persistencyKey.value)
|
|
688
|
-
|
|
703
|
+
persistencyDefaultValues = value
|
|
689
704
|
} catch (error) {
|
|
690
705
|
console.error(error)
|
|
691
706
|
}
|
|
692
707
|
}
|
|
693
708
|
}
|
|
694
|
-
if (persistency?.policies && persistency.policies
|
|
709
|
+
if (persistency?.policies && includesPolicy(persistency.policies, "querystring")) {
|
|
695
710
|
try {
|
|
696
711
|
const params = new URLSearchParams(window.location.search)
|
|
697
712
|
const value = params.get(persistencyKey.value)
|
|
698
713
|
clearUrlParams()
|
|
699
714
|
if (value) {
|
|
700
|
-
|
|
715
|
+
persistencyDefaultValues = deepMerge(persistencyDefaultValues || {}, JSON.parse(value))
|
|
701
716
|
}
|
|
702
717
|
} catch (error) {
|
|
703
718
|
console.error(error)
|
|
@@ -705,22 +720,23 @@ export const useOmegaForm = <
|
|
|
705
720
|
}
|
|
706
721
|
|
|
707
722
|
// to be sure we have a valid object at the end of the gathering process
|
|
708
|
-
|
|
723
|
+
persistencyDefaultValues ??= {}
|
|
709
724
|
|
|
710
|
-
const
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
return tanstackFormOptions?.defaultValues || {}
|
|
716
|
-
}
|
|
717
|
-
return deepMerge(defaultsValueFromSchema(schema), tanstackFormOptions?.defaultValues || {})
|
|
718
|
-
})()
|
|
725
|
+
const defaults: Record<defaultValuesPriorityUnion, any> = {
|
|
726
|
+
tanstack: tanstackFormOptions?.defaultValues || {},
|
|
727
|
+
persistency: persistencyDefaultValues,
|
|
728
|
+
schema: defaultsValueFromSchema(schema)
|
|
729
|
+
}
|
|
719
730
|
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
731
|
+
return (omegaConfig?.defaultValuesPriority || ["tanstack", "persistency", "schema"] as const).reverse().reduce(
|
|
732
|
+
(acc, m) => {
|
|
733
|
+
if (!Object.keys(acc).length) {
|
|
734
|
+
return defaults[m]
|
|
735
|
+
}
|
|
736
|
+
return deepMerge(acc, defaults[m])
|
|
737
|
+
},
|
|
738
|
+
{}
|
|
739
|
+
)
|
|
724
740
|
})
|
|
725
741
|
|
|
726
742
|
const wrapWithSpan = (span: api.Span | undefined, toWrap: () => any) => {
|
|
@@ -813,10 +829,10 @@ export const useOmegaForm = <
|
|
|
813
829
|
return
|
|
814
830
|
}
|
|
815
831
|
if (
|
|
816
|
-
persistency.policies
|
|
817
|
-
|| persistency.policies
|
|
832
|
+
includesPolicy(persistency.policies, "local")
|
|
833
|
+
|| includesPolicy(persistency.policies, "session")
|
|
818
834
|
) {
|
|
819
|
-
const storage = persistency.policies
|
|
835
|
+
const storage = includesPolicy(persistency.policies, "local")
|
|
820
836
|
? localStorage
|
|
821
837
|
: sessionStorage
|
|
822
838
|
if (!storage) return
|
|
@@ -830,7 +846,7 @@ export const useOmegaForm = <
|
|
|
830
846
|
if (!persistency?.policies || persistency.policies.length === 0) {
|
|
831
847
|
return
|
|
832
848
|
}
|
|
833
|
-
if (persistency.policies
|
|
849
|
+
if (includesPolicy(persistency.policies, "querystring")) {
|
|
834
850
|
const values = persistFilter(persistency)
|
|
835
851
|
const searchParams = new URLSearchParams(window.location.search)
|
|
836
852
|
searchParams.set(persistencyKey.value, JSON.stringify(values))
|