diff --git a/packages/docs/package.json b/packages/docs/package.json index c1dfea94..d3447811 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -22,10 +22,10 @@ }, "devDependencies": { "@focus4/tooling": "11.23.6", - "@storybook/addon-essentials": "8.5.2", - "@storybook/blocks": "8.5.2", - "@storybook/react-vite": "8.5.2", - "storybook": "8.5.2", + "@storybook/addon-essentials": "8.5.3", + "@storybook/blocks": "8.5.3", + "@storybook/react-vite": "8.5.3", + "storybook": "8.5.3", "storybook-dark-mode": "4.0.2" } -} +} \ No newline at end of file diff --git a/packages/stores/src/entity/form/actions.ts b/packages/stores/src/entity/form/actions.ts index 55d4e2b8..d24f207b 100644 --- a/packages/stores/src/entity/form/actions.ts +++ b/packages/stores/src/entity/form/actions.ts @@ -47,19 +47,13 @@ export interface ActionsPanelProps { } /** Gère les actions d'un formulaire. A n'utiliser QUE pour des formulaires (avec de la sauvegarde). */ -export class FormActions< - FN extends FormListNode | FormNode = any, - A extends readonly any[] = never, - C extends SourceNodeType | void | string | number = never, - U extends SourceNodeType | void | string | number = never, - S extends SourceNodeType | void | string | number = never -> extends LoadRegistration { +export class FormActions extends LoadRegistration { /** Mode d'affichage des erreurs du formulaire. */ errorDisplay: "after-focus" | "always" | "never"; - protected declare builder: FormActionsBuilder; + protected declare builder: FormActionsBuilder; - private readonly formNode: FN; + private readonly formNode: FormListNode | FormNode; /** * Enregistre des actions de formulaire sur un noeud. @@ -67,7 +61,11 @@ export class FormActions< * @param builder Builder pour les actions de forumaire. * @param trackingId Id de suivi de requête pour ce load. */ - constructor(formNode: FN, builder: FormActionsBuilder, trackingId = v4()) { + constructor( + formNode: FormListNode | FormNode, + builder: FormActionsBuilder, + trackingId = v4() + ) { super(formNode.sourceNode, builder, trackingId); this.formNode = formNode; @@ -163,7 +161,7 @@ export class FormActions< }; } - const data = await requestStore.track([this.trackingId, ...this.builder.trackingIds], () => { + const data = await requestStore.track([this.trackingId, ...this.builder.trackingIds], () => { const d = toFlatValues(this.formNode); if (this.builder.saveService) { return this.builder.saveService(d); @@ -230,7 +228,10 @@ export class FormActions< this.formNode.clear(); } - override register(node?: FN["sourceNode"], builder?: NodeLoadBuilder) { + override register( + node?: (FormListNode | FormNode)["sourceNode"], + builder?: FormActionsBuilder + ) { const loadDisposer = super.register(node, builder); if (this.builder.confirmation) { @@ -260,12 +261,12 @@ export class FormActions< ? await requestStore.track([this.trackingId, ...this.builder.trackingIds], () => this.builder.initService!() ) - : ({} as SourceNodeType); + : ({} as SourceNodeType); this.formNode.form._initialData = merge(this.formNode.form._initialData ?? {}, initData); if (isFormNode(this.formNode)) { - this.formNode.sourceNode.replace(this.formNode.form._initialData!); + this.formNode.sourceNode.replace(this.formNode.form._initialData); } else { this.formNode.sourceNode.replaceNodes(this.formNode.form._initialData!); } diff --git a/packages/stores/src/entity/store/load.ts b/packages/stores/src/entity/store/load.ts index d6a590c6..2885d1b0 100644 --- a/packages/stores/src/entity/store/load.ts +++ b/packages/stores/src/entity/store/load.ts @@ -22,7 +22,7 @@ interface LoadRegistrationHandlers { } /** Enregistrement de chargement. */ -export class LoadRegistration { +export class LoadRegistration { /** * Id du suivi de requêtes associé à cette enregistrement de chargement. * @@ -30,9 +30,9 @@ export class LoadRegistration; + protected builder: NodeLoadBuilder; - private node: SN; + private node: StoreNode | StoreListNode; /** * Enregistre un service de chargement sur un noeud. @@ -40,7 +40,11 @@ export class LoadRegistration, trackingId = v4()) { + constructor( + node: StoreNode | StoreListNode, + builder: NodeLoadBuilder, + trackingId = v4() + ) { if (isAnyFormNode(node) && !!builder.loadService) { throw new Error("Impossible d'enregistrer 'load' sur un `FormNode`"); } @@ -125,7 +129,7 @@ export class LoadRegistration) { + register(node?: StoreNode | StoreListNode, builder?: NodeLoadBuilder) { if (node) { if (isAnyFormNode(node) && !!builder?.loadService) { throw new Error("Impossible d'enregistrer 'load' sur un `FormNode`"); diff --git a/packages/toolbox/package.json b/packages/toolbox/package.json index 65f0b142..cc3f2396 100644 --- a/packages/toolbox/package.json +++ b/packages/toolbox/package.json @@ -18,10 +18,10 @@ "@focus4/core": "11.23.6", "@focus4/styling": "11.23.6", "@types/luxon": "3.4.2", - "framer-motion": "12.0.6", + "framer-motion": "12.0.8", "luxon": "3.5.0" }, "devDependencies": { "@focus4/tooling": "11.23.6" } -} +} \ No newline at end of file