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 { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking" import type { PaymentMethodEnum } from "@scandic-hotels/common/constants/paymentMethod" import type { IconProps } from "@scandic-hotels/design-system/Icons" import type { BedTypeEnum, ExtraBedTypeEnum, } from "@scandic-hotels/trpc/enums/bedType" import type { JSX } from "react" export const FamilyAndFriendsCodes = ["D000029555", "D000029271", "D000029195"] export const bookingSearchTypes = [SEARCH_TYPE_REDEMPTION] as const export const SEARCHTYPE = "searchtype" export const MEMBERSHIP_FAILED_ERROR = "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 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]*$)/, }