@timardex/cluemart-shared 1.2.81 → 1.2.83

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.
@@ -324,20 +324,22 @@ var emailOptionalSchema = yup.string().nullable().notRequired().transform(
324
324
  ).label("Email");
325
325
  var mobileRegex = /^02\d{7,9}$/;
326
326
  var landlineRegex = /^(0(3|4|6|7|9)[0-9]{7})$/;
327
+ var mobilePhoneSchema = yup.string().label("Mobile Phone").nullable().notRequired().test(
328
+ "mobile-phone",
329
+ "Mobile must start with 02 and be 9\u201311 digits",
330
+ (value) => !value || mobileRegex.test(value)
331
+ // skip empty values
332
+ );
333
+ var landlinePhoneSchema = yup.string().label("Landline Phone").nullable().notRequired().test(
334
+ "landline-phone",
335
+ "Landline must start with 03, 04, 06, 07, or 09 (not 090) and have 7 digits after area code",
336
+ (value) => !value || landlineRegex.test(value)
337
+ // skip empty values
338
+ );
327
339
  var contactDetailsSchema = yup.object({
328
340
  email: emailOptionalSchema,
329
- mobilePhone: yup.string().label("Mobile Phone").nullable().notRequired().test(
330
- "mobile-phone",
331
- "Mobile must start with 02 and be 9\u201311 digits",
332
- (value) => !value || mobileRegex.test(value)
333
- // skip empty values
334
- ),
335
- landlinePhone: yup.string().label("Landline Phone").nullable().notRequired().test(
336
- "landline-phone",
337
- "Landline must start with 03, 04, 06, 07, or 09 (not 090) and have 7 digits after area code",
338
- (value) => !value || landlineRegex.test(value)
339
- // skip empty values
340
- )
341
+ mobilePhone: mobilePhoneSchema,
342
+ landlinePhone: landlinePhoneSchema
341
343
  }).nullable().default(void 0);
