@wix/form-public 0.36.0 → 0.38.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,
@@ -24383,10 +24384,6 @@ function useExternalData() {
24383
24384
  }
24384
24385
  return context;
24385
24386
  }
24386
- var FieldActionsContext = /* @__PURE__ */ createContext({});
24387
- function useFieldActions() {
24388
- return useContext(FieldActionsContext);
24389
- }
24390
24387
  var FormFieldsContext = /* @__PURE__ */ createContext(void 0);
24391
24388
  function useFormFields() {
24392
24389
  const context = useContext(FormFieldsContext);
@@ -24584,6 +24581,10 @@ var NestedFormField = (_ref) => {
24584
24581
 
24585
24582
  // ../form-fields/dist/esm/ui/form/components/form/submit-button-field.js
24586
24583
  var import_extends4 = __toESM(require_extends());
24584
+ var FieldActionsContext = /* @__PURE__ */ createContext({});
24585
+ function useFieldActions() {
24586
+ return useContext(FieldActionsContext);
24587
+ }
24587
24588
 
24588
24589
  // ../form-fields/dist/esm/fields/submit-button/submit-button/utils.js
24589
24590
  var getCurrentStep = (form, fieldId) => {
@@ -24752,11 +24753,17 @@ var createFormFields = (_ref) => {
24752
24753
  onFieldChange,
24753
24754
  FieldLayout,
24754
24755
  formSchema,
24755
- validateFields: validateFields2
24756
+ validateFields: validateFields2,
24757
+ fields,
24758
+ fieldActions
24756
24759
  } = _ref;
24757
24760
  return form.fields.map((formField) => {
24758
24761
  const component = /* @__PURE__ */ React32__default.createElement(FormContext.Provider, {
24759
24762
  value: formSchema
24763
+ }, /* @__PURE__ */ React32__default.createElement(FormFieldsContext.Provider, {
24764
+ value: fields
24765
+ }, /* @__PURE__ */ React32__default.createElement(FieldActionsContext.Provider, {
24766
+ value: fieldActions
24760
24767
  }, /* @__PURE__ */ React32__default.createElement(FieldValidationContext.Provider, {
24761
24768
  value: {
24762
24769
  validateFields: validateFields2
@@ -24768,7 +24775,7 @@ var createFormFields = (_ref) => {
24768
24775
  errors,
24769
24776
  onFieldChange,
24770
24777
  FieldLayout
24771
- })));
24778
+ })))));
24772
24779
  return {
24773
24780
  id: formField.id,
24774
24781
  fieldType: formField.fieldType,
@@ -24949,7 +24956,9 @@ var FormRoot = (_ref) => {
24949
24956
  onFieldChange,
24950
24957
  errors,
24951
24958
  formSchema,
24952
- validateFields: validateFields2
24959
+ validateFields: validateFields2,
24960
+ fields,
24961
+ fieldActions
24953
24962
  } = _ref;
24954
24963
  const {
24955
24964
  isRTL
@@ -24961,7 +24970,9 @@ var FormRoot = (_ref) => {
24961
24970
  errors,
24962
24971
  FieldLayout: DefaultFieldLayout,
24963
24972
  formSchema,
24964
- validateFields: validateFields2
24973
+ validateFields: validateFields2,
24974
+ fields,
24975
+ fieldActions
24965
24976
  });
24966
24977
  return /* @__PURE__ */ React32__default.createElement(Grid, {
24967
24978
  isRTL,
@@ -28447,7 +28458,8 @@ var ADDITIONAL_FIELD_VALIDATION = {
28447
28458
  [FIELD_TYPES.IDENTITY_PASSWORD]: null,
28448
28459
  [FIELD_TYPES.SERVICES_DROPDOWN]: null,
28449
28460
  [FIELD_TYPES.SERVICES_MULTI_CHOICE]: null,
28450
- [FIELD_TYPES.EVENTS_RSVP]: null
28461
+ [FIELD_TYPES.EVENTS_RSVP]: null,
28462
+ [FIELD_TYPES.EVENTS_REPEATER]: null
28451
28463
  };
28452
28464
 
28453
28465
  // ../form-viewer/dist/esm/services/get-field-errors.js
@@ -28836,7 +28848,8 @@ var NORMALIZED_VALUE = {
28836
28848
  [FIELD_TYPES.IDENTITY_PASSWORD]: acceptStringValue,
28837
28849
  [FIELD_TYPES.SERVICES_DROPDOWN]: acceptStringValue,
28838
28850
  [FIELD_TYPES.SERVICES_MULTI_CHOICE]: removeInvalidOptions,
28839
- [FIELD_TYPES.EVENTS_RSVP]: acceptOnlyValidOptionByValue
28851
+ [FIELD_TYPES.EVENTS_RSVP]: acceptOnlyValidOptionByValue,
28852
+ [FIELD_TYPES.EVENTS_REPEATER]: normalizeRepeater
28840
28853
  };
28841
28854
  function keepValueUnchanged({ fieldValue }) {
28842
28855
  return fieldValue;
@@ -29010,6 +29023,27 @@ function acceptOnlyValidPayments({ field, fieldValue }) {
29010
29023
  }
29011
29024
  return fieldValue;
29012
29025
  }
29026
+ function normalizeRepeater({ field, fieldValue, config }) {
29027
+ const isEmptyValue = fieldValue === EMPTY_VALUE;
29028
+ const nestedFields = field.view?.fields;
29029
+ if (isEmptyValue) {
29030
+ return fieldValue;
29031
+ }
29032
+ if (!Array.isArray(fieldValue) || !nestedFields) {
29033
+ return EMPTY_VALUE;
29034
+ }
29035
+ const nestedForm = {
29036
+ fields: nestedFields
29037
+ };
29038
+ const normalizedValues = fieldValue.map((values) => {
29039
+ if (!isObject5(values)) {
29040
+ return {};
29041
+ }
29042
+ const normalized = normalizeValues(nestedForm, values, false, config);
29043
+ return Object.fromEntries(Object.entries(normalized).filter(([_23, value]) => value !== EMPTY_VALUE));
29044
+ });
29045
+ return normalizedValues;
29046
+ }
29013
29047
 
29014
29048
  // ../form-viewer/dist/esm/components/form/use-form-values.js
29015
29049
  var useFormValues = (form, values, onChange, config) => {
@@ -29467,7 +29501,8 @@ var FormRoot2 = ({
29467
29501
  config,
29468
29502
  breakpoint,
29469
29503
  onStatusChange,
29470
- validationMode
29504
+ validationMode,
29505
+ fields
29471
29506
  }) => {
29472
29507
  const formWithOverrides = useMemo(() => applyAllOverrides(unprocessedForm, unprocessedValues, overrides), [unprocessedForm, unprocessedValues, overrides]);
29473
29508
  const formId = formWithOverrides.id;
@@ -29588,18 +29623,14 @@ var FormRoot2 = ({
29588
29623
  return null;
29589
29624
  }
29590
29625
  return React32__default.createElement(
29591
- FieldActionsContext.Provider,
29592
- { value: fieldActions },
29626
+ FormStatusProvider,
29627
+ { onStatusChange },
29593
29628
  React32__default.createElement(
29594
- FormStatusProvider,
29595
- { onStatusChange },
29596
- React32__default.createElement(
29597
- "div",
29598
- { "data-hook": DATA_HOOKS.FORM_ROOT },
29599
- React32__default.createElement(Form, { formSchema: formWithOverrides, form: currentView, values: normalizedValues, onFieldChange, errors, dataHook: DATA_HOOKS.FORM_ROOT, validateFields: handleFieldValidation }),
29600
- React32__default.createElement(StepTitleA11y, { total: formWithOverrides.steps?.length, index: currentStep }),
29601
- React32__default.createElement(SubmitStatusMessage, null)
29602
- )
29629
+ "div",
29630
+ { "data-hook": DATA_HOOKS.FORM_ROOT },
29631
+ React32__default.createElement(Form, { formSchema: formWithOverrides, form: currentView, values: normalizedValues, onFieldChange, errors, dataHook: DATA_HOOKS.FORM_ROOT, validateFields: handleFieldValidation, fields, fieldActions }),
29632
+ React32__default.createElement(StepTitleA11y, { total: formWithOverrides.steps?.length, index: currentStep }),
29633
+ React32__default.createElement(SubmitStatusMessage, null)
29603
29634
  )
29604
29635
  );
29605
29636
  };
@@ -29640,7 +29671,7 @@ var useFormBi = (form, bi, biFormFillSessionId) => {
29640
29671
  };
29641
29672
 
29642
29673
  // ../form-viewer/dist/esm/components/root/form-viewer-provider.js
29643
- var FormViewerProvider = ({ i18n: i18n2, bi, biFormFillSessionId, form, isMobile, isEditor, isComposer, isRTL, compId, locale, regionalFormat, externalData, fields, forcedState, instance, children, httpClient, panorama, experiments, translationNamespace, currency, userData, WixRicosViewer, addressTemplates, atlasBaseUrl, fieldInitialData, enableAnimations }) => {
29674
+ var FormViewerProvider = ({ i18n: i18n2, bi, biFormFillSessionId, form, isMobile, isEditor, isComposer, isRTL, compId, locale, regionalFormat, externalData, forcedState, instance, children, httpClient, panorama, experiments, translationNamespace, currency, userData, WixRicosViewer, addressTemplates, atlasBaseUrl, fieldInitialData, enableAnimations }) => {
29644
29675
  const translations = useMemo(() => ({
29645
29676
  t: i18n2.getFixedT(locale, translationNamespace),
29646
29677
  i18n: i18n2
@@ -29675,58 +29706,54 @@ var FormViewerProvider = ({ i18n: i18n2, bi, biFormFillSessionId, form, isMobile
29675
29706
  ]);
29676
29707
  const forcedViewState = useMemo(() => forcedState ?? [], [forcedState]);
29677
29708
  return React32__default.createElement(
29678
- FormFieldsContext.Provider,
29679
- { value: fields },
29709
+ HttpClientContext.Provider,
29710
+ { value: { httpClient } },
29680
29711
  React32__default.createElement(
29681
- HttpClientContext.Provider,
29682
- { value: { httpClient } },
29712
+ PanoramaContext.Provider,
29713
+ { value: { panorama } },
29683
29714
  React32__default.createElement(
29684
- PanoramaContext.Provider,
29685
- { value: { panorama } },
29715
+ TranslationContext.Provider,
29716
+ { value: translations },
29686
29717
  React32__default.createElement(
29687
- TranslationContext.Provider,
29688
- { value: translations },
29718
+ ScrollProvider,
29719
+ null,
29689
29720
  React32__default.createElement(
29690
- ScrollProvider,
29721
+ FocusedFieldProvider,
29691
29722
  null,
29692
29723
  React32__default.createElement(
29693
- FocusedFieldProvider,
29694
- null,
29724
+ FieldInitialDataContext.Provider,
29725
+ { value: fieldInitialData },
29695
29726
  React32__default.createElement(
29696
- FieldInitialDataContext.Provider,
29697
- { value: fieldInitialData },
29727
+ BiContext.Provider,
29728
+ { value: formBi },
29698
29729
  React32__default.createElement(
29699
- BiContext.Provider,
29700
- { value: formBi },
29730
+ ExternalDataProvider,
29731
+ { externalData },
29701
29732
  React32__default.createElement(
29702
- ExternalDataProvider,
29703
- { externalData },
29733
+ ConfigContext.Provider,
29734
+ { value: config },
29704
29735
  React32__default.createElement(
29705
- ConfigContext.Provider,
29706
- { value: config },
29736
+ ForcedStateContext.Provider,
29737
+ { value: forcedViewState },
29707
29738
  React32__default.createElement(
29708
- ForcedStateContext.Provider,
29709
- { value: forcedViewState },
29739
+ FormContext.Provider,
29740
+ { value: form },
29710
29741
  React32__default.createElement(
29711
- FormContext.Provider,
29712
- { value: form },
29742
+ AddressFormsContext.Provider,
29743
+ { value: {
29744
+ getCountryAddressForm: (country) => getAddressForm(addressTemplates, country),
29745
+ addressTemplates
29746
+ } },
29713
29747
  React32__default.createElement(
29714
- AddressFormsContext.Provider,
29715
- { value: {
29716
- getCountryAddressForm: (country) => getAddressForm(addressTemplates, country),
29717
- addressTemplates
29718
- } },
29748
+ ExperimentsContext.Provider,
29749
+ { value: experiments },
29719
29750
  React32__default.createElement(
29720
- ExperimentsContext.Provider,
29721
- { value: experiments },
29751
+ EventsProvider,
29752
+ null,
29722
29753
  React32__default.createElement(
29723
- EventsProvider,
29724
- null,
29725
- React32__default.createElement(
29726
- WixRicosViewerContext.Provider,
29727
- { value: WixRicosViewer },
29728
- React32__default.createElement(SubmitStatusProvider, null, children)
29729
- )
29754
+ WixRicosViewerContext.Provider,
29755
+ { value: WixRicosViewer },
29756
+ React32__default.createElement(SubmitStatusProvider, null, children)
29730
29757
  )
29731
29758
  )
29732
29759
  )
@@ -29798,7 +29825,7 @@ var FormViewerStatic = forwardRef(({ form, i18n: i18n2, isMobile, isRTL, config
29798
29825
  React32__default.createElement(
29799
29826
  "fieldset",
29800
29827
  { className: form_viewer_static_module_default.fieldsetReset, disabled: readOnly || isDisabled },
29801
- React32__default.createElement(FormRoot2, { form: formWithValidSteps, forwardedRef, config, breakpoint, ...rest })
29828
+ React32__default.createElement(FormRoot2, { form: formWithValidSteps, fields, forwardedRef, config, breakpoint, ...rest })
29802
29829
  )
29803
29830
  )
29804
29831
  )
@@ -30093,6 +30120,7 @@ var FIELD_TYPE_MAP = {
30093
30120
  // EVENTS_FIELD_TYPES
30094
30121
  EVENTS_RSVP: "RADIO_GROUP",
30095
30122
  EVENTS_HEADER: "TEXT",
30123
+ EVENTS_REPEATER: "TEXT",
30096
30124
  // COMMON_FIELD_TYPES + READONLY
30097
30125
  TEXT_INPUT: "TEXT_INPUT",
30098
30126
  NUMBER_INPUT: "NUMBER_INPUT",