🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@focus4/forms

Package Overview
Dependencies
Maintainers
1
Versions
332
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@focus4/forms - npm Package Compare versions

Comparing version
12.8.3
to
12.9.0
+14
lib/stores/store.d.ts
import { Entity, EntityToType } from "@focus4/entities";
import { StoreListNode, StoreNode } from "@focus4/stores";
/**
* Crée un StoreListNode dans un state du composant à partir d'une définition d'entité.
* @param entity Un tuple une seule entité (pour différencier la création d'un StoreListNode de celle d'un StoreNode).
* @param initialData Les données initiales du store.
*/
export declare function useStoreNode<E extends Entity>(entity: [E], initialData?: EntityToType<E>[]): StoreListNode<E>;
/**
* Crée un StoreNode dans un state du composant à partir d'une définition d'entité.
* @param entity L'entité.
* @param initialData Les données initiales du store.
*/
export declare function useStoreNode<E extends Entity>(entity: E, initialData?: EntityToType<E>): StoreNode<E>;
+2
-0

@@ -23,2 +23,4 @@ import { Ref } from "react";

inputRef?: Ref<any>;
/** Surcharge du libellé du champ (il devrait à priori déjà être défini dans l'entité). */
label?: string;
/** Handler de modification de la valeur. */

@@ -25,0 +27,0 @@ onChange?: (value: F["fieldType"]) => void;

+1
-1
export { autocompleteFor, fieldFor, Form, FormContext, registerFieldComponent, registerFormComponent, selectFor, useField } from "./fields";
export { useFormActions, useFormNode, useLoad, useReferenceTracking } from "./stores";
export { useFormActions, useFormNode, useLoad, useReferenceTracking, useStoreNode } from "./stores";
export { useDisplay, useInput } from "./utils";
export type { AutocompleteForOptions, FieldForOptions, SelectForOptions, UseFieldProps } from "./fields";
export type { UseDisplayProps, UseInputProps } from "./utils";
import { jsx } from 'react/jsx-runtime';
import { createContext, useMemo, useContext, useCallback, useId, useLayoutEffect, useRef, useState, useEffect } from 'react';
import { upperFirst, isFunction, takeWhile } from 'es-toolkit';
import { action, autorun } from 'mobx';
import { UndefinedComponent, themeable, FormActions, FormActionsBuilder, buildNode, isAnyStoreNode, isStoreListNode, FormListNodeBuilder, toFlatValues, FormNodeBuilder, LoadRegistration, NodeLoadBuilder, getDefaultFormatter } from '@focus4/stores';
import { useTranslation } from 'react-i18next';
import { UndefinedComponent, themeable, FormActions, FormActionsBuilder, isAnyStoreNode, makeStoreNode, isStoreListNode, FormListNodeBuilder, toFlatValues, FormNodeBuilder, LoadRegistration, NodeLoadBuilder, getDefaultFormatter } from '@focus4/stores';
import { upperFirst, isFunction, takeWhile } from 'es-toolkit';
import numberParser from 'intl-number-parser';

@@ -31,3 +31,3 @@ import { isNumberSchema, isIntSchema } from '@focus4/entities';

const context = useContext(FormContext);
const { autocompleteProps = {}, displayProps = {}, errorDisplay = fieldProps?.errorDisplay ?? context.errorDisplay ?? "after-focus", field, inputRef, hasLabel = fieldProps?.hasLabel ?? !!field.$field.label, labelProps = {}, labelClassName, inputProps = {}, inputType = "input", selectProps = {}, showErrorWhenFocused = false } = props;
const { autocompleteProps = {}, displayProps = {}, errorDisplay = fieldProps?.errorDisplay ?? context.errorDisplay ?? "after-focus", field, inputRef, hasLabel = fieldProps?.hasLabel ?? !!field.$field.label, label = props.field.$field.label, labelProps = {}, labelClassName, inputProps = {}, inputType = "input", selectProps = {}, showErrorWhenFocused = false } = props;
const onChange = useCallback(props.onChange ??

@@ -78,3 +78,3 @@ action(`on${upperFirst(field.$field.name)}Change`, (value) => (field.value = value)), [field, props.onChange]);