342
344
  var endDateNotInPastTest = yup.string().test("not-in-past", "End date cannot be in the past", (value) => {
343
345
  const now = (0, import_dayjs2.default)();
@@ -661,21 +663,108 @@ var validateVerificationTokenSchema = yup5.object().shape({
661
663
 
662
664
  // src/yupSchema/tester.ts
663
665
  var yup6 = __toESM(require("yup"));
666
+
667
+ // src/types/tester.ts
668
+ var OrganizedMarketCount = /* @__PURE__ */ ((OrganizedMarketCount2) => {
669
+ OrganizedMarketCount2["ONE"] = "1";
670
+ OrganizedMarketCount2["TWO_TO_THREE"] = "2-3";
671
+ OrganizedMarketCount2["FOUR_TO_FIVE"] = "4-5";
672
+ OrganizedMarketCount2["MORE_THAN_FIVE"] = "more_than_5";
673
+ return OrganizedMarketCount2;
674
+ })(OrganizedMarketCount || {});
675
+ var VendorSellingFrequency = /* @__PURE__ */ ((VendorSellingFrequency2) => {
676
+ VendorSellingFrequency2["TWICE_A_WEEK"] = "2-3_times_a_week";
677
+ VendorSellingFrequency2["ONCE_A_WEEK"] = "once_a_week";
678
+ VendorSellingFrequency2["ONE_TO_TWO_TIMES_A_MONTH"] = "1-2_times_a_month";
679
+ VendorSellingFrequency2["LESS_OFTEN"] = "less_often";
680
+ return VendorSellingFrequency2;
681
+ })(VendorSellingFrequency || {});
682
+ var OrganizerMarketFrequency = /* @__PURE__ */ ((OrganizerMarketFrequency2) => {
683
+ OrganizerMarketFrequency2["WEEKLY"] = "weekly";
684
+ OrganizerMarketFrequency2["FORTNIGHTLY"] = "fortnightly";
685
+ OrganizerMarketFrequency2["MONTHLY"] = "monthly";
686
+ OrganizerMarketFrequency2["SEASONAL"] = "seasonal";
687
+ return OrganizerMarketFrequency2;
688
+ })(OrganizerMarketFrequency || {});
689
+
690
+ // src/yupSchema/tester.ts
691
+ var testerVendorSchema = yup6.object().shape({
692
+ categories: categorySchema,
693
+ marketsAttended: yup6.array().of(
694
+ yup6.object().shape({
695
+ city: yup6.string().trim().required("City is required"),
696
+ name: yup6.string().trim().required("Market name is required")
697
+ })
698
+ ).min(1, "At least one market must be provided").required("Markets attended are required"),
699
+ productsOrServices: yup6.string().trim().required("Products or services description is required"),
700
+ questionary: yup6.object().shape({
701
+ appearInVideoIntroduction: yup6.boolean().required("Appear in video introduction is required"),
702
+ applyToAtLeastOneMarket: yup6.boolean().required("Apply to at least one market commitment is required"),
703
+ completeFeedbackQuestionnaire: yup6.boolean().required("Complete feedback questionnaire commitment is required"),
704
+ excitementAboutApp: yup6.string().trim().required("Excitement about app is required"),
705
+ sendPhotoForSocialMedia: yup6.boolean().required("Send photo for social media is required"),
706
+ socialMediaFeatureReason: yup6.string().trim().optional(),
707
+ testingPeriodConcerns: yup6.string().trim().optional(),
708
+ tryVisitorFeatures: yup6.boolean().required("Try visitor features commitment is required"),
709
+ uploadStallProfileFirstWeek: yup6.boolean().required("Upload stall profile first week commitment is required"),
710
+ usefulnessExpectations: yup6.string().trim().required("Usefulness expectations is required")
711
+ }),
712
+ sellingFrequency: yup6.mixed().oneOf(
713
+ Object.values(VendorSellingFrequency),
714
+ "Please select a valid selling frequency"
715
+ ).required("Selling frequency is required"),
716
+ yearlySellingApprox: yup6.number().label("Yearly Selling Approx").min(0, "Yearly selling approximate must be at least 0").integer("Yearly selling approximate must be a whole number").required("Yearly selling approximate is required").test("no-leading-zeros", "", noLeadingZeros("Yearly selling approximate"))
717
+ });
718
+ var testerEventSchema = yup6.object().shape({
719
+ allowMarketingAppearance: yup6.boolean().required("Allow marketing appearance is required"),
720
+ completeFinalQuestionnaire: yup6.boolean().required("Complete final questionnaire commitment is required"),
721
+ dailyCoordinationNeeds: yup6.string().trim().required("Daily coordination needs is required"),
722
+ interestedInCharityInitiative: yup6.boolean().required("Interest in charity initiative is required"),
723
+ inviteAtLeastFiveStallholders: yup6.boolean().required("Invite at least five stallholders commitment is required"),
724
+ manageApplicationsAndCommunication: yup6.boolean().required("Manage applications and communication commitment is required"),
725
+ markets: yup6.array().of(
726
+ yup6.object().shape({
727
+ averageStallCount: yup6.number().label("Average Stall Count").min(1, "Average stall count must be at least 1").integer("Average stall count must be a whole number").required("Average stall count is required").test("no-leading-zeros", "", noLeadingZeros("Average stall count")),
728
+ cityOrVenue: yup6.string().trim().required("City or venue is required"),
729
+ frequency: yup6.mixed().oneOf(
730
+ Object.values(OrganizerMarketFrequency),
731
+ "Please select a valid frequency"
732
+ ).required("Frequency is required"),
733
+ name: yup6.string().trim().required("Market name is required")
734
+ })
735
+ ).min(1, "At least one market must be provided").required("Markets are required"),
736
+ organizedMarketCount: yup6.mixed().oneOf(
737
+ Object.values(OrganizedMarketCount),
738
+ "Please select a valid market count"
739
+ ).required("Organized market count is required"),
740
+ organizerExpectations: yup6.string().trim().required("Organizer expectations is required"),
741
+ registerMarketsFirstWeek: yup6.boolean().required("Register markets first week commitment is required")
742
+ });
664
743
  var testerSchema = yup6.object().shape({
665
744
  approved: yup6.boolean().required("Approval status is required"),
666
- categories: yup6.array().nullable().when("resourceType", {
667
- is: "vendor" /* VENDOR */,
668
- then: () => categorySchema.min(1, "Category list must contain at least one item").required("Categories required"),
669
- // eslint-disable-next-line sort-keys
670
- otherwise: () => yup6.array().nullable().notRequired()
671
- }),
672
- companyName: yup6.string().required("Company name is required"),
745
+ businessName: yup6.string().required("Business name is required"),
673
746
  email: emailRequiredSchema,
747
+ event: yup6.object().when("resourceType", {
748
+ is: (resourceType) => resourceType === "event" /* EVENT */,
749
+ otherwise: (schema) => schema.nullable().optional(),
750
+ then: () => testerEventSchema.required("Event information is required")
751
+ }),
674
752
  firstName: yup6.string().required("First name is required"),
675
753
  lastName: yup6.string().required("Last name is required"),
754
+ mobilePhone: yup6.string().label("Mobile Phone").required("Mobile phone is required").test(
755
+ "mobile-phone",
756
+ "Mobile must start with 02 and be 9\u201311 digits",
757
+ (value) => !value || mobileRegex.test(value)
758
+ // skip empty values
759
+ ),
676
760
  osType: yup6.mixed().oneOf(Object.values(EnumOSPlatform), "Please select Android or iOS device").required("OS Type is required"),
677
761
  region: yup6.string().required("Region is required"),
678
- resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource Type is required")
762
+ resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource Type is required"),
763
+ vendor: yup6.object().when("resourceType", {
764
+ is: (resourceType) => resourceType === "vendor" /* VENDOR */,
765
+ otherwise: (schema) => schema.nullable().optional(),
766
+ then: () => testerVendorSchema.required("Vendor information is required")
767
+ })
679
768
  });
680
769
 
681
770
  // src/yupSchema/ad.ts
@@ -1470,14 +1559,16 @@ var import_react = __toESM(require("react"));
1470
1559
  var import_react_hook_form11 = require("react-hook-form");
1471
1560
  var defaultValues7 = {
1472
1561
  approved: false,
1473
- categories: null,
1474
- companyName: "",
1562
+ businessName: "",
1475
1563
  email: "",
1564
+ event: null,
1476
1565
  firstName: "",
1477
1566
  lastName: "",
1567
+ mobilePhone: "",
1478
1568
  osType: "",
1479
1569
  region: "",
1480
- resourceType: ""
1570
+ resourceType: "",
1571
+ vendor: null
1481
1572
  };
1482
1573
  function useTesterForm(data) {
1483
1574
  const {
@@ -1496,14 +1587,16 @@ function useTesterForm(data) {
1496
1587
  if (data) {
1497
1588
  reset({
1498
1589
  approved: data.approved,
1499
- categories: data.categories,
1500
- companyName: data.companyName,
1590
+ businessName: data.businessName,
1501
1591
  email: data.email,
1592
+ event: data.event,
1502
1593
  firstName: data.firstName,
1503
1594
  lastName: data.lastName,
1595
+ mobilePhone: data.mobilePhone,
1504
1596
  osType: data.osType,
1505
1597
  region: data.region,
1506
- resourceType: data.resourceType
1598
+ resourceType: data.resourceType,
1599
+ vendor: data.vendor
1507
1600
  });
1508
1601
  } else {
1509
1602
  reset(defaultValues7);
@@ -1511,27 +1604,31 @@ function useTesterForm(data) {
1511
1604
  }, [data]);
1512
1605
  const {
1513
1606
  approved,
1514
- categories,
1515
- companyName,
1607
+ businessName,
1516
1608
  email,
1609
+ event,
1517
1610
  firstName,
1518
1611
  lastName,
1612
+ mobilePhone,
1519
1613
  osType,
1520
1614
  region,
1521
- resourceType
1615
+ resourceType,
1616
+ vendor
1522
1617
  } = getValues();
1523
1618
  return {
1524
1619
  control,
1525
1620
  fields: {
1526
1621
  approved,
1527
- categories,
1528
- companyName,
1622
+ businessName,
1529
1623
  email,
1624
+ event,
1530
1625
  firstName,
1531
1626
  lastName,
1627
+ mobilePhone,
1532
1628
  osType,
1533
1629
  region,
1534
- resourceType
1630
+ resourceType,
1631
+ vendor
1535
1632
  },
1536
1633
  formState: { errors },
1537
1634
  handleSubmit,