@bolttech/form-engine-core 0.0.1-beta.32 → 0.0.1-beta.34

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/index.esm.js CHANGED
@@ -3032,6 +3032,7 @@ class FormCore {
3032
3032
  this.submitSubject$ = new Subject();
3033
3033
  this.fieldEventSubject$ = new Subject();
3034
3034
  this.dataSubject$ = new Subject();
3035
+ this.mountSubject$ = new Subject();
3035
3036
  this.subscribedTemplates = [];
3036
3037
  this.schema && this.serializeStructure(this.schema.components);
3037
3038
  this.schema && this.subscribeTemplates();
@@ -3595,6 +3596,12 @@ class FormCore {
3595
3596
  });
3596
3597
  return sub;
3597
3598
  }
3599
+ subscribeOnMount(callback) {
3600
+ const sub = this.mountSubject$.pipe(map(() => this.getFormValues())).subscribe({
3601
+ next: callback
3602
+ });
3603
+ return sub;
3604
+ }
3598
3605
  /**
3599
3606
  *
3600
3607
  * @param {(payload: { field: string; data: TFormValues }) => void} callback callback function to call on data
@@ -3616,6 +3623,18 @@ class FormCore {
3616
3623
  });
3617
3624
  return sub;
3618
3625
  }
3626
+ /**
3627
+ * Submits the form by triggering form field events and invoking the onSubmit callback.
3628
+ */
3629
+ mounted() {
3630
+ this.fields.forEach(field => {
3631
+ field.emitEvents({
3632
+ event: 'ON_FORM_MOUNT'
3633
+ });
3634
+ });
3635
+ const values = this.getFormValues();
3636
+ this.mountSubject$.next(values);
3637
+ }
3619
3638
  /**
3620
3639
  * Submits the form by triggering form field events and invoking the onSubmit callback.
3621
3640
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine-core",
3
- "version": "0.0.1-beta.32",
3
+ "version": "0.0.1-beta.34",
4
4
  "module": "./index.esm.js",
5
5
  "type": "module",
6
6
  "main": "./index.esm.js",
@@ -18,7 +18,8 @@ declare class FormCore {
18
18
  key: string;
19
19
  event: TMutationEvents;
20
20
  }>;
21
- submitSubject$: Subject<TFormValues<Record<string, unknown>>>;
21
+ submitSubject$: Subject<TFormValues<any>>;
22
+ mountSubject$: Subject<TFormValues<any>>;
22
23
  fieldEventSubject$: Subject<TFieldEvent>;
23
24
  dataSubject$: Subject<{
24
25
  key: string;
@@ -215,23 +216,28 @@ declare class FormCore {
215
216
  *
216
217
  * @returns {TFormValues} The current form values.
217
218
  */
218
- getFormValues(): TFormValues<Record<string, unknown>>;
219
+ getFormValues<T>(): TFormValues<T>;
219
220
  subscribeFieldEvent({ callback, }: {
220
221
  callback: (payload: TFieldEvent) => void;
221
222
  }): Subscription;
223
+ subscribeOnMount<T>(callback: (payload: TFormValues<T>) => void): Subscription;
222
224
  /**
223
225
  *
224
226
  * @param {(payload: { field: string; data: TFormValues }) => void} callback callback function to call on data
225
227
  */
226
- subscribeData(callback: (payload: {
228
+ subscribeData<T>(callback: (payload: {
227
229
  field: string;
228
- data: TFormValues<Record<string, unknown>>;
230
+ data: TFormValues<T>;
229
231
  }) => void): Subscription;
230
- subscribeOnSubmit(callback: (payload: TFormValues<Record<string, unknown>>) => void): Subscription;
232
+ subscribeOnSubmit<T>(callback: (payload: TFormValues<T>) => void): Subscription;
231
233
  /**
232
234
  * Submits the form by triggering form field events and invoking the onSubmit callback.
233
235
  */
234
- submit(): void;
236
+ mounted<T>(): void;
237
+ /**
238
+ * Submits the form by triggering form field events and invoking the onSubmit callback.
239
+ */
240
+ submit<T>(): void;
235
241
  destroy(): void;
236
242
  }
237
243
  type TFormCore = FormCore;
@@ -80,12 +80,12 @@ declare class FormGroup {
80
80
  * @returns
81
81
  */
82
82
  submitMultipleFormsByIndex<T>(indexes: string[], callback?: (payload: TFormValues<T>) => void): void;
83
- onDataSubscription({ ids, callback, }: {
83
+ onDataSubscription<T>({ ids, callback, }: {
84
84
  ids: string[];
85
85
  callback: (payload: Record<string, {
86
86
  formId: string;
87
87
  formField: string;
88
- values?: TFormValues<Record<string, unknown>>;
88
+ values?: TFormValues<T>;
89
89
  }>) => void;
90
90
  }): import("rxjs").Subscription;
91
91
  }
@@ -8,7 +8,7 @@ import { IFormField } from '../managers';
8
8
  * const event: TEvents = 'ON_FIELD_CHANGE';
9
9
  * ```
10
10
  */
11
- type TEvents = 'ON_FIELD_MOUNT' | 'ON_FIELD_CHANGE' | 'ON_FIELD_BLUR' | 'ON_FIELD_FOCUS' | 'ON_FIELD_CLICK' | 'ON_FIELD_KEYUP' | 'ON_FIELD_KEYDOWN' | 'ON_FORM_SUBMIT' | 'ON_API_FIELD_RESPONSE';
11
+ type TEvents = 'ON_FIELD_MOUNT' | 'ON_FIELD_CHANGE' | 'ON_FIELD_BLUR' | 'ON_FIELD_FOCUS' | 'ON_FIELD_CLICK' | 'ON_FIELD_KEYUP' | 'ON_FIELD_KEYDOWN' | 'ON_FORM_SUBMIT' | 'ON_FORM_MOUNT' | 'ON_API_FIELD_RESPONSE';
12
12
  /**
13
13
  * @type TMutationEvents
14
14
  * Represents the different types of events that can occur internally that triggers templating.