@effect-app/vue-components 3.0.4 → 3.0.6
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/OmegaFormStuff.d.ts +1 -1
- package/dist/vue-components.es12.js +236 -194
- 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.es38.js +11 -11
- 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/package.json +2 -2
- package/src/components/OmegaForm/OmegaFormStuff.ts +88 -19
- package/src/components/OmegaForm/OmegaInputVuetify.vue +2 -2
|
@@ -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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.6",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
6
|
"effect": "^3.19.3",
|
|
@@ -53,7 +53,7 @@
|
|
|
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.
|
|
56
|
+
"@effect-app/vue": "2.93.8",
|
|
57
57
|
"effect-app": "3.15.1"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
@@ -246,7 +246,7 @@ export type StringFieldMeta = BaseFieldMeta & {
|
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
export type NumberFieldMeta = BaseFieldMeta & {
|
|
249
|
-
type: "number"
|
|
249
|
+
type: "number" | "int"
|
|
250
250
|
minimum?: number
|
|
251
251
|
maximum?: number
|
|
252
252
|
exclusiveMinimum?: number
|
|
@@ -346,12 +346,23 @@ export const createMeta = <T = any>(
|
|
|
346
346
|
): MetaRecord<T> | FieldMeta => {
|
|
347
347
|
// unwraps class (Class are transformations)
|
|
348
348
|
// this calls createMeta recursively, so wrapped transformations are also unwrapped
|
|
349
|
+
// BUT: check for Int title annotation first - S.Int and branded Int have title "Int" or "int"
|
|
350
|
+
// and we don't want to lose that information by unwrapping
|
|
349
351
|
if (property && property._tag === "Transformation") {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
352
|
+
const titleOnTransform = S
|
|
353
|
+
.AST
|
|
354
|
+
.getAnnotation(property, S.AST.TitleAnnotationId)
|
|
355
|
+
.pipe(Option.getOrElse(() => ""))
|
|
356
|
+
|
|
357
|
+
// only unwrap if this is NOT an Int type
|
|
358
|
+
if (titleOnTransform !== "Int" && titleOnTransform !== "int") {
|
|
359
|
+
return createMeta<T>({
|
|
360
|
+
parent,
|
|
361
|
+
meta,
|
|
362
|
+
property: property.from
|
|
363
|
+
})
|
|
364
|
+
}
|
|
365
|
+
// if it's Int, fall through to process it with the Int type
|
|
355
366
|
}
|
|
356
367
|
|
|
357
368
|
if (property?._tag === "TypeLiteral" && "propertySignatures" in property) {
|
|
@@ -655,24 +666,32 @@ export const createMeta = <T = any>(
|
|
|
655
666
|
|
|
656
667
|
meta = { ...JSONAnnotation, ...meta }
|
|
657
668
|
|
|
658
|
-
|
|
669
|
+
// check the title annotation BEFORE following "from" to detect refinements like S.Int
|
|
670
|
+
const titleType = S
|
|
671
|
+
.AST
|
|
672
|
+
.getAnnotation(
|
|
673
|
+
property,
|
|
674
|
+
S.AST.TitleAnnotationId
|
|
675
|
+
)
|
|
676
|
+
.pipe(
|
|
677
|
+
Option.getOrElse(() => {
|
|
678
|
+
return "unknown"
|
|
679
|
+
})
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
// if this is S.Int (a refinement), set the type and skip following "from"
|
|
683
|
+
// otherwise we'd lose the "Int" information and get "number" instead
|
|
684
|
+
if (titleType === "Int" || titleType === "int") {
|
|
685
|
+
meta["type"] = "int"
|
|
686
|
+
// don't follow "from" for Int refinements
|
|
687
|
+
} else if ("from" in property) {
|
|
659
688
|
return createMeta<T>({
|
|
660
689
|
parent,
|
|
661
690
|
meta,
|
|
662
691
|
property: property.from
|
|
663
692
|
})
|
|
664
693
|
} else {
|
|
665
|
-
meta["type"] =
|
|
666
|
-
.AST
|
|
667
|
-
.getAnnotation(
|
|
668
|
-
property,
|
|
669
|
-
S.AST.TitleAnnotationId
|
|
670
|
-
)
|
|
671
|
-
.pipe(
|
|
672
|
-
Option.getOrElse(() => {
|
|
673
|
-
return "unknown"
|
|
674
|
-
})
|
|
675
|
-
)
|
|
694
|
+
meta["type"] = titleType
|
|
676
695
|
}
|
|
677
696
|
|
|
678
697
|
return meta as FieldMeta
|
|
@@ -869,9 +888,59 @@ export const generateInputStandardSchemaFromFieldMeta = (
|
|
|
869
888
|
}
|
|
870
889
|
break
|
|
871
890
|
|
|
891
|
+
case "int": {
|
|
892
|
+
// create a custom integer schema with translations
|
|
893
|
+
// S.Number with empty message, then S.int with integer message
|
|
894
|
+
schema = S
|
|
895
|
+
.Number
|
|
896
|
+
.annotations({
|
|
897
|
+
message: () => trans("validation.empty")
|
|
898
|
+
})
|
|
899
|
+
.pipe(
|
|
900
|
+
S.int({ message: (issue) => trans("validation.integer.expected", { actualValue: String(issue.actual) }) })
|
|
901
|
+
)
|
|
902
|
+
if (typeof meta.minimum === "number") {
|
|
903
|
+
schema = schema.pipe(S.greaterThanOrEqualTo(meta.minimum)).annotations({
|
|
904
|
+
message: () =>
|
|
905
|
+
trans(meta.minimum === 0 ? "validation.number.positive" : "validation.number.min", {
|
|
906
|
+
minimum: meta.minimum,
|
|
907
|
+
isExclusive: true
|
|
908
|
+
})
|
|
909
|
+
})
|
|
910
|
+
}
|
|
911
|
+
if (typeof meta.maximum === "number") {
|
|
912
|
+
schema = schema.pipe(S.lessThanOrEqualTo(meta.maximum)).annotations({
|
|
913
|
+
message: () =>
|
|
914
|
+
trans("validation.number.max", {
|
|
915
|
+
maximum: meta.maximum,
|
|
916
|
+
isExclusive: true
|
|
917
|
+
})
|
|
918
|
+
})
|
|
919
|
+
}
|
|
920
|
+
if (typeof meta.exclusiveMinimum === "number") {
|
|
921
|
+
schema = schema.pipe(S.greaterThan(meta.exclusiveMinimum)).annotations({
|
|
922
|
+
message: () =>
|
|
923
|
+
trans(meta.exclusiveMinimum === 0 ? "validation.number.positive" : "validation.number.min", {
|
|
924
|
+
minimum: meta.exclusiveMinimum,
|
|
925
|
+
isExclusive: false
|
|
926
|
+
})
|
|
927
|
+
})
|
|
928
|
+
}
|
|
929
|
+
if (typeof meta.exclusiveMaximum === "number") {
|
|
930
|
+
schema = schema.pipe(S.lessThan(meta.exclusiveMaximum)).annotations({
|
|
931
|
+
message: () =>
|
|
932
|
+
trans("validation.number.max", {
|
|
933
|
+
maximum: meta.exclusiveMaximum,
|
|
934
|
+
isExclusive: false
|
|
935
|
+
})
|
|
936
|
+
})
|
|
937
|
+
}
|
|
938
|
+
break
|
|
939
|
+
}
|
|
940
|
+
|
|
872
941
|
case "number":
|
|
873
942
|
schema = S.Number.annotations({
|
|
874
|
-
message: () => trans("validation.
|
|
943
|
+
message: () => trans("validation.number.expected", { actualValue: "NaN" })
|
|
875
944
|
})
|
|
876
945
|
|
|
877
946
|
if (meta.required) {
|
|
@@ -81,12 +81,12 @@
|
|
|
81
81
|
</v-textarea>
|
|
82
82
|
<component
|
|
83
83
|
:is="inputProps.type === 'range' ? 'v-slider' : 'v-text-field'"
|
|
84
|
-
v-if="inputProps.type === 'number' || inputProps.type === 'range'"
|
|
84
|
+
v-if="inputProps.type === 'number' || inputProps.type === 'int' || inputProps.type === 'range'"
|
|
85
85
|
:id="inputProps.id"
|
|
86
86
|
:required="inputProps.required"
|
|
87
87
|
:min="inputProps.min"
|
|
88
88
|
:max="inputProps.max"
|
|
89
|
-
:type="inputProps.type"
|
|
89
|
+
:type="inputProps.type === 'int' ? 'number' : inputProps.type"
|
|
90
90
|
:name="field.name"
|
|
91
91
|
:label="inputProps.label"
|
|
92
92
|
:error-messages="inputProps.errorMessages"
|