{"version":3,"file":"js/232.js","mappings":"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","sources":["webpack://nocodenodeweb/./src/client/components/Settings/types.ts","webpack://nocodenodeweb/./src/client/components/Settings/utils.ts","webpack://nocodenodeweb/./src/client/utils/constants.ts","webpack://nocodenodeweb/./src/common/constants.ts","webpack://nocodenodeweb/./src/common/fpti.ts","webpack://nocodenodeweb/./src/common/replaceGeoUrl.ts"],"sourcesContent":["export enum OptionalPaymentMethods {\n VENMO = 'venmo',\n PAYLATER = 'payLater',\n APPLEPAY = 'applePay',\n GOOGLEPAY = 'googlePay'\n}\n\nexport enum SettingsTabName {\n CHECKOUT = 'checkout',\n STACKED_BUTTONS = 'stackedButtons',\n SINGLE_BUTTON = 'singleButton',\n CART_BUTTONS = 'cartButton'\n}\n\nexport enum ButtonLayout {\n Vertical = 'vertical',\n Horizontal = 'horizontal'\n}\n\nexport enum ButtonShape {\n Rect = 'rect',\n Pill = 'pill'\n}\n\nexport enum ButtonSize {\n Large = 'large',\n Medium = 'medium',\n Small = 'small'\n}\n\nexport enum ButtonColorType {\n Gold = 'gold',\n Black = 'black',\n White = 'white',\n Blue = 'blue',\n Silver = 'silver',\n Custom = 'custom'\n}\n\nexport enum SecondButtonType {\n PayPalRecommended = 'paypalRecommended',\n PayLater = 'payLater',\n Venmo = 'venmo',\n None = 'none'\n}\n\nexport enum ButtonTextType {\n Checkout = 'checkout',\n Proceed = 'proceed',\n Pay = 'pay',\n Custom = 'custom'\n}\n\nexport enum SettingsTabIdx {\n CHECKOUT = 0,\n STACKED_BUTTONS = 1,\n SINGLE_BUTTON = 2,\n CART_BUTTONS = 3\n}\n\nexport enum Stacked3ButtonPaymentOption {\n PayPal = 'paypal',\n Venmo = 'venmo',\n PayLater = 'paylater',\n Checkout = 'checkout'\n}\n","import { ButtonVariation, MerchantSettings } from '@client/typings/Common';\nimport type { ButtonConfig } from '@components/buttons/types';\nimport type { IAppContext } from '@client/contexts/AppContext';\nimport {\n SecondButtonType,\n ButtonShape,\n ButtonSize,\n ButtonColorType,\n ButtonLayout\n} from '@components/Settings/types';\nimport { CheckoutPaymentOptionsOtherThanPayPal } from '@client/components/buttons/types';\nimport {\n DEFAULT_MERCHANT_SETTINGS,\n DEFAULT_MERCHANT_CART_BUTTON_SETTINGS,\n DEFAULT_MERCHANT_CHECKOUT_SETTINGS\n} from './getInitialMerchantSettings';\n\n// some fields from setting but not defined in Buttonconfig.\nexport type ButtonConfigExtensionFromSettings = {\n paymentMethodVenmo?: boolean;\n paymentMethodPayLater?: boolean;\n paymentMethodApplePay?: boolean;\n showBusinessName?: boolean;\n showBusinessLogo?: boolean;\n homepageUrl?: string;\n secondButtonType?: SecondButtonType;\n singelButtonShape?: ButtonShape;\n cartButtonShape?: ButtonShape;\n cartButtonSize?: ButtonSize;\n cartButtonColorType?: ButtonColorType;\n cartButtonColorCode?: string;\n};\n\ntype ButtonVariablesFromSettings = {\n payment_method_paylater?: boolean;\n payment_method_venmo?: boolean;\n payment_method_applepay?: boolean;\n show_business_name?: boolean;\n show_business_logo?: boolean;\n homepage_url?: string;\n layout?: ButtonLayout;\n shape?: ButtonShape;\n size?: ButtonSize;\n color?: ButtonColorType;\n second_button_type?: SecondButtonType;\n checkout_button_text_type?: string;\n checkout_button_custom_text?: string;\n single_button_shape?: ButtonShape;\n single_button_color_type?: ButtonColorType;\n single_button_color?: string;\n single_button_size?: ButtonSize;\n cart_button_shape?: ButtonShape;\n cart_button_size?: ButtonSize;\n cart_button_color_type?: ButtonColorType;\n cart_button_color_code?: string;\n};\n\ntype SettingsFieldsMapper = {\n configMapper: keyof ButtonConfig;\n variablesMapper: keyof ButtonVariablesFromSettings;\n variableHandler?: (data) => string | undefined;\n};\n\nconst BooleanButtonVariableHandler = (data: boolean) => `${data}`;\n\nconst SETTINGS_FIELDS_CHECKOUT: { [K in keyof MerchantSettings]?: SettingsFieldsMapper } = {\n payment_method_paylater: {\n configMapper: 'paymentMethodPayLater',\n variablesMapper: 'payment_method_paylater',\n variableHandler: BooleanButtonVariableHandler\n },\n payment_method_venmo: {\n configMapper: 'paymentMethodVenmo',\n variablesMapper: 'payment_method_venmo',\n variableHandler: BooleanButtonVariableHandler\n },\n payment_method_apple_pay: {\n configMapper: 'paymentMethodApplePay',\n variablesMapper: 'payment_method_applepay',\n variableHandler: BooleanButtonVariableHandler\n },\n // TODO: Support Google Pay once Google Pay integration provided\n // payment_method_google_pay: {\n // configMapper: 'paymentMethodGooglePay',\n // variablesMapper: 'payment_method_googlepay',\n // variableHandler: BooleanButtonVariableHandler\n // },\n // TODO: Support paypal button message once JSSDK inner source work completed\n // paypal_button_message: {\n // configMapper: 'paypaButtonMessage',\n // variablesMapper: 'paypal_button_message',\n // variableHandler: BooleanButtonVariableHandler\n // },\n show_business_name: {\n configMapper: 'showBusinessName',\n variablesMapper: 'show_business_name',\n variableHandler: BooleanButtonVariableHandler\n },\n show_business_logo: {\n configMapper: 'showBusinessLogo',\n variablesMapper: 'show_business_logo',\n variableHandler: BooleanButtonVariableHandler\n },\n homepage_url: {\n configMapper: 'homepageUrl',\n variablesMapper: 'homepage_url'\n }\n};\n\nconst SETTINGS_FIELDS_STACKED_BUTTON: {\n [K in keyof MerchantSettings]?: SettingsFieldsMapper;\n} = {\n stacked_button_layout: {\n configMapper: 'layout',\n variablesMapper: 'layout'\n },\n stacked_button_shape: {\n configMapper: 'shape',\n variablesMapper: 'shape'\n },\n stacked_button_size: {\n configMapper: 'size',\n variablesMapper: 'size'\n },\n stacked_button_color_type: {\n configMapper: 'color',\n variablesMapper: 'color'\n },\n stacked_button_second_button_type: {\n configMapper: 'secondButtonType',\n variablesMapper: 'second_button_type'\n },\n stacked_button_text_type: {\n configMapper: 'checkoutButtonTextType',\n variablesMapper: 'checkout_button_text_type'\n },\n stacked_button_custom_text: {\n configMapper: 'checkoutButtonCustomText',\n variablesMapper: 'checkout_button_custom_text'\n }\n};\n\nconst SETTINGS_FIELDS_SINGLE_BUTTON: {\n [K in keyof MerchantSettings]?: SettingsFieldsMapper;\n} = {\n single_button_shape: {\n configMapper: 'singelButtonShape',\n variablesMapper: 'single_button_shape'\n },\n single_button_size: {\n configMapper: 'singleButtonSize',\n variablesMapper: 'single_button_size'\n },\n single_button_color_type: {\n configMapper: 'singleButtonColorType',\n variablesMapper: 'single_button_color_type'\n },\n single_button_color_code: {\n configMapper: 'singleButtonColor',\n variablesMapper: 'single_button_color'\n }\n};\n\nconst SETTINGS_FIELDS_CART_BUTTON: {\n [K in keyof MerchantSettings]?: SettingsFieldsMapper;\n} = {\n cart_button_shape: {\n configMapper: 'cartButtonShape',\n variablesMapper: 'cart_button_shape'\n },\n cart_button_size: {\n configMapper: 'cartButtonSize',\n variablesMapper: 'cart_button_size'\n },\n cart_button_color_type: {\n configMapper: 'cartButtonColorType',\n variablesMapper: 'cart_button_color_type'\n },\n cart_button_color_code: {\n configMapper: 'cartButtonColorCode',\n variablesMapper: 'cart_button_color_code'\n }\n};\n\nconst DEFAULT_FIELDS_MAPPER = {\n ...SETTINGS_FIELDS_CHECKOUT,\n ...SETTINGS_FIELDS_STACKED_BUTTON,\n ...SETTINGS_FIELDS_SINGLE_BUTTON\n};\n\nconst DEFAULT_CART_FIELDS_MAPPER = {\n ...SETTINGS_FIELDS_CART_BUTTON,\n ...SETTINGS_FIELDS_CHECKOUT\n};\n\nconst DEFAULT_CART_BUTTON_SETTINGS = {\n ...DEFAULT_MERCHANT_CHECKOUT_SETTINGS,\n ...DEFAULT_MERCHANT_CART_BUTTON_SETTINGS\n};\n\n// TODO: the following fields are newly added in settings, we set these default values here to keep the behavior as phase 2 when settings is not ramped,\n// we can delete the following map when settings feature is 100% ramped\nconst SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES = {\n payment_method_paylater: true,\n payment_method_venmo: true,\n payment_method_apple_pay: true,\n show_business_name: false,\n show_business_logo: false,\n homepage_url: '',\n auto_return_url: ''\n};\n\nconst getSettingsValuesWithFallback = (appContext: IAppContext | null) =>\n appContext?.isSettingsEnabled\n ? appContext?.merchantSettings || {}\n : SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES;\n\nconst mergeInButtonConfigWithMerchantSettings = (\n merchantSettings: MerchantSettings | undefined,\n buttonConfig: ButtonConfig,\n isSettingsEnabled?: boolean,\n buttonVariation: ButtonVariation = ButtonVariation.BuyNow\n): ButtonConfig => {\n const isCartButton = buttonVariation === ButtonVariation.Cart;\n const calculatedButtonConfig = Object.entries(\n isCartButton ? DEFAULT_CART_FIELDS_MAPPER : DEFAULT_FIELDS_MAPPER\n ).reduce((acc, [settingsKey, mapper]) => {\n let mappingValue;\n if (isSettingsEnabled) {\n mappingValue =\n merchantSettings?.[settingsKey] ??\n buttonConfig?.[mapper.configMapper] ??\n (isCartButton ? DEFAULT_CART_BUTTON_SETTINGS : DEFAULT_MERCHANT_SETTINGS)[settingsKey];\n } else {\n mappingValue =\n buttonConfig?.[mapper.configMapper] ??\n SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES[settingsKey] ??\n (isCartButton ? DEFAULT_CART_BUTTON_SETTINGS : DEFAULT_MERCHANT_SETTINGS)[settingsKey];\n }\n const mapping = { [mapper.configMapper]: mappingValue };\n return { ...acc, ...mapping };\n }, {});\n\n return { ...buttonConfig, ...calculatedButtonConfig };\n};\n\nconst getButtonVariablesFromMerchantSettings = (\n merchantSettings: MerchantSettings | undefined,\n buttonVariables: Record,\n isSettingsEnabled?: boolean,\n buttonVariation: ButtonVariation = ButtonVariation.BuyNow\n): Record => {\n const isCartButton = buttonVariation === ButtonVariation.Cart;\n const calculatedButtonVariables = Object.entries(\n isCartButton ? DEFAULT_CART_FIELDS_MAPPER : DEFAULT_FIELDS_MAPPER\n ).reduce((acc, [settingsKey, mapper]) => {\n let mappingValue;\n if (isSettingsEnabled) {\n mappingValue =\n merchantSettings?.[settingsKey] ??\n buttonVariables?.[mapper.variablesMapper] ??\n (isCartButton ? DEFAULT_CART_BUTTON_SETTINGS : DEFAULT_MERCHANT_SETTINGS)[settingsKey];\n } else {\n mappingValue =\n buttonVariables?.[mapper.variablesMapper] ??\n SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES[settingsKey] ??\n (isCartButton ? DEFAULT_CART_BUTTON_SETTINGS : DEFAULT_MERCHANT_SETTINGS)[settingsKey];\n }\n\n if (mapper.variableHandler) {\n mappingValue = mapper.variableHandler(mappingValue);\n }\n\n const mapping = { [mapper.variablesMapper]: mappingValue };\n return { ...acc, ...mapping };\n }, {});\n\n return { ...buttonVariables, ...calculatedButtonVariables };\n};\n\nconst getAllowedPaymentMethodsFromSettings = (\n paymentMethodVenmo: boolean,\n paymentMethodPayLater: boolean,\n paymentMethodApplePay: boolean,\n allowApplePayToggle: boolean\n): CheckoutPaymentOptionsOtherThanPayPal[] => {\n const switches = {\n [CheckoutPaymentOptionsOtherThanPayPal.Venmo]: paymentMethodVenmo,\n [CheckoutPaymentOptionsOtherThanPayPal.PayLater]: paymentMethodPayLater,\n [CheckoutPaymentOptionsOtherThanPayPal.ApplePay]: paymentMethodApplePay && allowApplePayToggle,\n [CheckoutPaymentOptionsOtherThanPayPal.Card]: true\n };\n const allowedMethods = Object.values(CheckoutPaymentOptionsOtherThanPayPal).reduce(\n (acc, paymentOption) => {\n if (switches[paymentOption]) {\n return acc.concat(paymentOption);\n }\n return acc;\n },\n [] as CheckoutPaymentOptionsOtherThanPayPal[]\n );\n return allowedMethods;\n};\n\nexport {\n SETTINGS_FIELDS_CHECKOUT,\n SETTINGS_FIELDS_STACKED_BUTTON,\n SETTINGS_FIELDS_SINGLE_BUTTON,\n SETTINGS_FIELDS_CART_BUTTON,\n SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES,\n mergeInButtonConfigWithMerchantSettings,\n getButtonVariablesFromMerchantSettings,\n getAllowedPaymentMethodsFromSettings,\n getSettingsValuesWithFallback\n};\n","import {\n CheckoutButtonSize,\n CheckoutPaymentOptionsOtherThanPayPal,\n CheckoutSingleButtonColorType\n} from '@components/buttons/types';\nimport { OptionalPaymentMethods } from '@components/Settings/types';\n\nexport enum OrderStatus {\n CREATED = 'CREATED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n PAYER_ACTION_REQUIRED = 'PAYER_ACTION_REQUIRED'\n}\n\nexport enum CaptureStatus {\n PENDING = 'PENDING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n DECLINED = 'DECLINED',\n AUTH_FAILED = 'AUTH_FAILED',\n CART_EMPTY = 'CART_EMPTY'\n}\n\nexport enum ButtonType {\n FIXED_PRICE = 'FIXED_PRICE',\n VARIABLE_PRICE = 'VARIABLE_PRICE',\n SINGLE_SELECT_LIST = 'SINGLE_SELECT_LIST'\n}\n\nexport enum IntegrationOptions {\n ADD_TO_CART = 'addToCart',\n PAYMENT_LINK = 'paymentLink',\n QR_CODE = 'qrCode',\n STACKED_BUTTONS = 'stackedButtons',\n SINGLE_BUTTON = 'singleButton'\n}\n\nconst cardImg = 'https://www.paypalobjects.com/paypal-ui/pictograms/multicolored/svg/cards.svg';\n\nexport const INTEGRATION_TYPE_TO_IMAGE = {\n [IntegrationOptions.PAYMENT_LINK]:\n 'https://www.paypalobjects.com/paypal-ui/pictograms/multicolored/svg/fun.svg',\n [IntegrationOptions.QR_CODE]:\n 'https://www.paypalobjects.com/paypal-ui/pictograms/multicolored/svg/qrc-pay.svg',\n [IntegrationOptions.STACKED_BUTTONS]: cardImg,\n [IntegrationOptions.SINGLE_BUTTON]: cardImg,\n [IntegrationOptions.ADD_TO_CART]:\n 'https://www.paypalobjects.com/paypal-ui/pictograms/multicolored/svg/cart.svg'\n};\n\nexport const PAYMENT_IMAGE_SOURCE = {\n [OptionalPaymentMethods.PAYLATER]:\n 'https://www.paypalobjects.com/paypal-ui/logos/svg/paypal-mark-color.svg',\n [OptionalPaymentMethods.VENMO]:\n 'https://www.paypalobjects.com/paypal-ui/logos/svg/venmo-mark-color.svg',\n [OptionalPaymentMethods.APPLEPAY]:\n 'https://www.paypalobjects.com/paypal-ui/logos/svg/apple-pay-color.svg',\n [OptionalPaymentMethods.GOOGLEPAY]:\n 'https://www.paypalobjects.com/paypal-ui/logos/svg/google-pay-color.svg'\n};\n\nexport const PaymentMethodLogoUrlMapper = {\n [OptionalPaymentMethods.PAYLATER]: PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.PAYLATER],\n [OptionalPaymentMethods.VENMO]: PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.VENMO],\n [OptionalPaymentMethods.APPLEPAY]: PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.APPLEPAY],\n [OptionalPaymentMethods.GOOGLEPAY]: PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.GOOGLEPAY]\n};\n\nexport const PaymentMethodLogoSVGUrlMapper = {\n [CheckoutPaymentOptionsOtherThanPayPal.Venmo]: PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.VENMO],\n [CheckoutPaymentOptionsOtherThanPayPal.PayLater]:\n PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.PAYLATER],\n [CheckoutPaymentOptionsOtherThanPayPal.ApplePay]:\n PAYMENT_IMAGE_SOURCE[OptionalPaymentMethods.APPLEPAY]\n};\n\nexport const Color = {\n [CheckoutSingleButtonColorType.Recommended]: '#FFD140',\n [CheckoutSingleButtonColorType.Black]: '#000000',\n [CheckoutSingleButtonColorType.White]: '#ffffff'\n};\n\nexport enum PreviewTabName {\n PRODUCT = 'product',\n CHECK_OUT = 'checkout',\n THANK_YOU = 'thankyou',\n STACKED_BUTTONS = 'stackedButtons',\n SINGLE_BUTTON = 'singleButton',\n VIEW_CART = 'viewCart'\n}\n\nexport const INVALID_OPTION_CONTENT_KEY = 'error.text.buyerInvalidOption';\nexport const INVALID_QUANTITY_CONTENT_KEY = 'error.cart.quantityExceeded';\n\nexport const CardSVGUrl = {\n cardSVGUrlWithApplePay: 'https://www.paypalobjects.com/images/Debit_Credit_APM.svg',\n cardSVGUrlWithOutApplePay: 'https://www.paypalobjects.com/images/Debit_Credit.svg'\n};\n\ninterface IButtonProps {\n minWidth: string;\n maxWidth: string;\n horizontalWidth: string;\n lineHeight: string;\n fontWeight: number;\n sdkFontSize: string;\n sdkHeight: string;\n singleButtonFontSize: string;\n singleButtonHeight: string;\n}\n\n// reference: https://www.figma.com/design/2R4zzzptJETTxjvplCSTTM/No-Code-Checkout-2.0?node-id=13514-107034&m=dev\n// checkout button requires height in px unit to match SDK buttons, which only accept px values\nexport const ButtonSizes: Record = {\n [CheckoutButtonSize.Large]: {\n minWidth: '11.625rem',\n maxWidth: '31.1875rem',\n horizontalWidth: '33.75rem',\n lineHeight: '1.5rem',\n fontWeight: 700,\n sdkFontSize: '1.125rem',\n sdkHeight: '50px',\n singleButtonFontSize: '1.125rem',\n singleButtonHeight: '3.125rem'\n },\n [CheckoutButtonSize.Medium]: {\n minWidth: '11.625rem',\n maxWidth: '24.9375rem',\n horizontalWidth: '30.625rem',\n lineHeight: '1.25rem',\n fontWeight: 700,\n sdkFontSize: '1rem',\n sdkHeight: '42px',\n singleButtonFontSize: '1rem',\n singleButtonHeight: '2.625rem'\n },\n [CheckoutButtonSize.Small]: {\n minWidth: '11.625rem',\n // need this to be 316px instead of 299px since minimum JS SDK button width is 150\n // so when 2 horizontal buttons are rendered side by side, it could be up to 150+150+16(gap)\n maxWidth: '19.75rem',\n horizontalWidth: '25rem',\n lineHeight: '1.125rem',\n fontWeight: 700,\n sdkFontSize: '0.75rem',\n sdkHeight: '32px',\n singleButtonFontSize: '0.875rem',\n singleButtonHeight: '2rem'\n }\n};\n\ntype venmoColors = 'gold' | 'blue' | 'silver' | 'white' | 'black';\n\nexport const VenmoColorMapping: Record = {\n gold: undefined,\n blue: 'silver',\n silver: 'blue',\n black: 'black',\n white: 'white'\n};\n\ninterface IColorProps {\n backgroundColor: string;\n color: string;\n hoverBrightness: number;\n border?: string;\n focus?: {\n outline: string;\n offset: string;\n };\n}\n\nexport const checkoutColorMapping: Record = {\n default: {\n backgroundColor: '#001435',\n color: 'white',\n hoverBrightness: 1.5,\n focus: {\n outline: 'solid 0.3rem #009cde',\n offset: '-0.3rem'\n }\n },\n black: {\n color: 'white',\n backgroundColor: '#2c2e2f',\n hoverBrightness: 1.2\n },\n white: {\n color: '#2c2e2f',\n backgroundColor: 'white',\n border: '0.0625rem solid #555',\n hoverBrightness: 0.95\n }\n};\n\nexport enum CodeLanguages {\n HTML = 'html',\n REACT = 'react'\n}\n\nexport const PREVIEW_CART_ITEM_ID = 'preview_cart_item_id';\n\nexport enum MediaErrorCode {\n HIT_CSAM = 406,\n NOT_FOUND = 404,\n DIMENSION_TOO_LOW = 424,\n DIMENSION_TOO_HIGH = 425\n}\n\nexport const PRODUCT_DESCRIPTION_MAX_LENGTH = 2048;\n\nexport const MaxProductImageNum = 5;\nexport const MaxImageSize = 10 * 1000 * 1000; // File input uses the SI prefix convention of 1KB = 1000B, similar to macOS.\n\nexport const ALLOWED_IMAGE_TYPES = ['png', 'jpg', 'jpeg', 'bmp'];\nexport const VARIANTS_LIMIT = 3;\nexport const VARIANTS_OPTIONS_LIMIT = 10;\nexport const SectionFieldRequiredGenericContentKey = 'editor.error.requiredSectionField';\n\nexport const UploadImageErrorDescriptions = {\n invalidFile: 'UPLOAD_FILE_FORMAT_INVALID',\n hitCSAM: 'HIT_CSAM_ACCOUNT_RESTRICTED',\n dimensionLowError: 'DIMENSION_TOO_LOW_ERROR',\n dimensionHighError: 'DIMENSION_TOO_HIGH_ERROR',\n serverError: 'SERVER_ERROR',\n sizeError: 'SIZE_ERROR',\n typeError: 'TYPE_ERROR'\n};\n","import { SettingsTabName } from '@components/Settings/types';\n\nconst NCP_BASE = '/ncp';\nexport const LINKS_BASE_URL = '/links';\nexport const CART_BASE_URL = '/cart';\nexport const SETTINGS_BASE_URL = '/settings';\nexport const EDITOR_AND_DETAILS_URL = `${NCP_BASE}${LINKS_BASE_URL}`;\nexport const ADD_TO_CART_EDITOR_URL = `${NCP_BASE}${CART_BASE_URL}`;\nexport const SETTINGS_URL = `${NCP_BASE}${SETTINGS_BASE_URL}`;\nexport const INITIAL_TAB_SEARCH_PARAM_KEY = 'initial_tab';\nexport const SETTINGS_URL_SINGLE_BUTTON_TAB = `${NCP_BASE}${SETTINGS_BASE_URL}?${INITIAL_TAB_SEARCH_PARAM_KEY}=${SettingsTabName.SINGLE_BUTTON}`;\nexport const SETTINGS_URL_STACKED_BUTTONS_TAB = `${NCP_BASE}${SETTINGS_BASE_URL}?${INITIAL_TAB_SEARCH_PARAM_KEY}=${SettingsTabName.STACKED_BUTTONS}`;\nexport const SETTINGS_URL_CART_BUTTONS_TAB = `${NCP_BASE}${SETTINGS_BASE_URL}?${INITIAL_TAB_SEARCH_PARAM_KEY}=${SettingsTabName.CART_BUTTONS}`;\n\n// This mapping is for JSSDK, according to https://developer.paypal.com/sdk/js/configuration/#link-locale\nexport const JSSDK_SPECIAL_LOCALES_MAP: Record = {\n 'zh-CN-xbord': 'zh-CN',\n 'en-CN-xbord': 'zh-CN',\n 'nb-NO': 'no-NO',\n 'fil-PH': 'en-PH'\n};\n\n// According to https://paypal.slack.com/archives/C02D21KRD45/p1693268291663499\nexport const BFS_SPECIAL_LOCALES_MAP = {\n 'zh-CN-xbord': 'zh-C2',\n 'en-CN-xbord': 'en-C2',\n 'nb-NO': 'no-NO',\n 'fil-PH': 'tl-PH'\n};\n\nexport const ERRORS = {\n CART_OUT_OF_SYNC: 'Cart out of sync with server'\n};\n","import { FlowType, SourceType } from './analytics';\n\nexport const COMPONENT = 'nocodenodeweb';\nexport const SPACE_KEY = 'SKS09G';\nexport const PRODUCT = 'quantum_leap';\nexport const FPTI_GROUP = 'main:business:web:hostedcheckout';\nexport const fptiPageNames = {\n payment: 'main:business:web:hostedcheckout:payment',\n order_status: 'main:business:web:hostedcheckout:order_status',\n not_found: 'main:business:web:hostedcheckout:not_found',\n merchant_website: 'main:business:web:hostedcheckout:merchant_website',\n subscriptions: 'main:business:web:hostedcheckout:subscriptions' // TODO-SERVICES: engage with analytics team to decide which group subscriptions will belong\n};\n\nexport type FtpiType = {\n sourceType?: SourceType;\n flowType?: FlowType;\n};\n\nexport const extractSourceAndFlowType = (ftpi: FtpiType | undefined) => {\n return { sourceType: ftpi?.sourceType ?? 'unknown', flowType: ftpi?.flowType ?? 'unknown' };\n};\n","const defaultCdnDomain = 'www.paypalobjects.com';\n\nexport const replaceGeoUrl = (url: string, geoAwareDomain?: string) => {\n if (!url || typeof url !== 'string' || !url.includes(defaultCdnDomain)) {\n return url;\n }\n\n return geoAwareDomain ? url.replace(defaultCdnDomain, geoAwareDomain) : url;\n};\n"],"names":["OptionalPaymentMethods","ButtonLayout","ButtonShape","ButtonSize","ButtonColorType","SecondButtonType","ButtonTextType","BooleanButtonVariableHandler","data","SETTINGS_FIELDS_CHECKOUT","payment_method_paylater","configMapper","variablesMapper","variableHandler","payment_method_venmo","payment_method_apple_pay","show_business_name","show_business_logo","homepage_url","DEFAULT_FIELDS_MAPPER","stacked_button_layout","stacked_button_shape","stacked_button_size","stacked_button_color_type","stacked_button_second_button_type","stacked_button_text_type","stacked_button_custom_text","single_button_shape","single_button_size","single_button_color_type","single_button_color_code","DEFAULT_CART_FIELDS_MAPPER","cart_button_shape","cart_button_size","cart_button_color_type","cart_button_color_code","DEFAULT_CART_BUTTON_SETTINGS","DEFAULT_MERCHANT_CHECKOUT_SETTINGS","DEFAULT_MERCHANT_CART_BUTTON_SETTINGS","SETTINGS_NEWLY_ADDED_FIELDS_DEFAULT_VALUES","auto_return_url","getSettingsValuesWithFallback","appContext","isSettingsEnabled","merchantSettings","getButtonVariablesFromMerchantSettings","buttonVariables","buttonVariation","ButtonVariation","BuyNow","isCartButton","Cart","calculatedButtonVariables","Object","entries","reduce","acc","settingsKey","mapper","mappingValue","DEFAULT_MERCHANT_SETTINGS","OrderStatus","CaptureStatus","ButtonType","IntegrationOptions","PAYMENT_LINK","QR_CODE","STACKED_BUTTONS","SINGLE_BUTTON","ADD_TO_CART","PAYLATER","VENMO","APPLEPAY","GOOGLEPAY","Color","CheckoutPaymentOptionsOtherThanPayPal","Venmo","PayLater","ApplePay","CheckoutSingleButtonColorType","Recommended","Black","White","INVALID_OPTION_CONTENT_KEY","INVALID_QUANTITY_CONTENT_KEY","checkoutColorMapping","CheckoutButtonSize","Large","Medium","Small","default","backgroundColor","color","hoverBrightness","focus","outline","offset","black","white","border","JSSDK_SPECIAL_LOCALES_MAP","ERRORS","CART_OUT_OF_SYNC","COMPONENT","SPACE_KEY","PRODUCT","FPTI_GROUP","fptiPageNames","payment","order_status","not_found","merchant_website","subscriptions","extractSourceAndFlowType","ftpi","sourceType","flowType","defaultCdnDomain","replaceGeoUrl","url","geoAwareDomain","includes","replace"],"sourceRoot":""}