@logixjs/form 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Error-VvknI9Wj.d.cts +37 -0
- package/dist/Error-VvknI9Wj.d.ts +37 -0
- package/dist/Error.cjs +46 -0
- package/dist/Error.cjs.map +1 -0
- package/dist/Error.d.cts +1 -0
- package/dist/Error.d.ts +1 -0
- package/dist/Error.js +14 -0
- package/dist/Error.js.map +1 -0
- package/dist/Form.cjs +2455 -0
- package/dist/Form.cjs.map +1 -0
- package/dist/Form.d.cts +64 -0
- package/dist/Form.d.ts +64 -0
- package/dist/Form.js +25 -0
- package/dist/Form.js.map +1 -0
- package/dist/FormView-CAg9LVrf.d.cts +17 -0
- package/dist/FormView-CAg9LVrf.d.ts +17 -0
- package/dist/FormView.cjs +61 -0
- package/dist/FormView.cjs.map +1 -0
- package/dist/FormView.d.cts +1 -0
- package/dist/FormView.d.ts +1 -0
- package/dist/FormView.js +8 -0
- package/dist/FormView.js.map +1 -0
- package/dist/Path-DOjMkAS6.d.cts +42 -0
- package/dist/Path-DOjMkAS6.d.ts +42 -0
- package/dist/Path.cjs +132 -0
- package/dist/Path.cjs.map +1 -0
- package/dist/Path.d.cts +1 -0
- package/dist/Path.d.ts +1 -0
- package/dist/Path.js +22 -0
- package/dist/Path.js.map +1 -0
- package/dist/Rule-BOAiSVz9.d.cts +202 -0
- package/dist/Rule-BOAiSVz9.d.ts +202 -0
- package/dist/Rule.cjs +307 -0
- package/dist/Rule.cjs.map +1 -0
- package/dist/Rule.d.cts +2 -0
- package/dist/Rule.d.ts +2 -0
- package/dist/Rule.js +34 -0
- package/dist/Rule.js.map +1 -0
- package/dist/SchemaErrorMapping-Cu5gl7-Z.d.ts +50 -0
- package/dist/SchemaErrorMapping-DOrgLzii.d.cts +50 -0
- package/dist/SchemaErrorMapping.cjs +305 -0
- package/dist/SchemaErrorMapping.cjs.map +1 -0
- package/dist/SchemaErrorMapping.d.cts +2 -0
- package/dist/SchemaErrorMapping.d.ts +2 -0
- package/dist/SchemaErrorMapping.js +17 -0
- package/dist/SchemaErrorMapping.js.map +1 -0
- package/dist/SchemaPathMapping-BCoUW-_q.d.ts +16 -0
- package/dist/SchemaPathMapping-BUq2zm8W.d.cts +20 -0
- package/dist/SchemaPathMapping-BUq2zm8W.d.ts +20 -0
- package/dist/SchemaPathMapping-DJnExqM3.d.cts +16 -0
- package/dist/SchemaPathMapping.cjs +179 -0
- package/dist/SchemaPathMapping.cjs.map +1 -0
- package/dist/SchemaPathMapping.d.cts +2 -0
- package/dist/SchemaPathMapping.d.ts +2 -0
- package/dist/SchemaPathMapping.js +12 -0
- package/dist/SchemaPathMapping.js.map +1 -0
- package/dist/Trait-Bu794ROY.d.cts +49 -0
- package/dist/Trait-Bu794ROY.d.ts +49 -0
- package/dist/Trait.cjs +48 -0
- package/dist/Trait.cjs.map +1 -0
- package/dist/Trait.d.cts +2 -0
- package/dist/Trait.d.ts +2 -0
- package/dist/Trait.js +12 -0
- package/dist/Trait.js.map +1 -0
- package/dist/chunk-5DRI5UGD.js +105 -0
- package/dist/chunk-5DRI5UGD.js.map +1 -0
- package/dist/chunk-AD2ZA7KA.js +23 -0
- package/dist/chunk-AD2ZA7KA.js.map +1 -0
- package/dist/chunk-EOXJRCM6.js +146 -0
- package/dist/chunk-EOXJRCM6.js.map +1 -0
- package/dist/chunk-JZ5FZKPJ.js +71 -0
- package/dist/chunk-JZ5FZKPJ.js.map +1 -0
- package/dist/chunk-LNJJPZAG.js +46 -0
- package/dist/chunk-LNJJPZAG.js.map +1 -0
- package/dist/chunk-NAR5SIFP.js +22 -0
- package/dist/chunk-NAR5SIFP.js.map +1 -0
- package/dist/chunk-OJVEZKU7.js +117 -0
- package/dist/chunk-OJVEZKU7.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-S5JTU2CM.js +31 -0
- package/dist/chunk-S5JTU2CM.js.map +1 -0
- package/dist/chunk-YHDEJ47V.js +1885 -0
- package/dist/chunk-YHDEJ47V.js.map +1 -0
- package/dist/chunk-YVHXLY63.js +315 -0
- package/dist/chunk-YVHXLY63.js.map +1 -0
- package/dist/impl-BfSlyM58.d.ts +225 -0
- package/dist/impl-Ccdm5eDF.d.cts +225 -0
- package/dist/index.cjs +2689 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.cjs +332 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +43 -0
- package/dist/react/index.d.ts +43 -0
- package/dist/react/index.js +201 -0
- package/dist/react/index.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-PZ5AY32C.js";
|
|
4
|
+
|
|
5
|
+
// src/FormView.ts
|
|
6
|
+
var FormView_exports = {};
|
|
7
|
+
__export(FormView_exports, {
|
|
8
|
+
getFormView: () => getFormView
|
|
9
|
+
});
|
|
10
|
+
var readSnapshot = (state) => {
|
|
11
|
+
const meta = state && typeof state === "object" && !Array.isArray(state) ? state.$form : void 0;
|
|
12
|
+
const safe = meta && typeof meta === "object" && !Array.isArray(meta) ? meta : void 0;
|
|
13
|
+
const submitCount = typeof safe?.submitCount === "number" && Number.isFinite(safe.submitCount) ? safe.submitCount : 0;
|
|
14
|
+
const isSubmitting = safe?.isSubmitting === true;
|
|
15
|
+
const isDirty = safe?.isDirty === true;
|
|
16
|
+
const errorCount = typeof safe?.errorCount === "number" && Number.isFinite(safe.errorCount) ? safe.errorCount : 0;
|
|
17
|
+
return {
|
|
18
|
+
submitCount,
|
|
19
|
+
isSubmitting,
|
|
20
|
+
isDirty,
|
|
21
|
+
errorCount
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
var getFormView = (state, prev) => {
|
|
25
|
+
const snap = readSnapshot(state);
|
|
26
|
+
const isValid = snap.errorCount === 0;
|
|
27
|
+
const isPristine = !snap.isDirty;
|
|
28
|
+
const canSubmit = !snap.isSubmitting && isValid;
|
|
29
|
+
if (prev && prev.submitCount === snap.submitCount && prev.isSubmitting === snap.isSubmitting && prev.isDirty === snap.isDirty && prev.isValid === isValid) {
|
|
30
|
+
return prev;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
canSubmit,
|
|
34
|
+
isSubmitting: snap.isSubmitting,
|
|
35
|
+
isValid,
|
|
36
|
+
isDirty: snap.isDirty,
|
|
37
|
+
isPristine,
|
|
38
|
+
submitCount: snap.submitCount
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export {
|
|
43
|
+
getFormView,
|
|
44
|
+
FormView_exports
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=chunk-LNJJPZAG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/FormView.ts"],"sourcesContent":["export type FormView = {\n readonly canSubmit: boolean\n readonly isSubmitting: boolean\n readonly isValid: boolean\n readonly isDirty: boolean\n readonly isPristine: boolean\n readonly submitCount: number\n}\n\ntype Snapshot = {\n readonly submitCount: number\n readonly isSubmitting: boolean\n readonly isDirty: boolean\n readonly errorCount: number\n}\n\nconst readSnapshot = (state: unknown): Snapshot => {\n const meta = state && typeof state === 'object' && !Array.isArray(state) ? (state as any).$form : undefined\n const safe = meta && typeof meta === 'object' && !Array.isArray(meta) ? (meta as any) : undefined\n\n const submitCount = typeof safe?.submitCount === 'number' && Number.isFinite(safe.submitCount) ? safe.submitCount : 0\n const isSubmitting = safe?.isSubmitting === true\n const isDirty = safe?.isDirty === true\n const errorCount = typeof safe?.errorCount === 'number' && Number.isFinite(safe.errorCount) ? safe.errorCount : 0\n\n return {\n submitCount,\n isSubmitting,\n isDirty,\n errorCount,\n }\n}\n\nexport const getFormView = (state: unknown, prev?: FormView): FormView => {\n const snap = readSnapshot(state)\n const isValid = snap.errorCount === 0\n const isPristine = !snap.isDirty\n const canSubmit = !snap.isSubmitting && isValid\n\n if (\n prev &&\n prev.submitCount === snap.submitCount &&\n prev.isSubmitting === snap.isSubmitting &&\n prev.isDirty === snap.isDirty &&\n prev.isValid === isValid\n ) {\n return prev\n }\n\n return {\n canSubmit,\n isSubmitting: snap.isSubmitting,\n isValid,\n isDirty: snap.isDirty,\n isPristine,\n submitCount: snap.submitCount,\n }\n}\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAgBA,IAAM,eAAe,CAAC,UAA6B;AACjD,QAAM,OAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAK,MAAc,QAAQ;AAClG,QAAM,OAAO,QAAQ,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,IAAI,IAAK,OAAe;AAExF,QAAM,cAAc,OAAO,MAAM,gBAAgB,YAAY,OAAO,SAAS,KAAK,WAAW,IAAI,KAAK,cAAc;AACpH,QAAM,eAAe,MAAM,iBAAiB;AAC5C,QAAM,UAAU,MAAM,YAAY;AAClC,QAAM,aAAa,OAAO,MAAM,eAAe,YAAY,OAAO,SAAS,KAAK,UAAU,IAAI,KAAK,aAAa;AAEhH,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,cAAc,CAAC,OAAgB,SAA8B;AACxE,QAAM,OAAO,aAAa,KAAK;AAC/B,QAAM,UAAU,KAAK,eAAe;AACpC,QAAM,aAAa,CAAC,KAAK;AACzB,QAAM,YAAY,CAAC,KAAK,gBAAgB;AAExC,MACE,QACA,KAAK,gBAAgB,KAAK,eAC1B,KAAK,iBAAiB,KAAK,gBAC3B,KAAK,YAAY,KAAK,WACtB,KAAK,YAAY,SACjB;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA,cAAc,KAAK;AAAA,IACnB;AAAA,IACA,SAAS,KAAK;AAAA,IACd;AAAA,IACA,aAAa,KAAK;AAAA,EACpB;AACF;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mapSchemaErrorToFieldPaths
|
|
3
|
+
} from "./chunk-EOXJRCM6.js";
|
|
4
|
+
import {
|
|
5
|
+
__export
|
|
6
|
+
} from "./chunk-PZ5AY32C.js";
|
|
7
|
+
|
|
8
|
+
// src/SchemaPathMapping.ts
|
|
9
|
+
var SchemaPathMapping_exports = {};
|
|
10
|
+
__export(SchemaPathMapping_exports, {
|
|
11
|
+
SchemaPathMapping: () => SchemaPathMapping,
|
|
12
|
+
mapSchemaErrorToFieldPaths: () => mapSchemaErrorToFieldPaths
|
|
13
|
+
});
|
|
14
|
+
var SchemaPathMapping = {
|
|
15
|
+
mapSchemaErrorToFieldPaths
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
SchemaPathMapping,
|
|
20
|
+
SchemaPathMapping_exports
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=chunk-NAR5SIFP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/SchemaPathMapping.ts"],"sourcesContent":["import type { FieldPath, SchemaError, SchemaPathMappingOptions } from './internal/schema/SchemaPathMapping.js'\nimport { mapSchemaErrorToFieldPaths } from './internal/schema/SchemaPathMapping.js'\n\nexport type { FieldPath, SchemaError, SchemaPathMappingOptions }\nexport { mapSchemaErrorToFieldPaths }\n\nexport const SchemaPathMapping = {\n mapSchemaErrorToFieldPaths,\n} as const\n"],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAM,oBAAoB;AAAA,EAC/B;AACF;","names":[]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-PZ5AY32C.js";
|
|
4
|
+
|
|
5
|
+
// src/Path.ts
|
|
6
|
+
var Path_exports = {};
|
|
7
|
+
__export(Path_exports, {
|
|
8
|
+
Path: () => Path,
|
|
9
|
+
toErrorsPath: () => toErrorsPath,
|
|
10
|
+
toFieldPath: () => toFieldPath,
|
|
11
|
+
toListPath: () => toListPath,
|
|
12
|
+
toManualErrorsPath: () => toManualErrorsPath,
|
|
13
|
+
toPatternPath: () => toPatternPath,
|
|
14
|
+
toSchemaErrorsPath: () => toSchemaErrorsPath,
|
|
15
|
+
toUiPath: () => toUiPath
|
|
16
|
+
});
|
|
17
|
+
var isNumericSegment = (seg) => /^[0-9]+$/.test(seg);
|
|
18
|
+
var splitPath = (path) => {
|
|
19
|
+
if (!path) return [];
|
|
20
|
+
const parts = path.split(".").filter((p) => p.length > 0);
|
|
21
|
+
const segs = [];
|
|
22
|
+
for (const part of parts) {
|
|
23
|
+
if (!part) continue;
|
|
24
|
+
if (part.endsWith("[]")) {
|
|
25
|
+
const base = part.slice(0, -2);
|
|
26
|
+
if (base) segs.push(base);
|
|
27
|
+
segs.push("[]");
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const bracket = /^(.+)\[(\d+)\]$/.exec(part);
|
|
31
|
+
if (bracket) {
|
|
32
|
+
const base = bracket[1];
|
|
33
|
+
if (base) segs.push(base);
|
|
34
|
+
segs.push(bracket[2]);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
segs.push(part);
|
|
38
|
+
}
|
|
39
|
+
return segs;
|
|
40
|
+
};
|
|
41
|
+
var toPatternPath = (valuePath) => {
|
|
42
|
+
if (!valuePath) return valuePath;
|
|
43
|
+
const segs = splitPath(valuePath);
|
|
44
|
+
const out = [];
|
|
45
|
+
for (const seg of segs) {
|
|
46
|
+
if (seg === "[]" || isNumericSegment(seg)) {
|
|
47
|
+
if (out.length === 0) continue;
|
|
48
|
+
const last = out[out.length - 1];
|
|
49
|
+
if (!last.endsWith("[]")) out[out.length - 1] = `${last}[]`;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
out.push(seg);
|
|
53
|
+
}
|
|
54
|
+
return out.join(".");
|
|
55
|
+
};
|
|
56
|
+
var toListPath = (valuePath) => {
|
|
57
|
+
const segs = splitPath(valuePath);
|
|
58
|
+
const firstIndex = segs.findIndex((seg) => seg === "[]" || isNumericSegment(seg));
|
|
59
|
+
if (firstIndex <= 0) return void 0;
|
|
60
|
+
return segs.slice(0, firstIndex).join(".");
|
|
61
|
+
};
|
|
62
|
+
var toErrorsPath = (valuePath) => {
|
|
63
|
+
if (!valuePath) return "errors";
|
|
64
|
+
const segs = splitPath(valuePath);
|
|
65
|
+
const out = [];
|
|
66
|
+
for (const seg of segs) {
|
|
67
|
+
if (isNumericSegment(seg)) {
|
|
68
|
+
out.push("rows", seg);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (seg === "[]") {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
out.push(seg);
|
|
75
|
+
}
|
|
76
|
+
return `errors.${out.join(".")}`;
|
|
77
|
+
};
|
|
78
|
+
var toManualErrorsPath = (valuePath) => {
|
|
79
|
+
const base = toErrorsPath(valuePath);
|
|
80
|
+
return base === "errors" ? "errors.$manual" : base.replace(/^errors\./, "errors.$manual.");
|
|
81
|
+
};
|
|
82
|
+
var toSchemaErrorsPath = (valuePath) => {
|
|
83
|
+
const base = toErrorsPath(valuePath);
|
|
84
|
+
return base === "errors" ? "errors.$schema" : base.replace(/^errors\./, "errors.$schema.");
|
|
85
|
+
};
|
|
86
|
+
var toUiPath = (valuePath) => valuePath ? `ui.${valuePath}` : "ui";
|
|
87
|
+
var toFieldPath = (path) => {
|
|
88
|
+
const segs = splitPath(path);
|
|
89
|
+
const out = [];
|
|
90
|
+
for (const seg of segs) {
|
|
91
|
+
if (seg === "[]" || isNumericSegment(seg)) continue;
|
|
92
|
+
out.push(seg);
|
|
93
|
+
}
|
|
94
|
+
return out.length > 0 ? out : ["$root"];
|
|
95
|
+
};
|
|
96
|
+
var Path = {
|
|
97
|
+
toPatternPath,
|
|
98
|
+
toListPath,
|
|
99
|
+
toErrorsPath,
|
|
100
|
+
toManualErrorsPath,
|
|
101
|
+
toSchemaErrorsPath,
|
|
102
|
+
toUiPath,
|
|
103
|
+
toFieldPath
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export {
|
|
107
|
+
toPatternPath,
|
|
108
|
+
toListPath,
|
|
109
|
+
toErrorsPath,
|
|
110
|
+
toManualErrorsPath,
|
|
111
|
+
toSchemaErrorsPath,
|
|
112
|
+
toUiPath,
|
|
113
|
+
toFieldPath,
|
|
114
|
+
Path,
|
|
115
|
+
Path_exports
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=chunk-OJVEZKU7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Path.ts"],"sourcesContent":["export type ValuePath = string\nexport type PatternPath = string\nexport type ListPath = string\nexport type ErrorsPath = string\nexport type UiPath = string\nexport type FieldPath = ReadonlyArray<string>\n\nconst isNumericSegment = (seg: string): boolean => /^[0-9]+$/.test(seg)\n\nconst splitPath = (path: string): ReadonlyArray<string> => {\n if (!path) return []\n const parts = path.split('.').filter((p) => p.length > 0)\n const segs: Array<string> = []\n\n for (const part of parts) {\n if (!part) continue\n if (part.endsWith('[]')) {\n const base = part.slice(0, -2)\n if (base) segs.push(base)\n segs.push('[]')\n continue\n }\n const bracket = /^(.+)\\[(\\d+)\\]$/.exec(part)\n if (bracket) {\n const base = bracket[1]!\n if (base) segs.push(base)\n segs.push(bracket[2]!)\n continue\n }\n segs.push(part)\n }\n\n return segs\n}\n\nexport const toPatternPath = (valuePath: ValuePath): PatternPath => {\n if (!valuePath) return valuePath\n const segs = splitPath(valuePath)\n const out: Array<string> = []\n\n for (const seg of segs) {\n if (seg === '[]' || isNumericSegment(seg)) {\n if (out.length === 0) continue\n const last = out[out.length - 1]!\n if (!last.endsWith('[]')) out[out.length - 1] = `${last}[]`\n continue\n }\n out.push(seg)\n }\n\n return out.join('.')\n}\n\nexport const toListPath = (valuePath: ValuePath): ListPath | undefined => {\n const segs = splitPath(valuePath)\n const firstIndex = segs.findIndex((seg) => seg === '[]' || isNumericSegment(seg))\n if (firstIndex <= 0) return undefined\n return segs.slice(0, firstIndex).join('.')\n}\n\nexport const toErrorsPath = (valuePath: ValuePath): ErrorsPath => {\n if (!valuePath) return 'errors'\n const segs = splitPath(valuePath)\n const out: Array<string> = []\n\n for (const seg of segs) {\n if (isNumericSegment(seg)) {\n out.push('rows', seg)\n continue\n }\n if (seg === '[]') {\n continue\n }\n out.push(seg)\n }\n\n return `errors.${out.join('.')}`\n}\n\nexport const toManualErrorsPath = (valuePath: ValuePath): ErrorsPath => {\n const base = toErrorsPath(valuePath)\n return base === 'errors' ? 'errors.$manual' : base.replace(/^errors\\./, 'errors.$manual.')\n}\n\nexport const toSchemaErrorsPath = (valuePath: ValuePath): ErrorsPath => {\n const base = toErrorsPath(valuePath)\n return base === 'errors' ? 'errors.$schema' : base.replace(/^errors\\./, 'errors.$schema.')\n}\n\nexport const toUiPath = (valuePath: ValuePath): UiPath => (valuePath ? `ui.${valuePath}` : 'ui')\n\nexport const toFieldPath = (path: ValuePath | PatternPath): FieldPath => {\n const segs = splitPath(path)\n const out: Array<string> = []\n for (const seg of segs) {\n if (seg === '[]' || isNumericSegment(seg)) continue\n out.push(seg)\n }\n return out.length > 0 ? out : ['$root']\n}\n\nexport const Path = {\n toPatternPath,\n toListPath,\n toErrorsPath,\n toManualErrorsPath,\n toSchemaErrorsPath,\n toUiPath,\n toFieldPath,\n} as const\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-PZ5AY32C.js";
|
|
4
|
+
|
|
5
|
+
// src/Error.ts
|
|
6
|
+
var Error_exports = {};
|
|
7
|
+
__export(Error_exports, {
|
|
8
|
+
item: () => item,
|
|
9
|
+
leaf: () => leaf,
|
|
10
|
+
list: () => list,
|
|
11
|
+
root: () => root
|
|
12
|
+
});
|
|
13
|
+
var leaf = (message) => message;
|
|
14
|
+
var item = (fieldErrors, meta) => ({
|
|
15
|
+
...fieldErrors ?? {},
|
|
16
|
+
...meta?.item !== void 0 ? { $item: meta.item } : {}
|
|
17
|
+
});
|
|
18
|
+
var list = (rows, meta) => ({
|
|
19
|
+
rows,
|
|
20
|
+
...meta?.list !== void 0 ? { $list: meta.list } : {}
|
|
21
|
+
});
|
|
22
|
+
var root = (meta) => meta?.form !== void 0 ? { $form: meta.form } : {};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
leaf,
|
|
26
|
+
item,
|
|
27
|
+
list,
|
|
28
|
+
root,
|
|
29
|
+
Error_exports
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=chunk-S5JTU2CM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Error.ts"],"sourcesContent":["export type ErrorPatch = unknown\n\nexport type FieldErrors = Readonly<Record<string, unknown>>\n\nexport const leaf = (message: unknown): unknown => message\n\n/**\n * item:\n * - Creates a row-level error object (can carry both field-level errors and a $item row-level error).\n */\nexport const item = (fieldErrors?: FieldErrors, meta?: { readonly item?: unknown }): ErrorPatch => ({\n ...(fieldErrors ?? {}),\n ...(meta?.item !== undefined ? { $item: meta.item } : {}),\n})\n\n/**\n * list:\n * - Creates a list-level error object (includes $list and an array of per-row errors).\n *\n * Notes:\n * - Each entry in `rows` can be undefined (meaning that row has no error).\n * - This structure is only a domain-level wrapper; the actual write-back path is decided by the Form/StateTrait\n * compiler layer.\n */\nexport const list = (rows: ReadonlyArray<unknown | undefined>, meta?: { readonly list?: unknown }): ErrorPatch => ({\n rows,\n ...(meta?.list !== undefined ? { $list: meta.list } : {}),\n})\n\nexport const root = (meta?: { readonly form?: unknown }): ErrorPatch =>\n meta?.form !== undefined ? { $form: meta.form } : {}\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,IAAM,OAAO,CAAC,YAA8B;AAM5C,IAAM,OAAO,CAAC,aAA2B,UAAoD;AAAA,EAClG,GAAI,eAAe,CAAC;AAAA,EACpB,GAAI,MAAM,SAAS,SAAY,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC;AACzD;AAWO,IAAM,OAAO,CAAC,MAA0C,UAAoD;AAAA,EACjH;AAAA,EACA,GAAI,MAAM,SAAS,SAAY,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC;AACzD;AAEO,IAAM,OAAO,CAAC,SACnB,MAAM,SAAS,SAAY,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC;","names":[]}
|