@wix/form-public 0.11.0 → 0.12.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.cjs CHANGED
@@ -18114,68 +18114,8 @@ var init_property_schema_mapper = __esm({
18114
18114
  }
18115
18115
  });
18116
18116
 
18117
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/form-schema-mapper-v2.js
18118
- function formSchemaMapperFactoryV2(transformFieldV2ToValidation2, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18119
- return function mapToFormSchema(formSchema) {
18120
- const formFields = formSchema.fieldsV2 || [];
18121
- const formDeletedFields = formSchema.deletedFieldsV2 || [];
18122
- const inputFields = formFields.filter(isInputFields);
18123
- const deletedInputFields = formDeletedFields.filter(isInputFields);
18124
- const properties = makeValidationProperties(inputFields, deletedInputFields);
18125
- return {
18126
- $id: asRequired(formSchema.id, formSchema, "id"),
18127
- type: PropertyTypes.OBJECT,
18128
- properties,
18129
- additionalProperties: false,
18130
- required: getRequiredFieldTargets(inputFields)
18131
- };
18132
- };
18133
- function getRequiredFieldTargets(inputFields) {
18134
- if (validationMode === ValidationMode.UNRESTRICTED_UPDATE) {
18135
- return [];
18136
- }
18137
- return inputFields.filter(isVisibleEditableField).map((field) => field.inputOptions).filter(isRequiredField).map((inputOptions) => asRequired(inputOptions.target, inputOptions, "target"));
18138
- }
18139
- function makeValidationProperties(formFields, formDeletedFields) {
18140
- return [...formFields, ...formDeletedFields].reduce((acc, field) => {
18141
- const inputField = asRequired(field.inputOptions, field, "inputOptions");
18142
- const property = convertFormFieldsToAjvProperties(asRequired(field.id, field, "id"), inputField);
18143
- if (property) {
18144
- acc[asRequired(inputField.target, field, "target")] = property;
18145
- }
18146
- return acc;
18147
- }, {});
18148
- }
18149
- function isVisibleEditableField(formField) {
18150
- return !formField.hidden;
18151
- }
18152
- function isRequiredField(inputField) {
18153
- return inputField.required ?? false;
18154
- }
18155
- function isInputFields(formField) {
18156
- return formField.fieldType === FieldType.INPUT;
18157
- }
18158
- function convertFormFieldsToAjvProperties(id, inputField) {
18159
- return {
18160
- $id: id,
18161
- ...isNestedFormField2(inputField) ? { $ref: inputField.target } : transformFieldV2ToValidation2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled)
18162
- };
18163
- }
18164
- function isNestedFormField2(field) {
18165
- return field.inputType === InputType.OBJECT && !!field.objectOptions?.nestedFormId;
18166
- }
18167
- }
18168
- var init_form_schema_mapper_v2 = __esm({
18169
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/form-schema-mapper-v2.js"() {
18170
- init_types_impl();
18171
- init_property_types();
18172
- init_utils();
18173
- init_types_impl2();
18174
- }
18175
- });
18176
-
18177
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/array-schema-property-mapper-v2.js
18178
- function arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18117
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/array-schema-property-mapper-platformised.js
18118
+ function arraySchemaPropertyMapperPlatformised(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18179
18119
  const arrayInput = asRequired(inputField.arrayOptions, inputField, "arrayOptions");
18180
18120
  const optionsValues = getValuesFromOptions(isDefined(arrayInput.checkboxGroupOptions?.customOption), arrayInput.checkboxGroupOptions?.options);
18181
18121
  const arrayValidation = asRequired(arrayInput.validation, arrayInput, "validation");
@@ -18189,16 +18129,14 @@ function arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPho
18189
18129
  };
18190
18130
  }
