@wix/form-public 0.35.0 → 0.37.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
@@ -20437,7 +20437,8 @@ var IDENTITY_FIELD_TYPES = {
20437
20437
  IDENTITY_PASSWORD: "IDENTITY_PASSWORD"
20438
20438
  };
20439
20439
  var EVENTS_FIELD_TYPES = {
20440
- EVENTS_RSVP: "EVENTS_RSVP"
20440
+ EVENTS_RSVP: "EVENTS_RSVP",
20441
+ EVENTS_REPEATER: "EVENTS_REPEATER"
20441
20442
  };
20442
20443
  var INPUT_FIELD_TYPES = {
20443
20444
  ...CONTACTS_FIELD_TYPES,
@@ -20483,8 +20484,6 @@ var Breakpoint = /* @__PURE__ */ (function(Breakpoint2) {
20483
20484
  return Breakpoint2;
20484
20485
  })({});
20485
20486
  var DEFAULT_BREAKPOINT = Breakpoint.LARGE;
20486
- var FieldValidationContext = /* @__PURE__ */ createContext(null);
20487
- var useFieldValidation = () => useContext(FieldValidationContext) || {};
20488
20487
  var FORM_STATUS = {
20489
20488
  BUSY: "BUSY",
20490
20489
  READY: "READY"
@@ -24427,6 +24426,10 @@ function formFieldFocus(params) {
24427
24426
  function formErrorAppearedDissapeared(params) {
24428
24427
  return { evid: 1006, src: 156, endpoint: "forms-platform-uou", params };
24429
24428
  }
24429
+ var FieldValidationContext = /* @__PURE__ */ createContext(null);
24430
+ var useFieldValidation = () => useContext(FieldValidationContext) || {};
24431
+
24432
+ // ../form-fields/dist/esm/ui/form/components/form/input-field.js
24430
24433
  var InputField = (_ref) => {
24431
24434
  let {
24432
24435
  field,
@@ -24749,11 +24752,16 @@ var createFormFields = (_ref) => {
24749
24752
  values,
24750
24753
  onFieldChange,
24751
24754
  FieldLayout,
24752
- formSchema
24755
+ formSchema,
24756
+ validateFields: validateFields2
24753
24757
  } = _ref;
24754
24758
  return form.fields.map((formField) => {
24755
24759
  const component = /* @__PURE__ */ React32__default.createElement(FormContext.Provider, {
24756
24760
  value: formSchema
24761
+ }, /* @__PURE__ */ React32__default.createElement(FieldValidationContext.Provider, {
24762
+ value: {
24763
+ validateFields: validateFields2
24764
+ }
24757
24765
  }, /* @__PURE__ */ React32__default.createElement(FormField, {
24758
24766
  key: formField.id,
24759
24767
  field: formField,
@@ -24761,7 +24769,7 @@ var createFormFields = (_ref) => {
24761
24769
  errors,
24762
24770
  onFieldChange,
24763
24771
  FieldLayout
24764
- }));
24772
+ })));
24765
24773
  return {
24766
24774
  id: formField.id,
24767
24775
  fieldType: formField.fieldType,
@@ -24941,7 +24949,8 @@ var FormRoot = (_ref) => {
24941
24949
  values,
24942
24950
  onFieldChange,
24943
24951
  errors,
24944
- formSchema
24952
+ formSchema,
24953
+ validateFields: validateFields2
24945
24954
  } = _ref;
24946
24955
  const {
24947
24956
  isRTL
@@ -24952,7 +24961,8 @@ var FormRoot = (_ref) => {
24952
24961
  onFieldChange,
24953
24962
  errors,
24954
24963
  FieldLayout: DefaultFieldLayout,
24955
- formSchema
24964
+ formSchema,
24965
+ validateFields: validateFields2
24956
24966
  });
24957
24967
  return /* @__PURE__ */ React32__default.createElement(Grid, {
24958
24968
  isRTL,
@@ -28438,7 +28448,8 @@ var ADDITIONAL_FIELD_VALIDATION = {
28438
28448
  [FIELD_TYPES.IDENTITY_PASSWORD]: null,
28439
28449
  [FIELD_TYPES.SERVICES_DROPDOWN]: null,
28440
28450
  [FIELD_TYPES.SERVICES_MULTI_CHOICE]: null,
28441
- [FIELD_TYPES.EVENTS_RSVP]: null
28451
+ [FIELD_TYPES.EVENTS_RSVP]: null,
28452
+ [FIELD_TYPES.EVENTS_REPEATER]: null
28442
28453
  };
28443
28454
 
28444
28455
  // ../form-viewer/dist/esm/services/get-field-errors.js
@@ -28827,7 +28838,8 @@ var NORMALIZED_VALUE = {
28827
28838
  [FIELD_TYPES.IDENTITY_PASSWORD]: acceptStringValue,
28828
28839
  [FIELD_TYPES.SERVICES_DROPDOWN]: acceptStringValue,
28829
28840
  [FIELD_TYPES.SERVICES_MULTI_CHOICE]: removeInvalidOptions,
28830
- [FIELD_TYPES.EVENTS_RSVP]: acceptOnlyValidOptionByValue
28841
+ [FIELD_TYPES.EVENTS_RSVP]: acceptOnlyValidOptionByValue,
28842
+ [FIELD_TYPES.EVENTS_REPEATER]: normalizeRepeater
28831
28843
  };
28832
28844
  function keepValueUnchanged({ fieldValue }) {
28833
28845
  return fieldValue;
@@ -29001,6 +29013,27 @@ function acceptOnlyValidPayments({ field, fieldValue }) {
29001
29013
  }
29002
29014
  return fieldValue;
29003
29015
  }
29016
+ function normalizeRepeater({ field, fieldValue, config }) {
29017
+ const isEmptyValue = fieldValue === EMPTY_VALUE;
29018
+ const nestedFields = field.view?.fields;
29019
+ if (isEmptyValue) {
29020
+ return fieldValue;
29021
+ }
29022
+ if (!Array.isArray(fieldValue) || !nestedFields) {
29023
+ return EMPTY_VALUE;
29024
+ }
29025
+ const nestedForm = {
29026
+ fields: nestedFields
29027
+ };
29028
+ const normalizedValues = fieldValue.map((values) => {
29029
+ if (!isObject5(values)) {
29030
+ return {};
29031
+ }
29032
+ const normalized = normalizeValues(nestedForm, values, false, config);
29033
+ return Object.fromEntries(Object.entries(normalized).filter(([_23, value]) => value !== EMPTY_VALUE));
29034
+ });
29035
+ return normalizedValues;
29036
+ }
29004
29037
 
29005
29038
  // ../form-viewer/dist/esm/components/form/use-form-values.js
29006
29039
  var useFormValues = (form, values, onChange, config) => {
@@ -29579,23 +29612,17 @@ var FormRoot2 = ({
29579
29612
  return null;
29580
29613
  }
29581
29614
  return React32__default.createElement(
29582
- FieldValidationContext.Provider,
29583
- { value: {
29584
- validateFields: handleFieldValidation
29585
- } },
29615
+ FieldActionsContext.Provider,
29616
+ { value: fieldActions },
29586
29617
  React32__default.createElement(
29587
- FieldActionsContext.Provider,
29588
- { value: fieldActions },
29618
+ FormStatusProvider,
29619
+ { onStatusChange },
29589
29620
  React32__default.createElement(
29590
- FormStatusProvider,
29591
- { onStatusChange },
29592
- React32__default.createElement(
29593
- "div",
29594
- { "data-hook": DATA_HOOKS.FORM_ROOT },
29595
- React32__default.createElement(Form, { formSchema: formWithOverrides, form: currentView, values: normalizedValues, onFieldChange, errors, dataHook: DATA_HOOKS.FORM_ROOT }),
29596
- React32__default.createElement(StepTitleA11y, { total: formWithOverrides.steps?.length, index: currentStep }),
29597
- React32__default.createElement(SubmitStatusMessage, null)
29598
- )
29621
+ "div",
29622
+ { "data-hook": DATA_HOOKS.FORM_ROOT },
29623
+ React32__default.createElement(Form, { formSchema: formWithOverrides, form: currentView, values: normalizedValues, onFieldChange, errors, dataHook: DATA_HOOKS.FORM_ROOT, validateFields: handleFieldValidation }),
29624
+ React32__default.createElement(StepTitleA11y, { total: formWithOverrides.steps?.length, index: currentStep }),
29625
+ React32__default.createElement(SubmitStatusMessage, null)
29599
29626
  )
29600
29627
  )
29601
29628
  );
@@ -30090,6 +30117,7 @@ var FIELD_TYPE_MAP = {
30090
30117
  // EVENTS_FIELD_TYPES
30091
30118
  EVENTS_RSVP: "RADIO_GROUP",
30092
30119
  EVENTS_HEADER: "TEXT",
30120
+ EVENTS_REPEATER: "TEXT",
30093
30121
  // COMMON_FIELD_TYPES + READONLY
30094
30122
  TEXT_INPUT: "TEXT_INPUT",
30095
30123
  NUMBER_INPUT: "NUMBER_INPUT",