@wix/form-public 0.10.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.js CHANGED
@@ -18090,68 +18090,8 @@ var init_property_schema_mapper = __esm({
18090
18090
  }
18091
18091
  });
18092
18092
 
18093
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/form-schema-mapper-v2.js
18094
- function formSchemaMapperFactoryV2(transformFieldV2ToValidation2, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18095
- return function mapToFormSchema(formSchema) {
18096
- const formFields = formSchema.fieldsV2 || [];
18097
- const formDeletedFields = formSchema.deletedFieldsV2 || [];
18098
- const inputFields = formFields.filter(isInputFields);
18099
- const deletedInputFields = formDeletedFields.filter(isInputFields);
18100
- const properties = makeValidationProperties(inputFields, deletedInputFields);
18101
- return {
18102
- $id: asRequired(formSchema.id, formSchema, "id"),
18103
- type: PropertyTypes.OBJECT,
18104
- properties,
18105
- additionalProperties: false,
18106
- required: getRequiredFieldTargets(inputFields)
18107
- };
18108
- };
18109
- function getRequiredFieldTargets(inputFields) {
18110
- if (validationMode === ValidationMode.UNRESTRICTED_UPDATE) {
18111
- return [];
18112
- }
18113
- return inputFields.filter(isVisibleEditableField).map((field) => field.inputOptions).filter(isRequiredField).map((inputOptions) => asRequired(inputOptions.target, inputOptions, "target"));
18114
- }
18115
- function makeValidationProperties(formFields, formDeletedFields) {
18116
- return [...formFields, ...formDeletedFields].reduce((acc, field) => {
18117
- const inputField = asRequired(field.inputOptions, field, "inputOptions");
18118
- const property = convertFormFieldsToAjvProperties(asRequired(field.id, field, "id"), inputField);
18119
- if (property) {
18120
- acc[asRequired(inputField.target, field, "target")] = property;
18121
- }
18122
- return acc;
18123
- }, {});
18124
- }
18125
- function isVisibleEditableField(formField) {
18126
- return !formField.hidden;
18127
- }
18128
- function isRequiredField(inputField) {
18129
- return inputField.required ?? false;
18130
- }
18131
- function isInputFields(formField) {
18132
- return formField.fieldType === FieldType.INPUT;
18133
- }
18134
- function convertFormFieldsToAjvProperties(id, inputField) {
18135
- return {
18136
- $id: id,
18137
- ...isNestedFormField2(inputField) ? { $ref: inputField.target } : transformFieldV2ToValidation2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled)
18138
- };
18139
- }
18140
- function isNestedFormField2(field) {
18141
- return field.inputType === InputType.OBJECT && !!field.objectOptions?.nestedFormId;
18142
- }
18143
- }
18144
- var init_form_schema_mapper_v2 = __esm({
18145
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/form-schema-mapper-v2.js"() {
18146
- init_types_impl();
18147
- init_property_types();
18148
- init_utils();
18149
- init_types_impl2();
18150
- }
18151
- });
18152
-
18153
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/array-schema-property-mapper-v2.js
18154
- function arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18093
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/array-schema-property-mapper-platformised.js
18094
+ function arraySchemaPropertyMapperPlatformised(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18155
18095
  const arrayInput = asRequired(inputField.arrayOptions, inputField, "arrayOptions");
18156
18096
  const optionsValues = getValuesFromOptions(isDefined(arrayInput.checkboxGroupOptions?.customOption), arrayInput.checkboxGroupOptions?.options);
18157
18097
  const arrayValidation = asRequired(arrayInput.validation, arrayInput, "validation");
@@ -18165,16 +18105,14 @@ function arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPho
18165
18105
  };
18166
18106
  }
