@fougere/app 0.16.4-alpha.0 → 0.16.6-alpha.0
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/Choices.d.ts +6 -1
- package/dist/Choices.d.ts.map +1 -1
- package/dist/Choices.js +9 -5
- package/dist/Choices.js.map +1 -1
- package/dist/FormEntity.d.ts +3 -3
- package/dist/FormEntity.d.ts.map +1 -1
- package/dist/FormEntity.js +10 -7
- package/dist/FormEntity.js.map +1 -1
- package/dist/client/index.d.ts +1 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -1
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
- package/src/Choices.ts +16 -6
- package/src/FormEntity.ts +10 -7
- package/src/client/index.ts +1 -2
- package/src/index.ts +1 -2
- package/dist/Summary.d.ts +0 -11
- package/dist/Summary.d.ts.map +0 -1
- package/dist/Summary.js +0 -28
- package/dist/Summary.js.map +0 -1
- package/src/Summary.ts +0 -37
package/dist/Choices.d.ts
CHANGED
|
@@ -5,11 +5,16 @@ export interface Choice {
|
|
|
5
5
|
value: string;
|
|
6
6
|
label: string;
|
|
7
7
|
}
|
|
8
|
+
/** What one load offers, and whether the target holds more than it — which is when a search is worth showing. */
|
|
9
|
+
export interface Offer {
|
|
10
|
+
choices: Choice[];
|
|
11
|
+
more: boolean;
|
|
12
|
+
}
|
|
8
13
|
/** The rows a reference field offers — a handful, and a search to reach the others. */
|
|
9
14
|
export declare class Choices {
|
|
10
15
|
/** Enough to choose among at a glance; the rest is what a search is for. */
|
|
11
16
|
static readonly LIMIT = 20;
|
|
12
17
|
/** The first rows of the target, or those whose label contains `text`. */
|
|
13
|
-
static of(fetcher: Fetcher, reference: FormReference, text?: string): Promise<
|
|
18
|
+
static of(fetcher: Fetcher, reference: FormReference, text?: string): Promise<Offer>;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=Choices.d.ts.map
|
package/dist/Choices.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Choices.d.ts","sourceRoot":"","sources":["../src/Choices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,6DAA6D;AAC7D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uFAAuF;AACvF,qBAAa,OAAO;IAClB,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM;IAE3B,0EAA0E;IAC1E,OAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Choices.d.ts","sourceRoot":"","sources":["../src/Choices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,6DAA6D;AAC7D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iHAAiH;AACjH,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,uFAAuF;AACvF,qBAAa,OAAO;IAClB,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM;IAE3B,0EAA0E;IAC1E,OAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAgBrF;CACF"}
|
package/dist/Choices.js
CHANGED
|
@@ -6,11 +6,15 @@ export class Choices {
|
|
|
6
6
|
/** The first rows of the target, or those whose label contains `text`. */
|
|
7
7
|
static async of(fetcher, reference, text = '') {
|
|
8
8
|
const where = text ? { [reference.label]: { contains: text } } : undefined;
|
|
9
|
-
const answer = await sendCall(fetcher, { entity: reference.to, op: 'list' }, invocationOf({ query: { limit: Choices.LIMIT, ...(where ? { where } : {}) } }));
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const answer = await sendCall(fetcher, { entity: reference.to, op: 'list' }, invocationOf({ query: { limit: Choices.LIMIT + 1, ...(where ? { where } : {}) } }));
|
|
10
|
+
const rows = itemsOf(answer);
|
|
11
|
+
return {
|
|
12
|
+
choices: rows.slice(0, Choices.LIMIT).map((row) => ({
|
|
13
|
+
value: String(row[reference.key]),
|
|
14
|
+
label: String(row[reference.label] ?? row[reference.key]),
|
|
15
|
+
})),
|
|
16
|
+
more: rows.length > Choices.LIMIT,
|
|
17
|
+
};
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=Choices.js.map
|
package/dist/Choices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Choices.js","sourceRoot":"","sources":["../src/Choices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Choices.js","sourceRoot":"","sources":["../src/Choices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAgBnE,uFAAuF;AACvF,MAAM,OAAO,OAAO;IAClB,4EAA4E;IAC5E,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAE3B,0EAA0E;IAC1E,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAgB,EAAE,SAAwB,EAAE,IAAI,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,OAAO,EACP,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EACpC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnF,CAAC;QACF,MAAM,IAAI,GAAG,OAAO,CAA0B,MAAM,CAAC,CAAC;QAEtD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAC1D,CAAC,CAAC;YACH,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;SAClC,CAAC;IACJ,CAAC;CACF"}
|
package/dist/FormEntity.d.ts
CHANGED
|
@@ -9,9 +9,9 @@ export declare function formFieldsOf<E extends FormEntity>(entity: E, entityKey:
|
|
|
9
9
|
/** The columns a list is made of. */
|
|
10
10
|
export declare function tableColumnsOf(entity: FormEntity, entityKey: string): TableColumn[];
|
|
11
11
|
/**
|
|
12
|
-
* The wire body of the form's values
|
|
13
|
-
*
|
|
14
|
-
* value
|
|
12
|
+
* The wire body of the form's values. A control left empty or never touched is `null` for a field
|
|
13
|
+
* that admits it — no choice is the answer there — and absent for any other, where the lifecycle axis judges the absence
|
|
14
|
+
* and an empty string would be judged as a present bad value.
|
|
15
15
|
*/
|
|
16
16
|
export declare function payloadOf(entity: FormEntity, values: Record<string, unknown>): Record<string, unknown>;
|
|
17
17
|
/** Index validator errors by field — local validator and remote validator share this shape. */
|
package/dist/FormEntity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormEntity.d.ts","sourceRoot":"","sources":["../src/FormEntity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,UAAU,EAAa,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,kFAAkF;AAClF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAwFpC,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAsB9G;AAqBD,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAanF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"FormEntity.d.ts","sourceRoot":"","sources":["../src/FormEntity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,UAAU,EAAa,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,kFAAkF;AAClF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAwFpC,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAsB9G;AAqBD,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAanF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CASzE"}
|
package/dist/FormEntity.js
CHANGED
|
@@ -81,7 +81,7 @@ export function formFieldsOf(entity, entityKey) {
|
|
|
81
81
|
const fields = Object.entries(Visibility.of(entity.getFields()).input).map(([name, field]) => {
|
|
82
82
|
const f = field;
|
|
83
83
|
const control = controlOf(f);
|
|
84
|
-
const required = Lifecycle.of(f).requiredAtCreate();
|
|
84
|
+
const required = Lifecycle.of(f).requiredAtCreate() && !Shapes.of(f.shape).nullable;
|
|
85
85
|
const attrs = attrsOf(f, control, required);
|
|
86
86
|
const members = enumOf(f);
|
|
87
87
|
const reference = referenceOf(f);
|
|
@@ -130,15 +130,18 @@ export function tableColumnsOf(entity, entityKey) {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
|
-
* The wire body of the form's values
|
|
134
|
-
*
|
|
135
|
-
* value
|
|
133
|
+
* The wire body of the form's values. A control left empty or never touched is `null` for a field
|
|
134
|
+
* that admits it — no choice is the answer there — and absent for any other, where the lifecycle axis judges the absence
|
|
135
|
+
* and an empty string would be judged as a present bad value.
|
|
136
136
|
*/
|
|
137
137
|
export function payloadOf(entity, values) {
|
|
138
138
|
const fields = entity.getFields();
|
|
139
|
-
return Object.fromEntries(Object.entries(values)
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
return Object.fromEntries(Object.entries(values).flatMap(([name, value]) => {
|
|
140
|
+
const shape = fields[name]?.shape;
|
|
141
|
+
if (value === undefined || value === '')
|
|
142
|
+
return Shapes.of(shape).nullable ? [[name, null]] : [];
|
|
143
|
+
return [[name, Shapes.fromText(shape, value)]];
|
|
144
|
+
}));
|
|
142
145
|
}
|
|
143
146
|
/** Index validator errors by field — local validator and remote validator share this shape. */
|
|
144
147
|
export function errorsByField(errors) {
|
package/dist/FormEntity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormEntity.js","sourceRoot":"","sources":["../src/FormEntity.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormEntity.js","sourceRoot":"","sources":["../src/FormEntity.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ export type { Addresses, Answer, AnyHandler, FacadeName, FougereHandlers, Fouger
|
|
|
6
6
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf, type FormEntity } from '../FormEntity.js';
|
|
7
7
|
export { type FormRow, type FormValues, type FormErrors, type FormFieldName } from '../FormRow.js';
|
|
8
8
|
export { type FormField, type FormReference } from '../FormField.js';
|
|
9
|
-
export { Choices, type Choice } from '../Choices.js';
|
|
10
|
-
export { cellOf, summaryOf, type Summary } from '../Summary.js';
|
|
9
|
+
export { Choices, type Choice, type Offer } from '../Choices.js';
|
|
11
10
|
export { type TableColumn } from '../TableColumn.js';
|
|
12
11
|
export { sessionViewOf, type SessionView } from '../session.js';
|
|
13
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,WAAW,EAChB,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,IAAI,GACL,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,WAAW,EAChB,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,IAAI,GACL,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -4,6 +4,5 @@ export { CALL_ENDPOINT, addressOf, asFougereError, callOf, entityKeyOf, facade,
|
|
|
4
4
|
// which carries the boot.
|
|
5
5
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf } from '../FormEntity.js';
|
|
6
6
|
export { Choices } from '../Choices.js';
|
|
7
|
-
export { cellOf, summaryOf } from '../Summary.js';
|
|
8
7
|
export { sessionViewOf } from '../session.js';
|
|
9
8
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,mBAAmB,CAAC;AAc3B,+EAA+E;AAC/E,iFAAiF;AACjF,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAG3G,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,mBAAmB,CAAC;AAc3B,+EAA+E;AAC/E,iFAAiF;AACjF,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAG3G,OAAO,EAAE,OAAO,EAA2B,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ export { invokeOn, rpcParseError, serveRest, serveRpc, surfaceOf } from './Outco
|
|
|
6
6
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf, type FormEntity } from './FormEntity.js';
|
|
7
7
|
export { type FormRow, type FormValues, type FormErrors, type FormFieldName } from './FormRow.js';
|
|
8
8
|
export { type FormField, type FormReference } from './FormField.js';
|
|
9
|
-
export { Choices, type Choice } from './Choices.js';
|
|
10
|
-
export { cellOf, summaryOf, type Summary } from './Summary.js';
|
|
9
|
+
export { Choices, type Choice, type Offer } from './Choices.js';
|
|
11
10
|
export { type TableColumn } from './TableColumn.js';
|
|
12
11
|
export { sessionViewOf, type SessionView } from './session.js';
|
|
13
12
|
export { stateFor } from './state.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,6 @@ export { tableOf } from './RouteMatch.js';
|
|
|
5
5
|
export { invokeOn, rpcParseError, serveRest, serveRpc, surfaceOf } from './Outcome.js';
|
|
6
6
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf } from './FormEntity.js';
|
|
7
7
|
export { Choices } from './Choices.js';
|
|
8
|
-
export { cellOf, summaryOf } from './Summary.js';
|
|
9
8
|
export { sessionViewOf } from './session.js';
|
|
10
9
|
export { stateFor } from './state.js';
|
|
11
10
|
export { serveGraphQL } from './graphql.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,GAEd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,GAEd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAG1G,OAAO,EAAE,OAAO,EAA2B,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAC;AAEjE,sFAAsF;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/app",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.6-alpha.0",
|
|
4
4
|
"description": "The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -41,26 +41,26 @@
|
|
|
41
41
|
"src"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@fougere/core": "0.16.
|
|
45
|
-
"@fougere/defaults": "0.16.
|
|
46
|
-
"@fougere/schema": "0.16.
|
|
47
|
-
"@fougere/adapter-rest": "0.16.
|
|
48
|
-
"@fougere/transport-http": "0.16.
|
|
44
|
+
"@fougere/core": "0.16.6-alpha.0",
|
|
45
|
+
"@fougere/defaults": "0.16.6-alpha.0",
|
|
46
|
+
"@fougere/schema": "0.16.6-alpha.0",
|
|
47
|
+
"@fougere/adapter-rest": "0.16.6-alpha.0",
|
|
48
|
+
"@fougere/transport-http": "0.16.6-alpha.0",
|
|
49
49
|
"jiti": "^2.6.1",
|
|
50
|
-
"@fougere/http": "0.16.
|
|
51
|
-
"@fougere/container": "0.16.
|
|
52
|
-
"@fougere/adapter-memory": "0.16.
|
|
53
|
-
"@fougere/compiler": "0.16.
|
|
50
|
+
"@fougere/http": "0.16.6-alpha.0",
|
|
51
|
+
"@fougere/container": "0.16.6-alpha.0",
|
|
52
|
+
"@fougere/adapter-memory": "0.16.6-alpha.0",
|
|
53
|
+
"@fougere/compiler": "0.16.6-alpha.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"vitest": "^4.1.0",
|
|
57
|
-
"@fougere/adapter-graphql": "0.16.
|
|
57
|
+
"@fougere/adapter-graphql": "0.16.6-alpha.0"
|
|
58
58
|
},
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
|
-
"@fougere/adapter-graphql": "^0.16.
|
|
63
|
+
"@fougere/adapter-graphql": "^0.16.6-alpha.0"
|
|
64
64
|
},
|
|
65
65
|
"peerDependenciesMeta": {
|
|
66
66
|
"@fougere/adapter-graphql": {
|
package/src/Choices.ts
CHANGED
|
@@ -8,23 +8,33 @@ export interface Choice {
|
|
|
8
8
|
label: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/** What one load offers, and whether the target holds more than it — which is when a search is worth showing. */
|
|
12
|
+
export interface Offer {
|
|
13
|
+
choices: Choice[];
|
|
14
|
+
more: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
11
17
|
/** The rows a reference field offers — a handful, and a search to reach the others. */
|
|
12
18
|
export class Choices {
|
|
13
19
|
/** Enough to choose among at a glance; the rest is what a search is for. */
|
|
14
20
|
static readonly LIMIT = 20;
|
|
15
21
|
|
|
16
22
|
/** The first rows of the target, or those whose label contains `text`. */
|
|
17
|
-
static async of(fetcher: Fetcher, reference: FormReference, text = ''): Promise<
|
|
23
|
+
static async of(fetcher: Fetcher, reference: FormReference, text = ''): Promise<Offer> {
|
|
18
24
|
const where = text ? { [reference.label]: { contains: text } } : undefined;
|
|
19
25
|
const answer = await sendCall(
|
|
20
26
|
fetcher,
|
|
21
27
|
{ entity: reference.to, op: 'list' },
|
|
22
|
-
invocationOf({ query: { limit: Choices.LIMIT, ...(where ? { where } : {}) } }),
|
|
28
|
+
invocationOf({ query: { limit: Choices.LIMIT + 1, ...(where ? { where } : {}) } }),
|
|
23
29
|
);
|
|
30
|
+
const rows = itemsOf<Record<string, unknown>>(answer);
|
|
24
31
|
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
return {
|
|
33
|
+
choices: rows.slice(0, Choices.LIMIT).map((row) => ({
|
|
34
|
+
value: String(row[reference.key]),
|
|
35
|
+
label: String(row[reference.label] ?? row[reference.key]),
|
|
36
|
+
})),
|
|
37
|
+
more: rows.length > Choices.LIMIT,
|
|
38
|
+
};
|
|
29
39
|
}
|
|
30
40
|
}
|
package/src/FormEntity.ts
CHANGED
|
@@ -100,7 +100,7 @@ export function formFieldsOf<E extends FormEntity>(entity: E, entityKey: string)
|
|
|
100
100
|
const fields = Object.entries(Visibility.of(entity.getFields()).input).map(([name, field]) => {
|
|
101
101
|
const f = field;
|
|
102
102
|
const control = controlOf(f);
|
|
103
|
-
const required = Lifecycle.of(f).requiredAtCreate();
|
|
103
|
+
const required = Lifecycle.of(f).requiredAtCreate() && !Shapes.of(f.shape).nullable;
|
|
104
104
|
const attrs = attrsOf(f, control, required);
|
|
105
105
|
const members = enumOf(f);
|
|
106
106
|
const reference = referenceOf(f);
|
|
@@ -156,9 +156,9 @@ export function tableColumnsOf(entity: FormEntity, entityKey: string): TableColu
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
/**
|
|
159
|
-
* The wire body of the form's values
|
|
160
|
-
*
|
|
161
|
-
* value
|
|
159
|
+
* The wire body of the form's values. A control left empty or never touched is `null` for a field
|
|
160
|
+
* that admits it — no choice is the answer there — and absent for any other, where the lifecycle axis judges the absence
|
|
161
|
+
* and an empty string would be judged as a present bad value.
|
|
162
162
|
*/
|
|
163
163
|
export function payloadOf(
|
|
164
164
|
entity: FormEntity,
|
|
@@ -167,9 +167,12 @@ export function payloadOf(
|
|
|
167
167
|
const fields = entity.getFields();
|
|
168
168
|
|
|
169
169
|
return Object.fromEntries(
|
|
170
|
-
Object.entries(values)
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
Object.entries(values).flatMap(([name, value]) => {
|
|
171
|
+
const shape = fields[name]?.shape;
|
|
172
|
+
if (value === undefined || value === '') return Shapes.of(shape).nullable ? [[name, null]] : [];
|
|
173
|
+
|
|
174
|
+
return [[name, Shapes.fromText(shape, value)]];
|
|
175
|
+
}),
|
|
173
176
|
);
|
|
174
177
|
}
|
|
175
178
|
|
package/src/client/index.ts
CHANGED
|
@@ -40,7 +40,6 @@ export type {
|
|
|
40
40
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf, type FormEntity } from '../FormEntity.js';
|
|
41
41
|
export { type FormRow, type FormValues, type FormErrors, type FormFieldName } from '../FormRow.js';
|
|
42
42
|
export { type FormField, type FormReference } from '../FormField.js';
|
|
43
|
-
export { Choices, type Choice } from '../Choices.js';
|
|
44
|
-
export { cellOf, summaryOf, type Summary } from '../Summary.js';
|
|
43
|
+
export { Choices, type Choice, type Offer } from '../Choices.js';
|
|
45
44
|
export { type TableColumn } from '../TableColumn.js';
|
|
46
45
|
export { sessionViewOf, type SessionView } from '../session.js';
|
package/src/index.ts
CHANGED
|
@@ -16,8 +16,7 @@ export { invokeOn, rpcParseError, serveRest, serveRpc, surfaceOf } from './Outco
|
|
|
16
16
|
export { errorsByField, formFieldsOf, payloadOf, tableColumnsOf, type FormEntity } from './FormEntity.js';
|
|
17
17
|
export { type FormRow, type FormValues, type FormErrors, type FormFieldName } from './FormRow.js';
|
|
18
18
|
export { type FormField, type FormReference } from './FormField.js';
|
|
19
|
-
export { Choices, type Choice } from './Choices.js';
|
|
20
|
-
export { cellOf, summaryOf, type Summary } from './Summary.js';
|
|
19
|
+
export { Choices, type Choice, type Offer } from './Choices.js';
|
|
21
20
|
export { type TableColumn } from './TableColumn.js';
|
|
22
21
|
|
|
23
22
|
export { sessionViewOf, type SessionView } from './session.js';
|
package/dist/Summary.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type FormEntity } from './FormEntity.js';
|
|
2
|
-
import type { TableColumn } from './TableColumn.js';
|
|
3
|
-
/** What a line of a list shows of a row: the field that names it, and the facts read at a glance. */
|
|
4
|
-
export interface Summary {
|
|
5
|
-
name?: TableColumn;
|
|
6
|
-
facts: TableColumn[];
|
|
7
|
-
}
|
|
8
|
-
export declare function summaryOf(entity: FormEntity, entityKey: string): Summary;
|
|
9
|
-
/** One column of a row as a line prints it: a date without its hour, a true boolean by its label, a false one not at all. */
|
|
10
|
-
export declare function cellOf(column: TableColumn, row: object): string;
|
|
11
|
-
//# sourceMappingURL=Summary.d.ts.map
|
package/dist/Summary.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../src/Summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qGAAqG;AACrG,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAKD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAYxE;AAED,6HAA6H;AAC7H,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO/D"}
|
package/dist/Summary.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Role, Shapes } from '@fougere/schema';
|
|
2
|
-
import { tableColumnsOf } from './FormEntity.js';
|
|
3
|
-
import { rowNameOf } from './RowName.js';
|
|
4
|
-
/** What reads at a glance. A long text, a key, a reference or a document does not. */
|
|
5
|
-
const AT_A_GLANCE = new Set(['choice', 'boolean', 'number', 'integer', 'date']);
|
|
6
|
-
export function summaryOf(entity, entityKey) {
|
|
7
|
-
const fields = entity.getFields();
|
|
8
|
-
const columns = tableColumnsOf(entity, entityKey);
|
|
9
|
-
const name = columns.find((column) => column.name === rowNameOf(fields));
|
|
10
|
-
const facts = columns.filter((column) => {
|
|
11
|
-
const field = fields[column.name];
|
|
12
|
-
const type = Shapes.typeOf(field.shape);
|
|
13
|
-
return column !== name && type !== undefined && AT_A_GLANCE.has(type) && !Role.of(field).isRelation();
|
|
14
|
-
});
|
|
15
|
-
return { ...(name ? { name } : {}), facts };
|
|
16
|
-
}
|
|
17
|
-
/** One column of a row as a line prints it: a date without its hour, a true boolean by its label, a false one not at all. */
|
|
18
|
-
export function cellOf(column, row) {
|
|
19
|
-
const value = row[column.name];
|
|
20
|
-
if (value === undefined || value === null || value === false)
|
|
21
|
-
return '';
|
|
22
|
-
if (value === true)
|
|
23
|
-
return column.label;
|
|
24
|
-
if (column.render === 'date')
|
|
25
|
-
return new Date(value).toLocaleDateString();
|
|
26
|
-
return String(value);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=Summary.js.map
|
package/dist/Summary.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.js","sourceRoot":"","sources":["../src/Summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASzC,sFAAsF;AACtF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3F,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,SAAiB;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,6HAA6H;AAC7H,MAAM,UAAU,MAAM,CAAC,MAAmB,EAAE,GAAW;IACrD,MAAM,KAAK,GAAI,GAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IACxE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,IAAI,CAAC,KAAsB,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAE3F,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
package/src/Summary.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Role, Shapes, type ShapeType } from '@fougere/schema';
|
|
2
|
-
import { tableColumnsOf, type FormEntity } from './FormEntity.js';
|
|
3
|
-
import { rowNameOf } from './RowName.js';
|
|
4
|
-
import type { TableColumn } from './TableColumn.js';
|
|
5
|
-
|
|
6
|
-
/** What a line of a list shows of a row: the field that names it, and the facts read at a glance. */
|
|
7
|
-
export interface Summary {
|
|
8
|
-
name?: TableColumn;
|
|
9
|
-
facts: TableColumn[];
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** What reads at a glance. A long text, a key, a reference or a document does not. */
|
|
13
|
-
const AT_A_GLANCE = new Set<ShapeType>(['choice', 'boolean', 'number', 'integer', 'date']);
|
|
14
|
-
|
|
15
|
-
export function summaryOf(entity: FormEntity, entityKey: string): Summary {
|
|
16
|
-
const fields = entity.getFields();
|
|
17
|
-
const columns = tableColumnsOf(entity, entityKey);
|
|
18
|
-
const name = columns.find((column) => column.name === rowNameOf(fields));
|
|
19
|
-
const facts = columns.filter((column) => {
|
|
20
|
-
const field = fields[column.name]!;
|
|
21
|
-
const type = Shapes.typeOf(field.shape);
|
|
22
|
-
|
|
23
|
-
return column !== name && type !== undefined && AT_A_GLANCE.has(type) && !Role.of(field).isRelation();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
return { ...(name ? { name } : {}), facts };
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** One column of a row as a line prints it: a date without its hour, a true boolean by its label, a false one not at all. */
|
|
30
|
-
export function cellOf(column: TableColumn, row: object): string {
|
|
31
|
-
const value = (row as Record<string, unknown>)[column.name];
|
|
32
|
-
if (value === undefined || value === null || value === false) return '';
|
|
33
|
-
if (value === true) return column.label;
|
|
34
|
-
if (column.render === 'date') return new Date(value as string | Date).toLocaleDateString();
|
|
35
|
-
|
|
36
|
-
return String(value);
|
|
37
|
-
}
|