@timardex/cluemart-shared 1.5.756 → 1.5.758
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/{chunk-DQVXL6TO.mjs → chunk-4E7UDAQX.mjs} +2 -2
- package/dist/{chunk-IMQU3E2F.mjs → chunk-IIOU4CXQ.mjs} +564 -906
- package/dist/chunk-IIOU4CXQ.mjs.map +1 -0
- package/dist/chunk-K3PEZWSB.mjs +958 -0
- package/dist/chunk-K3PEZWSB.mjs.map +1 -0
- package/dist/formFields/index.cjs +1453 -1445
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.mjs +5 -4
- package/dist/hooks/index.cjs +1520 -1512
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.mjs +3 -3
- package/dist/index.cjs +1782 -1475
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +71 -17
- package/dist/index.d.ts +71 -17
- package/dist/index.mjs +1748 -1475
- package/dist/index.mjs.map +1 -1
- package/dist/sharing/index.cjs +1003 -0
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.mjs +2 -2
- package/dist/utils/index.cjs +1302 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +57 -3
- package/dist/utils/index.d.ts +57 -3
- package/dist/utils/index.mjs +69 -1
- package/package.json +1 -1
- package/dist/chunk-IMQU3E2F.mjs.map +0 -1
- package/dist/chunk-KZLKBUMF.mjs +0 -343
- package/dist/chunk-KZLKBUMF.mjs.map +0 -1
- /package/dist/{chunk-DQVXL6TO.mjs.map → chunk-4E7UDAQX.mjs.map} +0 -0
package/dist/hooks/index.cjs
CHANGED
|
@@ -166,7 +166,7 @@ var React = __toESM(require("react"));
|
|
|
166
166
|
var import_react_hook_form = require("react-hook-form");
|
|
167
167
|
|
|
168
168
|
// src/yupSchema/global.ts
|
|
169
|
-
var
|
|
169
|
+
var import_dayjs3 = __toESM(require("dayjs"));
|
|
170
170
|
var import_customParseFormat2 = __toESM(require("dayjs/plugin/customParseFormat.js"));
|
|
171
171
|
var import_isSameOrAfter2 = __toESM(require("dayjs/plugin/isSameOrAfter.js"));
|
|
172
172
|
var yup = __toESM(require("yup"));
|
|
@@ -546,815 +546,634 @@ var EVENT_DATE_STATUS_PERIOD_MAP = {
|
|
|
546
546
|
]
|
|
547
547
|
};
|
|
548
548
|
|
|
549
|
-
// src/
|
|
550
|
-
var
|
|
551
|
-
var
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
549
|
+
// src/calendar/eventCalendar.ts
|
|
550
|
+
var import_dayjs2 = __toESM(require("dayjs"));
|
|
551
|
+
var KNOWN_EVENT_SCHEDULE_STATUSES = /* @__PURE__ */ new Set([
|
|
552
|
+
"Started" /* STARTED */,
|
|
553
|
+
"Starting_Soon" /* STARTING_SOON */,
|
|
554
|
+
"Ended" /* ENDED */
|
|
555
|
+
]);
|
|
556
|
+
|
|
557
|
+
// src/formFields/categories/clothingAndFashion.ts
|
|
558
|
+
var clothingAndFashion = [
|
|
559
|
+
{
|
|
560
|
+
id: "clothing-fashion",
|
|
561
|
+
name: "Clothing & Fashion",
|
|
562
|
+
description: "New, handmade, or upcycled clothing and accessories with a creative twist.",
|
|
563
|
+
subcategories: [
|
|
564
|
+
{
|
|
565
|
+
id: "apparel-babywear",
|
|
566
|
+
name: "Apparel & Babywear",
|
|
567
|
+
items: [
|
|
568
|
+
{
|
|
569
|
+
id: "apparel",
|
|
570
|
+
name: "Apparel",
|
|
571
|
+
description: "Dresses, t-shirts, jumpers, rompers, sets, kidswear."
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
id: "baby-toddler-apparel",
|
|
575
|
+
name: "Baby & Toddler Apparel",
|
|
576
|
+
description: "Handmade baby clothes, soft shoes, bibs, hats, knitted sets."
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
id: "upcycled-fashion",
|
|
580
|
+
name: "Upcycled Fashion",
|
|
581
|
+
description: "Reworked garments, patchwork pieces, restyled vintage."
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
id: "other-wearable-items",
|
|
585
|
+
name: "Other wearable items",
|
|
586
|
+
description: "Unique clothing not listed above."
|
|
587
|
+
}
|
|
588
|
+
]
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
id: "fashion-accessories",
|
|
592
|
+
name: "Fashion Accessories",
|
|
593
|
+
items: [
|
|
594
|
+
{
|
|
595
|
+
id: "accessories",
|
|
596
|
+
name: "Accessories",
|
|
597
|
+
description: "Scarves, belts, gloves, hats, headbands, caps."
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
id: "shoes",
|
|
601
|
+
name: "Shoes",
|
|
602
|
+
description: "Handmade shoes, baby booties, sandals, slippers."
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
id: "bags-wallets",
|
|
606
|
+
name: "Bags & Wallets",
|
|
607
|
+
description: "Leather bags, fabric purses, wallets, backpacks, totes."
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
id: "other-accessories",
|
|
611
|
+
name: "Other accessories",
|
|
612
|
+
description: "Brooches, pins, or hybrid functional items."
|
|
613
|
+
}
|
|
614
|
+
]
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
id: "jewelry-creative-wearables",
|
|
618
|
+
name: "Jewelry & Creative Wearables",
|
|
619
|
+
items: [
|
|
620
|
+
{
|
|
621
|
+
id: "jewelry",
|
|
622
|
+
name: "Jewelry",
|
|
623
|
+
description: "Necklaces, earrings, bracelets, rings, anklets."
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
id: "other-creative-wearables",
|
|
627
|
+
name: "Other creative wearables",
|
|
628
|
+
description: "Wearable art, statement pieces, bold handmade designs."
|
|
629
|
+
}
|
|
630
|
+
]
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
id: "traditional-cultural-clothing-accessories",
|
|
634
|
+
name: "Traditional & Cultural Clothing and Accessories",
|
|
635
|
+
items: [
|
|
636
|
+
{
|
|
637
|
+
id: "traditional-clothing-accessories",
|
|
638
|
+
name: "Traditional Clothing & Accessories ",
|
|
639
|
+
description: "raditional clothing, jewellery, accessories and footwear from around the world, including both handmade and non-handmade items."
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
id: "other-traditional-cultural-items",
|
|
643
|
+
name: "Other Traditional & Cultural Items",
|
|
644
|
+
description: "traditional or culturally inspired wearables and decorative cultural pieces such as plates, table linens and similar items."
|
|
645
|
+
}
|
|
646
|
+
]
|
|
647
|
+
}
|
|
648
|
+
]
|
|
586
649
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
"valid-start-time",
|
|
661
|
-
"Start time cannot be in the past",
|
|
662
|
-
function(value) {
|
|
663
|
-
const now = (0, import_dayjs2.default)();
|
|
664
|
-
const { startDate } = this.parent;
|
|
665
|
-
if (!startDate || !value) return false;
|
|
666
|
-
const startDateTime = (0, import_dayjs2.default)(
|
|
667
|
-
`${startDate} ${value}`,
|
|
668
|
-
`${dateFormat} ${timeFormat}`,
|
|
669
|
-
true
|
|
670
|
-
);
|
|
671
|
-
return startDateTime.isSameOrAfter(now);
|
|
672
|
-
}
|
|
673
|
-
);
|
|
674
|
-
var dateTimeSchema = yup.object().shape({
|
|
675
|
-
dateStatus: yup.mixed().oneOf(Object.values(EnumEventDateStatus)).required("Date status is required"),
|
|
676
|
-
endDate: yup.string().label("End Date").concat(endDateNotInPastTest).concat(endDateAfterStartDateTest).required("End date is required"),
|
|
677
|
-
endTime: yup.string().label("End Time").concat(endTimeMustBeAfterStartTimeTest).required("End time is required"),
|
|
678
|
-
startDate: yup.string().label("Start Date").concat(startDateNotInPastTest).required("Start date is required"),
|
|
679
|
-
startTime: yup.string().label("Start Time").concat(startTimeCannotBeInPastTest).required("Start time is required")
|
|
680
|
-
});
|
|
681
|
-
var stallTypesSchema = yup.object({
|
|
682
|
-
label: yup.string().trim().label("Stall Type").required("Stall type is required"),
|
|
683
|
-
price: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Price").min(0.1, "Stall price must be at least 0.1").required("Stall price is required").test(
|
|
684
|
-
"no-leading-zeros",
|
|
685
|
-
"",
|
|
686
|
-
noLeadingZeros("Stall price", { allowDecimal: true })
|
|
687
|
-
),
|
|
688
|
-
stallCapacity: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Capacity").typeError("Stall capacity must be a number").min(0, "Stall capacity cannot be negative").integer("Stall capacity must be a whole number").required("Stall capacity is required").test("no-leading-zeros", "", noLeadingZeros("Stall capacity"))
|
|
689
|
-
});
|
|
690
|
-
var dateTimeWithPriceSchema = dateTimeSchema.shape({
|
|
691
|
-
stallTypes: yup.array().of(stallTypesSchema).min(1, "At least one stall type is required").required("Stall types are required")
|
|
692
|
-
});
|
|
693
|
-
var locationSchema = yup.object().shape({
|
|
694
|
-
city: yup.string().label("City").required("City is required"),
|
|
695
|
-
country: yup.string().label("Country").required("Country is required"),
|
|
696
|
-
fullAddress: yup.string().label("Address").required("Address is required"),
|
|
697
|
-
geo: yup.object().shape({
|
|
698
|
-
coordinates: yup.array().of(yup.number().required("Coordinates must be numbers")).length(
|
|
699
|
-
2,
|
|
700
|
-
"Coordinates must contain exactly two numbers (longitude, latitude)"
|
|
701
|
-
).required("Coordinates are required"),
|
|
702
|
-
type: yup.string().oneOf(["Point"], "Type must be 'Point'").default("Point").required("Type is required")
|
|
703
|
-
}),
|
|
704
|
-
latitude: yup.number().label("Latitude").required("Latitude is required"),
|
|
705
|
-
longitude: yup.number().label("Longitude").required("Longitude is required"),
|
|
706
|
-
region: yup.string().label("Region").required("Region is required")
|
|
707
|
-
});
|
|
708
|
-
var passwordSchema = yup.string().trim().label("Password").min(8, "Password must be at least 8 characters long").required("Password is required");
|
|
709
|
-
var socialMediaSchema = yup.object({
|
|
710
|
-
name: yup.mixed().oneOf(Object.values(EnumSocialMedia)).label("Social Media Name").optional(),
|
|
711
|
-
link: yup.string().when("name", {
|
|
712
|
-
is: (name) => !!name,
|
|
713
|
-
// If name has a value
|
|
714
|
-
then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
|
|
715
|
-
otherwise: (schema) => schema.notRequired()
|
|
716
|
-
})
|
|
717
|
-
});
|
|
718
|
-
var globalResourceSchema = yup.object().shape({
|
|
719
|
-
active: yup.boolean().required("Active is required"),
|
|
720
|
-
cover: yup.object({
|
|
721
|
-
source: yup.string().label("Cover").required("Cover Image is required"),
|
|
722
|
-
title: yup.string().label("Cover Title").required("Cover Title is required")
|
|
723
|
-
}),
|
|
724
|
-
contactDetails: contactDetailsSchema,
|
|
725
|
-
description: yup.string().label("Description").trim().min(50).required("Description is required"),
|
|
726
|
-
name: yup.string().label("Name").trim().min(3).required("Name is required"),
|
|
727
|
-
region: yup.string().label("Region").required("Region is required"),
|
|
728
|
-
socialMedia: yup.array().of(socialMediaSchema).nullable().default(null),
|
|
729
|
-
associates: yup.array().of(
|
|
730
|
-
yup.object().shape({
|
|
731
|
-
email: emailRequiredSchema,
|
|
732
|
-
resourceId: yup.string().label("Resource ID").required("Resource ID is required"),
|
|
733
|
-
resourceType: yup.mixed().oneOf(Object.values(EnumResourceType)).label("Resource Type").required("Resource Type is required"),
|
|
734
|
-
licence: yup.object({
|
|
735
|
-
expiryDate: yup.date().required("Expiry Date is required"),
|
|
736
|
-
issuedDate: yup.date().required("Issued Date is required"),
|
|
737
|
-
licenceType: yup.mixed().oneOf(Object.values(EnumUserLicence)).label("Licence Type").required("Licence Type is required")
|
|
738
|
-
})
|
|
739
|
-
})
|
|
740
|
-
).nullable().default(null)
|
|
741
|
-
});
|
|
742
|
-
var categorySchema = yup.array().of(
|
|
743
|
-
yup.object().shape({
|
|
744
|
-
id: yup.string().required("Category id is required"),
|
|
745
|
-
name: yup.string().required("Category name is required"),
|
|
746
|
-
subcategories: yup.array().of(
|
|
747
|
-
yup.object().shape({
|
|
748
|
-
id: yup.string().defined(),
|
|
749
|
-
items: yup.array().of(
|
|
750
|
-
yup.object().shape({
|
|
751
|
-
id: yup.string().defined(),
|
|
752
|
-
name: yup.string().defined()
|
|
753
|
-
})
|
|
754
|
-
).nullable(),
|
|
755
|
-
name: yup.string().defined()
|
|
756
|
-
})
|
|
757
|
-
).min(1, "At least one subcategory is required").required("Subcategories are required")
|
|
758
|
-
})
|
|
759
|
-
);
|
|
760
|
-
|
|
761
|
-
// src/yupSchema/event.ts
|
|
762
|
-
var yup2 = __toESM(require("yup"));
|
|
763
|
-
var eventSchema = globalResourceSchema.shape({
|
|
764
|
-
dateTime: yup2.array().of(dateTimeSchema).min(1, "At least one Event date required").max(50, "You can only add up to 50 Event dates").required("DateTime is required").test(
|
|
765
|
-
"unique-start-date-time",
|
|
766
|
-
"Start Date and Start Time must be unique",
|
|
767
|
-
function(value) {
|
|
768
|
-
if (!value) return true;
|
|
769
|
-
const seen = /* @__PURE__ */ new Set();
|
|
770
|
-
for (const item of value) {
|
|
771
|
-
if (!item.startDate || !item.startTime) continue;
|
|
772
|
-
const key = `${item.startDate}_${item.startTime}`;
|
|
773
|
-
if (seen.has(key)) {
|
|
774
|
-
return false;
|
|
775
|
-
}
|
|
776
|
-
seen.add(key);
|
|
777
|
-
}
|
|
778
|
-
return true;
|
|
779
|
-
}
|
|
780
|
-
),
|
|
781
|
-
eventType: yup2.mixed().oneOf(Object.values(EnumEventType), "Please select a valid Event type").required("Please select an Event type"),
|
|
782
|
-
location: locationSchema,
|
|
783
|
-
nzbn: yup2.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
|
|
784
|
-
rainOrShine: yup2.boolean().label("Rain or Shine").required("Please specify if the event is rain or shine"),
|
|
785
|
-
tags: yup2.array().of(yup2.string().defined()).min(1, "Tags are required").required("Tags are required")
|
|
786
|
-
});
|
|
787
|
-
var paymentInfoSchema = yup2.object({
|
|
788
|
-
paymentMethod: yup2.mixed().oneOf(
|
|
789
|
-
Object.values(EnumPaymentMethod),
|
|
790
|
-
"Please select a valid Payment method"
|
|
791
|
-
).required("Please select a Payment method"),
|
|
792
|
-
accountHolderName: yup2.string().when("paymentMethod", {
|
|
793
|
-
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
794
|
-
then: (schema) => schema.required("Account holder name is required for bank transfer").trim(),
|
|
795
|
-
otherwise: (schema) => schema.notRequired()
|
|
796
|
-
}),
|
|
797
|
-
accountNumber: yup2.string().when("paymentMethod", {
|
|
798
|
-
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
799
|
-
then: (schema) => schema.required("Account number is required for bank transfer").matches(
|
|
800
|
-
nzBankAccountRegex,
|
|
801
|
-
"Account number must be in format: XX-XXXX-XXXXXXX-XX"
|
|
802
|
-
).trim(),
|
|
803
|
-
otherwise: (schema) => schema.notRequired()
|
|
804
|
-
}),
|
|
805
|
-
link: yup2.string().when("paymentMethod", {
|
|
806
|
-
is: (val) => val === "paypal" /* PAYPAL */ || val === "stripe" /* STRIPE */,
|
|
807
|
-
then: () => normalizedUrlTransform().url("Link must be a valid URL").required("Link is required for PayPal/Stripe"),
|
|
808
|
-
otherwise: (schema) => schema.notRequired()
|
|
809
|
-
})
|
|
810
|
-
});
|
|
811
|
-
var eventInfoSchema = yup2.object().shape({
|
|
812
|
-
applicationDeadlineHours: yup2.number().label("Application Deadline Hours").nullable().transform((value, originalValue) => originalValue === "" ? null : value).typeError("Application deadline hours must be a number").min(1, "Application deadline hours must be at least 1").required("Application deadline hours is required").test("no-leading-zeros", "", noLeadingZeros("Application deadline hours")),
|
|
813
|
-
dateTime: yup2.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
|
|
814
|
-
eventId: yup2.string().trim().required("Event ID is required"),
|
|
815
|
-
packInTime: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Pack In Time").typeError("Pack in time must be a number").min(1, "Pack in time must be at least 1").required("Pack in time is required").test("no-leading-zeros", "", noLeadingZeros("Pack in time")),
|
|
816
|
-
paymentDueHours: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Payment Due Hours").typeError("Payment due hours must be a number").min(1, "Payment due hours must be at least 1").required("Payment due hours is required").test("no-leading-zeros", "", noLeadingZeros("Payment due hours")).test(
|
|
817
|
-
"payment-before-deadline",
|
|
818
|
-
"Payment due hours must be less than application deadline hours",
|
|
819
|
-
function(value) {
|
|
820
|
-
const { applicationDeadlineHours } = this.parent;
|
|
821
|
-
return value < applicationDeadlineHours;
|
|
822
|
-
}
|
|
823
|
-
),
|
|
824
|
-
paymentInfo: yup2.array().of(paymentInfoSchema).min(1, "At least one payment method is required").required("Payment info is required"),
|
|
825
|
-
refundPolicy: yup2.array().of(
|
|
826
|
-
yup2.object({
|
|
827
|
-
category: yup2.mixed().required("Category is required"),
|
|
828
|
-
label: yup2.string().required("Label is required"),
|
|
829
|
-
value: yup2.boolean().required("Value is required")
|
|
830
|
-
})
|
|
831
|
-
).min(1, "At least one refund policy item is required").test(
|
|
832
|
-
"at-least-one-true",
|
|
833
|
-
"At least one refund policy option must be selected",
|
|
834
|
-
(value) => {
|
|
835
|
-
if (!value) return false;
|
|
836
|
-
return value.some((item) => item.value === true);
|
|
837
|
-
}
|
|
838
|
-
).required("Refund policy is required")
|
|
839
|
-
});
|
|
840
|
-
|
|
841
|
-
// src/yupSchema/vendor.ts
|
|
842
|
-
var yup3 = __toESM(require("yup"));
|
|
843
|
-
var vendorMenuSchema = yup3.object({
|
|
844
|
-
description: yup3.string().nullable().optional(),
|
|
845
|
-
name: yup3.string().nullable().required("Product name is required"),
|
|
846
|
-
price: yup3.number().transform((v, o) => o === "" ? null : v).min(1, "Product price must be greater than 0").required("Product price is required"),
|
|
847
|
-
priceUnit: yup3.string().required("Product unit is required")
|
|
848
|
-
});
|
|
849
|
-
var vendorSchema = globalResourceSchema.shape({
|
|
850
|
-
categories: categorySchema.min(1, "Category list must contain at least one item").required("Categories are required"),
|
|
851
|
-
foodTruck: yup3.boolean().label("Food Truck").required("Please specify if the vendor is a food truck"),
|
|
852
|
-
products: yup3.object().shape({
|
|
853
|
-
active: yup3.boolean().nullable().optional(),
|
|
854
|
-
productsList: yup3.array().of(vendorMenuSchema).nullable().optional()
|
|
855
|
-
}).nullable().optional(),
|
|
856
|
-
vendorType: yup3.mixed().oneOf(Object.values(EnumVendorType)).required("Please select a Vendor type")
|
|
857
|
-
});
|
|
858
|
-
var unregisteredVendorSchema = yup3.object().shape({
|
|
859
|
-
categoryIds: yup3.array().of(yup3.string().defined()).min(1, "Category list must contain at least one item").required("Categories are required"),
|
|
860
|
-
dateTime: yup3.array().of(dateTimeSchema).min(1, "DateTime list must contain at least one item").required("DateTime is required"),
|
|
861
|
-
email: emailOptionalSchema,
|
|
862
|
-
inviterId: yup3.string().required("Inviter ID is required"),
|
|
863
|
-
name: yup3.string().label("Stallholder Name").trim().min(3, "Name must be at least 3 characters").required("Name is required"),
|
|
864
|
-
region: yup3.string().label("Region").required("Region is required")
|
|
865
|
-
});
|
|
866
|
-
var vendorInfoSchema = yup3.object().shape({
|
|
867
|
-
product: yup3.object().shape({
|
|
868
|
-
foodFlavors: yup3.array().of(
|
|
869
|
-
yup3.mixed().oneOf(Object.values(EnumFoodFlavor), "Invalid flavor selected").required("Flavor is required")
|
|
870
|
-
).min(1, "Food flavors list must contain at least one item").required("Food flavors are required"),
|
|
871
|
-
packaging: yup3.array().of(yup3.string().defined()).min(1, "Packaging list must contain at least one item").required("Packaging is required"),
|
|
872
|
-
priceRange: yup3.object().shape({
|
|
873
|
-
max: yup3.string().required("Max price is required").test(
|
|
874
|
-
"is-number",
|
|
875
|
-
"Max price must be a valid number",
|
|
876
|
-
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
877
|
-
).test(
|
|
878
|
-
"is-greater",
|
|
879
|
-
"Max price must be greater than or equal to Min price",
|
|
880
|
-
function(max) {
|
|
881
|
-
const { min } = this.parent;
|
|
882
|
-
if (!max || !min) return true;
|
|
883
|
-
const maxNum = Number(max);
|
|
884
|
-
const minNum = Number(min);
|
|
885
|
-
if (isNaN(maxNum) || isNaN(minNum)) return true;
|
|
886
|
-
return maxNum >= minNum;
|
|
887
|
-
}
|
|
888
|
-
),
|
|
889
|
-
min: yup3.string().required("Min price is required").test(
|
|
890
|
-
"is-number",
|
|
891
|
-
"Min price must be a valid number",
|
|
892
|
-
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
893
|
-
)
|
|
894
|
-
}),
|
|
895
|
-
producedIn: yup3.array().of(yup3.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required")
|
|
896
|
-
}),
|
|
897
|
-
requirements: yup3.object().shape({
|
|
898
|
-
electricity: yup3.object().shape({
|
|
899
|
-
details: yup3.string().trim().test(
|
|
900
|
-
"details-required",
|
|
901
|
-
"Please add electricity details",
|
|
902
|
-
function(value) {
|
|
903
|
-
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
904
|
-
}
|
|
905
|
-
).nullable(),
|
|
906
|
-
isRequired: yup3.boolean().required("Electricity requirement is required")
|
|
907
|
-
}),
|
|
908
|
-
gazebo: yup3.object().shape({
|
|
909
|
-
details: yup3.string().trim().test(
|
|
910
|
-
"details-required",
|
|
911
|
-
"Please add gazebo details",
|
|
912
|
-
function(value) {
|
|
913
|
-
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
914
|
-
}
|
|
915
|
-
).nullable(),
|
|
916
|
-
isRequired: yup3.boolean().required("Gazebo requirement is required")
|
|
917
|
-
}),
|
|
918
|
-
table: yup3.object().shape({
|
|
919
|
-
details: yup3.string().trim().test(
|
|
920
|
-
"details-required",
|
|
921
|
-
"Please add table details",
|
|
922
|
-
function(value) {
|
|
923
|
-
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
924
|
-
}
|
|
925
|
-
).nullable(),
|
|
926
|
-
isRequired: yup3.boolean().required("Table requirement is required")
|
|
927
|
-
})
|
|
928
|
-
}).optional(),
|
|
929
|
-
stallInfo: yup3.object().shape({
|
|
930
|
-
size: yup3.object().shape({
|
|
931
|
-
depth: yup3.string().required("Depth is required").test(
|
|
932
|
-
"is-number",
|
|
933
|
-
"Depth must be a valid number",
|
|
934
|
-
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
935
|
-
).test(
|
|
936
|
-
"is-positive",
|
|
937
|
-
"Depth must be greater than 0",
|
|
938
|
-
(value) => value !== void 0 && value !== "" && Number(value) > 0
|
|
939
|
-
),
|
|
940
|
-
width: yup3.string().required("Width is required").test(
|
|
941
|
-
"is-number",
|
|
942
|
-
"Width must be a valid number",
|
|
943
|
-
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
944
|
-
).test(
|
|
945
|
-
"is-positive",
|
|
946
|
-
"Width must be greater than 0",
|
|
947
|
-
(value) => value !== void 0 && value !== "" && Number(value) > 0
|
|
948
|
-
)
|
|
949
|
-
})
|
|
950
|
-
}),
|
|
951
|
-
vendorId: yup3.string().trim().required("Vendor ID is required")
|
|
952
|
-
});
|
|
953
|
-
|
|
954
|
-
// src/yupSchema/user.ts
|
|
955
|
-
var yup4 = __toESM(require("yup"));
|
|
956
|
-
var userSchema = yup4.object().shape({
|
|
957
|
-
active: yup4.boolean().required("Active is required"),
|
|
958
|
-
email: emailRequiredSchema,
|
|
959
|
-
firstName: yup4.string().label("First Name").trim().required("First name is required"),
|
|
960
|
-
lastName: yup4.string().label("Last Name").trim().required("Last name is required"),
|
|
961
|
-
isTester: yup4.boolean().required("Tester status is required"),
|
|
962
|
-
password: yup4.string().nullable().trim().label("Password").min(8, "Password must be at least 8 characters long").notRequired(),
|
|
963
|
-
preferredRegion: yup4.string().label("Preferred Region").required("Preferred region is required"),
|
|
964
|
-
confirmPassword: yup4.string().nullable().trim().label("Confirm Password").when("password", {
|
|
965
|
-
is: (val) => !!val,
|
|
966
|
-
// only necessary if password typed
|
|
967
|
-
then: (schema) => schema.required("Confirm Password is required").oneOf([yup4.ref("password")], "Passwords must match"),
|
|
968
|
-
otherwise: (schema) => schema.notRequired()
|
|
969
|
-
}),
|
|
970
|
-
role: yup4.mixed().oneOf(Object.values(EnumUserRole)).required("Role is required")
|
|
971
|
-
});
|
|
972
|
-
|
|
973
|
-
// src/yupSchema/auth.ts
|
|
974
|
-
var yup5 = __toESM(require("yup"));
|
|
975
|
-
var loginSchema = yup5.object().shape({
|
|
976
|
-
email: emailRequiredSchema,
|
|
977
|
-
password: passwordSchema
|
|
978
|
-
});
|
|
979
|
-
var registerSchema = yup5.object().shape({
|
|
980
|
-
email: emailRequiredSchema,
|
|
981
|
-
firstName: yup5.string().label("First Name").required("First Name is required"),
|
|
982
|
-
lastName: yup5.string().label("Last Name").required("Last Name is required"),
|
|
983
|
-
password: passwordSchema,
|
|
984
|
-
preferredRegion: yup5.string().label("Preferred Region").required("Preferred Region is required")
|
|
985
|
-
});
|
|
986
|
-
var requestPasswordResetSchema = yup5.object().shape({
|
|
987
|
-
email: emailRequiredSchema
|
|
988
|
-
});
|
|
989
|
-
var resetPasswordSchema = yup5.object().shape({
|
|
990
|
-
email: emailRequiredSchema,
|
|
991
|
-
password: passwordSchema,
|
|
992
|
-
// eslint-disable-next-line sort-keys
|
|
993
|
-
confirmPassword: yup5.string().oneOf([yup5.ref("password")], "Passwords must match").required("Confirm Password is required")
|
|
994
|
-
});
|
|
995
|
-
var validateVerificationTokenSchema = yup5.object().shape({
|
|
996
|
-
email: emailRequiredSchema,
|
|
997
|
-
verificationToken: yup5.string().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
|
|
998
|
-
});
|
|
999
|
-
|
|
1000
|
-
// src/yupSchema/ad.ts
|
|
1001
|
-
var yup6 = __toESM(require("yup"));
|
|
1002
|
-
var adResourceSchema = yup6.object({
|
|
1003
|
-
adDescription: yup6.string().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
|
|
1004
|
-
adImage: yup6.string().required("Ad image is required"),
|
|
1005
|
-
adStyle: yup6.mixed().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
|
|
1006
|
-
adTitle: yup6.string().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
|
|
1007
|
-
adType: yup6.mixed().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
|
|
1008
|
-
resourceId: yup6.string().required("Resource ID is required"),
|
|
1009
|
-
resourceName: yup6.string().required("Resource name is required"),
|
|
1010
|
-
resourceRegion: yup6.string().required("Resource region is required"),
|
|
1011
|
-
resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
|
|
1012
|
-
});
|
|
1013
|
-
var adSchema = yup6.object().shape({
|
|
1014
|
-
active: yup6.boolean().required("Active status is required"),
|
|
1015
|
-
end: yup6.date().required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
|
|
1016
|
-
if (!value) return false;
|
|
1017
|
-
const endDate = new Date(value);
|
|
1018
|
-
const now = /* @__PURE__ */ new Date();
|
|
1019
|
-
return endDate > now;
|
|
1020
|
-
}).when("start", {
|
|
1021
|
-
is: (val) => val && val.length > 0,
|
|
1022
|
-
then: (schema) => schema.test(
|
|
1023
|
-
"is-after-start",
|
|
1024
|
-
"End date must be after start date",
|
|
1025
|
-
function(value) {
|
|
1026
|
-
const { start } = this.parent;
|
|
1027
|
-
if (!value || !start) return false;
|
|
1028
|
-
return new Date(value) > new Date(start);
|
|
1029
|
-
}
|
|
1030
|
-
)
|
|
1031
|
-
}),
|
|
1032
|
-
resource: adResourceSchema.required("Resource information is required"),
|
|
1033
|
-
showOn: yup6.array().of(yup6.mixed().oneOf(Object.values(EnumAdShowOn)).required()).min(1, "At least one display location is required").required("Display location is required"),
|
|
1034
|
-
status: yup6.mixed().oneOf(Object.values(EnumAdStatus)).required("Ad status is required"),
|
|
1035
|
-
start: yup6.date().when("status", {
|
|
1036
|
-
is: (status) => status !== "Active" /* ACTIVE */,
|
|
1037
|
-
then: () => yup6.date().required("Start date is required").test("is-future-date", "Start date must be in the future", (value) => {
|
|
1038
|
-
if (!value) return false;
|
|
1039
|
-
return value > /* @__PURE__ */ new Date();
|
|
1040
|
-
}),
|
|
1041
|
-
// Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
|
|
1042
|
-
otherwise: () => yup6.date().notRequired()
|
|
1043
|
-
}),
|
|
1044
|
-
targetRegion: yup6.array().of(yup6.string().required()).min(1, "At least one target region is required").required("Target region is required")
|
|
1045
|
-
});
|
|
1046
|
-
|
|
1047
|
-
// src/yupSchema/partner.ts
|
|
1048
|
-
var yup7 = __toESM(require("yup"));
|
|
1049
|
-
var partnerSchema = globalResourceSchema.shape({
|
|
1050
|
-
location: locationSchema,
|
|
1051
|
-
nzbn: yup7.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
|
|
1052
|
-
partnerType: yup7.mixed().oneOf(Object.values(EnumPartnerType), "Please select a valid Partner type").required("Please select a Partner type")
|
|
1053
|
-
});
|
|
1054
|
-
|
|
1055
|
-
// src/yupSchema/post.ts
|
|
1056
|
-
var yup8 = __toESM(require("yup"));
|
|
1057
|
-
|
|
1058
|
-
// src/formFields/vendor/vendorInfo.ts
|
|
1059
|
-
var packagingTypes = [
|
|
1060
|
-
"Biodegradable",
|
|
1061
|
-
"Compostable",
|
|
1062
|
-
"Fabric",
|
|
1063
|
-
"Glass",
|
|
1064
|
-
"Other",
|
|
1065
|
-
"Paper",
|
|
1066
|
-
"Plastic",
|
|
1067
|
-
"Recyclable",
|
|
1068
|
-
"Reusable",
|
|
1069
|
-
"Single-use",
|
|
1070
|
-
"Wood"
|
|
1071
|
-
];
|
|
1072
|
-
var producedIngTypes = [
|
|
1073
|
-
"Commercial Kitchen",
|
|
1074
|
-
"Home Premises",
|
|
1075
|
-
"Factory",
|
|
1076
|
-
"Farm",
|
|
1077
|
-
"Other"
|
|
1078
|
-
];
|
|
1079
|
-
var packagingOptions = mapArrayToOptions(packagingTypes);
|
|
1080
|
-
var producedIngOptions = mapArrayToOptions(producedIngTypes);
|
|
1081
|
-
var foodFlavourOptions = Object.values(
|
|
1082
|
-
EnumFoodFlavor
|
|
1083
|
-
).map((flavour) => ({
|
|
1084
|
-
label: flavour.replaceAll("_", " "),
|
|
1085
|
-
value: flavour
|
|
1086
|
-
}));
|
|
1087
|
-
|
|
1088
|
-
// src/formFields/event/event.ts
|
|
1089
|
-
var availableTagTypes = [
|
|
1090
|
-
{ icon: "human-male-female-child", label: "All Ages" },
|
|
1091
|
-
{ icon: "weather-sunny", label: "Day Market" },
|
|
1092
|
-
{ icon: "account-child", label: "Family Friendly" },
|
|
1093
|
-
{ icon: "ticket-percent", label: "Free Entry" },
|
|
1094
|
-
{ icon: "home-city", label: "Indoor Market" },
|
|
1095
|
-
{ icon: "music", label: "Live Music" },
|
|
1096
|
-
{ icon: "bus", label: "Near Bustop" },
|
|
1097
|
-
{ icon: "slide", label: "Near Playground" },
|
|
1098
|
-
{ icon: "train", label: "Near Train Station" },
|
|
1099
|
-
{ icon: "weather-night", label: "Night Market" },
|
|
1100
|
-
{ icon: "tree", label: "Outdoor Market" },
|
|
1101
|
-
{ icon: "car", label: "Parking Available" },
|
|
1102
|
-
{ icon: "dog", label: "Pet Friendly" },
|
|
1103
|
-
{ icon: "ship-wheel", label: "Port Nearby" },
|
|
1104
|
-
{ icon: "toilet", label: "Toilet Available" },
|
|
1105
|
-
{ icon: "wheelchair-accessibility", label: "Wheelchair Accessible" }
|
|
1106
|
-
];
|
|
1107
|
-
var tagOptions = availableTagTypes.map((tag) => ({
|
|
1108
|
-
label: tag.label,
|
|
1109
|
-
value: tag.label
|
|
1110
|
-
}));
|
|
1111
|
-
|
|
1112
|
-
// src/formFields/event/eventInfo.ts
|
|
1113
|
-
var stallTypes = [
|
|
1114
|
-
"1.8m table only",
|
|
1115
|
-
"2x2m mini stall",
|
|
1116
|
-
"3x3m tent site",
|
|
1117
|
-
"Corner stall",
|
|
1118
|
-
"Craft stall with power",
|
|
1119
|
-
"Craft stall without power",
|
|
1120
|
-
"Double stall (6x3m)",
|
|
1121
|
-
"Food truck site",
|
|
1122
|
-
"Food vendor with power",
|
|
1123
|
-
"Food vendor without power",
|
|
1124
|
-
"Inside hall stall",
|
|
1125
|
-
"Non-profit/community stall",
|
|
1126
|
-
"Outdoor open area",
|
|
1127
|
-
"Shared table space",
|
|
1128
|
-
"Wall-based vendor",
|
|
1129
|
-
"Workshop/seating area"
|
|
1130
|
-
];
|
|
1131
|
-
var stallTypeOptions = stallTypes.map((type) => ({
|
|
1132
|
-
label: type,
|
|
1133
|
-
price: 0,
|
|
1134
|
-
stallCapacity: 0
|
|
1135
|
-
}));
|
|
1136
|
-
|
|
1137
|
-
// src/formFields/global.ts
|
|
1138
|
-
var emailField = {
|
|
1139
|
-
helperText: "Enter email address",
|
|
1140
|
-
keyboardType: "email-address",
|
|
1141
|
-
name: "email",
|
|
1142
|
-
placeholder: "Email"
|
|
1143
|
-
};
|
|
1144
|
-
var companyContactFields = [
|
|
1145
|
-
{
|
|
1146
|
-
...emailField,
|
|
1147
|
-
name: "contactDetails.email"
|
|
1148
|
-
},
|
|
1149
|
-
{
|
|
1150
|
-
helperText: "Enter your mobile phone number",
|
|
1151
|
-
keyboardType: "phone-pad",
|
|
1152
|
-
name: "contactDetails.mobilePhone",
|
|
1153
|
-
placeholder: "Mobile Phone Number"
|
|
1154
|
-
},
|
|
1155
|
-
{
|
|
1156
|
-
helperText: "Enter your landline phone number",
|
|
1157
|
-
keyboardType: "phone-pad",
|
|
1158
|
-
name: "contactDetails.landlinePhone",
|
|
1159
|
-
placeholder: "Landline Phone Number"
|
|
650
|
+
];
|
|
651
|
+
|
|
652
|
+
// src/formFields/categories/electronicsAndTechnology.ts
|
|
653
|
+
var electronicsAndTechnology = [
|
|
654
|
+
{
|
|
655
|
+
id: "electronics-technology",
|
|
656
|
+
name: "Electronics & Technology",
|
|
657
|
+
description: "New, second-hand, or handmade tech and digital items commonly found at markets.",
|
|
658
|
+
subcategories: [
|
|
659
|
+
{
|
|
660
|
+
id: "mobile-everyday-tech",
|
|
661
|
+
name: "Mobile & Everyday Tech",
|
|
662
|
+
items: [
|
|
663
|
+
{
|
|
664
|
+
id: "mobile-phone-accessories",
|
|
665
|
+
name: "Mobile & Phone Accessories",
|
|
666
|
+
description: "Phone cases, holders, screen protectors, charging cables, power banks, grips."
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
id: "other-mobile-gadgets",
|
|
670
|
+
name: "Other mobile gadgets",
|
|
671
|
+
description: "Stands, styluses, SIM tools, cleaning kits, wallet accessories."
|
|
672
|
+
}
|
|
673
|
+
]
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
id: "audio-music-creative-tech",
|
|
677
|
+
name: "Audio, Music & Creative Tech",
|
|
678
|
+
items: [
|
|
679
|
+
{
|
|
680
|
+
id: "audio-music-tech",
|
|
681
|
+
name: "Audio & Music Tech",
|
|
682
|
+
description: "Portable speakers, headphones, mini radios, Bluetooth adapters, sound accessories."
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
id: "instruments-music-gear",
|
|
686
|
+
name: "Instruments & Music Gear",
|
|
687
|
+
description: "Small electronic instruments, DIY synth kits, drum pads, loop machines."
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
id: "recording-creative-devices",
|
|
691
|
+
name: "Recording & Creative Devices",
|
|
692
|
+
description: "USB microphones, podcast tools, voice recorders, mobile lighting, content tools."
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
id: "other-audio-music-items",
|
|
696
|
+
name: "Other audio or music-related items",
|
|
697
|
+
description: "Musical gadgets or creative gear not listed above."
|
|
698
|
+
}
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
id: "diy-gadgets-secondhand-finds",
|
|
703
|
+
name: "DIY, Gadgets & Second-Hand Finds",
|
|
704
|
+
items: [
|
|
705
|
+
{
|
|
706
|
+
id: "diy-electronics-tools",
|
|
707
|
+
name: "DIY Electronics & Tools",
|
|
708
|
+
description: "LED lights, USB gadgets, circuit boards, repair kits, tech-themed toys, novelty items."
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
id: "other-tech-finds",
|
|
712
|
+
name: "Other Tech Finds",
|
|
713
|
+
description: "Used electronics, smart gadgets, wearable tech, calculators, tablet stands, e-waste upcycles."
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
id: "other-technology-innovation-items",
|
|
717
|
+
name: "Other technology or innovation-related items",
|
|
718
|
+
description: "Anything not covered but clearly tech-driven."
|
|
719
|
+
}
|
|
720
|
+
]
|
|
721
|
+
}
|
|
722
|
+
]
|
|
1160
723
|
}
|
|
1161
724
|
];
|
|
1162
725
|
|
|
1163
|
-
// src/formFields/
|
|
1164
|
-
var
|
|
1165
|
-
{
|
|
1166
|
-
...emailField,
|
|
1167
|
-
required: true
|
|
1168
|
-
},
|
|
1169
|
-
{
|
|
1170
|
-
helperText: "Enter password",
|
|
1171
|
-
keyboardType: "default",
|
|
1172
|
-
name: "password",
|
|
1173
|
-
placeholder: "Password",
|
|
1174
|
-
required: true,
|
|
1175
|
-
secureTextEntry: true
|
|
1176
|
-
}
|
|
1177
|
-
];
|
|
1178
|
-
var registerFields = [
|
|
1179
|
-
{
|
|
1180
|
-
helperText: "Enter first name",
|
|
1181
|
-
keyboardType: "default",
|
|
1182
|
-
name: "firstName",
|
|
1183
|
-
placeholder: "First Name",
|
|
1184
|
-
required: true
|
|
1185
|
-
},
|
|
1186
|
-
{
|
|
1187
|
-
helperText: "Enter last name",
|
|
1188
|
-
keyboardType: "default",
|
|
1189
|
-
name: "lastName",
|
|
1190
|
-
placeholder: "Last Name",
|
|
1191
|
-
required: true
|
|
1192
|
-
},
|
|
1193
|
-
{
|
|
1194
|
-
...emailField,
|
|
1195
|
-
required: true
|
|
1196
|
-
},
|
|
1197
|
-
{
|
|
1198
|
-
helperText: "Enter password",
|
|
1199
|
-
keyboardType: "default",
|
|
1200
|
-
name: "password",
|
|
1201
|
-
placeholder: "Password",
|
|
1202
|
-
required: true,
|
|
1203
|
-
secureTextEntry: true
|
|
1204
|
-
},
|
|
1205
|
-
{
|
|
1206
|
-
helperText: "Promotional code (optional)",
|
|
1207
|
-
keyboardType: "default",
|
|
1208
|
-
name: "promoCode",
|
|
1209
|
-
placeholder: "Promotional Code",
|
|
1210
|
-
required: false
|
|
1211
|
-
}
|
|
1212
|
-
];
|
|
1213
|
-
var requestPasswordResetFields = [
|
|
1214
|
-
{
|
|
1215
|
-
...emailField,
|
|
1216
|
-
helperText: "Enter email address to reset your password",
|
|
1217
|
-
required: true
|
|
1218
|
-
}
|
|
1219
|
-
];
|
|
1220
|
-
var validateVerificationTokenFields = [
|
|
1221
|
-
{
|
|
1222
|
-
...emailField,
|
|
1223
|
-
disabled: true,
|
|
1224
|
-
helperText: "Your email address"
|
|
1225
|
-
},
|
|
726
|
+
// src/formFields/categories/foodAndBeverages.ts
|
|
727
|
+
var foodAndBeverages = [
|
|
1226
728
|
{
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
729
|
+
id: "food-beverages",
|
|
730
|
+
name: "Food & Beverages",
|
|
731
|
+
description: "Fresh produce, drinks, sweet and savoury street food, ready-to-eat meals, and packaged goods.",
|
|
732
|
+
subcategories: [
|
|
733
|
+
{
|
|
734
|
+
id: "fresh-food-groceries",
|
|
735
|
+
name: "Fresh Food & Groceries",
|
|
736
|
+
items: [
|
|
737
|
+
{
|
|
738
|
+
id: "fruits-vegetables",
|
|
739
|
+
name: "Fruits & Vegetables",
|
|
740
|
+
description: "Fresh seasonal fruit, organic vegetables, specialty produce, berries, tropical fruit, heritage varieties."
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
id: "meat-seafood",
|
|
744
|
+
name: "Meat & Seafood",
|
|
745
|
+
description: "Butcher cuts, fresh fish, smoked meats, sausages, seafood platters, artisanal jerky."
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
id: "dairy-eggs",
|
|
749
|
+
name: "Dairy & Eggs",
|
|
750
|
+
description: "Farm eggs, handmade cheeses, yoghurt, fresh milk, goat\u2019s milk products."
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
id: "bakery-pastries",
|
|
754
|
+
name: "Bakery & Pastries",
|
|
755
|
+
description: "Freshly baked bread, sourdough, bagels, croissants, focaccia, traditional baked goods."
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
id: "spices-condiments",
|
|
759
|
+
name: "Spices & Condiments",
|
|
760
|
+
description: "Dried herbs, spice blends, specialty salts, hot sauces, infused oils, chutneys."
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
id: "packaged-specialty-foods",
|
|
764
|
+
name: "Packaged & Specialty Foods",
|
|
765
|
+
description: "Honey, jams, preserves, pickles, nut butters, sauces, pre-packaged snacks."
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
id: "other-fresh-food-items",
|
|
769
|
+
name: "Other fresh food items",
|
|
770
|
+
description: "Items that don\u2019t fit above, e.g. fermented foods, plant-based substitutes."
|
|
771
|
+
}
|
|
772
|
+
]
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
id: "beverages-specialty-drinks",
|
|
776
|
+
name: "Beverages & Specialty Drinks",
|
|
777
|
+
items: [
|
|
778
|
+
{
|
|
779
|
+
id: "fresh-juices-smoothies",
|
|
780
|
+
name: "Fresh Juices & Smoothies",
|
|
781
|
+
description: "Cold-pressed juices, detox blends, fruit smoothies, tropical mixes."
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
id: "coffee-teas",
|
|
785
|
+
name: "Coffee & Teas",
|
|
786
|
+
description: "Espresso, pour-over coffee, herbal teas, matcha, bubble tea, locally blended tea."
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
id: "dairy-plant-based-drinks",
|
|
790
|
+
name: "Dairy & Plant-Based Drinks",
|
|
791
|
+
description: "Milkshakes, lassis, almond/oat milk drinks, coconut water."
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
id: "alcoholic-beverages",
|
|
795
|
+
name: "Alcoholic Beverages",
|
|
796
|
+
description: "Local wines, craft beer, mead, cider, infused spirits, cocktail kits."
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
id: "other-beverages",
|
|
800
|
+
name: "Other beverages",
|
|
801
|
+
description: "Kombucha, kefir, energy drinks, non-alcoholic wines or beers."
|
|
802
|
+
}
|
|
803
|
+
]
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
id: "savoury-prepared-foods-street-food",
|
|
807
|
+
name: "Savoury Prepared Foods & Street Food",
|
|
808
|
+
items: [
|
|
809
|
+
{
|
|
810
|
+
id: "local-specialties",
|
|
811
|
+
name: "Local Specialties",
|
|
812
|
+
description: "Meat pies, hangi, seafood chowder, fry bread, traditional NZ dishes."
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
id: "asian-cuisine",
|
|
816
|
+
name: "Asian Cuisine",
|
|
817
|
+
description: "Sushi, bao buns, dumplings, ramen, satay, spring rolls, fried rice."
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
id: "mediterranean-cuisine",
|
|
821
|
+
name: "Mediterranean Cuisine",
|
|
822
|
+
description: "Falafel, hummus wraps, souvlaki, Greek salad, dolma."
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
id: "italian-delights",
|
|
826
|
+
name: "Italian Delights",
|
|
827
|
+
description: "Pizza, calzone, focaccia, fresh pasta, arancini."
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
id: "bbq-grilled-foods",
|
|
831
|
+
name: "BBQ & Grilled Foods",
|
|
832
|
+
description: "Kebabs, grilled chicken, ribs, burgers, sausages."
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
id: "savoury-crepes-pancakes",
|
|
836
|
+
name: "Savoury Crepes & Pancakes",
|
|
837
|
+
description: "Filled savoury crepes, mini savoury pancakes."
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
id: "savoury-baked-goods-pastries",
|
|
841
|
+
name: "Savoury Baked Goods & Pastries",
|
|
842
|
+
description: "Quiches, savoury muffins, filled savoury pastries, empanadas."
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
id: "vegan-vegetarian-dishes",
|
|
846
|
+
name: "Vegan & Vegetarian Dishes",
|
|
847
|
+
description: "Buddha bowls, plant-based burgers, salads, vegan sushi."
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
id: "other-savoury-foods",
|
|
851
|
+
name: "Other Savoury Foods",
|
|
852
|
+
description: "Fusion dishes, mixed platters, savoury meal kits."
|
|
853
|
+
}
|
|
854
|
+
]
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
id: "sweet-prepared-foods",
|
|
858
|
+
name: "Sweet Prepared Foods",
|
|
859
|
+
items: [
|
|
860
|
+
{
|
|
861
|
+
id: "sweet-crepes-pancakes-fried-treats",
|
|
862
|
+
name: "Sweet Crepes, Pancakes & Fried Treats",
|
|
863
|
+
description: "Crepes, waffles, mini pancakes, muffins, doughnuts."
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
id: "sweet-baked-goods-desserts",
|
|
867
|
+
name: "Sweet Baked Goods & Desserts",
|
|
868
|
+
description: "Cakes, pastries, slices, trifles, layered desserts."
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
id: "fruit-based-snacks",
|
|
872
|
+
name: "Fruit-Based Snacks",
|
|
873
|
+
description: "Fruit skewers, dried fruit packs, chocolate-dipped fruit."
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
id: "candy-confectionery",
|
|
877
|
+
name: "Candy & Confectionery",
|
|
878
|
+
description: "Fudge, handmade candies, toffee, nougat, brittle."
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
id: "other-sweet-foods",
|
|
882
|
+
name: "Other Sweet Foods",
|
|
883
|
+
description: "Fusion desserts, sweet platters, sweet meal kits."
|
|
884
|
+
}
|
|
885
|
+
]
|
|
886
|
+
}
|
|
887
|
+
]
|
|
1232
888
|
}
|
|
1233
889
|
];
|
|
1234
890
|
|
|
1235
|
-
// src/formFields/
|
|
1236
|
-
var
|
|
1237
|
-
{
|
|
1238
|
-
...emailField,
|
|
1239
|
-
disabled: true,
|
|
1240
|
-
helperText: "Email cannot be changed"
|
|
1241
|
-
},
|
|
1242
|
-
{
|
|
1243
|
-
helperText: "Enter first name",
|
|
1244
|
-
keyboardType: "default",
|
|
1245
|
-
name: "firstName",
|
|
1246
|
-
placeholder: "First Name"
|
|
1247
|
-
},
|
|
1248
|
-
{
|
|
1249
|
-
helperText: "Enter last name",
|
|
1250
|
-
keyboardType: "default",
|
|
1251
|
-
name: "lastName",
|
|
1252
|
-
placeholder: "Last Name"
|
|
1253
|
-
},
|
|
1254
|
-
{
|
|
1255
|
-
helperText: "Enter your new password",
|
|
1256
|
-
keyboardType: "default",
|
|
1257
|
-
name: "password",
|
|
1258
|
-
placeholder: "Password",
|
|
1259
|
-
secureTextEntry: true
|
|
1260
|
-
},
|
|
891
|
+
// src/formFields/categories/handmadeAndLocalProducts.ts
|
|
892
|
+
var handmadeAndLocalProducts = [
|
|
1261
893
|
{
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
894
|
+
id: "handmade-local-products",
|
|
895
|
+
name: "Handmade & Local Products",
|
|
896
|
+
description: "Unique, handmade, or locally produced artisan goods.",
|
|
897
|
+
subcategories: [
|
|
898
|
+
{
|
|
899
|
+
id: "home-living",
|
|
900
|
+
name: "Home & Living",
|
|
901
|
+
items: [
|
|
902
|
+
{
|
|
903
|
+
id: "ceramics-pottery",
|
|
904
|
+
name: "Ceramics & Pottery",
|
|
905
|
+
description: "Handmade mugs, vases, bowls, decorative plates, plant pots."
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
id: "candles-home-scents",
|
|
909
|
+
name: "Candles & Home Scents",
|
|
910
|
+
description: "Soy candles, beeswax candles, wax melts, incense sticks, room sprays and herbal sachets."
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
id: "botanical-crafts",
|
|
914
|
+
name: "Botanical Crafts",
|
|
915
|
+
description: "Dried-flower d\xE9cor and pressed-flower crafts"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
id: "textiles-embroidery",
|
|
919
|
+
name: "Textiles & Embroidery",
|
|
920
|
+
description: "Handsewn items, embroidered napkins, home linens, aprons, fabric gift wraps, handmade fabric bags, quilted goods, personalized textile gifts."
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
id: "woodcraft-metalcraft",
|
|
924
|
+
name: "Woodcraft & Metalcraft",
|
|
925
|
+
description: "Wooden boards, handmade frames, sculptures, metal signs, furniture."
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
id: "handmade-soaps-natural-body-goods",
|
|
929
|
+
name: "Handmade Soaps & Natural Body Goods",
|
|
930
|
+
description: "Handmade soaps, balms, oils, bath items"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
id: "seasonal-festive-crafts",
|
|
934
|
+
name: "Seasonal & Festive Crafts",
|
|
935
|
+
description: "Christmas, Easter and seasonal handmade decor"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
id: "other-home-living-products",
|
|
939
|
+
name: "Other home & living products",
|
|
940
|
+
description: "Items that don't fit above but serve home-related purposes."
|
|
941
|
+
}
|
|
942
|
+
]
|
|
943
|
+
},
|
|
944
|
+
{
|
|
945
|
+
id: "art-personal-expression",
|
|
946
|
+
name: "Art & Personal Expression",
|
|
947
|
+
items: [
|
|
948
|
+
{
|
|
949
|
+
id: "paintings-illustrations",
|
|
950
|
+
name: "Paintings & Illustrations",
|
|
951
|
+
description: "Paintings, canvas art, hand-drawn illustrations, digital prints, graphic art and calligraphy pieces."
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
id: "sculptures-carvings",
|
|
955
|
+
name: "Sculptures & Carvings ",
|
|
956
|
+
description: "Sculptures made from wood, stone, metal, clay or resin, carved decorative pieces and artistic 3D works."
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
id: "creative-handmade-alternative-art",
|
|
960
|
+
name: "Creative Handmade & Alternative Art",
|
|
961
|
+
description: "Handmade textile d\xE9cor, fabric ornaments, mixed-media art, creative craft pieces and modern handmade artworks."
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
id: "handmade-mini-figures-decor",
|
|
965
|
+
name: "Handmade Mini Figures & D\xE9cor",
|
|
966
|
+
description: "Small handmade figures, tiny houses and crafted mini decorative items."
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
id: "other-artistic-expressive-products",
|
|
970
|
+
name: "Other Artistic or Expressive Products",
|
|
971
|
+
description: "Custom artworks, specialty handmade d\xE9cor, unique crafts."
|
|
972
|
+
}
|
|
973
|
+
]
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
id: "handmade-jewellery-accessories-cultural-crafts",
|
|
977
|
+
name: "Handmade Jewellery, Accessories & Cultural Crafts",
|
|
978
|
+
items: [
|
|
979
|
+
{
|
|
980
|
+
id: "jewellery-handmade-items-nz-traditional-materials",
|
|
981
|
+
name: "Jewellery & Handmade Items from NZ Traditional Materials",
|
|
982
|
+
description: "Handmade jewellery and decorative or functional items crafted from pounamu, bone, wood and other traditional New Zealand materials."
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
id: "maori-pasifika-cultural-crafts-clothing",
|
|
986
|
+
name: "M\u0101ori & Pasifika Cultural Crafts and Clothing",
|
|
987
|
+
description: "Culturally inspired handmade items, accessories and garments featuring M\u0101ori or Pasifika motifs, traditional patterns and regional craftsmanship."
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
id: "traditional-handmade-clothing-jewellery-crafts-global-cultures",
|
|
991
|
+
name: "Traditional Handmade Clothing, Jewellery & Crafts from Global Cultures",
|
|
992
|
+
description: "Handcrafted clothing, jewellery and cultural items from diverse traditions \u2014 including Asian, African, European, Middle Eastern, Indian, Chinese, Japanese, Pacific, and other culturally significant handmade pieces."
|
|
993
|
+
},
|
|
994
|
+
{
|
|
995
|
+
id: "other-handmade-cultural-items",
|
|
996
|
+
name: "Other Handmade Cultural Items",
|
|
997
|
+
description: "Unique or culturally inspired handmade pieces not specifically covered in the categories above."
|
|
998
|
+
}
|
|
999
|
+
]
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
id: "gift-ideas-accessories",
|
|
1003
|
+
name: "Gift Ideas & Accessories",
|
|
1004
|
+
items: [
|
|
1005
|
+
{
|
|
1006
|
+
id: "handmade-pens-keychains-fridge-magnets",
|
|
1007
|
+
name: "Handmade Pens, Keychains and Fridge Magnets",
|
|
1008
|
+
description: null
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
id: "gift-packaging-wrapping-accessories",
|
|
1012
|
+
name: "Gift Packaging & Wrapping Accessories",
|
|
1013
|
+
description: null
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
id: "handmade-crochet-knitting-fibre-crafts",
|
|
1017
|
+
name: "Handmade Crochet, Knitting & Fibre Crafts",
|
|
1018
|
+
description: "Handmade crochet and knitted items, fabric-based crafts, small decorative pieces, creative fibre artworks and unique handcrafted accessories."
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
id: "handmade-toys-mini-play-items",
|
|
1022
|
+
name: "Handmade Toys & Mini Play Items",
|
|
1023
|
+
description: "small handmade toys, soft toys, wooden miniatures, crochet or felt play pieces"
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
id: "other-small-handmade-gifts-accessories",
|
|
1027
|
+
name: "Other small handmade gifts or accessories",
|
|
1028
|
+
description: "Compact creative items made to surprise or delight."
|
|
1029
|
+
}
|
|
1030
|
+
]
|
|
1031
|
+
}
|
|
1032
|
+
]
|
|
1267
1033
|
}
|
|
1268
1034
|
];
|
|
1269
1035
|
|
|
1270
|
-
// src/formFields/categories/
|
|
1271
|
-
var
|
|
1036
|
+
// src/formFields/categories/healthAndWellness.ts
|
|
1037
|
+
var healthAndWellness = [
|
|
1272
1038
|
{
|
|
1273
|
-
id: "
|
|
1274
|
-
name: "
|
|
1275
|
-
description: "
|
|
1039
|
+
id: "health-wellness",
|
|
1040
|
+
name: "Health & Wellness",
|
|
1041
|
+
description: "Natural products and services that promote wellbeing, body care, and holistic health.",
|
|
1276
1042
|
subcategories: [
|
|
1277
1043
|
{
|
|
1278
|
-
id: "
|
|
1279
|
-
name: "
|
|
1044
|
+
id: "body-skincare",
|
|
1045
|
+
name: "Body & Skincare",
|
|
1046
|
+
items: [
|
|
1047
|
+
{
|
|
1048
|
+
id: "skincare-body-products",
|
|
1049
|
+
name: "Skincare & Body Products",
|
|
1050
|
+
description: "Soaps, creams, lip balms, bath salts, bath bombs, body oils, natural deodorants."
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
id: "other-body-care-items",
|
|
1054
|
+
name: "Other body care items",
|
|
1055
|
+
description: "Additional handmade or eco-conscious personal care goods."
|
|
1056
|
+
}
|
|
1057
|
+
]
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
id: "aromatherapy-herbal-wellness",
|
|
1061
|
+
name: "Aromatherapy & Herbal Wellness",
|
|
1062
|
+
items: [
|
|
1063
|
+
{
|
|
1064
|
+
id: "aromatherapy-herbal-remedies",
|
|
1065
|
+
name: "Aromatherapy & Herbal Remedies",
|
|
1066
|
+
description: "Essential oils, herbal balms, massage oils, salves, natural teas, rollers."
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
id: "other-herbal-aroma-products",
|
|
1070
|
+
name: "Other herbal or aroma-based products",
|
|
1071
|
+
description: "Wellness blends, herb sachets, custom infusions."
|
|
1072
|
+
}
|
|
1073
|
+
]
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
id: "wellness-tools-accessories",
|
|
1077
|
+
name: "Wellness Tools & Accessories",
|
|
1280
1078
|
items: [
|
|
1281
1079
|
{
|
|
1282
|
-
id: "
|
|
1283
|
-
name: "
|
|
1284
|
-
description: "
|
|
1285
|
-
},
|
|
1286
|
-
{
|
|
1287
|
-
id: "baby-toddler-apparel",
|
|
1288
|
-
name: "Baby & Toddler Apparel",
|
|
1289
|
-
description: "Handmade baby clothes, soft shoes, bibs, hats, knitted sets."
|
|
1080
|
+
id: "wellness-accessories",
|
|
1081
|
+
name: "Wellness Accessories",
|
|
1082
|
+
description: "Yoga mats, meditation cushions, eye pillows, incense, smudging sticks, eco water bottles, wellness journals."
|
|
1290
1083
|
},
|
|
1291
1084
|
{
|
|
1292
|
-
id: "
|
|
1293
|
-
name: "
|
|
1294
|
-
description: "
|
|
1085
|
+
id: "spiritual-tools-crystals",
|
|
1086
|
+
name: "Spiritual Tools & Crystals",
|
|
1087
|
+
description: "Healing crystals, gemstone bracelets, pendulums, sprays, spiritual kits, altar decor."
|
|
1295
1088
|
},
|
|
1296
1089
|
{
|
|
1297
|
-
id: "other-
|
|
1298
|
-
name: "Other
|
|
1299
|
-
description: "
|
|
1090
|
+
id: "other-wellness-spiritual-items",
|
|
1091
|
+
name: "Other wellness or spiritual items",
|
|
1092
|
+
description: "Items that aid relaxation, focus, or inner work."
|
|
1300
1093
|
}
|
|
1301
1094
|
]
|
|
1302
|
-
}
|
|
1095
|
+
}
|
|
1096
|
+
]
|
|
1097
|
+
}
|
|
1098
|
+
];
|
|
1099
|
+
|
|
1100
|
+
// src/formFields/categories/homeGardenHousehold.ts
|
|
1101
|
+
var homeGardenHousehold = [
|
|
1102
|
+
{
|
|
1103
|
+
id: "home-garden-household-goods",
|
|
1104
|
+
name: "Home, Garden & Household Goods",
|
|
1105
|
+
description: "Functional, decorative, and eco-conscious products designed for everyday use indoors and outdoors.",
|
|
1106
|
+
subcategories: [
|
|
1303
1107
|
{
|
|
1304
|
-
id: "
|
|
1305
|
-
name: "
|
|
1108
|
+
id: "home-decor-living",
|
|
1109
|
+
name: "Home Decor & Living",
|
|
1306
1110
|
items: [
|
|
1307
1111
|
{
|
|
1308
|
-
id: "
|
|
1309
|
-
name: "
|
|
1310
|
-
description: "
|
|
1112
|
+
id: "home-decor",
|
|
1113
|
+
name: "Home Decor",
|
|
1114
|
+
description: "Cushions, wall art, table runners, vases, trays, mirrors, handmade centerpieces."
|
|
1311
1115
|
},
|
|
1312
1116
|
{
|
|
1313
|
-
id: "
|
|
1314
|
-
name: "
|
|
1315
|
-
description: "
|
|
1117
|
+
id: "kitchenware-dining",
|
|
1118
|
+
name: "Kitchenware & Dining",
|
|
1119
|
+
description: "Mugs, bowls, cutting boards, utensils, jars, coasters, kitchen textiles."
|
|
1316
1120
|
},
|
|
1317
1121
|
{
|
|
1318
|
-
id: "
|
|
1319
|
-
name: "
|
|
1320
|
-
description: "
|
|
1122
|
+
id: "mini-figures-decor",
|
|
1123
|
+
name: "Mini Figures & D\xE9cor",
|
|
1124
|
+
description: "handmade or non-handmade small figures, tiny houses and miniature decorative items."
|
|
1321
1125
|
},
|
|
1322
1126
|
{
|
|
1323
|
-
id: "other-
|
|
1324
|
-
name: "Other
|
|
1325
|
-
description: "
|
|
1127
|
+
id: "other-indoor-home-items",
|
|
1128
|
+
name: "Other indoor home items",
|
|
1129
|
+
description: "Any decorative or practical household items not listed above."
|
|
1326
1130
|
}
|
|
1327
1131
|
]
|
|
1328
1132
|
},
|
|
1329
1133
|
{
|
|
1330
|
-
id: "
|
|
1331
|
-
name: "
|
|
1134
|
+
id: "cleaning-eco-essentials",
|
|
1135
|
+
name: "Cleaning & Eco Essentials",
|
|
1332
1136
|
items: [
|
|
1333
1137
|
{
|
|
1334
|
-
id: "
|
|
1335
|
-
name: "
|
|
1336
|
-
description: "
|
|
1138
|
+
id: "cleaning-eco-supplies",
|
|
1139
|
+
name: "Cleaning & Eco Supplies",
|
|
1140
|
+
description: "Beeswax wraps, reusable cloths, brushes, natural soaps, detergent bars, eco sponges."
|
|
1337
1141
|
},
|
|
1338
1142
|
{
|
|
1339
|
-
id: "other-
|
|
1340
|
-
name: "Other
|
|
1341
|
-
description: "
|
|
1143
|
+
id: "other-eco-cleaning-items",
|
|
1144
|
+
name: "Other eco or cleaning items",
|
|
1145
|
+
description: "Environmentally friendly goods not listed above."
|
|
1342
1146
|
}
|
|
1343
1147
|
]
|
|
1344
1148
|
},
|
|
1345
1149
|
{
|
|
1346
|
-
id: "
|
|
1347
|
-
name: "
|
|
1150
|
+
id: "garden-outdoor-living",
|
|
1151
|
+
name: "Garden & Outdoor Living",
|
|
1348
1152
|
items: [
|
|
1349
1153
|
{
|
|
1350
|
-
id: "
|
|
1351
|
-
name: "
|
|
1352
|
-
description: "
|
|
1154
|
+
id: "plants-botanical-decor",
|
|
1155
|
+
name: "Plants & Botanical Decor",
|
|
1156
|
+
description: "Potted herbs, succulents, dried flowers, terrariums, plant-based ornaments."
|
|
1353
1157
|
},
|
|
1354
1158
|
{
|
|
1355
|
-
id: "
|
|
1356
|
-
name: "
|
|
1357
|
-
description: "
|
|
1159
|
+
id: "fresh-flowers-botanical-bouquets",
|
|
1160
|
+
name: "Fresh Flowers & Botanical Bouquets",
|
|
1161
|
+
description: "Cut flowers, seasonal bouquets, simple floral arrangements, native flower selections, and other fresh botanical items."
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
id: "natural-decor-nature-inspired-elements",
|
|
1165
|
+
name: "Natural Decor & Nature-Inspired Elements",
|
|
1166
|
+
description: "Seashell d\xE9cor, driftwood pieces, sand ornaments, natural wood accents, stone or mineral decorations, and other nature-based decorative items."
|
|
1167
|
+
},
|
|
1168
|
+
{
|
|
1169
|
+
id: "garden-tools-outdoor-items",
|
|
1170
|
+
name: "Garden Tools & Outdoor Items",
|
|
1171
|
+
description: "Plant markers, garden signs, stakes, small tools, wind chimes, gifts."
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
id: "other-outdoor-garden-products",
|
|
1175
|
+
name: "Other outdoor or garden products",
|
|
1176
|
+
description: "Functional or decorative items for outside use."
|
|
1358
1177
|
}
|
|
1359
1178
|
]
|
|
1360
1179
|
}
|
|
@@ -1362,73 +1181,79 @@ var clothingAndFashion = [
|
|
|
1362
1181
|
}
|
|
1363
1182
|
];
|
|
1364
1183
|
|
|
1365
|
-
// src/formFields/categories/
|
|
1366
|
-
var
|
|
1184
|
+
// src/formFields/categories/petProductsAndAnimalGoods.ts
|
|
1185
|
+
var petProductsAndAnimalGoods = [
|
|
1367
1186
|
{
|
|
1368
|
-
id: "
|
|
1369
|
-
name: "
|
|
1370
|
-
description: "
|
|
1187
|
+
id: "pet-products-animal-goods",
|
|
1188
|
+
name: "Pet Products & Animal Goods",
|
|
1189
|
+
description: "Items for pets, pet lovers, or animal-themed market stalls.",
|
|
1371
1190
|
subcategories: [
|
|
1372
1191
|
{
|
|
1373
|
-
id: "
|
|
1374
|
-
name: "
|
|
1192
|
+
id: "products-for-pets",
|
|
1193
|
+
name: "Products for Pets",
|
|
1375
1194
|
items: [
|
|
1376
1195
|
{
|
|
1377
|
-
id: "
|
|
1378
|
-
name: "
|
|
1379
|
-
description: "
|
|
1196
|
+
id: "pet-food-treats",
|
|
1197
|
+
name: "Pet Food & Treats",
|
|
1198
|
+
description: "Homemade dog biscuits, cat snacks, natural chews, pet-safe cakes, training treats."
|
|
1380
1199
|
},
|
|
1381
1200
|
{
|
|
1382
|
-
id: "
|
|
1383
|
-
name: "
|
|
1384
|
-
description: "
|
|
1201
|
+
id: "apparel-toys-accessories",
|
|
1202
|
+
name: "Apparel, Toys & Accessories",
|
|
1203
|
+
description: "Leashes, collars, harnesses, toys, grooming tools, beds, travel gear, jumpers, bandanas."
|
|
1204
|
+
},
|
|
1205
|
+
{
|
|
1206
|
+
id: "other-pet-products",
|
|
1207
|
+
name: "Other pet products",
|
|
1208
|
+
description: "Any pet-related items not listed above."
|
|
1385
1209
|
}
|
|
1386
1210
|
]
|
|
1387
1211
|
},
|
|
1388
1212
|
{
|
|
1389
|
-
id: "
|
|
1390
|
-
name: "
|
|
1213
|
+
id: "small-pets-birds-exotic-animals",
|
|
1214
|
+
name: "Small Pets, Birds & Exotic Animals",
|
|
1391
1215
|
items: [
|
|
1392
1216
|
{
|
|
1393
|
-
id: "
|
|
1394
|
-
name: "
|
|
1395
|
-
description: "
|
|
1217
|
+
id: "products-small-pets-birds-exotics",
|
|
1218
|
+
name: "Products for Small Pets, Birds & Exotics",
|
|
1219
|
+
description: "Toys, enclosures, perches, feeding bowls, bedding, habitat decor, transport gear, and care items for birds, rabbits, hamsters, reptiles, turtles, aquarium pets, and other exotic species."
|
|
1396
1220
|
},
|
|
1397
1221
|
{
|
|
1398
|
-
id: "
|
|
1399
|
-
name: "
|
|
1400
|
-
description: "
|
|
1401
|
-
}
|
|
1222
|
+
id: "other-small-exotic-animal-items",
|
|
1223
|
+
name: "Other small or exotic animal items",
|
|
1224
|
+
description: "Unusual accessories for non-mainstream pets."
|
|
1225
|
+
}
|
|
1226
|
+
]
|
|
1227
|
+
},
|
|
1228
|
+
{
|
|
1229
|
+
id: "farm-working-animals",
|
|
1230
|
+
name: "Farm & Working Animals",
|
|
1231
|
+
items: [
|
|
1402
1232
|
{
|
|
1403
|
-
id: "
|
|
1404
|
-
name: "
|
|
1405
|
-
description: "
|
|
1233
|
+
id: "goods-for-farm-working-animals",
|
|
1234
|
+
name: "Goods for Farm & Working Animals",
|
|
1235
|
+
description: "Treats, care products, equipment, signage and accessories for chickens, goats, alpacas, horses, and other livestock."
|
|
1406
1236
|
},
|
|
1407
1237
|
{
|
|
1408
|
-
id: "other-
|
|
1409
|
-
name: "Other
|
|
1410
|
-
description: "
|
|
1238
|
+
id: "other-farm-animal-items",
|
|
1239
|
+
name: "Other farm animal-related items",
|
|
1240
|
+
description: "Rural, barnyard, or utility-specific gear not listed above."
|
|
1411
1241
|
}
|
|
1412
1242
|
]
|
|
1413
1243
|
},
|
|
1414
1244
|
{
|
|
1415
|
-
id: "
|
|
1416
|
-
name: "
|
|
1245
|
+
id: "animal-themed-gifts-custom-items",
|
|
1246
|
+
name: "Animal-Themed Gifts & Custom Items",
|
|
1417
1247
|
items: [
|
|
1418
1248
|
{
|
|
1419
|
-
id: "
|
|
1420
|
-
name: "
|
|
1421
|
-
description: "
|
|
1422
|
-
},
|
|
1423
|
-
{
|
|
1424
|
-
id: "other-tech-finds",
|
|
1425
|
-
name: "Other Tech Finds",
|
|
1426
|
-
description: "Used electronics, smart gadgets, wearable tech, calculators, tablet stands, e-waste upcycles."
|
|
1249
|
+
id: "pet-art-custom-gifts",
|
|
1250
|
+
name: "Pet Art & Custom Gifts",
|
|
1251
|
+
description: "Pet portraits, name tags, personalized bowls, breed-specific items, pet-themed home decor and stationery."
|
|
1427
1252
|
},
|
|
1428
1253
|
{
|
|
1429
|
-
id: "other-
|
|
1430
|
-
name: "Other
|
|
1431
|
-
description: "
|
|
1254
|
+
id: "other-animal-themed-gifts",
|
|
1255
|
+
name: "Other animal-themed gifts",
|
|
1256
|
+
description: "Artistic or sentimental items made for animal lovers."
|
|
1432
1257
|
}
|
|
1433
1258
|
]
|
|
1434
1259
|
}
|
|
@@ -1436,164 +1261,163 @@ var electronicsAndTechnology = [
|
|
|
1436
1261
|
}
|
|
1437
1262
|
];
|
|
1438
1263
|
|
|
1439
|
-
// src/formFields/categories/
|
|
1440
|
-
var
|
|
1264
|
+
// src/formFields/categories/serviceAndExperience.ts
|
|
1265
|
+
var serviceAndExperience = [
|
|
1441
1266
|
{
|
|
1442
|
-
id: "
|
|
1443
|
-
name: "
|
|
1444
|
-
description: "
|
|
1267
|
+
id: "services-experiences",
|
|
1268
|
+
name: "Services & Experiences",
|
|
1269
|
+
description: "On-site offerings that provide entertainment, personal care, learning, or interactive activities beyond products.",
|
|
1445
1270
|
subcategories: [
|
|
1446
1271
|
{
|
|
1447
|
-
id: "
|
|
1448
|
-
name: "
|
|
1272
|
+
id: "personal-care-body-art",
|
|
1273
|
+
name: "Personal Care & Body Art",
|
|
1449
1274
|
items: [
|
|
1450
1275
|
{
|
|
1451
|
-
id: "
|
|
1452
|
-
name: "
|
|
1453
|
-
description: "
|
|
1454
|
-
},
|
|
1455
|
-
{
|
|
1456
|
-
id: "meat-seafood",
|
|
1457
|
-
name: "Meat & Seafood",
|
|
1458
|
-
description: "Butcher cuts, fresh fish, smoked meats, sausages, seafood platters, artisanal jerky."
|
|
1459
|
-
},
|
|
1460
|
-
{
|
|
1461
|
-
id: "dairy-eggs",
|
|
1462
|
-
name: "Dairy & Eggs",
|
|
1463
|
-
description: "Farm eggs, handmade cheeses, yoghurt, fresh milk, goat\u2019s milk products."
|
|
1464
|
-
},
|
|
1465
|
-
{
|
|
1466
|
-
id: "bakery-pastries",
|
|
1467
|
-
name: "Bakery & Pastries",
|
|
1468
|
-
description: "Freshly baked bread, sourdough, bagels, croissants, focaccia, traditional baked goods."
|
|
1276
|
+
id: "nails-handcare",
|
|
1277
|
+
name: "Nails & Handcare",
|
|
1278
|
+
description: "Nail painting, decoration, quick manicures, temporary nail extensions."
|
|
1469
1279
|
},
|
|
1470
1280
|
{
|
|
1471
|
-
id: "
|
|
1472
|
-
name: "
|
|
1473
|
-
description: "
|
|
1281
|
+
id: "hair-styling-braiding",
|
|
1282
|
+
name: "Hair Styling & Braiding",
|
|
1283
|
+
description: "Hair braiding, plaits, child-friendly festival hairstyles."
|
|
1474
1284
|
},
|
|
1475
1285
|
{
|
|
1476
|
-
id: "
|
|
1477
|
-
name: "
|
|
1478
|
-
description: "
|
|
1286
|
+
id: "face-body-decoration",
|
|
1287
|
+
name: "Face & Body Decoration",
|
|
1288
|
+
description: "Henna, glitter tattoos, face painting, light makeup, eyelash styling, professional tattooing (where permitted)."
|
|
1479
1289
|
},
|
|
1480
1290
|
{
|
|
1481
|
-
id: "other-
|
|
1482
|
-
name: "Other
|
|
1483
|
-
description: "
|
|
1291
|
+
id: "other-beauty-grooming-services",
|
|
1292
|
+
name: "Other beauty or grooming services",
|
|
1293
|
+
description: "Small-scale personal care options offered on-site."
|
|
1484
1294
|
}
|
|
1485
1295
|
]
|
|
1486
1296
|
},
|
|
1487
1297
|
{
|
|
1488
|
-
id: "
|
|
1489
|
-
name: "
|
|
1298
|
+
id: "practical-wellness-services",
|
|
1299
|
+
name: "Practical & Wellness Services",
|
|
1490
1300
|
items: [
|
|
1491
1301
|
{
|
|
1492
|
-
id: "
|
|
1493
|
-
name: "
|
|
1494
|
-
description: "
|
|
1495
|
-
},
|
|
1496
|
-
{
|
|
1497
|
-
id: "coffee-teas",
|
|
1498
|
-
name: "Coffee & Teas",
|
|
1499
|
-
description: "Espresso, pour-over coffee, herbal teas, matcha, bubble tea, locally blended tea."
|
|
1500
|
-
},
|
|
1501
|
-
{
|
|
1502
|
-
id: "dairy-plant-based-drinks",
|
|
1503
|
-
name: "Dairy & Plant-Based Drinks",
|
|
1504
|
-
description: "Milkshakes, lassis, almond/oat milk drinks, coconut water."
|
|
1302
|
+
id: "mobile-practical-services",
|
|
1303
|
+
name: "Mobile & Practical Services",
|
|
1304
|
+
description: "Shoe repair, phone repairs, knife sharpening, key cutting, battery replacement, bike repairs, engraving."
|
|
1505
1305
|
},
|
|
1506
1306
|
{
|
|
1507
|
-
id: "
|
|
1508
|
-
name: "
|
|
1509
|
-
description: "
|
|
1307
|
+
id: "wellness-alternative-therapies",
|
|
1308
|
+
name: "Wellness & Alternative Therapies",
|
|
1309
|
+
description: "Massage, aromatherapy, reflexology, energy healing (e.g. Reiki), natural consultations."
|
|
1510
1310
|
},
|
|
1511
1311
|
{
|
|
1512
|
-
id: "other-
|
|
1513
|
-
name: "Other
|
|
1514
|
-
description: "
|
|
1312
|
+
id: "other-service-based-offerings",
|
|
1313
|
+
name: "Other service-based offerings",
|
|
1314
|
+
description: "Wellness or functional services not listed above."
|
|
1515
1315
|
}
|
|
1516
1316
|
]
|
|
1517
1317
|
},
|
|
1518
1318
|
{
|
|
1519
|
-
id: "
|
|
1520
|
-
name: "
|
|
1319
|
+
id: "creative-educational-experiences",
|
|
1320
|
+
name: "Creative & Educational Experiences",
|
|
1521
1321
|
items: [
|
|
1522
1322
|
{
|
|
1523
|
-
id: "
|
|
1524
|
-
name: "
|
|
1525
|
-
description: "
|
|
1526
|
-
},
|
|
1527
|
-
{
|
|
1528
|
-
id: "asian-cuisine",
|
|
1529
|
-
name: "Asian Cuisine",
|
|
1530
|
-
description: "Sushi, bao buns, dumplings, ramen, satay, spring rolls, fried rice."
|
|
1323
|
+
id: "creative-workshops-maker-services",
|
|
1324
|
+
name: "Creative Workshops & Maker Services",
|
|
1325
|
+
description: "Candle making, pottery, jewelry crafting, soap or balm workshops, calligraphy, seasonal crafts."
|
|
1531
1326
|
},
|
|
1532
1327
|
{
|
|
1533
|
-
id: "
|
|
1534
|
-
name: "
|
|
1535
|
-
description: "
|
|
1328
|
+
id: "education-awareness-stalls",
|
|
1329
|
+
name: "Education & Awareness Stalls",
|
|
1330
|
+
description: "Eco awareness, cultural storytelling, local history, first aid demos, health booths, sustainability education, kids\u2019 science displays."
|
|
1536
1331
|
},
|
|
1537
1332
|
{
|
|
1538
|
-
id: "
|
|
1539
|
-
name: "
|
|
1540
|
-
description: "
|
|
1541
|
-
}
|
|
1333
|
+
id: "other-creative-educational-services",
|
|
1334
|
+
name: "Other creative or educational services",
|
|
1335
|
+
description: "Informal learning, demonstrations, or community-focused sessions."
|
|
1336
|
+
}
|
|
1337
|
+
]
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
id: "kids-activities-family-fun",
|
|
1341
|
+
name: "Kids\u2019 Activities & Family Fun",
|
|
1342
|
+
items: [
|
|
1542
1343
|
{
|
|
1543
|
-
id: "
|
|
1544
|
-
name: "
|
|
1545
|
-
description: "
|
|
1344
|
+
id: "kids-activities-fun",
|
|
1345
|
+
name: "Kids\u2019 Activities & Fun",
|
|
1346
|
+
description: "Face painting, glitter tattoos, pony rides, bouncy castles, small amusement rides, balloon twisting, animal petting zones."
|
|
1546
1347
|
},
|
|
1547
1348
|
{
|
|
1548
|
-
id: "
|
|
1549
|
-
name: "
|
|
1550
|
-
description: "
|
|
1551
|
-
}
|
|
1349
|
+
id: "other-family-oriented-activities",
|
|
1350
|
+
name: "Other family-oriented activities",
|
|
1351
|
+
description: "On-site entertainment that engages children or family groups."
|
|
1352
|
+
}
|
|
1353
|
+
]
|
|
1354
|
+
}
|
|
1355
|
+
]
|
|
1356
|
+
}
|
|
1357
|
+
];
|
|
1358
|
+
|
|
1359
|
+
// src/formFields/categories/toysChildren.ts
|
|
1360
|
+
var toysChildren = [
|
|
1361
|
+
{
|
|
1362
|
+
id: "toys-childrens-items",
|
|
1363
|
+
name: "Toys & Children\u2019s Items",
|
|
1364
|
+
description: "Products and services made for or inspired by children.",
|
|
1365
|
+
subcategories: [
|
|
1366
|
+
{
|
|
1367
|
+
id: "toys-playthings",
|
|
1368
|
+
name: "Toys & Playthings",
|
|
1369
|
+
items: [
|
|
1552
1370
|
{
|
|
1553
|
-
id: "
|
|
1554
|
-
name: "
|
|
1555
|
-
description: "
|
|
1371
|
+
id: "toys-classic-electric-character",
|
|
1372
|
+
name: "Toys \u2013 Classic, Electric & Character-Based",
|
|
1373
|
+
description: "Building blocks, dolls, puzzles, plush animals, toy vehicles, remote-control toys, light-up gadgets, character figurines, themed playsets."
|
|
1556
1374
|
},
|
|
1557
1375
|
{
|
|
1558
|
-
id: "
|
|
1559
|
-
name: "
|
|
1560
|
-
description: "
|
|
1376
|
+
id: "handmade-toys-crafty-playthings",
|
|
1377
|
+
name: "Handmade Toys & Crafty Playthings",
|
|
1378
|
+
description: "Wooden puzzles, crocheted animals, felt toys, fabric dolls, DIY kits, nature-inspired games, sensory toys."
|
|
1561
1379
|
},
|
|
1562
1380
|
{
|
|
1563
|
-
id: "other-
|
|
1564
|
-
name: "Other
|
|
1565
|
-
description: "
|
|
1381
|
+
id: "other-play-items",
|
|
1382
|
+
name: "Other play items",
|
|
1383
|
+
description: "Toys not listed above, including limited-edition or hybrid items."
|
|
1566
1384
|
}
|
|
1567
1385
|
]
|
|
1568
1386
|
},
|
|
1569
1387
|
{
|
|
1570
|
-
id: "
|
|
1571
|
-
name: "
|
|
1388
|
+
id: "educational-developmental",
|
|
1389
|
+
name: "Educational & Developmental",
|
|
1572
1390
|
items: [
|
|
1573
1391
|
{
|
|
1574
|
-
id: "
|
|
1575
|
-
name: "
|
|
1576
|
-
description: "
|
|
1392
|
+
id: "educational-developmental-tools",
|
|
1393
|
+
name: "Educational & Developmental Tools",
|
|
1394
|
+
description: "STEM kits, Montessori toys, storybooks, picture books, flashcards, early learning games, language tools."
|
|
1577
1395
|
},
|
|
1578
1396
|
{
|
|
1579
|
-
id: "
|
|
1580
|
-
name: "
|
|
1581
|
-
description: "
|
|
1582
|
-
}
|
|
1397
|
+
id: "other-educational-experience-based-items",
|
|
1398
|
+
name: "Other educational or experience-based items",
|
|
1399
|
+
description: "Creative experiences or learning aids not listed above."
|
|
1400
|
+
}
|
|
1401
|
+
]
|
|
1402
|
+
},
|
|
1403
|
+
{
|
|
1404
|
+
id: "baby-kidswear-accessories",
|
|
1405
|
+
name: "Baby & Kidswear + Accessories",
|
|
1406
|
+
items: [
|
|
1583
1407
|
{
|
|
1584
|
-
id: "
|
|
1585
|
-
name: "
|
|
1586
|
-
description: "
|
|
1408
|
+
id: "baby-kidswear-accessories",
|
|
1409
|
+
name: "Baby & Kidswear + Accessories",
|
|
1410
|
+
description: "Handmade baby clothes, toddler outfits, bibs, hats, headbands, bags, pacifier clips, soft shoes."
|
|
1587
1411
|
},
|
|
1588
1412
|
{
|
|
1589
|
-
id: "
|
|
1590
|
-
name: "
|
|
1591
|
-
description: "
|
|
1413
|
+
id: "baby-developmental-soft-toys",
|
|
1414
|
+
name: "Baby Developmental Soft Toys",
|
|
1415
|
+
description: "Sensory toys, rattles, fabric books, teething items, high-contrast cards, and early-skill. Montessori materials designed to support infants\u2019 cognitive and motor development."
|
|
1592
1416
|
},
|
|
1593
1417
|
{
|
|
1594
|
-
id: "other-
|
|
1595
|
-
name: "Other
|
|
1596
|
-
description: "
|
|
1418
|
+
id: "other-childrens-clothing-accessories",
|
|
1419
|
+
name: "Other children\u2019s clothing or accessories",
|
|
1420
|
+
description: "Unique fashion or functional pieces for kids."
|
|
1597
1421
|
}
|
|
1598
1422
|
]
|
|
1599
1423
|
}
|
|
@@ -1601,666 +1425,850 @@ var foodAndBeverages = [
|
|
|
1601
1425
|
}
|
|
1602
1426
|
];
|
|
1603
1427
|
|
|
1604
|
-
// src/formFields/categories/
|
|
1605
|
-
var
|
|
1428
|
+
// src/formFields/categories/vintageAndAntique.ts
|
|
1429
|
+
var vintageAndAntique = [
|
|
1606
1430
|
{
|
|
1607
|
-
id: "
|
|
1608
|
-
name: "
|
|
1609
|
-
description: "Unique,
|
|
1431
|
+
id: "vintage-antique",
|
|
1432
|
+
name: "Vintage & Antique",
|
|
1433
|
+
description: "Unique, historic, or nostalgic items with collectible or decorative value.",
|
|
1610
1434
|
subcategories: [
|
|
1611
1435
|
{
|
|
1612
|
-
id: "
|
|
1613
|
-
name: "
|
|
1436
|
+
id: "vintage-antique-clothing-accessories",
|
|
1437
|
+
name: "Vintage & Antique Clothing & Accessories",
|
|
1614
1438
|
items: [
|
|
1615
1439
|
{
|
|
1616
|
-
id: "
|
|
1617
|
-
name: "
|
|
1618
|
-
description: "
|
|
1619
|
-
},
|
|
1620
|
-
{
|
|
1621
|
-
id: "candles-home-scents",
|
|
1622
|
-
name: "Candles & Home Scents",
|
|
1623
|
-
description: "Soy candles, beeswax candles, wax melts, incense sticks, room sprays and herbal sachets."
|
|
1624
|
-
},
|
|
1625
|
-
{
|
|
1626
|
-
id: "botanical-crafts",
|
|
1627
|
-
name: "Botanical Crafts",
|
|
1628
|
-
description: "Dried-flower d\xE9cor and pressed-flower crafts"
|
|
1629
|
-
},
|
|
1630
|
-
{
|
|
1631
|
-
id: "textiles-embroidery",
|
|
1632
|
-
name: "Textiles & Embroidery",
|
|
1633
|
-
description: "Handsewn items, embroidered napkins, home linens, aprons, fabric gift wraps, handmade fabric bags, quilted goods, personalized textile gifts."
|
|
1634
|
-
},
|
|
1635
|
-
{
|
|
1636
|
-
id: "woodcraft-metalcraft",
|
|
1637
|
-
name: "Woodcraft & Metalcraft",
|
|
1638
|
-
description: "Wooden boards, handmade frames, sculptures, metal signs, furniture."
|
|
1639
|
-
},
|
|
1640
|
-
{
|
|
1641
|
-
id: "handmade-soaps-natural-body-goods",
|
|
1642
|
-
name: "Handmade Soaps & Natural Body Goods",
|
|
1643
|
-
description: "Handmade soaps, balms, oils, bath items"
|
|
1644
|
-
},
|
|
1645
|
-
{
|
|
1646
|
-
id: "seasonal-festive-crafts",
|
|
1647
|
-
name: "Seasonal & Festive Crafts",
|
|
1648
|
-
description: "Christmas, Easter and seasonal handmade decor"
|
|
1440
|
+
id: "clothing-vintage-fashion",
|
|
1441
|
+
name: "Clothing and wearable items from past eras",
|
|
1442
|
+
description: "Vintage dresses, jackets, hats, gloves, belts, bags, shoes, jewellery."
|
|
1649
1443
|
},
|
|
1650
1444
|
{
|
|
1651
|
-
id: "other-
|
|
1652
|
-
name: "Other
|
|
1653
|
-
description: "
|
|
1445
|
+
id: "other-clothing-accessory-items",
|
|
1446
|
+
name: "Other clothing-related items",
|
|
1447
|
+
description: "Hair clips, brooches, pins, scarf rings, small fashion accessories."
|
|
1654
1448
|
}
|
|
1655
1449
|
]
|
|
1656
1450
|
},
|
|
1657
1451
|
{
|
|
1658
|
-
id: "
|
|
1659
|
-
name: "
|
|
1452
|
+
id: "collectibles-memorabilia",
|
|
1453
|
+
name: "Collectibles & Memorabilia",
|
|
1660
1454
|
items: [
|
|
1661
1455
|
{
|
|
1662
|
-
id: "
|
|
1663
|
-
name: "
|
|
1664
|
-
description: "
|
|
1456
|
+
id: "small-collectible-items",
|
|
1457
|
+
name: "Small collectible items with historical or nostalgic significance",
|
|
1458
|
+
description: "Coins, stamps, toys, postcards, comics, sports cards, vintage packaging."
|
|
1665
1459
|
},
|
|
1666
1460
|
{
|
|
1667
|
-
id: "
|
|
1668
|
-
name: "
|
|
1669
|
-
description: "
|
|
1670
|
-
}
|
|
1461
|
+
id: "other-collectible-items",
|
|
1462
|
+
name: "Other collectible items",
|
|
1463
|
+
description: "Rare small objects, miniature figurines, special-edition items."
|
|
1464
|
+
}
|
|
1465
|
+
]
|
|
1466
|
+
},
|
|
1467
|
+
{
|
|
1468
|
+
id: "homewares-decor-curiosities",
|
|
1469
|
+
name: "Homewares, Decor & Curiosities",
|
|
1470
|
+
items: [
|
|
1671
1471
|
{
|
|
1672
|
-
id: "
|
|
1673
|
-
name: "
|
|
1674
|
-
description: "
|
|
1472
|
+
id: "decorative-functional-vintage-items",
|
|
1473
|
+
name: "Decorative or functional items with a vintage or antique aesthetic",
|
|
1474
|
+
description: "Teacups, plates, vases, mirrors, clocks, furniture, old tools, lanterns, typewriters, curiosities."
|
|
1675
1475
|
},
|
|
1676
1476
|
{
|
|
1677
|
-
id: "handmade-
|
|
1678
|
-
name: "Handmade
|
|
1679
|
-
description: "
|
|
1477
|
+
id: "handmade-vintage-art",
|
|
1478
|
+
name: "Handmade vintage art",
|
|
1479
|
+
description: "Paintings, sculptures, crafted pieces."
|
|
1680
1480
|
},
|
|
1681
1481
|
{
|
|
1682
|
-
id: "other-
|
|
1683
|
-
name: "Other
|
|
1684
|
-
description: "
|
|
1482
|
+
id: "other-home-decor-items",
|
|
1483
|
+
name: "Other home or decor items",
|
|
1484
|
+
description: "Decorative pieces not listed above, unique household objects."
|
|
1685
1485
|
}
|
|
1686
1486
|
]
|
|
1687
1487
|
},
|
|
1688
1488
|
{
|
|
1689
|
-
id: "
|
|
1690
|
-
name: "
|
|
1489
|
+
id: "vintage-media-printed-nostalgia",
|
|
1490
|
+
name: "Vintage Media & Printed Nostalgia",
|
|
1691
1491
|
items: [
|
|
1692
1492
|
{
|
|
1693
|
-
id: "
|
|
1694
|
-
name: "
|
|
1695
|
-
description: "
|
|
1696
|
-
},
|
|
1697
|
-
{
|
|
1698
|
-
id: "maori-pasifika-cultural-crafts-clothing",
|
|
1699
|
-
name: "M\u0101ori & Pasifika Cultural Crafts and Clothing",
|
|
1700
|
-
description: "Culturally inspired handmade items, accessories and garments featuring M\u0101ori or Pasifika motifs, traditional patterns and regional craftsmanship."
|
|
1701
|
-
},
|
|
1702
|
-
{
|
|
1703
|
-
id: "traditional-handmade-clothing-jewellery-crafts-global-cultures",
|
|
1704
|
-
name: "Traditional Handmade Clothing, Jewellery & Crafts from Global Cultures",
|
|
1705
|
-
description: "Handcrafted clothing, jewellery and cultural items from diverse traditions \u2014 including Asian, African, European, Middle Eastern, Indian, Chinese, Japanese, Pacific, and other culturally significant handmade pieces."
|
|
1493
|
+
id: "older-media-printed-works",
|
|
1494
|
+
name: "Older media formats and printed works",
|
|
1495
|
+
description: "Vinyl records, cassette tapes, CDs, DVDs, books, magazines, board games, posters."
|
|
1706
1496
|
},
|
|
1707
1497
|
{
|
|
1708
|
-
id: "other-
|
|
1709
|
-
name: "Other
|
|
1710
|
-
description: "
|
|
1498
|
+
id: "other-media-printed-items",
|
|
1499
|
+
name: "Other media or printed items",
|
|
1500
|
+
description: "Maps, manuals, leaflets, out-of-print materials."
|
|
1711
1501
|
}
|
|
1712
1502
|
]
|
|
1713
1503
|
},
|
|
1714
1504
|
{
|
|
1715
|
-
id: "
|
|
1716
|
-
name: "
|
|
1505
|
+
id: "other-vintage-antique-items",
|
|
1506
|
+
name: "Other Vintage & Antique Items",
|
|
1717
1507
|
items: [
|
|
1718
1508
|
{
|
|
1719
|
-
id: "
|
|
1720
|
-
name: "
|
|
1721
|
-
description:
|
|
1722
|
-
},
|
|
1723
|
-
{
|
|
1724
|
-
id: "gift-packaging-wrapping-accessories",
|
|
1725
|
-
name: "Gift Packaging & Wrapping Accessories",
|
|
1726
|
-
description: null
|
|
1727
|
-
},
|
|
1728
|
-
{
|
|
1729
|
-
id: "handmade-crochet-knitting-fibre-crafts",
|
|
1730
|
-
name: "Handmade Crochet, Knitting & Fibre Crafts",
|
|
1731
|
-
description: "Handmade crochet and knitted items, fabric-based crafts, small decorative pieces, creative fibre artworks and unique handcrafted accessories."
|
|
1732
|
-
},
|
|
1733
|
-
{
|
|
1734
|
-
id: "handmade-toys-mini-play-items",
|
|
1735
|
-
name: "Handmade Toys & Mini Play Items",
|
|
1736
|
-
description: "small handmade toys, soft toys, wooden miniatures, crochet or felt play pieces"
|
|
1737
|
-
},
|
|
1738
|
-
{
|
|
1739
|
-
id: "other-small-handmade-gifts-accessories",
|
|
1740
|
-
name: "Other small handmade gifts or accessories",
|
|
1741
|
-
description: "Compact creative items made to surprise or delight."
|
|
1509
|
+
id: "any-vintage-antique-items-not-listed",
|
|
1510
|
+
name: "Any vintage or antique items not listed above",
|
|
1511
|
+
description: "Unique, rare or uncategorised pieces."
|
|
1742
1512
|
}
|
|
1743
1513
|
]
|
|
1744
1514
|
}
|
|
1745
|
-
]
|
|
1746
|
-
}
|
|
1747
|
-
];
|
|
1515
|
+
]
|
|
1516
|
+
}
|
|
1517
|
+
];
|
|
1518
|
+
|
|
1519
|
+
// src/formFields/categories/index.ts
|
|
1520
|
+
var categoryColors = {
|
|
1521
|
+
"clothing-fashion": "#9D4EDD",
|
|
1522
|
+
"electronics-technology": "#3AF3FF",
|
|
1523
|
+
"food-beverages": "#FF0D1F",
|
|
1524
|
+
"handmade-local-products": "#EE7E54",
|
|
1525
|
+
"health-wellness": "#E23794",
|
|
1526
|
+
"home-garden-household-goods": "#067325",
|
|
1527
|
+
"pet-products-animal-goods": "#68E788",
|
|
1528
|
+
"services-experiences": "#2E16A5",
|
|
1529
|
+
"toys-childrens-items": "#FFF966",
|
|
1530
|
+
"vintage-antique": "#8D6748"
|
|
1531
|
+
};
|
|
1532
|
+
var assignColorToCategories = (categories) => {
|
|
1533
|
+
const result = categories.map((category) => ({
|
|
1534
|
+
...category,
|
|
1535
|
+
color: categoryColors[category.id]
|
|
1536
|
+
}));
|
|
1537
|
+
return result;
|
|
1538
|
+
};
|
|
1539
|
+
var availableCategories = assignColorToCategories([
|
|
1540
|
+
...foodAndBeverages,
|
|
1541
|
+
...handmadeAndLocalProducts,
|
|
1542
|
+
...clothingAndFashion,
|
|
1543
|
+
...homeGardenHousehold,
|
|
1544
|
+
...toysChildren,
|
|
1545
|
+
...healthAndWellness,
|
|
1546
|
+
...electronicsAndTechnology,
|
|
1547
|
+
...vintageAndAntique,
|
|
1548
|
+
...petProductsAndAnimalGoods,
|
|
1549
|
+
...serviceAndExperience
|
|
1550
|
+
]);
|
|
1551
|
+
|
|
1552
|
+
// src/yupSchema/global.ts
|
|
1553
|
+
var nzBankAccountRegex = /^\d{2}-\d{4}-\d{7}-\d{2}$/;
|
|
1554
|
+
var nzbnRegex = /^94\d{11}$/;
|
|
1555
|
+
var normalizedUrlTransform = () => yup.string().trim().transform(
|
|
1556
|
+
(value) => typeof value === "string" ? value.toLowerCase() : value
|
|
1557
|
+
).transform(
|
|
1558
|
+
(value) => typeof value === "string" ? normalizeUrl(value) : value
|
|
1559
|
+
);
|
|
1560
|
+
var noLeadingZeros = (fieldName, options = {}) => {
|
|
1561
|
+
return function(value, context) {
|
|
1562
|
+
const original = context.originalValue;
|
|
1563
|
+
if (typeof original !== "string") {
|
|
1564
|
+
return true;
|
|
1565
|
+
}
|
|
1566
|
+
if (original === "") {
|
|
1567
|
+
return true;
|
|
1568
|
+
}
|
|
1569
|
+
const regex = options.allowDecimal ? /^0\d+(\.\d+)?$/ : /^0\d+$/;
|
|
1570
|
+
if (regex.test(original)) {
|
|
1571
|
+
return context.createError({
|
|
1572
|
+
message: `${fieldName} must not have leading zeros`
|
|
1573
|
+
});
|
|
1574
|
+
}
|
|
1575
|
+
return true;
|
|
1576
|
+
};
|
|
1577
|
+
};
|
|
1578
|
+
var toOptionalNumber = (originalValue) => {
|
|
1579
|
+
if (originalValue === "" || originalValue === null || originalValue === void 0) {
|
|
1580
|
+
return void 0;
|
|
1581
|
+
}
|
|
1582
|
+
let parsed;
|
|
1583
|
+
if (typeof originalValue === "number") {
|
|
1584
|
+
parsed = originalValue;
|
|
1585
|
+
} else if (typeof originalValue === "string") {
|
|
1586
|
+
parsed = Number(originalValue.replace(",", "."));
|
|
1587
|
+
} else {
|
|
1588
|
+
parsed = void 0;
|
|
1589
|
+
}
|
|
1590
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
1591
|
+
};
|
|
1592
|
+
import_dayjs3.default.extend(import_isSameOrAfter2.default);
|
|
1593
|
+
import_dayjs3.default.extend(import_customParseFormat2.default);
|
|
1594
|
+
var emailRequiredSchema = yup.string().email("Invalid email address").required("Email is required").label("Email").transform(
|
|
1595
|
+
(value) => typeof value === "string" ? value.trim().toLowerCase() : value
|
|
1596
|
+
);
|
|
1597
|
+
var emailOptionalSchema = yup.string().nullable().notRequired().transform(
|
|
1598
|
+
(value) => typeof value === "string" ? value.trim().toLowerCase() : value
|
|
1599
|
+
).test(
|
|
1600
|
+
"is-valid-email",
|
|
1601
|
+
"Invalid email address",
|
|
1602
|
+
(value) => !value || yup.string().email().isValidSync(value)
|
|
1603
|
+
).label("Email");
|
|
1604
|
+
var mobileRegex = /^02\d{7,9}$/;
|
|
1605
|
+
var landlineRegex = /^0[34679]\d{7}$/;
|
|
1606
|
+
var mobilePhoneSchema = yup.string().label("Mobile Phone").nullable().notRequired().test(
|
|
1607
|
+
"mobile-phone",
|
|
1608
|
+
"Mobile must start with 02 and be 9\u201311 digits",
|
|
1609
|
+
(value) => !value || mobileRegex.test(value)
|
|
1610
|
+
// skip empty values
|
|
1611
|
+
);
|
|
1612
|
+
var landlinePhoneSchema = yup.string().label("Landline Phone").nullable().notRequired().test(
|
|
1613
|
+
"landline-phone",
|
|
1614
|
+
"Landline must start with 03, 04, 06, 07, or 09 (not 090) and have 7 digits after area code",
|
|
1615
|
+
(value) => !value || landlineRegex.test(value)
|
|
1616
|
+
// skip empty values
|
|
1617
|
+
);
|
|
1618
|
+
var contactDetailsSchema = yup.object({
|
|
1619
|
+
email: emailOptionalSchema,
|
|
1620
|
+
mobilePhone: mobilePhoneSchema,
|
|
1621
|
+
landlinePhone: landlinePhoneSchema
|
|
1622
|
+
}).nullable().default(void 0);
|
|
1623
|
+
var endDateNotInPastTest = yup.string().test("not-in-past", "End date cannot be in the past", (value) => {
|
|
1624
|
+
const now = (0, import_dayjs3.default)();
|
|
1625
|
+
return value ? (0, import_dayjs3.default)(value, dateFormat, true).isSameOrAfter(now, "day") : false;
|
|
1626
|
+
});
|
|
1627
|
+
var startDateNotInPastTest = yup.string().test("not-in-past", "Start date cannot be in the past", (value) => {
|
|
1628
|
+
const now = (0, import_dayjs3.default)();
|
|
1629
|
+
return value ? (0, import_dayjs3.default)(value, dateFormat, true).isSameOrAfter(now, "day") : false;
|
|
1630
|
+
});
|
|
1631
|
+
var endDateAfterStartDateTest = yup.string().test(
|
|
1632
|
+
"end-after-start",
|
|
1633
|
+
"End date cannot be before start date",
|
|
1634
|
+
function(value) {
|
|
1635
|
+
const { startDate } = this.parent;
|
|
1636
|
+
if (!startDate || !value) return false;
|
|
1637
|
+
return (0, import_dayjs3.default)(value, dateFormat, true).isSameOrAfter(
|
|
1638
|
+
(0, import_dayjs3.default)(startDate, dateFormat, true),
|
|
1639
|
+
"day"
|
|
1640
|
+
);
|
|
1641
|
+
}
|
|
1642
|
+
);
|
|
1643
|
+
var endTimeMustBeAfterStartTimeTest = yup.string().test(
|
|
1644
|
+
"valid-end-time",
|
|
1645
|
+
"End time must be after start time",
|
|
1646
|
+
function(value) {
|
|
1647
|
+
const { startDate, endDate, startTime } = this.parent;
|
|
1648
|
+
if (!startDate || !endDate || !startTime || !value) return false;
|
|
1649
|
+
const startDateTime = (0, import_dayjs3.default)(
|
|
1650
|
+
`${startDate} ${startTime}`,
|
|
1651
|
+
`${dateFormat} ${timeFormat}`,
|
|
1652
|
+
true
|
|
1653
|
+
);
|
|
1654
|
+
const endDateTime = (0, import_dayjs3.default)(
|
|
1655
|
+
`${endDate} ${value}`,
|
|
1656
|
+
`${dateFormat} ${timeFormat}`,
|
|
1657
|
+
true
|
|
1658
|
+
);
|
|
1659
|
+
return endDateTime.isAfter(startDateTime);
|
|
1660
|
+
}
|
|
1661
|
+
);
|
|
1662
|
+
var startTimeCannotBeInPastTest = yup.string().test(
|
|
1663
|
+
"valid-start-time",
|
|
1664
|
+
"Start time cannot be in the past",
|
|
1665
|
+
function(value) {
|
|
1666
|
+
const now = (0, import_dayjs3.default)();
|
|
1667
|
+
const { startDate } = this.parent;
|
|
1668
|
+
if (!startDate || !value) return false;
|
|
1669
|
+
const startDateTime = (0, import_dayjs3.default)(
|
|
1670
|
+
`${startDate} ${value}`,
|
|
1671
|
+
`${dateFormat} ${timeFormat}`,
|
|
1672
|
+
true
|
|
1673
|
+
);
|
|
1674
|
+
return startDateTime.isSameOrAfter(now);
|
|
1675
|
+
}
|
|
1676
|
+
);
|
|
1677
|
+
var dateTimeSchema = yup.object().shape({
|
|
1678
|
+
dateStatus: yup.mixed().oneOf(Object.values(EnumEventDateStatus)).required("Date status is required"),
|
|
1679
|
+
endDate: yup.string().label("End Date").concat(endDateNotInPastTest).concat(endDateAfterStartDateTest).required("End date is required"),
|
|
1680
|
+
endTime: yup.string().label("End Time").concat(endTimeMustBeAfterStartTimeTest).required("End time is required"),
|
|
1681
|
+
startDate: yup.string().label("Start Date").concat(startDateNotInPastTest).required("Start date is required"),
|
|
1682
|
+
startTime: yup.string().label("Start Time").concat(startTimeCannotBeInPastTest).required("Start time is required")
|
|
1683
|
+
});
|
|
1684
|
+
var stallTypesSchema = yup.object({
|
|
1685
|
+
label: yup.string().trim().label("Stall Type").required("Stall type is required"),
|
|
1686
|
+
price: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Price").min(0.1, "Stall price must be at least 0.1").required("Stall price is required").test(
|
|
1687
|
+
"no-leading-zeros",
|
|
1688
|
+
"",
|
|
1689
|
+
noLeadingZeros("Stall price", { allowDecimal: true })
|
|
1690
|
+
),
|
|
1691
|
+
stallCapacity: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Capacity").typeError("Stall capacity must be a number").min(0, "Stall capacity cannot be negative").integer("Stall capacity must be a whole number").required("Stall capacity is required").test("no-leading-zeros", "", noLeadingZeros("Stall capacity"))
|
|
1692
|
+
});
|
|
1693
|
+
var dateTimeWithPriceSchema = dateTimeSchema.shape({
|
|
1694
|
+
stallTypes: yup.array().of(stallTypesSchema).min(1, "At least one stall type is required").required("Stall types are required")
|
|
1695
|
+
});
|
|
1696
|
+
var locationSchema = yup.object().shape({
|
|
1697
|
+
city: yup.string().label("City").required("City is required"),
|
|
1698
|
+
country: yup.string().label("Country").required("Country is required"),
|
|
1699
|
+
fullAddress: yup.string().label("Address").required("Address is required"),
|
|
1700
|
+
geo: yup.object().shape({
|
|
1701
|
+
coordinates: yup.array().of(yup.number().required("Coordinates must be numbers")).length(
|
|
1702
|
+
2,
|
|
1703
|
+
"Coordinates must contain exactly two numbers (longitude, latitude)"
|
|
1704
|
+
).required("Coordinates are required"),
|
|
1705
|
+
type: yup.string().oneOf(["Point"], "Type must be 'Point'").default("Point").required("Type is required")
|
|
1706
|
+
}),
|
|
1707
|
+
latitude: yup.number().label("Latitude").required("Latitude is required"),
|
|
1708
|
+
longitude: yup.number().label("Longitude").required("Longitude is required"),
|
|
1709
|
+
region: yup.string().label("Region").required("Region is required")
|
|
1710
|
+
});
|
|
1711
|
+
var passwordSchema = yup.string().trim().label("Password").min(8, "Password must be at least 8 characters long").required("Password is required");
|
|
1712
|
+
var socialMediaSchema = yup.object({
|
|
1713
|
+
name: yup.mixed().oneOf(Object.values(EnumSocialMedia)).label("Social Media Name").optional(),
|
|
1714
|
+
link: yup.string().when("name", {
|
|
1715
|
+
is: (name) => !!name,
|
|
1716
|
+
// If name has a value
|
|
1717
|
+
then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
|
|
1718
|
+
otherwise: (schema) => schema.notRequired()
|
|
1719
|
+
})
|
|
1720
|
+
});
|
|
1721
|
+
var globalResourceSchema = yup.object().shape({
|
|
1722
|
+
active: yup.boolean().required("Active is required"),
|
|
1723
|
+
cover: yup.object({
|
|
1724
|
+
source: yup.string().label("Cover").required("Cover Image is required"),
|
|
1725
|
+
title: yup.string().label("Cover Title").required("Cover Title is required")
|
|
1726
|
+
}),
|
|
1727
|
+
contactDetails: contactDetailsSchema,
|
|
1728
|
+
description: yup.string().label("Description").trim().min(50).required("Description is required"),
|
|
1729
|
+
name: yup.string().label("Name").trim().min(3).required("Name is required"),
|
|
1730
|
+
region: yup.string().label("Region").required("Region is required"),
|
|
1731
|
+
socialMedia: yup.array().of(socialMediaSchema).nullable().default(null),
|
|
1732
|
+
associates: yup.array().of(
|
|
1733
|
+
yup.object().shape({
|
|
1734
|
+
email: emailRequiredSchema,
|
|
1735
|
+
resourceId: yup.string().label("Resource ID").required("Resource ID is required"),
|
|
1736
|
+
resourceType: yup.mixed().oneOf(Object.values(EnumResourceType)).label("Resource Type").required("Resource Type is required"),
|
|
1737
|
+
licence: yup.object({
|
|
1738
|
+
expiryDate: yup.date().required("Expiry Date is required"),
|
|
1739
|
+
issuedDate: yup.date().required("Issued Date is required"),
|
|
1740
|
+
licenceType: yup.mixed().oneOf(Object.values(EnumUserLicence)).label("Licence Type").required("Licence Type is required")
|
|
1741
|
+
})
|
|
1742
|
+
})
|
|
1743
|
+
).nullable().default(null)
|
|
1744
|
+
});
|
|
1745
|
+
var categorySchema = yup.array().of(
|
|
1746
|
+
yup.object().shape({
|
|
1747
|
+
id: yup.string().required("Category id is required"),
|
|
1748
|
+
name: yup.string().required("Category name is required"),
|
|
1749
|
+
subcategories: yup.array().of(
|
|
1750
|
+
yup.object().shape({
|
|
1751
|
+
id: yup.string().defined(),
|
|
1752
|
+
items: yup.array().of(
|
|
1753
|
+
yup.object().shape({
|
|
1754
|
+
id: yup.string().defined(),
|
|
1755
|
+
name: yup.string().defined()
|
|
1756
|
+
})
|
|
1757
|
+
).nullable(),
|
|
1758
|
+
name: yup.string().defined()
|
|
1759
|
+
})
|
|
1760
|
+
).min(1, "At least one subcategory is required").required("Subcategories are required")
|
|
1761
|
+
})
|
|
1762
|
+
);
|
|
1763
|
+
|
|
1764
|
+
// src/yupSchema/event.ts
|
|
1765
|
+
var yup2 = __toESM(require("yup"));
|
|
1766
|
+
var eventSchema = globalResourceSchema.shape({
|
|
1767
|
+
dateTime: yup2.array().of(dateTimeSchema).min(1, "At least one Event date required").max(50, "You can only add up to 50 Event dates").required("DateTime is required").test(
|
|
1768
|
+
"unique-start-date-time",
|
|
1769
|
+
"Start Date and Start Time must be unique",
|
|
1770
|
+
function(value) {
|
|
1771
|
+
if (!value) return true;
|
|
1772
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1773
|
+
for (const item of value) {
|
|
1774
|
+
if (!item.startDate || !item.startTime) continue;
|
|
1775
|
+
const key = `${item.startDate}_${item.startTime}`;
|
|
1776
|
+
if (seen.has(key)) {
|
|
1777
|
+
return false;
|
|
1778
|
+
}
|
|
1779
|
+
seen.add(key);
|
|
1780
|
+
}
|
|
1781
|
+
return true;
|
|
1782
|
+
}
|
|
1783
|
+
),
|
|
1784
|
+
eventType: yup2.mixed().oneOf(Object.values(EnumEventType), "Please select a valid Event type").required("Please select an Event type"),
|
|
1785
|
+
location: locationSchema,
|
|
1786
|
+
nzbn: yup2.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
|
|
1787
|
+
rainOrShine: yup2.boolean().label("Rain or Shine").required("Please specify if the event is rain or shine"),
|
|
1788
|
+
tags: yup2.array().of(yup2.string().defined()).min(1, "Tags are required").required("Tags are required")
|
|
1789
|
+
});
|
|
1790
|
+
var paymentInfoSchema = yup2.object({
|
|
1791
|
+
paymentMethod: yup2.mixed().oneOf(
|
|
1792
|
+
Object.values(EnumPaymentMethod),
|
|
1793
|
+
"Please select a valid Payment method"
|
|
1794
|
+
).required("Please select a Payment method"),
|
|
1795
|
+
accountHolderName: yup2.string().when("paymentMethod", {
|
|
1796
|
+
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
1797
|
+
then: (schema) => schema.required("Account holder name is required for bank transfer").trim(),
|
|
1798
|
+
otherwise: (schema) => schema.notRequired()
|
|
1799
|
+
}),
|
|
1800
|
+
accountNumber: yup2.string().when("paymentMethod", {
|
|
1801
|
+
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
1802
|
+
then: (schema) => schema.required("Account number is required for bank transfer").matches(
|
|
1803
|
+
nzBankAccountRegex,
|
|
1804
|
+
"Account number must be in format: XX-XXXX-XXXXXXX-XX"
|
|
1805
|
+
).trim(),
|
|
1806
|
+
otherwise: (schema) => schema.notRequired()
|
|
1807
|
+
}),
|
|
1808
|
+
link: yup2.string().when("paymentMethod", {
|
|
1809
|
+
is: (val) => val === "paypal" /* PAYPAL */ || val === "stripe" /* STRIPE */,
|
|
1810
|
+
then: () => normalizedUrlTransform().url("Link must be a valid URL").required("Link is required for PayPal/Stripe"),
|
|
1811
|
+
otherwise: (schema) => schema.notRequired()
|
|
1812
|
+
})
|
|
1813
|
+
});
|
|
1814
|
+
var eventInfoSchema = yup2.object().shape({
|
|
1815
|
+
applicationDeadlineHours: yup2.number().label("Application Deadline Hours").nullable().transform((value, originalValue) => originalValue === "" ? null : value).typeError("Application deadline hours must be a number").min(1, "Application deadline hours must be at least 1").required("Application deadline hours is required").test("no-leading-zeros", "", noLeadingZeros("Application deadline hours")),
|
|
1816
|
+
dateTime: yup2.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
|
|
1817
|
+
eventId: yup2.string().trim().required("Event ID is required"),
|
|
1818
|
+
packInTime: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Pack In Time").typeError("Pack in time must be a number").min(1, "Pack in time must be at least 1").required("Pack in time is required").test("no-leading-zeros", "", noLeadingZeros("Pack in time")),
|
|
1819
|
+
paymentDueHours: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Payment Due Hours").typeError("Payment due hours must be a number").min(1, "Payment due hours must be at least 1").required("Payment due hours is required").test("no-leading-zeros", "", noLeadingZeros("Payment due hours")).test(
|
|
1820
|
+
"payment-before-deadline",
|
|
1821
|
+
"Payment due hours must be less than application deadline hours",
|
|
1822
|
+
function(value) {
|
|
1823
|
+
const { applicationDeadlineHours } = this.parent;
|
|
1824
|
+
return value < applicationDeadlineHours;
|
|
1825
|
+
}
|
|
1826
|
+
),
|
|
1827
|
+
paymentInfo: yup2.array().of(paymentInfoSchema).min(1, "At least one payment method is required").required("Payment info is required"),
|
|
1828
|
+
refundPolicy: yup2.array().of(
|
|
1829
|
+
yup2.object({
|
|
1830
|
+
category: yup2.mixed().required("Category is required"),
|
|
1831
|
+
label: yup2.string().required("Label is required"),
|
|
1832
|
+
value: yup2.boolean().required("Value is required")
|
|
1833
|
+
})
|
|
1834
|
+
).min(1, "At least one refund policy item is required").test(
|
|
1835
|
+
"at-least-one-true",
|
|
1836
|
+
"At least one refund policy option must be selected",
|
|
1837
|
+
(value) => {
|
|
1838
|
+
if (!value) return false;
|
|
1839
|
+
return value.some((item) => item.value === true);
|
|
1840
|
+
}
|
|
1841
|
+
).required("Refund policy is required")
|
|
1842
|
+
});
|
|
1843
|
+
|
|
1844
|
+
// src/yupSchema/vendor.ts
|
|
1845
|
+
var yup3 = __toESM(require("yup"));
|
|
1846
|
+
var vendorMenuSchema = yup3.object({
|
|
1847
|
+
description: yup3.string().nullable().optional(),
|
|
1848
|
+
name: yup3.string().nullable().required("Product name is required"),
|
|
1849
|
+
price: yup3.number().transform((v, o) => o === "" ? null : v).min(1, "Product price must be greater than 0").required("Product price is required"),
|
|
1850
|
+
priceUnit: yup3.string().required("Product unit is required")
|
|
1851
|
+
});
|
|
1852
|
+
var vendorSchema = globalResourceSchema.shape({
|
|
1853
|
+
categories: categorySchema.min(1, "Category list must contain at least one item").required("Categories are required"),
|
|
1854
|
+
foodTruck: yup3.boolean().label("Food Truck").required("Please specify if the vendor is a food truck"),
|
|
1855
|
+
products: yup3.object().shape({
|
|
1856
|
+
active: yup3.boolean().nullable().optional(),
|
|
1857
|
+
productsList: yup3.array().of(vendorMenuSchema).nullable().optional()
|
|
1858
|
+
}).nullable().optional(),
|
|
1859
|
+
vendorType: yup3.mixed().oneOf(Object.values(EnumVendorType)).required("Please select a Vendor type")
|
|
1860
|
+
});
|
|
1861
|
+
var unregisteredVendorSchema = yup3.object().shape({
|
|
1862
|
+
categoryIds: yup3.array().of(yup3.string().defined()).min(1, "Category list must contain at least one item").required("Categories are required"),
|
|
1863
|
+
dateTime: yup3.array().of(dateTimeSchema).min(1, "DateTime list must contain at least one item").required("DateTime is required"),
|
|
1864
|
+
email: emailOptionalSchema,
|
|
1865
|
+
inviterId: yup3.string().required("Inviter ID is required"),
|
|
1866
|
+
name: yup3.string().label("Stallholder Name").trim().min(3, "Name must be at least 3 characters").required("Name is required"),
|
|
1867
|
+
region: yup3.string().label("Region").required("Region is required")
|
|
1868
|
+
});
|
|
1869
|
+
var vendorInfoSchema = yup3.object().shape({
|
|
1870
|
+
product: yup3.object().shape({
|
|
1871
|
+
foodFlavors: yup3.array().of(
|
|
1872
|
+
yup3.mixed().oneOf(Object.values(EnumFoodFlavor), "Invalid flavor selected").required("Flavor is required")
|
|
1873
|
+
).min(1, "Food flavors list must contain at least one item").required("Food flavors are required"),
|
|
1874
|
+
packaging: yup3.array().of(yup3.string().defined()).min(1, "Packaging list must contain at least one item").required("Packaging is required"),
|
|
1875
|
+
priceRange: yup3.object().shape({
|
|
1876
|
+
max: yup3.string().required("Max price is required").test(
|
|
1877
|
+
"is-number",
|
|
1878
|
+
"Max price must be a valid number",
|
|
1879
|
+
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
1880
|
+
).test(
|
|
1881
|
+
"is-greater",
|
|
1882
|
+
"Max price must be greater than or equal to Min price",
|
|
1883
|
+
function(max) {
|
|
1884
|
+
const { min } = this.parent;
|
|
1885
|
+
if (!max || !min) return true;
|
|
1886
|
+
const maxNum = Number(max);
|
|
1887
|
+
const minNum = Number(min);
|
|
1888
|
+
if (isNaN(maxNum) || isNaN(minNum)) return true;
|
|
1889
|
+
return maxNum >= minNum;
|
|
1890
|
+
}
|
|
1891
|
+
),
|
|
1892
|
+
min: yup3.string().required("Min price is required").test(
|
|
1893
|
+
"is-number",
|
|
1894
|
+
"Min price must be a valid number",
|
|
1895
|
+
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
1896
|
+
)
|
|
1897
|
+
}),
|
|
1898
|
+
producedIn: yup3.array().of(yup3.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required")
|
|
1899
|
+
}),
|
|
1900
|
+
requirements: yup3.object().shape({
|
|
1901
|
+
electricity: yup3.object().shape({
|
|
1902
|
+
details: yup3.string().trim().test(
|
|
1903
|
+
"details-required",
|
|
1904
|
+
"Please add electricity details",
|
|
1905
|
+
function(value) {
|
|
1906
|
+
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
1907
|
+
}
|
|
1908
|
+
).nullable(),
|
|
1909
|
+
isRequired: yup3.boolean().required("Electricity requirement is required")
|
|
1910
|
+
}),
|
|
1911
|
+
gazebo: yup3.object().shape({
|
|
1912
|
+
details: yup3.string().trim().test(
|
|
1913
|
+
"details-required",
|
|
1914
|
+
"Please add gazebo details",
|
|
1915
|
+
function(value) {
|
|
1916
|
+
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
1917
|
+
}
|
|
1918
|
+
).nullable(),
|
|
1919
|
+
isRequired: yup3.boolean().required("Gazebo requirement is required")
|
|
1920
|
+
}),
|
|
1921
|
+
table: yup3.object().shape({
|
|
1922
|
+
details: yup3.string().trim().test(
|
|
1923
|
+
"details-required",
|
|
1924
|
+
"Please add table details",
|
|
1925
|
+
function(value) {
|
|
1926
|
+
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
1927
|
+
}
|
|
1928
|
+
).nullable(),
|
|
1929
|
+
isRequired: yup3.boolean().required("Table requirement is required")
|
|
1930
|
+
})
|
|
1931
|
+
}).optional(),
|
|
1932
|
+
stallInfo: yup3.object().shape({
|
|
1933
|
+
size: yup3.object().shape({
|
|
1934
|
+
depth: yup3.string().required("Depth is required").test(
|
|
1935
|
+
"is-number",
|
|
1936
|
+
"Depth must be a valid number",
|
|
1937
|
+
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
1938
|
+
).test(
|
|
1939
|
+
"is-positive",
|
|
1940
|
+
"Depth must be greater than 0",
|
|
1941
|
+
(value) => value !== void 0 && value !== "" && Number(value) > 0
|
|
1942
|
+
),
|
|
1943
|
+
width: yup3.string().required("Width is required").test(
|
|
1944
|
+
"is-number",
|
|
1945
|
+
"Width must be a valid number",
|
|
1946
|
+
(value) => value !== void 0 && value !== "" && !isNaN(Number(value))
|
|
1947
|
+
).test(
|
|
1948
|
+
"is-positive",
|
|
1949
|
+
"Width must be greater than 0",
|
|
1950
|
+
(value) => value !== void 0 && value !== "" && Number(value) > 0
|
|
1951
|
+
)
|
|
1952
|
+
})
|
|
1953
|
+
}),
|
|
1954
|
+
vendorId: yup3.string().trim().required("Vendor ID is required")
|
|
1955
|
+
});
|
|
1956
|
+
|
|
1957
|
+
// src/yupSchema/user.ts
|
|
1958
|
+
var yup4 = __toESM(require("yup"));
|
|
1959
|
+
var userSchema = yup4.object().shape({
|
|
1960
|
+
active: yup4.boolean().required("Active is required"),
|
|
1961
|
+
email: emailRequiredSchema,
|
|
1962
|
+
firstName: yup4.string().label("First Name").trim().required("First name is required"),
|
|
1963
|
+
lastName: yup4.string().label("Last Name").trim().required("Last name is required"),
|
|
1964
|
+
isTester: yup4.boolean().required("Tester status is required"),
|
|
1965
|
+
password: yup4.string().nullable().trim().label("Password").min(8, "Password must be at least 8 characters long").notRequired(),
|
|
1966
|
+
preferredRegion: yup4.string().label("Preferred Region").required("Preferred region is required"),
|
|
1967
|
+
confirmPassword: yup4.string().nullable().trim().label("Confirm Password").when("password", {
|
|
1968
|
+
is: (val) => !!val,
|
|
1969
|
+
// only necessary if password typed
|
|
1970
|
+
then: (schema) => schema.required("Confirm Password is required").oneOf([yup4.ref("password")], "Passwords must match"),
|
|
1971
|
+
otherwise: (schema) => schema.notRequired()
|
|
1972
|
+
}),
|
|
1973
|
+
role: yup4.mixed().oneOf(Object.values(EnumUserRole)).required("Role is required")
|
|
1974
|
+
});
|
|
1975
|
+
|
|
1976
|
+
// src/yupSchema/auth.ts
|
|
1977
|
+
var yup5 = __toESM(require("yup"));
|
|
1978
|
+
var loginSchema = yup5.object().shape({
|
|
1979
|
+
email: emailRequiredSchema,
|
|
1980
|
+
password: passwordSchema
|
|
1981
|
+
});
|
|
1982
|
+
var registerSchema = yup5.object().shape({
|
|
1983
|
+
email: emailRequiredSchema,
|
|
1984
|
+
firstName: yup5.string().label("First Name").required("First Name is required"),
|
|
1985
|
+
lastName: yup5.string().label("Last Name").required("Last Name is required"),
|
|
1986
|
+
password: passwordSchema,
|
|
1987
|
+
preferredRegion: yup5.string().label("Preferred Region").required("Preferred Region is required")
|
|
1988
|
+
});
|
|
1989
|
+
var requestPasswordResetSchema = yup5.object().shape({
|
|
1990
|
+
email: emailRequiredSchema
|
|
1991
|
+
});
|
|
1992
|
+
var resetPasswordSchema = yup5.object().shape({
|
|
1993
|
+
email: emailRequiredSchema,
|
|
1994
|
+
password: passwordSchema,
|
|
1995
|
+
// eslint-disable-next-line sort-keys
|
|
1996
|
+
confirmPassword: yup5.string().oneOf([yup5.ref("password")], "Passwords must match").required("Confirm Password is required")
|
|
1997
|
+
});
|
|
1998
|
+
var validateVerificationTokenSchema = yup5.object().shape({
|
|
1999
|
+
email: emailRequiredSchema,
|
|
2000
|
+
verificationToken: yup5.string().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
|
|
2001
|
+
});
|
|
1748
2002
|
|
|
1749
|
-
// src/
|
|
1750
|
-
var
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
name: "Aromatherapy & Herbal Remedies",
|
|
1779
|
-
description: "Essential oils, herbal balms, massage oils, salves, natural teas, rollers."
|
|
1780
|
-
},
|
|
1781
|
-
{
|
|
1782
|
-
id: "other-herbal-aroma-products",
|
|
1783
|
-
name: "Other herbal or aroma-based products",
|
|
1784
|
-
description: "Wellness blends, herb sachets, custom infusions."
|
|
1785
|
-
}
|
|
1786
|
-
]
|
|
1787
|
-
},
|
|
1788
|
-
{
|
|
1789
|
-
id: "wellness-tools-accessories",
|
|
1790
|
-
name: "Wellness Tools & Accessories",
|
|
1791
|
-
items: [
|
|
1792
|
-
{
|
|
1793
|
-
id: "wellness-accessories",
|
|
1794
|
-
name: "Wellness Accessories",
|
|
1795
|
-
description: "Yoga mats, meditation cushions, eye pillows, incense, smudging sticks, eco water bottles, wellness journals."
|
|
1796
|
-
},
|
|
1797
|
-
{
|
|
1798
|
-
id: "spiritual-tools-crystals",
|
|
1799
|
-
name: "Spiritual Tools & Crystals",
|
|
1800
|
-
description: "Healing crystals, gemstone bracelets, pendulums, sprays, spiritual kits, altar decor."
|
|
1801
|
-
},
|
|
1802
|
-
{
|
|
1803
|
-
id: "other-wellness-spiritual-items",
|
|
1804
|
-
name: "Other wellness or spiritual items",
|
|
1805
|
-
description: "Items that aid relaxation, focus, or inner work."
|
|
1806
|
-
}
|
|
1807
|
-
]
|
|
2003
|
+
// src/yupSchema/ad.ts
|
|
2004
|
+
var yup6 = __toESM(require("yup"));
|
|
2005
|
+
var adResourceSchema = yup6.object({
|
|
2006
|
+
adDescription: yup6.string().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
|
|
2007
|
+
adImage: yup6.string().required("Ad image is required"),
|
|
2008
|
+
adStyle: yup6.mixed().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
|
|
2009
|
+
adTitle: yup6.string().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
|
|
2010
|
+
adType: yup6.mixed().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
|
|
2011
|
+
resourceId: yup6.string().required("Resource ID is required"),
|
|
2012
|
+
resourceName: yup6.string().required("Resource name is required"),
|
|
2013
|
+
resourceRegion: yup6.string().required("Resource region is required"),
|
|
2014
|
+
resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
|
|
2015
|
+
});
|
|
2016
|
+
var adSchema = yup6.object().shape({
|
|
2017
|
+
active: yup6.boolean().required("Active status is required"),
|
|
2018
|
+
end: yup6.date().required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
|
|
2019
|
+
if (!value) return false;
|
|
2020
|
+
const endDate = new Date(value);
|
|
2021
|
+
const now = /* @__PURE__ */ new Date();
|
|
2022
|
+
return endDate > now;
|
|
2023
|
+
}).when("start", {
|
|
2024
|
+
is: (val) => val && val.length > 0,
|
|
2025
|
+
then: (schema) => schema.test(
|
|
2026
|
+
"is-after-start",
|
|
2027
|
+
"End date must be after start date",
|
|
2028
|
+
function(value) {
|
|
2029
|
+
const { start } = this.parent;
|
|
2030
|
+
if (!value || !start) return false;
|
|
2031
|
+
return new Date(value) > new Date(start);
|
|
1808
2032
|
}
|
|
1809
|
-
|
|
1810
|
-
}
|
|
2033
|
+
)
|
|
2034
|
+
}),
|
|
2035
|
+
resource: adResourceSchema.required("Resource information is required"),
|
|
2036
|
+
showOn: yup6.array().of(yup6.mixed().oneOf(Object.values(EnumAdShowOn)).required()).min(1, "At least one display location is required").required("Display location is required"),
|
|
2037
|
+
status: yup6.mixed().oneOf(Object.values(EnumAdStatus)).required("Ad status is required"),
|
|
2038
|
+
start: yup6.date().when("status", {
|
|
2039
|
+
is: (status) => status !== "Active" /* ACTIVE */,
|
|
2040
|
+
then: () => yup6.date().required("Start date is required").test("is-future-date", "Start date must be in the future", (value) => {
|
|
2041
|
+
if (!value) return false;
|
|
2042
|
+
return value > /* @__PURE__ */ new Date();
|
|
2043
|
+
}),
|
|
2044
|
+
// Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
|
|
2045
|
+
otherwise: () => yup6.date().notRequired()
|
|
2046
|
+
}),
|
|
2047
|
+
targetRegion: yup6.array().of(yup6.string().required()).min(1, "At least one target region is required").required("Target region is required")
|
|
2048
|
+
});
|
|
2049
|
+
|
|
2050
|
+
// src/yupSchema/partner.ts
|
|
2051
|
+
var yup7 = __toESM(require("yup"));
|
|
2052
|
+
var partnerSchema = globalResourceSchema.shape({
|
|
2053
|
+
location: locationSchema,
|
|
2054
|
+
nzbn: yup7.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
|
|
2055
|
+
partnerType: yup7.mixed().oneOf(Object.values(EnumPartnerType), "Please select a valid Partner type").required("Please select a Partner type")
|
|
2056
|
+
});
|
|
2057
|
+
|
|
2058
|
+
// src/yupSchema/post.ts
|
|
2059
|
+
var yup8 = __toESM(require("yup"));
|
|
2060
|
+
|
|
2061
|
+
// src/formFields/vendor/vendorInfo.ts
|
|
2062
|
+
var packagingTypes = [
|
|
2063
|
+
"Biodegradable",
|
|
2064
|
+
"Compostable",
|
|
2065
|
+
"Fabric",
|
|
2066
|
+
"Glass",
|
|
2067
|
+
"Other",
|
|
2068
|
+
"Paper",
|
|
2069
|
+
"Plastic",
|
|
2070
|
+
"Recyclable",
|
|
2071
|
+
"Reusable",
|
|
2072
|
+
"Single-use",
|
|
2073
|
+
"Wood"
|
|
2074
|
+
];
|
|
2075
|
+
var producedIngTypes = [
|
|
2076
|
+
"Commercial Kitchen",
|
|
2077
|
+
"Home Premises",
|
|
2078
|
+
"Factory",
|
|
2079
|
+
"Farm",
|
|
2080
|
+
"Other"
|
|
1811
2081
|
];
|
|
2082
|
+
var packagingOptions = mapArrayToOptions(packagingTypes);
|
|
2083
|
+
var producedIngOptions = mapArrayToOptions(producedIngTypes);
|
|
2084
|
+
var foodFlavourOptions = Object.values(
|
|
2085
|
+
EnumFoodFlavor
|
|
2086
|
+
).map((flavour) => ({
|
|
2087
|
+
label: flavour.replaceAll("_", " "),
|
|
2088
|
+
value: flavour
|
|
2089
|
+
}));
|
|
1812
2090
|
|
|
1813
|
-
// src/formFields/
|
|
1814
|
-
var
|
|
1815
|
-
{
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
name: "Kitchenware & Dining",
|
|
1832
|
-
description: "Mugs, bowls, cutting boards, utensils, jars, coasters, kitchen textiles."
|
|
1833
|
-
},
|
|
1834
|
-
{
|
|
1835
|
-
id: "mini-figures-decor",
|
|
1836
|
-
name: "Mini Figures & D\xE9cor",
|
|
1837
|
-
description: "handmade or non-handmade small figures, tiny houses and miniature decorative items."
|
|
1838
|
-
},
|
|
1839
|
-
{
|
|
1840
|
-
id: "other-indoor-home-items",
|
|
1841
|
-
name: "Other indoor home items",
|
|
1842
|
-
description: "Any decorative or practical household items not listed above."
|
|
1843
|
-
}
|
|
1844
|
-
]
|
|
1845
|
-
},
|
|
1846
|
-
{
|
|
1847
|
-
id: "cleaning-eco-essentials",
|
|
1848
|
-
name: "Cleaning & Eco Essentials",
|
|
1849
|
-
items: [
|
|
1850
|
-
{
|
|
1851
|
-
id: "cleaning-eco-supplies",
|
|
1852
|
-
name: "Cleaning & Eco Supplies",
|
|
1853
|
-
description: "Beeswax wraps, reusable cloths, brushes, natural soaps, detergent bars, eco sponges."
|
|
1854
|
-
},
|
|
1855
|
-
{
|
|
1856
|
-
id: "other-eco-cleaning-items",
|
|
1857
|
-
name: "Other eco or cleaning items",
|
|
1858
|
-
description: "Environmentally friendly goods not listed above."
|
|
1859
|
-
}
|
|
1860
|
-
]
|
|
1861
|
-
},
|
|
1862
|
-
{
|
|
1863
|
-
id: "garden-outdoor-living",
|
|
1864
|
-
name: "Garden & Outdoor Living",
|
|
1865
|
-
items: [
|
|
1866
|
-
{
|
|
1867
|
-
id: "plants-botanical-decor",
|
|
1868
|
-
name: "Plants & Botanical Decor",
|
|
1869
|
-
description: "Potted herbs, succulents, dried flowers, terrariums, plant-based ornaments."
|
|
1870
|
-
},
|
|
1871
|
-
{
|
|
1872
|
-
id: "fresh-flowers-botanical-bouquets",
|
|
1873
|
-
name: "Fresh Flowers & Botanical Bouquets",
|
|
1874
|
-
description: "Cut flowers, seasonal bouquets, simple floral arrangements, native flower selections, and other fresh botanical items."
|
|
1875
|
-
},
|
|
1876
|
-
{
|
|
1877
|
-
id: "natural-decor-nature-inspired-elements",
|
|
1878
|
-
name: "Natural Decor & Nature-Inspired Elements",
|
|
1879
|
-
description: "Seashell d\xE9cor, driftwood pieces, sand ornaments, natural wood accents, stone or mineral decorations, and other nature-based decorative items."
|
|
1880
|
-
},
|
|
1881
|
-
{
|
|
1882
|
-
id: "garden-tools-outdoor-items",
|
|
1883
|
-
name: "Garden Tools & Outdoor Items",
|
|
1884
|
-
description: "Plant markers, garden signs, stakes, small tools, wind chimes, gifts."
|
|
1885
|
-
},
|
|
1886
|
-
{
|
|
1887
|
-
id: "other-outdoor-garden-products",
|
|
1888
|
-
name: "Other outdoor or garden products",
|
|
1889
|
-
description: "Functional or decorative items for outside use."
|
|
1890
|
-
}
|
|
1891
|
-
]
|
|
1892
|
-
}
|
|
1893
|
-
]
|
|
1894
|
-
}
|
|
2091
|
+
// src/formFields/event/event.ts
|
|
2092
|
+
var availableTagTypes = [
|
|
2093
|
+
{ icon: "human-male-female-child", label: "All Ages" },
|
|
2094
|
+
{ icon: "weather-sunny", label: "Day Market" },
|
|
2095
|
+
{ icon: "account-child", label: "Family Friendly" },
|
|
2096
|
+
{ icon: "ticket-percent", label: "Free Entry" },
|
|
2097
|
+
{ icon: "home-city", label: "Indoor Market" },
|
|
2098
|
+
{ icon: "music", label: "Live Music" },
|
|
2099
|
+
{ icon: "bus", label: "Near Bustop" },
|
|
2100
|
+
{ icon: "slide", label: "Near Playground" },
|
|
2101
|
+
{ icon: "train", label: "Near Train Station" },
|
|
2102
|
+
{ icon: "weather-night", label: "Night Market" },
|
|
2103
|
+
{ icon: "tree", label: "Outdoor Market" },
|
|
2104
|
+
{ icon: "car", label: "Parking Available" },
|
|
2105
|
+
{ icon: "dog", label: "Pet Friendly" },
|
|
2106
|
+
{ icon: "ship-wheel", label: "Port Nearby" },
|
|
2107
|
+
{ icon: "toilet", label: "Toilet Available" },
|
|
2108
|
+
{ icon: "wheelchair-accessibility", label: "Wheelchair Accessible" }
|
|
1895
2109
|
];
|
|
2110
|
+
var tagOptions = availableTagTypes.map((tag) => ({
|
|
2111
|
+
label: tag.label,
|
|
2112
|
+
value: tag.label
|
|
2113
|
+
}));
|
|
1896
2114
|
|
|
1897
|
-
// src/formFields/
|
|
1898
|
-
var
|
|
2115
|
+
// src/formFields/event/eventInfo.ts
|
|
2116
|
+
var stallTypes = [
|
|
2117
|
+
"1.8m table only",
|
|
2118
|
+
"2x2m mini stall",
|
|
2119
|
+
"3x3m tent site",
|
|
2120
|
+
"Corner stall",
|
|
2121
|
+
"Craft stall with power",
|
|
2122
|
+
"Craft stall without power",
|
|
2123
|
+
"Double stall (6x3m)",
|
|
2124
|
+
"Food truck site",
|
|
2125
|
+
"Food vendor with power",
|
|
2126
|
+
"Food vendor without power",
|
|
2127
|
+
"Inside hall stall",
|
|
2128
|
+
"Non-profit/community stall",
|
|
2129
|
+
"Outdoor open area",
|
|
2130
|
+
"Shared table space",
|
|
2131
|
+
"Wall-based vendor",
|
|
2132
|
+
"Workshop/seating area"
|
|
2133
|
+
];
|
|
2134
|
+
var stallTypeOptions = stallTypes.map((type) => ({
|
|
2135
|
+
label: type,
|
|
2136
|
+
price: 0,
|
|
2137
|
+
stallCapacity: 0
|
|
2138
|
+
}));
|
|
2139
|
+
|
|
2140
|
+
// src/formFields/global.ts
|
|
2141
|
+
var emailField = {
|
|
2142
|
+
helperText: "Enter email address",
|
|
2143
|
+
keyboardType: "email-address",
|
|
2144
|
+
name: "email",
|
|
2145
|
+
placeholder: "Email"
|
|
2146
|
+
};
|
|
2147
|
+
var companyContactFields = [
|
|
1899
2148
|
{
|
|
1900
|
-
|
|
1901
|
-
name: "
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
id: "apparel-toys-accessories",
|
|
1915
|
-
name: "Apparel, Toys & Accessories",
|
|
1916
|
-
description: "Leashes, collars, harnesses, toys, grooming tools, beds, travel gear, jumpers, bandanas."
|
|
1917
|
-
},
|
|
1918
|
-
{
|
|
1919
|
-
id: "other-pet-products",
|
|
1920
|
-
name: "Other pet products",
|
|
1921
|
-
description: "Any pet-related items not listed above."
|
|
1922
|
-
}
|
|
1923
|
-
]
|
|
1924
|
-
},
|
|
1925
|
-
{
|
|
1926
|
-
id: "small-pets-birds-exotic-animals",
|
|
1927
|
-
name: "Small Pets, Birds & Exotic Animals",
|
|
1928
|
-
items: [
|
|
1929
|
-
{
|
|
1930
|
-
id: "products-small-pets-birds-exotics",
|
|
1931
|
-
name: "Products for Small Pets, Birds & Exotics",
|
|
1932
|
-
description: "Toys, enclosures, perches, feeding bowls, bedding, habitat decor, transport gear, and care items for birds, rabbits, hamsters, reptiles, turtles, aquarium pets, and other exotic species."
|
|
1933
|
-
},
|
|
1934
|
-
{
|
|
1935
|
-
id: "other-small-exotic-animal-items",
|
|
1936
|
-
name: "Other small or exotic animal items",
|
|
1937
|
-
description: "Unusual accessories for non-mainstream pets."
|
|
1938
|
-
}
|
|
1939
|
-
]
|
|
1940
|
-
},
|
|
1941
|
-
{
|
|
1942
|
-
id: "farm-working-animals",
|
|
1943
|
-
name: "Farm & Working Animals",
|
|
1944
|
-
items: [
|
|
1945
|
-
{
|
|
1946
|
-
id: "goods-for-farm-working-animals",
|
|
1947
|
-
name: "Goods for Farm & Working Animals",
|
|
1948
|
-
description: "Treats, care products, equipment, signage and accessories for chickens, goats, alpacas, horses, and other livestock."
|
|
1949
|
-
},
|
|
1950
|
-
{
|
|
1951
|
-
id: "other-farm-animal-items",
|
|
1952
|
-
name: "Other farm animal-related items",
|
|
1953
|
-
description: "Rural, barnyard, or utility-specific gear not listed above."
|
|
1954
|
-
}
|
|
1955
|
-
]
|
|
1956
|
-
},
|
|
1957
|
-
{
|
|
1958
|
-
id: "animal-themed-gifts-custom-items",
|
|
1959
|
-
name: "Animal-Themed Gifts & Custom Items",
|
|
1960
|
-
items: [
|
|
1961
|
-
{
|
|
1962
|
-
id: "pet-art-custom-gifts",
|
|
1963
|
-
name: "Pet Art & Custom Gifts",
|
|
1964
|
-
description: "Pet portraits, name tags, personalized bowls, breed-specific items, pet-themed home decor and stationery."
|
|
1965
|
-
},
|
|
1966
|
-
{
|
|
1967
|
-
id: "other-animal-themed-gifts",
|
|
1968
|
-
name: "Other animal-themed gifts",
|
|
1969
|
-
description: "Artistic or sentimental items made for animal lovers."
|
|
1970
|
-
}
|
|
1971
|
-
]
|
|
1972
|
-
}
|
|
1973
|
-
]
|
|
2149
|
+
...emailField,
|
|
2150
|
+
name: "contactDetails.email"
|
|
2151
|
+
},
|
|
2152
|
+
{
|
|
2153
|
+
helperText: "Enter your mobile phone number",
|
|
2154
|
+
keyboardType: "phone-pad",
|
|
2155
|
+
name: "contactDetails.mobilePhone",
|
|
2156
|
+
placeholder: "Mobile Phone Number"
|
|
2157
|
+
},
|
|
2158
|
+
{
|
|
2159
|
+
helperText: "Enter your landline phone number",
|
|
2160
|
+
keyboardType: "phone-pad",
|
|
2161
|
+
name: "contactDetails.landlinePhone",
|
|
2162
|
+
placeholder: "Landline Phone Number"
|
|
1974
2163
|
}
|
|
1975
2164
|
];
|
|
1976
2165
|
|
|
1977
|
-
// src/formFields/
|
|
1978
|
-
var
|
|
2166
|
+
// src/formFields/auth.ts
|
|
2167
|
+
var loginFields = [
|
|
1979
2168
|
{
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
id: "other-service-based-offerings",
|
|
2026
|
-
name: "Other service-based offerings",
|
|
2027
|
-
description: "Wellness or functional services not listed above."
|
|
2028
|
-
}
|
|
2029
|
-
]
|
|
2030
|
-
},
|
|
2031
|
-
{
|
|
2032
|
-
id: "creative-educational-experiences",
|
|
2033
|
-
name: "Creative & Educational Experiences",
|
|
2034
|
-
items: [
|
|
2035
|
-
{
|
|
2036
|
-
id: "creative-workshops-maker-services",
|
|
2037
|
-
name: "Creative Workshops & Maker Services",
|
|
2038
|
-
description: "Candle making, pottery, jewelry crafting, soap or balm workshops, calligraphy, seasonal crafts."
|
|
2039
|
-
},
|
|
2040
|
-
{
|
|
2041
|
-
id: "education-awareness-stalls",
|
|
2042
|
-
name: "Education & Awareness Stalls",
|
|
2043
|
-
description: "Eco awareness, cultural storytelling, local history, first aid demos, health booths, sustainability education, kids\u2019 science displays."
|
|
2044
|
-
},
|
|
2045
|
-
{
|
|
2046
|
-
id: "other-creative-educational-services",
|
|
2047
|
-
name: "Other creative or educational services",
|
|
2048
|
-
description: "Informal learning, demonstrations, or community-focused sessions."
|
|
2049
|
-
}
|
|
2050
|
-
]
|
|
2051
|
-
},
|
|
2052
|
-
{
|
|
2053
|
-
id: "kids-activities-family-fun",
|
|
2054
|
-
name: "Kids\u2019 Activities & Family Fun",
|
|
2055
|
-
items: [
|
|
2056
|
-
{
|
|
2057
|
-
id: "kids-activities-fun",
|
|
2058
|
-
name: "Kids\u2019 Activities & Fun",
|
|
2059
|
-
description: "Face painting, glitter tattoos, pony rides, bouncy castles, small amusement rides, balloon twisting, animal petting zones."
|
|
2060
|
-
},
|
|
2061
|
-
{
|
|
2062
|
-
id: "other-family-oriented-activities",
|
|
2063
|
-
name: "Other family-oriented activities",
|
|
2064
|
-
description: "On-site entertainment that engages children or family groups."
|
|
2065
|
-
}
|
|
2066
|
-
]
|
|
2067
|
-
}
|
|
2068
|
-
]
|
|
2169
|
+
...emailField,
|
|
2170
|
+
required: true
|
|
2171
|
+
},
|
|
2172
|
+
{
|
|
2173
|
+
helperText: "Enter password",
|
|
2174
|
+
keyboardType: "default",
|
|
2175
|
+
name: "password",
|
|
2176
|
+
placeholder: "Password",
|
|
2177
|
+
required: true,
|
|
2178
|
+
secureTextEntry: true
|
|
2179
|
+
}
|
|
2180
|
+
];
|
|
2181
|
+
var registerFields = [
|
|
2182
|
+
{
|
|
2183
|
+
helperText: "Enter first name",
|
|
2184
|
+
keyboardType: "default",
|
|
2185
|
+
name: "firstName",
|
|
2186
|
+
placeholder: "First Name",
|
|
2187
|
+
required: true
|
|
2188
|
+
},
|
|
2189
|
+
{
|
|
2190
|
+
helperText: "Enter last name",
|
|
2191
|
+
keyboardType: "default",
|
|
2192
|
+
name: "lastName",
|
|
2193
|
+
placeholder: "Last Name",
|
|
2194
|
+
required: true
|
|
2195
|
+
},
|
|
2196
|
+
{
|
|
2197
|
+
...emailField,
|
|
2198
|
+
required: true
|
|
2199
|
+
},
|
|
2200
|
+
{
|
|
2201
|
+
helperText: "Enter password",
|
|
2202
|
+
keyboardType: "default",
|
|
2203
|
+
name: "password",
|
|
2204
|
+
placeholder: "Password",
|
|
2205
|
+
required: true,
|
|
2206
|
+
secureTextEntry: true
|
|
2207
|
+
},
|
|
2208
|
+
{
|
|
2209
|
+
helperText: "Promotional code (optional)",
|
|
2210
|
+
keyboardType: "default",
|
|
2211
|
+
name: "promoCode",
|
|
2212
|
+
placeholder: "Promotional Code",
|
|
2213
|
+
required: false
|
|
2069
2214
|
}
|
|
2070
2215
|
];
|
|
2071
|
-
|
|
2072
|
-
// src/formFields/categories/toysChildren.ts
|
|
2073
|
-
var toysChildren = [
|
|
2216
|
+
var requestPasswordResetFields = [
|
|
2074
2217
|
{
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
subcategories: [
|
|
2079
|
-
{
|
|
2080
|
-
id: "toys-playthings",
|
|
2081
|
-
name: "Toys & Playthings",
|
|
2082
|
-
items: [
|
|
2083
|
-
{
|
|
2084
|
-
id: "toys-classic-electric-character",
|
|
2085
|
-
name: "Toys \u2013 Classic, Electric & Character-Based",
|
|
2086
|
-
description: "Building blocks, dolls, puzzles, plush animals, toy vehicles, remote-control toys, light-up gadgets, character figurines, themed playsets."
|
|
2087
|
-
},
|
|
2088
|
-
{
|
|
2089
|
-
id: "handmade-toys-crafty-playthings",
|
|
2090
|
-
name: "Handmade Toys & Crafty Playthings",
|
|
2091
|
-
description: "Wooden puzzles, crocheted animals, felt toys, fabric dolls, DIY kits, nature-inspired games, sensory toys."
|
|
2092
|
-
},
|
|
2093
|
-
{
|
|
2094
|
-
id: "other-play-items",
|
|
2095
|
-
name: "Other play items",
|
|
2096
|
-
description: "Toys not listed above, including limited-edition or hybrid items."
|
|
2097
|
-
}
|
|
2098
|
-
]
|
|
2099
|
-
},
|
|
2100
|
-
{
|
|
2101
|
-
id: "educational-developmental",
|
|
2102
|
-
name: "Educational & Developmental",
|
|
2103
|
-
items: [
|
|
2104
|
-
{
|
|
2105
|
-
id: "educational-developmental-tools",
|
|
2106
|
-
name: "Educational & Developmental Tools",
|
|
2107
|
-
description: "STEM kits, Montessori toys, storybooks, picture books, flashcards, early learning games, language tools."
|
|
2108
|
-
},
|
|
2109
|
-
{
|
|
2110
|
-
id: "other-educational-experience-based-items",
|
|
2111
|
-
name: "Other educational or experience-based items",
|
|
2112
|
-
description: "Creative experiences or learning aids not listed above."
|
|
2113
|
-
}
|
|
2114
|
-
]
|
|
2115
|
-
},
|
|
2116
|
-
{
|
|
2117
|
-
id: "baby-kidswear-accessories",
|
|
2118
|
-
name: "Baby & Kidswear + Accessories",
|
|
2119
|
-
items: [
|
|
2120
|
-
{
|
|
2121
|
-
id: "baby-kidswear-accessories",
|
|
2122
|
-
name: "Baby & Kidswear + Accessories",
|
|
2123
|
-
description: "Handmade baby clothes, toddler outfits, bibs, hats, headbands, bags, pacifier clips, soft shoes."
|
|
2124
|
-
},
|
|
2125
|
-
{
|
|
2126
|
-
id: "baby-developmental-soft-toys",
|
|
2127
|
-
name: "Baby Developmental Soft Toys",
|
|
2128
|
-
description: "Sensory toys, rattles, fabric books, teething items, high-contrast cards, and early-skill. Montessori materials designed to support infants\u2019 cognitive and motor development."
|
|
2129
|
-
},
|
|
2130
|
-
{
|
|
2131
|
-
id: "other-childrens-clothing-accessories",
|
|
2132
|
-
name: "Other children\u2019s clothing or accessories",
|
|
2133
|
-
description: "Unique fashion or functional pieces for kids."
|
|
2134
|
-
}
|
|
2135
|
-
]
|
|
2136
|
-
}
|
|
2137
|
-
]
|
|
2218
|
+
...emailField,
|
|
2219
|
+
helperText: "Enter email address to reset your password",
|
|
2220
|
+
required: true
|
|
2138
2221
|
}
|
|
2139
2222
|
];
|
|
2140
|
-
|
|
2141
|
-
// src/formFields/categories/vintageAndAntique.ts
|
|
2142
|
-
var vintageAndAntique = [
|
|
2223
|
+
var validateVerificationTokenFields = [
|
|
2143
2224
|
{
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
name: "Clothing and wearable items from past eras",
|
|
2155
|
-
description: "Vintage dresses, jackets, hats, gloves, belts, bags, shoes, jewellery."
|
|
2156
|
-
},
|
|
2157
|
-
{
|
|
2158
|
-
id: "other-clothing-accessory-items",
|
|
2159
|
-
name: "Other clothing-related items",
|
|
2160
|
-
description: "Hair clips, brooches, pins, scarf rings, small fashion accessories."
|
|
2161
|
-
}
|
|
2162
|
-
]
|
|
2163
|
-
},
|
|
2164
|
-
{
|
|
2165
|
-
id: "collectibles-memorabilia",
|
|
2166
|
-
name: "Collectibles & Memorabilia",
|
|
2167
|
-
items: [
|
|
2168
|
-
{
|
|
2169
|
-
id: "small-collectible-items",
|
|
2170
|
-
name: "Small collectible items with historical or nostalgic significance",
|
|
2171
|
-
description: "Coins, stamps, toys, postcards, comics, sports cards, vintage packaging."
|
|
2172
|
-
},
|
|
2173
|
-
{
|
|
2174
|
-
id: "other-collectible-items",
|
|
2175
|
-
name: "Other collectible items",
|
|
2176
|
-
description: "Rare small objects, miniature figurines, special-edition items."
|
|
2177
|
-
}
|
|
2178
|
-
]
|
|
2179
|
-
},
|
|
2180
|
-
{
|
|
2181
|
-
id: "homewares-decor-curiosities",
|
|
2182
|
-
name: "Homewares, Decor & Curiosities",
|
|
2183
|
-
items: [
|
|
2184
|
-
{
|
|
2185
|
-
id: "decorative-functional-vintage-items",
|
|
2186
|
-
name: "Decorative or functional items with a vintage or antique aesthetic",
|
|
2187
|
-
description: "Teacups, plates, vases, mirrors, clocks, furniture, old tools, lanterns, typewriters, curiosities."
|
|
2188
|
-
},
|
|
2189
|
-
{
|
|
2190
|
-
id: "handmade-vintage-art",
|
|
2191
|
-
name: "Handmade vintage art",
|
|
2192
|
-
description: "Paintings, sculptures, crafted pieces."
|
|
2193
|
-
},
|
|
2194
|
-
{
|
|
2195
|
-
id: "other-home-decor-items",
|
|
2196
|
-
name: "Other home or decor items",
|
|
2197
|
-
description: "Decorative pieces not listed above, unique household objects."
|
|
2198
|
-
}
|
|
2199
|
-
]
|
|
2200
|
-
},
|
|
2201
|
-
{
|
|
2202
|
-
id: "vintage-media-printed-nostalgia",
|
|
2203
|
-
name: "Vintage Media & Printed Nostalgia",
|
|
2204
|
-
items: [
|
|
2205
|
-
{
|
|
2206
|
-
id: "older-media-printed-works",
|
|
2207
|
-
name: "Older media formats and printed works",
|
|
2208
|
-
description: "Vinyl records, cassette tapes, CDs, DVDs, books, magazines, board games, posters."
|
|
2209
|
-
},
|
|
2210
|
-
{
|
|
2211
|
-
id: "other-media-printed-items",
|
|
2212
|
-
name: "Other media or printed items",
|
|
2213
|
-
description: "Maps, manuals, leaflets, out-of-print materials."
|
|
2214
|
-
}
|
|
2215
|
-
]
|
|
2216
|
-
},
|
|
2217
|
-
{
|
|
2218
|
-
id: "other-vintage-antique-items",
|
|
2219
|
-
name: "Other Vintage & Antique Items",
|
|
2220
|
-
items: [
|
|
2221
|
-
{
|
|
2222
|
-
id: "any-vintage-antique-items-not-listed",
|
|
2223
|
-
name: "Any vintage or antique items not listed above",
|
|
2224
|
-
description: "Unique, rare or uncategorised pieces."
|
|
2225
|
-
}
|
|
2226
|
-
]
|
|
2227
|
-
}
|
|
2228
|
-
]
|
|
2225
|
+
...emailField,
|
|
2226
|
+
disabled: true,
|
|
2227
|
+
helperText: "Your email address"
|
|
2228
|
+
},
|
|
2229
|
+
{
|
|
2230
|
+
helperText: "Enter the Verification code sent to you by email",
|
|
2231
|
+
keyboardType: "number-pad",
|
|
2232
|
+
name: "verificationToken",
|
|
2233
|
+
placeholder: "Verification code",
|
|
2234
|
+
required: true
|
|
2229
2235
|
}
|
|
2230
2236
|
];
|
|
2231
2237
|
|
|
2232
|
-
// src/formFields/
|
|
2233
|
-
var
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
}
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2238
|
+
// src/formFields/user.ts
|
|
2239
|
+
var profileFields = [
|
|
2240
|
+
{
|
|
2241
|
+
...emailField,
|
|
2242
|
+
disabled: true,
|
|
2243
|
+
helperText: "Email cannot be changed"
|
|
2244
|
+
},
|
|
2245
|
+
{
|
|
2246
|
+
helperText: "Enter first name",
|
|
2247
|
+
keyboardType: "default",
|
|
2248
|
+
name: "firstName",
|
|
2249
|
+
placeholder: "First Name"
|
|
2250
|
+
},
|
|
2251
|
+
{
|
|
2252
|
+
helperText: "Enter last name",
|
|
2253
|
+
keyboardType: "default",
|
|
2254
|
+
name: "lastName",
|
|
2255
|
+
placeholder: "Last Name"
|
|
2256
|
+
},
|
|
2257
|
+
{
|
|
2258
|
+
helperText: "Enter your new password",
|
|
2259
|
+
keyboardType: "default",
|
|
2260
|
+
name: "password",
|
|
2261
|
+
placeholder: "Password",
|
|
2262
|
+
secureTextEntry: true
|
|
2263
|
+
},
|
|
2264
|
+
{
|
|
2265
|
+
helperText: "Confirm your new password",
|
|
2266
|
+
keyboardType: "default",
|
|
2267
|
+
name: "confirmPassword",
|
|
2268
|
+
placeholder: "Confirm Password",
|
|
2269
|
+
secureTextEntry: true
|
|
2270
|
+
}
|
|
2271
|
+
];
|
|
2264
2272
|
|
|
2265
2273
|
// src/formFields/socialMedia.ts
|
|
2266
2274
|
var socialMedia = [
|