@goodie-forms/core 1.0.0-alpha → 1.1.0-alpha

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.
Files changed (52) hide show
  1. package/dist/index.js +757 -646
  2. package/dist/index.js.map +1 -1
  3. package/dist/src/form/CustomValidation.d.ts +10 -0
  4. package/dist/src/form/CustomValidation.d.ts.map +1 -0
  5. package/dist/src/form/Field.d.ts +31 -0
  6. package/dist/src/form/Field.d.ts.map +1 -0
  7. package/dist/src/form/FormController.d.ts +68 -0
  8. package/dist/src/form/FormController.d.ts.map +1 -0
  9. package/dist/{form → src/form}/FormField.d.ts +6 -3
  10. package/dist/src/form/FormField.d.ts.map +1 -0
  11. package/dist/src/form/NonullFormField.d.ts +10 -0
  12. package/dist/src/form/NonullFormField.d.ts.map +1 -0
  13. package/dist/src/index.d.ts +6 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/types/DeepPartial.d.ts +6 -0
  16. package/dist/src/types/DeepPartial.d.ts.map +1 -0
  17. package/dist/src/types/Mixin.d.ts +2 -0
  18. package/dist/src/types/Mixin.d.ts.map +1 -0
  19. package/dist/src/utils/ensureImmerability.d.ts +2 -0
  20. package/dist/src/utils/ensureImmerability.d.ts.map +1 -0
  21. package/dist/src/utils/getId.d.ts.map +1 -0
  22. package/dist/src/utils/removeBy.d.ts.map +1 -0
  23. package/dist/test/test1.d.ts +2 -0
  24. package/dist/test/test1.d.ts.map +1 -0
  25. package/package.json +27 -27
  26. package/src/form/CustomValidation.ts +52 -0
  27. package/src/form/Field.ts +334 -194
  28. package/src/form/FormController.ts +310 -290
  29. package/src/form/FormField.ts +202 -199
  30. package/src/form/NonullFormField.ts +21 -0
  31. package/src/index.ts +5 -3
  32. package/src/types/DeepPartial.ts +7 -3
  33. package/src/types/Mixin.ts +2 -0
  34. package/src/utils/ensureImmerability.ts +30 -0
  35. package/src/utils/getId.ts +5 -5
  36. package/src/utils/removeBy.ts +11 -11
  37. package/test/test1.ts +52 -0
  38. package/tsconfig.json +7 -7
  39. package/vite.config.ts +18 -18
  40. package/dist/form/Field.d.ts +0 -17
  41. package/dist/form/Field.d.ts.map +0 -1
  42. package/dist/form/FormController.d.ts +0 -62
  43. package/dist/form/FormController.d.ts.map +0 -1
  44. package/dist/form/FormField.d.ts.map +0 -1
  45. package/dist/index.d.ts +0 -4
  46. package/dist/index.d.ts.map +0 -1
  47. package/dist/types/DeepPartial.d.ts +0 -4
  48. package/dist/types/DeepPartial.d.ts.map +0 -1
  49. package/dist/utils/getId.d.ts.map +0 -1
  50. package/dist/utils/removeBy.d.ts.map +0 -1
  51. /package/dist/{utils → src/utils}/getId.d.ts +0 -0
  52. /package/dist/{utils → src/utils}/removeBy.d.ts +0 -0
