import BedBunkExtraIcon from "@scandic-hotels/design-system/Icons/BedBunkExtraIcon" import BedGenericIcon from "@scandic-hotels/design-system/Icons/BedGenericIcon" import BedKingIcon from "@scandic-hotels/design-system/Icons/BedKingIcon" import BedPullOutExtraIcon from "@scandic-hotels/design-system/Icons/BedPullOutExtraIcon" import BedQueenIcon from "@scandic-hotels/design-system/Icons/BedQueenIcon" import BedSingleIcon from "@scandic-hotels/design-system/Icons/BedSingleIcon" import BedSofaExtraIcon from "@scandic-hotels/design-system/Icons/BedSofaExtraIcon" import BedTwinIcon from "@scandic-hotels/design-system/Icons/BedTwinIcon" import BedWallExtraIcon from "@scandic-hotels/design-system/Icons/BedWallExtraIcon" import type { IconProps } from "@scandic-hotels/design-system/Icons" export enum BookingStatusEnum { BookingCompleted = "BookingCompleted", Cancelled = "Cancelled", CheckedOut = "CheckedOut", ConfirmedInScorpio = "ConfirmedInScorpio", CreatedInOhip = "CreatedInOhip", PaymentAuthorized = "PaymentAuthorized", PaymentCancelled = "PaymentCancelled", PaymentError = "PaymentError", PaymentFailed = "PaymentFailed", PaymentRegistered = "PaymentRegistered", PaymentSucceeded = "PaymentSucceeded", PendingAcceptPriceChange = "PendingAcceptPriceChange", PendingGuarantee = "PendingGuarantee", PendingPayment = "PendingPayment", } export enum ChildBedTypeEnum { Crib = "Crib", ExtraBed = "ExtraBed", ParentsBed = "ParentsBed", Unknown = "Unknown", } export const FamilyAndFriendsCodes = ["D000029555", "D000029271", "D000029195"] export const REDEMPTION = "redemption" export const SEARCHTYPE = "searchtype" export const MEMBERSHIP_FAILED_ERROR = "MembershipFailedError" export enum PaymentMethodEnum { card = "card", swish = "swish", vipps = "vipps", mobilePay = "mobilePay", applePay = "applePay", googlePay = "googlePay", alipayPlus = "alipayPlus", weChatPay = "weChatPay", payPal = "payPal", klarna = "klarna", americanExpress = "americanExpress", dankort = "dankort", dinersClub = "dinersClub", jcb = "jcb", masterCard = "masterCard", visa = "visa", maestro = "maestro", chinaUnionPay = "chinaUnionPay", discover = "discover", } export enum BookingErrorCodeEnum { InternalError = "InternalError", ReservationError = "ReservationError", AvailabilityError = "AvailabilityError", BookingStatusNotFound = "BookingStatusNotFound", TransactionAbandoned = "TransactionAbandoned", TransactionCancelled = "TransactionCancelled", TransactionFailed = "TransactionFailed", BookingStateError = "BookingStateError", MembershipFailedError = "MembershipFailedError", } export const PAYMENT_METHOD_TITLES: Record< keyof typeof PaymentMethodEnum, string > = { card: "Credit card", swish: "Swish", vipps: "Vipps", mobilePay: "MobilePay", applePay: "Apple Pay", googlePay: "Google Pay", alipayPlus: "Alipay+", weChatPay: "WeChat Pay", payPal: "PayPal", klarna: "Klarna", americanExpress: "American Express", dankort: "Dankort", dinersClub: "Diners Club", jcb: "JCB", masterCard: "Mastercard", visa: "Visa", maestro: "Maestro", chinaUnionPay: "China UnionPay", discover: "Discover", } export const PAYMENT_METHOD_ICONS: Record< keyof typeof PaymentMethodEnum, string > = { card: "/_static/icons/payment/card-generic.svg", swish: "/_static/icons/payment/swish.svg", vipps: "/_static/icons/payment/vipps.svg", mobilePay: "/_static/icons/payment/mobilepay.svg", applePay: "/_static/icons/payment/apple-pay.svg", googlePay: "/_static/icons/payment/google-pay.svg", alipayPlus: "/_static/icons/payment/alipay-plus.svg", weChatPay: "/_static/icons/payment/wechat-pay.svg", payPal: "/_static/icons/payment/paypal.svg", klarna: "/_static/icons/payment/klarna.svg", americanExpress: "/_static/icons/payment/american-express.svg", dankort: "/_static/icons/payment/dankort.svg", dinersClub: "/_static/icons/payment/diners-club.svg", jcb: "/_static/icons/payment/jcb.svg", masterCard: "/_static/icons/payment/mastercard.svg", visa: "/_static/icons/payment/visa.svg", maestro: "/_static/icons/payment/maestro.svg", chinaUnionPay: "/_static/icons/payment/china-union-pay.svg", discover: "/_static/icons/payment/discover.svg", } export enum BedTypeEnum { King = "King", Queen = "Queen", Single = "Single", Twin = "Twin", Other = "Other", } export enum ExtraBedTypeEnum { SofaBed = "SofaBed", WallBed = "WallBed", PullOutBed = "PullOutBed", BunkBed = "BunkBed", } type BedTypes = keyof typeof BedTypeEnum | keyof typeof ExtraBedTypeEnum export const BED_TYPE_ICONS: Record< BedTypes, (props: IconProps) => JSX.Element > = { King: BedKingIcon, Queen: BedQueenIcon, Single: BedSingleIcon, Twin: BedTwinIcon, SofaBed: BedSofaExtraIcon, WallBed: BedWallExtraIcon, BunkBed: BedBunkExtraIcon, PullOutBed: BedPullOutExtraIcon, Other: BedGenericIcon, } export enum CancellationRuleEnum { CancellableBefore6PM = "CancellableBefore6PM", NonCancellable = "NonCancellable", Changeable = "Changeable", } export enum PaymentCallbackStatusEnum { Success = "success", Error = "error", Cancel = "cancel", } export function combineRegExps(regexps: RegExp[], flags = "") { return new RegExp(regexps.map((r) => r.source).join("|"), flags) } export const rateTypeRegex = { ARB: /(^B[a-z]{3}\d{6}$)/, VOUCHER: /(^VO[0-9a-z]*$)/, }