18167
18107
  function resolveArrayItemsValidation2(validationMode, arrayItems, optionsValues = [], libraryBasedPhoneFieldValidationEnabled = false) {
18168
- switch (arrayItems?.itemType ?? ItemType.UNKNOWN_ITEM_TYPE) {
18169
- case ItemType.STRING:
18108
+ switch (arrayItems?.itemType ?? ArrayItemsItemType.UNKNOWN_ITEM_TYPE) {
18109
+ case ArrayItemsItemType.STRING:
18170
18110
  return mapToStringSchemaProperty(makeEnumValidation(arrayItems?.stringOptions, optionsValues), validationMode, libraryBasedPhoneFieldValidationEnabled);
18171
- case ItemType.INTEGER:
18172
- return mapToIntegerSchemaProperty(makeEnumValidation(arrayItems?.integerOptions, optionsValues), validationMode);
18173
- case ItemType.NUMBER:
18111
+ case ArrayItemsItemType.NUMBER:
18174
18112
  return mapToNumberSchemaProperty(makeEnumValidation(arrayItems?.numberOptions, optionsValues), validationMode);
18175
- case ItemType.BOOLEAN:
18113
+ case ArrayItemsItemType.BOOLEAN:
18176
18114
  return mapToBooleanSchemaProperty(makeEnumValidation(arrayItems?.booleanOptions, optionsValues), validationMode);
18177
- case ItemType.OBJECT:
18115
+ case ArrayItemsItemType.OBJECT:
18178
18116
  return mapToObjectSchemaProperty(arrayItems?.objectOptions, validationMode);
18179
18117
  default:
18180
18118
  throw Error("Required to specify items type for array");
@@ -18197,8 +18135,8 @@ function makeEnumValidation(enumeratableValidation, optionsValues) {
18197
18135
  }
18198
18136
  }
18199
18137
  var ARRAY_VALIDATION_PROPERTIES2, ALLOWED_MAX_ITEMS2;
18200
- var init_array_schema_property_mapper_v2 = __esm({
18201
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/array-schema-property-mapper-v2.js"() {
18138
+ var init_array_schema_property_mapper_platformised = __esm({
18139
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/array-schema-property-mapper-platformised.js"() {
18202
18140
  init_types_impl();
18203
18141
  init_utils();
18204
18142
  init_property_types();
@@ -18206,13 +18144,12 @@ var init_array_schema_property_mapper_v2 = __esm({
18206
18144
  init_number_schema_property_mapper();
18207
18145
  init_boolean_schema_property_mapper();
18208
18146
  init_object_schema_property_mapper();
18209
- init_integer_schema_property_mapper();
18210
18147
  ARRAY_VALIDATION_PROPERTIES2 = ["minItems", "maxItems"];
18211
18148
  ALLOWED_MAX_ITEMS2 = 100;
18212
18149
  }
18213
18150
  });
18214
18151
 
18215
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/string-input-field-schema-mapper.js
18152
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/string-input-field-schema-mapper.js
18216
18153
  function mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18217
18154
  const stringInput = asRequired(inputField.stringOptions, inputField, "stringOptions");
18218
18155
  const stringValidation = asRequired(stringInput.validation, stringInput, "validation");
@@ -18220,38 +18157,38 @@ function mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPho
18220
18157
  return mapToStringSchemaProperty(makeEnumValidation(stringValidation, optionsValues), validationMode, libraryBasedPhoneFieldValidationEnabled);
18221
18158
  }
18222
18159
  var init_string_input_field_schema_mapper = __esm({
18223
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/string-input-field-schema-mapper.js"() {
18160
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/string-input-field-schema-mapper.js"() {
18224
18161
  init_utils();
18225
- init_array_schema_property_mapper_v2();
18162
+ init_array_schema_property_mapper_platformised();
18226
18163
  init_string_schema_property_mapper();
18227
18164
  }
18228
18165
  });
18229
18166
 
18230
- // ../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/transform-field-v2-to-validation.js
18231
- function transformFieldV2ToValidation(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18167
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/transform-platformised-field-to-validation.js
18168
+ function transformPlatformisedFieldToValidation(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18232
18169
  switch (inputField.inputType) {
18233
- case InputType.STRING:
18170
+ case InputFieldInputType.STRING:
18234
18171
  return mapStringInputFieldToSchema(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18235
- case InputType.ARRAY:
18236
- return arraySchemaPropertyMapperV2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18237
- case InputType.NUMBER:
18172
+ case InputFieldInputType.ARRAY:
18173
+ return arraySchemaPropertyMapperPlatformised(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled);
18174
+ case InputFieldInputType.NUMBER:
18238
18175
  const numberValidation = asRequired(inputField.numberOptions?.validation, inputField, "numberOptions.validation");
18239
18176
  return mapToNumberSchemaProperty(numberValidation, validationMode);
18240
- case InputType.BOOLEAN:
18177
+ case InputFieldInputType.BOOLEAN:
18241
18178
  const booleanValidation = asRequired(inputField.booleanOptions?.validation, inputField, "booleanOptions.validation");
18242
18179
  return mapToBooleanSchemaProperty(booleanValidation, validationMode);
18243
- case InputType.OBJECT:
18244
- const objectValidation = asRequired(inputField.objectOptions?.object, inputField, "objectOptions.object");
18180
+ case InputFieldInputType.OBJECT:
18181
+ const objectValidation = asRequired(inputField.objectOptions?.validation, inputField, "objectOptions.validation");
18245
18182
  return mapToObjectSchemaProperty(objectValidation, validationMode);
18246
- case InputType.WIX_FILE:
18183
+ case InputFieldInputType.WIX_FILE:
18247
18184
  return mapToPredefinedSchemaProperty(inputField.target, {
18248
18185
  format: ValidationFormat.WIX_FILE
18249
18186
  }, validationMode);
18250
- case InputType.SCHEDULING:
18187
+ case InputFieldInputType.SCHEDULING:
18251
18188
  return mapToPredefinedSchemaProperty(inputField.target, {
18252
18189
  format: ValidationFormat.SCHEDULING
18253
18190
  }, validationMode);
18254
- case InputType.PAYMENT:
18191
+ case InputFieldInputType.PAYMENT:
18255
18192
  return mapToPredefinedSchemaProperty(inputField.target, {
18256
18193
  paymentOptions: inputField.paymentOptions?.validation,
18257
18194
  format: ValidationFormat.PAYMENT
@@ -18260,11 +18197,11 @@ function transformFieldV2ToValidation(inputField, validationMode, libraryBasedPh
18260
18197
  return void 0;
18261
18198
  }
18262
18199
  }
18263
- var init_transform_field_v2_to_validation = __esm({
18264
- "../form-validator/dist/esm/lib/submission-validation/mappers/fields-v2/transform-field-v2-to-validation.js"() {
18200
+ var init_transform_platformised_field_to_validation = __esm({
18201
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/transform-platformised-field-to-validation.js"() {
18265
18202
  init_types_impl();
18266
18203
  init_utils();
18267
- init_array_schema_property_mapper_v2();
18204
+ init_array_schema_property_mapper_platformised();
18268
18205
  init_number_schema_property_mapper();
18269
18206
  init_boolean_schema_property_mapper();
18270
18207
  init_object_schema_property_mapper();
@@ -18273,6 +18210,63 @@ var init_transform_field_v2_to_validation = __esm({
18273
18210
  }
18274
18211
  });
18275
18212
 
18213
+ // ../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/form-schema-mapper-platformised.js
18214
+ function formSchemaMapperFactoryPlatformised(transformPlatformisedFieldToValidation2, validationMode, libraryBasedPhoneFieldValidationEnabled = false) {
18215
+ return function mapToFormSchema(formSchema) {
18216
+ const formFields = formSchema.formFields || [];
18217
+ const formDeletedFields = formSchema.deletedFormFields || [];
18218
+ const inputFields = formFields.filter(isInputFields);
18219
+ const deletedInputFields = formDeletedFields.filter(isInputFields);
18220
+ const properties = makeValidationProperties(inputFields, deletedInputFields);
18221
+ return {
18222
+ $id: asRequired(formSchema.id, formSchema, "id"),
18223
+ type: PropertyTypes.OBJECT,
18224
+ properties,
18225
+ additionalProperties: false,
18226
+ required: getRequiredFieldTargets(inputFields)
18227
+ };
18228
+ };
18229
+ function getRequiredFieldTargets(inputFields) {
18230
+ if (validationMode === ValidationMode.UNRESTRICTED_UPDATE) {
18231
+ return [];
18232
+ }
18233
+ return inputFields.filter(isVisibleEditableField).map((field) => field.inputOptions).filter(isRequiredField).map((inputOptions) => asRequired(inputOptions.target, inputOptions, "target"));
18234
+ }
18235
+ function makeValidationProperties(formFields, formDeletedFields) {
18236
+ return [...formFields, ...formDeletedFields].reduce((acc, field) => {
18237
+ const inputField = asRequired(field.inputOptions, field, "inputOptions");
18238
+ const property = convertFormFieldsToAjvProperties(asRequired(field.id, field, "id"), inputField);
18239
+ if (property) {
18240
+ acc[asRequired(inputField.target, field, "target")] = property;
18241
+ }
18242
+ return acc;
18243
+ }, {});
18244
+ }
18245
+ function isVisibleEditableField(formField) {
18246
+ return !formField.hidden;
18247
+ }
18248
+ function isRequiredField(inputField) {
18249
+ return inputField.required ?? false;
18250
+ }
18251
+ function isInputFields(formField) {
18252
+ return formField.fieldType === FieldFieldType.INPUT;
18253
+ }
18254
+ function convertFormFieldsToAjvProperties(id, inputField) {
18255
+ return {
18256
+ $id: id,
18257
+ ...transformPlatformisedFieldToValidation2(inputField, validationMode, libraryBasedPhoneFieldValidationEnabled)
18258
+ };
18259
+ }
18260
+ }
18261
+ var init_form_schema_mapper_platformised = __esm({
18262
+ "../form-validator/dist/esm/lib/submission-validation/mappers/platformised-fields/form-schema-mapper-platformised.js"() {
18263
+ init_types_impl();
18264
+ init_property_types();
18265
+ init_utils();
18266
+ init_types_impl2();
18267
+ }
18268
+ });
18269
+
18276
18270
  // ../form-validator/dist/esm/lib/submission-validation/form-validator.js
18277
18271
  var FormValidator;
18278
18272
  var init_form_validator = __esm({
@@ -18284,13 +18278,13 @@ var init_form_validator = __esm({
18284
18278
  init_property_schema_mapper();
18285
18279
  init_types_impl2();
18286
18280
  init_utils();
18287
- init_form_schema_mapper_v2();
18288
- init_transform_field_v2_to_validation();
18281
+ init_transform_platformised_field_to_validation();
18282
+ init_form_schema_mapper_platformised();
18289
18283
  FormValidator = class {
18290
- constructor(formSchemas, validationMode, fieldsV2BasedValidation = false, addressFormProvider = () => void 0, submissionValueProvider, libraryBasedPhoneFieldValidationEnabled = false, lenientPhoneValidation = false) {
18284
+ constructor(formSchemas, validationMode, platformisedFieldBasedValidation = false, addressFormProvider = () => void 0, submissionValueProvider, libraryBasedPhoneFieldValidationEnabled = false, lenientPhoneValidation = false) {
18291
18285
  this.formSchemas = formSchemas;
18292
18286
  this.validationMode = validationMode;
18293
- this.fieldsV2BasedValidation = fieldsV2BasedValidation;
18287
+ this.platformisedFieldBasedValidation = platformisedFieldBasedValidation;
18294
18288
  this.addressFormProvider = addressFormProvider;
18295
18289
  this.submissionValueProvider = submissionValueProvider;
18296
18290
  this.libraryBasedPhoneFieldValidationEnabled = libraryBasedPhoneFieldValidationEnabled;
@@ -18416,11 +18410,11 @@ var init_form_validator = __esm({
18416
18410
  isEmptyArray(value) {
18417
18411
  return Array.isArray(value) && !value.length;
18418
18412
  }
18419
- getFormSchemaMapper(fieldsV2BasedValidation) {
18420
- return fieldsV2BasedValidation ? formSchemaMapperFactoryV2(transformFieldV2ToValidation, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled) : formSchemaMapperFactory(propertySchemaMapper, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled);
18413
+ getFormSchemaMapper() {
18414
+ return this.platformisedFieldBasedValidation ? formSchemaMapperFactoryPlatformised(transformPlatformisedFieldToValidation, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled) : formSchemaMapperFactory(propertySchemaMapper, this.validationMode ?? ValidationMode.UNKNOWN, this.libraryBasedPhoneFieldValidationEnabled);
18421
18415
  }
18422
18416
  initAJvWithSchemas(currentlyValidatableForm, submission) {
18423
- const formSchemaMapper = this.getFormSchemaMapper(this.fieldsV2BasedValidation);
18417
+ const formSchemaMapper = this.getFormSchemaMapper();
18424
18418
  const createAjvSchemaValidator = createAjvSchemaValidatorFactory(formSchemaMapper, this.libraryBasedPhoneFieldValidationEnabled && this.validationMode !== ValidationMode.UNRESTRICTED_UPDATE, this.lenientPhoneValidation);
18425
18419
  const nestedForms = this.formSchemas.flatMap((schema) => (schema.nestedForms || []).flatMap(({ targets, form }) => (targets || []).map((target) => ({ ...form, id: target }))));
18426
18420
  const addressForms = this.getAddressForms(currentlyValidatableForm, submission);
@@ -18739,7 +18733,7 @@ var init_form_schema_validator = __esm({
18739
18733
  this.submissionValidator = submissionValidator;
18740
18734
  }
18741
18735
  validate(form) {
18742
- const submission = form.fieldsV2?.reduce((acc, { inputOptions }) => {
18736
+ const submission = form.formFields?.reduce((acc, { inputOptions }) => {
18743
18737
  const defaultValue = this.getDefaultValue(inputOptions);
18744
18738
  const target = inputOptions?.target;
18745
18739
  if (defaultValue && target) {
@@ -18754,11 +18748,11 @@ var init_form_schema_validator = __esm({
18754
18748
  }
18755
18749
  getDefaultValue(field) {
18756
18750
  switch (field?.inputType) {
18757
- case InputType.STRING:
18751
+ case InputFieldInputType.STRING:
18758
18752
  return this.getDefaultStringComponentValue(field.stringOptions) ?? void 0;
18759
- case InputType.NUMBER:
18753
+ case InputFieldInputType.NUMBER:
18760
18754
  return this.getDefaultNumberComponentValue(field.numberOptions) ?? void 0;
18761
- case InputType.PAYMENT:
18755
+ case InputFieldInputType.PAYMENT:
18762
18756
  return this.getDefaultPaymentComponentValue(field.paymentOptions) ?? void 0;
18763
18757
  default:
18764
18758
  return void 0;
@@ -18766,15 +18760,15 @@ var init_form_schema_validator = __esm({
18766
18760
  }
18767
18761
  getDefaultStringComponentValue(stringOptions) {
18768
18762
  switch (stringOptions?.componentType) {
18769
- case StringComponentType.DATE_TIME:
18763
+ case InputFieldStringComponentType.DATE_TIME:
18770
18764
  return stringOptions?.dateTimeOptions?.default;
18771
- case StringComponentType.DATE_INPUT:
18765
+ case InputFieldStringComponentType.DATE_INPUT:
18772
18766
  return stringOptions?.dateInputOptions?.default;
18773
- case StringComponentType.DATE_PICKER:
18767
+ case InputFieldStringComponentType.DATE_PICKER:
18774
18768
  return stringOptions?.datePickerOptions?.default;
18775
- case StringComponentType.TEXT_INPUT:
18769
+ case InputFieldStringComponentType.TEXT_INPUT:
18776
18770
  return stringOptions?.textInputOptions?.default;
18777
- case StringComponentType.TIME_INPUT:
18771
+ case InputFieldStringComponentType.TIME_INPUT:
18778
18772
  return stringOptions?.timeInputOptions?.default;
18779
18773
  default:
18780
18774
  return void 0;
@@ -18782,9 +18776,9 @@ var init_form_schema_validator = __esm({
18782
18776
  }
18783
18777
  getDefaultNumberComponentValue(numberOptions) {
18784
18778
  switch (numberOptions?.componentType) {
18785
- case NumberComponentType.NUMBER_INPUT:
18779
+ case InputFieldNumberComponentType.NUMBER_INPUT:
18786
18780
  return numberOptions?.numberInputOptions?.default;
18787
- case NumberComponentType.RATING_INPUT:
18781
+ case InputFieldNumberComponentType.RATING_INPUT:
18788
18782
  return numberOptions?.ratingInputOptions?.defaultValue;
18789
18783
  default:
18790
18784
  return void 0;
@@ -18792,7 +18786,7 @@ var init_form_schema_validator = __esm({
18792
18786
  }
18793
18787
  getDefaultPaymentComponentValue(paymentOptions) {
18794
18788
  switch (paymentOptions?.componentType) {
18795
- case PaymentComponentType.PAYMENT_INPUT:
18789
+ case InputFieldPaymentComponentType.PAYMENT_INPUT:
18796
18790
  return paymentOptions?.paymentInputOptions?.default;
18797
18791
  default:
18798
18792
  return void 0;
@@ -18800,7 +18794,7 @@ var init_form_schema_validator = __esm({
18800
18794
  }
18801
18795
  buildSubmissionValue(defaultValue, inputField) {
18802
18796
  switch (inputField.inputType) {
18803
- case InputType.PAYMENT:
18797
+ case InputFieldInputType.PAYMENT:
18804
18798
  return inputField.paymentOptions?.validation?.products?.map((product) => ({
18805
18799
  productId: product.id,
18806
18800
  price: defaultValue,
@@ -29437,9 +29431,6 @@ var FormRoot2 = ({
29437
29431
  )
29438
29432
  );
29439
29433
  };
29440
- function getRandomId() {
29441
- return generateUUID();
29442
- }
29443
29434
  var dummyBi = {
29444
29435
  log: () => Promise.resolve(),
29445
29436
  report: () => Promise.resolve(),
@@ -29447,7 +29438,7 @@ var dummyBi = {
29447
29438
  updateDefaults: () => dummyBi
29448
29439
  };
29449
29440
  var useFormBi = (form, bi, biFormFillSessionId) => {
29450
- const formEditSessionId = useMemo(getRandomId, []);
29441
+ const formEditSessionId = useMemo(generateUUID, []);
29451
29442
  return useMemo(() => {
29452
29443
  if (!bi) {
29453
29444
  return dummyBi;