@reactables/forms 0.7.0-alpha.0 → 0.7.0-alpha.1

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/index.js CHANGED
@@ -39,18 +39,18 @@ var required = function (value) {
39
39
  };
40
40
  var email = function (value) {
41
41
  return value && !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(value) ? { email: true } : { email: false };
42
- };
43
- var phoneNumber = function (value) {
44
- return value && !/^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/.test(value)
45
- ? { phoneNumber: true }
46
- : { phoneNumber: false };
47
42
  };
48
43
 
44
+ var Validators = /*#__PURE__*/Object.freeze({
45
+ __proto__: null,
46
+ required: required,
47
+ email: email
48
+ });
49
+
49
50
  var index = /*#__PURE__*/Object.freeze({
50
51
  __proto__: null,
51
52
  required: required,
52
- email: email,
53
- phoneNumber: phoneNumber
53
+ email: email
54
54
  });
55
55
 
56
56
  /******************************************************************************
@@ -144,12 +144,18 @@ var generateKey = function (length) {
144
144
  return result;
145
145
  };
146
146
 
147
- var getErrors = function (control, value) {
148
- var _a;
149
- return ((_a = control.config.validators) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, validator) { return (__assign(__assign({}, acc), validator(value))); }, {})) || {};
147
+ var getErrors = function (control, value, _a) {
148
+ var _b;
149
+ var validators = _a.validators;
150
+ return ((_b = control.config.validators) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, validator) {
151
+ if (!validators[validator]) {
152
+ throw "You have not provided a validator for \"".concat(validator, "\"");
153
+ }
154
+ return __assign(__assign({}, acc), validators[validator](value));
155
+ }, {})) || {};
150
156
  };
151
157
 
152
- var buildState = function (config, form, controlRef) {
158
+ var buildState = function (config, form, controlRef, providers) {
153
159
  var _a;
154
160
  if (form === void 0) { form = { root: null }; }
155
161
  if (controlRef === void 0) { controlRef = []; }
@@ -164,40 +170,45 @@ var buildState = function (config, form, controlRef) {
164
170
  config: config,
165
171
  key: generateKey(5)
166
172
  };
167
- var newForm = __assign(__assign({}, form), (_a = {}, _a[getFormKey(controlRef)] = __assign(__assign({}, control), { validatorErrors: getErrors(control, value) }), _a));
173
+ var newForm = __assign(__assign({}, form), (_a = {}, _a[getFormKey(controlRef)] = __assign(__assign({}, control), { validatorErrors: getErrors(control, value, providers) }), _a));
168
174
  var controls = config.controls;
169
175
  // Adding controls for Form Group
170
176
  if (controls && !(controls instanceof Array)) {
171
177
  newForm = Object.entries(config.controls).reduce(function (acc, _a) {
172
178
  var key = _a[0], controlConfig = _a[1];
173
- return buildState(controlConfig, acc, controlRef.concat(key));
179
+ return buildState(controlConfig, acc, controlRef.concat(key), providers);
174
180
  }, newForm);
175
181
  }
176
182
  else if (controls && controls instanceof Array) {
177
183
  // Adding controls for Form Array
178
- newForm = config.controls.reduce(function (acc, controlConfig, index) { return buildState(controlConfig, acc, controlRef.concat(index)); }, newForm);
184
+ newForm = config.controls.reduce(function (acc, controlConfig, index) {
185
+ return buildState(controlConfig, acc, controlRef.concat(index), providers);
186
+ }, newForm);
179
187
  }
180
188
  return newForm;
181
189
  };
182
- var buildFormState = function (config, form, controlRef) {
190
+ var buildFormState = function (config, form, controlRef, providers) {
183
191
  if (form === void 0) { form = { root: null }; }
184
192
  if (controlRef === void 0) { controlRef = []; }
185
193
  return {
186
- form: buildState(config, form, controlRef)
194
+ form: buildState(config, form, controlRef, providers)
187
195
  };
188
196
  };
189
197
 
190
- var getScopedEffectsForControl = function (formControl) {
198
+ var getScopedEffectsForControl = function (formControl, providers) {
191
199
  var config = formControl.config, key = formControl.key;
192
200
  var asyncValidators = config.asyncValidators;
193
201
  var scopedEffects = [];
194
202
  if (asyncValidators && asyncValidators.length) {
195
- scopedEffects = asyncValidators.reduce(function (acc, validator, validatorIndex) {
203
+ scopedEffects = asyncValidators.reduce(function (acc, asyncValidator, validatorIndex) {
196
204
  var effect = function (actions$) {
205
+ if (!providers.asyncValidators[asyncValidator]) {
206
+ throw "You have not provided an asyncValidator for \"".concat(asyncValidator, "\"");
207
+ }
197
208
  return actions$.pipe(operators.map(function (_a) {
198
209
  var control = _a.payload;
199
210
  return control;
200
- }), validator, operators.map(function (errors) { return ({
211
+ }), providers.asyncValidators[asyncValidator], operators.map(function (errors) { return ({
201
212
  type: 'asyncValidationResponseSuccess',
202
213
  payload: {
203
214
  key: key,
@@ -213,8 +224,8 @@ var getScopedEffectsForControl = function (formControl) {
213
224
  };
214
225
  var getAsyncValidationActions = function (formControls) {
215
226
  return formControls.reduce(function (acc, control) {
216
- var effects = getScopedEffectsForControl(control);
217
- if (!effects.length)
227
+ var _a;
228
+ if (!((_a = control.config.asyncValidators) === null || _a === void 0 ? void 0 : _a.length))
218
229
  return acc;
219
230
  var action = { type: 'asyncValidation', payload: control };
220
231
  return acc.concat(action);
@@ -237,7 +248,7 @@ var getControl = function (controlRef, form) {
237
248
  };
238
249
 
239
250
  var UPDATE_ANCESTOR_VALUES = 'UPDATE_ANCESTOR_VALUES';
240
- var updateAncestorValues = function (form, _a) {
251
+ var updateAncestorValues = function (form, _a, providers) {
241
252
  var _b, _c;
242
253
  var _d = _a.payload, controlRef = _d.controlRef, value = _d.value;
243
254
  if (controlRef.length) {
@@ -256,11 +267,11 @@ var updateAncestorValues = function (form, _a) {
256
267
  // If parent is a Form Group
257
268
  newValue = __assign(__assign({}, parentControl.value), (_b = {}, _b[childKey_1] = value, _b));
258
269
  }
259
- var newParentControl = __assign(__assign({}, parentControl), { validatorErrors: getErrors(parentControl, newValue), value: newValue, dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
270
+ var newParentControl = __assign(__assign({}, parentControl), { validatorErrors: getErrors(parentControl, newValue, providers), value: newValue, dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
260
271
  return updateAncestorValues(__assign(__assign({}, form), (_c = {}, _c[parentFormKey] = newParentControl, _c)), {
261
272
  type: UPDATE_ANCESTOR_VALUES,
262
273
  payload: { controlRef: parentRef, value: newValue }
263
- });
274
+ }, providers);
264
275
  }
265
276
  return form;
266
277
  };
@@ -321,7 +332,7 @@ var getAncestorControls = function (controlRef, form, excludeSelf) {
321
332
  };
322
333
 
323
334
  var UPDATE_DESCENDANT_VALUES = 'UPDATE_DESCENDANT_VALUES';
324
- var updateDescendants = function (state, _a) {
335
+ var updateDescendants = function (state, _a, providers) {
325
336
  var _b = _a.payload, controlRef = _b.controlRef, value = _b.value;
326
337
  var descendants = getDescendantControls(controlRef, state.form, true).map(function (control) { return [getFormKey(control.controlRef), control]; });
327
338
  var result = descendants.reduce(function (acc, _a) {
@@ -329,7 +340,7 @@ var updateDescendants = function (state, _a) {
329
340
  var key = _a[0], control = _a[1];
330
341
  if (isChildRef(control.controlRef, controlRef)) {
331
342
  var childValue = value[control.controlRef.at(-1)];
332
- var validatorErrors = getErrors(control, value);
343
+ var validatorErrors = getErrors(control, value, providers);
333
344
  var newControl = __assign(__assign({}, control), { value: childValue, validatorErrors: validatorErrors, dirty: !isEqual__default["default"](childValue, control.pristineValue) });
334
345
  acc = {
335
346
  form: __assign(__assign({}, acc.form), (_b = {}, _b[key] = newControl, _b)),
@@ -340,7 +351,7 @@ var updateDescendants = function (state, _a) {
340
351
  acc = updateDescendants(acc, {
341
352
  type: UPDATE_DESCENDANT_VALUES,
342
353
  payload: { controlRef: control.controlRef, value: childValue }
343
- });
354
+ }, providers);
344
355
  }
345
356
  }
346
357
  return acc;
@@ -352,19 +363,25 @@ var updateDescendants = function (state, _a) {
352
363
  };
353
364
  // Will only update child controls that are present.
354
365
  // Use AddControlPayload/RemoveControl action reducers to add/remove control
355
- var updateValues = function (_a, action, mergeChanges) {
366
+ var updateValues = function (_a, action, providers, mergeChanges) {
356
367
  var _b, _c;
357
368
  var form = _a.form, _d = _a.changedControls, changedControls = _d === void 0 ? {} : _d, _e = _a.removedControls, removedControls = _e === void 0 ? {} : _e;
358
369
  if (mergeChanges === void 0) { mergeChanges = false; }
370
+ var normalizers = providers.normalizers;
359
371
  var _f = action.payload, controlRef = _f.controlRef, value = _f.value;
360
372
  // Update its own value
361
373
  var ctrlKey = getFormKey(controlRef);
362
374
  var newValue = value;
363
375
  var config = form[ctrlKey].config;
364
376
  if (config.normalizers) {
365
- newValue = config.normalizers.reduce(function (acc, normalizer) { return normalizer(acc); }, value);
377
+ newValue = config.normalizers.reduce(function (acc, normalizer) {
378
+ if (!normalizers[normalizer]) {
379
+ throw "You have not provided a normalizer for \"".concat(normalizer, "\"");
380
+ }
381
+ return normalizers[normalizer](acc);
382
+ }, value);
366
383
  }
367
- var validatorErrors = getErrors(form[ctrlKey], newValue);
384
+ var validatorErrors = getErrors(form[ctrlKey], newValue, providers);
368
385
  var newControl = __assign(__assign({}, form[ctrlKey]), { validatorErrors: validatorErrors, dirty: !isEqual__default["default"](value, form[ctrlKey].pristineValue), value: newValue });
369
386
  var result = {
370
387
  form: __assign(__assign({}, form), (_b = {}, _b[ctrlKey] = newControl, _b)),
@@ -379,14 +396,14 @@ var updateValues = function (_a, action, mergeChanges) {
379
396
  controlRef: controlRef,
380
397
  value: newValue
381
398
  }
382
- });
399
+ }, providers);
383
400
  }
384
401
  // Update its Ancestors
385
402
  if (controlRef.length) {
386
403
  result = __assign(__assign({}, result), { form: updateAncestorValues(result.form, {
387
404
  type: UPDATE_ANCESTOR_VALUES,
388
405
  payload: { controlRef: controlRef, value: newValue }
389
- }) });
406
+ }, providers) });
390
407
  }
391
408
  var changedAncestorControls = getAncestorControls(controlRef, result.form).reduce(function (acc, control) {
392
409
  var _a;
@@ -397,7 +414,7 @@ var updateValues = function (_a, action, mergeChanges) {
397
414
  };
398
415
 
399
416
  var UPDATE_ANCESTOR_VALUES_REMOVE_CONTROL = 'UPDATE_ANCESTOR_VALUES_REMOVE_CONTROL';
400
- var updateAncestorValuesRemoveControl = function (form, _a) {
417
+ var updateAncestorValuesRemoveControl = function (form, _a, providers) {
401
418
  var _b;
402
419
  var controlRef = _a.payload;
403
420
  if (controlRef.length) {
@@ -415,16 +432,16 @@ var updateAncestorValuesRemoveControl = function (form, _a) {
415
432
  newValue = __assign({}, parentControl.value);
416
433
  delete newValue[childKey_1];
417
434
  }
418
- var newParentControl = __assign(__assign({}, parentControl), { value: newValue, validatorErrors: getErrors(parentControl, newValue), dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
435
+ var newParentControl = __assign(__assign({}, parentControl), { value: newValue, validatorErrors: getErrors(parentControl, newValue, providers), dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
419
436
  return updateAncestorValues(__assign(__assign({}, form), (_b = {}, _b[parentFormKey] = newParentControl, _b)), {
420
437
  type: UPDATE_ANCESTOR_VALUES,
421
438
  payload: { controlRef: parentRef, value: newValue }
422
- });
439
+ }, providers);
423
440
  }
424
441
  return form;
425
442
  };
426
443
 
427
- var removeControl = function (state, action, mergeChanges) {
444
+ var removeControl = function (state, action, providers, mergeChanges) {
428
445
  var _a;
429
446
  if (mergeChanges === void 0) { mergeChanges = false; }
430
447
  var form = state.form;
@@ -473,7 +490,7 @@ var removeControl = function (state, action, mergeChanges) {
473
490
  var result = updateAncestorValuesRemoveControl(controlRemoved, {
474
491
  type: UPDATE_ANCESTOR_VALUES_REMOVE_CONTROL,
475
492
  payload: controlRef
476
- });
493
+ }, providers);
477
494
  var changedControls = __assign(__assign({}, (mergeChanges ? state.changedControls || {} : undefined)), getAncestorControls(controlRef.slice(0, -1), result).reduce(function (acc, control) {
478
495
  var _a;
479
496
  return (__assign(__assign({}, acc), (_a = {}, _a[control.key] = control, _a)));
@@ -518,7 +535,7 @@ var removeControl = function (state, action, mergeChanges) {
518
535
  };
519
536
 
520
537
  var UPDATE_ANCESTOR_VALUES_ADD_CONTROL = 'UPDATE_ANCESTOR_VALUES_ADD_CONTROL';
521
- var updateAncestorValuesAddControl = function (form, _a) {
538
+ var updateAncestorValuesAddControl = function (form, _a, providers) {
522
539
  var _b, _c;
523
540
  var _d = _a.payload, controlRef = _d.controlRef, value = _d.value;
524
541
  if (controlRef.length) {
@@ -535,11 +552,11 @@ var updateAncestorValuesAddControl = function (form, _a) {
535
552
  // If parent is a Form Group
536
553
  newValue = __assign(__assign({}, form[parentFormKey].value), (_b = {}, _b[childKey] = value, _b));
537
554
  }
538
- var newParentControl = __assign(__assign({}, parentControl), { value: newValue, validatorErrors: getErrors(parentControl, newValue), dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
555
+ var newParentControl = __assign(__assign({}, parentControl), { value: newValue, validatorErrors: getErrors(parentControl, newValue, providers), dirty: !isEqual__default["default"](newValue, parentControl.pristineValue) });
539
556
  return updateAncestorValues(__assign(__assign({}, form), (_c = {}, _c[parentFormKey] = newParentControl, _c)), {
540
557
  type: UPDATE_ANCESTOR_VALUES,
541
558
  payload: { controlRef: parentRef, value: newValue }
542
- });
559
+ }, providers);
543
560
  }
544
561
  return form;
545
562
  };
@@ -550,19 +567,19 @@ var getControlBranch = function (controlRef, form) {
550
567
  return ancestors.concat(childControls).sort(function (a, b) { return a.controlRef.length - b.controlRef.length; });
551
568
  };
552
569
 
553
- var addControl = function (state, action, mergeChanges) {
570
+ var addControl = function (state, action, providers, mergeChanges) {
554
571
  if (mergeChanges === void 0) { mergeChanges = false; }
555
572
  var _a = action.payload, config = _a.config, controlRef = _a.controlRef;
556
573
  // If controlRef does not exist we are adding control to a Form Group
557
574
  if (!getControl(controlRef.slice(0, -1), state.form)) {
558
575
  throw 'You are attempting to add a control to a non-existent form group';
559
576
  }
560
- var newForm = buildState(config, state.form, controlRef);
577
+ var newForm = buildState(config, state.form, controlRef, providers);
561
578
  var newValue = getControl(controlRef, newForm).value;
562
579
  var ancestorsUpdated = updateAncestorValuesAddControl(newForm, {
563
580
  type: UPDATE_ANCESTOR_VALUES_ADD_CONTROL,
564
581
  payload: { controlRef: controlRef, value: newValue }
565
- });
582
+ }, providers);
566
583
  var changedControls = getControlBranch(controlRef, ancestorsUpdated).reduce(function (acc, control) {
567
584
  var _a;
568
585
  return (__assign(__assign({}, acc), (_a = {}, _a[control.key] = control, _a)));
@@ -574,7 +591,7 @@ var addControl = function (state, action, mergeChanges) {
574
591
  };
575
592
  };
576
593
 
577
- var pushControl = function (state, action, mergeChanges) {
594
+ var pushControl = function (state, action, providers, mergeChanges) {
578
595
  if (mergeChanges === void 0) { mergeChanges = false; }
579
596
  var newControlRef;
580
597
  var _a = action.payload, config = _a.config, controlRef = _a.controlRef;
@@ -588,12 +605,12 @@ var pushControl = function (state, action, mergeChanges) {
588
605
  else {
589
606
  throw 'You are attempting to push to a control that is not a Form Array';
590
607
  }
591
- var newForm = buildState(config, state.form, newControlRef);
608
+ var newForm = buildState(config, state.form, newControlRef, providers);
592
609
  var newValue = getControl(newControlRef, newForm).value;
593
610
  var ancestorsUpdated = updateAncestorValuesAddControl(newForm, {
594
611
  type: UPDATE_ANCESTOR_VALUES_ADD_CONTROL,
595
612
  payload: { controlRef: newControlRef, value: newValue }
596
- });
613
+ }, providers);
597
614
  var changedControls = getControlBranch(newControlRef, ancestorsUpdated).reduce(function (acc, control) {
598
615
  var _a;
599
616
  return (__assign(__assign({}, acc), (_a = {}, _a[control.key] = control, _a)));
@@ -719,7 +736,7 @@ var markControlAsUntouched = function (state, action, mergeChanges) {
719
736
  };
720
737
  };
721
738
 
722
- var resetControl = function (state, action, mergeChanges) {
739
+ var resetControl = function (state, action, providers, mergeChanges) {
723
740
  var _a;
724
741
  if (mergeChanges === void 0) { mergeChanges = false; }
725
742
  var form = state.form;
@@ -735,12 +752,12 @@ var resetControl = function (state, action, mergeChanges) {
735
752
  delete descendantsRemoved[key];
736
753
  });
737
754
  // Remove all descendants
738
- var restoredControls = buildState(controlToReset.config, descendantsRemoved, controlToReset.controlRef);
755
+ var restoredControls = buildState(controlToReset.config, descendantsRemoved, controlToReset.controlRef, providers);
739
756
  var restoredControlValue = getControl(controlRef, restoredControls).value;
740
757
  var result = updateAncestorValues(restoredControls, {
741
758
  type: UPDATE_ANCESTOR_VALUES,
742
759
  payload: { controlRef: controlRef, value: restoredControlValue }
743
- });
760
+ }, providers);
744
761
  var changedControls = __assign(__assign({}, (mergeChanges ? state.changedControls || {} : undefined)), getControlBranch(controlRef, result).reduce(function (acc, control) {
745
762
  var _a;
746
763
  return (__assign(__assign({}, acc), (_a = {}, _a[control.key] = control, _a)));
@@ -993,18 +1010,21 @@ var control = function (config) {
993
1010
  };
994
1011
  var array = function (config) { return config; };
995
1012
  var group = function (config) { return config; };
996
- var reducerTools = {
1013
+ var reducerTools = function (providers) { return ({
997
1014
  updateValues: function (state, payload) {
998
- return updateValues(state, { payload: payload }, true);
1015
+ return updateValues(state, { payload: payload }, providers, true);
999
1016
  },
1000
1017
  removeControl: function (state, payload) {
1001
- return removeControl(state, { payload: payload }, true);
1018
+ return removeControl(state, { payload: payload }, providers, true);
1002
1019
  },
1003
1020
  pushControl: function (state, payload) {
1004
- return pushControl(state, { payload: payload }, true);
1021
+ return pushControl(state, { payload: payload }, providers, true);
1005
1022
  },
1006
1023
  addControl: function (state, payload) {
1007
- return addControl(state, { payload: payload }, true);
1024
+ return addControl(state, { payload: payload }, providers, true);
1025
+ },
1026
+ resetControl: function (state, payload) {
1027
+ return resetControl(state, { payload: payload }, providers, true);
1008
1028
  },
1009
1029
  markControlAsPristine: function (state, payload) {
1010
1030
  return markControlAsPristine(state, { payload: payload }, true);
@@ -1014,14 +1034,47 @@ var reducerTools = {
1014
1034
  },
1015
1035
  markControlAsUntouched: function (state, payload) {
1016
1036
  return markControlAsUntouched(state, { payload: payload }, true);
1017
- },
1018
- resetControl: function (state, payload) {
1019
- return resetControl(state, { payload: payload }, true);
1020
1037
  }
1021
- };
1038
+ }); };
1022
1039
  var build = function (config, options) {
1040
+ var _a, _b, _c;
1023
1041
  if (options === void 0) { options = {}; }
1024
- var initialState = buildFormState(config);
1042
+ var providers = {
1043
+ normalizers: __assign({}, (_a = options.providers) === null || _a === void 0 ? void 0 : _a.normalizers),
1044
+ validators: __assign(__assign({}, Validators), (_b = options.providers) === null || _b === void 0 ? void 0 : _b.validators),
1045
+ asyncValidators: __assign({}, (_c = options.providers) === null || _c === void 0 ? void 0 : _c.asyncValidators)
1046
+ };
1047
+ var initialState = buildFormState(config, undefined, undefined, providers);
1048
+ return createReactable(initialState, options);
1049
+ };
1050
+ var load = function (state, options) {
1051
+ if (options === void 0) { options = {}; }
1052
+ var baseFormState = {
1053
+ form: Object.entries(state).reduce(function (acc, _a) {
1054
+ var _b;
1055
+ var key = _a[0], control = _a[1];
1056
+ return __assign(__assign({}, acc), (_b = {}, _b[key] = Object.entries(control)
1057
+ .filter(function (_a) {
1058
+ var key = _a[0];
1059
+ return !Object.keys(DEFAULT_HUB2_FIELDS).includes(key);
1060
+ })
1061
+ .reduce(function (acc, _a) {
1062
+ var _b;
1063
+ var key = _a[0], value = _a[1];
1064
+ return (__assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)));
1065
+ }, {}), _b));
1066
+ }, {})
1067
+ };
1068
+ return createReactable(baseFormState, options);
1069
+ };
1070
+ var createReactable = function (initialBaseState, options, initialFormState) {
1071
+ var _a, _b, _c;
1072
+ if (options === void 0) { options = {}; }
1073
+ var providers = {
1074
+ normalizers: __assign({}, (_a = options.providers) === null || _a === void 0 ? void 0 : _a.normalizers),
1075
+ validators: __assign(__assign({}, Validators), (_b = options.providers) === null || _b === void 0 ? void 0 : _b.validators),
1076
+ asyncValidators: __assign({}, (_c = options.providers) === null || _c === void 0 ? void 0 : _c.asyncValidators)
1077
+ };
1025
1078
  var reducers = options.reducers, otherOptions = __rest(options, ["reducers"]);
1026
1079
  var customReducers = Object.entries(reducers || {}).reduce(function (acc, _a) {
1027
1080
  var _b;
@@ -1031,22 +1084,32 @@ var build = function (config, options) {
1031
1084
  return __assign(__assign({}, acc), (_b = {}, _b[key] = {
1032
1085
  reducer: function (_a, action) {
1033
1086
  var form = _a.form;
1034
- return _reducer(reducerTools, { form: form }, action);
1087
+ return _reducer(reducerTools(providers), { form: form }, action);
1035
1088
  },
1036
1089
  effects: effects
1037
1090
  }, _b));
1038
1091
  }, {});
1039
- var _a = core.RxBuilder(__assign({ initialState: initialState, reducers: __assign({ updateValues: updateValues, removeControl: removeControl, addControl: addControl, pushControl: pushControl, markControlAsPristine: markControlAsPristine, markControlAsTouched: markControlAsTouched, markControlAsUntouched: markControlAsUntouched, resetControl: resetControl }, customReducers) }, otherOptions)), hub1State$ = _a[0], hub1Actions = _a[1];
1092
+ var _d = core.RxBuilder(__assign({ initialState: initialBaseState, reducers: __assign({ updateValues: function (state, action, mergeChanges) {
1093
+ return updateValues(state, action, providers, mergeChanges);
1094
+ }, removeControl: function (state, action, mergeChanges) {
1095
+ return removeControl(state, action, providers, mergeChanges);
1096
+ }, addControl: function (state, action, mergeChanges) {
1097
+ return addControl(state, action, providers, mergeChanges);
1098
+ }, pushControl: function (state, action, mergeChanges) {
1099
+ return pushControl(state, action, providers, mergeChanges);
1100
+ }, resetControl: function (state, action, mergeChanges) {
1101
+ return resetControl(state, action, providers, mergeChanges);
1102
+ }, markControlAsPristine: markControlAsPristine, markControlAsTouched: markControlAsTouched, markControlAsUntouched: markControlAsUntouched }, customReducers) }, otherOptions)), hub1State$ = _d[0], hub1Actions = _d[1];
1040
1103
  var state$ = core.RxBuilder({
1041
- sources: [buildHub2Source(hub1State$)],
1042
- initialState: null,
1104
+ sources: [buildHub2Source(hub1State$).pipe(operators.skip(initialFormState ? 1 : 0))],
1105
+ initialState: initialFormState || null,
1043
1106
  reducers: {
1044
1107
  formChange: formChange,
1045
1108
  asyncValidation: {
1046
1109
  reducer: asyncValidation,
1047
1110
  effects: function (control) { return ({
1048
1111
  key: control.key,
1049
- effects: getScopedEffectsForControl(control)
1112
+ effects: getScopedEffectsForControl(control, providers)
1050
1113
  }); }
1051
1114
  },
1052
1115
  asyncValidationResponseSuccess: asyncValidationResponseSuccess
@@ -1074,3 +1137,4 @@ exports.build = build;
1074
1137
  exports.control = control;
1075
1138
  exports.getArrayItems = getArrayItems;
1076
1139
  exports.group = group;
1140
+ exports.load = load;
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "author": "David Lai",
15
15
  "license": "ISC",
16
16
  "dependencies": {
17
- "@reactables/core": "^0.7.0-alpha.0",
17
+ "@reactables/core": "^0.7.0-alpha.1",
18
18
  "lodash.isequal": "^4.5.0"
19
19
  },
20
20
  "peerDependencies": {
@@ -23,5 +23,5 @@
23
23
  "devDependencies": {
24
24
  "lodash.clonedeep": "^4.5.0"
25
25
  },
26
- "version": "0.7.0-alpha.0"
26
+ "version": "0.7.0-alpha.1"
27
27
  }
@@ -1,10 +0,0 @@
1
- import { FormControlConfig, FormArrayConfig, FormGroupConfig, AbstractControlConfig } from '../Models/Configs';
2
- import { ValidatorFn, ValidatorAsyncFn } from '../Models/Validators';
3
- type FbControl<T> = [T, (ValidatorFn | ValidatorFn[])?, (ValidatorAsyncFn | ValidatorAsyncFn[])?];
4
- export declare const FormBuilder: {
5
- control: <T>(config: FormControlConfig<T> | FbControl<T>) => FormControlConfig<T>;
6
- array: (config: FormArrayConfig) => FormArrayConfig;
7
- group: (config: FormGroupConfig) => FormGroupConfig;
8
- build: (config: AbstractControlConfig, hub?: any) => any;
9
- };
10
- export {};