@multiplatform.one/frappe-ui 7.6.1 → 7.6.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/cjs/FileBrowser/AttachLibrary.cjs +51 -49
- package/dist/cjs/FileBrowser/AttachLibrary.native.js +58 -49
- package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -1
- package/dist/cjs/FrappeConnectionIndicator.cjs +5 -3
- package/dist/cjs/FrappeConnectionIndicator.native.js +5 -3
- package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
- package/dist/cjs/FrappeForm.cjs +3 -1
- package/dist/cjs/FrappeForm.native.js +3 -1
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeReconnectIndicator.cjs +4 -2
- package/dist/cjs/FrappeReconnectIndicator.native.js +4 -2
- package/dist/cjs/FrappeReconnectIndicator.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/schemaForm/applyFieldOrder.cjs +63 -0
- package/dist/cjs/schemaForm/applyFieldOrder.native.js +116 -0
- package/dist/cjs/schemaForm/applyFieldOrder.native.js.map +1 -0
- package/dist/cjs/schemaForm/index.cjs +13 -7
- package/dist/cjs/schemaForm/index.native.js +15 -7
- package/dist/cjs/schemaForm/index.native.js.map +1 -1
- package/dist/esm/FileBrowser/AttachLibrary.mjs +51 -49
- package/dist/esm/FileBrowser/AttachLibrary.mjs.map +1 -1
- package/dist/esm/FileBrowser/AttachLibrary.native.js +58 -49
- package/dist/esm/FileBrowser/AttachLibrary.native.js.map +1 -1
- package/dist/esm/FrappeConnectionIndicator.mjs +5 -3
- package/dist/esm/FrappeConnectionIndicator.mjs.map +1 -1
- package/dist/esm/FrappeConnectionIndicator.native.js +5 -3
- package/dist/esm/FrappeConnectionIndicator.native.js.map +1 -1
- package/dist/esm/FrappeForm.mjs +3 -1
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +3 -1
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeReconnectIndicator.mjs +4 -2
- package/dist/esm/FrappeReconnectIndicator.mjs.map +1 -1
- package/dist/esm/FrappeReconnectIndicator.native.js +4 -2
- package/dist/esm/FrappeReconnectIndicator.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/schemaForm/applyFieldOrder.mjs +37 -0
- package/dist/esm/schemaForm/applyFieldOrder.mjs.map +1 -0
- package/dist/esm/schemaForm/applyFieldOrder.native.js +87 -0
- package/dist/esm/schemaForm/applyFieldOrder.native.js.map +1 -0
- package/dist/esm/schemaForm/index.mjs +11 -7
- package/dist/esm/schemaForm/index.mjs.map +1 -1
- package/dist/esm/schemaForm/index.native.js +13 -7
- package/dist/esm/schemaForm/index.native.js.map +1 -1
- package/dist/jsx/FileBrowser/AttachLibrary.mjs +51 -49
- package/dist/jsx/FileBrowser/AttachLibrary.mjs.map +1 -1
- package/dist/jsx/FileBrowser/AttachLibrary.native.js +58 -49
- package/dist/jsx/FileBrowser/AttachLibrary.native.js.map +1 -1
- package/dist/jsx/FrappeConnectionIndicator.mjs +5 -3
- package/dist/jsx/FrappeConnectionIndicator.mjs.map +1 -1
- package/dist/jsx/FrappeConnectionIndicator.native.js +5 -3
- package/dist/jsx/FrappeConnectionIndicator.native.js.map +1 -1
- package/dist/jsx/FrappeForm.mjs +3 -1
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +3 -1
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeReconnectIndicator.mjs +4 -2
- package/dist/jsx/FrappeReconnectIndicator.mjs.map +1 -1
- package/dist/jsx/FrappeReconnectIndicator.native.js +4 -2
- package/dist/jsx/FrappeReconnectIndicator.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/schemaForm/applyFieldOrder.mjs +37 -0
- package/dist/jsx/schemaForm/applyFieldOrder.mjs.map +1 -0
- package/dist/jsx/schemaForm/applyFieldOrder.native.js +116 -0
- package/dist/jsx/schemaForm/applyFieldOrder.native.js.map +1 -0
- package/dist/jsx/schemaForm/index.mjs +11 -7
- package/dist/jsx/schemaForm/index.mjs.map +1 -1
- package/dist/jsx/schemaForm/index.native.js +15 -7
- package/dist/jsx/schemaForm/index.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FileBrowser/AttachLibrary.spec.tsx +74 -0
- package/src/FileBrowser/AttachLibrary.stories.tsx +67 -0
- package/src/FileBrowser/AttachLibrary.tsx +56 -49
- package/src/FrappeConnectionIndicator.spec.tsx +51 -0
- package/src/FrappeConnectionIndicator.stories.tsx +55 -0
- package/src/FrappeConnectionIndicator.tsx +15 -4
- package/src/FrappeForm.tsx +13 -3
- package/src/FrappeReconnectIndicator.spec.tsx +52 -0
- package/src/FrappeReconnectIndicator.stories.tsx +55 -0
- package/src/FrappeReconnectIndicator.tsx +13 -3
- package/src/SyncErrorNotice.stories.tsx +50 -0
- package/src/desk/DeskFormSidebar.spec.tsx +90 -0
- package/src/desk/DeskFormSidebar.stories.tsx +133 -0
- package/src/fields/LinkTree.spec.tsx +109 -0
- package/src/fields/LinkTree.stories.tsx +187 -0
- package/src/index.ts +1 -1
- package/src/schemaForm/SchemaForm.spec.tsx +29 -0
- package/src/schemaForm/SchemaForm.stories.tsx +14 -1
- package/src/schemaForm/applyFieldOrder.spec.ts +75 -0
- package/src/schemaForm/applyFieldOrder.ts +71 -0
- package/src/schemaForm/index.tsx +17 -5
- package/types/FileBrowser/AttachLibrary.d.ts.map +1 -1
- package/types/FrappeConnectionIndicator.d.ts +8 -2
- package/types/FrappeConnectionIndicator.d.ts.map +1 -1
- package/types/FrappeForm.d.ts +7 -1
- package/types/FrappeForm.d.ts.map +1 -1
- package/types/FrappeReconnectIndicator.d.ts +7 -2
- package/types/FrappeReconnectIndicator.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/schemaForm/applyFieldOrder.d.ts +28 -0
- package/types/schemaForm/applyFieldOrder.d.ts.map +1 -0
- package/types/schemaForm/index.d.ts +8 -1
- package/types/schemaForm/index.d.ts.map +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import type { FieldSchema } from "../fieldRegistry";
|
|
6
|
+
import type { FormSchema } from "./index";
|
|
7
|
+
import { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
|
|
8
|
+
|
|
9
|
+
const named = (...names: string[]): FieldSchema[] =>
|
|
10
|
+
names.map((name) => ({ type: "Data", name, label: name }));
|
|
11
|
+
|
|
12
|
+
describe("applyFieldOrder (R2 / MPO-22)", () => {
|
|
13
|
+
it("is identity when order is missing or empty", () => {
|
|
14
|
+
const fields = named("a", "b", "c");
|
|
15
|
+
expect(applyFieldOrder(fields).map((f) => f.name)).toEqual(["a", "b", "c"]);
|
|
16
|
+
expect(applyFieldOrder(fields, []).map((f) => f.name)).toEqual(["a", "b", "c"]);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("reorders listed fields in place; unlisted keep their meta positions", () => {
|
|
20
|
+
// meta [a, b, c, d, e], order [c, a] → listed occupy slots 0 and 2
|
|
21
|
+
// unlisted b/d/e stay; listed fill those slots as c then a.
|
|
22
|
+
expect(applyFieldOrder(named("a", "b", "c", "d", "e"), ["c", "a"]).map((f) => f.name)).toEqual([
|
|
23
|
+
"c",
|
|
24
|
+
"b",
|
|
25
|
+
"a",
|
|
26
|
+
"d",
|
|
27
|
+
"e",
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("ignores unknown names and duplicate order entries", () => {
|
|
32
|
+
expect(
|
|
33
|
+
applyFieldOrder(named("a", "b", "c"), ["c", "nope", "c", "a"]).map((f) => f.name),
|
|
34
|
+
).toEqual(["c", "b", "a"]);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("does not invent fields that are not in the meta list", () => {
|
|
38
|
+
expect(applyFieldOrder(named("a", "b"), ["b", "a", "ghost"]).map((f) => f.name)).toEqual([
|
|
39
|
+
"b",
|
|
40
|
+
"a",
|
|
41
|
+
]);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe("applyOrderToSchema", () => {
|
|
46
|
+
it("permutes listed fields across sections without changing the tree shape", () => {
|
|
47
|
+
const a = named("a")[0];
|
|
48
|
+
const b = named("b")[0];
|
|
49
|
+
const c = named("c")[0];
|
|
50
|
+
const d = named("d")[0];
|
|
51
|
+
const schema: FormSchema = {
|
|
52
|
+
fields: [a, b, c, d],
|
|
53
|
+
sections: [
|
|
54
|
+
{ label: "One", columns: [{ fields: [a, b] }] },
|
|
55
|
+
{ label: "Two", columns: [{ fields: [c, d] }] },
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
const next = applyOrderToSchema(schema, ["d", "a"]);
|
|
59
|
+
expect(next.sections).toHaveLength(2);
|
|
60
|
+
expect(next.sections[0]?.columns[0]?.fields.map((f) => f.name)).toEqual(["d", "b"]);
|
|
61
|
+
expect(next.sections[1]?.columns[0]?.fields.map((f) => f.name)).toEqual(["c", "a"]);
|
|
62
|
+
expect(next.sections[0]?.label).toBe("One");
|
|
63
|
+
expect(next.sections[1]?.label).toBe("Two");
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe("FrappeForm R2 wiring", () => {
|
|
68
|
+
it("forwards order onto SchemaForm (cheap R2, not a sections tree)", () => {
|
|
69
|
+
const src = readFileSync(join(dirname(fileURLToPath(import.meta.url)), "../FrappeForm.tsx"), {
|
|
70
|
+
encoding: "utf8",
|
|
71
|
+
});
|
|
72
|
+
expect(src).toMatch(/order\?: string\[\]/);
|
|
73
|
+
expect(src).toMatch(/order=\{order\}/);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { FieldSchema } from "../fieldRegistry";
|
|
2
|
+
|
|
3
|
+
// Structural minimum this module needs. Deliberately NO `[key: string]:
|
|
4
|
+
// unknown` catch-all: FormSchema's sections are an `interface`, and TypeScript
|
|
5
|
+
// gives interfaces no implicit index signature, so an index signature here
|
|
6
|
+
// makes the real FormSchema unassignable (TS2345 at the SchemaForm call site).
|
|
7
|
+
// Extra section keys (label, collapsible, hideBorder, ...) still survive at
|
|
8
|
+
// runtime because applyOrderToSchema spreads `...section`.
|
|
9
|
+
type SchemaLike = {
|
|
10
|
+
fields: FieldSchema[];
|
|
11
|
+
sections: Array<{
|
|
12
|
+
columns: Array<{ fields: FieldSchema[] }>;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* R2: reorder listed fields among the slots they already occupy.
|
|
18
|
+
* Unlisted fields keep their meta positions. Unknown / duplicate names
|
|
19
|
+
* in `order` are ignored. Empty or missing `order` is identity.
|
|
20
|
+
*
|
|
21
|
+
* Doctrine (`08` §2.3 / §4.2, `00` L4 test 1): reordering three fields
|
|
22
|
+
* must not cost a whole `sections` tree.
|
|
23
|
+
*/
|
|
24
|
+
export function applyFieldOrder<T extends { name: string }>(
|
|
25
|
+
fields: readonly T[],
|
|
26
|
+
order?: readonly string[],
|
|
27
|
+
): T[] {
|
|
28
|
+
if (!order?.length) return fields.slice();
|
|
29
|
+
const byName = new Map<string, T>();
|
|
30
|
+
for (const field of fields) {
|
|
31
|
+
if (!byName.has(field.name)) byName.set(field.name, field);
|
|
32
|
+
}
|
|
33
|
+
const listed: string[] = [];
|
|
34
|
+
const listedSet = new Set<string>();
|
|
35
|
+
for (const name of order) {
|
|
36
|
+
if (!byName.has(name) || listedSet.has(name)) continue;
|
|
37
|
+
listed.push(name);
|
|
38
|
+
listedSet.add(name);
|
|
39
|
+
}
|
|
40
|
+
if (listed.length === 0) return fields.slice();
|
|
41
|
+
let i = 0;
|
|
42
|
+
return fields.map((field) =>
|
|
43
|
+
listedSet.has(field.name) ? byName.get(listed[i++] as string)! : field,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Apply `order` inside the existing section/column tree. Listed fields may
|
|
49
|
+
* move across sections; the tree shape (section count, column counts) does
|
|
50
|
+
* not change.
|
|
51
|
+
*/
|
|
52
|
+
export function applyOrderToSchema<T extends SchemaLike>(schema: T, order?: readonly string[]): T {
|
|
53
|
+
if (!order?.length) return schema;
|
|
54
|
+
const flat: FieldSchema[] = schema.sections.flatMap((section) =>
|
|
55
|
+
section.columns.flatMap((column) => column.fields),
|
|
56
|
+
);
|
|
57
|
+
const reordered = applyFieldOrder(flat, order);
|
|
58
|
+
let i = 0;
|
|
59
|
+
const sections = schema.sections.map((section) => ({
|
|
60
|
+
...section,
|
|
61
|
+
columns: section.columns.map((column) => ({
|
|
62
|
+
...column,
|
|
63
|
+
fields: column.fields.map(() => reordered[i++]),
|
|
64
|
+
})),
|
|
65
|
+
}));
|
|
66
|
+
return {
|
|
67
|
+
...schema,
|
|
68
|
+
sections,
|
|
69
|
+
fields: applyFieldOrder(schema.fields, order),
|
|
70
|
+
};
|
|
71
|
+
}
|
package/src/schemaForm/index.tsx
CHANGED
|
@@ -25,6 +25,9 @@ import { compileDependsOn } from "../dependsOn";
|
|
|
25
25
|
import { Heading, type HeadingLevel } from "../fields/Heading";
|
|
26
26
|
import { useFieldResolver } from "../fieldOverrides";
|
|
27
27
|
import type { FieldRenderProps, FieldSchema } from "../fieldRegistry";
|
|
28
|
+
import { applyOrderToSchema } from "./applyFieldOrder";
|
|
29
|
+
|
|
30
|
+
export { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
|
|
28
31
|
|
|
29
32
|
// ---------------------------------------------------------------------------
|
|
30
33
|
// Types
|
|
@@ -102,6 +105,12 @@ export interface SchemaFormProps {
|
|
|
102
105
|
* (layout breaks, hidden, failing depends_on) never reach the wrapper.
|
|
103
106
|
*/
|
|
104
107
|
renderFieldWrapper?: (rendered: React.ReactNode, field: FieldSchema) => React.ReactNode;
|
|
108
|
+
/**
|
|
109
|
+
* R2: reorder fields inside the existing layout. Listed names permute
|
|
110
|
+
* among the slots they already occupy; unlisted fields keep their meta
|
|
111
|
+
* positions. Unknown names are ignored. Cheaper than replacing `sections`.
|
|
112
|
+
*/
|
|
113
|
+
order?: string[];
|
|
105
114
|
}
|
|
106
115
|
|
|
107
116
|
// ---------------------------------------------------------------------------
|
|
@@ -147,6 +156,7 @@ export function SchemaForm({
|
|
|
147
156
|
requiredMarking = "auto",
|
|
148
157
|
sectionHeadingLevel = 2,
|
|
149
158
|
renderFieldWrapper,
|
|
159
|
+
order,
|
|
150
160
|
}: SchemaFormProps) {
|
|
151
161
|
const { t } = useTranslation();
|
|
152
162
|
const { knobProps } = useResolvedKnobs();
|
|
@@ -154,29 +164,31 @@ export function SchemaForm({
|
|
|
154
164
|
// (GL-4: two providers with different overrides must not interfere).
|
|
155
165
|
const resolveFieldComponent = useFieldResolver();
|
|
156
166
|
|
|
167
|
+
const orderedSchema = useMemo(() => applyOrderToSchema(schema, order), [schema, order]);
|
|
168
|
+
|
|
157
169
|
// Pre-compile depends_on evaluators for all fields (safe recursive-descent
|
|
158
170
|
// parser — no string eval, works under Hermes/GJS/CSP; unparseable
|
|
159
171
|
// expressions fall back to visible).
|
|
160
172
|
const dependsOnMap = useMemo(() => {
|
|
161
173
|
const map = new Map<string, (doc: Record<string, unknown>) => boolean>();
|
|
162
|
-
for (const field of
|
|
174
|
+
for (const field of orderedSchema.fields) {
|
|
163
175
|
if (field.depends_on) {
|
|
164
176
|
const evaluator = compileDependsOn(field.depends_on, true);
|
|
165
177
|
if (evaluator) map.set(field.name, evaluator);
|
|
166
178
|
}
|
|
167
179
|
}
|
|
168
180
|
return map;
|
|
169
|
-
}, [
|
|
181
|
+
}, [orderedSchema.fields]);
|
|
170
182
|
|
|
171
183
|
const hiddenSet = useMemo(() => new Set(hideFields), [hideFields]);
|
|
172
184
|
const readOnlySet = useMemo(() => new Set(readOnlyFields), [readOnlyFields]);
|
|
173
185
|
|
|
174
186
|
const requiredMarkMode = useMemo(() => {
|
|
175
|
-
const flags =
|
|
187
|
+
const flags = orderedSchema.fields
|
|
176
188
|
.filter((f) => !layoutFieldTypes.has(f.type) && !f.hidden && !hiddenSet.has(f.name))
|
|
177
189
|
.map((f) => !!f.required);
|
|
178
190
|
return computeRequiredMarkMode(flags, requiredMarking);
|
|
179
|
-
}, [
|
|
191
|
+
}, [orderedSchema.fields, requiredMarking, hiddenSet]);
|
|
180
192
|
|
|
181
193
|
function renderField(field: FieldSchema) {
|
|
182
194
|
// Skip layout break fields — structural, not rendered as inputs
|
|
@@ -294,7 +306,7 @@ export function SchemaForm({
|
|
|
294
306
|
return (
|
|
295
307
|
<RequiredMarkingContext.Provider value={{ mode: requiredMarkMode }}>
|
|
296
308
|
<YStack {...knobProps.gapLg}>
|
|
297
|
-
{
|
|
309
|
+
{orderedSchema.sections.map((section, sectionIndex) => {
|
|
298
310
|
const sectionKey = section.label ? `section-${section.label}` : `section-${sectionIndex}`;
|
|
299
311
|
return (
|
|
300
312
|
<SchemaFormSectionCard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachLibrary.d.ts","sourceRoot":"","sources":["../../src/FileBrowser/AttachLibrary.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,MAAM,GACP,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AttachLibrary.d.ts","sourceRoot":"","sources":["../../src/FileBrowser/AttachLibrary.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,MAAM,GACP,EAAE,kBAAkB,2CAmEpB"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
|
|
1
|
+
import { type FrappeConnectionState, type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
|
|
2
2
|
export interface FrappeConnectionIndicatorProps {
|
|
3
3
|
/** The same connection config the sibling collection hooks use. */
|
|
4
4
|
config: UseFrappeCollectionConfig | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Story and spec injection. Production callers omit this; the live socket
|
|
7
|
+
* from `useFrappeConnection(config)` wins. Fixture configs always report
|
|
8
|
+
* never-connected, so boards that need the reconnecting pill pass a snapshot.
|
|
9
|
+
*/
|
|
10
|
+
connection?: FrappeConnectionState;
|
|
5
11
|
}
|
|
6
12
|
/**
|
|
7
13
|
* Compact "Reconnecting" status pill for live Frappe views.
|
|
@@ -12,5 +18,5 @@ export interface FrappeConnectionIndicatorProps {
|
|
|
12
18
|
* connected, in fixture mode, or during SSR (realtime never up), so
|
|
13
19
|
* fixture-backed stories stay clean.
|
|
14
20
|
*/
|
|
15
|
-
export declare function FrappeConnectionIndicator({ config }: FrappeConnectionIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
21
|
+
export declare function FrappeConnectionIndicator({ config, connection }: FrappeConnectionIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
16
22
|
//# sourceMappingURL=FrappeConnectionIndicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeConnectionIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeConnectionIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FrappeConnectionIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeConnectionIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,8BAA8B;IAC7C,mEAAmE;IACnE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C;;;;OAIG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,8BAA8B,kDAgC/F"}
|
package/types/FrappeForm.d.ts
CHANGED
|
@@ -36,6 +36,12 @@ export interface FrappeFormProps<TDoc extends {
|
|
|
36
36
|
readOnlyFields?: string[];
|
|
37
37
|
/** Completely replace the auto-generated layout. */
|
|
38
38
|
sections?: FormSection[];
|
|
39
|
+
/**
|
|
40
|
+
* R2: reorder fields in the meta-derived layout. Listed names permute
|
|
41
|
+
* among their slots; unlisted fields keep their meta positions. Unknown
|
|
42
|
+
* names are ignored. Cheaper than replacing `sections`.
|
|
43
|
+
*/
|
|
44
|
+
order?: string[];
|
|
39
45
|
onSave?: (doc: Partial<TDoc>) => void;
|
|
40
46
|
onCancel?: () => void;
|
|
41
47
|
onDelete?: (doc: Partial<TDoc>) => void;
|
|
@@ -102,5 +108,5 @@ export declare function mapDocToSidebarMetadata(doc: Record<string, unknown>, t:
|
|
|
102
108
|
export declare function FrappeForm<TDoc extends {
|
|
103
109
|
name: string;
|
|
104
110
|
doctype: string;
|
|
105
|
-
}>({ baseURL, auth, syncOptions, doctype, name, fields, children, overrides, hideFields, readOnlyFields, sections, onSave, onCancel, onDelete, showToolbar, showSidebar, showTimeline, disabled, sectionHeadingLevel, }: FrappeFormProps<TDoc>): import("react/jsx-runtime").JSX.Element;
|
|
111
|
+
}>({ baseURL, auth, syncOptions, doctype, name, fields, children, overrides, hideFields, readOnlyFields, sections, order, onSave, onCancel, onDelete, showToolbar, showSidebar, showTimeline, disabled, sectionHeadingLevel, }: FrappeFormProps<TDoc>): import("react/jsx-runtime").JSX.Element;
|
|
106
112
|
//# sourceMappingURL=FrappeForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAEhB,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAmBzC,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QACtD,YAAY,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,qFAAqF;QACrF,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
|
|
1
|
+
import { type FrappeConnectionState, type UseFrappeCollectionConfig } from "@multiplatform.one/frappe";
|
|
2
2
|
export interface FrappeReconnectIndicatorProps {
|
|
3
3
|
/** The connection config the component's live queries sync through. */
|
|
4
4
|
config: UseFrappeCollectionConfig | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Story and spec injection. Production callers omit this; the live socket
|
|
7
|
+
* from `useFrappeConnection(config)` wins.
|
|
8
|
+
*/
|
|
9
|
+
connection?: FrappeConnectionState;
|
|
5
10
|
}
|
|
6
11
|
/**
|
|
7
12
|
* Honest realtime-state chip for live Frappe components.
|
|
@@ -13,5 +18,5 @@ export interface FrappeReconnectIndicatorProps {
|
|
|
13
18
|
* gap is owned by the client's reconnect backfill; this chip only tells the
|
|
14
19
|
* user that in-place updates are paused right now.
|
|
15
20
|
*/
|
|
16
|
-
export declare function FrappeReconnectIndicator({ config }: FrappeReconnectIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
21
|
+
export declare function FrappeReconnectIndicator({ config, connection }: FrappeReconnectIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
17
22
|
//# sourceMappingURL=FrappeReconnectIndicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeReconnectIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeReconnectIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FrappeReconnectIndicator.d.ts","sourceRoot":"","sources":["../src/FrappeReconnectIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,6BAA6B,kDAyB7F"}
|
package/types/index.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export { AttachLibrary, type AttachLibraryProps } from "./FileBrowser/AttachLibr
|
|
|
37
37
|
export { FrappeConnectionIndicator, type FrappeConnectionIndicatorProps, } from "./FrappeConnectionIndicator";
|
|
38
38
|
export { SyncErrorNotice, type SyncErrorNoticeProps } from "./SyncErrorNotice";
|
|
39
39
|
export { compileDependsOn, evaluateDependsOn, type DependsDoc, type DependsEvaluator, } from "./dependsOn";
|
|
40
|
-
export { SchemaForm } from "./schemaForm";
|
|
40
|
+
export { SchemaForm, applyFieldOrder, applyOrderToSchema } from "./schemaForm";
|
|
41
41
|
export type { SchemaFormProps, FormSchema, FormSection, FormColumn, FieldOverride, } from "./schemaForm";
|
|
42
42
|
export { SchemaWizard, schemaToWizardSteps } from "./schemaForm/SchemaWizard";
|
|
43
43
|
export type { SchemaWizardProps } from "./schemaForm/SchemaWizard";
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FieldSchema } from "../fieldRegistry";
|
|
2
|
+
type SchemaLike = {
|
|
3
|
+
fields: FieldSchema[];
|
|
4
|
+
sections: Array<{
|
|
5
|
+
columns: Array<{
|
|
6
|
+
fields: FieldSchema[];
|
|
7
|
+
}>;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* R2: reorder listed fields among the slots they already occupy.
|
|
12
|
+
* Unlisted fields keep their meta positions. Unknown / duplicate names
|
|
13
|
+
* in `order` are ignored. Empty or missing `order` is identity.
|
|
14
|
+
*
|
|
15
|
+
* Doctrine (`08` §2.3 / §4.2, `00` L4 test 1): reordering three fields
|
|
16
|
+
* must not cost a whole `sections` tree.
|
|
17
|
+
*/
|
|
18
|
+
export declare function applyFieldOrder<T extends {
|
|
19
|
+
name: string;
|
|
20
|
+
}>(fields: readonly T[], order?: readonly string[]): T[];
|
|
21
|
+
/**
|
|
22
|
+
* Apply `order` inside the existing section/column tree. Listed fields may
|
|
23
|
+
* move across sections; the tree shape (section count, column counts) does
|
|
24
|
+
* not change.
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyOrderToSchema<T extends SchemaLike>(schema: T, order?: readonly string[]): T;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=applyFieldOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyFieldOrder.d.ts","sourceRoot":"","sources":["../../src/schemaForm/applyFieldOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,WAAW,EAAE,CAAA;SAAE,CAAC,CAAC;KAC3C,CAAC,CAAC;CACJ,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACxD,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GACxB,CAAC,EAAE,CAkBL;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAmBhG"}
|
|
@@ -14,6 +14,7 @@ import { type RequiredMarkStrategy } from "@multiplatform.one/forms";
|
|
|
14
14
|
import React from "react";
|
|
15
15
|
import { type HeadingLevel } from "../fields/Heading";
|
|
16
16
|
import type { FieldRenderProps, FieldSchema } from "../fieldRegistry";
|
|
17
|
+
export { applyFieldOrder, applyOrderToSchema } from "./applyFieldOrder";
|
|
17
18
|
/** A column within a form section — contains an array of fields. */
|
|
18
19
|
export interface FormColumn {
|
|
19
20
|
fields: FieldSchema[];
|
|
@@ -83,6 +84,12 @@ export interface SchemaFormProps {
|
|
|
83
84
|
* (layout breaks, hidden, failing depends_on) never reach the wrapper.
|
|
84
85
|
*/
|
|
85
86
|
renderFieldWrapper?: (rendered: React.ReactNode, field: FieldSchema) => React.ReactNode;
|
|
87
|
+
/**
|
|
88
|
+
* R2: reorder fields inside the existing layout. Listed names permute
|
|
89
|
+
* among the slots they already occupy; unlisted fields keep their meta
|
|
90
|
+
* positions. Unknown names are ignored. Cheaper than replacing `sections`.
|
|
91
|
+
*/
|
|
92
|
+
order?: string[];
|
|
86
93
|
}
|
|
87
|
-
export declare function SchemaForm({ schema, doc, setValue, errors, disabled, overrides, hideFields, readOnlyFields, requiredMarking, sectionHeadingLevel, renderFieldWrapper, }: SchemaFormProps): import("react/jsx-runtime").JSX.Element;
|
|
94
|
+
export declare function SchemaForm({ schema, doc, setValue, errors, disabled, overrides, hideFields, readOnlyFields, requiredMarking, sectionHeadingLevel, renderFieldWrapper, order, }: SchemaFormProps): import("react/jsx-runtime").JSX.Element;
|
|
88
95
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMxE,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gEAAgE;IAChE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IACxF;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAiCD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAW,EACX,QAAgB,EAChB,SAAc,EACd,UAAe,EACf,cAAmB,EACnB,eAAwB,EACxB,mBAAuB,EACvB,kBAAkB,EAClB,KAAK,GACN,EAAE,eAAe,2CAmKjB"}
|