@wix/form-public 0.480.0 → 0.481.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.
package/dist/index.js CHANGED
@@ -46393,10 +46393,10 @@ var require_src2 = __commonJS({
46393
46393
  return typeof value === "object";
46394
46394
  }
46395
46395
  exports.isObject = isObject7;
46396
- function isPlainObject(value) {
46396
+ function isPlainObject2(value) {
46397
46397
  return isObject7(value) && Object.prototype.toString.call(value) === "[object Object]";
46398
46398
  }
46399
- exports.isPlainObject = isPlainObject;
46399
+ exports.isPlainObject = isPlainObject2;
46400
46400
  function isRegExp2(value) {
46401
46401
  return Object.prototype.toString.call(value) === "[object RegExp]";
46402
46402
  }
@@ -49491,13 +49491,13 @@ var DayOfWeek3;
49491
49491
  DayOfWeek5["SUNDAY"] = "SUNDAY";
49492
49492
  })(DayOfWeek3 || (DayOfWeek3 = {}));
49493
49493
  var ValidationFormat7;
49494
- (function(ValidationFormat9) {
49495
- ValidationFormat9["UNDEFINED"] = "UNDEFINED";
49496
- ValidationFormat9["WIX_FILE"] = "WIX_FILE";
49497
- ValidationFormat9["PAYMENT"] = "PAYMENT";
49498
- ValidationFormat9["MULTILINE_ADDRESS"] = "MULTILINE_ADDRESS";
49499
- ValidationFormat9["SCHEDULING"] = "SCHEDULING";
49500
- ValidationFormat9["OBJECT_ARRAY"] = "OBJECT_ARRAY";
49494
+ (function(ValidationFormat10) {
49495
+ ValidationFormat10["UNDEFINED"] = "UNDEFINED";
49496
+ ValidationFormat10["WIX_FILE"] = "WIX_FILE";
49497
+ ValidationFormat10["PAYMENT"] = "PAYMENT";
49498
+ ValidationFormat10["MULTILINE_ADDRESS"] = "MULTILINE_ADDRESS";
49499
+ ValidationFormat10["SCHEDULING"] = "SCHEDULING";
49500
+ ValidationFormat10["OBJECT_ARRAY"] = "OBJECT_ARRAY";
49501
49501
  })(ValidationFormat7 || (ValidationFormat7 = {}));
49502
49502
  var Format6;
49503
49503
  (function(Format9) {
@@ -54676,6 +54676,63 @@ var mergeErrors = ({ errors, additionalErrors }) => {
54676
54676
  ...errorsToAdd
54677
54677
  ];
54678
54678
  };
54679
+ var ADDRESS_DISCRIMINATOR = "country";
54680
+ function omitHiddenValues(form, values) {
54681
+ const nestedFormsByTarget = getNestedFormsByTarget(form);
54682
+ return (form.fields ?? []).reduce((result2, field) => {
54683
+ const target = field.target;
54684
+ if (!target || !(target in result2)) {
54685
+ return result2;
54686
+ }
54687
+ if (field.hidden) {
54688
+ delete result2[target];
54689
+ return result2;
54690
+ }
54691
+ const nestedForm = field.nestedFormId ? nestedFormsByTarget?.[target] : getObjectArrayForm(field);
54692
+ if (nestedForm) {
54693
+ result2[target] = omitHiddenNestedValues(nestedForm, result2[target]);
54694
+ return result2;
54695
+ }
54696
+ if (isMultilineAddress(field)) {
54697
+ result2[target] = omitHiddenAddressValues(field, result2[target]);
54698
+ }
54699
+ return result2;
54700
+ }, {
54701
+ ...values
54702
+ });
54703
+ }
54704
+ function omitHiddenNestedValues(form, value) {
54705
+ if (Array.isArray(value)) {
54706
+ return value.map((item) => isPlainObject(item) ? omitHiddenValues(form, item) : item);
54707
+ }
54708
+ return isPlainObject(value) ? omitHiddenValues(form, value) : value;
54709
+ }
54710
+ function omitHiddenAddressValues(field, value) {
54711
+ const fieldSettings = field.view?.fieldSettings;
54712
+ if (!fieldSettings || !isPlainObject(value)) {
54713
+ return value;
54714
+ }
54715
+ const result2 = {
54716
+ ...value
54717
+ };
54718
+ Object.entries(fieldSettings).forEach(([subTarget, settings]) => {
54719
+ if (settings?.show === false && subTarget !== ADDRESS_DISCRIMINATOR) {
54720
+ delete result2[subTarget];
54721
+ }
54722
+ });
54723
+ return result2;
54724
+ }
54725
+ function getObjectArrayForm(field) {
54726
+ return field.validation?.predefined?.format === ValidationFormat.OBJECT_ARRAY ? {
54727
+ fields: field.view?.fields ?? []
54728
+ } : void 0;
54729
+ }
54730
+ function isMultilineAddress(field) {
54731
+ return field.validation?.predefined?.format === ValidationFormat.MULTILINE_ADDRESS;
54732
+ }
54733
+ function isPlainObject(value) {
54734
+ return typeof value === "object" && value !== null && !Array.isArray(value);
54735
+ }
54679
54736
 
54680
54737
  // ../form-viewer/dist/esm/services/form-overrides.js
54681
54738
  function applyFormOverrides2(form, overrides, recursive = true) {
@@ -55362,12 +55419,13 @@ var useSubmit = ({ validateAndScrollToError, submitAction, onSubmit, onSubmitSuc
55362
55419
  var useValidation = ({ form, errorsRef, setErrors, validationMode }) => {
55363
55420
  const { addressTemplates } = useAddressForms();
55364
55421
  const externalData = useExternalData();
55365
- const validateFields2 = useCallback(async (newValues) => {
55366
- const result2 = await validate(form, newValues, addressTemplates, validationMode);
55422
+ const validateFields2 = useCallback(async (newValues, { skipHidden } = {}) => {
55423
+ const values = skipHidden ? omitHiddenValues(form, newValues) : newValues;
55424
+ const result2 = await validate(form, values, addressTemplates, validationMode);
55367
55425
  const _errors = result2?.errors || [];
55368
55426
  const additionalErrors = runAdditionalValidation({
55369
55427
  form,
55370
- values: newValues,
55428
+ values,
55371
55429
  externalData
55372
55430
  });
55373
55431
  const allErrors = mergeErrors({
@@ -55532,8 +55590,8 @@ var useForm2 = ({ form: paramForm, values: paramValues, stepId, onStepIdChange,
55532
55590
  });
55533
55591
  useImperativeHandle(forwardedRef, () => ({
55534
55592
  submit: submitForm,
55535
- validate: async () => {
55536
- const validationErrors = await validateFields2(normalizedValues);
55593
+ validate: async (options) => {
55594
+ const validationErrors = await validateFields2(normalizedValues, options);
55537
55595
  if (validationErrors && validationErrors.length > 0) {
55538
55596
  if (enableScrollToFirstError) {
55539
55597
  scrollToFirstError(validationErrors);