18191
18131
  function resolveArrayItemsValidation2(validationMode, arrayItems, optionsValues = [], libraryBasedPhoneFieldValidationEnabled = false) {
18192
- switch (arrayItems?.itemType ?? ItemType.UNKNOWN_ITEM_TYPE) {
18193
- case ItemType.STRING:
18132
+ switch (arrayItems?.itemType ?? ArrayItemsItemType.UNKNOWN_ITEM_TYPE) {
18133
+ case ArrayItemsItemType.STRING:
18194
18134
  return mapToStringSchemaProperty(makeEnumValidation(arrayItems?.stringOptions, optionsValues), validationMode, libraryBasedPhoneFieldValidationEnabled);
18195
- case ItemType.INTEGER:
18196
- return mapToIntegerSchemaProperty(makeEnumValidation(arrayItems?.integerOptions, optionsValues), validationMode);
18197
- case ItemType.NUMBER:
18135
+ case ArrayItemsItemType.NUMBER:
18198
18136
  return mapToNumberSchemaProperty(makeEnumValidation(arrayItems?.numberOptions, optionsValues), validationMode);
18199
- case ItemType.BOOLEAN:
18137
+ case ArrayItemsItemType.BOOLEAN:
18200
18138
  return mapToBooleanSchemaProperty(makeEnumValidation(arrayItems?.booleanOptions, optionsValues), validationMode);
18201
- case ItemType.OBJECT:
18139
+ case ArrayItemsItemType.OBJECT:
18202
18140
  return mapToObjectSchemaProperty(arrayItems?.objectOptions, validationMode);
18203
18141
  default:
18204
18142
  throw Error("Required to specify items type for array");
@@ -18221,8 +18159,8 @@ function makeEnumValidation(enumeratableValidation, optionsValues) {
18221
18159
  }
18222
18160
  }
18223
18161
  var ARRAY_VALIDATION_PROPERTIES2, ALLOWED_MAX_ITEMS2;
18224
- var init_array_schema_property_mapper_v2 = __esm({
18225
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/array-schema-property-mapper-v2.js"() {
18162
+ var init_array_schema_property_mapper_platformised = __esm({
18163
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/array-schema-property-mapper-platformised.js"() {
18226
18164
  init_types_impl();
18227
18165
  init_utils();
18228
18166
  init_property_types();
@@ -18230,13 +18168,12 @@ var init_array_schema_property_mapper_v2 = __esm({
18230
18168
  init_number_schema_property_mapper();
18231
18169
  init_boolean_schema_property_mapper();
18232
18170
  init_object_schema_property_mapper();
18233
- init_integer_schema_property_mapper();
18234
18171
  ARRAY_VALIDATION_PROPERTIES2 = ["minItems", "maxItems"];
18235
18172
  ALLOWED_MAX_ITEMS2 = 100;
18236
18173
  }
18237
18174
  });
18238
18175
 
18239
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/string-input-field-schema-mapper.js
18176
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/string-input-field-schema-mapper.js
18240
18177
  function mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18241
18178
  const stringInput = asRequired(inputField.stringOptions, inputField, "stringOptions");
18242
18179
  const stringValidation = asRequired(stringInput.validation, stringInput, "validation");
@@ -18244,38 +18181,38 @@ function mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPho
18244
18181
  return mapToStringSchemaProperty(makeEnumValidation(stringValidation, optionsValues), validationMode, libraryBasedPhoneFieldValidationEnabled);
18245
18182
  }
18246
18183
  var init_string_input_field_schema_mapper = __esm({
18247
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/string-input-field-schema-mapper.js"() {
18184
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/string-input-field-schema-mapper.js"() {
18248
18185
  init_utils();
18249
- init_array_schema_property_mapper_v2();
18186
+ init_array_schema_property_mapper_platformised();
18250
18187
  init_string_schema_property_mapper();
18251
18188
  }
18252
18189
  });
18253
18190
 
18254
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/transform-field-v2-to-validation.js
18255
- function transformFieldV2ToValidation(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18191
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/transform-platformised-field-to-validation.js
18192
+ function transformPlatformisedFieldToValidation(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18256
18193
  switch (inputField.inputType) {
18257
- case InputType.STRING:
18194
+ case InputFieldInputType.STRING:
18258
18195
  return mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18259
- case InputType.ARRAY:
18260
- return arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18261
- case InputType.NUMBER:
18196
+ case InputFieldInputType.ARRAY:
18197
+ return arraySchemaPropertyMapperPlatformised(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18198
+ case InputFieldInputType.NUMBER:
18262
18199
  const numberValidation = asRequired(inputField.numberOptions?.validation, inputField, "numberOptions.validation");
18263
18200
  return mapToNumberSchemaProperty(numberValidation, validationMode);
18264
- case InputType.BOOLEAN:
18201
+ case InputFieldInputType.BOOLEAN:
18265
18202
  const booleanValidation = asRequired(inputField.booleanOptions?.validation, inputField, "booleanOptions.validation");
18266
18203
  return mapToBooleanSchemaProperty(booleanValidation, validationMode);
18267
- case InputType.OBJECT:
18268
- const objectValidation = asRequired(inputField.objectOptions?.object, inputField, "objectOptions.object");
18204
+ case InputFieldInputType.OBJECT:
18205
+ const objectValidation = asRequired(inputField.objectOptions?.validation, inputField, "objectOptions.validation");
18269
18206
  return mapToObjectSchemaProperty(objectValidation, validationMode);
18270
- case InputType.WIX_FILE:
18207
+ case InputFieldInputType.WIX_FILE:
18271
18208
  return mapToPredefinedSchemaProperty(inputField.target, {
18272
18209
  format: ValidationFormat.WIX_FILE
18273
18210
  }, validationMode);
18274
- case InputType.SCHEDULING:
18211
+ case InputFieldInputType.SCHEDULING:
18275
18212
  return mapToPredefinedSchemaProperty(inputField.target, {
18276
18213
  format: ValidationFormat.SCHEDULING
18277
18214
  }, validationMode);
18278
- case InputType.PAYMENT:
18215
+ case InputFieldInputType.PAYMENT:
18279
18216
  return mapToPredefinedSchemaProperty(inputField.target, {
18280
18217
  paymentOptions: inputField.paymentOptions?.validation,
18281
18218
  format: ValidationFormat.PAYMENT
@@ -18284,11 +18221,11 @@ function transformFieldV2ToValidation(inputField, validationMode, libraryBasedPh
18284
18221
  return void 0;
18285
18222
  }
18286
18223
  }
18287
- var init_transform_field_v2_to_validation = __esm({
18288
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/transform-field-v2-to-validation.js"() {
18224
+ var init_transform_platformised_field_to_validation = __esm({
18225
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/transform-platformised-field-to-validation.js"() {
18289
18226
  init_types_impl();
18290
18227
  init_utils();
18291
- init_array_schema_property_mapper_v2();
18228
+ init_array_schema_property_mapper_platformised();
18292
18229
  init_number_schema_property_mapper();
18293
18230
  init_boolean_schema_property_mapper();
18294
18231
  init_object_schema_property_mapper();
@@ -18297,6 +18234,63 @@ var init_transform_field_v2_to_validation = __esm({
18297
18234
  }
18298
18235
  });
18299
18236
 
18237
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/form-schema-mapper-platformised.js
18238
+ function formSchemaMapperFactoryPlatformised(transformPlatformisedFieldToValidation2, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18239
+ return function mapToFormSchema(formSchema) {
18240
+ const formFields = formSchema.formFields || [];
18241
+ const formDeletedFields = formSchema.deletedFormFields || [];
18242
+ const inputFields = formFields.filter(isInputFields);
18243
+ const deletedInputFields = formDeletedFields.filter(isInputFields);
18244
+ const properties = makeValidationProperties(inputFields, deletedInputFields);
18245
+ return {
18246
+ $id: asRequired(formSchema.id, formSchema, "id"),
18247
+ type: PropertyTypes.OBJECT,
18248
+ properties,
18249
+ additionalProperties: false,
18250
+ required: getRequiredFieldTargets(inputFields)
18251
+ };
18252
+ };
18253
+ function getRequiredFieldTargets(inputFields) {
18254
+ if (validationMode === ValidationMode.UNRESTRICTED_UPDATE) {
18255
+ return [];
18256
+ }
18257
+ return inputFields.filter(isVisibleEditableField).map((field) => field.inputOptions).filter(isRequiredField).map((inputOptions) => asRequired(inputOptions.target, inputOptions, "target"));
18258
+ }
18259
+ function makeValidationProperties(formFields, formDeletedFields) {
18260
+ return [...formFields, ...formDeletedFields].reduce((acc, field) => {
18261
+ const inputField = asRequired(field.inputOptions, field, "inputOptions");
18262
+ const property = convertFormFieldsToAjvProperties(asRequired(field.id, field, "id"), inputField);
18263
+ if (property) {
18264
+ acc[asRequired(inputField.target, field, "target")] = property;
18265
+ }
18266
+ return acc;
18267
+ }, {});
18268
+ }
18269
+ function isVisibleEditableField(formField) {
18270
+ return !formField.hidden;
18271
+ }
18272
+ function isRequiredField(inputField) {
18273
+ return inputField.required ?? false;
18274
+ }
18275
+ function isInputFields(formField) {
18276
+ return formField.fieldType === FieldFieldType.INPUT;
18277
+ }
18278
+ function convertFormFieldsToAjvProperties(id, inputField) {
18279
+ return {
18280
+ $id: id,
18281
+ ...transformPlatformisedFieldToValidation2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled)
18282
+ };
18283
+ }
18284
+ }
18285
+ var init_form_schema_mapper_platformised = __esm({
18286
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/form-schema-mapper-platformised.js"() {
18287
+ init_types_impl();
18288
+ init_property_types();
18289
+ init_utils();
18290
+ init_types_impl2();
18291
+ }
18292
+ });
18293
+
18300
18294
  // ../form-validator/dist/esm/lib/submission-validation/form-validator.js
18301
18295
  var FormValidator;
18302
18296
  var init_form_validator = __esm({
@@ -18308,13 +18302,13 @@ var init_form_validator = __esm({
18308
18302
  init_property_schema_mapper();
18309
18303
  init_types_impl2();
18310
18304
  init_utils();
18311
- init_form_schema_mapper_v2();
18312
- init_transform_field_v2_to_validation();
18305
+ init_transform_platformised_field_to_validation();
18306
+ init_form_schema_mapper_platformised();
18313
18307
  FormValidator = class {
18314
- constructor(formSchemas, validationMode, fieldsV2BasedValidation = false, addressFormProvider = () => void 0, submissionValueProvider, libraryBasedPhoneFieldValidationEnabled = false, lenientPhoneValidation = false) {
18308
+ constructor(formSchemas, validationMode, platformisedFieldBasedValidation = false, addressFormProvider = () => void 0, submissionValueProvider, libraryBasedPhoneFieldValidationEnabled = false, lenientPhoneValidation = false) {
18315
18309
  this.formSchemas = formSchemas;
18316
18310
  this.validationMode = validationMode;
18317
- this.fieldsV2BasedValidation = fieldsV2BasedValidation;
18311
+ this.platformisedFieldBasedValidation = platformisedFieldBasedValidation;
18318
18312
  this.addressFormProvider = addressFormProvider;
18319
18313
  this.submissionValueProvider = submissionValueProvider;
18320
18314
  this.libraryBasedPhoneFieldValidationEnabled = libraryBasedPhoneFieldValidationEnabled;
@@ -18440,11 +18434,11 @@ var init_form_validator = __esm({
18440
18434
  isEmptyArray(value) {
18441
18435
  return Array.isArray(value) && !value.length;
18442
18436
  }
18443
- getFormSchemaMapper(fieldsV2BasedValidation) {
18444
- return fieldsV2BasedValidation ? formSchemaMapperFactoryV2(transformFieldV2ToValidation, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled) : formSchemaMapperFactory(propertySchemaMapper, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled);
18437
+ getFormSchemaMapper() {
18438
+ return this.platformisedFieldBasedValidation ? formSchemaMapperFactoryPlatformised(transformPlatformisedFieldToValidation, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled) : formSchemaMapperFactory(propertySchemaMapper, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled);
18445
18439
  }
18446
18440
  initAJvWithSchemas(currentlyValidatableForm, submission) {
18447
- const formSchemaMapper = this.getFormSchemaMapper(this.fieldsV2BasedValidation);
18441
+ const formSchemaMapper = this.getFormSchemaMapper();
18448
18442
  const createAjvSchemaValidator = createAjvSchemaValidatorFactory(formSchemaMapper, this.libraryBasedPhoneFieldValidationEnabled && this.validationMode !== ValidationMode.UNRESTRICTED_UPDATE, this.lenientPhoneValidation);
18449
18443
  const nestedForms = this.formSchemas.flatMap((schema) => (schema.nestedForms || []).flatMap(({ targets, form }) => (targets || []).map((target) => ({ ...form, id: target }))));
18450
18444
  const addressForms = this.getAddressForms(currentlyValidatableForm, submission);
@@ -18763,7 +18757,7 @@ var init_form_schema_validator = __esm({
18763
18757
  this.submissionValidator = submissionValidator;
18764
18758
  }
18765
18759
  validate(form) {
18766
- const submission = form.fieldsV2?.reduce((acc, { inputOptions }) => {
18760
+ const submission = form.formFields?.reduce((acc, { inputOptions }) => {
18767
18761
  const defaultValue = this.getDefaultValue(inputOptions);
18768
18762
  const target = inputOptions?.target;
18769
18763
  if (defaultValue && target) {
@@ -18778,11 +18772,11 @@ var init_form_schema_validator = __esm({
18778
18772
  }
18779
18773
  getDefaultValue(field) {
18780
18774
  switch (field?.inputType) {
18781
- case InputType.STRING:
18775
+ case InputFieldInputType.STRING:
18782
18776
  return this.getDefaultStringComponentValue(field.stringOptions) ?? void 0;
18783
- case InputType.NUMBER:
18777
+ case InputFieldInputType.NUMBER:
18784
18778
  return this.getDefaultNumberComponentValue(field.numberOptions) ?? void 0;
18785
- case InputType.PAYMENT:
18779
+ case InputFieldInputType.PAYMENT:
18786
18780
  return this.getDefaultPaymentComponentValue(field.paymentOptions) ?? void 0;
18787
18781
  default:
18788
18782
  return void 0;
@@ -18790,15 +18784,15 @@ var init_form_schema_validator = __esm({
18790
18784
  }
18791
18785
  getDefaultStringComponentValue(stringOptions) {
18792
18786
  switch (stringOptions?.componentType) {
18793
- case StringComponentType.DATE_TIME:
18787
+ case InputFieldStringComponentType.DATE_TIME:
18794
18788
  return stringOptions?.dateTimeOptions?.default;
18795
- case StringComponentType.DATE_INPUT:
18789
+ case InputFieldStringComponentType.DATE_INPUT:
18796
18790
  return stringOptions?.dateInputOptions?.default;
18797
- case StringComponentType.DATE_PICKER:
18791
+ case InputFieldStringComponentType.DATE_PICKER:
18798
18792
  return stringOptions?.datePickerOptions?.default;
18799
- case StringComponentType.TEXT_INPUT:
18793
+ case InputFieldStringComponentType.TEXT_INPUT:
18800
18794
  return stringOptions?.textInputOptions?.default;
18801
- case StringComponentType.TIME_INPUT:
18795
+ case InputFieldStringComponentType.TIME_INPUT:
18802
18796
  return stringOptions?.timeInputOptions?.default;
18803
18797
  default:
18804
18798
  return void 0;
@@ -18806,9 +18800,9 @@ var init_form_schema_validator = __esm({
18806
18800
  }
18807
18801
  getDefaultNumberComponentValue(numberOptions) {
18808
18802
  switch (numberOptions?.componentType) {
18809
- case NumberComponentType.NUMBER_INPUT:
18803
+ case InputFieldNumberComponentType.NUMBER_INPUT:
18810
18804
  return numberOptions?.numberInputOptions?.default;
18811
- case NumberComponentType.RATING_INPUT:
18805
+ case InputFieldNumberComponentType.RATING_INPUT:
18812
18806
  return numberOptions?.ratingInputOptions?.defaultValue;
18813
18807
  default:
18814
18808
  return void 0;
@@ -18816,7 +18810,7 @@ var init_form_schema_validator = __esm({
18816
18810
  }
18817
18811
  getDefaultPaymentComponentValue(paymentOptions) {
18818
18812
  switch (paymentOptions?.componentType) {
18819
- case PaymentComponentType.PAYMENT_INPUT:
18813
+ case InputFieldPaymentComponentType.PAYMENT_INPUT:
18820
18814
  return paymentOptions?.paymentInputOptions?.default;
18821
18815
  default:
18822
18816
  return void 0;
@@ -18824,7 +18818,7 @@ var init_form_schema_validator = __esm({
18824
18818
  }
18825
18819
  buildSubmissionValue(defaultValue, inputField) {
18826
18820
  switch (inputField.inputType) {
18827
- case InputType.PAYMENT:
18821
+ case InputFieldInputType.PAYMENT:
18828
18822
  return inputField.paymentOptions?.validation?.products?.map((product) => ({
18829
18823
  productId: product.id,
18830
18824
  price: defaultValue,
@@ -29461,9 +29455,6 @@ var FormRoot2 = ({
29461
29455
  )
29462
29456
  );
29463
29457
  };
29464
- function getRandomId() {
29465
- return generateUUID();
29466
- }
29467
29458
  var dummyBi = {
29468
29459
  log: () => Promise.resolve(),
29469
29460
  report: () => Promise.resolve(),
@@ -29471,7 +29462,7 @@ var dummyBi = {
29471
29462
  updateDefaults: () => dummyBi
29472
29463
  };
29473
29464
  var useFormBi = (form, bi, biFormFillSessionId) => {
29474
- const formEditSessionId = React30.useMemo(getRandomId, []);
29465
+ const formEditSessionId = React30.useMemo(generateUUID, []);
29475
29466
  return React30.useMemo(() => {
29476
29467
  if (!bi) {
29477
29468
  return dummyBi;