@@ -1,62 +0,0 @@
1
- import { StandardSchemaV1 } from '@standard-schema/spec';
2
- import { Field } from '../form/Field';
3
- import { DeepPartial } from '../types/DeepPartial';
4
- import { FormField } from './FormField';
5
- export declare namespace Form {
6
- type Status = "idle" | "validating" | "submitting";
7
- type FormConfigs<TShape extends object> = ConstructorParameters<typeof FormController<TShape>>[0];
8
- interface PreventableEvent {
9
- preventDefault(): void;
10
- }
11
- type SubmitSuccessHandler<TShape extends object, TEvent extends PreventableEvent> = (data: TShape, event: TEvent, abortSignal: AbortSignal) => void | Promise<void>;
12
- type SubmitErrorHandler<TEvent extends PreventableEvent> = (issues: StandardSchemaV1.Issue[], event: TEvent, abortSignal: AbortSignal) => void | Promise<void>;
13
- }
14
- export declare class FormController<TShape extends object = object> {
15
- _status: Form.Status;
16
- _fields: Map<Field.Paths<TShape>, FormField<TShape, any>>;
17
- _initialData: DeepPartial<TShape>;
18
- _data: DeepPartial<TShape>;
19
- _issues: StandardSchemaV1.Issue[];
20
- equalityComparators?: Record<any, (a: any, b: any) => boolean>;
21
- validationSchema?: StandardSchemaV1<TShape, TShape>;
22
- readonly events: import('nanoevents').Emitter<{
23
- statusChanged(newStatus: Form.Status, oldStatus: Form.Status): void;
24
- fieldBound(fieldPath: Field.Paths<TShape>): void;
25
- fieldUnbound(fieldPath: Field.Paths<TShape>): void;
26
- fieldTouchUpdated(path: Field.Paths<TShape>): void;
27
- fieldDirtyUpdated(path: Field.Paths<TShape>): void;
28
- elementBound(fieldPath: Field.Paths<TShape>, el: HTMLElement): void;
29
- elementUnbound(fieldPath: Field.Paths<TShape>): void;
30
- validationTriggered(fieldPath: Field.Paths<TShape>): void;
31
- validationIssuesUpdated(fieldPath: Field.Paths<TShape>): void;
32
- valueChanged(path: Field.Paths<TShape>, newValue: Field.GetValue<TShape, Field.Paths<TShape>> | undefined, oldValue: Field.GetValue<TShape, Field.Paths<TShape>> | undefined): void;
33
- }>;
34
- constructor(config: {
35
- initialData?: DeepPartial<TShape>;
36
- validationSchema?: StandardSchemaV1<TShape, TShape>;
37
- equalityComparators?: Record<any, (a: any, b: any) => boolean>;
38
- });
39
- get isDirty(): boolean;
40
- get isValid(): boolean;
41
- get isSubmitting(): boolean;
42
- protected setStatus(newStatus: Form.Status): void;
43
- _unsafeSetFieldValue<TPath extends Field.Paths<TShape>>(path: TPath, value: Field.GetValue<TShape, TPath>, config?: {
44
- updateInitialValue?: boolean;
45
- }): void;
46
- bindField<TPath extends Field.Paths<TShape>>(path: TPath, config?: {
47
- defaultValue?: Field.GetValue<TShape, TPath>;
48
- domElement?: HTMLElement;
49
- }): FormField<TShape, TPath>;
50
- unbindField(path: Field.Paths<TShape>): void;
51
- reset(newInitialData?: DeepPartial<TShape>): void;
52
- getField<TPath extends Field.Paths<TShape>>(path: TPath, config: {
53
- bindIfMissing: true;
54
- }): FormField<TShape, TPath>;
55
- getField<TPath extends Field.Paths<TShape>>(path: TPath): FormField<TShape, TPath> | undefined;
56
- clearFieldIssues<TPath extends Field.Paths<TShape>>(path: TPath): void;
57
- private applyValidation;
58
- validateField<TPath extends Field.Paths<TShape>>(path: TPath): Promise<void>;
59
- validateForm(): Promise<void>;
60
- createSubmitHandler<TEvent extends Form.PreventableEvent>(onSuccess?: Form.SubmitSuccessHandler<TShape, TEvent>, onError?: Form.SubmitErrorHandler<TEvent>): (event: TEvent) => Promise<void>;
61
- }
62
- //# sourceMappingURL=FormController.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormController.d.ts","sourceRoot":"","sources":["../../src/form/FormController.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../src/form/FormField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,SAAS,CACpB,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;aAUf,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;aAClC,IAAI,EAAE,KAAK;IAT7B,SAAgB,EAAE,SAAW;IAE7B,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE/B,SAAS,CAAC,UAAU,UAAS;IAC7B,SAAS,CAAC,QAAQ,UAAS;gBAGT,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,EAClC,IAAI,EAAE,KAAK;IAG7B,IAAI,KAAK,8CAKR;IAED,IAAI,YAAY,4BAEf;IAED,IAAI,MAAM,6DAIT;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,YAEV;IAED,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO;IAMxC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO;IAMpC,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS;IAMvC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG;IA6B9C,QAAQ,CACN,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EACpC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAK/C,WAAW,CACT,QAAQ,EAAE,CACR,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3C,KAAK,EAAE,IAAI,KACR,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,EACzC,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;IA0DH,KAAK;IAKL,KAAK;IAIL,SAAS;IAKT,iBAAiB;IAIjB,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;CAUvC"}
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './form/Field';
2
- export * from './form/FormField';
3
- export * from './form/FormController';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +0,0 @@
1
- export type DeepPartial<T extends object> = {
2
- [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
3
- };
4
- //# sourceMappingURL=DeepPartial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeepPartial.d.ts","sourceRoot":"","sources":["../../src/types/DeepPartial.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getId.d.ts","sourceRoot":"","sources":["../../src/utils/getId.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,WAEpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"removeBy.d.ts","sourceRoot":"","sources":["../../src/utils/removeBy.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,QAUpE"}
File without changes
File without changes