{"version":3,"sources":["webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-validation-parser.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/notify.svg","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-item-display-confirmed.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/content-types.js","webpack:///./src/frontend/apps/tradera/components/start-page/analytics.js","webpack:///./src/frontend/state/views/checkout/api.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/tradera/logo.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel/index.js","webpack:///./src/frontend/components/push-notification-modal/push-notification-modal.jsx","webpack:///./src/frontend/components/push-notification-modal/push-splash-icon.svg","webpack:///./src/frontend/components/push-notification-modal/push-wishlist-icon.svg","webpack:///./src/frontend/components/push-notification-modal/push-selling-icon.svg","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-item-display.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-payment-summary.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/last-chance/last-chance.jsx","webpack:///./src/frontend/state/views/syi/actions/charity-actions.js","webpack:///./src/frontend/utils/map-currency-code-to-country-code.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/currency-select.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/simple-modal.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/image.svg","webpack:///./src/frontend/components/site-header/ongoing-auctions-link.jsx","webpack:///./src/frontend/hooks/use-is-loggedin.js","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image-modes.js","webpack:///./src/frontend/components/international-shipping-modal/international-shipping-modal.module.scss","webpack:///./src/frontend/components/international-shipping-modal/international-shipping-modal.jsx","webpack:///./src/frontend/components/modal-renderer/modal-renderer.jsx","webpack:///./src/frontend/state/categories/actions.js","webpack:///./src/frontend/state/categories/api.js","webpack:///./src/frontend/components/quick-view/quick-view-modal.jsx","webpack:///./src/frontend/components/item-card/generate-item-card-placeholders.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-shipping-display.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/helper.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search-category/search-category.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/search.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/search.analytics.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/check-fill.svg","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/translate-buyer-region-text.js","webpack:///./src/frontend/components/site-header/dropdown-menu-item-separator.jsx","webpack:///./src/frontend/hooks/use-breakpoint-mobile.js","webpack:///./src/frontend/hooks/use-on-mount.js","webpack:///./src/frontend/hooks/use-scroll-to-top-on-mount.jsx","webpack:///./src/frontend/components/messaging/get-messaging-url.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/shipping-country-select-dropdown.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/shipping-country-select.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/localization-menu.jsx","webpack:///./src/frontend/utils/format-time-left.js","webpack:///./src/frontend/apps/syi/script/app_react/services/navigation-service.js","webpack:///./src/frontend/hooks/use-ticker.js","webpack:///./src/frontend/hooks/use-countdown.js","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-separator.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item.jsx","webpack:///./src/frontend/components/errors/not-found-error.jsx","webpack:///./src/frontend/components/site-header/site-header.analytics.js","webpack:///./src/frontend/components/rating-stars/rating-utils.js","webpack:///./src/frontend/components/rating-stars/rating-stars.jsx","webpack:///./src/frontend/state/personalisation/actions.js","webpack:///./src/frontend/state/personalisation/api.js","webpack:///./src/frontend/hooks/use-is-feature-enabled.js","webpack:///./src/frontend/state/views/syi/actions/long-description-actions.js","webpack:///./node_modules/@tradera/blueprint/theme/icons/instagram.svg","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-footer.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/search-input.jsx","webpack:///./src/frontend/apps/tradera/app.jsx","webpack:///./src/frontend/components/transitions/transitions.jsx","webpack:///./src/frontend/components/form-controls/radio-switch.jsx","webpack:///./src/frontend/components/toasts/tradera-toast-container.jsx","webpack:///./node_modules/react-helmet/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/frontend/components/item-card/item-card-parts/on-display-badge.jsx","webpack:///./src/frontend/components/messaging/messaging-button.jsx","webpack:///./src/frontend/state/views/syi/actions/syi-actions.js","webpack:///./src/frontend/apps/tradera/routes.js","webpack:///./src/frontend/components/site-header/sell-menu.jsx","webpack:///./src/frontend/components/site-header/selling-link.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/start-page.module.scss","webpack:///./src/EbaySweden.TouchWeb/static/script/components/spinner/spinner.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-bottom-buttons.jsx","webpack:///./src/frontend/state/views/cart/api.js","webpack:///./src/frontend/state/views/cart/actions.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/index.js","webpack:///./src/frontend/hooks/use-qualtive.js","webpack:///./src/frontend/components/application-error-boundary/application-error-boundary.jsx","webpack:///./src/frontend/components/route-map-routes/use-loading.js","webpack:///./src/frontend/hooks/use-timeout.js","webpack:///./src/frontend/components/route-map-routes/route-map-routes.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/storage-service.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-seller-name.jsx","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./src/frontend/apps/tradera/components/discover/components/search-results/items-with-stiched-ads.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/quick-view.svg","webpack:///./src/frontend/components/item-card/item-card-parts/quick-view-button.jsx","webpack:///./src/frontend/components/atoms/button/button.jsx","webpack:///./src/frontend/state/views/syi/actions/attributes-actions.js","webpack:///./src/frontend/components/international-identification-modal/mit-id.jsx","webpack:///./src/frontend/components/site-header/search-button.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/highlight-word.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/suggestion-list-items.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/search-suggestion.jsx","webpack:///./src/frontend/components/portals/modal-portal.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/end-time-label.jsx","webpack:///./src/frontend/components/item-card/config.js","webpack:///./src/frontend/constants/surveys.js","webpack:///./src/frontend/components/alerts/gdpr/gdpr-modal.jsx","webpack:///./src/frontend/components/alerts/gdpr/gdpr-settings-modal.jsx","webpack:///./src/frontend/components/alerts/gdpr/gpdr-container.jsx","webpack:///./src/frontend/components/errors/no-items-error.jsx","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./src/frontend/components/site-header/hover-menu/constants.js","webpack:///./src/EbaySweden.TouchWeb/static/script/constants/strings.js","webpack:///./src/frontend/apps/my-tradera/app/data/shipping-providers.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./src/frontend/state/views/checkout/checkout-errors.js","webpack:///./src/frontend/components/site-subheader/site-subheader.jsx","webpack:///./src/frontend/state/views/syi/selectors/attribute-selectors.js","webpack:///./src/frontend/hooks/use-page-meta.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/fixed-price-label.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/price-label.jsx","webpack:///./src/frontend/components/shipping/shipping-provider-icon.jsx","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu.jsx","webpack:///./src/frontend/apps/syi/script/app_react/services/campaign-service.js","webpack:///./src/frontend/state/views/syi/actions/campaign-code-actions.js","webpack:///./src/frontend/components/breadcrumbs/breadcrumbs.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/wish-list-button.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-header.jsx","webpack:///./node_modules/react-lazyload/lib/index.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/recommendations/recommendation-loading-spinners.jsx","webpack:///./src/frontend/components/wait-for-consent-api-loaded/wait-for-consent-api-loaded.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item-expandable.jsx","webpack:///./src/frontend/helpers/get-current-page-helper.js","webpack:///./src/frontend/apps/tradera/index.js","webpack:///./src/frontend/apps/syi/script/app_react/utils/throttled-action.js","webpack:///./src/frontend/components/item-card/item-card-parts/buy-now-label.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/seller-rating.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/seller-link.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/shipping-label.jsx","webpack:///./src/frontend/components/item-card/item-list-card.jsx","webpack:///./src/frontend/apps/tradera/components/discover/components/search-results/ads/search-results-ads.jsx","webpack:///./src/frontend/components/site-header/watch-list-menu.jsx","webpack:///./src/frontend/components/site-header/wishlist-link.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-buttons-list.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/on-ready.js","webpack:///./src/frontend/state/views/syi/actions/category-actions.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/overlay.jsx","webpack:///./src/frontend/state/views/syi/actions/payment-actions.js","webpack:///./src/frontend/utils/map-country-code-to-country-key.js","webpack:///./src/frontend/components/site-header/buy-menu.jsx","webpack:///./src/frontend/components/site-header/buying-link.jsx","webpack:///./src/frontend/components/recommendations/recommendations-requests.js","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/frontend/state/views/checkout/utils.js","webpack:///./src/frontend/components/item-card/item-card-parts/disacount-price-label.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/ads/ad-slot-utilities.js","webpack:///./src/frontend/helpers/category-icon-helper.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-top-description.jsx","webpack:///./src/frontend/components/international-identification-modal/document-scanning.jsx","webpack:///./src/frontend/components/international-identification-modal/mit-id-logo.jsx","webpack:///./src/frontend/components/international-identification-modal/international-identification-modal.module.scss","webpack:///./src/frontend/components/international-identification-modal/international-identification-modal.jsx","webpack:///./src/frontend/components/site-header/localization-region-picker.jsx","webpack:///./src/frontend/components/site-header/localization-link.jsx","webpack:///./node_modules/react-lazyload/lib/utils/debounce.js","webpack:///./src/frontend/components/site-footer/footer-localization-link.module.scss","webpack:///./src/frontend/components/site-footer/footer-localization-link.jsx","webpack:///./src/frontend/utils/consent-service.js","webpack:///./src/frontend/components/site-footer/footer-links.jsx","webpack:///./src/frontend/components/site-footer/footer-partners.jsx","webpack:///./src/frontend/components/site-footer/site-footer.jsx","webpack:///./src/frontend/apps/tradera/components/vip/api/vip-api.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-body.jsx","webpack:///./src/frontend/hooks/use-interval.js","webpack:///./src/frontend/apps/syi/script/app_react/services/scribe.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-container.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-sellers-empty.svg","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-sellers.module.scss","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-sellers-fallback.jsx","webpack:///./src/frontend/components/ads/ad.jsx","webpack:///./src/frontend/utils/register-live-updates.js","webpack:///./src/frontend/utils/map-language-code-to-language-key.js","webpack:///./src/frontend/apps/syi/script/app_react/services/shipping-calculator-service.js","webpack:///./src/frontend/apps/syi/script/app_react/services/shipping-provider-service.js","webpack:///./src/frontend/state/views/syi/actions/helpers/postnord-parcel-productid-converter-helper.js","webpack:///./src/frontend/state/views/syi/actions/shipping-actions.js","webpack:///./src/frontend/components/carousels/arrows.jsx","webpack:///./src/frontend/components/carousels/basic/basic.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/image-gallery-modal/image-gallery-modal.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel/view-item-image.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel/view-item-carousel-zoom.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/language-select.jsx","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-item.jsx","webpack:///./src/frontend/components/messaging/messaging-modal.jsx","webpack:///./src/frontend/state/views/syi/actions/error-actions.js","webpack:///./src/frontend/apps/syi/script/app_react/services/native-app-service.js","webpack:///./src/frontend/state/views/syi/actions/image-actions.js","webpack:///./src/frontend/components/flag/flag.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/background-image-loader.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image.jsx","webpack:///./src/frontend/components/site-header/how-to-link.jsx","webpack:///./src/frontend/hooks/use-menu-height-fix.js","webpack:///./src/frontend/components/site-header/currency-link.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/plus.svg","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-button.jsx","webpack:///./src/frontend/components/ads/localized-dfp-ad.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/environment.js","webpack:///./src/frontend/components/recommendations/recommendations.jsx","webpack:///./src/frontend/components/recommendations/index.js","webpack:///./src/frontend/state/views/syi/actions/price-actions.js","webpack:///./src/frontend/components/item-card/item-card-parts/animated-price-label.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/leading-badge.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/overbidden-badge.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/shipping-badge.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/seller-alias-badge.jsx","webpack:///./src/frontend/components/item-card/item-card.jsx","webpack:///./src/frontend/hooks/use-is-mobile.js","webpack:///./src/frontend/components/profile-menu/expandable-localization-menu-item.jsx","webpack:///./src/frontend/components/profile-menu/expandable-currency-menu-item.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu-alerts.jsx","webpack:///./src/frontend/components/profile/profile-card.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu-content.jsx","webpack:///./src/frontend/components/profile-menu/sign-in-menu-content.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu.jsx","webpack:///./src/frontend/components/site-header/profile.jsx","webpack:///./src/frontend/components/site-header/profile-link.jsx","webpack:///./src/frontend/components/site-header/profile-menu-link.jsx","webpack:///./src/frontend/hooks/use-is-desktop.js","webpack:///./src/frontend/apps/syi/script/app_react/services/session-service.js","webpack:///./src/frontend/apps/syi/script/app_react/services/publish-service.js","webpack:///./src/frontend/state/views/syi/actions/helpers/server-validation-error-helper.js","webpack:///./src/frontend/state/views/syi/actions/draft-actions.js","webpack:///./node_modules/react-lazyload/lib/utils/event.js","webpack:///./src/frontend/utils/script.js","webpack:///./src/frontend/components/content-switch/content-switch.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/bids-label.jsx","webpack:///./src/frontend/components/page-head/page-head.jsx","webpack:///./src/frontend/helpers/filter-categories-helper.js","webpack:///./src/frontend/apps/syi/script/app_react/services/google-tagmanager.js","webpack:///./src/frontend/helpers/shipping-display-text.js","webpack:///./src/frontend/components/site-header/dropdown-menu-burger.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item-button.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-content.jsx","webpack:///./src/frontend/components/site-header/seo-links.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/settings-button.jsx","webpack:///./src/frontend/apps/syi/script/app_react/services/image-upload-service.js","webpack:///./node_modules/react-lazyload/lib/utils/throttle.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./src/frontend/state/views/syi/actions/fees-actions.js","webpack:///./src/frontend/components/application-error-boundary/index.js","webpack:///./src/frontend/services/category-service.js","webpack:///./src/frontend/components/site-header/site-header.jsx","webpack:///./node_modules/react-lazyload/lib/utils/scrollParent.js","webpack:///./src/frontend/apps/syi/script/app_react/history.js","webpack:///./src/frontend/components/wacko-bidder/card-verification-modal.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/discount-badge.jsx","webpack:///./src/frontend/components/site-header/sign-up-link.jsx","webpack:///./src/frontend/state/views/start-page/api.js","webpack:///./src/frontend/state/views/start-page/actions.js","webpack:///./src/frontend/state/views/start-page/selectors.js","webpack:///./src/frontend/apps/tradera/components/start-page/hero/start-page-hero-banner.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/image-sizes.js","webpack:///./node_modules/react-adaptive-hooks/dist/index.module.js","webpack:///./src/frontend/apps/tradera/components/start-page/media/media-item.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/tag.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/tags.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/hot.svg","webpack:///./src/frontend/apps/tradera/components/start-page/trending/trending-searches-tags.jsx","webpack:///./src/frontend/hooks/use-recent-searches-updated.js","webpack:///./src/frontend/apps/tradera/components/start-page/recent-searches/recent-searches-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/hero/start-page-hero-trustmark.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/hero/start-page-hero.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/carousel/carousel-item.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/carousel/carousel.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/instagram-feed/instagram-feed.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/popular-categories/popular-categories.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/recently-viewed/recently-viewed.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/picks-for-you/picks-for-you.jsx","webpack:///./src/frontend/hooks/use-split-test-group.js","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-seller-card.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-seller-cards-grid.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/seller-suggestions.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/favourite-sellers/favourite-sellers.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/wish-list/wish-list-empty.svg","webpack:///./src/frontend/apps/tradera/components/start-page/wish-list/wish-list-info-card.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/wish-list/wish-list.module.scss","webpack:///./src/frontend/apps/tradera/components/start-page/wish-list/wish-list.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/page-content.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/image-tag.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/image-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/trending/trending-brands-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-brands-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-searches-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-tags.jsx","webpack:///./src/frontend/apps/tradera/pages/start-page.jsx","webpack:///./src/frontend/apps/tradera/pages/cart-page.jsx","webpack:///./src/frontend/components/page-meta/page-meta.jsx","webpack:///./src/frontend/apps/tradera/routes-map.jsx","webpack:///./src/frontend/state/views/syi/actions/short-description-actions.js","webpack:///./src/frontend/state/views/syi/selectors/category-selectors.js","webpack:///./src/frontend/apps/syi/script/app_react/services/event-broadcaster.js","webpack:///./src/frontend/components/errors/error-container.jsx","webpack:///./src/frontend/components/site-header/cart-link.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/new-today-label.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/suggestions-api.js","webpack:///./src/frontend/components/errors/general-error.jsx","webpack:///./src/frontend/components/item-card/hooks.js"],"names":["binValidationParser","error","validationTitle","validationBody","BIN_VALIDATION_RESULTS","ITEM_NOT_FOUND","BIDDER_IS_BLOCKED","BUYING_OWN_ITEM","ONLY_EU_BUYERS_ACCEPTED","ONLY_NORDIC_BUYERS_ACCEPTED","ONLY_SWEDISH_BUYERS_ACCEPTED","USER_IS_SUSPENDED","ITEM_HAS_ENDED","PURCHASE_DID_NOT_SUCCEED","ITEM_ALREADY_PURCHASED_BY_OTHER_USER","_extends","target","i","arguments","length","source","key","Object","prototype","hasOwnProperty","call","apply","this","styles","props","React","createElement","viewBox","xmlns","clipRule","d","fillRule","ItemDisplayConfirmed","itemImage","itemTitle","formattedPrice","itemUrl","className","height","src","alt","href","BIN_FORM_STATES","CenteredIcon","children","Separator","style","BigSeparator","CloseButton","action","text","type","onClick","ErrorFeedback","itemMainImage","closeModal","t","useTranslator","titleKey","descriptions","isError","classes","med","BinModal","onClose","preferredCurrency","toLocalizedUrl","useUrlLocalizer","dispatch","useDispatch","useState","currentFormState","setCurrentFormState","undefined","setError","transactionId","setTransactionId","language","useCurrentLanguage","itemDetails","useSelector","state","views","viewItem","seller","title","itemId","shippingOptions","fixedPrice","formatPrice","buyerCountryCode","shippingRegion","shippingCountry","countryCodeIso2","onContinue","useCallback","analytics","window","location","onConfirm","purchaseBin","googleAnalyticsData","then","data","catch","e","response","responseStatus","errorCode","fetchItemAndBidInfo","BID_VALIDATION_RESULTS","MAX_PLACED_BIDS_LIMIT","BID_AMOUNT_LIMIT","onCardVerified","dismissOnOverlayClick","onDismiss","mobileFullscreen","memberId","alias","cleanedAlias","hasBackground","isCompany","hasShop","unitPrice","isFirstItem","quantity","totalPrice","leftButton","rightButton","HEADER","LAST_CHANCE","PICKS_FOR_YOU","POPULAR_CATEGORIES","CAROUSEL","RECENTLY_VIEWED","INSTAGRAM_FEED","WISH_LIST","FAVOURITE_SELLERS","containerTypes","trackContainerClick","containerType","trackingId","Analytics","trackEvent","category","label","setErrorMessage","message","Error","CHECKOUT_ERRORS","GENERIC","getCheckout","purchaseOrderId","a","axiosWithTokenRefresh","get","ENDPOINTS","ORDER_CHECKOUT_VIEW","withCredentials","finalizeResponse","handleError","getPaymentOptions","selectedShippingId","ORDER_CHECKOUT_PAYMENT_OPTIONS","params","initializePayment","formData","post","ORDER_CHECKOUT_INIT_PAYMENT","axiosConfigs","authenticated","getPaymentStatus","paymentAttemptId","ORDER_CHECKOUT_PAYMENT_STATUS","completePayment","ORDER_CHECKOUT_COMPLETE_PAYMENT","ORDER_PURCHASE_BIN","getBraintreeToken","paymentOption","ORDER_CHECKOUT_BRAINTREE","paymentMethod","getExternalAuthData","ORDER_CHECKOUT_AUTH_DATA","sendSwishSms","requestCombinedShippingPrice","ORDER_CHECKOUT_REQUEST_COMBINED_PRICE","setShippingInfo","ORDER_CHECKOUT_SET_SHIPPING_INFO","cancelPayment","ORDER_CHECKOUT_CANCEL_PAYMENT","TraderaLogo","width","otherProps","role","id","propTypes","defaultProps","memo","PushNotificationModal","modalType","gaLabel","description","tagGroups","trackGa","GtmService","trackAction","handleAccept","pushNotificationActions","handleReject","icon","maxWidth","dangerouslySetInnerHTML","__html","ItemQuantitySelector","quantityInShop","onQuantityChange","inputMode","setInputMode","onChange","event","value","isNaN","Math","min","defaultValue","Array","max","map","_","count","autoComplete","ItemDisplay","isUnavailable","renderPrice","amountInSek","tagName","PaymentSummary","isSellpyCheckout","showShippingSelectionRow","price","LastChanceNewConnected","connect","webLiveUrl","initData","items","cache","isLoggedIn","member","multiCurrency","addItems","itemActions","add","openQuickView","itemIds","uiActions","openedFrom","toggleWishlist","wishlist","updateItem","payload","inSPA","isStartPageLiveUpdatesEnabled","useIsFeatureEnabled","loading","setState","useEffect","axios","CancelToken","cancel","cancelToken","token","item","API_ERRORS","CANCELLED","ABORTED","NETWORK","logger","registerLiveUpdates","url","onConnect","socket","emit","onClientEvent","Type","Event","AuctionId","BidAmount","totalBids","NumberOfBids","itemCount","useIsMobile","handleQuickView","displayItems","generateItemCardPlaceholders","itemsMap","maxItemsCount","mappedItems","filter","slice","resolveItems","animatePriceLabel","lazy","lazyLoadSettings","onAddToWishlist","onQuickView","onRemoveFromWishlist","ready","useLink","compose","withUrlLocalizer","withTranslator","hot","module","setCharityFromDraftAndFetchInfo","charityFromDraft","setCharityFromDraft","setCharityAndFetchInfo","charityId","resetCharityAndShippingInfo","shippingActions","resetSelected","resetCharity","setCharityId","fetchCharityInfo","fetchCharityShippingInfo","getCharity","setCharityInfo","status","getState","getCharityShippingInfo","environment","featureSwitches","setCharityShippingInfo","freeShippingPaidByProviderName","providerName","forceFreeShipping","marketingApiClient","notAuthenticated","cancelTokenId","mapCurrencyCodeToCountryCode","currencyCode","countryCode","sek","usd","jpy","gbp","nok","eur","dkk","toLowerCase","PlainCurrencySelect","currencies","onCurrencySelected","onBlur","inProfileMenu","code","shortName","longName","CurrencySelect","selectCurrencies","selectPreferredCurrency","ownProps","setPreferredCurrency","SimpleModal","classNameBody","closeModalCallback","styleBody","closeOnEscape","keyCode","preventDefault","addEventListener","removeEventListener","allowPinchZoom","forwardProps","OngoingAuctionsLink","rel","useIsLoggedIn","ITEM_CARD_IMAGE_MODES","SQUARE","NATURAL","Modal","header","body","internationalShippingModalContainer","internationalShippingModalHeader","internationalShippingModalBody","getMessagingCell","ownItem","buyerId","sellerId","getProviderIcon","provider","iconClass","providerImageMap","DHL","Bussgods","Posten","PostNordParcel","PostNordStamp","Schenker","SchenkerPrivpak","Alternative","getProviderCell","removeDuplicateOwnCountryRowIfOnlyRow","ownShippingCountryCode","rows","toCountryCodeIso2","ShippingRow","row","providers","isOwnRow","messagingLink","scope","country","internationalShippingModalBodyCountry","getValueCell","mapDispatchToProps","internationalShipping","shippingCountryCode","selectShippingCountry","sortedRows","mapCountryCodeToCountryKey","b","ownCountryRow","find","buyerRegionText","translateBuyerRegionText","allowedBuyerRegion","imageUrl","fromCountryCodeIso2","shippingOptionCountry","internationalShippingModalTable","weights","weight","ui","modals","INTERNATIONAL_SHIPPING_MODAL_ID","internationalIdentificationModalId","currentModal","requestCategoryList","actionTypes","REQUEST_CATEGORY_LIST","receiveCategoryList","RECEIVE_CATEGORY_LIST","receiveTopLevelCategories","RECEIVE_TOP_LEVEL_CATEGORIES","handleCategoryListError","HANDLE_CATEGORY_LIST_ERROR","handleTopLevelCategoriesError","HANDLE_TOP_LEVEL_CATEGORIES_ERROR","fetchCategoryList","version","touchWebClient","results","VERSION_MISMATCH","reload","fetchTopLevelCategories","QuickView","open","currentItem","existsInWishList","imageFormats","shortDescription","handleModalDismiss","closeQuickView","disableNext","indexOf","disablePrev","mediaQuery","minWidth","onKeyDown","prevItem","nextItem","top","right","zIndex","images","pageType","fixedHeight","carouselStyle","bottom","left","quickView","wishListItemIds","includes","index","ShippingDisplay","shippingPriceRange","isFromAndToCountryDifferent","some","displayOptions","option","shippingOptionsPart","shippingOption","displayText","replace","shouldShowFromCountry","isSwedenCountryCodeOrUndefined","cost","minPrice","maxPrice","specialSearchTerms","stammisglaset","SearchCategory","handleCategoryChange","selectOptions","selectedCategoryId","chosenCategory","isDefaultSelected","name","KEYCODE","Search","allCategories","categoryPath","inputClassName","placeholderText","discoverCurrentCategoryId","discoverSearchTerm","queryParams","history","searchSuggestionsElementRef","createRef","searchInputRef","currentCategoryId","setCurrentCategoryId","isSearchInputFocused","setIsSearchInputFocused","searchTerm","setSearchTerm","suggestions","setSuggestions","selectedSuggestionIndex","setSelectedSuggestionIndex","loadSuggestionsDebounce","debounce","callback","getSuggestionsWrapper","enableSuggestionsFromBackend","getSuggestions","limitPrevious","enablePrevious","enableSuggestions","loadSearchSuggestions","newSearchTerm","changeWindowLocation","newQuery","trimmedSearchTerm","newSearchUrl","specialTermUrl","q","filteredQueryParams","categoryId","paging","spage","isQueryReformulation","SEARCH","qs","stringify","addQueryPrefix","currentCategory","getNewSearchUrl","addRecentSearch","current","blur","push","allCategoriesOption","isTopLevel","selected","optionsList","selectedOption","getCategoryDropdownConfig","selectedCategory","categorySelectOptions","categoriesElement","selectBox","discoverActions","selectedOptions","onClearSearchInput","onFocus","onFormSubmit","onUserInputChange","evt","onUserKeyUp","which","querySelectorAll","click","incrementBy","newIndex","currentIndex","totalElements","getNextIndex","handleUpDownArrowKeys","suggestionsElement","visible","onChangeSearchTerm","onPreviousSearchRemoved","selectedIndex","ConnectedSearch","page","PAGE_TYPES","SEARCH_RESULT_PAGE","CATEGORY_RESULT_PAGE","discover","categories","SearchInSpa","withRouter","SearchOutsideSpa","MenuItemSeparator","useBreakpointMobile","isMobile","innerWidth","active","setActive","useLayoutEffect","handleResize","useOnMount","fn","useScrollToTopOnMount","scrollTo","getMessagingUrl","origin","ShippingCountrySelectDropdown","shippingCountries","selectedShippingCountry","onSelect","searchFocus","setSearchFocus","search","setSearch","isSearchEnabled","setIsSearchEnabled","includesSearch","v","filteredShippingCountries","listStyle","Row","placeholder","setTimeout","onMouseDown","itemSize","PlainShippingCountrySelect","getAvailableShippingCountries","updateShippingRegion","showShippingCountries","isLoadingAvailableShippingCountries","onShippingCountrySelected","ShippingCountrySelect","selectAvailableShippingCountries","selectIsLoadingAvailableShippingCountries","selectHasLoadedAvailableShippingCountries","LocalizationMenu","showRegionSelection","onLanguageSelected","HOUR_IN_SECONDS","formatVipTimeLeft","secondsLeft","formattedTimeLeft","getTimeSpanParts","endUnit","TIME_SPAN_UNITS","HOURS","days","hours","hoursOrEmpty","startUnit","MINUTES","minutes","minutesOrEmpty","SECONDS","seconds","formatItemCardTimeLeft","endDate","serverDate","Number","isInteger","formatEndDate","floor","goToStart","toLocalizedRiotUrl","goToSummary","draftId","goToPublished","setDraftUrlWithoutReload","replaceState","document","intervals","useTicker","period","cleanup","callbacks","cb","clearInterval","intervalId","setInterval","forEach","useCountdown","endDateStr","formatTimeLeft","warningLimit","isCountdownDone","setIsCountdownDone","timeLeftText","setTimeLeftText","isCountdownEnabled","setIsCountdownEnabled","isTimeLeftBelowWarningLimit","setIsTimeLeftBelowWarningLimit","previousAdjustment","useRef","useMemo","Date","updateTimeLeft","isInitialCall","getServerDate","adjustedSecondsLeftWithFractions","secondsLeftWithFractions","round","adjustment","HoverMenuItemSeparator","MenuItem","alerts","bold","border","follow","gaAttributes","link","notify","notificationDot","containerClass","MenuItemContent","backgroundImage","NotificationDot","NotFoundError","getMenuGaAttributes","rating","toFixed","RatingStars","memberAlias","dark","displayRating","utils","Stars","setPersonalisedBrandsAction","setPersonalisedSearchesAction","setPersonalisedBrandsStatusAction","setPersonalisedSearchesStatusAction","recentSearchesIsUpdatedAction","lastUpdated","now","fetchPersonalisedBrandsIfNeeded","personalisation","brands","PERSONALISED_SUGGESTIONS","headers","defaultJsonRequestHeaders","logError","brandsResult","newStatus","fetchPersonalisedSearchesIfNeeded","searches","searchesResult","addRecentSearchText","removeRecentSearchText","removeRecentSearch","featureName","setLongDescription","longDescription","draftActions","updateDraftCanBeResumed","setLongDescriptionFromDraft","reset","ModalFooter","SearchInput","placeHolderTranslation","categoryName","showClearButton","method","onSubmit","maxLength","ref","headerElement","querySelector","BasicApp","fallback","cartItemCount","getAttribute","cartSum","cartItems","Expand","CSSTransition","timeout","classNames","EnterFrom","from","unmountOnExit","EnterFade","RadioSwitch","checked","handleOnChange","optionClasses","options","getOptionClasses","flexGrow","htmlFor","classMap","size","noclip","join","transition","cssTransition","enter","exit","hideProgressBar","theme","closeOnClick","draggablePercent","autoClose","pauseOnFocusLoss","info","success","warning","closeButton","closeToast","marginTop","TraderaToastContainer","exports","OnDisplayBadge","MessagingButton","Component","buttonVisible","participating","openMessagingModal","handleLogin","signIn","redirectUrl","componentDidMount","checkUserMessagingParticipation","err","render","mode","getMessagingThreadLink","traderaUserId","singleThread","openForm","getMessagingPageLink","pathname","BUTTON_LABELS","ask_seller","contact_seller","contact_buyer","disableButton","disabled","verticalAlign","store","globalStore","setIsPropertyEditMode","isPropertyEditMode","setCreationType","creationType","showAllErrors","hideAllErrors","setIsEditOfPublishedItem","isEditOfPublishedItem","resetPublishState","setCategoryRestriction","restriction","updateItemConditionRestrictionForCategory","toggleModal","modalId","showModal","modalData","hideModal","enableAutoSave","disableAutoSave","traderaRoutes","startPage","path","OPTIONAL_LANG","START_PAGE","strict","exact","viewItemPage","VIEW_ITEM_PAGE","mustLoadDataBeforePageTracking","traderaShopPage","TRADERA_SHOP_PAGE","causesInfoPage","DEFAULT","causesPage","CUSTOM_RESULT_PAGE","causePage","upiPage","inrPage","brandPage","BRAND_PAGE","brandListPage","BRAND_LIST_PAGE","campaignPage","categoryListPage","CATEGORY_LIST","checkoutConfirmationPage","checkoutPage","cartPage","searchResultPage","favouriteSellersPage","FAVOURITE_SELLERS_PAGE","landing_GantXTradera","landing_StadiumXTradera","liveShoppingSignUpPage","LIVE_SHOPPING","liveShoppingDetailsPage","liveShoppingListPage","profilePage","PROFILE_PAGE","recommendationsPage","ENDLESS_RECOMMENDATIONS_PAGE","reportItemPage","REPORT_ITEM_PAGE","verifyPage","CombinedShippingInfoPage","ShippingInfoPage","swishApp2AppCallbackPage","ValuationPage","categoryResultPage","messagingiframe","legacyCategoryResultPage","notFoundPage","ERROR_PAGE","getGaAttributes","SellMenu","showMenu","isTraderaShopEnabled","SellingLink","mouseOver","mouseOut","transparentHeader","selling","onMouseEnter","HOVER_MENUS","SELL","onMouseLeave","JsxSpinner","spinjsConfig","radius","lines","color","config","spinner","Spinner","spin","spinnerEl","componentWillUnmount","stop","el","BottomButtons","getCartOverview","cartId","CART_OVERVIEW_VIEW","addItemToCart","CART_ADD_ITEM","removeItemsFromCart","CART_REMOVE_ITEMS","setCartItemQuantity","CART_SET_ITEM_QUANTITY","confirmCartPurchase","shopItems","ORDER_PURCHASE_SHOP_ITEMS","startOffPlatformCheckout","START_OFF_PLATFORM_CHECKOUT","createUncommittedPurchaseOrder","sellerMemberId","purchaseOrderItems","ORDER_CHECKOUT_CREATE_UNCOMMITTED_PURCHASE_ORDER","updateCartSummary","CART_UPDATE_SUMMARY","fetchCartData","setFetching","api","checkoutData","setCartData","onSuccess","addItemResult","date","setMonth","getMonth","cookieUtil","createCookie","CART_ID","preorderId","confirmData","removeFromCartWithoutReload","transactionIds","getUuid","fill","itemPrice","expectedItemPrice","LOCALES","sv","en","da","de","mapLocale","languageCodeIso2","openQualtiveModal","translate","survey","surveyOptions","darkMode","qualtive","loadScript","present","useQualtive","customAttributes","isQualtiveFeatureToggleEnabled","preferred","isQualtiveEnabled","GdprSettings","isFunctionalEnabled","locale","user","withQualtive","WrappedComponent","WithQualtive","displayName","ApplicationErrorBoundary","componentDidCatch","capture","onError","logDebug","isDev","console","log","logWarning","useLoading","routeMap","delay","dependencies","savedCallback","currentPage","setCurrentPage","setStatus","navigationKeyRef","navigationKey","setNavigationKey","useStore","useLocation","useHistory","isLoading","isLoaded","setLoading","oldStatus","setLoaded","onLoaded","googleTagManagerService","trackPageView","onNavigate","getCurrentPageFromRoute","newSpaPage","previousPage","listen","loadWarningTimeout","clearTimeout","RouteMapRoutes","route","loadStatus","ResultSet","constructor","result","_result","orderByTimestamp","bind","orderByValue","orderByExpire","_orderBy","orderProp","StorageService","namespace","datastore","localStore","getDataSafe","getItem","setItem","remove","encodedKey","encodeURI","purge","expires","getTime","set","timestamp","removeExpired","prop","fetch","addRow","propValue","decodeURI","flush","clearByPrefix","SellerName","badgeText","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","keys","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","assign","objectWithoutProperties","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","str","encode","String","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","isArray","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","concat","getTagsFromPropsList","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","currentTime","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","tags","headElement","head","tagNodes","indexToDelete","newElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","toString","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","Children","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","object","oneOfType","arrayOf","node","defaultTitle","bool","func","titleTemplate","peek","rewind","mappedState","renderStatic","ComponentsWithStitchAds","adsEnabled","components","itemLayout","pageIndex","siteLayout","skipTopAd","mobileAdIndex","tabletAdIndex","desktopAdIndex","currentBreakpoint","useBreakpoint","adFrequency","BREAKPOINTS","XL","getAdFrequency","entries","component","autoscale","ItemsWithStitchedAds","handleAddToWishlist","handleQuickViewClick","handleRemoveFromWishlist","handleOpenItemSettings","handleItemAttributesForFilterClick","quickViewEnabled","isShopOwnedByCurrentMember","ItemCardComponent","ItemListCard","ItemCard","imageMode","onAttributeButtonClick","onSettings","QuickViewButton","iconClassName","Button","unbutton","wide","translucent","outline","branded","fluid","iconHidden","iconFixed","toggle","toggleActive","hoverColor","input","nowrap","allClasses","hover","transparent","hiddenIcon","fixedIcon","buttonClasses","Boolean","onBtnClick","suggestionsThrottle","ThrottledAction","imageToColorsThrottle","INPUT_TYPE_MAP","Color","Dropdown","transformServerOption","serverOption","sortOrder","isActive","warningLabel","transformServerAttribute","backingField","possibleValues","inputType","isMultiSelect","maxNumberOfValues","minNumberOfValues","numberOfValuesSelected","shouldTranslateValues","preserveOptionsOrder","setAttributesFromDraft","draft","attributeValues","resetSelectedAttributes","fetchForCategory","defaultClient","SELLING_ATTRIBUTES","attributeDefinitions","updateCategoryAttributesOptionsStatuses","campaignCodeActions","validateCampaignCode","updateAttribute","attributeId","optionValue","activate","onUpdated","selectCategoryAttributes","resetAttribute","throttledFetchCategoryAttributeSuggestions","execute","fetchCategoryAttributeSuggestions","throttledFetchImageAttributeSuggestions","draftImageIds","fetchImageAttributeSuggestions","resetImageAttributesSuggestions","query","paramKeyPart","SELLING_DRAFT_IMAGE_COLORS","colors","colorValues","cv","suggestedAttributes","values","splitTestGroup","splitTestGroups","splitTestEnabled","extractorType","getAttributeSuggestionExtractor","SELLING_SUGGEST_ATTRIBUTES","termAttributeValues","transformServerAttributeSuggestion","suggestionsExtractorType","splitTest","attributeSuggestion","STATE","handleMitIdQueryParam","publishAction","errorAction","identified","parse","ignoreQueryPrefix","memberIdentificationClient","command","errors","MitId","onVerifyCancel","purpose","MitIdDesktop","onVerifyComplete","setIsLoading","verifyingState","setVerifyingState","currentTimeoutId","windowHeight","innerHeight","windowWidth","screenY","screenX","mitIdWindow","resolve","reject","closed","userClosedWindow","isCompleted","close","poll","i18nKey","SearchButton","showSearch","HighlightWord","prev","fixFlexHeightInIpadMini2Style","flexBasis","PreviousSearchesListItem","changeSearchTerm","isSelected","toSearchString","SearchesSuggestionsListItem","ShopsSuggestionsListItem","suggestionUrl","urlName","CharitiesSuggestionsListItem","slug","CampaignSuggestionsListItem","campaignId","headline","AdvancedSearchListItem","SellerSearchListItem","searchUrl","SearchSuggestion","entry","componentProps","JSON","ModalPortal","super","notificationPortalRoot","getElementById","ReactDOM","createPortal","EndTimeLabel","EndTimeLabelWithCountDown","EndTimeLabelEnded","formatStaticEndTime","offset","once","SURVEYS","general","supportURL","paynova","textKey","cardVerification","bankId","MYT_PAGE_NAMES","BuyerActiveItems","BuyerPurchases","BuyerItemsLost","SellerActive","SellerSold","SellerUnsold","valuationPage","syiDraftPage","combinedShipping","payouts","translationImprovements","GdprModal","openGdprSettings","acceptAndHide","GdprSettingsModal","saveHandler","gdprSettings","performance","functional","marketing","l","save","tabIndex","autoFocus","handleChange","visibleModal","gdpr","modalOpen","visibleSettings","settingsOpen","closeGdprModal","openSettings","closeSettings","closeGdprSettings","quantcastConsent","eventLabel","CookieUtil","GDPR_CONSENT_ALERT_DISMISSED","dayjs","toDate","hitCallback","hasCookie","GDPR_CONSENT_COOKIE","isPerformanceEnabled","isMarketingEnabled","NoItemsError","ex","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","PureComponent","getDisplayName","WISHLIST","BUY","LOCALIZATION","CURRENCY","INVOICE_UNPAID","INVOICE_UNPAID_DESCRIPTION","INVOICE_OVERDUE","INVOICE_OVERDUE_DESCRIPTION","BANK_ACCOUNT_MISSING","BANK_ACCOUNT_MISSING_DESCRIPTION","PAYOUT_FAILED","PAYOUT_FAILED_DESCRIPTION","PAYMENT_READY_BANK_ACCOUNT_MISSING","PAYMENT_READY_BANK_ACCOUNT_MISSING_DESCRIPTION","SWISH_MISSING","SWISH_MISSING_DESCRIPTION","ADD_SWISH","NO_THANKS_SWISH","I_UNDERSTAND","IFRAME_NOT_SUPPORTED","COOKIES","DESC","READ_MORE","WELCOME_TO_TRADERA","GET_STARTED_BUYING","GET_STARTED_SELLING","VIEW_MORE_VIDEOS","DISCOVER","FILTERS","ALL_CATEGORIES","BRANDS","CONDITION","ITEM_TYPE","PRICE","SELLER_TYPE","COUNTY","ITEM_STATUS","SORTING","CLEAR","DEFAULT_SITE_NAME","DEFAULT_DESCRIPTION","shippingProviders","SHIPPING_OPTIONS","SCHENKER","logoImgUrl","POSTNORD","POSTNORD_PARCEL","POSTNORD_STAMP","BUSSGODS","BRING_DENMARK","ALTERNATIVE","TAKE_AWAY","TAKE_AWAY_ONLY","NOT_SPECIFIED","mapInstance","FEDEX","UPS","shippingProvidersMap","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","number","symbol","any","element","elementType","instanceOf","objectOf","oneOf","shape","checkPropTypes","PropTypes","BANK_ID_CANCEL","DECLINED","DECLINED_PAYNOVA","PERSONAL_ID_INVALID","EMAIL_ADDRESS_INVALID","NotSpecifiedShippingOption","NO_PAYMENT_METHOD","CHECKOUT_ERROR_STRINGS","getCheckoutErrorMessage","SiteSubheader","responsiveClassNames","selectSyiAttributes","syi","categoryAttributes","selectSuggestedAttributes","usePageMeta","customPageMetaData","setMetaTitle","pageMetaData","metaRobots","metaTitle","canonicalLink","pageActions","setPageMeta","FixedPriceLabel","PriceLabel","TagName","hasDiscount","currencyDisplay","ShippingProviderIcon","imgClass","HoverMenu","show","hoverContainer","toggleShowTimeoutId","prevProps","toggleShow","getCampaignCode","campaignCode","brandAttributeValues","requestData","selectedCategories","selectedBrandAttributes","httpClient","SELLING_CAMPAING_CODE","isCancel","validate","campaignCodeValid","validation","isValid","validationDisplayMessage","hasEnded","campaign","campaignCodeId","campaignCodeMessage","isCustomLengthFeeFree","isUnsoldFeeFree","provisionFactor","discountFactor","maxFeeCap","bannerMobileImageUrl","bannerTabletImageUrl","bannerDesktopImageUrl","CHARITIES","userData","charities","throttledCampaignCodeValidation","delayedValidationTimeoutId","resetCharityCampaign","getSyiSlice","charityCampaign","wasForceFreeShipping","resetCampaign","feesActions","resetDiscountFactor","resetCampaignCommission","updateCommission","updateMaxCommission","updatePrices","isReadOnly","acc","findBrandAttributeValues","campaignService","draftCategoryId","campaignCodeDescription","isCompanyUser","setDiscountFactor","setCampaignCommission","commissionProcent","allowZeroDayAuctions","forcePaymentOption","setDisplayPromoted","setDisplayHighlighted","applyCharityFromCampaignCodeId","toggleShowInput","isChecked","setInitialCampaignCode","isChangeItem","saveTypedCampaignCode","inputCampaignCode","searching","Breadcrumbs","categoryTree","handleClick","breadcrumbRef","parsedCategoryPath","resolveActiveCategoryPath","scrollLeft","scrollWidth","clientWidth","itemScope","itemType","BreadcrumbItem","getWindow","microDataPositionProperty","parents","isFirstElement","itemProp","TextElement","WishListButton","showText","toggled","iconClasses","combinedClassName","ModalHeader","stopPropagation","forceVisible","forceCheck","lazyload","_createClass","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_event","_scrollParent2","_debounce2","_throttle2","__esModule","default","_classCallCheck","_possibleConstructorReturn","_inherits","defaultBoundingClientRect","LISTEN_FLAG","listeners","pending","passiveEventSupported","opts","passiveEvent","passive","checkVisible","findDOMNode","HTMLElement","parent","overflow","ownerDocument","documentElement","parentTop","parentLeft","parentHeight","parentWidth","_parent$getBoundingCl","getBoundingClientRect","windowInnerHeight","clientHeight","windowInnerWidth","intersectionTop","intersectionLeft","intersectionHeight","intersectionWidth","_node$getBoundingClie","offsetTop","offsetLeft","offsets","checkOverflowVisible","offsetWidth","offsetHeight","getClientRects","elementHeight","_node$getBoundingClie2","checkNormalVisible","forceUpdate","unmountIfInvisible","purgePending","lazyLoadHandler","listener","delayType","finalLazyLoadHandler","LazyLoad","_Component","_this","getPrototypeOf","scrollport","scrollContainer","needResetFinalLazyLoadHandler","off","throttle","listenerCount","scroll","resize","on","_Component2","LazyLoadDecorated","LoadingSymbolSpinner","LoadingSymbolCards","itemsPerPage","localLazyLoadSettings","WaitForConsentApiLoaded","placeHolder","onLoadRender","ads","isTcfLoaded","ExpandableMenuItem","prevState","expanded","onOpen","defaultExpanded","imageContainerClassName","toggleOpen","matchedPage","pageName","matchPath","warnIfDevBuild","isHybridAppContext","isBasicApp","getElementsByClassName","AppToMount","App","minDelayInMs","alwaysDelay","lastActionTime","timeoutId","wrappedAction","timeNow","BuyNowLabel","SellerRating","includeTotal","sellerDsrAverage","isGood","isBad","formattedRating","formatSellerDsrAverage","textClassName","SellerLink","sellerAlias","hasRating","abs","SHIPPING_TYPES","NotSpecified","Takeaway","TakeawayOnly","ShippingLabel","hasFreeShipping","shippingCost","isSwedishVisitor","selectIsSwedishVisitor","showBids","ITEM_TYPES","AUCTION","AUCTION_BIN","showBuyNow","reservePriceReached","isShopItem","SHOP_ITEM","discountRate","isNewToday","startDate","isAfter","subtract","handleWishlist","displayHighlighted","priceBeforeDiscount","buyNowPrice","onDisplay","getAdPosision","device","buildProps","deviceName","adFormats","autoscaleOffsetWidth","adContainerClass","position","DesktopAd","TabletAd","MobileAd","WatchListMenu","isSellerListEnabled","WishlistLink","wishlistText","AttributeButtonsList","visibleAttributes","x","onDOMContentLoaded","readyState","onWindowLoad","throttledCategoriesRequest","loadCategories","executeImmediately","request","categoryService","loadChildCategories","prefetchChildren","closeLevel","disableLevel","toggleLevelLabel","selectLevelCategory","closeAllLevels","resetCategoryRestriction","syiActions","displayPaymentOptions","paymentOptionGroups","setDraftCategory","levels","level","SELLING_CATEGORY_RESTRICTIONS","updateCategoryRestrictions","loadTopCategories","shortDescriptionForRecommendations","setPath","openLevel","toggleCategories","categoryLevel","categoriesVisible","selectCategory","isLeaf","setPathFromDraft","draftCategoryPath","Overlay","toggleAllVisible","togglePaymentOption","selectedPaymentOptions","payment","paymentType","po","setSelectedPaymentOptions","lokaliseKey","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cx","cy","cz","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","fx","ga","gb","gd","ge","gf","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","ie","il","in","io","iq","ir","is","it","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","ru","rs","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za","zm","zw","BuyMenu","BuyingLink","buyingText","recommendationsRequestBuilder","slotId","pageSize","seedItemIds","endpoint","queryParameters","slot","maxResults","pageNumber","arrayFormat","similarItemsRequestBuilder","similarItemsFromShopRequestBuilder","similarItemsFromCampaignRequestBuilder","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","test","byteToHex","substr","arr","buf","rnds","random","uuidv4","DiscountedPriceLabel","formatNumberWithSeparators","mapDeviceNameToViewport","mobile","tablet","desktop","createGptSizeMapping","sizes","adFormat","panorama","wide_skyscraper","half_page","medium_rectangle","mobile_rectangle","mobile_wideboard","mapSingleAdFormatToSizes","pre","cur","mapManyAdFormatsToSizes","sizeMap","viewport","categoryIcons","PriceIcon","VehiclesBoatsPartsIcon","BooksMagazinesIcon","ComputersAccessoriesIcon","DvdVideosIcon","PhotoCamerasOpticsIcon","StampIcon","ClothesIcon","ConsumerElectronicsIcon","HobbyIcon","WatchesIcon","AntiquesDesignIcon","MusicIcon","CurrencyIcon","ArtIcon","JewlryGemstonesIcon","SportsLeisureIcon","MobilePhoneTelecommunicationsIcon","PostcardsPicturesIcon","OtherIcon","CollectiblesIcon","VideoComputerGamesIcon","HomeHouseholdIcon","ConstructionToolsIcon","ChildrensClothingShoesIcon","TicketsTravelIcon","CharityIcon","HandmadeAppliedArtsIcon","GardenPlantsIcon","ChildrensItemsIcon","AccessoriesIcon","ShoesIcon","BeautyCareIcon","ToysChildrensItemsIcon","getCategoryIcon","IconComponent","TopDescription","descKey","DocumentScanning","zignSecWebSDKUrl","pageSpecificData","dataAttributeName","js","addScriptToDom","zs","sessionId","getSessionStatus","relayState","ZignSec","ZsProduct","Scanning","openInIframe","relay_state","analysis_types","r","isSuccessful","MitIdLogo","InternationalIdentificationModal","validIdentifications","setValidIdentifications","selectedIdentification","setSelectedIdentification","selectedIdentificationGui","publish","isDesktop","dismissLocalizationRegionPicker","onLocalizationShippingRegionSelected","ConnectedLocalizationRegionPicker","showLocalizationRegionPicker","selectShowLocalizationRegionPicker","geolocation","selectGeolocation","isoCode","currency","LocalizationLink","preferredLanguage","selectPreferredLanguage","selectShowRegionSelection","getCountryCodeFromLanguage","wait","immediate","args","context","later","last","callNow","isLocalizationSettingsVisible","setLocalizationSettingsVisible","shouldBeVisible","oneInstance","__tcfapi","FooterLinks","links","callerId","linksToRender","onlySwedish","rest","BuyingLinks","SellingLinks","featureToggles","isPennybridgeCharitiesEnabled","ContactAndHelpLinks","ConsentService","openUi","CouponCodeLinks","isCouponationNavLinkEnabled","isSwedishOrUndefined","FooterPartners","groupedPartners","partners","logo","group","partner","useInView","threshold","symbolRef","inView","appName","downTo","MD","getFullYear","getBids","getCurrentLanguage","IGNORE_ME","postFavoriteSeller","isAlreadySaved","ids","FAVORITE_SELLER_REMOVE","FAVORITE_SELLER_ADD","checkResponseLoggedOut","ModalBody","inlineStyle","useInterval","sendSessionStart","SELLING_SCRIBE_SESSION_START","sendSessionDuration","duration","madeByTemplate","SELLING_SCRIBE_SESSION_DURATION","durationMilliSeconds","sendDuration","measuredName","SELLING_SCRIBE_DURATION","sendIncrement","SELLING_SCRIBE_INCREMENT","sendValidationErrors","SELLING_SCRIBE_VALIDATION_ERRORS","ModalContainer","opacity","fillOpacity","FavouriteSellersFallback","fromFavouriteSellersPage","startPageStyles","withArrowTop","gpt","adContainerRef","refresh","stickyBottom","stickyEnabled","stickyTop","canCreateDfpAd","adUnitPath","sizeMapping","minViewportWidth","maxViewportWidth","pageTargeting","customTargetingParameters","slotTargeting","pos","disconnect","mapLanguageCodeToLanguageKey","languageCode","toInt","n","SELLING_SHIPPING_CALCULATOR","getShippingProviders","SHIPPING_PROVIDERS","prepareResultForView","shippingProvider","useAdvancedWidget","products","variants","promoted","p","isObsolete","logoUrls","DBSchenker","PostNord","PostNordDenmark","BringDenmark","AlternativeDenmark","product","validationError","isStamps","variant","texts","numberOfStamps","restrictionText","restrictionTexts","transformPostNordParcelProductId","productId","compositeKey","setShippingOptionVariant","primary","setOfferTakeaway","offerTakeaway","setSuggestedShippingProducts","shippingProducts","getShippingProvidersWithProducts","shipping","primaryShippingProviders","isLoadingProvidersWithProducts","calculateShipping","shippingCalculatorService","additionalInfo","clearSuggestedShippingProducts","makeSecondaryShippingOptionPrimary","removeShippingOption","setCalculatorDimensions","dimensions","setOfferShipping","offerShipping","setSecondaryShippingOptionOpen","secondaryShippingOptionOpen","setShippingOptionCost","setShippingOptionsFromDraft","removeCostIfCostMatchesSelectedProduct","shippingState","getVariant","setShippingOptionVariantAfterDraft","isPrimary","getPrimaryOrSecondaryProducts","productVariant","toggleShippingCalculator","toggleShippingOption","setShippingFromcountry","NextArrow","arrowClassName","display","PreviousArrow","BasicCarousel","next","slider","slickNext","previous","slickPrev","goTo","imageIndex","slickGoTo","settings","actionButtons","defaults","dots","dotsClass","nextArrow","prevArrow","infinite","speed","slidesToShow","slidesToScroll","lazyLoad","c","ImageGalleryModal","initialSlideIndex","carouselRef","closeButtonRef","isMobileDevice","handleCloseModalClick","stopClickEventsFromImage","navigate","focus","initialSlide","adaptiveHeight","fade","useCss","useTransform","responsive","breakpoint","BREAKPOINT_SIZES","arrows","image","normal","ViewItemImage","imageContainer","zoomImage","bounds","zoomImageLargeEnough","handleMouseHover","hoverState","handleMouseMove","getBounds","containerWidth","containerHeight","zoomImageWidth","zoomImageHeight","widthDiff","heightDiff","widthRatio","nativeEvent","offsetX","heightRatio","offsetY","translateXValue","translateYValue","transform","zoomImageElement","enableZoom","handleZoomClick","smallFit","mediumFit","largeFit","srcSet","SM","onMouseMove","ViewItemCarouselZoom","showZoomModal","activeSlideIndex","basicCarousel","onMouseUp","customPaging","onMouseOver","multiThumbnail","afterChange","accessibility","PlainLanguageSelect","languages","setPreferredLanguage","onLanguageChanged","LanguageSelect","selectAvailableLanguages","HoverMenuItem","MESSAGING_STATES","MessagingModal","MESSAGING_REMOTE_URL","POST_MESSAGE_TYPE_PREFIX","messaging","handleClose","iframeElement","contentWindow","recipientId","handleMessage","setIframeRef","scrolling","NotParticipatingMessage","Loader","transaction","propertyName","openAddPhoto","setDraftImages","draftImage","imageId","removeImageInSlot","slotIndex","slots","rotationDegrees","isListingImage","filename","imageGroupId","isUploading","handleAttributeSuggestionsForSlot","setUploadFailed","errorMessage","setUploading","numberOfSlots","prepareUpload","selectedFilesCount","freeSlotCount","errorActions","numberOfFilesToUpload","MissingDraftId","setIsUploadingWithApp","isUploadingWithApp","cancelMobileUpload","draftSocket","imageIds","setUploadedImageInNextFreeSlot","freeSlotIndex","setUploadedImageInImageSlot","removeImageWithId","changeImagePosition","len","newSlots","rotateImage","setImageThunk","fileInput","flow","files","imageUploadService","uploadFromFileInput","nativeAppOpenAddPhotoThunk","saveNowIfQueued","currentDraftId","fetchImagesFromDraft","loadImagesFromDraft","Flag","toUpperCase","BackgroundImageLoader","placeholderSrc","placeholderClassName","fallbackSrc","fallbackClassName","loadedClassName","useImageLoader","currentSrc","currentClassName","ItemCardImage","imageHeight","imageWidth","imageSecondaryUrl","linkProps","imageStyle","aspectRatio","paddingTop","secondaryImage","ALink","ToBuyLink","howTo","useMenuHeightFix","menuContentRef","parentElement","marginBottom","marginY","maxHeight","CurrencyLink","AttributeButton","hoverIcon","LocalizedDfpAd","isCriteoDirectBidderEnabled","isLoggingEnabled","process","moduleName","onModuleLoaded","isModuleLoaded","MutationObserver","mutationsList","attributeName","observe","LOADING_STATES","GPT_PAGE_NAMES","Recommendations","collapseIfEmpty","createRequestUrl","enableQuickView","errorFallback","gtmLabel","infiniteScrollEnabled","itemCardProps","loader","noMoreItemsMarker","onReachedEnd","setAds","showAds","loadingState","setLoadingState","setItemIds","rootMargin","loadingTriggerRef","loadingTriggerInView","addItemIds","itemIdsToAdd","loadAds","getItems","itemsInResponse","reloadOnUnauthorized","nextPage","itemComponents","margin","adsActions","toIntOrNull","isFinite","isNullOrUndefined","val","setOpeningBid","openingBid","setFixedPrice","setReservePrice","reservePrice","setAuctionBinPrice","auctionBinPrice","setAuctionBinPriceVisibility","setReservePriceVisibility","setCharityDonationVisibility","setIsPureBinSelected","isPureBinSelected","setVat","vat","setEditCharity","editCharity","setFromDraft","queryParamCharityId","hasOpeningBid","hasFixedPrice","hasReservePrice","hasCharityId","isAuction","isAuctionBin","isPureBin","AnimatedPriceLabel","showAnimation","setShowAnimation","useDidMountEffect","timer","priceLabelProps","LeadingBadge","OverbiddenBadge","ShippingBadge","SellerAliasBadge","gaCategory","showBidStatus","showShippingOrOnDisplay","showSellerAlias","getMediumFitImageUrl","isLeading","isOverbidden","MultiCurrency","isVisible","PlainLocalizationMenuItem","onToggle","LocalizationMenuItem","CurrencyMenuItem","showCurrencySelection","selectShowCurrencySelection","currencyShortName","trackPaymentOnboarding","InvoiceUnpaidAlert","InvoiceOverdueAlert","BankAccountMissingAlert","PayoutFailedAlert","PayoutReadyBankAccountMissingAlert","SwishMissingAlert","dismissSwish","enableSwishUrl","HyperwalletPayeeVerificationAlert","HyperwalletPayeeVerificationReviewAlert","OnboardToTraderaPayAlert","getGaLinkAttributes","getGaButtonAttributes","ProfileCard","closeProfileMenu","cleanedMemberAlias","imageAvailable","setImageAvailable","mediaBelowLarge","trackExpandItemClick","ProfileMenuContent","logOut","memberDetailedSellerRatingAverage","memberHeroImage","showMessagingLink","showPayments1Menu","showPayments2Menu","systemMessages","threadsUnread","InvoiceUnpaid","InvoiceOverdue","OnboardToTraderaPay","hasWallet","STORAGE_KEYS","BATCH_PAYOUTS_ALERT_DISMISSED","BankAccountMissing","PayoutReadyBankAccountMissing","PayoutFailed","SwishNumberMissing","HyperwalletPayeeVerificationRequired","HyperwalletPayeeVerificationUnderReview","trackOnClick","SignInMenuContent","closeMenu","getInitData","getReturnUrl","onLoad","iframe","iframeDocument","contentDocument","onIframeLoad","STRINGS","AddHumanyBot","botWidget","ProfileMenu","handleExpand","paymentSettings","renderChild","TransitionGroup","mountOnEnter","upTo","LG","Profile","facebookId","borderRadius","ProfileLink","handleProfileClick","menuExpanded","systemMessageCount","logInText","tooltip","badgeType","multipleBadges","ProfileMenuLink","preventNavigationAndShowLogin","redirect","handleLoginClick","profileMenu","openProfileMenu","closeCategoryDropdownMenu","messagingThreads","profileMenuOpen","badges","showHeaderSearch","system","useIsDesktop","startTime","trackItemPublished","isFromTemplate","templateId","isDraftFromTemplate","scribe","sessionService","prepareForPublish","descriptionLanguageCodeIso2","hasTraderaPayConsent","SELLING_ITEM_PUBLISH","handleServerValidationError","translator","invalidImageErrorCodes","imageErrors","nonImageErrors","imageErrorDisplayTexts","displayTexts","invalidImageCount","imageActions","handleInvalidImages","nonImageErrorDisplayTexts","translateErrorCode","errorDisplayTexts","errorDisplayText","reasonDisplayText","ensureDraftReason","draftReason","setDraft","isNewDraft","categoryActions","setAllowedBuyerRegion","setAvailableAllowedBuyerRegions","setItemCondition","itemCondition","setDurationDays","durationDays","setCustomEndTime","customEndTime","shortDescriptionActions","setShortDescription","setDescriptionLanguageCodeIso2","setCurrency","longDescriptionActions","displayPromoted","priceActions","charity","paymentActions","paymentOptions","getShippingOptionsFromDraft","fromCountry","getFromCountryFromDraft","memberCountryCodeIso2","isShippingFromCountryEnabled","loadDraft","draftService","navigationService","finally","canBeResumed","hasShortDescription","hasLongDescription","hasImage","setResumableDrafts","drafts","hasAuctionBinPrice","hasResponseErrorCode","responseOrNull","arrayOfErrorCodesToCheck","triggerSave","saveDraft","buildDraftFromState","setDraftVersion","responseJSON","setUsedAllowed","isAllowed","condition","isUsedAllowed","categoryRestriction","allowUsed","loadDrafts","resumableDrafts","browserDraftImageUrls","serverDraft","serverDraftImages","serverDraftImageUrls","changedImages","imagesHaveChanged","imageSlots","setDraftId","resetDurationAndEndTime","setRestart","restart","setReference","reference","extraFeatures","getCustomEndTime","itemDuration","publishService","memberConsent","googleTagManager","trackAddonBeforePublish","draftSelectedAttributes","suggestionEngine","completionTimeInSeconds","comparer","localeCompare","analyticsData","trackAttributeSuggestions","loadDraftIfMissing","loadDefaultDraft","loadDefaultTemplateDraft","template","useDraftAsTemplate","resetItemCondition","publishAdditionalDescription","resetDraft","resetDrafts","eventName","attachEvent","detachEvent","optionsWithDefaults","timeoutTimer","onload","onerror","async","ContentSwitch","defaultSelected","onSwitch","setSelected","renderedOptions","setRenderedOptions","BidsLabel","breadcrumbs","metaDescription","bodyClass","toAbsoluteUrl","filterCategories","categoryNodes","timers","sentCounter","pushToDataLayer","dataLayer","trackAddonAfterPublish","addOnfeatureName","trackTiming","timingCategory","timingVar","variable","timingValue","timingLabel","startTimer","sendTimer","trackSellItemEvent","sendTimerOnce","eventCategory","eventAction","eventValue","getShippingDisplayText","DropDownMenuHamburger","MenuItemButton","CategoryMenuItems","filteredCategories","categoryList","searchPlaceholder","handleFilterKey","handleFilterChange","CategoryMenuItem","categoryNode","DropdownMenuContent","mediaProps","list","topLevelCategories","isValuationPageEnabled","isFetching","TopLevelCategories","SeoLinks","DropdownMenu","dropdownMenu","categoryDropdownMenu","openCategoryDropdownMenu","onItemClick","sideMenuMediaProps","dropdownMenuMediaProps","SettingsButton","allowedFileExtensions","uploadFileWithFormData","file","imageFlow","replaceIndex","FormData","append","notifyImageUploaded","endTime","notifyImageUploadFailed","validateFile","fileExt","endsWith","suffix","eventBroadcaster","trigger","notifyImageValidationFailed","displayMessage","isMultifileSupported","uploadFiles","maxNumberOfFiles","validationResult","iframe_name","form","fileInputParent","submit","theFile","responseText","$","parseJSON","uploadFileWithDom","uploadCroppedImageFile","imageFile","threshhold","deferTimer","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","done","has","RegExp","flags","valueOf","$$typeof","match","priceInfo","auctionCommission","fixedPriceCommission","featureFees","feesTotal","commissionMinimum","commissionCap","customEndTimeHour","customEndTimeMinute","customEndTimePrice","highlightFeaturePrice","fee","campaignCommissionProcent","fees","isDomainNameCategory","domainNameCategoryId","companyMinCommissionProcent","companyMaxCommissionProcent","maxCommissionCost","isCategoryWithNoCommissionCap","_cache","_title","existsInCache","clearCache","topCategories","levelToSearch","categoryIds","categoryInfo","SiteHeader","openSearchForm","closeSearchForm","autoFocusSearch","menu","activeHoverMenu","isTablet","expireDate","setTime","sticky","fetchMessagingNotifications","getGeolocation","closeMessagingModal","closeNotificationOptinModal","isForeignVisitor","messagingModal","notificationOptinModal","formattedCartItems","hasCartItems","stickyEnabledOnPage","isMobileBreakpoint","hideElements","enabled","enableTransforms","activeClass","handleClickSearch","handleMenuClick","handleMouseOverMenu","handleMouseOutMenu","handleMenuBlur","clickAction","handleRegisterClick","memberStateActions","withBreakpoint","hasSearch","selectIsForeignLanguageActivated","searchParams","showSearchForm","excludeStaticParent","overflowRegex","getComputedStyle","overflowX","overflowY","createBrowserHistory","states","CardVerificationModal","memberEmail","isHidden","setIsHidden","submitButtonRef","webApiClient","authorization","clientToken","container","threeDSecure","createErrors","requestPaymentMethod","amount","email","requestPaymentMethodErr","_braintreeWebError","nonce","isVerified","setIsInternationalWacko","threeDSecureValidationFailed","liabilityShiftPossible","liabilityShifted","DiscountBadge","SignUpLink","register","sortByIndex","getFavouriteSellers","getSellerSuggestions","favouriteSellerCardDtos","defaultStartPageConfig","alternativeText","isCampaignMode","webpageUrl","contentLoggedOut","contentLoggedIn","fetchStartPageConfig","setStartPageConfigStatusAction","CMS_API","setStartPageConfigAction","fetchTrendingBrandsIfNeeded","trendingBrands","setTrendingBrandsStatusAction","logoImageUrl","setTrendingBrandsAction","fetchTrendingSearchesIfNeeded","trendingSearches","isTrendingSearchesFromMlEnabled","setTrendingSearchesStatusAction","setTrendingSearchesAction","fetchWishList","wishList","setWishListStatusAction","addItemsToWishList","setWishListAction","fetchFavouriteSellers","favouriteSellers","isSellerSuggestionsEnabled","setFavouriteSellersStatusAction","promise","suggestionsPromise","totalItems","setFavouriteSellersAction","sellers","sellerSuggestions","selectStartPageStatus","selectStartPageHeader","StartPageHeroBanner","bannerLinks","baseUrl","getImageSizes","imageCount","format","imageSizes","getWebpImage","getOwnPropertySymbols","getOwnPropertyDescriptor","o","getOwnPropertyDescriptors","navigator","unsupported","memory","deviceMemory","totalJSHeapSize","usedJSHeapSize","jsHeapSizeLimit","hardwareConcurrency","Video","video","poster","videoLarge","largeUrl","videoMedium","mediumUrl","videoSmall","smallUrl","loops","setLoops","videoRef","playVideo","play","getCurrentBreakpoint","isTabletBreakpoint","isDesktopBreakpoint","handleVideoEnded","videoLoops","videoElement","autoPlay","playsInline","muted","MediaItem","u","f","heading","webpImage","connection","effectiveConnectionType","effectiveType","return","setNetworkStatus","media","Tag","gaAction","Tags","onClickTag","titleOnSameLine","TrendingSearchesTags","inHeader","textOrIcon","useRecentSearchesUpdated","recentSearches","RecentSearchesTags","recentSearchesUpdated","getPreviousSearches","limit","SEARCH_RECENT","StartPageHeroTrustmark","StartPageHero","showRecentSearches","showTrendingSearches","backgroundVideo","taglineDesktop","taglineMobile","searchElementRef","searchInView","searchInViewEntry","toggleHeaderSearch","parsedCampaignUrl","toRelativeTraderaUrl","FallbackImage","isSpaLink","CarouselItem","videoEnabled","button","showHeading","showContent","stripHost","Carousel","hiddenOn","singleItemClass","swipeToSlide","InstagramImage","InstagramFeed","instagramFeed","posts","PopularCategories","multiRow","singleItem","slidesPerRow","ConnectedRecentlyViewed","recent","trackPicksForYouClick","EndingSoonErrorMessage","LoadMoreButton","recommendationMode","PicksForYou","endingSoon","useSplitTestGroup","splitTestName","SuggestedSellerToggle","isFavouriteSeller","isFavoriteSeller","setFavoriteSeller","toggleFavoriteSeller","wasFavouriteSeller","trackFavoriteSellerClick","FavouriteSellerCard","sellerProfileUrl","matchedItems","heroImageUrl","isSuggestion","FavouriteSellerCardsGrid","allSellers","SellerSuggestions","FavouriteSellersInternal","triggerOnce","allFavouriteSellers","sellerSuggestionsPosition","showSellerSuggestionsPositionAbove","showSellerSuggestionsPositionBelow","toggleWishList","showFallbackInfo","FavouriteSellers","WishListInfoCard","padding","boxSizing","WishListInternal","HIDE_WISH_LIST_INFO_CARD","hideWishListInfoCard","setHideWishListInfoCard","showInfoCard","WishList","isWishListEnabled","Container","PageContent","ImageTag","ImageTags","limitTags","TrendingBrandsTags","PersonalisedBrandsTags","showFallback","useShowPersonalisedBrandsFallback","useIsPersonalisedBrandsTagsLoading","fallbackStatus","PersonalisedSearchesTags","useShowPersonalisedSearchesFallback","useIsPersonalisedSearchesTagsLoading","PersonalisedTags","StartPage","displayRecentSearches","displayTrendingSearches","isPersonalisedSuggestionsEnabled","isPersonalisedBrandsTagsLoading","isPersonalisedSearchesTagsLoading","showPersonalisedSearchesFallback","usePortal","showPersonalisedTags","isLoadingPersonalisedTags","moveTrendingSearchesToPersonalised","showTrendingBrands","showTrendingSearchesInHeader","showTrendingSearchesBelowHeader","showRecentSearchesInHeader","showRecentSearchesBelowHeader","hasTraderaPay","CartError","CartPage","readCookie","fromAddItem","selectMemberId","cart","merchantPreOrders","isCheckoutDisabled","order","orderRows","goBack","ship","shippingType","toCountryCode","mapShippingOption","sum","merchantMemberId","merchantAlias","changeItemQuantity","goToSeller","merchantId","isCommitOnPayment","PageMeta","BrandPage","BrandListPage","CampaignPage","CategoryListPage","CategoryPage","CheckoutPage","CheckoutConfirmationPage","FavouriteSellersPage","Landing_GantXTradera","Landing_StadiumXTradera","ProfilePage","RecommendationsPage","ReportItemPage","SearchPage","SwishApp2AppCallbackPage","TraderaShopPage","VerifyPage","LiveShoppingListPage","LiveShoppingDetailsPage","LiveShoppingSignUpPage","ViewItemPage","UPI","INR","Cause","CausesLandingPage","CausesInfo","Messaging","trackGtmEvent","brand","itemsById","swishResult","returnUrl","s","categoryNameAndId","divider","pop","SuspenseFallback","Routes","resetShortDescription","riot","observable","ErrorContainer","minHeight","CartLink","cartUrl","NewTodayLabel","previousSearchService","generateSuggestionId","term","previousSearchResults","suggestedResults","shops","campaigns","getSuggestionsFromBackend","withDuplicates","uniqueMap","uniqueResults","shopResults","suggestedCharitiesResults","charitiesResults","suggestedCampaignResults","campaignResults","capaignId","allSuggestions","normalizeSearches","SEARCH_SUGGESTIONS","previousResults","output","prettySearchTerm","recentCount","GeneralError","deps","didMount","setIsLoaded","Image"],"mappings":"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aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJp3D,GAAI,aACJq3D,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GA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","file":"script/chunks/chunk.tradera.d8d84e16a6.js","sourcesContent":["import { BIN_VALIDATION_RESULTS } from '../../api/vip-api-constants';\n\nconst binValidationParser = error => {\n let validationTitle;\n let validationBody;\n switch (error) {\n case BIN_VALIDATION_RESULTS.ITEM_NOT_FOUND:\n validationTitle = 'vip_bid_itemNotFoundTitle';\n validationBody = 'vip_bid_itemNotFoundBody';\n break;\n case BIN_VALIDATION_RESULTS.BIDDER_IS_BLOCKED:\n validationTitle = 'vip_bid_bidderIsBlockedTitle';\n validationBody = 'vip_bid_bidderIsBlockedBody';\n break;\n case BIN_VALIDATION_RESULTS.BUYING_OWN_ITEM:\n validationTitle = 'vip_bid_biddingOrBuyingOwnItemTitle';\n validationBody = 'vip_bid_biddingOrBuyingOwnItemBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_EU_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlyEUBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlyEUBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_NORDIC_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlyNordicBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlyNordicBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_SWEDISH_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlySwedishBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlySwedishBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.USER_IS_SUSPENDED:\n validationTitle = 'vip_bid_userIsSuspendedTitle';\n validationBody = 'vip_bid_userIsSuspendedBody';\n break;\n case BIN_VALIDATION_RESULTS.ITEM_HAS_ENDED:\n validationTitle = 'vip_bid_auctionHasEndedTitle';\n validationBody = 'vip_bid_auctionHasEndedBody';\n break;\n case BIN_VALIDATION_RESULTS.PURCHASE_DID_NOT_SUCCEED:\n case BIN_VALIDATION_RESULTS.ITEM_ALREADY_PURCHASED_BY_OTHER_USER:\n default:\n validationTitle = 'vip_bid_errorTitle';\n validationBody = 'vip_bid_errorDescription';\n break;\n }\n\n return {\n validationTitle,\n validationBody\n };\n};\n\nexport default binValidationParser;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 10.9c-.6 0-1.1.5-1.1 1.1s.5 1.1 1.1 1.1 1.1-.5 1.1-1.1-.5-1.1-1.1-1.1zm1-7.4H7l.2 5.6h1.7z\",\n fillRule: \"evenodd\"\n})));","import React from 'react';\n\nconst ItemDisplayConfirmed = ({\n itemImage,\n itemTitle,\n formattedPrice,\n itemUrl\n}) => {\n return (\n <>\n
\n
\n \n \n {itemTitle}\n \n
{formattedPrice}
\n
\n
\n
\n
\n \n
\n \n {itemTitle}\n \n
\n {formattedPrice}\n
\n
\n
\n
\n \n );\n};\n\nexport default ItemDisplayConfirmed;\n","import React, { useCallback, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n useUrlLocalizer,\n useCurrentLanguage,\n useTranslator\n} from 'tradera-lang/translate';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport { purchaseBin } from 'tradera-state/views/checkout/api';\nimport { fetchItemAndBidInfo } from 'tradera-state/views/view-item/reducer';\nimport binValidationParser from './bin-validation-parser';\nimport CheckFillIcon from '@tradera/blueprint/theme/icons2/check-fill.svg?jsx';\nimport NotifyIcon from '@tradera/blueprint/theme/icons2/notify.svg?jsx';\nimport { formatPrice } from '@tradera/blueprint/utils';\nimport * as analytics from '../../helpers/analytics';\nimport TopDescription from './bin-modal-top-description';\nimport SellerName from './bin-modal-seller-name';\nimport ItemDisplay from './bin-modal-item-display';\nimport ItemDisplayConfirmed from './bin-modal-item-display-confirmed';\nimport ShippingDisplay from './bin-modal-shipping-display';\nimport PaymentSummary from './bin-modal-payment-summary';\nimport BottomButtons from './bin-modal-bottom-buttons';\nimport './bin-modal.scss';\nimport { CardVerificationModal } from 'tradera-components/wacko-bidder/card-verification-modal';\nimport { BID_VALIDATION_RESULTS } from 'tradera-apps/tradera/components/vip/api/vip-api-constants';\n\nconst BIN_FORM_STATES = {\n NOT_CONFIRMED: 'NOT_CONFIRMED',\n CONFIRMED: 'CONFIRMED',\n CONFIRMED_WITH_ERROR: 'CONFIRMED_WITH_ERROR'\n};\n\nconst CenteredIcon = ({ children }) => {\n return (\n
\n
{children}
\n
\n );\n};\n\nconst Separator = () =>
;\n\nconst BigSeparator = () => (\n
\n);\n\nconst CloseButton = ({ action, text }) => (\n
\n
\n \n {text}\n \n
\n
\n);\n\nconst BinModal = ({ onClose, preferredCurrency }) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n const dispatch = useDispatch();\n const [currentFormState, setCurrentFormState] = useState(\n BIN_FORM_STATES.NOT_CONFIRMED\n );\n const [error, setError] = useState(undefined);\n const [transactionId, setTransactionId] = useState(undefined);\n const { language } = useCurrentLanguage();\n\n const itemDetails = useSelector(state => state.views.viewItem.itemDetails);\n const {\n seller,\n itemMainImage,\n title: itemTitle,\n itemId,\n shippingOptions,\n fixedPrice\n } = itemDetails;\n const formattedPrice = formatPrice(fixedPrice, language, preferredCurrency);\n const buyerCountryCode = useSelector(\n state => state.shippingRegion.shippingCountry.countryCodeIso2\n );\n\n const onContinue = useCallback(() => {\n analytics.trackPayBin();\n window.location = toLocalizedUrl(\n `/Shopping/Checkout/SelectPaymentForTransaction?transactionId=${transactionId}`\n );\n }, [transactionId, toLocalizedUrl]);\n\n const onConfirm = () => {\n purchaseBin({\n itemId: itemId,\n googleAnalyticsData: analytics.getGaTrackingData()\n })\n .then(({ data }) => {\n setError(undefined);\n analytics.trackConfirmBin();\n setTransactionId(data.transactionId);\n setCurrentFormState(BIN_FORM_STATES.CONFIRMED);\n return;\n })\n .catch(e => {\n analytics.trackBinError();\n\n setError(e.response.data.responseStatus.errorCode);\n setCurrentFormState(BIN_FORM_STATES.CONFIRMED_WITH_ERROR);\n });\n };\n\n const closeModal = () => {\n if (currentFormState !== BIN_FORM_STATES.NOT_CONFIRMED) {\n dispatch(fetchItemAndBidInfo(itemId, false));\n }\n onClose();\n };\n\n const keepShopping = () => {\n analytics.trackKeepShopping();\n closeModal();\n };\n\n if (\n error === BID_VALIDATION_RESULTS.MAX_PLACED_BIDS_LIMIT ||\n error === BID_VALIDATION_RESULTS.BID_AMOUNT_LIMIT\n ) {\n return (\n \n );\n }\n\n return (\n \n
\n {currentFormState === BIN_FORM_STATES.NOT_CONFIRMED && (\n <>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n )}\n\n {currentFormState === BIN_FORM_STATES.CONFIRMED && (\n <>\n \n \n \n\n \n\n \n\n \n\n \n \n )}\n\n {currentFormState === BIN_FORM_STATES.CONFIRMED_WITH_ERROR && (\n \n )}\n
\n \n );\n};\n\nconst ErrorFeedback = ({\n error,\n itemMainImage,\n itemTitle,\n formattedPrice,\n closeModal\n}) => {\n const { t } = useTranslator();\n const { validationTitle, validationBody } = binValidationParser(error);\n\n return (\n <>\n \n \n \n\n \n\n \n\n \n\n \n \n );\n};\n\nexport { Separator, BigSeparator };\n\nexport default BinModal;\n","export const HEADER = 'header';\nexport const LAST_CHANCE = 'lastChance';\nexport const PICKS_FOR_YOU = 'picksForYou';\nexport const POPULAR_CATEGORIES = 'popularCategories';\nexport const CAROUSEL = 'carousel';\nexport const RECENTLY_VIEWED = 'recentlyViewed';\nexport const INSTAGRAM_FEED = 'instagramPosts';\nexport const WISH_LIST = 'wishList';\nexport const FAVOURITE_SELLERS = 'favouriteSellers';\n","import { Analytics } from 'packages';\nimport {\n POPULAR_CATEGORIES,\n CAROUSEL,\n PICKS_FOR_YOU,\n LAST_CHANCE,\n HEADER,\n INSTAGRAM_FEED,\n RECENTLY_VIEWED,\n FAVOURITE_SELLERS\n} from './content-types';\n\nconst containerTypes = {\n [POPULAR_CATEGORIES]: 'Popcats',\n [CAROUSEL]: 'Carousel',\n [PICKS_FOR_YOU]: 'Picks for you',\n [LAST_CHANCE]: 'Last chance',\n [INSTAGRAM_FEED]: 'Instagram feed',\n [RECENTLY_VIEWED]: 'Recently viewed',\n [HEADER]: 'Header image',\n [FAVOURITE_SELLERS]: 'Favourite sellers'\n};\n\nexport const trackContainerClick = (containerType, trackingId) => {\n Analytics.trackEvent({\n category: 'StartPage',\n action: `${containerTypes[containerType]}`,\n label: trackingId\n });\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport { CHECKOUT_ERRORS } from './checkout-errors';\nimport {\n axiosWithTokenRefresh,\n axiosConfigs,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\n\nconst setErrorMessage = e => {\n if (e) {\n e.message = e.response?.data?.responseStatus?.errorCode;\n throw e;\n } else {\n throw new Error(CHECKOUT_ERRORS.GENERIC);\n }\n};\n\nexport const getCheckout = async purchaseOrderId =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_VIEW}/${purchaseOrderId}`, {\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getPaymentOptions = async (purchaseOrderId, selectedShippingId) =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_PAYMENT_OPTIONS}/${purchaseOrderId}`, {\n params: {\n selectedShippingId\n },\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const initializePayment = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_INIT_PAYMENT,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(e => {\n setErrorMessage(e);\n });\n\nexport const getPaymentStatus = async paymentAttemptId =>\n axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.ORDER_CHECKOUT_PAYMENT_STATUS}/${paymentAttemptId}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const completePayment = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_COMPLETE_PAYMENT,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const purchaseBin = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_PURCHASE_BIN,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getBraintreeToken = async (purchaseOrderId, paymentOption) =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_BRAINTREE}/${purchaseOrderId}`, {\n params: {\n paymentMethod: paymentOption\n },\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getExternalAuthData = async paymentAttemptId =>\n axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.ORDER_CHECKOUT_AUTH_DATA}/${paymentAttemptId}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const sendSwishSms = async formData =>\n axiosWithTokenRefresh()\n .post(\n '/shopping/swishapp2app/send',\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const requestCombinedShippingPrice = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_REQUEST_COMBINED_PRICE,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const setShippingInfo = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_SET_SHIPPING_INFO,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const cancelPayment = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_CANCEL_PAYMENT,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\n// Export object for Sinon stubbing\nexport default {\n getBraintreeToken,\n getCheckout,\n getExternalAuthData,\n getPaymentOptions,\n initializePayment,\n getPaymentStatus,\n completePayment,\n sendSwishSms,\n requestCombinedShippingPrice,\n cancelPayment,\n setShippingInfo\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TraderaLogo = ({ width, height, className, style, ...otherProps }) => (\n \n Tradera\n \n \n);\nTraderaLogo.propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n className: PropTypes.string,\n style: PropTypes.object\n};\nTraderaLogo.defaultProps = {\n width: 100,\n className: ''\n};\n\nexport default React.memo(TraderaLogo);\n","export { default as ViewItemCarouselZoom } from './view-item-carousel-zoom';\n","/* eslint-disable react/no-danger */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport IconPushSplashDefault from './push-splash-icon.svg';\nimport IconWishlist from './push-wishlist-icon.svg';\nimport IconSelling from './push-selling-icon.svg';\nimport * as pushNotificationActions from 'tradera-state/push-notifications/push-notifications-slice';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { useDispatch } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\n\nconst PushNotificationModal = ({\n modalType,\n gaLabel,\n title,\n description,\n tagGroups,\n closeModal\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n\n const trackGa = gaLabel => {\n GtmService.trackAction('Settings', 'Notifications', gaLabel);\n };\n\n const handleAccept = async () => {\n trackGa(gaLabel);\n closeModal();\n try {\n dispatch(pushNotificationActions.addTagGroups(tagGroups));\n dispatch(pushNotificationActions.setShownModalTrue(modalType));\n } catch (error) {\n // error, do not do anything\n }\n };\n\n const handleReject = async () => {\n closeModal();\n trackGa('Decline - Opt-in alert');\n dispatch(pushNotificationActions.setShownModalTrue(modalType));\n };\n\n let icon = IconPushSplashDefault;\n\n if (modalType === 'wishlistReminders') {\n icon = IconWishlist;\n } else if (modalType === 'selling') {\n icon = IconSelling;\n }\n\n return (\n \n
\n \"\"\n

{t(title)}

\n \n
\n
\n \n {t('pushModal_btn_no')}\n \n
\n
\n \n {' '}\n {t('pushModal_btn_yes')}\n \n
\n
\n
\n
\n );\n};\n\nPushNotificationModal.propTypes = {\n modalType: PropTypes.string.isRequired,\n gaLabel: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n tagGroups: PropTypes.array.isRequired,\n closeModal: PropTypes.func.isRequired\n};\n\nexport default PushNotificationModal;\n","export default \"//static.tradera.net/touchweb/static/output/images/push-splash-icon.4a7e4939.svg\";","export default \"//static.tradera.net/touchweb/static/output/images/push-wishlist-icon.77df35d5.svg\";","export default \"//static.tradera.net/touchweb/static/output/images/push-selling-icon.f032a8b4.svg\";","import React, { useState } from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { formatPrice } from '@tradera/blueprint/utils';\nimport MultiCurrency from 'tradera-components/multi-currency/multi-currency';\n\nconst MAX_DROPDOWN_SIZE = 10;\n\nconst ItemQuantitySelector = ({\n quantity,\n quantityInShop,\n onQuantityChange\n}) => {\n const { t } = useTranslator();\n const [inputMode, setInputMode] = useState(quantity > MAX_DROPDOWN_SIZE);\n\n const onChange = event => {\n const value = parseInt(event.target.value);\n if (isNaN(value)) return;\n\n if (value !== -1) {\n event.target.value = Math.min(value, quantityInShop);\n onQuantityChange(event);\n }\n\n if (value === -1) {\n setInputMode(true);\n }\n };\n\n return (\n
\n {!inputMode && (\n quantityInShop ? 'border-danger' : ''\n }`}\n onChange={onChange}>\n \n {[\n ...Array(\n Math.min(\n Math.max(quantityInShop, 0),\n MAX_DROPDOWN_SIZE\n )\n )\n ].map((_, i) => {\n const count = i + 1;\n return (\n \n );\n })}\n {quantity > quantityInShop && (\n \n )}\n {quantityInShop > MAX_DROPDOWN_SIZE && (\n \n )}\n \n )}\n {inputMode && (\n \n )}\n
\n );\n};\n\nconst ItemDisplay = ({\n itemImage,\n itemTitle,\n unitPrice,\n language,\n preferredCurrency,\n isFirstItem,\n quantity,\n quantityInShop,\n onQuantityChange,\n itemUrl,\n isUnavailable\n}) => {\n const { t } = useTranslator();\n\n const getError = () => {\n if (isUnavailable) {\n return t('checkout_item_noLongerAvailable');\n } else if (quantityInShop !== undefined && quantity > quantityInShop) {\n return t('checkout_item_outOfStock');\n }\n return null;\n };\n\n const error = getError();\n\n const renderPrice = () => {\n return (\n
\n
\n {quantity > 1 && ×}\n\n 1 ? 'ml-1' : 'font-weight-bold'\n }`}>\n {formatPrice(unitPrice, language, preferredCurrency)}\n \n
\n\n {quantity > 1 && (\n
\n =\n \n {formatPrice(\n unitPrice * quantity,\n language,\n preferredCurrency\n )}\n \n
\n )}\n\n \n
\n );\n };\n\n return (\n <>\n
\n
\n
\n {isFirstItem && (\n \n {t('checkout_item_title')}:\n \n )}\n
\n \n \n {itemTitle}\n \n\n {error &&
{error}
}\n\n {quantityInShop !== undefined && (\n \n )}\n\n {renderPrice()}\n
\n
\n {isFirstItem && (\n
\n
\n \n {t('checkout_item_title')}:\n \n
\n
\n )}\n
\n
\n \n
\n \n {itemTitle}\n \n\n
\n {quantityInShop !== undefined && (\n \n )}\n\n {renderPrice()}\n
\n
\n\n {quantityInShop !== undefined &&\n quantity > quantityInShop && (\n
\n {t('checkout_item_outOfStock')}\n
\n )}\n
\n
\n \n );\n};\n\nexport default ItemDisplay;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport MultiCurrency from 'tradera-components/multi-currency/multi-currency';\n\nconst PaymentSummary = ({\n formattedPrice,\n shippingOptions,\n isSellpyCheckout,\n preferredCurrency,\n totalPrice\n}) => {\n const { t } = useTranslator();\n const showShippingSelectionRow =\n shippingOptions.length > 1 ||\n (isSellpyCheckout && shippingOptions.length > 0);\n\n return (\n <>\n \n
\n \n {t('checkout_summary_toPayTitle')}:\n \n
\n
\n
\n {t('checkout_bin_pricePlusShipping', {\n price: formattedPrice\n })}\n
\n \n
\n
\n {showShippingSelectionRow && (\n
\n
\n {isSellpyCheckout\n ? t('cart_sellpyShipping')\n : t('checkout_bin_shippingDescription')}\n
\n
\n )}\n \n );\n};\n\nexport default PaymentSummary;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { hot } from 'react-hot-loader';\nimport axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { handleError, API_ERRORS } from 'tradera-utils/api';\nimport { logger } from 'packages';\nimport { LAST_CHANCE } from '../content-types';\nimport { trackContainerClick } from '../analytics';\nimport {\n withTranslator,\n useTranslator,\n withUrlLocalizer\n} from 'tradera-lang/translate';\nimport { registerLiveUpdates } from 'tradera-utils/register-live-updates';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport itemActions from 'tradera-state/items/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { generateItemCardPlaceholders } from 'tradera-components/item-card/generate-item-card-placeholders';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\nimport ALink from 'tradera-components/alink/alink';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\n\nconst LastChance = props => (\n \n \n \n \n \n);\n\nconst LastChanceNew = props => {\n const {\n addItems,\n webLiveUrl,\n inSPA,\n isLoggedIn,\n items,\n openQuickView,\n preferredCurrency,\n toggleWishlist,\n toLocalizedUrl,\n updateItem\n } = props;\n\n const isStartPageLiveUpdatesEnabled = useIsFeatureEnabled(\n 'start-page-live-updates'\n );\n\n const [state, setState] = useState({\n loading: true,\n error: false,\n itemIds: []\n });\n const { loading, error, itemIds } = state;\n\n useEffect(() => {\n const { cancel, token: cancelToken } = axios.CancelToken.source();\n axios\n .get(ENDPOINTS.LAST_CHANCE, { cancelToken })\n .then(({ data }) => {\n let itemIds = [];\n if (data) {\n addItems(data);\n itemIds = data.map(item => item.itemId);\n }\n return setState({\n loading: false,\n error: false,\n itemIds\n });\n })\n .catch(handleError())\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n return;\n case API_ERRORS.ABORTED:\n case API_ERRORS.NETWORK:\n break;\n default:\n logger(error);\n }\n setState({\n loading: false,\n error: true,\n itemIds: []\n });\n });\n return cancel;\n }, [addItems]);\n\n useEffect(() => {\n if (isStartPageLiveUpdatesEnabled) {\n return registerLiveUpdates({\n url: webLiveUrl,\n onConnect: socket => {\n for (let itemId of itemIds) {\n socket.emit('join', `item:${itemId}`);\n }\n },\n onClientEvent: data => {\n switch (data.Type) {\n case 'ItemSold':\n case 'ItemUnSold':\n break;\n case 'AuctionLeadingBidUpdated':\n case 'IAuctionLeadingBidUpdated':\n updateItem({\n itemId: data.Event.AuctionId,\n item: {\n price: data.Event.BidAmount,\n totalBids: data.Event.NumberOfBids\n }\n });\n break;\n }\n }\n });\n }\n }, [isStartPageLiveUpdatesEnabled, webLiveUrl, itemIds, updateItem]);\n\n const { t } = useTranslator();\n const itemCount = useIsMobile() ? 6 : 8;\n\n const handleQuickView = useCallback(\n itemId => {\n openQuickView(itemId, itemIds);\n },\n [itemIds, openQuickView]\n );\n\n if (error || (!loading && itemIds.length === 0)) return null;\n\n const resolveItems = (itemIds = [], itemsMap = {}, maxItemsCount = 0) => {\n const mappedItems = itemIds.map(itemId => itemsMap[itemId]);\n return mappedItems.filter(item => !!item).slice(0, maxItemsCount);\n };\n\n const displayItems = loading\n ? generateItemCardPlaceholders(itemCount)\n : resolveItems(itemIds, items, itemCount);\n\n return (\n
\n

\n {t('lastChance_header')}\n

\n
\n {displayItems.map(item => (\n
\n \n
\n ))}\n
\n
\n
\n \n trackContainerClick(\n LAST_CHANCE,\n 'Last chance button below'\n )\n }>\n {`${t('lastChance_showMore')} ->`}\n \n
\n
\n
\n );\n};\n\nconst mapStateToProps = state => ({\n webLiveUrl: state.initData.webLiveUrl,\n items: state.items.cache,\n isLoggedIn: state.member.isLoggedIn,\n preferredCurrency: state.multiCurrency.preferredCurrency\n});\n\nconst mapDispatchToProps = dispatch => ({\n addItems: items => {\n dispatch(itemActions.add(items));\n },\n openQuickView: (itemId, itemIds) =>\n dispatch(\n uiActions.openQuickView({\n itemIds,\n itemId,\n openedFrom: 'Last Chance'\n })\n ),\n toggleWishlist: itemId => dispatch(itemActions.wishlist(itemId)),\n updateItem: payload => dispatch(itemActions.updateItem(payload))\n});\n\nconst LastChanceNewConnected = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LastChanceNew);\n\nexport default compose(\n withUrlLocalizer,\n withTranslator,\n hot(module)\n)(LastChance);\n","import { axiosConfigs } from 'tradera-utils/api';\nimport { marketingApiClient } from 'tradera-utils/http';\nimport {\n resetCharity,\n setCharityShippingInfo,\n setCharityId,\n setCharityFromDraft,\n setCharityInfo\n} from 'tradera-state/views/syi/reducers/charity';\nimport shippingActions from './shipping-actions';\nimport logger from 'packages/logger';\n\nexport const setCharityFromDraftAndFetchInfo = charityFromDraft => dispatch => {\n dispatch(setCharityFromDraft(charityFromDraft));\n dispatch(setCharityAndFetchInfo(charityFromDraft.charityId));\n};\n\nexport const resetCharityAndShippingInfo = () => setCharityAndFetchInfo(null);\n\nexport const setCharityAndFetchInfo = charityId => dispatch => {\n dispatch(shippingActions.resetSelected());\n dispatch(resetCharity());\n dispatch(setCharityId({ charityId }));\n dispatch(fetchCharityInfo(charityId));\n dispatch(fetchCharityShippingInfo(charityId));\n};\n\nconst fetchCharityInfo = charityId => async dispatch => {\n if (!charityId) {\n return;\n }\n try {\n const response = await getCharity(charityId);\n dispatch(setCharityInfo(response.data));\n } catch (error) {\n if (error?.response?.status !== 404) {\n logger(error);\n }\n }\n};\n\nconst fetchCharityShippingInfo = charityId => async (dispatch, getState) => {\n if (!charityId) {\n return;\n }\n try {\n const response = await getCharityShippingInfo(charityId);\n\n const isFreeShippingPaidByProviderEnabled = getState().environment\n .featureSwitches['free-shipping-paid-by-provider'];\n\n if (isFreeShippingPaidByProviderEnabled) {\n dispatch(setCharityShippingInfo(response.data));\n if (response.data.freeShippingPaidByProviderName) {\n dispatch({\n type: 'FREE_SHIPPING_PAID_BY_PROVIDER',\n payload: {\n providerName:\n response.data.freeShippingPaidByProviderName\n }\n });\n }\n }\n if (response.data.forceFreeShipping) {\n dispatch({\n type: 'FORCE_FREE_SHIPPING'\n });\n }\n } catch (error) {\n if (error?.response?.status !== 404) {\n logger(error);\n }\n }\n};\n\nconst getCharityShippingInfo = charityId =>\n marketingApiClient.get(`/charity-shipping-info?charityId=${charityId}`, {\n ...axiosConfigs.notAuthenticated,\n cancelTokenId: 'getCharityShippingInfo'\n });\n\nconst getCharity = charityId =>\n marketingApiClient.get(`/syi/charity-details?charityId=${charityId}`, {\n ...axiosConfigs.notAuthenticated,\n cancelTokenId: 'getCharity'\n });\n","export const mapCurrencyCodeToCountryCode = currencyCode => {\n const countryCode = {\n sek: 'SE',\n usd: 'US',\n jpy: 'JP',\n gbp: 'GB',\n nok: 'NO',\n eur: 'EU',\n dkk: 'DK'\n }[currencyCode.toLowerCase()];\n if (!countryCode)\n throw `CurrencyCode ${currencyCode} has no mapping to country code`;\n return countryCode;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n selectCurrencies,\n selectPreferredCurrency,\n setPreferredCurrency\n} from 'tradera-state/multi-currency';\nimport Flag from 'tradera-components/flag/flag';\nimport { mapCurrencyCodeToCountryCode } from 'tradera-utils/map-currency-code-to-country-code';\nimport './currency-select.scss';\nimport { useTranslator } from 'tradera-lang/translate';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\n\nexport const PlainCurrencySelect = ({\n currencies,\n preferredCurrency,\n onCurrencySelected,\n onBlur,\n inProfileMenu\n}) => {\n const { t } = useTranslator();\n return (\n
\n {!inProfileMenu && (\n
\n {t('siteHeader_currency')}\n
\n )}\n {currencies.map(({ code, shortName, longName }) => (\n {\n onCurrencySelected(code, e);\n onBlur();\n }}>\n \n \n {preferredCurrency.code === code ? (\n \n {shortName} - {longName}\n \n ) : (\n <>\n {shortName} - {longName}\n \n )}\n \n {preferredCurrency.code === code && (\n \n )}\n \n ))}\n
\n );\n};\n\nPlainCurrencySelect.propTypes = {\n currencies: PropTypes.arrayOf(\n PropTypes.shape({\n code: PropTypes.string,\n shortName: PropTypes.string,\n longName: PropTypes.string\n })\n ),\n preferredCurrency: PropTypes.shape({\n code: PropTypes.string\n }),\n onCurrencySelected: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n inProfileMenu: PropTypes.bool\n};\n\nconst mapStateToProps = state => ({\n currencies: selectCurrencies(state),\n preferredCurrency: selectPreferredCurrency(state)\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n onCurrencySelected: (code, e) => {\n dispatch(setPreferredCurrency(code));\n ownProps.onCurrencySelected && ownProps.onCurrencySelected(code, e);\n }\n});\n\nexport const CurrencySelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainCurrencySelect);\n","import React, { useEffect, useCallback } from 'react';\nimport PropType from 'prop-types';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport './modal.scss';\n\nconst SimpleModal = ({\n children,\n className,\n classNameBody,\n closeModalCallback,\n style,\n styleBody\n}) => {\n const closeOnEscape = useCallback(\n e => {\n if (e.keyCode === 27) {\n e.preventDefault();\n closeModalCallback(e);\n }\n },\n [closeModalCallback]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', closeOnEscape);\n return () => {\n window.removeEventListener('keydown', closeOnEscape);\n };\n }, [closeOnEscape]);\n\n return (\n \n \n \n {children}\n
\n \n \n );\n};\n\nSimpleModal.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string,\n classNameBody: PropType.string,\n closeModalCallback: PropType.func.isRequired,\n style: PropType.object,\n styleBody: PropType.object\n};\nSimpleModal.defaultProps = {\n className: '',\n classNameBody: '',\n style: {},\n styleBody: {}\n};\n\nexport default SimpleModal;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 3c.6 0 1 .4 1 1v8c0 .6-.4 1-1 1H2c-.6 0-1-.4-1-1V4c0-.6.4-1 1-1h12zm0 1H2v8h.3l4.2-4.3c.2-.2.5-.2.7-.1l.1.1 2.1 2.2.9-.9c.2-.2.5-.2.7 0l2.8 3.1h.2V4zM6.8 8.7L3.7 12h8.7l-1.9-2-.9.9c-.2.2-.5.2-.7 0L6.8 8.7zM11.5 5c.8 0 1.5.7 1.5 1.5S12.3 8 11.5 8 10 7.3 10 6.5 10.7 5 11.5 5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n})));","import React from 'react';\nimport AuctionIcon from '@tradera/blueprint/theme/icons2/auction.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst OngoingAuctionsLink = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n return (\n \n \n \n );\n};\n\nexport default OngoingAuctionsLink;\n","import { useSelector } from 'react-redux';\n\nconst useIsLoggedIn = () => useSelector(state => state.member?.isLoggedIn);\n\nexport default useIsLoggedIn;\n","export const ITEM_CARD_IMAGE_MODES = {\n SQUARE: 'SQUARE',\n NATURAL: 'NATURAL'\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"international-shipping-modal-container\":\"international-shipping-modal-container--1Emfe\",\"internationalShippingModalContainer\":\"international-shipping-modal-container--1Emfe\",\"international-shipping-modal-body-country\":\"international-shipping-modal-body-country--1IU5f\",\"internationalShippingModalBodyCountry\":\"international-shipping-modal-body-country--1IU5f\",\"international-shipping-modal-header\":\"international-shipping-modal-header--2E4PO\",\"internationalShippingModalHeader\":\"international-shipping-modal-header--2E4PO\",\"international-shipping-modal-table\":\"international-shipping-modal-table--2Cobx\",\"internationalShippingModalTable\":\"international-shipping-modal-table--2Cobx\"};","import React from 'react';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from 'static/script/components/modals/modal-container';\nimport ModalHeader from 'static/script/components/modals/modal-header';\nimport ModalBody from 'static/script/components/modals/modal-body';\nimport { connect } from 'react-redux';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { closeModal } from 'tradera-state/ui/action-creators';\nimport { mapCountryCodeToCountryKey } from 'tradera-utils/map-country-code-to-country-key';\nimport { selectShippingCountry } from 'tradera-state/shipping-region/selectors';\nimport { ShippingProviderIcon } from 'tradera-components/shipping/shipping-provider-icon';\nimport MessagingButton from 'tradera-components/messaging/messaging-button';\nimport Flag from 'tradera-components/flag/flag';\nimport { translateBuyerRegionText } from 'tradera-apps/tradera/components/vip-shared/shipping-options/translate-buyer-region-text';\nimport styles from './international-shipping-modal.module.scss';\n\nconst InternationalShippingModal = props => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n let sortedRows = props.internationalShipping.rows\n .map(row => ({\n ...row,\n country: t(mapCountryCodeToCountryKey(row.toCountryCodeIso2))\n }))\n .sort((a, b) => (a.country > b.country ? 1 : -1));\n const ownCountryRow = sortedRows.find(\n row =>\n row.toCountryCodeIso2.toLowerCase() ===\n props.shippingCountryCode.toLowerCase()\n ) || {\n country: t(mapCountryCodeToCountryKey(props.shippingCountryCode)),\n toCountryCodeIso2: props.shippingCountryCode\n };\n sortedRows = removeDuplicateOwnCountryRowIfOnlyRow(\n props.shippingCountryCode,\n sortedRows\n );\n\n const buyerRegionText = translateBuyerRegionText(\n t,\n props.internationalShipping.allowedBuyerRegion\n );\n\n return (\n \n
{t('internationalShippingModal_title')}
\n
\n \n \n {props.internationalShipping.title}\n \n \n {t('internationalShippingModal_readMore')}\n \n
\n
\n {buyerRegionText}\n {props.internationalShipping.fromCountryCodeIso2 !==\n props.shippingCountryCode && (\n <>\n {' '}\n {t('vip_from_country_text', {\n shippingOptionCountry: t(\n mapCountryCodeToCountryKey(\n props.internationalShipping\n .fromCountryCodeIso2\n )\n )\n })}{' '}\n \n \n )}\n
\n \n }\n body={\n props.internationalShipping.providers.length ? (\n \n \n \n \n {t(\n 'internationalShippingModal_destination'\n )}\n \n {props.internationalShipping.providers.map(\n provider => {\n return (\n \n {getProviderCell(provider, t)}\n \n );\n }\n )}\n \n \n \n \n \n {t(\n 'internationalShippingModal_providerWeight'\n )}\n \n {props.internationalShipping.weights.map(\n (weight, i) => (\n \n {weight ? `${weight} kg` : 'N/A'}\n \n )\n )}\n \n {\n \n }\n {sortedRows.map(row => (\n \n ))}\n \n \n ) : (\n
\n {t('internationalShippingModal_noShippingInfo')}\n \n {getMessagingCell(\n props.internationalShipping.messagingLink,\n props.internationalShipping.ownItem,\n t\n )}\n \n
\n )\n }\n />\n );\n};\n\nconst Modal = ({ closeModal, header, body }) => (\n \n \n \n {header}\n \n \n {body}\n \n \n \n);\n\nconst getMessagingCell = (\n { buyerId, sellerId, itemId, source, isLoggedIn, memberId },\n ownItem,\n t\n) =>\n !isLoggedIn ? (\n \n {t('internationalShippingModal_logIn')}\n \n ) : ownItem ? (\n ''\n ) : (\n \n );\n\nconst getValueCell = (row, provider, isOwnRow, messagingLink, ownItem, t) => {\n const getEmptyCell = () =>\n isOwnRow ? getMessagingCell(messagingLink, ownItem, t) : '-';\n\n return row[provider] || row[provider] === 0\n ? t('internationalShippingModal_currency', {\n price: row[provider]\n })\n : getEmptyCell();\n};\n\nconst getProviderIcon = provider => (\n \n);\nconst providerImageMap = {\n DHL: () => getProviderIcon('DHL'),\n Bussgods: () => getProviderIcon('Bussgods'),\n Posten: () => getProviderIcon('Posten'),\n PostNordParcel: () => getProviderIcon('PostNordParcel'),\n PostNordStamp: () => getProviderIcon('PostNordStamp'),\n Schenker: () => getProviderIcon('Schenker'),\n SchenkerPrivpak: () => getProviderIcon('SchenkerPrivpak'),\n Alternative: t => t('internationalShippingModal_other')\n};\n\nconst getProviderCell = (provider, t) =>\n providerImageMap[provider] ? providerImageMap[provider](t) : provider;\n\nconst removeDuplicateOwnCountryRowIfOnlyRow = (ownShippingCountryCode, rows) =>\n rows.length === 1 && rows[0].toCountryCodeIso2 === ownShippingCountryCode\n ? []\n : rows;\n\nconst ShippingRow = ({\n row,\n providers,\n t,\n isOwnRow,\n messagingLink,\n ownItem\n}) => (\n \n \n \n {row.country}\n {isOwnRow && (\n \n )}\n \n \n {providers.map((provider, i) => {\n return (\n \n {getValueCell(\n row,\n provider,\n isOwnRow,\n messagingLink,\n ownItem,\n t\n )}\n \n );\n })}\n \n);\n\nconst mapStateToProps = state => ({\n internationalShipping: state.internationalShipping,\n shippingCountryCode: selectShippingCountry(state)?.countryCodeIso2\n});\n\nconst mapDispatchToProps = {\n closeModal\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(InternationalShippingModal);\n\nexport { InternationalShippingModal };\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport InternationalShippingModal from 'tradera-components/international-shipping-modal/international-shipping-modal';\nimport { INTERNATIONAL_SHIPPING_MODAL_ID } from 'tradera-components/international-shipping-modal/constants';\nimport {\n InternationalIdentificationModal,\n internationalIdentificationModalId\n} from 'tradera-components/international-identification-modal/international-identification-modal';\n\nconst ModalRenderer = props => (\n
\n {\n {\n [INTERNATIONAL_SHIPPING_MODAL_ID]: (\n \n ),\n [internationalIdentificationModalId]: (\n \n )\n }[props.currentModal]\n }\n
\n);\n\nexport default connect(state => state.ui.modals)(ModalRenderer);\n\nexport { ModalRenderer };\n","import actionTypes from './action-types';\nimport { getCategoryList, getTopLevelCategories } from './api';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { reload } from 'tradera-utils/location';\n\nconst fetchTopLevelCategories = () => (dispatch, getState) => {\n dispatch(requestCategoryList());\n const { initData } = getState();\n\n return getTopLevelCategories(initData.version)\n .then(results => dispatch(receiveTopLevelCategories(results.data)))\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.VERSION_MISMATCH:\n reload(true);\n break;\n case API_ERRORS.CANCELLED:\n break;\n default:\n dispatch(handleTopLevelCategoriesError(error));\n break;\n }\n });\n};\n\nconst fetchCategoryList = () => (dispatch, getState) => {\n dispatch(requestCategoryList());\n const { initData } = getState();\n\n return getCategoryList(initData.version)\n .then(results => dispatch(receiveCategoryList(results.data)))\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.VERSION_MISMATCH:\n reload(true);\n break;\n case API_ERRORS.CANCELLED:\n break;\n default:\n dispatch(handleCategoryListError(error));\n break;\n }\n });\n};\n\nconst requestCategoryList = payload => ({\n type: actionTypes.REQUEST_CATEGORY_LIST,\n payload\n});\n\nconst receiveCategoryList = payload => ({\n type: actionTypes.RECEIVE_CATEGORY_LIST,\n payload\n});\n\nconst receiveTopLevelCategories = payload => ({\n type: actionTypes.RECEIVE_TOP_LEVEL_CATEGORIES,\n payload\n});\n\nconst handleCategoryListError = payload => ({\n type: actionTypes.HANDLE_CATEGORY_LIST_ERROR,\n payload\n});\n\nconst handleTopLevelCategoriesError = payload => ({\n type: actionTypes.HANDLE_TOP_LEVEL_CATEGORIES_ERROR,\n payload\n});\n\nexport default {\n fetchCategoryList,\n fetchTopLevelCategories\n};\n","import { touchWebClient } from 'tradera-utils/http';\n\nexport const getCategoryList = () =>\n touchWebClient.get('categories', { cancelTokenId: 'getCategoryList' });\n\nexport const getTopLevelCategories = () =>\n touchWebClient.get('top-level-categories', {\n cancelTokenId: 'getTopLevelCategories'\n });\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang/translate';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { ViewItemCarouselZoom } from 'tradera-components/carousels/view-item-carousel';\nimport { LocalLoader } from 'tradera-components/loader';\nimport HeartIcon from '@tradera/blueprint/theme/icons2/heart.svg?jsx';\nimport HeartFillIcon from '@tradera/blueprint/theme/icons2/heart-fill.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nimport uiActions from 'tradera-state/ui/actions';\nimport itemActions from 'tradera-state/items/actions';\n\nimport './quick-view-modal.scss';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\n\nconst QuickView = ({\n dispatch,\n itemIds,\n open,\n isLoggedIn,\n item,\n currentItem,\n loading,\n existsInWishList\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n\n if (open !== 'open') {\n return null;\n }\n\n const { imageFormats, shortDescription, url } = item;\n\n const handleModalDismiss = () => {\n dispatch(uiActions.closeQuickView());\n };\n\n const handleWishlistClick = () => {\n if (!isLoggedIn) {\n handleModalDismiss();\n }\n dispatch(itemActions.wishlist(item.itemId));\n };\n\n const handlePreviousClick = () => {\n const prevItem = itemIds[itemIds.indexOf(currentItem) - 1];\n dispatch(\n uiActions.openQuickView({\n itemId: prevItem,\n openedFrom: 'Quick View'\n })\n );\n };\n\n const handleNextClick = () => {\n const nextItem = itemIds[itemIds.indexOf(currentItem) + 1];\n dispatch(\n uiActions.openQuickView({\n itemId: nextItem,\n openedFrom: 'Quick View'\n })\n );\n };\n\n const disableNext = itemIds.indexOf(currentItem) === itemIds.length - 1;\n const disablePrev = itemIds.indexOf(currentItem) < 1;\n\n return (\n \n {\n if (e.keyCode === 39 && !disableNext) {\n handleNextClick();\n } else if (e.keyCode === 37 && !disablePrev) {\n handlePreviousClick();\n }\n }}>\n \n handleModalDismiss()}>\n \n \n \n
\n {!imageFormats ? (\n
\n \n
\n ) : (\n \n )}\n
\n
\n
\n

\n {shortDescription}\n

\n
\n
\n
\n
\n handleWishlistClick()}>\n {existsInWishList ? (\n \n ) : (\n \n )}\n {existsInWishList\n ? t('mytQuickView_savedInWishlist')\n : t('mytQuickView_saveInWishlist')}\n \n {\n GtmService.trackAction(\n 'Quick View',\n 'Navigation',\n 'View full listing'\n );\n }}>\n {t('mytQuickView_viewFullListing')}\n \n
\n
\n \n {loading && (\n \n \n \n )}\n \n );\n};\n\nQuickView.propTypes = {\n itemIds: PropTypes.array.isRequired,\n open: PropTypes.string,\n item: PropTypes.object,\n currentItem: PropTypes.number,\n dispatch: PropTypes.func,\n loading: PropTypes.bool,\n existsInWishList: PropTypes.bool\n};\n\nconst mapStateToProps = state => ({\n itemIds: state.ui.quickView.itemIds,\n open: state.ui.quickView.open,\n isLoggedIn: state.member.isLoggedIn,\n item: state.items.cache[state.ui.quickView.currentItem] || null,\n currentItem: state.ui.quickView.currentItem,\n loading: state.ui.quickView.loading,\n existsInWishList: state.items.wishListItemIds.includes(\n state.ui.quickView.currentItem\n )\n});\n\nexport default connect(mapStateToProps)(QuickView);\n","export const generateItemCardPlaceholders = itemCount =>\n [...new Array(itemCount)].map((_, index) => ({\n itemId: index,\n shortDescription: ''\n }));\n","import React from 'react';\nimport { useTranslator, useCurrentLanguage } from 'tradera-lang/translate';\nimport { formatPrice } from '@tradera/blueprint/utils';\nimport Flag from 'tradera-components/flag/flag';\nimport MultiCurrency from 'tradera-components/multi-currency/multi-currency';\nimport { isSwedenCountryCodeOrUndefined } from 'tradera-utils/countrycode';\n\nconst ShippingDisplay = ({\n buyerCountryCode,\n shippingOptions,\n shippingPriceRange,\n preferredCurrency,\n isSellpyCheckout\n}) => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n\n // TODO: Remove the \"x kr\" or \"x SEK\" in backend instead\n const removeCostInShippingOption = option =>\n option.replace(/\\s*\\d+\\s*kr$/, '').replace(/\\s*\\d+\\s*SEK$/, '');\n\n const isFromAndToCountryDifferent = shippingOptions.some(\n ({ fromCountryCodeIso2, toCountryCodeIso2 }) =>\n fromCountryCodeIso2 !== toCountryCodeIso2\n );\n let displayOptions = shippingOptions;\n if (buyerCountryCode !== undefined && isFromAndToCountryDifferent) {\n displayOptions = [\n ...displayOptions.filter(\n option => option.toCountryCodeIso2 === buyerCountryCode\n )\n ];\n }\n\n const shippingOptionsPart = (\n <>\n {!shippingPriceRange &&\n displayOptions.map((shippingOption, index) => {\n const description = removeCostInShippingOption(\n shippingOption.displayText\n );\n const shouldShowFromCountry =\n !isSwedenCountryCodeOrUndefined(\n shippingOption.fromCountryCodeIso2\n ) &&\n shippingOption.fromCountryCodeIso2 !==\n shippingOption.toCountryCodeIso2;\n return (\n \n {shouldShowFromCountry && (\n \n )}\n
\n {description}\n
\n
\n
\n {formatPrice(\n shippingOption.cost,\n language,\n preferredCurrency\n )}\n
\n \n
\n \n );\n })}\n {shippingPriceRange && (\n
\n
\n {t('checkout_shipping_priceRange', {\n min: shippingPriceRange.minPrice,\n max: shippingPriceRange.maxPrice\n })}\n
\n {isSellpyCheckout && (\n
\n {t('cart_sellpyShippingRange')}\n
\n )}\n
\n )}\n \n );\n\n return (\n
\n
\n \n {shippingPriceRange\n ? t('checkout_bin_shippingPriceRange')\n : t('checkout_bin_shippingOptions')}\n :\n \n
\n
\n {shippingOptionsPart}\n
\n
\n
{shippingOptionsPart}
\n
\n
\n );\n};\n\nexport default ShippingDisplay;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport qs from 'qs';\n\nconst specialSearchTerms = {\n stammisglaset: '/campaign/stammisglaset'\n};\n\n/**\n *\n * @param {string} searchTerm search term\n * @param {object} queryParams query paramters of the current page\n * @param {int} currentCategoryId id of the current selected category\n * @param {array} allCategories array with all the categories\n */\nexport const getNewSearchUrl = (\n searchTerm,\n queryParams,\n currentCategoryId,\n allCategories\n) => {\n // Search with search term\n if (searchTerm) {\n // ----------------------------------\n // Special case redirects\n const specialTermUrl = specialSearchTerms[searchTerm.toLowerCase()];\n if (specialTermUrl) {\n return specialTermUrl;\n }\n\n // Filter out params not to pass on in query reformulation\n const {\n q,\n categoryId,\n paging,\n spage,\n ...filteredQueryParams\n } = queryParams;\n\n // Query reformulation = First \"Nike\" and then \"Nike air\" or the other way around\n const isQueryReformulation =\n searchTerm.includes(q) || (q && q.includes(searchTerm));\n\n return (\n ENDPOINTS.SEARCH +\n qs.stringify(\n {\n // Keep\n ...(isQueryReformulation ? filteredQueryParams : {}),\n q: searchTerm,\n categoryId: currentCategoryId\n ? currentCategoryId\n : undefined\n },\n {\n addQueryPrefix: true\n }\n )\n );\n }\n\n if (currentCategoryId > 0) {\n // Search without search term, just category\n const currentCategory = allCategories.find(\n category => category.id === currentCategoryId\n );\n\n if (currentCategory) {\n return currentCategory.href;\n }\n return;\n }\n // Fall back to category page for empty search\n return '/kategorier';\n};\n\n/**\n *\n * @param {function} t translator function\n * @param {array} allCategories all categories\n * @param {array} categoryPath path to the current category. it's in the reverse order\n * @param {int} currentCategoryId id of the current category\n */\nexport const getCategoryDropdownConfig = (\n t,\n allCategories,\n categoryPath,\n currentCategoryId\n) => {\n const allCategoriesOption = {\n id: 0,\n name: t('searchSelect_allCategories'),\n isTopLevel: false,\n selected: false\n };\n\n const optionDivider = {\n id: 0,\n isTopLevel: false,\n name: '------------------',\n selected: false\n };\n\n /**\n * Strip \"all categories\" (may be multiple) from categorypath\n * Add rest of categorypath\n * Add \"all categories\"\n * Add all level1 categories\n */\n const optionsList = [\n ...categoryPath.filter(category => category.id !== 0),\n allCategoriesOption,\n optionDivider,\n ...allCategories\n ];\n\n /**\n * Get selected category from list, fallback to \"all categories\"\n */\n const selectedOption =\n optionsList.find(category => category.id === currentCategoryId) ||\n allCategoriesOption;\n\n return {\n selectedOption,\n optionsList\n };\n};\n\nexport const getNextIndex = (incrementBy, currentIndex, totalElements) => {\n if (currentIndex === null) {\n currentIndex = incrementBy > 0 ? -1 : 0;\n }\n\n let newIndex = currentIndex + incrementBy;\n if (newIndex < 0) {\n return totalElements - 1;\n }\n if (newIndex >= totalElements) {\n return 0;\n }\n return newIndex;\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\n\nconst SearchCategory = ({\n handleCategoryChange,\n selectOptions,\n selectedCategoryId,\n chosenCategory\n}) => {\n if (!selectOptions) {\n return null;\n }\n\n const isDefaultSelected = selectedCategoryId === 0;\n\n return (\n \n \n {chosenCategory.name}\n \n \n \n \n \n {selectOptions.map((option, index) => {\n return (\n option && (\n \n )\n );\n })}\n \n \n );\n};\n\nSearchCategory.propTypes = {\n handleCategoryChange: PropTypes.func,\n selectOptions: PropTypes.array,\n selectedCategoryId: PropTypes.number,\n chosenCategory: PropTypes.object\n};\n\nexport default SearchCategory;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect, useDispatch } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\n\nimport PAGE_TYPES from 'tradera-constants/page-types';\nimport discoverActions from 'tradera-state/discover/actions';\nimport { debounce } from 'packages';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { getSuggestions, addRecentSearch } from './helpers/suggestions-api';\nimport {\n trackSearch,\n trackSearchCategoryChanges,\n trackResetButton\n} from './helpers/search.analytics';\nimport {\n getNewSearchUrl,\n getCategoryDropdownConfig,\n getNextIndex\n} from './helpers/helper';\n\nimport SearchCategory from 'components/search-category/search-category';\nimport SearchInput from './components/search-input';\nimport SearchSuggestion from './components/search-suggestion';\n\nexport const KEYCODE = {\n ENTER: 13,\n ESC: 27,\n UP: 38,\n DOWN: 40\n};\n\nexport const MIN_CHARS_FOR_SUGGESTIONS = 2;\n\nexport const Search = ({\n inSPA,\n allCategories = [],\n categoryPath = [],\n inputClassName = '',\n placeholderText = null,\n discoverCurrentCategoryId = 0,\n discoverSearchTerm = '',\n queryParams,\n history\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const searchSuggestionsElementRef = React.createRef();\n const searchInputRef = React.createRef();\n\n const [currentCategoryId, setCurrentCategoryId] = useState(\n discoverCurrentCategoryId\n );\n const [isSearchInputFocused, setIsSearchInputFocused] = useState(false);\n const [searchTerm, setSearchTerm] = useState(discoverSearchTerm || '');\n const [suggestions, setSuggestions] = useState([]);\n const [selectedSuggestionIndex, setSelectedSuggestionIndex] = useState(\n null\n );\n\n useEffect(() => {\n setCurrentCategoryId(discoverCurrentCategoryId);\n }, [discoverCurrentCategoryId]);\n\n useEffect(() => {\n setSearchTerm(discoverSearchTerm);\n }, [discoverSearchTerm]);\n\n const loadSuggestionsDebounce = debounce(async (searchTerm, callback) => {\n const suggestions = await getSuggestionsWrapper(searchTerm);\n if (suggestions) {\n callback(suggestions);\n }\n }, 200);\n\n /**\n * this function wraps the getSuggestions and makes sure the paramters to the getSuggestions are consistent\n * @param {string} searchTerm\n */\n const getSuggestionsWrapper = async searchTerm => {\n const enableSuggestionsFromBackend =\n searchTerm.length >= MIN_CHARS_FOR_SUGGESTIONS;\n const suggestions = await getSuggestions({\n searchTerm,\n limitPrevious: enableSuggestionsFromBackend ? 3 : 7,\n enablePrevious: true,\n enableSuggestions: enableSuggestionsFromBackend\n });\n return suggestions;\n };\n\n const handleUpDownArrowKeys = keyCode => {\n let incrementBy = null;\n if (keyCode === KEYCODE.DOWN) {\n incrementBy = 1;\n } else if (keyCode === KEYCODE.UP) {\n incrementBy = -1;\n }\n if (incrementBy !== null) {\n const newIndex = getNextIndex(\n incrementBy,\n selectedSuggestionIndex,\n suggestions.length\n );\n setSelectedSuggestionIndex(newIndex);\n }\n };\n\n const handleUserKeyUp = evt => {\n switch (evt.which) {\n case KEYCODE.ESC:\n evt.target.blur();\n return;\n\n case KEYCODE.ENTER:\n // eslint-disable-next-line no-case-declarations\n const suggestions = searchSuggestionsElementRef.current?.querySelectorAll(\n '[data-suggestion]'\n );\n\n if (suggestions && suggestions[selectedSuggestionIndex]) {\n evt.preventDefault();\n suggestions[selectedSuggestionIndex].click();\n }\n return;\n\n case KEYCODE.DOWN:\n case KEYCODE.UP:\n handleUpDownArrowKeys(evt.which);\n return;\n }\n };\n\n const loadSearchSuggestions = async newSearchTerm => {\n setSelectedSuggestionIndex(null);\n setSearchTerm(newSearchTerm);\n setIsSearchInputFocused(true);\n\n if (typeof newSearchTerm !== 'string') return null;\n\n if (newSearchTerm.length >= MIN_CHARS_FOR_SUGGESTIONS) {\n loadSuggestionsDebounce(newSearchTerm, suggestions => {\n setSuggestions(suggestions);\n });\n return;\n }\n const suggestions = await getSuggestionsWrapper(newSearchTerm);\n\n setSuggestions(suggestions);\n };\n\n const handleUserInputChange = evt =>\n loadSearchSuggestions(evt.target.value);\n\n const handleBlur = () => setIsSearchInputFocused(false);\n\n const handleFocus = () => {\n loadSearchSuggestions(searchTerm);\n };\n\n const handlePreviousSearchRemoved = () => {\n loadSearchSuggestions(searchTerm);\n };\n\n const handleCategoryChange = event => {\n const currentCategoryId = parseInt(event.target.value, 10);\n setCurrentCategoryId(currentCategoryId);\n dispatch(discoverActions.setCurrentCategoryId(currentCategoryId));\n trackSearchCategoryChanges(event);\n };\n\n const changeWindowLocation = newQuery => {\n // Trim search term to avoid empty searches\n const trimmedSearchTerm = newQuery.trim();\n let newSearchUrl = getNewSearchUrl(\n trimmedSearchTerm,\n queryParams,\n currentCategoryId,\n [...allCategories, ...categoryPath]\n );\n\n // Search with search term\n if (trimmedSearchTerm) {\n addRecentSearch(trimmedSearchTerm);\n trackSearch(trimmedSearchTerm);\n }\n if (inSPA) {\n searchInputRef.current.blur();\n history.push(toLocalizedUrl(newSearchUrl));\n } else {\n window.location.href = toLocalizedUrl(newSearchUrl);\n }\n setIsSearchInputFocused(false);\n };\n\n const handleFormSubmit = event => {\n event.preventDefault();\n changeWindowLocation(searchTerm);\n };\n\n const clearSearchInputAndGoToBrowse = event => {\n event.preventDefault();\n trackResetButton();\n setSearchTerm('');\n changeWindowLocation('');\n };\n\n const handleSuggestionsChangingSearchTerm = newSearchTerm => {\n // fixes case when user is on the same url as the current selected serach term. To reproduce:\n // 1. search tröja\n // 2. change the search term in the search box to \"tröj\" without hitting enter\n // 3. now you get previous searches \"tröja\", click on it\n // 4. without next line nothing will happen\n if (newSearchTerm !== searchTerm) {\n setSearchTerm(newSearchTerm);\n }\n setIsSearchInputFocused(false);\n searchInputRef.current.blur();\n };\n\n const {\n selectedOption: selectedCategory,\n optionsList: categorySelectOptions\n } = getCategoryDropdownConfig(\n t,\n allCategories,\n categoryPath,\n currentCategoryId\n );\n\n return (\n \n }\n inputClassName={inputClassName}\n placeholderText={placeholderText}\n onBlur={handleBlur}\n onClearSearchInput={clearSearchInputAndGoToBrowse}\n onFocus={handleFocus}\n onFormSubmit={handleFormSubmit}\n onUserInputChange={handleUserInputChange}\n onUserKeyUp={handleUserKeyUp}\n searchInputRef={searchInputRef}\n searchTerm={searchTerm}\n selectedCategory={selectedCategory}\n suggestionsElement={\n \n }\n />\n );\n};\n\nconst mapStateToProps = state => {\n const pageType = state.page.type;\n let categoryPath = undefined;\n let discoverCurrentCategoryId = 0;\n let discoverSearchTerm = '';\n\n // Reflect search state on search & category pages\n if (\n [\n PAGE_TYPES.SEARCH_RESULT_PAGE,\n PAGE_TYPES.CATEGORY_RESULT_PAGE\n ].includes(pageType)\n ) {\n categoryPath = state.discover.categoryPath;\n discoverCurrentCategoryId = state.discover.currentCategoryId;\n discoverSearchTerm = state.discover.queryParams?.q || '';\n }\n\n return {\n allCategories: state.page.allCategories,\n categories: state.categories,\n categoryPath,\n discoverCurrentCategoryId,\n queryParams: state.discover.queryParams,\n discoverSearchTerm\n };\n};\n\nSearch.propTypes = {\n inSPA: PropTypes.bool.isRequired,\n allCategories: PropTypes.array,\n categoryPath: PropTypes.array,\n placeholderText: PropTypes.string,\n discoverCurrentCategoryId: PropTypes.number,\n queryParams: PropTypes.object\n};\n\nconst ConnectedSearch = connect(mapStateToProps)(Search);\nexport const SearchInSpa = withRouter(ConnectedSearch);\nexport const SearchOutsideSpa = ConnectedSearch;\n","import { Analytics } from 'packages';\n\nexport const trackSearchCategoryChanges = evt => {\n const selectBox = evt.target;\n const selectedOption =\n selectBox &&\n selectBox.selectedOptions &&\n selectBox.selectedOptions.length > 0 &&\n selectBox.selectedOptions[0];\n if (!selectedOption) {\n return;\n }\n Analytics.trackEvent({\n category: 'User search',\n action: 'Top search box Category dropdown',\n label: selectedOption.text\n });\n};\n\nexport const trackSearch = label => {\n Analytics.trackEvent({\n category: 'User search',\n action: 'Search Query',\n label: label\n });\n};\n\nexport const trackResetButton = () => {\n Analytics.trackEvent({\n category: 'User search',\n action: ' Top search box Reset'\n });\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zM3 8.2L4.2 7l2.4 2.5L11.8 4 13 5.3 6.6 12 3 8.2z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n})));","export const translateBuyerRegionText = (t, allowedBuyerRegion) => {\n switch (allowedBuyerRegion) {\n case 'Sweden':\n return t('vip_buyer_region_text_sweden');\n case 'Nordic':\n return t('vip_buyer_region_text_nordic');\n case 'EU':\n return t('vip_buyer_region_text_eu');\n case 'International':\n return t('vip_buyer_region_text_international');\n default:\n return allowedBuyerRegion;\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst MenuItemSeparator = ({ label, className, style }) => (\n \n {label}\n \n);\n\nMenuItemSeparator.defaultProps = {\n className: '',\n style: {}\n};\n\nMenuItemSeparator.propTypes = {\n label: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.object\n};\n\nexport default MenuItemSeparator;\n","import { useLayoutEffect, useState } from 'react';\nimport { isMobile } from 'tradera-utils/breakpoints';\n\nexport function useBreakpointMobile() {\n const [active, setActive] = useState(isMobile(window.innerWidth));\n useLayoutEffect(() => {\n const handleResize = event =>\n setActive(isMobile(event.target.innerWidth));\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n });\n return active;\n}\n","import { useEffect } from 'react';\n\nexport const useOnMount = fn => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(fn, []);\n};\n","import { useEffect } from 'react';\n\nconst useScrollToTopOnMount = () => {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n return null;\n};\n\nexport { useScrollToTopOnMount };\n","export const getMessagingUrl = toLocalizedUrl =>\n toLocalizedUrl(`${window.origin}/messagingiframe`);\n","import React, { useState } from 'react';\nimport { FixedSizeList } from 'react-window';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport ArrowDownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { mapCountryCodeToCountryKey } from 'tradera-utils/map-country-code-to-country-key';\nimport Flag from 'tradera-components/flag/flag';\nimport './shipping-country-select-dropdown.scss';\n\nexport const ShippingCountrySelectDropdown = ({\n shippingCountries,\n selectedShippingCountry,\n onSelect\n}) => {\n const { t } = useTranslator();\n const [searchFocus, setSearchFocus] = useState(false);\n const [search, setSearch] = useState('');\n const [isSearchEnabled, setIsSearchEnabled] = useState(false);\n const includesSearch = v => v.toLowerCase().includes(search.toLowerCase());\n const filteredShippingCountries = shippingCountries\n .map(countryCodeIso2 => ({\n countryCodeIso2,\n name: t(mapCountryCodeToCountryKey(countryCodeIso2))\n }))\n .filter(\n ({ name, countryCodeIso2 }) =>\n includesSearch(name) || includesSearch(countryCodeIso2)\n );\n\n const listStyle = {\n height:\n filteredShippingCountries.length < 6\n ? `${(filteredShippingCountries.length || 1) * 35}px`\n : '165px'\n };\n\n const Row = ({ index, style }) => (\n \n \n onSelect(filteredShippingCountries[index].countryCodeIso2)\n }>\n \n {filteredShippingCountries[index].name}\n \n \n );\n\n return (\n <>\n \n {!isSearchEnabled ? (\n <>\n {\n setIsSearchEnabled(true);\n setSearchFocus(true);\n }}>\n {t(\n mapCountryCodeToCountryKey(\n selectedShippingCountry.countryCodeIso2\n )\n )}\n \n \n \n ) : (\n <>\n setSearch(e.target.value)}\n onFocus={() => setSearchFocus(true)}\n onBlur={() => {\n setTimeout(() => {\n setSearchFocus(false);\n }, 100);\n }}\n />\n {\n setSearch('');\n setSearchFocus(false);\n setIsSearchEnabled(false);\n }}>\n \n \n \n )}\n \n \n {isSearchEnabled && (search || searchFocus) && (\n e.preventDefault()}\n style={listStyle}>\n {filteredShippingCountries.length > 0 ? (\n \n {({ height, width }) => (\n \n {Row}\n \n )}\n \n ) : (\n
\n
\n {t('siteHeader_shippingCountryNoResults')}\n
\n
\n )}\n \n )}\n
\n \n );\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport {\n selectAvailableShippingCountries,\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 Spinner from 'components/spinner/spinner';\nimport { ShippingCountrySelectDropdown } from './shipping-country-select-dropdown';\n\nconst PlainShippingCountrySelect = ({\n getAvailableShippingCountries,\n shippingCountry,\n shippingCountries,\n updateShippingRegion,\n showShippingCountries,\n isLoadingAvailableShippingCountries,\n onShippingCountrySelected\n}) => {\n const { t } = useTranslator();\n\n useEffect(getAvailableShippingCountries, [getAvailableShippingCountries]);\n\n return (\n
\n \n {t('siteHeader_shippingCountry')}\n \n
\n {isLoadingAvailableShippingCountries && (\n
\n \n
\n )}\n {showShippingCountries && (\n {\n onShippingCountrySelected(countryCodeIso2);\n updateShippingRegion(countryCodeIso2);\n }}\n />\n )}\n
\n
\n );\n};\n\nPlainShippingCountrySelect.propTypes = {\n shippingCountries: PropTypes.arrayOf(PropTypes.string),\n shippingCountry: PropTypes.object,\n updateShippingRegion: PropTypes.func,\n getAvailableShippingCountries: PropTypes.func.isRequired,\n showShippingCountries: PropTypes.bool,\n isLoadingAvailableShippingCountries: PropTypes.bool,\n onShippingCountrySelected: PropTypes.func.isRequired\n};\n\nconst mapStateToProps = state => ({\n shippingCountry: selectShippingCountry(state),\n shippingCountries: selectAvailableShippingCountries(state),\n isLoadingAvailableShippingCountries: selectIsLoadingAvailableShippingCountries(\n state\n ),\n showShippingCountries:\n selectHasLoadedAvailableShippingCountries(state) &&\n !selectIsLoadingAvailableShippingCountries(state)\n});\n\nconst mapDispatchToProps = {\n updateShippingRegion,\n getAvailableShippingCountries\n};\n\nexport const ShippingCountrySelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainShippingCountrySelect);\n","import React from 'react';\nimport { LanguageSelect } from './language-select';\nimport { ShippingCountrySelect } from './shipping-country-select';\n\nexport const LocalizationMenu = ({ onBlur, showRegionSelection }) => (\n
\n {showRegionSelection && (\n <>\n \n
\n \n )}\n <>\n \n
\n \n
\n);\n","import { getTimeSpanParts, TIME_SPAN_UNITS } from 'tradera-utils/date';\nimport { formatEndDate } from './format';\n\nconst DAY_IN_SECONDS = 24 * 60 * 60;\nconst HOUR_IN_SECONDS = 60 * 60;\nconst MINUTE_IN_SECONDS = 60;\n\nconst TIME_LEFT_DAY_LIMIT = 24 * 60 * 60;\nconst TIME_LEFT_HOUR_LIMIT = 60 * 60;\nconst TIME_LEFT_MINUTE_LIMIT = 60;\n\nexport const formatVipTimeLeft = (secondsLeft, t) => {\n const hoursOrEmpty = (hours, t) =>\n hours ? t('vip_hours', { count: hours }) : '';\n\n const minutesOrEmpty = (minutes, t) =>\n minutes ? t('vip_minutes', { count: minutes }) : '';\n\n if (secondsLeft < 1) {\n return '';\n }\n let formattedTimeLeft;\n if (secondsLeft > TIME_LEFT_DAY_LIMIT) {\n const { days, hours } = getTimeSpanParts(secondsLeft, {\n endUnit: TIME_SPAN_UNITS.HOURS\n });\n formattedTimeLeft = (\n t('vip_days', { count: days }) +\n ' ' +\n hoursOrEmpty(hours, t)\n ).trim();\n } else if (secondsLeft > TIME_LEFT_HOUR_LIMIT) {\n const { hours, minutes } = getTimeSpanParts(secondsLeft, {\n startUnit: TIME_SPAN_UNITS.HOURS,\n endUnit: TIME_SPAN_UNITS.MINUTES\n });\n formattedTimeLeft = (\n t('vip_hours', { count: hours }) +\n ' ' +\n minutesOrEmpty(minutes, t)\n ).trim();\n } else if (secondsLeft > TIME_LEFT_MINUTE_LIMIT) {\n const { minutes, seconds } = getTimeSpanParts(secondsLeft, {\n startUnit: TIME_SPAN_UNITS.MINUTES,\n endUnit: TIME_SPAN_UNITS.SECONDS\n });\n formattedTimeLeft =\n t('vip_minutes', { count: minutes }) +\n ' ' +\n t('vip_seconds', { count: seconds || 0 });\n } else {\n formattedTimeLeft = t('vip_seconds', { count: secondsLeft });\n }\n return formattedTimeLeft;\n};\n\nexport const formatItemCardTimeLeft = (secondsLeft, t, endDate, serverDate) => {\n if (Number.isInteger(secondsLeft)) {\n if (secondsLeft > DAY_IN_SECONDS) {\n return formatEndDate(endDate, t, serverDate);\n }\n\n if (secondsLeft > HOUR_IN_SECONDS) {\n const ifValueNotZeroShowLabel = (label, value) =>\n value > 0 ? ' ' + t(label, { count: value }) : '';\n const hours = Math.floor(secondsLeft / HOUR_IN_SECONDS);\n const minutes = Math.floor(\n Math.floor(secondsLeft % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS\n );\n return (\n t('vip_hours', { count: hours }) +\n ifValueNotZeroShowLabel('vip_minutes', minutes)\n );\n }\n\n if (secondsLeft > 2 * MINUTE_IN_SECONDS) {\n const minutes = Math.floor(secondsLeft / MINUTE_IN_SECONDS);\n return t('vip_minutes', { count: minutes });\n }\n\n return t('vip_seconds', { count: secondsLeft });\n } else {\n return '';\n }\n};\n","import { toLocalizedRiotUrl } from './../utils/language';\nimport history from '../../app_react/history';\n\nconst goToStart = function() {\n history.push(toLocalizedRiotUrl('/selling/'));\n};\n\nconst goToSummary = function(draftId) {\n history.push(toLocalizedRiotUrl('/selling/summary/' + draftId));\n};\n\nconst goToPublished = function(itemId) {\n history.push(toLocalizedRiotUrl('/selling/published/' + itemId));\n};\n\nconst setDraftUrlWithoutReload = function(draftId) {\n window.history.replaceState(\n {},\n document.title,\n toLocalizedRiotUrl('/selling/draft/' + draftId)\n );\n};\n\nexport default {\n goToStart,\n goToSummary,\n goToPublished,\n setDraftUrlWithoutReload\n};\n","import { useCallback, useEffect } from 'react';\n\nconst intervals = {};\n\n/**\n * Set up an periodical call to a component callback.\n * Intervals with the same period time are reused.\n * The interval can be cancelled with the returned function. It also cancels itself when no component uses it.\n *\n * @param {function} callback\n * @param {int} period - Milliseconds\n * @returns {function}\n */\nexport function useTicker(callback, period) {\n // Remove callback from interval and cancel interval if no callbacks remain\n const cleanup = useCallback(() => {\n if (intervals[period]) {\n intervals[period].callbacks = intervals[period].callbacks.filter(\n cb => cb !== callback\n );\n if (intervals[period].callbacks.length === 0) {\n clearInterval(intervals[period].intervalId);\n intervals[period] = undefined;\n }\n }\n }, [callback, period]);\n\n useEffect(() => {\n if (period <= 0) {\n return;\n }\n // Reuse existing interval\n if (intervals[period]) {\n intervals[period].callbacks.push(callback);\n // Add callback to new interval and save interval id for cancellation\n } else {\n const intervalId = setInterval(() => {\n intervals[period].callbacks.forEach(cb => cb());\n }, period);\n intervals[period] = { callbacks: [callback], intervalId };\n }\n\n // Return cancellation callback\n return cleanup;\n }, [callback, cleanup, period]);\n\n return cleanup;\n}\n","import { useCallback, useState, useEffect, useMemo, useRef } from 'react';\nimport { useTicker } from 'tradera-hooks/use-ticker';\nimport { getServerDate } from 'tradera-utils/server-date';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst COUNTDOWN_TICK_INTERVAL = 1000;\nconst COUNTDOWN_DEFAULT_WARNING_LIMIT = 12 * 60 * 60;\n\n/**\n *\n * @return {{timeLeftText: string, isCountdownEnabled: boolean, isCountdownDone: boolean, isTimeLeftBelowWarningLimit: boolean}}\n * isCountdownEnabled - True if client time is synched with server time.\n * isCountdownDone - True if there is no time left after counting down.\n * timeLeftText - The time left, formatted by the given formatter function.\n * isTimeLeftBelowWarningLimit - True if time is below the given warningLimit.\n */\nexport const useCountdown = (\n endDateStr,\n formatTimeLeft,\n warningLimit = COUNTDOWN_DEFAULT_WARNING_LIMIT\n) => {\n const { t } = useTranslator();\n const [isCountdownDone, setIsCountdownDone] = useState(false);\n const [timeLeftText, setTimeLeftText] = useState('');\n const [isCountdownEnabled, setIsCountdownEnabled] = useState(false);\n const [\n isTimeLeftBelowWarningLimit,\n setIsTimeLeftBelowWarningLimit\n ] = useState(false);\n const previousAdjustment = useRef(0);\n const endDate = useMemo(() => new Date(endDateStr), [endDateStr]);\n\n const updateTimeLeft = useCallback(\n async (isInitialCall = false) => {\n const serverDate = await getServerDate();\n if (!serverDate) {\n // In case server date is lost we need to\n // ensure everything looks OK.\n setIsCountdownEnabled(false);\n setIsCountdownDone(false);\n setTimeLeftText('');\n setIsTimeLeftBelowWarningLimit(false);\n return;\n }\n setIsCountdownEnabled(true);\n\n const secondsLeftWithFractions = (endDate - serverDate) / 1000;\n let adjustedSecondsLeftWithFractions =\n secondsLeftWithFractions - previousAdjustment.current;\n let secondsLeft = Math.round(adjustedSecondsLeftWithFractions);\n\n // The amount we adjusted the time at this tick.\n // We use this at the next tick to make adjustedSecondsLeftWithFractions\n // as close to whole seconds as possible.\n // In other words adjustedSecondsLeftWithFractions - secondsLeft should be as close to zero\n // as possible.\n let adjustment = secondsLeftWithFractions - secondsLeft;\n\n // Don't let the adjustment to drift over a second up or down.\n if (adjustment >= 1 || adjustment <= -1) {\n // Reset the adjustment\n secondsLeft = Math.round(secondsLeftWithFractions);\n adjustment = secondsLeftWithFractions - secondsLeft;\n }\n\n // The first time here we are not in a tick so\n // ignore adjustment.\n if (!isInitialCall) {\n previousAdjustment.current = adjustment;\n }\n\n const formattedTimeLeft =\n secondsLeft > 0\n ? formatTimeLeft(secondsLeft, t, endDate, serverDate)\n : t('vip_ended');\n\n setTimeLeftText(formattedTimeLeft);\n setIsTimeLeftBelowWarningLimit(secondsLeft <= warningLimit);\n\n if (secondsLeft <= 0) {\n setIsCountdownDone(true);\n }\n },\n [endDate, formatTimeLeft, t, warningLimit]\n );\n\n useEffect(() => {\n updateTimeLeft(true);\n }, [updateTimeLeft]);\n\n useTicker(updateTimeLeft, isCountdownDone ? 0 : COUNTDOWN_TICK_INTERVAL);\n\n return {\n timeLeftText,\n isCountdownDone,\n isCountdownEnabled,\n isTimeLeftBelowWarningLimit\n };\n};\n","import React from 'react';\n\nconst HoverMenuItemSeparator = () => (\n
  • \n);\n\nexport default HoverMenuItemSeparator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ALink from 'tradera-components/alink/alink';\n\nconst MenuItem = ({\n alerts,\n bold,\n border,\n className,\n follow,\n gaAttributes,\n icon,\n imageUrl,\n inSPA,\n label,\n link,\n notify,\n notificationDot,\n onClick\n}) => {\n const containerClass = `site-dropdown__item d-flex flex-row align-items-center ${\n alerts?.length > 0 ? 'flex-wrap' : ''\n } ${className} `;\n\n return (\n
  • \n {link ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
  • \n );\n};\n\nconst MenuItemContent = ({\n icon,\n bold,\n imageUrl,\n label,\n notify,\n alerts,\n notificationDot\n}) => {\n return (\n <>\n {icon && (\n \n {icon}\n \n )}\n \n {label}\n \n\n \n\n {alerts}\n \n );\n};\n\nconst NotificationDot = ({ notify, notificationDot }) => {\n if (notify > 0) {\n return (\n \n \n {notify}\n \n \n );\n }\n\n switch (notificationDot) {\n case 'info':\n case 'success':\n case 'warning':\n case 'danger':\n return (\n \n \n \n );\n default:\n return null;\n }\n};\n\nMenuItem.propTypes = {\n bold: PropTypes.bool,\n border: PropTypes.bool,\n gaAttributes: PropTypes.object,\n inSPA: PropTypes.bool,\n label: PropTypes.node,\n link: PropTypes.string,\n notify: PropTypes.number\n};\n\nMenuItem.defaultProps = {\n bold: false,\n border: false,\n className: 'site-dropdown__item-default',\n follow: true,\n inSPA: false,\n notify: 0\n};\n\nexport default MenuItem;\n","import React from 'react';\n\nimport { useTranslator } from 'tradera-lang/translate';\nimport ErrorContainer from './error-container';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst NotFoundError = () => {\n const { t } = useTranslator();\n return (\n \n

    \n \n

    \n

    {t('error_pageNotFound')}

    \n

    \n \n {t('error_reloadPage')}\n \n

    \n
    \n );\n};\n\nexport default NotFoundError;\n","export const getMenuGaAttributes = (category, action, label) => ({\n 'data-ga-category': category,\n 'data-ga-action': action,\n 'data-ga-label': `Link - ${label}`\n});\n","const getDisplayRating = rating => {\n if (rating) {\n return rating.toFixed(1);\n }\n};\n\nexport default {\n getDisplayRating\n};\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport utils from './rating-utils';\nimport RatingIcon from '@tradera/blueprint/theme/icons2/rating.svg?jsx';\nimport './rating-stars.scss';\n\n// Rating is multipled with 20.5 to account for margin between stars and rounding up\nimport ALink from 'tradera-components/alink/alink';\n\nconst RatingStars = ({\n memberAlias,\n memberId,\n rating,\n gaAttributes,\n link,\n dark = false,\n onClick\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const displayRating = utils.getDisplayRating(rating);\n\n const Stars = () => (\n <>\n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n \n );\n return link ? (\n \n
    \n \n \n \n\n
    \n \n {displayRating}\n \n
    \n
    \n
    \n ) : (\n \n
    \n
    \n \n
    \n
    \n {displayRating}\n
    \n
    \n
    \n );\n};\n\nRatingStars.defaultProps = {};\n\nRatingStars.propTypes = {\n memberAlias: PropTypes.string,\n memberId: PropTypes.number,\n rating: PropTypes.number,\n gaAttributes: PropTypes.object,\n dark: PropTypes.bool,\n link: PropTypes.bool\n};\n\nexport default RatingStars;\n","import {\n addRecentSearch,\n removeRecentSearch\n} from 'components/search/helpers/suggestions-api';\nimport { getPersonalisedBrands, getPersonalisedSearches } from './api';\n\nconst setPersonalisedBrandsAction = (items, status) => ({\n type: 'PERSONALISATION/SET_BRANDS',\n items,\n status\n});\n\nconst setPersonalisedSearchesAction = (items, status) => ({\n type: 'PERSONALISATION/SET_SEARCHES',\n items,\n status\n});\n\nconst setPersonalisedBrandsStatusAction = status => ({\n type: 'PERSONALISATION/FETCH_BRANDS_STATUS',\n status\n});\n\nconst setPersonalisedSearchesStatusAction = status => ({\n type: 'PERSONALISATION/FETCH_SEARCHES_STATUS',\n status\n});\n\nconst recentSearchesIsUpdatedAction = () => ({\n type: 'RECENT_SEARCHES_LAST_UPDATED',\n lastUpdated: Date.now()\n});\n\nexport const fetchPersonalisedBrandsIfNeeded = () => async (\n dispatch,\n getState\n) => {\n const { status } = getState().personalisation.brands;\n if (status !== 'NOT_FETCHED') return;\n\n dispatch(setPersonalisedBrandsStatusAction('LOADING'));\n\n const brandsResult = await getPersonalisedBrands();\n\n const newStatus = brandsResult.length > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(setPersonalisedBrandsAction(brandsResult, newStatus));\n};\n\nexport const fetchPersonalisedSearchesIfNeeded = () => async (\n dispatch,\n getState\n) => {\n const { status } = getState().personalisation.searches;\n if (status !== 'NOT_FETCHED') return;\n\n dispatch(setPersonalisedSearchesStatusAction('LOADING'));\n\n const searchesResult = await getPersonalisedSearches();\n\n const newStatus = searchesResult.length > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(setPersonalisedSearchesAction(searchesResult, newStatus));\n};\n\nexport const addRecentSearchText = text => async dispatch => {\n addRecentSearch(text);\n dispatch(recentSearchesIsUpdatedAction());\n};\n\nexport const removeRecentSearchText = text => async dispatch => {\n removeRecentSearch(text);\n dispatch(recentSearchesIsUpdatedAction());\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n defaultJsonRequestHeaders,\n handleError,\n logError\n} from 'tradera-utils/api';\n\nexport const getPersonalisedBrands = () => {\n return axiosWithTokenRefresh()\n .get(`${ENDPOINTS.PERSONALISED_SUGGESTIONS}/brands`, {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || []);\n};\n\nexport const getPersonalisedSearches = () => {\n return axiosWithTokenRefresh()\n .get(`${ENDPOINTS.PERSONALISED_SUGGESTIONS}/searches`, {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || []);\n};\n","import { useSelector } from 'react-redux';\n\nexport const useIsFeatureEnabled = featureName =>\n useSelector(state => state.environment.featureSwitches[featureName]);\n","import draftActions from './draft-actions';\n\nexport default {\n setLongDescription: longDescription => dispatch => {\n dispatch({\n type: 'SET_LONG_DESCRIPTION',\n payload: longDescription\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n },\n setLongDescriptionFromDraft: longDescription => dispatch => {\n dispatch({\n type: 'SET_LONG_DESCRIPTION_FROM_DRAFT',\n payload: longDescription\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n },\n reset: () => dispatch => {\n dispatch({\n type: 'RESET_LONG_DESCRIPTION'\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n }\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2.16c3.2 0 3.58.01 4.85.07 3.25.15 4.77 1.7 4.92 4.92.06 1.27.07 1.65.07 4.85 0 3.2-.01 3.58-.07 4.85-.15 3.23-1.66 4.77-4.92 4.92-1.27.06-1.64.07-4.85.07a83 83 0 01-4.85-.07c-3.26-.15-4.77-1.7-4.92-4.92A82.98 82.98 0 012.16 12a84 84 0 01.07-4.85c.15-3.23 1.67-4.77 4.92-4.92A84.4 84.4 0 0112 2.16zM12 0C8.74 0 8.33.01 7.05.07 2.7.27.27 2.7.07 7.05.01 8.33 0 8.75 0 12s.01 3.67.07 4.95c.2 4.36 2.62 6.78 6.98 6.98 1.28.06 1.7.07 4.95.07s3.67-.01 4.95-.07c4.35-.2 6.78-2.62 6.98-6.98.06-1.28.07-1.7.07-4.95s-.01-3.67-.07-4.95C23.73 2.7 21.3.27 16.95.07A84.33 84.33 0 0012 0zm0 5.84a6.16 6.16 0 100 12.32 6.16 6.16 0 000-12.32zM12 16a4 4 0 110-8 4 4 0 010 8zm6.4-11.85a1.44 1.44 0 100 2.89 1.44 1.44 0 000-2.89z\"\n})));","import React from 'react';\nimport PropType from 'prop-types';\n\nconst ModalFooter = ({ children, className }) => (\n
    {children}
    \n);\n\nModalFooter.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang/translate';\nimport CloseNarrowIcon from '@tradera/blueprint/theme/icons/close-narrow.svg?jsx';\nimport SearchIcon from '@tradera/blueprint/theme/icons2/search.svg?jsx';\n\nconst SearchInput = ({\n categoriesElement,\n inputClassName,\n onBlur,\n onClearSearchInput,\n onFocus,\n onFormSubmit,\n onUserInputChange,\n onUserKeyUp,\n searchInputRef,\n searchTerm,\n selectedCategory,\n suggestionsElement,\n placeholderText\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n\n const placeHolderTranslation =\n selectedCategory && selectedCategory.id !== 0 && selectedCategory.name\n ? t('siteHeader_categorySearchPlaceholder', {\n categoryName: selectedCategory.name\n })\n : t('siteHeader_generalSearchPlaceholder');\n\n const showClearButton = searchTerm !== '';\n\n return (\n \n
    \n {categoriesElement}\n
    \n
    \n \n
    \n {showClearButton ? (\n \n \n \n ) : (\n \n \n \n )}\n
    \n {suggestionsElement}\n
    \n \n );\n};\n\nSearchInput.propTypes = {\n categoriesElement: PropTypes.element,\n inputClassName: PropTypes.string,\n onBlur: PropTypes.func,\n onClearSearchInput: PropTypes.func,\n onFocus: PropTypes.func,\n onFormSubmit: PropTypes.func.isRequired,\n onUserInputChange: PropTypes.func,\n onUserKeyUp: PropTypes.func,\n searchInputRef: PropTypes.object,\n searchTerm: PropTypes.string.isRequired,\n selectedCategory: PropTypes.object,\n suggestionsElement: PropTypes.element,\n placeholderText: PropTypes.string\n};\n\nSearchInput.defaultProps = {\n categoriesElement: null,\n inputClassName: '',\n onBlur: () => {},\n onFocus: () => {},\n onUserInputChange: () => {},\n onUserKeyUp: () => {},\n selectedCategory: null,\n suggestionsElement: null,\n placeholderText: null\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport { Router } from 'react-router';\nimport history from 'tradera-utils/history';\nimport { hot } from 'react-hot-loader';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport { GeneralError } from 'tradera-components/errors';\nimport PageHead from 'tradera-components/page-head/page-head';\nimport SiteHeader from 'tradera-components/site-header/site-header';\nimport SiteFooter from 'tradera-components/site-footer/site-footer';\nimport GdprContainer from 'tradera-components/alerts/gdpr/gpdr-container';\n\nimport { Routes } from './routes-map';\nimport './app.scss';\n\nconst headerElement = document.querySelector('[data-site-header-slim]');\n\n// Full SPA app with header, footer & everything\nfunction App() {\n const cartItemCount = headerElement?.getAttribute('data-cart-item-count');\n const cartSum = headerElement?.getAttribute('data-cart-sum');\n return (\n // TODO: Replace with general error fallback, move ShowItemsError to discover error boundary\n }>\n \n \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n );\n}\n\n// Basic app without header, footer & other stuff, for old React pages & native app web views\nfunction BasicApp() {\n return (\n }>\n \n \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default hot(module)(App);\nexport { App, BasicApp };\n","import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport './transitions.scss';\n\nexport const Expand = ({ children, ...props }) => (\n \n {children}\n \n);\n\nexport const EnterFrom = ({ children, from, ...props }) => (\n \n {children}\n \n);\n\nexport const EnterFade = ({ children, ...props }) => (\n \n {children}\n \n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst RadioSwitch = ({\n checked,\n className,\n handleOnChange,\n id,\n optionClasses,\n options,\n ...otherProps\n}) => {\n return (\n \n {options.map(option => {\n return (\n option.value && (\n \n {\n handleOnChange(e.target.value);\n }}\n />\n \n {option.name}\n \n \n )\n );\n })}\n
    \n );\n};\n\nfunction getOptionClasses(classMap) {\n if (classMap) {\n const classes = [];\n if (classMap.size) {\n classes.push(`form-check-inline-${classMap.size}`);\n }\n if (classMap.noclip) {\n classes.push('form-check-inline-noclip');\n }\n return classes.join(' ');\n } else {\n return '';\n }\n}\n\nRadioSwitch.propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.node,\n className: PropTypes.string\n })\n ),\n optionClasses: PropTypes.shape({\n size: PropTypes.oneOf(['sm', 'lg', 'xl']),\n noclip: PropTypes.bool\n }),\n checked: PropTypes.string,\n handleOnChange: PropTypes.func,\n className: PropTypes.string,\n id: PropTypes.string.isRequired\n};\n\nRadioSwitch.defaultProps = {\n className: ''\n};\n\nexport default RadioSwitch;\n","import React from 'react';\nimport { cssTransition, ToastContainer } from 'react-toastify';\nimport AlertIcon from '@tradera/blueprint/theme/icons2/alert.svg?jsx';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport './toasts.scss';\n\nvar SlideFade = /*#__PURE__*/ cssTransition({\n enter: 'Toastify--animate Toastify__slideFade-enter',\n exit: 'Toastify--animate Toastify__slideFade-exit'\n});\nconst options = {\n className: 'bp',\n transition: SlideFade,\n hideProgressBar: true,\n theme: 'colored',\n closeOnClick: false,\n draggablePercent: 40,\n autoClose: 5000,\n pauseOnFocusLoss: false,\n icon: ({ type }) =>\n ({\n // default, - no icon.\n info: ,\n success: ,\n warning: ,\n error: \n }[type]),\n closeButton({ closeToast }) {\n return (\n
    \n \n
    \n );\n }\n};\n\nexport const TraderaToastContainer = () => {\n return ;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst OnDisplayBadge = ({ className }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_onDisplay')}\n \n );\n};\n\nexport default OnDisplayBadge;\n","import React from 'react';\nimport { compose } from 'redux';\nimport PropTypes from 'prop-types';\n\nimport MessagingIcon from '@tradera/blueprint/theme/icons/mail.svg?jsx';\nimport uiActions from 'tradera-state/ui/actions';\nimport { logger } from 'packages';\nimport { withTranslator, withUrlLocalizer } from 'tradera-lang/translate';\n\nimport {\n checkUserMessagingParticipation,\n getMessagingPageLink,\n getMessagingThreadLink\n} from 'tradera-apps/my-tradera/app/helpers/messaging-helpers';\n\nclass MessagingButton extends React.Component {\n state = {\n buttonVisible: false\n };\n\n componentDidMount() {\n // Only show button if participation returns true\n checkUserMessagingParticipation(this.props.sellerId)\n .then(buttonVisible => {\n this.setState({\n buttonVisible\n });\n return undefined;\n })\n .catch(err => {\n this.setState({\n buttonVisible: false\n });\n logger(err);\n });\n }\n\n openMessagingModal = (title, src, participating) => {\n const { dispatch, isLoggedIn } = this.props;\n if (isLoggedIn) {\n dispatch(\n uiActions.openMessagingModal({ title, src, participating })\n );\n } else {\n this.handleLogin(src);\n }\n };\n\n handleLogin = href =>\n this.props.dispatch(uiActions.signIn({ redirectUrl: href }));\n\n render() {\n const {\n buyerId,\n sellerId,\n itemId,\n source,\n mode,\n className,\n memberId,\n toLocalizedUrl,\n t\n } = this.props;\n const { buttonVisible } = this.state;\n\n let href;\n if (buyerId && sellerId) {\n if (mode === 'modal') {\n href = getMessagingThreadLink(buyerId, sellerId, itemId, {\n traderaUserId: memberId,\n singleThread: true,\n openForm: true,\n source\n });\n } else {\n href = getMessagingPageLink(buyerId, sellerId, itemId, {\n traderaUserId: memberId,\n source\n });\n }\n } else {\n href = window.location.pathname;\n }\n\n const BUTTON_LABELS = {\n ask_seller: t('messaging_askTheSeller'),\n contact_seller: t('messaging_contactSeller'),\n contact_buyer: t('messaging_contactBuyer')\n };\n\n // Disable on user's own items\n const disableButton = buyerId === sellerId;\n\n if (buttonVisible) {\n if (mode === 'modal') {\n return (\n \n \n this.openMessagingModal(\n BUTTON_LABELS[source],\n toLocalizedUrl(href),\n buttonVisible\n )\n }\n disabled={disableButton}>\n \n \n {BUTTON_LABELS[source]}\n \n \n {disableButton && (\n \n {t('messaging_contactSelfText')}\n \n )}\n \n );\n } else {\n return (\n \n \n \n {BUTTON_LABELS[source]}\n \n \n );\n }\n } else {\n return null;\n }\n }\n}\nMessagingButton.propTypes = {\n isLoggedIn: PropTypes.bool,\n memberId: PropTypes.string,\n className: PropTypes.string,\n buyerId: PropTypes.string.isRequired,\n sellerId: PropTypes.string.isRequired,\n itemId: PropTypes.string.isRequired,\n source: PropTypes.string.isRequired,\n mode: PropTypes.string,\n t: PropTypes.func.isRequired\n};\n\nMessagingButton.defaultProps = {\n className: '',\n buyerId: '',\n sellerId: '',\n itemId: '',\n source: '',\n mode: 'link'\n};\n\nexport default compose(withUrlLocalizer, withTranslator)(MessagingButton);\n","import { globalStore } from 'tradera-state/configure-store';\nimport draftActions from './draft-actions';\n\nconst store = globalStore();\n\nexport default {\n setIsPropertyEditMode: function(isPropertyEditMode) {\n store.dispatch({\n type: 'SET_IS_PROPERTY_EDIT_MODE',\n payload: isPropertyEditMode\n });\n },\n setCreationType: function(creationType) {\n store.dispatch({\n type: 'SET_CREATION_TYPE',\n payload: creationType\n });\n },\n showAllErrors: function() {\n store.dispatch({\n type: 'SHOW_ALL_ERRORS'\n });\n },\n hideAllErrors: function() {\n store.dispatch({\n type: 'HIDE_ALL_ERRORS'\n });\n },\n setIsEditOfPublishedItem: isEditOfPublishedItem => dispatch => {\n dispatch({\n type: 'SET_IS_EDIT_OF_PUBLISHED_ITEM',\n payload: isEditOfPublishedItem\n });\n },\n resetPublishState: function() {\n store.dispatch({\n type: 'RESET_PUBLISH_STATE'\n });\n },\n\n setCategoryRestriction: function(restriction) {\n store.dispatch({\n type: 'SET_CATEGORY_RESTRICTION',\n payload: restriction\n });\n store.dispatch(\n draftActions.updateItemConditionRestrictionForCategory()\n );\n },\n toggleModal: modalId => ({\n type: 'TOGGLE_MODAL',\n payload: modalId\n }),\n showModal: function(modalId, modalData) {\n store.dispatch({\n type: 'SHOW_MODAL',\n modalId: modalId,\n modalData: modalData\n });\n },\n hideModal: function() {\n store.dispatch({\n type: 'HIDE_MODAL'\n });\n },\n reset: function() {\n store.dispatch({\n type: 'RESET_SYI'\n });\n },\n enableAutoSave: () => dispatch => {\n dispatch({\n type: 'ENABLE_AUTOSAVE'\n });\n },\n disableAutoSave: () => dispatch => {\n dispatch({\n type: 'DISABLE_AUTOSAVE'\n });\n }\n};\n","import PAGE_TYPES from 'tradera-constants/page-types';\nimport { OPTIONAL_LANG } from 'tradera-apps/tradera/helpers/optional-lang';\n\nexport const traderaRoutes = {\n startPage: {\n path: [`${OPTIONAL_LANG}/`, `${OPTIONAL_LANG}`],\n pageType: PAGE_TYPES.START_PAGE,\n strict: true,\n exact: true\n },\n viewItemPage: {\n path: `${OPTIONAL_LANG}/item/:categoryId/:itemId/:itemSlug`,\n pageType: PAGE_TYPES.VIEW_ITEM_PAGE,\n mustLoadDataBeforePageTracking: true\n },\n traderaShopPage: {\n path: `${OPTIONAL_LANG}/tradera-shop/:urlSlug`,\n pageType: PAGE_TYPES.TRADERA_SHOP_PAGE\n },\n causesInfoPage: {\n path: `${OPTIONAL_LANG}/charity/how-to-become`,\n pageType: PAGE_TYPES.DEFAULT\n },\n causesPage: {\n path: `${OPTIONAL_LANG}/causes`,\n pageType: PAGE_TYPES.CUSTOM_RESULT_PAGE,\n mustLoadDataBeforePageTracking: true\n },\n causePage: {\n path: `${OPTIONAL_LANG}/cause/:causeSlug`,\n pageType: PAGE_TYPES.CUSTOM_RESULT_PAGE,\n mustLoadDataBeforePageTracking: true\n },\n upiPage: {\n path: `${OPTIONAL_LANG}/resolution/UPI2/:purchaseOrderId`,\n pageType: PAGE_TYPES.DEFAULT\n },\n inrPage: {\n path: `${OPTIONAL_LANG}/resolution/INR2/:purchaseOrderId`,\n pageType: PAGE_TYPES.DEFAULT\n },\n brandPage: {\n path: `${OPTIONAL_LANG}/brand/:brand`,\n pageType: PAGE_TYPES.BRAND_PAGE\n },\n brandListPage: {\n path: `${OPTIONAL_LANG}/brands/`,\n pageType: PAGE_TYPES.BRAND_LIST_PAGE\n },\n campaignPage: {\n path: [\n `${OPTIONAL_LANG}/shop/:crpId`,\n `${OPTIONAL_LANG}/campaign/:crpId`,\n `${OPTIONAL_LANG}/charity/:crpId`\n ],\n pageType: PAGE_TYPES.CUSTOM_RESULT_PAGE\n },\n categoryListPage: {\n path: `${OPTIONAL_LANG}/kategorier`,\n pageType: PAGE_TYPES.CATEGORY_LIST\n },\n checkoutConfirmationPage: {\n path: `${OPTIONAL_LANG}/shopping/ordercheckout/confirmation/:purchaseOrderId`,\n pageType: PAGE_TYPES.DEFAULT\n },\n checkoutPage: {\n path: `${OPTIONAL_LANG}/shopping/ordercheckout/:purchaseOrderId`,\n pageType: PAGE_TYPES.DEFAULT\n },\n cartPage: {\n path: `${OPTIONAL_LANG}/shopping/cart`,\n pageType: PAGE_TYPES.DEFAULT\n },\n searchResultPage: {\n path: `${OPTIONAL_LANG}/search`,\n pageType: PAGE_TYPES.SEARCH_RESULT_PAGE\n },\n favouriteSellersPage: {\n path: `${OPTIONAL_LANG}/favourite-sellers`,\n pageType: PAGE_TYPES.FAVOURITE_SELLERS_PAGE\n },\n landing_GantXTradera: {\n path: `${OPTIONAL_LANG}/gantxtradera`,\n pageType: PAGE_TYPES.DEFAULT\n },\n landing_StadiumXTradera: {\n path: `${OPTIONAL_LANG}/stadiumxtradera`,\n pageType: PAGE_TYPES.DEFAULT\n },\n liveShoppingSignUpPage: {\n path: `${OPTIONAL_LANG}/live/sign-up`,\n pageType: PAGE_TYPES.LIVE_SHOPPING,\n exact: true\n },\n liveShoppingDetailsPage: {\n path: `${OPTIONAL_LANG}/live/:liveId`,\n pageType: PAGE_TYPES.LIVE_SHOPPING\n },\n liveShoppingListPage: {\n path: `${OPTIONAL_LANG}/live`,\n pageType: PAGE_TYPES.LIVE_SHOPPING\n },\n profilePage: {\n path: `${OPTIONAL_LANG}/profile/:profilePageType(items|feedback|information)/:memberId/:aliasSlug`,\n pageType: PAGE_TYPES.PROFILE_PAGE\n },\n recommendationsPage: {\n path: `${OPTIONAL_LANG}/ma/endless-recommendation/:recommendationModeId(selected|endingSoon)`,\n pageType: PAGE_TYPES.ENDLESS_RECOMMENDATIONS_PAGE\n },\n reportItemPage: {\n path: `${OPTIONAL_LANG}/report-item/:itemId`,\n pageType: PAGE_TYPES.REPORT_ITEM_PAGE\n },\n verifyPage: {\n path: `${OPTIONAL_LANG}/verify/bankid`,\n pageType: PAGE_TYPES.DEFAULT\n },\n CombinedShippingInfoPage: {\n path: `${OPTIONAL_LANG}/frakt/samfrakt`,\n pageType: PAGE_TYPES.DEFAULT\n },\n ShippingInfoPage: {\n path: `${OPTIONAL_LANG}/frakt`,\n pageType: PAGE_TYPES.DEFAULT\n },\n swishApp2AppCallbackPage: {\n path: `${OPTIONAL_LANG}/shopping/payment/swish/:purchaseOrderId`,\n pageType: PAGE_TYPES.DEFAULT\n },\n ValuationPage: {\n path: `${OPTIONAL_LANG}/valuation`,\n pageType: PAGE_TYPES.CUSTOM_RESULT_PAGE\n },\n categoryResultPage: {\n path: [`${OPTIONAL_LANG}/category/:categoryId`],\n pageType: PAGE_TYPES.CATEGORY_RESULT_PAGE,\n exact: true\n },\n messagingiframe: {\n path: [\n `${OPTIONAL_LANG}/messagingiframe/thread/:threadId`,\n `${OPTIONAL_LANG}/messagingiframe/threads/:threadId`,\n `${OPTIONAL_LANG}/messagingiframe`\n ],\n pageType: PAGE_TYPES.DEFAULT\n },\n legacyCategoryResultPage: {\n path: [`${OPTIONAL_LANG}/:categoryNameAndId`],\n pageType: PAGE_TYPES.CATEGORY_RESULT_PAGE,\n exact: true\n },\n notFoundPage: {\n path: '*',\n pageType: PAGE_TYPES.ERROR_PAGE,\n exact: true\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport HoverMenuItem from './hover-menu/hover-menu-item';\nimport HoverMenuItemSeparator from './hover-menu/hover-menu-separator';\nimport { getMenuGaAttributes } from './site-header.analytics.js';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport WriteIcon from '@tradera/blueprint/theme/icons2/write.svg?jsx';\nimport SaleIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport ListIcon from '@tradera/blueprint/theme/icons2/list.svg?jsx';\nimport PackageIcon from '@tradera/blueprint/theme/icons2/package.svg?jsx';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\nimport SoldIcon from '@tradera/blueprint/theme/icons2/sold.svg?jsx';\nimport UnsoldIcon from '@tradera/blueprint/theme/icons2/unsold.svg?jsx';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Selling menu', label);\n\nconst SellMenu = ({ showMenu }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const isTraderaShopEnabled = useIsFeatureEnabled('tradera-shop');\n return (\n \n }\n gaAttributes={getGaAttributes('Create new listing')}\n />\n }\n gaAttributes={getGaAttributes('Listing templates')}\n />\n \n }\n gaAttributes={getGaAttributes('Active listings')}\n />\n }\n gaAttributes={getGaAttributes('Sold listings')}\n />\n }\n gaAttributes={getGaAttributes('Unsold listings')}\n />\n }\n gaAttributes={getGaAttributes('Picklist')}\n />\n \n }\n gaAttributes={getGaAttributes('Rate buyer')}\n />\n {isTraderaShopEnabled && (\n <>\n \n }\n gaAttributes={getGaAttributes('Buy shipping bags')}\n />\n \n )}\n \n );\n};\n\nSellMenu.propTypes = {\n showMenu: PropTypes.bool\n};\n\nexport default SellMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SaleIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport SellMenu from './sell-menu';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst SellingLink = ({\n onClick,\n mouseOver,\n mouseOut,\n onBlur,\n transparentHeader,\n showMenu\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const selling = t('siteHeader_selling');\n\n return (\n mouseOver(HOVER_MENUS.SELL)}\n onMouseLeave={mouseOut}>\n {\n onClick(e, HOVER_MENUS.SELL);\n }}\n onBlur={onBlur}>\n \n \n {selling}\n \n \n \n \n );\n};\n\nSellingLink.propTypes = {\n onClick: PropTypes.func,\n mouseOver: PropTypes.func,\n mouseOut: PropTypes.func,\n showMenu: PropTypes.bool\n};\n\nexport default React.memo(SellingLink);\n","// extracted by mini-css-extract-plugin\nexport default {\"with-arrow-top\":\"with-arrow-top--3SozC\",\"withArrowTop\":\"with-arrow-top--3SozC\"};","import React from 'react';\nimport Spinner from 'static/script/libs/spin';\n\nexport default class JsxSpinner extends React.Component {\n componentDidMount() {\n const { config } = this.props;\n const spinjsConfig = {\n width: 2,\n length: 4,\n radius: 5,\n lines: 11,\n color: '#404a54',\n ...config // overwrite default\n };\n\n this.spinner = new Spinner(spinjsConfig);\n this.spinner.spin(this.spinnerEl);\n }\n\n componentWillUnmount() {\n this.spinner.stop();\n }\n\n render() {\n const { className } = this.props;\n return (\n {\n this.spinnerEl = el;\n }}\n />\n );\n }\n}\n","import React from 'react';\n\nconst BottomButtons = ({ leftButton, rightButton }) => {\n return (\n
    \n
    \n \n {leftButton.text}\n \n
    \n
    \n \n {rightButton.text}\n \n
    \n
    \n );\n};\n\nexport default BottomButtons;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError,\n axiosConfigs\n} from 'tradera-utils/api';\n\nexport const getCartOverview = async (cartId, countryCode) => {\n return axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.CART_OVERVIEW_VIEW}/${cartId}?shippingCountryCodeIso2=${countryCode}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const addItemToCart = async (cartId, itemId, price) => {\n const params = { cartId: cartId, itemId: itemId, price: price };\n return axiosWithTokenRefresh()\n .post(`${ENDPOINTS.CART_ADD_ITEM}`, params, axiosConfigs.authenticated)\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const removeItemsFromCart = async (cartId, itemIds) => {\n const params = { cartId: cartId, itemIds: itemIds };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_REMOVE_ITEMS}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const setCartItemQuantity = async (cartId, itemId, quantity) => {\n const params = { cartId: cartId, itemId: itemId, quantity: quantity };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_SET_ITEM_QUANTITY}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const confirmCartPurchase = async (shopItems, googleAnalyticsData) => {\n const params = {\n shopItems: shopItems,\n googleAnalyticsData: googleAnalyticsData\n };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.ORDER_PURCHASE_SHOP_ITEMS}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const startOffPlatformCheckout = async itemId => {\n const params = { itemId: itemId };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.START_OFF_PLATFORM_CHECKOUT}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const createUncommittedPurchaseOrder = async (\n purchaseOrderId,\n sellerMemberId,\n shopItems\n) => {\n const params = {\n purchaseOrderId,\n sellerMemberId,\n purchaseOrderItems: shopItems\n };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.ORDER_CHECKOUT_CREATE_UNCOMMITTED_PURCHASE_ORDER}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\n// Temporary call to make TouchWeb update the cart item count + price. Remove once it's fully moved to React.\nexport const updateCartSummary = async cartId => {\n const params = { cartId: cartId };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_UPDATE_SUMMARY}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\n// Export object for Sinon stubbing\nexport default {\n getCartOverview,\n addItemToCart,\n removeItemsFromCart,\n setCartItemQuantity,\n updateCartSummary,\n confirmCartPurchase,\n startOffPlatformCheckout,\n createUncommittedPurchaseOrder\n};\n","import { logger } from 'packages';\nimport api from './api';\nimport utils from '../checkout/utils';\nimport { setFetching, setCartData, setError } from './reducer';\nimport * as analytics from 'tradera-apps/tradera/components/vip/helpers/analytics';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { CART_ID } from 'tradera-constants/cookies';\nimport { selectShippingCountry } from 'tradera-state/shipping-region/selectors';\n\nexport const fetchCartData = cartId => async (dispatch, getState) => {\n dispatch(setFetching(true));\n\n try {\n const { countryCodeIso2 } = selectShippingCountry(getState());\n const checkoutData = await api.getCartOverview(cartId, countryCodeIso2);\n\n const { data } = checkoutData;\n\n dispatch(setCartData(data));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const addItemToCart = (\n cartId,\n itemId,\n price,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n const addItemResult = await api.addItemToCart(cartId, itemId, price);\n if (addItemResult.status === 200) {\n cartId = addItemResult.data.cartId;\n let date = new Date();\n date.setMonth(date.getMonth() + 2);\n cookieUtil.createCookie(CART_ID, cartId, date);\n }\n await api.updateCartSummary(cartId);\n onSuccess();\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const removeItemsFromCart = (cartId, itemIds) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.removeItemsFromCart(cartId, itemIds);\n await api.updateCartSummary(cartId);\n dispatch(fetchCartData(cartId));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const setCartItemQuantity = (\n cartId,\n itemId,\n quantity\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.setCartItemQuantity(cartId, itemId, quantity);\n await api.updateCartSummary(cartId);\n dispatch(fetchCartData(cartId));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const confirmCartPurchase = (\n cartId,\n preorderId,\n shopItems,\n onSuccess\n) => async (dispatch, getState) => {\n dispatch(setFetching(true));\n\n try {\n const confirmData = await api.confirmCartPurchase(\n shopItems,\n analytics.getGaTrackingData()\n );\n\n const { countryCodeIso2 } = selectShippingCountry(getState());\n await removeFromCartWithoutReload(\n cartId,\n shopItems.map(item => item.itemId),\n countryCodeIso2\n );\n\n onSuccess(confirmData.data.transactionIds[0]);\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n\n const errorCode = error?.response?.data?.responseStatus?.errorCode;\n dispatch(setError({ id: preorderId, message: errorCode }));\n }\n};\n\nexport const createUncommittedPurchaseOrder = (\n cartId,\n preorderId,\n sellerMemberId,\n shopItems,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n const purchaseOrderId = utils.getUuid();\n\n try {\n await api.createUncommittedPurchaseOrder(\n purchaseOrderId,\n sellerMemberId,\n shopItems.flatMap(item =>\n Array(item.quantity).fill({\n itemId: item.itemId,\n itemPrice: item.expectedItemPrice\n })\n )\n );\n\n onSuccess(purchaseOrderId);\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n\n const errorCode = error?.response?.data?.responseStatus?.errorCode;\n dispatch(setError({ id: preorderId, message: errorCode }));\n }\n};\n\nexport const startOffPlatformCheckout = (\n itemId,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.startOffPlatformCheckout(itemId);\n onSuccess();\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const removeFromCartWithoutReload = async (\n cartId,\n itemIds,\n countryCodeIso2\n) => {\n if (!cartId) return;\n await api.removeItemsFromCart(cartId, itemIds);\n await api.updateCartSummary(cartId);\n\n const { data } = await api.getCartOverview(cartId, countryCodeIso2);\n setCartData(data);\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from 'react';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport { useSelector } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { loadScript } from 'tradera-utils/script';\n\nconst LOCALES = {\n sv: 'sv-se',\n en: 'en-us',\n da: 'da-dk',\n de: 'de-de'\n};\n\nconst mapLocale = languageCodeIso2 =>\n languageCodeIso2 in LOCALES ? LOCALES[languageCodeIso2] : LOCALES['sv'];\n\nconst openQualtiveModal = async (config, translate) => {\n const { survey, title, ...surveyOptions } = config;\n const options = {\n title: translate(title ? title : 'qualtiveTitle_default'),\n darkMode: 'never',\n ...surveyOptions\n };\n\n if (!window.qualtive) {\n await loadScript('https://static.qualtive.io/client/web.v1.js');\n }\n window.qualtive?.present(survey, options);\n};\n\nexport const useQualtive = (customAttributes = {}) => {\n const { t } = useTranslator();\n const isQualtiveFeatureToggleEnabled = useSelector(\n state => state.environment?.featureSwitches?.['qualtive-feedback']\n );\n const memberId = useSelector(state => state.member?.memberId);\n const languageCodeIso2 = useSelector(\n state => state.language?.preferred?.languageCodeIso2\n );\n const isQualtiveEnabled =\n isQualtiveFeatureToggleEnabled && GdprSettings.isFunctionalEnabled();\n const config = {\n locale: mapLocale(languageCodeIso2),\n customAttributes\n };\n if (memberId) {\n config.user = { id: memberId };\n }\n\n return {\n isQualtiveEnabled,\n openQualtiveModal: survey => {\n if (isQualtiveEnabled) {\n openQualtiveModal(\n {\n ...config,\n ...survey\n },\n t\n );\n }\n }\n };\n};\n\nexport const withQualtive = WrappedComponent => {\n function WithQualtive(props) {\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n return (\n \n );\n }\n\n WithQualtive.displayName = `withQualtive(${WrappedComponent.displayName ||\n WrappedComponent.name}`;\n\n return WithQualtive;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/react';\n\nclass ApplicationErrorBoundary extends React.Component {\n componentDidCatch() {}\n\n render() {\n const { children, fallback, capture } = this.props;\n\n if (!capture) {\n return children;\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\nApplicationErrorBoundary.propTypes = {\n // Capture function, if false then errors are silently ignored\n capture: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]).isRequired,\n fallback: PropTypes.node\n};\n\nApplicationErrorBoundary.defaultProps = {\n capture: true,\n fallback: null\n};\n\nexport default ApplicationErrorBoundary;\n","import { useCallback, useState, useRef } from 'react';\nimport { useHistory, useLocation } from 'react-router';\nimport googleTagManagerService from 'app/ui/google-tagmanager-service';\n\nimport { getCurrentPageFromRoute } from 'tradera-helpers/get-current-page-helper';\nimport { isDev } from 'static/script/utils/environment';\nimport { useOnMount } from 'tradera-hooks';\nimport { useTimeout } from 'tradera-hooks/use-timeout';\nimport { useStore } from 'react-redux';\n\nconst loadWarningTimeout = 5000;\n\nconst logDebug = message => {\n if (isDev()) {\n console.log(\n `%c ${message} `,\n 'background:green; color:white; font-size:12px;'\n );\n }\n};\n\nconst logWarning = message => {\n if (isDev()) {\n console.log(\n `%c Warning! ${message} `,\n 'background:yellow; color:black; font-size:12px;'\n );\n }\n};\n\nexport const useLoading = routeMap => {\n const NOT_LOADED = 0;\n const LOADING = 1;\n const LOADED = 2;\n const [currentPage, setCurrentPage] = useState(null);\n const [status, setStatus] = useState(NOT_LOADED);\n const navigationKeyRef = useRef(0);\n const [navigationKey, setNavigationKey] = useState(\n navigationKeyRef.current\n );\n const store = useStore();\n const location = useLocation();\n const history = useHistory();\n const isLoading = status === LOADING;\n const isLoaded = status === LOADED;\n\n const setLoading = useCallback(() => {\n if (navigationKey !== navigationKeyRef.current) {\n logWarning('Old setLoading was called');\n return;\n }\n setStatus(oldStatus => {\n if (oldStatus !== NOT_LOADED) {\n logWarning(`Bad state: ${oldStatus}`);\n }\n return LOADING;\n });\n }, [navigationKey]);\n\n const setLoaded = useCallback(() => {\n if (navigationKey !== navigationKeyRef.current) {\n logWarning('Old setLoaded was called');\n return;\n }\n currentPage.onLoaded && currentPage.onLoaded(store.getState);\n googleTagManagerService.trackPageView();\n logDebug(`${currentPage.pageType} page is loaded`);\n setStatus(oldStatus => {\n if (oldStatus === LOADED) {\n logWarning('Already loaded');\n }\n return LOADED;\n });\n }, [navigationKey, currentPage, store]);\n\n const onNavigate = useCallback(\n location => {\n const page = getCurrentPageFromRoute(routeMap, location);\n if (!page) {\n logWarning(`No page for ${location.pathname}`);\n return;\n }\n\n googleTagManagerService.newSpaPage(page.pageType);\n setNavigationKey(++navigationKeyRef.current);\n setCurrentPage(previousPage => {\n logDebug(`${previousPage?.pageType} -> ${page?.pageType}`);\n return page;\n });\n setStatus(NOT_LOADED);\n\n if (!page.mustLoadDataBeforePageTracking) {\n page.onLoaded && page.onLoaded(store.getState);\n googleTagManagerService.trackPageView();\n setStatus(() => {\n logDebug(\n `${page.pageType} page is loaded, data not required.`\n );\n return LOADED;\n });\n }\n },\n [routeMap, store]\n );\n\n useOnMount(() => {\n onNavigate(location);\n return history.listen(onNavigate);\n });\n\n // Monitor that a page comes loaded. If not we need to know\n useTimeout(\n () => {\n logWarning(\n `Page tracking may not be working, still waiting for data to load after ${loadWarningTimeout /\n 1000} s. PageType: ${currentPage.pageType} path: ${\n location.pathname\n }`\n );\n },\n isLoaded ? 0 : loadWarningTimeout,\n [isLoaded]\n );\n\n return {\n isLoading,\n isLoaded,\n setLoaded,\n setLoading\n };\n};\n","import { useEffect, useRef } from 'react';\n\nexport function useTimeout(callback, delay, dependencies) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (delay > 0) {\n const id = setTimeout(() => savedCallback.current(), delay);\n return () => clearTimeout(id);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [delay, ...dependencies]);\n}\n","import React from 'react';\nimport { Route, Switch } from 'react-router';\nimport { useLoading } from './use-loading';\n\nconst render = (page, loadStatus) => {\n return props =>\n page.render({\n ...props,\n loadStatus,\n pageType: page.pageType\n });\n};\n\nexport const RouteMapRoutes = ({ routeMap }) => {\n const loading = useLoading(routeMap);\n return (\n \n {Object.values(routeMap).map(route => (\n \n ))}\n \n );\n};\n","import { localStore } from 'utils/storage';\n\nclass ResultSet {\n constructor(result) {\n this._result = result;\n this._result.orderByTimestamp = this.orderByTimestamp.bind(this);\n this._result.orderByValue = this.orderByValue.bind(this);\n this._result.orderByExpire = this.orderByExpire.bind(this);\n }\n\n get() {\n return this._result;\n }\n\n _orderBy(orderProp) {\n function orderByProp(a, b) {\n if (a[orderProp] === b[orderProp]) {\n return 0;\n }\n\n return a[orderProp] < b[orderProp] ? 1 : -1;\n }\n\n return this._result.sort(orderByProp);\n }\n\n orderByTimestamp() {\n return this._orderBy('timestamp');\n }\n\n orderByValue() {\n return this._orderBy('value');\n }\n\n orderByExpire() {\n return this._orderBy('expires');\n }\n}\n\nclass StorageService {\n constructor(namespace, options = {}) {\n this.namespace = namespace || 'default';\n this.datastore = options.datastore || localStore;\n }\n\n getDataSafe() {\n return this.datastore.getItem(this.namespace) || {};\n }\n\n store(data) {\n this.datastore.setItem(this.namespace, data);\n return true;\n }\n\n remove(key) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n this.purge(encodedKey, data);\n }\n\n purge(key, data) {\n delete data[key];\n this.store(data);\n return true;\n }\n\n get(key) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n if (\n data[encodedKey] &&\n data[encodedKey].expires &&\n data[encodedKey].expires < new Date().getTime()\n ) {\n this.purge(encodedKey, data);\n }\n\n return (data[encodedKey] && data[encodedKey].value) || null;\n }\n\n set(key, value, expires, timestamp) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n data[encodedKey] = {\n expires: (expires && expires.getTime()) || null,\n timestamp:\n (timestamp && timestamp.getTime()) || new Date().getTime(),\n value: value\n };\n\n this.datastore.setItem(this.namespace, data);\n\n return data[encodedKey] || null;\n }\n\n removeExpired() {\n let data = this.getDataSafe(),\n prop;\n\n for (prop in data) {\n if (data.hasOwnProperty(prop)) {\n if (\n data[prop].expires &&\n data[prop].expires < new Date().getTime()\n ) {\n this.purge(prop, data);\n }\n }\n }\n }\n\n fetch() {\n function addRow(row, prop, propValue) {\n row.key = decodeURI(prop);\n row.value = propValue.value;\n row.timestamp = propValue.timestamp;\n return row;\n }\n\n let data = this.getDataSafe(),\n rows = [],\n prop;\n\n for (prop in data) {\n if (data.hasOwnProperty(prop)) {\n rows.push(addRow({}, prop, data[prop]));\n }\n }\n\n return new ResultSet(rows).get();\n }\n\n flush() {\n return this.datastore.clearByPrefix(this.namespace);\n }\n}\n\nexport default StorageService;\n","import React from 'react';\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang/translate';\n\nconst SellerName = ({\n memberId,\n cleanedAlias,\n alias,\n hasBackground,\n isCompany,\n hasShop\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n\n const badgeText =\n (hasShop && t('vip_sellerInfoHasStore')) ||\n (isCompany && t('vip_sellerInfoCompany'));\n\n return (\n <>\n \n \n {badgeText && (\n \n {badgeText}\n \n )}\n \n {alias}\n \n \n \n \n );\n};\n\nexport default SellerName;\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import React from 'react';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport ItemListCard from 'tradera-components/item-card/item-list-card';\nimport {\n useBreakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport { DesktopAd, TabletAd, MobileAd } from './ads/search-results-ads';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nconst DESKTOP_AD_OFFSET = 0;\nconst TABLET_AD_OFFSET = 0;\nconst MOBILE_AD_OFFSET = 6;\nconst AD_FREQUENCY = 12;\nconst AD_FREQUENCY_FULL_WIDTH = 16;\n\nconst getAdFrequency = (currentBreakpoint, itemLayout, siteLayout) => {\n if (\n currentBreakpoint === BREAKPOINTS.XL &&\n itemLayout === 'layout-grid' &&\n siteLayout === 'site-width-full'\n ) {\n return AD_FREQUENCY_FULL_WIDTH;\n } else {\n return AD_FREQUENCY;\n }\n};\n\nconst ItemsWithStitchedAds = ({\n adsEnabled,\n handleAddToWishlist,\n handleQuickViewClick,\n handleRemoveFromWishlist,\n handleOpenItemSettings,\n handleItemAttributesForFilterClick,\n itemLayout,\n items,\n pageIndex,\n preferredCurrency,\n quickViewEnabled,\n siteLayout,\n skipTopAd,\n isShopOwnedByCurrentMember\n}) => {\n const ItemCardComponent =\n itemLayout === 'layout-list' ? ItemListCard : ItemCard;\n\n const shouldUseNaturalImageMode =\n useIsMobile() && itemLayout === 'layout-grid-large';\n\n const imageMode = shouldUseNaturalImageMode ? 'NATURAL' : 'SQUARE';\n\n if (!(items && items.length > 0)) {\n return null;\n }\n\n return (\n (\n \n \n \n ))}\n />\n );\n};\n\nexport const ComponentsWithStitchAds = ({\n adsEnabled,\n components,\n itemLayout,\n pageIndex,\n siteLayout,\n skipTopAd\n}) => {\n const result = [];\n let mobileAdIndex = 0;\n let tabletAdIndex = 0;\n let desktopAdIndex = 0;\n\n const currentBreakpoint = useBreakpoint();\n\n if (!(components && components.length > 0)) {\n return null;\n }\n\n const adFrequency = getAdFrequency(\n currentBreakpoint,\n itemLayout,\n siteLayout\n );\n\n for (const [index, component] of components.entries()) {\n if (adsEnabled && pageIndex > 0) {\n if ((index - MOBILE_AD_OFFSET) % adFrequency === 0) {\n result.push(\n \n );\n mobileAdIndex += 1;\n }\n if ((index - TABLET_AD_OFFSET) % adFrequency === 0) {\n if (skipTopAd && index === 0) {\n desktopAdIndex += 1;\n } else {\n result.push(\n \n );\n tabletAdIndex += 1;\n }\n }\n if ((index - DESKTOP_AD_OFFSET) % adFrequency === 0) {\n if (skipTopAd && index === 0) {\n desktopAdIndex += 1;\n } else {\n result.push(\n \n );\n desktopAdIndex += 1;\n }\n }\n }\n result.push(component);\n\n //Add extra ad to the end for desktop if frequency 16\n if (index === components.length - 1 && adFrequency === 16) {\n result.push(\n \n );\n desktopAdIndex += 1;\n }\n }\n\n return result;\n};\n\nexport default ItemsWithStitchedAds;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M10.5 2.6c2 2 2.2 5.2.4 7.4l3.9 3.9c.2.2.2.6 0 .9-.2.2-.6.2-.9 0L10.1 11a5.52 5.52 0 01-7.4-.4C.5 8.4.5 4.9 2.7 2.7s5.7-2.2 7.8-.1zm-7 .9C1.8 5.2 1.8 8 3.5 9.7s4.5 1.7 6.1 0 1.7-4.5 0-6.1-4.4-1.8-6.1-.1zm3.1 0c.3 0 .6.3.6.6V6h1.9c.3 0 .6.3.6.6s-.3.6-.7.6H7.1v1.9c0 .3-.3.6-.6.6s-.6-.3-.6-.7V7.1H4c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h1.9V4c0-.3.3-.5.7-.5z\",\n fillRule: \"evenodd\"\n})));","import React from 'react';\nimport QuickViewIcon from '@tradera/blueprint/theme/icons2/quick-view.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst QuickViewButton = ({ className, iconClassName, onClick }) => {\n const { t } = useTranslator();\n return (\n \n \n \n );\n};\nexport default QuickViewButton;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport ALink from 'tradera-components/alink';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\n\nconst noop = () => {};\n\nexport const Button = props => {\n const {\n theme,\n size,\n children,\n link,\n disabled,\n unbutton,\n wide,\n round,\n translucent,\n className,\n branded,\n outline,\n fluid,\n click,\n iconHidden,\n iconFixed,\n href,\n tag,\n loading,\n toggle,\n toggleActive,\n hoverColor,\n input,\n nowrap,\n ...otherProps\n } = props;\n\n const allClasses = {\n color:\n theme && outline\n ? `btn-outline-${theme}`\n : theme\n ? `btn-${theme}`\n : '',\n hover: hoverColor && `btn-hover-${hoverColor}`,\n size: size && `btn-${size}`,\n reset: unbutton && 'unbutton',\n transparent: translucent && 'btn-translucent',\n link: link && 'btn-link',\n wide: wide && 'btn-wide',\n round: round && 'btn-round',\n fluid: fluid && 'btn-fluid',\n loading: loading && 'btn-loading',\n tag: tag && 'btn-tag',\n hiddenIcon: iconHidden && 'btn--icon-hidden',\n fixedIcon: iconFixed && 'btn--icon-fixed',\n nowrap: nowrap && 'text-nowrap text-truncate',\n toggle:\n toggle && toggleActive\n ? 'btn-toggle active'\n : toggle\n ? 'btn-toggle'\n : ''\n };\n\n const buttonClasses = ['btn', className, ...Object.values(allClasses)]\n .filter(Boolean)\n .join(' ');\n\n const onBtnClick = useCallback(\n event => {\n if (typeof click === 'function' && !loading) {\n click(event);\n }\n },\n [click, loading]\n );\n\n if (input) {\n return ;\n }\n\n return href ? (\n \n {children}\n \n ) : (\n \n {children}\n {loading ? (\n \n ) : null}\n \n );\n};\n\nButton.propTypes = {\n theme: PropTypes.oneOf([\n 'branded',\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'warning',\n 'danger',\n 'dark',\n 'function',\n 'info',\n 'light',\n 'white'\n ]),\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),\n link: PropTypes.bool,\n disabled: PropTypes.bool,\n unbutton: PropTypes.bool,\n wide: PropTypes.bool,\n round: PropTypes.bool,\n translucent: PropTypes.bool,\n className: PropTypes.string,\n click: PropTypes.func,\n children: PropTypes.node,\n branded: PropTypes.bool,\n outline: PropTypes.bool,\n fluid: PropTypes.bool,\n iconHidden: PropTypes.bool,\n iconFixed: PropTypes.bool,\n href: PropTypes.string,\n tag: PropTypes.bool,\n loading: PropTypes.bool,\n toggle: PropTypes.bool,\n toggleActive: PropTypes.bool,\n hoverColor: PropTypes.string\n};\n\nButton.defaultProps = {\n click: noop,\n disabled: false\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport { axiosConfigs } from 'tradera-utils/api';\nimport campaignCodeActions from './campaign-code-actions';\nimport { defaultClient } from 'tradera-utils/http';\nimport { selectCategoryAttributes } from '../selectors/attribute-selectors';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nimport logger from 'packages/logger';\n\nconst throttleTimeout = 2000;\nconst suggestionsThrottle = new ThrottledAction(throttleTimeout, true);\nconst imageToColorsThrottle = new ThrottledAction(throttleTimeout, false);\n\nconst INPUT_TYPE_MAP = {\n Button: 'button',\n Color: 'color',\n Dropdown: 'dropdown'\n};\n\nconst COLOR_ATTRIBUTE_ID = 2;\n\nconst transformServerOption = serverOption => {\n return {\n value:\n typeof serverOption === 'string'\n ? serverOption\n : serverOption.value,\n sortOrder: serverOption.sortOrder,\n isActive: false,\n warningLabel: {\n title:\n serverOption.warningLabel !== undefined &&\n serverOption.warningLabel !== null\n ? serverOption.warningLabel.title\n : null,\n text:\n serverOption.warningLabel !== undefined &&\n serverOption.warningLabel !== null\n ? serverOption.warningLabel.text\n : null\n }\n };\n};\n\nconst transformServerAttribute = attribute => {\n return {\n id: attribute.id,\n title: attribute.displayName,\n description: attribute.description,\n sortOrder: attribute.sortOrder,\n backingField: attribute.backingField,\n options: attribute.possibleValues.map(transformServerOption),\n inputType: INPUT_TYPE_MAP[attribute.type],\n isMultiSelect: attribute.isMultiSelect,\n maxNumberOfValues: attribute.maxNumberOfValues,\n minNumberOfValues: attribute.minNumberOfValues,\n numberOfValuesSelected: 0,\n shouldTranslateValues: attribute.shouldTranslateValues,\n preserveOptionsOrder: attribute.preserveOptionsOrder\n };\n};\n\nexport const setAttributesFromDraft = draft => dispatch => {\n dispatch({\n type: 'SET_DRAFT_ATTRIBUTES',\n payload: draft.attributeValues\n });\n};\n\nexport const reset = () => dispatch => {\n dispatch({\n type: 'RESET_ATTRIBUTES'\n });\n};\n\nexport const resetSelectedAttributes = () => dispatch => {\n dispatch({\n type: 'RESET_SELECTED_ATTRIBUTES'\n });\n};\n\nexport const fetchForCategory = categoryId => async dispatch => {\n dispatch(reset());\n\n if (!categoryId) {\n return;\n }\n\n try {\n const response = await defaultClient.get(\n `${ENDPOINTS.SELLING_ATTRIBUTES}/?categoryId=${categoryId}`,\n {\n ...axiosConfigs.authenticated\n }\n );\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTES',\n payload: response.data.attributeDefinitions.map(\n transformServerAttribute\n )\n });\n dispatch(updateCategoryAttributesOptionsStatuses());\n dispatch(campaignCodeActions.validateCampaignCode());\n } catch (error) {\n dispatch(reset());\n throw error;\n }\n};\n\nconst updateCategoryAttributesOptionsStatuses = () => dispatch => {\n dispatch({\n type: 'UPDATE_CATEGORY_ATTRIBUTES_OPTIONS_STATUSES'\n });\n};\n\nexport const updateAttribute = (\n attributeId,\n optionValue,\n activate,\n onUpdated\n) => (dispatch, getState) => {\n const {\n maxNumberOfValues,\n numberOfValuesSelected,\n isMultiSelect\n } = selectCategoryAttributes(getState()).find(a => a.id === attributeId);\n\n if (\n activate &&\n isMultiSelect &&\n maxNumberOfValues === numberOfValuesSelected\n ) {\n return;\n }\n\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTE_OPTION',\n payload: {\n attributeId,\n optionValue,\n activate\n }\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n if (onUpdated) {\n onUpdated();\n }\n};\n\nexport const resetAttribute = attributeId => dispatch => {\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTE_OPTION',\n payload: {\n attributeId,\n activate: false\n }\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n};\n\nexport const throttledFetchCategoryAttributeSuggestions = (\n categoryId,\n shortDescription\n) => dispatch => {\n const action = () => {\n dispatch(\n fetchCategoryAttributeSuggestions(categoryId, shortDescription)\n );\n };\n suggestionsThrottle.execute(action);\n};\n\nexport const throttledFetchImageAttributeSuggestions = draftImageIds => (\n dispatch,\n getState\n) => {\n const featureSwitches = getState().environment.featureSwitches;\n if (\n !featureSwitches['syi-image-attribute-suggestions'] ||\n !draftImageIds ||\n draftImageIds.length === 0\n ) {\n return;\n }\n const action = () => {\n dispatch(fetchImageAttributeSuggestions(draftImageIds));\n };\n imageToColorsThrottle.execute(action);\n};\n\nexport const resetImageAttributesSuggestions = () => ({\n type: 'RESET_IMAGE_ATTRIBUTES_SUGGESTIONS'\n});\n\nconst fetchImageAttributeSuggestions = draftImageIds => async dispatch => {\n dispatch(resetImageAttributesSuggestions());\n\n const paramKeyPart = 'imageIds=';\n const query = paramKeyPart + draftImageIds.join(`&${paramKeyPart}`);\n\n try {\n const response = await defaultClient.get(\n `${ENDPOINTS.SELLING_DRAFT_IMAGE_COLORS}?${query}`\n );\n\n const colors = response.data?.colorValues?.map(cv => cv.color) || [];\n\n dispatch({\n type: 'SET_IMAGE_ATTRIBUTES_SUGGESTIONS',\n payload: {\n suggestedAttributes: [\n {\n id: COLOR_ATTRIBUTE_ID,\n name: 'color',\n values: colors\n }\n ]\n }\n });\n } catch (error) {\n logger(error);\n }\n};\n\nexport const fetchCategoryAttributeSuggestions = (\n categoryId,\n shortDescription\n) => async (dispatch, getState) => {\n const featureSwitches = getState().environment.featureSwitches;\n if (!featureSwitches['syi-attribute-suggestions']) {\n return;\n }\n\n if (!categoryId || !shortDescription) {\n dispatch({\n type: 'RESET_ATTRIBUTES_SUGGESTIONS'\n });\n return;\n }\n\n const splitTestGroup = getState().environment.splitTestGroups[\n 'attribute_suggestion_extractor'\n ];\n if (!splitTestEnabled(splitTestGroup)) {\n return;\n }\n const extractorType = getAttributeSuggestionExtractor(splitTestGroup);\n\n try {\n let params = {\n categoryId,\n shortDescription,\n extractorType\n };\n const response = await defaultClient.post(\n `${ENDPOINTS.SELLING_SUGGEST_ATTRIBUTES}`,\n params,\n {\n ...axiosConfigs.authenticated\n }\n );\n\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTES_SUGGESTIONS',\n payload: {\n suggestedAttributes: response.data.attributeValues.termAttributeValues.map(\n transformServerAttributeSuggestion\n ),\n suggestionsExtractorType: response.data.extractorType\n }\n });\n } catch (error) {\n dispatch({\n type: 'RESET_ATTRIBUTES_SUGGESTIONS'\n });\n throw error;\n }\n};\n\nconst splitTestEnabled = splitTest => splitTest !== 'control';\n\nconst getAttributeSuggestionExtractor = splitTest => {\n switch (splitTest) {\n case 'code':\n return 0;\n case 'tradera':\n return 1;\n case 'google':\n return 2;\n default:\n return 0;\n }\n};\n\nconst transformServerAttributeSuggestion = attributeSuggestion => {\n return {\n id: attributeSuggestion.id,\n name: attributeSuggestion.name,\n values: attributeSuggestion.values\n };\n};\n","import React, { useEffect, useState } from 'react';\nimport { memberIdentificationClient } from 'tradera-utils/http';\nimport './document-scanning.scss';\nimport { Trans, useTranslator } from 'tradera-lang/translate';\nimport { LocalLoader } from 'tradera-components/loader/loader';\nimport qs from 'qs';\n\nconst STATE = {\n VERIFYING: 'VERIFYING',\n ERROR_UNAVAILABLE: 'ERROR_UNAVAILABLE',\n CONTACT_CUSTOMER_SUPPORT: 'CONTACT_CUSTOMER_SUPPORT'\n};\n\nexport const handleMitIdQueryParam = (t, publishAction, errorAction) => {\n const { identified } = qs.parse(location.search, {\n ignoreQueryPrefix: true\n });\n if (identified === '1') {\n memberIdentificationClient\n .command('MitIdSessionStatus', {})\n .then(({ errors }) => {\n if (errors.length > 0) {\n errorAction(\n t(\n 'international_identification_contactCustomerSupportText'\n )\n );\n } else {\n publishAction(t);\n }\n return;\n })\n .catch(() => {\n errorAction(t('international_identification_errorUnavailable'));\n });\n }\n\n if (identified === '0') {\n errorAction(\n t('international_identification_contactCustomerSupportText')\n );\n }\n};\n\nexport const MitId = ({ onVerifyCancel }) => {\n useEffect(() => {\n memberIdentificationClient\n .command('MitIdCreateSession', { purpose: 'SYI', isMobile: true })\n .then(({ redirectUrl }) => (window.location = redirectUrl))\n .catch(onVerifyCancel);\n }, [onVerifyCancel]);\n return null;\n};\n\nexport const MitIdDesktop = ({ onVerifyComplete, onVerifyCancel }) => {\n const { t } = useTranslator();\n const [isLoading, setIsLoading] = useState(true);\n\n const [verifyingState, setVerifyingState] = useState(STATE.VERIFYING);\n\n useEffect(() => {\n if (verifyingState !== STATE.VERIFYING) {\n return;\n }\n\n let currentTimeoutId = null;\n const poll = mitIdWindow =>\n new Promise((resolve, reject) => {\n const call = () => {\n currentTimeoutId = setTimeout(() => {\n if (mitIdWindow.closed) {\n return reject({ userClosedWindow: true });\n }\n try {\n // Result will appear when verification is completed.\n memberIdentificationClient\n .command('MitIdSessionStatus', {})\n .then(result => {\n if (result && result.isCompleted) {\n mitIdWindow.close();\n return resolve(result);\n }\n return;\n })\n .catch(() => {\n mitIdWindow.close();\n reject();\n });\n } catch (error) {\n console.error(error);\n } finally {\n if (currentTimeoutId) {\n call();\n }\n }\n }, 2000);\n };\n call();\n });\n setIsLoading(true);\n memberIdentificationClient\n .command('MitIdCreateSession', { purpose: 'SYI', isMobile: false })\n .then(({ redirectUrl }) => {\n const height = 645;\n const width = 450;\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n const top = (window.screenY || 0) + (windowHeight - height) / 2;\n const left = (window.screenX || 0) + (windowWidth - width) / 2;\n const mitIdWindow = window.open(\n redirectUrl,\n '_blank',\n `fullscreen=no,height=${height},width=${width},menubar=no,left=${left},top=${top}`\n );\n return poll(mitIdWindow);\n })\n .then(({ errors }) => {\n setIsLoading(false);\n\n if (errors.length > 0) {\n setVerifyingState(STATE.CONTACT_CUSTOMER_SUPPORT);\n } else {\n onVerifyComplete();\n }\n return;\n })\n .catch(error => {\n setIsLoading(false);\n if (error && error.userClosedWindow) {\n onVerifyCancel();\n } else {\n setVerifyingState(STATE.ERROR_UNAVAILABLE);\n }\n });\n return () => {\n currentTimeoutId && clearTimeout(currentTimeoutId);\n currentTimeoutId = null;\n };\n }, [\n verifyingState,\n setVerifyingState,\n setIsLoading,\n onVerifyComplete,\n onVerifyCancel\n ]);\n\n return (\n
    \n {isLoading && }\n {verifyingState === STATE.ERROR_UNAVAILABLE && (\n \n {t('international_identification_errorUnavailable')}\n \n )}\n {verifyingState === STATE.CONTACT_CUSTOMER_SUPPORT && (\n
    \n

    \n {t(\n 'international_identification_contactCustomerSupportHeading'\n )}\n

    \n

    \n }}\n />\n

    \n onVerifyCancel()}>\n {t('international_identification_return')}\n \n
    \n )}\n
    \n );\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport SearchIcon from '@tradera/blueprint/theme/icons2/search.svg?jsx';\n\nconst SearchButton = ({ showSearch, onClick }) => {\n const { t } = useTranslator();\n\n return (\n \n \n \n );\n};\n\nexport { SearchButton };\n","import React from 'react';\n\n// https://github.com/facebook/react/issues/3386#issuecomment-291152357\nconst HighlightWord = ({ text, query = '', icon }) => {\n if (!text) {\n return;\n }\n if (!query) {\n return (\n \n {icon && icon}\n {text}\n \n );\n }\n return (\n \n {icon && icon}\n {text.split(query).reduce((prev, current, i) => {\n if (!i) {\n return [current];\n }\n return prev.concat(\n \n {query}\n ,\n current\n );\n }, [])}\n \n );\n};\n\nexport default HighlightWord;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport ALink from 'tradera-components/alink';\nimport FilterIcon from '@tradera/blueprint/theme/icons2/filter.svg?jsx';\nimport TimeIcon from '@tradera/blueprint/theme/icons2/time.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user-fill.svg?jsx';\nimport HighlightWord from './highlight-word';\nimport CloseNarrowIcon from '@tradera/blueprint/theme/icons/close-narrow.svg?jsx';\nimport {\n addRecentSearchText,\n removeRecentSearchText\n} from 'tradera-state/personalisation/actions';\nimport { toSearchString } from 'tradera-utils/url';\n\n// Dont blur input when there's a mouseclick on the search suggestions\nconst preventDefault = evt => {\n evt.preventDefault();\n};\n\n// Without this, the search field dropdown is collapsed. Fixes TWT-993.\nconst fixFlexHeightInIpadMini2Style = { flexBasis: 'auto' };\n\nexport const PreviousSearchesListItem = ({\n changeSearchTerm,\n inSPA,\n isSelected,\n onPreviousSearchRemoved,\n searchTerm,\n selectedCategoryId,\n text\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const dispatch = useDispatch();\n return (\n \n {\n dispatch(addRecentSearchText(text));\n changeSearchTerm(text, event);\n }}\n onMouseDown={preventDefault}\n data-suggestion\n data-previous-suggestion={text}\n data-ga-category=\"User search\"\n data-ga-action=\"Suggestion - Previous Query\"\n data-ga-label={searchTerm}>\n }\n />\n \n {\n dispatch(removeRecentSearchText(text));\n onPreviousSearchRemoved();\n }}\n onMouseDown={preventDefault}\n type=\"reset\">\n \n \n \n );\n};\n\nexport const SearchesSuggestionsListItem = ({\n changeSearchTerm,\n inSPA,\n isSelected,\n item,\n searchTerm,\n selectedCategoryId\n}) => {\n const categoryId = item.category\n ? item.category.id\n : selectedCategoryId\n ? selectedCategoryId\n : 0;\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n changeSearchTerm(item.text, event)}\n onMouseDown={preventDefault}\n data-suggestion\n data-search-suggestion={item.text}\n data-ga-category=\"User search\"\n data-ga-action={`Suggestion - ${\n item.category ? 'Category' : 'Auto Query'\n }`}\n data-ga-label={item.text}>\n \n {item.category ? `inom ${item.category.name}` : ''}\n \n );\n};\n\nexport const ShopsSuggestionsListItem = ({\n changeSearchTerm,\n inSPA,\n isSelected,\n item,\n searchTerm\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const suggestionUrl =\n item.name === 'Musikhjälpen'\n ? toLocalizedUrl('/charity/musikhjalpen')\n : toLocalizedUrl(`/profile/items/${item.memberId}/${item.urlName}`);\n return (\n changeSearchTerm(item.text, event)}\n onMouseDown={preventDefault}\n data-suggestion\n data-shop-suggestion={item.name}\n data-ga-category=\"User search\"\n data-ga-action=\"Suggestion - Shop\"\n data-ga-label={item.name}>\n {t('siteHeader_shop')}\n \n \n );\n};\n\nexport const CharitiesSuggestionsListItem = ({\n changeSearchTerm,\n // inSPA,\n isSelected,\n item,\n searchTerm\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n changeSearchTerm(item.text)}\n onMouseDown={preventDefault}\n data-suggestion\n data-shop-suggestion={item.name}\n data-ga-category=\"User search\"\n data-ga-action=\"Suggestion - Charity\"\n data-ga-label={item.name}>\n \n {t('siteHeader_cause')}\n \n \n \n );\n};\n\nexport const CampaignSuggestionsListItem = ({\n changeSearchTerm,\n // inSPA,\n isSelected,\n item,\n searchTerm\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n changeSearchTerm(item.text, event)}\n onMouseDown={preventDefault}\n data-suggestion\n data-campaign-suggestion={item.headline}\n data-ga-category=\"User search\"\n data-ga-action=\"Suggestion - Campaign\"\n data-ga-label={item.headline}>\n \n {t('siteHeader_campaign')}\n \n \n \n );\n};\n\nexport const AdvancedSearchListItem = ({ isSelected }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n \n \n {t('siteHeader_searchAdvanced')}\n \n );\n};\n\nexport const SellerSearchListItem = ({ isSelected, searchTerm }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const searchUrl = '/search/detailed/member';\n const href = searchTerm\n ? toLocalizedUrl(`${searchUrl}?q=${searchTerm}`)\n : toLocalizedUrl(searchUrl);\n\n return (\n \n \n {t('siteHeader_searchSeller')}\n \n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n CampaignSuggestionsListItem,\n PreviousSearchesListItem,\n SearchesSuggestionsListItem,\n ShopsSuggestionsListItem,\n AdvancedSearchListItem,\n SellerSearchListItem,\n CharitiesSuggestionsListItem\n} from './suggestion-list-items';\n\nconst SearchSuggestion = ({\n suggestions,\n inSPA,\n visible,\n onChangeSearchTerm,\n onPreviousSearchRemoved,\n searchTerm,\n selectedCategoryId,\n selectedIndex,\n searchSuggestionsElementRef\n}) => (\n \n
    \n {suggestions.map((entry, index) => {\n const componentProps = {\n changeSearchTerm: onChangeSearchTerm,\n inSPA: inSPA,\n isSelected: index === selectedIndex,\n item: entry.item,\n key: entry.key,\n searchTerm: searchTerm,\n selectedCategoryId: selectedCategoryId,\n text: entry.text\n };\n switch (entry.type) {\n case 'previous':\n return (\n \n );\n case 'suggested-campaign':\n return (\n \n );\n case 'suggested-item':\n return (\n \n );\n case 'suggested-shop':\n return (\n \n );\n case 'suggested-charity':\n return (\n \n );\n case 'link-advanced-search':\n return (\n \n );\n case 'link-seller-search':\n return (\n \n );\n default:\n throw new Error(\n 'unhandled entry type: ',\n JSON.stringify(entry)\n );\n }\n })}\n
    \n \n);\n\nSearchSuggestion.propTypes = {\n allSuggestions: PropTypes.array,\n isSearchInputFocused: PropTypes.bool,\n onChangeSearchTerm: PropTypes.func,\n onPreviousSearchRemoved: PropTypes.func,\n previousSearches: PropTypes.array,\n searchTerm: PropTypes.string,\n selectedCategoryId: PropTypes.number,\n selectedIndex: PropTypes.number,\n setSearchSuggestionsElement: PropTypes.func\n};\n\nexport default SearchSuggestion;\n","import { Component } from 'react';\nimport ReactDOM from 'react-dom';\n\nexport default class ModalPortal extends Component {\n constructor() {\n super();\n this.el = document.createElement('div');\n this.notificationPortalRoot = document.getElementById('modal-portal');\n }\n\n componentDidMount() {\n if (this.notificationPortalRoot) {\n this.notificationPortalRoot.appendChild(this.el);\n }\n }\n\n componentWillUnmount() {\n if (this.notificationPortalRoot) {\n this.notificationPortalRoot.removeChild(this.el);\n }\n }\n\n render() {\n const { children } = this.props;\n return ReactDOM.createPortal(children, this.el);\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { useCountdown } from 'tradera-hooks/use-countdown';\nimport { formatStaticEndTime } from 'tradera-utils/format';\nimport { formatItemCardTimeLeft } from 'tradera-utils/format-time-left';\n\nconst EndTimeLabel = ({ className, endDate, isActive }) => {\n if (!endDate) return null;\n\n return isActive ? (\n \n ) : (\n \n );\n};\n\nconst EndTimeLabelEnded = ({ className }) => {\n const { t } = useTranslator();\n return {t('vip_ended')};\n};\n\nconst EndTimeLabelWithCountDown = ({ className, endDate }) => {\n const { t } = useTranslator();\n const {\n timeLeftText,\n isCountdownDone,\n isCountdownEnabled,\n isTimeLeftBelowWarningLimit\n } = useCountdown(endDate, formatItemCardTimeLeft);\n\n return (\n \n {isCountdownEnabled && isCountdownDone ? (\n {t('itemCard_ended')}\n ) : (\n \n {timeLeftText || formatStaticEndTime(endDate, t)}\n \n )}\n \n );\n};\nEndTimeLabel.propTypes = {\n className: PropTypes.string,\n endDate: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n isActive: PropTypes.bool\n};\nEndTimeLabel.defaultProps = {\n className: ''\n};\n\nexport default EndTimeLabel;\n","import React from 'react';\n\nconst lazyLoadSettings = {\n offset: 400,\n once: true,\n height: 150,\n placeholder: React.createElement('div', {\n className: 'item-card-image animation-loading-shimmer w-100 h-100'\n })\n};\n\nexport { lazyLoadSettings };\n","import { PAGE_NAMES as MYT_PAGE_NAMES } from 'tradera-apps/my-tradera/app/constants/page';\n\nexport const SURVEYS = {\n general: {\n survey: 'tradera/hur-tycker-du-att-det-fungerar-att-anvanda-tradera',\n supportURL: 'https://info.tradera.com/'\n },\n language: {\n survey: 'tradera/english-translation---rate-your-experience'\n },\n paynova: {\n survey: 'tradera/hur-tycker-du-att-paynova-fungerar',\n textKey: 'surveys_text_paynova'\n },\n cardVerification: {\n survey: 'tradera/vad-fick-dig-att-avbryta-kortverifieringen'\n },\n bankId: {\n survey: 'tradera/bankid'\n },\n [MYT_PAGE_NAMES.BuyerActiveItems]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-aktiva-annonser'\n },\n [MYT_PAGE_NAMES.BuyerPurchases]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-mina-kop'\n },\n [MYT_PAGE_NAMES.BuyerItemsLost]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-mina-ej-vunna'\n },\n [MYT_PAGE_NAMES.SellerActive]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-aktiva-annonser-2'\n },\n [MYT_PAGE_NAMES.SellerSold]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-salda-annonser'\n },\n [MYT_PAGE_NAMES.SellerUnsold]: {\n survey:\n 'tradera/hur-tycker-du-det-fungerar-att-filtrera-soka-och-sortera-i-listan-for-osalda-annonser'\n },\n valuationPage: {\n survey: 'tradera/vad-ar-den-vard-hur-tycker-varderingen-funkar-'\n },\n syiDraftPage: {\n survey: 'tradera/hur-fungerar-det-att-skapa-en-annons'\n },\n combinedShipping: {\n survey: 'tradera/samfrakt---som-sljare-hur-fungerar-det-fr-dig'\n },\n payouts: {\n survey: 'tradera/utbetalningar-hur-fungerar-den-for-dig'\n },\n translationImprovements: {\n survey: 'tradera/versattningar-forbattringsforslag'\n }\n};\n","import React, { Fragment } from 'react';\n\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport SimpleModal from 'components/modals/simple-modal';\nimport TraderaLogo from 'components/tradera/logo';\nimport './gdpr-modal.scss';\n\nconst GdprModal = props => {\n const { t } = useTranslator();\n const { openGdprSettings, acceptAndHide } = props;\n return (\n {}}>\n \n \n

    \n \n

    \n

    \n \n

    \n

    \n {t('gdprConsent_modal_header')}\n

    \n
    \n

    \n {t('gdprConsent_modal_info')}{' '}\n \n {t('gdprConsent_changeSettings')}\n \n

    \n \n \n acceptAndHide(true, true, true, 'Approve All')\n }>\n {' '}\n {t('gdprConsent_approveCookies')}\n \n
    \n \n );\n};\n\nexport default GdprModal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withTranslator } from 'tradera-lang/translate';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\n\nclass GdprSettingsModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n gdprSettings: props.gdprSettings\n };\n }\n\n save = () => {\n const { saveHandler } = this.props;\n const {\n gdprSettings: { performance, functional, marketing }\n } = this.state;\n\n let label;\n if (performance && functional && marketing) {\n label = 'Save All';\n } else {\n label =\n 'Save ' +\n [\n performance && 'performance',\n functional && 'functional',\n marketing && 'marketing'\n ]\n .filter(l => l)\n .join(', ');\n }\n\n saveHandler(performance, functional, marketing, label);\n };\n\n handleChange = event => {\n const {\n target: { name, checked }\n } = event;\n this.setState(state => ({\n gdprSettings: {\n ...state.gdprSettings,\n [name]: checked\n }\n }));\n };\n\n render() {\n const { t } = this.props;\n const { gdprSettings } = this.state;\n return (\n \n
    \n

    \n {t('gdprConsent_modalTitle')}\n

    \n
    \n
    \n

    \n {' '}\n {t('gdprConsent_whatsThis')}{' '}\n \n {t('gdprConsent_readMore')}\n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n

    \n {t('gdprConsent_categoryComment_essential')}\n

    \n
    \n {Object.entries(gdprSettings).map(\n ([type, value], index) => (\n
    \n
    \n \n

    \n {t(\n `gdprConsent_categoryTitle_${type}`\n )}\n

    \n \n \n
    \n

    \n {t(`gdprConsent_categoryComment_${type}`)}\n

    \n
    \n )\n )}\n
    \n
    \n \n {t('gdprConsent_save')}\n \n
    \n \n );\n }\n}\n\nGdprSettingsModal.propTypes = {\n saveHandler: PropTypes.func.isRequired\n};\n\nexport default withTranslator(GdprSettingsModal);\n","import React, { Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport dayjs from 'dayjs';\n\nimport { Analytics, logger } from 'packages';\nimport uiActions from 'tradera-state/ui/actions';\nimport CookieUtil from 'tradera-utils/cookie';\nimport {\n GDPR_CONSENT_COOKIE,\n GDPR_CONSENT_ALERT_DISMISSED\n} from 'tradera-constants/cookies';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport GdprModal from 'tradera-components/alerts/gdpr/gdpr-modal';\nimport GdprSettingsModal from 'tradera-components/alerts/gdpr/gdpr-settings-modal';\nimport initData from 'init-data';\n\nconst GdprContainer = props => {\n const {\n visibleModal,\n visibleSettings,\n closeModal,\n openSettings,\n closeSettings\n } = props;\n\n const quantcastConsent = initData.featureSwitches['quantcast-consent'];\n const openGdprSettings = event => {\n if (event) event.preventDefault();\n openSettings();\n };\n\n const acceptAndHide = (\n performance = true,\n functional = true,\n marketing = true,\n eventLabel\n ) => {\n GdprSettings.set(performance, functional, marketing);\n CookieUtil.createCookie(\n GDPR_CONSENT_ALERT_DISMISSED,\n 1,\n dayjs()\n .add(1, 'years')\n .toDate()\n );\n closeSettings();\n closeModal();\n // Only track event and reload if cookie settings allow tracking\n if (performance) {\n trackEvent(eventLabel)\n .then(() => location.reload(true))\n .catch(error => logger(error));\n }\n };\n\n const trackEvent = (label = 'Save') => {\n return new Promise(resolve => {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Cookies',\n label,\n hitCallback: resolve\n });\n });\n };\n\n const hasGdprCookie = CookieUtil.hasCookie(GDPR_CONSENT_COOKIE);\n // Default to all toggled on if settings have never been set\n const gdprSettings = hasGdprCookie\n ? {\n performance: GdprSettings.isPerformanceEnabled(),\n functional: GdprSettings.isFunctionalEnabled(),\n marketing: GdprSettings.isMarketingEnabled()\n }\n : {\n performance: true,\n functional: true,\n marketing: true\n };\n\n return !quantcastConsent ? (\n \n {visibleModal && (\n \n )}\n {visibleSettings && (\n \n )}\n \n ) : null;\n};\n\nconst mapStateToProps = state => ({\n visibleModal: state.ui.gdpr.modalOpen,\n visibleSettings: state.ui.gdpr.settingsOpen\n});\n\nconst mapDispatchToProps = dispatch => ({\n closeModal: () => dispatch(uiActions.closeGdprModal()),\n openSettings: () => dispatch(uiActions.openGdprSettings()),\n closeSettings: () => dispatch(uiActions.closeGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GdprContainer);\n","import React from 'react';\n\nimport { useTranslator } from 'tradera-lang/translate';\nimport ErrorContainer from './error-container';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst NoItemsError = () => {\n const { t } = useTranslator();\n return (\n \n

    \n \n

    \n

    {t('error_oops')}

    \n

    {t('error_cantLoadItems')}

    \n

    {t('error_tryAgainLater')}

    \n

    \n \n {t('error_reloadPage')}\n \n

    \n
    \n );\n};\n\nexport default NoItemsError;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","export const HOVER_MENUS = {\n WISHLIST: 'Wishlist',\n SELL: 'Selling',\n BUY: 'Buying',\n LOCALIZATION: 'Localization',\n CURRENCY: 'Currency'\n};\n","/**\n * Legacy class replaced by translations. Please don't add anything here, translate all copy instead\n */\nexport default {\n INVOICE_UNPAID: 'Obetald faktura',\n INVOICE_UNPAID_DESCRIPTION: 'Du har väntande faktura(or)',\n INVOICE_OVERDUE: 'Förfallen faktura',\n INVOICE_OVERDUE_DESCRIPTION:\n 'Du har en eller flera förfallna fakturor (registrering av nya inbetalningar är fördröjd).',\n BANK_ACCOUNT_MISSING: 'Kontouppgifter',\n BANK_ACCOUNT_MISSING_DESCRIPTION:\n 'Fyll i dina kontouppgifter för att få betalt när du säljer.',\n PAYOUT_FAILED: 'Misslyckad utbetalning',\n PAYOUT_FAILED_DESCRIPTION:\n 'Vi kunde tyvärr inte betala ut dina pengar. Klicka här för att uppdatera utbetalningsuppgifter.',\n PAYMENT_READY_BANK_ACCOUNT_MISSING: 'Misslyckad utbetalning',\n PAYMENT_READY_BANK_ACCOUNT_MISSING_DESCRIPTION:\n 'Du har en väntande utbetalning. Fyll i dina kontouppgifter för att få pengarna.',\n SWISH_MISSING: 'Swish saknas',\n SWISH_MISSING_DESCRIPTION:\n 'De flesta köpare väljer att betala med Swish. Fyll i ditt Swish-nummer för att inte missa betalningar.',\n ADD_SWISH: 'Lägg till Swish',\n NO_THANKS_SWISH: 'Nej tack till Swish',\n I_UNDERSTAND: 'Jag förstår',\n IFRAME_NOT_SUPPORTED: 'Din browser saknar stöd för iframes',\n COOKIES: {\n HEADER: 'Information om cookies',\n DESC:\n 'Tradera använder cookies (kakor) för att ge dig en bättre upplevelse.',\n READ_MORE: 'Läs mer om vårt användande av cookies.'\n },\n WELCOME_TO_TRADERA: 'Välkommen till Sveriges största marknadsplats!',\n GET_STARTED_BUYING: 'Kom igång med att handla på Tradera',\n GET_STARTED_SELLING: 'Kom igång med att sälja på Tradera',\n VIEW_MORE_VIDEOS: 'Se fler videos',\n DISCOVER: {\n FILTERS: {\n ALL_CATEGORIES: 'Alla kategorier',\n BRANDS: 'Varumärken',\n CONDITION: 'Skick',\n ITEM_TYPE: 'Annonsformat',\n PRICE: 'Pris',\n SELLER_TYPE: 'Typ av säljare',\n COUNTY: 'Område',\n ITEM_STATUS: 'Status',\n SORTING: 'Sortering',\n CLEAR: 'Återställ'\n }\n },\n META: {\n DEFAULT_SITE_NAME: 'Tradera',\n DEFAULT_DESCRIPTION:\n 'Köp och sälj bland auktioner och till fast pris på Tradera.com. Fynda bland massor av auktioner.'\n }\n};\n","const shippingProviders = t => [\n {\n text: t('shippingProviders_schenkerPrivpak'),\n type: SHIPPING_OPTIONS.SCHENKER,\n logoImgUrl: '/static/images/shipping/schenker.svg'\n },\n {\n text: t('shippingProviders_posten'),\n type: SHIPPING_OPTIONS.POSTNORD,\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_postNordParcel'),\n type: SHIPPING_OPTIONS.POSTNORD_PARCEL,\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_postNordStamp'),\n type: SHIPPING_OPTIONS.POSTNORD_STAMP,\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_dhl'),\n type: SHIPPING_OPTIONS.DHL,\n logoImgUrl: '/static/images/shipping/dhl.svg'\n },\n {\n text: t('shippingProviders_bussgods'),\n type: SHIPPING_OPTIONS.BUSSGODS,\n logoImgUrl: '/static/images/shipping/bussgods.svg'\n },\n {\n text: t('shippingProviders_bringDenmark'),\n type: SHIPPING_OPTIONS.BRING_DENMARK,\n logoImgUrl: '/static/images/shipping/bring.svg'\n },\n {\n text: t('shippingProviders_alternative'),\n type: SHIPPING_OPTIONS.ALTERNATIVE,\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_takeaway'),\n type: SHIPPING_OPTIONS.TAKE_AWAY,\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_takeaway'),\n type: SHIPPING_OPTIONS.TAKE_AWAY_ONLY,\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_notSpecified_full'),\n type: SHIPPING_OPTIONS.NOT_SPECIFIED,\n logoImgUrl: null\n }\n];\n\nlet mapInstance = null;\nconst shippingProvidersMap = t => {\n if (mapInstance === null) {\n mapInstance = shippingProviders(t).reduce(\n (obj, provider) => ({\n ...obj,\n [provider.type]: provider\n }),\n {}\n );\n }\n return mapInstance;\n};\n\nexport const SHIPPING_OPTIONS = {\n ALTERNATIVE: 'Alternative',\n BRING_DENMARK: 'BringDenmark',\n BUSSGODS: 'Bussgods',\n DHL: 'DHL',\n FEDEX: 'FedEx',\n NOT_SPECIFIED: 'NotSpecified',\n POSTNORD: 'Posten',\n POSTNORD_PARCEL: 'PostNordParcel',\n POSTNORD_STAMP: 'PostNordStamp',\n SCHENKER: 'SchenkerPrivpak',\n TAKE_AWAY: 'Takeaway',\n TAKE_AWAY_ONLY: 'TakeawayOnly',\n UPS: 'Ups'\n};\n\nexport default {\n get: t => shippingProviders(t),\n map: t => shippingProvidersMap(t)\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","const CHECKOUT_ERRORS = {\n BANK_ID_CANCEL: 'BANK_ID_CANCEL',\n DECLINED: 'DECLINED',\n DECLINED_PAYNOVA: 'DECLINED_PAYNOVA',\n GENERIC: 'GENERIC',\n PERSONAL_ID_INVALID: 'PERSONAL_ID_INVALID',\n EMAIL_ADDRESS_INVALID: 'EMAIL_ADDRESS_INVALID',\n NotSpecifiedShippingOption: 'NotSpecifiedShippingOption',\n NO_PAYMENT_METHOD: 'No payment method is available.'\n};\n\nconst CHECKOUT_ERROR_STRINGS = {\n [CHECKOUT_ERRORS.DECLINED_PAYNOVA]:\n 'checkout_summary_error_declined_paynova',\n [CHECKOUT_ERRORS.DECLINED]: 'checkout_summary_error_declined',\n [CHECKOUT_ERRORS.GENERIC]: 'checkout_summary_error',\n [CHECKOUT_ERRORS.PERSONAL_ID_INVALID]:\n 'checkout_summary_error_personal_id_invalid',\n [CHECKOUT_ERRORS.EMAIL_ADDRESS_INVALID]: 'checkout_paynova_email_invalid',\n [CHECKOUT_ERRORS.NotSpecifiedShippingOption]:\n 'checkout_summary_error_shipping_non_spec',\n [CHECKOUT_ERRORS.NO_PAYMENT_METHOD]:\n 'checkout_summary_error_no_payment_method'\n};\n\nconst getCheckoutErrorMessage = type => {\n return (\n CHECKOUT_ERROR_STRINGS[type] ||\n CHECKOUT_ERROR_STRINGS[CHECKOUT_ERRORS.GENERIC]\n );\n};\n\nexport { CHECKOUT_ERRORS, getCheckoutErrorMessage };\n","import React from 'react';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nimport './site-subheader.scss';\n\nconst SiteSubheader = ({ className, children, ...otherProps }) => {\n const responsiveClassNames = useIsMobile() ? '' : 'bg-gray-100 border-top';\n return (\n \n
    \n {children}\n
    \n \n );\n};\n\nexport default SiteSubheader;\n","export const selectSyiAttributes = state => state.views.syi.attributes;\n\nexport const selectCategoryAttributes = state =>\n selectSyiAttributes(state).categoryAttributes;\n\nexport const selectSuggestedAttributes = state =>\n selectSyiAttributes(state).suggestedAttributes;\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useTranslator } from 'tradera-lang/translate';\nimport PAGE_TYPES from 'tradera-constants/page-types';\nimport pageActions from 'tradera-state/page/actions';\n\n/**\n * Set page metadata, either with a pagemeta id or a page metadata object\n *\n * @param {string} [type]\n * @param {object} [customPageMetaData]\n */\nconst usePageMeta = (\n type = PAGE_TYPES.DEFAULT,\n customPageMetaData,\n setMetaTitle = true\n) => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n useEffect(() => {\n const pageMetaData = {\n metaRobots: null,\n metaTitle: setMetaTitle ? t(`pageMeta_title_${type}`) : '',\n type,\n ...(customPageMetaData || { canonicalLink: location.pathname })\n };\n dispatch(pageActions.setPageMeta(pageMetaData));\n }, [customPageMetaData, dispatch, setMetaTitle, t, type]);\n};\n\nexport { usePageMeta, PAGE_TYPES };\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst FixedPriceLabel = ({ className }) => {\n const { t } = useTranslator();\n return {t('itemCard_fixedPrice')};\n};\n\nexport default FixedPriceLabel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useCurrentLanguage } from 'tradera-lang/translate';\nimport { formatPrice } from 'tradera-utils/format';\n\nconst PriceLabel = ({ tagName: TagName, className, price, hasDiscount }) => {\n const { language } = useCurrentLanguage();\n if (price) {\n return (\n \n {formatPrice(price, language, {\n // Swedish locale shows \"kr\", other \"SEK\"\n currencyDisplay: language.startsWith('sv')\n ? 'symbol'\n : 'code'\n })}\n \n );\n } else {\n return null;\n }\n};\nPriceLabel.propTypes = {\n tagName: PropTypes.string,\n className: PropTypes.string,\n price: PropTypes.number,\n hasDiscount: PropTypes.bool\n};\nPriceLabel.defaultProps = {\n tagName: 'span',\n className: ''\n};\n\nexport default PriceLabel;\n","import React from 'react';\nimport StampIcon from '@tradera/blueprint/theme/icons2/stamp.svg?jsx';\nimport PackageIcon from '@tradera/blueprint/theme/icons2/package.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport shippingProviders from 'tradera-apps/my-tradera/app/data/shipping-providers';\n\nexport const ShippingProviderIcon = ({ providerName, iconClass, imgClass }) => {\n const { t } = useTranslator();\n const { text, logoImgUrl } = shippingProviders.map(t)[providerName];\n return (\n \n {providerName === 'PostNordStamp' && (\n \n )}\n {providerName === 'PostNordParcel' && (\n \n )}\n \n \n );\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './hover-menu.scss';\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 }, 100);\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 { children, className = '' } = 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};\n\nexport default HoverMenu;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport axios from 'axios';\nimport { defaultClient as httpClient } from 'tradera-utils/http';\nimport { axiosConfigs } from 'tradera-utils/api';\n\nconst getCampaignCode = async (\n campaignCode,\n categoryId,\n brandAttributeValues\n) => {\n var requestData = {\n code: campaignCode,\n selectedCategories: categoryId ? [categoryId] : [],\n selectedBrandAttributes: brandAttributeValues\n };\n try {\n const response = await httpClient.post(\n ENDPOINTS.SELLING_CAMPAING_CODE,\n requestData,\n {\n cancelTokenId: 'SELLING_CAMPAIGN_CODE',\n ...axiosConfigs.authenticated\n }\n );\n return response.data;\n } catch (error) {\n if (axios.isCancel(error)) {\n throw 'aborted';\n }\n throw 'Could not get the campaignCode';\n }\n};\n\nconst validate = async (campaignCode, categoryId, brandAttributeValues) => {\n try {\n const data = await getCampaignCode(\n campaignCode,\n categoryId,\n brandAttributeValues\n );\n\n let result = {};\n result.campaignCodeValid = data.validation.isValid;\n result.validationDisplayMessage = data.validation.message;\n result.hasEnded = data.validation.hasEnded;\n if (data.campaign) {\n result.campaignCode = data.campaign.code;\n result.campaignCodeId = data.campaign.id;\n result.campaignCodeMessage = data.campaign.description;\n result.isCustomLengthFeeFree = data.campaign.isCustomLengthFeeFree;\n result.isUnsoldFeeFree = data.campaign.isUnsoldFeeFree;\n result.provisionFactor = data.campaign.provisionFactor;\n result.discountFactor = data.campaign.discountFactor;\n result.maxFeeCap = data.campaign.maxFeeCap;\n result.bannerMobileImageUrl = data.campaign.bannerMobileImageUrl;\n result.bannerTabletImageUrl = data.campaign.bannerTabletImageUrl;\n result.bannerDesktopImageUrl = data.campaign.bannerDesktopImageUrl;\n }\n return result;\n } catch (reason) {\n if (reason === 'aborted') {\n return {\n campaignCodeValid: false,\n validationDisplayMessage: 'Valideringen avbröts.'\n };\n }\n\n return {\n campaignCodeValid: false,\n validationDisplayMessage: 'Kunde inte validera kampanjkoden.'\n };\n }\n};\n\nexport default { validate };\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport campaignService from 'tradera-apps/syi/script/app_react/services/campaign-service';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport feesActions from './fees-actions';\nimport draftActions from './draft-actions';\nimport shippingActions from './shipping-actions';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\n\nconst CHARITIES = userData?.charities || [];\nlet throttleTimeout = 2000;\nlet throttledCampaignCodeValidation = new ThrottledAction(throttleTimeout);\nlet delayedValidationTimeoutId = null;\n\nconst findBrandAttributeValues = getState => {\n if (\n !getSyiSlice(getState()).attributes ||\n !getSyiSlice(getState()).attributes.categoryAttributes\n ) {\n return [];\n }\n\n let brandAttributeValues = [];\n getSyiSlice(getState()).attributes.categoryAttributes.forEach(attribute => {\n const brandAttributeId = 3; //Brand Attribute has Id == 3\n if (attribute.id != brandAttributeId) {\n return;\n }\n if (attribute.options.length === 0) {\n return;\n }\n brandAttributeValues = attribute.options.reduce((acc, option) => {\n if (option.isActive) {\n acc.push(option.value);\n }\n return acc;\n }, []);\n });\n return brandAttributeValues;\n};\n\nconst resetCharityCampaign = (dispatch, getState) => {\n const { name, forceFreeShipping: wasForceFreeShipping } = getSyiSlice(\n getState()\n ).charityCampaign;\n if (!name) {\n return;\n }\n dispatch({\n type: 'RESET_CHARITY_CAMPAIGN'\n });\n dispatch({\n type: 'DISABLE_ZERO_DAY_AUCTIONS'\n });\n if (wasForceFreeShipping) {\n dispatch(shippingActions.resetSelected());\n }\n};\n\nconst resetCampaign = dispatch => {\n dispatch(resetCharityCampaign);\n dispatch({\n type: 'RESET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN'\n });\n dispatch({\n type: 'UNSET_UNSOLD_FEE_FREE_FOR_CAMPAIGN'\n });\n dispatch({\n type: 'ENABLE_RESTART'\n });\n dispatch({\n type: 'RESET_MAX_FEE_CAP'\n });\n dispatch({\n type: 'RESET_CAMPAIGN_BANNER'\n });\n dispatch(feesActions.resetDiscountFactor());\n dispatch(feesActions.resetCampaignCommission());\n\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n dispatch(feesActions.updatePrices());\n};\n\nconst applyCharityFromCampaignCodeId = (\n campaignCodeId,\n campaignCode\n) => dispatch => {\n const charityCampaign = CHARITIES.find(\n charityCampaign => charityCampaign.campaignCodeId === campaignCodeId\n );\n\n if (!charityCampaign) {\n dispatch(resetCharityCampaign);\n return;\n }\n\n dispatch({\n type: 'SET_CHARITY_CAMPAIGN',\n charityCampaign,\n campaignCode\n });\n const {\n allowZeroDayAuctions,\n forceFreeShipping,\n forcePaymentOption\n } = charityCampaign;\n\n if (allowZeroDayAuctions) {\n dispatch({\n type: 'ENABLE_ZERO_DAY_AUCTIONS'\n });\n }\n\n if (forceFreeShipping) {\n dispatch({\n type: 'FORCE_FREE_SHIPPING'\n });\n }\n\n if (forcePaymentOption) {\n dispatch({\n type: 'ENSURE_ANY_PAYMENT_OPTION_FOR_CHARITY'\n });\n }\n\n dispatch(draftActions.setDisplayPromoted(false));\n dispatch(draftActions.setDisplayHighlighted(false));\n};\n\nconst validateCampaignCode = () => (dispatch, getState) => {\n let campaignCode = getSyiSlice(getState()).campaignCode.campaignCode;\n if (!campaignCode || campaignCode.trim().length === 0) {\n return;\n }\n dispatch({\n type: 'VALIDATING_CAMPAIGN_CODE_BY_SEARCHING'\n });\n const isReadOnly = getSyiSlice(getState()).campaignCode.isReadOnly;\n throttledCampaignCodeValidation.execute(function() {\n let category = getSyiSlice(getState()).category;\n const brandAttributeValues = findBrandAttributeValues(getState);\n campaignService\n .validate(\n campaignCode,\n category.draftCategoryId,\n brandAttributeValues\n )\n .then(result => {\n // If the campaign is read-only, ignore if the code is invalid since it has already been used.\n if (isReadOnly) {\n result.campaignCodeValid = true;\n result.campaignCodeMessage = null;\n }\n\n const {\n bannerDesktopImageUrl,\n bannerMobileImageUrl,\n bannerTabletImageUrl,\n campaignCodeId,\n campaignCodeMessage,\n campaignCodeValid,\n discountFactor = null,\n hasEnded,\n isCustomLengthFeeFree,\n isUnsoldFeeFree,\n maxFeeCap,\n provisionFactor = null,\n validationDisplayMessage\n } = result;\n\n const campaignCodeDescription = campaignCodeValid\n ? campaignCodeMessage\n : validationDisplayMessage;\n\n dispatch({\n type: 'SET_CAMPAIGN_VALIDATION_RESULT',\n bannerDesktopImageUrl,\n bannerMobileImageUrl,\n bannerTabletImageUrl,\n campaignCode,\n campaignCodeDescription,\n campaignCodeId,\n campaignCodeValid,\n hasEnded,\n maxFeeCap\n });\n\n if (!campaignCodeValid) {\n dispatch(resetCampaign);\n return;\n }\n\n if (isCustomLengthFeeFree) {\n dispatch({\n type: 'SET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN'\n });\n }\n\n if (isUnsoldFeeFree) {\n dispatch({\n type: 'SET_UNSOLD_FEE_FREE_FOR_CAMPAIGN'\n });\n }\n\n dispatch({\n type: 'DISABLE_RESTART'\n });\n\n if (userData.isCompanyUser) {\n dispatch(feesActions.setDiscountFactor(discountFactor));\n dispatch(feesActions.setCampaignCommission(null));\n } else {\n const commissionProcent =\n provisionFactor !== null\n ? `${provisionFactor * 100}`\n : null;\n dispatch(\n feesActions.setCampaignCommission(commissionProcent)\n );\n dispatch(feesActions.setDiscountFactor(null));\n }\n\n dispatch(\n applyCharityFromCampaignCodeId(campaignCodeId, campaignCode)\n );\n\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n dispatch(feesActions.updatePrices());\n });\n });\n};\n\nconst saveTypedCampaignCode = inputCampaignCode => (dispatch, getState) => {\n const campaignCode = inputCampaignCode?.trim() || null;\n dispatch({\n type: 'SET_UNVERIFIED_CAMPAIGN_CODE',\n campaignCode\n });\n\n if (delayedValidationTimeoutId) {\n clearTimeout(delayedValidationTimeoutId);\n }\n\n if (campaignCode === null) {\n dispatch(resetCampaign);\n return;\n }\n\n delayedValidationTimeoutId = setTimeout(() => {\n clearTimeout(delayedValidationTimeoutId);\n dispatch(validateCampaignCode());\n delayedValidationTimeoutId = setTimeout(() => {\n if (getSyiSlice(getState()).campaignCode.searching) {\n dispatch({\n type: 'SEARCHING_FOR_CAMPAIGN_CODE_IS_DELAYED'\n });\n }\n }, 100);\n }, 700);\n};\n\nconst setInitialCampaignCode = (\n campaignCode,\n campaignCodeId,\n campaignCodeDescription,\n isChangeItem\n) => dispatch => {\n let isReadOnly = campaignCodeId && isChangeItem;\n\n dispatch({\n type: 'INITIALIZE_CAMPAIGN_CODE_STATE',\n campaignCode,\n campaignCodeId,\n campaignCodeDescription,\n isReadOnly\n });\n dispatch(resetCampaign);\n\n // Always validate because this fetches info about the campaign like free shipping etc.\n // If the campaign is read-only, ignore if the code is invalid since it has already been used.\n dispatch(validateCampaignCode());\n};\n\nconst toggleShowInput = isChecked => dispatch => {\n clearTimeout(delayedValidationTimeoutId);\n dispatch({\n type: 'TOGGLE_CAMPAIGN_CODE_CHECKBOX',\n isChecked: isChecked\n });\n dispatch(resetCampaign);\n};\n\nexport default {\n toggleShowInput,\n setInitialCampaignCode,\n saveTypedCampaignCode,\n validateCampaignCode\n};\n","import React, { useEffect, useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport ALink from 'tradera-components/alink/alink';\nimport Home from '@tradera/blueprint/theme/icons2/home.svg?jsx';\nimport { getWindow } from 'tradera-utils/window';\n\nconst Breadcrumbs = ({\n categoryPath,\n categoryTree,\n className = '',\n handleClick,\n inSPA = false\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const breadcrumbRef = useRef(null);\n // Use path if provided otherwise parse path from tree\n let parsedCategoryPath = useMemo(() => {\n if (categoryPath) {\n return categoryPath;\n } else if (categoryTree) {\n const path = resolveActiveCategoryPath(categoryTree);\n // If empty path, fall back to first root category\n if (path.length > 0) {\n return path;\n } else {\n return [categoryTree];\n }\n } else {\n return [];\n }\n }, [categoryPath, categoryTree]);\n\n useEffect(() => {\n breadcrumbRef.current.scrollLeft =\n breadcrumbRef.current.scrollWidth -\n breadcrumbRef.current.clientWidth;\n }, [parsedCategoryPath]);\n\n return (\n \n \n
  • \n \n \n \n
  • \n {parsedCategoryPath.map((category, index) => (\n handleClick(category) : null\n }\n />\n ))}\n \n \n );\n};\n\nBreadcrumbs.propTypes = {\n categoryPath: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n url: PropTypes.string,\n name: PropTypes.string\n })\n ),\n categoryTree: PropTypes.shape({\n status: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.number,\n url: PropTypes.string,\n name: PropTypes.string\n }),\n className: PropTypes.string,\n handleClick: PropTypes.func,\n inSPA: PropTypes.bool\n};\n\n/**\n * Recursively search tree for active category, return list of it and its parents\n *\n * @param {object} category - Category tree\n * @param {object[]} parents - Parent categories to current tree\n */\nconst resolveActiveCategoryPath = (category, parents = []) => {\n if (category.status === 'active') {\n return [...parents, category];\n } else {\n if (category.children) {\n for (const child of category.children) {\n const path = resolveActiveCategoryPath(child, [\n ...parents,\n category\n ]);\n if (path.length > 0) return path;\n }\n }\n return [];\n }\n};\n\n/**\n * Creates a breadcrumb item with Microdata attributes.\n * Microdata can be tested with Google's Structured Data Testing Tool here:\n * https://search.google.com/structured-data/testing-tool?utm_campaign=devsite&utm_medium=microdata&utm_source=breadcrumb\n * Please note that it will give errors if href is contains localhost:5454.\n */\nconst BreadcrumbItem = ({\n handleClick,\n inSPA,\n microDataPositionProperty,\n title,\n url\n}) => {\n const isFirstElement = microDataPositionProperty === 1;\n const gaLabel = isFirstElement\n ? 'All'\n : `L${microDataPositionProperty - 1}`;\n\n return (\n \n \n {'->'}\n \n {handleClick ? (\n \n {title}\n \n ) : (\n \n {title}\n \n )}\n \n \n );\n};\n\nconst TextElement = ({ children }) => (\n \n {children}\n \n);\n\nexport default Breadcrumbs;\n","import React from 'react';\nimport HeartFilledIcon from '@tradera/blueprint/theme/icons2/heart-fill.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst WishListButton = ({\n className,\n disabled,\n iconClassName,\n onClick,\n showText,\n toggled\n}) => {\n const { t } = useTranslator();\n const text = toggled\n ? t('itemCard_savedToWishlist')\n : t('itemCard_saveToWishlist');\n\n const iconClasses = `icon icon-stroke-white \n ${toggled ? 'icon-danger' : ''} \n ${showText ? 'icon-before' : ''} \n ${iconClassName || ''}`;\n\n const combinedClassName = `btn \n ${showText ? 'btn-icon-fixed' : 'btn-round'}\n ${className || ''}`;\n\n return (\n \n {toggled ? (\n \n ) : (\n <>\n \n \n \n )}\n {showText && {text}}\n \n );\n};\n\nexport default WishListButton;\n","import React from 'react';\nimport PropType from 'prop-types';\nimport Close from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nconst ModalHeader = ({ children, onClose, className = '' }) => (\n {\n onClose();\n e.stopPropagation();\n }}>\n
    \n {children}\n
    \n \n \n \n \n);\n\nModalHeader.propTypes = {\n children: PropType.node.isRequired,\n onClose: PropType.func,\n className: PropType.string\n};\n\nexport default ModalHeader;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.forceVisible = exports.forceCheck = exports.lazyload = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _event = require('./utils/event');\n\nvar _scrollParent = require('./utils/scrollParent');\n\nvar _scrollParent2 = _interopRequireDefault(_scrollParent);\n\nvar _debounce = require('./utils/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _throttle = require('./utils/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n * react-lazyload\n */\n\n\nvar defaultBoundingClientRect = { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\nvar LISTEN_FLAG = 'data-lazyload-listened';\nvar listeners = [];\nvar pending = [];\n\n// try to handle passive events\nvar passiveEventSupported = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveEventSupported = true;\n }\n });\n window.addEventListener('test', null, opts);\n} catch (e) {}\n// if they are supported, setup the optional params\n// IMPORTANT: FALSE doubles as the default CAPTURE value!\nvar passiveEvent = passiveEventSupported ? { capture: false, passive: true } : false;\n\n/**\n * Check if `component` is visible in overflow container `parent`\n * @param {node} component React component\n * @param {node} parent component's scroll parent\n * @return {bool}\n */\nvar checkOverflowVisible = function checkOverflowVisible(component, parent) {\n var node = _reactDom2.default.findDOMNode(component);\n // const node = component.ref;\n\n var parentTop = void 0;\n var parentLeft = void 0;\n var parentHeight = void 0;\n var parentWidth = void 0;\n\n try {\n var _parent$getBoundingCl = parent.getBoundingClientRect();\n\n parentTop = _parent$getBoundingCl.top;\n parentLeft = _parent$getBoundingCl.left;\n parentHeight = _parent$getBoundingCl.height;\n parentWidth = _parent$getBoundingCl.width;\n } catch (e) {\n parentTop = defaultBoundingClientRect.top;\n parentLeft = defaultBoundingClientRect.left;\n parentHeight = defaultBoundingClientRect.height;\n parentWidth = defaultBoundingClientRect.width;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n\n // calculate top and height of the intersection of the element's scrollParent and viewport\n var intersectionTop = Math.max(parentTop, 0); // intersection's top relative to viewport\n var intersectionLeft = Math.max(parentLeft, 0); // intersection's left relative to viewport\n var intersectionHeight = Math.min(windowInnerHeight, parentTop + parentHeight) - intersectionTop; // height\n var intersectionWidth = Math.min(windowInnerWidth, parentLeft + parentWidth) - intersectionLeft; // width\n\n // check whether the element is visible in the intersection\n var top = void 0;\n var left = void 0;\n var height = void 0;\n var width = void 0;\n\n try {\n var _node$getBoundingClie = node.getBoundingClientRect();\n\n top = _node$getBoundingClie.top;\n left = _node$getBoundingClie.left;\n height = _node$getBoundingClie.height;\n width = _node$getBoundingClie.width;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n left = defaultBoundingClientRect.left;\n height = defaultBoundingClientRect.height;\n width = defaultBoundingClientRect.width;\n }\n\n var offsetTop = top - intersectionTop; // element's top relative to intersection\n var offsetLeft = left - intersectionLeft; // element's left relative to intersection\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return offsetTop - offsets[0] <= intersectionHeight && offsetTop + height + offsets[1] >= 0 && offsetLeft - offsets[0] <= intersectionWidth && offsetLeft + width + offsets[1] >= 0;\n};\n\n/**\n * Check if `component` is visible in document\n * @param {node} component React component\n * @return {bool}\n */\nvar checkNormalVisible = function checkNormalVisible(component) {\n var node = _reactDom2.default.findDOMNode(component);\n // const node = component.ref;\n\n // If this element is hidden by css rules somehow, it's definitely invisible\n if (!(node.offsetWidth || node.offsetHeight || node.getClientRects().length)) return false;\n\n var top = void 0;\n var elementHeight = void 0;\n\n try {\n var _node$getBoundingClie2 = node.getBoundingClientRect();\n\n top = _node$getBoundingClie2.top;\n elementHeight = _node$getBoundingClie2.height;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n elementHeight = defaultBoundingClientRect.height;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return top - offsets[0] <= windowInnerHeight && top + elementHeight + offsets[1] >= 0;\n};\n\n/**\n * Detect if element is visible in viewport, if so, set `visible` state to true.\n * If `once` prop is provided true, remove component as listener after checkVisible\n *\n * @param {React} component React component that respond to scroll and resize\n */\nvar checkVisible = function checkVisible(component) {\n var node = _reactDom2.default.findDOMNode(component);\n // const node = component.ref;\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n var parent = (0, _scrollParent2.default)(node);\n var isOverflow = component.props.overflow && parent !== node.ownerDocument && parent !== document && parent !== document.documentElement;\n var visible = isOverflow ? checkOverflowVisible(component, parent) : checkNormalVisible(component);\n if (visible) {\n // Avoid extra render if previously is visible\n if (!component.visible) {\n if (component.props.once) {\n pending.push(component);\n }\n\n component.visible = true;\n component.forceUpdate();\n }\n } else if (!(component.props.once && component.visible)) {\n component.visible = false;\n if (component.props.unmountIfInvisible) {\n component.forceUpdate();\n }\n }\n};\n\nvar purgePending = function purgePending() {\n pending.forEach(function (component) {\n var index = listeners.indexOf(component);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n });\n\n pending = [];\n};\n\nvar lazyLoadHandler = function lazyLoadHandler() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n checkVisible(listener);\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n/**\n * Forces the component to display regardless of whether the element is visible in the viewport.\n */\nvar forceVisible = function forceVisible() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n listener.visible = true;\n listener.forceUpdate();\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n// Depending on component's props\nvar delayType = void 0;\nvar finalLazyLoadHandler = null;\n\nvar isString = function isString(string) {\n return typeof string === 'string';\n};\n\nvar LazyLoad = function (_Component) {\n _inherits(LazyLoad, _Component);\n\n function LazyLoad(props) {\n _classCallCheck(this, LazyLoad);\n\n var _this = _possibleConstructorReturn(this, (LazyLoad.__proto__ || Object.getPrototypeOf(LazyLoad)).call(this, props));\n\n _this.visible = false;\n // this.setRef = this.setRef.bind(this);\n return _this;\n }\n\n // setRef(element) {\n // if (element) {\n // this.ref = element;\n // }\n // }\n\n _createClass(LazyLoad, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // It's unlikely to change delay type on the fly, this is mainly\n // designed for tests\n var scrollport = window;\n var scrollContainer = this.props.scrollContainer;\n\n if (scrollContainer) {\n if (isString(scrollContainer)) {\n scrollport = scrollport.document.querySelector(scrollContainer);\n }\n }\n var needResetFinalLazyLoadHandler = this.props.debounce !== undefined && delayType === 'throttle' || delayType === 'debounce' && this.props.debounce === undefined;\n\n if (needResetFinalLazyLoadHandler) {\n (0, _event.off)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n finalLazyLoadHandler = null;\n }\n\n if (!finalLazyLoadHandler) {\n if (this.props.debounce !== undefined) {\n finalLazyLoadHandler = (0, _debounce2.default)(lazyLoadHandler, typeof this.props.debounce === 'number' ? this.props.debounce : 300);\n delayType = 'debounce';\n } else if (this.props.throttle !== undefined) {\n finalLazyLoadHandler = (0, _throttle2.default)(lazyLoadHandler, typeof this.props.throttle === 'number' ? this.props.throttle : 300);\n delayType = 'throttle';\n } else {\n finalLazyLoadHandler = lazyLoadHandler;\n }\n }\n\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));\n // const parent = scrollParent(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = 1 + +parent.getAttribute(LISTEN_FLAG);\n if (listenerCount === 1) {\n parent.addEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n }\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n } else if (listeners.length === 0 || needResetFinalLazyLoadHandler) {\n var _props = this.props,\n scroll = _props.scroll,\n resize = _props.resize;\n\n\n if (scroll) {\n (0, _event.on)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n\n if (resize) {\n (0, _event.on)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n }\n }\n\n listeners.push(this);\n checkVisible(this);\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return this.visible;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));\n // const parent = scrollParent(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = +parent.getAttribute(LISTEN_FLAG) - 1;\n if (listenerCount === 0) {\n parent.removeEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n parent.removeAttribute(LISTEN_FLAG);\n } else {\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n }\n }\n\n var index = listeners.indexOf(this);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length === 0 && typeof window !== 'undefined') {\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.visible ? this.props.children : this.props.placeholder ? this.props.placeholder : _react2.default.createElement('div', { style: { height: this.props.height }, className: 'lazyload-placeholder' });\n // \n // {this.props.placeholder}\n // :\n //
    ;\n }\n }]);\n\n return LazyLoad;\n}(_react.Component);\n\nLazyLoad.propTypes = {\n once: _propTypes2.default.bool,\n height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n offset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),\n overflow: _propTypes2.default.bool,\n resize: _propTypes2.default.bool,\n scroll: _propTypes2.default.bool,\n children: _propTypes2.default.node,\n throttle: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n debounce: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n placeholder: _propTypes2.default.node,\n scrollContainer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n unmountIfInvisible: _propTypes2.default.bool\n};\n\nLazyLoad.defaultProps = {\n once: false,\n offset: 0,\n overflow: false,\n resize: false,\n scroll: true,\n unmountIfInvisible: false\n};\n\nvar getDisplayName = function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nvar decorator = function decorator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function lazyload(WrappedComponent) {\n return function (_Component2) {\n _inherits(LazyLoadDecorated, _Component2);\n\n function LazyLoadDecorated() {\n _classCallCheck(this, LazyLoadDecorated);\n\n var _this2 = _possibleConstructorReturn(this, (LazyLoadDecorated.__proto__ || Object.getPrototypeOf(LazyLoadDecorated)).call(this));\n\n _this2.displayName = 'LazyLoad' + getDisplayName(WrappedComponent);\n return _this2;\n }\n\n _createClass(LazyLoadDecorated, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n LazyLoad,\n options,\n _react2.default.createElement(WrappedComponent, this.props)\n );\n }\n }]);\n\n return LazyLoadDecorated;\n }(_react.Component);\n };\n};\n\nexports.lazyload = decorator;\nexports.default = LazyLoad;\nexports.forceCheck = lazyLoadHandler;\nexports.forceVisible = forceVisible;","import React from 'react';\n\nimport { generateItemCardPlaceholders } from 'tradera-components/item-card/generate-item-card-placeholders';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nconst LoadingSymbolSpinner = () => (\n
    \n \n
    \n);\n\nconst LoadingSymbolCards = ({ itemsPerPage }) => {\n const items = generateItemCardPlaceholders(itemsPerPage);\n const localLazyLoadSettings = {\n ...lazyLoadSettings,\n offset: 100\n };\n\n const isMobile = useIsMobile();\n\n return (\n \n {items.map(item => (\n \n \n
    \n ))}\n \n );\n};\n\nexport { LoadingSymbolSpinner, LoadingSymbolCards };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nconst WaitForConsentApiLoaded = ({ placeHolder, onLoadRender }) => {\n const isTcfLoaded = useSelector(state => state.ads.isTcfLoaded);\n if (!isTcfLoaded) return placeHolder || null; // Return ads placeholder until Tcf is loaded\n return <>{onLoadRender()};\n};\n\nWaitForConsentApiLoaded.propTypes = {\n placeHolder: PropTypes.node,\n onLoadRender: PropTypes.func.isRequired\n};\n\nexport default WaitForConsentApiLoaded;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ArrowUpIcon from '@tradera/blueprint/theme/icons2/arrow-up.svg?jsx';\nimport ArrowDownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\n\nclass ExpandableMenuItem extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: this.props.defaultExpanded\n };\n }\n\n toggleOpen = () => {\n this.setState(\n prevState => ({\n expanded: !prevState.expanded\n }),\n () => {\n const { onOpen = () => {}, onClose = () => {} } = this.props;\n if (this.state.expanded) {\n onOpen();\n } else {\n onClose();\n }\n }\n );\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.defaultExpanded !== this.props.defaultExpanded) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ expanded: prevProps.defaultExpanded });\n }\n }\n\n render() {\n const {\n imageUrl,\n icon,\n label,\n className,\n imageContainerClassName,\n border,\n children,\n href\n } = this.props;\n const { expanded } = this.state;\n\n return (\n \n {\n if (children) {\n e.preventDefault();\n this.toggleOpen();\n }\n }}\n aria-expanded={expanded.toString()}\n className={`site-dropdown__transparent-a p-0 m-0 d-flex flex-row align-items-center site-dropdown__item ${\n className ? className : ''\n }`}>\n {icon && (\n \n {icon}\n \n )}\n {label}\n \n {expanded ? (\n \n ) : (\n \n )}\n \n \n {expanded &&
      {children}
    }\n \n );\n }\n}\n\nExpandableMenuItem.defaultProps = {\n defaultExpanded: false,\n border: true\n};\n\nExpandableMenuItem.propTypes = {\n imageUrl: PropTypes.string,\n icon: PropTypes.node,\n label: PropTypes.node,\n className: PropTypes.string,\n imageContainerClassName: PropTypes.string,\n border: PropTypes.bool,\n onOpen: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default ExpandableMenuItem;\n","import { matchPath } from 'react-router';\nimport { logger } from 'packages';\n\nexport const getCurrentPageFromRoute = (routeMap, location) => {\n if (!routeMap) {\n logger(`Variable 'routeMap' missing in getCurrentPageFromRoute()`);\n return;\n } else if (!location) {\n logger(`Variable 'location' missing in getCurrentPageFromRoute()`);\n return;\n }\n\n const matchedPage = Object.keys(routeMap)?.find(pageName => {\n const page = routeMap[pageName];\n return matchPath(location.pathname, {\n path: page.path,\n exact: page.exact || false,\n strict: page.strict || false\n });\n });\n\n return routeMap[matchedPage];\n};\n","import { warnIfDevBuild } from 'utils/environment';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App, { BasicApp } from './app';\nimport { logger } from 'packages';\n\nexport default initData => {\n warnIfDevBuild('discover');\n const { isHybridAppContext, isBasicApp } = initData;\n const el = document.getElementsByClassName('site-container')[0];\n if (el) {\n try {\n // Render basic app for web views, regular app otherwise\n const AppToMount =\n isHybridAppContext || isBasicApp ? BasicApp : App;\n ReactDOM.render(\n React.createElement(AppToMount, {\n initData\n }),\n el,\n () => {\n el.setAttribute('data-spa-mounted', true);\n }\n );\n } catch (e) {\n logger(e);\n }\n }\n};\n","export default function ThrottledAction(minDelayInMs, alwaysDelay) {\n var lastActionTime = 0;\n var timeoutId = null;\n this.execute = function(wrappedAction) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n var timeNow = Date.now();\n var elapsed = timeNow - lastActionTime;\n if (!alwaysDelay && elapsed > minDelayInMs) {\n wrappedAction();\n lastActionTime = timeNow;\n } else {\n timeoutId = setTimeout(() => {\n wrappedAction();\n }, minDelayInMs);\n }\n };\n}\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst BuyNowLabel = ({ className, tagName: TagName }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_buyNow')}\n \n );\n};\nBuyNowLabel.defaultProps = {\n tagName: 'span'\n};\n\nexport default BuyNowLabel;\n","import React from 'react';\nimport { formatSellerDsrAverage } from 'tradera-utils/format';\n\nconst SellerRating = ({ className, includeTotal, sellerDsrAverage }) => {\n const isGood = sellerDsrAverage >= 4.8;\n const isBad = sellerDsrAverage < 4.5;\n const formattedRating = formatSellerDsrAverage(sellerDsrAverage).replace(\n ',',\n '.'\n );\n let textClassName = '';\n if (isGood) {\n textClassName = 'text-success';\n } else if (isBad) {\n textClassName = 'text-danger';\n }\n return (\n \n {Number(formattedRating).toFixed(1) +\n (includeTotal ? '\\u00A0/\\u00A05.0' : '')}\n \n );\n};\nexport default SellerRating;\n","import React from 'react';\nimport SellerRating from './seller-rating';\n\nconst SellerLink = ({\n className,\n sellerMemberId,\n sellerAlias,\n sellerDsrAverage\n}) => {\n const hasRating = Math.abs(sellerDsrAverage || 0) >= 0.1;\n\n return (\n \n \n {sellerAlias}\n \n {hasRating && (\n <>\n  \n \n \n )}\n \n );\n};\nexport default SellerLink;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst SHIPPING_TYPES = {\n NotSpecified: 'NotSpecified',\n Takeaway: 'Takeaway',\n TakeawayOnly: 'TakeawayOnly'\n};\n\nconst ShippingLabel = ({\n className,\n hasFreeShipping,\n shippingOptions,\n tagName: TagName\n}) => {\n const { t } = useTranslator();\n\n if (hasFreeShipping) {\n return (\n \n {t('itemCard_freeShipping')}\n \n );\n }\n\n const hasNonSpecifiedShipping =\n !shippingOptions ||\n !shippingOptions.length ||\n (shippingOptions.length === 1 &&\n shippingOptions[0].type === SHIPPING_TYPES.NotSpecified);\n\n if (hasNonSpecifiedShipping) {\n return (\n \n {t('itemCard_nonSpecifiedShipping')}\n \n );\n }\n\n const isPickupOnly =\n shippingOptions.length === 1 &&\n [SHIPPING_TYPES.Takeaway, SHIPPING_TYPES.TakeawayOnly].includes(\n shippingOptions[0].type\n );\n\n if (isPickupOnly) {\n return (\n \n {t('itemCard_pickup')}\n \n );\n }\n\n const shippingCost = shippingOptions[0].cost;\n\n if (shippingCost) {\n return (\n \n {t('itemCard_shippingCost', { shippingCost })}\n \n );\n }\n\n return null;\n};\n\nShippingLabel.defaultProps = {\n tagName: 'span'\n};\n\nexport default ShippingLabel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ALink from 'tradera-components/alink/alink';\nimport MultiCurrency, {\n preferredCurrencyPropTypes\n} from '../multi-currency/multi-currency';\n\nimport EndTimeLabel from './item-card-parts/end-time-label';\nimport AttributeButtonsList from './item-card-parts/attribute-buttons-list';\nimport BidsLabel from './item-card-parts/bids-label';\nimport BuyNowLabel from './item-card-parts/buy-now-label';\nimport DiscountBadge from './item-card-parts/discount-badge';\nimport DiscountedPriceLabel from './item-card-parts/disacount-price-label';\nimport FixedPriceLabel from './item-card-parts/fixed-price-label';\nimport ItemCardImage from './item-card-parts/item-card-image';\nimport NewTodayLabel from './item-card-parts/new-today-label';\nimport OnDisplayBadge from './item-card-parts/on-display-badge';\nimport PriceLabel from './item-card-parts/price-label';\nimport QuickViewButton from './item-card-parts/quick-view-button';\nimport SellerLink from './item-card-parts/seller-link';\nimport SettingsButton from './item-card-parts/settings-button';\nimport ShippingLabel from './item-card-parts/shipping-label';\nimport WishListButton from './item-card-parts/wish-list-button';\nimport './item-card.scss';\nimport { useSelector } from 'react-redux';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport ITEM_TYPES from 'tradera-constants/item-types';\nimport dayjs from 'dayjs';\n\nfunction ItemListCard({\n className,\n item = {},\n lazy,\n onClick,\n onAddToWishlist,\n onQuickView,\n onRemoveFromWishlist,\n onAttributeButtonClick,\n onSettings,\n preferredCurrency,\n ready,\n isShopOwnedByCurrentMember = false\n}) {\n const inSPA = true;\n const existsInWishList = useSelector(state =>\n state.items.wishListItemIds.includes(item.itemId)\n );\n const isSwedishVisitor = useSelector(selectIsSwedishVisitor);\n ///////\n const showBids = [ITEM_TYPES.AUCTION, ITEM_TYPES.AUCTION_BIN].includes(\n item.itemType\n );\n const showBuyNow =\n item.itemType === ITEM_TYPES.AUCTION_BIN &&\n (item.totalBids === 0 || !item.reservePriceReached);\n const isShopItem = item.itemType === ITEM_TYPES.SHOP_ITEM;\n const hasDiscount = item.discountRate > 0;\n\n const isNewToday =\n !!item.startDate &&\n dayjs(item.startDate).isAfter(dayjs().subtract(1, 'day'));\n const itemUrl = item.itemUrl || '/';\n const imageUrl = item.imageUrl?.replace('/medium/', '/medium-fit/');\n ///////\n\n const handleWishlist = event => {\n event.preventDefault();\n event.stopPropagation();\n if (existsInWishList) {\n onRemoveFromWishlist(item.itemId);\n } else {\n onAddToWishlist(item.itemId);\n }\n };\n\n return (\n \n \n\n
    \n
    \n {hasDiscount && (\n \n )}\n

    \n \n {item.shortDescription}\n \n

    \n
    \n
    \n

    \n \n {item.shortDescription}\n \n

    \n
    \n {!!item.attributes?.length && onAttributeButtonClick && (\n \n )}\n
    \n \n {isShopItem ? (\n \n ) : (\n <>\n {isNewToday && }\n \n \n )}\n
    \n\n
    \n \n \n {onQuickView && (\n onQuickView(item.itemId)}\n />\n )}\n {isShopOwnedByCurrentMember && (\n onSettings(item.itemId)}\n />\n )}\n
    \n
    \n\n \n \n \n \n {hasDiscount && (\n \n )}\n {showBids && (\n \n )}\n {showBuyNow && (\n <>\n \n \n \n )}\n {isSwedishVisitor && (\n \n )}\n {item.onDisplay && }\n

    \n {isShopItem ? (\n \n ) : (\n <>\n {isNewToday && }\n \n \n )}\n

    \n \n \n );\n}\n\nItemListCard.defaultProps = {\n className: '',\n onAddToWishlist: () => {},\n onRemoveFromWishlist: () => {},\n onQuickView: () => {}\n};\n\nItemListCard.propTypes = {\n className: PropTypes.string,\n item: PropTypes.shape({\n attributes: PropTypes.array,\n buyNowPrice: PropTypes.number,\n discountRate: PropTypes.number,\n displayHighlighted: PropTypes.bool,\n endDate: PropTypes.string,\n hasFreeShipping: PropTypes.bool,\n imageHeight: PropTypes.number,\n imageUrl: PropTypes.string,\n imageWidth: PropTypes.number,\n isActive: PropTypes.bool,\n itemId: PropTypes.number,\n itemType: PropTypes.string,\n itemUrl: PropTypes.string,\n onDisplay: PropTypes.bool,\n price: PropTypes.number,\n priceBeforeDiscount: PropTypes.number,\n reservePriceReached: PropTypes.bool,\n sellerAlias: PropTypes.string,\n sellerDsrAverage: PropTypes.number,\n sellerMemberId: PropTypes.number,\n shippingOptions: PropTypes.array,\n shortDescription: PropTypes.string,\n startDate: PropTypes.string,\n totalBids: PropTypes.number,\n\n /* Currently only used in Wish list */\n isOverbidden: PropTypes.bool,\n isLeading: PropTypes.bool,\n isWinner: PropTypes.bool\n }),\n lazy: PropTypes.shape({\n offset: PropTypes.number,\n once: PropTypes.bool,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n placeholder: PropTypes.node,\n imagePlaceholder: PropTypes.node\n }),\n onAddToWishlist: PropTypes.func,\n onRemoveFromWishlist: PropTypes.func,\n onQuickView: PropTypes.func,\n onSettings: PropTypes.func,\n preferredCurrency: preferredCurrencyPropTypes,\n ready: PropTypes.bool,\n isShopOwnedByCurrentMember: PropTypes.bool\n};\n\nexport default ItemListCard;\n","import React from 'react';\nimport Ad from 'tradera-components/ads/ad';\n\nconst DESKTOP = 'desktop';\nconst TABLET = 'tablet';\nconst MOBILE = 'mobile';\n\nconst DESKTOP_AUTOSCALE_OFFSET = 980;\nconst TABLET_AUTOSCALE_OFFSET = 434;\n\nconst getAdPosision = (index, device) => {\n switch (index) {\n case 1:\n return `mid1-${device}`;\n case 2:\n return `mid2-${device}`;\n case 3:\n return `mid3-${device}`;\n default:\n return `top-${device}`;\n }\n};\n\n/**\n * Helper method for creating ad\n *\n * @param {string} deviceName\n * @param {string} adFormats\n * @param {number} index\n * @param {object} props\n */\nconst buildProps = (\n deviceName,\n adFormats,\n index,\n autoscaleOffsetWidth,\n props\n) => {\n return {\n adContainerClass: '',\n autoscaleOffsetWidth,\n className: 'd-empty-none px-0 col-12 mx-auto mb-4',\n adFormats,\n deviceName,\n position: getAdPosision(index, deviceName),\n ...props\n };\n};\n\nconst DesktopAd = ({ index, ...props }) => (\n \n
    \n \n);\n\nconst TabletAd = ({ index, ...props }) => (\n \n
    \n \n);\n\nconst MobileAd = ({ index, ...props }) => (\n \n
    \n \n);\n\nexport { DesktopAd, TabletAd, MobileAd };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport HoverMenuItem from './hover-menu/hover-menu-item';\nimport { getMenuGaAttributes } from './site-header.analytics.js';\nimport { useTranslator } from 'tradera-lang/translate';\n\nimport HeartIcon from '@tradera/blueprint/theme/icons2/heart.svg?jsx';\nimport BookmarkIcon from '@tradera/blueprint/theme/icons2/bookmark.svg?jsx';\nimport StarIcon from '@tradera/blueprint/theme/icons2/star.svg?jsx';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Watchlist menu', label);\n\nconst WatchListMenu = ({ showMenu }) => {\n const { t } = useTranslator();\n const isSellerListEnabled = useIsFeatureEnabled('my-tradera-seller-list');\n return (\n \n }\n gaAttributes={getGaAttributes('Wishlist')}\n />\n }\n gaAttributes={getGaAttributes('Saved searches')}\n />\n {isSellerListEnabled ? (\n }\n gaAttributes={getGaAttributes('Seller list')}\n />\n ) : (\n }\n gaAttributes={getGaAttributes('Favorite seller')}\n />\n )}\n \n );\n};\n\nWatchListMenu.propTypes = {\n showMenu: PropTypes.bool\n};\n\nexport default WatchListMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HeartIcon from '@tradera/blueprint/theme/icons2/heart.svg?jsx';\nimport WatchlistMenu from './watch-list-menu';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst WishlistLink = ({\n onClick,\n mouseOver,\n mouseOut,\n onBlur,\n transparentHeader,\n showMenu\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const wishlistText = t('siteHeader_wishlist');\n return (\n mouseOver(HOVER_MENUS.WISHLIST)}\n onMouseLeave={mouseOut}>\n {\n onClick(e, HOVER_MENUS.WISHLIST);\n }}\n onBlur={onBlur}>\n \n \n \n {wishlistText}\n \n \n \n
    \n );\n};\n\nWishlistLink.propTypes = {\n onClick: PropTypes.func,\n mouseOver: PropTypes.func,\n mouseOut: PropTypes.func,\n showMenu: PropTypes.bool\n};\n\nexport default React.memo(WishlistLink);\n","import React from 'react';\nimport AttributeButton from './attribute-button';\n\nconst ATTRIBUTE_NAMES = { BRAND: 'brand', CLOTHES_SIZE: 'clothes_size' };\nconst ATTRIBUTE_PREFIX = 'af-';\n\nconst AttributeButtonsList = ({ attributes, onClick, className }) => {\n const visibleAttributes = attributes\n .map(({ name, values }) => {\n switch (name) {\n case ATTRIBUTE_NAMES.BRAND:\n return { name, values };\n case ATTRIBUTE_NAMES.CLOTHES_SIZE:\n return { name: ATTRIBUTE_PREFIX + name, values };\n default:\n return null;\n }\n })\n .filter(x => !!x);\n return (\n

    \n {visibleAttributes.map(attribute => (\n onClick(attribute)}\n />\n ))}\n

    \n );\n};\nexport default AttributeButtonsList;\n","/**\n * Run callback when document DOM content is ready\n *\n * @param {function} callback\n */\nfunction onDOMContentLoaded(callback) {\n if (document.readyState !== 'loading') {\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n}\n\n/**\n * Run callback when all window content has loaded\n *\n * @param {function} callback\n */\nfunction onWindowLoad(callback) {\n if (document.readyState === 'complete') {\n callback();\n } else {\n window.addEventListener('load', callback);\n }\n}\n\nexport {\n // Export onDOMContentLoaded as default to cover old uses of onReady\n onDOMContentLoaded as default,\n onDOMContentLoaded,\n onWindowLoad\n};\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosConfigs,\n axiosWithTokenRefresh,\n finalizeResponse\n} from 'tradera-utils/api';\nimport categoryService from 'tradera-services/category-service';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nimport syiActions from './syi-actions';\nimport feesActions from './fees-actions';\nimport {\n fetchForCategory,\n fetchCategoryAttributeSuggestions\n} from './attributes-actions';\n\nimport campaignCodeActions from './campaign-code-actions';\nimport { globalStore } from 'tradera-state/configure-store';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport { Analytics } from 'packages';\n\nconst store = globalStore();\n\nvar throttleTimeout = 1000;\nvar throttledCategoriesRequest = new ThrottledAction(throttleTimeout, true);\nvar numberOfLevels = 4;\n\nfunction loadCategories(\n shortDescription,\n categoryId,\n index,\n executeImmediately\n) {\n var request = function() {\n store.dispatch({\n type: 'CATEGORIES_LOADING',\n index: index\n });\n categoryService\n .loadChildCategories(shortDescription, categoryId, index)\n .then(result => {\n store.dispatch({\n type: 'CATEGORIES_LOADED',\n category: result,\n index: index\n });\n categoryService.prefetchChildren(\n shortDescription,\n result,\n index + 1\n );\n });\n };\n if (executeImmediately) {\n request();\n } else {\n throttledCategoriesRequest.execute(request);\n }\n}\n\nfunction closeLevel(index) {\n store.dispatch({\n type: 'CLOSE_LEVEL',\n index: index\n });\n}\nfunction resetLevel(index) {\n store.dispatch({\n type: 'RESET_LEVEL',\n index: index\n });\n}\nfunction disableLevel(index) {\n store.dispatch({\n type: 'DISABLE_LEVEL',\n index: index\n });\n}\nfunction toggleLevelLabel(index, value) {\n store.dispatch({\n type: 'TOGGLE_LEVEL_LABEL',\n index: index,\n value: value\n });\n}\nfunction selectLevelCategory(category, index) {\n store.dispatch({\n type: 'SELECT_LEVEL_CATEGORY',\n index: index,\n category: category\n });\n}\n\nconst closeAllLevels = () => {\n for (let i = 0; i < numberOfLevels; i++) {\n closeLevel(i);\n }\n};\n\nexport const updateCategoryRestrictions = categoryId => async () => {\n if (!categoryId) {\n resetCategoryRestriction();\n return;\n }\n\n try {\n const url = ENDPOINTS.SELLING_CATEGORY_RESTRICTIONS + '/' + categoryId;\n const response = await axiosWithTokenRefresh()\n .get(url, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse());\n syiActions.setCategoryRestriction(response.data);\n } catch (error) {\n resetCategoryRestriction();\n throw error;\n }\n};\n\nconst resetCategoryRestriction = () =>\n syiActions.setCategoryRestriction({\n displayPaymentOptions: '',\n paymentOptionGroups: []\n });\n\nconst setDraftCategory = (categoryId, categoryPath) => (dispatch, getState) => {\n var slice = getSyiSlice(getState());\n if (!categoryPath) {\n categoryPath = slice.category.levels\n .filter(level => level.selectedCategory)\n .map(level => level.selectedCategory);\n }\n dispatch({\n type: 'SET_DRAFT_CATEGORY',\n categoryId: categoryId,\n categoryPath: categoryPath\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n dispatch(updateCategoryRestrictions(categoryId));\n dispatch(fetchForCategory(categoryId));\n dispatch(\n fetchCategoryAttributeSuggestions(\n categoryId,\n slice.shortDescription.shortDescription\n )\n );\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n};\n\nconst resetDraftCategory = () => dispatch => {\n dispatch(setDraftCategory(0, []));\n};\n\nconst loadTopCategories = shortDescription => dispatch => {\n dispatch({\n type: 'CATEGORIES_LOADING',\n index: 0\n });\n\n categoryService.loadTopCategories(shortDescription).then(result => {\n dispatch({\n type: 'CATEGORIES_LOADED',\n category: result,\n index: 0,\n shortDescriptionForRecommendations: shortDescription\n });\n categoryService.prefetchChildren(shortDescription, result, 1);\n });\n};\n\nconst setPath = (shortDescription, categoryPath) => () => {\n if (!categoryPath || !categoryPath.length) {\n closeAllLevels();\n return;\n }\n for (let i = 0; i < categoryPath.length; i++) {\n closeLevel(i);\n selectLevelCategory(categoryPath[i], i);\n if (i < categoryPath.length - 1) {\n loadCategories(\n shortDescription,\n categoryPath[i].categoryId,\n i + 1,\n true\n );\n }\n }\n for (var i = categoryPath.length; i < numberOfLevels; i++) {\n toggleLevelLabel(i, false);\n }\n};\n\nconst setPathFromDraft = () => (dispatch, getState) => {\n let shortDescription = getSyiSlice(getState()).shortDescription;\n let category = getSyiSlice(getState()).category;\n dispatch(\n setPath(shortDescription.shortDescription, category.draftCategoryPath)\n );\n};\n\nconst reset = () => dispatch => {\n dispatch({\n type: 'RESET_CATEGORY'\n });\n dispatch(feesActions.updateCommission());\n};\n\nconst openLevel = (shortDescription, index) => dispatch => {\n closeAllLevels();\n if (index === 0) {\n dispatch(loadTopCategories(shortDescription));\n }\n dispatch({\n type: 'OPEN_LEVEL',\n index: index\n });\n};\n\nconst toggleCategories = categoryLevel => dispatch => {\n dispatch({\n type: 'TOGGLE_CATEGORIES',\n index: categoryLevel.index,\n value: !categoryLevel.categoriesVisible\n });\n};\n\nconst selectCategory = (\n shortDescription,\n categoryLevel,\n category\n) => dispatch => {\n if (category.isLeaf) {\n closeLevel(categoryLevel.index);\n selectLevelCategory(category, categoryLevel.index);\n for (let i = categoryLevel.index + 1; i < numberOfLevels; i++) {\n toggleLevelLabel(i, false);\n }\n dispatch(setDraftCategory(category.categoryId));\n } else {\n dispatch(resetDraftCategory());\n for (let i = categoryLevel.index + 1; i < numberOfLevels; i++) {\n resetLevel(i);\n disableLevel(i);\n toggleLevelLabel(i, true);\n }\n closeLevel(categoryLevel.index);\n selectLevelCategory(category, categoryLevel.index);\n loadCategories(\n shortDescription,\n category.categoryId,\n categoryLevel.index + 1,\n true\n );\n dispatch(openLevel(shortDescription, categoryLevel.index + 1));\n }\n Analytics.trackEvent({\n category: 'SYI',\n action: `Select Category - Level ${categoryLevel.index + 1}`,\n label: `Suggested Categories - ${categoryLevel.suggestions\n .map(x => x.categoryId)\n .join()}`,\n value: category.categoryId\n });\n};\n\nexport default {\n setDraftCategory,\n loadTopCategories,\n closeAllLevels,\n openLevel,\n toggleCategories,\n selectCategory,\n setPath,\n setPathFromDraft,\n reset\n};\n","import React, { Component } from 'react';\nimport PropType from 'prop-types';\nimport './overlay.scss';\n\nclass Overlay extends Component {\n closeOnEscape = e => {\n const { closeModalCallback } = this.props;\n if (e.keyCode === 27) {\n if (closeModalCallback) {\n closeModalCallback(e);\n }\n e.preventDefault();\n }\n };\n\n componentDidMount() {\n window.addEventListener('keydown', this.closeOnEscape);\n }\n\n componentWillUnmount() {\n window.removeEventListener('keydown', this.closeOnEscape);\n }\n\n render() {\n const { children, closeModalCallback, style } = this.props;\n\n return (\n
    \n {children}\n
    \n );\n }\n}\n\nOverlay.propTypes = {\n children: PropType.node,\n closeModalCallback: PropType.func,\n style: PropType.object\n};\n\nexport default Overlay;\n","import { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\n\nexport default {\n toggleAllVisible: () => dispatch => {\n dispatch({\n type: 'TOGGLE_ALL_VISIBLE'\n });\n },\n togglePaymentOption: paymentOption => (dispatch, getState) => {\n paymentOption.selected = !paymentOption.selected;\n var selectedPaymentOptions = [];\n if (\n Array.isArray(\n getSyiSlice(getState()).payment.selectedPaymentOptions\n )\n ) {\n selectedPaymentOptions = getSyiSlice(\n getState()\n ).payment.selectedPaymentOptions.slice();\n }\n\n if (paymentOption.selected) {\n selectedPaymentOptions.push(paymentOption.paymentType);\n } else {\n selectedPaymentOptions = selectedPaymentOptions.filter(\n po => po != paymentOption.paymentType\n );\n }\n selectedPaymentOptions = selectedPaymentOptions.filter(\n po => po != null\n );\n\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: selectedPaymentOptions\n });\n },\n setSelectedPaymentOptions: selectedPaymentOptions => dispatch => {\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: selectedPaymentOptions\n });\n },\n reset: () => dispatch => {\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: []\n });\n }\n};\n","// We map this way to ensure that each key in lokalise is present in code.\n// This allows us to clean up unnecessary codes in the future.\nexport const mapCountryCodeToCountryKey = countryCode => {\n const lokaliseKey = {\n ad: 'country_ad',\n ae: 'country_ae',\n af: 'country_af',\n ag: 'country_ag',\n ai: 'country_ai',\n al: 'country_al',\n am: 'country_am',\n an: 'country_an',\n ao: 'country_ao',\n aq: 'country_aq',\n ar: 'country_ar',\n as: 'country_as',\n at: 'country_at',\n au: 'country_au',\n aw: 'country_aw',\n az: 'country_az',\n ba: 'country_ba',\n bb: 'country_bb',\n bd: 'country_bd',\n be: 'country_be',\n bf: 'country_bf',\n bg: 'country_bg',\n bh: 'country_bh',\n bi: 'country_bi',\n bj: 'country_bj',\n bm: 'country_bm',\n bn: 'country_bn',\n bo: 'country_bo',\n br: 'country_br',\n bs: 'country_bs',\n bt: 'country_bt',\n bv: 'country_bv',\n bw: 'country_bw',\n by: 'country_by',\n bz: 'country_bz',\n ca: 'country_ca',\n cc: 'country_cc',\n cd: 'country_cd',\n cf: 'country_cf',\n cg: 'country_cg',\n ch: 'country_ch',\n ci: 'country_ci',\n ck: 'country_ck',\n cl: 'country_cl',\n cm: 'country_cm',\n cn: 'country_cn',\n co: 'country_co',\n cr: 'country_cr',\n cu: 'country_cu',\n cv: 'country_cv',\n cx: 'country_cx',\n cy: 'country_cy',\n cz: 'country_cz',\n de: 'country_de',\n dj: 'country_dj',\n dk: 'country_dk',\n dm: 'country_dm',\n do: 'country_do',\n dz: 'country_dz',\n ec: 'country_ec',\n ee: 'country_ee',\n eg: 'country_eg',\n eh: 'country_eh',\n er: 'country_er',\n es: 'country_es',\n et: 'country_et',\n fi: 'country_fi',\n fj: 'country_fj',\n fk: 'country_fk',\n fm: 'country_fm',\n fo: 'country_fo',\n fr: 'country_fr',\n fx: 'country_fx',\n ga: 'country_ga',\n gb: 'country_gb',\n gd: 'country_gd',\n ge: 'country_ge',\n gf: 'country_gf',\n gh: 'country_gh',\n gi: 'country_gi',\n gl: 'country_gl',\n gm: 'country_gm',\n gn: 'country_gn',\n gp: 'country_gp',\n gq: 'country_gq',\n gr: 'country_gr',\n gs: 'country_gs',\n gt: 'country_gt',\n gu: 'country_gu',\n gw: 'country_gw',\n gy: 'country_gy',\n hk: 'country_hk',\n hm: 'country_hm',\n hn: 'country_hn',\n hr: 'country_hr',\n ht: 'country_ht',\n hu: 'country_hu',\n id: 'country_id',\n ie: 'country_ie',\n il: 'country_il',\n in: 'country_in',\n io: 'country_io',\n iq: 'country_iq',\n ir: 'country_ir',\n is: 'country_is',\n it: 'country_it',\n jm: 'country_jm',\n jo: 'country_jo',\n jp: 'country_jp',\n ke: 'country_ke',\n kg: 'country_kg',\n kh: 'country_kh',\n ki: 'country_ki',\n km: 'country_km',\n kn: 'country_kn',\n kp: 'country_kp',\n kr: 'country_kr',\n kw: 'country_kw',\n ky: 'country_ky',\n kz: 'country_kz',\n la: 'country_la',\n lb: 'country_lb',\n lc: 'country_lc',\n li: 'country_li',\n lk: 'country_lk',\n lr: 'country_lr',\n ls: 'country_ls',\n lt: 'country_lt',\n lu: 'country_lu',\n lv: 'country_lv',\n ly: 'country_ly',\n ma: 'country_ma',\n mc: 'country_mc',\n md: 'country_md',\n mg: 'country_mg',\n mh: 'country_mh',\n mk: 'country_mk',\n ml: 'country_ml',\n mm: 'country_mm',\n mn: 'country_mn',\n mo: 'country_mo',\n mp: 'country_mp',\n mq: 'country_mq',\n mr: 'country_mr',\n ms: 'country_ms',\n mt: 'country_mt',\n mu: 'country_mu',\n mv: 'country_mv',\n mw: 'country_mw',\n mx: 'country_mx',\n my: 'country_my',\n mz: 'country_mz',\n na: 'country_na',\n nc: 'country_nc',\n ne: 'country_ne',\n nf: 'country_nf',\n ng: 'country_ng',\n ni: 'country_ni',\n nl: 'country_nl',\n no: 'country_no',\n np: 'country_np',\n nr: 'country_nr',\n nu: 'country_nu',\n nz: 'country_nz',\n om: 'country_om',\n pa: 'country_pa',\n pe: 'country_pe',\n pf: 'country_pf',\n pg: 'country_pg',\n ph: 'country_ph',\n pk: 'country_pk',\n pl: 'country_pl',\n pm: 'country_pm',\n pn: 'country_pn',\n pr: 'country_pr',\n ps: 'country_ps',\n pt: 'country_pt',\n pw: 'country_pw',\n py: 'country_py',\n qa: 'country_qa',\n re: 'country_re',\n ro: 'country_ro',\n ru: 'country_ru',\n rs: 'country_rs',\n rw: 'country_rw',\n sa: 'country_sa',\n sb: 'country_sb',\n sc: 'country_sc',\n sd: 'country_sd',\n se: 'country_se',\n sg: 'country_sg',\n sh: 'country_sh',\n si: 'country_si',\n sj: 'country_sj',\n sk: 'country_sk',\n sl: 'country_sl',\n sm: 'country_sm',\n sn: 'country_sn',\n so: 'country_so',\n sr: 'country_sr',\n st: 'country_st',\n sv: 'country_sv',\n sy: 'country_sy',\n sz: 'country_sz',\n tc: 'country_tc',\n td: 'country_td',\n tf: 'country_tf',\n tg: 'country_tg',\n th: 'country_th',\n tj: 'country_tj',\n tk: 'country_tk',\n tl: 'country_tl',\n tm: 'country_tm',\n tn: 'country_tn',\n to: 'country_to',\n tr: 'country_tr',\n tt: 'country_tt',\n tv: 'country_tv',\n tw: 'country_tw',\n tz: 'country_tz',\n ua: 'country_ua',\n ug: 'country_ug',\n um: 'country_um',\n us: 'country_us',\n uy: 'country_uy',\n uz: 'country_uz',\n va: 'country_va',\n vc: 'country_vc',\n ve: 'country_ve',\n vg: 'country_vg',\n vi: 'country_vi',\n vn: 'country_vn',\n vu: 'country_vu',\n wf: 'country_wf',\n ws: 'country_ws',\n ye: 'country_ye',\n yt: 'country_yt',\n yu: 'country_yu',\n za: 'country_za',\n zm: 'country_zm',\n zw: 'country_zw'\n }[countryCode.toLowerCase()];\n if (!lokaliseKey)\n throw `CountryCode ${countryCode} has no mapping to lokalise key`;\n return lokaliseKey;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport HoverMenuItem from './hover-menu/hover-menu-item';\nimport HoverMenuItemSeparator from './hover-menu/hover-menu-separator';\nimport { getMenuGaAttributes } from './site-header.analytics.js';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nimport AuctionIcon from '@tradera/blueprint/theme/icons2/auction.svg?jsx';\nimport AuctionLostIcon from '@tradera/blueprint/theme/icons2/bid-lost.svg?jsx';\nimport WinningIcon from '@tradera/blueprint/theme/icons2/winning.svg?jsx';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Buying menu', label);\n\nconst BuyMenu = ({ showMenu }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n \n }\n gaAttributes={getGaAttributes('Ongoing auctions')}\n />\n }\n gaAttributes={getGaAttributes('Won / Bought')}\n />\n }\n gaAttributes={getGaAttributes('Lost')}\n />\n \n }\n gaAttributes={getGaAttributes('Rate seller')}\n />\n \n );\n};\n\nBuyMenu.propTypes = {\n showMenu: PropTypes.bool\n};\n\nexport default BuyMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport BuyIcon from '@tradera/blueprint/theme/icons2/buy.svg?jsx';\nimport BuyMenu from './buy-menu';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst BuyingLink = ({\n onClick,\n mouseOver,\n mouseOut,\n onBlur,\n transparentHeader,\n showMenu\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const buyingText = t('siteHeader_buying');\n return (\n mouseOver(HOVER_MENUS.BUY)}\n onMouseLeave={mouseOut}>\n {\n onClick(e, HOVER_MENUS.BUY);\n }}\n onBlur={onBlur}>\n \n \n {buyingText}\n \n \n \n
    \n );\n};\n\nBuyingLink.propTypes = {\n onClick: PropTypes.func,\n mouseOver: PropTypes.func,\n mouseOut: PropTypes.func,\n showMenu: PropTypes.bool\n};\n\nexport default React.memo(BuyingLink);\n","import qs from 'qs';\n\n/**\n * Generate url for recommendation request\n * @param {string} slotId - identifier of slot\n * @param {number} pageSize - limit items fetched\n * @param {array} [seedItemIds] - item list that will act as seed for recommendation\n */\nconst recommendationsRequestBuilder = (\n slotId,\n pageSize,\n shippingCountryCode,\n seedItemIds = []\n) => {\n const endpoint = '/api/webapi/discover/recommendations-v4';\n\n return (pageIndex = 0) => {\n let queryParameters = {\n slot: slotId,\n maxResults: pageSize,\n pageNumber: pageIndex,\n shippingCountryCode\n };\n\n if (!!seedItemIds && seedItemIds.length > 0) {\n queryParameters.seedItemIds = seedItemIds;\n }\n\n return `${endpoint}?${qs.stringify(queryParameters, {\n arrayFormat: 'repeat'\n })}`;\n };\n};\n\n/**\n * Generate url for similar items request\n * @param {number} id - id of item to find similar to\n * @param {number} pageSize - limit items fetched\n */\nconst similarItemsRequestBuilder = (id, pageSize) => {\n const endpoint = '/ma/recommendations-similar-items';\n return () => {\n let queryParameters = {\n id,\n pageSize\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\n/**\n * Generate url for similar items request\n * @param {number} id - id of item to find similar to\n * @param {number} pageSize - limit items fetched\n */\nconst similarItemsFromShopRequestBuilder = (id, pageSize) => {\n const endpoint = '/ma/recommendations-similar-items-from-shop';\n return () => {\n let queryParameters = {\n id,\n pageSize\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\nconst similarItemsFromCampaignRequestBuilder = (\n itemId,\n size,\n query,\n campaignCodeId\n) => {\n const endpoint = '/ma/recommendations-more-items-from-campaign';\n return () => {\n let queryParameters = {\n itemId,\n size,\n query,\n campaignCodeId\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\nexport {\n recommendationsRequestBuilder,\n similarItemsRequestBuilder,\n similarItemsFromShopRequestBuilder,\n similarItemsFromCampaignRequestBuilder\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","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 React from 'react';\n\nimport { formatNumberWithSeparators } from 'tradera-utils/format';\n\nconst DiscountedPriceLabel = ({ className, price, tagName: TagName }) => {\n return (\n \n {formatNumberWithSeparators(price)}\n \n );\n};\nDiscountedPriceLabel.defaultProps = {\n tagName: 'span'\n};\n\nexport default DiscountedPriceLabel;\n","/**\n * Description:\n * module with helper functions to create GPT objects, preferably used in combination with html data attributes as below\n *\n *\n * Sample of how to define a new ad slot:\n *\n // match this towards the \"pos\" in DFP\n *\n */\n\n/**\n * NOTE:\n * It is very important that these adslot sizes [width, height] matches the expected sizes in admanager; if not, the amount of adslots that\n * are filled decreases, with less income from ads as a result.\n * Do not change these sizes unless you are sure what the change will have for effect on ads.\n */\n\n/**\n * @returns array of arrays of 2 elements with [width, height]:\n * @param {string} adFormat - accepts format value of: panorama, wide_skyscraper, half_page, medium_rectangle, mobile_rectangle\n */\nconst mapSingleAdFormatToSizes = adFormat => {\n const viewPortMapping = {\n panorama: [[980, 240], [980, 160], [980, 120], [970, 250], 'fluid'],\n wide_skyscraper: [[160, 600]],\n half_page: [\n [300, 600],\n [250, 600]\n ],\n medium_rectangle: [[300, 250]],\n mobile_rectangle: [[320, 320]],\n mobile_wideboard: [[320, 160]]\n };\n return viewPortMapping[adFormat];\n};\n\n/**\n * @returns array of arrays of 2 elements with slot [width, height]:\n * @param {string} adFormats - accepts one or more ',' separated format values\n */\nconst mapManyAdFormatsToSizes = adFormats => {\n return adFormats\n .split(',')\n .map(adFormat => mapSingleAdFormatToSizes(adFormat))\n .reduce((pre, cur) => pre.concat(cur));\n};\n\n/**\n * @param {string} device - accepts one of: mobile, tablet, desktop, desktop-lg\n * @returns array with first elements: [min width, max width]\n */\nconst mapDeviceNameToViewport = device => {\n let deviceViewportMappings = {\n mobile: [0, 449],\n tablet: [450, 1249],\n desktop: [1250, 0],\n 'desktop-lg': [1600, 0]\n };\n return deviceViewportMappings[device];\n};\n\n/**\n * @param {string} adFormats - accepts one or more ',' separated format values\n * @param {string} device - accepts one of: mobile, tablet, desktop, desktop-lg\n */\nconst createGptSizeMapping = (adFormats, device) => {\n if (!adFormats || !device) {\n console.warn(\n 'Missing some of the required arguments: adFormats, device'\n );\n }\n\n let [minWidth, maxWidth] = mapDeviceNameToViewport(device);\n let sizes = mapManyAdFormatsToSizes(adFormats);\n\n let sizeMap = [\n {\n viewport: [minWidth, 0],\n slot: sizes\n }\n ];\n\n if (maxWidth > 0) {\n sizeMap.push({\n viewport: [maxWidth + 1, 0], // add 1 pixel to make max-width inclusive\n slot: []\n });\n }\n\n if (0 < minWidth) {\n sizeMap.push({\n viewport: [0, 0],\n slot: []\n });\n }\n\n return sizeMap;\n};\n\nexport {\n createGptSizeMapping,\n mapSingleAdFormatToSizes,\n mapManyAdFormatsToSizes,\n mapDeviceNameToViewport\n};\n","import React from 'react';\nimport AccessoriesIcon from '@tradera/blueprint/theme/icons2/category-accessories.svg?jsx';\nimport AntiquesDesignIcon from '@tradera/blueprint/theme/icons2/category-antiques-design.svg?jsx';\nimport ArtIcon from '@tradera/blueprint/theme/icons2/category-art.svg?jsx';\nimport BeautyCareIcon from '@tradera/blueprint/theme/icons2/category-beauty-care.svg?jsx';\nimport BooksMagazinesIcon from '@tradera/blueprint/theme/icons2/category-books-magazines.svg?jsx';\nimport CharityIcon from '@tradera/blueprint/theme/icons2/category-charity.svg?jsx';\nimport ChildrensClothingShoesIcon from '@tradera/blueprint/theme/icons2/category-childrens-clothing-shoes.svg?jsx';\nimport ChildrensItemsIcon from '@tradera/blueprint/theme/icons2/category-childrens-items.svg?jsx';\nimport ClothesIcon from '@tradera/blueprint/theme/icons2/category-clothes.svg?jsx';\nimport CollectiblesIcon from '@tradera/blueprint/theme/icons2/category-collectibles.svg?jsx';\nimport ComputersAccessoriesIcon from '@tradera/blueprint/theme/icons2/category-computers-accessories.svg?jsx';\nimport ConstructionToolsIcon from '@tradera/blueprint/theme/icons2/category-construction-tools.svg?jsx';\nimport ConsumerElectronicsIcon from '@tradera/blueprint/theme/icons2/category-consumer-electronics.svg?jsx';\nimport CurrencyIcon from '@tradera/blueprint/theme/icons2/category-currency.svg?jsx';\nimport DvdVideosIcon from '@tradera/blueprint/theme/icons2/category-dvd-videos.svg?jsx';\nimport GardenPlantsIcon from '@tradera/blueprint/theme/icons2/category-garden-plants.svg?jsx';\nimport HobbyIcon from '@tradera/blueprint/theme/icons2/category-hobby.svg?jsx';\nimport HomeHouseholdIcon from '@tradera/blueprint/theme/icons2/category-home-household.svg?jsx';\nimport JewlryGemstonesIcon from '@tradera/blueprint/theme/icons2/category-jewlry-gemstones.svg?jsx';\nimport MobilePhoneTelecommunicationsIcon from '@tradera/blueprint/theme/icons2/category-mobile-phone-telecommunications.svg?jsx';\nimport MusicIcon from '@tradera/blueprint/theme/icons2/category-music.svg?jsx';\nimport OtherIcon from '@tradera/blueprint/theme/icons2/category-other.svg?jsx';\nimport PhotoCamerasOpticsIcon from '@tradera/blueprint/theme/icons2/category-photo-cameras-optics.svg?jsx';\nimport PostcardsPicturesIcon from '@tradera/blueprint/theme/icons2/category-postcards-pictures.svg?jsx';\nimport ShoesIcon from '@tradera/blueprint/theme/icons2/category-shoes.svg?jsx';\nimport SportsLeisureIcon from '@tradera/blueprint/theme/icons2/category-sports-leisure.svg?jsx';\nimport StampIcon from '@tradera/blueprint/theme/icons2/category-stamp.svg?jsx';\nimport TicketsTravelIcon from '@tradera/blueprint/theme/icons2/category-tickets-travel.svg?jsx';\nimport ToysChildrensItemsIcon from '@tradera/blueprint/theme/icons2/category-toys-childrens-items.svg?jsx';\nimport WatchesIcon from '@tradera/blueprint/theme/icons2/category-watches.svg?jsx';\nimport VehiclesBoatsPartsIcon from '@tradera/blueprint/theme/icons2/category-vehicles-boats-parts.svg?jsx';\nimport VideoComputerGamesIcon from '@tradera/blueprint/theme/icons2/category-video-computer-games.svg?jsx';\nimport HandmadeAppliedArtsIcon from '@tradera/blueprint/theme/icons2/category-handmade-applied-arts.svg?jsx';\nimport PriceIcon from '@tradera/blueprint/theme/icons/price.svg?jsx';\n\nconst categoryIcons = {\n 0: PriceIcon, // Rabattkoder\n 10: VehiclesBoatsPartsIcon,\n 11: BooksMagazinesIcon,\n 12: ComputersAccessoriesIcon,\n 13: DvdVideosIcon,\n 14: PhotoCamerasOpticsIcon,\n 15: StampIcon,\n 16: ClothesIcon,\n 17: ConsumerElectronicsIcon,\n 18: HobbyIcon,\n 19: WatchesIcon,\n 20: AntiquesDesignIcon,\n 21: MusicIcon,\n 22: CurrencyIcon,\n 23: ArtIcon,\n 24: JewlryGemstonesIcon,\n 25: SportsLeisureIcon,\n 26: MobilePhoneTelecommunicationsIcon,\n 27: PostcardsPicturesIcon,\n 28: OtherIcon,\n 29: CollectiblesIcon,\n 30: VideoComputerGamesIcon,\n 31: HomeHouseholdIcon,\n 32: ConstructionToolsIcon,\n 33: ChildrensClothingShoesIcon,\n 34: TicketsTravelIcon,\n 35: CharityIcon,\n 36: HandmadeAppliedArtsIcon,\n 1605: GardenPlantsIcon,\n 1611: ChildrensItemsIcon,\n 1612: AccessoriesIcon,\n 1623: ShoesIcon,\n 340736: BeautyCareIcon,\n 302571: ToysChildrensItemsIcon,\n 343319: ToysChildrensItemsIcon\n};\n\nexport const getCategoryIcon = (categoryId, label) => {\n const IconComponent = categoryIcons[categoryId];\n if (!IconComponent) {\n console.error(\n `IconComponent missing for id: ${categoryId} label: ${label}`\n );\n return null;\n }\n return ;\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst TopDescription = ({ titleKey, descriptions, isError, classes }) => {\n const { t } = useTranslator();\n\n return (\n <>\n
    \n \n {t(titleKey)}\n \n
    \n
    \n
    \n {descriptions.map(descKey => (\n \n {t(descKey)}\n
    \n ))}\n
    \n
    \n \n );\n};\n\nexport default TopDescription;\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { memberIdentificationClient } from 'tradera-utils/http';\nimport './document-scanning.scss';\nimport { Trans, useTranslator } from 'tradera-lang/translate';\nimport { LocalLoader } from 'tradera-components/loader/loader';\n\nconst STATE = {\n VERIFYING: 'VERIFYING',\n ERROR_UNAVAILABLE: 'ERROR_UNAVAILABLE',\n CONTACT_CUSTOMER_SUPPORT: 'CONTACT_CUSTOMER_SUPPORT'\n};\n\nconst addScriptToDom = zignSecWebSDKUrl => {\n const dataAttributeName = 'data-zign-sec-web-sdk-url-script';\n if (document.querySelector(`[${dataAttributeName}]`)) {\n return;\n }\n const js = document.createElement('script');\n js.setAttribute(dataAttributeName, '1');\n js.setAttribute('type', 'text/javascript');\n js.setAttribute('src', zignSecWebSDKUrl);\n document.body.appendChild(js);\n};\n\nexport const DocumentScanning = ({ onVerifyComplete }) => {\n const zignSecWebSDKUrl = useSelector(\n state => state.initData.pageSpecificData.zignSecWebSDKUrl\n );\n const { t } = useTranslator();\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n addScriptToDom(zignSecWebSDKUrl);\n }, [zignSecWebSDKUrl]);\n const [verifyingState, setVerifyingState] = useState(STATE.VERIFYING);\n\n useEffect(() => {\n if (verifyingState !== STATE.VERIFYING) {\n return;\n }\n\n let currentTimeoutId = null;\n const poll = (zs, sessionId) =>\n new Promise(resolve => {\n const call = () => {\n currentTimeoutId = setTimeout(async () => {\n try {\n // Result will appear when verification is completed.\n const { result } = await zs.getSessionStatus(\n sessionId\n );\n\n if (result) {\n return resolve();\n }\n } catch (error) {\n console.error(error);\n } finally {\n if (currentTimeoutId) {\n call();\n }\n }\n }, 2000);\n };\n call();\n });\n setIsLoading(true);\n memberIdentificationClient\n .query('ScanningsCreateWebToken?purpose=SYI')\n .then(async ({ token, relayState }) => {\n setIsLoading(false);\n const zs = new window.ZignSec(token, window.ZsProduct.Scanning);\n\n const r = await zs.openInIframe('zs-root', {\n relay_state: relayState,\n analysis_types: ['document', 'selfie', 'fraud']\n });\n await poll(zs, r.id);\n\n setIsLoading(true);\n return await memberIdentificationClient.command(\n 'ScanningResult',\n {\n sessionId: r.id,\n relayState: relayState\n }\n );\n })\n .then(({ isSuccessful }) => {\n setIsLoading(false);\n\n if (isSuccessful) {\n onVerifyComplete();\n } else {\n setVerifyingState(STATE.CONTACT_CUSTOMER_SUPPORT);\n }\n return;\n })\n .catch(() => {\n setIsLoading(false);\n setVerifyingState(STATE.ERROR_UNAVAILABLE);\n });\n return () => {\n currentTimeoutId && clearTimeout(currentTimeoutId);\n currentTimeoutId = null;\n };\n }, [verifyingState, setVerifyingState, setIsLoading, onVerifyComplete]);\n\n return (\n
    \n {isLoading && }\n {verifyingState === STATE.VERIFYING && !isLoading && (\n
    \n )}\n {verifyingState === STATE.ERROR_UNAVAILABLE && (\n \n {t('international_identification_errorUnavailable')}\n \n )}\n {verifyingState === STATE.CONTACT_CUSTOMER_SUPPORT && (\n
    \n

    \n {t(\n 'international_identification_contactCustomerSupportHeading'\n )}\n

    \n

    \n }}\n />\n

    \n setVerifyingState(STATE.VERIFYING)}>\n {t('international_identification_buttonTryAgain')}\n \n
    \n )}\n
    \n );\n};\n","import React from 'react';\nimport './mit-id-logo.scss';\n\nexport const MitIdLogo = ({ className }) => {\n return (\n \n \n \n \n \n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"international-identification-modal-dynamic-height\":\"international-identification-modal-dynamic-height--2TA7f\",\"internationalIdentificationModalDynamicHeight\":\"international-identification-modal-dynamic-height--2TA7f\",\"international-identification-modal-delineator\":\"international-identification-modal-delineator--3TYiE\",\"internationalIdentificationModalDelineator\":\"international-identification-modal-delineator--3TYiE\",\"international-identification-modal-mit-id-button\":\"international-identification-modal-mit-id-button--3wBgt\",\"internationalIdentificationModalMitIdButton\":\"international-identification-modal-mit-id-button--3wBgt\"};","import React, { useEffect, useState } from 'react';\nimport { DocumentScanning } from 'tradera-components/international-identification-modal/document-scanning';\nimport draftActions from 'tradera-state/views/syi/actions/draft-actions';\nimport { useDispatch } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { closeModal } from 'tradera-state/ui/action-creators';\nimport { memberIdentificationClient } from 'tradera-utils/http';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from '../../../EbaySweden.TouchWeb/static/script/components/modals/modal-container';\nimport ModalHeader from '../../../EbaySweden.TouchWeb/static/script/components/modals/modal-header';\nimport ModalBody from '../../../EbaySweden.TouchWeb/static/script/components/modals/modal-body';\nimport { LocalLoader } from 'tradera-components/loader';\nimport {\n MitId,\n MitIdDesktop\n} from 'tradera-components/international-identification-modal/mit-id';\nimport { MitIdLogo } from './mit-id-logo';\nimport styles from './international-identification-modal.module.scss';\nimport { isDesktop } from 'tradera-utils/breakpoints';\n\nexport const InternationalIdentificationModal = () => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const [validIdentifications, setValidIdentifications] = useState(null);\n const [error, setError] = useState(null);\n const [selectedIdentification, setSelectedIdentification] = useState(null);\n\n useEffect(() => {\n memberIdentificationClient\n .query('getvalididentifications')\n .then(data => {\n setValidIdentifications(data.validIdentifications);\n return;\n })\n .catch(setError);\n }, [setValidIdentifications]);\n\n const selectedIdentificationGui = {\n DocumentScanning: () => (\n {\n dispatch(draftActions.publish(t));\n dispatch(closeModal());\n }}\n />\n ),\n MitId: () =>\n isDesktop() ? (\n {\n dispatch(draftActions.publish(t));\n dispatch(closeModal());\n }}\n onVerifyCancel={() => setSelectedIdentification(null)}\n />\n ) : (\n {\n dispatch(draftActions.publish(t));\n dispatch(closeModal());\n }}\n onVerifyCancel={() => setSelectedIdentification(null)}\n />\n )\n }[selectedIdentification];\n\n return (\n dispatch(closeModal())}>\n dispatch(closeModal())}\n className={`${\n !selectedIdentificationGui\n ? styles.internationalIdentificationModalDynamicHeight\n : ''\n }`}>\n dispatch(closeModal())}>\n {t('international_identification_heading')}\n \n \n {!selectedIdentificationGui && validIdentifications && (\n
    \n
    \n {t('international_identification_intro_text')}\n
    \n {validIdentifications.some(x => x === 'MitId') && (\n <>\n \n setSelectedIdentification('MitId')\n }>\n \n {t(\n 'international_identification_mitid_button'\n )}\n \n
    \n \n {t(\n 'international_identification_or'\n )}\n \n
    \n
    \n \n )}\n \n setSelectedIdentification(\n 'DocumentScanning'\n )\n }>\n {t(\n 'international_identification_other_verifications'\n )}\n \n
    \n )}\n {selectedIdentificationGui && selectedIdentificationGui()}\n {!validIdentifications && !error && }\n {error && (\n
    \n {t('international_identification_errorUnavailable')}\n
    \n )}\n
    \n \n
    \n );\n};\n\nexport const internationalIdentificationModalId =\n 'internationalIdentificationModalId';\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport LocationIcon from '@tradera/blueprint/theme/icons2/location.svg?jsx';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport { selectShowLocalizationRegionPicker } from 'tradera-state/shipping-region/selectors';\nimport { selectGeolocation } from 'tradera-state/member/selectors';\nimport { dismissLocalizationRegionPicker } from 'tradera-state/shipping-region/reducer';\nimport { onLocalizationShippingRegionSelected } from 'tradera-state/shipping-region/actions';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport Flag from 'tradera-components/flag/flag';\n\nconst LocalizationRegionPicker = ({\n showLocalizationRegionPicker,\n dismissLocalizationRegionPicker,\n onLocalizationShippingRegionSelected,\n geolocation\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const onClick = () => {\n onLocalizationShippingRegionSelected({\n countryCodeIso2: geolocation.isoCode,\n currencyCode: geolocation.currency,\n toLocalizedUrl\n });\n dismissLocalizationRegionPicker();\n };\n\n return showLocalizationRegionPicker ? (\n \n
    \n
    \n \n
    \n

    \n \n Would you like to set your browsing destination\n to
    \n \n {geolocation.name}?\n
    \n

    \n

    \n \n Yes, set my location\n \n

    \n
    \n \n \n \n
    \n
    \n
    \n ) : null;\n};\n\nconst mapStateToProps = state => ({\n showLocalizationRegionPicker: selectShowLocalizationRegionPicker(state),\n geolocation: selectGeolocation(state)\n});\n\nconst mapDispatchToProps = {\n dismissLocalizationRegionPicker,\n onLocalizationShippingRegionSelected\n};\n\nexport const ConnectedLocalizationRegionPicker = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LocalizationRegionPicker);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport { selectPreferredLanguage } 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 { LocalizationMenu } from 'components/localization/localization-menu';\nimport { ConnectedLocalizationRegionPicker } from './localization-region-picker';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\n\nimport 'components/localization/localization.scss';\nimport { getCountryCodeFromLanguage } from 'tradera-utils/languagecode';\nimport Flag from 'tradera-components/flag/flag';\n\nconst PlainLocalizationLink = ({\n onClick,\n onBlur,\n mouseOver,\n mouseOut,\n showMenu,\n preferredLanguage,\n showRegionSelection,\n showLocalizationRegionPicker,\n transparentHeader\n}) => {\n const countryCode = getCountryCodeFromLanguage(\n preferredLanguage.languageCodeIso2\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 \n \n \n \n \n \n {\n onBlur(e, HOVER_MENUS.LOCALIZATION);\n }}\n showRegionSelection={showRegionSelection || false}\n />\n \n
    \n \n \n );\n};\n\nconst mapStateToProps = state => ({\n preferredLanguage: selectPreferredLanguage(state),\n showRegionSelection: selectShowRegionSelection(state),\n showLocalizationRegionPicker: selectShowLocalizationRegionPicker(state)\n});\n\nconst mapDispatchToProps = {};\n\nexport const LocalizationLink = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainLocalizationLink);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = debounce;\nfunction debounce(func, wait, immediate) {\n var timeout = void 0;\n var args = void 0;\n var context = void 0;\n var timestamp = void 0;\n var result = void 0;\n\n var later = function later() {\n var last = +new Date() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) {\n context = null;\n args = null;\n }\n }\n }\n };\n\n return function debounced() {\n context = this;\n args = arguments;\n timestamp = +new Date();\n\n var callNow = immediate && !timeout;\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n\n if (callNow) {\n result = func.apply(context, args);\n context = null;\n args = null;\n }\n\n return result;\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"hover-localization-menu-footer\":\"hover-localization-menu-footer--1-Xjm\",\"hoverLocalizationMenuFooter\":\"hover-localization-menu-footer--1-Xjm\"};","import React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { selectShowRegionSelection } from 'tradera-state/shipping-region/selectors';\nimport { useTranslator } from 'tradera-lang/translate';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\nimport { LocalizationMenu } from 'static/script/components/localization/localization-menu';\nimport HoverMenu from 'tradera-components/site-header/hover-menu/hover-menu';\nimport styles from './footer-localization-link.module.scss';\nconst trackAnalytics = visible => {\n const label = visible ? 'Open' : 'Close';\n GtmService.trackAction('Footer', 'Localization menu', label);\n};\n\nconst FooterLocalizationLink = ({ showRegionSelection }) => {\n const { t } = useTranslator();\n const [\n isLocalizationSettingsVisible,\n setLocalizationSettingsVisible\n ] = useState(false);\n\n const onClick = e => {\n e.preventDefault();\n const shouldBeVisible = !isLocalizationSettingsVisible;\n trackAnalytics(shouldBeVisible);\n setLocalizationSettingsVisible(shouldBeVisible);\n };\n\n const title = showRegionSelection\n ? t('footer_localization_regionAndlanguage')\n : t('footer_localization_language');\n\n return (\n <>\n \n setLocalizationSettingsVisible(false)}\n showRegionSelection={showRegionSelection || false}\n />\n \n \n {title}\n \n \n \n );\n};\n\nconst mapStateToProps = state => ({\n showRegionSelection: selectShowRegionSelection(state)\n});\n\nexport default connect(mapStateToProps)(FooterLocalizationLink);\n","class ConsentService {\n openUi = () =>\n typeof window.__tcfapi === 'function' &&\n window.__tcfapi('displayConsentUi', 2, () => {});\n}\n\nconst oneInstance = oneInstance || new ConsentService();\nexport default oneInstance;\n","import React from 'react';\n\nimport {\n useTranslator,\n useCurrentLanguage,\n useUrlLocalizer\n} from 'tradera-lang/translate';\n\nimport { isSwedishOrUndefined } from 'tradera-utils/languagecode';\nimport ConsentService from 'tradera-utils/consent-service';\nimport initData from 'init-data';\nimport featureToggles from 'tradera-apps/my-tradera/app/utils/feature-toggles';\n\nconst FooterLinks = ({ links, callerId }) => {\n const { language } = useCurrentLanguage();\n\n const linksToRender =\n language !== 'sv' ? links.filter(link => !link.onlySwedish) : links;\n\n return (\n <>\n {linksToRender.map(\n ({ text, className, onlySwedish, ...rest }, index) => {\n return (\n \n {text}\n \n );\n }\n )}\n \n );\n};\n\nexport const BuyingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: toLocalizedUrl('/how-to-buy'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så handlar du på Tradera',\n text: t('footer_howToShop'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/kategorier'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kategorier',\n text: t('footer_categories'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/brands'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Populära varumärken',\n text: t('footer_popularBrands'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/inspiration'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Inspiration',\n text: t('footer_inspiration'),\n onlySwedish: true\n },\n {\n href: '/info/gronfrakt/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Grön frakt på Tradera',\n text: t('footer_greenShipping'),\n onlySwedish: true\n }\n ];\n\n return (\n
    \n

    {t('footer_buyHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const SellingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const links = [\n {\n href: toLocalizedUrl('/how-to-sell'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så säljer du som privatperson',\n text: t('footer_howToSellPrivate'),\n onlySwedish: false\n },\n {\n href: 'https://info.tradera.com/foretag/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Sälj som företag',\n text: t('footer_howToSellCorporate'),\n onlySwedish: true\n },\n featureToggles.isPennybridgeCharitiesEnabled && {\n href: toLocalizedUrl('/causes'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Donera med Tradera',\n text: t('footer_donateWithTradera'),\n onlySwedish: true\n },\n {\n href: '/frakt',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Fraktkalkylator',\n text: t('footer_shippingCalculator'),\n onlySwedish: true\n },\n {\n href: 'https://info.tradera.com/butik-privat/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Butik',\n text: t('footer_store'),\n onlySwedish: true\n }\n ].filter(Boolean);\n\n return (\n
    \n

    {t('footer_sellHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const ContactAndHelpLinks = ({ pageName, openGdprSettings }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: 'https://info.tradera.com/sakerhetscenter/regler-pa-tradera/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Regler på Tradera',\n text: t('footer_traderaRules'),\n onlySwedish: true\n },\n {\n href: 'http://www.mynewsdesk.com/se/tradera',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Press',\n text: t('footer_press'),\n rel: 'nofollow',\n onlySwedish: true\n },\n {\n href: 'https://info.tradera.com/sakerhetscenter',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Säkerhet',\n text: t('footer_security'),\n onlySwedish: true\n },\n {\n href: toLocalizedUrl('https://info.tradera.com/'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Vanliga frågor',\n text: t('footer_faq'),\n onlySwedish: false\n },\n {\n href: 'https://www.tradera.com/info/blogg/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Vad är nytt',\n text: t('footer_whatsUp'),\n onlySwedish: true\n },\n {\n href:\n 'http://info.tradera.com/#humany-vanliga-fragor-och-svar=/contact',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kontakta oss',\n text: t('footer_contactUs'),\n onlySwedish: true\n },\n {\n href:\n pageName === 'SellItem'\n ? '//tradera.humany.net/syi'\n : '//tradera.humany.net/juno',\n text: t('footer_customerService'),\n rel: 'nofollow',\n className: 'd-none',\n onlySwedish: false\n },\n {\n href: '#',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Open GDPR Settings',\n text: t('footer_gdpr_settings'),\n onClick: event => {\n event.preventDefault();\n if (initData.featureSwitches['quantcast-consent']) {\n ConsentService.openUi();\n } else {\n openGdprSettings();\n }\n },\n onlySwedish: false\n }\n ];\n\n return (\n
    \n

    {t('footer_contactHelpHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const CouponCodeLinks = ({ isCouponationNavLinkEnabled }) => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n const links = [\n {\n href: '/rabattkoder/cdon',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'CDON',\n text: 'CDON',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/ellos',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Ellos',\n text: 'Ellos',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/hotels-com',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Hotels.com',\n text: 'Hotels.com',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/jotex',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Jotex',\n text: 'Jotex',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/nelly',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Nelly',\n text: 'Nelly',\n onlySwedish: true\n }\n ];\n\n return isSwedishOrUndefined(language) ? (\n
    \n {isCouponationNavLinkEnabled && (\n <>\n

    {t('footer_couponCodes')}

    \n
      \n \n
    \n \n )}\n
    \n ) : null;\n};\n","import React from 'react';\nimport { useTranslator, useCurrentLanguage } from 'tradera-lang/translate';\nimport { isSwedishOrUndefined } from 'tradera-utils/languagecode';\nimport PaypalLogo from '@tradera/blueprint/theme/logos/paypal.svg?jsx';\nimport MastercardLogo from '@tradera/blueprint/theme/logos/mastercard_vertical.svg?jsx';\nimport MaestroLogo from '@tradera/blueprint/theme/logos/maestro_vertical.svg?jsx';\nimport VisaLogo from '@tradera/blueprint/theme/logos/visa.svg?jsx';\nimport GooglePayLogo from '@tradera/blueprint/theme/logos/google-pay.svg?jsx';\nimport ApplePayLogo from '@tradera/blueprint/theme/logos/apple-pay.svg?jsx';\n\nexport const FooterPartners = () => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n\n const groupedPartners = [\n {\n type: 'payment1',\n partners: [\n {\n logo: (\n \n )\n },\n {\n logo: (\n \n )\n }\n ]\n },\n {\n type: 'payment2',\n partners: [\n {\n logo: (\n \n )\n },\n {\n logo: \n }\n ]\n },\n {\n type: 'payment3',\n partners: [\n {\n logo: (\n \n )\n },\n {\n logo: (\n \n )\n }\n ]\n },\n {\n type: 'shipping1',\n partners: [\n {\n src: '/static/images/shipping/schenker.svg',\n alt: 'DB Schenker logo'\n }\n ]\n },\n {\n type: 'shipping2',\n partners: [\n {\n src: '/static/images/shipping/postnord.svg',\n alt: 'Postnord logo'\n }\n ]\n }\n ];\n\n return !isSwedishOrUndefined(language) ? (\n
    \n

    {t('footer_partners')}

    \n
      \n {groupedPartners.map(group => {\n return (\n
    • \n {group.partners.map(partner => {\n return partner.logo ? (\n partner.logo\n ) : (\n \n );\n })}\n
    • \n );\n })}\n
    \n
    \n ) : null;\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { useInView } from 'react-intersection-observer';\nimport { useTranslator } from 'tradera-lang/translate';\nimport {\n Breakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport uiActions from 'tradera-state/ui/actions';\nimport FooterLocalizationLink from './footer-localization-link';\nimport initData from 'init-data';\nimport { isSwedishOrUndefined } from 'tradera-utils/languagecode';\nimport AppstoreLogo from '@tradera/blueprint/theme/logos/appstore.svg?jsx';\nimport FacebookIcon from '@tradera/blueprint/theme/icons2/network-fb.svg?jsx';\nimport GooglePlayLogo from '@tradera/blueprint/theme/logos/googleplay.svg?jsx';\nimport InstagramIcon from '@tradera/blueprint/theme/icons2/network-ig.svg?jsx';\nimport LinkedInIcon from '@tradera/blueprint/theme/icons2/network-linkedin.svg?jsx';\nimport PinterestIcon from '@tradera/blueprint/theme/icons2/network-pin.svg?jsx';\nimport TwitterIcon from '@tradera/blueprint/theme/icons2/network-twitter.svg?jsx';\nimport BankidIcon from '@tradera/blueprint/theme/icons2/bankid.svg?jsx';\nimport TraderaSymbol from '@tradera/blueprint/theme/logos/tradera_symbol.svg?jsx';\n\nimport {\n BuyingLinks,\n SellingLinks,\n ContactAndHelpLinks,\n CouponCodeLinks\n} from './footer-links';\nimport { FooterPartners } from './footer-partners';\n\nimport './site-footer.scss';\n\nconst SiteFooter = props => {\n const { pageName, isCouponationNavLinkEnabled, openGdprSettings } = props;\n const { t } = useTranslator();\n\n const [symbolRef, inView] = useInView({\n threshold: 0\n });\n\n return (\n
    \n
    \n
    \n
    \n {/* Köp */}\n \n\n {/* Sälj */}\n \n {/* Kontakt & hjälp */}\n \n {/* Rabattkoder */}\n \n \n
    \n
    \n
    \n
    \n {/* Social media */}\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {/* App download */}\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n {t('footer_userAgreement')}\n \n \n {t('footer_integrityPolicy')}\n \n \n {t('footer_cookies')}\n \n \n {t('footer_aboutTradera')}\n \n \n {t('footer_availableJobs')}\n \n
    \n
    \n {/* Copyright */}\n
    \n

    \n © {new Date().getFullYear()} Tradera\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n );\n};\n\nconst mapStateToProps = state => ({\n pageName: state.page.name,\n isCouponationNavLinkEnabled:\n state.environment.featureSwitches['couponation-nav-link']\n});\n\nconst mapDispatchToProps = dispatch => ({\n openGdprSettings: () => dispatch(uiActions.openGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SiteFooter);\n","import qs from 'qs';\nimport axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { getCurrentLanguage } from 'tradera-lang/boot-languages';\nimport { toLocalizedUrl } from 'tradera-utils/url';\nimport {\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError,\n API_ERRORS,\n axiosConfigs,\n checkResponseLoggedOut\n} from 'tradera-utils/api';\n\nexport const getBids = async itemId => {\n return axiosWithTokenRefresh()\n .get(toLocalizedUrl(`/ajax/item/${itemId}/bids`, getCurrentLanguage()))\n .then(({ data }) => data)\n .catch(\n handleError({\n // Ignore 400 & 401 errors that slip through token refresh\n 400: API_ERRORS.IGNORE_ME,\n 401: API_ERRORS.IGNORE_ME\n })\n );\n};\n\nexport const postFavoriteSeller = async (sellerId, isAlreadySaved) => {\n const payload = isAlreadySaved\n ? qs.stringify({ ids: sellerId })\n : qs.stringify({ sellerId: sellerId });\n return axios\n .post(\n isAlreadySaved\n ? ENDPOINTS.FAVORITE_SELLER_REMOVE\n : ENDPOINTS.FAVORITE_SELLER_ADD,\n payload,\n {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n ...axiosConfigs\n }\n )\n .then(checkResponseLoggedOut())\n .then(finalizeResponse())\n .catch(handleError());\n};\n","import React from 'react';\nimport PropType from 'prop-types';\n\nconst ModalBody = ({ children, className = '', inlineStyle = {} }) => (\n \n {children}\n \n);\n\nModalBody.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string\n};\n\nexport default ModalBody;\n","import { useEffect, useRef } from 'react';\n\n// From: https://overreacted.io/making-setinterval-declarative-with-react-hooks/\nexport function useInterval(callback, delay) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (delay > 0) {\n const id = setInterval(() => savedCallback.current(), delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n","import { defaultClient as httpClient } from 'tradera-utils/http';\nimport ENDPOINTS from 'tradera-constants/endpoints';\n\nconst sendSessionStart = () => {\n httpClient.post(ENDPOINTS.SELLING_SCRIBE_SESSION_START);\n};\n\nconst sendSessionDuration = (duration, madeByTemplate) => {\n httpClient.post(ENDPOINTS.SELLING_SCRIBE_SESSION_DURATION, {\n durationMilliSeconds: duration,\n madeByTemplate: madeByTemplate\n });\n};\n\nconst sendDuration = (measuredName, durationMilliSeconds) => {\n httpClient.post(ENDPOINTS.SELLING_SCRIBE_DURATION, {\n measuredName: measuredName,\n durationMilliSeconds: durationMilliSeconds\n });\n};\n\nconst sendIncrement = name => {\n httpClient.post(ENDPOINTS.SELLING_SCRIBE_INCREMENT, {\n name: name\n });\n};\n\nconst sendValidationErrors = errors => {\n httpClient.post(ENDPOINTS.SELLING_SCRIBE_VALIDATION_ERRORS, {\n errors: errors\n });\n};\n\nexport default {\n sendSessionStart,\n sendSessionDuration,\n sendDuration,\n sendIncrement,\n sendValidationErrors\n};\n","/**\n * description:\n * this is the coolest modal to use at Tradera.com. the width of the content of this modal\n * decides how big this modal should be.\n *\n * To use this modal\n * \n * Header Text\n * This is the body\n * This is my footer\n * \n\n */\n\nimport React from 'react';\nimport PropType from 'prop-types';\nimport './modal.scss';\n\nconst ModalContainer = ({ children, className = '', style = {} }) => {\n return (\n {\n e.stopPropagation();\n }}>\n {children}\n \n );\n};\n\nModalContainer.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string,\n style: PropType.object\n};\n\nexport default ModalContainer;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 79 49\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n opacity: \".6\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.5 5.81c0 2.07-3.27 3.75-7.32 3.75-4.04 0-7.32-1.68-7.32-3.75 0-2.06 3.28-3.74 7.32-3.74 4.05 0 7.33 1.68 7.33 3.74z\",\n fill: \"#FEF880\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M43.9 7.56c1.21-.62 1.6-1.3 1.6-1.75 0-.45-.39-1.12-1.6-1.74-1.15-.6-2.82-.99-4.72-.99s-3.56.4-4.72.99c-1.21.62-1.6 1.29-1.6 1.74 0 .46.39 1.13 1.6 1.75 1.16.59 2.82.98 4.72.98s3.57-.39 4.72-.98zm-4.72 2c4.05 0 7.33-1.68 7.33-3.75 0-2.06-3.28-3.74-7.33-3.74-4.04 0-7.32 1.68-7.32 3.74 0 2.07 3.28 3.75 7.32 3.75z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.47 2.2C16.15.48 18.83.45 21.53.81c2.7.36 5.57 1.67 6.06 4.06.22 1.08.29 1.66.27 1.94l4.52-.79 6.63-1.15 6.83 1.15 4.67.79c-.01-.28.05-.86.27-1.94.5-2.4 3.37-3.7 6.07-4.06 2.7-.36 5.37-.33 8.05 1.37 2.2 1.4 2.81 2.44 4.43 5.3l7.88 18.67a.5.5 0 01-.45.7L47.3 28.34a.51.51 0 01-.4-.17l-5.5-6.07h-4.43l-5.5 6.08c-.1.11-.24.17-.38.17H1.46a.5.5 0 01-.48-.65c1.7-5.61 4.85-14.54 8.06-20.2 1.62-2.87 2.24-3.92 4.43-5.3z\",\n fill: \"#003B29\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M56.77.19c2.74-.37 5.56-.35 8.38 1.45a9.66 9.66 0 012.56 2.22c.66.83 1.24 1.85 2.04 3.28l.02.02 7.88 18.76c.27.65-.19 1.38-.9 1.42l-29.43 1.48c-.3.01-.6-.11-.8-.34l-5.34-5.92H37.2l-5.35 5.93c-.2.22-.47.34-.76.34H1.5c-.67 0-1.17-.65-.97-1.31 1.7-5.64 4.86-14.64 8.1-20.38.8-1.43 1.39-2.45 2.05-3.28a9.66 9.66 0 012.55-2.22c2.83-1.8 5.64-1.82 8.39-1.45 1.4.18 2.86.62 4.05 1.34a4.88 4.88 0 012.44 3.14c.13.61.2 1.08.25 1.44L39 4.25l11.02 1.87c.04-.36.12-.84.24-1.45a4.88 4.88 0 012.44-3.14C53.91.8 55.37.37 56.77.19zM50.1 7.16L39.5 5.37v2.87a.5.5 0 11-1.01 0V5.38L28.27 7.16a.56.56 0 01-.57.28.66.66 0 01-.38-.21l-.13-.16c-2.38-2.6-5.78-3.09-9.17-2.56-3.34.52-6.58 2-8.57 3.24C6.29 13.4 3.19 22.22 1.5 27.81h29.6l5.65-6.27h4.88l5.64 6.26 29.44-1.48-7.8-18.58c-2-1.24-5.23-2.71-8.56-3.23-3.39-.53-6.79-.05-9.17 2.56l-.12.15a.66.66 0 01-.38.22.56.56 0 01-.57-.28zm17.82-1.14a25 25 0 00-7.42-2.52c-3.27-.5-6.75-.15-9.4 2.2l.16-.83c.2-1.01.93-1.84 1.97-2.47a9.71 9.71 0 013.66-1.2c2.65-.35 5.18-.32 7.7 1.3a8.65 8.65 0 012.3 2c.35.42.67.91 1.03 1.52zm-57.49 0a25 25 0 017.43-2.52c3.27-.5 6.74-.15 9.39 2.2l-.16-.83c-.2-1.01-.92-1.84-1.96-2.47a9.71 9.71 0 00-3.66-1.2C18.82.85 16.3.88 13.77 2.5a8.65 8.65 0 00-2.3 2c-.35.42-.67.91-1.03 1.52zm28.57 4.35l12.57 2.27a12.28 12.28 0 016.3-2.26.5.5 0 01.04 1.02c-1.34.03-3.68.58-5.91 2.19-.76.6-1.88 1.62-2.82 2.77a10.1 10.1 0 00-1.17 1.74c-.3.58-.46 1.1-.46 1.55a.5.5 0 11-1.01 0c0-.67.23-1.36.56-2.01.34-.66.8-1.32 1.3-1.93.68-.84 1.46-1.61 2.13-2.22l-11.53-2.08-11.14 2.07a14.09 14.09 0 013.92 5.63.51.51 0 01-.94.37 12.89 12.89 0 00-4.47-5.89 11.33 11.33 0 00-5.92-2.2.51.51 0 01.03-1.01c1.5.04 3.95.62 6.3 2.26l12.22-2.27z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.5 32.25a16.2 16.2 0 01-16.25 16.17A16.2 16.2 0 010 32.25 16.2 16.2 0 0116.25 16.1a16.2 16.2 0 0116.24 16.16z\",\n fill: \"#003B29\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.25 47.4c8.4 0 15.22-6.78 15.22-15.15 0-8.36-6.82-15.15-15.22-15.15-8.41 0-15.23 6.79-15.23 15.15 0 8.37 6.82 15.15 15.23 15.15zm0 1.02a16.2 16.2 0 0016.24-16.17A16.2 16.2 0 0016.25 16.1 16.2 16.2 0 000 32.25a16.2 16.2 0 0016.25 16.17z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79 32.25a16.2 16.2 0 01-16.25 16.17 16.2 16.2 0 01-16.24-16.17A16.2 16.2 0 0162.75 16.1 16.2 16.2 0 0179 32.25z\",\n fill: \"#003B29\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M62.75 47.4c8.41 0 15.23-6.78 15.23-15.15 0-8.36-6.82-15.15-15.23-15.15-8.4 0-15.22 6.79-15.22 15.15 0 8.37 6.82 15.15 15.22 15.15zm0 1.02A16.2 16.2 0 0079 32.25 16.2 16.2 0 0062.75 16.1a16.2 16.2 0 00-16.24 16.16 16.2 16.2 0 0016.24 16.17zM38.9 12.43a1.5 1.5 0 01-1.9.41.27.27 0 00-.4.18 1.5 1.5 0 01-1.58 1.15.27.27 0 00-.3.32c.15.73-.27 1.46-.97 1.7a.27.27 0 00-.13.41c.42.62.33 1.45-.2 1.96-.14.12-.11.33.04.43.63.39.89 1.18.6 1.87-.06.16.04.35.22.37.73.1 1.29.72 1.3 1.46.01.18.18.3.35.25a1.5 1.5 0 011.8.8c.07.16.28.2.41.1a1.5 1.5 0 011.96 0c.13.1.34.06.42-.1a1.5 1.5 0 011.78-.8c.18.05.35-.07.35-.25a1.5 1.5 0 011.31-1.46c.18-.02.28-.2.22-.37a1.51 1.51 0 01.6-1.87c.15-.1.17-.3.04-.43a1.52 1.52 0 01-.2-1.96.27.27 0 00-.13-.4 1.51 1.51 0 01-.98-1.7.27.27 0 00-.29-.33 1.5 1.5 0 01-1.58-1.15.27.27 0 00-.4-.18 1.5 1.5 0 01-1.9-.4.27.27 0 00-.44 0zm.92-.37a.88.88 0 00-1.4 0 .88.88 0 01-1.13.24.89.89 0 00-1.29.57c-.1.43-.5.72-.93.68a.89.89 0 00-.95 1.06.9.9 0 01-.57 1 .9.9 0 00-.44 1.35.9.9 0 01-.12 1.15.9.9 0 00.15 1.4c.37.23.52.7.35 1.1a.9.9 0 00.7 1.23c.44.06.77.43.78.86.02.6.58 1 1.14.84a.89.89 0 011.05.47c.26.53.94.67 1.38.3a.88.88 0 011.16 0 .88.88 0 001.37-.3c.2-.4.64-.6 1.06-.47a.89.89 0 001.14-.84c0-.43.34-.8.77-.86a.9.9 0 00.7-1.22.9.9 0 01.36-1.1c.5-.31.57-1 .15-1.41a.9.9 0 01-.12-1.15.9.9 0 00-.44-1.35.9.9 0 01-.57-1 .89.89 0 00-.95-1.06.89.89 0 01-.93-.68.89.89 0 00-1.29-.57.88.88 0 01-1.13-.24z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M38.32 11.99a1 1 0 011.6 0c.23.3.64.39.98.2a1 1 0 011.45.66c.09.37.43.62.81.59a1 1 0 011.07 1.19c-.07.37.14.74.5.87a1 1 0 01.5 1.52.78.78 0 00.1 1 1 1 0 01-.17 1.6c-.32.2-.46.6-.31.95a1 1 0 01-.8 1.39.77.77 0 00-.67.75 1 1 0 01-1.28.94.77.77 0 00-.92.4 1 1 0 01-1.56.34.77.77 0 00-1 0 1 1 0 01-1.56-.33.77.77 0 00-.92-.41 1 1 0 01-1.28-.94c-.01-.38-.3-.7-.68-.75a1 1 0 01-.8-1.39.78.78 0 00-.3-.96 1 1 0 01-.17-1.59.78.78 0 00.1-1 1 1 0 01.5-1.52c.36-.13.57-.5.5-.87a1 1 0 011.07-1.2c.38.04.72-.21.8-.58a1 1 0 011.46-.65c.34.18.75.09.98-.21zm.68.51c-.49.64-1.36.82-2.06.44a.16.16 0 00-.23.1c-.18.78-.9 1.3-1.7 1.25-.1-.01-.19.08-.17.18.15.79-.3 1.57-1.05 1.83l-.04-.1c.7-.25 1.12-.98.98-1.7a.27.27 0 01.29-.33 1.5 1.5 0 001.58-1.15.27.27 0 01.4-.18 1.5 1.5 0 001.9-.4c.11-.15.33-.15.43 0 .45.58 1.27.76 1.92.4.15-.09.35 0 .39.18a1.5 1.5 0 001.58 1.15c.18-.01.32.15.29.32-.14.73.28 1.46.98 1.7.17.06.23.27.13.41-.42.62-.33 1.45.2 1.96.13.12.11.33-.04.43a1.51 1.51 0 00-.6 1.87.27.27 0 01-.22.37 1.5 1.5 0 00-1.3 1.46c-.01.18-.18.3-.36.25a1.5 1.5 0 00-1.78.8.27.27 0 01-.42.1 1.5 1.5 0 00-1.96 0 .27.27 0 01-.42-.1 1.5 1.5 0 00-1.79-.8.27.27 0 01-.34-.25 1.5 1.5 0 00-1.31-1.46.27.27 0 01-.22-.37c.29-.7.03-1.48-.6-1.87a.27.27 0 01-.05-.43c.54-.51.63-1.34.2-1.96a.27.27 0 01.14-.4l.04.1a.16.16 0 00-.08.24c.46.66.36 1.55-.22 2.1-.07.07-.06.2.03.25.68.42.96 1.27.65 2.01-.04.1.02.2.12.22.8.1 1.4.77 1.41 1.57 0 .1.1.17.2.14.77-.23 1.58.14 1.92.86.05.1.17.12.25.05.6-.52 1.5-.52 2.1 0 .08.07.2.05.24-.05a1.61 1.61 0 011.93-.86c.1.03.2-.04.2-.14.02-.8.62-1.47 1.4-1.57.1-.02.17-.12.13-.22-.3-.74-.03-1.6.65-2.01.09-.05.1-.18.03-.25a1.63 1.63 0 01-.22-2.1.16.16 0 00-.08-.24 1.63 1.63 0 01-1.05-1.83.16.16 0 00-.17-.18c-.8.06-1.52-.47-1.7-1.25a.16.16 0 00-.23-.1c-.7.38-1.57.2-2.06-.44a.16.16 0 00-.24 0zm-.58-.44a.88.88 0 011.4 0c.27.34.75.45 1.13.24a.89.89 0 011.29.57c.1.43.5.72.93.68a.89.89 0 01.95 1.06.9.9 0 00.57 1c.55.2.77.86.44 1.35a.9.9 0 00.12 1.15.9.9 0 01-.15 1.4.9.9 0 00-.36 1.1.9.9 0 01-.7 1.23.89.89 0 00-.77.86.89.89 0 01-1.14.84.89.89 0 00-1.06.47.88.88 0 01-1.37.3.88.88 0 00-1.16 0 .88.88 0 01-1.38-.3.89.89 0 00-1.05-.47.89.89 0 01-1.14-.84.89.89 0 00-.77-.86.9.9 0 01-.7-1.22.9.9 0 00-.36-1.1.9.9 0 01-.15-1.41.9.9 0 00.12-1.15.9.9 0 01.44-1.35.9.9 0 00.57-1 .89.89 0 01.95-1.06c.43.04.83-.25.93-.68a.89.89 0 011.29-.57c.38.2.86.1 1.13-.24z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.91 18.11a5.8 5.8 0 11-11.59 0 5.8 5.8 0 0111.6 0z\",\n fill: \"#FEF880\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M39.12 22.76a4.65 4.65 0 100-9.3 4.65 4.65 0 000 9.3zm0 1.15a5.8 5.8 0 100-11.6 5.8 5.8 0 000 11.6z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.03 32.73c0 6.64-5.35 12.03-11.94 12.03-6.6 0-11.95-5.39-11.95-12.03S9.5 20.71 16.1 20.71s11.94 5.38 11.94 12.02z\",\n fill: \"#003B29\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.09 43.73c6.03 0 10.93-4.92 10.93-11s-4.9-11-10.93-11a10.97 10.97 0 00-10.93 11c0 6.08 4.89 11 10.93 11zm0 1.03c6.6 0 11.94-5.39 11.94-12.03S22.68 20.71 16.1 20.71c-6.6 0-11.95 5.38-11.95 12.02S9.5 44.76 16.1 44.76z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.54 32.73c0 6.64-5.35 12.03-11.95 12.03s-11.94-5.39-11.94-12.03S56 20.71 62.59 20.71c6.6 0 11.95 5.38 11.95 12.02z\",\n fill: \"#003B29\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M62.6 43.73c6.03 0 10.92-4.92 10.92-11s-4.89-11-10.93-11a10.97 10.97 0 00-10.92 11c0 6.08 4.89 11 10.92 11zm0 1.03c6.6 0 11.94-5.39 11.94-12.03s-5.35-12.02-11.95-12.02-11.94 5.38-11.94 12.02S56 44.76 62.59 44.76z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.8 30.9a10.2 10.2 0 11-20.38 0 10.2 10.2 0 0120.38 0z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.6 40.07a9.17 9.17 0 100-18.35 9.17 9.17 0 000 18.35zm0 1.02a10.2 10.2 0 100-20.38 10.2 10.2 0 000 20.38z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.31 30.9a10.2 10.2 0 11-20.39 0 10.2 10.2 0 0120.4 0z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M62.12 40.07a9.17 9.17 0 100-18.35 9.17 9.17 0 000 18.35zm0 1.02a10.2 10.2 0 100-20.38 10.2 10.2 0 000 20.38z\",\n fill: \"#000\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.05 27.15a.76.76 0 011.13 1.03l-8.4 9.17a.76.76 0 11-1.13-1.03l8.4-9.17zM68.14 28.98a.76.76 0 111.13 1.03l-8.4 9.17a.76.76 0 01-1.13-1.03l8.4-9.17zM21.12 31.02a.76.76 0 011.13 1.03l-4.8 5.24a.76.76 0 11-1.13-1.03l4.8-5.24zM68.21 32.85a.76.76 0 111.13 1.03l-4.8 5.25a.76.76 0 11-1.13-1.03l4.8-5.25z\",\n fill: \"#fff\",\n fillOpacity: \".1\"\n}))));","// extracted by mini-css-extract-plugin\nexport default {\"fallback__image\":\"fallback__image--3ht-l\",\"fallbackImage\":\"fallback__image--3ht-l\"};","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport FavouriteSellersEmpty from './favourite-sellers-empty.svg?jsx';\nimport startPageStyles from '../start-page.module.scss';\nimport styles from './favourite-sellers.module.scss';\n\nconst FavouriteSellersFallback = ({ fromFavouriteSellersPage = false }) => {\n const { t } = useTranslator();\n\n return (\n \n \n

    \n {t('startPage_favoriteSeller_fallbackDescription')}\n

    \n \n );\n};\n\nexport default FavouriteSellersFallback;\n","import React, { useRef, useState } from 'react';\nimport { connect } from 'react-redux';\n\nimport {\n createGptSizeMapping,\n mapDeviceNameToViewport\n} from 'static/script/app/ui/layout/ads/ad-slot-utilities';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport LocalizedDfpAd from 'tradera-components/ads/localized-dfp-ad';\nimport MediaQuery from 'react-responsive';\n\nconst Ad = props => {\n const adContainerRef = useRef();\n const {\n adContainerClass,\n adFormats,\n autoscale,\n autoscaleOffsetWidth,\n className,\n children,\n deviceName,\n featureSwitches,\n gpt,\n position,\n refresh,\n stickyBottom,\n stickyEnabled,\n stickyTop,\n ...otherProps\n } = props;\n const canCreateDfpAd = gpt?.adUnitPath;\n const [sizeMapping] = useState(createGptSizeMapping(adFormats, deviceName));\n const [minViewportWidth, maxViewportWidth] = mapDeviceNameToViewport(\n deviceName\n );\n if (canCreateDfpAd) {\n return (\n \n \n \n \n {children /* Placeholder for ad */}\n \n \n \n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => ({\n featureSwitches: state.environment.featureSwitches,\n gpt: state.ads.gpt\n});\n\nexport default connect(mapStateToProps, () => ({}))(Ad);\n","import io from 'socket.io-client';\nimport { logger } from 'packages';\n\nexport const registerLiveUpdates = ({ url, onConnect, onClientEvent }) => {\n let socket;\n try {\n socket = io.connect(url);\n } catch (e) {\n logger(e);\n return;\n }\n\n socket.on('connect', () => {\n try {\n onConnect(socket);\n } catch (e) {\n logger(e);\n }\n });\n\n socket.on('clientEvent', data => {\n try {\n onClientEvent(data);\n } catch (e) {\n logger(e);\n }\n });\n\n return () => socket.disconnect();\n};\n","// We map this way to ensure that each key in lokalise is present in code.\n// This allows us to clean up unnecessary codes in the future.\nexport const mapLanguageCodeToLanguageKey = languageCode => {\n const lokaliseKey = {\n sv: 'language_sv',\n da: 'language_da',\n de: 'language_de',\n en: 'language_en'\n }[languageCode.toLowerCase()];\n if (!lokaliseKey)\n throw `Language ${languageCode} has no mapping to lokalise key`;\n return lokaliseKey;\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport { defaultClient as httpClient } from 'tradera-utils/http';\n\nconst toInt = n => {\n return Math.round(Number(n)) | 0;\n};\n\nconst calculateShipping = (length, width, height, weight) => {\n length = toInt(length);\n width = toInt(width);\n height = toInt(height);\n weight = toInt(weight);\n\n if (!length || !width || !height || !weight) {\n return Promise.reject();\n }\n\n const params = new URLSearchParams({\n height,\n length,\n weight,\n width\n }).toString();\n\n return httpClient\n .get(`${ENDPOINTS.SELLING_SHIPPING_CALCULATOR}?${params}`)\n .then(response => response.data);\n};\n\nexport default { calculateShipping };\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n API_ERRORS,\n axiosConfigs,\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport initData from 'init-data';\n\nexport const getShippingProviders = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.SHIPPING_PROVIDERS, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse())\n .then(prepareResultForView)\n .catch(\n handleError({\n // Ignore 400 & 401 errors that slip through token refresh\n 400: API_ERRORS.IGNORE_ME,\n 401: API_ERRORS.IGNORE_ME\n })\n );\n};\n\nconst GetRestrictionText = texts => {\n return texts.length === 0\n ? null\n : `

    ${texts[0]}

    `;\n};\n\nconst prepareResultForView = result => {\n return result.data.shippingProviders\n .filter(\n shippingProvider =>\n shippingProvider.id !== 'BringDenmark' ||\n initData.featureSwitches['syi-bring']\n )\n .map(shippingProvider => {\n shippingProvider.useAdvancedWidget =\n shippingProvider.products &&\n shippingProvider.products[0].variants &&\n shippingProvider.products[0].variants.length > 1;\n\n const promotedProviders = ['DBSchenker', 'PostNord', 'DHL'];\n\n shippingProvider.promoted =\n promotedProviders.find(p => p === shippingProvider.id) !==\n undefined;\n\n shippingProvider.isObsolete = shippingProvider.isObsolete || false;\n\n const logoUrls = {\n DBSchenker: '/static/images/shipping/schenker.svg',\n PostNord: '/static/images/shipping/postnord.svg',\n PostNordDenmark: '/static/images/shipping/postnord.svg',\n BringDenmark: '/static/images/shipping/bring.svg',\n DHL: '/static/images/shipping/dhl.svg',\n Bussgods: '/static/images/shipping/bussgods.svg',\n Alternative: null,\n AlternativeDenmark: null,\n Posten: null\n };\n shippingProvider.products = shippingProvider.products.map(\n product => {\n product.validationError = null;\n product.cost = null;\n product.selected = false;\n product.visible = product.type !== 'PostNordStamp';\n product.isValid = true;\n product.isStamps = product.type === 'PostNordStamp';\n product.logoImgUrl = logoUrls[shippingProvider.id];\n\n product.variants = product.variants.map(variant => {\n if (product.type == 'PostNordStamp') {\n variant.numberOfStamps =\n variant.price / product.variants[0].price;\n }\n\n variant.restrictionText = GetRestrictionText(\n variant.restrictionTexts\n );\n return variant;\n });\n\n return product;\n }\n );\n\n return shippingProvider;\n });\n};\n","export const transformPostNordParcelProductId = shippingOption => {\n //This code should be safe to remove 2021-06 since all drafts + templates containing old ids should have been removed by then\n if (shippingOption.type !== 'PostNordParcel') {\n return;\n }\n\n if (shippingOption.productId === undefined) {\n return;\n }\n\n const validProductIds = [10, 20, 30, 40, 50, 60, 70, 80, 90];\n const productIdsToTransform = [2000, 3000, 3500, 4000, 5000, 5500, 6000];\n\n if (validProductIds.indexOf(shippingOption.productId) !== -1) {\n return;\n }\n\n if (productIdsToTransform.indexOf(shippingOption.productId) === -1) {\n shippingOption.productId = undefined;\n return;\n }\n\n const compositeKey = `${shippingOption.productId},${shippingOption.weight *\n 1000}`;\n\n const map = {\n '2000,250': 10,\n '2000,500': 20,\n '2000,1000': 30,\n '3000,2000': 40,\n '3500,3000': 50,\n '4000,5000': 60,\n '5000,10000': 70,\n '5500,15000': 80,\n '6000,20000': 90\n };\n\n shippingOption.productId = map[compositeKey];\n};\n","/* eslint-disable promise/catch-or-return */\nimport shippingCalculatorService from 'tradera-apps/syi/script/app_react/services/shipping-calculator-service';\nimport { getShippingProviders } from 'tradera-apps/syi/script/app_react/services/shipping-provider-service';\nimport {\n getPrimaryOrSecondaryProducts,\n getVariant\n} from '../reducers/shipping/shipping-selectors';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport { transformPostNordParcelProductId } from './helpers/postnord-parcel-productid-converter-helper';\n\nconst reset = () => ({\n type: 'RESET_SHIPPING_OPTIONS'\n});\n\nconst resetSelected = () => ({\n type: 'RESET_SELECTED_SHIPPING_OPTIONS'\n});\n\nconst toggleShippingOption = (type, primary) => dispatch => {\n dispatch({\n type: 'TOGGLE_SHIPPING_OPTION',\n payload: {\n type,\n primary\n }\n });\n};\n\nconst setShippingOptionCost = (cost, primary) => ({\n type: 'SET_SHIPPING_OPTION_COST',\n payload: {\n cost,\n primary\n }\n});\n\nconst setShippingOptionVariant = (primary, variant) => dispatch => {\n dispatch({\n type: 'SET_SHIPPING_OPTION_VARIANT',\n payload: {\n primary,\n variant\n }\n });\n};\n\nconst setOfferTakeaway = offerTakeaway => ({\n type: 'SET_TAKEAWAY_SELECTED',\n payload: {\n offerTakeaway\n }\n});\n\nconst setOfferShipping = offerShipping => ({\n type: 'SET_SHIPPING_SELECTED',\n payload: {\n offerShipping\n }\n});\n\nconst setSecondaryShippingOptionOpen = open => ({\n type: 'SET_SECONDARY_SHIPPING_OPTION_OPEN',\n payload: { secondaryShippingOptionOpen: open }\n});\n\nconst removeShippingOption = primary => ({\n type: 'REMOVE_SHIPPING_OPTION',\n payload: {\n primary: primary\n }\n});\n\nconst makeSecondaryShippingOptionPrimary = () => ({\n type: 'MAKE_SECONDARY_SHIPPING_OPTION_PRIMARY'\n});\n\nconst clearSuggestedShippingProducts = primary => dispatch => {\n dispatch({\n type: 'CLEAR_SUGGESTED_SHIPPING_PRODUCTS',\n payload: { primary }\n });\n};\n\nconst setSuggestedShippingProducts = (\n shippingProducts,\n primary\n) => dispatch => {\n dispatch({\n type: 'SET_SUGGESTED_SHIPPING_PRODUCTS',\n payload: { shippingProducts, primary }\n });\n};\n\nconst calculateShipping = (\n length,\n width,\n height,\n weight,\n primary\n) => dispatch => {\n shippingCalculatorService\n .calculateShipping(length, width, height, weight)\n .then(data => {\n var shippingProducts = [];\n for (var i = 0; i < data.shippingOptions.length; i++) {\n let providerName = data.shippingOptions[i].providerName;\n let additionalInfo = null;\n\n if (providerName === 'Bussgods' && weight > 35000) {\n additionalInfo =\n 'OBS! Varje kolli får väga max 35 kg. Du kan skicka flera kollin i samma sändning.';\n }\n\n shippingProducts.push({\n type: providerName,\n cost: data.shippingOptions[i].price,\n description: data.shippingOptions[i].description,\n additionalInfo: additionalInfo\n });\n }\n dispatch(setSuggestedShippingProducts(shippingProducts, primary));\n return data;\n });\n};\n\nconst toggleShippingCalculator = primary => (dispatch, getState) => {\n const currentValue = getSyiSlice(getState()).shipping[\n primary\n ? 'showPrimaryShippingCalculator'\n : 'showSecondaryShippingCalculator'\n ];\n dispatch({\n type: 'SET_SHOW_SHIPPING_CALCULATOR',\n payload: { value: !currentValue, primary }\n });\n};\n\nconst setCalculatorDimensions = (dimensions, primary) => dispatch => {\n dispatch({\n type: 'SET_SHIPPING_CALCULATOR_DIMENSIONS',\n payload: { dimensions, primary }\n });\n};\n\nconst setShippingOptionsFromDraft = (shippingOptions = []) => async (\n dispatch,\n getState\n) => {\n if (\n shippingOptions.some(\n shippingOption =>\n shippingOption.type === 'Takeaway' ||\n shippingOption.type === 'TakeawayOnly'\n )\n ) {\n dispatch(setOfferTakeaway(true));\n } else {\n dispatch(setOfferTakeaway(false));\n }\n\n shippingOptions = shippingOptions.filter(\n shippingOption =>\n shippingOption.type !== 'Takeaway' &&\n shippingOption.type !== 'TakeawayOnly'\n );\n\n await dispatch(getShippingProvidersWithProducts());\n\n const removeCostIfCostMatchesSelectedProduct = (shippingOption, i) => {\n if (i > 1 || !shippingOption.productId || !shippingOption.cost) {\n return;\n }\n const shippingState = getSyiSlice(getState()).shipping;\n const variant = getVariant(shippingState, shippingOption);\n if (variant.price === shippingOption.cost) {\n shippingOption.cost = null;\n }\n };\n\n // Clone shipping options before mutating read only properies.\n shippingOptions = shippingOptions.map(shippingOption => ({\n ...shippingOption\n }));\n shippingOptions.forEach(transformPostNordParcelProductId);\n shippingOptions.forEach(removeCostIfCostMatchesSelectedProduct);\n\n dispatch({\n type: 'SET_SHIPPING_OPTIONS',\n payload: shippingOptions\n });\n\n const setShippingOptionVariantAfterDraft = isPrimary => {\n getPrimaryOrSecondaryProducts(\n getSyiSlice(getState()).shipping,\n isPrimary\n )\n .filter(({ productId }) => !!productId)\n .map(({ price, variants, productId }) => ({\n price,\n productVariant: variants.find(v => v.id === productId)\n }))\n .map(({ productVariant }) =>\n setShippingOptionVariant(isPrimary, productVariant)\n )\n .forEach(dispatch);\n };\n\n setShippingOptionVariantAfterDraft(true);\n setShippingOptionVariantAfterDraft(false);\n};\n\nconst getShippingProvidersWithProducts = () => async (dispatch, getState) => {\n const { shipping } = getSyiSlice(getState());\n\n if (\n (shipping.primaryShippingProviders &&\n shipping.primaryShippingProviders.length > 0) ||\n shipping.isLoadingProvidersWithProducts === true\n ) {\n return;\n }\n\n dispatch({\n type: 'SET_SHIPPING_PROVIDERS_WITH_PRODUCTS_FETCHING'\n });\n\n const shippingProviders = await getShippingProviders();\n dispatch({\n type: 'SET_SHIPPING_PROVIDERS_WITH_PRODUCTS',\n payload: shippingProviders\n });\n};\n\nconst setShippingFromcountry = payload => ({\n type: 'SET_SHIPPING_FROMCOUNTRY',\n payload\n});\n\nexport default {\n calculateShipping,\n clearSuggestedShippingProducts,\n getShippingProvidersWithProducts,\n makeSecondaryShippingOptionPrimary,\n removeShippingOption,\n reset,\n resetSelected,\n setCalculatorDimensions,\n setOfferTakeaway,\n setOfferShipping,\n setSecondaryShippingOptionOpen,\n setShippingOptionCost,\n setShippingOptionsFromDraft,\n setShippingOptionVariant,\n setSuggestedShippingProducts,\n toggleShippingCalculator,\n toggleShippingOption,\n setShippingFromcountry\n};\n","import React from 'react';\nimport ArrowLeftIcon from '@tradera/blueprint/theme/icons2/arrow-left.svg?jsx';\nimport ArrowRightIcon from '@tradera/blueprint/theme/icons2/arrow-right.svg?jsx';\n\nexport const NextArrow = props => {\n const { className, arrowClassName = '', style, onClick } = props;\n return (\n {\n onClick();\n }}>\n \n {\n onClick();\n }}\n />\n \n );\n};\nexport const PreviousArrow = props => {\n const { className, arrowClassName = '', style, onClick } = props;\n return (\n {\n onClick();\n }}>\n \n {\n onClick();\n }}\n />\n \n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Slider from 'react-slick';\nimport { NextArrow, PreviousArrow } from '../arrows';\nimport './basic.scss';\n\n/**\n * BasicCarousel\n * Usage:\n * loopThroughSlides()} />\n */\nclass BasicCarousel extends React.Component {\n next() {\n if (this.slider) {\n this.slider.slickNext();\n }\n }\n\n previous() {\n if (this.slider) {\n this.slider.slickPrev();\n }\n }\n\n goTo(imageIndex) {\n if (this.slider) {\n const skipAnimation = true;\n this.slider.slickGoTo(imageIndex, skipAnimation);\n }\n }\n\n render() {\n const {\n render,\n pageType = '',\n settings,\n className,\n arrowClassName,\n children,\n actionButtons\n } = this.props;\n const defaults = {\n dots: true,\n dotsClass: 'slick-dots slick-thumb mb-1 mb-md-2',\n nextArrow: (\n \n ),\n prevArrow: (\n \n ),\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n lazyLoad: true,\n ...settings\n };\n\n return (\n \n (this.slider = c)} {...defaults}>\n {render ? render() : children}\n \n {actionButtons}\n \n );\n }\n}\n\nBasicCarousel.propTypes = {\n className: PropTypes.string,\n settings: PropTypes.object,\n render: PropTypes.func,\n pageType: PropTypes.string\n};\n\nexport default BasicCarousel;\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport SimpleModal from 'components/modals/simple-modal';\nimport { BasicCarousel } from 'tradera-components/carousels/basic';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport './image-gallery-modal.scss';\n\nconst ImageGalleryModal = props => {\n const { images, initialSlideIndex, closeModalCallback, ...rest } = props;\n\n const { t } = useTranslator();\n const carouselRef = useRef(null);\n const closeButtonRef = useRef(null);\n\n const environment = useSelector(state => state.environment);\n\n const { isMobileDevice } = environment;\n\n const handleCloseModalClick = event => {\n event.stopPropagation();\n closeModalCallback();\n };\n\n const stopClickEventPropagationFromCarousel = event =>\n event.stopPropagation();\n\n const stopClickEventsFromImage = event => event.stopPropagation();\n\n const navigate = useCallback(e => {\n if (e.keyCode === 37) {\n // left\n carouselRef.current.previous();\n e.preventDefault();\n } else if (e.keyCode === 39) {\n // right\n carouselRef.current.next();\n e.preventDefault();\n }\n }, []);\n\n useEffect(() => {\n closeButtonRef.current.focus();\n window.addEventListener('keydown', navigate);\n return () => {\n window.removeEventListener('keydown', navigate);\n };\n }, [navigate]);\n\n const settings = {\n initialSlide: initialSlideIndex,\n adaptiveHeight: true,\n lazyLoad: 'progressive',\n fade: !isMobileDevice,\n useCss: false,\n useTransform: false,\n responsive: [\n {\n breakpoint: BREAKPOINT_SIZES[BREAKPOINTS.MD].min,\n settings: {\n arrows: false\n }\n }\n ]\n };\n\n return (\n \n
    \n \n images.map((image, index) => (\n \n \n \n
    \n \n ))\n }\n />\n \n \n \n \n \n );\n};\n\nImageGalleryModal.propTypes = {\n images: PropTypes.array.isRequired,\n initialSlideIndex: PropTypes.number\n};\nImageGalleryModal.defaultProps = {\n initialSlideIndex: 0\n};\n\nexport { ImageGalleryModal };\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport MediaQuery from 'react-responsive';\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-utils/breakpoints';\n\nclass ViewItemImage extends Component {\n constructor(props) {\n super(props);\n\n this.imageContainer = React.createRef();\n this.zoomImage = React.createRef();\n\n this.bounds = null;\n\n this.state = {\n hover: false,\n zoomImageLargeEnough: true\n };\n }\n\n static defaultProps = {\n enableZoom: false\n };\n\n handleMouseHover(hoverState) {\n this.setState(prevState => ({\n ...prevState,\n hover: hoverState\n }));\n }\n\n handleMouseMove(e) {\n // this check is here because the mobile version does not have a zoomImageElement in the DOM.\n if (this.zoomImage.current === null) {\n return;\n }\n const {\n containerWidth,\n containerHeight,\n zoomImageWidth,\n zoomImageHeight,\n widthDiff,\n heightDiff\n } = this.getBounds();\n\n const zoomImageLargeEnough = widthDiff > 0 || heightDiff > 0;\n this.setState({\n zoomImageLargeEnough\n });\n\n if (!zoomImageLargeEnough) {\n return;\n }\n\n const widthRatio = e.nativeEvent.offsetX / containerWidth;\n const heightRatio = e.nativeEvent.offsetY / containerHeight;\n\n const translateXValue =\n widthDiff > 0\n ? widthRatio * widthDiff\n : zoomImageWidth / 2 - containerWidth / 2;\n const translateYValue =\n heightDiff > 0\n ? heightRatio * heightDiff\n : zoomImageHeight / 2 - containerHeight / 2;\n\n const zoomImageElement = this.zoomImage.current;\n zoomImageElement.style.transform = `translate(${-translateXValue}px,\n ${-translateYValue}px)`;\n\n this.handleMouseHover(true);\n }\n\n getBounds() {\n if (this.bounds) {\n return this.bounds;\n }\n\n const zoomImageElement = this.zoomImage.current;\n const imageContainerElement = this.imageContainer.current;\n\n const {\n width: containerWidth,\n height: containerHeight\n } = imageContainerElement.getBoundingClientRect();\n const {\n width: zoomImageWidth,\n height: zoomImageHeight\n } = zoomImageElement.getBoundingClientRect();\n\n const widthDiff = zoomImageWidth - containerWidth;\n const heightDiff = zoomImageHeight - containerHeight;\n\n if (zoomImageWidth <= 0 || zoomImageHeight <= 0) {\n return {};\n }\n this.bounds = {\n containerWidth,\n containerHeight,\n zoomImageWidth,\n zoomImageHeight,\n widthDiff,\n heightDiff\n };\n\n return this.bounds;\n }\n\n render() {\n const { image, enableZoom, handleZoomClick } = this.props;\n const { hover, zoomImageLargeEnough } = this.state;\n const { alt, normal, smallFit, mediumFit, largeFit } = image;\n return (\n \n \n \n \n \n \n \n \n {\n this.handleMouseMove(e);\n }}\n onMouseLeave={() => this.handleMouseHover(false)}\n />\n \n );\n }\n}\n\nViewItemImage.propTypes = {\n image: PropTypes.shape({\n alt: PropTypes.string.isRequired,\n normal: PropTypes.string.isRequired,\n medium: PropTypes.string.isRequired\n }).isRequired,\n enableZoom: PropTypes.bool,\n handleZoomClick: PropTypes.func\n};\n\nexport default ViewItemImage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-utils/breakpoints';\nimport { BasicCarousel } from '../basic';\nimport { ImageGalleryModal } from 'components/modals/image-gallery-modal/image-gallery-modal';\nimport ViewItemImage from './view-item-image';\nimport './view-item-carousel.scss';\nimport './cursor.scss';\n\nclass ViewItemCarouselZoom extends React.Component {\n static propTypes = {\n carouselStyle: PropTypes.object,\n className: PropTypes.string,\n enableZoom: PropTypes.bool,\n fixedHeight: PropTypes.bool,\n id: PropTypes.string,\n images: PropTypes.array.isRequired,\n pageType: PropTypes.string,\n actionButtons: PropTypes.object\n };\n\n static defaultProps = {\n carouselStyle: {},\n className: '',\n id: '',\n enableZoom: false,\n fixedHeight: true\n };\n\n state = {\n showZoomModal: false,\n activeSlideIndex: 0\n };\n\n constructor(props) {\n super(props);\n this.basicCarousel = React.createRef();\n }\n\n render() {\n const {\n carouselStyle,\n className,\n enableZoom,\n fixedHeight,\n id,\n images,\n actionButtons,\n ...rest\n } = this.props;\n const { showZoomModal, activeSlideIndex } = this.state;\n\n const onMouseUp = () => {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n };\n\n const settings = {\n customPaging: imageIndex => {\n return (\n \n this.basicCarousel.current.goTo(imageIndex)\n }>\n \n
    \n
    \n );\n },\n afterChange: index => {\n this.setState({ activeSlideIndex: index });\n },\n initialSlide: activeSlideIndex,\n accessibility: false,\n responsive: [\n {\n breakpoint: BREAKPOINT_SIZES[BREAKPOINTS.MD].min,\n settings: {\n customPaging: function(i) {\n return ;\n }\n }\n }\n ]\n };\n\n return (\n
    \n \n {images.map((image, index) => (\n {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n }}\n />\n ))}\n \n {enableZoom && showZoomModal && (\n {\n this.setState({ showZoomModal: false });\n }}\n images={images}\n />\n )}\n
    \n );\n }\n}\n\nexport default ViewItemCarouselZoom;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\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 { mapLanguageCodeToLanguageKey } from 'tradera-utils/map-language-code-to-language-key';\nimport Flag from 'tradera-components/flag/flag';\nimport { getCountryCodeFromLanguage } from 'tradera-utils/languagecode';\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport './language-select.scss';\n\nexport const PlainLanguageSelect = ({\n languages,\n preferredLanguage,\n setPreferredLanguage,\n onLanguageSelected,\n inProfileMenu\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n\n onLanguageSelected = onLanguageSelected || (() => {});\n const onLanguageChanged = (code, e) => {\n if (preferredLanguage.languageCodeIso2 === code) {\n return;\n }\n setPreferredLanguage(code, toLocalizedUrl);\n onLanguageSelected(code, e);\n };\n return (\n
    \n {!inProfileMenu && (\n
    \n {t('siteHeader_language')}\n
    \n )}\n {languages.map(({ languageCodeIso2 }) => (\n {\n onLanguageChanged(languageCodeIso2, e);\n }}>\n \n \n {preferredLanguage.languageCodeIso2 ===\n languageCodeIso2 ? (\n \n {t(\n mapLanguageCodeToLanguageKey(\n languageCodeIso2\n )\n )}\n \n ) : (\n <>\n {t(\n mapLanguageCodeToLanguageKey(\n languageCodeIso2\n )\n )}\n \n )}\n \n {preferredLanguage.languageCodeIso2 ===\n languageCodeIso2 && (\n \n )}\n \n ))}\n {isQualtiveEnabled && (\n \n \n {t('siteHeader_languageDisclaimerShort')} \n openQualtiveModal(SURVEYS.language)}>\n {t('siteHeader_languageLeaveFeedBack')}\n \n \n
    \n )}\n \n );\n};\n\nPlainLanguageSelect.propTypes = {\n languages: PropTypes.arrayOf(\n PropTypes.shape({\n languageCodeIso2: PropTypes.string,\n displayName: PropTypes.string,\n languageCodeIso3: PropTypes.string\n })\n ),\n preferredLanguage: PropTypes.object,\n onLanguageSelected: PropTypes.func,\n setPreferredLanguage: PropTypes.func.isRequired,\n inProfileMenu: PropTypes.bool\n};\n\nconst mapStateToProps = state => ({\n languages: selectAvailableLanguages(state),\n preferredLanguage: selectPreferredLanguage(state)\n});\n\nconst mapDispatchToProps = {\n setPreferredLanguage\n};\n\nexport const LanguageSelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainLanguageSelect);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\n\nconst HoverMenuItem = ({\n icon,\n label,\n link,\n border,\n follow,\n onClick,\n gaAttributes\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
  • \n \n \n {icon}\n \n {label}\n \n
  • \n );\n};\n\nHoverMenuItem.propTypes = {\n icon: PropTypes.node,\n label: PropTypes.node,\n link: PropTypes.string,\n border: PropTypes.bool,\n follow: PropTypes.bool,\n onClick: PropTypes.func,\n gaAttributes: PropTypes.object\n};\n\nexport default HoverMenuItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ModalBody, ModalContainer, ModalHeader } from 'components/modals';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport { checkUserMessagingParticipation } from 'tradera-apps/my-tradera/app/helpers/messaging-helpers';\nimport ArrowRightIcon from '@tradera/blueprint/theme/icons/arrow-right.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons/close-narrow.svg?jsx';\nimport LoadIcon from '@tradera/blueprint/theme/icons/load.svg?jsx';\nimport { logger } from 'packages';\nimport { withUrlLocalizer } from 'tradera-lang/translate';\nimport './messaging-iframe.scss';\nimport { getMessagingUrl } from 'tradera-components/messaging/get-messaging-url';\n\nconst MESSAGING_STATES = {\n LOADING: 'LOADING',\n READY: 'READY'\n};\nconst POST_MESSAGE_TYPE_PREFIX = 'tradera.messaging.';\n\nclass MessagingModal extends React.Component {\n MESSAGING_REMOTE_URL;\n\n constructor(props) {\n super(props);\n this.state = {\n messaging: MESSAGING_STATES.LOADING,\n participating: props.participating || null\n };\n this.MESSAGING_REMOTE_URL = getMessagingUrl(props.toLocalizedUrl);\n }\n\n handleMessage = event => {\n const {\n data: { type },\n origin\n } = event;\n if (this.MESSAGING_REMOTE_URL.indexOf(origin) < 0) {\n return;\n }\n switch (type) {\n // Messages loaded & ready\n case POST_MESSAGE_TYPE_PREFIX + 'ready':\n this.setState({ messaging: MESSAGING_STATES.READY });\n break;\n // Unread threads update\n case POST_MESSAGE_TYPE_PREFIX + 'close':\n this.handleClose();\n break;\n }\n };\n\n handleClose = () => {\n this.props.closeModal();\n };\n\n setIframeRef = element => {\n if (element) {\n this.iframeElement = element;\n }\n // Focus on iframe content window to allow focus to move into iframe\n setTimeout(() => {\n if (this.iframeElement && this.iframeElement.contentWindow) {\n this.iframeElement.contentWindow.focus();\n }\n }, 0);\n };\n\n componentDidMount() {\n if (this.state.participating === null) {\n checkUserMessagingParticipation(this.props.recipientId)\n .then(participating => this.setState({ participating }))\n .catch(logger);\n }\n window.addEventListener('message', this.handleMessage);\n this.setIframeRef();\n }\n\n componentWillUnmount() {\n window.removeEventListener('message', this.handleMessage);\n }\n\n render() {\n const { title, src, item, toLocalizedUrl } = this.props;\n const { participating } = this.state;\n return (\n this.handleClose()}>\n this.handleClose()}>\n {title && (\n this.handleClose()}>\n {title}\n \n )}\n \n {participating === true && (\n \n )}\n {participating === false && (\n this.handleClose()}\n toLocalizedUrl={toLocalizedUrl}\n />\n )}\n {participating === null && }\n \n \n \n );\n }\n}\n\nMessagingModal.propTypes = {\n title: PropTypes.string,\n src: PropTypes.string.isRequired\n};\n\nconst Loader = () => {\n return (\n
    \n \n
    \n );\n};\n\nconst NotParticipatingMessage = props => {\n const { item, onClose, toLocalizedUrl } = props;\n if (item) {\n return (\n
    \n
    \n

    {item.seller.alias}

    \n

    \n Butik\n

    \n
    \n

    \n {item.seller.alias} är inte en privat säljare och\n finns för tillfället inte tillgänglig via Traderas\n meddelandetjänst.\n

    \n

    \n Vi rekommenderar att du kontaktar dem via\n orderinformation för detta köp.\n

    \n
    \n \n \n \n Orderinformation\n \n \n \n Stäng\n \n
    \n
    \n \n );\n } else {\n return (\n
    \n
    \n

    \n Säljaren finns för tillfället inte tillgänglig via\n Traderas meddelandetjänst.\n

    \n
    \n \n \n \n Stäng\n \n
    \n \n );\n }\n};\n\nexport default withUrlLocalizer(MessagingModal);\n","import { globalStore } from 'tradera-state/configure-store';\nconst store = globalStore();\n\nexport default {\n setErrors: function(errors) {\n store.dispatch({\n type: 'SET_ERRORS',\n errors: errors\n });\n },\n setError: function(propertyName, error) {\n store.dispatch({\n type: 'SET_ERROR',\n propertyName: propertyName,\n error: error\n });\n }\n};\n","import axios from 'axios';\nimport { toLocalizedRiotUrl } from './../utils/language';\n\nexport const openAddPhoto = draftId => {\n const url = toLocalizedRiotUrl(`/selling/api/native-apps/add-photo`);\n return axios.post(url, {\n draftId\n });\n};\n","import draftActions from './draft-actions';\nimport syiActions from './syi-actions';\nimport logger from 'packages/logger';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport errorActions from 'tradera-state/views/syi/actions/error-actions';\nimport { openAddPhoto } from 'tradera-apps/syi/script/app_react/services/native-app-service';\nimport imageUploadService from 'tradera-apps/syi/script/app_react/services/image-upload-service';\nimport { throttledFetchImageAttributeSuggestions } from './attributes-actions';\n\nconst MAX_IMAGES_FOR_IMAGE_TO_COLORS = 2;\n\nconst setDraftImages = images => dispatch => {\n dispatch({\n type: 'SET_DRAFT_IMAGES',\n payload: images\n });\n\n dispatch(draftActions.updateDraftCanBeResumed());\n\n const removeNullAndUndefinedFilter = n => n;\n const draftImageIds = images\n .slice(0, MAX_IMAGES_FOR_IMAGE_TO_COLORS)\n .map(image => image.draftImage?.imageId)\n .filter(removeNullAndUndefinedFilter);\n if (draftImageIds.length > 0) {\n dispatch(throttledFetchImageAttributeSuggestions(draftImageIds));\n }\n};\n\nconst setUploadedImageInNextFreeSlot = (imageId, imageUrl) => (\n dispatch,\n getState\n) => {\n var slots = getSyiSlice(getState()).images.slots;\n var freeSlotIndex = -1;\n for (var i = 0; i < slots.length; i++) {\n if (!slots[i].imageId) {\n freeSlotIndex = i;\n break;\n }\n }\n if (freeSlotIndex > -1) {\n dispatch({\n type: 'SET_UPLOADED_IMAGE_IN_SLOT',\n slotIndex: freeSlotIndex,\n imageUrl: imageUrl,\n imageId: imageId\n });\n if (freeSlotIndex < MAX_IMAGES_FOR_IMAGE_TO_COLORS) {\n handleAttributeSuggestionsForSlot(dispatch, slots);\n }\n }\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst setUploadedImageInImageSlot = (slotIndex, imageId, imageUrl) => (\n dispatch,\n getState\n) => {\n dispatch({\n type: 'SET_UPLOADED_IMAGE_IN_SLOT',\n slotIndex: slotIndex,\n imageUrl: imageUrl,\n imageId: imageId\n });\n if (slotIndex < MAX_IMAGES_FOR_IMAGE_TO_COLORS) {\n var slots = getSyiSlice(getState()).images.slots;\n handleAttributeSuggestionsForSlot(dispatch, slots);\n }\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst removeImageInSlot = slotIndex => (dispatch, getState) => {\n let slots = [...getSyiSlice(getState()).images.slots];\n // move images to the left\n for (var i = slotIndex; i < slots.length - 1; i++) {\n slots[i].imageUrl = slots[i + 1].imageUrl;\n slots[i].imageId = slots[i + 1].imageId;\n slots[i].rotationDegrees = slots[i + 1].rotationDegrees;\n slots[i].isListingImage = slots[i + 1].isListingImage;\n if (slots[i + 1].isListingImage) {\n slots[i].filename = slots[i + 1].filename;\n slots[i].imageGroupId = slots[i + 1].imageGroupId;\n }\n }\n\n // reset last slot\n slots[4].isUploading = false;\n slots[4].imageUrl = null;\n slots[4].imageId = null;\n slots[4].isListingImage = false;\n slots[4].filename = null;\n slots[4].imageGroupId = null;\n\n dispatch({\n type: 'SET_IMAGE_SLOTS',\n slots: slots\n });\n\n if (slotIndex < MAX_IMAGES_FOR_IMAGE_TO_COLORS) {\n handleAttributeSuggestionsForSlot(dispatch, slots);\n }\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst changeImagePosition = (from, to) => (dispatch, getState) => {\n var slots = getSyiSlice(getState()).images.slots;\n var slot = slots[from];\n slots.splice(from, 1);\n var len = slots.length;\n var newSlots = [];\n for (var i = 0; i < len; i++) {\n if (i == to) {\n newSlots.push(slot);\n }\n newSlots.push(slots[i]);\n }\n if (to == slots.length) {\n newSlots.push(slot);\n }\n dispatch({\n type: 'SET_IMAGE_SLOTS',\n slots: newSlots\n });\n const isImageToColorImageChanged =\n (from >= MAX_IMAGES_FOR_IMAGE_TO_COLORS &&\n to < MAX_IMAGES_FOR_IMAGE_TO_COLORS) ||\n (to >= MAX_IMAGES_FOR_IMAGE_TO_COLORS &&\n from < MAX_IMAGES_FOR_IMAGE_TO_COLORS);\n if (isImageToColorImageChanged) {\n handleAttributeSuggestionsForSlot(dispatch, newSlots);\n }\n};\n\nconst removeImageWithId = imageId => (dispatch, getState) => {\n let slots = getSyiSlice(getState()).images.slots;\n let slotIndex = -1;\n for (var i = slots.length; i-- > 0; ) {\n if (slots[i].imageId === imageId) {\n slotIndex = i;\n break;\n }\n }\n if (slotIndex > -1) {\n dispatch(removeImageInSlot(slotIndex));\n }\n\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst rotateImage = slotIndex => (dispatch, getState) => {\n var slots = getSyiSlice(getState()).images.slots;\n var rotationDegrees = slots[slotIndex].rotationDegrees || 0;\n rotationDegrees += 90;\n if (rotationDegrees === 360) {\n rotationDegrees = 0;\n }\n dispatch({\n type: 'SET_IMAGE_ROTATION',\n slotIndex: slotIndex,\n rotationDegrees: rotationDegrees\n });\n};\n\nconst setUploadFailed = errorMessage => dispatch => {\n dispatch({\n type: 'SET_IMAGE_UPLOAD_FAILED',\n payload: errorMessage\n });\n};\n\nconst setUploading = numberOfSlots => dispatch => {\n dispatch({\n type: 'SET_IMAGES_UPLOADING',\n numberOfSlots: numberOfSlots\n });\n};\n\nconst prepareUpload = (selectedFilesCount, freeSlotCount) => dispatch => {\n errorActions.setError('images', null);\n const numberOfFilesToUpload = Math.min(freeSlotCount, selectedFilesCount);\n dispatch(setUploading(numberOfFilesToUpload));\n};\n\nconst setImageThunk = (freeSlotCount, fileInput, flow) => dispatch => {\n const selectedFilesCount = fileInput.files?.length || 1;\n dispatch(prepareUpload(selectedFilesCount, freeSlotCount));\n imageUploadService.uploadFromFileInput(fileInput, freeSlotCount, flow);\n};\n\nclass MissingDraftId extends Error {}\n\nconst nativeAppOpenAddPhotoThunk = saveNowIfQueued => async (\n dispatch,\n getState\n) => {\n dispatch(setIsUploadingWithApp(true));\n try {\n dispatch(syiActions.disableAutoSave());\n const currentDraftId = getSyiSlice(getState())?.draft?.draftId;\n const draft = await saveNowIfQueued(currentDraftId);\n const draftId = draft?.draftId || currentDraftId;\n if (!draftId) {\n throw new MissingDraftId();\n }\n await openAddPhoto(draftId);\n } catch (error) {\n if (error instanceof MissingDraftId) {\n logger('Missing draftId on app photo upload');\n } else if (!error.request || error.response) {\n // Do not log axios request errors, as they are client dependent (such as offline)\n logger(error);\n }\n dispatch(setUploadFailed('syi_images_photo_with_mobile_error'));\n dispatch(setIsUploadingWithApp(false));\n dispatch(syiActions.enableAutoSave());\n }\n};\n\nconst fetchImagesFromDraft = (draftId, draftSocket) => async dispatch => {\n if (!draftId) {\n logger('DraftChanged event missing draft ID');\n }\n const imagesHaveChanged = await dispatch(\n draftActions.loadImagesFromDraft(draftId)\n );\n if (imagesHaveChanged) {\n dispatch(cancelMobileUpload(draftSocket));\n }\n};\n\nconst setIsUploadingWithApp = isUploadingWithApp => dispatch => {\n dispatch({\n type: 'SET_MOBILE_UPLOAD',\n isUploadingWithApp\n });\n};\n\nconst cancelMobileUpload = draftSocket => dispatch => {\n draftSocket.disconnect();\n dispatch(setIsUploadingWithApp(false));\n dispatch(syiActions.enableAutoSave());\n};\n\nconst handleAttributeSuggestionsForSlot = (dispatch, slots) => {\n const imageIds = [];\n slots.slice(0, MAX_IMAGES_FOR_IMAGE_TO_COLORS).forEach(slot => {\n if (slot.imageId && !slot.isListingImage) {\n imageIds.push(slot.imageId);\n }\n });\n if (imageIds.length > 0) {\n dispatch(throttledFetchImageAttributeSuggestions(imageIds));\n } else {\n dispatch({\n type: 'RESET_IMAGE_ATTRIBUTES_SUGGESTIONS'\n });\n }\n};\n\nconst reset = () => dispatch => {\n dispatch(setDraftImages([]));\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nexport default {\n setDraftImages,\n setUploadedImageInNextFreeSlot,\n setUploadedImageInImageSlot,\n removeImageInSlot,\n removeImageWithId,\n changeImagePosition,\n rotateImage,\n setUploadFailed,\n setUploading,\n prepareUpload,\n setImageThunk,\n nativeAppOpenAddPhotoThunk,\n fetchImagesFromDraft,\n cancelMobileUpload,\n setIsUploadingWithApp,\n reset\n};\n","import React from 'react';\n\nconst Flag = ({ countryCodeIso2, ...otherProps }) => {\n return countryCodeIso2 ? (\n \n ) : null;\n};\n\nexport default Flag;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useImageLoader } from '../hooks';\n\nconst BackgroundImageLoader = props => {\n const {\n tagName: TagName,\n className,\n style,\n src,\n placeholderSrc,\n placeholderClassName,\n fallbackSrc,\n fallbackClassName,\n loadedClassName,\n children,\n ...otherProps\n } = props;\n const [isLoaded, error] = useImageLoader(src);\n let currentSrc = placeholderSrc;\n let currentClassName = className + ' ' + placeholderClassName;\n\n if (isLoaded) {\n currentSrc = src;\n currentClassName = className + ' ' + loadedClassName;\n } else if (error) {\n currentSrc = fallbackSrc;\n currentClassName = className + ' ' + fallbackClassName;\n }\n\n return (\n \n {isLoaded && children}\n \n );\n};\n\nBackgroundImageLoader.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n src: PropTypes.string,\n placeholderSrc: PropTypes.string,\n placeholderClassName: PropTypes.string,\n fallbackSrc: PropTypes.string,\n fallbackClassName: PropTypes.string,\n loadedClassName: PropTypes.string\n};\nBackgroundImageLoader.defaultProps = {\n tagName: 'div'\n};\n\nexport default BackgroundImageLoader;\n","import React from 'react';\nimport LazyLoad from 'react-lazyload';\n\nimport { ITEM_CARD_IMAGE_MODES } from './item-card-image-modes';\nimport BackgroundImageLoader from './background-image-loader';\nimport ALink from 'tradera-components/alink/alink';\n\nconst ItemCardImage = ({\n className,\n lazy,\n itemUrl,\n imageHeight,\n imageMode,\n imageUrl,\n imageWidth,\n imageSecondaryUrl,\n shortDescription,\n onClick,\n children,\n inSPA\n}) => {\n const linkProps = {\n href: itemUrl,\n className: `item-card-image ${\n lazy ? '' : 'item-card-image-loaded'\n } ${className || ''}`,\n title: shortDescription,\n onClick,\n 'data-item-card-image': '',\n role: 'button',\n useLink: inSPA\n };\n const imageStyle = {};\n\n if (imageMode === ITEM_CARD_IMAGE_MODES.NATURAL) {\n let aspectRatio = imageHeight / imageWidth;\n aspectRatio = Math.min(aspectRatio, 3.0);\n aspectRatio = Math.max(aspectRatio, 0.33);\n imageStyle.paddingTop = aspectRatio * 100 + '%';\n }\n\n const secondaryImage = imageSecondaryUrl ? (\n \n ) : null;\n\n if (lazy) {\n return (\n \n \n {secondaryImage}\n {children}\n \n \n );\n } else {\n return (\n \n {secondaryImage}\n {children}\n \n );\n }\n};\n\nexport default ItemCardImage;\n","import React from 'react';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst ToBuyLink = ({ isLoggedIn, transparentHeader }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const howTo = t('siteHeader_howTo');\n\n return (\n \n \n \n\n \n {howTo}\n \n \n );\n};\n\nexport default ToBuyLink;\n","import { useEffect, useRef } from 'react';\nimport {\n BREAKPOINTS,\n useBreakpoint\n} from 'tradera-components/breakpoint/breakpoint';\n\nexport const useMenuHeightFix = () => {\n const menuContentRef = useRef();\n const currentBreakpoint = useBreakpoint();\n\n useEffect(() => {\n if (!menuContentRef.current) return;\n const element = menuContentRef.current.parentElement;\n const marginBottom = currentBreakpoint === BREAKPOINTS.XL ? 7 : 0;\n const marginTop = element.getBoundingClientRect().top;\n const marginY = marginTop + marginBottom;\n element.style.maxHeight = `calc(100vh - ${marginY}px)`;\n }, [currentBreakpoint]);\n return menuContentRef;\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport HoverMenu from './hover-menu/hover-menu';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\nimport { CurrencySelect } from 'components/localization/currency-select';\nimport { selectPreferredCurrency } from 'tradera-state/multi-currency';\n\nimport './currency-link.scss';\n\nconst PlainCurrencyLink = ({\n onClick,\n onBlur,\n mouseOver,\n mouseOut,\n showMenu,\n transparentHeader,\n preferredCurrency\n}) => {\n return (\n mouseOver(HOVER_MENUS.CURRENCY)}\n onMouseLeave={mouseOut}>\n {\n GtmService.trackAction(\n 'Top navigation',\n 'Currency menu',\n 'Open/Close'\n );\n onClick(e, HOVER_MENUS.CURRENCY);\n }}>\n {preferredCurrency.shortName}\n \n \n \n
    \n {\n onBlur(e, HOVER_MENUS.CURRENCY);\n }}\n inProfileMenu={false}\n />\n
    \n
    \n \n );\n};\n\nconst mapStateToProps = state => ({\n preferredCurrency: selectPreferredCurrency(state)\n});\n\nconst mapDispatchToProps = {};\n\nexport const CurrencyLink = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainCurrencyLink);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 16c4.4 0 8-3.6 8-8s-3.6-8-8-8-8 3.6-8 8 3.6 8 8 8zM8 3c.6 0 1 .4 1 1v3h3c.6 0 1 .4 1 1s-.4 1-1 1H9v3c0 .6-.4 1-1 1s-1-.4-1-1V9H4c-.6 0-1-.4-1-1s.4-1 1-1h3V4c0-.6.4-1 1-1z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n})));","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Plus from '@tradera/blueprint/theme/icons2/plus.svg?jsx';\nimport { Button } from 'tradera-components/atoms/button/button';\n\nconst AttributeButton = ({ className, text, selected, onClick, hoverIcon }) => {\n return (\n \n {hoverIcon && }\n {text}\n \n );\n};\n\nAttributeButton.propTypes = {\n className: PropTypes.string,\n text: PropTypes.node.isRequired,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n hoverIcon: PropTypes.bool\n};\n\nAttributeButton.defaultProps = {\n className: '',\n text: PropTypes.string,\n selected: false,\n onClick: undefined,\n hoverIcon: true\n};\n\nexport default AttributeButton;\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { useTranslator } from 'tradera-lang/translate';\nimport DfpAd from '@tradera/blueprint/components/lib/ads';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport '@tradera/blueprint/components/lib/ads.css';\nimport WaitForConsentApiLoaded from 'tradera-components/wait-for-consent-api-loaded/wait-for-consent-api-loaded';\nimport { globalStore } from 'tradera-state/configure-store';\n\nconst LocalizedDfpAd = props => {\n const { t } = useTranslator();\n const text = {\n label: t('dfpAd_label')\n };\n const store = globalStore();\n const featureSwitches = store.getState().environment.featureSwitches;\n return (\n \n \n (\n \n )}\n />\n \n \n );\n};\n\nexport default LocalizedDfpAd;\n","export const isDev = () =>\n process && process.env && process.env.NODE_ENV !== 'production';\n\nexport const warnIfDevBuild = moduleName => {\n if (isDev()) {\n console.log(\n `%c Warning: This is a Dev build of ${moduleName}`,\n 'background:red; color:white; font-size:18px;'\n );\n }\n};\n\n/**\n * helper function that is called after the header has been loaded. useful when you want to have the redux loaded before you start\n * to dispatch actions.\n * @param {func} callback\n */\nexport const onModuleLoaded = callback => {\n const isModuleLoaded = () =>\n window.document.body.getAttribute('data-module-loaded') === 'true';\n\n try {\n if (isModuleLoaded()) {\n callback();\n }\n let observer = new MutationObserver(mutationsList => {\n const element = mutationsList.filter(\n item => item.attributeName === 'data-module-loaded'\n );\n if (element !== null && isModuleLoaded()) {\n callback();\n }\n });\n observer.observe(window.document.body, { attributes: true });\n // eslint-disable-next-line no-empty\n } catch (error) {}\n};\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useInView } from 'react-intersection-observer';\nimport axios from 'axios';\n\nimport { logger } from 'packages';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport {\n defaultJsonRequestHeaders,\n handleError,\n API_ERRORS,\n reloadOnUnauthorized\n} from 'tradera-utils/api';\nimport adsActions from 'tradera-state/ads/actions';\nimport itemActions from 'tradera-state/items/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport 'tradera-components/item-card/layout.scss';\nimport { ComponentsWithStitchAds } from 'tradera-apps/tradera/components/discover/components/search-results/items-with-stiched-ads';\nimport { touchWebClient } from 'tradera-utils/http';\n\nconst LOADING_STATES = {\n // can transition to is represented by '->'\n initializing: 'initializing', // -> loading\n loading: 'loading', // -> ready, end, error\n ready: 'ready', // -> loading\n end: 'end', // final state\n error: 'error' // final state\n};\n\nconst GPT_PAGE_NAMES = {\n CRP: 'crp'\n};\n\nfunction Recommendations(props) {\n const {\n addItems,\n children,\n className,\n collapseIfEmpty,\n createRequestUrl,\n enableQuickView,\n errorFallback,\n gtmLabel,\n infiniteScrollEnabled,\n isLoggedIn,\n itemCardProps,\n items,\n loader,\n noMoreItemsMarker,\n onError,\n onReachedEnd,\n openQuickView,\n preferredCurrency,\n setAds,\n showAds,\n title,\n toggleWishlist\n } = props;\n\n const [loadingState, setLoadingState] = useState(\n LOADING_STATES.initializing\n );\n const [currentPage, setCurrentPage] = useState(0);\n const [itemIds, setItemIds] = useState([]);\n\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const [loadingTriggerRef, loadingTriggerInView] = useInView({\n rootMargin: '0px 0px 800px 0px', // Increase to load earlier\n threshold: 1.0\n });\n\n const addItemIds = useCallback(\n itemIdsToAdd => {\n setItemIds([...itemIds, ...itemIdsToAdd]);\n },\n [itemIds, setItemIds]\n );\n\n // For cancelling request when unmounting component:\n const cancelToken = useRef();\n useEffect(() => {\n cancelToken.current = axios.CancelToken.source();\n return cancelToken.current.cancel;\n }, []);\n\n const loadAds = useCallback(\n items => {\n if (!showAds) return;\n\n return touchWebClient\n .get(\n `/ads/get-gpt-data?gptPageName=${\n GPT_PAGE_NAMES.CRP\n }&categoryId=${items?.[0]?.categoryId ||\n 0}&itemsLength=${items?.length || 0}`\n )\n .then(({ data }) => {\n setAds({ gpt: data });\n return data;\n });\n },\n [setAds, showAds]\n );\n\n const getItems = useCallback(\n page => {\n const endpoint = toLocalizedUrl(createRequestUrl(page));\n axios\n .get(endpoint, {\n cancelToken: cancelToken.current.token,\n headers: defaultJsonRequestHeaders\n })\n .then(({ data }) => {\n const itemsInResponse = data?.items || [];\n if (page === 1) {\n loadAds(itemsInResponse);\n }\n if (itemsInResponse.length === 0) {\n if (itemIds.length === 0) {\n setLoadingState(LOADING_STATES.error);\n if (onError) onError();\n } else {\n setLoadingState(LOADING_STATES.end);\n if (onReachedEnd) onReachedEnd(itemIds);\n }\n } else {\n addItems(itemsInResponse);\n addItemIds(itemsInResponse.map(x => x.itemId));\n setLoadingState(LOADING_STATES.ready);\n }\n return itemsInResponse;\n })\n .catch(handleError())\n .catch(reloadOnUnauthorized)\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n return;\n case API_ERRORS.ABORTED:\n case API_ERRORS.NETWORK:\n break;\n default:\n logger(error);\n }\n if (itemIds.length === 0) {\n setLoadingState(LOADING_STATES.error);\n if (onError) onError();\n } else {\n setLoadingState(LOADING_STATES.end);\n }\n });\n },\n [\n toLocalizedUrl,\n createRequestUrl,\n loadAds,\n itemIds,\n onError,\n onReachedEnd,\n addItems,\n addItemIds\n ]\n );\n\n useEffect(() => {\n if (\n loadingState === LOADING_STATES.initializing ||\n (loadingState === LOADING_STATES.ready && loadingTriggerInView)\n ) {\n setLoadingState(LOADING_STATES.loading);\n const nextPage = currentPage + 1;\n setCurrentPage(nextPage);\n return getItems(nextPage);\n } else {\n return;\n }\n }, [\n currentPage,\n getItems,\n infiniteScrollEnabled,\n loadingState,\n loadingTriggerInView\n ]);\n\n const handleQuickViewClick = useCallback(\n itemId => {\n openQuickView(itemId, itemIds, gtmLabel);\n },\n [gtmLabel, itemIds, openQuickView]\n );\n\n if (collapseIfEmpty && loadingState === LOADING_STATES.error) {\n return null;\n }\n\n const itemComponents = itemIds.map((itemId, index) => (\n
    \n \n
    \n ));\n\n return (\n
    \n {title}\n \n {showAds ? (\n \n ) : (\n itemComponents\n )}\n \n {loadingState === LOADING_STATES.loading && loader}\n {loadingState === LOADING_STATES.error && errorFallback}\n {loadingState === LOADING_STATES.end && noMoreItemsMarker}\n {infiniteScrollEnabled &&\n loadingState !== LOADING_STATES.end &&\n loadingState !== LOADING_STATES.error && (\n \n )}\n {loadingState === LOADING_STATES.ready && children}\n
    \n );\n}\n\nRecommendations.propTypes = {\n className: PropTypes.string,\n collapseIfEmpty: PropTypes.bool,\n createRequestUrl: PropTypes.func.isRequired,\n enableQuickView: PropTypes.bool,\n errorFallback: PropTypes.node,\n infiniteScrollEnabled: PropTypes.bool,\n loader: PropTypes.node.isRequired,\n noMoreItemsMarker: PropTypes.node,\n onError: PropTypes.func,\n onReachedEnd: PropTypes.func,\n openQuickView: PropTypes.func,\n title: PropTypes.element,\n showAds: PropTypes.bool\n};\n\nRecommendations.defaultProps = {\n className: '',\n collapseIfEmpty: true,\n enableQuickView: false,\n infiniteScrollEnabled: false,\n showAds: false\n};\n\nconst mapStateToProps = state => ({\n items: state.items.cache,\n isLoggedIn: state.member.isLoggedIn,\n preferredCurrency: state.multiCurrency.preferredCurrency,\n enableQuickView: state.environment.featureSwitches['quick-view']\n});\n\nconst mapDispatchToProps = dispatch => ({\n addItems: items => dispatch(itemActions.add(items)),\n openQuickView: (itemId, itemIds, openedFrom) =>\n dispatch(uiActions.openQuickView({ itemIds, itemId, openedFrom })),\n setAds: ads => dispatch(adsActions.setAds(ads)),\n toggleWishlist: itemId => dispatch(itemActions.wishlist(itemId))\n});\n\nexport { Recommendations, LOADING_STATES };\nexport default connect(mapStateToProps, mapDispatchToProps)(Recommendations);\n","import Recommendations from './recommendations';\n\nexport default Recommendations;\nexport {\n recommendationsRequestBuilder,\n similarItemsRequestBuilder,\n similarItemsFromShopRequestBuilder,\n similarItemsFromCampaignRequestBuilder\n} from './recommendations-requests';\n","import feesActions from './fees-actions';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport { resetCharityAndShippingInfo } from 'tradera-state/views/syi/actions/charity-actions';\n\nfunction toIntOrNull(number) {\n var i = parseInt(number);\n if (isFinite(i)) {\n return i;\n }\n return null;\n}\n\nfunction isNullOrUndefined(val) {\n return val === null || val === undefined;\n}\n\nconst setOpeningBid = openingBid => dispatch => {\n dispatch({\n type: 'SET_OPENING_BID',\n payload: toIntOrNull(openingBid)\n });\n};\n\nconst setFixedPrice = fixedPrice => dispatch => {\n dispatch({\n type: 'SET_FIXED_PRICE',\n payload: toIntOrNull(fixedPrice)\n });\n};\n\nconst setReservePrice = reservePrice => dispatch => {\n dispatch({\n type: 'SET_RESERVE_PRICE',\n payload: toIntOrNull(reservePrice)\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setAuctionBinPrice = auctionBinPrice => dispatch => {\n dispatch({\n type: 'SET_AUCTION_BIN_PRICE',\n payload: toIntOrNull(auctionBinPrice)\n });\n};\n\nconst setAuctionBinPriceVisibility = visible => dispatch => {\n dispatch({\n type: 'SET_AUCTION_BIN_PRICE_VISIBILITY',\n payload: visible\n });\n if (!visible) {\n dispatch(setAuctionBinPrice(null));\n }\n};\n\nconst setReservePriceVisibility = visible => dispatch => {\n dispatch({\n type: 'SET_RESERVE_PRICE_VISIBILITY',\n payload: visible\n });\n if (!visible) {\n dispatch(setReservePrice(null));\n }\n};\n\nconst setCharityDonationVisibility = visible => dispatch => {\n dispatch({\n type: 'SET_CHARITY_DONATION_VISIBILITY',\n payload: visible\n });\n if (!visible) {\n dispatch(resetCharityAndShippingInfo());\n }\n};\n\nconst setEditCharity = editCharity => dispatch => {\n dispatch({\n type: 'SET_EDIT_CHARITY',\n payload: editCharity\n });\n};\n\nconst setIsPureBinSelected = isPureBinSelected => (dispatch, getState) => {\n dispatch({\n type: 'SET_IS_PURE_BIN_SELECTED',\n isPureBinSelected,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n if (isPureBinSelected) {\n dispatch(setOpeningBid(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setReservePrice(null));\n } else {\n dispatch(setFixedPrice(null));\n }\n};\n\nconst setVat = vat => dispatch => {\n dispatch({\n type: 'SET_VAT',\n payload: vat\n });\n};\n\nconst setFromDraft = (\n openingBid,\n fixedPrice,\n reservePrice,\n charityId,\n vat,\n isChangeItem\n) => dispatch => {\n const queryParams = new URLSearchParams(location.search);\n const queryParamCharityId = queryParams.get('charityId');\n let hasOpeningBid = !isNullOrUndefined(openingBid);\n let hasFixedPrice = !isNullOrUndefined(fixedPrice);\n let hasReservePrice = !isNullOrUndefined(reservePrice);\n let hasCharityId =\n !isNullOrUndefined(charityId) ||\n !isNullOrUndefined(queryParamCharityId);\n let isAuction = hasOpeningBid && !hasFixedPrice;\n let isAuctionBin = hasOpeningBid && hasFixedPrice;\n let isPureBin = !hasOpeningBid && hasFixedPrice;\n\n dispatch(setVat(vat));\n\n // TODO: fewer changes to the state makes the page load faster...\n if (isAuction) {\n dispatch(setOpeningBid(openingBid));\n dispatch(setReservePrice(reservePrice));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(hasReservePrice));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setCharityDonationVisibility(hasCharityId));\n dispatch(setIsPureBinSelected(false));\n } else if (isAuctionBin) {\n dispatch(setOpeningBid(openingBid));\n dispatch(setReservePrice(reservePrice));\n dispatch(setAuctionBinPrice(fixedPrice));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(hasReservePrice));\n dispatch(setAuctionBinPriceVisibility(true));\n dispatch(setCharityDonationVisibility(hasCharityId));\n dispatch(setIsPureBinSelected(false));\n } else if (isPureBin) {\n dispatch(setOpeningBid(null));\n dispatch(setReservePrice(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(fixedPrice));\n dispatch(setReservePriceVisibility(false));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setCharityDonationVisibility(false));\n dispatch(setIsPureBinSelected(true));\n } else {\n dispatch(setOpeningBid(null));\n dispatch(setReservePrice(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(false));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setCharityDonationVisibility(hasCharityId));\n dispatch(setIsPureBinSelected(false));\n }\n\n dispatch({\n type: 'SET_RESERVE_PRICE_CAN_CHANGE_BUT_NOT_BE_REMOVED',\n payload: isChangeItem && hasReservePrice\n });\n};\n\nconst reset = () => dispatch => {\n dispatch({\n type: 'RESET_PRICES_AND_VAT'\n });\n};\n\nexport default {\n setOpeningBid,\n setFixedPrice,\n setReservePrice,\n setAuctionBinPrice,\n setAuctionBinPriceVisibility,\n setReservePriceVisibility,\n setCharityDonationVisibility,\n setEditCharity,\n setIsPureBinSelected,\n setFromDraft,\n setVat,\n reset\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useDidMountEffect } from '../hooks';\nimport PriceLabel from './price-label';\n\nconst AnimatedPriceLabel = props => {\n const { price } = props;\n const [showAnimation, setShowAnimation] = useState(false);\n useDidMountEffect(() => {\n setShowAnimation(true);\n const timer = setTimeout(() => {\n setShowAnimation(false);\n }, 500);\n return () => clearTimeout(timer);\n }, [price]);\n const priceLabelProps = {\n ...props,\n className: `${props.className}${\n showAnimation ? ' item-card-details-price-highlight' : ''\n }`\n };\n return ;\n};\nAnimatedPriceLabel.propTypes = {\n tagName: PropTypes.string,\n className: PropTypes.string,\n price: PropTypes.number,\n hasDiscount: PropTypes.bool\n};\nAnimatedPriceLabel.defaultProps = {\n tagName: 'span',\n className: ''\n};\n\nexport default AnimatedPriceLabel;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst LeadingBadge = ({ className }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_leading')}\n \n );\n};\n\nexport default LeadingBadge;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst OverbiddenBadge = ({ className }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_overbidden')}\n \n );\n};\nexport default OverbiddenBadge;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst ShippingBadge = ({ className, hasFreeShipping }) => {\n const { t } = useTranslator();\n if (hasFreeShipping) {\n return (\n \n {t('itemCard_freeShipping')}\n \n );\n } else {\n return null;\n }\n};\n\nexport default ShippingBadge;\n","import React from 'react';\n\nconst SellerAliasBadge = ({ className = '', sellerAlias }) => {\n if (sellerAlias) {\n return (\n \n {sellerAlias}\n \n );\n } else {\n return null;\n }\n};\n\nexport default SellerAliasBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ALink from 'tradera-components/alink/alink';\nimport MultiCurrency, {\n preferredCurrencyPropTypes\n} from '../multi-currency/multi-currency';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { ITEM_CARD_IMAGE_MODES } from './item-card-parts/item-card-image-modes';\nimport AnimatedPriceLabel from './item-card-parts/animated-price-label';\nimport EndTimeLabel from './item-card-parts/end-time-label';\nimport AttributeButtonsList from './item-card-parts/attribute-buttons-list';\nimport BidsLabel from './item-card-parts/bids-label';\nimport DiscountBadge from './item-card-parts/discount-badge';\nimport DiscountedPriceLabel from './item-card-parts/disacount-price-label';\nimport FixedPriceLabel from './item-card-parts/fixed-price-label';\nimport ItemCardImage from './item-card-parts/item-card-image';\nimport LeadingBadge from './item-card-parts/leading-badge';\nimport NewTodayLabel from './item-card-parts/new-today-label';\nimport OnDisplayBadge from './item-card-parts/on-display-badge';\nimport OverbiddenBadge from './item-card-parts/overbidden-badge';\nimport PriceLabel from './item-card-parts/price-label';\nimport QuickViewButton from './item-card-parts/quick-view-button';\nimport SettingsButton from './item-card-parts/settings-button';\nimport ShippingBadge from './item-card-parts/shipping-badge';\nimport WishListButton from './item-card-parts/wish-list-button';\nimport './item-card.scss';\nimport SellerAliasBadge from './item-card-parts/seller-alias-badge';\nimport { useSelector } from 'react-redux';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport ITEM_TYPES from 'tradera-constants/item-types';\nimport dayjs from 'dayjs';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\n\nconst ItemCard = ({\n animatePriceLabel,\n className,\n gaCategory,\n imageMode,\n item = {},\n lazy,\n onAddToWishlist,\n onQuickView,\n onRemoveFromWishlist,\n onAttributeButtonClick,\n onSettings,\n preferredCurrency,\n ready,\n showBidStatus,\n showShippingOrOnDisplay,\n showSellerAlias,\n isShopOwnedByCurrentMember = false\n}) => {\n let inSPA = true;\n const existsInWishList = useSelector(state =>\n state.items.wishListItemIds.includes(item.itemId)\n );\n const isSwedishVisitor = useSelector(selectIsSwedishVisitor);\n const { toLocalizedUrl } = useUrlLocalizer();\n\n ///////\n const showBids = [ITEM_TYPES.AUCTION, ITEM_TYPES.AUCTION_BIN].includes(\n item.itemType\n );\n const isShopItem = item.itemType === ITEM_TYPES.SHOP_ITEM;\n const hasDiscount = item.discountRate > 0;\n\n const isNewToday =\n !!item.startDate &&\n dayjs(item.startDate).isAfter(dayjs().subtract(1, 'day'));\n const itemUrl = toLocalizedUrl(item.itemUrl || '/');\n ///////\n\n const getMediumFitImageUrl = imageUrl =>\n imageUrl?.replace('/medium/', '/medium-fit/');\n\n const handleSettings = event => {\n event.preventDefault();\n onSettings(item);\n };\n\n const handleQuickview = event => {\n event.preventDefault();\n onQuickView(item.itemId);\n };\n\n const handleWishlist =\n onRemoveFromWishlist && onAddToWishlist\n ? event => {\n event.preventDefault();\n if (existsInWishList) {\n onRemoveFromWishlist(item.itemId);\n } else {\n onAddToWishlist(item.itemId);\n }\n }\n : null;\n\n const onNavigate = () => {\n if (gaCategory) {\n GtmService.trackAction(gaCategory, 'Navigation', item.itemId);\n }\n };\n\n return (\n \n
    \n \n
    \n {showSellerAlias && (\n \n )}\n
    \n
    \n {showShippingOrOnDisplay && isSwedishVisitor && (\n \n )}\n {showShippingOrOnDisplay && item.onDisplay && (\n \n )}\n {showBidStatus && item.isLeading && (\n \n )}\n {showBidStatus && item.isOverbidden && (\n \n )}\n
    \n \n
    \n {ready && (\n <>\n {handleWishlist && (\n \n )}\n {onQuickView && (\n \n )}\n {isShopOwnedByCurrentMember && (\n \n )}\n \n )}\n
    \n

    \n \n {hasDiscount && (\n \n )}\n {item.shortDescription}\n \n

    \n {!!item.attributes?.length && onAttributeButtonClick && (\n \n )}\n
    \n {hasDiscount && (\n \n )}\n {animatePriceLabel ? (\n \n ) : (\n \n )}\n {isShopItem ? (\n \n ) : (\n \n )}\n \n {MultiCurrency.isVisible(item.price, preferredCurrency) &&\n showBids && (\n |\n )}\n {showBids && (\n \n )}\n {isNewToday && (\n \n )}\n
    \n
    \n \n );\n};\n\nItemCard.defaultProps = {\n animatePriceLabel: false,\n className: '',\n gaCategory: null,\n imageMode: ITEM_CARD_IMAGE_MODES.SQUARE,\n onQuickView: null,\n showBidStatus: false,\n showShippingOrOnDisplay: true,\n showSellerAlias: false\n};\n\nItemCard.propTypes = {\n animatePriceLabel: PropTypes.bool,\n className: PropTypes.string,\n gaCategory: PropTypes.string,\n imageMode: PropTypes.oneOf(Object.values(ITEM_CARD_IMAGE_MODES)),\n item: PropTypes.shape({\n attributes: PropTypes.array,\n buyNowPrice: PropTypes.number,\n discountRate: PropTypes.number,\n displayHighlighted: PropTypes.bool,\n endDate: PropTypes.string,\n hasFreeShipping: PropTypes.bool,\n imageHeight: PropTypes.number,\n imageUrl: PropTypes.string,\n imageSecondaryUrl: PropTypes.string,\n imageWidth: PropTypes.number,\n isActive: PropTypes.bool,\n itemId: PropTypes.number,\n itemType: PropTypes.string,\n itemUrl: PropTypes.string,\n onDisplay: PropTypes.bool,\n price: PropTypes.number,\n priceBeforeDiscount: PropTypes.number,\n reservePriceReached: PropTypes.bool,\n sellerAlias: PropTypes.string,\n sellerDsrAverage: PropTypes.number,\n sellerMemberId: PropTypes.number,\n shippingOptions: PropTypes.array,\n shortDescription: PropTypes.string,\n startDate: PropTypes.string,\n totalBids: PropTypes.number,\n\n /* Currently only used in Wish list */\n isOverbidden: PropTypes.bool,\n isLeading: PropTypes.bool,\n isWinner: PropTypes.bool\n }),\n lazy: PropTypes.shape({\n offset: PropTypes.number,\n once: PropTypes.bool,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n placeholder: PropTypes.node,\n imagePlaceholder: PropTypes.node\n }),\n onAddToWishlist: PropTypes.func,\n onRemoveFromWishlist: PropTypes.func,\n onQuickView: PropTypes.func,\n onSettings: PropTypes.func,\n preferredCurrency: preferredCurrencyPropTypes,\n ready: PropTypes.bool,\n showBidStatus: PropTypes.bool,\n showShippingOrOnDisplay: PropTypes.bool,\n isShopOwnedByCurrentMember: PropTypes.bool\n};\n\nexport default ItemCard;\n","import {\n useBreakpoint,\n isMobile\n} from 'tradera-components/breakpoint/breakpoint';\n\nconst useIsMobile = () => isMobile(useBreakpoint());\n\nexport default useIsMobile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport { selectPreferredLanguage } from 'tradera-state/language/selectors';\n\nimport { LanguageSelect } from 'static/script/components/localization/language-select';\nimport TranslateIcon from '@tradera/blueprint/theme/icons2/translate.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { mapLanguageCodeToLanguageKey } from 'tradera-utils/map-language-code-to-language-key';\n\nexport const PlainLocalizationMenuItem = ({ onToggle, preferredLanguage }) => {\n const { t } = useTranslator();\n\n return (\n }\n onOpen={onToggle}\n onClose={onToggle}>\n \n \n );\n};\n\nPlainLocalizationMenuItem.propTypes = {\n onToggle: PropTypes.func.isRequired,\n preferredLanguage: PropTypes.object\n};\n\nconst mapStateToProps = state => ({\n preferredLanguage: selectPreferredLanguage(state)\n});\n\nexport const LocalizationMenuItem = connect(mapStateToProps)(\n PlainLocalizationMenuItem\n);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport { CurrencySelect } from 'static/script/components/localization/currency-select';\nimport CurrencyIcon from '@tradera/blueprint/theme/icons2/currency.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport {\n selectShowCurrencySelection,\n selectPreferredCurrency\n} from 'tradera-state/multi-currency';\n\nexport const PlainCurrencyMenuItem = ({\n onToggle,\n showCurrencySelection,\n preferredCurrency\n}) => {\n const { t } = useTranslator();\n\n return showCurrencySelection ? (\n }\n onOpen={onToggle}\n onClose={onToggle}>\n {}} inProfileMenu={true} />\n \n ) : null;\n};\n\nconst mapStateToProps = state => ({\n showCurrencySelection: selectShowCurrencySelection(state),\n preferredCurrency: selectPreferredCurrency(state)\n});\n\nexport const CurrencyMenuItem = connect(mapStateToProps)(PlainCurrencyMenuItem);\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport SwishIcon from '@tradera/blueprint/theme/icons/swish.svg?jsx';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst trackPaymentOnboarding = (action, label) => {\n GtmService.trackAction('Tradera Payment Onboarding', action, label);\n};\n\nconst InvoiceUnpaidAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n {t('siteheader_invoiceUnpaidDescription')}\n
    \n );\n};\n\nconst InvoiceOverdueAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n \n \n {t('siteheader_invoiceOverdueTitle')}\n
    \n {t('siteheader_invoiceOverdueDescription')}\n
    \n
    \n );\n};\n\nconst BankAccountMissingAlert = () => {\n const { t } = useTranslator();\n trackPaymentOnboarding(\n 'Bank account Onboarding Alert',\n 'Will add from - Account menu alert'\n );\n return (\n
    \n \n \n {t('siteheader_bankAccountMissingTitle')}\n
    \n {t('siteheader_bankAccountMissingDescription')}\n
    \n
    \n );\n};\n\nconst PayoutFailedAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n \n \n {t('siteheader_payoutFailedTitle')}\n
    \n {t('siteheader_payoutFailedDescription')}\n
    \n
    \n );\n};\n\nconst PayoutReadyBankAccountMissingAlert = () => {\n const { t } = useTranslator();\n trackPaymentOnboarding(\n 'Bank account Onboarding Alert',\n 'Will add from - Account menu alert - Failed payment'\n );\n return (\n
    \n
    \n \n \n \n {t('siteheader_paymentReadBankAccountMissingTitle')}\n \n
    \n {t('siteheader_paymentReadBankAccountMissingDescription')}\n
    \n
    \n
    \n );\n};\n\nconst SwishMissingAlert = ({ dismissSwish, enableSwishUrl }) => {\n const { t } = useTranslator();\n trackPaymentOnboarding(\n 'Swish Onboarding Alert',\n 'Show on - Account menu alert'\n );\n return (\n
    \n
    \n \n \n {t('siteheader_swishMissingTitle')}\n
    \n {t('siteheader_swishMissingDescription')}\n
    \n
    \n {\n e.preventDefault();\n location.href = enableSwishUrl;\n trackPaymentOnboarding(\n 'Swish Onboarding Alert',\n 'Will add from - Account menu alert'\n );\n }}>\n \n {t('siteheader_addSwish')}\n \n {\n e.preventDefault();\n dismissSwish();\n trackPaymentOnboarding(\n 'Swish Onboarding Alert',\n 'Dismissed from - Account menu alert'\n );\n }}>\n {t('siteheader_swishNoThanks')}\n
    \n \n );\n};\n\nconst HyperwalletPayeeVerificationAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n
    \n \n \n \n {t('siteheader_hyperwalletPayeeVerificationTitle')}\n \n
    \n {t('siteheader_hyperwalletPayeeVerificationDescription')}\n
    \n
    \n {\n e.preventDefault();\n location.href = '/my/PayeeVerification';\n }}>\n {t('siteheader_hyperwalletPayeeVerificationMoreInfo')}\n \n
    \n );\n};\n\nconst HyperwalletPayeeVerificationReviewAlert = () => {\n const { t } = useTranslator();\n return (\n {\n e.preventDefault();\n location.href = '/my/PayeeVerificationCompleted';\n }}>\n \n \n \n {t('siteheader_hyperwalletPayeeVerificationReviewTitle')}\n \n
    \n {t('siteheader_hyperwalletPayeeVerificationReviewDescription')}\n
    \n \n );\n};\n\nconst OnboardToTraderaPayAlert = () => {\n const { t } = useTranslator();\n return (\n {\n e.preventDefault();\n location.href = '/my/Payments';\n }}>\n
    \n \n \n {t('siteheader_onboardToTraderaPayTitle')}\n
    \n {t('siteheader_onboardToTraderaPayDescription')}\n
    \n
    \n {\n e.preventDefault();\n location.href = '/my/Payments';\n }}>\n {t('siteheader_onboardToTraderaPayMoreInfo')}\n \n \n );\n};\n\nexport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n OnboardToTraderaPayAlert\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport RatingStars from 'tradera-components/rating-stars/rating-stars';\nimport ALink from 'tradera-components/alink/alink';\nimport './profile-card.scss';\n\nconst getGaLinkAttributes = label => ({\n 'data-ga-category': 'Top navigation',\n 'data-ga-action': 'Account menu',\n 'data-ga-label': `Link - ${label}`\n});\n\nconst getGaButtonAttributes = label => ({\n 'data-ga-category': 'Top navigation',\n 'data-ga-action': 'Account menu',\n 'data-ga-label': `Button - ${label}`\n});\n\nconst ProfileCard = ({\n closeProfileMenu,\n memberAlias,\n memberId,\n rating,\n imageUrl,\n cleanedMemberAlias\n}) => {\n const [imageAvailable, setImageAvailable] = useState(true);\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
    \n {imageUrl && imageAvailable && (\n {\n setImageAvailable(false);\n }}\n />\n )}\n
    \n \n {imageUrl\n ? t('siteHeader_changeCoverImage')\n : t('siteHeader_addCoverImage')}\n \n \n {memberAlias}\n \n {rating && (\n
    \n \n
    \n )}\n
    \n );\n};\n\nProfileCard.propTypes = {\n memberAlias: PropTypes.string,\n memberId: PropTypes.number,\n rating: PropTypes.number,\n imageUrl: PropTypes.string\n};\n\nexport default ProfileCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MediaQuery from 'react-responsive';\nimport { useDispatch } from 'react-redux';\n\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getMenuGaAttributes } from 'tradera-components/site-header/site-header.analytics';\n\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport { SURVEYS } from 'tradera-constants/surveys';\nimport uiActions from 'tradera-state/ui/actions';\nimport MenuItemSeparator from 'tradera-components/site-header/dropdown-menu-item-separator';\nimport MenuItem from 'tradera-components/site-header/dropdown-menu-item';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport { LocalizationMenuItem } from './expandable-localization-menu-item.jsx';\nimport { CurrencyMenuItem } from './expandable-currency-menu-item.jsx';\nimport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n OnboardToTraderaPayAlert\n} from './profile-menu-alerts';\nimport ProfileCard from '../profile/profile-card';\nimport AuctionIcon from '@tradera/blueprint/theme/icons2/auction.svg?jsx';\nimport AuctionLostIcon from '@tradera/blueprint/theme/icons2/bid-lost.svg?jsx';\nimport BookmarkIcon from '@tradera/blueprint/theme/icons2/bookmark.svg?jsx';\nimport BuyIcon from '@tradera/blueprint/theme/icons2/buy.svg?jsx';\nimport ChatIcon from '@tradera/blueprint/theme/icons2/chat.svg?jsx';\nimport DateIcon from '@tradera/blueprint/theme/icons2/date.svg?jsx';\nimport DocumentIcon from '@tradera/blueprint/theme/icons2/document.svg?jsx';\nimport HeartIcon from '@tradera/blueprint/theme/icons2/heart.svg?jsx';\nimport HomeIcon from '@tradera/blueprint/theme/icons2/home.svg?jsx';\nimport ListIcon from '@tradera/blueprint/theme/icons2/list.svg?jsx';\nimport LogoutIcon from '@tradera/blueprint/theme/icons2/logout.svg?jsx';\nimport PackageIcon from '@tradera/blueprint/theme/icons2/package.svg?jsx';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\nimport SaleIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport SettingsIcon from '@tradera/blueprint/theme/icons2/settings.svg?jsx';\nimport SoldIcon from '@tradera/blueprint/theme/icons2/sold.svg?jsx';\nimport StarIcon from '@tradera/blueprint/theme/icons2/star.svg?jsx';\nimport UnsoldIcon from '@tradera/blueprint/theme/icons2/unsold.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user.svg?jsx';\nimport WalletIcon from '@tradera/blueprint/theme/icons2/wallet.svg?jsx';\nimport WinningIcon from '@tradera/blueprint/theme/icons2/winning.svg?jsx';\nimport WriteIcon from '@tradera/blueprint/theme/icons2/write.svg?jsx';\nimport { useMenuHeightFix } from 'tradera-hooks/use-menu-height-fix';\nimport initData from 'init-data';\nimport { localStore } from 'utils/storage';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\n\nconst mediaBelowLarge = { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].max };\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Account menu', label);\n\nconst trackOnClick = label => {\n GtmService.trackAction('Top navigation', 'Account menu', `Link - ${label}`);\n};\n\nconst trackExpandItemClick = label => {\n GtmService.trackAction('Top navigation', 'Account menu', label);\n};\n\nconst ProfileMenuContent = ({\n cleanedMemberAlias,\n dismissSwish,\n logOut,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberHeroImage = {},\n memberId,\n showMessagingLink,\n showPayments1Menu,\n showPayments2Menu,\n systemMessages,\n threadsUnread\n}) => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n const { toLocalizedUrl } = useUrlLocalizer();\n const isTraderaShopEnabled = useIsFeatureEnabled('tradera-shop');\n const menuContentRef = useMenuHeightFix();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n const isSellerListEnabled = useIsFeatureEnabled('my-tradera-seller-list');\n\n const closeProfileMenu = () => dispatch(uiActions.closeProfileMenu());\n\n return (\n <>\n
    \n \n
    \n
      \n }\n border\n gaAttributes={getGaAttributes('My Tradera Overview')}\n />\n {showMessagingLink && (\n <>\n }\n border\n notify={threadsUnread}\n follow={false}\n gaAttributes={getGaAttributes('Messages')}\n />\n \n )}\n \n }\n border\n gaAttributes={getGaAttributes(\n 'Create new listing - from top'\n )}\n />\n \n }\n border>\n }\n border\n gaAttributes={getGaAttributes('Wishlist')}\n />\n }\n border\n gaAttributes={getGaAttributes('Saved searches')}\n />\n\n {isSellerListEnabled ? (\n }\n gaAttributes={getGaAttributes('Seller list')}\n />\n ) : (\n }\n gaAttributes={getGaAttributes(\n 'Favorite seller'\n )}\n />\n )}\n \n }\n border>\n }\n border\n gaAttributes={getGaAttributes('Ongoing auctions')}\n />\n }\n border\n gaAttributes={getGaAttributes('Won / Bought')}\n />\n }\n border\n gaAttributes={getGaAttributes('Lost')}\n />\n }\n gaAttributes={getGaAttributes('Rate seller')}\n />\n \n }\n border>\n }\n border\n gaAttributes={getGaAttributes('Active listings')}\n />\n }\n border\n gaAttributes={getGaAttributes('Sold listings')}\n />\n }\n border\n gaAttributes={getGaAttributes('Unsold listings')}\n />\n }\n border\n gaAttributes={getGaAttributes('Picklist')}\n />\n }\n border\n gaAttributes={getGaAttributes('Create new listing')}\n />\n }\n border\n gaAttributes={getGaAttributes('Listing templates')}\n />\n }\n border\n gaAttributes={getGaAttributes('Rate buyer')}\n />\n {isTraderaShopEnabled && (\n }\n gaAttributes={getGaAttributes(\n 'Buy shipping bags'\n )}\n />\n )}\n \n \n \n }\n inSPA={true}\n onClick={closeProfileMenu}\n border\n gaAttributes={getGaAttributes('My profile')}\n />\n }\n inSPA={true}\n onClick={closeProfileMenu}\n border\n gaAttributes={getGaAttributes('Ratings')}\n />\n }\n border\n gaAttributes={getGaAttributes('Notifications')}\n />\n \n }\n notificationDot={systemMessages.InvoiceUnpaid && 'warning'}\n alerts={[\n systemMessages.InvoiceUnpaid && (\n \n ),\n systemMessages.InvoiceOverdue && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Invoices')}\n />\n {showPayments1Menu && (\n }\n alerts={[\n systemMessages.OnboardToTraderaPay && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Payouts')}\n />\n )}\n {showPayments2Menu && (\n \n {t('siteheader_payments')}\n {initData.hasWallet &&\n !localStore.getItem(\n STORAGE_KEYS.BATCH_PAYOUTS_ALERT_DISMISSED\n ) && (\n \n {t('siteHeader_updated')}\n \n )}\n \n }\n link={\n initData.hasWallet\n ? toLocalizedUrl('/my/payouts')\n : toLocalizedUrl('/my/Payments2')\n }\n className=\"site-dropdown__item-with-icon\"\n icon={}\n alerts={[\n systemMessages.BankAccountMissing && (\n \n ),\n systemMessages.PayoutReadyBankAccountMissing && (\n \n ),\n systemMessages.PayoutFailed && (\n \n ),\n systemMessages.SwishNumberMissing && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationRequired && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationUnderReview && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Payouts')}\n />\n )}\n }\n border\n gaAttributes={getGaAttributes('Settings')}\n />\n \n \n \n {isQualtiveEnabled && (\n }\n onClick={() => {\n openQualtiveModal(SURVEYS.general, t);\n trackOnClick('Leave feedback Qualtive');\n }}\n />\n )}\n }\n border\n gaAttributes={getGaAttributes('Customer service')}\n />\n \n }\n gaAttributes={getGaAttributes('Logout')}\n />\n {/* NOTE: Fix for iPhone menu making bottom element unclickable */}\n \n
    \n \n );\n};\n\nProfileMenuContent.propTypes = {\n cleanedMemberAlias: PropTypes.string,\n dismissSwish: PropTypes.func,\n logOut: PropTypes.func,\n memberAlias: PropTypes.string,\n memberDetailedSellerRatingAverage: PropTypes.number,\n memberHeroImage: PropTypes.object,\n memberId: PropTypes.number,\n showMessagingLink: PropTypes.bool,\n showPayments1Menu: PropTypes.bool,\n showPayments2Menu: PropTypes.bool,\n systemMessages: PropTypes.object,\n threadsUnread: PropTypes.number\n};\nProfileMenuContent.defaultProps = {\n systemMessages: {}\n};\n\nexport default ProfileMenuContent;\n","import React from 'react';\nimport MenuItemSeparator from 'tradera-components/site-header/dropdown-menu-item-separator';\nimport MenuItem from 'tradera-components/site-header/dropdown-menu-item';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getMenuGaAttributes } from 'tradera-components/site-header/site-header.analytics';\nimport STRINGS from 'static/script/constants/strings';\nimport { getReturnUrl } from 'tradera-utils/login';\nimport logger from 'logger';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport { SURVEYS } from 'tradera-constants/surveys';\nimport { getInitData } from 'packages/init-data';\n\nimport ChatIcon from '@tradera/blueprint/theme/icons2/chat.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { useMenuHeightFix } from 'tradera-hooks/use-menu-height-fix';\n\nconst onIframeLoad = (e, closeMenu) => {\n const iframe = e.target;\n if (iframe) {\n const iframeDocument =\n iframe.contentDocument || iframe.contentWindow.document;\n if (iframeDocument) {\n iframeDocument.body.addEventListener('keydown', e => {\n if (e.keyCode === 27) {\n closeMenu();\n }\n });\n }\n }\n};\n\nconst handleBotClick = () => {\n const botWidget = document.querySelector('.humany-trigger');\n if (botWidget) {\n botWidget.click();\n }\n};\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Login menu', label);\n\nconst trackOnClick = label => {\n GtmService.trackAction('Top navigation', 'Login menu', `Link - ${label}`);\n};\n\nconst SignInMenuContent = ({ closeMenu, redirectUrl }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const initData = getInitData();\n const menuContentRef = useMenuHeightFix();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n return (\n <>\n onIframeLoad(e, closeMenu)}>\n

    {STRINGS.IFRAME_NOT_SUPPORTED}

    \n \n }\n border={false}>\n }\n gaAttributes={getGaAttributes('Forgot')}\n />\n }\n gaAttributes={getGaAttributes('Help pages')}\n />\n }\n gaAttributes={getGaAttributes('Customer service')}\n />\n\n }\n onClick={async () => {\n try {\n const { default: AddHumanyBot } = await import(\n /* webpackChunkName: \"humany-bot\" */ 'static/script/components/humany/humany-bot'\n );\n AddHumanyBot(initData);\n handleBotClick();\n } catch (e) {\n logger(e);\n }\n\n trackOnClick('Chat with JUNO');\n }}\n />\n {isQualtiveEnabled && (\n }\n onClick={() => {\n openQualtiveModal(SURVEYS.general);\n trackOnClick('Leave feedback Qualtive');\n }}\n />\n )}\n {/* NOTE: Fix for iPhone menu making bottom element unclickable */}\n \n \n \n );\n};\n\nexport default SignInMenuContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport {\n Breakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport {\n EnterFrom,\n EnterFade\n} from 'tradera-components/transitions/transitions';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport Overlay from 'components/modals/overlay';\nimport ProfileMenuContent from './profile-menu-content';\nimport SignInMenuContent from './sign-in-menu-content';\n\nimport 'tradera-components/site-header/dropdown-menu.scss';\nimport './profile-menu.scss';\n\nconst ProfileMenu = props => {\n const {\n className,\n dismissSwish,\n expanded,\n handleExpand,\n logOut,\n member,\n redirectUrl,\n showMessagingLink,\n systemMessages,\n threadsUnread,\n transparentHeader\n } = props;\n\n const {\n cleanedMemberAlias,\n isLoggedIn,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberHeroImage,\n memberId\n } = member;\n\n const showPayments1Menu =\n member.paymentSettings && member.paymentSettings.showPayments1Menu;\n\n const showPayments2Menu =\n member.paymentSettings && member.paymentSettings.showPayments2Menu;\n\n const renderChild = () => (\n \n
    \n {isLoggedIn ? (\n \n ) : (\n \n )}\n
    \n
    \n );\n\n return (\n \n \n \n );\n};\n\nProfileMenu.defaultProps = {\n expanded: false\n};\n\nProfileMenu.propTypes = {\n className: PropTypes.string,\n dismissSwish: PropTypes.func.isRequired,\n expanded: PropTypes.bool,\n logOut: PropTypes.func.isRequired,\n member: PropTypes.shape({\n cleanedMemberAlias: PropTypes.string,\n isLoggedIn: PropTypes.bool.isRequired,\n memberAlias: PropTypes.string,\n memberDetailedSellerRatingAverage: PropTypes.number,\n memberHeroImage: PropTypes.object,\n memberId: PropTypes.number\n }),\n showMessagingLink: PropTypes.bool,\n systemMessages: PropTypes.object,\n threadsUnread: PropTypes.number\n};\n\nexport default ProfileMenu;\n","import React from 'react';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user-fill.svg?jsx';\n\nconst Profile = ({ isLoggedIn, facebookId }) =>\n isLoggedIn && facebookId ? (\n \n ) : (\n <>\n \n \n );\n\nexport default Profile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport MessageIcon from '@tradera/blueprint/theme/icons2/message.svg?jsx';\nimport Profile from 'tradera-components/site-header/profile';\n\nconst ProfileLink = ({\n facebookId,\n handleProfileClick,\n isLoggedIn,\n memberAlias,\n menuExpanded,\n systemMessageCount,\n threadsUnread,\n transparentHeader\n}) => {\n const { t } = useTranslator();\n const logInText = t('siteHeader_logIn');\n const tooltip = isLoggedIn ? t('siteHeader_myTradera') : logInText;\n const text = isLoggedIn ? memberAlias : logInText;\n\n let badgeType = 'primary';\n if (systemMessageCount > 0) {\n badgeType = 'danger';\n }\n const multipleBadges = threadsUnread > 0 && systemMessageCount > 0;\n\n return (\n \n \n \n {(threadsUnread > 0 || systemMessageCount > 0) && (\n \n {threadsUnread > 0 && (\n \n \n {threadsUnread < 100 ? threadsUnread : '99+'}\n \n )}\n {systemMessageCount > 0 && (\n 0\n ? 'border-left border-white system-count--messaging'\n : 'system-count'\n }`}>\n {systemMessageCount}\n \n )}\n \n )}\n \n {text}\n \n {isLoggedIn && (\n \n )}\n \n \n );\n};\n\nProfileLink.propTypes = {\n facebookId: PropTypes.string,\n handleProfileClick: PropTypes.func,\n isLoggedIn: PropTypes.bool,\n menuExpanded: PropTypes.bool,\n memberAlias: PropTypes.string,\n systemMessageCount: PropTypes.number,\n threadsUnread: PropTypes.number\n};\n\nexport default ProfileLink;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport uiActions from 'tradera-state/ui/actions';\nimport ProfileMenu from '../profile-menu/profile-menu';\nimport ProfileLink from './profile-link';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\n\nconst ProfileMenuLink = props => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const handleLoginClick = (redirectUrl = false) =>\n props.signIn(toLocalizedUrl(redirectUrl));\n\n // Prevent Default and show login, if not logged in\n const preventNavigationAndShowLogin = (event, redirect) => {\n const {\n member: { isLoggedIn }\n } = props;\n if (!isLoggedIn) {\n event.preventDefault();\n handleLoginClick(redirect);\n }\n };\n\n const handleProfileClick = evt => {\n const {\n member: { isLoggedIn },\n pageName,\n profileMenu,\n openProfileMenu,\n closeProfileMenu,\n closeCategoryDropdownMenu\n } = props;\n\n if (profileMenu.open === 'open') {\n closeProfileMenu();\n } else {\n closeCategoryDropdownMenu();\n\n // not logged in\n if (!isLoggedIn) {\n preventNavigationAndShowLogin(evt, false);\n return;\n } else {\n openProfileMenu();\n }\n }\n\n if (pageName.includes('MyTradera')) {\n window.scrollTo(0, 0);\n }\n };\n\n const {\n dismissSwish,\n featureSwitches,\n logOut,\n messagingThreads,\n member,\n profileMenu,\n systemMessages,\n systemMessageCount,\n transparentHeader\n } = props;\n\n const { open: profileMenuOpen = false } = profileMenu;\n\n const showMessagingLink = featureSwitches['messaging'];\n\n const { threadsUnread } = messagingThreads;\n\n const { redirectUrl } = profileMenu;\n\n return (\n <>\n \n \n \n );\n};\n\nconst mapStateToProps = state => ({\n featureSwitches: state.environment.featureSwitches,\n member: state.member,\n messagingThreads: state.ui.badges.messaging,\n pageName: state.page.type,\n profileMenu: state.ui.profileMenu,\n showHeaderSearch: state.ui.showHeaderSearch,\n systemMessages: state.ui.systemMessages,\n systemMessageCount: state.ui.badges.system\n});\n\nconst mapDispatchToProps = dispatch => {\n return {\n closeCategoryDropdownMenu: () =>\n dispatch(uiActions.closeCategoryDropdownMenu()),\n closeProfileMenu: () => dispatch(uiActions.closeProfileMenu()),\n dismissSwish: () => dispatch(uiActions.dismissSwish()),\n logOut: () => dispatch(uiActions.logOut()),\n openProfileMenu: () => dispatch(uiActions.openProfileMenu()),\n signIn: redirectUrl => dispatch(uiActions.signIn({ redirectUrl }))\n };\n};\n\nProfileMenuLink.propTypes = {\n dismissSwish: PropTypes.func,\n featureSwitches: PropTypes.object,\n member: PropTypes.object,\n messagingThreads: PropTypes.object,\n pageName: PropTypes.string,\n systemMessages: PropTypes.object,\n systemMessageCount: PropTypes.number\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProfileMenuLink);\n","import {\n useBreakpoint,\n isDesktop\n} from 'tradera-components/breakpoint/breakpoint';\n\nconst useIsDesktop = () => isDesktop(useBreakpoint());\n\nexport default useIsDesktop;\n","let startTime = 0;\n\nconst startSession = () => {\n startTime = new Date().getTime();\n};\n\nconst getElapsedMillis = () => {\n return new Date().getTime() - startTime;\n};\n\nexport default {\n startSession,\n getElapsedMillis\n};\n","import scribe from './scribe';\nimport sessionService from './session-service';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { defaultClient as httpClient } from 'tradera-utils/http';\n\nfunction trackItemPublished(draft) {\n var isFromTemplate = isDraftFromTemplate(draft);\n scribe.sendSessionDuration(\n sessionService.getElapsedMillis(),\n isFromTemplate\n );\n}\n\nfunction prepareForPublish(draft) {\n draft.shippingOptions = draft.shippingOptions.filter(item => !!item.type);\n draft.descriptionLanguageCodeIso2 =\n draft.descriptionLanguageCodeIso2 || 'sv';\n draft.currency = draft.currency || 'SEK';\n}\n\nfunction isNullOrUndefined(val) {\n return val === null || val === undefined;\n}\n\nfunction isDraftFromTemplate(draft) {\n return draft && !isNullOrUndefined(draft.templateId);\n}\n\nconst publish = async (draft, hasTraderaPayConsent) => {\n prepareForPublish(draft);\n const response = await httpClient.post(ENDPOINTS.SELLING_ITEM_PUBLISH, {\n draft: draft,\n hasTraderaPayConsent: hasTraderaPayConsent\n });\n trackItemPublished(draft);\n if (response.data.errorCode) {\n throw response.data;\n }\n\n return response.data;\n};\n\nexport default {\n publish\n};\n","import imageActions from '../image-actions';\n\nconst handleInvalidImages = (errors, dispatch, translator) => {\n const displayTexts = [];\n let invalidImageCount = 0;\n errors.forEach(error => {\n let invalidImageIds = error.message.split(',');\n invalidImageIds.forEach(id => {\n dispatch(imageActions.removeImageWithId(id));\n invalidImageCount++;\n });\n });\n if (invalidImageCount > 0) {\n displayTexts.push(\n translator('syi_publish_error_invalid_image', {\n count: invalidImageCount\n })\n );\n }\n return displayTexts;\n};\n\nconst translateErrorCode = (error, translator) => {\n switch (error.errorCode) {\n case 'AlreadyPublished':\n return translator('syi_publish_error_alreadypublished');\n case 'BuyItNowPriceNotLargerThanOpeningPrice':\n return translator(\n 'syi_publish_error_buyitnowpricenotlargerthanopeningprice'\n );\n case 'BuyItNowPriceNotLargerThanReservePrice':\n return translator(\n 'syi_publish_error_buyitnowpricenotlargerthanreserveprice'\n );\n case 'BuyItNowPriceTooLarge':\n return translator('syi_publish_error_buyitnowpricetoolarge');\n case 'BuyItNowPriceUnset':\n return translator('syi_publish_error_buyitnowpriceunset');\n case 'CampaignCodeInvalid':\n return translator('syi_publish_error_campaigncodeinvalid');\n case 'CategoryContainsTooManyItems':\n return translator('syi_publish_error_categorycontainstoomanyitems');\n case 'CategoryDoesNotSupportBin':\n return translator('syi_publish_error_categorydoesnotsupportbin');\n case 'CategoryDoesNotSupportUsedItems':\n return translator(\n 'syi_publish_error_categorydoesnotsupportuseditems'\n );\n case 'CategoryIdUnknown':\n return translator('syi_publish_error_categoryidunknown');\n case 'CustomEndDateTooLate':\n return translator('syi_publish_error_customenddatetoolate');\n case 'CustomEndDateTooSoon':\n return translator('syi_publish_error_customenddatetoosoon');\n case 'DisplayHighlightedCannotBeRemoved':\n return translator(\n 'syi_publish_error_displayhighlightedcannotberemoved'\n );\n case 'DisplayPromotedCannotBeRemoved':\n return translator(\n 'syi_publish_error_displaypromotedcannotberemoved'\n );\n case 'DurationNotAllowed':\n return translator('syi_publish_error_durationnotallowed');\n case 'ImagesTooFew':\n return translator('syi_publish_error_imagestoofew');\n case 'ImagesTooMany':\n return translator('syi_publish_error_imagestoomany');\n case 'ItemHasBidsAndCannotBeChanged':\n return translator(\n 'syi_publish_error_itemhasbidsandcannotbechanged'\n );\n case 'LongDescriptionCannotBeEmpty':\n return translator('syi_publish_error_longdescriptioncannotbeempty');\n case 'LongDescriptionTooLong':\n return translator('syi_publish_error_longdescriptiontoolong');\n case 'MemberIsActiveInternationalBuyer':\n return translator(\n 'syi_publish_error_memberisactiveinternationalbuyer'\n );\n case 'MemberIsSuspended':\n return translator('syi_publish_error_memberissuspended');\n case 'MemberNotAllowedToListImmeditateEndingItems':\n return translator(\n 'syi_publish_error_membernotallowedtolistimmeditateendingitems'\n );\n case 'OpeningPriceBelowOne':\n return translator('syi_publish_error_openingpricebelowone');\n case 'OpeningPriceTooLarge':\n return translator('syi_publish_error_openingpricetoolarge');\n case 'OwnReferenceTooLong':\n return translator('syi_publish_error_ownreferencetoolong');\n case 'PriceBelowOne':\n return translator('syi_publish_error_pricebelowone');\n case 'PriceBelowZero':\n return translator('syi_publish_error_pricebelowzero');\n case 'ReservePriceNotLargerThanOpeningPrice':\n return translator(\n 'syi_publish_error_reservepricenotlargerthanopeningprice'\n );\n case 'ReservePriceTooLarge':\n return translator('syi_publish_error_reservepricetoolarge');\n case 'ShippingCostBelowZero':\n return translator('syi_publish_error_shippingcostbelowzero');\n case 'ShippingOptionsCannotBeEmpty':\n return translator('syi_publish_error_shippingoptionscannotbeempty');\n case 'ShippingOptionsCountTooLarge':\n return translator('syi_publish_error_shippingoptionscounttoolarge');\n case 'ShippingOptionsMoreThanOneWithTakeawayOnly':\n return translator(\n 'syi_publish_error_shippingoptionsmorethanonewithtakeawayonly'\n );\n case 'ShortDescriptionCannotBeEmpty':\n return translator(\n 'syi_publish_error_shortdescriptioncannotbeempty'\n );\n case 'ShortDescriptionTooLong':\n return translator('syi_publish_error_shortdescriptiontoolong');\n case 'UnknownError':\n return translator('syi_publish_error_unknownerror');\n }\n\n return error.message;\n};\n\nexport const handleServerValidationError = (errors, dispatch, translator) => {\n const invalidImageErrorCodes = ['DeletedImage', 'MissingImage'];\n const imageErrorFilter = error =>\n invalidImageErrorCodes.includes(error.errorCode);\n const nonImageErrorFilter = error =>\n !invalidImageErrorCodes.includes(error.errorCode);\n\n const imageErrors = errors.filter(imageErrorFilter);\n const nonImageErrors = errors.filter(nonImageErrorFilter);\n\n const imageErrorDisplayTexts = handleInvalidImages(\n imageErrors,\n dispatch,\n translator\n );\n const nonImageErrorDisplayTexts = nonImageErrors.map(error =>\n translateErrorCode(error, translator)\n );\n\n const errorDisplayTexts = imageErrorDisplayTexts.concat(\n nonImageErrorDisplayTexts\n );\n const errorDisplayText = errorDisplayTexts.join(' ').trim();\n dispatch({\n type: 'SET_PUBLISH_FAILED',\n reasonDisplayText: errorDisplayText ? errorDisplayText : null\n });\n};\n","/* eslint-disable promise/always-return */\nimport 'jquery';\nimport publishService from 'tradera-apps/syi/script/app_react/services/publish-service';\nimport navigationService from 'tradera-apps/syi/script/app_react/services/navigation-service';\nimport draftService from 'tradera-apps/syi/script/app_react/services/draft-service';\nimport categoryActions from './category-actions';\nimport syiActions from './syi-actions';\nimport paymentActions from './payment-actions';\nimport imageActions from './image-actions';\nimport priceActions from './price-actions';\nimport { shortDescriptionActions } from './short-description-actions';\nimport { setDescriptionLanguageCodeIso2 } from 'tradera-state/views/syi/reducers/short-description';\nimport longDescriptionActions from './long-description-actions';\nimport shippingActions from './shipping-actions';\nimport campaignCodeActions from './campaign-code-actions';\nimport {\n resetCharityAndShippingInfo,\n setCharityAndFetchInfo,\n setCharityFromDraftAndFetchInfo\n} from 'tradera-state/views/syi/actions/charity-actions';\nimport feesActions from './fees-actions';\nimport {\n setAttributesFromDraft,\n resetImageAttributesSuggestions\n} from './attributes-actions';\nimport scribe from 'tradera-apps/syi/script/app_react/services/scribe';\nimport sessionService from 'tradera-apps/syi/script/app_react/services/session-service';\nimport googleTagManager from 'tradera-apps/syi/script/app_react/services/google-tagmanager';\nimport {\n setAllowedBuyerRegion,\n setAvailableAllowedBuyerRegions\n} from '../reducers/buyer-region';\nimport { handleServerValidationError } from './helpers/server-validation-error-helper';\nimport { globalStore } from 'tradera-state/configure-store';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport { selectSuggestedAttributes } from 'tradera-state/views/syi/selectors/attribute-selectors';\nimport initData from 'init-data';\n\nconst store = globalStore();\n\nfunction ensureDraftReason(draft) {\n if (!draft.draftReason) {\n draft.draftReason = 'NewItem';\n }\n}\n\nconst setDraft = (draft, params = {}) => (dispatch, getState) => {\n dispatch(syiActions.disableAutoSave());\n ensureDraftReason(draft);\n sessionService.startSession(draft.draftReason);\n\n let isNewDraft =\n getSyiSlice(getState()).draft.draftId != draft.draftId ||\n getSyiSlice(getState()).draft.draftReason != draft.draftReason;\n let isChangeItem = draft.draftReason === 'ChangeItem';\n\n // Do first for actions that depends on this info.\n dispatch(syiActions.setIsEditOfPublishedItem(isChangeItem));\n syiActions.hideAllErrors();\n dispatch(categoryActions.reset());\n\n dispatch({\n type: 'SET_DRAFT_PROPERTIES',\n draft: draft\n });\n\n dispatch(\n setAllowedBuyerRegion({\n allowedBuyerRegion: draft.allowedBuyerRegion\n })\n );\n dispatch(setAvailableAllowedBuyerRegions());\n dispatch(setItemCondition(draft.itemCondition));\n dispatch(\n campaignCodeActions.setInitialCampaignCode(\n draft.campaignCode,\n draft.campaignCodeId,\n draft.campaignCodeDescription,\n isChangeItem\n )\n );\n dispatch(setDurationDays(draft.durationDays));\n dispatch(setCustomEndTime(draft.customEndTime));\n\n dispatch(\n categoryActions.setPath(draft.shortDescription, draft.categoryPath)\n );\n\n // Setting short description also loads top categories!\n dispatch(\n shortDescriptionActions.setShortDescription(draft.shortDescription)\n );\n dispatch(setDescriptionLanguageCodeIso2(draft.descriptionLanguageCodeIso2));\n dispatch(setCurrency(draft.currency));\n dispatch(categoryActions.setDraftCategory(draft.categoryId));\n dispatch(\n longDescriptionActions.setLongDescriptionFromDraft(\n draft.longDescription\n )\n );\n dispatch(setDisplayPromoted(draft.displayPromoted));\n dispatch(setDisplayHighlighted(draft.displayHighlighted));\n dispatch(imageActions.setDraftImages(draft.images || []));\n dispatch(resetImageAttributesSuggestions());\n dispatch(\n priceActions.setFromDraft(\n draft.openingBid,\n draft.fixedPrice,\n draft.reservePrice,\n draft.charity?.charityId,\n draft.vat,\n isChangeItem\n )\n );\n\n if (initData.featureSwitches['pennybridge-charities']) {\n if (params.charityId) {\n dispatch(setCharityAndFetchInfo(params.charityId));\n } else if (draft.charity) {\n dispatch(setCharityFromDraftAndFetchInfo(draft.charity));\n }\n }\n dispatch(paymentActions.setSelectedPaymentOptions(draft.paymentOptions));\n dispatch(setAttributesFromDraft(draft));\n\n const shippingOptions = getShippingOptionsFromDraft(\n draft.shippingOptions,\n draft.fromCountry,\n initData.featureSwitches['shipping-from-country']\n );\n\n const fromCountry = getFromCountryFromDraft(\n draft.fromCountry,\n initData.memberCountryCodeIso2,\n initData.featureSwitches['shipping-from-country']\n );\n\n dispatch(shippingActions.setShippingOptionsFromDraft(shippingOptions));\n dispatch(\n shippingActions.setShippingFromcountry({\n fromCountry\n })\n );\n\n dispatch(syiActions.enableAutoSave());\n\n if (isNewDraft) {\n scribe.sendSessionStart();\n }\n};\n\nexport const getShippingOptionsFromDraft = (\n shippingOptions,\n fromCountry,\n isShippingFromCountryEnabled\n) => {\n return isShippingFromCountryEnabled && fromCountry\n ? shippingOptions\n : (fromCountry && fromCountry === 'SE') || !fromCountry\n ? shippingOptions\n : [];\n};\n\nexport const getFromCountryFromDraft = (\n fromCountry,\n memberCountryCodeIso2,\n isShippingFromCountryEnabled\n) => {\n return isShippingFromCountryEnabled && fromCountry\n ? fromCountry\n : isShippingFromCountryEnabled && memberCountryCodeIso2 === 'DK'\n ? memberCountryCodeIso2\n : 'SE';\n};\n\nconst setIsLoading = isLoading => ({\n type: 'SET_DRAFT_IS_LOADING',\n payload: isLoading\n});\n\nconst loadDraft = (dispatch, draftId) => {\n dispatch(setIsLoading(true));\n return draftService\n .loadDraft(draftId)\n .then(result => {\n dispatch(setDraft(result));\n return result;\n })\n .catch(result => {\n navigationService.goToStart();\n throw result;\n })\n .finally(() => dispatch(setIsLoading(false)));\n};\n\nconst loadDrafts = () => dispatch => {\n return draftService.loadDrafts().then(drafts => {\n let resumableDrafts = [];\n\n drafts.forEach(draft => {\n if (\n canBeResumed(\n draft.draftId,\n draft.draftReason,\n draft.shortDescription,\n draft.longDescription,\n [{ imageUrl: draft.imageUrl }]\n )\n ) {\n resumableDrafts.push(draft);\n }\n });\n\n dispatch(setResumableDrafts(resumableDrafts));\n return resumableDrafts;\n });\n};\n\nconst loadImagesFromDraft = draftId => async (dispatch, getState) => {\n const browserDraftImageUrls = (getSyiSlice(getState()).images.slots || [])\n .map(image => image.imageUrl)\n .filter(Boolean);\n\n const serverDraft = await draftService.loadDraft(draftId);\n const serverDraftImages = serverDraft.images || [];\n const serverDraftImageUrls = serverDraftImages.map(image => image.imageUrl);\n\n const changedImages = browserDraftImageUrls\n .filter(x => !serverDraftImageUrls.includes(x))\n .concat(\n serverDraftImageUrls.filter(x => !browserDraftImageUrls.includes(x))\n );\n const imagesHaveChanged = changedImages.length > 0;\n if (imagesHaveChanged) {\n dispatch(imageActions.setDraftImages(serverDraftImages));\n }\n return imagesHaveChanged;\n};\n\nconst canBeResumed = (\n draftId,\n draftReason,\n shortDescription,\n longDescription,\n images\n) => {\n if (!draftId) {\n return false;\n }\n\n if (draftReason !== 'NewItem') {\n return false;\n }\n\n var hasShortDescription =\n shortDescription && shortDescription.trim().length > 0;\n var hasLongDescription =\n longDescription && longDescription.trim().length > 0;\n var hasImage =\n Array.isArray(images) && images.some(image => !!image.imageUrl);\n return hasShortDescription || hasLongDescription || hasImage;\n};\n\nconst updateDraftCanBeResumed = () => (dispatch, getState) => {\n let draft = getSyiSlice(getState()).draft;\n let shortDescription = getSyiSlice(getState()).shortDescription\n .shortDescription;\n let longDescription = getSyiSlice(getState()).longDescription\n .longDescription;\n let imageSlots = getSyiSlice(getState()).images.slots;\n\n // TODO: avoid duplication by using canBeResumed\n if (!draft.draftId) {\n return false;\n }\n\n if (draft.draftReason !== 'NewItem') {\n return false;\n }\n\n var hasShortDescription =\n shortDescription && shortDescription.trim().length > 0;\n var hasLongDescription =\n longDescription && longDescription.trim().length > 0;\n var hasImage =\n Array.isArray(imageSlots) && imageSlots.some(image => !!image.imageUrl);\n let canBeResumed = hasShortDescription || hasLongDescription || hasImage;\n\n dispatch({\n type: 'SET_DRAFT_CAN_BE_RESUMED',\n payload: canBeResumed\n });\n};\n\nconst setResumableDrafts = drafts => dispatch => {\n dispatch({\n type: 'SET_DRAFTS',\n payload: drafts\n });\n};\n\nconst setDraftId = draftId => {\n store.dispatch({\n type: 'SET_DRAFT_ID',\n payload: draftId\n });\n};\n\nconst setCustomEndTime = customEndTime => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'SET_CUSTOM_END_TIME',\n payload: customEndTime,\n isPureBin,\n isAuctionBin,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setDurationDays = durationDays => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'SET_DURATION_DAYS',\n payload: durationDays,\n isPureBin,\n isAuctionBin,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst resetDurationAndEndTime = () => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'RESET_DURATION_AND_END_TIME',\n isPureBin,\n isAuctionBin\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setRestart = restart => {\n store.dispatch({\n type: 'SET_RESTART',\n payload: restart\n });\n};\n\nconst setDisplayPromoted = displayPromoted => dispatch => {\n dispatch({\n type: 'SET_DISPLAY_PROMOTED',\n payload: displayPromoted || false\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setDisplayHighlighted = displayHighlighted => dispatch => {\n dispatch({\n type: 'SET_DISPLAY_HIGHLIGHTED',\n payload: displayHighlighted || false\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setReference = reference => {\n store.dispatch({\n type: 'SET_REFERENCE',\n payload: reference\n });\n};\n\nconst trackAttributeSuggestions = (\n draftSelectedAttributes,\n suggestedAttributes,\n suggestionEngine,\n completionTimeInSeconds,\n isNewDraft\n) => {\n const comparer = (a, b) => a.localeCompare(b);\n\n draftSelectedAttributes.forEach(attribute => {\n const label = [\n suggestionEngine,\n attribute.id,\n attribute.backingField,\n attribute.values?.sort(comparer).join(','),\n suggestedAttributes\n .find(sa => sa.id === attribute.id)\n ?.values?.sort(comparer)\n .join(','),\n completionTimeInSeconds,\n !!isNewDraft\n ];\n const analyticsData = {\n category: 'MachineLearning',\n action: 'SyiAttributeSuggestion',\n label: label.join(';')\n };\n googleTagManager.trackEvent(analyticsData);\n });\n};\n\nconst publish = translator => (dispatch, getState) => {\n dispatch({ type: 'SET_PUBLISH_PENDING' });\n\n const state = getSyiSlice(getState());\n const { displayHighlighted, displayPromoted } = state.extraFeatures;\n const reservePrice = state.price.reservePrice;\n const customEndTime = draftService.getCustomEndTime(state.itemDuration);\n const draft = draftService.buildDraftFromState(state);\n var splitTestGroups = getState().environment.splitTestGroups;\n var featureSwitches = getState().environment.featureSwitches;\n\n publishService\n .publish(draft, state.memberConsent.hasTraderaPayConsent)\n .then(result => {\n if (displayHighlighted) {\n googleTagManager.trackAddonBeforePublish('Highlight');\n }\n if (displayPromoted) {\n googleTagManager.trackAddonBeforePublish('Rank up');\n }\n if (reservePrice) {\n googleTagManager.trackAddonBeforePublish('Reserve price');\n }\n if (customEndTime) {\n googleTagManager.trackAddonBeforePublish('End time');\n }\n\n if (featureSwitches['syi-attribute-suggestions']) {\n const draftSelectedAttributes =\n draft.attributeValues.termAttributeValues;\n const suggestedAttributes =\n selectSuggestedAttributes(getState()) || [];\n trackAttributeSuggestions(\n draftSelectedAttributes,\n suggestedAttributes,\n splitTestGroups['attribute_suggestion_extractor'],\n Math.round(sessionService.getElapsedMillis() / 1000),\n state.draft.isNewDraft\n );\n }\n\n dispatch(setDraft({}));\n navigationService.goToPublished(result.itemId);\n })\n .catch(result => {\n let response = result.responseJSON;\n if (\n hasResponseErrorCode(response, [\n 'DraftAlreadyPublished',\n 'DraftBelongsToAnotherMember'\n ])\n ) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n } else if (hasResponseErrorCode(response, ['ValidationError'])) {\n handleServerValidationError(\n response.errors || [],\n dispatch,\n translator\n );\n } else {\n dispatch({ type: 'SET_PUBLISH_FAILED' });\n dispatch(syiActions.toggleModal('error-modal-publish-failed'));\n }\n });\n};\n\nconst hasResponseErrorCode = (responseOrNull, arrayOfErrorCodesToCheck) =>\n responseOrNull &&\n arrayOfErrorCodesToCheck.includes(responseOrNull.errorCode);\n\nconst loadDraftIfMissing = draftId => (dispatch, getState) => {\n var draft = getSyiSlice(getState()).draft;\n const isAlreadyLoaded = draft.draftId === draftId;\n if (isAlreadyLoaded) {\n return Promise.resolve(draft);\n }\n return loadDraft(dispatch, draftId);\n};\n\nconst loadDefaultDraft = ({ charityId }) => dispatch => {\n syiActions.reset();\n dispatch(categoryActions.reset());\n dispatch(resetCharityAndShippingInfo());\n dispatch(setDraft(draftService.loadDefaultDraft(), { charityId }));\n dispatch(shippingActions.resetSelected());\n};\n\nconst loadDefaultTemplateDraft = () => dispatch => {\n syiActions.reset();\n dispatch(categoryActions.reset());\n dispatch(resetCharityAndShippingInfo());\n var template = draftService.loadDefaultTemplateDraft();\n template.templateId = 'new';\n dispatch(setDraft(template));\n};\n\nconst useDraftAsTemplate = () => dispatch => {\n dispatch({\n type: 'SET_DRAFT_REASON',\n payload: 'Template'\n });\n dispatch({\n type: 'SET_DRAFT_ID',\n payload: null\n });\n};\n\nconst setDraftVersion = version => dispatch => {\n dispatch({\n type: 'SET_DRAFT_VERSION',\n payload: version\n });\n};\n\nexport const triggerSave = () => (dispatch, getState) =>\n saveDraft(dispatch, getState);\n\nconst saveDraft = (dispatch, getState) => {\n let draft = draftService.buildDraftFromState(getSyiSlice(getState()));\n let version = getSyiSlice(getState()).draft.version || 0;\n return draftService\n .saveDraft(draft)\n .then(result => {\n if (draft.draftId !== result.draftId) {\n dispatch({\n type: 'SET_DRAFT_ID',\n payload: result.draftId\n });\n }\n if (version > 0 && version + 1 !== result.version) {\n // Unexpected version. The draft is being edited somewhere else.\n }\n const wasNewDraftWithoutId = !draft.draftId && !!result.draftId;\n if (wasNewDraftWithoutId) {\n navigationService.setDraftUrlWithoutReload(result.draftId);\n }\n // Must happen after new URL is set for re-render to happen.\n dispatch(setDraftVersion(result.version));\n return result;\n })\n .catch(result => {\n let response = result.responseJSON;\n if (\n hasResponseErrorCode(response, [\n 'DraftAlreadyPublished',\n 'DraftBelongsToAnotherMember'\n ])\n ) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n } else if (result.status == 404) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n }\n throw result;\n });\n};\n\nconst setUsedAllowed = isAllowed => ({\n type: 'SET_ITEM_CONDITION_SELECTION_ERROR',\n payload: isAllowed ? null : 'syi_validation_used_not_allowed_for_category'\n});\n\nconst setItemCondition = condition => dispatch => {\n dispatch({\n type: 'SET_ITEM_CONDITION',\n payload: condition\n });\n dispatch(updateItemConditionRestrictionForCategory());\n};\n\nconst updateItemConditionRestrictionForCategory = () => (\n dispatch,\n getState\n) => {\n const condition = getSyiSlice(getState()).itemCondition.itemCondition;\n const isUsed = condition === 'Used';\n if (isUsed) {\n const isAllowed = isUsedAllowed(getState);\n dispatch(setUsedAllowed(isAllowed));\n } else {\n dispatch(setUsedAllowed(true));\n }\n};\n\nconst isUsedAllowed = getState => {\n const categoryRestriction = getSyiSlice(getState()).syi.categoryRestriction;\n return !categoryRestriction || categoryRestriction.allowUsed !== false;\n};\n\nconst resetItemCondition = () => ({\n type: 'RESET_ITEM_CONDITION'\n});\n\nconst publishAdditionalDescription = text => (dispatch, getState) => {\n if (text && text.length > 0) {\n dispatch({\n type: 'ADD_ADDITIONAL_DESCRIPTION',\n payload: text\n });\n }\n dispatch({ type: 'SET_PUBLISH_PENDING' });\n let draft = draftService.buildDraftFromState(getSyiSlice(getState()));\n publishService\n .publish(draft)\n .then(result => {\n navigationService.goToPublished(result.itemId);\n dispatch(setDraft({}));\n })\n .catch(() => {\n dispatch({ type: 'SET_PUBLISH_FAILED' });\n });\n};\n\nconst resetDraft = () => ({ type: 'RESET_DRAFT' });\n\nconst resetDrafts = () => dispatch => {\n dispatch({\n type: 'SET_DRAFTS',\n payload: null\n });\n};\n\nconst setCurrency = currency => ({\n type: 'SET_CURRENCY',\n payload: { currency }\n});\n\nexport default {\n setDraft,\n loadDraft,\n loadDrafts,\n loadImagesFromDraft,\n canBeResumed,\n updateDraftCanBeResumed,\n setDraftId,\n setCustomEndTime,\n setDurationDays,\n resetDurationAndEndTime,\n setRestart,\n setDisplayPromoted,\n setDisplayHighlighted,\n setReference,\n publish,\n loadDraftIfMissing,\n loadDefaultDraft,\n loadDefaultTemplateDraft,\n useDraftAsTemplate,\n saveDraft,\n setItemCondition,\n resetItemCondition,\n publishAdditionalDescription,\n resetDraft,\n resetDrafts,\n updateItemConditionRestrictionForCategory,\n setIsLoading\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.on = on;\nexports.off = off;\nfunction on(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.addEventListener) {\n el.addEventListener(eventName, callback, opts);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\" + eventName, function (e) {\n callback.call(el, e || window.event);\n });\n }\n}\n\nfunction off(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.removeEventListener) {\n el.removeEventListener(eventName, callback, opts);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + eventName, callback);\n }\n}","/**\n * Inject a script in the head with given text content\n *\n * @param {string} text\n * @param {object} [attributes]\n * @returns {HTMLElement} - The injected script element\n */\nfunction injectScript(text, attributes) {\n const scriptElement = document.createElement('script');\n Array.from(Object.entries(attributes)).forEach(([name, value]) => {\n scriptElement.setAttribute(name, value);\n });\n scriptElement.appendChild(document.createTextNode(text));\n document.head.appendChild(scriptElement);\n return scriptElement;\n}\n\nfunction loadScript(src, options = {}) {\n const optionsWithDefaults = {\n timeout: options.timeout || 0\n };\n return new Promise((resolve, reject) => {\n if (document.querySelector(`head > script[src=\"${src}\"]`) !== null) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n\n let timeoutTimer;\n if (optionsWithDefaults.timeout > 0) {\n timeoutTimer = setTimeout(() => {\n script.onload = null;\n script.onerror = null;\n document.head.removeChild(script);\n reject(new Error('SCRIPT_LOAD_TIMEOUT'));\n }, optionsWithDefaults.timeout);\n }\n\n script.src = src;\n script.async = true;\n script.onload = () => {\n if (timeoutTimer) clearTimeout(timeoutTimer);\n resolve();\n };\n script.onerror = error => {\n if (timeoutTimer) clearTimeout(timeoutTimer);\n reject(error);\n };\n document.head.appendChild(script);\n });\n}\n\nexport { injectScript, loadScript };\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport RadioSwitch from 'tradera-components/form-controls/radio-switch';\n\nconst ContentSwitch = props => {\n const { className, defaultSelected, onSwitch, options, title } = props;\n const [selected, setSelected] = useState(\n defaultSelected || Object.keys(options)[0]\n );\n // Keep track of which options have been shown to only render what's needed\n const [renderedOptions, setRenderedOptions] = useState([selected]);\n const onChange = useCallback(\n selected => {\n if (!renderedOptions.includes(selected)) {\n setRenderedOptions([...renderedOptions, selected]);\n }\n setSelected(selected);\n if (onSwitch) onSwitch(selected);\n },\n [onSwitch, renderedOptions, setRenderedOptions, setSelected]\n );\n\n return (\n
    \n \n {title &&

    {title}

    }\n
    \n ({\n value: key,\n name: options[key].label\n }))}\n checked={selected}\n handleOnChange={onChange}\n />\n
    \n
    \n {Object.entries(options).map(([key, option]) => (\n \n {renderedOptions.includes(key) ? option.node : null}\n \n ))}\n \n );\n};\n\nContentSwitch.propTypes = {\n defaultSelected: PropTypes.string,\n onSwitch: PropTypes.func,\n options: PropTypes.objectOf(\n PropTypes.shape({\n label: PropTypes.node.isRequired,\n node: PropTypes.node.isRequired\n })\n ).isRequired,\n title: PropTypes.string\n};\n\nContentSwitch.defaultProps = {\n lazyLoad: true\n};\n\nexport default ContentSwitch;\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst BidsLabel = ({ className, tagName: TagName, count }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_numberOfBidsWithCount', { count })}\n \n );\n};\nBidsLabel.defaultProps = {\n tagName: 'span'\n};\nexport default BidsLabel;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport { connect } from 'react-redux';\n\nimport { toAbsoluteUrl } from 'tradera-utils/url';\n\nconst BODY_PAGETYPE_CLASS_PREFIX = 'site-pagename-';\n\nconst PageHead = props => {\n const {\n breadcrumbs,\n canonicalLink,\n metaDescription,\n metaRobots,\n metaTitle,\n siteLayout,\n type\n } = props;\n\n const bodyClass = `${BODY_PAGETYPE_CLASS_PREFIX + type} ${\n siteLayout === 'site-width-full' ? 'site-width-full' : ''\n }`;\n return (\n \n {metaTitle}\n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = state => {\n return {\n breadcrumbs: state.page.breadcrumbs,\n canonicalLink: state.page.canonicalLink,\n metaDescription: state.page.metaDescription,\n metaRobots: state.page.metaRobots,\n metaTitle: state.page.metaTitle,\n type: state.page.type,\n siteLayout: state.ui.siteLayout\n };\n};\n\nexport default connect(mapStateToProps)(PageHead);\n","export function filterCategories(categories, filter) {\n if (categories && filter.length > 0) {\n return categories\n .slice()\n .map(category => {\n const categoryNodes =\n category.categoryNodes\n ?.slice()\n .filter(node =>\n node.title\n .toLowerCase()\n .includes(filter.toLowerCase())\n ) || [];\n return {\n ...category,\n categoryNodes\n };\n })\n .filter(category => category.categoryNodes.length > 0);\n }\n return categories;\n}\n","/*\n * OBSOLETE - use google tag manager service instead:\n * src\\EbaySweden.TouchWeb\\static\\script\\app\\ui\\google-tagmanager-service.js\n *\n */\n\nexport default new (function() {\n var timers = {};\n var sentCounter = {};\n\n function pushToDataLayer(payload) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(payload);\n }\n\n this.trackAddonAfterPublish = function(addOnfeatureName) {\n const isPageOpenedFromMail =\n window.location.pathname.indexOf('/selling/features') > -1;\n const label = isPageOpenedFromMail\n ? 'After Publish Mail'\n : 'After Publish';\n this.trackEvent({\n category: 'Listing AddOns',\n action: addOnfeatureName,\n label: label\n });\n };\n\n this.trackAddonBeforePublish = function(addOnfeatureName) {\n this.trackEvent({\n category: 'Listing AddOns',\n action: addOnfeatureName,\n label: 'Before Publish'\n });\n };\n\n this.trackPageView = function() {\n pushToDataLayer({ event: 'trackPageview' });\n };\n\n this.trackTiming = function(analyticsData) {\n pushToDataLayer({\n event: 'timing',\n timingCategory: analyticsData.category || '',\n timingVar: analyticsData.variable || '',\n timingValue: analyticsData.value || '',\n timingLabel: analyticsData.label || ''\n });\n };\n\n this.startTimer = function(name) {\n timers[name] = new Date().getTime();\n sentCounter[name] = 0;\n };\n\n this.sendTimer = function(name, analyticsData) {\n var duration = +new Date().getTime() - timers[name];\n\n analyticsData.label = Math.round(duration / 1000) + ' s';\n\n this.trackSellItemEvent(analyticsData);\n\n sentCounter[name] += 1;\n };\n\n this.sendTimerOnce = function(name, analyticsData) {\n if (sentCounter[name] === 0) {\n this.sendTimer(name, analyticsData);\n }\n };\n\n this.trackEvent = function(analyticsData) {\n pushToDataLayer({\n event: 'trackEvent',\n eventCategory: analyticsData.category || '',\n eventAction: analyticsData.action || '',\n eventLabel: analyticsData.label || '',\n eventValue: analyticsData.value || '0'\n });\n };\n})();\n","export const getShippingDisplayText = (type, t) => {\n switch (type) {\n case 'Alternative':\n return t('shippingInfo_alternativeShippingOption');\n case 'Bussgods':\n return 'Bussgods';\n case 'DHL':\n return 'DHL';\n case 'FedEx':\n return 'FedEx';\n case 'NotSpecified':\n return t('shippingInfo_notSpecified');\n case 'Posten':\n return 'PostNord';\n case 'PostNordParcel':\n return t('shippingInfo_postNordParcel');\n case 'PostNordStamp':\n return t('shippingInfo_postNordStamp');\n case 'SchenkerPrivpak':\n return 'DB Schenker';\n case 'Takeaway':\n return t('shippingInfo_pickup');\n case 'TakeawayOnly':\n return t('shippingInfo_pickupOnly');\n case 'UPS':\n return 'Ups';\n default:\n return type;\n }\n};\n","import React from 'react';\nimport './dropdown-menu-burger.scss';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { Button } from 'tradera-components/atoms/button/button';\n\nconst DropDownMenuHamburger = ({ active, className, onClick, tabIndex }) => {\n const { t } = useTranslator();\n return (\n \n \n \n \n \n {t('siteHeader_dropDownMenuHamburger')}\n \n \n );\n};\n\nexport default DropDownMenuHamburger;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ALink from 'tradera-components/alink/alink';\n\nconst MenuItemButton = ({\n className,\n containerClass,\n follow,\n gaAttributes,\n inSPA,\n label,\n link,\n onClick\n}) => {\n return (\n
  • \n \n \n {label}\n \n —>\n \n
  • \n );\n};\n\nMenuItemButton.defaultProps = {\n className: '',\n containerClass: 'site-dropdown__item-default',\n follow: true\n};\n\nMenuItemButton.propTypes = {\n notify: PropTypes.number,\n link: PropTypes.string,\n bold: PropTypes.bool,\n border: PropTypes.bool,\n label: PropTypes.node,\n gaAttributes: PropTypes.object\n};\n\nexport default MenuItemButton;\n","/**\n * Factory for the dropdown menu\n */\nimport React from 'react';\nimport MediaQuery from 'react-responsive';\n\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { filterCategories } from 'tradera-helpers/filter-categories-helper';\nimport MenuItemSeparator from 'tradera-components/site-header/dropdown-menu-item-separator';\nimport MenuItemButton from 'tradera-components/site-header/dropdown-menu-item-button';\nimport MenuItem from 'tradera-components/site-header/dropdown-menu-item';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport ALink from 'tradera-components/alink/alink';\nimport CategoryIcon from '@tradera/blueprint/theme/icons2/category.svg?jsx';\nimport EndingSoonIcon from '@tradera/blueprint/theme/icons2/branded-ending.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport RecommendedIcon from '@tradera/blueprint/theme/icons2/branded-recommended.svg?jsx';\nimport SearchIcon from '@tradera/blueprint/theme/icons2/search.svg?jsx';\nimport BrandIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user.svg?jsx';\nimport CategoryCharityIcon from '@tradera/blueprint/theme/icons2/category-charity.svg?jsx';\nimport ValuationIcon from '@tradera/blueprint/theme/icons2/valuation.svg?jsx';\nimport InspirationIcon from '@tradera/blueprint/theme/icons2/inspiration.svg?jsx';\nimport { getCategoryIcon } from 'tradera-helpers/category-icon-helper';\nimport { useMenuHeightFix } from 'tradera-hooks/use-menu-height-fix';\nimport featureToggles from 'tradera-apps/my-tradera/app/utils/feature-toggles';\n\nconst getGaAttributes = label => ({\n 'data-ga-category': 'Top navigation',\n 'data-ga-action': 'Category menu',\n 'data-ga-label': `Link - ${label}`\n});\n\nconst DropdownMenuContent = ({ categories, inSPA, isLoggedIn, onClick }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const mediaProps = { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].max };\n\n const sourceCategories =\n categories.list.length > 0\n ? categories.list\n : categories.topLevelCategories;\n // Only show rebate codes for non logged in users.\n const categoryList = sourceCategories\n .map(category => ({ ...category, open: false }))\n .filter(category => !isLoggedIn || (isLoggedIn && category.id !== 0));\n\n const menuContentRef = useMenuHeightFix();\n\n return (\n
      \n {/* NOTE: Notifications are disabled for burger button for desktop due to hidden cart and messaging, see DropDownMenuHamburger */}\n \n {!isLoggedIn && (\n <>\n }\n inSPA={false}\n label={t('siteHeader_howTo')}\n link={toLocalizedUrl('/how-to-buy')}\n onClick={onClick}\n />\n }\n inSPA={false}\n label={t('siteHeader_register')}\n link=\"/register\"\n onClick={onClick}\n />\n }\n inSPA={false}\n label={t('siteHeader_createItem')}\n link={toLocalizedUrl('/selling')}\n onClick={onClick}\n />\n \n )}\n \n\n }\n inSPA={false}\n label={\n isLoggedIn\n ? t('siteHeader_recommendedForYou')\n : t('siteHeader_recommendedAnonymous')\n }\n link={toLocalizedUrl('/ma/endless-recommendation/selected')}\n onClick={onClick}\n />\n }\n inSPA={inSPA}\n label={t('siteHeader_lastChance')}\n link={toLocalizedUrl('/campaign/sista-chansen?sortBy=TimeLeft')}\n onClick={onClick}\n />\n }\n inSPA={inSPA}\n label={t('siteHeader_brands')}\n link={toLocalizedUrl('/brands')}\n onClick={onClick}\n />\n {featureToggles.isPennybridgeCharitiesEnabled && (\n }\n inSPA={inSPA}\n label={t('siteHeader_donateWithTradera')}\n link={toLocalizedUrl('/causes')}\n onClick={onClick}\n />\n )}\n {featureToggles.isValuationPageEnabled && (\n }\n inSPA={inSPA}\n label={t('siteHeader_valuation')}\n link={toLocalizedUrl('/valuation')}\n onClick={onClick}\n />\n )}\n\n {!categories.error && (\n <>\n \n \n \n {t('siteHeader_categoriesAll')}\n \n \n }\n />\n {categories.isFetching ? (\n }\n label={`${t('siteHeader_loading')}`}\n />\n ) : (\n \n )}\n {!isLoggedIn && (\n }\n inSPA={false}\n label={t('siteHeader_inspiration')}\n link={toLocalizedUrl('/inspiration/')}\n onClick={onClick}\n />\n )}\n \n )}\n {/* NOTE: Fix for iPhone menu making bottom element unclickable */}\n \n \n \n
    \n );\n};\n\nclass CategoryMenuItems extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n filter: '',\n filteredCategories: props.categoryList\n };\n }\n\n handleFilterChange = event => {\n this.filterCategories(event.target.value.trim());\n };\n\n handleFilterKey = event => {\n const { key, target } = event;\n switch (key) {\n case 'Escape':\n event.stopPropagation();\n if (this.state.filter === '') {\n event.target.blur();\n }\n this.filterCategories('');\n break;\n case 'Enter':\n event.stopPropagation();\n target.blur();\n break;\n }\n };\n\n filterCategories = filter => {\n this.setState({\n filter,\n filteredCategories: filterCategories(\n this.props.categoryList,\n filter\n )\n });\n };\n\n componentDidUpdate(prevProps) {\n if (this.props.categoryList.length !== prevProps.categoryList.length) {\n filterCategories(prevProps.categoryList, this.state.filter);\n }\n }\n\n render() {\n const { inSPA, searchPlaceholder, onClick } = this.props;\n const { filter, filteredCategories } = this.state;\n return (\n <>\n \n
    \n \n \n
    \n \n }\n className=\"bg-white\"\n />\n {filteredCategories.map(\n category =>\n category && (\n \n )\n )}\n \n );\n }\n}\n\nconst CategoryMenuItem = ({\n category: { id, title, categoryNodes, open, href },\n inSPA = false,\n onClick\n}) => {\n if (!categoryNodes) {\n return (\n \n );\n }\n return (\n \n {categoryNodes.map(categoryNode => {\n if (categoryNode.isTopLevel) {\n return (\n ${categoryNode.title}`\n )}\n inSPA={inSPA}\n label={categoryNode.title}\n link={categoryNode.href}\n onClick={onClick}\n />\n );\n }\n\n return (\n ${categoryNode.title}`\n )}\n inSPA={inSPA}\n label={categoryNode.title}\n link={categoryNode.href}\n onClick={onClick}\n />\n );\n })}\n \n );\n};\n\nexport default DropdownMenuContent;\n","import React from 'react';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nconst TopLevelCategories = ({ topLevelCategories }) => {\n return topLevelCategories?.map(c => (\n \n {c.title}\n \n ));\n};\n\nconst SeoLinks = ({ isLoggedIn, topLevelCategories }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
    \n {topLevelCategories?.length >= 0 && (\n \n )}\n {!isLoggedIn && (\n \n {t('siteHeader_inspiration')}\n \n )}\n
    \n );\n};\n\nexport { SeoLinks };\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TransitionGroup } from 'react-transition-group';\nimport MediaQuery from 'react-responsive';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport categoryActions from 'tradera-state/categories/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\nimport {\n EnterFade,\n EnterFrom\n} from 'tradera-components/transitions/transitions';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport Overlay from 'components/modals/overlay';\nimport DropDownMenuHamburger from './dropdown-menu-burger';\nimport DropdownMenuContent from './dropdown-menu-content';\nimport { SeoLinks } from './seo-links';\n\nimport './dropdown-menu.scss';\n\nconst DropdownMenu = ({\n className,\n featureSwitches,\n inSPA,\n isLoggedIn,\n transparentHeader,\n tabIndex\n}) => {\n const dropdownMenu = useSelector(state => state.ui.categoryDropdownMenu);\n const categories = useSelector(state => state.categories);\n const expanded = dropdownMenu.open === 'open';\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (featureSwitches['preload-menu-categories']) {\n dispatch(categoryActions.fetchTopLevelCategories());\n }\n }, [dispatch, featureSwitches]);\n\n const onClick = () => {\n if (expanded) {\n dispatch(uiActions.closeCategoryDropdownMenu());\n } else {\n dispatch(uiActions.closeProfileMenu());\n if (!categories.isFetching && categories.list.length === 0) {\n dispatch(categoryActions.fetchCategoryList());\n }\n dispatch(uiActions.openCategoryDropdownMenu());\n }\n };\n\n const onItemClick = () => {\n dispatch(uiActions.closeCategoryDropdownMenu());\n };\n\n const sideMenuMediaProps = {\n maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.LG].max\n };\n const dropdownMenuMediaProps = {\n minWidth: BREAKPOINT_SIZES[BREAKPOINTS.LG].max\n };\n\n const renderChild = () => (\n \n
    \n \n
    \n
    \n );\n\n return (\n \n \n \n {expanded && (\n \n {\n onClick();\n }}\n tabIndex=\"-1\"\n />\n \n )}\n \n \n );\n};\n\nDropdownMenu.propTypes = {\n className: PropTypes.string,\n isLoggedIn: PropTypes.bool,\n expanded: PropTypes.bool\n};\n\nDropdownMenu.defaultProps = {\n className: ''\n};\n\nexport default DropdownMenu;\n","import React from 'react';\nimport SettingsIcon from '@tradera/blueprint/theme/icons2/settings.svg?jsx';\n\nconst SettingsButton = ({\n className,\n iconClassName,\n onClick,\n ...otherProps\n}) => {\n return (\n \n \n \n );\n};\nexport default SettingsButton;\n","import config from './config';\nimport eventBroadcaster from './event-broadcaster';\nimport scribe from './scribe';\nimport { logger } from 'packages';\nimport axios from 'axios';\n\nexport default new (function() {\n var allowedFileExtensions = ['.jpeg', '.jpg', '.png', '.gif'];\n var maxFileSize = 1024 * 1024 * 20;\n\n this.isMultifileSupported = function() {\n return typeof window.FormData !== 'undefined';\n };\n\n this.uploadFiles = function(files, maxNumberOfFiles, imageFlow) {\n for (let i = 0; i < files.length && i < maxNumberOfFiles; i++) {\n const file = files[i];\n var validationResult = validateFile(file);\n if (validationResult) {\n notifyImageValidationFailed(validationResult);\n return;\n }\n }\n for (let i = 0; i < files.length && i < maxNumberOfFiles; i++) {\n const file = files[i];\n uploadFileWithFormData(file, imageFlow);\n }\n };\n\n this.uploadFromFileInput = function(\n fileInput,\n maxNumberOfFiles,\n imageFlow\n ) {\n if (typeof window.FormData === 'undefined') {\n uploadFileWithDom(fileInput, imageFlow);\n fileInput.value = '';\n } else {\n for (\n var i = 0;\n i < fileInput.files.length && i < maxNumberOfFiles;\n i++\n ) {\n var file = fileInput.files[i];\n var validationResult = validateFile(file);\n if (validationResult) {\n fileInput.value = '';\n notifyImageValidationFailed(validationResult);\n return;\n }\n }\n for (\n let i = 0;\n i < fileInput.files.length && i < maxNumberOfFiles;\n i++\n ) {\n let file = fileInput.files[i];\n uploadFileWithFormData(file, imageFlow);\n }\n fileInput.value = '';\n }\n };\n\n this.uploadCroppedImageFile = async function(\n imageFile,\n imageFlow,\n slotIndex\n ) {\n if (imageFile.type && imageFile.type.startsWith('image/')) {\n var validationResult = validateFile(imageFile);\n if (validationResult) {\n notifyImageValidationFailed(validationResult);\n return;\n }\n return uploadFileWithFormData(imageFile, imageFlow, slotIndex);\n }\n };\n\n async function uploadFileWithFormData(file, imageFlow, replaceIndex) {\n let startTime = new Date().getTime();\n var formData = new FormData();\n formData.append('imageFile', file);\n\n const url = config[imageFlow + 'ImagesUrl'];\n try {\n const response = await axios.post(url, formData);\n notifyImageUploaded(\n response.data.imageId,\n response.data.imageUrl,\n replaceIndex\n );\n let endTime = new Date().getTime();\n scribe.sendDuration(\n 'image_upload_client_time',\n endTime - startTime\n );\n } catch (error) {\n if (error.response) {\n notifyImageUploadFailed(file);\n } else if (error.request) {\n // The request was made but no response was received\n notifyImageUploadFailed(file);\n logger('Image upload failed. Reason: No response');\n } else {\n // Something happened in setting up the request that triggered an Error\n notifyImageUploadFailed(file);\n logger('Image upload failed. Reason: ' + error.message);\n }\n }\n }\n\n function uploadFileWithDom(fileInput, imageFlow) {\n var iframe_name = 'iframe_' + new Date().getTime();\n var iframe = document.createElement('iframe');\n var form = document.createElement('form');\n var input = document.createElement('input');\n form.setAttribute('name', 'upload_form');\n form.setAttribute('id', 'upload_form');\n form.setAttribute('style', 'height: 0px;');\n form.setAttribute('method', 'post');\n form.setAttribute('action', config[imageFlow + 'ImagesUrl']); // e.g. \"draft\" + \"ImagesUrl\"\n form.setAttribute('enctype', 'multipart/form-data');\n form.setAttribute('target', iframe_name);\n input.setAttribute('type', 'hidden');\n input.setAttribute('name', 'iframe');\n input.setAttribute('value', 'true');\n iframe.setAttribute('name', iframe_name);\n iframe.setAttribute('style', 'height: 0px;');\n iframe.setAttribute('id', iframe_name);\n\n form.appendChild(input);\n\n var fileInputParent = fileInput.parentNode;\n form.appendChild(fileInput);\n\n document.body.appendChild(iframe);\n document.body.appendChild(form);\n form.submit();\n\n fileInputParent.appendChild(fileInput); // Restore input node\n document.body.removeChild(form);\n\n // Only one file is supported using this method.\n var theFile = fileInput.value;\n\n iframe.onload = function(e) {\n try {\n var responseText = $(\n e.target.contentDocument.body.innerHTML\n ).text();\n var response = $.parseJSON(responseText);\n notifyImageUploaded(response.imageId, response.imageUrl);\n } catch (err) {\n notifyImageUploadFailed(theFile);\n logger('Image upload with DOM failed.');\n fileInput.value = '';\n }\n\n document.body.removeChild(iframe);\n };\n }\n\n function endsWith(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n }\n\n function hasValidFileExtension(filename) {\n return allowedFileExtensions.some(fileExt =>\n endsWith(filename.toUpperCase(), fileExt.toUpperCase())\n );\n }\n\n function hasValidFileSize(fileSize) {\n return fileSize < maxFileSize;\n }\n\n function validateFile(file) {\n if (file === undefined) {\n return 'syi_validation_images_upload_error'; //'Något blev fel vid uppladdningen av filen';\n }\n if (!hasValidFileExtension(file.name)) {\n return 'syi_validation_images_upload_wrong_type'; //'Filen du laddade upp är av fel typ.';\n }\n if (!hasValidFileSize(file.size)) {\n return 'syi_validation_images_upload_too_large'; //'Filen du laddade upp är för stor.';\n }\n return false;\n }\n\n function notifyImageUploaded(imageId, imageUrl, replaceIndex) {\n eventBroadcaster.trigger(\n 'imageUploaded',\n imageId,\n imageUrl,\n replaceIndex\n );\n }\n\n function notifyImageUploadFailed(file) {\n eventBroadcaster.trigger('imageUploadFailed', file);\n }\n\n function notifyImageValidationFailed(displayMessage) {\n eventBroadcaster.trigger('imageValidationFailed', displayMessage);\n }\n})();\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = throttle;\n/*eslint-disable */\nfunction throttle(fn, threshhold, scope) {\n threshhold || (threshhold = 250);\n var last, deferTimer;\n return function () {\n var context = scope || this;\n\n var now = +new Date(),\n args = arguments;\n if (last && now < last + threshhold) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n}","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import config from 'tradera-apps/syi/script/app_react/services/config';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\n\nconst updatePrices = () => (dispatch, getState) => {\n const priceInfo = {\n auctionCommission: 0,\n fixedPriceCommission: 0,\n featureFees: [],\n feesTotal: 0\n };\n\n const state = getSyiSlice(getState());\n\n const commissionShare = 0.1;\n const commissionMinimum = config.commissionMinimum;\n const commissionCap = config.commissionCap;\n\n if (state.price.openingBid) {\n priceInfo.auctionCommission = Math.min(\n Math.max(\n state.price.openingBid * commissionShare,\n commissionMinimum\n ),\n commissionCap\n );\n }\n\n if (state.price.fixedPrice) {\n priceInfo.fixedPriceCommission = Math.min(\n Math.max(\n state.price.fixedPrice * commissionShare,\n commissionMinimum\n ),\n commissionCap\n );\n }\n\n if (state.price.reservePrice) {\n priceInfo.featureFees.push({\n description: 'Reservationspris',\n price: 40\n });\n }\n\n if (\n typeof state.itemDuration.customEndTimeHour === 'string' &&\n typeof state.itemDuration.customEndTimeMinute === 'string'\n ) {\n priceInfo.featureFees.push({\n description: 'Vald sluttid',\n price: state.itemDuration.customEndTimePrice\n });\n }\n\n if (state.extraFeatures.displayHighlighted) {\n priceInfo.featureFees.push({\n description: 'Highlight',\n price: config.highlightFeaturePrice\n });\n }\n\n if (state.extraFeatures.displayPromoted) {\n priceInfo.featureFees.push({\n description: 'Rank up',\n price: 45\n });\n }\n\n priceInfo.feesTotal = priceInfo.featureFees.reduce(\n (memo, fee) => memo + fee.price,\n 0\n );\n\n dispatch({\n type: 'SET_CHOSEN_EXTRA_FEATURES',\n payload: priceInfo.featureFees\n });\n};\n\nconst setDiscountFactor = discountFactor => ({\n type: 'SET_DISCOUNT_FACTOR',\n discountFactor: discountFactor\n});\n\nconst resetDiscountFactor = () => ({\n type: 'RESET_DISCOUNT_FACTOR'\n});\n\nconst setCampaignCommission = campaignCommissionProcent => ({\n type: 'SET_CAMPAIGN_COMMISSION_PROCENT',\n campaignCommissionProcent: campaignCommissionProcent\n});\n\nconst resetCampaignCommission = () => ({\n type: 'RESET_CAMPAIGN_COMMISSION_PROCENT'\n});\n\nconst updateMaxCommission = () => (dispatch, getState) => {\n let maxFeeCap = getSyiSlice(getState()).campaignCode.maxFeeCap;\n const isDomainNameCategory =\n getSyiSlice(getState()).category.draftCategoryId ===\n config.domainNameCategoryId;\n if (maxFeeCap === null || isDomainNameCategory) {\n dispatch({\n type: 'SET_MAX_COMMISSION_COST',\n payload: {\n maxCommissionCost: isDomainNameCategory\n ? undefined\n : config.commissionCap,\n isCategoryWithNoCommissionCap: isDomainNameCategory\n }\n });\n } else {\n dispatch({\n type: 'SET_MAX_COMMISSION_COST',\n payload: {\n maxCommissionCost: maxFeeCap,\n isCategoryWithNoCommissionCap: false\n }\n });\n }\n};\n\nconst updateCommission = () => (dispatch, getState) => {\n let campaignCommissionProcent = getSyiSlice(getState()).fees\n .campaignCommissionProcent;\n if (campaignCommissionProcent === null) {\n const isDomainNameCategory =\n getSyiSlice(getState()).category.draftCategoryId ===\n config.domainNameCategoryId;\n if (userData.isCompanyUser) {\n let companyMinCommissionProcent = 5;\n let companyMaxCommissionProcent = 8;\n let discountFactor = getSyiSlice(getState()).fees.discountFactor;\n if (discountFactor !== null) {\n companyMinCommissionProcent =\n companyMinCommissionProcent * (1 - discountFactor);\n companyMaxCommissionProcent =\n companyMaxCommissionProcent * (1 - discountFactor);\n }\n\n let commissionProcent = '0';\n if (companyMaxCommissionProcent > 0) {\n commissionProcent = isDomainNameCategory\n ? companyMaxCommissionProcent.toString()\n : companyMinCommissionProcent +\n ' - ' +\n companyMaxCommissionProcent;\n }\n\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: commissionProcent\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: true\n });\n } else {\n const isCourseLiteratureCategory = [\n 302937,\n 302942,\n 302951,\n 302934,\n 302949,\n 302943,\n 302948,\n 342944,\n 302941,\n 302936,\n 302938,\n 302946,\n 302944,\n 302945,\n 302950,\n 302940,\n 302947,\n 302935,\n 1123\n ].includes(getSyiSlice(getState()).category.draftCategoryId);\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: isCourseLiteratureCategory ? '0' : '10'\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: false\n });\n }\n } else {\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: campaignCommissionProcent\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: false\n });\n }\n};\n\nexport default {\n updatePrices,\n updateCommission,\n setDiscountFactor,\n resetDiscountFactor,\n setCampaignCommission,\n resetCampaignCommission,\n updateMaxCommission\n};\n","export { default } from './application-error-boundary';\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport { touchWebClient } from 'tradera-utils/http';\n\nvar _cache = {};\nvar _title = '';\n\nfunction existsInCache(categoryId) {\n return typeof _cache[categoryId] !== 'undefined';\n}\n\nconst clearCache = title => {\n if ((!_title && !title) || _title === title) {\n return;\n }\n _cache = {};\n};\n\nconst loadTopCategories = title => {\n return new Promise((resolve, reject) => {\n clearCache(title);\n _title = title;\n\n if (_cache.topCategories) {\n resolve(_cache.topCategories);\n } else {\n touchWebClient\n .post('/selling/toplevelcategorysuggestions', {\n title: title || ''\n })\n .then(function(result) {\n _cache.topCategories = result.data;\n resolve(result.data);\n })\n .catch(reject);\n }\n });\n};\n\nconst loadChildCategories = (title, categoryId, level) => {\n return new Promise((resolve, reject) => {\n _title = title;\n if (!categoryId) {\n reject();\n return;\n }\n\n if (existsInCache(categoryId)) {\n resolve(_cache[categoryId]);\n } else {\n const levelToSearch = level + 1;\n const params = {\n title: title || '',\n categoryId: categoryId,\n levelToSearch\n };\n touchWebClient\n .post('/selling/categorysuggestions', params, {\n cancelTokenId: `cancel-category-level-search-${levelToSearch}`\n })\n .then(function(result) {\n _cache[categoryId] = result.data;\n resolve(result.data);\n })\n .catch(reject);\n }\n });\n};\n\nconst prefetchChildren = (title, categories, level) => {\n _title = title;\n var allCategories = categories.categories.concat(categories.suggestions);\n var ids = allCategories\n .filter(function(c) {\n return !existsInCache(c.categoryId);\n })\n .map(function(c) {\n return c.categoryId;\n });\n\n if (ids.length === 0) {\n return;\n }\n\n var params = {\n title: _title || '',\n categoryIds: ids,\n levelToSearch: level + 1\n };\n\n touchWebClient\n .post('/selling/childcategorysuggestions', params)\n .then(function(result) {\n Object.values(result.data).forEach(categoryInfo => {\n _cache[categoryInfo.categoryId] = categoryInfo;\n });\n });\n};\n\nexport default {\n clearCache,\n loadTopCategories,\n loadChildCategories,\n prefetchChildren\n};\n","import React, { Component } from 'react';\nimport { hot } from 'react-hot-loader';\nimport { compose } from 'redux';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport Sticky from 'react-stickynode';\nimport { selectShowCurrencySelection } from 'tradera-state/multi-currency';\nimport { selectIsForeignLanguageActivated } from 'tradera-state/language/selectors';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport { isDesktop, isTablet, isMobile } from 'tradera-utils/breakpoints';\nimport {\n withBreakpoint,\n isMobile as isMobileBreakpoint\n} from 'tradera-components/breakpoint/breakpoint';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { onWindowLoad } from 'utils/on-ready';\nimport { actions as memberStateActions } from 'tradera-state/member';\nimport uiActions from 'tradera-state/ui/actions';\nimport { withUrlLocalizer } from 'tradera-lang/translate';\nimport TraderaLogo from 'components/tradera/logo?jsx';\nimport CartLink from 'tradera-components/site-header/cart-link';\nimport DropdownMenu from 'tradera-components/site-header/dropdown-menu';\nimport SignUpLink from 'tradera-components/site-header/sign-up-link';\nimport ALink from 'tradera-components/alink/alink';\nimport { SearchInSpa, SearchOutsideSpa } from 'components/search/search';\nimport ModalPortal from 'tradera-components/portals/modal-portal';\nimport PushNotificationModal from 'tradera-components/push-notification-modal/push-notification-modal';\nimport { LocalizationLink } from './localization-link';\nimport BuyingLink from './buying-link';\nimport HowToLink from './how-to-link';\nimport ProfileMenuLink from './profile-menu-link';\nimport { SearchButton } from './search-button';\n\nimport './slim-header.scss';\nimport ModalRenderer from 'tradera-components/modal-renderer/modal-renderer';\nimport MessagingModal from 'tradera-components/messaging/messaging-modal';\nimport WishlistLink from 'tradera-components/site-header/wishlist-link';\nimport OngoingAuctionsLink from 'tradera-components/site-header/ongoing-auctions-link';\nimport SellingLink from 'tradera-components/site-header/selling-link';\nimport { TraderaToastContainer } from 'tradera-components/toasts/tradera-toast-container';\nimport { CurrencyLink } from 'tradera-components/site-header/currency-link';\n\nclass SiteHeader extends Component {\n static propTypes = {\n cartItems: PropTypes.string,\n cartSum: PropTypes.string,\n closeMessagingModal: PropTypes.func,\n currentCategoryId: PropTypes.number,\n fetchMessagingNotifications: PropTypes.func,\n getGeolocation: PropTypes.func,\n inSPA: PropTypes.bool,\n searchQuery: PropTypes.string,\n setCurrentCategoryId: PropTypes.func,\n showHeaderSearch: PropTypes.bool\n };\n\n static defaultProps = {\n inSPA: false\n };\n\n constructor(props) {\n super(props);\n this.state = {\n sticky: false,\n autoFocusSearch: false\n };\n }\n\n componentDidMount() {\n const {\n featureSwitches,\n isLoggedIn,\n fetchMessagingNotifications,\n getGeolocation\n } = this.props;\n getGeolocation();\n\n if (featureSwitches['messaging'] && isLoggedIn) {\n fetchMessagingNotifications();\n }\n\n // Scroll up one pixel to show fixed header on mobile\n onWindowLoad(() => {\n // Toggle on sticky behavior on window load to force reflow and show sticky header on mobile & Firefox\n this.setState({ sticky: true });\n });\n }\n\n handleClickSearch = () => {\n const { openSearchForm, closeSearchForm, showSearch } = this.props;\n if (showSearch) {\n closeSearchForm();\n } else {\n openSearchForm();\n }\n this.setState(prevState => ({\n ...prevState,\n autoFocusSearch: !prevState.showSearch\n }));\n };\n\n handleMouseOverMenu = menu => {\n if (isDesktop()) {\n this.setState({\n activeHoverMenu: menu\n });\n }\n };\n\n handleMouseOutMenu = () => {\n this.setState({\n activeHoverMenu: false\n });\n };\n\n // Event handler for menu button:\n // Mobile: link, no menu open\n // Tablet: not a link, menu open\n // Desktop: link, menu open\n handleMenuClick = (event, menu) => {\n if (\n isMobile() &&\n menu !== HOVER_MENUS.LOCALIZATION &&\n menu !== HOVER_MENUS.CURRENCY\n ) {\n return;\n }\n\n // Prevent click for tablet to allow tap to open\n if (isTablet()) {\n event.preventDefault();\n }\n // Force focus so touch devices can get a blur event\n event.target.focus();\n this.setState(state => ({\n activeHoverMenu: state.activeHoverMenu === menu ? false : menu\n }));\n };\n\n // Event handler for non-linked menu button that always open a menu\n handleAlwaysOpenMenuClick = (event, menu) => {\n event.preventDefault();\n event.target.focus();\n this.setState(state => ({\n activeHoverMenu: state.activeHoverMenu === menu ? false : menu\n }));\n };\n\n handleMenuBlur = () => {\n this.setState({\n activeHoverMenu: false\n });\n };\n\n handleRegisterClick = () => {\n const { isLoggedIn } = this.props;\n\n if (!isLoggedIn) {\n const cookieName = 'signup_referral_path';\n const expireDate = new Date();\n const value = window.location.href;\n expireDate.setTime(expireDate.getTime() + 10 * 60 * 1000);\n cookieUtil.createCookie(cookieName, value, expireDate);\n }\n };\n\n render() {\n const {\n cartItems,\n cartSum,\n closeMessagingModal,\n closeNotificationOptinModal,\n currentBreakpoint,\n featureSwitches,\n inSPA,\n isForeignVisitor,\n isLoggedIn,\n messagingModal,\n notificationOptinModal,\n pageName,\n showSearch,\n showCurrencySelection,\n showHeaderSearch,\n toLocalizedUrl\n } = this.props;\n const { sticky } = this.state;\n const formattedCartItems = parseInt(cartItems, 10);\n const hasCartItems = formattedCartItems > 0;\n const stickyEnabledOnPage = !pageName?.includes('MyTradera');\n const isMobile = isMobileBreakpoint(currentBreakpoint);\n\n const hideElements =\n !showHeaderSearch && pageName?.includes('StartPage');\n const transparentHeader = hideElements && !isMobile;\n\n return (\n \n \n \n \n \n \n \n \n \n \n {inSPA ? (\n \n ) : (\n \n )}\n \n \n
      \n
    • \n \n
    • \n {isLoggedIn && (\n \n \n \n )}\n
    • \n {isLoggedIn ? (\n \n ) : (\n \n )}\n
    • \n {isLoggedIn && (\n
    • \n \n
    • \n )}\n {isLoggedIn && (\n
    • \n \n
    • \n )}\n\n {hasCartItems && (\n
    • \n \n
    • \n )}\n
    • \n \n
    • \n {!isLoggedIn && (\n
    • \n \n
    • \n )}\n {!isLoggedIn && (\n
    • \n \n
    • \n )}\n {!isLoggedIn && showCurrencySelection && (\n
    • \n \n
    • \n )}\n
    \n \n \n \n {messagingModal.open === 'open' && (\n \n \n \n )}\n {notificationOptinModal.open === 'open' && (\n \n \n \n )}\n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n categoryPath: state.page.categoryPath,\n currentCategoryId: state.page.currentCategoryId,\n featureSwitches: state.environment.featureSwitches,\n hasSearch: state.ui.hasSearch,\n isLoggedIn: state.member.isLoggedIn,\n messagingModal: state.ui.messagingModal,\n notificationOptinModal: state.ui.notificationOptinModal,\n pageName: state.page.type,\n isForeignVisitor:\n !selectIsSwedishVisitor(state) ||\n selectIsForeignLanguageActivated(state),\n searchParams: state.discover.searchParams,\n searchUrl: state.discover.searchUrl,\n showCurrencySelection: selectShowCurrencySelection(state),\n showHeaderSearch: state.ui.showHeaderSearch,\n showSearch: state.ui.showSearchForm,\n systemMessageCount: state.ui.badges.system,\n systemMessages: state.ui.systemMessages\n };\n};\n\nconst mapDispatchToProps = {\n closeCategoryDropdownMenu: uiActions.closeCategoryDropdownMenu,\n closeMessagingModal: uiActions.closeMessagingModal,\n closeNotificationOptinModal: uiActions.closeNotificationOptinModal,\n closeSearchForm: uiActions.closeSearchForm,\n fetchMessagingNotifications: uiActions.fetchMessagingNotifications,\n getGeolocation: memberStateActions.getGeolocation,\n openSearchForm: uiActions.openSearchForm\n};\n\nexport default hot(module)(\n compose(\n withBreakpoint,\n withUrlLocalizer,\n connect(mapStateToProps, mapDispatchToProps)\n )(SiteHeader)\n);\nexport { SiteHeader };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @fileOverview Find scroll parent\n */\n\nexports.default = function (node) {\n if (!(node instanceof HTMLElement)) {\n return document.documentElement;\n }\n\n var excludeStaticParent = node.style.position === 'absolute';\n var overflowRegex = /(scroll|auto)/;\n var parent = node;\n\n while (parent) {\n if (!parent.parentNode) {\n return node.ownerDocument || document.documentElement;\n }\n\n var style = window.getComputedStyle(parent);\n var position = style.position;\n var overflow = style.overflow;\n var overflowX = style['overflow-x'];\n var overflowY = style['overflow-y'];\n\n if (position === 'static' && excludeStaticParent) {\n parent = parent.parentNode;\n continue;\n }\n\n if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return node.ownerDocument || node.documentElement || document.documentElement;\n};","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\n\nexport default history;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from 'static/script/components/modals/modal-container';\nimport ModalHeader from 'static/script/components/modals/modal-header';\nimport ModalBody from 'static/script/components/modals/modal-body';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { webApiClient } from 'tradera-utils/http';\nimport { setIsInternationalWacko } from 'tradera-state/views/view-item/reducer';\nimport './card-verification-modal.scss';\nimport { LocalLoader } from 'tradera-components/loader';\nimport { selectPreferredLanguage } from 'tradera-state/language/selectors';\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport { SURVEYS } from 'tradera-constants/surveys';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\n\nconst states = {\n START: 'START',\n LOADING: 'LOADING',\n CARD_VERIFICATION_MODAL: 'CARD_VERIFICATION_MODAL',\n ERROR: 'ERROR',\n NOT_VERIFIED: 'NOT_VERIFIED'\n};\n\nexport const CardVerificationModal = ({ closeModal, onCardVerified }) => {\n const preferredLanguage = useSelector(selectPreferredLanguage);\n const memberEmail = useSelector(state => state.initData.memberEmail);\n const [state, setState] = useState(states.START);\n const [isHidden, setIsHidden] = useState(false);\n const { t } = useTranslator();\n const submitButtonRef = useRef();\n const dispatch = useDispatch();\n const { openQualtiveModal } = useQualtive();\n\n const onClose = () => {\n closeModal();\n GtmService.trackAction('VIP', 'Card Verification', 'Close modal');\n openQualtiveModal(SURVEYS.cardVerification, t);\n };\n\n useEffect(() => {\n if (state !== states.START) {\n return;\n }\n\n GtmService.trackAction('VIP', 'Card Verification', 'Start');\n\n const onSuccess = nonce => {\n setState(states.LOADING);\n webApiClient\n .post('/shopping/payment/verifybraintreecardnonce', { nonce })\n .then(({ data }) => {\n if (data.isVerified) {\n onCardVerified();\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n 'Verified'\n );\n dispatch(setIsInternationalWacko(false));\n return;\n }\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n 'NotVerified'\n );\n setIsHidden(false);\n setState(states.NOT_VERIFIED);\n return;\n })\n .catch(() => {\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n 'Server error'\n );\n setState(states.ERROR);\n });\n };\n\n webApiClient\n .get('/shopping/payment/braintreeclienttokenforverification')\n .then(async ({ data }) => {\n setState(states.CARD_VERIFICATION_MODAL);\n const options = {\n authorization: data.clientToken,\n container: '#dropin-container',\n locale: preferredLanguage.languageCodeIso2,\n threeDSecure: true\n };\n const dropin = await import(\n /* webpackChunkName: \"braintree-web-drop-in\" */ 'braintree-web-drop-in'\n );\n dropin.create(options, (createErrors, instance) => {\n submitButtonRef.current.addEventListener('click', () => {\n setIsHidden(true);\n try {\n instance.requestPaymentMethod(\n {\n threeDSecure: {\n amount: '1',\n email: memberEmail\n }\n },\n (requestPaymentMethodErr, payload) => {\n if (requestPaymentMethodErr) {\n setIsHidden(false);\n setState(states.NOT_VERIFIED);\n const error =\n requestPaymentMethodErr._braintreeWebError ||\n {};\n\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n `${error.type}:${error.code}`\n );\n\n return;\n }\n\n if (!payload || !payload.nonce) {\n setIsHidden(false);\n setState(states.NOT_VERIFIED);\n\n if (payload) {\n const threeDSecureValidationFailed =\n payload.liabilityShiftPossible &&\n !payload.liabilityShifted;\n\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n threeDSecureValidationFailed\n ? 'ThreeDSecure failed'\n : 'Card invalid'\n );\n }\n return;\n }\n\n onSuccess(payload.nonce);\n }\n );\n } catch (e) {\n setIsHidden(false);\n setState(states.NOT_VERIFIED);\n GtmService.trackAction(\n 'VIP',\n 'Card Verification',\n 'requestPaymentMethod failed'\n );\n throw e;\n }\n });\n });\n return;\n })\n .catch(() => setState(states.ERROR));\n setState(states.LOADING);\n }, [onCardVerified, dispatch, state, preferredLanguage, memberEmail]);\n\n const restart = () => {\n GtmService.trackAction('VIP', 'Card Verification', 'Restart');\n setState(states.START);\n };\n\n return (\n \n \n \n
    \n {t('internationalwacko_cardverificationmodal_header')}\n
    \n
    \n \n {state === states.LOADING && }\n {state === states.CARD_VERIFICATION_MODAL && (\n
    \n

    \n {t(\n 'internationalwacko_cardverificationmodal_introtext'\n )}\n

    \n

    \n {t(\n 'internationalwacko_cardverificationmodal_info1'\n )}\n

    \n

    \n {t(\n 'internationalwacko_cardverificationmodal_info2'\n )}\n

    \n\n
    \n\n \n {t(\n 'internationalwacko_cardverificationmodal_verifyCard'\n )}\n \n
    \n )}\n {state === states.ERROR && (\n

    \n {t(\n 'internationalwacko_cardverificationmodal_unavailable'\n )}\n

    \n )}\n {state === states.NOT_VERIFIED && (\n
    \n

    \n {t(\n 'internationalwacko_cardverificationmodal_failedVerification'\n )}\n

    \n

    \n {t(\n 'internationalwacko_cardverificationmodal_failedVerification_info'\n )}\n

    \n \n {t(\n 'internationalwacko_cardverificationmodal_tryAgain'\n )}\n \n
    \n )}\n \n \n \n );\n};\n","import React from 'react';\n\nconst DiscountBadge = ({ className, discountRate }) => {\n return (\n \n -{discountRate}%\n \n );\n};\n\nexport default DiscountBadge;\n","import React from 'react';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst SignUpLink = ({ clickAction, transparentHeader, isForeignVisitor }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const register = t('siteHeader_register');\n const url = isForeignVisitor\n ? toLocalizedUrl('/register/foreign-private')\n : toLocalizedUrl('/register');\n\n return (\n \n \n \n {register}\n \n \n );\n};\n\nexport default React.memo(SignUpLink);\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n defaultJsonRequestHeaders,\n handleError,\n reloadOnUnauthorized,\n logError\n} from 'tradera-utils/api';\nimport { webApiClient } from 'tradera-utils/http';\n\nexport const getStartPageConfig = languageCodeIso2 => {\n return axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.CMS_API}/api/pages/start?locale=${languageCodeIso2}`,\n {\n headers: defaultJsonRequestHeaders\n }\n )\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data);\n};\n\nexport const getTrendingBrands = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.CMS_API + '/api/trending/brands', {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || [])\n .then(items =>\n items\n .map(({ name, index, slug, logoImageUrl }) => ({\n name,\n index,\n url: `/brand/${slug}`,\n logoImageUrl\n }))\n .sort(sortByIndex)\n );\n};\n\nconst sortByIndex = (a, b) => a.index - b.index;\n\nexport const getTrendingSearchesCms = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.CMS_API + '/api/trending/searches', {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || [])\n .then(items =>\n items\n .map(({ index, categoryId, query }) => ({\n name: query,\n index,\n url: `/search?q=${query}${\n categoryId ? `&categoryId=${categoryId}` : ''\n }&sortBy=MostBids`\n }))\n .sort(sortByIndex)\n );\n};\n\nexport const getTrendingSearchesPersonalisedSuggestions = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.PERSONALISED_SUGGESTIONS + '/trending-searches', {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || []);\n};\n\nexport const getWishListItems = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.WISHLIST + '?filter=active&itemsPerPage=8', {\n headers: defaultJsonRequestHeaders\n })\n .catch(handleError())\n .catch(reloadOnUnauthorized)\n .catch(logError)\n .then(response => response?.data.items || []);\n};\n\nexport const getFavouriteSellers = shippingCountryCode => {\n return webApiClient\n .get(\n `/discover/favouritesellers-and-items2?maxFavouriteSellers=4&maxItemsPerFavouriteSeller=3&shippingCountryCode=${shippingCountryCode}`\n )\n .then(response => response?.data || {});\n};\n\nexport const getSellerSuggestions = shippingCountryCode => {\n return webApiClient\n .get(\n `/discover/seller-suggestions?maxSellers=4&maxItemsPerSeller=3&shippingCountryCode=${shippingCountryCode}`\n )\n .then(response => response?.data?.favouriteSellerCardDtos || []);\n};\n","import {\n getStartPageConfig,\n getTrendingBrands,\n getTrendingSearchesCms,\n getTrendingSearchesPersonalisedSuggestions,\n getWishListItems,\n getFavouriteSellers,\n getSellerSuggestions\n} from './api';\nimport {\n setStartPageConfigAction,\n setStartPageConfigStatusAction,\n setTrendingBrandsAction,\n setTrendingBrandsStatusAction,\n setTrendingSearchesAction,\n setTrendingSearchesStatusAction,\n setWishListAction,\n setWishListStatusAction,\n setFavouriteSellersAction,\n setFavouriteSellersStatusAction\n} from './reducer';\nimport { selectPreferredLanguage } from 'tradera-state/language/selectors';\nimport itemActions from 'tradera-state/items/actions';\n\nconst defaultStartPageConfig = {\n header: {\n alternativeText: '',\n backgroundImage: null,\n isCampaignMode: false,\n webpageUrl: ''\n },\n contentLoggedOut: [{ type: 'lastChance' }, { type: 'recentlyViewed' }],\n contentLoggedIn: [\n { type: 'wishList' },\n { type: 'favouriteSellers' },\n { type: 'lastChance' },\n { type: 'recentlyViewed' }\n ]\n};\n\nexport const fetchStartPageConfig = () => async (dispatch, getState) => {\n const { status } = getState().views.startPage;\n if (status !== 'NOT_FETCHED') return;\n\n dispatch(setStartPageConfigStatusAction({ status: 'LOADING' }));\n\n const config = await getStartPageConfig(\n selectPreferredLanguage(getState()).languageCodeIso2\n );\n\n dispatch(\n setStartPageConfigAction({\n config: config || defaultStartPageConfig,\n status: 'HAS_DATA'\n })\n );\n};\n\nexport const fetchTrendingBrandsIfNeeded = () => async (dispatch, getState) => {\n const { status } = getState().views.startPage.trendingBrands;\n if (status !== 'NOT_FETCHED') return;\n\n dispatch(setTrendingBrandsStatusAction({ status: 'LOADING' }));\n\n const brandsResult = await getTrendingBrands();\n\n const newStatus = brandsResult.length > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(\n setTrendingBrandsAction({ items: brandsResult, status: newStatus })\n );\n};\n\nexport const fetchTrendingSearchesIfNeeded = () => async (\n dispatch,\n getState\n) => {\n const { status } = getState().views.startPage.trendingSearches;\n\n if (status !== 'NOT_FETCHED') return;\n\n const isTrendingSearchesFromMlEnabled = getState().environment\n .featureSwitches['trending-searches-from-ml'];\n\n dispatch(setTrendingSearchesStatusAction({ status: 'LOADING' }));\n\n const searchesResult = isTrendingSearchesFromMlEnabled\n ? await getTrendingSearchesPersonalisedSuggestions()\n : await getTrendingSearchesCms();\n\n const newStatus = searchesResult.length > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(\n setTrendingSearchesAction({ items: searchesResult, status: newStatus })\n );\n};\n\nexport const fetchWishList = () => async (dispatch, getState) => {\n const { status } = getState().views.startPage.wishList;\n if (status === 'LOADING') return;\n\n dispatch(setWishListStatusAction({ status: 'LOADING' }));\n\n const items = await getWishListItems();\n dispatch(itemActions.add(items));\n\n const itemIds = items.map(item => item.itemId);\n dispatch(itemActions.addItemsToWishList(itemIds));\n const newStatus = items.length > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(setWishListAction({ itemIds: itemIds, status: newStatus }));\n};\n\nexport const fetchFavouriteSellers = () => async (dispatch, getState) => {\n const { status } = getState().views.startPage.favouriteSellers;\n if (status === 'LOADING') return;\n\n const isSellerSuggestionsEnabled = getState().environment.featureSwitches[\n 'seller-suggestions'\n ];\n\n dispatch(setFavouriteSellersStatusAction({ status: 'LOADING' }));\n\n const shippingCountryCode = getState().shippingRegion.shippingCountry\n .countryCodeIso2;\n const promise = getFavouriteSellers(shippingCountryCode);\n const suggestionsPromise =\n isSellerSuggestionsEnabled && getSellerSuggestions(shippingCountryCode);\n const { favouriteSellers = [], items = [], totalItems = 0 } = await promise;\n dispatch(itemActions.add(items));\n\n const itemIds = items.map(item => item.itemId);\n\n const newStatus = totalItems > 0 ? 'HAS_DATA' : 'HAS_NO_DATA';\n dispatch(\n setFavouriteSellersAction({\n sellers: favouriteSellers,\n itemIds,\n totalItems,\n status: newStatus\n })\n );\n\n if (isSellerSuggestionsEnabled) {\n const sellerSuggestions = await suggestionsPromise;\n dispatch(\n setFavouriteSellersAction({\n sellerSuggestions\n })\n );\n }\n};\n","export const selectStartPageStatus = state => state.views.startPage.status;\n\nexport const selectStartPageHeader = state =>\n state.views.startPage.status === 'HAS_DATA'\n ? state.views.startPage.config.header\n : {};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport './start-page-hero-banner.scss';\n\nexport const StartPageHeroBanner = () => {\n const { bannerLinks } = useSelector(\n state => state.views.startPage.config.header\n );\n\n const content = (icon, text) => (\n <>\n {icon && icon.baseUrl && (\n \n )}\n {text}\n \n );\n\n return bannerLinks && bannerLinks.length > 0 ? (\n
    \n
    \n {bannerLinks.map(({ text, url, icon }) => (\n \n {url ? (\n \n {content(icon, text)}\n \n ) : (\n content(icon, text)\n )}\n
    \n ))}\n
    \n
    \n ) : null;\n};\n","import React from 'react';\nimport { CAROUSEL, HEADER } from './content-types';\n\nexport const getImageSizes = (\n imageCount,\n image,\n containerType,\n format = 'jpg&fl=progressive'\n) => {\n if (!image) {\n return {};\n }\n const { baseUrl } = image;\n\n const imageUrl = baseUrl + '?fm=' + format;\n\n if (containerType === HEADER) {\n return {\n srcSet: `${imageUrl}&w=1920 1920w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes: '100vw'\n };\n }\n\n if (containerType === CAROUSEL) {\n return {\n srcSet: `${imageUrl}&w=1250 1250w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes: '(max-width: 425px) 425px, (max-width: 768px) 768px, 1250px'\n };\n }\n\n let imageSizes;\n switch (imageCount) {\n case 1:\n imageSizes = {\n srcSet: `${imageUrl}&w=1230 1230w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 768px, 1230px'\n };\n break;\n case 2:\n imageSizes = {\n srcSet: `${imageUrl}&w=605 605w, ${imageUrl}&w=397 397w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 397px, 605px'\n };\n break;\n case 3:\n imageSizes = {\n srcSet: `${imageUrl}&w=605 605w, ${imageUrl}&w=397 397w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 397px, 605px'\n };\n break;\n default:\n imageSizes = {\n srcSet: `${imageUrl}&w=1250 1250w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 768px, 1250px'\n };\n break;\n }\n return imageSizes;\n};\n\nexport const getWebpImage = (imageCount, image, containerType) => {\n if (!image) {\n return {};\n }\n\n const imageSizes = getImageSizes(imageCount, image, containerType, 'webp');\n\n const { srcSet, sizes } = imageSizes;\n\n return ;\n};\n","import{useState as e,useEffect as n}from\"react\";function t(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function o(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:null:!0===navigator.connection.saveData}};if(c=!(\"undefined\"!=typeof navigator&&\"deviceMemory\"in navigator))u={unsupported:c};else{var v=\"memory\"in performance?performance.memory:null;u={unsupported:c,deviceMemory:navigator.deviceMemory,totalJSHeapSize:v?v.totalJSHeapSize:null,usedJSHeapSize:v?v.usedJSHeapSize:null,jsHeapSizeLimit:v?v.jsHeapSizeLimit:null}}var l,y=function(e){return c&&e?o({},u,{},e):o({},u)};l=\"undefined\"!=typeof navigator&&\"hardwareConcurrency\"in navigator?{unsupported:!1,numberOfLogicalProcessors:navigator.hardwareConcurrency}:{unsupported:!0};var s=function(){return o({},l)};export{f as useNetworkStatus,p as useSaveData,y as useMemoryStatus,s as useHardwareConcurrency};\n//# sourceMappingURL=index.module.js.map\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNetworkStatus } from 'react-adaptive-hooks';\nimport { getCurrentBreakpoint } from 'tradera-utils/breakpoints';\nimport {\n isMobile,\n isTablet,\n isDesktop\n} from 'tradera-components/breakpoint/breakpoint';\nimport './media-item.scss';\n\nconst Video = ({ video, poster }) => {\n const {\n largeUrl: videoLarge,\n mediumUrl: videoMedium,\n smallUrl: videoSmall\n } = video;\n\n const [loops, setLoops] = useState(0);\n\n const videoRef = useRef(null);\n\n const playVideo = async video => {\n try {\n await video.play();\n } catch (err) {\n return;\n }\n };\n\n const currentBreakpoint = getCurrentBreakpoint();\n\n const isMobileBreakpoint = isMobile(currentBreakpoint);\n const isTabletBreakpoint = isTablet(currentBreakpoint);\n const isDesktopBreakpoint = isDesktop(currentBreakpoint);\n\n const handleVideoEnded = useCallback(() => {\n const video = videoRef.current;\n let videoLoops;\n\n // Set number of loops depending on video length\n if (video.duration > 30) {\n videoLoops = 2;\n } else if (video.duration > 10) {\n videoLoops = 4;\n } else {\n videoLoops = 8;\n }\n\n if (loops < videoLoops) {\n playVideo(video);\n }\n setLoops(loops + 1);\n }, [loops]);\n\n useEffect(() => {\n const videoElement = videoRef.current;\n videoElement.addEventListener('ended', handleVideoEnded);\n return () => {\n videoElement.removeEventListener('ended', handleVideoEnded);\n };\n });\n\n return (\n
    \n \n {isDesktopBreakpoint && (\n \n )}\n {isTabletBreakpoint && (\n \n )}\n {isMobileBreakpoint && (\n \n )}\n \n
    \n );\n};\n\nconst MediaItem = ({\n alternativeText,\n heading,\n imageSizes,\n image,\n video,\n webpImage\n}) => {\n const { effectiveConnectionType } = useNetworkStatus();\n\n if (!image) {\n return null;\n }\n\n const { srcSet, sizes } = imageSizes;\n\n const { largeUrl, mediumUrl, smallUrl } = image;\n\n //Return image instead of video if on slow connection\n let media;\n switch (effectiveConnectionType) {\n case 'slow-2g':\n case '2g':\n case '3g':\n media = (\n \n {webpImage && webpImage}\n \n \n );\n break;\n default:\n media = video ? (\n