{"version":3,"file":"script/chunks/chunk.69.b84676514c.js","mappings":"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","sources":["webpack://touchweb/./src/components/site-header/hover-menu/hover-menu.module.scss","webpack://touchweb/./src/apps/my-tradera/app/components/settings/components/settings-dropdown/settings-dropdown.tsx","webpack://touchweb/./src/apps/my-tradera/invoice-checkout/payment/braintree-drop-in.jsx","webpack://touchweb/./src/apps/my-tradera/shipping-checkout/payment/braintree-drop-in.jsx","webpack://touchweb/./src/apps/tradera/messaging/constants.ts","webpack://touchweb/./src/apps/tradera/messaging/utils/thread.ts","webpack://touchweb/./src/components/localization/language-select.module.scss","webpack://touchweb/./src/components/localization/translation-preferred-menu-item.tsx","webpack://touchweb/./src/components/localization/language-select.tsx","webpack://touchweb/./src/components/localization/shipping-country-select.tsx","webpack://touchweb/./src/components/localization/localization-menu.tsx","webpack://touchweb/./src/components/localization/shipping-country-select-dropdown.module.scss","webpack://touchweb/./src/components/localization/shipping-country-select-dropdown.tsx","webpack://touchweb/./src/components/side-menu/side-menu.tsx","webpack://touchweb/./src/components/site-header/hover-menu/constants.ts","webpack://touchweb/./src/components/site-header/hover-menu/hover-menu.jsx","webpack://touchweb/./src/components/site-header/localization-link.module.scss","webpack://touchweb/./src/components/site-header/localization-link.tsx","webpack://touchweb/./src/hooks/use-debounced-state.ts","webpack://touchweb/./src/legacy/static/utils/jquery-events.js","webpack://touchweb/./src/legacy/static/containers/navigation/main-navigation.js","webpack://touchweb/./src/legacy/static/init-module.js","webpack://touchweb/./src/state/views/invoice-checkout/utils.js","webpack://touchweb/./src/state/views/shipping-checkout/utils.js","webpack://touchweb/./src/utils/string.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"hover-menu-container-no-positioning\":\"hover-menu-container-no-positioning--KyovJ\",\"hoverMenuContainerNoPositioning\":\"hover-menu-container-no-positioning--KyovJ\",\"hover-menu-container\":\"hover-menu-container--GcmnO\",\"hoverMenuContainer\":\"hover-menu-container--GcmnO\",\"hover-menu-area-content\":\"hover-menu-area-content--FPHL6\",\"hoverMenuAreaContent\":\"hover-menu-area-content--FPHL6\",\"hover-menu-area\":\"hover-menu-area--E8KUU\",\"hoverMenuArea\":\"hover-menu-area--E8KUU\",\"align-right\":\"align-right--DF7Im\",\"alignRight\":\"align-right--DF7Im\",\"align-sm25-lg50\":\"align-sm25-lg50--S5oCs\",\"alignSm25Lg50\":\"align-sm25-lg50--S5oCs\",\"align-sm43-lg50\":\"align-sm43-lg50--oHu74\",\"alignSm43Lg50\":\"align-sm43-lg50--oHu74\"};","import type React from 'react';\nimport { forwardRef } from 'react';\nimport { SettingsRow } from 'tradera/apps/my-tradera/app/components/settings/components/settings-row/settings-row';\nimport ArrowDownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger\n} from 'tradera/components/dropdown-menu/dropdown-menu';\nimport { Button } from 'tradera/components/atoms/button/button';\nimport { DropdownMenuItemSelectable } from 'tradera/apps/syi/components/dropdown-field';\nimport { Text } from 'tradera/components/atoms/text/text';\n\ntype Props = {\n selected?: DropdownOption;\n options?: DropdownOption[];\n label?: string;\n labelComponent?: React.ReactNode;\n name: string;\n onChange?: (option: DropdownOption) => void;\n subLabel?: string;\n tooltip?: React.ReactNode;\n customDropdownContent?: React.ReactNode;\n size?: string;\n className?: string;\n dropdownTitle?: string;\n};\n\nexport type DropdownOption = {\n value: string;\n text: string;\n};\n\nexport const SettingsDropdown = forwardRef(\n (\n {\n selected,\n options,\n label,\n labelComponent,\n name,\n onChange,\n subLabel,\n tooltip,\n customDropdownContent,\n size,\n className,\n dropdownTitle\n },\n ref\n ) => {\n return (\n \n \n \n {label ?? labelComponent}\n \n {tooltip &&
{tooltip}
}\n \n \n \n \n }\n className=\"py-1\">\n {selected?.text}\n \n \n \n {dropdownTitle && (\n \n {dropdownTitle}\n \n )}\n {options?.map((option) => (\n {\n if (selected?.value !== option.value) {\n onChange?.(option);\n }\n }}\n text={option.text}\n />\n ))}\n {customDropdownContent}\n \n \n
\n );\n }\n);\n\nSettingsDropdown.displayName = 'SettingsDropdown';\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setSelectedPayment } from 'tradera/state/views/invoice-checkout/reducer';\nimport { LocalLoader } from 'tradera/components/loader/loader';\nimport { useCurrentLanguage, useTranslator } from 'tradera/lang/translate';\nimport { PAYMENT_OPTIONS } from 'tradera/state/views/invoice-checkout/initial-state';\nimport { selectInvoiceCheckout } from 'tradera/state/views/invoice-checkout/selector';\nimport PaymentMethodLogo from 'tradera/components/payment-method/payment-method-logo';\nimport api from 'tradera/state/views/invoice-checkout/api';\nimport qs from 'qs';\nimport { useFetchData } from 'tradera/hooks/use-fetch-data';\n\nimport { Button } from 'tradera/components/atoms/button/button';\nimport { PaymentMethodName } from 'tradera/components/payment-method/payment-method-name';\n\n// Testing card number for dev environment: 4111111111111111\n\nexport var paymentInstance = null;\n\nconst BraintreeDropIn = ({\n paymentOptions,\n selected,\n onPaymentMethodRequestable,\n isAvailable\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n\n const preselectedPaymentOption = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n })['payment-option'];\n\n useEffect(() => {\n if (!preselectedPaymentOption) return;\n\n dispatch(setSelectedPayment(preselectedPaymentOption));\n }, [preselectedPaymentOption, dispatch]);\n\n const { paymentOption } = paymentOptions;\n\n const handlePaymentSelected = () => {\n if (!selected && isAvailable) {\n dispatch(setSelectedPayment(paymentOption));\n }\n };\n\n return (\n <>\n
\n \n \n
\n \n \n
\n \n {paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD &&\n t('payment_method_info_visaMasterCard')}\n {paymentOption === PAYMENT_OPTIONS.APPLEPAY &&\n t('payment_method_info_applePay')}\n {paymentOption === PAYMENT_OPTIONS.GOOGLEPAY &&\n t('payment_method_info_googlePay')}\n \n \n
\n {selected && (\n
\n \n
\n )}\n \n );\n};\n\nconst DropInSelected = ({ paymentOption, onPaymentMethodRequestable }) => {\n const { language } = useCurrentLanguage();\n const { t } = useTranslator();\n const { invoiceId, amountOwed: totalCost } = useSelector(\n selectInvoiceCheckout\n );\n\n const fetchParams = useMemo(() => {\n return {\n invoiceId: invoiceId,\n paymentOption: paymentOption\n };\n }, [invoiceId, paymentOption]);\n\n //Fetch Braintree Token\n const { data, isLoading, isRejected, isResolved, retryFetch } =\n useFetchData(\n api.getBraintreeToken,\n fetchParams,\n 'Invoice Checkout Braintree token'\n );\n\n useEffect(() => {\n const dropIn = async () => {\n if (isResolved && !paymentInstance) {\n const { clientToken } = data;\n await initDropIn(\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n );\n }\n };\n dropIn();\n }, [\n data,\n isResolved,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n ]);\n\n // Update amount in configuration for Apple Pay, Google Pay\n useEffect(() => {\n let paymentProvider = null;\n if (paymentInstance) {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.APPLEPAY:\n paymentProvider = 'applepay';\n break;\n case PAYMENT_OPTIONS.GOOGLEPAY:\n paymentProvider = 'googlepay';\n break;\n default:\n paymentProvider = null;\n break;\n }\n }\n if (paymentProvider) {\n paymentInstance.updateConfiguration(\n paymentProvider,\n 'amount',\n totalCost\n );\n }\n }, [paymentOption, totalCost]);\n\n // Effect to reset paymentIntance when switching payment option\n useEffect(() => {\n return () => {\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = null; // Reset paymentInstance when unmounting\n };\n }, [paymentOption]);\n\n return (\n
\n {isRejected && (\n
\n
\n

{t('error_somethingWentWrong')}

\n
\n retryFetch()}>\n {t('error_reloadPage')}\n \n
\n )}\n {isLoading && (\n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nconst initDropIn = async (\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n) => {\n const callback = (err, dropinInstance) => {\n if (err) {\n return null;\n }\n\n if (dropinInstance.isPaymentMethodRequestable()) {\n onPaymentMethodRequestable(null, true);\n }\n\n dropinInstance.on(\n 'paymentMethodRequestable',\n function (paymentMethodRequestable) {\n onPaymentMethodRequestable(paymentMethodRequestable, true);\n }\n );\n\n dropinInstance.on('noPaymentMethodRequestable', function () {\n onPaymentMethodRequestable(null, false);\n });\n\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = dropinInstance;\n };\n\n const paymentOptions = getDropInOptions(paymentOption, totalCost);\n var options = {\n authorization: clientToken,\n container: '#dropin-container',\n locale: language,\n vaultManager: true,\n dataCollector: {\n kount: true // Required if Kount fraud data collection is enabled\n },\n card: {\n vault: {\n allowVaultCardOverride: true,\n vaultCard: false\n }\n },\n ...paymentOptions\n };\n\n const dropin = await import(\n /* webpackChunkName: \"braintree-web-drop-in\" */ 'braintree-web-drop-in'\n );\n await dropin.create(options, callback);\n};\n\nconst getDropInOptions = (paymentOption, totalCost) => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return {\n threeDSecure: true\n };\n case PAYMENT_OPTIONS.APPLEPAY:\n return {\n card: false,\n paypal: false,\n googlePay: false,\n applePay: {\n displayName: 'Tradera',\n paymentRequest: {\n total: {\n label: 'Tradera',\n amount: totalCost.toString()\n },\n requiredBillingContactFields: ['postalAddress']\n }\n }\n };\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return {\n card: false,\n paypal: false,\n applePay: false,\n threeDSecure: true,\n googlePay: {\n googlePayVersion: 2,\n merchantId: 'BCR2DN6TU7KPRDTQ',\n transactionInfo: {\n totalPriceStatus: 'FINAL',\n totalPrice: totalCost.toString(),\n currencyCode: 'SEK'\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL'\n }\n }\n }\n ]\n }\n };\n default:\n return {};\n }\n};\n\nexport default BraintreeDropIn;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setSelectedPayment } from 'tradera/state/views/shipping-checkout/reducer';\nimport { LocalLoader } from 'tradera/components/loader/loader';\nimport { useCurrentLanguage, useTranslator } from 'tradera/lang/translate';\nimport { PAYMENT_OPTIONS } from 'tradera/state/views/shipping-checkout/initial-state';\nimport {\n selectCheckoutSummary,\n selectShippingCheckout,\n selectShippingPayment\n} from 'tradera/state/views/shipping-checkout/selector';\nimport PaymentMethodLogo from 'tradera/components/payment-method/payment-method-logo';\nimport api from 'tradera/state/views/shipping-checkout/api';\n\nimport { useFetchData } from 'tradera/hooks/use-fetch-data';\nimport { Button } from 'tradera/components/atoms/button/button';\nimport { PaymentMethodName } from 'tradera/components/payment-method/payment-method-name';\n\n// Testing card number for dev environment: 4111111111111111\n\nexport var paymentInstance = null;\n\nconst BraintreeDropIn = ({\n paymentOptions,\n selected,\n onPaymentMethodRequestable,\n isAvailable\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n\n const { isUpdating } = useSelector(selectShippingCheckout);\n\n const { paymentOption } = paymentOptions;\n\n const handlePaymentSelected = () => {\n if (!selected && isAvailable) {\n dispatch(setSelectedPayment(paymentOption));\n }\n };\n\n return (\n <>\n
\n \n \n
\n \n \n
\n \n {paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD &&\n t('payment_method_info_visaMasterCard')}\n {paymentOption === PAYMENT_OPTIONS.APPLEPAY &&\n t('payment_method_info_applePay')}\n {paymentOption === PAYMENT_OPTIONS.GOOGLEPAY &&\n t('payment_method_info_googlePay')}\n \n \n
\n {selected && (\n
\n \n
\n )}\n \n );\n};\n\nconst DropInSelected = ({ paymentOption, onPaymentMethodRequestable }) => {\n const { language } = useCurrentLanguage();\n const { t } = useTranslator();\n const { shipmentCheckoutId } = useSelector(selectShippingPayment);\n const { totalCost } = useSelector(selectCheckoutSummary);\n\n const fetchParams = useMemo(() => {\n return {\n shipmentCheckoutId: shipmentCheckoutId,\n paymentOption: paymentOption\n };\n }, [shipmentCheckoutId, paymentOption]);\n\n //Fetch Braintree Token\n const { data, isLoading, isRejected, isResolved, retryFetch } =\n useFetchData(\n api.getBraintreeToken,\n fetchParams,\n 'Shipping Checkout Braintree token'\n );\n\n useEffect(() => {\n const dropIn = async () => {\n if (isResolved && !paymentInstance) {\n const { clientToken } = data;\n await initDropIn(\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n );\n }\n };\n dropIn();\n }, [\n data,\n isResolved,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n ]);\n\n // Update amount in configuration for PayPal, Apple Pay, Google Pay\n useEffect(() => {\n let paymentProvider = null;\n if (paymentInstance) {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.PAYPAL:\n paymentProvider = 'paypal';\n break;\n case PAYMENT_OPTIONS.APPLEPAY:\n paymentProvider = 'applepay';\n break;\n case PAYMENT_OPTIONS.GOOGLEPAY:\n paymentProvider = 'googlepay';\n break;\n default:\n paymentProvider = null;\n break;\n }\n }\n if (paymentProvider) {\n paymentInstance.updateConfiguration(\n paymentProvider,\n 'amount',\n totalCost\n );\n }\n }, [paymentOption, totalCost]);\n\n // Effect to reset paymentIntance when switching payment option\n useEffect(() => {\n return () => {\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = null; // Reset paymentInstance when unmounting\n };\n }, [paymentOption]);\n\n return (\n
\n {isRejected && (\n
\n
\n

{t('error_somethingWentWrong')}

\n
\n retryFetch()}>\n {t('error_reloadPage')}\n \n
\n )}\n {isLoading && (\n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nconst initDropIn = async (\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n) => {\n const callback = (err, dropinInstance) => {\n if (err) {\n return null;\n }\n\n if (dropinInstance.isPaymentMethodRequestable()) {\n onPaymentMethodRequestable(null, true);\n }\n\n dropinInstance.on(\n 'paymentMethodRequestable',\n function (paymentMethodRequestable) {\n onPaymentMethodRequestable(paymentMethodRequestable, true);\n }\n );\n\n dropinInstance.on('noPaymentMethodRequestable', function () {\n onPaymentMethodRequestable(null, false);\n });\n\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = dropinInstance;\n };\n\n const paymentOptions = getDropInOptions(paymentOption, totalCost);\n var options = {\n authorization: clientToken,\n container: '#dropin-container',\n locale: language,\n vaultManager: true,\n dataCollector: {\n kount: true // Required if Kount fraud data collection is enabled\n },\n card: {\n vault: {\n allowVaultCardOverride: true,\n vaultCard: false\n }\n },\n ...paymentOptions\n };\n\n const dropin = await import(\n /* webpackChunkName: \"braintree-web-drop-in\" */ 'braintree-web-drop-in'\n );\n await dropin.create(options, callback);\n};\n\nconst getDropInOptions = (paymentOption, totalCost) => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return {\n threeDSecure: true\n };\n case PAYMENT_OPTIONS.PAYPAL:\n return {\n card: false,\n applePay: false,\n googlePay: false,\n paypal: {\n flow: 'checkout',\n amount: totalCost,\n currency: 'SEK'\n }\n };\n case PAYMENT_OPTIONS.APPLEPAY:\n return {\n card: false,\n paypal: false,\n googlePay: false,\n applePay: {\n displayName: 'Tradera',\n paymentRequest: {\n total: {\n label: 'Tradera',\n amount: totalCost.toString()\n },\n requiredBillingContactFields: ['postalAddress']\n }\n }\n };\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return {\n card: false,\n paypal: false,\n applePay: false,\n threeDSecure: true,\n googlePay: {\n googlePayVersion: 2,\n merchantId: 'BCR2DN6TU7KPRDTQ',\n transactionInfo: {\n totalPriceStatus: 'FINAL',\n totalPrice: totalCost.toString(),\n currencyCode: 'SEK'\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL'\n }\n }\n }\n ]\n }\n };\n default:\n return {};\n }\n};\n\nexport default BraintreeDropIn;\n","const isDev = process.env.NODE_ENV !== 'production';\n\nexport const CONSTANTS = {\n IS_DEV: isDev,\n LOCALE: 'sv-SE',\n EXTERNAL_USER_ID_PARAM: 'traderaUserId',\n CUSTOMER_SERVICE_USER_ID: 'CUSTOMER_SERVICE',\n ERRORS: {\n NOT_LOGGED_IN: 'NOT_LOGGED_IN',\n MEMBER_BLOCKED: 'ERROR_MEMBER_BLOCKED',\n BLOCKED_BY_MEMBER: 'ERROR_BLOCKED_BY_MEMBER',\n MEMBER_NOT_CONTACTABLE: 'ERROR_MEMBER_NOT_CONTACTABLE'\n },\n AUTH_STATE: {\n LOGGED_OUT: 'LOGGED_OUT',\n NOT_VERIFIED: 'NOT_VERIFIED',\n LOGGED_IN: 'LOGGED_IN'\n },\n FIREBASE: {\n CUSTOMER_SERVICE_ID: 'CUSTOMER_SERVICE',\n THREAD_STATE: {\n ACTIVE: 'ACTIVE',\n ACTIVE_LABEL: 'Till försäljning',\n ENDED: 'ENDED',\n ENDED_LABEL: 'Avslutad'\n },\n MESSAGE_PERMITION_TYPE: {\n ALLOWED: 'ALLOWED',\n ENDED: 'ENDED',\n BLOCKED: 'BLOCKED'\n },\n SUSPENDED_STATE: {\n NONE: 'NONE',\n PARTIAL: 'PARTIAL',\n TOTAL: 'TOTAL'\n },\n MESSAGE_TYPE: {\n IMAGE: 'IMAGE',\n TEXT: 'TEXT',\n CSTEXT: 'CSTEXT',\n WON: 'WON',\n PAID: 'PAID',\n SHIPPED: 'SHIPPED',\n COUNTER_OFFER_CREATED: 'COUNTER_OFFER_CREATED',\n COUNTER_OFFER_ACCEPTED: 'COUNTER_OFFER_ACCEPTED',\n COUNTER_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_BUYER:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_BUYER',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER',\n COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM:\n 'COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM',\n PURCHASE_OFFER_CREATED: 'PURCHASE_OFFER_CREATED',\n PURCHASE_OFFER_ACCEPTED: 'PURCHASE_OFFER_ACCEPTED',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_SELLER:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_SELLER',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER',\n PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM:\n 'PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM'\n }\n },\n CONVERSATION_STATE: {\n READING: 'READING',\n COMPOSE: 'COMPOSE',\n SELECT_IMAGE: 'SELECT_IMAGE',\n CONFIRM_ARCHIVE: 'CONFIRM_ARCHIVE'\n },\n REPORTING_USER_STATE: {\n NONE: 'NONE',\n SENDING: 'SENDING'\n },\n BLOCKING_USER_STATE: {\n NONE: 'NONE',\n SENDING: 'SENDING'\n },\n ADDING_MESSAGE_STATE: {\n NONE: 'NONE',\n SAVING: 'SAVING',\n ERROR: 'ERROR'\n },\n THREAD_FILTERS: {\n ALL: 'ALL',\n UNREAD: 'UNREAD',\n PURCHASE_OFFERS: 'PURCHASE_OFFERS',\n REMOVED: 'REMOVED'\n },\n THREAD_SORT_FIELDS: {\n ITEM_TITLE: 'ITEM_TITLE'\n },\n THREAD_SORT_ORDER: {\n ASC: 'ASC',\n DESC: 'DESC'\n },\n INIT_DATA: {\n isLoggedIn: true,\n title: `Tradera | Messenger ${\n isDev ? '|| Development Environment ||' : ''\n }`,\n hasSearch: true\n },\n IMAGE_UPLOAD: {\n ALLOWED_TYPES: {\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/gif': 'gif'\n },\n MAX_UPLOAD_FILE_SIZE: 25 * 1000 * 1000\n },\n LISTING_ITEM_STATUS: {\n ACTIVE: 'ACTIVE'\n }\n} as const;\n\nexport const AllPurchaseOfferMessageTypes: Partial<\n keyof typeof CONSTANTS.FIREBASE.MESSAGE_TYPE\n>[] = [\n CONSTANTS.FIREBASE.MESSAGE_TYPE.PURCHASE_OFFER_CREATED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE.PURCHASE_OFFER_ACCEPTED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .PURCHASE_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_SELLER,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER\n];\n\nexport const AllCounterOfferMessageTypes: Partial<\n keyof typeof CONSTANTS.FIREBASE.MESSAGE_TYPE\n>[] = [\n CONSTANTS.FIREBASE.MESSAGE_TYPE.COUNTER_OFFER_CREATED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE.COUNTER_OFFER_ACCEPTED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .COUNTER_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_BUYER,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW,\n CONSTANTS.FIREBASE.MESSAGE_TYPE\n .COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER\n];\n","import { type TranslationFunction } from 'tradera/lang/translate';\nimport { CONSTANTS } from '../constants';\nimport TraderaCircleSVG from 'tradera/apps/tradera/messaging/images/tradera-circle.react.svg';\nimport type {\n FirebaseThread,\n FirebaseMessagingRecipient,\n FirebaseProfile\n} from 'tradera/apps/tradera/messaging/types';\nimport { timestampToDate } from 'tradera/apps/tradera/messaging/utils/firebase-timestamp';\n\nconst getCustomerServiceRecipient = (\n t: TranslationFunction\n): FirebaseMessagingRecipient => ({\n userId: CONSTANTS.FIREBASE.CUSTOMER_SERVICE_ID,\n username: t('messaging_tradera_customer_service'),\n thumbnailUrl: TraderaCircleSVG,\n blocked: false,\n countryCodeIso2: 'SE',\n suspended: false\n});\n\nfunction getThreadId(memberId1: number, memberId2: number, listingId: number) {\n return `u${Math.min(memberId1, memberId2)}_u${Math.max(\n memberId1,\n memberId2\n )}_l${listingId}`;\n}\n\ntype ThreadInfo = { senderId: string; receiverId: string; listingId: string };\n\nfunction getThreadInfo(threadId: string, senderId: string): ThreadInfo | null {\n const threadInfo = threadId.split('_').map((part) => part.substring(1));\n if (threadInfo.length === 3) {\n const [userMin, userMax, listingId] = threadInfo;\n return {\n senderId: userMin === senderId ? userMin : userMax,\n receiverId: userMin !== senderId ? userMin : userMax,\n listingId\n };\n } else {\n return null;\n }\n}\n\nfunction getRecipient(\n thread: FirebaseThread,\n senderId: string,\n t: TranslationFunction\n): FirebaseMessagingRecipient | null {\n let recipient = null;\n if (!thread) return null;\n if (!thread.members) return getCustomerServiceRecipient(t);\n\n // Find user that isn't sender or customer service\n const userId = Object.keys(thread.members).find((key) => {\n return (\n key !== senderId && key !== CONSTANTS.FIREBASE.CUSTOMER_SERVICE_ID\n );\n });\n if (userId && userId in thread.members) {\n const {\n username,\n thumbnailUrl,\n suspendedState,\n countryCodeIso2,\n messagePermission\n } = thread.members[userId];\n recipient = {\n userId,\n username,\n thumbnailUrl,\n countryCodeIso2,\n suspended:\n suspendedState !== CONSTANTS.FIREBASE.SUSPENDED_STATE.NONE\n ? suspendedState\n : false,\n blocked:\n messagePermission ===\n CONSTANTS.FIREBASE.MESSAGE_PERMITION_TYPE.BLOCKED\n } as FirebaseMessagingRecipient;\n return recipient;\n } else {\n return getCustomerServiceRecipient(t);\n }\n}\n\nfunction getThreadInteractivity(\n thread: FirebaseThread,\n recipient: FirebaseMessagingRecipient,\n userId: string,\n userProfile: FirebaseProfile | null,\n t: TranslationFunction\n): ThreadInteractivity {\n const { members, lockedAt, markedAsSpam } = thread || {};\n\n const hasNoMembers = !members;\n if (hasNoMembers) {\n return {\n addMessageText: t('messaging_warnings_user_not_available'),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n if (lockedAt) {\n return {\n addMessageText: t('messaging_warnings_closed_by_cs'),\n addMessageTextSeverity: 'info',\n isAddMessageAllowed: false\n };\n }\n\n if (markedAsSpam != null) {\n return {\n addMessageText: t('messaging_warnings_marked_as_spam'),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n const threadEnded =\n members[userId].messagePermission ===\n CONSTANTS.FIREBASE.MESSAGE_PERMITION_TYPE.ENDED;\n if (threadEnded) {\n return {\n addMessageText: t('messaging_warnings_listing_ended'),\n addMessageTextSeverity: 'info',\n isAddMessageAllowed: false\n };\n }\n\n const memberBlocked =\n members[userId].messagePermission ===\n CONSTANTS.FIREBASE.MESSAGE_PERMITION_TYPE.BLOCKED;\n if (memberBlocked) {\n return {\n addMessageText: t('messaging_warnings_user_not_available'),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n const recipientSuspended =\n recipient.suspended === CONSTANTS.FIREBASE.SUSPENDED_STATE.TOTAL;\n if (recipientSuspended) {\n return {\n addMessageText: t('messaging_warnings_suspended_total'),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n const recipientPartiallySuspended =\n recipient.suspended === CONSTANTS.FIREBASE.SUSPENDED_STATE.PARTIAL;\n if (recipientPartiallySuspended) {\n return {\n addMessageText: t('messaging_warnings_suspended_partial'),\n addMessageTextSeverity: 'info',\n isAddMessageAllowed: true\n };\n }\n\n if (userProfile?.messageThrottledUntil) {\n if (timestampToDate(userProfile.messageThrottledUntil) > new Date()) {\n return {\n addMessageText: t('messaging_warnings_throttled'),\n addMessageTextSeverity: 'info',\n isAddMessageAllowed: false\n };\n }\n }\n\n if (userProfile?.requireIdentityVerification) {\n return {\n addMessageText: t(\n 'messaging_warnings_require_identity_verification'\n ),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n if (recipient.blocked) {\n return {\n addMessageText: t('messaging_warnings_user_in_your_blocked_list'),\n addMessageTextSeverity: 'warning',\n isAddMessageAllowed: false\n };\n }\n\n return { isAddMessageAllowed: true };\n}\n\nfunction sortThreads(threads: FirebaseThread[]) {\n return threads.sort((a, b) => {\n const aValue = a.lastMessageAt || a.createdAt;\n const bValue = b.lastMessageAt || b.createdAt;\n if (aValue < bValue) return 1;\n if (aValue > bValue) return -1;\n return 0;\n });\n}\n\nexport type ThreadInteractivity = {\n isAddMessageAllowed: boolean;\n addMessageText?: string;\n addMessageTextSeverity?: 'info' | 'warning';\n};\n\nexport {\n getCustomerServiceRecipient,\n getThreadId,\n getThreadInfo,\n getRecipient,\n getThreadInteractivity,\n sortThreads\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"flag\":\"flag--xibwu\"};","import { touchWebClient } from 'tradera/utils/http';\nimport { selectAutomaticTranslationPreferred } from 'tradera/state/language/selectors';\nimport { setAutomaticTranslationPreferred } from 'tradera/state/language/reducer';\nimport { useTranslator } from 'tradera/lang/translate';\nimport { selectIsLoggedIn } from 'tradera/state/member/selectors';\nimport { useAppDispatch, useAppSelector } from 'tradera/state/hooks';\nimport { ToggleSwitch } from 'tradera/components/form-controls/toggle-switch/toggle-switch';\n\nexport const TranslationPreferredMenuItem = () => {\n const { t } = useTranslator();\n const dispatch = useAppDispatch();\n const automaticTranslationPreferred = useAppSelector(\n selectAutomaticTranslationPreferred\n );\n const isLoggedIn = useAppSelector(selectIsLoggedIn);\n\n const onAutomaticTranslationPreferredChanged = async (checked: boolean) => {\n await touchWebClient.post(\n 'my/profile/save-automatic-translation-preferred-setting',\n { isAutomaticTranslationPreferred: checked }\n );\n\n dispatch(\n setAutomaticTranslationPreferred({\n automaticTranslationPreferred: checked\n })\n );\n };\n return isLoggedIn ? (\n
\n \n
\n {t('profileMenu_translationPreferredText')}\n
\n
\n ) : null;\n};\n","import {\n selectAvailableLanguages,\n selectPreferredLanguage\n} from 'tradera/state/language/selectors';\nimport { setPreferredLanguage } from 'tradera/state/language/actions';\nimport { useTranslator, useUrlLocalizer } from 'tradera/lang/translate';\nimport { SURVEYS } from 'tradera/constants/surveys';\nimport Flag from 'tradera/components/flag/flag';\nimport { getCountryCodeForFlagFromLanguage } from 'tradera/localization/languagecode';\nimport { useQualtive } from 'tradera/hooks/use-qualtive';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport styles from './language-select.module.scss';\nimport { TranslationPreferredMenuItem } from './translation-preferred-menu-item';\nimport { Button } from 'tradera/components/atoms/button/button';\nimport { useAppDispatch, useAppSelector } from 'tradera/state/hooks';\nimport { classNames } from 'tradera/utils/class-names';\n\ntype PlainLanguageSelectProps = {\n inProfileMenu?: boolean;\n title?: string;\n};\n\nexport const LanguageSelect = ({\n inProfileMenu,\n title\n}: PlainLanguageSelectProps) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n const dispatch = useAppDispatch();\n const availableLanguages = useAppSelector(selectAvailableLanguages);\n const preferredLanguage = useAppSelector(selectPreferredLanguage);\n\n const onLanguageChanged = (code: string) => {\n if (preferredLanguage?.languageCodeIso2 === code) {\n return;\n }\n dispatch(setPreferredLanguage(code, toLocalizedUrl));\n };\n return (\n
\n {title &&
{title}
}\n {availableLanguages?.map(({ languageCodeIso2, displayName }) => (\n {\n onLanguageChanged(languageCodeIso2 || '');\n }}\n data-language-select={languageCodeIso2}>\n \n \n {displayName}\n \n {preferredLanguage?.languageCodeIso2 ===\n languageCodeIso2 && (\n \n )}\n \n ))}\n \n {isQualtiveEnabled && (\n
\n {t('siteHeader_languageDisclaimerShort')} \n openQualtiveModal(SURVEYS.language)}>\n {t('siteHeader_languageLeaveFeedBack')}\n \n
\n )}\n
\n );\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTranslator } from 'tradera/lang/translate';\nimport {\n selectAvailableShippingCountryCodes,\n selectShippingCountry,\n selectIsLoadingAvailableShippingCountries,\n selectHasLoadedAvailableShippingCountries\n} from 'tradera/state/shipping-region/selectors';\nimport {\n updateShippingRegion,\n getAvailableShippingCountries\n} from 'tradera/state/shipping-region/actions';\nimport { ShippingCountrySelectDropdown } from './shipping-country-select-dropdown';\nimport Load from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport { mapCountryCodeToCountryKey } from 'tradera/localization/countries';\nimport { useAppDispatch, useAppSelector } from 'tradera/state/hooks';\n\nexport const ShippingCountrySelect = () => {\n const { t } = useTranslator();\n const dispatch = useAppDispatch();\n const shippingCountry = useAppSelector(selectShippingCountry);\n const shippingCountryCodes = useAppSelector(\n selectAvailableShippingCountryCodes\n );\n const isLoadingAvailableShippingCountries = useAppSelector(\n selectIsLoadingAvailableShippingCountries\n );\n const showShippingCountries =\n useAppSelector(selectHasLoadedAvailableShippingCountries) &&\n !isLoadingAvailableShippingCountries;\n\n const shippingCountries = useMemo(\n () =>\n shippingCountryCodes.map((countryCodeIso2) => ({\n countryCodeIso2,\n name: t(mapCountryCodeToCountryKey(countryCodeIso2))\n })),\n [t, shippingCountryCodes]\n );\n useEffect(() => {\n dispatch(getAvailableShippingCountries());\n }, [dispatch]);\n\n return (\n
\n \n {t('siteHeader_shippingCountry')}\n \n {isLoadingAvailableShippingCountries && (\n
\n \n
\n )}\n {showShippingCountries && (\n {\n dispatch(updateShippingRegion(countryCodeIso2));\n }}\n />\n )}\n
\n );\n};\n","import { LanguageSelect } from './language-select';\nimport { ShippingCountrySelect } from './shipping-country-select';\nimport { useTranslator } from 'tradera/lang/translate';\n\ntype LocalizationMenuProps = {\n showRegionSelection: boolean;\n};\n\nexport const LocalizationMenu = ({\n showRegionSelection\n}: LocalizationMenuProps) => {\n const { t } = useTranslator();\n return (\n
\n {showRegionSelection && (\n <>\n \n
\n \n )}\n \n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"shipping-country-flag\":\"shipping-country-flag--awFdJ\",\"shippingCountryFlag\":\"shipping-country-flag--awFdJ\"};","import { useState } from 'react';\nimport { useTranslator } from 'tradera/lang/translate';\nimport Flag from 'tradera/components/flag/flag';\nimport { classNames } from 'tradera/utils/class-names';\nimport { SearchInput } from 'tradera/components/form-controls/search-input/search-input';\nimport { DropdownButton } from 'tradera/components/dropdown-button/dropdown-button';\n\nimport styles from './shipping-country-select-dropdown.module.scss';\n\ntype ShippingCountry = {\n name: string;\n countryCodeIso2: string;\n};\n\ntype ShippingCountrySelectDropdownProps = {\n shippingCountries: ShippingCountry[];\n selectedShippingCountryCodeIso2: string;\n onSelect: (countryCodeIso2: string) => void;\n className?: string;\n itemsBeforeScrollCount?: number;\n shippingCountryPlaceholder?: string;\n relative?: boolean;\n style?: React.CSSProperties;\n};\n\nexport const ShippingCountrySelectDropdown = ({\n shippingCountries,\n selectedShippingCountryCodeIso2,\n onSelect,\n className,\n itemsBeforeScrollCount = 5,\n shippingCountryPlaceholder,\n relative,\n style = {}\n}: ShippingCountrySelectDropdownProps) => {\n const { t } = useTranslator();\n const [search, setSearch] = useState('');\n const [isSearchEnabled, setIsSearchEnabled] = useState(false);\n const includesSearch = (v: string) =>\n v.toLowerCase().includes(search.toLowerCase());\n const filteredShippingCountries = shippingCountries.filter(\n ({ name, countryCodeIso2 }) =>\n includesSearch(name) || includesSearch(countryCodeIso2)\n );\n const selectedShippingCountryName = shippingCountries.find(\n (x) =>\n x.countryCodeIso2 === selectedShippingCountryCodeIso2.toLowerCase()\n )?.name;\n\n const paddingHeight = 7;\n const listLength =\n filteredShippingCountries.length === 0\n ? 1\n : filteredShippingCountries.length;\n const minOfListOrItemsBeforeScrollCount = Math.min(\n listLength,\n itemsBeforeScrollCount\n );\n const height =\n paddingHeight +\n minOfListOrItemsBeforeScrollCount * 35 +\n (listLength <= itemsBeforeScrollCount ? 0 : 21);\n const listStyle: React.CSSProperties = {\n height: `${height}px`,\n width: '100%',\n zIndex: 1,\n overflowY: 'auto',\n ...style\n };\n\n return (\n
\n {!isSearchEnabled ? (\n {\n setIsSearchEnabled(true);\n }}\n icon={\n \n }>\n {selectedShippingCountryName}\n \n ) : (\n setSearch(e.target.value)}\n onBlur={() => {\n setTimeout(() => {\n setIsSearchEnabled(false);\n }, 100);\n }}\n onClear={() => setIsSearchEnabled(false)}\n />\n )}\n {isSearchEnabled && (\n
\n e.preventDefault()}\n style={listStyle}>\n
\n {filteredShippingCountries.length > 0 ? (\n <>\n {filteredShippingCountries.map(\n (shippingCountry) => (\n {\n setIsSearchEnabled(false);\n onSelect(\n shippingCountry.countryCodeIso2\n );\n }}>\n \n {shippingCountry.name}\n
\n )\n )}\n \n ) : (\n
\n {t('siteHeader_shippingCountryNoResults')}\n
\n )}\n
\n
\n
\n )}\n
\n );\n};\n","import { TransitionGroup } from 'react-transition-group';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport {\n EnterFrom,\n EnterFade\n} from 'tradera/components/transitions/transitions';\nimport { Overlay } from 'tradera/components/scrollable-modal/overlay';\nimport styles from './side-menu.module.scss';\n\ntype SideMenuProps = {\n children: React.ReactNode;\n fromLeft?: boolean;\n show: boolean;\n onDismiss: () => void;\n allowFullScreen?: boolean;\n width?: string;\n};\n\nexport const SideMenu = ({\n children,\n fromLeft = false,\n show,\n onDismiss,\n allowFullScreen = false,\n width = '35rem'\n}: SideMenuProps) => (\n \n {show && (\n \n \n \n )}\n {show && (\n \n \n \n {children}\n \n \n \n )}\n \n);\n","export const HOVER_MENUS = {\n WISHLIST: 'Wishlist',\n SELL: 'Selling',\n BUY: 'Buying',\n LOCALIZATION: 'Localization',\n CURRENCY: 'Currency',\n HOW_TRADERA_WORKS: 'HowTraderaWorks'\n} as const;\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './hover-menu.module.scss';\nimport { classNames } from 'tradera/utils/class-names';\n\nclass HoverMenu extends Component {\n state = {\n show: false,\n hoverContainer: false\n };\n\n toggleShow = (show) => {\n window.clearTimeout(this.toggleShowTimeoutId);\n this.toggleShowTimeoutId = window.setTimeout(() => {\n if (this.state.show !== show) {\n this.setState({ show: show });\n }\n }, 10);\n };\n\n componentDidUpdate(prevProps) {\n if (this.props.showMenu !== prevProps.showMenu) {\n this.toggleShow(this.props.showMenu);\n }\n }\n\n render() {\n const {\n children,\n className = '',\n noContainerPositioningStyling\n } = this.props;\n\n return (\n this.state.show && (\n {})}>\n \n \n )\n );\n }\n}\n\nHoverMenu.propTypes = {\n showMenu: PropTypes.bool,\n className: PropTypes.string,\n noContainerPositioningStyling: PropTypes.bool\n};\n\nexport default HoverMenu;\n","// extracted by mini-css-extract-plugin\nexport default {\"flag\":\"flag--TeCvn\"};","import { GtmService } from 'tradera/services/google-tagmanager/google-tagmanager-service';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport { selectPreferredLanguageCode } from 'tradera/state/language/selectors';\nimport {\n selectShowLocalizationRegionPicker,\n selectShowRegionSelection\n} from 'tradera/state/shipping-region/selectors';\nimport HoverMenu from './hover-menu/hover-menu';\nimport hoverMenuStyles from './hover-menu/hover-menu.module.scss';\nimport { LocalizationMenu } from 'tradera/components/localization/localization-menu';\nimport TranslateIcon from '@tradera/blueprint/theme/icons2/translate.svg?jsx';\nimport { getCountryCodeForFlagFromLanguage } from 'tradera/localization/languagecode';\nimport Flag from 'tradera/components/flag/flag';\nimport { useTranslator } from 'tradera/lang/translate';\nimport { classNames } from 'tradera/utils/class-names';\nimport { useAppSelector } from 'tradera/state/hooks';\n\nimport styles from './localization-link.module.scss';\nimport { Button } from 'tradera/components/atoms/button/button';\n\ntype LocalizationLinkProps = {\n onClick: (e: React.MouseEvent, menu: string) => void;\n mouseOver: (menu: string) => void;\n mouseOut: () => void;\n showMenu: boolean;\n hideRegionSelection?: boolean;\n showIconAndTextInsteadOfFlag?: boolean;\n};\n\nexport const LocalizationLink = ({\n onClick,\n mouseOver,\n mouseOut,\n hideRegionSelection,\n showMenu,\n showIconAndTextInsteadOfFlag = false\n}: LocalizationLinkProps) => {\n const { t } = useTranslator();\n\n const preferredLanguageCode = useAppSelector(selectPreferredLanguageCode);\n const showRegionSelectionAppState = useAppSelector(\n selectShowRegionSelection\n );\n const showRegionSelection =\n !hideRegionSelection && showRegionSelectionAppState;\n const showLocalizationRegionPicker = useAppSelector(\n selectShowLocalizationRegionPicker\n );\n\n const countryCode = getCountryCodeForFlagFromLanguage(\n preferredLanguageCode\n );\n\n return (\n \n mouseOver(HOVER_MENUS.LOCALIZATION)}\n onMouseLeave={mouseOut}>\n {\n GtmService.trackAction(\n 'Top navigation',\n 'Localization menu',\n 'Open/Close'\n );\n onClick(e, HOVER_MENUS.LOCALIZATION);\n }}>\n {showIconAndTextInsteadOfFlag ? (\n \n \n {t('siteHeader_localizationLink_language')}\n \n ) : (\n \n \n \n )}\n \n \n \n \n \n \n );\n};\n","import { useState, useEffect } from 'react';\n\n/**\n * Prevents the state from changing until the delay has passed. If state\n * changes occur during the delay, the delay time is reset.\n * Good to use if a state change triggers API calls. This plays nicely with\n * react components as opposed to the packages/debounce or lodash function.\n */\nexport const useDebouncedState = (\n state: StateType,\n delay: number\n) => {\n const [debouncedState, setDebouncedState] = useState(state);\n\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedState(state), delay);\n\n return () => clearTimeout(handler);\n }, [state, delay]);\n\n return debouncedState;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { isServer } from 'tradera/utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation may not compatible with SSR where global properties are shared between server instances'\n );\n}\n\n(function ($) {\n if (!$) {\n return;\n }\n\n const jqueryTrigger = $.event.trigger;\n // trigger signature: function (event, data, elem, onlyHandlers)\n $.event.trigger = function (event, data, elem, onlyHandlers) {\n try {\n // Dispatch regular event, prefixed with 'jquery:'\n const eventPrefix = 'jquery:';\n const prefixedEventName = eventPrefix + event;\n const jsEvent = data\n ? new CustomEvent(prefixedEventName, { detail: data })\n : new CustomEvent(prefixedEventName);\n const elem2dispatchEvent = elem ? elem : window;\n elem2dispatchEvent.dispatchEvent(jsEvent);\n } catch (error) {\n return;\n }\n\n // Dispatch jquery event\n jqueryTrigger(event, data, elem, onlyHandlers);\n };\n})(window.jQuery);\n","import ReactDOM from 'react-dom/client';\n\nimport { logger } from 'packages/logger';\nimport { ProviderWithGlobalStore } from 'tradera/state/configure-store';\nimport { SiteHeader } from 'tradera/components/site-header/site-header';\nimport SiteFooter from 'tradera/components/site-footer/site-footer';\nimport { WithGrowthBook } from 'tradera/components/growth-book/growth-book';\n\nconst headerElement = document.querySelector('[data-site-header-slim]');\nconst footerElement = document.querySelector('[data-site-footer]');\n\nconst MainNavigation = () => {\n if (headerElement) {\n try {\n const root = ReactDOM.createRoot(headerElement);\n root.render(\n \n \n \n \n \n );\n } catch (e) {\n logger(e);\n }\n }\n\n if (footerElement) {\n try {\n const root = ReactDOM.createRoot(footerElement);\n root.render(\n \n \n \n );\n } catch (e) {\n logger(e);\n }\n }\n};\n\nexport { MainNavigation };\n","import $ from 'jquery';\nimport './utils/jquery-events';\nimport { MainNavigation } from 'tradera/legacy/static/containers/navigation/main-navigation';\n\nexport default async () => {\n window.$ = window.$ || $;\n MainNavigation();\n};\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const getUuid = () => uuidv4();\n\n// Export object for Sinon stubbing\nexport default {\n getUuid\n};\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const getUuid = () => uuidv4();\n\n// Export object for Sinon stubbing\nexport default {\n getUuid\n};\n","export const capitalize = (text: string) =>\n `${text[0].toUpperCase()}${text.slice(1)}`;\n\nexport const lowercaseFirstLetter = (string: string) =>\n string === undefined\n ? ''\n : string.charAt(0).toLowerCase() + string.slice(1);\n\nexport const uppercaseFirstLetter = (string: string) =>\n string === undefined\n ? ''\n : string.charAt(0).toUpperCase() + string.slice(1);\n\nexport const removeTags = (text: string) => text.replace(/(<([^>]+)>)/gi, '');\n\nconst removeAttributes = (html: string) =>\n html.replace(/<(\\w+).*?(\\s?\\/)?>/gi, '<$1$2>');\n\n/**\n * Removes most HTML tags from a string, but keeps some allowed tags, without their attributes.\n * Allowed tags are `em`, `b`, `p`, `strong`, and `i`.\n */\nexport const sanitizeHtml = (html: string) =>\n removeAttributes(html).replace(\n /<(?!\\/?(em|b|p|strong|i|br|del)(\\s?\\/)?>)[^>]+>/gi,\n ''\n );\n"],"names":["SettingsDropdown","forwardRef","_ref","ref","selected","options","label","labelComponent","name","onChange","subLabel","tooltip","customDropdownContent","size","className","dropdownTitle","_jsxs","SettingsRow","children","htmlFor","_jsx","DropdownMenu","DropdownMenuTrigger","asChild","id","Button","theme","linkReverted","iconRight","ArrowDownIcon","text","DropdownMenuContent","position","Text","font","map","option","DropdownMenuItemSelectable","value","onSelect","displayName","paymentInstance","DropInSelected","_ref2","paymentOption","onPaymentMethodRequestable","language","useCurrentLanguage","t","useTranslator","_useSelector","useSelector","selectInvoiceCheckout","invoiceId","totalCost","amountOwed","fetchParams","useMemo","_useFetchData","useFetchData","api","data","isLoading","isRejected","isResolved","retryFetch","useEffect","async","clientToken","initDropIn","dropIn","paymentProvider","PAYMENT_OPTIONS","APPLEPAY","GOOGLEPAY","updateConfiguration","variant","onClick","style","minHeight","LocalLoader","_objectSpread","authorization","container","locale","vaultManager","dataCollector","kount","card","vault","allowVaultCardOverride","vaultCard","getDropInOptions","dropin","create","callback","err","dropinInstance","isPaymentMethodRequestable","on","paymentMethodRequestable","VISA_MASTERCARD","threeDSecure","paypal","googlePay","applePay","paymentRequest","total","amount","toString","requiredBillingContactFields","googlePayVersion","merchantId","transactionInfo","totalPriceStatus","totalPrice","currencyCode","allowedPaymentMethods","type","parameters","billingAddressRequired","billingAddressParameters","format","BraintreeDropIn","paymentOptions","isAvailable","dispatch","useDispatch","preselectedPaymentOption","qs","window","location","search","ignoreQueryPrefix","setSelectedPayment","_Fragment","checked","handlePaymentSelected","PaymentMethodName","paymentMethod","PaymentMethodLogo","shipmentCheckoutId","selectShippingPayment","selectCheckoutSummary","PAYPAL","flow","currency","isUpdating","selectShippingCheckout","disabled","CONSTANTS","IS_DEV","process","LOCALE","EXTERNAL_USER_ID_PARAM","CUSTOMER_SERVICE_USER_ID","ERRORS","NOT_LOGGED_IN","MEMBER_BLOCKED","BLOCKED_BY_MEMBER","MEMBER_NOT_CONTACTABLE","AUTH_STATE","LOGGED_OUT","NOT_VERIFIED","LOGGED_IN","FIREBASE","CUSTOMER_SERVICE_ID","THREAD_STATE","ACTIVE","ACTIVE_LABEL","ENDED","ENDED_LABEL","MESSAGE_PERMITION_TYPE","ALLOWED","BLOCKED","SUSPENDED_STATE","NONE","PARTIAL","TOTAL","MESSAGE_TYPE","IMAGE","TEXT","CSTEXT","WON","PAID","SHIPPED","COUNTER_OFFER_CREATED","COUNTER_OFFER_ACCEPTED","COUNTER_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_BUYER","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER","COUNTER_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM","PURCHASE_OFFER_CREATED","PURCHASE_OFFER_ACCEPTED","PURCHASE_OFFER_INVALIDATED_DUE_TO_DECLINED_BY_SELLER","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_MARKED_AS_UNAVAILABLE","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_RESTARTED","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_BUY_IT_NOW","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_SOLD_THROUGH_OTHER_OFFER","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SELLER","PURCHASE_OFFER_INVALIDATED_DUE_TO_ITEM_CLOSED_BY_SYSTEM","CONVERSATION_STATE","READING","COMPOSE","SELECT_IMAGE","CONFIRM_ARCHIVE","REPORTING_USER_STATE","SENDING","BLOCKING_USER_STATE","ADDING_MESSAGE_STATE","SAVING","ERROR","THREAD_FILTERS","ALL","UNREAD","PURCHASE_OFFERS","REMOVED","THREAD_SORT_FIELDS","ITEM_TITLE","THREAD_SORT_ORDER","ASC","DESC","INIT_DATA","isLoggedIn","title","hasSearch","IMAGE_UPLOAD","ALLOWED_TYPES","MAX_UPLOAD_FILE_SIZE","LISTING_ITEM_STATUS","AllPurchaseOfferMessageTypes","AllCounterOfferMessageTypes","getCustomerServiceRecipient","userId","username","thumbnailUrl","TraderaCircleSVG","blocked","countryCodeIso2","suspended","getThreadId","memberId1","memberId2","listingId","Math","min","max","getThreadInfo","threadId","senderId","threadInfo","split","part","substring","length","_threadInfo","_slicedToArray","userMin","userMax","receiverId","getRecipient","thread","recipient","members","Object","keys","find","key","_thread$members$userI","suspendedState","messagePermission","getThreadInteractivity","userProfile","lockedAt","markedAsSpam","addMessageText","addMessageTextSeverity","isAddMessageAllowed","messageThrottledUntil","timestampToDate","Date","requireIdentityVerification","sortThreads","threads","sort","a","b","aValue","lastMessageAt","createdAt","bValue","TranslationPreferredMenuItem","useAppDispatch","automaticTranslationPreferred","useAppSelector","selectAutomaticTranslationPreferred","selectIsLoggedIn","ToggleSwitch","touchWebClient","post","isAutomaticTranslationPreferred","setAutomaticTranslationPreferred","LanguageSelect","inProfileMenu","toLocalizedUrl","useUrlLocalizer","_useQualtive","useQualtive","isQualtiveEnabled","openQualtiveModal","availableLanguages","selectAvailableLanguages","preferredLanguage","selectPreferredLanguage","languageCodeIso2","fluid","classNames","code","setPreferredLanguage","Flag","getCountryCodeForFlagFromLanguage","styles","CheckIcon","SURVEYS","ShippingCountrySelect","shippingCountry","selectShippingCountry","shippingCountryCodes","selectAvailableShippingCountryCodes","isLoadingAvailableShippingCountries","selectIsLoadingAvailableShippingCountries","showShippingCountries","selectHasLoadedAvailableShippingCountries","shippingCountries","mapCountryCodeToCountryKey","getAvailableShippingCountries","Load","ShippingCountrySelectDropdown","relative","selectedShippingCountryCodeIso2","updateShippingRegion","LocalizationMenu","showRegionSelection","_shippingCountries$fi","_ref$itemsBeforeScrol","itemsBeforeScrollCount","shippingCountryPlaceholder","_ref$style","_useState2","useState","setSearch","_useState4","isSearchEnabled","setIsSearchEnabled","includesSearch","v","toLowerCase","includes","filteredShippingCountries","filter","selectedShippingCountryName","x","listLength","listStyle","height","width","zIndex","overflowY","SearchInput","autoFocus","placeholder","autoComplete","e","target","onBlur","setTimeout","onClear","DropdownButton","icon","onMouseDown","preventDefault","SideMenu","_ref$fromLeft","fromLeft","show","onDismiss","_ref$allowFullScreen","allowFullScreen","_ref$width","TransitionGroup","component","mountOnEnter","EnterFade","in","Overlay","top","closeModalCallback","EnterFrom","from","RemoveScroll","forwardProps","sideMenu","sideMenuFromRight","maxWidth","HOVER_MENUS","WISHLIST","SELL","BUY","LOCALIZATION","CURRENCY","HOW_TRADERA_WORKS","HoverMenu","Component","constructor","arguments","state","hoverContainer","toggleShow","clearTimeout","this","toggleShowTimeoutId","setState","componentDidUpdate","prevProps","props","showMenu","render","_this$props","_this$props$className","noContainerPositioningStyling","hoverMenuContainer","hoverMenuContainerNoPositioning","onMouseLeave","hoverMenuArea","hoverMenuAreaContent","propTypes","LocalizationLink","mouseOver","mouseOut","hideRegionSelection","_ref$showIconAndTextI","showIconAndTextInsteadOfFlag","preferredLanguageCode","selectPreferredLanguageCode","showRegionSelectionAppState","selectShowRegionSelection","showLocalizationRegionPicker","selectShowLocalizationRegionPicker","countryCode","onMouseEnter","GtmService","trackAction","TranslateIcon","hoverMenuStyles","alignRight","useDebouncedState","delay","debouncedState","setDebouncedState","handler","isServer","Error","$","jqueryTrigger","event","trigger","elem","onlyHandlers","prefixedEventName","jsEvent","CustomEvent","detail","dispatchEvent","error","headerElement","document","querySelector","footerElement","MainNavigation","ReactDOM","ProviderWithGlobalStore","WithGrowthBook","SiteHeader","logger","SiteFooter","getUuid","uuidv4","capitalize","toUpperCase","slice","lowercaseFirstLetter","string","undefined","charAt","sanitizeHtml","html","replace","removeAttributes"],"sourceRoot":""}