(errorDisplay === "always" || (errorDisplay === "after-focus" && hasHadFocus)), [errorDisplay, hasFocus, hasHadFocus, showErrorWhenFocused]);
const { error, isEdit, value, $field: { comment, label, name, isRequired: required, domain: { AutocompleteComponent = UndefinedComponent, autocompleteProps: domainACP = {}, className = "", DisplayComponent = UndefinedComponent, displayFormatter, displayProps: domainDCP = {}, LabelComponent = UndefinedComponent, labelProps: domainLCP = {}, InputComponent = UndefinedComponent, inputProps: domainICP = {}, SelectComponent = UndefinedComponent, selectProps: domainSCP = {}, schema } } } = field;
const { error, isEdit, value, $field: { comment, name, isRequired: required, domain: { AutocompleteComponent = UndefinedComponent, autocompleteProps: domainACP = {}, className = "", DisplayComponent = UndefinedComponent, displayFormatter, displayProps: domainDCP = {}, LabelComponent = UndefinedComponent, labelProps: domainLCP = {}, InputComponent = UndefinedComponent, inputProps: domainICP = {}, SelectComponent = UndefinedComponent, selectProps: domainSCP = {}, schema } } } = field;
useEffect(() => {

@@ -171,3 +171,3 @@ setHasHadFocus(false);

function useFormNode(entityOrNode, builder = (x) => x, initialData = undefined) {
const [node] = useState(() => (isAnyStoreNode(entityOrNode) ? entityOrNode : buildNode(entityOrNode)));
const [node] = useState(() => (isAnyStoreNode(entityOrNode) ? entityOrNode : makeStoreNode(entityOrNode)));
const [formNode] = useState(() => {

@@ -252,2 +252,7 @@ let fn;

function useStoreNode(entity, initialData) {
const [node] = useState(() => makeStoreNode(entity, initialData));
return node;
}
/**

@@ -752,3 +757,3 @@ * Calcule la valeur à afficher pour un champ, à partir du formatteur, d'une liste de référence et/ou d'un keyResolver.

export { Form, FormContext, autocompleteFor, fieldFor, registerFieldComponent, registerFormComponent, selectFor, useDisplay, useField, useFormActions, useFormNode, useInput, useLoad, useReferenceTracking };
export { Form, FormContext, autocompleteFor, fieldFor, registerFieldComponent, registerFormComponent, selectFor, useDisplay, useField, useFormActions, useFormNode, useInput, useLoad, useReferenceTracking, useStoreNode };
//# sourceMappingURL=focus4.forms.js.map

@@ -1,2 +0,2 @@

import { EntityToType } from "@focus4/entities";
import { Entity, EntityToType } from "@focus4/entities";
import { FormActions, FormActionsBuilder, FormListNode, FormListNodeBuilder, FormNode, FormNodeBuilder, SourceNodeType, StoreListNode, StoreNode } from "@focus4/stores";

@@ -11,3 +11,3 @@ /**

*/
export declare function useFormNode<E, NE = E>(node: StoreListNode<E>, builder?: (s: FormListNodeBuilder<E, E>) => FormListNodeBuilder<NE, E>, initialData?: EntityToType<E>[] | (() => EntityToType<E>[]) | true): FormListNode<NE, E>;
export declare function useFormNode<E extends Entity, NE extends Entity = E>(node: StoreListNode<E>, builder?: (s: FormListNodeBuilder<E, E>) => FormListNodeBuilder<NE, E>, initialData?: EntityToType<E>[] | (() => EntityToType<E>[]) | true): FormListNode<NE, E>;
/**

@@ -21,3 +21,3 @@ * Construit un FormListNode à partir d'un StoreListNode.

*/
export declare function useFormNode<E, NE = E>(node: StoreNode<E>, builder?: (s: FormNodeBuilder<E, E>) => FormNodeBuilder<NE, E>, initialData?: EntityToType<E> | (() => EntityToType<E>) | true): FormNode<NE, E>;
export declare function useFormNode<E extends Entity, NE extends Entity = E>(node: StoreNode<E>, builder?: (s: FormNodeBuilder<E, E>) => FormNodeBuilder<NE, E>, initialData?: EntityToType<E> | (() => EntityToType<E>) | true): FormNode<NE, E>;
/**

@@ -29,3 +29,3 @@ * Construit un FormListNode à partir d'une définition d'entité.

*/
export declare function useFormNode<E, NE = E>(entity: [E], builder?: (s: FormListNodeBuilder<E, E>) => FormListNodeBuilder<NE, E>, initialData?: EntityToType<E>[] | (() => EntityToType<E>[])): FormListNode<NE, E>;
export declare function useFormNode<E extends Entity, NE extends Entity = E>(entity: [E], builder?: (s: FormListNodeBuilder<E, E>) => FormListNodeBuilder<NE, E>, initialData?: EntityToType<E>[] | (() => EntityToType<E>[])): FormListNode<NE, E>;
/**

@@ -37,3 +37,3 @@ * Construit un FormNode à partir d'un StoreNode.

*/
export declare function useFormNode<E, NE = E>(entity: E, builder?: (s: FormNodeBuilder<E, E>) => FormNodeBuilder<NE, E>, initialData?: EntityToType<E> | (() => EntityToType<E>)): FormNode<NE, E>;
export declare function useFormNode<E extends Entity, NE extends Entity = E>(entity: E, builder?: (s: FormNodeBuilder<E, E>) => FormNodeBuilder<NE, E>, initialData?: EntityToType<E> | (() => EntityToType<E>)): FormNode<NE, E>;
/**

@@ -40,0 +40,0 @@ * Permet de définir des actions de formulaires pour un noeud de formulaire. Les actions peuvent comprendre un service de chargement et un service de sauvegarde.

export { useFormActions, useFormNode } from "./form";
export { useLoad, useReferenceTracking } from "./load";
export { useStoreNode } from "./store";

@@ -1,2 +0,2 @@

import { CollectionStore, NodeLoadBuilder, ReferenceDefinition, ReferenceStore, StoreListNode, StoreNode } from "@focus4/stores";
import { LocalCollectionStore, NodeLoadBuilder, ReferenceDefinition, ReferenceStore, StoreListNode, StoreNode } from "@focus4/stores";
/**

@@ -12,3 +12,3 @@ * Enregistre un service de chargement sur un store (`storeNode.load()` ou `collectionStore.search()`).

*/
export declare function useLoad<SN extends StoreListNode | StoreNode | CollectionStore>(node: SN, builder: (builder: NodeLoadBuilder<SN>) => NodeLoadBuilder<SN>, deps?: any[]): readonly [boolean, string];
export declare function useLoad<SN extends StoreListNode | StoreNode | LocalCollectionStore>(node: SN, builder: (builder: NodeLoadBuilder<SN>) => NodeLoadBuilder<SN>, deps?: any[]): readonly [boolean, string];
/**

@@ -15,0 +15,0 @@ * Ajoute un (ou plusieurs) id(s) de suivi donné au chargement des listes de référence demandées.

{
"name": "@focus4/forms",
"version": "12.8.3",
"version": "12.9.0",
"description": "Focus v4, forms module",

@@ -18,7 +18,7 @@ "main": "lib/focus4.forms.js",

"dependencies": {
"@focus4/entities": "12.8.0",
"@focus4/stores": "12.8.3",
"es-toolkit": "~1.43.0",
"intl-number-parser": "~1.0.6",
"tslib": "~2.8.1"
"@focus4/entities": "12.9.0",
"@focus4/stores": "12.9.0",
"es-toolkit": "^1.45.1",
"intl-number-parser": "^1.0.6",
"tslib": "^2.8.1"
},

@@ -33,7 +33,6 @@ "peerDependencies": {

"devDependencies": {
"@focus4/tooling": "12.8.3",
"@testing-library/react": "16.3.1",
"jsdom": "27.4.0"
},
"gitHead": "aac95e156ff265f82f92070c395ab9284365d4f6"
"@focus4/tooling": "12.9.0",
"@testing-library/react": "16.3.2",
"jsdom": "28.1.0"
}
}

Sorry, the diff of this file is too big to display