@restaround/react 1.4.47 → 1.4.51

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.
@@ -1,2 +1,2 @@
1
- var E,A,_,R,I,T,D,N,O,L,C,P,S,U,V,M,n,B,W;!function(E){E.SINGLE="SINGLE",E.MULTIPLE="MULTIPLE"}(E||(E={})),function(E){E.MAX_DELIVERY_DISTANCE="maxDeliveryDistance",E.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",E.PICKUP_ORDER_ENABLED="pickupOrderEnabled",E.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",E.MIN_DELIVERY_AMOUNT="minDeliveryAmount",E.DELIVERY_FEE_AMOUNT="deliveryFeeAmount"}(A||(A={})),function(E){E.MAX_DELIVERY_DISTANCE="maxDeliveryDistance",E.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",E.PICKUP_ORDER_ENABLED="pickupOrderEnabled",E.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",E.MIN_DELIVERY_AMOUNT="minDeliveryAmount"}(_||(_={})),function(E){E.PHONE="PHONE",E.OTP="OTP",E.EMAIL="EMAIL"}(R||(R={})),function(E){E.HOME="HOME",E.WORK="WORK",E.TRAVEL="TRAVEL"}(I||(I={})),function(E){E.ORDER="feature_order"}(T||(T={})),function(E){E.ALPHA="ALPHA",E.BETA="BETA",E.ALL="ALL"}(D||(D={})),function(E){E.DINE_IN="DINE_IN",E.PICK_UP="PICK_UP",E.DELIVERY="DELIVERY"}(N||(N={})),function(E){E.DRAFT="DRAFT",E.PENDING="PENDING",E.CONFIRMED="CONFIRMED",E.PREPARING="PREPARING",E.READY="READY",E.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",E.DELIVERED="DELIVERED",E.COMPLETED="COMPLETED",E.CANCELLED="CANCELLED",E.FAILED="FAILED"}(O||(O={})),function(E){E.PENDING="PENDING",E.PREPARING="PREPARING",E.READY="READY",E.SERVED="SERVED"}(L||(L={})),function(E){E.CASH="CASH",E.CARD="CARD",E.WALLET="WALLET",E.TERMINAL="TERMINAL"}(C||(C={})),function(E){E.CART="CART",E.DETAILS="DETAILS",E.COMPLETED="COMPLETED"}(P||(P={})),function(E){E.LIST="list",E.GRID="grid"}(S||(S={})),function(E){E.APPETIZER="appetizer",E.MAIN_COURSE="mainCourse",E.CHEFS_SPECIAL="chefsSpecial",E.LIFETIME="lifeTime"}(U||(U={})),function(E){E.ACTIVE="ACTIVE",E.EXPIRED="EXPIRED",E.CANCELLED="CANCELLED"}(V||(V={})),function(E){E.SQUARE="SQUARE",E.CIRCLE="CIRCLE",E.RECTANGLE="RECTANGLE",E.RECTANGLE_VERTICAL="RECTANGLE_VERTICAL",E.SINGLE_AT_BAR="SINGLE_AT_BAR",E.OTHER="OTHER"}(M||(M={})),function(E){E.VACANT="VACANT",E.RESERVED="RESERVED",E.OCCUPIED="OCCUPIED",E.BLOCKED="BLOCKED",E.NEEDS_CLEANING="NEEDS_CLEANING",E.OUT_OF_SERVICE="OUT_OF_SERVICE",E.PENDING_CONFIRMATION="PENDING_CONFIRMATION",E.NO_SHOW="NO_SHOW"}(n||(n={})),function(E){E.MAIN_HALL="MAIN_HALL",E.PRIVATE_DINING="PRIVATE_DINING",E.VIP_ROOM="VIP_ROOM",E.BANQUET_HALL="BANQUET_HALL",E.BAR_AREA="BAR_AREA",E.LOUNGE="LOUNGE",E.OPEN_KITCHEN="OPEN_KITCHEN",E.BOOTH_SECTION="BOOTH_SECTION",E.MEZZANINE="MEZZANINE",E.WINE_CELLAR="WINE_CELLAR",E.TERRACE="TERRACE",E.PATIO="PATIO",E.GARDEN="GARDEN",E.COURTYARD="COURTYARD",E.ROOFTOP="ROOFTOP",E.BALCONY="BALCONY",E.SIDEWALK="SIDEWALK",E.POOLSIDE="POOLSIDE",E.SMOKING_AREA="SMOKING_AREA",E.NON_SMOKING="NON_SMOKING",E.FAMILY_SECTION="FAMILY_SECTION",E.KIDS_AREA="KIDS_AREA",E.WAITING_AREA="WAITING_AREA",E.DANCE_FLOOR="DANCE_FLOOR"}(B||(B={})),function(E){E.VIEW_BUSINESS="VIEW_BUSINESS",E.UPDATE_BUSINESS="UPDATE_BUSINESS",E.VIEW_ORDERS="VIEW_ORDERS",E.UPDATE_ORDER="UPDATE_ORDER",E.CREATE_ORDER="CREATE_ORDER",E.VIEW_QR_MENU="VIEW_QR_MENU",E.VIEW_MENU="VIEW_MENU",E.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",E.CREATE_MENU_ITEM="CREATE_MENU_ITEM",E.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",E.DELETE_MENU_ITEM="DELETE_MENU_ITEM",E.VIEW_CATEGORIES="VIEW_CATEGORIES",E.UPDATE_CATEGORY="UPDATE_CATEGORY",E.CREATE_CATEGORY="CREATE_CATEGORY",E.DELETE_CATEGORY="DELETE_CATEGORY",E.VIEW_ADDONS="VIEW_ADDONS",E.UPDATE_ADDON="UPDATE_ADDON",E.CREATE_ADDON="CREATE_ADDON",E.DELETE_ADDON="DELETE_ADDON",E.VIEW_TABLES="VIEW_TABLES",E.UPDATE_TABLE="UPDATE_TABLE",E.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",E.CREATE_TABLE="CREATE_TABLE",E.DELETE_TABLE="DELETE_TABLE",E.VIEW_BRANCHES="VIEW_BRANCHES",E.UPDATE_BRANCH="UPDATE_BRANCH",E.CREATE_BRANCH="CREATE_BRANCH",E.DELETE_BRANCH="DELETE_BRANCH",E.VIEW_EMPLOYEES="VIEW_EMPLOYEES",E.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",E.CREATE_EMPLOYEE="CREATE_EMPLOYEE",E.DELETE_EMPLOYEE="DELETE_EMPLOYEE",E.VIEW_ANALYTICS="VIEW_ANALYTICS",E.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",E.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",E.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",E.VIEW_QR_CODES="VIEW_QR_CODES",E.CREATE_QR_CODE="CREATE_QR_CODE",E.DELETE_QR_CODE="DELETE_QR_CODE",E.ALL="ALL",E.VIEW_INVENTORY="VIEW_INVENTORY",E.VIEW_PURCHASES="VIEW_PURCHASES",E.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",E.CREATE_PURCHASE="CREATE_PURCHASE",E.UPDATE_PURCHASE="UPDATE_PURCHASE",E.DELETE_PURCHASE="DELETE_PURCHASE",E.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",E.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",E.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",E.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",E.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",E.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",E.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",E.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS"}(W||(W={}));export{A as BranchSetting,_ as BusinessSetting,I as CustomerAddressType,R as CustomerAuthStep,W as EmployeePermission,T as Feature,D as FeatureSegment,E as MenuAddonSelectType,L as OrderItemStatus,O as OrderStatus,P as OrderStep,N as OrderType,C as PaymentMethod,U as PlanType,S as ProductView,V as SubscriptionStatus,B as TableLocation,M as TableShape,n as TableStatus};
1
+ var E,A,_,R,I,T,D,N,O,L,C,P,S,U,V,M,n,B,W;!function(E){E.SINGLE="SINGLE",E.MULTIPLE="MULTIPLE"}(E||(E={})),function(E){E.MAX_DELIVERY_DISTANCE="maxDeliveryDistance",E.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",E.PICKUP_ORDER_ENABLED="pickupOrderEnabled",E.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",E.MIN_DELIVERY_AMOUNT="minDeliveryAmount",E.DELIVERY_FEE_AMOUNT="deliveryFeeAmount"}(A||(A={})),function(E){E.MAX_DELIVERY_DISTANCE="maxDeliveryDistance",E.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",E.PICKUP_ORDER_ENABLED="pickupOrderEnabled",E.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",E.MIN_DELIVERY_AMOUNT="minDeliveryAmount"}(_||(_={})),function(E){E.PHONE="PHONE",E.OTP="OTP",E.EMAIL="EMAIL"}(R||(R={})),function(E){E.HOME="HOME",E.WORK="WORK",E.TRAVEL="TRAVEL"}(I||(I={})),function(E){E.UPLOAD_VIDEO="UPLOAD_VIDEO"}(T||(T={})),function(E){E.ALPHA="ALPHA",E.BETA="BETA",E.ALL="ALL"}(D||(D={})),function(E){E.DINE_IN="DINE_IN",E.PICK_UP="PICK_UP",E.DELIVERY="DELIVERY"}(N||(N={})),function(E){E.DRAFT="DRAFT",E.PENDING="PENDING",E.CONFIRMED="CONFIRMED",E.PREPARING="PREPARING",E.READY="READY",E.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",E.DELIVERED="DELIVERED",E.COMPLETED="COMPLETED",E.CANCELLED="CANCELLED",E.FAILED="FAILED"}(O||(O={})),function(E){E.PENDING="PENDING",E.PREPARING="PREPARING",E.READY="READY",E.SERVED="SERVED"}(L||(L={})),function(E){E.CASH="CASH",E.CARD="CARD",E.WALLET="WALLET",E.TERMINAL="TERMINAL"}(C||(C={})),function(E){E.CART="CART",E.DETAILS="DETAILS",E.COMPLETED="COMPLETED"}(P||(P={})),function(E){E.LIST="list",E.GRID="grid"}(S||(S={})),function(E){E.APPETIZER="appetizer",E.MAIN_COURSE="mainCourse",E.CHEFS_SPECIAL="chefsSpecial",E.LIFETIME="lifeTime"}(U||(U={})),function(E){E.ACTIVE="ACTIVE",E.EXPIRED="EXPIRED",E.CANCELLED="CANCELLED"}(V||(V={})),function(E){E.SQUARE="SQUARE",E.CIRCLE="CIRCLE",E.RECTANGLE="RECTANGLE",E.RECTANGLE_VERTICAL="RECTANGLE_VERTICAL",E.SINGLE_AT_BAR="SINGLE_AT_BAR",E.OTHER="OTHER"}(M||(M={})),function(E){E.VACANT="VACANT",E.RESERVED="RESERVED",E.OCCUPIED="OCCUPIED",E.BLOCKED="BLOCKED",E.NEEDS_CLEANING="NEEDS_CLEANING",E.OUT_OF_SERVICE="OUT_OF_SERVICE",E.PENDING_CONFIRMATION="PENDING_CONFIRMATION",E.NO_SHOW="NO_SHOW"}(n||(n={})),function(E){E.MAIN_HALL="MAIN_HALL",E.PRIVATE_DINING="PRIVATE_DINING",E.VIP_ROOM="VIP_ROOM",E.BANQUET_HALL="BANQUET_HALL",E.BAR_AREA="BAR_AREA",E.LOUNGE="LOUNGE",E.OPEN_KITCHEN="OPEN_KITCHEN",E.BOOTH_SECTION="BOOTH_SECTION",E.MEZZANINE="MEZZANINE",E.WINE_CELLAR="WINE_CELLAR",E.TERRACE="TERRACE",E.PATIO="PATIO",E.GARDEN="GARDEN",E.COURTYARD="COURTYARD",E.ROOFTOP="ROOFTOP",E.BALCONY="BALCONY",E.SIDEWALK="SIDEWALK",E.POOLSIDE="POOLSIDE",E.SMOKING_AREA="SMOKING_AREA",E.NON_SMOKING="NON_SMOKING",E.FAMILY_SECTION="FAMILY_SECTION",E.KIDS_AREA="KIDS_AREA",E.WAITING_AREA="WAITING_AREA",E.DANCE_FLOOR="DANCE_FLOOR"}(B||(B={})),function(E){E.VIEW_BUSINESS="VIEW_BUSINESS",E.UPDATE_BUSINESS="UPDATE_BUSINESS",E.VIEW_ORDERS="VIEW_ORDERS",E.UPDATE_ORDER="UPDATE_ORDER",E.CREATE_ORDER="CREATE_ORDER",E.VIEW_QR_MENU="VIEW_QR_MENU",E.VIEW_MENU="VIEW_MENU",E.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",E.CREATE_MENU_ITEM="CREATE_MENU_ITEM",E.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",E.DELETE_MENU_ITEM="DELETE_MENU_ITEM",E.VIEW_CATEGORIES="VIEW_CATEGORIES",E.UPDATE_CATEGORY="UPDATE_CATEGORY",E.CREATE_CATEGORY="CREATE_CATEGORY",E.DELETE_CATEGORY="DELETE_CATEGORY",E.VIEW_ADDONS="VIEW_ADDONS",E.UPDATE_ADDON="UPDATE_ADDON",E.CREATE_ADDON="CREATE_ADDON",E.DELETE_ADDON="DELETE_ADDON",E.VIEW_TABLES="VIEW_TABLES",E.UPDATE_TABLE="UPDATE_TABLE",E.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",E.CREATE_TABLE="CREATE_TABLE",E.DELETE_TABLE="DELETE_TABLE",E.VIEW_BRANCHES="VIEW_BRANCHES",E.UPDATE_BRANCH="UPDATE_BRANCH",E.CREATE_BRANCH="CREATE_BRANCH",E.DELETE_BRANCH="DELETE_BRANCH",E.VIEW_EMPLOYEES="VIEW_EMPLOYEES",E.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",E.CREATE_EMPLOYEE="CREATE_EMPLOYEE",E.DELETE_EMPLOYEE="DELETE_EMPLOYEE",E.VIEW_ANALYTICS="VIEW_ANALYTICS",E.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",E.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",E.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",E.VIEW_QR_CODES="VIEW_QR_CODES",E.CREATE_QR_CODE="CREATE_QR_CODE",E.DELETE_QR_CODE="DELETE_QR_CODE",E.ALL="ALL",E.VIEW_INVENTORY="VIEW_INVENTORY",E.VIEW_PURCHASES="VIEW_PURCHASES",E.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",E.CREATE_PURCHASE="CREATE_PURCHASE",E.UPDATE_PURCHASE="UPDATE_PURCHASE",E.DELETE_PURCHASE="DELETE_PURCHASE",E.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",E.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",E.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",E.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",E.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",E.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",E.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",E.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS"}(W||(W={}));export{A as BranchSetting,_ as BusinessSetting,I as CustomerAddressType,R as CustomerAuthStep,W as EmployeePermission,T as Feature,D as FeatureSegment,E as MenuAddonSelectType,L as OrderItemStatus,O as OrderStatus,P as OrderStep,N as OrderType,C as PaymentMethod,U as PlanType,S as ProductView,V as SubscriptionStatus,B as TableLocation,M as TableShape,n as TableStatus};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/modules/addon/models.ts","../../../src/modules/branch/models.ts","../../../src/modules/business/models.ts","../../../src/modules/customer/models.ts","../../../src/modules/feature/models.ts","../../../src/modules/order/models.ts","../../../src/modules/product/models.ts","../../../src/modules/subscription/models.ts","../../../src/modules/table/models.ts","../../../src/modules/user/models.ts"],"sourcesContent":["export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","export type BranchWorkHour = {\n\topenAt: string;\n\tcloseAt: string;\n};\n\nexport type BranchWorkDay = {\n\tday: number;\n\thours: BranchWorkHour | null;\n};\n\nexport type BranchWorkDays = {\n\tdays: BranchWorkDay[];\n};\n\nexport interface BranchSettings {\n\tdeliveryOrderEnabled: boolean;\n\tpickupOrderEnabled: boolean;\n\tdineInOrderEnabled: boolean;\n\tmaxDeliveryDistance: number;\n\tminDeliveryAmount: number;\n\tdeliveryFeeAmount: number;\n}\n\nexport enum BranchSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n\tDELIVERY_FEE_AMOUNT = \"deliveryFeeAmount\",\n}\n\nexport interface Branch {\n\tid: number;\n\tname: string;\n\tbusinessId: number;\n\taddress: string;\n\tlongitude?: number;\n\tlatitude?: number;\n\tphone?: string;\n\twhatsApp?: string;\n\ttelegram?: string;\n\twifiPassword?: string;\n\tcreatedAt?: number;\n\tcoverPhoto?: string;\n\tsettings?: BranchSettings;\n\topeningHours?: BranchWorkDays;\n\tdeliveryHours?: BranchWorkDays;\n}\n\nexport type BranchServes = {\n\tisOpen: boolean;\n\tisDelivering: boolean;\n};\n","import * as featureModels from \"../feature/models\";\nimport * as subscriptionModels from \"../subscription/models\";\n\nexport interface BusinessLanguage {\n\tid: number;\n\tcode: string;\n\tbusinessId: number;\n}\n\nexport enum BusinessSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n}\n\nexport interface Business {\n\tid: number;\n\tname: string;\n\tusername: string;\n\tavatar64?: string;\n\tavatar128?: string;\n\tavatar256?: string;\n\tcoverPhoto?: string;\n\tinstagram?: string;\n\tfacebook?: string;\n\ttiktok?: string;\n\tcreatedAt?: number;\n\tcurrency: string;\n\tlanguages: BusinessLanguage[];\n\tsubscriptions?: subscriptionModels.Subscription[];\n\tsegment?: featureModels.FeatureSegment;\n}\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","export enum Feature {\n\tORDER = \"feature_order\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { MenuAddon } from \"../addon/models\";\n\nexport interface ProductTranslation {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tlanguage: string;\n\tproductId?: number;\n}\n\nexport interface ProductVariantTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface ProductVariant {\n\tid?: number;\n\tprice: number;\n\ttranslations: ProductVariantTranslation[];\n\tproductId?: number;\n\tremove?: boolean;\n}\n\nexport interface Product {\n\tid: number;\n\tcategoryId: number;\n\tvat?: number;\n\tprice: number;\n\tvolume?: string; // 100qr/250ml/1kq\n\timage160?: string;\n\timage580?: string;\n\timage1024?: string;\n\ttranslations: ProductTranslation[];\n\tvariants: ProductVariant[];\n\taddons: MenuAddon[];\n\tavailable?: boolean;\n\tvisible?: boolean;\n\tposition?: number;\n}\n\nexport enum ProductView {\n\tLIST = \"list\",\n\tGRID = \"grid\",\n}\n\nexport interface DashboardProduct extends Omit<Product, \"addons\"> {\n\taddons: number[];\n}\n","export enum PlanType {\n\tAPPETIZER = \"appetizer\",\n\tMAIN_COURSE = \"mainCourse\",\n\tCHEFS_SPECIAL = \"chefsSpecial\",\n\tLIFETIME = \"lifeTime\",\n}\n\nexport interface PricingPlan {\n\ttitle: string;\n\tprice: {\n\t\tmonthly: number;\n\t\tannually: number;\n\t};\n\tdiscountedPrice?: number;\n\tribbonText?: string;\n}\n\nexport interface PricingPlans {\n\t[key: string]: PricingPlan;\n}\n\nexport type PricingInterval = \"monthly\" | \"annually\";\n\nexport enum SubscriptionStatus {\n\tACTIVE = \"ACTIVE\",\n\tEXPIRED = \"EXPIRED\",\n\tCANCELLED = \"CANCELLED\",\n}\n\nexport type BillingInterval = \"MONTH\" | \"YEAR\";\n\nexport interface Subscription {\n\tid: number;\n\tbillingInterval: BillingInterval;\n\tbillingIntervalCount: number;\n\tstartDate: string;\n\tendDate: string;\n\tinterval: PricingInterval;\n\tstatus: SubscriptionStatus;\n\tbusiness_id?: number;\n\tplanName: string;\n}\n","export enum TableShape {\n\tSQUARE = \"SQUARE\",\n\tCIRCLE = \"CIRCLE\",\n\tRECTANGLE = \"RECTANGLE\",\n\tRECTANGLE_VERTICAL = \"RECTANGLE_VERTICAL\",\n\tSINGLE_AT_BAR = \"SINGLE_AT_BAR\",\n\tOTHER = \"OTHER\",\n}\n\nexport enum TableStatus {\n\tVACANT = \"VACANT\", // Free and available\n\tRESERVED = \"RESERVED\", // Booked but not yet seated\n\tOCCUPIED = \"OCCUPIED\", // Currently in use\n\tBLOCKED = \"BLOCKED\", // Temporarily blocked/unavailable\n\tNEEDS_CLEANING = \"NEEDS_CLEANING\", // Dirty, awaiting cleanup\n\tOUT_OF_SERVICE = \"OUT_OF_SERVICE\", // Permanently unavailable repair/maintenance\n\tPENDING_CONFIRMATION = \"PENDING_CONFIRMATION\", // Reservation not yet confirmed\n\tNO_SHOW = \"NO_SHOW\", // Reserved but guest didn’t arrive\n}\n\nexport enum TableLocation {\n\t// Indoor\n\tMAIN_HALL = \"MAIN_HALL\",\n\tPRIVATE_DINING = \"PRIVATE_DINING\",\n\tVIP_ROOM = \"VIP_ROOM\",\n\tBANQUET_HALL = \"BANQUET_HALL\",\n\tBAR_AREA = \"BAR_AREA\",\n\tLOUNGE = \"LOUNGE\",\n\tOPEN_KITCHEN = \"OPEN_KITCHEN\",\n\tBOOTH_SECTION = \"BOOTH_SECTION\",\n\tMEZZANINE = \"MEZZANINE\",\n\tWINE_CELLAR = \"WINE_CELLAR\",\n\n\t// Outdoor\n\tTERRACE = \"TERRACE\",\n\tPATIO = \"PATIO\",\n\tGARDEN = \"GARDEN\",\n\tCOURTYARD = \"COURTYARD\",\n\tROOFTOP = \"ROOFTOP\",\n\tBALCONY = \"BALCONY\",\n\tSIDEWALK = \"SIDEWALK\",\n\tPOOLSIDE = \"POOLSIDE\",\n\n\t// Special Sections\n\tSMOKING_AREA = \"SMOKING_AREA\",\n\tNON_SMOKING = \"NON_SMOKING\",\n\tFAMILY_SECTION = \"FAMILY_SECTION\",\n\tKIDS_AREA = \"KIDS_AREA\",\n\tWAITING_AREA = \"WAITING_AREA\",\n\tDANCE_FLOOR = \"DANCE_FLOOR\",\n}\n\nexport interface Table {\n\tid: number;\n\tbusinessId: number;\n\tbranchId: number;\n\tname: string;\n\tseatCount: number;\n\tshape: TableShape;\n\tlocation: TableLocation;\n\tstatus: TableStatus;\n}\n\nexport interface TableState {\n\ttables: Table[];\n}\n\nexport type TableForm = Omit<Table, \"id\" | \"businessId\" | \"branchId\"> & {\n\tbranchId: string | number;\n};\n\nexport type TableUpdate = Partial<Omit<Table, \"id\" | \"businessId\">>;\n\nexport type TableFilter = Partial<Pick<Table, \"branchId\" | \"shape\" | \"location\" | \"status\">>;\n\nexport type TableFilterParams = { field: keyof TableFilter; value: TableFilter[keyof TableFilter] };\n","// TODO: move it lib that we can use in mobile app too\nexport enum EmployeePermission {\n\tVIEW_BUSINESS = \"VIEW_BUSINESS\",\n\tUPDATE_BUSINESS = \"UPDATE_BUSINESS\",\n\tVIEW_ORDERS = \"VIEW_ORDERS\",\n\tUPDATE_ORDER = \"UPDATE_ORDER\",\n\tCREATE_ORDER = \"CREATE_ORDER\",\n\tVIEW_QR_MENU = \"VIEW_QR_MENU\",\n\tVIEW_MENU = \"VIEW_MENU\",\n\tVIEW_MENU_ITEMS = \"VIEW_MENU_ITEMS\",\n\tCREATE_MENU_ITEM = \"CREATE_MENU_ITEM\",\n\tUPDATE_MENU_ITEM = \"UPDATE_MENU_ITEM\",\n\tDELETE_MENU_ITEM = \"DELETE_MENU_ITEM\",\n\tVIEW_CATEGORIES = \"VIEW_CATEGORIES\",\n\tUPDATE_CATEGORY = \"UPDATE_CATEGORY\",\n\tCREATE_CATEGORY = \"CREATE_CATEGORY\",\n\tDELETE_CATEGORY = \"DELETE_CATEGORY\",\n\tVIEW_ADDONS = \"VIEW_ADDONS\",\n\tUPDATE_ADDON = \"UPDATE_ADDON\",\n\tCREATE_ADDON = \"CREATE_ADDON\",\n\tDELETE_ADDON = \"DELETE_ADDON\",\n\tVIEW_TABLES = \"VIEW_TABLES\",\n\tUPDATE_TABLE = \"UPDATE_TABLE\",\n\tUPDATE_TABLE_STATUS = \"UPDATE_TABLE_STATUS\",\n\tCREATE_TABLE = \"CREATE_TABLE\",\n\tDELETE_TABLE = \"DELETE_TABLE\",\n\tVIEW_BRANCHES = \"VIEW_BRANCHES\",\n\tUPDATE_BRANCH = \"UPDATE_BRANCH\",\n\tCREATE_BRANCH = \"CREATE_BRANCH\",\n\tDELETE_BRANCH = \"DELETE_BRANCH\",\n\tVIEW_EMPLOYEES = \"VIEW_EMPLOYEES\",\n\tUPDATE_EMPLOYEE = \"UPDATE_EMPLOYEE\",\n\tCREATE_EMPLOYEE = \"CREATE_EMPLOYEE\",\n\tDELETE_EMPLOYEE = \"DELETE_EMPLOYEE\",\n\tVIEW_ANALYTICS = \"VIEW_ANALYTICS\",\n\tVIEW_SALES_REPORTS = \"VIEW_SALES_REPORTS\",\n\tVIEW_SUBSCRIPTION = \"VIEW_SUBSCRIPTION\",\n\tUPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\",\n\tVIEW_QR_CODES = \"VIEW_QR_CODES\",\n\tCREATE_QR_CODE = \"CREATE_QR_CODE\",\n\tDELETE_QR_CODE = \"DELETE_QR_CODE\",\n\tALL = \"ALL\",\n\t// Inventory\n\tVIEW_INVENTORY = \"VIEW_INVENTORY\",\n\tVIEW_PURCHASES = \"VIEW_PURCHASES\",\n\tVIEW_PURCHASE_DETAIL = \"VIEW_PURCHASE_DETAIL\",\n\tCREATE_PURCHASE = \"CREATE_PURCHASE\",\n\tUPDATE_PURCHASE = \"UPDATE_PURCHASE\",\n\tDELETE_PURCHASE = \"DELETE_PURCHASE\",\n\tVIEW_INVENTORY_PRODUCTS = \"VIEW_INVENTORY_PRODUCTS\",\n\tCREATE_INVENTORY_PRODUCT = \"CREATE_INVENTORY_PRODUCT\",\n\tUPDATE_INVENTORY_PRODUCT = \"UPDATE_INVENTORY_PRODUCT\",\n\tDELETE_INVENTORY_PRODUCT = \"DELETE_INVENTORY_PRODUCT\",\n\tVIEW_BUSINESS_BALANCE = \"VIEW_BUSINESS_BALANCE\",\n\tVIEW_BRANCH_BALANCE = \"VIEW_BRANCH_BALANCE\",\n\tUPDATE_PRODUCT_INGREDIENTS = \"UPDATE_PRODUCT_INGREDIENTS\",\n\tDELETE_PRODUCT_INGREDIENTS = \"DELETE_PRODUCT_INGREDIENTS\",\n}\n"],"names":["MenuAddonSelectType","BranchSetting","BusinessSetting","CustomerAuthStep","CustomerAddressType","Feature","FeatureSegment","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","ProductView","PlanType","SubscriptionStatus","TableShape","TableStatus","TableLocation","EmployeePermission"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/modules/addon/models.ts","../../../src/modules/branch/models.ts","../../../src/modules/business/models.ts","../../../src/modules/customer/models.ts","../../../src/modules/feature/models.ts","../../../src/modules/order/models.ts","../../../src/modules/product/models.ts","../../../src/modules/subscription/models.ts","../../../src/modules/table/models.ts","../../../src/modules/user/models.ts"],"sourcesContent":["export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","export type BranchWorkHour = {\n\topenAt: string;\n\tcloseAt: string;\n};\n\nexport type BranchWorkDay = {\n\tday: number;\n\thours: BranchWorkHour | null;\n};\n\nexport type BranchWorkDays = {\n\tdays: BranchWorkDay[];\n};\n\nexport interface BranchSettings {\n\tdeliveryOrderEnabled: boolean;\n\tpickupOrderEnabled: boolean;\n\tdineInOrderEnabled: boolean;\n\tmaxDeliveryDistance: number;\n\tminDeliveryAmount: number;\n\tdeliveryFeeAmount: number;\n}\n\nexport enum BranchSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n\tDELIVERY_FEE_AMOUNT = \"deliveryFeeAmount\",\n}\n\nexport interface Branch {\n\tid: number;\n\tname: string;\n\tbusinessId: number;\n\taddress: string;\n\tlongitude?: number;\n\tlatitude?: number;\n\tphone?: string;\n\twhatsApp?: string;\n\ttelegram?: string;\n\twifiPassword?: string;\n\tcreatedAt?: number;\n\tcoverPhoto?: string;\n\tsettings?: BranchSettings;\n\topeningHours?: BranchWorkDays;\n\tdeliveryHours?: BranchWorkDays;\n}\n\nexport type BranchServes = {\n\tisOpen: boolean;\n\tisDelivering: boolean;\n};\n","import * as featureModels from \"../feature/models\";\nimport * as subscriptionModels from \"../subscription/models\";\n\nexport interface BusinessLanguage {\n\tid: number;\n\tcode: string;\n\tbusinessId: number;\n}\n\nexport enum BusinessSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n}\n\nexport interface Business {\n\tid: number;\n\tname: string;\n\tusername: string;\n\tavatar64?: string;\n\tavatar128?: string;\n\tavatar256?: string;\n\tcoverPhoto?: string;\n\tinstagram?: string;\n\tfacebook?: string;\n\ttiktok?: string;\n\tcreatedAt?: number;\n\tcurrency: string;\n\tlanguages: BusinessLanguage[];\n\tsubscriptions?: subscriptionModels.Subscription[];\n\tsegment?: featureModels.FeatureSegment;\n}\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","export enum Feature {\n\tUPLOAD_VIDEO = \"UPLOAD_VIDEO\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { MenuAddon } from \"../addon/models\";\n\nexport interface ProductTranslation {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tlanguage: string;\n\tproductId?: number;\n}\n\nexport interface ProductVariantTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface ProductVariant {\n\tid?: number;\n\tprice: number;\n\ttranslations: ProductVariantTranslation[];\n\tproductId?: number;\n\tremove?: boolean;\n}\n\nexport interface Product {\n\tid: number;\n\tcategoryId: number;\n\tvat?: number;\n\tprice: number;\n\tvolume?: string; // 100qr/250ml/1kq\n\timage160?: string;\n\timage580?: string;\n\timage1024?: string;\n\ttranslations: ProductTranslation[];\n\tvariants: ProductVariant[];\n\taddons: MenuAddon[];\n\tavailable?: boolean;\n\tvisible?: boolean;\n\tposition?: number;\n\tvideoUrl?: string;\n}\n\nexport enum ProductView {\n\tLIST = \"list\",\n\tGRID = \"grid\",\n}\n\nexport interface DashboardProduct extends Omit<Product, \"addons\"> {\n\taddons: number[];\n}\n","export enum PlanType {\n\tAPPETIZER = \"appetizer\",\n\tMAIN_COURSE = \"mainCourse\",\n\tCHEFS_SPECIAL = \"chefsSpecial\",\n\tLIFETIME = \"lifeTime\",\n}\n\nexport interface PricingPlan {\n\ttitle: string;\n\tprice: {\n\t\tmonthly: number;\n\t\tannually: number;\n\t};\n\tdiscountedPrice?: number;\n\tribbonText?: string;\n}\n\nexport interface PricingPlans {\n\t[key: string]: PricingPlan;\n}\n\nexport type PricingInterval = \"monthly\" | \"annually\";\n\nexport enum SubscriptionStatus {\n\tACTIVE = \"ACTIVE\",\n\tEXPIRED = \"EXPIRED\",\n\tCANCELLED = \"CANCELLED\",\n}\n\nexport type BillingInterval = \"MONTH\" | \"YEAR\";\n\nexport interface Subscription {\n\tid: number;\n\tbillingInterval: BillingInterval;\n\tbillingIntervalCount: number;\n\tstartDate: string;\n\tendDate: string;\n\tinterval: PricingInterval;\n\tstatus: SubscriptionStatus;\n\tbusiness_id?: number;\n\tplanName: string;\n}\n","export enum TableShape {\n\tSQUARE = \"SQUARE\",\n\tCIRCLE = \"CIRCLE\",\n\tRECTANGLE = \"RECTANGLE\",\n\tRECTANGLE_VERTICAL = \"RECTANGLE_VERTICAL\",\n\tSINGLE_AT_BAR = \"SINGLE_AT_BAR\",\n\tOTHER = \"OTHER\",\n}\n\nexport enum TableStatus {\n\tVACANT = \"VACANT\", // Free and available\n\tRESERVED = \"RESERVED\", // Booked but not yet seated\n\tOCCUPIED = \"OCCUPIED\", // Currently in use\n\tBLOCKED = \"BLOCKED\", // Temporarily blocked/unavailable\n\tNEEDS_CLEANING = \"NEEDS_CLEANING\", // Dirty, awaiting cleanup\n\tOUT_OF_SERVICE = \"OUT_OF_SERVICE\", // Permanently unavailable repair/maintenance\n\tPENDING_CONFIRMATION = \"PENDING_CONFIRMATION\", // Reservation not yet confirmed\n\tNO_SHOW = \"NO_SHOW\", // Reserved but guest didn’t arrive\n}\n\nexport enum TableLocation {\n\t// Indoor\n\tMAIN_HALL = \"MAIN_HALL\",\n\tPRIVATE_DINING = \"PRIVATE_DINING\",\n\tVIP_ROOM = \"VIP_ROOM\",\n\tBANQUET_HALL = \"BANQUET_HALL\",\n\tBAR_AREA = \"BAR_AREA\",\n\tLOUNGE = \"LOUNGE\",\n\tOPEN_KITCHEN = \"OPEN_KITCHEN\",\n\tBOOTH_SECTION = \"BOOTH_SECTION\",\n\tMEZZANINE = \"MEZZANINE\",\n\tWINE_CELLAR = \"WINE_CELLAR\",\n\n\t// Outdoor\n\tTERRACE = \"TERRACE\",\n\tPATIO = \"PATIO\",\n\tGARDEN = \"GARDEN\",\n\tCOURTYARD = \"COURTYARD\",\n\tROOFTOP = \"ROOFTOP\",\n\tBALCONY = \"BALCONY\",\n\tSIDEWALK = \"SIDEWALK\",\n\tPOOLSIDE = \"POOLSIDE\",\n\n\t// Special Sections\n\tSMOKING_AREA = \"SMOKING_AREA\",\n\tNON_SMOKING = \"NON_SMOKING\",\n\tFAMILY_SECTION = \"FAMILY_SECTION\",\n\tKIDS_AREA = \"KIDS_AREA\",\n\tWAITING_AREA = \"WAITING_AREA\",\n\tDANCE_FLOOR = \"DANCE_FLOOR\",\n}\n\nexport interface Table {\n\tid: number;\n\tbusinessId: number;\n\tbranchId: number;\n\tname: string;\n\tseatCount: number;\n\tshape: TableShape;\n\tlocation: TableLocation;\n\tstatus: TableStatus;\n}\n\nexport interface TableState {\n\ttables: Table[];\n}\n\nexport type TableForm = Omit<Table, \"id\" | \"businessId\" | \"branchId\"> & {\n\tbranchId: string | number;\n};\n\nexport type TableUpdate = Partial<Omit<Table, \"id\" | \"businessId\">>;\n\nexport type TableFilter = Partial<Pick<Table, \"branchId\" | \"shape\" | \"location\" | \"status\">>;\n\nexport type TableFilterParams = { field: keyof TableFilter; value: TableFilter[keyof TableFilter] };\n","// TODO: move it lib that we can use in mobile app too\nexport enum EmployeePermission {\n\tVIEW_BUSINESS = \"VIEW_BUSINESS\",\n\tUPDATE_BUSINESS = \"UPDATE_BUSINESS\",\n\tVIEW_ORDERS = \"VIEW_ORDERS\",\n\tUPDATE_ORDER = \"UPDATE_ORDER\",\n\tCREATE_ORDER = \"CREATE_ORDER\",\n\tVIEW_QR_MENU = \"VIEW_QR_MENU\",\n\tVIEW_MENU = \"VIEW_MENU\",\n\tVIEW_MENU_ITEMS = \"VIEW_MENU_ITEMS\",\n\tCREATE_MENU_ITEM = \"CREATE_MENU_ITEM\",\n\tUPDATE_MENU_ITEM = \"UPDATE_MENU_ITEM\",\n\tDELETE_MENU_ITEM = \"DELETE_MENU_ITEM\",\n\tVIEW_CATEGORIES = \"VIEW_CATEGORIES\",\n\tUPDATE_CATEGORY = \"UPDATE_CATEGORY\",\n\tCREATE_CATEGORY = \"CREATE_CATEGORY\",\n\tDELETE_CATEGORY = \"DELETE_CATEGORY\",\n\tVIEW_ADDONS = \"VIEW_ADDONS\",\n\tUPDATE_ADDON = \"UPDATE_ADDON\",\n\tCREATE_ADDON = \"CREATE_ADDON\",\n\tDELETE_ADDON = \"DELETE_ADDON\",\n\tVIEW_TABLES = \"VIEW_TABLES\",\n\tUPDATE_TABLE = \"UPDATE_TABLE\",\n\tUPDATE_TABLE_STATUS = \"UPDATE_TABLE_STATUS\",\n\tCREATE_TABLE = \"CREATE_TABLE\",\n\tDELETE_TABLE = \"DELETE_TABLE\",\n\tVIEW_BRANCHES = \"VIEW_BRANCHES\",\n\tUPDATE_BRANCH = \"UPDATE_BRANCH\",\n\tCREATE_BRANCH = \"CREATE_BRANCH\",\n\tDELETE_BRANCH = \"DELETE_BRANCH\",\n\tVIEW_EMPLOYEES = \"VIEW_EMPLOYEES\",\n\tUPDATE_EMPLOYEE = \"UPDATE_EMPLOYEE\",\n\tCREATE_EMPLOYEE = \"CREATE_EMPLOYEE\",\n\tDELETE_EMPLOYEE = \"DELETE_EMPLOYEE\",\n\tVIEW_ANALYTICS = \"VIEW_ANALYTICS\",\n\tVIEW_SALES_REPORTS = \"VIEW_SALES_REPORTS\",\n\tVIEW_SUBSCRIPTION = \"VIEW_SUBSCRIPTION\",\n\tUPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\",\n\tVIEW_QR_CODES = \"VIEW_QR_CODES\",\n\tCREATE_QR_CODE = \"CREATE_QR_CODE\",\n\tDELETE_QR_CODE = \"DELETE_QR_CODE\",\n\tALL = \"ALL\",\n\t// Inventory\n\tVIEW_INVENTORY = \"VIEW_INVENTORY\",\n\tVIEW_PURCHASES = \"VIEW_PURCHASES\",\n\tVIEW_PURCHASE_DETAIL = \"VIEW_PURCHASE_DETAIL\",\n\tCREATE_PURCHASE = \"CREATE_PURCHASE\",\n\tUPDATE_PURCHASE = \"UPDATE_PURCHASE\",\n\tDELETE_PURCHASE = \"DELETE_PURCHASE\",\n\tVIEW_INVENTORY_PRODUCTS = \"VIEW_INVENTORY_PRODUCTS\",\n\tCREATE_INVENTORY_PRODUCT = \"CREATE_INVENTORY_PRODUCT\",\n\tUPDATE_INVENTORY_PRODUCT = \"UPDATE_INVENTORY_PRODUCT\",\n\tDELETE_INVENTORY_PRODUCT = \"DELETE_INVENTORY_PRODUCT\",\n\tVIEW_BUSINESS_BALANCE = \"VIEW_BUSINESS_BALANCE\",\n\tVIEW_BRANCH_BALANCE = \"VIEW_BRANCH_BALANCE\",\n\tUPDATE_PRODUCT_INGREDIENTS = \"UPDATE_PRODUCT_INGREDIENTS\",\n\tDELETE_PRODUCT_INGREDIENTS = \"DELETE_PRODUCT_INGREDIENTS\",\n}\n"],"names":["MenuAddonSelectType","BranchSetting","BusinessSetting","CustomerAuthStep","CustomerAddressType","Feature","FeatureSegment","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","ProductView","PlanType","SubscriptionStatus","TableShape","TableStatus","TableLocation","EmployeePermission"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var E,A,T,_,R,I,e,D,N,O,C,L,S,t,r,P,o,s;exports.MenuAddonSelectType=void 0,(E=exports.MenuAddonSelectType||(exports.MenuAddonSelectType={})).SINGLE="SINGLE",E.MULTIPLE="MULTIPLE",exports.BranchSetting=void 0,(A=exports.BranchSetting||(exports.BranchSetting={})).MAX_DELIVERY_DISTANCE="maxDeliveryDistance",A.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",A.PICKUP_ORDER_ENABLED="pickupOrderEnabled",A.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",A.MIN_DELIVERY_AMOUNT="minDeliveryAmount",A.DELIVERY_FEE_AMOUNT="deliveryFeeAmount",exports.BusinessSetting=void 0,(T=exports.BusinessSetting||(exports.BusinessSetting={})).MAX_DELIVERY_DISTANCE="maxDeliveryDistance",T.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",T.PICKUP_ORDER_ENABLED="pickupOrderEnabled",T.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",T.MIN_DELIVERY_AMOUNT="minDeliveryAmount",exports.CustomerAuthStep=void 0,(_=exports.CustomerAuthStep||(exports.CustomerAuthStep={})).PHONE="PHONE",_.OTP="OTP",_.EMAIL="EMAIL",exports.CustomerAddressType=void 0,(R=exports.CustomerAddressType||(exports.CustomerAddressType={})).HOME="HOME",R.WORK="WORK",R.TRAVEL="TRAVEL",exports.Feature=void 0,(exports.Feature||(exports.Feature={})).ORDER="feature_order",exports.FeatureSegment=void 0,(I=exports.FeatureSegment||(exports.FeatureSegment={})).ALPHA="ALPHA",I.BETA="BETA",I.ALL="ALL",exports.OrderType=void 0,(e=exports.OrderType||(exports.OrderType={})).DINE_IN="DINE_IN",e.PICK_UP="PICK_UP",e.DELIVERY="DELIVERY",exports.OrderStatus=void 0,(D=exports.OrderStatus||(exports.OrderStatus={})).DRAFT="DRAFT",D.PENDING="PENDING",D.CONFIRMED="CONFIRMED",D.PREPARING="PREPARING",D.READY="READY",D.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",D.DELIVERED="DELIVERED",D.COMPLETED="COMPLETED",D.CANCELLED="CANCELLED",D.FAILED="FAILED",exports.OrderItemStatus=void 0,(N=exports.OrderItemStatus||(exports.OrderItemStatus={})).PENDING="PENDING",N.PREPARING="PREPARING",N.READY="READY",N.SERVED="SERVED",exports.PaymentMethod=void 0,(O=exports.PaymentMethod||(exports.PaymentMethod={})).CASH="CASH",O.CARD="CARD",O.WALLET="WALLET",O.TERMINAL="TERMINAL",exports.OrderStep=void 0,(C=exports.OrderStep||(exports.OrderStep={})).CART="CART",C.DETAILS="DETAILS",C.COMPLETED="COMPLETED",exports.ProductView=void 0,(L=exports.ProductView||(exports.ProductView={})).LIST="list",L.GRID="grid",exports.PlanType=void 0,(S=exports.PlanType||(exports.PlanType={})).APPETIZER="appetizer",S.MAIN_COURSE="mainCourse",S.CHEFS_SPECIAL="chefsSpecial",S.LIFETIME="lifeTime",exports.SubscriptionStatus=void 0,(t=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).ACTIVE="ACTIVE",t.EXPIRED="EXPIRED",t.CANCELLED="CANCELLED",exports.TableShape=void 0,(r=exports.TableShape||(exports.TableShape={})).SQUARE="SQUARE",r.CIRCLE="CIRCLE",r.RECTANGLE="RECTANGLE",r.RECTANGLE_VERTICAL="RECTANGLE_VERTICAL",r.SINGLE_AT_BAR="SINGLE_AT_BAR",r.OTHER="OTHER",exports.TableStatus=void 0,(P=exports.TableStatus||(exports.TableStatus={})).VACANT="VACANT",P.RESERVED="RESERVED",P.OCCUPIED="OCCUPIED",P.BLOCKED="BLOCKED",P.NEEDS_CLEANING="NEEDS_CLEANING",P.OUT_OF_SERVICE="OUT_OF_SERVICE",P.PENDING_CONFIRMATION="PENDING_CONFIRMATION",P.NO_SHOW="NO_SHOW",exports.TableLocation=void 0,(o=exports.TableLocation||(exports.TableLocation={})).MAIN_HALL="MAIN_HALL",o.PRIVATE_DINING="PRIVATE_DINING",o.VIP_ROOM="VIP_ROOM",o.BANQUET_HALL="BANQUET_HALL",o.BAR_AREA="BAR_AREA",o.LOUNGE="LOUNGE",o.OPEN_KITCHEN="OPEN_KITCHEN",o.BOOTH_SECTION="BOOTH_SECTION",o.MEZZANINE="MEZZANINE",o.WINE_CELLAR="WINE_CELLAR",o.TERRACE="TERRACE",o.PATIO="PATIO",o.GARDEN="GARDEN",o.COURTYARD="COURTYARD",o.ROOFTOP="ROOFTOP",o.BALCONY="BALCONY",o.SIDEWALK="SIDEWALK",o.POOLSIDE="POOLSIDE",o.SMOKING_AREA="SMOKING_AREA",o.NON_SMOKING="NON_SMOKING",o.FAMILY_SECTION="FAMILY_SECTION",o.KIDS_AREA="KIDS_AREA",o.WAITING_AREA="WAITING_AREA",o.DANCE_FLOOR="DANCE_FLOOR",exports.EmployeePermission=void 0,(s=exports.EmployeePermission||(exports.EmployeePermission={})).VIEW_BUSINESS="VIEW_BUSINESS",s.UPDATE_BUSINESS="UPDATE_BUSINESS",s.VIEW_ORDERS="VIEW_ORDERS",s.UPDATE_ORDER="UPDATE_ORDER",s.CREATE_ORDER="CREATE_ORDER",s.VIEW_QR_MENU="VIEW_QR_MENU",s.VIEW_MENU="VIEW_MENU",s.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",s.CREATE_MENU_ITEM="CREATE_MENU_ITEM",s.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",s.DELETE_MENU_ITEM="DELETE_MENU_ITEM",s.VIEW_CATEGORIES="VIEW_CATEGORIES",s.UPDATE_CATEGORY="UPDATE_CATEGORY",s.CREATE_CATEGORY="CREATE_CATEGORY",s.DELETE_CATEGORY="DELETE_CATEGORY",s.VIEW_ADDONS="VIEW_ADDONS",s.UPDATE_ADDON="UPDATE_ADDON",s.CREATE_ADDON="CREATE_ADDON",s.DELETE_ADDON="DELETE_ADDON",s.VIEW_TABLES="VIEW_TABLES",s.UPDATE_TABLE="UPDATE_TABLE",s.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",s.CREATE_TABLE="CREATE_TABLE",s.DELETE_TABLE="DELETE_TABLE",s.VIEW_BRANCHES="VIEW_BRANCHES",s.UPDATE_BRANCH="UPDATE_BRANCH",s.CREATE_BRANCH="CREATE_BRANCH",s.DELETE_BRANCH="DELETE_BRANCH",s.VIEW_EMPLOYEES="VIEW_EMPLOYEES",s.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",s.CREATE_EMPLOYEE="CREATE_EMPLOYEE",s.DELETE_EMPLOYEE="DELETE_EMPLOYEE",s.VIEW_ANALYTICS="VIEW_ANALYTICS",s.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",s.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",s.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",s.VIEW_QR_CODES="VIEW_QR_CODES",s.CREATE_QR_CODE="CREATE_QR_CODE",s.DELETE_QR_CODE="DELETE_QR_CODE",s.ALL="ALL",s.VIEW_INVENTORY="VIEW_INVENTORY",s.VIEW_PURCHASES="VIEW_PURCHASES",s.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",s.CREATE_PURCHASE="CREATE_PURCHASE",s.UPDATE_PURCHASE="UPDATE_PURCHASE",s.DELETE_PURCHASE="DELETE_PURCHASE",s.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",s.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",s.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",s.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",s.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",s.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",s.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",s.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS";
1
+ "use strict";var E,A,T,_,R,I,e,D,N,O,L,C,S,t,r,P,o,s;exports.MenuAddonSelectType=void 0,(E=exports.MenuAddonSelectType||(exports.MenuAddonSelectType={})).SINGLE="SINGLE",E.MULTIPLE="MULTIPLE",exports.BranchSetting=void 0,(A=exports.BranchSetting||(exports.BranchSetting={})).MAX_DELIVERY_DISTANCE="maxDeliveryDistance",A.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",A.PICKUP_ORDER_ENABLED="pickupOrderEnabled",A.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",A.MIN_DELIVERY_AMOUNT="minDeliveryAmount",A.DELIVERY_FEE_AMOUNT="deliveryFeeAmount",exports.BusinessSetting=void 0,(T=exports.BusinessSetting||(exports.BusinessSetting={})).MAX_DELIVERY_DISTANCE="maxDeliveryDistance",T.DELIVERY_ORDER_ENABLED="deliveryOrderEnabled",T.PICKUP_ORDER_ENABLED="pickupOrderEnabled",T.DINE_IN_ORDER_ENABLED="dineInOrderEnabled",T.MIN_DELIVERY_AMOUNT="minDeliveryAmount",exports.CustomerAuthStep=void 0,(_=exports.CustomerAuthStep||(exports.CustomerAuthStep={})).PHONE="PHONE",_.OTP="OTP",_.EMAIL="EMAIL",exports.CustomerAddressType=void 0,(R=exports.CustomerAddressType||(exports.CustomerAddressType={})).HOME="HOME",R.WORK="WORK",R.TRAVEL="TRAVEL",exports.Feature=void 0,(exports.Feature||(exports.Feature={})).UPLOAD_VIDEO="UPLOAD_VIDEO",exports.FeatureSegment=void 0,(I=exports.FeatureSegment||(exports.FeatureSegment={})).ALPHA="ALPHA",I.BETA="BETA",I.ALL="ALL",exports.OrderType=void 0,(e=exports.OrderType||(exports.OrderType={})).DINE_IN="DINE_IN",e.PICK_UP="PICK_UP",e.DELIVERY="DELIVERY",exports.OrderStatus=void 0,(D=exports.OrderStatus||(exports.OrderStatus={})).DRAFT="DRAFT",D.PENDING="PENDING",D.CONFIRMED="CONFIRMED",D.PREPARING="PREPARING",D.READY="READY",D.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",D.DELIVERED="DELIVERED",D.COMPLETED="COMPLETED",D.CANCELLED="CANCELLED",D.FAILED="FAILED",exports.OrderItemStatus=void 0,(N=exports.OrderItemStatus||(exports.OrderItemStatus={})).PENDING="PENDING",N.PREPARING="PREPARING",N.READY="READY",N.SERVED="SERVED",exports.PaymentMethod=void 0,(O=exports.PaymentMethod||(exports.PaymentMethod={})).CASH="CASH",O.CARD="CARD",O.WALLET="WALLET",O.TERMINAL="TERMINAL",exports.OrderStep=void 0,(L=exports.OrderStep||(exports.OrderStep={})).CART="CART",L.DETAILS="DETAILS",L.COMPLETED="COMPLETED",exports.ProductView=void 0,(C=exports.ProductView||(exports.ProductView={})).LIST="list",C.GRID="grid",exports.PlanType=void 0,(S=exports.PlanType||(exports.PlanType={})).APPETIZER="appetizer",S.MAIN_COURSE="mainCourse",S.CHEFS_SPECIAL="chefsSpecial",S.LIFETIME="lifeTime",exports.SubscriptionStatus=void 0,(t=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).ACTIVE="ACTIVE",t.EXPIRED="EXPIRED",t.CANCELLED="CANCELLED",exports.TableShape=void 0,(r=exports.TableShape||(exports.TableShape={})).SQUARE="SQUARE",r.CIRCLE="CIRCLE",r.RECTANGLE="RECTANGLE",r.RECTANGLE_VERTICAL="RECTANGLE_VERTICAL",r.SINGLE_AT_BAR="SINGLE_AT_BAR",r.OTHER="OTHER",exports.TableStatus=void 0,(P=exports.TableStatus||(exports.TableStatus={})).VACANT="VACANT",P.RESERVED="RESERVED",P.OCCUPIED="OCCUPIED",P.BLOCKED="BLOCKED",P.NEEDS_CLEANING="NEEDS_CLEANING",P.OUT_OF_SERVICE="OUT_OF_SERVICE",P.PENDING_CONFIRMATION="PENDING_CONFIRMATION",P.NO_SHOW="NO_SHOW",exports.TableLocation=void 0,(o=exports.TableLocation||(exports.TableLocation={})).MAIN_HALL="MAIN_HALL",o.PRIVATE_DINING="PRIVATE_DINING",o.VIP_ROOM="VIP_ROOM",o.BANQUET_HALL="BANQUET_HALL",o.BAR_AREA="BAR_AREA",o.LOUNGE="LOUNGE",o.OPEN_KITCHEN="OPEN_KITCHEN",o.BOOTH_SECTION="BOOTH_SECTION",o.MEZZANINE="MEZZANINE",o.WINE_CELLAR="WINE_CELLAR",o.TERRACE="TERRACE",o.PATIO="PATIO",o.GARDEN="GARDEN",o.COURTYARD="COURTYARD",o.ROOFTOP="ROOFTOP",o.BALCONY="BALCONY",o.SIDEWALK="SIDEWALK",o.POOLSIDE="POOLSIDE",o.SMOKING_AREA="SMOKING_AREA",o.NON_SMOKING="NON_SMOKING",o.FAMILY_SECTION="FAMILY_SECTION",o.KIDS_AREA="KIDS_AREA",o.WAITING_AREA="WAITING_AREA",o.DANCE_FLOOR="DANCE_FLOOR",exports.EmployeePermission=void 0,(s=exports.EmployeePermission||(exports.EmployeePermission={})).VIEW_BUSINESS="VIEW_BUSINESS",s.UPDATE_BUSINESS="UPDATE_BUSINESS",s.VIEW_ORDERS="VIEW_ORDERS",s.UPDATE_ORDER="UPDATE_ORDER",s.CREATE_ORDER="CREATE_ORDER",s.VIEW_QR_MENU="VIEW_QR_MENU",s.VIEW_MENU="VIEW_MENU",s.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",s.CREATE_MENU_ITEM="CREATE_MENU_ITEM",s.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",s.DELETE_MENU_ITEM="DELETE_MENU_ITEM",s.VIEW_CATEGORIES="VIEW_CATEGORIES",s.UPDATE_CATEGORY="UPDATE_CATEGORY",s.CREATE_CATEGORY="CREATE_CATEGORY",s.DELETE_CATEGORY="DELETE_CATEGORY",s.VIEW_ADDONS="VIEW_ADDONS",s.UPDATE_ADDON="UPDATE_ADDON",s.CREATE_ADDON="CREATE_ADDON",s.DELETE_ADDON="DELETE_ADDON",s.VIEW_TABLES="VIEW_TABLES",s.UPDATE_TABLE="UPDATE_TABLE",s.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",s.CREATE_TABLE="CREATE_TABLE",s.DELETE_TABLE="DELETE_TABLE",s.VIEW_BRANCHES="VIEW_BRANCHES",s.UPDATE_BRANCH="UPDATE_BRANCH",s.CREATE_BRANCH="CREATE_BRANCH",s.DELETE_BRANCH="DELETE_BRANCH",s.VIEW_EMPLOYEES="VIEW_EMPLOYEES",s.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",s.CREATE_EMPLOYEE="CREATE_EMPLOYEE",s.DELETE_EMPLOYEE="DELETE_EMPLOYEE",s.VIEW_ANALYTICS="VIEW_ANALYTICS",s.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",s.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",s.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",s.VIEW_QR_CODES="VIEW_QR_CODES",s.CREATE_QR_CODE="CREATE_QR_CODE",s.DELETE_QR_CODE="DELETE_QR_CODE",s.ALL="ALL",s.VIEW_INVENTORY="VIEW_INVENTORY",s.VIEW_PURCHASES="VIEW_PURCHASES",s.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",s.CREATE_PURCHASE="CREATE_PURCHASE",s.UPDATE_PURCHASE="UPDATE_PURCHASE",s.DELETE_PURCHASE="DELETE_PURCHASE",s.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",s.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",s.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",s.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",s.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",s.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",s.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",s.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/modules/addon/models.ts","../../../src/modules/branch/models.ts","../../../src/modules/business/models.ts","../../../src/modules/customer/models.ts","../../../src/modules/feature/models.ts","../../../src/modules/order/models.ts","../../../src/modules/product/models.ts","../../../src/modules/subscription/models.ts","../../../src/modules/table/models.ts","../../../src/modules/user/models.ts"],"sourcesContent":["export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","export type BranchWorkHour = {\n\topenAt: string;\n\tcloseAt: string;\n};\n\nexport type BranchWorkDay = {\n\tday: number;\n\thours: BranchWorkHour | null;\n};\n\nexport type BranchWorkDays = {\n\tdays: BranchWorkDay[];\n};\n\nexport interface BranchSettings {\n\tdeliveryOrderEnabled: boolean;\n\tpickupOrderEnabled: boolean;\n\tdineInOrderEnabled: boolean;\n\tmaxDeliveryDistance: number;\n\tminDeliveryAmount: number;\n\tdeliveryFeeAmount: number;\n}\n\nexport enum BranchSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n\tDELIVERY_FEE_AMOUNT = \"deliveryFeeAmount\",\n}\n\nexport interface Branch {\n\tid: number;\n\tname: string;\n\tbusinessId: number;\n\taddress: string;\n\tlongitude?: number;\n\tlatitude?: number;\n\tphone?: string;\n\twhatsApp?: string;\n\ttelegram?: string;\n\twifiPassword?: string;\n\tcreatedAt?: number;\n\tcoverPhoto?: string;\n\tsettings?: BranchSettings;\n\topeningHours?: BranchWorkDays;\n\tdeliveryHours?: BranchWorkDays;\n}\n\nexport type BranchServes = {\n\tisOpen: boolean;\n\tisDelivering: boolean;\n};\n","import * as featureModels from \"../feature/models\";\nimport * as subscriptionModels from \"../subscription/models\";\n\nexport interface BusinessLanguage {\n\tid: number;\n\tcode: string;\n\tbusinessId: number;\n}\n\nexport enum BusinessSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n}\n\nexport interface Business {\n\tid: number;\n\tname: string;\n\tusername: string;\n\tavatar64?: string;\n\tavatar128?: string;\n\tavatar256?: string;\n\tcoverPhoto?: string;\n\tinstagram?: string;\n\tfacebook?: string;\n\ttiktok?: string;\n\tcreatedAt?: number;\n\tcurrency: string;\n\tlanguages: BusinessLanguage[];\n\tsubscriptions?: subscriptionModels.Subscription[];\n\tsegment?: featureModels.FeatureSegment;\n}\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","export enum Feature {\n\tORDER = \"feature_order\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { MenuAddon } from \"../addon/models\";\n\nexport interface ProductTranslation {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tlanguage: string;\n\tproductId?: number;\n}\n\nexport interface ProductVariantTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface ProductVariant {\n\tid?: number;\n\tprice: number;\n\ttranslations: ProductVariantTranslation[];\n\tproductId?: number;\n\tremove?: boolean;\n}\n\nexport interface Product {\n\tid: number;\n\tcategoryId: number;\n\tvat?: number;\n\tprice: number;\n\tvolume?: string; // 100qr/250ml/1kq\n\timage160?: string;\n\timage580?: string;\n\timage1024?: string;\n\ttranslations: ProductTranslation[];\n\tvariants: ProductVariant[];\n\taddons: MenuAddon[];\n\tavailable?: boolean;\n\tvisible?: boolean;\n\tposition?: number;\n}\n\nexport enum ProductView {\n\tLIST = \"list\",\n\tGRID = \"grid\",\n}\n\nexport interface DashboardProduct extends Omit<Product, \"addons\"> {\n\taddons: number[];\n}\n","export enum PlanType {\n\tAPPETIZER = \"appetizer\",\n\tMAIN_COURSE = \"mainCourse\",\n\tCHEFS_SPECIAL = \"chefsSpecial\",\n\tLIFETIME = \"lifeTime\",\n}\n\nexport interface PricingPlan {\n\ttitle: string;\n\tprice: {\n\t\tmonthly: number;\n\t\tannually: number;\n\t};\n\tdiscountedPrice?: number;\n\tribbonText?: string;\n}\n\nexport interface PricingPlans {\n\t[key: string]: PricingPlan;\n}\n\nexport type PricingInterval = \"monthly\" | \"annually\";\n\nexport enum SubscriptionStatus {\n\tACTIVE = \"ACTIVE\",\n\tEXPIRED = \"EXPIRED\",\n\tCANCELLED = \"CANCELLED\",\n}\n\nexport type BillingInterval = \"MONTH\" | \"YEAR\";\n\nexport interface Subscription {\n\tid: number;\n\tbillingInterval: BillingInterval;\n\tbillingIntervalCount: number;\n\tstartDate: string;\n\tendDate: string;\n\tinterval: PricingInterval;\n\tstatus: SubscriptionStatus;\n\tbusiness_id?: number;\n\tplanName: string;\n}\n","export enum TableShape {\n\tSQUARE = \"SQUARE\",\n\tCIRCLE = \"CIRCLE\",\n\tRECTANGLE = \"RECTANGLE\",\n\tRECTANGLE_VERTICAL = \"RECTANGLE_VERTICAL\",\n\tSINGLE_AT_BAR = \"SINGLE_AT_BAR\",\n\tOTHER = \"OTHER\",\n}\n\nexport enum TableStatus {\n\tVACANT = \"VACANT\", // Free and available\n\tRESERVED = \"RESERVED\", // Booked but not yet seated\n\tOCCUPIED = \"OCCUPIED\", // Currently in use\n\tBLOCKED = \"BLOCKED\", // Temporarily blocked/unavailable\n\tNEEDS_CLEANING = \"NEEDS_CLEANING\", // Dirty, awaiting cleanup\n\tOUT_OF_SERVICE = \"OUT_OF_SERVICE\", // Permanently unavailable repair/maintenance\n\tPENDING_CONFIRMATION = \"PENDING_CONFIRMATION\", // Reservation not yet confirmed\n\tNO_SHOW = \"NO_SHOW\", // Reserved but guest didn’t arrive\n}\n\nexport enum TableLocation {\n\t// Indoor\n\tMAIN_HALL = \"MAIN_HALL\",\n\tPRIVATE_DINING = \"PRIVATE_DINING\",\n\tVIP_ROOM = \"VIP_ROOM\",\n\tBANQUET_HALL = \"BANQUET_HALL\",\n\tBAR_AREA = \"BAR_AREA\",\n\tLOUNGE = \"LOUNGE\",\n\tOPEN_KITCHEN = \"OPEN_KITCHEN\",\n\tBOOTH_SECTION = \"BOOTH_SECTION\",\n\tMEZZANINE = \"MEZZANINE\",\n\tWINE_CELLAR = \"WINE_CELLAR\",\n\n\t// Outdoor\n\tTERRACE = \"TERRACE\",\n\tPATIO = \"PATIO\",\n\tGARDEN = \"GARDEN\",\n\tCOURTYARD = \"COURTYARD\",\n\tROOFTOP = \"ROOFTOP\",\n\tBALCONY = \"BALCONY\",\n\tSIDEWALK = \"SIDEWALK\",\n\tPOOLSIDE = \"POOLSIDE\",\n\n\t// Special Sections\n\tSMOKING_AREA = \"SMOKING_AREA\",\n\tNON_SMOKING = \"NON_SMOKING\",\n\tFAMILY_SECTION = \"FAMILY_SECTION\",\n\tKIDS_AREA = \"KIDS_AREA\",\n\tWAITING_AREA = \"WAITING_AREA\",\n\tDANCE_FLOOR = \"DANCE_FLOOR\",\n}\n\nexport interface Table {\n\tid: number;\n\tbusinessId: number;\n\tbranchId: number;\n\tname: string;\n\tseatCount: number;\n\tshape: TableShape;\n\tlocation: TableLocation;\n\tstatus: TableStatus;\n}\n\nexport interface TableState {\n\ttables: Table[];\n}\n\nexport type TableForm = Omit<Table, \"id\" | \"businessId\" | \"branchId\"> & {\n\tbranchId: string | number;\n};\n\nexport type TableUpdate = Partial<Omit<Table, \"id\" | \"businessId\">>;\n\nexport type TableFilter = Partial<Pick<Table, \"branchId\" | \"shape\" | \"location\" | \"status\">>;\n\nexport type TableFilterParams = { field: keyof TableFilter; value: TableFilter[keyof TableFilter] };\n","// TODO: move it lib that we can use in mobile app too\nexport enum EmployeePermission {\n\tVIEW_BUSINESS = \"VIEW_BUSINESS\",\n\tUPDATE_BUSINESS = \"UPDATE_BUSINESS\",\n\tVIEW_ORDERS = \"VIEW_ORDERS\",\n\tUPDATE_ORDER = \"UPDATE_ORDER\",\n\tCREATE_ORDER = \"CREATE_ORDER\",\n\tVIEW_QR_MENU = \"VIEW_QR_MENU\",\n\tVIEW_MENU = \"VIEW_MENU\",\n\tVIEW_MENU_ITEMS = \"VIEW_MENU_ITEMS\",\n\tCREATE_MENU_ITEM = \"CREATE_MENU_ITEM\",\n\tUPDATE_MENU_ITEM = \"UPDATE_MENU_ITEM\",\n\tDELETE_MENU_ITEM = \"DELETE_MENU_ITEM\",\n\tVIEW_CATEGORIES = \"VIEW_CATEGORIES\",\n\tUPDATE_CATEGORY = \"UPDATE_CATEGORY\",\n\tCREATE_CATEGORY = \"CREATE_CATEGORY\",\n\tDELETE_CATEGORY = \"DELETE_CATEGORY\",\n\tVIEW_ADDONS = \"VIEW_ADDONS\",\n\tUPDATE_ADDON = \"UPDATE_ADDON\",\n\tCREATE_ADDON = \"CREATE_ADDON\",\n\tDELETE_ADDON = \"DELETE_ADDON\",\n\tVIEW_TABLES = \"VIEW_TABLES\",\n\tUPDATE_TABLE = \"UPDATE_TABLE\",\n\tUPDATE_TABLE_STATUS = \"UPDATE_TABLE_STATUS\",\n\tCREATE_TABLE = \"CREATE_TABLE\",\n\tDELETE_TABLE = \"DELETE_TABLE\",\n\tVIEW_BRANCHES = \"VIEW_BRANCHES\",\n\tUPDATE_BRANCH = \"UPDATE_BRANCH\",\n\tCREATE_BRANCH = \"CREATE_BRANCH\",\n\tDELETE_BRANCH = \"DELETE_BRANCH\",\n\tVIEW_EMPLOYEES = \"VIEW_EMPLOYEES\",\n\tUPDATE_EMPLOYEE = \"UPDATE_EMPLOYEE\",\n\tCREATE_EMPLOYEE = \"CREATE_EMPLOYEE\",\n\tDELETE_EMPLOYEE = \"DELETE_EMPLOYEE\",\n\tVIEW_ANALYTICS = \"VIEW_ANALYTICS\",\n\tVIEW_SALES_REPORTS = \"VIEW_SALES_REPORTS\",\n\tVIEW_SUBSCRIPTION = \"VIEW_SUBSCRIPTION\",\n\tUPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\",\n\tVIEW_QR_CODES = \"VIEW_QR_CODES\",\n\tCREATE_QR_CODE = \"CREATE_QR_CODE\",\n\tDELETE_QR_CODE = \"DELETE_QR_CODE\",\n\tALL = \"ALL\",\n\t// Inventory\n\tVIEW_INVENTORY = \"VIEW_INVENTORY\",\n\tVIEW_PURCHASES = \"VIEW_PURCHASES\",\n\tVIEW_PURCHASE_DETAIL = \"VIEW_PURCHASE_DETAIL\",\n\tCREATE_PURCHASE = \"CREATE_PURCHASE\",\n\tUPDATE_PURCHASE = \"UPDATE_PURCHASE\",\n\tDELETE_PURCHASE = \"DELETE_PURCHASE\",\n\tVIEW_INVENTORY_PRODUCTS = \"VIEW_INVENTORY_PRODUCTS\",\n\tCREATE_INVENTORY_PRODUCT = \"CREATE_INVENTORY_PRODUCT\",\n\tUPDATE_INVENTORY_PRODUCT = \"UPDATE_INVENTORY_PRODUCT\",\n\tDELETE_INVENTORY_PRODUCT = \"DELETE_INVENTORY_PRODUCT\",\n\tVIEW_BUSINESS_BALANCE = \"VIEW_BUSINESS_BALANCE\",\n\tVIEW_BRANCH_BALANCE = \"VIEW_BRANCH_BALANCE\",\n\tUPDATE_PRODUCT_INGREDIENTS = \"UPDATE_PRODUCT_INGREDIENTS\",\n\tDELETE_PRODUCT_INGREDIENTS = \"DELETE_PRODUCT_INGREDIENTS\",\n}\n"],"names":["MenuAddonSelectType","BranchSetting","BusinessSetting","CustomerAuthStep","CustomerAddressType","FeatureSegment","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","ProductView","PlanType","SubscriptionStatus","TableShape","TableStatus","TableLocation","EmployeePermission","Feature"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/modules/addon/models.ts","../../../src/modules/branch/models.ts","../../../src/modules/business/models.ts","../../../src/modules/customer/models.ts","../../../src/modules/feature/models.ts","../../../src/modules/order/models.ts","../../../src/modules/product/models.ts","../../../src/modules/subscription/models.ts","../../../src/modules/table/models.ts","../../../src/modules/user/models.ts"],"sourcesContent":["export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","export type BranchWorkHour = {\n\topenAt: string;\n\tcloseAt: string;\n};\n\nexport type BranchWorkDay = {\n\tday: number;\n\thours: BranchWorkHour | null;\n};\n\nexport type BranchWorkDays = {\n\tdays: BranchWorkDay[];\n};\n\nexport interface BranchSettings {\n\tdeliveryOrderEnabled: boolean;\n\tpickupOrderEnabled: boolean;\n\tdineInOrderEnabled: boolean;\n\tmaxDeliveryDistance: number;\n\tminDeliveryAmount: number;\n\tdeliveryFeeAmount: number;\n}\n\nexport enum BranchSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n\tDELIVERY_FEE_AMOUNT = \"deliveryFeeAmount\",\n}\n\nexport interface Branch {\n\tid: number;\n\tname: string;\n\tbusinessId: number;\n\taddress: string;\n\tlongitude?: number;\n\tlatitude?: number;\n\tphone?: string;\n\twhatsApp?: string;\n\ttelegram?: string;\n\twifiPassword?: string;\n\tcreatedAt?: number;\n\tcoverPhoto?: string;\n\tsettings?: BranchSettings;\n\topeningHours?: BranchWorkDays;\n\tdeliveryHours?: BranchWorkDays;\n}\n\nexport type BranchServes = {\n\tisOpen: boolean;\n\tisDelivering: boolean;\n};\n","import * as featureModels from \"../feature/models\";\nimport * as subscriptionModels from \"../subscription/models\";\n\nexport interface BusinessLanguage {\n\tid: number;\n\tcode: string;\n\tbusinessId: number;\n}\n\nexport enum BusinessSetting {\n\tMAX_DELIVERY_DISTANCE = \"maxDeliveryDistance\",\n\tDELIVERY_ORDER_ENABLED = \"deliveryOrderEnabled\",\n\tPICKUP_ORDER_ENABLED = \"pickupOrderEnabled\",\n\tDINE_IN_ORDER_ENABLED = \"dineInOrderEnabled\",\n\tMIN_DELIVERY_AMOUNT = \"minDeliveryAmount\",\n}\n\nexport interface Business {\n\tid: number;\n\tname: string;\n\tusername: string;\n\tavatar64?: string;\n\tavatar128?: string;\n\tavatar256?: string;\n\tcoverPhoto?: string;\n\tinstagram?: string;\n\tfacebook?: string;\n\ttiktok?: string;\n\tcreatedAt?: number;\n\tcurrency: string;\n\tlanguages: BusinessLanguage[];\n\tsubscriptions?: subscriptionModels.Subscription[];\n\tsegment?: featureModels.FeatureSegment;\n}\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","export enum Feature {\n\tUPLOAD_VIDEO = \"UPLOAD_VIDEO\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { MenuAddon } from \"../addon/models\";\n\nexport interface ProductTranslation {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tlanguage: string;\n\tproductId?: number;\n}\n\nexport interface ProductVariantTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface ProductVariant {\n\tid?: number;\n\tprice: number;\n\ttranslations: ProductVariantTranslation[];\n\tproductId?: number;\n\tremove?: boolean;\n}\n\nexport interface Product {\n\tid: number;\n\tcategoryId: number;\n\tvat?: number;\n\tprice: number;\n\tvolume?: string; // 100qr/250ml/1kq\n\timage160?: string;\n\timage580?: string;\n\timage1024?: string;\n\ttranslations: ProductTranslation[];\n\tvariants: ProductVariant[];\n\taddons: MenuAddon[];\n\tavailable?: boolean;\n\tvisible?: boolean;\n\tposition?: number;\n\tvideoUrl?: string;\n}\n\nexport enum ProductView {\n\tLIST = \"list\",\n\tGRID = \"grid\",\n}\n\nexport interface DashboardProduct extends Omit<Product, \"addons\"> {\n\taddons: number[];\n}\n","export enum PlanType {\n\tAPPETIZER = \"appetizer\",\n\tMAIN_COURSE = \"mainCourse\",\n\tCHEFS_SPECIAL = \"chefsSpecial\",\n\tLIFETIME = \"lifeTime\",\n}\n\nexport interface PricingPlan {\n\ttitle: string;\n\tprice: {\n\t\tmonthly: number;\n\t\tannually: number;\n\t};\n\tdiscountedPrice?: number;\n\tribbonText?: string;\n}\n\nexport interface PricingPlans {\n\t[key: string]: PricingPlan;\n}\n\nexport type PricingInterval = \"monthly\" | \"annually\";\n\nexport enum SubscriptionStatus {\n\tACTIVE = \"ACTIVE\",\n\tEXPIRED = \"EXPIRED\",\n\tCANCELLED = \"CANCELLED\",\n}\n\nexport type BillingInterval = \"MONTH\" | \"YEAR\";\n\nexport interface Subscription {\n\tid: number;\n\tbillingInterval: BillingInterval;\n\tbillingIntervalCount: number;\n\tstartDate: string;\n\tendDate: string;\n\tinterval: PricingInterval;\n\tstatus: SubscriptionStatus;\n\tbusiness_id?: number;\n\tplanName: string;\n}\n","export enum TableShape {\n\tSQUARE = \"SQUARE\",\n\tCIRCLE = \"CIRCLE\",\n\tRECTANGLE = \"RECTANGLE\",\n\tRECTANGLE_VERTICAL = \"RECTANGLE_VERTICAL\",\n\tSINGLE_AT_BAR = \"SINGLE_AT_BAR\",\n\tOTHER = \"OTHER\",\n}\n\nexport enum TableStatus {\n\tVACANT = \"VACANT\", // Free and available\n\tRESERVED = \"RESERVED\", // Booked but not yet seated\n\tOCCUPIED = \"OCCUPIED\", // Currently in use\n\tBLOCKED = \"BLOCKED\", // Temporarily blocked/unavailable\n\tNEEDS_CLEANING = \"NEEDS_CLEANING\", // Dirty, awaiting cleanup\n\tOUT_OF_SERVICE = \"OUT_OF_SERVICE\", // Permanently unavailable repair/maintenance\n\tPENDING_CONFIRMATION = \"PENDING_CONFIRMATION\", // Reservation not yet confirmed\n\tNO_SHOW = \"NO_SHOW\", // Reserved but guest didn’t arrive\n}\n\nexport enum TableLocation {\n\t// Indoor\n\tMAIN_HALL = \"MAIN_HALL\",\n\tPRIVATE_DINING = \"PRIVATE_DINING\",\n\tVIP_ROOM = \"VIP_ROOM\",\n\tBANQUET_HALL = \"BANQUET_HALL\",\n\tBAR_AREA = \"BAR_AREA\",\n\tLOUNGE = \"LOUNGE\",\n\tOPEN_KITCHEN = \"OPEN_KITCHEN\",\n\tBOOTH_SECTION = \"BOOTH_SECTION\",\n\tMEZZANINE = \"MEZZANINE\",\n\tWINE_CELLAR = \"WINE_CELLAR\",\n\n\t// Outdoor\n\tTERRACE = \"TERRACE\",\n\tPATIO = \"PATIO\",\n\tGARDEN = \"GARDEN\",\n\tCOURTYARD = \"COURTYARD\",\n\tROOFTOP = \"ROOFTOP\",\n\tBALCONY = \"BALCONY\",\n\tSIDEWALK = \"SIDEWALK\",\n\tPOOLSIDE = \"POOLSIDE\",\n\n\t// Special Sections\n\tSMOKING_AREA = \"SMOKING_AREA\",\n\tNON_SMOKING = \"NON_SMOKING\",\n\tFAMILY_SECTION = \"FAMILY_SECTION\",\n\tKIDS_AREA = \"KIDS_AREA\",\n\tWAITING_AREA = \"WAITING_AREA\",\n\tDANCE_FLOOR = \"DANCE_FLOOR\",\n}\n\nexport interface Table {\n\tid: number;\n\tbusinessId: number;\n\tbranchId: number;\n\tname: string;\n\tseatCount: number;\n\tshape: TableShape;\n\tlocation: TableLocation;\n\tstatus: TableStatus;\n}\n\nexport interface TableState {\n\ttables: Table[];\n}\n\nexport type TableForm = Omit<Table, \"id\" | \"businessId\" | \"branchId\"> & {\n\tbranchId: string | number;\n};\n\nexport type TableUpdate = Partial<Omit<Table, \"id\" | \"businessId\">>;\n\nexport type TableFilter = Partial<Pick<Table, \"branchId\" | \"shape\" | \"location\" | \"status\">>;\n\nexport type TableFilterParams = { field: keyof TableFilter; value: TableFilter[keyof TableFilter] };\n","// TODO: move it lib that we can use in mobile app too\nexport enum EmployeePermission {\n\tVIEW_BUSINESS = \"VIEW_BUSINESS\",\n\tUPDATE_BUSINESS = \"UPDATE_BUSINESS\",\n\tVIEW_ORDERS = \"VIEW_ORDERS\",\n\tUPDATE_ORDER = \"UPDATE_ORDER\",\n\tCREATE_ORDER = \"CREATE_ORDER\",\n\tVIEW_QR_MENU = \"VIEW_QR_MENU\",\n\tVIEW_MENU = \"VIEW_MENU\",\n\tVIEW_MENU_ITEMS = \"VIEW_MENU_ITEMS\",\n\tCREATE_MENU_ITEM = \"CREATE_MENU_ITEM\",\n\tUPDATE_MENU_ITEM = \"UPDATE_MENU_ITEM\",\n\tDELETE_MENU_ITEM = \"DELETE_MENU_ITEM\",\n\tVIEW_CATEGORIES = \"VIEW_CATEGORIES\",\n\tUPDATE_CATEGORY = \"UPDATE_CATEGORY\",\n\tCREATE_CATEGORY = \"CREATE_CATEGORY\",\n\tDELETE_CATEGORY = \"DELETE_CATEGORY\",\n\tVIEW_ADDONS = \"VIEW_ADDONS\",\n\tUPDATE_ADDON = \"UPDATE_ADDON\",\n\tCREATE_ADDON = \"CREATE_ADDON\",\n\tDELETE_ADDON = \"DELETE_ADDON\",\n\tVIEW_TABLES = \"VIEW_TABLES\",\n\tUPDATE_TABLE = \"UPDATE_TABLE\",\n\tUPDATE_TABLE_STATUS = \"UPDATE_TABLE_STATUS\",\n\tCREATE_TABLE = \"CREATE_TABLE\",\n\tDELETE_TABLE = \"DELETE_TABLE\",\n\tVIEW_BRANCHES = \"VIEW_BRANCHES\",\n\tUPDATE_BRANCH = \"UPDATE_BRANCH\",\n\tCREATE_BRANCH = \"CREATE_BRANCH\",\n\tDELETE_BRANCH = \"DELETE_BRANCH\",\n\tVIEW_EMPLOYEES = \"VIEW_EMPLOYEES\",\n\tUPDATE_EMPLOYEE = \"UPDATE_EMPLOYEE\",\n\tCREATE_EMPLOYEE = \"CREATE_EMPLOYEE\",\n\tDELETE_EMPLOYEE = \"DELETE_EMPLOYEE\",\n\tVIEW_ANALYTICS = \"VIEW_ANALYTICS\",\n\tVIEW_SALES_REPORTS = \"VIEW_SALES_REPORTS\",\n\tVIEW_SUBSCRIPTION = \"VIEW_SUBSCRIPTION\",\n\tUPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\",\n\tVIEW_QR_CODES = \"VIEW_QR_CODES\",\n\tCREATE_QR_CODE = \"CREATE_QR_CODE\",\n\tDELETE_QR_CODE = \"DELETE_QR_CODE\",\n\tALL = \"ALL\",\n\t// Inventory\n\tVIEW_INVENTORY = \"VIEW_INVENTORY\",\n\tVIEW_PURCHASES = \"VIEW_PURCHASES\",\n\tVIEW_PURCHASE_DETAIL = \"VIEW_PURCHASE_DETAIL\",\n\tCREATE_PURCHASE = \"CREATE_PURCHASE\",\n\tUPDATE_PURCHASE = \"UPDATE_PURCHASE\",\n\tDELETE_PURCHASE = \"DELETE_PURCHASE\",\n\tVIEW_INVENTORY_PRODUCTS = \"VIEW_INVENTORY_PRODUCTS\",\n\tCREATE_INVENTORY_PRODUCT = \"CREATE_INVENTORY_PRODUCT\",\n\tUPDATE_INVENTORY_PRODUCT = \"UPDATE_INVENTORY_PRODUCT\",\n\tDELETE_INVENTORY_PRODUCT = \"DELETE_INVENTORY_PRODUCT\",\n\tVIEW_BUSINESS_BALANCE = \"VIEW_BUSINESS_BALANCE\",\n\tVIEW_BRANCH_BALANCE = \"VIEW_BRANCH_BALANCE\",\n\tUPDATE_PRODUCT_INGREDIENTS = \"UPDATE_PRODUCT_INGREDIENTS\",\n\tDELETE_PRODUCT_INGREDIENTS = \"DELETE_PRODUCT_INGREDIENTS\",\n}\n"],"names":["MenuAddonSelectType","BranchSetting","BusinessSetting","CustomerAuthStep","CustomerAddressType","FeatureSegment","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","ProductView","PlanType","SubscriptionStatus","TableShape","TableStatus","TableLocation","EmployeePermission","Feature"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare enum Feature {
2
- ORDER = "feature_order"
2
+ UPLOAD_VIDEO = "UPLOAD_VIDEO"
3
3
  }
4
4
  export declare enum FeatureSegment {
5
5
  ALPHA = "ALPHA",
@@ -33,6 +33,7 @@ export interface Product {
33
33
  available?: boolean;
34
34
  visible?: boolean;
35
35
  position?: number;
36
+ videoUrl?: string;
36
37
  }
37
38
  export declare enum ProductView {
38
39
  LIST = "list",
@@ -1,5 +1,5 @@
1
1
  export declare enum Feature {
2
- ORDER = "feature_order"
2
+ UPLOAD_VIDEO = "UPLOAD_VIDEO"
3
3
  }
4
4
  export declare enum FeatureSegment {
5
5
  ALPHA = "ALPHA",
@@ -33,6 +33,7 @@ export interface Product {
33
33
  available?: boolean;
34
34
  visible?: boolean;
35
35
  position?: number;
36
+ videoUrl?: string;
36
37
  }
37
38
  export declare enum ProductView {
38
39
  LIST = "list",
@@ -1,2 +1,2 @@
1
- import{priceFormatter as t,isEmpty as r,sortNumbers as n,checkIsValidEmail as e,getQueryParam as o}from"@sorocraft/js-utils";import{HourglassHalf as i,FileCheck as a,Chef as l,Delivery as s,BagCheck as d,Check as u}from"@sorocraft/ui/icons";const c=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},E=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},A=({option:r,currency:n,language:e})=>{const{price:o}=r||{};return{totalPrice:o,formattedTotalPrice:t(o,n||"USD",e||"en")}},v=(t,r)=>{var n;return(null===(n=((null==t?void 0:t.options)||[]).find(({id:t})=>t===r))||void 0===n?void 0:n.price)||0},R=(t,r,n)=>{var e;if(Array.isArray(r))return(t||[]).filter(({id:t})=>r.includes(t)).map(({translations:t})=>{var r;return(null===(r=t.find(t=>t.language===n))||void 0===r?void 0:r.title)||""}).filter(Boolean).join(", ");{const o=(t||[]).find(({id:t})=>t===r);return(null===(e=null==o?void 0:o.translations.find(t=>t.language===n))||void 0===e?void 0:e.title)||""}},I=(t,r)=>{var n,e,o;return(null===(o=null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||void 0===o?void 0:o.title)||""};var D;!function(t){t.SINGLE="SINGLE",t.MULTIPLE="MULTIPLE"}(D||(D={}));const T=(t=0,r=1,n=0)=>t*r*(1+n/100),p=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},L=(t,r=1)=>{const{price:n=0,vat:e=0}=t||{};return T(n,r,e)},f=(r,n,e,o=1)=>{const i=L(r,o);return{totalPrice:i,formattedTotalPrice:t(i,n,e)}},P=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.variants)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.id===r))||{}},N=(t,r={},n)=>((null==t?void 0:t.addons)||[]).filter(t=>Object.prototype.hasOwnProperty.call(r,t.id)).reduce((t,n)=>{const{id:e,selectType:o}=n;if(o===D.SINGLE){const o=r[e];return t+v(n,o)}return t+(r[e]||[]).reduce((t,r)=>t+v(n,r),0)},0)*n,m=(t,r,n)=>{const e=P(r,t),{vat:o}=r||{},{price:i}=e||{};return T(i,n,o)},O=({variantId:r,currency:n="USD",language:e="en",product:o,quantity:i=1})=>{const a=m(r,o,i);return{totalPrice:a,formattedTotalPrice:t(a,n,e)}},h=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},g=({product:t,variantId:n,quantity:e=1,selectedAddons:o,noVat:i=!1})=>{if(r(t))return{price:0,optionsPrice:0,total:0};const a=Object.assign(Object.assign({},t),{vat:i?0:t.vat}),l=N(a,o,e),s=n?m(n,a,e):L(a,e);return{price:s,optionsPrice:l,total:s+l}},b=({product:r,variantId:n,quantity:e=1,currency:o,language:i,selectedAddons:a,noVat:l=!1})=>{const{total:s}=g({product:r,variantId:n,quantity:e,selectedAddons:a,noVat:l});return{totalPrice:s,formattedTotalPrice:t(s,o,i)}},_=(t,r)=>((null==t?void 0:t.addons)||[]).find(({id:t})=>t===r)||{};var C,y,S,M,V,$;!function(t){t.DINE_IN="DINE_IN",t.PICK_UP="PICK_UP",t.DELIVERY="DELIVERY"}(C||(C={})),function(t){t.DRAFT="DRAFT",t.PENDING="PENDING",t.CONFIRMED="CONFIRMED",t.PREPARING="PREPARING",t.READY="READY",t.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",t.DELIVERED="DELIVERED",t.COMPLETED="COMPLETED",t.CANCELLED="CANCELLED",t.FAILED="FAILED"}(y||(y={})),function(t){t.PENDING="PENDING",t.PREPARING="PREPARING",t.READY="READY",t.SERVED="SERVED"}(S||(S={})),function(t){t.CASH="CASH",t.CARD="CARD",t.WALLET="WALLET",t.TERMINAL="TERMINAL"}(M||(M={})),function(t){t.CART="CART",t.DETAILS="DETAILS",t.COMPLETED="COMPLETED"}(V||(V={})),M.CASH,V.CART,V.DETAILS,V.COMPLETED,function(t){t.FIELD_REQUIRED_ERROR="This field is required",t.TABLE_NOT_SELECTED="Please select a table",t.ADDRESS_IS_EMPTY="Please enter an address",t.EMPTY_ITEMS="Please choose product",t.BRANCH_NOT_SELECTED="Please select a branch"}($||($={}));const B=t=>t.options.reduce((t,r)=>t+r.price,0);function U(t=[],r=1){return r*t.reduce((t,r)=>t+B(r),0)}const j=(r,n,e)=>{const o=(t,r,n)=>r*t+U(n,r);let i=0,a=0;for(const t of r.items){const n=o(t.price,t.quantity,t.addons);i+=n,void 0===r.vat&&t.vat&&(a+=n*t.vat/100)}void 0!==r.vat&&(a=i*r.vat/100);const l=i+a;return{totalWithoutTax:i,totalWithoutTaxFormatted:t(i,n,e),totalTax:a,totalTaxFormatted:t(a,n,e),totalWithTax:l,totalWithTaxFormatted:t(l,n,e)}},F=(t,r,e)=>{if(!t)throw new Error("Product ID is required");let o=`${t}`;r&&(o+=`-${r}`);const i=Object.entries(e||{}).map(([t,r])=>{if(!t||!r)return null;const e=Array.isArray(r)?n(r).filter(Boolean).join("-"):`${r}`;return e?`${t}-${e}`:null}).filter(Boolean).join("-");return i&&(o+=`-${i}`),o},G=t=>{var r;const{price:n,variant:e,addons:o,quantity:i,vat:a}=t||{},l=null!==(r=null==e?void 0:e.price)&&void 0!==r?r:n,s=l+U(o,1),d=l*(a/100),u=s+d;return{totalGross:u*i,totalNet:s*i,totalTax:d*i,itemGrossPrice:u,itemNetPrice:s,itemTax:d}},H=t=>{const r={};for(const{addonId:n,options:e=[]}of t.addons||[]){const t=e.map(({optionId:t})=>t);r[n]=1===t.length?t[0]:t}return r},Y=t=>{switch(t){case y.COMPLETED:return u;case y.DELIVERED:return d;case y.OUT_FOR_DELIVERY:return s;case y.PREPARING:return l;case y.CONFIRMED:return a;case y.PENDING:default:return i}},W=(t=[],n={})=>Object.entries(n).map(([n,e])=>{const o=Number(n),i=Array.isArray(e)?e:[e],a=t.find(t=>t.id===o);if(r(a))return{addonId:o,options:[]};const l=(a.options||[]).filter(t=>i.includes(t.id)).map(t=>({optionId:t.id,price:t.price}));return{addonId:o,options:l}}),w=(t,r,n)=>{if(!t)return null;const{deliveryOrderEnabled:e,dineInOrderEnabled:o,pickupOrderEnabled:i}=t;return e&&n?C.DELIVERY:o&&r?C.DINE_IN:i&&r?C.PICK_UP:null},x=t=>{switch(t){case"customer":return $.ADDRESS_IS_EMPTY;case"tableId":return $.TABLE_NOT_SELECTED;case"items":return $.EMPTY_ITEMS;case"branchId":return $.BRANCH_NOT_SELECTED;default:return $.FIELD_REQUIRED_ERROR}},q="restaround.co",Q=[q,"restaround.az","restaround.ee","restaround.nl"],K="https://images.restaround.co",z={994:t=>{const r=["50","51","10","55","99","70","77","60"];return new RegExp(`^(${r.join("|")})\\d{7}$`).test(t)?{isValid:!0}:{isValid:!1,error:`Azerbaijani numbers must be 9 digits and start with ${r.join(", ")}`}},31:t=>/^\d{9}$/.test(t)?{isValid:!0}:{isValid:!1,error:"Dutch numbers must be exactly 9 digits"}};function k(t){if(!t)return{isValid:!1,error:"FIELD_REQUIRED"};const r=t.replace(/\D/g,""),n=r.startsWith("994")?"994":r.startsWith("31")?"31":null;if(!n)return{isValid:!1,error:"Unsupported country code"};const e=r.slice(n.length);return(0,z[n])(e)}const J=(t,r)=>{const n=Q.includes(t)?t:q;return{url:`https://${n}/${r||"en"}`,domain:n}},X=t=>"az"===t?"az":"co",Z=(t,r)=>`https://app.restaround.${X(t)}/auth/register?lang=${t}&utm_source=${r}`,tt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"",rt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"https://images.restaround.co/no-photo-128.webp",nt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"https://images.restaround.co/restaround-doodle.webp",et="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",ot=(t,r,n)=>et.charAt(t>>2)+et.charAt((3&t)<<4|r>>4)+et.charAt((15&r)<<2|n>>6)+et.charAt(63&n),it=(t,r,n)=>`data:image/gif;base64,R0lGODlhAQABAPAA${ot(0,t,r)+ot(n,255,255)}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`;var at,lt;!function(t){t.PHONE="PHONE",t.OTP="OTP",t.EMAIL="EMAIL"}(at||(at={})),function(t){t.HOME="HOME",t.WORK="WORK",t.TRAVEL="TRAVEL"}(lt||(lt={}));const st=t=>`${t.countryCode}${t.phoneNumber}`.replaceAll("+",""),dt=(t,r)=>{const n={},{phoneNumber:o,email:i,otp:a}=t||{};switch(r){case at.PHONE:{const{isValid:t,error:r}=k(o);t||(n.phoneNumber=r);break}case at.OTP:{const{isValid:t,error:r}=k(o);t||(n.phoneNumber=r),a&&6===a.length||(n.otp="Invalid OTP");break}case at.EMAIL:i&&e(i)||(n.email="Invalid Email Address")}return n},ut=t=>{const r={},{countryCode:n,cityName:e,street:o,houseNumber:i}=t||{};return n||(r.countryCode="COUNTRY_REQUIRED"),e||(r.cityName="CITY_REQUIRED"),o||(r.street="STREET_REQUIRED"),i||(r.houseNumber="STREET_NUMBER_REQUIRED"),r},ct=t=>(t||[]).filter(Boolean).join(", "),Et=(t,r,n)=>[t,[r,n].filter(Boolean).join("/")].filter(Boolean).join(" ");var At,vt;!function(t){t.ORDER="feature_order"}(At||(At={})),function(t){t.ALPHA="ALPHA",t.BETA="BETA",t.ALL="ALL"}(vt||(vt={}));const Rt={[vt.ALPHA]:[],[vt.BETA]:[],[vt.ALL]:[At.ORDER]},It=(t,r)=>{if("1"===o(t))return!0;return(r===vt.ALPHA?[vt.ALPHA,vt.BETA,vt.ALL]:r===vt.BETA?[vt.BETA,vt.ALL]:[vt.ALL]).some(r=>{var n;return null===(n=Rt[r])||void 0===n?void 0:n.includes(t)})},Dt=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},Tt=(t,n,e)=>{var o;const i=null===(o=null==n?void 0:n.find)||void 0===o?void 0:o.call(n,({id:r})=>r===t);if(r(i))return"";const{name:a}=Dt(i,e);return a||""},pt=(t,r)=>{const n=r.reduce((t,r)=>{if(!r.visible)return t;const n=Number(r.categoryId);return t[n]||(t[n]=[]),t[n].push(r),t},{});return t.map(t=>Object.assign(Object.assign({},t),{products:n[Number(t.id)]||[]})).filter(t=>{var r;return(null===(r=null==t?void 0:t.products)||void 0===r?void 0:r.length)>0})};export{W as buildSelectedAddonsPayload,B as calculatSingleAddonTotalPrice,U as calculateTotalAddonPrice,T as calculateTotalPrice,Et as formatAddressLine,ct as formatCityLine,F as generateOrderItemsId,v as getAddonOptionRawPrice,E as getAddonOptionTranslation,I as getAddonTitle,c as getAddonTranslation,J as getBaseUrl,Tt as getCategoryNameById,Dt as getCategoryTranslation,nt as getCoverPhotoSource,w as getDefaultOrderType,tt as getImageSource,It as getIsFeatureActive,rt as getLogoImageSource,A as getOptionPrice,R as getOptionTitles,x as getOrderErrorMessages,G as getOrderItemPrice,j as getOrderPrice,_ as getProductAddon,b as getProductOrderPrice,g as getProductOrderRawPrice,f as getProductPrice,L as getProductRawPrice,p as getProductTranslation,P as getProductVariant,O as getProductVariantPrice,m as getProductVariantRawPrice,h as getProductVariantTranslation,Z as getRegisterUrl,H as getSelectedAddonsFromOrderItems,N as getSelectedOptionsTotalPrice,Y as getStatusIcon,X as getTLD,pt as prepareCategoryAndProductMap,st as preparePhoneNumber,it as rgbDataURL,ut as validateAddressForm,dt as validateForm,k as validatePhoneNumber};
1
+ import{priceFormatter as t,isEmpty as r,sortNumbers as n,checkIsValidEmail as e,getQueryParam as o}from"@sorocraft/js-utils";import{HourglassHalf as i,FileCheck as a,Chef as l,Delivery as s,BagCheck as d,Check as u}from"@sorocraft/ui/icons";const c=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},E=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},A=({option:r,currency:n,language:e})=>{const{price:o}=r||{};return{totalPrice:o,formattedTotalPrice:t(o,n||"USD",e||"en")}},v=(t,r)=>{var n;return(null===(n=((null==t?void 0:t.options)||[]).find(({id:t})=>t===r))||void 0===n?void 0:n.price)||0},I=(t,r,n)=>{var e;if(Array.isArray(r))return(t||[]).filter(({id:t})=>r.includes(t)).map(({translations:t})=>{var r;return(null===(r=t.find(t=>t.language===n))||void 0===r?void 0:r.title)||""}).filter(Boolean).join(", ");{const o=(t||[]).find(({id:t})=>t===r);return(null===(e=null==o?void 0:o.translations.find(t=>t.language===n))||void 0===e?void 0:e.title)||""}},D=(t,r)=>{var n,e,o;return(null===(o=null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||void 0===o?void 0:o.title)||""};var R;!function(t){t.SINGLE="SINGLE",t.MULTIPLE="MULTIPLE"}(R||(R={}));const L=(t=0,r=1,n=0)=>t*r*(1+n/100),T=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},p=(t,r=1)=>{const{price:n=0,vat:e=0}=t||{};return L(n,r,e)},P=(r,n,e,o=1)=>{const i=p(r,o);return{totalPrice:i,formattedTotalPrice:t(i,n,e)}},f=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.variants)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.id===r))||{}},N=(t,r={},n)=>((null==t?void 0:t.addons)||[]).filter(t=>Object.prototype.hasOwnProperty.call(r,t.id)).reduce((t,n)=>{const{id:e,selectType:o}=n;if(o===R.SINGLE){const o=r[e];return t+v(n,o)}return t+(r[e]||[]).reduce((t,r)=>t+v(n,r),0)},0)*n,O=(t,r,n)=>{const e=f(r,t),{vat:o}=r||{},{price:i}=e||{};return L(i,n,o)},m=({variantId:r,currency:n="USD",language:e="en",product:o,quantity:i=1})=>{const a=O(r,o,i);return{totalPrice:a,formattedTotalPrice:t(a,n,e)}},h=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},g=({product:t,variantId:n,quantity:e=1,selectedAddons:o,noVat:i=!1})=>{if(r(t))return{price:0,optionsPrice:0,total:0};const a=Object.assign(Object.assign({},t),{vat:i?0:t.vat}),l=N(a,o,e),s=n?O(n,a,e):p(a,e);return{price:s,optionsPrice:l,total:s+l}},_=({product:r,variantId:n,quantity:e=1,currency:o,language:i,selectedAddons:a,noVat:l=!1})=>{const{total:s}=g({product:r,variantId:n,quantity:e,selectedAddons:a,noVat:l});return{totalPrice:s,formattedTotalPrice:t(s,o,i)}},b=(t,r)=>((null==t?void 0:t.addons)||[]).find(({id:t})=>t===r)||{};var C,y,S,V,M,U;!function(t){t.DINE_IN="DINE_IN",t.PICK_UP="PICK_UP",t.DELIVERY="DELIVERY"}(C||(C={})),function(t){t.DRAFT="DRAFT",t.PENDING="PENDING",t.CONFIRMED="CONFIRMED",t.PREPARING="PREPARING",t.READY="READY",t.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",t.DELIVERED="DELIVERED",t.COMPLETED="COMPLETED",t.CANCELLED="CANCELLED",t.FAILED="FAILED"}(y||(y={})),function(t){t.PENDING="PENDING",t.PREPARING="PREPARING",t.READY="READY",t.SERVED="SERVED"}(S||(S={})),function(t){t.CASH="CASH",t.CARD="CARD",t.WALLET="WALLET",t.TERMINAL="TERMINAL"}(V||(V={})),function(t){t.CART="CART",t.DETAILS="DETAILS",t.COMPLETED="COMPLETED"}(M||(M={})),V.CASH,M.CART,M.DETAILS,M.COMPLETED,function(t){t.FIELD_REQUIRED_ERROR="This field is required",t.TABLE_NOT_SELECTED="Please select a table",t.ADDRESS_IS_EMPTY="Please enter an address",t.EMPTY_ITEMS="Please choose product",t.BRANCH_NOT_SELECTED="Please select a branch"}(U||(U={}));const $=t=>t.options.reduce((t,r)=>t+r.price,0);function B(t=[],r=1){return r*t.reduce((t,r)=>t+$(r),0)}const j=(r,n,e)=>{const o=(t,r,n)=>r*t+B(n,r);let i=0,a=0;for(const t of r.items){const n=o(t.price,t.quantity,t.addons);i+=n,void 0===r.vat&&t.vat&&(a+=n*t.vat/100)}void 0!==r.vat&&(a=i*r.vat/100);const l=i+a;return{totalWithoutTax:i,totalWithoutTaxFormatted:t(i,n,e),totalTax:a,totalTaxFormatted:t(a,n,e),totalWithTax:l,totalWithTaxFormatted:t(l,n,e)}},F=(t,r,e)=>{if(!t)throw new Error("Product ID is required");let o=`${t}`;r&&(o+=`-${r}`);const i=Object.entries(e||{}).map(([t,r])=>{if(!t||!r)return null;const e=Array.isArray(r)?n(r).filter(Boolean).join("-"):`${r}`;return e?`${t}-${e}`:null}).filter(Boolean).join("-");return i&&(o+=`-${i}`),o},G=t=>{var r;const{price:n,variant:e,addons:o,quantity:i,vat:a}=t||{},l=null!==(r=null==e?void 0:e.price)&&void 0!==r?r:n,s=l+B(o,1),d=l*(a/100),u=s+d;return{totalGross:u*i,totalNet:s*i,totalTax:d*i,itemGrossPrice:u,itemNetPrice:s,itemTax:d}},H=t=>{const r={};for(const{addonId:n,options:e=[]}of t.addons||[]){const t=e.map(({optionId:t})=>t);r[n]=1===t.length?t[0]:t}return r},Y=t=>{switch(t){case y.COMPLETED:return u;case y.DELIVERED:return d;case y.OUT_FOR_DELIVERY:return s;case y.PREPARING:return l;case y.CONFIRMED:return a;case y.PENDING:default:return i}},W=(t=[],n={})=>Object.entries(n).map(([n,e])=>{const o=Number(n),i=Array.isArray(e)?e:[e],a=t.find(t=>t.id===o);if(r(a))return{addonId:o,options:[]};const l=(a.options||[]).filter(t=>i.includes(t.id)).map(t=>({optionId:t.id,price:t.price}));return{addonId:o,options:l}}),w=(t,r,n)=>{if(!t)return null;const{deliveryOrderEnabled:e,dineInOrderEnabled:o,pickupOrderEnabled:i}=t;return e&&n?C.DELIVERY:o&&r?C.DINE_IN:i&&r?C.PICK_UP:null},x=t=>{switch(t){case"customer":return U.ADDRESS_IS_EMPTY;case"tableId":return U.TABLE_NOT_SELECTED;case"items":return U.EMPTY_ITEMS;case"branchId":return U.BRANCH_NOT_SELECTED;default:return U.FIELD_REQUIRED_ERROR}},q="restaround.co",Q=[q,"restaround.az","restaround.ee","restaround.nl"],K="https://images.restaround.co",z={994:t=>{const r=["50","51","10","55","99","70","77","60"];return new RegExp(`^(${r.join("|")})\\d{7}$`).test(t)?{isValid:!0}:{isValid:!1,error:`Azerbaijani numbers must be 9 digits and start with ${r.join(", ")}`}},31:t=>/^\d{9}$/.test(t)?{isValid:!0}:{isValid:!1,error:"Dutch numbers must be exactly 9 digits"}};function k(t){if(!t)return{isValid:!1,error:"FIELD_REQUIRED"};const r=t.replace(/\D/g,""),n=r.startsWith("994")?"994":r.startsWith("31")?"31":null;if(!n)return{isValid:!1,error:"Unsupported country code"};const e=r.slice(n.length);return(0,z[n])(e)}const J=(t,r)=>{const n=Q.includes(t)?t:q;return{url:`https://${n}/${r||"en"}`,domain:n}},X=t=>"az"===t?"az":"co",Z=(t,r)=>`https://app.restaround.${X(t)}/auth/register?lang=${t}&utm_source=${r}`,tt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"",rt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"https://images.restaround.co/no-photo-128.webp",nt=t=>t?t.includes("base64")||t.startsWith("https://")?t:`${K}/${t}`:"https://images.restaround.co/restaround-doodle.webp",et="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",ot=(t,r,n)=>et.charAt(t>>2)+et.charAt((3&t)<<4|r>>4)+et.charAt((15&r)<<2|n>>6)+et.charAt(63&n),it=(t,r,n)=>`data:image/gif;base64,R0lGODlhAQABAPAA${ot(0,t,r)+ot(n,255,255)}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`;var at,lt;!function(t){t.PHONE="PHONE",t.OTP="OTP",t.EMAIL="EMAIL"}(at||(at={})),function(t){t.HOME="HOME",t.WORK="WORK",t.TRAVEL="TRAVEL"}(lt||(lt={}));const st=t=>`${t.countryCode}${t.phoneNumber}`.replaceAll("+",""),dt=(t,r)=>{const n={},{phoneNumber:o,email:i,otp:a}=t||{};switch(r){case at.PHONE:{const{isValid:t,error:r}=k(o);t||(n.phoneNumber=r);break}case at.OTP:{const{isValid:t,error:r}=k(o);t||(n.phoneNumber=r),a&&6===a.length||(n.otp="Invalid OTP");break}case at.EMAIL:i&&e(i)||(n.email="Invalid Email Address")}return n},ut=t=>{const r={},{countryCode:n,cityName:e,street:o,houseNumber:i}=t||{};return n||(r.countryCode="COUNTRY_REQUIRED"),e||(r.cityName="CITY_REQUIRED"),o||(r.street="STREET_REQUIRED"),i||(r.houseNumber="STREET_NUMBER_REQUIRED"),r},ct=t=>(t||[]).filter(Boolean).join(", "),Et=(t,r,n)=>[t,[r,n].filter(Boolean).join("/")].filter(Boolean).join(" ");var At,vt;!function(t){t.UPLOAD_VIDEO="UPLOAD_VIDEO"}(At||(At={})),function(t){t.ALPHA="ALPHA",t.BETA="BETA",t.ALL="ALL"}(vt||(vt={}));const It={[vt.ALPHA]:[At.UPLOAD_VIDEO],[vt.BETA]:[],[vt.ALL]:[]},Dt=(t,r)=>{if("1"===o(t))return!0;return(r===vt.ALPHA?[vt.ALPHA,vt.BETA,vt.ALL]:r===vt.BETA?[vt.BETA,vt.ALL]:[vt.ALL]).some(r=>{var n;return null===(n=It[r])||void 0===n?void 0:n.includes(t)})},Rt=(t,r)=>{var n,e;return(null===(e=null===(n=null==t?void 0:t.translations)||void 0===n?void 0:n.find)||void 0===e?void 0:e.call(n,t=>t.language===r))||{}},Lt=(t,n,e)=>{var o;const i=null===(o=null==n?void 0:n.find)||void 0===o?void 0:o.call(n,({id:r})=>r===t);if(r(i))return"";const{name:a}=Rt(i,e);return a||""},Tt=(t,r)=>{const n=r.reduce((t,r)=>{if(!r.visible)return t;const n=Number(r.categoryId);return t[n]||(t[n]=[]),t[n].push(r),t},{});return t.map(t=>Object.assign(Object.assign({},t),{products:n[Number(t.id)]||[]})).filter(t=>{var r;return(null===(r=null==t?void 0:t.products)||void 0===r?void 0:r.length)>0})};export{W as buildSelectedAddonsPayload,$ as calculatSingleAddonTotalPrice,B as calculateTotalAddonPrice,L as calculateTotalPrice,Et as formatAddressLine,ct as formatCityLine,F as generateOrderItemsId,v as getAddonOptionRawPrice,E as getAddonOptionTranslation,D as getAddonTitle,c as getAddonTranslation,J as getBaseUrl,Lt as getCategoryNameById,Rt as getCategoryTranslation,nt as getCoverPhotoSource,w as getDefaultOrderType,tt as getImageSource,Dt as getIsFeatureActive,rt as getLogoImageSource,A as getOptionPrice,I as getOptionTitles,x as getOrderErrorMessages,G as getOrderItemPrice,j as getOrderPrice,b as getProductAddon,_ as getProductOrderPrice,g as getProductOrderRawPrice,P as getProductPrice,p as getProductRawPrice,T as getProductTranslation,f as getProductVariant,m as getProductVariantPrice,O as getProductVariantRawPrice,h as getProductVariantTranslation,Z as getRegisterUrl,H as getSelectedAddonsFromOrderItems,N as getSelectedOptionsTotalPrice,Y as getStatusIcon,X as getTLD,Tt as prepareCategoryAndProductMap,st as preparePhoneNumber,it as rgbDataURL,ut as validateAddressForm,dt as validateForm,k as validatePhoneNumber};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/modules/addon/utils.ts","../../../src/modules/addon/models.ts","../../../src/modules/product/utils.ts","../../../src/modules/order/models.ts","../../../src/modules/order/constants.ts","../../../src/modules/order/utils.ts","../../../src/modules/view/constants.ts","../../../src/modules/view/utils.ts","../../../src/modules/customer/models.ts","../../../src/modules/customer/utils.ts","../../../src/modules/feature/models.ts","../../../src/modules/feature/constants.ts","../../../src/modules/feature/utils.ts","../../../src/modules/category/utils.ts","../../../src/modules/menu/utils.ts"],"sourcesContent":["import { priceFormatter } from \"@sorocraft/js-utils\";\n\nimport {\n\tMenuAddon,\n\tMenuAddonOption,\n\tMenuAddonOptionTranslation,\n\tMenuAddonTranslation,\n} from \"./models\";\n\nexport const getAddonTranslation = (addon: MenuAddon, language: string): MenuAddonTranslation => {\n\treturn (addon?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonTranslation;\n};\n\nexport const getAddonOptionTranslation = (\n\toption: MenuAddonOption,\n\tlanguage: string\n): MenuAddonOptionTranslation => {\n\treturn (option?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonOptionTranslation;\n};\n\nexport const getOptionPrice = ({\n\toption,\n\tcurrency,\n\tlanguage,\n}: {\n\toption: MenuAddonOption;\n\tcurrency?: string;\n\tlanguage?: string;\n}) => {\n\tconst { price } = option || {};\n\n\treturn {\n\t\ttotalPrice: price,\n\t\tformattedTotalPrice: priceFormatter(price, currency || \"USD\", language || \"en\"),\n\t};\n};\n\nexport const getAddonOptionRawPrice = (addon: MenuAddon, optionId: number): number => {\n\treturn (addon?.options || []).find(({ id }) => id === optionId)?.price || 0;\n};\n\nexport const getOptionTitles = (\n\toptions: MenuAddonOption[],\n\toptionIds: number | number[],\n\tlanguage: string\n): string => {\n\tif (Array.isArray(optionIds)) {\n\t\treturn (options || [])\n\t\t\t.filter(({ id }) => optionIds.includes(id))\n\t\t\t.map(({ translations }) => translations.find((t) => t.language === language)?.title || \"\")\n\t\t\t.filter(Boolean)\n\t\t\t.join(\", \");\n\t} else {\n\t\tconst option = (options || []).find(({ id }) => id === optionIds);\n\t\treturn option?.translations.find((t) => t.language === language)?.title || \"\";\n\t}\n};\n\nexport const getAddonTitle = (addon: MenuAddon, language: string): string => {\n\treturn addon?.translations?.find?.((t) => t.language === language)?.title || \"\";\n};\n","export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","import { isEmpty, priceFormatter } from \"@sorocraft/js-utils\";\n\nimport { Product, ProductTranslation, ProductVariant, ProductVariantTranslation } from \"./models\";\n\nimport { MenuAddon, MenuAddonSelectType } from \"src/modules/addon/models\";\nimport { getAddonOptionRawPrice } from \"src/modules/addon/utils\";\nimport * as orderModels from \"src/modules/order/models\";\n\nexport const calculateTotalPrice = (price: number = 0, quantity: number = 1, vat: number = 0) => {\n\treturn price * quantity * (1 + vat / 100);\n};\n\nexport const getProductTranslation = (\n\tproduct: Pick<Product, \"translations\">,\n\tlanguage: string\n): ProductTranslation => {\n\treturn (product?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductTranslation;\n};\n\nexport const getProductRawPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tquantity: number = 1\n) => {\n\tconst { price = 0, vat = 0 } = product || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tcurrency: string,\n\tlanguage: string,\n\tquantity: number = 1\n) => {\n\tconst totalPrice = getProductRawPrice(product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariant = (\n\tproduct: Pick<Product, \"variants\">,\n\tvariantId: number\n): ProductVariant => {\n\treturn product?.variants?.find?.((item) => item.id === variantId) || ({} as ProductVariant);\n};\n\nexport const getSelectedOptionsTotalPrice = (\n\tproduct: Product,\n\tselectedAddons: orderModels.SelectedAddons = {},\n\tquantity: number\n): number => {\n\t// Filter addons that are selected by the user\n\tconst selectedAddonsList = (product?.addons || []).filter((addon) =>\n\t\tObject.prototype.hasOwnProperty.call(selectedAddons, addon.id)\n\t);\n\n\t// Calculate the total price\n\tconst optionsTotalPrice = selectedAddonsList.reduce((total: number, addon: MenuAddon) => {\n\t\tconst { id: addonId, selectType } = addon;\n\n\t\t// Handle SINGLE selection\n\t\tif (selectType === MenuAddonSelectType.SINGLE) {\n\t\t\tconst selectedOptionId = selectedAddons[addonId] as number;\n\t\t\treturn total + getAddonOptionRawPrice(addon, selectedOptionId);\n\t\t}\n\n\t\t// Handle MULTIPLE selection\n\t\tconst selectedOptionIds = (selectedAddons[addonId] || []) as number[];\n\t\tconst multipleOptionsPrice = selectedOptionIds.reduce(\n\t\t\t(multipleTotal, optionId) => multipleTotal + getAddonOptionRawPrice(addon, optionId),\n\t\t\t0\n\t\t);\n\n\t\treturn total + multipleOptionsPrice;\n\t}, 0);\n\n\treturn optionsTotalPrice * quantity;\n};\n\nexport const getProductVariantRawPrice = (\n\tvariantId: number,\n\tproduct: Pick<Product, \"variants\" | \"vat\">,\n\tquantity?: number\n) => {\n\tconst variant = getProductVariant(product, variantId);\n\tconst { vat } = product || {};\n\tconst { price } = variant || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductVariantPrice = ({\n\tvariantId,\n\tcurrency = \"USD\",\n\tlanguage = \"en\",\n\tproduct,\n\tquantity = 1,\n}: {\n\tvariantId: number;\n\tcurrency?: string;\n\tlanguage?: string;\n\tproduct: Pick<Product, \"variants\" | \"vat\">;\n\tquantity?: number;\n}) => {\n\tconst totalPrice = getProductVariantRawPrice(variantId, product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariantTranslation = (\n\tvariant: ProductVariant,\n\tlanguage: string\n): ProductVariantTranslation => {\n\treturn (variant?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductVariantTranslation;\n};\n\nexport const getProductOrderRawPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}): { price: number; optionsPrice: number; total: number } => {\n\tif (isEmpty(product)) return { price: 0, optionsPrice: 0, total: 0 };\n\n\tconst productData: Product = { ...product, vat: noVat ? 0 : product.vat };\n\tconst selectedOptionsTotalPrice = getSelectedOptionsTotalPrice(\n\t\tproductData,\n\t\tselectedAddons,\n\t\tquantity\n\t);\n\tconst price = variantId\n\t\t? getProductVariantRawPrice(variantId, productData, quantity)\n\t\t: getProductRawPrice(productData, quantity);\n\n\treturn {\n\t\tprice,\n\t\toptionsPrice: selectedOptionsTotalPrice,\n\t\ttotal: price + selectedOptionsTotalPrice,\n\t};\n};\n\nexport const getProductOrderPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tcurrency,\n\tlanguage,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tcurrency: string;\n\tlanguage: string;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}) => {\n\tconst { total } = getProductOrderRawPrice({\n\t\tproduct,\n\t\tvariantId,\n\t\tquantity,\n\t\tselectedAddons,\n\t\tnoVat,\n\t});\n\n\treturn {\n\t\ttotalPrice: total,\n\t\tformattedTotalPrice: priceFormatter(total, currency, language),\n\t};\n};\n\nexport const getProductAddon = (product: Product, addonId: number): MenuAddon => {\n\treturn (product?.addons || []).find(({ id }) => id === addonId) || ({} as MenuAddon);\n};\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { OrderStep, PaymentMethod } from \"./models\";\n\nexport const initialOrder = {\n\torderType: null,\n\ttotalPriceWithTax: 0,\n\ttotalPriceWithoutTax: 0,\n\ttotalTax: 0,\n\tvat: 0,\n\tpaymentMethod: PaymentMethod.CASH,\n};\n\nexport const ORDER_STEPS = [OrderStep.CART, OrderStep.DETAILS, OrderStep.COMPLETED];\n\nexport enum OrderErrors {\n\tFIELD_REQUIRED_ERROR = \"This field is required\",\n\tTABLE_NOT_SELECTED = \"Please select a table\",\n\tADDRESS_IS_EMPTY = \"Please enter an address\",\n\tEMPTY_ITEMS = \"Please choose product\",\n\tBRANCH_NOT_SELECTED = \"Please select a branch\",\n}\n","import { isEmpty, priceFormatter, sortNumbers } from \"@sorocraft/js-utils\";\nimport { IconType } from \"@sorocraft/ui\";\nimport { Check, BagCheck, Delivery, Chef, FileCheck, HourglassHalf } from \"@sorocraft/ui/icons\";\n\nimport {\n\tOrder,\n\tOrderAddon,\n\tOrderAddonOption,\n\tOrderItem,\n\tOrderStatus,\n\tOrderType,\n\tSelectedAddons,\n} from \"./models\";\n\nimport * as addonModels from \"../addon/models\";\nimport * as branchModels from \"../branch/models\";\nimport { OrderErrors } from \"./constants\";\n\nexport const calculatSingleAddonTotalPrice = (addon: OrderAddon) => {\n\treturn addon.options.reduce((sum, option) => sum + option.price, 0);\n};\n\nexport function calculateTotalAddonPrice(addons: OrderAddon[] = [], quantity: number = 1): number {\n\tconst totalAddonsPriceForSingleItem = addons.reduce((total, addon) => {\n\t\tconst addonTotal = calculatSingleAddonTotalPrice(addon);\n\t\treturn total + addonTotal;\n\t}, 0);\n\n\treturn quantity * totalAddonsPriceForSingleItem;\n}\n\nexport const getOrderPrice = (order: Order, currency: string, language: string) => {\n\tconst calculateItemTotal = (price: number, quantity: number, addons: OrderAddon[]) => {\n\t\treturn quantity * price + calculateTotalAddonPrice(addons, quantity);\n\t};\n\n\tlet totalWithoutTax = 0;\n\tlet totalTax = 0;\n\n\tfor (const item of order.items) {\n\t\tconst itemTotal = calculateItemTotal(item.price, item.quantity, item.addons);\n\t\ttotalWithoutTax += itemTotal;\n\n\t\tif (order.vat === undefined && item.vat) {\n\t\t\ttotalTax += (itemTotal * item.vat) / 100;\n\t\t}\n\t}\n\n\tif (order.vat !== undefined) {\n\t\ttotalTax = (totalWithoutTax * order.vat) / 100;\n\t}\n\n\tconst totalWithTax = totalWithoutTax + totalTax;\n\n\treturn {\n\t\ttotalWithoutTax,\n\t\ttotalWithoutTaxFormatted: priceFormatter(totalWithoutTax, currency, language),\n\t\ttotalTax,\n\t\ttotalTaxFormatted: priceFormatter(totalTax, currency, language),\n\t\ttotalWithTax,\n\t\ttotalWithTaxFormatted: priceFormatter(totalWithTax, currency, language),\n\t};\n};\n\nexport const generateOrderItemsId = (\n\tproductId: number,\n\tvariantId: number | null,\n\tselectedAddons?: SelectedAddons\n): string => {\n\tif (!productId) throw new Error(\"Product ID is required\");\n\n\t// Build the order items ID base with productId and variantId\n\tlet orderItemsId = `${productId}`;\n\tif (variantId) {\n\t\torderItemsId += `-${variantId}`;\n\t}\n\n\t// Build the addon part of the ID\n\tconst addonIdsPart = Object.entries(selectedAddons || {})\n\t\t.map(([addonId, option]) => {\n\t\t\tif (!addonId || !option) return null; // Skip invalid entries\n\t\t\tconst optionIds = Array.isArray(option)\n\t\t\t\t? sortNumbers(option).filter(Boolean).join(\"-\")\n\t\t\t\t: `${option}`;\n\t\t\tif (!optionIds) return null;\n\t\t\treturn `${addonId}-${optionIds}`;\n\t\t})\n\t\t.filter(Boolean) // Remove null/undefined values\n\t\t.join(\"-\");\n\n\t// Append addonIdsPart if it's not empty\n\tif (addonIdsPart) {\n\t\torderItemsId += `-${addonIdsPart}`;\n\t}\n\n\treturn orderItemsId;\n};\n\nexport const getOrderItemPrice = (orderItem: OrderItem) => {\n\tconst { price, variant, addons, quantity, vat } = orderItem || {};\n\tconst basePrice = variant?.price ?? price;\n\tconst addonsPrice = calculateTotalAddonPrice(addons, 1); // single item's addon price\n\n\tconst itemNetPrice = basePrice + addonsPrice;\n\t// Currently VAT is applied only on basePrice, not on addons\n\t// TODO: Re-evaluate for European market where tax may apply to addons too\n\tconst itemTax = basePrice * (vat / 100);\n\tconst itemGrossPrice = itemNetPrice + itemTax;\n\n\tconst totalNet = itemNetPrice * quantity;\n\tconst totalTax = itemTax * quantity;\n\tconst totalGross = itemGrossPrice * quantity;\n\n\treturn {\n\t\ttotalGross,\n\t\ttotalNet,\n\t\ttotalTax,\n\t\titemGrossPrice,\n\t\titemNetPrice,\n\t\titemTax,\n\t};\n};\n\nexport const getSelectedAddonsFromOrderItems = (item: OrderItem): SelectedAddons => {\n\tconst selectedAddons: SelectedAddons = {};\n\n\tfor (const { addonId, options = [] } of item.addons || []) {\n\t\tconst optionIds = options.map(({ optionId }) => optionId);\n\t\tselectedAddons[addonId] = optionIds.length === 1 ? optionIds[0] : optionIds;\n\t}\n\n\treturn selectedAddons;\n};\n\nexport const getStatusIcon = (status: OrderStatus): IconType => {\n\tswitch (status) {\n\t\tcase OrderStatus.COMPLETED:\n\t\t\treturn Check;\n\t\tcase OrderStatus.DELIVERED:\n\t\t\treturn BagCheck;\n\t\tcase OrderStatus.OUT_FOR_DELIVERY:\n\t\t\treturn Delivery;\n\t\tcase OrderStatus.PREPARING:\n\t\t\treturn Chef;\n\t\tcase OrderStatus.CONFIRMED:\n\t\t\treturn FileCheck;\n\t\tcase OrderStatus.PENDING:\n\t\t\treturn HourglassHalf;\n\n\t\tdefault:\n\t\t\treturn HourglassHalf;\n\t}\n};\n\nexport const buildSelectedAddonsPayload = (\n\tproductAddons: addonModels.MenuAddon[] = [],\n\tselectedAddons: SelectedAddons = {}\n): OrderAddon[] => {\n\treturn Object.entries(selectedAddons).map(([addonIdStr, selected]) => {\n\t\tconst addonId = Number(addonIdStr);\n\t\tconst selectedOptionIds = Array.isArray(selected) ? selected : [selected];\n\n\t\tconst addon = productAddons.find((addon) => addon.id === addonId);\n\t\tif (isEmpty(addon)) {\n\t\t\treturn {\n\t\t\t\taddonId,\n\t\t\t\toptions: [],\n\t\t\t};\n\t\t}\n\n\t\tconst options: OrderAddonOption[] = (addon.options || [])\n\t\t\t.filter((option) => selectedOptionIds.includes(option.id))\n\t\t\t.map((option) => ({\n\t\t\t\toptionId: option.id,\n\t\t\t\tprice: option.price,\n\t\t\t}));\n\n\t\treturn {\n\t\t\taddonId,\n\t\t\toptions,\n\t\t};\n\t});\n};\n\nexport const getDefaultOrderType = (\n\tsettings: branchModels.BranchSettings,\n\tisOpen: boolean,\n\tisDelivering: boolean\n): OrderType | null => {\n\tif (!settings) return null;\n\n\tconst { deliveryOrderEnabled, dineInOrderEnabled, pickupOrderEnabled } = settings;\n\n\tif (deliveryOrderEnabled && isDelivering) {\n\t\treturn OrderType.DELIVERY;\n\t}\n\n\tif (dineInOrderEnabled && isOpen) {\n\t\treturn OrderType.DINE_IN;\n\t}\n\n\tif (pickupOrderEnabled && isOpen) {\n\t\treturn OrderType.PICK_UP;\n\t}\n\n\treturn null;\n};\n\nexport const getOrderErrorMessages = (field: keyof Order) => {\n\tswitch (field) {\n\t\tcase \"customer\":\n\t\t\treturn OrderErrors.ADDRESS_IS_EMPTY;\n\n\t\tcase \"tableId\":\n\t\t\treturn OrderErrors.TABLE_NOT_SELECTED;\n\n\t\tcase \"items\":\n\t\t\treturn OrderErrors.EMPTY_ITEMS;\n\n\t\tcase \"branchId\":\n\t\t\treturn OrderErrors.BRANCH_NOT_SELECTED;\n\n\t\tdefault:\n\t\t\treturn OrderErrors.FIELD_REQUIRED_ERROR;\n\t}\n};\n","export const MODALS = {\n\tADD_UPDATE_NOTES: \"ADD_UPDATE_NOTES\",\n\tAUTH: \"AUTH\",\n\tADD_UPDATE_ADDRESS: \"ADD_UPDATE_ADDRESS\",\n\tBRANCH_BUSINESS_HOURS: \"BRANCH_BUSINESS_HOURS\",\n\tPRODUCT_DETAILS: \"PRODUCT_DETAILS\",\n};\n\nexport const SUPPORTED_LOCALES = [\"en\", \"az\", \"nl\", \"et\", \"tr\", \"ru\"];\nexport const SUPPORTED_COUNTRIES = [\n\t{\n\t\tname: \"Azerbaijan\",\n\t\tcode: \"AZ\",\n\t\tphoneCode: \"+994\",\n\t},\n];\n\nexport const CO_DOMAIN = \"restaround.co\";\nexport const AZ_DOMAIN = \"restaround.az\";\nexport const EE_DOMAIN = \"restaround.ee\";\nexport const NL_DOMAIN = \"restaround.nl\";\n\nexport const DEFAULT_HOSTNAME = CO_DOMAIN;\n\nexport const DOMAINS = [CO_DOMAIN, AZ_DOMAIN, EE_DOMAIN, NL_DOMAIN]; // Supported domains list\n\nexport const IMAGE_BASE_URL = \"https://images.restaround.co\";\n","import { CO_DOMAIN, DOMAINS, IMAGE_BASE_URL } from \"./constants\";\n\ninterface ValidationResult {\n\tisValid: boolean;\n\terror?: string;\n}\n\ntype Validator = (cleanedNumber: string) => ValidationResult;\n\nconst validators: Record<string, Validator> = {\n\t\"994\": (number) => {\n\t\tconst AZERBAIJANI_PREFIXES = [\"50\", \"51\", \"10\", \"55\", \"99\", \"70\", \"77\", \"60\"];\n\t\tconst pattern = new RegExp(`^(${AZERBAIJANI_PREFIXES.join(\"|\")})\\\\d{7}$`);\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: `Azerbaijani numbers must be 9 digits and start with ${AZERBAIJANI_PREFIXES.join(\n\t\t\t\t\t\", \"\n\t\t\t\t)}`,\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n\n\t\"31\": (number) => {\n\t\tconst pattern = /^\\d{9}$/;\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: \"Dutch numbers must be exactly 9 digits\",\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n};\n\nexport function validatePhoneNumber(phoneNumber: string): ValidationResult {\n\tif (!phoneNumber) {\n\t\treturn { isValid: false, error: \"FIELD_REQUIRED\" };\n\t}\n\n\tconst cleaned = phoneNumber.replace(/\\D/g, \"\");\n\n\tconst countryCode = cleaned.startsWith(\"994\") ? \"994\" : cleaned.startsWith(\"31\") ? \"31\" : null;\n\n\tif (!countryCode) {\n\t\treturn { isValid: false, error: \"Unsupported country code\" };\n\t}\n\n\tconst nationalNumber = cleaned.slice(countryCode.length);\n\tconst validator = validators[countryCode];\n\n\treturn validator(nationalNumber);\n}\n\nexport const getBaseUrl = (hostname: string, language: string) => {\n\tconst domain = DOMAINS.includes(hostname) ? hostname : CO_DOMAIN;\n\tconst locale = language || \"en\";\n\treturn { url: `https://${domain}/${locale}`, domain };\n};\n\nexport const getTLD = (language: string) => {\n\treturn language === \"az\" ? \"az\" : \"co\";\n};\n\nexport const getRegisterUrl = (language: string, source: string) => {\n\tconst tld = getTLD(language);\n\n\treturn `https://app.restaround.${tld}/auth/register?lang=${language}&utm_source=${source}`;\n};\n\nexport const getImageSource = (image?: string) => {\n\tif (!image) return \"\";\n\n\tif (image.includes(\"base64\") || image.startsWith(\"https://\")) return image;\n\n\treturn `${IMAGE_BASE_URL}/${image}`;\n};\n\nexport const getLogoImageSource = (logoImage?: string) => {\n\tif (!logoImage) return \"https://images.restaround.co/no-photo-128.webp\";\n\n\tif (logoImage.includes(\"base64\") || logoImage.startsWith(\"https://\")) return logoImage;\n\n\treturn `${IMAGE_BASE_URL}/${logoImage}`;\n};\n\nexport const getCoverPhotoSource = (coverPhoto?: string) => {\n\tif (!coverPhoto) return \"https://images.restaround.co/restaround-doodle.webp\";\n\n\tif (coverPhoto.includes(\"base64\") || coverPhoto.startsWith(\"https://\")) return coverPhoto;\n\n\treturn `${IMAGE_BASE_URL}/${coverPhoto}`;\n};\n\nconst keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nconst triplet = (e1: number, e2: number, e3: number) =>\n\tkeyStr.charAt(e1 >> 2) +\n\tkeyStr.charAt(((e1 & 3) << 4) | (e2 >> 4)) +\n\tkeyStr.charAt(((e2 & 15) << 2) | (e3 >> 6)) +\n\tkeyStr.charAt(e3 & 63);\n\nexport const rgbDataURL = (r: number, g: number, b: number) =>\n\t`data:image/gif;base64,R0lGODlhAQABAPAA${\n\t\ttriplet(0, r, g) + triplet(b, 255, 255)\n\t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`;\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","import { FormErrors } from \"@sorocraft/ui\";\nimport { checkIsValidEmail } from \"@sorocraft/js-utils\";\n\nimport * as viewUtils from \"src/modules/view/utils\";\n\nimport {\n\tCustomerAddress,\n\tCustomerAuthForm,\n\tCustomerAuthPhoneForm,\n\tCustomerAuthStep,\n} from \"./models\";\n\nexport const preparePhoneNumber = (form: CustomerAuthPhoneForm) => {\n\tconst phoneNumber = `${form.countryCode}${form.phoneNumber}`.replaceAll(\"+\", \"\");\n\n\treturn phoneNumber;\n};\n\nexport const validateForm = (form: CustomerAuthForm, step: CustomerAuthStep): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { phoneNumber, email, otp } = form || {};\n\n\tswitch (step) {\n\t\tcase CustomerAuthStep.PHONE: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.OTP: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\n\t\t\tif (!otp || otp.length !== 6) {\n\t\t\t\terrors.otp = \"Invalid OTP\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.EMAIL: {\n\t\t\tif (!email || !checkIsValidEmail(email)) {\n\t\t\t\terrors.email = \"Invalid Email Address\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn errors;\n};\n\nexport const validateAddressForm = (form: CustomerAddress): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { countryCode, cityName, street, houseNumber } = form || {};\n\n\tif (!countryCode) errors.countryCode = \"COUNTRY_REQUIRED\";\n\tif (!cityName) errors.cityName = \"CITY_REQUIRED\";\n\tif (!street) errors.street = \"STREET_REQUIRED\";\n\tif (!houseNumber) errors.houseNumber = \"STREET_NUMBER_REQUIRED\";\n\n\treturn errors;\n};\n\nexport const formatCityLine = (fields: (string | undefined)[]) => {\n\treturn (fields || []).filter(Boolean).join(\", \");\n};\n\nexport const formatAddressLine = (\n\tstreet: string,\n\thouseNumber: string,\n\tadditionalNumber: string\n) => {\n\tconst house = [houseNumber, additionalNumber].filter(Boolean).join(\"/\");\n\tconst fullAddress = [street, house].filter(Boolean).join(\" \");\n\n\treturn fullAddress;\n};\n","export enum Feature {\n\tORDER = \"feature_order\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import { Feature, FeatureSegment } from \"./models\";\n\nexport const FEATURES_LIST: { [key in FeatureSegment]: Feature[] } = {\n\t[FeatureSegment.ALPHA]: [],\n\t[FeatureSegment.BETA]: [],\n\t[FeatureSegment.ALL]: [Feature.ORDER],\n};\n","import { getQueryParam } from \"@sorocraft/js-utils\";\n\nimport { FeatureSegment, type Feature } from \"./models\";\n\nimport { FEATURES_LIST } from \"./constants\";\n\nexport const getIsFeatureActive = (feature: Feature, businessSegment: FeatureSegment): boolean => {\n\t// Feature is force-enabled via query param\n\tif (getQueryParam(feature) === \"1\") return true;\n\n\t// Build the list of enabled segments for the current businessSegment\n\tconst enabledSegments: FeatureSegment[] =\n\t\tbusinessSegment === FeatureSegment.ALPHA\n\t\t\t? [FeatureSegment.ALPHA, FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: businessSegment === FeatureSegment.BETA\n\t\t\t? [FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: [FeatureSegment.ALL];\n\n\t// Check if feature exists in any of the enabled segments\n\treturn enabledSegments.some((segment) => FEATURES_LIST[segment]?.includes(feature));\n};\n","import { isEmpty } from \"@sorocraft/js-utils\";\nimport { Category, CategoryTranslation } from \"./models\";\n\nexport const getCategoryTranslation = (\n\tcategory: Category,\n\tlanguage: string\n): CategoryTranslation => {\n\treturn (category?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as CategoryTranslation;\n};\n\nexport const getCategoryNameById = (\n\tcategoryId: number,\n\tcategories: Category[],\n\tlanguage: string\n): string => {\n\tconst category = categories?.find?.(({ id }) => id === categoryId);\n\n\tif (isEmpty(category)) return \"\";\n\n\tconst { name } = getCategoryTranslation(category, language);\n\n\treturn name || \"\";\n};\n","import * as categoryModels from \"src/modules/category/models\";\nimport * as productModels from \"src/modules/product/models\";\n\nimport { CategoryProductMap } from \"./models\";\n\nexport const prepareCategoryAndProductMap = (\n\tcategories: categoryModels.Category[],\n\tproducts: productModels.Product[]\n): CategoryProductMap[] => {\n\tconst productMap = products.reduce<Record<number, productModels.Product[]>>((map, product) => {\n\t\tif (!product.visible) return map;\n\n\t\tconst categoryId = Number(product.categoryId);\n\t\tif (!map[categoryId]) {\n\t\t\tmap[categoryId] = [];\n\t\t}\n\t\tmap[categoryId].push(product);\n\t\treturn map;\n\t}, {});\n\n\treturn categories\n\t\t.map((category) => ({\n\t\t\t...category,\n\t\t\tproducts: (productMap[Number(category.id)] || []) as productModels.Product[],\n\t\t}))\n\t\t.filter((category) => category?.products?.length > 0);\n};\n"],"names":["getAddonTranslation","addon","language","_b","_a","translations","find","call","item","getAddonOptionTranslation","option","getOptionPrice","currency","price","totalPrice","formattedTotalPrice","priceFormatter","getAddonOptionRawPrice","optionId","options","id","getOptionTitles","optionIds","Array","isArray","filter","includes","map","t","title","Boolean","join","getAddonTitle","_c","MenuAddonSelectType","calculateTotalPrice","quantity","vat","getProductTranslation","product","getProductRawPrice","getProductPrice","getProductVariant","variantId","variants","getSelectedOptionsTotalPrice","selectedAddons","addons","Object","prototype","hasOwnProperty","reduce","total","addonId","selectType","SINGLE","selectedOptionId","multipleTotal","getProductVariantRawPrice","variant","getProductVariantPrice","getProductVariantTranslation","getProductOrderRawPrice","noVat","isEmpty","optionsPrice","productData","assign","selectedOptionsTotalPrice","getProductOrderPrice","getProductAddon","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","OrderErrors","CASH","CART","DETAILS","COMPLETED","calculatSingleAddonTotalPrice","sum","calculateTotalAddonPrice","getOrderPrice","order","calculateItemTotal","totalWithoutTax","totalTax","items","itemTotal","undefined","totalWithTax","totalWithoutTaxFormatted","totalTaxFormatted","totalWithTaxFormatted","generateOrderItemsId","productId","Error","orderItemsId","addonIdsPart","entries","sortNumbers","getOrderItemPrice","orderItem","basePrice","itemNetPrice","itemTax","itemGrossPrice","totalGross","totalNet","getSelectedAddonsFromOrderItems","length","getStatusIcon","status","Check","DELIVERED","BagCheck","OUT_FOR_DELIVERY","Delivery","PREPARING","Chef","CONFIRMED","FileCheck","PENDING","HourglassHalf","buildSelectedAddonsPayload","productAddons","addonIdStr","selected","Number","selectedOptionIds","getDefaultOrderType","settings","isOpen","isDelivering","deliveryOrderEnabled","dineInOrderEnabled","pickupOrderEnabled","DELIVERY","DINE_IN","PICK_UP","getOrderErrorMessages","field","ADDRESS_IS_EMPTY","TABLE_NOT_SELECTED","EMPTY_ITEMS","BRANCH_NOT_SELECTED","FIELD_REQUIRED_ERROR","CO_DOMAIN","DOMAINS","IMAGE_BASE_URL","validators","number","AZERBAIJANI_PREFIXES","RegExp","test","isValid","error","validatePhoneNumber","phoneNumber","cleaned","replace","countryCode","startsWith","nationalNumber","slice","validator","getBaseUrl","hostname","domain","url","getTLD","getRegisterUrl","source","getImageSource","image","getLogoImageSource","logoImage","getCoverPhotoSource","coverPhoto","keyStr","triplet","e1","e2","e3","charAt","rgbDataURL","r","g","b","CustomerAuthStep","CustomerAddressType","preparePhoneNumber","form","replaceAll","validateForm","step","errors","email","otp","PHONE","viewUtils.validatePhoneNumber","OTP","EMAIL","checkIsValidEmail","validateAddressForm","cityName","street","houseNumber","formatCityLine","fields","formatAddressLine","additionalNumber","Feature","FeatureSegment","FEATURES_LIST","ALPHA","BETA","ALL","ORDER","getIsFeatureActive","feature","businessSegment","getQueryParam","some","segment","getCategoryTranslation","category","getCategoryNameById","categoryId","categories","name","prepareCategoryAndProductMap","products","productMap","visible","push"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/modules/addon/utils.ts","../../../src/modules/addon/models.ts","../../../src/modules/product/utils.ts","../../../src/modules/order/models.ts","../../../src/modules/order/constants.ts","../../../src/modules/order/utils.ts","../../../src/modules/view/constants.ts","../../../src/modules/view/utils.ts","../../../src/modules/customer/models.ts","../../../src/modules/customer/utils.ts","../../../src/modules/feature/models.ts","../../../src/modules/feature/constants.ts","../../../src/modules/feature/utils.ts","../../../src/modules/category/utils.ts","../../../src/modules/menu/utils.ts"],"sourcesContent":["import { priceFormatter } from \"@sorocraft/js-utils\";\n\nimport {\n\tMenuAddon,\n\tMenuAddonOption,\n\tMenuAddonOptionTranslation,\n\tMenuAddonTranslation,\n} from \"./models\";\n\nexport const getAddonTranslation = (addon: MenuAddon, language: string): MenuAddonTranslation => {\n\treturn (addon?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonTranslation;\n};\n\nexport const getAddonOptionTranslation = (\n\toption: MenuAddonOption,\n\tlanguage: string\n): MenuAddonOptionTranslation => {\n\treturn (option?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonOptionTranslation;\n};\n\nexport const getOptionPrice = ({\n\toption,\n\tcurrency,\n\tlanguage,\n}: {\n\toption: MenuAddonOption;\n\tcurrency?: string;\n\tlanguage?: string;\n}) => {\n\tconst { price } = option || {};\n\n\treturn {\n\t\ttotalPrice: price,\n\t\tformattedTotalPrice: priceFormatter(price, currency || \"USD\", language || \"en\"),\n\t};\n};\n\nexport const getAddonOptionRawPrice = (addon: MenuAddon, optionId: number): number => {\n\treturn (addon?.options || []).find(({ id }) => id === optionId)?.price || 0;\n};\n\nexport const getOptionTitles = (\n\toptions: MenuAddonOption[],\n\toptionIds: number | number[],\n\tlanguage: string\n): string => {\n\tif (Array.isArray(optionIds)) {\n\t\treturn (options || [])\n\t\t\t.filter(({ id }) => optionIds.includes(id))\n\t\t\t.map(({ translations }) => translations.find((t) => t.language === language)?.title || \"\")\n\t\t\t.filter(Boolean)\n\t\t\t.join(\", \");\n\t} else {\n\t\tconst option = (options || []).find(({ id }) => id === optionIds);\n\t\treturn option?.translations.find((t) => t.language === language)?.title || \"\";\n\t}\n};\n\nexport const getAddonTitle = (addon: MenuAddon, language: string): string => {\n\treturn addon?.translations?.find?.((t) => t.language === language)?.title || \"\";\n};\n","export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","import { isEmpty, priceFormatter } from \"@sorocraft/js-utils\";\n\nimport { Product, ProductTranslation, ProductVariant, ProductVariantTranslation } from \"./models\";\n\nimport { MenuAddon, MenuAddonSelectType } from \"src/modules/addon/models\";\nimport { getAddonOptionRawPrice } from \"src/modules/addon/utils\";\nimport * as orderModels from \"src/modules/order/models\";\n\nexport const calculateTotalPrice = (price: number = 0, quantity: number = 1, vat: number = 0) => {\n\treturn price * quantity * (1 + vat / 100);\n};\n\nexport const getProductTranslation = (\n\tproduct: Pick<Product, \"translations\">,\n\tlanguage: string\n): ProductTranslation => {\n\treturn (product?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductTranslation;\n};\n\nexport const getProductRawPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tquantity: number = 1\n) => {\n\tconst { price = 0, vat = 0 } = product || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tcurrency: string,\n\tlanguage: string,\n\tquantity: number = 1\n) => {\n\tconst totalPrice = getProductRawPrice(product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariant = (\n\tproduct: Pick<Product, \"variants\">,\n\tvariantId: number\n): ProductVariant => {\n\treturn product?.variants?.find?.((item) => item.id === variantId) || ({} as ProductVariant);\n};\n\nexport const getSelectedOptionsTotalPrice = (\n\tproduct: Product,\n\tselectedAddons: orderModels.SelectedAddons = {},\n\tquantity: number\n): number => {\n\t// Filter addons that are selected by the user\n\tconst selectedAddonsList = (product?.addons || []).filter((addon) =>\n\t\tObject.prototype.hasOwnProperty.call(selectedAddons, addon.id)\n\t);\n\n\t// Calculate the total price\n\tconst optionsTotalPrice = selectedAddonsList.reduce((total: number, addon: MenuAddon) => {\n\t\tconst { id: addonId, selectType } = addon;\n\n\t\t// Handle SINGLE selection\n\t\tif (selectType === MenuAddonSelectType.SINGLE) {\n\t\t\tconst selectedOptionId = selectedAddons[addonId] as number;\n\t\t\treturn total + getAddonOptionRawPrice(addon, selectedOptionId);\n\t\t}\n\n\t\t// Handle MULTIPLE selection\n\t\tconst selectedOptionIds = (selectedAddons[addonId] || []) as number[];\n\t\tconst multipleOptionsPrice = selectedOptionIds.reduce(\n\t\t\t(multipleTotal, optionId) => multipleTotal + getAddonOptionRawPrice(addon, optionId),\n\t\t\t0\n\t\t);\n\n\t\treturn total + multipleOptionsPrice;\n\t}, 0);\n\n\treturn optionsTotalPrice * quantity;\n};\n\nexport const getProductVariantRawPrice = (\n\tvariantId: number,\n\tproduct: Pick<Product, \"variants\" | \"vat\">,\n\tquantity?: number\n) => {\n\tconst variant = getProductVariant(product, variantId);\n\tconst { vat } = product || {};\n\tconst { price } = variant || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductVariantPrice = ({\n\tvariantId,\n\tcurrency = \"USD\",\n\tlanguage = \"en\",\n\tproduct,\n\tquantity = 1,\n}: {\n\tvariantId: number;\n\tcurrency?: string;\n\tlanguage?: string;\n\tproduct: Pick<Product, \"variants\" | \"vat\">;\n\tquantity?: number;\n}) => {\n\tconst totalPrice = getProductVariantRawPrice(variantId, product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariantTranslation = (\n\tvariant: ProductVariant,\n\tlanguage: string\n): ProductVariantTranslation => {\n\treturn (variant?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductVariantTranslation;\n};\n\nexport const getProductOrderRawPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}): { price: number; optionsPrice: number; total: number } => {\n\tif (isEmpty(product)) return { price: 0, optionsPrice: 0, total: 0 };\n\n\tconst productData: Product = { ...product, vat: noVat ? 0 : product.vat };\n\tconst selectedOptionsTotalPrice = getSelectedOptionsTotalPrice(\n\t\tproductData,\n\t\tselectedAddons,\n\t\tquantity\n\t);\n\tconst price = variantId\n\t\t? getProductVariantRawPrice(variantId, productData, quantity)\n\t\t: getProductRawPrice(productData, quantity);\n\n\treturn {\n\t\tprice,\n\t\toptionsPrice: selectedOptionsTotalPrice,\n\t\ttotal: price + selectedOptionsTotalPrice,\n\t};\n};\n\nexport const getProductOrderPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tcurrency,\n\tlanguage,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tcurrency: string;\n\tlanguage: string;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}) => {\n\tconst { total } = getProductOrderRawPrice({\n\t\tproduct,\n\t\tvariantId,\n\t\tquantity,\n\t\tselectedAddons,\n\t\tnoVat,\n\t});\n\n\treturn {\n\t\ttotalPrice: total,\n\t\tformattedTotalPrice: priceFormatter(total, currency, language),\n\t};\n};\n\nexport const getProductAddon = (product: Product, addonId: number): MenuAddon => {\n\treturn (product?.addons || []).find(({ id }) => id === addonId) || ({} as MenuAddon);\n};\n","import * as customerModels from \"../customer/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { OrderStep, PaymentMethod } from \"./models\";\n\nexport const initialOrder = {\n\torderType: null,\n\ttotalPriceWithTax: 0,\n\ttotalPriceWithoutTax: 0,\n\ttotalTax: 0,\n\tvat: 0,\n\tpaymentMethod: PaymentMethod.CASH,\n};\n\nexport const ORDER_STEPS = [OrderStep.CART, OrderStep.DETAILS, OrderStep.COMPLETED];\n\nexport enum OrderErrors {\n\tFIELD_REQUIRED_ERROR = \"This field is required\",\n\tTABLE_NOT_SELECTED = \"Please select a table\",\n\tADDRESS_IS_EMPTY = \"Please enter an address\",\n\tEMPTY_ITEMS = \"Please choose product\",\n\tBRANCH_NOT_SELECTED = \"Please select a branch\",\n}\n","import { isEmpty, priceFormatter, sortNumbers } from \"@sorocraft/js-utils\";\nimport { IconType } from \"@sorocraft/ui\";\nimport { Check, BagCheck, Delivery, Chef, FileCheck, HourglassHalf } from \"@sorocraft/ui/icons\";\n\nimport {\n\tOrder,\n\tOrderAddon,\n\tOrderAddonOption,\n\tOrderItem,\n\tOrderStatus,\n\tOrderType,\n\tSelectedAddons,\n} from \"./models\";\n\nimport * as addonModels from \"../addon/models\";\nimport * as branchModels from \"../branch/models\";\nimport { OrderErrors } from \"./constants\";\n\nexport const calculatSingleAddonTotalPrice = (addon: OrderAddon) => {\n\treturn addon.options.reduce((sum, option) => sum + option.price, 0);\n};\n\nexport function calculateTotalAddonPrice(addons: OrderAddon[] = [], quantity: number = 1): number {\n\tconst totalAddonsPriceForSingleItem = addons.reduce((total, addon) => {\n\t\tconst addonTotal = calculatSingleAddonTotalPrice(addon);\n\t\treturn total + addonTotal;\n\t}, 0);\n\n\treturn quantity * totalAddonsPriceForSingleItem;\n}\n\nexport const getOrderPrice = (order: Order, currency: string, language: string) => {\n\tconst calculateItemTotal = (price: number, quantity: number, addons: OrderAddon[]) => {\n\t\treturn quantity * price + calculateTotalAddonPrice(addons, quantity);\n\t};\n\n\tlet totalWithoutTax = 0;\n\tlet totalTax = 0;\n\n\tfor (const item of order.items) {\n\t\tconst itemTotal = calculateItemTotal(item.price, item.quantity, item.addons);\n\t\ttotalWithoutTax += itemTotal;\n\n\t\tif (order.vat === undefined && item.vat) {\n\t\t\ttotalTax += (itemTotal * item.vat) / 100;\n\t\t}\n\t}\n\n\tif (order.vat !== undefined) {\n\t\ttotalTax = (totalWithoutTax * order.vat) / 100;\n\t}\n\n\tconst totalWithTax = totalWithoutTax + totalTax;\n\n\treturn {\n\t\ttotalWithoutTax,\n\t\ttotalWithoutTaxFormatted: priceFormatter(totalWithoutTax, currency, language),\n\t\ttotalTax,\n\t\ttotalTaxFormatted: priceFormatter(totalTax, currency, language),\n\t\ttotalWithTax,\n\t\ttotalWithTaxFormatted: priceFormatter(totalWithTax, currency, language),\n\t};\n};\n\nexport const generateOrderItemsId = (\n\tproductId: number,\n\tvariantId: number | null,\n\tselectedAddons?: SelectedAddons\n): string => {\n\tif (!productId) throw new Error(\"Product ID is required\");\n\n\t// Build the order items ID base with productId and variantId\n\tlet orderItemsId = `${productId}`;\n\tif (variantId) {\n\t\torderItemsId += `-${variantId}`;\n\t}\n\n\t// Build the addon part of the ID\n\tconst addonIdsPart = Object.entries(selectedAddons || {})\n\t\t.map(([addonId, option]) => {\n\t\t\tif (!addonId || !option) return null; // Skip invalid entries\n\t\t\tconst optionIds = Array.isArray(option)\n\t\t\t\t? sortNumbers(option).filter(Boolean).join(\"-\")\n\t\t\t\t: `${option}`;\n\t\t\tif (!optionIds) return null;\n\t\t\treturn `${addonId}-${optionIds}`;\n\t\t})\n\t\t.filter(Boolean) // Remove null/undefined values\n\t\t.join(\"-\");\n\n\t// Append addonIdsPart if it's not empty\n\tif (addonIdsPart) {\n\t\torderItemsId += `-${addonIdsPart}`;\n\t}\n\n\treturn orderItemsId;\n};\n\nexport const getOrderItemPrice = (orderItem: OrderItem) => {\n\tconst { price, variant, addons, quantity, vat } = orderItem || {};\n\tconst basePrice = variant?.price ?? price;\n\tconst addonsPrice = calculateTotalAddonPrice(addons, 1); // single item's addon price\n\n\tconst itemNetPrice = basePrice + addonsPrice;\n\t// Currently VAT is applied only on basePrice, not on addons\n\t// TODO: Re-evaluate for European market where tax may apply to addons too\n\tconst itemTax = basePrice * (vat / 100);\n\tconst itemGrossPrice = itemNetPrice + itemTax;\n\n\tconst totalNet = itemNetPrice * quantity;\n\tconst totalTax = itemTax * quantity;\n\tconst totalGross = itemGrossPrice * quantity;\n\n\treturn {\n\t\ttotalGross,\n\t\ttotalNet,\n\t\ttotalTax,\n\t\titemGrossPrice,\n\t\titemNetPrice,\n\t\titemTax,\n\t};\n};\n\nexport const getSelectedAddonsFromOrderItems = (item: OrderItem): SelectedAddons => {\n\tconst selectedAddons: SelectedAddons = {};\n\n\tfor (const { addonId, options = [] } of item.addons || []) {\n\t\tconst optionIds = options.map(({ optionId }) => optionId);\n\t\tselectedAddons[addonId] = optionIds.length === 1 ? optionIds[0] : optionIds;\n\t}\n\n\treturn selectedAddons;\n};\n\nexport const getStatusIcon = (status: OrderStatus): IconType => {\n\tswitch (status) {\n\t\tcase OrderStatus.COMPLETED:\n\t\t\treturn Check;\n\t\tcase OrderStatus.DELIVERED:\n\t\t\treturn BagCheck;\n\t\tcase OrderStatus.OUT_FOR_DELIVERY:\n\t\t\treturn Delivery;\n\t\tcase OrderStatus.PREPARING:\n\t\t\treturn Chef;\n\t\tcase OrderStatus.CONFIRMED:\n\t\t\treturn FileCheck;\n\t\tcase OrderStatus.PENDING:\n\t\t\treturn HourglassHalf;\n\n\t\tdefault:\n\t\t\treturn HourglassHalf;\n\t}\n};\n\nexport const buildSelectedAddonsPayload = (\n\tproductAddons: addonModels.MenuAddon[] = [],\n\tselectedAddons: SelectedAddons = {}\n): OrderAddon[] => {\n\treturn Object.entries(selectedAddons).map(([addonIdStr, selected]) => {\n\t\tconst addonId = Number(addonIdStr);\n\t\tconst selectedOptionIds = Array.isArray(selected) ? selected : [selected];\n\n\t\tconst addon = productAddons.find((addon) => addon.id === addonId);\n\t\tif (isEmpty(addon)) {\n\t\t\treturn {\n\t\t\t\taddonId,\n\t\t\t\toptions: [],\n\t\t\t};\n\t\t}\n\n\t\tconst options: OrderAddonOption[] = (addon.options || [])\n\t\t\t.filter((option) => selectedOptionIds.includes(option.id))\n\t\t\t.map((option) => ({\n\t\t\t\toptionId: option.id,\n\t\t\t\tprice: option.price,\n\t\t\t}));\n\n\t\treturn {\n\t\t\taddonId,\n\t\t\toptions,\n\t\t};\n\t});\n};\n\nexport const getDefaultOrderType = (\n\tsettings: branchModels.BranchSettings,\n\tisOpen: boolean,\n\tisDelivering: boolean\n): OrderType | null => {\n\tif (!settings) return null;\n\n\tconst { deliveryOrderEnabled, dineInOrderEnabled, pickupOrderEnabled } = settings;\n\n\tif (deliveryOrderEnabled && isDelivering) {\n\t\treturn OrderType.DELIVERY;\n\t}\n\n\tif (dineInOrderEnabled && isOpen) {\n\t\treturn OrderType.DINE_IN;\n\t}\n\n\tif (pickupOrderEnabled && isOpen) {\n\t\treturn OrderType.PICK_UP;\n\t}\n\n\treturn null;\n};\n\nexport const getOrderErrorMessages = (field: keyof Order) => {\n\tswitch (field) {\n\t\tcase \"customer\":\n\t\t\treturn OrderErrors.ADDRESS_IS_EMPTY;\n\n\t\tcase \"tableId\":\n\t\t\treturn OrderErrors.TABLE_NOT_SELECTED;\n\n\t\tcase \"items\":\n\t\t\treturn OrderErrors.EMPTY_ITEMS;\n\n\t\tcase \"branchId\":\n\t\t\treturn OrderErrors.BRANCH_NOT_SELECTED;\n\n\t\tdefault:\n\t\t\treturn OrderErrors.FIELD_REQUIRED_ERROR;\n\t}\n};\n","export const MODALS = {\n\tADD_UPDATE_NOTES: \"ADD_UPDATE_NOTES\",\n\tAUTH: \"AUTH\",\n\tADD_UPDATE_ADDRESS: \"ADD_UPDATE_ADDRESS\",\n\tBRANCH_BUSINESS_HOURS: \"BRANCH_BUSINESS_HOURS\",\n\tPRODUCT_DETAILS: \"PRODUCT_DETAILS\",\n};\n\nexport const SUPPORTED_LOCALES = [\"en\", \"az\", \"nl\", \"et\", \"tr\", \"ru\"];\nexport const SUPPORTED_COUNTRIES = [\n\t{\n\t\tname: \"Azerbaijan\",\n\t\tcode: \"AZ\",\n\t\tphoneCode: \"+994\",\n\t},\n];\n\nexport const CO_DOMAIN = \"restaround.co\";\nexport const AZ_DOMAIN = \"restaround.az\";\nexport const EE_DOMAIN = \"restaround.ee\";\nexport const NL_DOMAIN = \"restaround.nl\";\n\nexport const DEFAULT_HOSTNAME = CO_DOMAIN;\n\nexport const DOMAINS = [CO_DOMAIN, AZ_DOMAIN, EE_DOMAIN, NL_DOMAIN]; // Supported domains list\n\nexport const IMAGE_BASE_URL = \"https://images.restaround.co\";\n","import { CO_DOMAIN, DOMAINS, IMAGE_BASE_URL } from \"./constants\";\n\ninterface ValidationResult {\n\tisValid: boolean;\n\terror?: string;\n}\n\ntype Validator = (cleanedNumber: string) => ValidationResult;\n\nconst validators: Record<string, Validator> = {\n\t\"994\": (number) => {\n\t\tconst AZERBAIJANI_PREFIXES = [\"50\", \"51\", \"10\", \"55\", \"99\", \"70\", \"77\", \"60\"];\n\t\tconst pattern = new RegExp(`^(${AZERBAIJANI_PREFIXES.join(\"|\")})\\\\d{7}$`);\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: `Azerbaijani numbers must be 9 digits and start with ${AZERBAIJANI_PREFIXES.join(\n\t\t\t\t\t\", \"\n\t\t\t\t)}`,\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n\n\t\"31\": (number) => {\n\t\tconst pattern = /^\\d{9}$/;\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: \"Dutch numbers must be exactly 9 digits\",\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n};\n\nexport function validatePhoneNumber(phoneNumber: string): ValidationResult {\n\tif (!phoneNumber) {\n\t\treturn { isValid: false, error: \"FIELD_REQUIRED\" };\n\t}\n\n\tconst cleaned = phoneNumber.replace(/\\D/g, \"\");\n\n\tconst countryCode = cleaned.startsWith(\"994\") ? \"994\" : cleaned.startsWith(\"31\") ? \"31\" : null;\n\n\tif (!countryCode) {\n\t\treturn { isValid: false, error: \"Unsupported country code\" };\n\t}\n\n\tconst nationalNumber = cleaned.slice(countryCode.length);\n\tconst validator = validators[countryCode];\n\n\treturn validator(nationalNumber);\n}\n\nexport const getBaseUrl = (hostname: string, language: string) => {\n\tconst domain = DOMAINS.includes(hostname) ? hostname : CO_DOMAIN;\n\tconst locale = language || \"en\";\n\treturn { url: `https://${domain}/${locale}`, domain };\n};\n\nexport const getTLD = (language: string) => {\n\treturn language === \"az\" ? \"az\" : \"co\";\n};\n\nexport const getRegisterUrl = (language: string, source: string) => {\n\tconst tld = getTLD(language);\n\n\treturn `https://app.restaround.${tld}/auth/register?lang=${language}&utm_source=${source}`;\n};\n\nexport const getImageSource = (image?: string) => {\n\tif (!image) return \"\";\n\n\tif (image.includes(\"base64\") || image.startsWith(\"https://\")) return image;\n\n\treturn `${IMAGE_BASE_URL}/${image}`;\n};\n\nexport const getLogoImageSource = (logoImage?: string) => {\n\tif (!logoImage) return \"https://images.restaround.co/no-photo-128.webp\";\n\n\tif (logoImage.includes(\"base64\") || logoImage.startsWith(\"https://\")) return logoImage;\n\n\treturn `${IMAGE_BASE_URL}/${logoImage}`;\n};\n\nexport const getCoverPhotoSource = (coverPhoto?: string) => {\n\tif (!coverPhoto) return \"https://images.restaround.co/restaround-doodle.webp\";\n\n\tif (coverPhoto.includes(\"base64\") || coverPhoto.startsWith(\"https://\")) return coverPhoto;\n\n\treturn `${IMAGE_BASE_URL}/${coverPhoto}`;\n};\n\nconst keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nconst triplet = (e1: number, e2: number, e3: number) =>\n\tkeyStr.charAt(e1 >> 2) +\n\tkeyStr.charAt(((e1 & 3) << 4) | (e2 >> 4)) +\n\tkeyStr.charAt(((e2 & 15) << 2) | (e3 >> 6)) +\n\tkeyStr.charAt(e3 & 63);\n\nexport const rgbDataURL = (r: number, g: number, b: number) =>\n\t`data:image/gif;base64,R0lGODlhAQABAPAA${\n\t\ttriplet(0, r, g) + triplet(b, 255, 255)\n\t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`;\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","import { FormErrors } from \"@sorocraft/ui\";\nimport { checkIsValidEmail } from \"@sorocraft/js-utils\";\n\nimport * as viewUtils from \"src/modules/view/utils\";\n\nimport {\n\tCustomerAddress,\n\tCustomerAuthForm,\n\tCustomerAuthPhoneForm,\n\tCustomerAuthStep,\n} from \"./models\";\n\nexport const preparePhoneNumber = (form: CustomerAuthPhoneForm) => {\n\tconst phoneNumber = `${form.countryCode}${form.phoneNumber}`.replaceAll(\"+\", \"\");\n\n\treturn phoneNumber;\n};\n\nexport const validateForm = (form: CustomerAuthForm, step: CustomerAuthStep): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { phoneNumber, email, otp } = form || {};\n\n\tswitch (step) {\n\t\tcase CustomerAuthStep.PHONE: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.OTP: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\n\t\t\tif (!otp || otp.length !== 6) {\n\t\t\t\terrors.otp = \"Invalid OTP\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.EMAIL: {\n\t\t\tif (!email || !checkIsValidEmail(email)) {\n\t\t\t\terrors.email = \"Invalid Email Address\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn errors;\n};\n\nexport const validateAddressForm = (form: CustomerAddress): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { countryCode, cityName, street, houseNumber } = form || {};\n\n\tif (!countryCode) errors.countryCode = \"COUNTRY_REQUIRED\";\n\tif (!cityName) errors.cityName = \"CITY_REQUIRED\";\n\tif (!street) errors.street = \"STREET_REQUIRED\";\n\tif (!houseNumber) errors.houseNumber = \"STREET_NUMBER_REQUIRED\";\n\n\treturn errors;\n};\n\nexport const formatCityLine = (fields: (string | undefined)[]) => {\n\treturn (fields || []).filter(Boolean).join(\", \");\n};\n\nexport const formatAddressLine = (\n\tstreet: string,\n\thouseNumber: string,\n\tadditionalNumber: string\n) => {\n\tconst house = [houseNumber, additionalNumber].filter(Boolean).join(\"/\");\n\tconst fullAddress = [street, house].filter(Boolean).join(\" \");\n\n\treturn fullAddress;\n};\n","export enum Feature {\n\tUPLOAD_VIDEO = \"UPLOAD_VIDEO\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import { Feature, FeatureSegment } from \"./models\";\n\nexport const FEATURES_LIST: { [key in FeatureSegment]: Feature[] } = {\n\t[FeatureSegment.ALPHA]: [Feature.UPLOAD_VIDEO],\n\t[FeatureSegment.BETA]: [],\n\t[FeatureSegment.ALL]: [],\n};\n","import { getQueryParam } from \"@sorocraft/js-utils\";\n\nimport { FeatureSegment, type Feature } from \"./models\";\n\nimport { FEATURES_LIST } from \"./constants\";\n\nexport const getIsFeatureActive = (feature: Feature, businessSegment: FeatureSegment): boolean => {\n\t// Feature is force-enabled via query param\n\tif (getQueryParam(feature) === \"1\") return true;\n\n\t// Build the list of enabled segments for the current businessSegment\n\tconst enabledSegments: FeatureSegment[] =\n\t\tbusinessSegment === FeatureSegment.ALPHA\n\t\t\t? [FeatureSegment.ALPHA, FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: businessSegment === FeatureSegment.BETA\n\t\t\t? [FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: [FeatureSegment.ALL];\n\n\t// Check if feature exists in any of the enabled segments\n\treturn enabledSegments.some((segment) => FEATURES_LIST[segment]?.includes(feature));\n};\n","import { isEmpty } from \"@sorocraft/js-utils\";\nimport { Category, CategoryTranslation } from \"./models\";\n\nexport const getCategoryTranslation = (\n\tcategory: Category,\n\tlanguage: string\n): CategoryTranslation => {\n\treturn (category?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as CategoryTranslation;\n};\n\nexport const getCategoryNameById = (\n\tcategoryId: number,\n\tcategories: Category[],\n\tlanguage: string\n): string => {\n\tconst category = categories?.find?.(({ id }) => id === categoryId);\n\n\tif (isEmpty(category)) return \"\";\n\n\tconst { name } = getCategoryTranslation(category, language);\n\n\treturn name || \"\";\n};\n","import * as categoryModels from \"src/modules/category/models\";\nimport * as productModels from \"src/modules/product/models\";\n\nimport { CategoryProductMap } from \"./models\";\n\nexport const prepareCategoryAndProductMap = (\n\tcategories: categoryModels.Category[],\n\tproducts: productModels.Product[]\n): CategoryProductMap[] => {\n\tconst productMap = products.reduce<Record<number, productModels.Product[]>>((map, product) => {\n\t\tif (!product.visible) return map;\n\n\t\tconst categoryId = Number(product.categoryId);\n\t\tif (!map[categoryId]) {\n\t\t\tmap[categoryId] = [];\n\t\t}\n\t\tmap[categoryId].push(product);\n\t\treturn map;\n\t}, {});\n\n\treturn categories\n\t\t.map((category) => ({\n\t\t\t...category,\n\t\t\tproducts: (productMap[Number(category.id)] || []) as productModels.Product[],\n\t\t}))\n\t\t.filter((category) => category?.products?.length > 0);\n};\n"],"names":["getAddonTranslation","addon","language","_b","_a","translations","find","call","item","getAddonOptionTranslation","option","getOptionPrice","currency","price","totalPrice","formattedTotalPrice","priceFormatter","getAddonOptionRawPrice","optionId","options","id","getOptionTitles","optionIds","Array","isArray","filter","includes","map","t","title","Boolean","join","getAddonTitle","_c","MenuAddonSelectType","calculateTotalPrice","quantity","vat","getProductTranslation","product","getProductRawPrice","getProductPrice","getProductVariant","variantId","variants","getSelectedOptionsTotalPrice","selectedAddons","addons","Object","prototype","hasOwnProperty","reduce","total","addonId","selectType","SINGLE","selectedOptionId","multipleTotal","getProductVariantRawPrice","variant","getProductVariantPrice","getProductVariantTranslation","getProductOrderRawPrice","noVat","isEmpty","optionsPrice","productData","assign","selectedOptionsTotalPrice","getProductOrderPrice","getProductAddon","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","OrderErrors","CASH","CART","DETAILS","COMPLETED","calculatSingleAddonTotalPrice","sum","calculateTotalAddonPrice","getOrderPrice","order","calculateItemTotal","totalWithoutTax","totalTax","items","itemTotal","undefined","totalWithTax","totalWithoutTaxFormatted","totalTaxFormatted","totalWithTaxFormatted","generateOrderItemsId","productId","Error","orderItemsId","addonIdsPart","entries","sortNumbers","getOrderItemPrice","orderItem","basePrice","itemNetPrice","itemTax","itemGrossPrice","totalGross","totalNet","getSelectedAddonsFromOrderItems","length","getStatusIcon","status","Check","DELIVERED","BagCheck","OUT_FOR_DELIVERY","Delivery","PREPARING","Chef","CONFIRMED","FileCheck","PENDING","HourglassHalf","buildSelectedAddonsPayload","productAddons","addonIdStr","selected","Number","selectedOptionIds","getDefaultOrderType","settings","isOpen","isDelivering","deliveryOrderEnabled","dineInOrderEnabled","pickupOrderEnabled","DELIVERY","DINE_IN","PICK_UP","getOrderErrorMessages","field","ADDRESS_IS_EMPTY","TABLE_NOT_SELECTED","EMPTY_ITEMS","BRANCH_NOT_SELECTED","FIELD_REQUIRED_ERROR","CO_DOMAIN","DOMAINS","IMAGE_BASE_URL","validators","number","AZERBAIJANI_PREFIXES","RegExp","test","isValid","error","validatePhoneNumber","phoneNumber","cleaned","replace","countryCode","startsWith","nationalNumber","slice","validator","getBaseUrl","hostname","domain","url","getTLD","getRegisterUrl","source","getImageSource","image","getLogoImageSource","logoImage","getCoverPhotoSource","coverPhoto","keyStr","triplet","e1","e2","e3","charAt","rgbDataURL","r","g","b","CustomerAuthStep","CustomerAddressType","preparePhoneNumber","form","replaceAll","validateForm","step","errors","email","otp","PHONE","viewUtils.validatePhoneNumber","OTP","EMAIL","checkIsValidEmail","validateAddressForm","cityName","street","houseNumber","formatCityLine","fields","formatAddressLine","additionalNumber","Feature","FeatureSegment","FEATURES_LIST","ALPHA","UPLOAD_VIDEO","BETA","ALL","getIsFeatureActive","feature","businessSegment","getQueryParam","some","segment","getCategoryTranslation","category","getCategoryNameById","categoryId","categories","name","prepareCategoryAndProductMap","products","productMap","visible","push"],"mappings":"uPASaA,EAAsB,CAACC,EAAkBC,aACrD,OAAiC,QAAzBC,EAAmB,QAAnBC,EAAAH,aAAK,EAALA,EAAOI,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKN,WAAaA,KAC/D,CAAA,GAGWO,EAA4B,CACxCC,EACAR,aAEA,OAAkC,QAA1BC,EAAoB,QAApBC,EAAAM,aAAM,EAANA,EAAQL,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKN,WAAaA,KAChE,CAAA,GAGWS,EAAiB,EAC7BD,SACAE,WACAV,eAMA,MAAMW,MAAEA,GAAUH,GAAU,CAAA,EAE5B,MAAO,CACNI,WAAYD,EACZE,oBAAqBC,EAAeH,EAAOD,GAAY,MAAOV,GAAY,QAI/De,EAAyB,CAAChB,EAAkBiB,WACxD,OAA+D,QAAxDd,IAACH,aAAK,EAALA,EAAOkB,UAAW,IAAIb,KAAK,EAAGc,QAASA,IAAOF,UAAS,IAAAd,OAAA,EAAAA,EAAES,QAAS,GAG9DQ,EAAkB,CAC9BF,EACAG,EACApB,WAEA,GAAIqB,MAAMC,QAAQF,GACjB,OAAQH,GAAW,IACjBM,OAAO,EAAGL,QAASE,EAAUI,SAASN,IACtCO,IAAI,EAAGtB,mBAAkB,IAAAD,EAAC,OAAiD,QAAjDA,EAAAC,EAAaC,KAAMsB,GAAMA,EAAE1B,WAAaA,UAAS,IAAAE,OAAA,EAAAA,EAAEyB,QAAS,KACtFJ,OAAOK,SACPC,KAAK,MACD,CACN,MAAMrB,GAAUS,GAAW,IAAIb,KAAK,EAAGc,QAASA,IAAOE,GACvD,OAAgE,QAAzDlB,EAAAM,aAAM,EAANA,EAAQL,aAAaC,KAAMsB,GAAMA,EAAE1B,WAAaA,UAAS,IAAAE,OAAA,EAAAA,EAAEyB,QAAS,EAC5E,GAGYG,EAAgB,CAAC/B,EAAkBC,eAC/C,OAAkE,QAA3D+B,EAAyB,QAAzB9B,EAAmB,QAAnBC,EAAAH,aAAK,EAALA,EAAOI,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAIwB,GAAMA,EAAE1B,WAAaA,UAAS,IAAA+B,OAAA,EAAAA,EAAEJ,QAAS,IC7D9E,IAAYK,GAAZ,SAAYA,GACXA,EAAA,OAAA,SACAA,EAAA,SAAA,UACA,CAHD,CAAYA,IAAAA,EAAmB,CAAA,ICQxB,MAAMC,EAAsB,CAACtB,EAAgB,EAAGuB,EAAmB,EAAGC,EAAc,IACnFxB,EAAQuB,GAAY,EAAIC,EAAM,KAGzBC,EAAwB,CACpCC,EACArC,aAEA,OAAmC,QAA3BC,EAAqB,QAArBC,EAAAmC,aAAO,EAAPA,EAASlC,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKN,WAAaA,KACjE,CAAA,GAGWsC,EAAqB,CACjCD,EACAH,EAAmB,KAEnB,MAAMvB,MAAEA,EAAQ,EAACwB,IAAEA,EAAM,GAAME,GAAW,CAAA,EAC1C,OAAOJ,EAAoBtB,EAAOuB,EAAUC,IAGhCI,EAAkB,CAC9BF,EACA3B,EACAV,EACAkC,EAAmB,KAEnB,MAAMtB,EAAa0B,EAAmBD,EAASH,GAE/C,MAAO,CACNtB,WAAYA,EACZC,oBAAqBC,EAAeF,EAAYF,EAAUV,KAI/CwC,EAAoB,CAChCH,EACAI,aAEA,OAA8B,QAAvBxC,EAAiB,QAAjBC,EAAAmC,aAAO,EAAPA,EAASK,gBAAQ,IAAAxC,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKY,KAAOuB,KAAe,CAAA,GAG1DE,EAA+B,CAC3CN,EACAO,EAA6C,CAAA,EAC7CV,MAG4BG,aAAO,EAAPA,EAASQ,SAAU,IAAItB,OAAQxB,GAC1D+C,OAAOC,UAAUC,eAAe3C,KAAKuC,EAAgB7C,EAAMmB,KAIf+B,OAAO,CAACC,EAAenD,KACnE,MAAQmB,GAAIiC,EAAOC,WAAEA,GAAerD,EAGpC,GAAIqD,IAAepB,EAAoBqB,OAAQ,CAC9C,MAAMC,EAAmBV,EAAeO,GACxC,OAAOD,EAAQnC,EAAuBhB,EAAOuD,EAC9C,CASA,OAAOJ,GANoBN,EAAeO,IAAY,IACPF,OAC9C,CAACM,EAAevC,IAAauC,EAAgBxC,EAAuBhB,EAAOiB,GAC3E,IAIC,GAEwBkB,EAGfsB,EAA4B,CACxCf,EACAJ,EACAH,KAEA,MAAMuB,EAAUjB,EAAkBH,EAASI,IACrCN,IAAEA,GAAQE,GAAW,CAAA,GACrB1B,MAAEA,GAAU8C,GAAW,CAAA,EAC7B,OAAOxB,EAAoBtB,EAAOuB,EAAUC,IAGhCuB,EAAyB,EACrCjB,YACA/B,WAAW,MACXV,WAAW,KACXqC,UACAH,WAAW,MAQX,MAAMtB,EAAa4C,EAA0Bf,EAAWJ,EAASH,GAEjE,MAAO,CACNtB,WAAYA,EACZC,oBAAqBC,EAAeF,EAAYF,EAAUV,KAI/C2D,EAA+B,CAC3CF,EACAzD,aAEA,OAAmC,QAA3BC,EAAqB,QAArBC,EAAAuD,aAAO,EAAPA,EAAStD,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKN,WAAaA,KACjE,CAAA,GAGW4D,EAA0B,EACtCvB,UACAI,YACAP,WAAW,EACXU,iBACAiB,SAAQ,MAQR,GAAIC,EAAQzB,GAAU,MAAO,CAAE1B,MAAO,EAAGoD,aAAc,EAAGb,MAAO,GAEjE,MAAMc,EAAWlB,OAAAmB,OAAAnB,OAAAmB,OAAA,CAAA,EAAiB5B,IAASF,IAAK0B,EAAQ,EAAIxB,EAAQF,MAC9D+B,EAA4BvB,EACjCqB,EACApB,EACAV,GAEKvB,EAAQ8B,EACXe,EAA0Bf,EAAWuB,EAAa9B,GAClDI,EAAmB0B,EAAa9B,GAEnC,MAAO,CACNvB,QACAoD,aAAcG,EACdhB,MAAOvC,EAAQuD,IAIJC,EAAuB,EACnC9B,UACAI,YACAP,WAAW,EACXxB,WACAV,WACA4C,iBACAiB,SAAQ,MAUR,MAAMX,MAAEA,GAAUU,EAAwB,CACzCvB,UACAI,YACAP,WACAU,iBACAiB,UAGD,MAAO,CACNjD,WAAYsC,EACZrC,oBAAqBC,EAAeoC,EAAOxC,EAAUV,KAI1CoE,EAAkB,CAAC/B,EAAkBc,MACzCd,aAAO,EAAPA,EAASQ,SAAU,IAAIzC,KAAK,EAAGc,QAASA,IAAOiC,IAAa,CAAA,ECxLrE,IAAYkB,EAMAC,EAaAC,EAOAC,EAqEAC,ECpFAC,GDXZ,SAAYL,GACXA,EAAA,QAAA,UACAA,EAAA,QAAA,UACAA,EAAA,SAAA,UACA,CAJD,CAAYA,IAAAA,EAAS,CAAA,IAMrB,SAAYC,GACXA,EAAA,MAAA,QACAA,EAAA,QAAA,UACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,MAAA,QACAA,EAAA,iBAAA,mBACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,OAAA,QACA,CAXD,CAAYA,IAAAA,EAAW,CAAA,IAavB,SAAYC,GACXA,EAAA,QAAA,UACAA,EAAA,UAAA,YACAA,EAAA,MAAA,QACAA,EAAA,OAAA,QACA,CALD,CAAYA,IAAAA,EAAe,CAAA,IAO3B,SAAYC,GACXA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,SAAA,UACA,CALD,CAAYA,IAAAA,EAAa,CAAA,IAqEzB,SAAYC,GACXA,EAAA,KAAA,OACAA,EAAA,QAAA,UACAA,EAAA,UAAA,WACA,CAJD,CAAYA,IAAAA,EAAS,CAAA,ICzFLD,EAAcG,KAGFF,EAAUG,KAAMH,EAAUI,QAASJ,EAAUK,UAEzE,SAAYJ,GACXA,EAAA,qBAAA,yBACAA,EAAA,mBAAA,wBACAA,EAAA,iBAAA,0BACAA,EAAA,YAAA,wBACAA,EAAA,oBAAA,wBACA,CAND,CAAYA,IAAAA,EAAW,CAAA,ICKhB,MAAMK,EAAiChF,GACtCA,EAAMkB,QAAQgC,OAAO,CAAC+B,EAAKxE,IAAWwE,EAAMxE,EAAOG,MAAO,YAGlDsE,EAAyBpC,EAAuB,GAAIX,EAAmB,GAMtF,OAAOA,EAL+BW,EAAOI,OAAO,CAACC,EAAOnD,IAEpDmD,EADY6B,EAA8BhF,GAE/C,EAGJ,CAEO,MAAMmF,EAAgB,CAACC,EAAczE,EAAkBV,KAC7D,MAAMoF,EAAqB,CAACzE,EAAeuB,EAAkBW,IACrDX,EAAWvB,EAAQsE,EAAyBpC,EAAQX,GAG5D,IAAImD,EAAkB,EAClBC,EAAW,EAEf,IAAK,MAAMhF,KAAQ6E,EAAMI,MAAO,CAC/B,MAAMC,EAAYJ,EAAmB9E,EAAKK,MAAOL,EAAK4B,SAAU5B,EAAKuC,QACrEwC,GAAmBG,OAEDC,IAAdN,EAAMhD,KAAqB7B,EAAK6B,MACnCmD,GAAaE,EAAYlF,EAAK6B,IAAO,IAEvC,MAEkBsD,IAAdN,EAAMhD,MACTmD,EAAYD,EAAkBF,EAAMhD,IAAO,KAG5C,MAAMuD,EAAeL,EAAkBC,EAEvC,MAAO,CACND,kBACAM,yBAA0B7E,EAAeuE,EAAiB3E,EAAUV,GACpEsF,WACAM,kBAAmB9E,EAAewE,EAAU5E,EAAUV,GACtD0F,eACAG,sBAAuB/E,EAAe4E,EAAchF,EAAUV,KAInD8F,EAAuB,CACnCC,EACAtD,EACAG,KAEA,IAAKmD,EAAW,MAAM,IAAIC,MAAM,0BAGhC,IAAIC,EAAe,GAAGF,IAClBtD,IACHwD,GAAgB,IAAIxD,KAIrB,MAAMyD,EAAepD,OAAOqD,QAAQvD,GAAkB,CAAA,GACpDnB,IAAI,EAAE0B,EAAS3C,MACf,IAAK2C,IAAY3C,EAAQ,OAAO,KAChC,MAAMY,EAAYC,MAAMC,QAAQd,GAC7B4F,EAAY5F,GAAQe,OAAOK,SAASC,KAAK,KACzC,GAAGrB,IACN,OAAKY,EACE,GAAG+B,KAAW/B,IADE,OAGvBG,OAAOK,SACPC,KAAK,KAOP,OAJIqE,IACHD,GAAgB,IAAIC,KAGdD,GAGKI,EAAqBC,UACjC,MAAM3F,MAAEA,EAAK8C,QAAEA,EAAOZ,OAAEA,EAAMX,SAAEA,EAAQC,IAAEA,GAAQmE,GAAa,CAAA,EACzDC,EAA0B,QAAdrG,EAAAuD,aAAO,EAAPA,EAAS9C,aAAK,IAAAT,EAAAA,EAAIS,EAG9B6F,EAAeD,EAFDtB,EAAyBpC,EAAQ,GAK/C4D,EAAUF,GAAapE,EAAM,KAC7BuE,EAAiBF,EAAeC,EAMtC,MAAO,CACNE,WAHkBD,EAAiBxE,EAInC0E,SANgBJ,EAAetE,EAO/BoD,SANgBmB,EAAUvE,EAO1BwE,iBACAF,eACAC,YAIWI,EAAmCvG,IAC/C,MAAMsC,EAAiC,CAAA,EAEvC,IAAK,MAAMO,QAAEA,EAAOlC,QAAEA,EAAU,MAAQX,EAAKuC,QAAU,GAAI,CAC1D,MAAMzB,EAAYH,EAAQQ,IAAI,EAAGT,cAAeA,GAChD4B,EAAeO,GAAgC,IAArB/B,EAAU0F,OAAe1F,EAAU,GAAKA,CACnE,CAEA,OAAOwB,GAGKmE,EAAiBC,IAC7B,OAAQA,GACP,KAAK1C,EAAYQ,UAChB,OAAOmC,EACR,KAAK3C,EAAY4C,UAChB,OAAOC,EACR,KAAK7C,EAAY8C,iBAChB,OAAOC,EACR,KAAK/C,EAAYgD,UAChB,OAAOC,EACR,KAAKjD,EAAYkD,UAChB,OAAOC,EACR,KAAKnD,EAAYoD,QAGjB,QACC,OAAOC,IAIGC,EAA6B,CACzCC,EAAyC,GACzCjF,EAAiC,CAAA,IAE1BE,OAAOqD,QAAQvD,GAAgBnB,IAAI,EAAEqG,EAAYC,MACvD,MAAM5E,EAAU6E,OAAOF,GACjBG,EAAoB5G,MAAMC,QAAQyG,GAAYA,EAAW,CAACA,GAE1DhI,EAAQ8H,EAAczH,KAAML,GAAUA,EAAMmB,KAAOiC,GACzD,GAAIW,EAAQ/D,GACX,MAAO,CACNoD,UACAlC,QAAS,IAIX,MAAMA,GAA+BlB,EAAMkB,SAAW,IACpDM,OAAQf,GAAWyH,EAAkBzG,SAAShB,EAAOU,KACrDO,IAAKjB,IAAM,CACXQ,SAAUR,EAAOU,GACjBP,MAAOH,EAAOG,SAGhB,MAAO,CACNwC,UACAlC,aAKUiH,EAAsB,CAClCC,EACAC,EACAC,KAEA,IAAKF,EAAU,OAAO,KAEtB,MAAMG,qBAAEA,EAAoBC,mBAAEA,EAAkBC,mBAAEA,GAAuBL,EAEzE,OAAIG,GAAwBD,EACpBhE,EAAUoE,SAGdF,GAAsBH,EAClB/D,EAAUqE,QAGdF,GAAsBJ,EAClB/D,EAAUsE,QAGX,MAGKC,EAAyBC,IACrC,OAAQA,GACP,IAAK,WACJ,OAAOnE,EAAYoE,iBAEpB,IAAK,UACJ,OAAOpE,EAAYqE,mBAEpB,IAAK,QACJ,OAAOrE,EAAYsE,YAEpB,IAAK,WACJ,OAAOtE,EAAYuE,oBAEpB,QACC,OAAOvE,EAAYwE,uBC9MTC,EAAY,gBAOZC,EAAU,CAACD,EANC,gBACA,gBACA,iBAMZE,EAAiB,+BCjBxBC,EAAwC,CAC7C,IAAQC,IACP,MAAMC,EAAuB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAGxE,OAFgB,IAAIC,OAAO,KAAKD,EAAqB3H,KAAK,gBAE7C6H,KAAKH,GASX,CAAEI,SAAS,GARV,CACNA,SAAS,EACTC,MAAO,uDAAuDJ,EAAqB3H,KAClF,UAQJ,GAAO0H,GACU,UAEHG,KAAKH,GAOX,CAAEI,SAAS,GANV,CACNA,SAAS,EACTC,MAAO,2CAQL,SAAUC,EAAoBC,GACnC,IAAKA,EACJ,MAAO,CAAEH,SAAS,EAAOC,MAAO,kBAGjC,MAAMG,EAAUD,EAAYE,QAAQ,MAAO,IAErCC,EAAcF,EAAQG,WAAW,OAAS,MAAQH,EAAQG,WAAW,MAAQ,KAAO,KAE1F,IAAKD,EACJ,MAAO,CAAEN,SAAS,EAAOC,MAAO,4BAGjC,MAAMO,EAAiBJ,EAAQK,MAAMH,EAAYnD,QAGjD,OAAOuD,EAFWf,EAAWW,IAEZE,EAClB,OAEaG,EAAa,CAACC,EAAkBvK,KAC5C,MAAMwK,EAASpB,EAAQ5H,SAAS+I,GAAYA,EAAWpB,EAEvD,MAAO,CAAEsB,IAAK,WAAWD,KADVxK,GAAY,OACkBwK,WAGjCE,EAAU1K,GACF,OAAbA,EAAoB,KAAO,KAGtB2K,EAAiB,CAAC3K,EAAkB4K,IAGzC,0BAFKF,EAAO1K,yBAEwCA,gBAAuB4K,IAGtEC,GAAkBC,GACzBA,EAEDA,EAAMtJ,SAAS,WAAasJ,EAAMZ,WAAW,YAAoBY,EAE9D,GAAGzB,KAAkByB,IAJT,GAOPC,GAAsBC,GAC7BA,EAEDA,EAAUxJ,SAAS,WAAawJ,EAAUd,WAAW,YAAoBc,EAEtE,GAAG3B,KAAkB2B,IAJL,iDAOXC,GAAuBC,GAC9BA,EAEDA,EAAW1J,SAAS,WAAa0J,EAAWhB,WAAW,YAAoBgB,EAExE,GAAG7B,KAAkB6B,IAJJ,sDAOnBC,GAAS,oEAETC,GAAU,CAACC,EAAYC,EAAYC,IACxCJ,GAAOK,OAAOH,GAAM,GACpBF,GAAOK,QAAc,EAALH,IAAW,EAAMC,GAAM,GACvCH,GAAOK,QAAc,GAALF,IAAY,EAAMC,GAAM,GACxCJ,GAAOK,OAAY,GAALD,GAEFE,GAAa,CAACC,EAAWC,EAAWC,IAChD,yCACCR,GAAQ,EAAGM,EAAGC,GAAKP,GAAQQ,EAAG,IAAK,2CC7GrC,IAAYC,GAMAC,IANZ,SAAYD,GACXA,EAAA,MAAA,QACAA,EAAA,IAAA,MACAA,EAAA,MAAA,OACA,CAJD,CAAYA,KAAAA,GAAgB,CAAA,IAM5B,SAAYC,GACXA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,OAAA,QACA,CAJD,CAAYA,KAAAA,GAAmB,CAAA,ICMxB,MAAMC,GAAsBC,GACd,GAAGA,EAAK/B,cAAc+B,EAAKlC,cAAcmC,WAAW,IAAK,IAKjEC,GAAe,CAACF,EAAwBG,KACpD,MAAMC,EAAqB,CAAA,GACrBtC,YAAEA,EAAWuC,MAAEA,EAAKC,IAAEA,GAAQN,GAAQ,CAAA,EAE5C,OAAQG,GACP,KAAKN,GAAiBU,MAAO,CAC5B,MAAM5C,QAAEA,EAAOC,MAAEA,GAAU4C,EAA8B1C,GACpDH,IAASyC,EAAOtC,YAAcF,GACnC,KACD,CAEA,KAAKiC,GAAiBY,IAAK,CAC1B,MAAM9C,QAAEA,EAAOC,MAAEA,GAAU4C,EAA8B1C,GACpDH,IAASyC,EAAOtC,YAAcF,GAE9B0C,GAAsB,IAAfA,EAAIxF,SACfsF,EAAOE,IAAM,eAEd,KACD,CAEA,KAAKT,GAAiBa,MAChBL,GAAUM,EAAkBN,KAChCD,EAAOC,MAAQ,yBASlB,OAAOD,GAGKQ,GAAuBZ,IACnC,MAAMI,EAAqB,CAAA,GACrBnC,YAAEA,EAAW4C,SAAEA,EAAQC,OAAEA,EAAMC,YAAEA,GAAgBf,GAAQ,CAAA,EAO/D,OALK/B,IAAamC,EAAOnC,YAAc,oBAClC4C,IAAUT,EAAOS,SAAW,iBAC5BC,IAAQV,EAAOU,OAAS,mBACxBC,IAAaX,EAAOW,YAAc,0BAEhCX,GAGKY,GAAkBC,IACtBA,GAAU,IAAI1L,OAAOK,SAASC,KAAK,MAG/BqL,GAAoB,CAChCJ,EACAC,EACAI,IAGoB,CAACL,EADP,CAACC,EAAaI,GAAkB5L,OAAOK,SAASC,KAAK,MAC/BN,OAAOK,SAASC,KAAK,KC3E1D,IAAYuL,GAGAC,IAHZ,SAAYD,GACXA,EAAA,aAAA,cACA,CAFD,CAAYA,KAAAA,GAAO,CAAA,IAGnB,SAAYC,GACXA,EAAA,MAAA,QACAA,EAAA,KAAA,OACAA,EAAA,IAAA,KACA,CAJD,CAAYA,KAAAA,GAAc,CAAA,ICDnB,MAAMC,GAAwD,CACpE,CAACD,GAAeE,OAAQ,CAACH,GAAQI,cACjC,CAACH,GAAeI,MAAO,GACvB,CAACJ,GAAeK,KAAM,ICCVC,GAAqB,CAACC,EAAkBC,KAEpD,GAA+B,MAA3BC,EAAcF,GAAkB,OAAO,EAW3C,OAPCC,IAAoBR,GAAeE,MAChC,CAACF,GAAeE,MAAOF,GAAeI,KAAMJ,GAAeK,KAC3DG,IAAoBR,GAAeI,KACnC,CAACJ,GAAeI,KAAMJ,GAAeK,KACrC,CAACL,GAAeK,MAGGK,KAAMC,IAAW,IAAA9N,EAAC,OAAsB,QAAtBA,EAAAoN,GAAcU,UAAQ,IAAA9N,OAAA,EAAAA,EAAEsB,SAASoM,MChB9DK,GAAyB,CACrCC,EACAlO,aAEA,OAAoC,QAA5BC,EAAsB,QAAtBC,EAAAgO,aAAQ,EAARA,EAAU/N,oBAAY,IAAAD,OAAA,EAAAA,EAAEE,YAAI,IAAAH,OAAA,EAAAA,EAAAI,KAAAH,EAAII,GAASA,EAAKN,WAAaA,KAClE,CAAA,GAGWmO,GAAsB,CAClCC,EACAC,EACArO,WAEA,MAAMkO,EAA2B,QAAhBhO,EAAAmO,aAAU,EAAVA,EAAYjO,YAAI,IAAAF,OAAA,EAAAA,EAAAG,KAAAgO,EAAG,EAAGnN,QAASA,IAAOkN,GAEvD,GAAItK,EAAQoK,GAAW,MAAO,GAE9B,MAAMI,KAAEA,GAASL,GAAuBC,EAAUlO,GAElD,OAAOsO,GAAQ,ICjBHC,GAA+B,CAC3CF,EACAG,KAEA,MAAMC,EAAaD,EAASvL,OAAgD,CAACxB,EAAKY,KACjF,IAAKA,EAAQqM,QAAS,OAAOjN,EAE7B,MAAM2M,EAAapG,OAAO3F,EAAQ+L,YAKlC,OAJK3M,EAAI2M,KACR3M,EAAI2M,GAAc,IAEnB3M,EAAI2M,GAAYO,KAAKtM,GACdZ,GACL,CAAA,GAEH,OAAO4M,EACL5M,IAAKyM,GAAapL,OAAAmB,OAAAnB,OAAAmB,OAAA,CAAA,EACfiK,GAAQ,CACXM,SAAWC,EAAWzG,OAAOkG,EAAShN,MAAQ,MAE9CK,OAAQ2M,IAAY,IAAAhO,EAAC,OAAkB,QAAlBA,EAAAgO,aAAQ,EAARA,EAAUM,gBAAQ,IAAAtO,OAAA,EAAAA,EAAE4G,QAAS"}