@bombillazo/rhf-plus 7.62.0-plus.7 → 7.63.0-plus.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAaV,WAAW,EACX,YAAY,EAgBZ,YAAY,EAIZ,aAAa,EAUd,MAAM,UAAU,CAAC;AAwDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EACjC,SAAS,SAAS,YAAY,GAAG,GAAG,EAEpC,KAAK,GAAE,YAAY,CACjB,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,SAAS,CACL,GACL,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,CAAC;CACH,CAovDA"}
1
+ {"version":3,"file":"createFormControl.d.ts","sourceRoot":"","sources":["../../src/logic/createFormControl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAaV,WAAW,EACX,YAAY,EAiBZ,YAAY,EAIZ,aAAa,EAUd,MAAM,UAAU,CAAC;AAyDlB,wBAAgB,iBAAiB,CAC/B,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,GAAG,EACd,kBAAkB,GAAG,YAAY,EACjC,SAAS,SAAS,YAAY,GAAG,GAAG,EAEpC,KAAK,GAAE,YAAY,CACjB,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,SAAS,CACL,GACL,IAAI,CACL,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,GAAG;IACF,WAAW,EAAE,IAAI,CACf,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EACpE,WAAW,CACZ,CAAC;CACH,CA+vDA"}
@@ -1,3 +1,4 @@
1
- declare const _default: <T>(defaultValues: T, formValues: T) => Record<Extract<keyof T, string>, boolean | Record<string, any>>;
2
- export default _default;
1
+ declare function markFieldsDirty<T>(data: T, fields?: Record<string, any>): Record<string, any>;
2
+ export default function getDirtyFields<T>(data: T, formValues: T, dirtyFieldsFromValues?: Record<Extract<keyof T, string>, ReturnType<typeof markFieldsDirty> | boolean>): Record<Extract<keyof T, string>, boolean | Record<string, any>>;
3
+ export {};
3
4
  //# sourceMappingURL=getDirtyFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDirtyFields.d.ts","sourceRoot":"","sources":["../../src/logic/getDirtyFields.ts"],"names":[],"mappings":"yBAkEgB,CAAC,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC;AAAlD,wBAKI"}
1
+ {"version":3,"file":"getDirtyFields.d.ts","sourceRoot":"","sources":["../../src/logic/getDirtyFields.ts"],"names":[],"mappings":"AAWA,iBAAS,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,uBAWpE;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,EACb,qBAAqB,CAAC,EAAE,MAAM,CAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACxB,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAC7C,mEA0BF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getValidateError.d.ts","sourceRoot":"","sources":["../../src/logic/getValidateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAW,GAAG,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIzE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,IAAI,SAAa,GAChB,UAAU,GAAG,IAAI,CAYnB"}
1
+ {"version":3,"file":"getValidateError.d.ts","sourceRoot":"","sources":["../../src/logic/getValidateError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIhE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,IAAI,SAAa,GAChB,UAAU,GAAG,IAAI,CAYnB"}
@@ -178,6 +178,26 @@ function deepMerge(target, source) {
178
178
  return target;
179
179
  }
180
180
 
181
+ function extractFormValues(fieldsState, formValues) {
182
+ const values = {};
183
+ for (const key in fieldsState) {
184
+ if (fieldsState.hasOwnProperty(key)) {
185
+ const fieldState = fieldsState[key];
186
+ const fieldValue = formValues[key];
187
+ if (fieldState && isObject(fieldState) && fieldValue) {
188
+ const nestedFieldsState = extractFormValues(fieldState, fieldValue);
189
+ if (isObject(nestedFieldsState)) {
190
+ values[key] = nestedFieldsState;
191
+ }
192
+ }
193
+ else if (fieldsState[key]) {
194
+ values[key] = fieldValue;
195
+ }
196
+ }
197
+ }
198
+ return values;
199
+ }
200
+
181
201
  var isKey = (value) => /^\w*$/.test(value);
182
202
 
183
203
  var isUndefined = (val) => val === undefined;
@@ -321,46 +341,40 @@ var objectHasFunction = (data) => {
321
341
  return false;
322
342
  };
323
343
 
344
+ function isTraversable(value) {
345
+ return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));
346
+ }
324
347
  function markFieldsDirty(data, fields = {}) {
325
- const isParentNodeArray = Array.isArray(data);
326
- if (isObject(data) || isParentNodeArray) {
327
- for (const key in data) {
328
- if (Array.isArray(data[key]) ||
329
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
330
- fields[key] = Array.isArray(data[key]) ? [] : {};
331
- markFieldsDirty(data[key], fields[key]);
332
- }
333
- else if (!isNullOrUndefined(data[key])) {
334
- fields[key] = true;
335
- }
348
+ for (const key in data) {
349
+ if (isTraversable(data[key])) {
350
+ fields[key] = Array.isArray(data[key]) ? [] : {};
351
+ markFieldsDirty(data[key], fields[key]);
352
+ }
353
+ else if (!isNullOrUndefined(data[key])) {
354
+ fields[key] = true;
336
355
  }
337
356
  }
338
357
  return fields;
339
358
  }
340
- function getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {
341
- const isParentNodeArray = Array.isArray(data);
342
- if (isObject(data) || isParentNodeArray) {
343
- for (const key in data) {
344
- if (Array.isArray(data[key]) ||
345
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
346
- if (isUndefined(formValues) ||
347
- isPrimitive(dirtyFieldsFromValues[key])) {
348
- dirtyFieldsFromValues[key] = Array.isArray(data[key])
349
- ? markFieldsDirty(data[key], [])
350
- : { ...markFieldsDirty(data[key]) };
351
- }
352
- else {
353
- getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
354
- }
359
+ function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
360
+ if (!dirtyFieldsFromValues) {
361
+ dirtyFieldsFromValues = markFieldsDirty(formValues);
362
+ }
363
+ for (const key in data) {
364
+ if (isTraversable(data[key])) {
365
+ if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {
366
+ dirtyFieldsFromValues[key] = markFieldsDirty(data[key], Array.isArray(data[key]) ? [] : {});
355
367
  }
356
368
  else {
357
- dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);
369
+ getDirtyFields(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
358
370
  }
359
371
  }
372
+ else {
373
+ dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);
374
+ }
360
375
  }
361
376
  return dirtyFieldsFromValues;
362
377
  }
363
- var getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));
364
378
 
365
379
  var getEventValue = (event) => isObject(event) && event.target
366
380
  ? isCheckBoxInput(event.target)
@@ -1146,7 +1160,7 @@ function createFormControl(props = {}) {
1146
1160
  const isFieldArrayRoot = _names.array.has(_f.name);
1147
1161
  const isPromiseFunction = field._f && hasPromiseValidation(field._f);
1148
1162
  if (isPromiseFunction && _proxyFormState.validatingFields) {
1149
- _updateIsValidating([name], true);
1163
+ _updateIsValidating([_f.name], true);
1150
1164
  }
1151
1165
  // Combine disabled and readonly field names for validation skipping
1152
1166
  const skipValidationFields = new Set([
@@ -1155,7 +1169,7 @@ function createFormControl(props = {}) {
1155
1169
  ]);
1156
1170
  const fieldError = await validateField(field, skipValidationFields, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);
1157
1171
  if (isPromiseFunction && _proxyFormState.validatingFields) {
1158
- _updateIsValidating([name]);
1172
+ _updateIsValidating([_f.name]);
1159
1173
  }
1160
1174
  if (fieldError[_f.name]) {
1161
1175
  context.valid = false;
@@ -1468,6 +1482,7 @@ function createFormControl(props = {}) {
1468
1482
  }
1469
1483
  if (isFieldValueUpdated) {
1470
1484
  field._f.deps &&
1485
+ (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&
1471
1486
  trigger(field._f.deps);
1472
1487
  shouldRenderByError(name, isValid, error, fieldState);
1473
1488
  }
@@ -1515,10 +1530,13 @@ function createFormControl(props = {}) {
1515
1530
  iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);
1516
1531
  return validationResult;
1517
1532
  };
1518
- const getValues = (fieldNames) => {
1519
- const values = {
1533
+ const getValues = (fieldNames, config) => {
1534
+ let values = {
1520
1535
  ...(_state.mount ? _formValues : _defaultValues),
1521
1536
  };
1537
+ if (config) {
1538
+ values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);
1539
+ }
1522
1540
  return isUndefined(fieldNames)
1523
1541
  ? values
1524
1542
  : isString(fieldNames)