@elcrm/form 0.1.3 → 0.1.5
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/Form.d.ts +21 -3
- package/dist/core/Field.d.ts +12 -0
- package/dist/fields/Card.d.ts +14 -0
- package/dist/fields/Check.d.ts +14 -0
- package/dist/fields/Code.d.ts +14 -1
- package/dist/fields/Color.d.ts +13 -0
- package/dist/fields/ColorPanel.d.ts +4 -0
- package/dist/fields/Date.d.ts +14 -2
- package/dist/fields/DateCalendar.d.ts +11 -1
- package/dist/fields/Display.d.ts +9 -2
- package/dist/fields/DragDrop.d.ts +14 -1
- package/dist/fields/Email.d.ts +14 -2
- package/dist/fields/FieldGroup.d.ts +24 -4
- package/dist/fields/File.d.ts +14 -1
- package/dist/fields/Hidden.d.ts +7 -2
- package/dist/fields/Input.d.ts +10 -5
- package/dist/fields/Mask.d.ts +13 -1
- package/dist/fields/Modal.d.ts +21 -4
- package/dist/fields/Money.d.ts +11 -1
- package/dist/fields/NativeTextField.d.ts +9 -5
- package/dist/fields/Numeric.d.ts +9 -8
- package/dist/fields/Options.d.ts +25 -6
- package/dist/fields/Password.d.ts +11 -0
- package/dist/fields/Percent.d.ts +10 -6
- package/dist/fields/Phone.d.ts +13 -1
- package/dist/fields/Radio.d.ts +14 -0
- package/dist/fields/Range.d.ts +11 -1
- package/dist/fields/Rating.d.ts +13 -1
- package/dist/fields/RichText.d.ts +10 -2
- package/dist/fields/Select.d.ts +21 -0
- package/dist/fields/Tabs.d.ts +15 -0
- package/dist/fields/Tags.d.ts +13 -1
- package/dist/fields/Textarea.d.ts +10 -1
- package/dist/fields/Time.d.ts +13 -4
- package/dist/fields/TimePicker.d.ts +10 -1
- package/dist/fields/Url.d.ts +11 -1
- package/dist/fields/emit.d.ts +1 -1
- package/dist/fields/type.d.ts +97 -27
- package/dist/hooks/use.d.ts +22 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.umd.js +1 -1
- package/dist/package.js +1 -1
- package/package.json +3 -2
package/dist/hooks/use.d.ts
CHANGED
|
@@ -6,16 +6,31 @@ type FormChange = {
|
|
|
6
6
|
value?: unknown;
|
|
7
7
|
};
|
|
8
8
|
type Listener = () => void;
|
|
9
|
+
/**
|
|
10
|
+
* API {@link useForm}. Поля принимают этот объект в проп `form`.
|
|
11
|
+
*
|
|
12
|
+
* - `onValue` — записать без ререндера (набор символов).
|
|
13
|
+
* - `setValue` — записать и уведомить подписчиков поля (blur / внешний сет).
|
|
14
|
+
* - `getValue` / `getValues` — читать; `getValues()` — копия, не мутировать.
|
|
15
|
+
*/
|
|
9
16
|
export type UseFormApi<T extends FormValues = FormValues> = {
|
|
17
|
+
/** Живое хранилище. Снаружи не мутировать — только через onValue/setValue. */
|
|
10
18
|
valuesRef: React.MutableRefObject<T>;
|
|
19
|
+
/** Запись без notify (ввод). Поле само не перерисуется. */
|
|
11
20
|
onValue: (payload: FormChange) => void;
|
|
21
|
+
/** Запись + bump версии + ререндер подписчиков этого `name`. */
|
|
12
22
|
setValue: (payload: FormChange) => void;
|
|
23
|
+
/** Несколько ключей сразу (notify только изменившихся). */
|
|
13
24
|
setValues: (nextValues: Partial<T> & FormValues) => void;
|
|
14
|
-
/** Неглубокая копия текущих
|
|
25
|
+
/** Неглубокая копия текущих значений. */
|
|
15
26
|
getValues: () => T;
|
|
27
|
+
/** Одно значение; если ключа нет — `fallback`. */
|
|
16
28
|
getValue: <K extends string>(name: K, fallback?: unknown) => K extends keyof T ? T[K] : unknown;
|
|
29
|
+
/** Версия поля (растёт на `setValue`). */
|
|
17
30
|
getVersion: (name: string) => number;
|
|
31
|
+
/** Вернуть к initial или к `nextValues`. */
|
|
18
32
|
reset: (nextValues?: T) => void;
|
|
33
|
+
/** Подписка на одно имя (поля используют внутри). */
|
|
19
34
|
subscribe: (name: string, listener: Listener) => () => void;
|
|
20
35
|
};
|
|
21
36
|
/**
|
|
@@ -31,16 +46,15 @@ export type UseFormApi<T extends FormValues = FormValues> = {
|
|
|
31
46
|
* form.getValues().login; // string
|
|
32
47
|
*/
|
|
33
48
|
export declare function useForm<T extends FormValues = FormValues>(initialValues?: T): UseFormApi<T>;
|
|
34
|
-
/**
|
|
35
|
-
* Подписка на одно поле формы: актуальное значение + версия (для key у contentEditable и т.п.).
|
|
36
|
-
* Поля используют внутри себя; снаружи обычно достаточно передать form + name.
|
|
37
|
-
*/
|
|
38
|
-
/** Результат хука подписки на поле (значение + версия для key) */
|
|
39
49
|
export type UseFormFieldStateResult = {
|
|
40
50
|
value: unknown;
|
|
41
51
|
version: number;
|
|
42
52
|
};
|
|
43
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Подписка на одно поле формы: значение + версия (bump при `setValue`).
|
|
55
|
+
* Снаружи достаточно передать `form` + `name` в `*Field`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function useFormFieldState(form: UseFormApi<any> | undefined, name: string, fallback: unknown): UseFormFieldStateResult;
|
|
44
58
|
/** Подписка только на значение (без поля-компонента), например внешняя логика превью */
|
|
45
|
-
export declare function useFormField(form: UseFormApi
|
|
59
|
+
export declare function useFormField(form: UseFormApi<any>, name: string, fallback?: unknown): unknown;
|
|
46
60
|
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -41,6 +41,8 @@ export type { TEmail } from './fields/Email';
|
|
|
41
41
|
export type { TCard } from './fields/Card';
|
|
42
42
|
export type { TUrl } from './fields/Url';
|
|
43
43
|
export type { TSelect } from './fields/Select';
|
|
44
|
+
export type { TOptions } from './fields/Options';
|
|
45
|
+
export type { TModal } from './fields/Modal';
|
|
44
46
|
export type { TDate } from './fields/Date';
|
|
45
47
|
export type { TMoney } from './fields/Money';
|
|
46
48
|
export type { TMask } from './fields/Mask';
|