{"version":3,"sources":["webpack:///./src/frontend/components/item-card/item-card-parts/end-time-label.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/constants.js","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image-modes.js","webpack:///./src/frontend/components/errors/not-found-error.jsx","webpack:///./src/frontend/components/transitions/transitions.jsx","webpack:///./src/frontend/apps/syi/script/app_react/services/draft-service.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/check-fill.svg","webpack:///./src/frontend/state/views/syi/reducers/charity.js","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu.jsx","webpack:///./src/frontend/apps/tradera/routes.js","webpack:///./src/frontend/components/dialog/dialog-modal.jsx","webpack:///./src/frontend/state/bank-id/action-types.js","webpack:///./src/frontend/apps/tradera/components/start-page/analytics.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bid-details.jsx","webpack:///./node_modules/react-hot-loader/index.js","webpack:///./src/frontend/state/push-notifications/constants.js","webpack:///./src/frontend/components/rating-stars/rating-utils.js","webpack:///./src/frontend/components/rating-stars/rating-stars.module.scss","webpack:///./src/frontend/components/rating-stars/rating-stars.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/storage.js","webpack:///./src/frontend/apps/my-tradera/shipping-checkout/payment/braintree-drop-in.jsx","webpack:///./src/frontend/state/ads/initial-state.js","webpack:///./src/frontend/state/ads/actions.js","webpack:///./src/frontend/components/messaging/messaging-modal.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/ads/ad-slot-utilities.js","webpack:///./src/frontend/state/views/view-item/api.js","webpack:///./src/frontend/utils/cache.js","webpack:///./src/frontend/components/item-card/item-card-parts/wish-list-button.jsx","webpack:///./src/frontend/state/ui/helpers.js","webpack:///./src/frontend/state/ui/reducer.js","webpack:///./src/frontend/hooks/use-fetch-data.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/filters.js","webpack:///./src/frontend/state/views/checkout/utils.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/filters.js","webpack:///./src/frontend/components/errors/general-error.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/apps/my-tradera/app/state/actions/my-tradera-items.js","webpack:///./src/frontend/state/views/syi/reducers/buyer-region.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/overlay.module.scss","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/overlay.jsx","webpack:///./src/frontend/apps/tradera/components/vip/helpers/navigation-helper.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/image.svg","webpack:///./src/frontend/utils/format-time-left.js","webpack:///./src/frontend/state/views/invoice-checkout/initial-state.js","webpack:///./src/frontend/state/discover/initial-state.js","webpack:///./src/frontend/state/discover/actions.js","webpack:///./node_modules/react-hot-loader/dist/react-hot-loader.production.min.js","webpack:///./src/frontend/state/multi-currency/actions.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/tradera/logo.jsx","webpack:///./src/frontend/components/site-header/cart-link.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-burger.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item-separator.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item-button.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item.jsx","webpack:///./src/frontend/components/site-header/dropdown-menu-item-expandable.jsx","webpack:///./src/frontend/hooks/use-menu-height-fix.js","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/site-header/sign-up-link.jsx","webpack:///./src/frontend/components/portals/modal-portal.jsx","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/components/site-header/hover-menu/hover-menu-item.module.scss","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-item.jsx","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-separator.module.scss","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-separator.jsx","webpack:///./src/frontend/components/site-header/site-header.analytics.js","webpack:///./src/frontend/components/site-header/buy-menu.jsx","webpack:///./src/frontend/components/site-header/buying-link.jsx","webpack:///./src/frontend/components/site-header/how-tradera-works.jsx","webpack:///./src/frontend/components/site-header/new-listing-link.jsx","webpack:///./src/frontend/components/profile-menu/expandable-localization-menu-item.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/currency-select.module.scss","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/currency-select.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/chat-bot-loader.js","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/components/site-header/search-button.jsx","webpack:///./src/frontend/components/site-header/watch-list-menu.jsx","webpack:///./src/frontend/components/site-header/wishlist-link.jsx","webpack:///./src/frontend/components/site-header/ongoing-auctions-link.jsx","webpack:///./src/frontend/components/site-header/sell-menu.jsx","webpack:///./src/frontend/components/site-header/selling-link.jsx","webpack:///./src/frontend/components/toasts/tradera-toast-container.jsx","webpack:///./src/frontend/components/site-header/currency-link.jsx","webpack:///./src/frontend/components/site-header/site-header.jsx","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./src/frontend/localization/map-currency-code-to-country-code.js","webpack:///./src/frontend/hooks/use-is-tablet.js","webpack:///./src/frontend/components/breakpoint/breakpoint.js","webpack:///./src/frontend/apps/syi/script/app_react/services/user-data.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/filters.js","webpack:///./src/frontend/apps/my-tradera/app/constants/page.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/suggestions-api.js","webpack:///./src/frontend/state/views/tradera-shop/api.js","webpack:///./src/frontend/state/views/tradera-shop/initial-state.js","webpack:///./src/frontend/state/views/tradera-shop/actions.js","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/single-feedback-dialog.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/single-feedback-dialog.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-shipping-display.jsx","webpack:///./src/frontend/hooks/use-on-mount.js","webpack:///./src/frontend/components/item-card/hooks.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/index.js","webpack:///./src/frontend/utils/login.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/my-tradera.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/list-helper.js","webpack:///./src/frontend/constants/surveys.js","webpack:///./src/frontend/state/push-notifications/helpers.js","webpack:///./src/frontend/state/push-notifications/push-notifications-slice.js","webpack:///./src/frontend/apps/tradera/components/vip/helpers/time-left.jsx","webpack:///./src/frontend/apps/tradera/components/vip-shared/more-info-fold-out.jsx","webpack:///./src/frontend/apps/my-tradera/app/data/leave-feedback-service.js","webpack:///./src/frontend/state/personalisation/actions.js","webpack:///./src/frontend/state/personalisation/api.js","webpack:///./src/frontend/state/views/report-item/reducer.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/payloads/initial-payload.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/purchase-order-actions-helper-seller.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/purchase-order-actions-helper-buyer.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/purchase-actions.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/purchase-order.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/payloads/wait-for-backend.js","webpack:///./src/frontend/apps/my-tradera/app/components/hoc/with-page-init.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/hoc/make-responsive.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/hoc/make-sticky.jsx","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-helper.js","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/my-tradera/app/helpers/commands-helper.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/seller-commands.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/buyer-commands.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/my-tradera-items.js","webpack:///./src/frontend/helpers/shipping-validation-errors.js","webpack:///./src/frontend/state/views/shipping-checkout/actions.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/payments-actions.js","webpack:///./src/frontend/state/views/checkout/initial-state.js","webpack:///./src/frontend/components/item-card/item-card-parts/new-today-label.jsx","webpack:///./src/frontend/hooks/use-day-js.js","webpack:///./src/frontend/components/content-switch/content-switch.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons/instagram.svg","webpack:///./src/frontend/constants/storage.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/storage-service.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/frontend/state/page/action-types.js","webpack:///./node_modules/react-helmet/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./src/frontend/apps/syi/script/app_react/components/info-tooltip.module.scss","webpack:///./src/frontend/apps/syi/script/app_react/components/info-tooltip.jsx","webpack:///./src/frontend/hooks/use-scroll-to-top-on-mount.jsx","webpack:///./node_modules/react-lazyload/lib/index.js","webpack:///./src/frontend/state/ui/action-types.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-payment-summary.jsx","webpack:///./src/frontend/components/combined-shipping-badge/combined-shipping-badge.module.scss","webpack:///./src/frontend/components/combined-shipping-badge/combined-shipping-badge.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/search-input.jsx","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/router.js","webpack:///./src/frontend/state/views/shipping-checkout/utils.js","webpack:///./src/frontend/hooks/use-is-loggedin.js","webpack:///./src/frontend/state/views/start-page/initial-state.js","webpack:///./src/frontend/state/views/start-page/reducer.js","webpack:///./src/frontend/apps/tradera/components/start-page/last-chance/last-chance.jsx","webpack:///./src/frontend/localization/countries.js","webpack:///./src/frontend/constants/page-types.js","webpack:///./src/frontend/state/views/syi/selectors/syi.js","webpack:///./src/frontend/state/views/report-item/constants.js","webpack:///./src/frontend/state/ads/constants.js","webpack:///./src/frontend/components/recommendations/recommendations.jsx","webpack:///./src/frontend/components/quick-view/quick-view-modal.jsx","webpack:///./src/frontend/components/international-identification-modal/mit-id-logo.module.scss","webpack:///./src/frontend/components/international-identification-modal/mit-id-logo.jsx","webpack:///./src/frontend/state/ads/selectors.js","webpack:///./src/frontend/state/views/invoice-checkout/selector.js","webpack:///./src/frontend/apps/tradera/components/discover/constants/constants.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-top-description.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/packages/analytics.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/utils/register-live-updates.js","webpack:///./src/frontend/apps/tradera/index.js","webpack:///./src/frontend/components/application-error-boundary/application-error-boundary.jsx","webpack:///./src/backend/utils/error.js","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/smiley.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/figure.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/figure.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/rating.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/rating.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/detailed-rating.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/feedbacks-actions.js","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/detailed-rating.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/item-not-received.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/unpaid-item.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/comment-input.module.scss","webpack:///./src/frontend/components/form-controls/auto-height-text-area.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/comment-input.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/leave-feedback-helper.js","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/form.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/details.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/details.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/leave-feedback-item.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/divider.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/divider.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/dialog.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/feedbacks-reducer.js","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/page-header.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/submit-button.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/sticky-container.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/sticky-container.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/leave-feedback.module.scss","webpack:///./src/frontend/apps/my-tradera/app/components/leave-feedback/leave-feedback.jsx","webpack:///./src/frontend/utils/array.js","webpack:///./src/frontend/components/wait-for-consent-api-loaded/wait-for-consent-api-loaded.jsx","webpack:///./src/frontend/utils/assert.js","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/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/helpers/shipping-display-text.js","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/components/item-card/item-card-parts/background-image-loader.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image.jsx","webpack:///./node_modules/next/dist/shared/lib/loadable.js","webpack:///./src/frontend/state/views/shipping-checkout/reducer.js","webpack:///./src/frontend/utils/script.js","webpack:///./src/frontend/apps/tradera/components/discover/helpers/search-gtm.js","webpack:///./src/frontend/state/ads/action-types.js","webpack:///./src/frontend/localization/map-language-code-to-language-key.js","webpack:///./src/frontend/components/item-card/item-card-parts/on-display-badge.jsx","webpack:///./node_modules/react-lazyload/lib/utils/debounce.js","webpack:///./src/frontend/state/categories/action-types.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/help.svg","webpack:///./src/frontend/state/bank-id/modal-state.js","webpack:///./src/frontend/state/items/action-types.js","webpack:///./src/frontend/state/items/initial-state.js","webpack:///./src/frontend/state/items/actions.js","webpack:///./src/frontend/components/atoms/button/button.jsx","webpack:///./src/frontend/components/page-head/page-head.jsx","webpack:///./src/frontend/components/loader/loader.jsx","webpack:///./node_modules/react-lazyload/lib/utils/event.js","webpack:///./src/frontend/components/form-controls/radio-switch.jsx","webpack:///./src/frontend/apps/my-tradera/invoice-checkout/payment/braintree-drop-in.jsx","webpack:///./src/frontend/state/views/syi/helpers/image-helpers.js","webpack:///./src/frontend/state/views/view-item/item-state-helper.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-container.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/bids-label.jsx","webpack:///./src/frontend/components/recommendations/recommendations-requests.js","webpack:///./node_modules/next/dist/shared/lib/loadable-context.js","webpack:///./src/frontend/components/item-card/item-card-parts/discount-badge.jsx","webpack:///./node_modules/next/dynamic.js","webpack:///./src/frontend/state/views/checkout/api.js","webpack:///./src/frontend/state/views/view-item/constants.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/item-labels.js","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/multi-currency/multi-currency.jsx","webpack:///./src/frontend/components/site-header/localization-region-picker.jsx","webpack:///./src/frontend/components/site-header/localization-link.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/shipping-country-select-dropdown.module.scss","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/state/views/invoice-checkout/reducer.js","webpack:///./src/frontend/hooks/use-is-mobile.js","webpack:///./src/frontend/constants/state.js","webpack:///./src/frontend/apps/my-tradera/app/state/action-types/purchase-order.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-actions-helper.js","webpack:///./src/frontend/components/payment-method/payment-method-logo.module.scss","webpack:///./src/frontend/components/payment-method/payment-method-logo.jsx","webpack:///./src/frontend/state/views/invoice-checkout/utils.js","webpack:///./src/frontend/state/views/invoice-checkout/actions.js","webpack:///./src/frontend/hooks/use-page-meta.jsx","webpack:///./src/frontend/state/ads/reducer.js","webpack:///./src/frontend/state/bank-id/initial-state.js","webpack:///./src/frontend/state/bank-id/reducer.js","webpack:///./src/frontend/state/categories/initial-state.js","webpack:///./src/frontend/state/categories/reducer.js","webpack:///./src/frontend/apps/tradera/components/discover/helpers/filter-states.js","webpack:///./src/frontend/state/discover/helpers.js","webpack:///./src/frontend/state/discover/reducer.js","webpack:///./src/frontend/state/init-data/reducer.js","webpack:///./src/frontend/state/items/reducer.js","webpack:///./src/frontend/state/member/reducer.js","webpack:///./src/frontend/state/page/reducer.js","webpack:///./src/frontend/state/personalisation/initial-state.js","webpack:///./src/frontend/state/personalisation/reducer.js","webpack:///./src/frontend/state/views/syi/reducers/draft.js","webpack:///./src/frontend/state/views/syi/reducers/category.js","webpack:///./src/frontend/state/views/syi/reducers/payment.js","webpack:///./src/frontend/state/views/syi/reducers/syi.js","webpack:///./src/frontend/state/views/syi/reducers/errors.js","webpack:///./src/frontend/state/views/syi/reducers/shipping/shipping-selectors.js","webpack:///./src/frontend/state/views/syi/reducers/shipping/validate.js","webpack:///./src/frontend/state/views/syi/reducers/shipping/shipping-reducer.js","webpack:///./src/frontend/state/views/syi/reducers/template.js","webpack:///./src/frontend/state/views/syi/reducers/item-condition.js","webpack:///./src/frontend/state/views/syi/reducers/campaign-code.js","webpack:///./src/frontend/state/views/syi/reducers/fees.js","webpack:///./src/frontend/state/views/syi/reducers/item-duration.js","webpack:///./src/frontend/state/views/syi/reducers/extra-features.js","webpack:///./src/frontend/state/views/syi/reducers/images.js","webpack:///./src/frontend/state/views/syi/reducers/price.js","webpack:///./src/frontend/state/views/syi/reducers/edit.js","webpack:///./src/frontend/state/views/syi/reducers/long-description.js","webpack:///./src/frontend/state/views/syi/reducers/scroll.js","webpack:///./src/frontend/state/views/syi/reducers/charity-campaign.js","webpack:///./src/frontend/state/views/syi/reducers/attributes-helpers.js","webpack:///./src/frontend/state/views/syi/reducers/attributes.js","webpack:///./src/frontend/state/views/syi/reducers/member-consent.js","webpack:///./src/frontend/state/views/syi/reducers/preview.js","webpack:///./src/frontend/state/views/syi/reducer.js","webpack:///./src/frontend/state/views/syi/reducers/drafts.js","webpack:///./src/frontend/state/views/syi/reducers/language.js","webpack:///./src/frontend/state/views/syi/reducers/templates.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/purchase-order.js","webpack:///./src/frontend/state/views/my-tradera/reducer.js","webpack:///./src/frontend/state/views/tradera-shop/reducer.js","webpack:///./src/frontend/state/views/reducer.js","webpack:///./src/frontend/state/status/reducer.js","webpack:///./src/frontend/state/root-reducer.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/enums.js","webpack:///./src/frontend/state/views/shipping-checkout/selector.js","webpack:///./src/frontend/components/item-card/item-card-parts/disacount-price-label.jsx","webpack:///./src/frontend/state/views/cart/api.js","webpack:///./src/frontend/state/views/cart/actions.js","webpack:///./src/frontend/hooks/use-qualtive.js","webpack:///./src/frontend/components/ads/ad.jsx","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-actions-helper-seller.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-actions-helper-buyer.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/item-actions.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/items.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/animate-on-value-change.module.scss","webpack:///./src/frontend/apps/tradera/components/vip/bidding/animate-on-value-change.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/fixed-price-label.jsx","webpack:///./src/frontend/apps/tradera/components/checkout/payment/buyer-protection-info.jsx","webpack:///./src/frontend/apps/tradera/app.jsx","webpack:///./src/frontend/state/views/shipping-checkout/api.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/trashcan.svg","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-seller-name.jsx","webpack:///./node_modules/react-fast-compare/index.js","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/frontend/localization/localized-price.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:///./src/frontend/components/ads/holid-ad-helper.js","webpack:///./src/frontend/components/ads/holid-ad.jsx","webpack:///./src/frontend/components/ads/holid-ad.module.scss","webpack:///./src/frontend/components/ads/holid-ad-wrapper.jsx","webpack:///./src/frontend/components/ads/localized-dfp-ad.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/price-label.jsx","webpack:///./src/frontend/state/views/syi/reducers/short-description.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-header.jsx","webpack:///./src/frontend/apps/my-tradera/app/helpers/payloads/purchase-order.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/purchase-order.js","webpack:///./src/frontend/state/state-initializer.js","webpack:///./src/frontend/state/init-data/actions.js","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu.module.scss","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/helpers/checkout-errors.js","webpack:///./src/frontend/apps/tradera/components/start-page/start-page.module.scss","webpack:///./src/frontend/apps/tradera/components/vip/api/vip-api-constants.js","webpack:///./src/frontend/state/views/view-item/reducer.js","webpack:///./src/frontend/apps/syi/script/app_react/services/config.js","webpack:///./src/frontend/state/views/shipping-checkout/initial-state.js","webpack:///./src/frontend/constants/item-types.js","webpack:///./src/frontend/apps/tradera/components/start-page/content-types.js","webpack:///./src/frontend/hooks/use-ticker.js","webpack:///./src/frontend/hooks/use-countdown.js","webpack:///./src/frontend/state/views/shipping-calculator/reducer.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/messaging-helpers.js","webpack:///./src/frontend/components/shipping-product/shipping-options.jsx","webpack:///./src/frontend/helpers/filter-categories-helper.js","webpack:///./src/frontend/apps/tradera/components/vip-shared/separators.module.scss","webpack:///./src/frontend/apps/tradera/components/vip/helpers/analytics.js","webpack:///./src/frontend/state/discover/action-types.js","webpack:///./src/EbaySweden.TouchWeb/static/script/libs/triot.js","webpack:///./src/frontend/hooks/use-is-desktop.js","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/info-tooltip.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/leaf.svg","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/shipping-options.module.scss","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/options-display.jsx","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/takeaway-options-display.jsx","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/shipping-options.jsx","webpack:///./src/frontend/apps/tradera/components/vip-shared/shipping-options/translate-buyer-region-text.js","webpack:///./src/frontend/state/configure-store.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/item-columns.js","webpack:///./src/frontend/state/ui/actions.js","webpack:///./src/frontend/state/ui/api.js","webpack:///./src/frontend/state/member/api.js","webpack:///./src/frontend/state/member/initial-state.js","webpack:///./src/frontend/state/member/actions.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/EbaySweden.TouchWeb/static/script/components/modals/modal-footer.jsx","webpack:///./src/frontend/state/init-data/action-types.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/route-helper.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/language-select.module.scss","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/translation-preference-menu-item.module.scss","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/translation-preference-menu-item.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/language-select.jsx","webpack:///./src/frontend/state/views/cart/reducer.js","webpack:///./src/frontend/state/views/cart/initial-state.js","webpack:///./src/frontend/state/views/tradera-shop/action-types.js","webpack:///./src/frontend/state/language/initial-state.js","webpack:///./src/frontend/state/language/reducer.js","webpack:///./src/frontend/apps/my-tradera/app/components/listing/item/info-item-components.js","webpack:///./src/frontend/apps/tradera/components/vip-shared/info-section.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/on-ready.js","webpack:///./src/frontend/components/wacko-bidder/card-verification-modal.jsx","webpack:///./src/frontend/components/carousels/arrows.jsx","webpack:///./src/frontend/components/carousels/basic/basic.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel-zoom/view-item-video.module.scss","webpack:///./src/frontend/components/carousels/view-item-carousel-zoom/view-item-video.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/image-gallery-modal/image-gallery-modal.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel-zoom/view-item-image.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel-zoom/view-item-carousel-zoom.jsx","webpack:///./src/frontend/state/shipping-region/initial-state.js","webpack:///./src/frontend/state/shipping-region/actions.js","webpack:///./src/frontend/state/shipping-region/api.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.module.scss","webpack:///./src/frontend/components/site-footer/footer-links.jsx","webpack:///./src/frontend/components/site-footer/dhl.svg","webpack:///./src/frontend/components/site-footer/footer-partners.module.scss","webpack:///./src/frontend/components/site-footer/footer-partners.jsx","webpack:///./src/frontend/components/site-footer/site-footer.module.scss","webpack:///./src/frontend/components/site-footer/site-footer.jsx","webpack:///./src/frontend/components/messaging/get-messaging-url.js","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-buttons-list.jsx","webpack:///./src/frontend/apps/my-tradera/app/constants/text-strings.js","webpack:///./src/frontend/apps/tradera/components/discover/components/search-results/ads/search-results-ads.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/simple-modal.jsx","webpack:///./src/frontend/state/multi-currency/reducer.js","webpack:///./src/frontend/utils/allowed-buyer-region.js","webpack:///./src/frontend/state/discover/api.js","webpack:///./src/frontend/components/combined-shipping-badge/combined-shipping-badge-link.jsx","webpack:///./src/frontend/constants/sentry-redux-filters.js","webpack:///./src/frontend/utils/sentry/redux.js","webpack:///./src/frontend/utils/set-nested-object-value.js","webpack:///./src/frontend/state/views/invoice-checkout/api.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/formats.js","webpack:///./src/frontend/apps/tradera/components/discover/components/search-results/items-with-stiched-ads.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-bottom-buttons.jsx","webpack:///./src/frontend/apps/my-tradera/app/constants/column-definitions.js","webpack:///./src/frontend/utils/string.js","webpack:///./src/frontend/components/item-card/generate-item-card-placeholders.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-body.jsx","webpack:///./src/frontend/apps/my-tradera/app/constants/urls.js","webpack:///./src/frontend/components/flag/flag.jsx","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-currency-conversion-info-modal.jsx","webpack:///./src/frontend/constants/transaction-types.js","webpack:///./src/frontend/components/site-header/hover-menu/constants.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/recommendations/recommendation-loading-spinners.jsx","webpack:///./src/frontend/apps/my-tradera/app/data/shipping-providers.js","webpack:///./node_modules/next/dist/shared/lib/dynamic.js","webpack:///./src/frontend/helpers/category-icon-helper.js","webpack:///./src/frontend/state/language/api.js","webpack:///./src/frontend/state/language/actions.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/plus.svg","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-button.jsx","webpack:///./src/frontend/state/ui/initial-state.js","webpack:///./src/frontend/components/errors/error-container.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/constants/strings.js","webpack:///./src/frontend/state/items/api.js","webpack:///./src/frontend/components/breadcrumbs/breadcrumbs.jsx","webpack:///./src/frontend/apps/tradera/helpers/optional-lang.js","webpack:///./src/frontend/state/views/checkout/reducer.js","webpack:///./node_modules/react-lazyload/lib/utils/scrollParent.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/scroll-to-initial-scroll.js","webpack:///./node_modules/react-lazyload/lib/utils/throttle.js","webpack:///./src/frontend/hooks/use-format-utc-date-in-swedish-timezone.js","webpack:///./src/frontend/components/item-card/item-card-parts/settings-button.jsx","webpack:///./src/frontend/apps/my-tradera/app/utils/feature-toggles.js","webpack:///./src/frontend/state/page/initial-state.js","webpack:///./src/frontend/state/page/actions.js","webpack:///./src/frontend/utils/location.js","webpack:///./src/frontend/apps/my-tradera/app/utils/init-data.js","webpack:///./src/frontend/apps/my-tradera/app/utils/fetch.js","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/apps/my-tradera/app/state/reducers/cookies.js","webpack:///./src/frontend/apps/my-tradera/app/state/payouts/reducer.js","webpack:///./src/frontend/apps/my-tradera/app/state/payouts/initial-state.js","webpack:///./src/frontend/components/site-subheader/site-subheader.module.scss","webpack:///./src/frontend/components/site-subheader/site-subheader.jsx","webpack:///./node_modules/@tradera/blueprint/theme/icons2/combined-shipping.svg","webpack:///./src/frontend/state/views/shipping-calculator/selectors.js","webpack:///./src/frontend/state/views/profile/reducer.js","webpack:///./src/frontend/state/views/profile/initial-state.js","webpack:///./src/frontend/state/views/view-item/selectors.js","webpack:///./src/frontend/apps/tradera/components/vip/api/vip-api.js","webpack:///./src/frontend/helpers/get-current-page-helper.js","webpack:///./src/frontend/state/categories/actions.js","webpack:///./src/frontend/state/categories/api.js","webpack:///./src/frontend/components/item-card/config.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/ajax.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/payments-reducer.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-item-display.jsx","webpack:///./src/frontend/components/portals/loading-portal.jsx","webpack:///./src/frontend/hooks/use-user-agent.js","webpack:///./src/frontend/constants/breakpoints.js","webpack:///./src/EbaySweden.TouchWeb/static/script/packages/debounce.js","webpack:///./src/frontend/state/member/action-types.js","webpack:///./src/frontend/state/shipping-region/reducer.js","webpack:///./src/frontend/utils/history.js","webpack:///./src/frontend/state/views/report-item/api.js","webpack:///./src/frontend/state/views/report-item/actions.js"],"names":["EndTimeLabel","className","endDate","isActive","EndTimeLabelWithCountDown","EndTimeLabelEnded","t","useTranslator","formatUtcDateInSwedishTimeZone","useFormatUtcDateInSwedishTimeZone","useCountdown","formatItemCardTimeLeft","timeLeftText","isCountdownDone","isCountdownEnabled","isTimeLeftBelowWarningLimit","time","propTypes","defaultProps","ROLES","BUYER","SELLER","MAX_COMMENT_LENGTH","UNSET_RATING_VALUE","MIN_RATING_VALUE","MAX_RATING_VALUE","RATING_NAMES","DESCRIPTION","COMMUNICATION","SHIPPING_TIME","SHIPPING_COST","PAYMENT_TIME","RATING_NAMES_SELLER","RATING_NAMES_BUYER","RATING_SETTINGS","name","titleKey","descriptionKeys","ITEM_CARD_IMAGE_MODES","SQUARE","NATURAL","NotFoundError","role","href","Expand","children","props","timeout","classNames","EnterFrom","from","unmountOnExit","EnterFade","isServer","Error","defaultDrafts","window","sellingGlobalData","resetUnwantedProperties","draft","itemId","isNullOrUndefined","val","getType","hasOpeningPrice","openingBid","hasFixedPrice","fixedPrice","ensureApplicationId","metadata","applicationId","ensureBraintree","userData","braintree","isBraintreeOnly","paymentOptions","length","push","loadDraft","draftId","a","httpClient","get","ENDPOINTS","SELLING_DRAFT","response","data","loadDrafts","SELLING_DRAFTS","items","loadDraftFromTemplate","templateId","post","SELLING_DRAFT_LOAD_FROM_TEMPLATE","draftReason","saveDraft","SELLING_DRAFT_SAVE","errorCode","getCustomEndTime","itemDuration","customEndTimeHour","customEndTimeMinute","deleteDrafts","draftIds","SELLING_DRAFTS_DELETE","isPureBin","isAuctionBin","getDefaultTemplateValue","propertyName","newTemplate","loadDefaultDraft","newItem","allowedBuyerRegion","undefined","loadDefaultTemplateDraft","buildDraftFromState","syiSlice","MemberId","memberId","restart","publishedPromoted","publishedHighlighted","createdDate","lastModifiedDate","publishedDate","publishedAsItemType","reference","additionalDescriptions","templateName","shortDescription","longDescription","descriptionLanguageCodeIso2","currency","resellPartner","categoryId","category","draftCategoryId","categoryPath","draftCategoryPath","images","slots","i","slot","imageId","isListingImage","draftImage","listingImage","rotationDegrees","filename","imageGroupId","imageUrl","resolveImages","price","reservePrice","isPureBinSelected","auctionBinPrice","vat","durationDays","customEndTime","shippingOptions","shipping","selectedShippingOptions","fromCountry","payment","selectedPaymentOptions","itemCondition","buyerRegion","selectedBuyerRegion","campaignCode","campaignCodeId","displayPromoted","extraFeatures","displayHighlighted","charityId","charityCampaign","featureToggles","isPennybridgeCharitiesEnabled","charity","allowZeroDayAuctions","version","attributeValues","termAttributeValues","attributes","categoryAttributes","map","attribute","values","options","acc","option","value","id","backingField","userGenerated","deleteDraft","_extends","bind","target","arguments","source","key","Object","prototype","hasOwnProperty","call","apply","this","styles","React","createElement","xmlns","viewBox","d","fillRule","clipRule","isNewDraft","location","pathname","queryParamCharityId","search","preselectCharity","initialState","anonymous","Number","description","logoUrl","percentageToDonate","forceFreeShipping","isFreeShippingPaidByProvider","freeShippingPaidByProviderName","charitySlice","createSlice","reducers","setCharityId","state","payload","setCharityInfo","setCharityAnonymous","setCharityFromDraft","resetCharity","setCharityShippingInfo","actions","HoverMenu","Component","show","hoverContainer","toggleShow","clearTimeout","toggleShowTimeoutId","setTimeout","setState","componentDidUpdate","prevProps","showMenu","render","hoverMenuContainer","onMouseLeave","hoverMenuArea","hoverMenuAreaContent","traderaRoutes","startPage","path","OPTIONAL_LANG","pageType","PAGE_TYPES","START_PAGE","strict","exact","viewItemPage","VIEW_ITEM_PAGE","mustLoadDataBeforePageTracking","traderaShopPage","TRADERA_SHOP_PAGE","causesInfoPage","DEFAULT","causesPage","CUSTOM_RESULT_PAGE","causePage","upiPage","discontiunedSalePage","discontiunedSaleConfirmationPage","inrPage","brandPage","BRAND_PAGE","brandListPage","BRAND_LIST_PAGE","campaignPage","categoryListPage","CATEGORY_LIST","checkoutConfirmationPage","checkoutPage","cartPage","searchResultPage","SEARCH_RESULT_PAGE","favouriteSellersPage","FAVOURITE_SELLERS_PAGE","landing_GantXTradera","landing_StadiumXTradera","profilePage","PROFILE_PAGE","recommendationsPage","ENDLESS_RECOMMENDATIONS_PAGE","reportItemPage","REPORT_ITEM_PAGE","verifyPage","CombinedShippingInfoPage","ShippingInfoPage","swishApp2AppCallbackPage","ValuationPage","PrintPage","categoryResultPage","CATEGORY_RESULT_PAGE","messagingiframe","legacyCategoryResultPage","notFoundPage","ERROR_PAGE","mobileOnlyProps","maxWidth","BREAKPOINT_SIZES","BREAKPOINTS","SM","max","desktopOnlyProps","minWidth","MD","min","allDeviceProps","XS","DialogModal","getDefaultMediaProps","mobile","desktop","mediaQueryProps","dismissOnOverlayClick","onDismiss","mediaQuery","mobileFullscreen","style","RESET","START_AUTH","IN_PROGRESS","COMPLETED","SET_ERROR","CLOSE","containerTypes","POPULAR_CATEGORIES","CAROUSEL","PICKS_FOR_YOU","LAST_CHANCE","INSTAGRAM_FEED","RECENTLY_VIEWED","HEADER","FAVOURITE_SELLERS","trackContainerClick","containerType","trackingId","Analytics","trackEvent","action","label","BidDetails","bidCount","hasEnded","isEnding","itemState","leadingBidAmount","onShowBids","winningBidAmount","amountDetails","getAmountDetails","amountTitle","title","amountValue","ITEM_STATES","ENDED_AUCTION_WITH_WINNING_BID","trigger","amount","timeTitle","timeValue","ENDED_CANCELLED","bidTitle","onClick","e","preventDefault","bidValue","showBidCount","ENDED_AUCTION_BIN_BOUGHT_AS_BIN","hasLeadingBid","hasLostLeadingBid","leadingBid","hasBids","module","exports","MODAL_TYPES","default","wishlistReminders","selling","CHANNEL_TAG_GROUPS","buyingListingOutbid","buyingListingWon","sellingListingFirstBid","sellingListingAllBids","sellingListingSold","sellingPaymentReceived","rating","toFixed","RatingStars","memberAlias","gaAttributes","link","dark","toLocalizedUrl","useUrlLocalizer","displayRating","utils","Stars","width","useLink","defaultStorage","storage","TEST_KEY","setItem","getItem","removeItem","testStorage","localStorage","constructor","size","index","keys","set","delete","clear","gdprSettings","GdprSettings","localStore","setFilter","JSON","parse","error","logger","contexts","getItemsByPrefix","prefix","stringify","stringifiedLength","clearByPrefix","STORAGE_KEYS","includes","isFunctionalEnabled","console","warn","paymentInstance","DropInSelected","paymentOption","onPaymentMethodRequestable","language","useCurrentLanguage","shipmentCheckoutId","useSelector","selectShippingPayment","totalCost","selectCheckoutSummary","fetchParams","useMemo","useFetchData","api","getBraintreeToken","isLoading","isRejected","isResolved","retryFetch","useEffect","dropIn","clientToken","initDropIn","paymentProvider","PAYMENT_OPTIONS","PAYPAL","APPLEPAY","GOOGLEPAY","updateConfiguration","minHeight","callback","err","dropinInstance","isPaymentMethodRequestable","on","paymentMethodRequestable","getDropInOptions","authorization","container","locale","vaultManager","dataCollector","kount","card","vault","allowVaultCardOverride","vaultCard","dropin","create","VISA_MASTERCARD","threeDSecure","applePay","googlePay","paypal","flow","displayName","paymentRequest","total","toString","requiredBillingContactFields","googlePayVersion","merchantId","transactionInfo","totalPriceStatus","totalPrice","currencyCode","allowedPaymentMethods","type","parameters","billingAddressRequired","billingAddressParameters","format","BraintreeDropIn","selected","dispatch","useDispatch","isNativeAppWithApplyPaySupport","environment","preselectedPaymentOption","qs","ignoreQueryPrefix","setSelectedPayment","isUpdating","selectShippingCheckout","checked","onChange","url","searchParams","disabled","htmlFor","getName","paymentMethod","initData","isTcfLoaded","gpt","gptData","adSenseQuery","adSenseShoppingPublisherId","initialize","actionTypes","INITIALIZE","setTcfLoaded","SET_TCF_LOADED","setAds","ads","SET_ADS","MESSAGING_STATES","MessagingModal","super","MESSAGING_REMOTE_URL","handleMessage","event","origin","indexOf","POST_MESSAGE_TYPE_PREFIX","messaging","handleClose","closeModal","setIframeRef","element","iframeElement","contentWindow","focus","participating","getMessagingUrl","componentDidMount","checkUserMessagingParticipation","recipientId","then","catch","addEventListener","componentWillUnmount","removeEventListener","src","item","onClose","scrolling","ref","NotParticipatingMessage","Loader","seller","alias","transaction","purchaseOrderId","withUrlLocalizer","mapDeviceNameToViewport","device","tablet","createGptSizeMapping","adFormats","sizes","split","adFormat","panorama","wide_skyscraper","half_page","medium_rectangle","mobile_rectangle","mobile_wideboard","mapSingleAdFormatToSizes","pre","cur","concat","mapManyAdFormatsToSizes","sizeMap","viewport","fetchDescription","languageCodeIso2","fromLanguageCodeIso2","utilizeCancelToken","cancel","cancelToken","axiosWithTokenRefresh","ITEM_DESCRIPTION","axiosConfigs","authenticated","params","finalizeResponse","handleError","getItemApi","preferredLanguageCode","status","API_ERRORS","IGNORE_ME","placeBidApi","onLoggedOut","bid","transactionTotal","potentialBidChange","isMaxBid","weightedBidValue","serverSecondsLeft","bidId","isSuccessful","leadingBidderMemberId","leadingBidMemberAlias","leadingMemberAlias","nextValidBidAmount","nextBidAmount","validationResult","placedBid","itemType","reservePriceReached","sellerMemberId","sellermemberId","startDate","bidInfo","analyticsData","myMaxBidAmount","message","LOGGED_OUT","getItemsFromSeller","getCombinedShippingUpsell","COMBINED_SHIPPING_UPSELL","CACHE_KEYS","MESSAGING_BADGES","RECENTLY_VIEWED_ITEMS","SYSTEM_MESSAGES","cache","store","keyPrefix","read","cached","expires","Date","now","write","ttl","remove","removeAll","expire","expireAll","caches","WishListButton","iconClassName","showText","toggled","text","iconClasses","join","combinedClassName","getSystemMessageAlertCount","systemMessages","InvoiceOverdue","PayoutFailed","PayoutReadyBankAccountMissing","SwishNumberMissing","HyperwalletPayeeVerificationRequired","getInitialState","toggleHeaderSearch","showHeaderSearch","openGdprModal","gdpr","modalOpen","closeGdprModal","openGdprSettings","settingsOpen","closeGdprSettings","openQuickView","itemIds","quickView","open","CONSTANTS","MODAL","OPEN","currentItem","closeQuickView","CLOSED","loadingQuickView","loading","openVideoModal","videoUrl","buttonLink","buttonText","videoModal","closeVideoModal","openYoutubeVideoModal","videoId","youtubeVideoModal","closeYoutubeVideoModal","openMessagingModal","messagingModal","closeMessagingModal","openNotificationOptinModal","modalType","gaLabel","tagGroups","notificationOptinModal","closeNotificationOptinModal","openModal","modalId","modals","currentModal","currentModalData","itemLayout","siteLayout","updateSystemMessages","badges","system","updateMessagingNotifications","openProfileMenu","profileMenu","redirectUrl","closeProfileMenu","openCategoryDropdownMenu","categoryDropdownMenu","closeCategoryDropdownMenu","openSearchForm","showSearchForm","closeSearchForm","logOut","getInitialBadges","openItemSettings","itemSettings","closeItemSettings","openShareModal","shareModal","isOpen","settings","closeShareModal","openHelpSection","helpSection","closeHelpSection","def","TOGGLE_HEADER_SEARCH","OPEN_GDPR_MODAL","CLOSE_GDPR_MODAL","OPEN_GDPR_SETTINGS","CLOSE_GDPR_SETTINGS","OPEN_QUICK_VIEW","CLOSE_QUICK_VIEW","LOADING_QUICK_VIEW","OPEN_VIDEO_MODAL","CLOSE_VIDEO_MODAL","OPEN_YOUTUBE_VIDEO_MODAL","CLOSE_YOUTUBE_VIDEO_MODAL","OPEN_MESSAGING_MODAL","CLOSE_MESSAGING_MODAL","OPEN_NOTIFICATION_OPTIN_MODAL","CLOSE_NOTIFICATION_OPTIN_MODAL","ITEM_LAYOUT","UPDATE_SYSTEM_MESSAGES","UPDATE_MESSAGING_NOTIFICATIONS","OPEN_PROFILE_MENU","CLOSE_PROFILE_MENU","OPEN_CATEGORY_DROPDOWN_MENU","CLOSE_CATEGORY_DROPDOWN_MENU","OPEN_SEARCH_FORM","CLOSE_SEARCH_FORM","OPEN_ITEM_SETTINGS","CLOSE_ITEM_SETTINGS","SITE_LAYOUT","LOG_OUT","OPEN_MODAL","CLOSE_MODAL","OPEN_SHARE_MODAL","CLOSE_SHARE_MODAL","OPEN_HELP_SECTION","CLOSE_HELP_SECTION","fetchReducer","apiFunction","apiParameter","apiName","useReducer","handleFetch","useCallback","isIdle","isFetching","resetPageIndex","page","modifiers","paging","slice","query","filterBar","shownFilters","updatePageSize","selectSortChange","sort","sorting","order","sortOrder","changeSortOrder","selectTypeChange","setDateFrom","dateRange","setSingleFilterValue","sellerFilters","filter","setDateTo","to","filterByState","showSelectFiltersDropDown","setSellerFilterBarModifiers","defaults","selectedFilterBar","changePage","resetDateRangeTo","resetDateRangeFrom","resetFilters","changeSearchQuery","searchQuery","selectReservationPriceChange","updateFiltersForSelectedPage","newFilters","forEach","defaultFilters","setFiltersFromRouter","filters","setEnum","buyerFilters","paid","shipped","feedbackLeft","hidden","getUuid","uuidv4","setPageSize","setCookie","setFiltersForSelectedPage","getState","pageSize","selectCookiesState","ITEMS_PER_PAGE","historyLocationDidUpdate","history","isPrevAndCurrentPathnameEqual","routingState","router","checkStateOfQueryParams","selectMyTraderaState","isSearching","replace","myTraderaItemActions","updateURL","showHideFilterToolbar","showCookies","GeneralError","fill","opacity","fillOpacity","FavouriteSellersFallback","fromFavouriteSellersPage","startPageStyles","withArrowTop","searching","BUYER_ACTIVE_ITEMS_HIDE","BUYER_ACTIVE_ITEMS_SHOW","UPDATE_ITEMS","COMPLETED_SEARCH","OPEN_MORE","SELECT_ITEM","SELECT_ALL_ITEMS","REMOVE_ITEMS","OPEN_DEL_LISTING_ITEM","REMOVE_ALL_SELECTED","UPDATE_ITEMS_WITH_ERROR","PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER","PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER","PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER","PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER","PURCHASE_ORDERS_HIDDEN_BY_SELLER","PURCHASE_ORDERS_HIDDEN_BY_BUYER","PURCHASE_ORDERS_SHOWN_BY_SELLER","PURCHASE_ORDERS_SHOWN_BY_BUYER","ITEM_HIDDEN","ITEM_SHOWN","PURCHASE_ORDERS_MARKED_AS_SHIPPED_BY_SELLER","PURCHASE_ORDERS_UNMARKED_AS_SHIPPED_BY_SELLER","PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED","PURCHASE_ORDERS_MARKED_AS_SHIPPING_BOOKED","SHIPMENT_DELETED","FEEDBACK_LEFT_BY_SELLER","FEEDBACK_LEFT_BY_BUYER","RESET_ITEMS","SET_RESTARTED","SET_NEW_SHIPPING_PRICE","updateItems","listViewType","memberMessagingParticipation","updateItemsWithError","resetSelectedCheckboxes","removeItems","locationDescriptor","getAvailableQueryParams","purchaseOrdersMarkAsPaidBySeller","purchaseOrderIds","messagingParticipation","ids","purchaseOrdersMarkAsPaidByBuyer","purchaseOrdersUnmarkAsPaidBySeller","purchaseOrdersUnmarkAsPaidByBuyer","transactionsMarkAsShippedBySeller","transactionIds","transactionsUnmarkAsShippedBySeller","resetMyTraderaItems","changeParamsForBackend","skip","newPaging","take","cancelItem","endItems","buyerActiveItemsHide","buyerActiveItemsShow","buyerActiveItemsHideItems","fetch","URLS","body","buyerActiveItemsShowItems","openMore","pageName","runSearch","shouldScrollToInitialScroll","waitForBackend","dontModifyHistory","isMyTraderaElasticEnabled","endPoint","searchUrl","purchaseOrderActions","resetPurchaseOrder","selectFiltersState","scrollToInitialScroll","selectItem","selectAllItems","select","contactHighestBidder","sellerEmail","modalTitle","messageSubject","listing","itemEnddate","formatted","itemImageUrl","main","medium","itemTitle","receiverMemberAlias","bidInformation","leadingBidder","receiverMemberId","senderMemberEmail","businessWarning","reloadAfterClose","triot","bus","markPurchaseOrdersAsPaidBySeller","SELLER_MARK_PAID","unmarkPurchaseOrdersAsPaidBySeller","SELLER_UNMARK_PAID","rebuildList","existingState","selectMyTraderaItemsState","itemsByID","selectRouterState","itemsOrderedByID","newState","currentTime","statistics","LIST_VIEW_TYPE","sellerUnhideTransaction","SELLER_SHOW","purchaseOrdersShownBySeller","sellerHideTransaction","SELLER_HIDE","purchaseOrdersHiddenBySeller","sellerUnhideUnsold","UNSOLDSHOW","unsoldItemsShown","sellerHideUnsold","UNSOLDHIDE","unsoldItemsHidden","sellingMarkAsShippingBooked","webApiClient","booked","transactionsMarkAsShippingBooked","sellingMarkAsShipped","MARK_SHIPPED","sellingUnmarkAsShipped","UNMARK_SHIPPED","sellingUnmarkAsShippingBooked","UNMARK_BOOKED","transactionsUnmarkAsShippingBooked","sellingDeleteShipment","shipmentId","DELETE_SHIPMENT","transactionDeleteShipment","sellingLeaveFeedback","transactionId","feedbackLeftBySeller","feedbackLeftByBuyer","markPurchaseOrdersAsPaidByBuyer","BUYER_MARK_PAID","unmarkPurchaseOrdersAsPaidByBuyer","BUYER_UNMARK_PAID","buyerUnhideTransaction","BUYER_SHOW","transactionsShownByBuyer","buyerHideTransaction","BUYER_HIDE","transactionsHiddenByBuyer","buyingLeaveFeedback","setRestarted","setNewShippingPrice","shippingProvider","newPrice","availableAllowedBuyerRegions","defaultBuyerRegion","pageSpecificData","allowedBuyerRegions","find","r","selectedBuyerRegionText","availableAllowedBuyerRegionsForEditWithBids","isSetAllowedBuyerRegionToAtLeastEuEnabled","featureSwitches","isTraderaPayEnabled","initModuleGlobals","buyerRegionSlice","setAllowedBuyerRegion","setAvailableAllowedBuyerRegions","availableRegions","draftState","getSyiSlice","regionState","regions","selectedRegion","Sweden","region","Nordic","EU","International","Overlay","closeOnEscape","closeModalCallback","keyCode","URL_HASHES","openBiddingModal","saveInWishlist","openBinModal","openChangeCombinedShippingModal","markAsPaid","hasRequestedCombinedShipping","removeHashFromUrl","nextRouter","forceRedirect","otherQueryParams","document","hash","addQueryPrefix","shallow","replaceState","shouldOpenBiddingModal","bidding","substr","shouldSaveInWishlist","shouldOpenBinModal","shouldOpenChangeCombinedShippingModal","shouldMarkAsPaid","shouldShowRequestedCombinedShippingToast","getBaseRedirectUrl","queryParams","Math","round","random","protocol","host","getBiddingRedirectUrl","getWishlistRedirectUrl","getBinRedirectUrl","HOUR_IN_SECONDS","formatVipTimeLeft","secondsLeft","formattedTimeLeft","getTimeSpanParts","endUnit","TIME_SPAN_UNITS","HOURS","days","hours","count","hoursOrEmpty","startUnit","MINUTES","minutes","minutesOrEmpty","SECONDS","seconds","serverDate","dayjs","isInteger","formatEndDate","floor","MODAL_TYPE","BANK_ID","SWISH_HANDEL","MODAL_STATUS","START","COMPLETE","ERROR","CARD","PAYMENT_OPTION_STATUS","AVAILABLE","UNAVAILABLE_DUE_TO_AMOUNT","invoice","ongoingPaymentAttempt","invoicePaymentAttemptId","hasError","selectedPayment","paymentMethodData","modal","checkoutSummary","activeBrands","activeFilters","attributeFilters","currentCategoryId","displayAllowedBuyerRegionFilter","endpoint","fallbackItemsById","filterCategories","filterPrice","hasResult","headerText","internalSearch","introText","isFetchingGeolocation","isSavedSearchEmailEnabled","isShopOwnedByCurrentMember","itemsById","itemsOnDisplayById","mainText","pagination","totalItems","reduxContainer","searchLanguages","requestSearchResults","REQUEST_SEARCH_RESULTS","receiveSearchResults","result","fallbackItems","itemsOnDisplay","itemsToAdd","itemActions","add","RECEIVE_SEARCH_RESULTS","shippingRegionCountryCodeIso2","selectShippingRegionCountryCodeIso2","afterReceiveSearchResults","onLoaded","discover","pageMeta","pageActions","setPageMeta","trackNewSearch","handleSearchResultsError","HANDLE_SEARCH_RESULTS_ERROR","metaTitle","discoverTracking","addItemOnDisplay","ADD_ITEM_ON_DISPLAY","fetchSearchResults","getSearchResults","searchResults","CANCELLED","VERSION_MISMATCH","reload","NETWORK","TIMEOUT","finally","shippingCountry","isLoggedIn","selectIsLoggedIn","memberCountry","selectMemberCountryCodeIso2","isSwedenCountryCodeOrUndefined","isSwedenCountryNameOrUndefined","removeItemOnDisplay","REMOVE_ITEM_ON_DISPLAY","reset","setCategoryPath","SET_CATEGORY_PATH","setCurrentCategoryId","SET_CURRENT_CATEGORY_ID","SET_SINGLE_FILTER","defineProperty","AppContainer","warnAboutHMRDisabled","Children","only","hot","shouldWrapWithAppContainer","n","areComponentsEqual","setConfig","cold","configureComponent","setPreferredCurrencyThunk","triggerGa","touchWebClient","createPreferredCurrencyCookie","setPreferredCurrency","setCurrencyIfNotChosen","cookieUtil","readCookie","selectPreferredLanguage","sv","da","de","createCookie","getTime","TraderaLogo","height","otherProps","memo","CartLink","formattedCartItems","cartSum","transparentHeader","cartUrl","DropDownMenuHamburger","active","tabIndex","MenuItemSeparator","MenuItemButton","containerClass","follow","inSPA","rel","MenuItem","alerts","bold","border","icon","imageContainerClassName","notify","notificationDot","MenuItemContent","backgroundImage","NotificationDot","ExpandableMenuItem","toggleOpen","prevState","expanded","onOpen","defaultExpanded","useMenuHeightFix","menuContentRef","useRef","isExtraLargeDesktop","useMediaQuery","XL","current","parentElement","marginBottom","marginY","getBoundingClientRect","top","maxHeight","getGaAttributes","CategoryMenuItems","handleFilterChange","handleFilterKey","stopPropagation","blur","filteredCategories","categoryList","categoryNodes","searchPlaceholder","placeholder","onKeyDown","CategoryMenuItem","getCategoryIcon","categoryNode","isTopLevel","DropdownMenuContent","categories","isNextWebBrandsPageEnabled","useIsFeatureEnabled","isValuationPageEnabled","mediaProps","list","topLevelCategories","isSwedish","isSwedishOrUndefined","TopLevelCategories","c","SeoLinks","trackAnalytics","GtmService","trackAction","DropdownMenu","dropdownMenu","ui","uiActions","fetchCategoryList","onItemClick","sideMenuMediaProps","LG","dropdownMenuMediaProps","renderChild","forwardProps","TransitionGroup","component","mountOnEnter","in","zIndex","SignUpLink","clickAction","register","selectIsSwedishVisitor","selectIsForeignLanguageActivated","selectIsOutsideSweden","ModalPortal","el","notificationPortalRoot","getElementById","appendChild","removeChild","ReactDOM","createPortal","PushNotificationModal","trackGa","handleAccept","pushNotificationActions","handleReject","alt","dangerouslySetInnerHTML","__html","HoverMenuItem","HoverMenuItemSeparator","getMenuGaAttributes","BuyMenu","hoverMenuStyles","alignSm43Lg50","BuyingLink","mouseOver","mouseOut","onBlur","buyingText","onMouseEnter","HOVER_MENUS","BUY","HowTraderaWorks","HOW_TRADERA_WORKS","NewListingLink","newListingLink","PlainLocalizationMenuItem","onToggle","preferredLanguage","mapLanguageCodeToLanguageKey","inProfileMenu","LocalizationMenuItem","connect","PlainCurrencySelect","currencies","preferredCurrency","onCurrencySelected","code","shortName","longName","countryCodeIso2","mapCurrencyCodeToCountryCode","CurrencySelect","selectCurrencies","selectPreferredCurrency","CurrencyMenuItem","showCurrencySelection","selectShowCurrencySelection","currencyShortName","trackPaymentOnboarding","InvoiceUnpaidAlert","InvoiceOverdueAlert","BankAccountMissingAlert","PayoutFailedAlert","PayoutReadyBankAccountMissingAlert","SwishMissingAlert","dismissSwish","enableSwishUrl","HyperwalletPayeeVerificationAlert","HyperwalletPayeeVerificationReviewAlert","FeeNettingInfoAlert","RemoveSwishNumberAlert","removeSwishNumberUrl","getGaLinkAttributes","getGaButtonAttributes","ProfileCard","cleanedMemberAlias","useState","imageAvailable","setImageAvailable","onError","mediaBelowLarge","trackExpandItemClick","ProfileMenuContent","memberDetailedSellerRatingAverage","memberHeroImage","showMessagingLink","hasTraderaPay","threadsUnread","isTraderaShopEnabled","useQualtive","isQualtiveEnabled","openQualtiveModal","isSellerListEnabled","isFeeNettingEnabled","InvoiceUnpaid","BATCH_PAYOUTS_ALERT_DISMISSED","BankAccountMissing","RemoveSwishNumber","HyperwalletPayeeVerificationUnderReview","FeeNettingInfo","SURVEYS","general","openChatBot","__be","BE_API","openChatWindow","isChatWindowOpened","onLoad","isExisting","scriptEl","setAttribute","querySelector","trackOnClick","SignInMenuContent","closeMenu","isChatBotEnabled","getReturnUrl","iframe","iframeDocument","contentDocument","onIframeLoad","STRINGS","IFRAME_NOT_SUPPORTED","ProfileMenu","handleExpand","member","upTo","is","Profile","facebookId","borderRadius","margin","ProfileLink","handleProfileClick","menuExpanded","systemMessageCount","logInText","tooltip","badgeType","multipleBadges","ProfileMenuLink","preventNavigationAndShowLogin","redirect","signIn","handleLoginClick","evt","scrollTo","messagingThreads","profileMenuOpen","SearchButton","showSearch","WatchListMenu","WishlistLink","wishlistText","WISHLIST","OngoingAuctionsLink","SellMenu","alignSm25Lg50","SellingLink","SELL","transition","cssTransition","enter","exit","hideProgressBar","theme","closeOnClick","draggablePercent","autoClose","pauseOnFocusLoss","info","success","warning","closeButton","closeToast","marginTop","TraderaToastContainer","CurrencyLink","CURRENCY","alignRight","SiteHeader","handleClickSearch","autoFocusSearch","handleMouseOverMenu","menu","isDesktop","activeHoverMenu","handleMouseOutMenu","handleMenuClick","isMobile","LOCALIZATION","isTablet","handleAlwaysOpenMenuClick","handleMenuBlur","handleRegisterClick","expireDate","setTime","sticky","fetchMessagingNotifications","getGeolocation","onWindowLoad","cartItemCount","hasCartItems","stickyEnabledOnPage","hideElements","enabled","enableTransforms","activeClass","mapDispatchToProps","compose","withIsMobile","withIsTablet","withIsDesktop","hasSearch","ex","React__default","_defineProperty","obj","enumerable","configurable","writable","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","instance","SideEffect","_PureComponent","subClass","superClass","__proto__","peek","rewind","recordedState","_proto","UNSAFE_componentWillMount","splice","PureComponent","getDisplayName","countryCode","sek","usd","jpy","gbp","nok","eur","dkk","toLowerCase","useIsTablet","WithIsTablet","Breakpoint","downTo","PropTypes","bool","oneOf","views","myTradera","PAGE_NAMES","Overview","BuyerActiveItems","BuyerItemsLost","MyTraderaLeaveFeedback","MyTraderaMyFeedback","SellerActive","SellerList","SellerSold","SellerUnsold","BuyerPurchases","Settings","SettingsAccount","SettingsEmail","SettingsNotifications","SettingsSeller","SettingsSecurity","Payouts","Invoices","WishList","previousSearchService","StorageService","SEARCH_RECENT","getSuggestions","searchTerm","limitPrevious","enablePrevious","enableSuggestions","generateSuggestionId","term","previousSearchResults","suggestedResults","searches","shops","charities","campaigns","getPreviousSearches","getSuggestionsFromBackend","withDuplicates","uniqueMap","has","uniqueResults","shopResults","urlName","suggestedCharitiesResults","charitiesResults","slug","suggestedCampaignResults","campaignResults","capaignId","campaignId","allSuggestions","normalizeSearches","searchSuggestionsClient","notAuthenticated","cancelTokenId","q","limit","previousResults","orderByTimestamp","output","addRecentSearch","prettySearchTerm","recentCount","removeRecentSearch","getTraderaShopProductData","traderaShopProduct","product","itemDetails","mapItemDetails","fetchTraderaShopProductData","urlSlug","selectPreferredLanguageCode","setIsLoading","setItemDetails","setProduct","SET_PRODUCT","SET_ITEM_DETAILS","SET_IS_LOADING","SINGLE_FEEDBACK_DIALOG_ID","SingleFeedbackDialog","onDone","isSeller","right","isInMultipleFeedbacksContext","submittables","ShippingDisplay","buyerCountryCode","shippingPriceRange","isSellpyCheckout","localizedPriceFormatter","useLocalizedPriceFormatter","isFromAndToCountryDifferent","some","fromCountryCodeIso2","toCountryCodeIso2","displayOptions","shippingOptionsPart","shippingOption","getDisplayText","shouldShowFromCountry","cost","tagName","renderZero","minPrice","maxPrice","useOnMount","fn","useDidMountEffect","func","deps","didMount","useImageLoader","isLoaded","setIsLoaded","setError","image","Image","onload","onerror","redirectURL","encodeURIComponent","isCombinedShippingEnabled","splitTests","memberFirstName","memberLastName","memberCountryCodeIso2","mobileMenu","mobileActions","changeShippingModal","setDiscountModal","setCombinedShippingEnabled","TEXT_STRINGS","ERRORS","GENERIC","setBreakPoint","breakpoint","setMemberMessagingParticipation","openChangeShipping","receiverCountry","closeChangeShipping","openSetDiscount","closeSetDiscount","setTranslatedRouteInformation","extraReducers","uiActionTypes","uiReducer","listActions","listType","PAGE_LIST_TYPES","SELLER_ACTIVE","isCheckboxActive","bulkCssClass","bulkAction","PAGE_BULK_ACTIONS","ACTIVE_CANCEL","heading","itemCount","confirmButtonText","cancelButtonText","dismissable","idType","SELLER_NOT_SOLD","hasRestartedChild","isArchived","UNSOLD_RESTART","wide","headingCSS","messageAlignment","cssClass","BUYER_ACTIVE_ITEMS","caller","leadingBidRemoved","BUYER_SHOW_ACTIVE","BUYER_HIDE_ACTIVE","BUYER_PURCHASES","buyerState","PURCHASES_SHOW","BUYER_ITEMS_LOST","survey","supportURL","paynova","textKey","cardVerification","bankId","MYT_PAGE_NAMES","valuationPage","syiDraftPage","combinedShipping","payouts","translationImprovements","selectShipping","getUrbanSdk","resolve","UA","UACache","sdk","isSupported","getTagGroupsFromUrbanAirship","channel","group","groupTags","tag","tags","isPushEnabled","pushNotificationsSlice","initDone","pushSupported","optedIn","shownModals","setInitDone","setPushSupported","setOptedInValue","setTagGroupsValue","setShownModalTrue","WEB_PUSH_SHOWN_MODALS","setAllShownModals","setEnabled","init","canRegister","optIn","namedUser","optOut","saveTagsToUrbanAirshipAndUpdateState","tagGroupValue","tagGroupsToSet","pushNotifications","channelTags","addTagGroups","tagGroupsToAdd","removeTagGroups","tagGroupsToRemove","TimeLeft","MoreInfoFoldOut","triggerText","infoText","setIsOpen","storageKey","rootUrl","service","riot","observable","onSuccess","ajax","method","traditional","statusCode","setRootUrl","toLocalizedRiotUrl","setStorageKey","getFeedbackItems","getAllFeedbackItems","getFeedbackStorageAsArray","currentStorageArray","Array","isArray","addFeedbackToStorage","newStorageArray","newItems","existingItem","newItemsCounter","comment","newStorageItem","counter","searchTime","_createNewFeedbackItemsToStore","maxStorage","curr","next","_mergeAndSortStorage","getFeedbackHistory","getStorageKey","submitData","cb","dataType","contentType","failures","saveAutomaticFeedback","comments","setPersonalisedBrandsAction","setPersonalisedSearchesAction","setPersonalisedBrandsStatusAction","setPersonalisedSearchesStatusAction","recentSearchesIsUpdatedAction","lastUpdated","fetchPersonalisedBrandsIfNeeded","personalisation","brands","PERSONALISED_SUGGESTIONS","headers","defaultJsonRequestHeaders","logError","brandsResult","newStatus","fetchPersonalisedSearchesIfNeeded","searchesResult","addRecentSearchText","removeRecentSearchText","breadCrumbs","categoryNames","categoryLevel","itemUrl","paymentTerms","reasons","resultMessage","shippingTerms","viewState","VIEW_STATES","LOADING","resetInitialState","setReportItem","getItemState","transactionType","breadCrumb","ITEM_ENDED","FORM","assertNoUndefinedProperties","setViewState","setCategories","reducer","getInitialFilters","defaultSearchParams","isTakeaway","purchaseOrder","selectedShipping","shippingDiscount","getId","showModal","translationKey","openMyTraderaModal","isSingleButton","getTranslatedMessage","getActionsForPurchaseOrder","secondaryActions","primaryAction","resolveActions","potentialActions","actionCreator","isVisible","isPrimaryAction","checkAndAdd","actionsForItem","types","DISPATCH","getTranslatedLabel","buyerMember","address","combinedShippingInformation","isPaid","LINK","updatePurchaseOrderPaidBySeller","isPaidWithIntegratedPayment","hasBuyerRequestedCombinedShippingPrice","isShippingBooked","isShipped","hasUnpaidShipping","unpaidShipping","deleteShipment","markAsShippingBooked","updateShippingBooked","EXTERNAL_LINK","hasShipmentReceipt","hasShipmentLabel","updatePurchaseOrderShipped","itemsToGiveFeedBackTo","isRefundAllowed","isUpiPurchaseOrderEnabled","isUpiSubmitted","isDiscontinuedSaleEnabled","isMcpSubmitted","isDiscountAllowed","updatePurchaseOrderHiddenForSeller","isHiddenForSeller","soldActions","requestCombinedShippingPrice","isPaymentExpired","buttonTheme","isMarkedAsPaidByBuyer","updatePurchaseOrderPaidByBuyer","isBuyerOrderInformationEnabled","hasBuyerProtection","isInrSubmitted","isInrPurchaseOrderEnabled","sellerMember","cleanedAlias","updatePurchaseOrderHiddenForBuyer","isHiddenForBuyer","boughtActions","selectPurchaseOrderState","LIST_VIEW_TYPE_SELLER_SOLD","purchaseOrders","rows","myTraderaItems","row","updateditems","modifyHistory","match","defaultPayload","withPageInit","initialPayload","useDayJs","memberEmail","stateCookies","pageListType","setPageListType","listViewTypeWithFallBack","featureToggleErrors","ELASTIC_MYTRADERA","getPurchaseOrderIdFromHash","removeHashAndSetNormalList","LIST_VIEW_TYPES","NORMAL","itemsHasLoaded","changeShippingPurchaseOrderId","getItemFromPurchaseOrderId","buyer","markAsPaidPurchaseOrderId","showSuccessToast","setDefaultListViewType","SELLER_SOLD","BASIC","getData","shouldWaitForBackend","runPurchaseOrders","cookies","MakeResponsive","ComposedComponent","Responsive","addMediaQueries","matchMedia","matches","handleMediaChange","addListener","removeMediaQueries","removeListener","removeMediaQuery","MakeSticky","onScroll","onScrollThrottled","throttle","wait","doc","documentElement","position","positions","bottom","wrapperStyles","stickyStyles","getStickyClasses","generateSumOfDiscounts","discounts","discount","currentAmount","getBidCount","getSumOfDiscounts","getMaxBid","maxBid","getTimeLeft","timeLeft","timeleft","isTimeLeftCritical","critical","getShippingCost","translateShippingNames","names","Takeaway","TakeawayLong","TakeawayOnly","SchenkerPrivpak","Alternative","getShippingLabelWithPrice","shippingItem","shippingType","formatPrice","shippingCost","shouldShowShippingPrice","isFreeShipping","SHIPPING_LABELS","FREE_SHIPPING","hasIntegratedPayment","theOnlyShippingOption","TAKEAWAY","accumulator","currentValue","isNormalListViewType","binValidationParser","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","ItemDisplayConfirmed","itemImage","formattedPrice","BIN_FORM_STATES","CenteredIcon","Separator","BigSeparator","CloseButton","ErrorFeedback","itemMainImage","descriptions","isError","classes","med","BinModal","currentFormState","setCurrentFormState","setTransactionId","viewItem","localizedFormatPrice","shippingRegion","onContinue","analytics","onConfirm","purchaseBin","googleAnalyticsData","responseStatus","fetchItemAndBidInfo","BID_VALIDATION_RESULTS","MAX_PLACED_BIDS_LIMIT","BID_AMOUNT_LIMIT","onCardVerified","hasBackground","isCompany","hasShop","unitPrice","isFirstItem","quantity","leftButton","rightButton","findKeysByPurchaseOrderId","findKeysByTransactionId","findKeysByItemId","updateStateAndLabels","sellerState","myTraderaItemsSelector","getSoldItem","updateUnsoldLabelsAndActions","getUnsoldItem","setPaidState","flag","setShippedState","setTransactionHiddenState","setUnsoldItemHiddenState","hiddenByMember","removeFromList","setFeedback","setShippingBookedState","shippingBooked","markAsPaidBySellerReducer","stateItems","updateChangedItems","findUpdatedKeysByPurchaseOrderId","updatedItems","updatedItem","unmarkAsPaidBySellerReducer","markAsShippedReducer","findUpdatedKeysByTransactionId","unmarkAsShippedReducer","markTransactionAsHiddenBySellerReducer","markTransactionAsShownBySellerReducer","markItemAsHiddenReducer","currentMemberId","findUpdatedKeysByItemId","markItemAsShownReducer","unmarkAsShippingBooked","setRestartedReducer","feedbacksLeftBySeller","submittable","getPurchasedItem","markAsPaidByBuyerReducer","unmarkAsPaidByBuyerReducer","markTransactionAsHiddenByBuyerReducer","markTransactionAsShownByBuyerReducer","feedbacksLeftByBuyer","poHiddenByBuyer","poShownByBuyer","getItemsInOrder","isSubMenuOpen","bulkChecked","selectedCheckboxes","chosenBoxes","allItemsWithBulk","checkIfActive","isOpenDeleteItem","newItemsOrderedByID","purchaseOrderActionTypes","PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER","PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER","itemKeysForPurchaseOrderId","resolveMostPreciseTranslationKey","errorKeys","errorTranslationKeys","getOrDefault","errorPrio","DefaultReceiverAddressError","DefaultError","b","getDefaultErrorKey","errorMap","ReceiverAddress","Shipment","SenderAddress","AgentAddress","ValidatedProperty","Unknown","Street","ZipCode","City","CountryCode","Email","Phone","Length","Width","Height","Weight","Product","Type","ValidationErrorType","Missing","WrongFormat","NotReal","ZipcodeRouting","NotSupported","NotEnabled","DefaultSenderAddressError","DefaultAgentAddressError","Name","Agent","createAsyncThunk","thunkAPI","rejectWithValue","createShipmentCheckout","getShippingOptions","toCountry","bringEnabled","postnordEnabled","dhlEnabled","schenkerEnabled","updateShipment","shipmentDetails","setCheckoutSummaryFetching","setShipmentDetails","errors","mostPreciseTranslationKey","mostPreciseErrorKey","updateShippingProvider","shipment","selectShipment","providerId","productId","receiver","shippingPayload","buildShippingPayload","updateShippingAddress","city","zipCode","street","streetName","createShipment","selectItemWithoutShipment","buyerContactDetails","fullName","town","hasUnSupportedProduct","markAsBooked","setShippingAsBooked","markAsShipped","setShippingAsShipped","getItemWithoutShipment","getMemberSoldItemShippingInfo","getShippingConfirmation","shippingCheckoutId","pollBookingUrl","pollShippingConfirmationStatus","isLongPolling","reject","iterations","poller","setInterval","clearInterval","getShippingConfirmationStatus","isBookingComplete","shippingProductId","buyerAddress","getPaymentOptions","sleep","delay","PAYMENT_STATUS","containsNonPrintableAscii","createThreeDSecureParameters","currentState","selectMemberFirstName","firstName","selectMemberLastName","lastName","phoneNumber","selectSellerPhoneNumber","countryCodeAlpha2","email","selectMemberEmail","billingAddress","givenName","surname","additionalInformation","shippingGivenName","shippingSurname","shippingAddress","initBraintreePayment","onComplete","requestOptions","requestPaymentMethod","setPaymentMethodData","CHECKOUT_ERRORS","NO_PAYMENT_METHOD","initPayment","closePaymentModal","shipmentPaymentAttemptId","paymentAttemptId","formData","initializePayment","checkPaymentStatus","cancelPayment","completePayment","poll","getPaymentStatus","paymentStatus","openPaymentModal","resetOngoingPaymentAttempt","DECLINED","INIT_DATA_LOAD","INIT_DATA_LOADED","UPDATE_PHONENUMBER","INVALID_PHONENUMBER","UPDATE_VERIFYCODE","INVALID_VERIFYCODE","DELETE_PHONENUMBER","SAVE_PHONENUMBER","SWISH_ENABLED","SWISH_ERROR","DELETE_BANK_ACCOUNT","UPDATE_CLEARING_NUMBER","UPDATE_ACCOUNT_NUMBER","BANK_NOT_MATCHED","IGNORE_BANK_NOT_MATCHED","BANK_ACCOUNT_SAVED","INVALID_CLEARINGNUMBER","INVALID_BANKACCOUNTNUMBER","BANK_ERROR","INIT_TINK","CANCEL_TINK","SHOW_BANK_ACCOUNTS","SELECT_BANK_ACCOUNT","TINK_COMPLETED","TINK_ERROR","SKIP_BANKID_AUTH","BEGIN_BANKID_AUTH","CANCEL_BANKID_AUTH","BANKID_IN_PROGRESS","BANKID_COMPLETED","BANKID_ERROR","INCREMENT_BANKID_ERROR","PAYOUTS_LOADED","PAYOUTS_ERROR","setVerifiedPhoneNumber","credentials","json","ok","saveBankAccount","clearingNumber","selectPaymentsState","bankAccountDetails","newClearingNumber","accountNumber","newAccountNumber","maskedAccountNumber","saveTinkBankAccount","account","errorMessage","bankIdAuthenticate","BANK_ID_AUTHENTICATE","purpose","bankIdUserMessage","bankIdPollProgress","BANK_ID_PROGRESS","isCompleted","bankIdVerification","tink","bankIdInProgress","errorCount","loadInitData","deletePhoneNumber","updatePhoneNumber","newNumber","number","isValid","savePhoneNumber","requireSmsVerification","requireBankIdVerification","completeText","verificationText","updateVerifyCode","verifyCode","deleteBankAccount","removePayout","updateAccountNumber","updateClearingNumber","initSaveBankAccount","invalidNumber","initTink","cancelTink","errorTink","loadBankAccounts","accounts","selectBankAccount","cancelBankId","bankIdContinue","SWISH_APP_2_APP","PAYNOVA","PAYNOVA_DIRECT_INVOICE","PAYNOVA_INSTALLMENTS","KLARNA","UNAVAILABLE_DUE_TO_SHIPPING_NOT_TRACEABLE","UNAVAILABLE_DUE_TO_SHIPPING_NOT_TRACEABLE_TO_SERVICEPOINT","buyerProtection","orderCalculation","shippingInfo","collectionPoints","selectedCollectionPoint","combinedShippingInfo","shippingOptionsLoading","NewTodayLabel","preferredLanguageCodeIso2","preferred","localizedDayjsCallback","localizedDayjs","withDayJs","WithDayJs","ContentSwitch","defaultSelected","onSwitch","setSelected","renderedOptions","setRenderedOptions","handleOnChange","node","lazyLoad","COOKIE_NOTIFICATION","HIDE_WISH_LIST_INFO_CARD","ITEMS_CLICK","SYI_IMAGE_FORMAT_HINT","SAVE_SEARCH_HINT","WEB_PUSH_ACCEPTED","SELLER_LIST_COMPACT_VIEW","SYI_NEW_LAYOUT_INFO_DISMISSED","SYI_DESCRIPTION_LANGUAGE_DISMISSED","SYI_RESELL_SHOWN_FOR_DRAFT_IDS","CACHE_MESSAGING_BADGES","CACHE_RECENTLY_VIEWED_ITEMS","CACHE_SYSTEM_MESSAGES","APPLE_ID_USER","STORAGE_VALUES","SAVE_SEARCH_HINT_CLICKED","SYI_IMAGE_FORMAT_HINT_CLICKED","ResultSet","_result","orderByValue","orderByExpire","_orderBy","orderProp","namespace","datastore","getDataSafe","encodedKey","encodeURI","purge","timestamp","removeExpired","prop","addRow","propValue","decodeURI","flush","SET_PAGE_TYPE","SET_PAGE_META_FROM_SEARCH_RESULT","SET_PAGE_META","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","object","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOfType","shape","checkPropTypes","InfoTooltip","customIcon","containerClassName","useScrollToTopOnMount","forceVisible","forceCheck","lazyload","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_event","_scrollParent2","_debounce2","_throttle2","__esModule","_classCallCheck","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","setPrototypeOf","defaultBoundingClientRect","LISTEN_FLAG","listeners","pending","passiveEventSupported","opts","passiveEvent","capture","passive","checkVisible","findDOMNode","HTMLElement","parent","visible","overflow","ownerDocument","parentTop","parentLeft","parentHeight","parentWidth","_parent$getBoundingCl","left","windowInnerHeight","innerHeight","clientHeight","windowInnerWidth","innerWidth","clientWidth","intersectionTop","intersectionLeft","intersectionHeight","intersectionWidth","_node$getBoundingClie","offsetTop","offsetLeft","offsets","offset","checkOverflowVisible","offsetWidth","offsetHeight","getClientRects","elementHeight","_node$getBoundingClie2","checkNormalVisible","once","forceUpdate","unmountIfInvisible","purgePending","lazyLoadHandler","listener","delayType","finalLazyLoadHandler","LazyLoad","_Component","_this","getPrototypeOf","scrollport","scrollContainer","needResetFinalLazyLoadHandler","debounce","off","getAttribute","listenerCount","_props","scroll","resize","removeAttribute","_Component2","LazyLoadDecorated","_this2","REQUEST_ITEM_SETTINGS","SET_HAS_SEARCH","PaymentSummary","showShippingSelectionRow","CombinedShippingBadge","freeShippingCostLimit","compact","disableFreeShippingCostLimit","isAutoCalcPriceShippingSettings","SearchInput","categoriesElement","inputClassName","onClearSearchInput","onFocus","onFormSubmit","onUserInputChange","onUserKeyUp","searchInputRef","selectedCategory","suggestionsElement","placeholderText","placeHolderTranslation","categoryName","showClearButton","autoComplete","onSubmit","maxLength","useIsLoggedIn","config","startPageResponse","trendingBrands","trendingSearches","wishList","favouriteSellers","sellers","sellerSuggestions","nullifyUndefinedProperties","startPageSlice","_state","setStartPageConfigAction","setStartPageConfigStatusAction","setTrendingBrandsAction","setTrendingBrandsStatusAction","setTrendingSearchesAction","setTrendingSearchesStatusAction","setWishListAction","setWishListStatusAction","setFavouriteSellersAction","setFavouriteSellersStatusAction","LastChanceNewConnected","webLiveUrl","addItems","openedFrom","toggleWishlist","wishlist","updateItem","isStartPageLiveUpdatesEnabled","axios","CancelToken","token","ABORTED","registerLiveUpdates","onConnect","socket","emit","onClientEvent","Event","AuctionId","BidAmount","totalBids","NumberOfBids","useIsMobile","handleQuickView","displayItems","generateItemCardPlaceholders","itemsMap","maxItemsCount","mappedItems","resolveItems","animatePriceLabel","lazy","lazyLoadSettings","onAddToWishlist","onQuickView","onRemoveFromWishlist","ready","withTranslator","bannedCountries","removeBannedCountries","getAvailableCountries","countries","mapCountryCodeToCountryKey","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","cv","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","io","iq","ir","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","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","MY_TRADERA_PAGE","SYI_PAGE","VALUATION","syi","selectShortDescription","SUBMIT_FAILED","SUBMIT_SUCCESS","SUBMITTING","REASONS","NONE","SUSPECTED_FRAUD","ITEM_IS_A_COUNTERFEIT","BRAND_NAME_MISUSE","WRONG_CATEGORY","PROHIBITED_SHIPPINGvOR_PAYMEN_TMETHOD","OTHER_PROHIBITED_ITEM","OTHER_PROHIBITED_SETUP","OTHER","GPT_PAGE_NAMES","LOADING_STATES","Recommendations","collapseIfEmpty","createRequestUrl","enableQuickView","errorFallback","gtmLabel","infiniteScrollEnabled","itemCardProps","ssrItemIds","loader","noMoreItemsMarker","onReachedEnd","showAds","loadingState","setLoadingState","currentPage","setCurrentPage","setItemIds","useInView","rootMargin","threshold","loadingTriggerRef","loadingTriggerInView","addItemIds","itemIdsToAdd","loadAds","getItems","itemsInResponse","x","reloadOnUnauthorized","nextPage","handleQuickViewClick","itemComponents","adsEnabled","pageIndex","skipTopAd","components","display","QuickView","existsInWishList","imageFormats","handleModalDismiss","disableNext","disablePrev","prevItem","nextItem","fixedHeight","carouselStyle","wishListItemIds","MitIdLogo","color","logoClassName","selectIsGoogleAdsEnabled","selectIsDanishVisitor","selectIsFeatureEnabled","selectInvoiceCheckout","invoiceCheckout","selectInvoicePayment","selectInvoiceOngoingPayment","sellerPhoneNumber","ACTIVE_FILTER_STATES_COUNTY","ACTIVE_FILTER_STATES_ITEM_CONDITION","ACTIVE_FILTER_STATES_ITEM_STATUS","ACTIVE_FILTER_STATES_ITEM_TYPE","ACTIVE_FILTER_STATES_SELLER_TYPE","FILTER_STATES_ALLOWED_BUYER_REGIONS","SWEDEN","INTERNATIONAL","NORDIC","MODALS","FILTER_MODAL","CATEGORY_MODAL","GRID","LIST","TopDescription","descKey","pushToDataLayer","dataLayer","isNonInteractive","userTriggered","eventCategory","eventAction","eventLabel","eventValue","eventNonInteractive","hitCallback","Sentry","level","trackPageView","trackTiming","variable","GdprModal","acceptAndHide","classNameBody","GdprSettingsModal","save","saveHandler","performance","functional","marketing","l","handleChange","autoFocus","visibleModal","visibleSettings","openSettings","closeSettings","isQuantcastConsentEnabled","CookieUtil","GDPR_CONSENT_ALERT_DISMISSED","toDate","hasCookie","GDPR_CONSENT_COOKIE","isPerformanceEnabled","isMarketingEnabled","disconnect","warnIfDevBuild","isHybridAppContext","isBasicApp","getElementsByClassName","AppToMount","BasicApp","App","log","Logger","ApplicationErrorBoundary","componentDidCatch","getErrorMessage","fallback","nonActiveButtonClasses","activeButtonClasses","_Happy","_Sad","Happy","Sad","Caption","Figure","captionText","captionColor","figure","_Rating","selectedRating","onRatingClicked","ratingButton","Rating","ACTION_TYPES","SET_FEEDBACKS","TOGGLE_IS_POSITIVE","SET_IS_POSITIVE","SET_IS_ITEM_NOT_RECEIVED","SET_COMMENT","SET_RATING","toggleIsPositive","isPositive","DetailedRating","ratingDescriptions","ratingSettingName","ratingDescription","ratingName","setRating","_ItemNotReceived","isItemNotReceived","checkboxId","setItemNotReceived","ItemNotReceived","_UnpaidItem","unpaidItemUrl","UnpaidItem","AutoHeightTextArea","textAreaRef","setText","textAreaHeight","setTextAreaHeight","setParentHeight","scrollHeight","defaultValue","_CommentInput","onKeyPress","setComment","CommentInput","togglePositive","previous","createFeedbackPayloadsMap","groups","isBuyer","ratingNames","feedbacks","feedback","ratings","inr","createFeedbackPayload","isCommentTooLong","isCommentWithLinebreaks","isValidFeedback","every","isAllRatingsValid","isPositiveOrNegative","Form","errorMessageTranslationKeys","ratingSettings","ratingValues","setRatingValues","isCommentInvalid","indexOfShippingTime","findIndex","ratingSetting","showItemNotReceived","indexOfPaymentTime","showUnpaidItem","charsCount","Details","transactionDate","memberUrl","_LeaveFeedbackItem","isNegative","toggleNegative","stateColor","showForm","LeaveFeedbackItem","ThinDivider","ThickDivider","Dialog","dismissActionText","confirmActionText","SubmittedDialog","submittedFeedbackCount","SubmitErrorDialog","AlreadySubmittedErrorDialog","ConfirmSubmitDialog","negativeCount","updateValidationError","translationKeys","getValidationErrorTranslationKeys","updateSubmittables","validFeedback","isAllRatings","resetItemNotReceivedIfNeeded","feedbacksReducer","oldFeedback","newFeedback","setAllRatings","newRatings","PageHeader","actionComponent","dataTestPageId","hasSecondColumn","SubmitButton","isSubmitting","submittableCount","submitButtonText","StickyContainer","makeSticky","Layout","renderHeader","LeaveFeedback","givenTransactionIds","loadedCount","setLoadedCount","itemsLeft","setItemsLeft","setGroups","setIsFetching","setIsSubmitting","setNegativeCount","showSubmitNegativeWarning","setShowSubmitNegativeWarning","showSubmittedDialog","setShowSubmittedDialog","showSubmitErrorDialog","setShowSubmitErrorDialog","showAlreadySubmittedErrorDialog","setShowAlreadySubmittedErrorDialog","nextCount","negatives","submitOrConfirm","submit","leaveFeedbackService","onFetchAllSuccess","oldGroups","newGroups","incomingGroup","existingGroup","g","mayHaveDuplicates","arr","getKey","keepFirst","seen","keepUnique","onFetchError","responseJSON","fetchNext","fetchAll","fetchByTransactionIds","isInDialog","showItems","itemsExist","upiUrl","WaitForConsentApiLoaded","placeHolder","onLoadRender","sortByIndex","getFavouriteSellers","shippingCountryCode","userLanguageCodeIso2","automaticTranslationPreference","getSellerSuggestions","favouriteSellerCardDtos","defaultStartPageConfig","header","alternativeText","isCampaignMode","webpageUrl","contentLoggedOut","contentLoggedIn","fetchStartPageConfig","CMS_API","fetchTrendingBrandsIfNeeded","logoImageUrl","fetchTrendingSearchesIfNeeded","isTrendingSearchesFromMlEnabled","fetchWishList","addItemsToWishList","fetchFavouriteSellers","isSellerSuggestionsEnabled","selectAutomaticTranslationPreference","promise","suggestionsPromise","selectStartPageStatus","selectStartPageHeader","StartPageHeroBanner","bannerLinks","content","baseUrl","getImageSizes","imageCount","isGrid","imageSizes","srcSet","getWebpImage","getOwnPropertySymbols","getOwnPropertyDescriptor","o","getOwnPropertyDescriptors","navigator","unsupported","v","memory","deviceMemory","totalJSHeapSize","usedJSHeapSize","jsHeapSizeLimit","hardwareConcurrency","Video","video","poster","videoLarge","largeUrl","videoMedium","mediumUrl","videoSmall","smallUrl","loops","setLoops","videoRef","isMobileBreakpoint","isTabletBreakpoint","isDesktopBreakpoint","useIsDesktop","playVideo","play","handleVideoEnded","videoLoops","duration","videoElement","autoPlay","playsInline","muted","MediaItem","u","f","webpImage","connection","effectiveConnectionType","effectiveType","Symbol","iterator","done","return","setNetworkStatus","media","Tag","gaAction","gaCategory","Tags","onClickTag","titleOnSameLine","TrendingSearchesTags","inHeader","textOrIcon","useRecentSearchesUpdated","recentSearches","RecentSearchesTags","recentSearchesUpdated","toSearchString","StartPageHeroTrustmark","StartPageHero","showRecentSearches","showTrendingSearches","backgroundVideo","taglineDesktop","taglineMobile","searchElementRef","searchInView","searchInViewEntry","parsedCampaignUrl","toRelativeTraderaUrl","FallbackImage","isSpaLink","CarouselItem","itemHeadersAsImageOverlay","videoEnabled","button","showHeading","showContent","stripHost","NextArrow","arrowClassName","PreviousArrow","Carousel","hiddenOn","singleItemClass","dots","infinite","speed","slidesToShow","slidesToScroll","initialSlide","swipeToSlide","nextArrow","prevArrow","responsive","arrows","InstagramImage","InstagramFeed","instagramFeed","posts","PopularCategories","getSettings","getGridSettings","multiRow","singleItem","dotsClass","slidesPerRow","getGridSlidesPerRow","numberOfEntries","ConnectedRecentlyViewed","recent","activeItems","recentItemEndDate","trackPicksForYouClick","EndingSoonErrorMessage","LoadMoreButton","recommendationMode","PicksForYou","itemsPerPage","recommendationCreateRequestUrl","useRecommendationsRequestBuilder","lastChanceCreateRequestUrl","endingSoon","useSplitTestGroup","splitTestName","splitTestGroups","SuggestedSellerToggle","sellerId","isFavouriteSeller","isFavoriteSeller","setFavoriteSeller","toggleFavoriteSeller","isAlreadySaved","postFavoriteSeller","outline","nowrap","wasFavouriteSeller","trackFavoriteSellerClick","FavouriteSellerCard","sellerAlias","sellerProfileUrl","matchedItems","heroImageUrl","isSuggestion","FavouriteSellerCardsGrid","allSellers","SellerSuggestions","FavouriteSellersInternal","triggerOnce","allFavouriteSellers","sellerSuggestionsPosition","showSellerSuggestionsPositionAbove","showSellerSuggestionsPositionBelow","toggleWishList","showFallbackInfo","showBidStatus","showShippingOrOnDisplay","showSellerAlias","FavouriteSellers","WishListInfoCard","padding","boxSizing","WishListInternal","hideWishListInfoCard","setHideWishListInfoCard","showInfoCard","isWishListEnabled","Container","WISH_LIST","CATEGORY_LINKS","PageContent","PersonalisedBrandsTags","showFallback","useShowPersonalisedBrandsFallback","useIsPersonalisedBrandsTagsLoading","fallbackStatus","PersonalisedSearchesTags","useShowPersonalisedSearchesFallback","stateTags","setTags","shouldTranslateOnLoad","translateTags","translationDynamicApiClient","command","htmlTexts","toLanguageCodeIso2","useIsPersonalisedSearchesTagsLoading","PersonalisedTags","StartPage","displayRecentSearches","displayTrendingSearches","usePageMeta","isPersonalisedSuggestionsEnabled","isPersonalisedBrandsTagsLoading","isPersonalisedSearchesTagsLoading","showPersonalisedSearchesFallback","usePortal","showPersonalisedTags","isLoadingPersonalisedTags","moveTrendingSearchesToPersonalised","showTrendingSearchesInHeader","showTrendingSearchesBelowHeader","showRecentSearchesInHeader","showRecentSearchesBelowHeader","deviceName","stickyBottom","stickyEnabled","stickyTop","getShippingDisplayText","CartError","CartPage","cartId","CART_ID","fromAddItem","selectMemberId","cart","merchantPreOrders","fetchCartData","isCheckoutDisabled","orderRows","quantityInShop","isUnavailable","goBack","displayText","toCountryCode","provider","mapShippingOption","sum","merchantMemberId","merchantAlias","onQuantityChange","removeItemsFromCart","setCartItemQuantity","changeItemQuantity","goToSeller","shopItems","expectedItemPrice","confirmCartPurchase","isCommitOnPayment","createUncommittedPurchaseOrder","PageMeta","routeMap","useLocation","getCurrentPageFromRoute","pageMetaData","BrandPage","BrandListPage","CampaignPage","CategoryListPage","CategoryPage","CheckoutPage","CheckoutConfirmationPage","FavouriteSellersPage","Landing_GantXTradera","Landing_StadiumXTradera","ProfilePage","RecommendationsPage","ReportItemPage","SearchPage","SwishApp2AppCallbackPage","TraderaShopPage","VerifyPage","ViewItemPage","UPI","Dcs","DcsConfirmationMcp","INR","Cause","CausesLandingPage","CausesInfo","Messaging","trackGtmEvent","brand","swishResult","returnUrl","s","categoryNameAndId","divider","pop","SuspenseFallback","Routes","BackgroundImageLoader","TagName","placeholderSrc","placeholderClassName","fallbackSrc","fallbackClassName","loadedClassName","currentSrc","currentClassName","ItemCardImage","imageHeight","imageMode","imageWidth","imageSecondaryUrl","linkProps","imageStyle","aspectRatio","paddingTop","secondaryImage","ALink","_interop_require_default","_loadableContext","useSyncExternalStore","__NEXT_REACT_ROOT","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loaded","LoadableSubscription","_res","retry","_clearTimeouts","_loadFn","_opts","pastDelay","timedOut","res","_delay","_update","_timeout","_err","partial","_callbacks","getCurrentValue","subscribe","loadFn","Set","Loadable","assign","webpack","modules","suspense","subscription","sub","moduleIds","moduleId","useLoadableModule","context","useContext","LoadableContext","moduleName","LoadableComponent","useImperativeHandle","preload","forwardRef","createLoadableComponent","flushInitializers","initializers","promises","Promise","all","preloadAll","resolveInitializers","preloadReady","resolvePreload","__NEXT_PRELOADREADY","_default","shippingCheckoutSlice","openNonIntegratedModal","nonIntegrated","closeNonIntegratedModal","markedAsBooked","markedAsShipped","setCheckoutSummaryHasError","setTermsAccepted","termsAccepted","builder","addCase","fulfilled","shipments","sellerPhone","hasFetchError","totalShippingCost","shippingPrice","rejected","hasDeleteError","isDeleting","arg","meta","cleanedBuyerAddress","isUpdatingShipment","itemWithoutShipment","isCreating","productsDecorated","productsPerWeightSpan","weightClass","filteredProductsWithDecoration","products","outage","uuid","isShippingFetching","hasShippingError","shippingConfirmation","loadScript","optionsWithDefaults","timeoutTimer","script","head","async","filterNameMappings","sellerType","county","countyBox","itemStatus","shoeTypes","subDepartments","shoeSizes","brandTags","sortBy","trackFilter","trackButton","trackPriceFilter","fromPrice","toPrice","lbl","reverseCategoryPath","keywords","ga_page_title","SET_GPT","languageCode","en","OnDisplayBadge","immediate","args","later","last","callNow","REQUEST_CATEGORY_LIST","RECEIVE_CATEGORY_LIST","HANDLE_CATEGORY_LIST_ERROR","modalState","ADD","ADD_RECENTLY_VIEWED","WISHLIST_ADD_RANGE","SETTINGS","UPDATE_ITEM","cacheOrder","setItemWishList","exists","addRecentlyViewed","getStore","shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip","onSignedOutError","gtmCore","postWishlistItem","Button","unbutton","translucent","branded","fluid","click","iconHidden","iconFixed","toggle","toggleActive","hoverColor","input","allClasses","hover","transparent","hiddenIcon","fixedIcon","buttonClasses","Boolean","onBtnClick","breadcrumbs","canonicalLink","metaDescription","metaRobots","bodyClass","toAbsoluteUrl","LoaderComponent","visibleClassName","loaderRef","classList","GlobalLoader","PortalLoader","LocalLoader","eventName","attachEvent","detachEvent","RadioSwitch","optionClasses","getOptionClasses","flexGrow","defaultChecked","classMap","noclip","invoiceId","amountOwed","getDefaultImageData","firstEmpty","isUploading","leadingBidMemberId","isCancelled","isAuction","ITEM_TYPES","AUCTION","AUCTION_BIN","isBuyItNow","PURE_BIN","isShopItem","SHOP_ITEM","TRANSACTION_TYPES","BIN","ENDED_AUCTION_WITHOUT_BID","ENDED_AUCTION_WITHOUT_WINNING_BID","ENDED_FIXED_PRICE","UNKNOWN","getEndedItemState","ONGOING_AUCTION","ONGOING_AUCTION_BIN","ONGOING_FIXED_PRICE","getOngoingItemState","ModalContainer","BidsLabel","slotId","seedItemIds","userLanguage","queryParameters","maxResults","pageNumber","arrayFormat","similarItemsRequestBuilder","similarItemsFromShopRequestBuilder","similarItemsFromCampaignRequestBuilder","createContext","DiscountBadge","discountRate","setErrorMessage","getCheckout","withCredentials","selectedShippingId","getExternalAuthData","sendSwishSms","setShippingInfo","setCollectionPoint","getCollectionPoints","createKlarnaClientToken","VIEW_ITEM_STATES","INITIALIZING","ACTIVE","ENDING","ENDED","getTranslatedImageLabel","labelKey","buyerActiveItemsLabelKeys","RESERVE_PRICE_NOT_REACHED","activeLabelKeys","unsoldLabelKeys","soldLabelKeys","NOT_PAID","purchasesLabelKeys","PAID","DONE","LEADING","OVERBIDDEN","BID_REMOVED","NOT_STARTED","HAS_BIDS","SOLD","NOT_SOLD","SHIPPING_BOOKED","SHIPPED","FORICBLY_CLOSED","RESTARTED","itemLostLabelKeys","REMOVED","LOST","buyerActiveItemsLabels","reservePriceNotReached","leading","overbidden","bidRemoved","activeLabels","notStarted","sold","notSold","soldLabels","notPaid","unsoldLabels","forciblyClosed","restarted","purchasesLabels","itemLostLabels","lost","removed","itemHasBids","itemHasBidsButReservePriceNotReached","pricing","getActiveLabel","activityType","getActiveActiveLabel","unSold","getUnsoldLabel","closed","getStates","getBuyerActiveItemsLabel","getSoldLabel","states","getPurchasesLabel","getBuyerItemsLostLabel","HighlightWord","beforeQuery","afterQuery","hasSplitQuery","fixFlexHeightInIpadMini2Style","flexBasis","PreviousSearchesListItem","changeSearchTerm","isSelected","onPreviousSearchRemoved","selectedCategoryId","onMouseDown","SearchesSuggestionsListItem","ShopsSuggestionsListItem","suggestionUrl","CharitiesSuggestionsListItem","CampaignSuggestionsListItem","headline","AdvancedSearchListItem","SellerSearchListItem","SearchSuggestion","suggestions","onChangeSearchTerm","selectedIndex","searchSuggestionsElementRef","entry","componentProps","MultiCurrency","amountInSek","allowNegative","rate","maximumFractionDigits","decimals","dismissLocalizationRegionPicker","onLocalizationShippingRegionSelected","ConnectedLocalizationRegionPicker","showLocalizationRegionPicker","selectShowLocalizationRegionPicker","geolocation","selectGeolocation","userAgent","useUserAgent","isCrawler","isPrerender","isoCode","LocalizationLink","hideRegionSelection","showRegionSelection","selectShowRegionSelection","showIconInsteadOfFlag","getCountryCodeForFlagFromLanguage","ShippingCountrySelectDropdown","shippingCountries","selectedShippingCountry","onSelect","searchFocus","setSearchFocus","setSearch","isSearchEnabled","setIsSearchEnabled","includesSearch","filteredShippingCountries","listStyle","Row","itemSize","PlainShippingCountrySelect","getAvailableShippingCountries","updateShippingRegion","showShippingCountries","isLoadingAvailableShippingCountries","onShippingCountrySelected","ShippingCountrySelect","selectShippingCountry","selectAvailableShippingCountries","selectIsLoadingAvailableShippingCountries","selectHasLoadedAvailableShippingCountries","LocalizationMenu","onLanguageSelected","invoiceCheckoutSlice","setInvoiceData","setPaymentPaying","isPaying","getInvoice","WithIsMobile","MENU","PURCHASE_ORDER_REQUEST_COMBINED_SHIPPING","PURCHASE_ORDER_SHIPPED","PURCHASE_ORDER_LIST","PURCHASE_ORDER_PAID_BY_SELLER","PURCHASE_ORDER_PAID_BY_BUYER","PURCHASE_ORDER_RESET","PURCHASE_ORDER_DELETE_SHIPMENT","PURCHASE_ORDER_HIDDEN","PURCHASE_ORDERS_SHIPPING_BOOKED","DISABLED","getBodyStringFromIDs","bodyString","pos","formHeaders","restartItemsSummary","ACTIVE_ITEMS_RESTART_SUMMARY","ACTIVE_END_ITEMS","showPurchases","showActive","hideActive","restartItems","UNSOLD_RESTART_ITEMS","markPaid","PaymentMethodLogo","visaLogo","mastercardLogo","marginRight","customPageMetaData","setMetaTitle","process","PUBLIC_ADSENSE_SHOPPING_PUBLISHER_ID","adUnitPath","age","devTest","gender","memberIdHash","customTargetingParameters","pick","publisherProvidedId","getInitData","isAutoStartAllowed","autoStartToken","onCompleteCallback","onCloseCallback","retryCount","allCategories","getActiveFilterStatesAllowedBuyerRegions","constants","isSwedenCountryCode","isEuCountryCode","getDefaultAllowedBuyerRegionsFilter","normalizeFilters","normalized","parameter","selectedValue","normalize","responseData","internalSearchBar","fallbackUrl","categoryFilter","singleOptionFilters","priceRangeFilter","setSingleFilter","showOrHideAllowedBuyerRegionFilter","memberActionTypes","SET_GEOLOCATION","DEFAULT_ACTION","ITEM_CACHE_MAX_SIZE","newCache","newCacheOrder","updatedRecent","recentItem","unshift","wishlistAddRange","SET_IS_FETCHING_GEOLOCATION","FAILED_LOADING_GEOLOCATION","SET_MEMBER_HERO_IMAGE","createInitialState","suggestionsAvailable","levels","_level","suggestionsVisible","categoriesVisible","moreButtonVisible","hideButtonVisible","anyLevelOpen","showExplanation","previousDraftCategoryId","prevoiusDraftCategoryPath","shortDescriptionForRecommendations","validationError","validate","_paymentOptions","_paymentOptionsPresentationData","hasAnyValidPayment","shapePaymentOptions","filteredPaymentOptions","presentationData","pd","paymentType","uiCheckedPaymentOptions","selectedPaymentOption","takeawaySelected","displayPaymentOptions","po","paymentOptionsTop","paymentOptionGroups","showToggle","forceBraintreeIfNeeded","isPropertyEditMode","creationType","creationStart","allErrorsVisible","isEditOfPublishedItem","publishPending","publishFailed","publishFailedReasonDisplayText","publishedItemPendingVip","publishedItem","openModalData","autoSaveEnabled","draftCanBeResumed","itemUpdating","itemUpdated","step1","step2","step3","step4","getSelectedShippingProducts","shippingByWeight","offerTakeaway","weight","possiblePosten","takeAwayOption","summaryDisplayName","offerShipping","globalValidationError","validationErrors","global","shippingRecommendations","recommendedWeight","shippingOptionsError","shippingContainsProduct","createReducer","RESET_SHIPPING_OPTIONS","SET_SHIPPING_OPTIONS_BY_WEIGHT","shippingContainsTakeaway","SET_SHIPPING_OPTION_SELECTED","selectedOptions","SET_TAKEAWAY_SELECTED","SET_SHIPPING_OPTIONS_ERROR","SET_SHIPPING_FROMCOUNTRY","CLEAR_SHIPPING_RECOMMENDATIONS","SET_SHIPPING_RECOMMENDATIONS","saveAsDialogOpen","templatesLimitReachedDialogOpen","ignoreProperties","SET_SAVE_AS_DIALOG_OPEN","SET_TEMPLATES_LIMIT_REACHED_DIALOG_OPEN","RESET_IGNORE_PROPERTIES","ADD_IGNORE_PROPERTIES","REMOVE_IGNORE_PROPERTIES","selectionError","defaultCampaignProperties","campaignCodeDescription","maxFeeCap","campaignCodeChecked","firstTimeSubscribe","validCampaign","timeoutId","campaignCodeValid","searchingDelayed","searchingDelayedTimeoutId","isReadOnly","bannerMobileImageUrl","bannerTabletImageUrl","bannerDesktopImageUrl","nullIfFalsy","ensureValidCampaignCodeId","defaultDraft","commissionProcent","discountFactor","campaignCommissionProcent","minCommissionCost","commissionMinimum","maxCommissionCost","commissionCap","isVariableCommission","chosenExtraFeatures","hasChosenExtraFeatures","isUnsoldFeeFree","isCategoryWithNoCommissionCap","makeDaysOptions","maxDays","numberOfDays","makeHourOptions","hour","makeMinuteOptions","minute","getValidationErrors","customEndTimeError","startOf","getEndDate","earliestEndDate","isBefore","uploadError","isUploadingWithApp","isUploadedBySystem","resolveFirstEmpty","foundFirst","resetUploadError","removeLastLoading","setLoadingOnFreeSlots","numberOfLoading","setImageCount","withUrl","isValidPrice","str","String","isFinite","isInt","errorKey","isNaN","validateFixedPrice","showAuctionBinPrice","validateAuctionBinPrice","showReservePrice","validateReservePrice","showCharityDonation","editCharity","selectableVats","selectableVatValues","reservePriceCanChangeButNotBeRemoved","draftBeforeChange","textWithHtml","elm","innerHTML","textContent","innerText","ensureString","isCurrentDescriptionFromDraft","fromDraftCounter","scrollY","isSchenkerPaidBySchenker","isSchenkerPaying","toUpperCase","filterSelectableSuggestions","incomingSuggestedAttributes","selectableSuggestions","categoryAttribute","suggestedAttribute","isSelectableSuggestion","isMaxReached","maxNumberOfValues","draftAttributes","selectableSuggestedAttributes","selectableCategorySuggestedAttributes","selectableImageToColorSuggestedAttributes","imageToColorSuggestedAttributes","updateSelectableSuggestedAttributes","primarySuggestedAttributes","secondarySuggestedAttributes","primarySuggestedAttribute","psa","secondarySuggestedAttribute","ssa","suggestedAttributeValues","isAlreadySuggested","updateSelectableImageToColorSuggestedAttributes","updateCategoryAttributesOptionsStatuses","draftAttributeValues","tav","numberOfValuesSelected","minNumberOfValues","RESET_ATTRIBUTES","RESET_SELECTED_ATTRIBUTES","RESET_IMAGE_ATTRIBUTES_SUGGESTIONS","SET_CATEGORY_ATTRIBUTES","SET_DRAFT_ATTRIBUTES","SET_CATEGORY_ATTRIBUTE_OPTION","attributeId","isMultiSelect","optionValue","activate","UPDATE_CATEGORY_ATTRIBUTES_OPTIONS_STATUSES","SET_CATEGORY_ATTRIBUTES_SUGGESTIONS","categorySuggestedAttributes","suggestedAttributes","suggestionsExtractorType","SET_IMAGE_ATTRIBUTES_SUGGESTIONS","consent","shouldGiveConsent","isSyiMemberConsentEnabled","hasTraderaPayConsent","hasValidationError","createInitalState","SET_TRADERAPAY_CONSENT","hasLoaded","viewItemState","isBidding","placeBidResponse","initialBidFormValue","combineReducers","traderaStateBankId","isChecked","newLevels","isLeaf","newDraft","referenceIsReadonly","newAdditionalDescriptions","toISOString","drafts","edit","step1Errors","step2Errors","step3Errors","step4Errors","e1","e2","e3","e4","fees","newslots","slotIndex","numberOfSlots","daysOptions","hourOptions","minuteOptions","isCustomEndTimeVisible","customEndTimePrice","isRestartAvailable","newStateWithoutCampaignRelatedProps","draftService","getLanguage","memberConsent","isCreditCard","isSecure","helpModalId","isPhone","hasFee","allVisible","preview","publishDelayed","reasonDisplayText","categoryRestriction","newValue","modalData","templates","template","imageRotationDegrees","updatePurchaseOrderRequestCombinedShipping","buyerRequestedCombinedShippingPriceDate","updatePurchaseOrderShippingPrice","sellerSetCombinedShippingPriceDate","shippingAmount","totalAmount","totalItemAmount","updatePurchaseOrderShipment","updatePurchaseOrderShippedBooked","isBooked","updatePurchaseOrders","checkHaveGivenFeedBackTo","itemToGiveFeedBackTo","updatePurchaseOrderFeedback","updatePurchaseOrderHidden","payments","payout","checkout","profile","reportItem","shippingCalculator","traderaShop","shippingCheckout","setIsActionsPerFullPageLoadDone","isActionsPerFullPageLoadDone","multiCurrency","connectRouter","getJSValue","True","False","All","setJSValue","true","false","getEnum","selectShippingConfirmation","DiscountedPriceLabel","formatNumberWithSeparators","getCartOverview","CART_OVERVIEW_VIEW","addItemToCart","CART_ADD_ITEM","CART_REMOVE_ITEMS","CART_SET_ITEM_QUANTITY","ORDER_PURCHASE_SHOP_ITEMS","purchaseOrderItems","ORDER_CHECKOUT_CREATE_UNCOMMITTED_PURCHASE_ORDER","updateCartSummary","CART_UPDATE_SUMMARY","setFetching","checkoutData","setCartData","addItemResult","date","setMonth","getMonth","preorderId","confirmData","removeFromCartWithoutReload","itemPrice","LOCALES","mapLocale","translate","surveyOptions","darkMode","qualtive","present","customAttributes","isQualtiveFeatureToggleEnabled","user","withQualtive","WithQualtive","isGoogleAdsEnabled","adContainerRef","adContainerClass","autoscale","autoscaleOffsetWidth","refresh","canCreateDfpAd","sizeMapping","minViewportWidth","maxViewportWidth","pageTargeting","slotTargeting","getIds","isTakeAway","commonActions","sellSimilar","hasTransactionDateNewerThen60Days","dateLimit","subtract","isAfter","itemsFromSeller","haveMultipleRows","getActionsForItem","isLeading","fixedItemUrl","fixItemUrlIfNeeded","activeBuyerActions","isPaidWithIntegratedPaymentOption","isLeaveFeedbackReactEnabled","getMessagingThreadLink","traderaUserId","singleThread","openForm","isMessagingEnabled","isMessagingSellerButtonsEnabled","trackingLink","isDisputesEntranceEnabled","dispute","lostActions","haveCombinedShipping","isMessagingBuyerButtonsEnabled","hasStampsAsSelectedShippingType","unpaidShippingUrl","unpaidShippingId","paidShipmentCheckoutId","bookedShipment","isDiscountAfterPaymentSupported","upiSubmitted","isDiscountBeforePaymentSupported","hide","unsoldActions","common","shareHeader","shareMailSubject","shareMailBody","sharePinterestDescription","shareLinkText","shareLinkHref","shareTitle","shareImageUrl","full","activeSellerActions","labelFunc","columnFunc","columns","getCheapestShippingPrice","substring","prev","actionLabelMap","buyerActiveItemsColumns","buyerPurchasesColumns","buyerItemsLostColumns","sellerActiveColumns","sellerSoldColumns","sellerUnsoldColumns","getColumns","createReturnObject","hasIncorrectResponse","AnimateOnValueChange","animate","setAnimate","firstUpdate","onAnimationEnd","FixedPriceLabel","BuyerProtectionInfo","getHistory","shippingDetails","SellerName","badgeText","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","entries","RegExp","flags","valueOf","$$typeof","logDebug","isDev","logWarning","useLoading","dependencies","savedCallback","setStatus","navigationKeyRef","navigationKey","setNavigationKey","useStore","useHistory","setLoading","oldStatus","setLoaded","googleTagManagerService","onNavigate","newSpaPage","buildInitialGtmDataLayerFromInitData","previousPage","listen","loadWarningTimeout","RouteMapRoutes","route","loadStatus","LocalizedPrice","specialSearchTerms","stammisglaset","SearchCategory","handleCategoryChange","selectOptions","chosenCategory","isDefaultSelected","KEYCODE","Search","discoverCurrentCategoryId","discoverSearchTerm","createRef","isSearchInputFocused","setIsSearchInputFocused","setSearchTerm","setSuggestions","selectedSuggestionIndex","setSelectedSuggestionIndex","loadSuggestionsDebounce","getSuggestionsWrapper","enableSuggestionsFromBackend","loadSearchSuggestions","newSearchTerm","changeWindowLocation","newQuery","trimmedSearchTerm","newSearchUrl","specialTermUrl","filteredQueryParams","spage","isQueryReformulation","SEARCH","currentCategory","getNewSearchUrl","allCategoriesOption","optionsList","selectedOption","getCategoryDropdownConfig","categorySelectOptions","selectBox","discoverActions","which","querySelectorAll","incrementBy","newIndex","currentIndex","totalElements","getNextIndex","handleUpDownArrowKeys","ConnectedSearch","SearchInSpa","withRouter","SearchOutsideSpa","getAdClass","getAlmostRandomId","seed","getMilliseconds","HolidAd","adClass","isTestEnvironment","isHolidBetaTest","addTimestamp","useBeta","holidAds","scriptTag","getElementsByTagName","initHolid","HolidAdWrapper","adSize","getAdSize","LocalizedDfpAd","isCriteoDirectBidderEnabled","isHolidAdsEnabled","adComponent","isLoggingEnabled","PriceLabel","hasDiscount","isDescriptionLanguageCodeIso2ChangeAvailable","isDenmarkCountryCode","getValidationError","shortDescriptionSlice","setShortDescription","resetShortDescription","setDescriptionLanguageCodeIso2","ModalHeader","initialPayloadItems","formatUtcDateAsSwedishTimeZoneDate","buying","dcsSubmitted","isDcsSubmitted","initialPayloadPurchaseOrders","myTraderaItemsActions","REQUEST_COMBINED_SHIPPING_PRICE","hasRequested","searchUrlNormalView","modifiersFromState","PageNumber","PageSize","totalPages","totalNumberOfPages","totalNumberOfPurchaseOrders","isHidden","initializeState","itemNext","initializeUiFromInitData","initLanguage","initShippingRegion","initEnvironment","initMember","initInitData","initMultiCurrency","itemsActions","initStartPage","initTraderaShop","fetchSystemMessages","discoverResponse","stripItmFromQueryParameters","formatQueryParams","toQueryParameters","viewItemActions","handleReportItemModel","AnimatedPriceLabel","showAnimation","setShowAnimation","timer","priceLabelProps","LeadingBadge","OverbiddenBadge","ShippingBadge","hasFreeShipping","SellerAliasBadge","ItemCard","onAttributeButtonClick","onSettings","isSwedishVisitor","showBids","isNewToday","getMediumFitImageUrl","handleWishlist","onDisplay","isOverbidden","priceBeforeDiscount","BANK_ID_CANCEL","DECLINED_PAYNOVA","PERSONAL_ID_INVALID","EMAIL_ADDRESS_INVALID","NotSpecifiedShippingOption","CHECKOUT_ERROR_STRINGS","getCheckoutErrorMessage","AUCTION_HAS_ENDED","AUCTION_HAS_NOT_STARTED","BELOW_MINIMUM","BELOW_OWN_LEADING_BID","BELOW_RESERVE_PRICE","BID_NOT_FOUND","BIDDING_OR_BUYING_OWN_ITEM","BUYING_LIMIT_REACHED","EQUAL_OR_HIGHER_THAN_BUY_IT_NOW","HIGHER_BIDDER_EXISTS","ITEM_NO_LONGER_AVAILABLE","LEADING_BIDDER","NO_LONGER_VALID","SUCCESSFULLY_CHANGED_AUTOBID","OFFLINE","BID_VALIDATION_RETRY","initialPlaceBidResponse","translatedDescriptionStates","SERVER_ERROR","TRANSLATION_ON_DEMAND_DISABLED","categoryItemIds","sellerItems","combinedShippingItemIds","translatedDescription","translatedDescriptionState","viewItemSlice","resetPlaceBidResponse","setInitialBidFormValue","setIsRestricted","isRestricted","setIsInternationalWacko","wackoInfo","isInternationalWacko","setPurchaseInfo","purchaseInfo","setBreadCrumbs","setIsBidding","setPlaceBidResponse","bidError","setBidInfo","isFirstBidInfo","isBinPurchase","bidStatus","getLeadingBidStatus","existingBidCount","incomingBidCount","newBidInfo","currentItemId","bidInfoItemId","setMyMaxBidAmount","setItemState","setViewItemState","setServerSecondsLeft","setTranslatedDescription","setTranslationOnDemandDisabled","resetTranslatedDescription","prepare","beginLoadingTranslatedDescription","failedLoadingTranslatedDescription","setSellerItems","setCategoryItemIds","setCombinedShippingItemIds","img","thumbnail","multiThumbnail","small","normal","smallFit","mediumFit","largeFit","altText","handleItemModel","itemModel","previousItemId","selectItemId","inWishList","maxBidAmount","hasBidsWinnerToBeConfirmed","updateItemState","selectItemDetails","selectBidInfo","handleNewPage","hasWon","currentItemDetails","currentBidInfo","swedishCategoryPath","selectBreadcrumbs","contentGroup","gtm","itemFixedPrice","itemCategory","itemEndDate","ensureCorrectUrlForItem","expectedItemId","shouldResetInititalState","previousBidInfo","hadLeadingBid","hadLostLeadingBid","forceAdd","inWishListOldValue","inWishListNewValue","wishListCountOldValue","wishListCount","wishListCountNewValue","placeBid","setNotValidToBidOrBuyNow","sellingGlobalConfig","maxTemplates","domainNameCategoryId","INVOICE","intervals","useTicker","period","cleanup","callbacks","intervalId","endDateStr","formatTimeLeft","warningLimit","setIsCountdownDone","setTimeLeftText","setIsCountdownEnabled","setIsTimeLeftBelowWarningLimit","previousAdjustment","updateTimeLeft","isInitialCall","syncServerTime","adjustedSecondsLeftWithFractions","secondsLeftWithFractions","adjustment","defaultBox","weightMap","enabledCountries","shippingCalculatorSlice","box","availableFromCountryCodes","availableToCountryCodes","weightUnit","weightSliderValue","isLoadingShippingProducts","shippingProviders","providerName","internationalProductsGroupedByFromThenToCountry","SE","showError","initializeShippingCalculator","defaultCountry","selectedToCountry","selectedFromCountry","setSelectedToCountry","setSelectedFromCountry","setDefaultValuesOnBox","updateFilter","filterName","setWeightFilter","setWeightUnit","beginFetchingShippingProducts","setShowError","setShippingProducts","internationalShippingCalculatorProducts","setDefaultValues","fetchShippingProducts","selectIsBoxValid","INTERNATIONAL_SHIPPING_CALCULATOR","lengthInMillimeters","heightInMillimeters","widthInMillimeters","weightInGrams","TOUCHWEB_URL","sellerResponse","participates","setUserMessagingParticipation","messagingSettings","userResponse","setUserMessagingEmailSetting","setting","u1","u2","getMessagingPageLink","SHIPPING_OPTIONS","ALTERNATIVE","BRINGDENMARK","BUSSGODS","COMBINED_SHIPPING","DHL","FEDEX","NOT_SPECIFIED","POSTNORD","POSTNORD_PARCEL","POSTNORD_STAMP","SCHENKER","TAKE_AWAY","TAKE_AWAY_ONLY","UPS","CATEGORIES","trackBiddingConfirmBid","trackBiddingShowEnterBid","trackBiddingShowConfirmBid","trackBiddingShowChangeMaxBid","trackBiddingQuickBid","trackBiddingNewMaxBid","trackNewBid","trackNewMaxBid","trackOpenCheckoutBin","trackConfirmBin","trackPayBin","trackKeepShopping","trackBinError","trackBidPlaced","validationCode","placedBidId","trackWishlist","isAdding","trackAddToCart","sellerMemberAlias","trackLinkClickAndGotoUrl","getGaTrackingData","clientId","getAll","trackingIds","gaData","ADD_SEARCH_RESULTS","CHANGE_SORT_VALUE","LOCATION_CHANGE","SET_ACTIVE_CATEGORY","SET_ACTIVE_FILTER","STOP_REQUEST_SEARCH_RESULTS","TriotException","mixin","whenInitialized","update","safeMount","selector","mountedComponents","mount","setupTeardown","keepRootTag","unmounted","vdom","unmount","unmountAll","WithIsDesktop","OptionsDisplay","idx","hasClimateCompensation","tooltipText","TakeawayOptionsDisplay","onlyTakeaway","getLocationText","country","mapUrl","LazyLoadedMap","isNextJs","dynamic","ssr","providerDisplayName","isNotSpecified","ShippingOptions","combinedShippingDays","sellerCity","sellerZipCode","postcode","sellerCountryCodeIso2","sellerMapUrl","augmentOption","getTooltipText","augmentedOptions","sortOptionsByPriceAscending","primaryOptions","secondaryOptions","takeAwayOptions","splitShippingOptionsIntoPrimaryAndSecondaryAndTakeAwayOptions","shippingOptionFromCountryCode","shippingOptionToCountryCode","inAllowedBuyerRegion","isInternationalShippingToCountryAllowed","showMoreInfoFoldOut","hasTakeawayOption","hasOnlyTakeawayOption","hasOnlyNotSpecified","buyerRegionText","translateBuyerRegionText","fromCountryText","shippingOptionCountry","titleRightContentArea","latitude","longitude","mapLink","reduxStore","configureStore","browserHistory","createStore","rootReducer","middlewares","ReduxThunk","routerMiddleware","applyMiddleware","sentryReduxEnhancer","getComposer","observe","nextState","unsubscribe","accept","nextRootReducer","require","replaceReducer","enableWebPackHotModuleReplacementForReducers","globalStore","ProviderWithGlobalStore","labels","CurrentPrice","TransactionDate","EndDate","ShippingCost","Bids","ItemId","OpeningBid","ReservePrice","BuyItNow","OwnReference","MaxBid","columnCssClassCore","getCoreCssClass","column","getHeading","columnKey","getTranslatedColumnKey","getHeadings","columnDefinitions","getUserHeading","highestBidder","hasTransactionDate","currentPrice","getItemId","hasHighestBidder","shouldShowBids","purchaseType","getTransactionDate","getTimeLeftAsString","columnCssClass","Discount","columnTitle","getBids","infoItemComponents","BIDS","getOpeningBid","getReservePrice","getBuyItNow","buyItNow","getOwnReference","ownReference","getDefinitionForPriceLabel","PRICE_LABEL","TIME_LEFT","definitions","ITEM_PRICE","definition","tagTitle","getColumn","restOfPayload","updatedData","updateItemLayout","defaultCookie","DEFAULT_COOKIES","updateSiteLayout","MEMBER_SYSTEM_MESSAGES","fetchedMessages","messagingNotifications","PAYMENT_SWISH_OPTOUT","getGeoPublicApiLocationUrl","geoPublicBaseUrl","originalUrl","forceGeoDevMatch","FORCE_GEO_DEV","forceGeoDevCookie","memberEmailMd5","memberEmailSha256","memberBirthdate","memberTown","setIsFetchingGeolocation","setMemberHeroImage","fetchGeolocation","variables","PUBLIC_GEO_PUBLIC_API_BASE_URL","removeShippingCountryCookieIfSwedish","BuyNowLabel","SellerRating","includeTotal","sellerDsrAverage","isGood","isBad","formattedRating","formatSellerDsrAverage","textClassName","SellerLink","hasRating","abs","SHIPPING_TYPES","NotSpecified","ShippingLabel","ItemListCard","showBuyNow","buyNowPrice","ModalFooter","filtersState","checkModifiersExist","getDefaultFilters","datatype","field","processState","properties","scope","searchType","userIs","locationQuery","check","checkItem","TranslationPreferenceMenuItem","onAutomaticTranslationPreferenceChanged","isAutomaticTranslationPreferenceEnabled","setAutomaticTranslationPreference","PlainLanguageSelect","languages","setPreferredLanguage","onLanguageChanged","LanguageSelect","selectAvailableLanguages","cartSlice","getInitialPreferredLanguage","availableLanguages","defaultLanguage","availableIsoCodes","lang","getLanguageDisplayName","capitalize","Intl","DisplayNames","of","languageSlice","available","initServerLanguage","DEFAULT_LANGUAGE","SUPPORTED_LANGUAGES","setPreferred","InfoSection","showSeparators","smSeparator","mdSeparator","onDOMContentLoaded","readyState","CardVerificationModal","setIsHidden","submitButtonRef","createErrors","requestPaymentMethodErr","_braintreeWebError","nonce","isVerified","threeDSecureValidationFailed","liabilityShiftPossible","liabilityShifted","BasicCarousel","slider","slickNext","slickPrev","goTo","imageIndex","slickGoTo","actionButtons","ViewItemVideo","controls","loop","isInView","pause","ImageGalleryModal","initialSlideIndex","isVideoEnabled","rest","carouselRef","closeButtonRef","isMobileDevice","activeSlideIndex","setActiveSlideIndex","handleCloseModalClick","stopClickEventsFromImage","navigate","adaptiveHeight","fade","useCss","useTransform","afterChange","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","defaultAltText","onMouseMove","ViewItemCarouselZoom","showZoomModal","basicCarousel","onMouseUp","customPaging","imageThumbnail","onMouseOver","accessibility","localizationRegionPickerEnabled","isFunctionalCookiesEnabled","hasRegionPickerDismissedCookie","shippingCountryCookieValue","fallbackShippingCountry","regionPickerDismissed","availableShippingCountries","hasLoadedAvailableShippingCountries","SHIPPING_COUNTRY","setShippingCountry","eraseCookie","setDefaultShippingCountry","beginLoadingAvailableShippingOptions","AVAILABLE_SHIPPING_COUNTRIES","availableCountries","setAvailableShippingCountries","getLanguageFromCountryCode","getFallbackShippingCountry","getCountryCodeFromLanguage","initializeFromInitData","REGION_PICKER_DISMISSED","isLocalizationSettingsVisible","setLocalizationSettingsVisible","shouldBeVisible","openUi","__tcfapi","FooterLinks","links","callerId","linksToRender","includedLanguages","areLanguageCodesIso2Equal","BuyingLinks","availableLanguageCodesIso2","selectAvailableLanguageCodesIso2","SellingLinks","SV","DA","DE","EN","ContactAndHelpLinks","ConsentService","InformationLinks","SocialLinks","appLinks","appStore","googlePlay","appName","FooterPartners","isOutsideSweden","partners","containerCss","logo","partner","isCouponationNavLinkEnabled","symbolRef","inView","getFullYear","ATTRIBUTE_NAMES","AttributeButtonsList","visibleAttributes","NO_SELECTED_SHIPPING","getAdPosision","buildProps","DesktopAd","TabletAd","MobileAd","SimpleModal","styleBody","allowPinchZoom","resolveCurrency","preferredCurrencyCookieValue","multiCurrencySlice","isNordicCountryCode","isCountryCode","containsCode","nordicCountryCodes","euCountryCodes","codes","c1","c2","baseURL","paramsSerializer","checkResponseVersion","CombinedShippingBadgeLink","TRACK_REDUX_ACTIONS","SAVE_REDUX_STATE_PATHS","actionTransformer","stateTransformer","sentryState","keyString","keyArray","keyPathArray","setNestedObjectValue","formatMe","toLocaleString","symbolPosition","decimal","comma","ComponentsWithStitchAds","mobileAdIndex","tabletAdIndex","desktopAdIndex","adFrequency","getAdFrequency","ItemsWithStitchedAds","handleAddToWishlist","handleRemoveFromWishlist","handleOpenItemSettings","handleItemAttributesForFilterClick","quickViewEnabled","ItemCardComponent","BottomButtons","Basic","Compact","Normal","payments2Columns","_","ModalBody","inlineStyle","MARK_PAID","Flag","clock","_class","_temp","TAG_NAMES","BASE","BODY","HEAD","HTML","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","_i","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","createTextNode","existingTag","isEqualNode","parentNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref","_ref$title","base","noscript","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","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","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","titleTemplate","mappedState","renderStatic","BinModalCurrencyConversionInfoModal","setVisible","selectIsPreferredCurrencySEK","i18nKey","readMoreLink","settingsLink","strong","CART","LoadingSymbolSpinner","LoadingSymbolCards","localLazyLoadSettings","logoImgUrl","BRING_DENMARK","shippingProvidersMap","dynamicOptions","loadableFn","_loadable","loadableOptions","loadableGenerated","noSSR","isServerSide","LoadableInitializer","Loading","categoryIcons","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","IconComponent","locationUtils","reloadLocalized","AttributeButton","hoverIcon","threads","isGdprModalOpen","messageThreadCount","messageThreadsUnreadCount","headerElement","messagingBadges","ErrorContainer","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","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","WISHLIST_ADD","WISHLIST_REMOVE","checkResponseLoggedOut","getItemDiscountQuota","ITEM_DISCOUNT_QUOTA","postItemSettings","Breadcrumbs","categoryTree","handleClick","breadcrumbRef","parsedCategoryPath","resolveActiveCategoryPath","scrollLeft","scrollWidth","itemScope","BreadcrumbItem","microDataPositionProperty","parents","isFirstElement","itemProp","TextElement","URL_LANGUAGES","checkoutSlice","receiveCheckout","shippingFeeRule","orderNumber","collectionPointId","created","setShippingOptionsLoading","receivePaymentOptions","receiveCollectionPoints","setHasError","setPaymentFetching","setPaymentHasError","setPaymentIsValid","setOrderCalculation","setBuyerProtection","setSelectedShipping","setOngoingPaymentAttempt","setCombinedShippingInfo","setBuyerMember","setBuyerMemberAddress","setShippingInfoFetching","setCollectionPointSaving","savingCollectionPoint","setDropinLoading","dropinLoading","excludeStaticParent","overflowRegex","getComputedStyle","overflowX","overflowY","test","initialScrollEls","threshhold","deferTimer","SettingsButton","isEnabled","isSyiShippingAlertPriceIncreaseEnabled","isShippingCheckoutSwishHandelPaymentReactEnabled","isDiscontinuedSaleMessagingEnabled","force","initDataEL","checkStatus","ID","tradVersion","parseJSON","QuickViewButton","defaultCookies","cookiesSlice","MYTRADERA_DEFAULT_COOKIES","payoutSlice","traderaPay","receivePayouts","payoutDestination","selectPayoutState","SiteSubheader","responsiveClassNames","selectFilterValue","selectWeightUnit","selectWeightSliderValue","selectNormalizedWeight","selectWeightString","selectAvailableShippingProviders","shippingProducts","selectShippingProducts","includedProviders","p","selectIsDifferentFromDefaultBox","selectSelectedCountries","selectAvailableCountryCodes","selectShowError","profileSlice","isTranslationOnDemandDisabled","loadingModel","model","showTranslatedReviews","translatedReviews","translatedReviewsLoading","translatedReviewsLoadingError","setTranslatedReviews","translatedReviewsProviderName","resetTranslatedReview","review","gradeId","setTranslationOnDemandIsDisabled","beginLoadingTranslatedReviews","failedLoadingTranslatedReviews","beginLoadingModel","setModel","feedbackItems","feedbackItem","setFeedbackComment","feedbackId","newFeedbackItems","hasReply","isReplyAllowed","reply","selectViewItem","selectTranslatedDescription","selectTranslatedDescriptionState","FAVORITE_SELLER_REMOVE","FAVORITE_SELLER_ADD","matchedPage","matchPath","requestCategoryList","results","receiveCategoryList","handleCategoryListError","$","initState","shouldInitBankID","bankIdErrorMessage","swishDetails","bankAccountSaved","bankUnknown","hasFailedPayouts","isMemberSetForPayout","tinkOnboarding","iframeUrl","shouldInitTink","paginationLinks","swishApp2AppMember","braintreeMember","onboardToHyperwalletProblems","tinkLink","hyperwalletPayeeVerification","suggestedPhoneNumber","checkMark","maskedBankAccountNumber","isBankAccountSupplied","bankIdCompleted","ItemQuantitySelector","inputMode","setInputMode","ItemDisplay","renderPrice","LoadingPortal","loadingPortalRoot","request","BPOINT","bp","shippingRegionSlice","createBrowserHistory","getReportItemModel","postReport","reason","loadReportItemModel","getBackToHereRedirectUrl","reportItemModel","submitReport"],"mappings":"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JC,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,aACJ/kF,GAAI,aACJglF,GAAI,aACJC,GAAI,aACJp8C,GAAI,aACJq8C,GAAI,aACJC,GAAI,aACJC,GAAI,aACJj0C,GAAI,aACJk0C,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,aAC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antI,UAAUstI,SACvB,GACN,4BACIF,GAAuBD,EAAantI,UAAUe,UACxCosI,EAAantI,UAAUe,UAAUwsI,MACjC,GACV,2BACIH,GAAuBD,EAAantI,UAAUe,UACxCosI,EAAantI,UAAUe,UAAUpxB,KACjC,GACV,yBACIy9J,GAAuBD,EAAantI,UAAUe,UACxCosI,EAAantI,UAAUe,UAAUK,GACjC,GACV,mBAAoBgsI,EACdD,EAAantI,UAAUjb,QACvB,GACN,yBAA0BqoJ,EACpBD,EAAantI,UAAUlpB,cACvB,GACN,oBAAqBs2J,EACfD,EAAantI,UAAUzK,SACvB,GACN,wBAAyB63I,EACnBD,EAAantI,UAAUwtI,aACvB,GACN,wBAAyBJ,EACnBD,EAAantI,UAAU+oI,aACvB,GACN,6BACIqE,GAAuBD,EAAantI,UAAUG,MACxCgtI,EAAantI,UAAUG,MAAMstI,WAC7B,GACV,wBACIL,GAAuBD,EAAantI,UAAUG,MACxCgtI,EAAantI,UAAUG,MAAMutI,MAC7B,GACV,8BACIN,GAAuBD,EAAantI,UAAUG,MACxCgtI,EAAantI,UAAUG,MAAM4B,YAC7B,GACV,+BAAgCqrI,EAC1BD,EAAantI,UAAUxK,oBACvB,GACN,sBAAuB43I,EACjBD,EAAantI,UAAU2tI,WACvB,GACN,yCACIP,GAAuBD,EAAantI,UAAUiB,cACxCksI,EAAantI,UAAUiB,cAAc4zC,eACrC,GACV,uBACIu4F,GAAuB,IAAAD,EAAantI,WAC9B,IAAAmtI,EAAantI,WAAeU,MAC5B,GACV,yBACI0sI,GAAuB,IAAAD,EAAantI,WAC9B,IAAAmtI,EAAantI,WAAeS,QAC5B,GACV,kBAAmB2sI,EACbD,EAAantI,UAAU4tI,OACvB,GACN,6BAA8BR,EACxBD,EAAantI,UAAUyB,kBACvB,MASDkC,EAA0B,CAACT,EAAU2qI,KAC9C,IAAIC,EAAQ5mI,EAAwBhE,KAIpC,OAAOhqB,OAAOoO,KAAKwmJ,GAAOj2G,MAAKzmC,MACtB08I,EAAM18I,KAAUy8I,EAAcz8I,OAJvBA,MACV08I,EAAM18I,IACR08I,EA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","file":"script/chunks/chunk.tradera.810581e87d.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { useCountdown } from 'tradera-hooks/use-countdown';\nimport { formatItemCardTimeLeft } from 'tradera-utils/format-time-left';\nimport { useFormatUtcDateInSwedishTimeZone } from 'tradera-hooks/use-format-utc-date-in-swedish-timezone';\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 formatUtcDateInSwedishTimeZone = useFormatUtcDateInSwedishTimeZone();\n const {\n timeLeftText,\n isCountdownDone,\n isCountdownEnabled,\n isTimeLeftBelowWarningLimit\n } = useCountdown(endDate, formatItemCardTimeLeft);\n\n const time = timeLeftText\n ? timeLeftText\n : endDate\n ? formatUtcDateInSwedishTimeZone(endDate)\n : '';\n\n return (\n \n {isCountdownEnabled && isCountdownDone ? (\n {t('itemCard_ended')}\n ) : (\n \n {time}\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","export const ROLES = {\n BUYER: 'buyer',\n SELLER: 'seller'\n};\nexport const MAX_COMMENT_LENGTH = 80;\nexport const UNSET_RATING_VALUE = 0;\nexport const MIN_RATING_VALUE = 1;\nexport const MAX_RATING_VALUE = 5;\n\nexport const RATING_NAMES = {\n DESCRIPTION: 'ItemAsDescribed',\n COMMUNICATION: 'CommResponsiveness',\n SHIPPING_TIME: 'ShippingTime',\n SHIPPING_COST: 'ShippingHandlingCharges',\n PAYMENT_TIME: 'PaymentTime'\n};\n\nexport const RATING_NAMES_SELLER = [RATING_NAMES.PAYMENT_TIME];\n\nexport const RATING_NAMES_BUYER = [\n RATING_NAMES.DESCRIPTION,\n RATING_NAMES.COMMUNICATION,\n RATING_NAMES.SHIPPING_TIME,\n RATING_NAMES.SHIPPING_COST\n];\n\nexport const RATING_SETTINGS = {\n [RATING_NAMES.DESCRIPTION]: {\n name: RATING_NAMES.DESCRIPTION,\n titleKey: 'leaveFeedback_rateItemAsDecribedTitle',\n descriptionKeys: [\n 'leaveFeedback_rateItemAsDecribed_ratingOne',\n 'leaveFeedback_rateItemAsDecribed_ratingTwo',\n 'leaveFeedback_rateItemAsDecribed_ratingThree',\n 'leaveFeedback_rateItemAsDecribed_ratingFour',\n 'leaveFeedback_rateItemAsDecribed_ratingFive'\n ]\n },\n [RATING_NAMES.COMMUNICATION]: {\n name: RATING_NAMES.COMMUNICATION,\n titleKey: 'leaveFeedback_rateCommResponsivenessTitle',\n descriptionKeys: [\n 'leaveFeedback_rateCommResponsiveness_ratingOne',\n 'leaveFeedback_rateCommResponsiveness_ratingTwo',\n 'leaveFeedback_rateCommResponsiveness_ratingThree',\n 'leaveFeedback_rateCommResponsiveness_ratingFour',\n 'leaveFeedback_rateCommResponsiveness_ratingFive'\n ]\n },\n [RATING_NAMES.SHIPPING_TIME]: {\n name: RATING_NAMES.SHIPPING_TIME,\n titleKey: 'leaveFeedback_rateShippingTimeTitle',\n descriptionKeys: [\n 'leaveFeedback_rateShippingTime_ratingOne',\n 'leaveFeedback_rateShippingTime_ratingTwo',\n 'leaveFeedback_rateShippingTime_ratingThree',\n 'leaveFeedback_rateShippingTime_ratingFour',\n 'leaveFeedback_rateShippingTime_ratingFive'\n ]\n },\n [RATING_NAMES.SHIPPING_COST]: {\n name: RATING_NAMES.SHIPPING_COST,\n titleKey: 'leaveFeedback_rateShippingHandlingChargesTitle',\n descriptionKeys: [\n 'leaveFeedback_rateShippingHandlingCharges_ratingOne',\n 'leaveFeedback_rateShippingHandlingCharges_ratingTwo',\n 'leaveFeedback_rateShippingHandlingCharges_ratingThree',\n 'leaveFeedback_rateShippingHandlingCharges_ratingFour',\n 'leaveFeedback_rateShippingHandlingCharges_ratingFive'\n ]\n },\n [RATING_NAMES.PAYMENT_TIME]: {\n name: RATING_NAMES.PAYMENT_TIME,\n titleKey: 'leaveFeedback_ratePaymentTimeTitle',\n descriptionKeys: [\n 'leaveFeedback_ratePaymentTime_ratingOne',\n 'leaveFeedback_ratePaymentTime_ratingTwo',\n 'leaveFeedback_ratePaymentTime_ratingThree',\n 'leaveFeedback_ratePaymentTime_ratingFour',\n 'leaveFeedback_ratePaymentTime_ratingFive'\n ]\n }\n};\n","export const ITEM_CARD_IMAGE_MODES = {\n SQUARE: 'SQUARE',\n NATURAL: 'NATURAL'\n};\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\nexport const 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","import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\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","/* eslint-disable better-mutation/no-mutation */\n\nimport userData from './user-data';\nimport { defaultClient as httpClient } from 'tradera-utils/http';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport featureToggles from 'tradera-apps/my-tradera/app/utils/feature-toggles';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nvar initData = (!isServer && window.sellingGlobalData) || {};\nvar defaultDrafts = initData.defaultDrafts;\n\nconst resetUnwantedProperties = draft => {\n draft.itemId = 0;\n};\n\nconst isNullOrUndefined = val => val === null || val === undefined;\n\nconst getType = draft => {\n var hasOpeningPrice = !isNullOrUndefined(draft.openingBid);\n var hasFixedPrice = !isNullOrUndefined(draft.fixedPrice);\n if (hasOpeningPrice && !hasFixedPrice) {\n return 'Auction';\n }\n\n if (hasOpeningPrice && hasFixedPrice) {\n return 'AuctionBin';\n }\n\n if (!hasOpeningPrice && hasFixedPrice) {\n return 'PureBin';\n }\n\n return 'Unknown';\n};\n\nconst ensureApplicationId = draft => {\n if (!draft.metadata) {\n draft.metadata = {};\n }\n draft.metadata.applicationId = 'SYI-Riot';\n};\n\nconst ensureBraintree = draft => {\n if (\n userData.braintree.isBraintreeOnly &&\n draft.paymentOptions.length == 0\n ) {\n draft.paymentOptions.push('Braintree');\n }\n};\n\nconst isPureBin = draft => draft && getType(draft) === 'PureBin';\n\nconst isAuctionBin = draft => draft && getType(draft) === 'AuctionBin';\n\nconst getDefaultTemplateValue = propertyName =>\n defaultDrafts.newTemplate[propertyName];\n\nconst loadDraft = async draftId => {\n if (!draftId) {\n throw 'missing draftId';\n }\n\n const response = await httpClient.get(ENDPOINTS.SELLING_DRAFT(draftId));\n return response.data.draft;\n};\n\nconst loadDrafts = async () => {\n const response = await httpClient.get(ENDPOINTS.SELLING_DRAFTS);\n return response.data.items;\n};\n\nconst loadDefaultDraft = () => ({\n ...defaultDrafts.newItem,\n allowedBuyerRegion: undefined\n});\n\nconst loadDefaultTemplateDraft = () => ({\n ...defaultDrafts.newTemplate,\n allowedBuyerRegion: undefined\n});\n\nconst loadDraftFromTemplate = async templateId => {\n try {\n const response = await httpClient.post(\n ENDPOINTS.SELLING_DRAFT_LOAD_FROM_TEMPLATE,\n {\n templateId\n }\n );\n let draft = response.data.draft;\n resetUnwantedProperties(draft);\n draft.draftReason = 'Template';\n return draft;\n } catch {\n throw 'Could not load the draft from the template';\n }\n};\n\nconst saveDraft = async draft => {\n if (draft.draftReason === 'Template') {\n // Drafts for Templates cannot be saved\n throw 'Cannot save Template draft';\n }\n\n ensureApplicationId(draft);\n ensureBraintree(draft);\n\n const response = await httpClient.post(ENDPOINTS.SELLING_DRAFT_SAVE, draft);\n\n if (response.data.errorCode || !response.data.draftId) {\n throw response.data;\n }\n\n return response.data;\n};\n\nconst resolveImages = syiSlice => {\n var slots = syiSlice.images.slots;\n var images = [];\n for (var i = 0; i < slots.length; i++) {\n var slot = slots[i];\n if (slot.imageId == null) {\n continue;\n }\n if (slot.isListingImage) {\n images.push({\n draftImage: null,\n listingImage: {\n imageId: slot.imageId,\n rotationDegrees: slot.rotationDegrees,\n filename: slot.filename,\n imageGroupId: slot.imageGroupId\n },\n imageUrl: slot.imageUrl\n });\n } else {\n images.push({\n draftImage: {\n imageId: slot.imageId,\n rotationDegrees: slot.rotationDegrees\n },\n listingImage: null,\n imageUrl: slot.imageUrl\n });\n }\n }\n return images;\n};\n\nconst getCustomEndTime = itemDuration => {\n if (\n typeof itemDuration.customEndTimeHour !== 'string' ||\n typeof itemDuration.customEndTimeMinute !== 'string'\n ) {\n return null;\n }\n\n return (\n itemDuration.customEndTimeHour + ':' + itemDuration.customEndTimeMinute\n );\n};\n\nconst buildDraftFromState = syiSlice => {\n var draft = {};\n draft.draftId = syiSlice.draft.draftId;\n draft.draftReason = syiSlice.draft.draftReason;\n draft.MemberId = syiSlice.draft.memberId;\n draft.itemId = syiSlice.draft.itemId;\n draft.restart = syiSlice.draft.restart;\n draft.publishedPromoted = syiSlice.draft.publishedPromoted;\n draft.publishedHighlighted = syiSlice.draft.publishedHighlighted;\n draft.createdDate = syiSlice.draft.createdDate;\n draft.lastModifiedDate = syiSlice.draft.lastModifiedDate;\n draft.publishedDate = syiSlice.draft.publishedDate;\n draft.publishedAsItemType = syiSlice.draft.publishedAsItemType;\n draft.reference = syiSlice.draft.reference;\n draft.additionalDescriptions = syiSlice.draft.additionalDescriptions; //TODO\n draft.metadata = syiSlice.draft.metadata;\n if (syiSlice.draft.templateId) {\n draft.templateId = syiSlice.draft.templateId;\n }\n if (syiSlice.draft.templateName) {\n draft.templateName = syiSlice.draft.templateName;\n }\n\n draft.shortDescription = syiSlice.shortDescription.shortDescription;\n draft.longDescription = syiSlice.longDescription.longDescription;\n draft.descriptionLanguageCodeIso2 =\n syiSlice.shortDescription.descriptionLanguageCodeIso2;\n draft.currency = syiSlice.draft.currency;\n draft.resellPartner = syiSlice.draft.resellPartner;\n draft.categoryId = syiSlice.category.draftCategoryId;\n // categoryPath is needed on frontend for when cancelling edit of property.\n draft.categoryPath = syiSlice.category.draftCategoryPath;\n draft.images = resolveImages(syiSlice);\n draft.openingBid = syiSlice.price.openingBid;\n draft.reservePrice = syiSlice.price.reservePrice;\n draft.fixedPrice = syiSlice.price.isPureBinSelected\n ? syiSlice.price.fixedPrice\n : syiSlice.price.auctionBinPrice;\n draft.vat = syiSlice.price.vat;\n\n draft.durationDays = syiSlice.itemDuration.durationDays;\n draft.customEndTime = getCustomEndTime(syiSlice.itemDuration);\n draft.shippingOptions = syiSlice.shipping.selectedShippingOptions;\n draft.fromCountry = syiSlice.shipping.fromCountry;\n draft.paymentOptions = syiSlice.payment.selectedPaymentOptions;\n\n draft.itemCondition = syiSlice.itemCondition.itemCondition;\n draft.allowedBuyerRegion = syiSlice.buyerRegion.selectedBuyerRegion;\n\n draft.campaignCode = syiSlice.campaignCode.campaignCode;\n draft.campaignCodeId = syiSlice.campaignCode.campaignCodeId;\n\n draft.displayPromoted = syiSlice.extraFeatures.displayPromoted;\n draft.displayHighlighted = syiSlice.extraFeatures.displayHighlighted;\n\n draft.charityId = syiSlice.charityCampaign.charityId;\n if (\n featureToggles.isPennybridgeCharitiesEnabled &&\n syiSlice.charity?.charityId\n ) {\n draft.charity = syiSlice.charity;\n }\n draft.allowZeroDayAuctions = syiSlice.charityCampaign.allowZeroDayAuctions;\n draft.version = syiSlice.draft.version;\n\n draft.attributeValues = {\n termAttributeValues: syiSlice.attributes.categoryAttributes.map(\n attribute => {\n const values = attribute.options.reduce((acc, option) => {\n if (option.isActive) {\n acc.push(option.value);\n }\n return acc;\n }, []);\n return {\n id: attribute.id,\n backingField: attribute.backingField,\n userGenerated: true,\n values\n };\n }\n )\n };\n\n return draft;\n};\n\nconst deleteDraft = draftId => {\n return deleteDrafts([draftId]);\n};\n\nconst deleteDrafts = async draftIds => {\n try {\n await httpClient.post(ENDPOINTS.SELLING_DRAFTS_DELETE, {\n draftIds: draftIds\n });\n } catch {\n throw 'Could not delete the draft';\n }\n};\n\nexport default {\n isPureBin,\n isAuctionBin,\n getDefaultTemplateValue,\n loadDraft,\n loadDrafts,\n loadDefaultDraft,\n loadDefaultTemplateDraft,\n loadDraftFromTemplate,\n saveDraft,\n buildDraftFromState,\n deleteDraft,\n deleteDrafts,\n getCustomEndTime\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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})));","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\n\nconst isNewDraft = window.location.pathname?.endsWith('new');\nconst queryParams = new URLSearchParams(window.location.search);\nconst queryParamCharityId = queryParams.get('charityId');\nconst preselectCharity = isNewDraft && queryParamCharityId;\n\nconst initialStateShipping = {\n forceFreeShipping: false,\n isFreeShippingPaidByProvider: false,\n freeShippingPaidByProviderName: null\n};\n\nconst initialState = {\n anonymous: true,\n charityId: preselectCharity ? Number(queryParamCharityId) : null,\n description: null,\n logoUrl: null,\n name: null,\n percentageToDonate: preselectCharity ? 100 : 0,\n ...initialStateShipping\n};\n\nconst charitySlice = createSlice({\n name: 'charity',\n initialState,\n reducers: {\n setCharityId: (state, { payload }) => {\n state.charityId = payload.charityId;\n if (payload.charityId) {\n state.percentageToDonate = 100;\n } else {\n state.percentageToDonate = 0;\n }\n },\n setCharityInfo: (\n state,\n { payload: { name, description, logoUrl } }\n ) => {\n return { ...state, name, description, logoUrl };\n },\n setCharityAnonymous: (state, { payload }) => {\n state.anonymous = payload.anonymous;\n },\n setCharityFromDraft: (state, { payload }) => {\n state.charityId = payload.charityId;\n state.percentageToDonate = payload.percentageToDonate;\n state.anonymous = payload.anonymous;\n },\n resetCharity: () => {\n return { ...initialState };\n },\n setCharityShippingInfo: (state, { payload }) => {\n return { ...state, ...payload };\n }\n }\n});\n\nexport const {\n resetCharity,\n setCharityAnonymous,\n setCharityFromDraft,\n setCharityId,\n setCharityInfo,\n setCharityShippingInfo\n} = charitySlice.actions;\n\nexport default charitySlice.reducer;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './hover-menu.module.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 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 discontiunedSalePage: {\n path: `${OPTIONAL_LANG}/resolution/DCS/:purchaseOrderId`,\n exact: true,\n pageType: PAGE_TYPES.DEFAULT\n },\n discontiunedSaleConfirmationPage: {\n path: `${OPTIONAL_LANG}/resolution/MCP/:purchaseOrderId/confirm`,\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 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 PrintPage: {\n path: `${OPTIONAL_LANG}/print`,\n pageType: PAGE_TYPES.DEFAULT\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","/**\n * Using an accessible dialog or \"modal\" window. From Reach UI\n * https://ui.reach.tech/dialog\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { DialogOverlay, DialogContent } from '@reach/dialog';\nimport MediaQuery from 'react-responsive';\n\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\n\nconst mobileOnlyProps = { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.SM].max };\nconst desktopOnlyProps = { minWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].min };\nconst allDeviceProps = { minWidth: BREAKPOINT_SIZES[BREAKPOINTS.XS].min };\n\nclass DialogModal extends Component {\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n desktop: PropTypes.bool,\n dismissOnOverlayClick: PropTypes.bool,\n mediaQueryProps: PropTypes.object,\n mobile: PropTypes.bool,\n mobileFullscreen: PropTypes.bool,\n onDismiss: PropTypes.func,\n style: PropTypes.object\n };\n\n static defaultProps = {\n className: '',\n desktop: false,\n dismissOnOverlayClick: true,\n mobile: false,\n mobileFullscreen: true\n };\n\n getDefaultMediaProps() {\n const { mobile, desktop } = this.props;\n if (mobile && desktop) {\n return allDeviceProps;\n }\n if (mobile) {\n return mobileOnlyProps;\n }\n if (desktop) {\n return desktopOnlyProps;\n }\n return allDeviceProps;\n }\n\n render() {\n const {\n children,\n className,\n dismissOnOverlayClick,\n onDismiss,\n mediaQuery,\n mobileFullscreen,\n style\n } = this.props;\n\n let mediaQueryProps;\n if (!mediaQuery) {\n mediaQueryProps = this.getDefaultMediaProps();\n } else {\n mediaQueryProps = mediaQuery;\n }\n\n return (\n \n {}}\n className={\n mobileFullscreen\n ? ' mobile-fullscreen'\n : ' mobile-alert'\n }>\n \n {children}\n \n \n \n );\n }\n}\n\nexport default DialogModal;\n","export default {\n RESET: 'BANK-ID/RESET',\n START_AUTH: 'BANK-ID/START_AUTH',\n IN_PROGRESS: 'BANK-ID/BANKID_IN_PROGRESS',\n COMPLETED: 'BANK-ID/BANKID_COMPLETED',\n SET_ERROR: 'BANK-ID/SET_ERROR',\n CLOSE: 'BANK-ID/CLOSE'\n};\n","import Analytics from 'packages/analytics';\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { useFormatUtcDateInSwedishTimeZone } from 'tradera-hooks/use-format-utc-date-in-swedish-timezone';\nimport TimeLeft from '../helpers/time-left';\nimport { ITEM_STATES } from 'tradera-state/views/view-item/constants';\nimport { AnimateOnValueChange } from './animate-on-value-change';\nimport LocalizedPrice from 'tradera-localization/localized-price';\n\nexport const BidDetails = ({\n bidCount,\n endDate,\n fixedPrice,\n hasEnded,\n isEnding,\n itemState,\n leadingBidAmount,\n onShowBids,\n openingBid,\n timeLeftText,\n isTimeLeftBelowWarningLimit,\n winningBidAmount\n}) => {\n const { t } = useTranslator();\n const formatUtcDateInSwedishTimeZone = useFormatUtcDateInSwedishTimeZone();\n\n const hasBids = bidCount > 0;\n const amountDetails = getAmountDetails(\n t,\n itemState,\n fixedPrice,\n leadingBidAmount,\n openingBid,\n hasBids,\n winningBidAmount\n );\n\n const amountTitle = (\n

\n {amountDetails.title}\n

\n );\n const amountValue = (\n \n \n \n \n

\n );\n const timeTitle =\n isEnding || hasEnded ? (\n

\n {t('vip_hasEndedTime')}{' '}\n {formatUtcDateInSwedishTimeZone(endDate)}\n

\n ) : (\n

\n {t('vip_willEndTime')} {formatUtcDateInSwedishTimeZone(endDate)}\n

\n );\n const timeValue =\n isEnding || hasEnded ? (\n \n {hasEnded\n ? itemState === ITEM_STATES.ENDED_CANCELLED\n ? t('vip_cancelled')\n : t('vip_ended')\n : t('vip_ending')}\n

\n ) : (\n

\n \n

\n );\n const bidTitle = (\n

\n {t('vip_bid')}{' '}\n \n (\n {\n e.preventDefault();\n onShowBids();\n }}>\n {t('vip_show')}\n \n )\n \n

\n );\n const bidValue = (\n

\n {bidCount} {t('vip_amount')}\n

\n );\n\n const showBidCount =\n itemState !== ITEM_STATES.ENDED_AUCTION_BIN_BOUGHT_AS_BIN;\n\n return (\n
\n
\n
{amountTitle}
\n
{amountValue}
\n
\n \n
{timeTitle}
\n
{timeValue}
\n \n {showBidCount && (\n
\n
{bidTitle}
\n
{bidValue}
\n
\n )}\n
\n );\n};\n\nBidDetails.propTypes = {\n bidCount: PropTypes.number,\n endDate: PropTypes.string.isRequired,\n hasEnded: PropTypes.bool.isRequired,\n itemState: PropTypes.string.isRequired,\n leadingBidAmount: PropTypes.number,\n onShowBids: PropTypes.func,\n openingBid: PropTypes.number,\n winningBidAmount: PropTypes.number\n};\n\nBidDetails.defaultProps = {\n className: '',\n hasLeadingBid: false,\n hasLostLeadingBid: false\n};\n\nexport const getAmountDetails = (\n t,\n itemState,\n fixedPrice,\n leadingBid,\n openingBid,\n hasBids,\n winningBidAmount\n) => {\n if (itemState === ITEM_STATES.ENDED_AUCTION_BIN_BOUGHT_AS_BIN) {\n return {\n title: t('vip_soldFor'),\n amount: fixedPrice\n };\n }\n\n if (itemState === ITEM_STATES.ENDED_AUCTION_WITH_WINNING_BID) {\n return {\n title: t('vip_finalPrice'),\n amount: winningBidAmount\n };\n }\n\n if (hasBids) {\n return {\n title: t('vip_leadingBid'),\n amount: leadingBid\n };\n }\n return {\n title: t('vip_openingBid'),\n amount: openingBid\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-hot-loader.production.min.js');\n} else if (process.env.NODE_ENV === 'test') {\n module.exports = require('./dist/react-hot-loader.production.min.js');\n} else if (typeof window === 'undefined') {\n // this is just server environment\n module.exports = require('./dist/react-hot-loader.production.min.js');\n} else if (!module.hot) {\n module.exports = require('./dist/react-hot-loader.production.min.js');\n module.exports.AppContainer.warnAboutHMRDisabled = true;\n module.exports.hot.shouldWrapWithAppContainer = true;\n} else {\n var evalAllowed = false;\n var evalError = null;\n try {\n eval('evalAllowed = true');\n } catch (e) {\n // eval not allowed due to CSP\n evalError = e && e.message ? e.message : 'unknown reason';\n }\n\n // TODO: dont use eval to update methods. see #1273\n // RHL needs setPrototypeOf to operate Component inheritance, and eval to patch methods\n var jsFeaturesPresent = !!Object.setPrototypeOf;\n\n if (!jsFeaturesPresent || !evalAllowed) {\n // we are not in prod mode, but RHL could not be activated\n console.warn(\n 'React-Hot-Loader is not supported in this environment:',\n [\n !jsFeaturesPresent && \"some JS features are missing\",\n !evalAllowed && \"`eval` is not allowed(\" + evalError + \")\"\n ].join(','),\n '.'\n );\n module.exports = require('./dist/react-hot-loader.production.min.js');\n } else {\n module.exports = window.reactHotLoaderGlobal = require('./dist/react-hot-loader.development.js');\n }\n}\n","export const MODAL_TYPES = {\n default: 'default',\n wishlistReminders: 'wishlistReminders',\n selling: 'selling'\n};\n\nexport const CHANNEL_TAG_GROUPS = {\n wishlistReminders: [\n 'wishlist_reminder_3_min_optin',\n 'wishlist_reminder_15_min_optin'\n ],\n buyingListingOutbid: ['member_outbid_optin'],\n buyingListingWon: ['member_won_optin'],\n sellingListingFirstBid: ['selling_first_bid_optin'],\n sellingListingAllBids: ['selling_new_bid_optin'],\n sellingListingSold: ['selling_sold_optin'],\n sellingPaymentReceived: ['selling_payment_received_optin']\n};\n","const getDisplayRating = rating => {\n if (rating) {\n return rating.toFixed(1);\n }\n};\n\nexport default {\n getDisplayRating\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"rating-stars\":\"rating-stars--f1PWv\",\"ratingStars\":\"rating-stars--f1PWv\",\"rating-stars__overlay\":\"rating-stars__overlay--T-1Qg\",\"ratingStarsOverlay\":\"rating-stars__overlay--T-1Qg\",\"rating-stars__base\":\"rating-stars__base--2IJRQ\",\"ratingStarsBase\":\"rating-stars__base--2IJRQ\",\"light\":\"light--yjb_r\",\"dark\":\"dark--1l3Yr\",\"seller-details\":\"seller-details--E1AEw\",\"sellerDetails\":\"seller-details--E1AEw\"};","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 styles from './rating-stars.module.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
{displayRating}
\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 GdprSettings from 'tradera-utils/gdpr-settings';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\nimport { logger } from 'packages/logger';\nimport { isServer } from 'tradera-utils/nextjs';\n\n/**\n * Storage wrapper/utility\n */\nclass Storage {\n /**\n * @param {object} storage - Storage-compatible object\n * @param {function} [setFilter] - Functions that returns true/false for a storage key, deciding if it should be set in storage\n */\n constructor(storage, setFilter) {\n this.storage = storage;\n this.setFilter = setFilter;\n }\n\n get length() {\n return this.storage.length;\n }\n\n /**\n * @param {int} index\n * @returns {string}\n */\n key(index) {\n return this.storage.key(index);\n }\n\n /**\n * @param {string} key\n * @returns {null|any}\n */\n getItem(key) {\n const value = this.storage.getItem(key);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (error) {\n logger(error, {\n contexts: {\n storage: {\n action: 'getItem',\n key,\n value\n }\n }\n });\n }\n }\n return null;\n }\n\n getItemsByPrefix(prefix) {\n const items = {};\n // eslint-disable-next-line better-mutation/no-mutation\n for (let i = 0; i < this.storage.length; i++) {\n let key = this.key(i);\n if (key.startsWith(prefix)) {\n items[key] = this.getItem(key);\n }\n }\n return items;\n }\n\n /**\n * @param {string} key\n * @param {any} value\n * @returns {undefined}\n */\n setItem(key, value) {\n if (this.setFilter && !this.setFilter(key)) {\n return undefined;\n }\n try {\n this.storage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logger(error, {\n contexts: {\n storage: {\n action: 'setItem',\n key,\n stringifiedLength: JSON.stringify(value).length,\n value\n }\n }\n });\n }\n }\n\n /**\n * @param {string} key\n * @returns {undefined}\n */\n removeItem(key) {\n return this.storage.removeItem(key);\n }\n\n clear() {\n return this.storage.clear();\n }\n\n /**\n * Removes all items whose keys start with prefix\n * @param {string} prefix\n */\n clearByPrefix(prefix) {\n // Loop in reverse because storage indexes will change as you delete items.\n // eslint-disable-next-line better-mutation/no-mutation\n for (let i = this.storage.length - 1; i >= 0; --i) {\n let key = this.key(i);\n if (key.startsWith(prefix)) {\n this.removeItem(key);\n }\n }\n }\n}\n\n/**\n * In-memory Storage object for testing & fallback\n */\nclass MemoryStorage {\n constructor() {\n this.storage = new Map();\n }\n\n get length() {\n return this.storage.size;\n }\n\n key(index) {\n const keys = Array.from(this.storage.keys());\n if (index in keys) {\n return keys[index];\n } else {\n return null;\n }\n }\n\n getItem(key) {\n return this.storage.get(key);\n }\n\n setItem(key, value) {\n this.storage.set(key, value);\n }\n\n removeItem(key) {\n this.storage.delete(key);\n }\n\n clear() {\n this.storage.clear();\n }\n}\n\n/**\n * Test if a storage implementation is available\n *\n * @param {Storage} storage\n * @returns {boolean}\n */\nfunction testStorage(storage) {\n if (!storage) {\n return false;\n }\n const TEST_KEY = 'STORAGE_TEST';\n const TEST_VALUE = '1';\n try {\n // This will throw an exception in some browsers when cookies/localStorage are explicitly disabled (i.e. Chrome)\n storage.setItem(TEST_KEY, TEST_VALUE);\n if (storage.getItem(TEST_KEY) === TEST_VALUE) {\n storage.removeItem(TEST_KEY);\n } else {\n throw new Error();\n }\n } catch (e) {\n return false;\n }\n return true;\n}\n\n// Standard local store with GDPR cookie filter and in-memory storage fallback\nconst defaultStorage =\n !isServer && testStorage(window.localStorage)\n ? window.localStorage\n : new MemoryStorage();\nconst gdprSettings = GdprSettings;\nconst localStore = new Storage(defaultStorage, key => {\n if (!Object.values(STORAGE_KEYS).includes(key)) {\n logger(`Storage key '${key}' not found in STORAGE_KEYS`);\n return false;\n }\n if (!gdprSettings.isFunctionalEnabled()) {\n console.warn('Local storage blocked by GDPR settings', true);\n return false;\n }\n return true;\n});\n\nexport { Storage, MemoryStorage, localStore };\n","import React, { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setSelectedPayment } from 'tradera-state/views/shipping-checkout/reducer';\nimport { LocalLoader } from 'tradera-components/loader/loader';\nimport { useCurrentLanguage, useTranslator } from 'tradera-lang/translate';\nimport { PAYMENT_OPTIONS } from 'tradera-state/views/shipping-checkout/initial-state';\nimport {\n selectCheckoutSummary,\n selectShippingCheckout,\n selectShippingPayment\n} from 'tradera-state/views/shipping-checkout/selector';\nimport PaymentMethodLogo from 'tradera-components/payment-method/payment-method-logo';\nimport BuyerProtectionInfo from 'tradera-apps/tradera/components/checkout/payment/buyer-protection-info';\nimport api from 'tradera-state/views/shipping-checkout/api';\nimport qs from 'qs';\n\nimport './braintree-drop-in.scss';\n\nimport { useFetchData } from 'tradera-hooks/use-fetch-data';\n\n// Testing card number for dev environment: 4111111111111111\n\nexport var paymentInstance = null;\n\nconst BraintreeDropIn = ({\n paymentOptions,\n selected,\n onPaymentMethodRequestable\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const isNativeAppWithApplyPaySupport = useSelector(\n state => state.environment.isNativeAppWithApplyPaySupport\n );\n\n const preselectedPaymentOption = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n })['payment-option'];\n\n useEffect(() => {\n if (!preselectedPaymentOption) return;\n\n dispatch(setSelectedPayment(preselectedPaymentOption));\n }, [preselectedPaymentOption, dispatch]);\n\n const { isUpdating } = useSelector(selectShippingCheckout);\n\n const { paymentOption } = paymentOptions;\n\n const handlePaymentSelected = () => {\n const url = new URL(window.location.href);\n if (!selected) {\n if (isNativeAppWithApplyPaySupport) {\n url.searchParams.set('payment-option', paymentOption);\n return (window.location = url.toString());\n }\n dispatch(setSelectedPayment(paymentOption));\n }\n };\n\n const getName = () => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return t('syi_payment_option_VisaMasterCard');\n case PAYMENT_OPTIONS.PAYPAL:\n return t('syi_payment_option_PayPal');\n case PAYMENT_OPTIONS.APPLEPAY:\n return t('syi_payment_option_ApplePay');\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return t('syi_payment_option_GooglePay');\n default:\n return null;\n }\n };\n\n return (\n <>\n
\n \n \n
\n {getName()}\n \n
\n
\n {paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD &&\n t('payment_method_info_visaMasterCard')}\n {paymentOption === PAYMENT_OPTIONS.PAYPAL && (\n \n )}\n {paymentOption === PAYMENT_OPTIONS.APPLEPAY &&\n t('payment_method_info_applePay')}\n {paymentOption === PAYMENT_OPTIONS.GOOGLEPAY &&\n t('payment_method_info_googlePay')}\n
\n \n
\n {selected && (\n
\n \n
\n )}\n \n );\n};\n\nconst DropInSelected = ({ paymentOption, onPaymentMethodRequestable }) => {\n const { language } = useCurrentLanguage();\n const { t } = useTranslator();\n const { shipmentCheckoutId } = useSelector(selectShippingPayment);\n const { totalCost } = useSelector(selectCheckoutSummary);\n\n const fetchParams = useMemo(() => {\n return {\n shipmentCheckoutId: shipmentCheckoutId,\n paymentOption: paymentOption\n };\n }, [shipmentCheckoutId, paymentOption]);\n\n //Fetch Braintree Token\n const {\n data,\n isLoading,\n isRejected,\n isResolved,\n retryFetch\n } = useFetchData(\n api.getBraintreeToken,\n fetchParams,\n 'Shipping Checkout Braintree token'\n );\n\n useEffect(() => {\n const dropIn = async () => {\n if (isResolved && !paymentInstance) {\n const { clientToken } = data;\n await initDropIn(\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n );\n }\n };\n dropIn();\n }, [\n data,\n isResolved,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n ]);\n\n // Update amount in configuration for PayPal, Apple Pay, Google Pay\n useEffect(() => {\n let paymentProvider = null;\n if (paymentInstance) {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.PAYPAL:\n paymentProvider = 'paypal';\n break;\n case PAYMENT_OPTIONS.APPLEPAY:\n paymentProvider = 'applepay';\n break;\n case PAYMENT_OPTIONS.GOOGLEPAY:\n paymentProvider = 'googlepay';\n break;\n default:\n paymentProvider = null;\n break;\n }\n }\n if (paymentProvider) {\n paymentInstance.updateConfiguration(\n paymentProvider,\n 'amount',\n totalCost\n );\n }\n }, [paymentOption, totalCost]);\n\n // Effect to reset paymentIntance when switching payment option\n useEffect(() => {\n return () => {\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = null; // Reset paymentInstance when unmounting\n };\n }, [paymentOption]);\n\n return (\n
\n {isRejected && (\n
\n
\n

{t('error_somethingWentWrong')}

\n
\n retryFetch()}>\n {t('error_reloadPage')}\n \n
\n )}\n {isLoading && (\n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nconst initDropIn = async (\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n) => {\n const callback = (err, dropinInstance) => {\n if (err) {\n return null;\n }\n\n if (dropinInstance.isPaymentMethodRequestable()) {\n onPaymentMethodRequestable(null, true);\n }\n\n dropinInstance.on('paymentMethodRequestable', function(\n paymentMethodRequestable\n ) {\n onPaymentMethodRequestable(paymentMethodRequestable, true);\n });\n\n dropinInstance.on('noPaymentMethodRequestable', function() {\n onPaymentMethodRequestable(null, false);\n });\n\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = dropinInstance;\n };\n\n const paymentOptions = getDropInOptions(paymentOption, totalCost);\n var options = {\n authorization: clientToken,\n container: '#dropin-container',\n locale: language,\n vaultManager: true,\n dataCollector: {\n kount: true // Required if Kount fraud data collection is enabled\n },\n card: {\n vault: {\n allowVaultCardOverride: true,\n vaultCard: false\n }\n },\n ...paymentOptions\n };\n\n const dropin = await import(\n /* webpackChunkName: \"braintree-web-drop-in\" */ 'braintree-web-drop-in'\n );\n await dropin.create(options, callback);\n};\n\nconst getDropInOptions = (paymentOption, totalCost) => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return {\n threeDSecure: true\n };\n case PAYMENT_OPTIONS.PAYPAL:\n return {\n card: false,\n applePay: false,\n googlePay: false,\n paypal: {\n flow: 'checkout',\n amount: totalCost,\n currency: 'SEK'\n }\n };\n case PAYMENT_OPTIONS.APPLEPAY:\n return {\n card: false,\n paypal: false,\n googlePay: false,\n applePay: {\n displayName: 'Tradera',\n paymentRequest: {\n total: {\n label: 'Tradera',\n amount: totalCost.toString()\n },\n requiredBillingContactFields: ['postalAddress']\n }\n }\n };\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return {\n card: false,\n paypal: false,\n applePay: false,\n threeDSecure: true,\n googlePay: {\n googlePayVersion: 2,\n merchantId: 'BCR2DN6TU7KPRDTQ',\n transactionInfo: {\n totalPriceStatus: 'FINAL',\n totalPrice: totalCost.toString(),\n currencyCode: 'SEK'\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL'\n }\n }\n }\n ]\n }\n };\n default:\n return {};\n }\n};\n\nexport default BraintreeDropIn;\n","export default initData => {\n return {\n isTcfLoaded: false,\n gpt: 'gptData' in initData ? initData.gptData : null,\n adSenseQuery: '',\n adSenseShoppingPublisherId: ''\n };\n};\n","import actionTypes from './action-types';\nimport initialState from './initial-state';\n\nexport const initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: initialState(initData)\n});\n\n// TCF = https://iabeurope.eu/transparency-consent-framework/\nexport const setTcfLoaded = () => {\n return {\n type: actionTypes.SET_TCF_LOADED\n };\n};\n\nexport const setAds = ads => {\n return {\n type: actionTypes.SET_ADS,\n payload: ads\n };\n};\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/logger';\nimport { withUrlLocalizer } from 'tradera-lang/translate';\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","/**\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 ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n axiosConfigs,\n utilizeCancelToken,\n finalizeResponse,\n handleError,\n API_ERRORS\n} from 'tradera-utils/api';\nimport { toLocalizedUrl } from 'tradera-utils/url';\nimport { logger } from 'packages/logger';\n\nexport const fetchDescription = (\n itemId,\n languageCodeIso2,\n fromLanguageCodeIso2\n) => {\n const { cancel, cancelToken } = utilizeCancelToken(\n 'getItemDescriptionTranslated'\n );\n\n if (cancel) cancel();\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.ITEM_DESCRIPTION(itemId), {\n cancelToken,\n ...axiosConfigs.authenticated,\n params: {\n languageCodeIso2,\n fromLanguageCodeIso2\n }\n })\n .then(finalizeResponse())\n .catch(handleError());\n};\n\n/**\n * Returns an object with bid information for the item with the given ID.\n * @param {*} itemId\n */\nexport const getItemApi = async (itemId, preferredLanguageCode) => {\n return axiosWithTokenRefresh()\n .get(toLocalizedUrl(`/item/${itemId}.json`, preferredLanguageCode))\n .then(finalizeResponse())\n .then(({ data, status }) => {\n // Normalize & format API response data\n // if (data) {\n // data = normalizeItemModel(data);\n // }\n return { data, status };\n })\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\n/**\n * Places a bid for the given auction\n * @param {*} itemId\n * @param {*} amount\n */\nexport const placeBidApi = async (\n itemId,\n amount,\n onLoggedOut,\n preferredLanguageCode\n) => {\n try {\n const response = await axiosWithTokenRefresh().post(\n toLocalizedUrl(`/item/place-bid/${itemId}`, preferredLanguageCode),\n { amount },\n axiosConfigs.authenticated\n );\n const {\n data: {\n bid,\n item,\n transactionTotal,\n potentialBidChange,\n isMaxBid,\n weightedBidValue,\n serverSecondsLeft\n }\n } = response;\n\n const {\n bidId,\n isSuccessful,\n leadingBidAmount,\n leadingBidderMemberId,\n leadingMemberAlias: leadingBidMemberAlias,\n nextBidAmount: nextValidBidAmount,\n validationResult,\n placedBid\n } = bid;\n\n const {\n bidCount,\n categoryId,\n endDate,\n itemType,\n openingBid,\n reservePriceReached,\n sellermemberId: sellerMemberId,\n startDate\n } = item;\n\n return {\n isSuccessful,\n validationResult,\n item: {\n bidCount,\n categoryId,\n endDate,\n itemId: item.itemId,\n itemType,\n openingBid,\n reservePriceReached,\n sellerMemberId,\n startDate\n },\n bidInfo: {\n bidCount,\n bidId,\n isMaxBid,\n leadingBidAmount,\n leadingBidderMemberId,\n leadingBidMemberAlias,\n nextValidBidAmount,\n potentialBidChange,\n reservePriceReached,\n transactionTotal,\n weightedBidValue\n },\n analyticsData: {\n bidId,\n transactionTotal,\n potentialBidChange,\n isMaxBid,\n weightedBidValue\n },\n myMaxBidAmount: placedBid,\n serverSecondsLeft\n };\n } catch (error) {\n if (error.message === API_ERRORS.LOGGED_OUT) {\n onLoggedOut();\n } else {\n logger(error);\n }\n }\n};\n\nexport const getItemsFromSeller = (params, preferredLanguageCode) => {\n return axiosWithTokenRefresh()\n .get(\n toLocalizedUrl(\n '/api/webapi/discover/more-from-seller/',\n preferredLanguageCode\n ),\n { params }\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const getCombinedShippingUpsell = params => {\n return axiosWithTokenRefresh()\n .post(\n ENDPOINTS.COMBINED_SHIPPING_UPSELL,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n","import { localStore } from 'utils/storage';\n\n// Remember to add prefix+key to STORAGE_KEYS in config/storage!\nconst CACHE_PREFIX = 'cache.';\nconst CACHE_KEYS = {\n MESSAGING_BADGES: 'messagingBadges',\n RECENTLY_VIEWED_ITEMS: 'recentlyViewedItems',\n SYSTEM_MESSAGES: 'systemMessages'\n};\nconst DEFAULT_TTL = 10 * 60 * 1000;\n\nclass CacheHandler {\n constructor(store, keyPrefix) {\n this.store = store;\n this.keyPrefix = keyPrefix;\n }\n\n /**\n * Read item from the cache, return null if expired or non existent\n *\n * @param {string} key\n * @returns {null|*}\n */\n read(key) {\n const cached = this.store.getItem(this.keyPrefix + key);\n if (cached) {\n if (cached.expires > Date.now()) {\n return cached.data;\n } else {\n this.store.removeItem(this.keyPrefix + key);\n }\n }\n return null;\n }\n\n /**\n * Write an item to the cache with expiry time\n *\n * @param {string} key\n * @param data\n * @param {int} [ttl]\n * @returns {CacheHandler}\n */\n write(key, data, ttl = DEFAULT_TTL) {\n this.store.setItem(this.keyPrefix + key, {\n expires: Date.now() + ttl,\n data\n });\n return this;\n }\n\n /**\n * Remove item regardless of expiry time\n *\n * @param {string} key\n * @returns {CacheHandler}\n */\n remove(key) {\n this.store.removeItem(this.keyPrefix + key);\n return this;\n }\n\n /**\n * Remove all items regardless of expiry time\n *\n * @returns {CacheHandler}\n */\n removeAll() {\n this.store.clearByPrefix(this.keyPrefix);\n return this;\n }\n\n /**\n * Remove item if expired, keep otherwise\n *\n * @param {string} key\n * @returns {CacheHandler}\n */\n expire(key) {\n const cached = this.store.getItem(this.keyPrefix + key);\n if (cached) {\n if (cached.expires <= Date.now()) {\n this.store.removeItem(this.keyPrefix + key);\n }\n }\n return null;\n }\n\n /**\n * Remove expired items\n *\n * @returns {CacheHandler}\n */\n expireAll() {\n const caches = this.store.getItemsByPrefix(this.keyPrefix);\n const now = Date.now();\n for (let [key, cached] of Object.entries(caches)) {\n if (cached.expires <= now) {\n this.store.removeItem(key);\n }\n }\n return this;\n }\n}\n\n// Standard cache with GDPR-compliant localStore and standard cache prefix\nconst cache = new CacheHandler(localStore, CACHE_PREFIX);\n\nexport { CACHE_KEYS, CacheHandler, cache };\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 = [\n 'icon icon-stroke-white',\n toggled ? 'icon-danger' : '',\n showText ? 'icon-before' : '',\n iconClassName || ''\n ].join(' ');\n\n const combinedClassName = [\n 'btn',\n showText ? 'btn-icon-fixed' : 'btn-round',\n className || ''\n ].join(' ');\n\n return (\n \n {toggled ? (\n \n ) : (\n <>\n \n \n \n )}\n {showText && {text}}\n \n );\n};\n\nexport default WishListButton;\n","/**\n * Count the number of system messages that should cause alerts and badges\n *\n * @param {object} systemMessages\n * @returns {number}\n */\nconst getSystemMessageAlertCount = (systemMessages = {}) => {\n return (\n (systemMessages.InvoiceOverdue ? 1 : 0) +\n (systemMessages.PayoutFailed ? 1 : 0) +\n (systemMessages.PayoutReadyBankAccountMissing ? 1 : 0) +\n (systemMessages.SwishNumberMissing ? 1 : 0) +\n (systemMessages.HyperwalletPayeeVerificationRequired ? 1 : 0)\n );\n};\n\nexport { getSystemMessageAlertCount };\n","import CONSTANTS from 'tradera-constants/state';\nimport { cache, CACHE_KEYS } from 'tradera-utils/cache';\nimport actionTypes from './action-types';\nimport { getInitialBadges, getInitialState } from './initial-state';\nimport { getSystemMessageAlertCount } from './helpers';\n\nconst MESSAGING_NOTIFICATIONS_CACHE_TTL = 30 * 1000;\n\nexport default (state = getInitialState({}), action) => {\n const toggleHeaderSearch = () => ({\n ...state,\n showHeaderSearch:\n action.payload === undefined\n ? !state.showHeaderSearch\n : !!action.payload\n });\n\n const openGdprModal = () => ({\n ...state,\n gdpr: {\n ...state.gdpr,\n modalOpen: true\n }\n });\n\n const closeGdprModal = () => ({\n ...state,\n gdpr: {\n ...state.gdpr,\n modalOpen: false\n }\n });\n\n const openGdprSettings = () => ({\n ...state,\n gdpr: {\n ...state.gdpr,\n settingsOpen: true\n }\n });\n\n const closeGdprSettings = () => ({\n ...state,\n gdpr: {\n ...state.gdpr,\n settingsOpen: false\n }\n });\n\n const openQuickView = () => {\n const {\n itemIds = state.quickView.itemIds,\n itemId = state.quickView.itemId\n } = action.payload;\n return {\n ...state,\n quickView: {\n ...state.quickView,\n open: CONSTANTS.MODAL.OPEN,\n itemIds: itemIds,\n currentItem: itemId\n }\n };\n };\n\n const closeQuickView = () => {\n return {\n ...state,\n quickView: {\n ...state.quickView,\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const loadingQuickView = () => {\n return {\n ...state,\n quickView: {\n ...state.quickView,\n loading: action.payload\n }\n };\n };\n\n const openVideoModal = () => {\n const {\n videoUrl,\n title,\n pageType,\n buttonLink,\n buttonText\n } = action.payload;\n return {\n ...state,\n videoModal: {\n ...state.videoModal,\n open: CONSTANTS.MODAL.OPEN,\n videoUrl,\n title,\n pageType,\n buttonLink,\n buttonText\n }\n };\n };\n\n const closeVideoModal = () => {\n return {\n ...state,\n videoModal: {\n ...state.videoModal,\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const openYoutubeVideoModal = () => {\n const { videoId, title, pageType } = action.payload;\n return {\n ...state,\n youtubeVideoModal: {\n ...state.youtubeVideoModal,\n open: CONSTANTS.MODAL.OPEN,\n videoId: videoId,\n title: title,\n pageType: pageType\n }\n };\n };\n\n const closeYoutubeVideoModal = () => {\n return {\n ...state,\n youtubeVideoModal: {\n ...state.youtubeVideoModal,\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n /*\n Changes made to messaging modal will affect My Tradera as well!\n TODO - test this!\n */\n const openMessagingModal = () => {\n const {\n title = state.messagingModal.title,\n src = state.messagingModal.src,\n participating = state.messagingModal.participating,\n recipientId = state.messagingModal.recipientId,\n item = state.messagingModal.item\n } = action.payload;\n return {\n ...state,\n messagingModal: {\n open: CONSTANTS.MODAL.OPEN,\n title: title,\n src: src,\n participating: participating,\n recipientId: recipientId,\n item: item\n }\n };\n };\n\n const closeMessagingModal = () => {\n return {\n ...state,\n messagingModal: {\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const openNotificationOptinModal = () => {\n const {\n modalType,\n gaLabel,\n title,\n description,\n tagGroups\n } = action.payload;\n return {\n ...state,\n notificationOptinModal: {\n open: CONSTANTS.MODAL.OPEN,\n modalType,\n gaLabel,\n title,\n description,\n tagGroups\n }\n };\n };\n\n const closeNotificationOptinModal = () => {\n return {\n ...state,\n notificationOptinModal: {\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const openModal = () => {\n const { modalId, data } = action.payload;\n return {\n ...state,\n modals: {\n currentModal: modalId,\n currentModalData: data\n }\n };\n };\n\n const closeModal = () => {\n return {\n ...state,\n modals: {\n currentModal: null,\n currentModalData: null\n }\n };\n };\n\n const itemLayout = () => {\n if (state.itemLayout === action.payload) {\n return state;\n } else {\n return {\n ...state,\n itemLayout: action.payload\n };\n }\n };\n\n const siteLayout = () => {\n if (state.siteLayout === action.payload) {\n return state;\n } else {\n return {\n ...state,\n siteLayout: action.payload\n };\n }\n };\n\n const updateSystemMessages = () => {\n return {\n ...state,\n systemMessages: {\n ...state.systemMessages,\n ...action.payload\n },\n badges: {\n ...state.badges,\n system: getSystemMessageAlertCount(action.payload)\n }\n };\n };\n\n const updateMessagingNotifications = () => {\n cache.write(\n CACHE_KEYS.MESSAGING_BADGES,\n action.payload,\n MESSAGING_NOTIFICATIONS_CACHE_TTL\n );\n return {\n ...state,\n badges: {\n ...state.badges,\n messaging: action.payload\n }\n };\n };\n\n const openProfileMenu = () => {\n const { payload } = action;\n return {\n ...state,\n profileMenu: {\n open: CONSTANTS.MODAL.OPEN,\n redirectUrl: payload || false\n }\n };\n };\n\n const closeProfileMenu = () => {\n return {\n ...state,\n profileMenu: {\n ...state.profileMenu,\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const openCategoryDropdownMenu = () => {\n return {\n ...state,\n categoryDropdownMenu: {\n open: CONSTANTS.MODAL.OPEN\n }\n };\n };\n\n const closeCategoryDropdownMenu = () => {\n return {\n ...state,\n categoryDropdownMenu: {\n open: CONSTANTS.MODAL.CLOSED\n }\n };\n };\n\n const openSearchForm = () => {\n return {\n ...state,\n showSearchForm: true\n };\n };\n\n const closeSearchForm = () => {\n return {\n ...state,\n showSearchForm: false\n };\n };\n\n const logOut = () => {\n return {\n ...state,\n badges: getInitialBadges()\n };\n };\n\n const openItemSettings = () => {\n const { payload } = action;\n return {\n ...state,\n itemSettings: {\n open: CONSTANTS.MODAL.OPEN,\n ...payload\n }\n };\n };\n\n const closeItemSettings = () => {\n return {\n ...state,\n itemSettings: {\n open: CONSTANTS.MODAL.CLOSED,\n item: {}\n }\n };\n };\n\n const openShareModal = () => ({\n ...state,\n shareModal: {\n isOpen: true,\n settings: action.payload\n }\n });\n\n const initialize = () => {\n const { payload } = action;\n return {\n ...payload\n };\n };\n\n const closeShareModal = () => ({\n ...state,\n shareModal: {\n isOpen: false,\n settings: null\n }\n });\n\n const openHelpSection = () => ({\n ...state,\n helpSection: {\n isOpen: true,\n settings: action.payload\n }\n });\n\n const closeHelpSection = () => ({\n ...state,\n helpSection: {\n isOpen: false,\n settings: null\n }\n });\n\n const def = () => state;\n\n const reducers = {\n [actionTypes.INITIALIZE]: initialize,\n [actionTypes.TOGGLE_HEADER_SEARCH]: toggleHeaderSearch,\n [actionTypes.OPEN_GDPR_MODAL]: openGdprModal,\n [actionTypes.CLOSE_GDPR_MODAL]: closeGdprModal,\n [actionTypes.OPEN_GDPR_SETTINGS]: openGdprSettings,\n [actionTypes.CLOSE_GDPR_SETTINGS]: closeGdprSettings,\n [actionTypes.OPEN_QUICK_VIEW]: openQuickView,\n [actionTypes.CLOSE_QUICK_VIEW]: closeQuickView,\n [actionTypes.LOADING_QUICK_VIEW]: loadingQuickView,\n [actionTypes.OPEN_VIDEO_MODAL]: openVideoModal,\n [actionTypes.CLOSE_VIDEO_MODAL]: closeVideoModal,\n [actionTypes.OPEN_YOUTUBE_VIDEO_MODAL]: openYoutubeVideoModal,\n [actionTypes.CLOSE_YOUTUBE_VIDEO_MODAL]: closeYoutubeVideoModal,\n [actionTypes.OPEN_MESSAGING_MODAL]: openMessagingModal,\n [actionTypes.CLOSE_MESSAGING_MODAL]: closeMessagingModal,\n [actionTypes.OPEN_NOTIFICATION_OPTIN_MODAL]: openNotificationOptinModal,\n [actionTypes.CLOSE_NOTIFICATION_OPTIN_MODAL]: closeNotificationOptinModal,\n [actionTypes.ITEM_LAYOUT]: itemLayout,\n [actionTypes.UPDATE_SYSTEM_MESSAGES]: updateSystemMessages,\n [actionTypes.UPDATE_MESSAGING_NOTIFICATIONS]: updateMessagingNotifications,\n [actionTypes.OPEN_PROFILE_MENU]: openProfileMenu,\n [actionTypes.CLOSE_PROFILE_MENU]: closeProfileMenu,\n [actionTypes.OPEN_CATEGORY_DROPDOWN_MENU]: openCategoryDropdownMenu,\n [actionTypes.CLOSE_CATEGORY_DROPDOWN_MENU]: closeCategoryDropdownMenu,\n [actionTypes.OPEN_SEARCH_FORM]: openSearchForm,\n [actionTypes.CLOSE_SEARCH_FORM]: closeSearchForm,\n [actionTypes.OPEN_ITEM_SETTINGS]: openItemSettings,\n [actionTypes.CLOSE_ITEM_SETTINGS]: closeItemSettings,\n [actionTypes.SITE_LAYOUT]: siteLayout,\n [actionTypes.LOG_OUT]: logOut,\n [actionTypes.OPEN_MODAL]: openModal,\n [actionTypes.CLOSE_MODAL]: closeModal,\n [actionTypes.OPEN_SHARE_MODAL]: openShareModal,\n [actionTypes.CLOSE_SHARE_MODAL]: closeShareModal,\n [actionTypes.OPEN_HELP_SECTION]: openHelpSection,\n [actionTypes.CLOSE_HELP_SECTION]: closeHelpSection\n };\n\n return !action || !action.type || !reducers[action.type]\n ? def()\n : reducers[action.type]();\n};\n","import { useCallback, useEffect, useReducer } from 'react';\nimport { logger } from 'packages/logger';\n\nfunction fetchReducer(state, action) {\n switch (action.type) {\n case 'error': {\n return {\n ...state,\n status: 'rejected',\n error: action.error\n };\n }\n case 'success': {\n return {\n ...state,\n status: 'resolved',\n data: action.data\n };\n }\n case 'started': {\n return {\n ...state,\n status: 'fetching'\n };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\n/**\n * Fetch data hook\n * @param {Function} apiFunction Function which makes the async API request\n * @param {String} apiParameter (Optional) Variable that could be passed to apiFunction\n * @param {String} apiName (Optional) The name of the API request for logging purposes\n * @return {Object} Object containing the data, status and retry function for the request.\n */\n\nexport function useFetchData(apiFunction, apiParameter, apiName) {\n const [state, dispatch] = useReducer(fetchReducer, {\n status: apiFunction ? 'idle' : 'resolved',\n data: {},\n error: null\n });\n\n const handleFetch = useCallback(async () => {\n dispatch({ type: 'started' });\n apiFunction(apiParameter)\n .then(({ data }) => {\n dispatch({ type: 'success', data });\n return;\n })\n .catch(error => {\n dispatch({ type: 'error', error });\n logger(\n new Error(\n `Fetch ${apiName || apiParameter} failed ${error}`\n )\n );\n });\n }, [apiFunction, apiParameter, apiName]);\n\n useEffect(() => {\n if (apiFunction) {\n handleFetch();\n }\n }, [handleFetch, apiFunction]);\n\n const retryFetch = () => {\n handleFetch();\n };\n\n return {\n isLoading: state.status === 'idle' || state.status === 'fetching',\n isIdle: state.status === 'idle',\n isFetching: state.status === 'fetching',\n isResolved: state.status === 'resolved',\n isRejected: state.status === 'rejected',\n retryFetch,\n ...state\n };\n}\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport { setEnum } from 'tradera-apps/my-tradera/app/helpers/enums';\n\nconst initialState = {\n modifiers: {\n query: {},\n paging: {}\n },\n filterBar: null,\n shownFilters: null\n};\n\nconst resetPageIndex = state => ({\n page: 1,\n size: state.modifiers.paging.size\n});\n\nconst slice = createSlice({\n name: 'filters',\n initialState,\n reducers: {\n updatePageSize: (state, { payload }) => {\n state.modifiers.paging.page = 1;\n state.modifiers.paging.size = payload.size;\n },\n selectSortChange: (state, { payload }) => {\n state.modifiers.sort = {\n sorting: payload.sort,\n order: payload.sortOrder\n };\n state.modifiers.paging = resetPageIndex(state);\n },\n changeSortOrder: state => {\n state.modifiers.sort = {\n sorting: state.modifiers.sort.sorting,\n order:\n state.modifiers.sort.order === 'Descending'\n ? 'Ascending'\n : 'Descending'\n };\n state.modifiers.paging = resetPageIndex(state);\n },\n selectTypeChange: (state, { payload }) => {\n state.modifiers.itemType = payload.itemType;\n state.modifiers.paging = resetPageIndex(state);\n },\n setDateFrom: (state, { payload }) => {\n state.modifiers.dateRange.from = payload.from;\n state.modifiers.paging = resetPageIndex(state);\n },\n setSingleFilterValue: (state, { payload }) => {\n state.modifiers.sellerFilters[payload.filter] = payload.value;\n },\n setDateTo: (state, { payload }) => {\n state.modifiers.dateRange.to = payload.to;\n state.modifiers.paging = resetPageIndex(state);\n },\n filterByState: (state, { payload }) => {\n let showSelectFiltersDropDown = false;\n if (payload.selected === 'Valj') {\n showSelectFiltersDropDown = !state.filterBar\n .showSelectFiltersDropDown;\n }\n setSellerFilterBarModifiers(state, payload.selected);\n state.defaults = {\n ...state.defaults\n };\n state.modifiers.selectedFilterBar = payload.selected;\n state.modifiers.paging = resetPageIndex(state);\n state.filterBar.showSelectFiltersDropDown = showSelectFiltersDropDown;\n },\n changePage: (state, { payload }) => {\n state.modifiers.paging.page = payload.page;\n },\n resetDateRangeTo: state => {\n state.modifiers.dateRange.to =\n state.defaults.modifiers.dateRange.to;\n },\n resetDateRangeFrom: state => {\n state.modifiers.dateRange.from =\n state.defaults.modifiers.dateRange.from;\n },\n resetFilters: state => {\n state.modifiers = { ...state.defaults.modifiers };\n state.filterBar = {\n ...state.filterBar,\n ...state.defaults.filterBar\n };\n },\n changeSearchQuery: (state, { payload }) => {\n state.modifiers.query.searchQuery = payload.searchQuery;\n state.modifiers.sort = {\n sorting: 'BestMatch',\n order: 'Ascending'\n };\n state.modifiers.paging = resetPageIndex(state);\n },\n selectReservationPriceChange: (state, { payload }) => {\n state.modifiers.reservePriceReached = payload.reservePriceReached;\n state.modifiers.paging = resetPageIndex(state);\n },\n updateFiltersForSelectedPage: (state, { payload }) => {\n if (!payload.newFilters.modifiers) {\n return;\n }\n Object.keys(payload.newFilters).forEach(\n key => (state[key] = payload.newFilters[key])\n );\n state.defaults = {\n ...payload.defaultFilters\n };\n },\n setFiltersFromRouter: (state, { payload }) => {\n state.modifiers = payload.filters;\n }\n }\n});\n\nexport default slice.reducer;\n\nexport const {\n updatePageSize,\n selectTypeChange,\n selectSortChange,\n changeSortOrder,\n setDateFrom,\n setDateTo,\n changePage,\n changeSearchQuery,\n selectReservationPriceChange,\n setFiltersFromRouter,\n updateFiltersForSelectedPage,\n filterByState,\n setSingleFilterValue,\n resetFilters,\n resetDateRangeTo,\n resetDateRangeFrom\n} = slice.actions;\n\n/**\n * setSellerFilterBarModifiers\n * @param {object} state\n * @param {string} selected\n * @returns {object} state of 'filters' based on UI tab selection. Note: WebApi expects values as Capitalcase Enum;\n */\nconst setSellerFilterBarModifiers = (state, selected) => {\n if (selected === 'Valj') {\n return;\n }\n\n if (state.modifiers.sellerFilters) {\n Object.keys(state.modifiers.sellerFilters).forEach(key => {\n state.modifiers.sellerFilters[key] = setEnum('All');\n });\n }\n\n if (state.modifiers.buyerFilters) {\n Object.keys(state.modifiers.buyerFilters).forEach(key => {\n state.modifiers.buyerFilters[key] = setEnum('All');\n });\n }\n\n switch (selected) {\n case 'SellerNoFeedback':\n state.modifiers.sellerFilters.paid = setEnum(true);\n state.modifiers.sellerFilters.shipped = setEnum(true);\n state.modifiers.sellerFilters.feedbackLeft = setEnum(false);\n state.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'BuyerNoFeedback':\n state.modifiers.buyerFilters.feedbackLeft = setEnum(false);\n state.modifiers.buyerFilters.paid = setEnum(true);\n state.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'SellerNotPaid':\n state.modifiers.sellerFilters.paid = setEnum(false);\n state.modifiers.sellerFilters.shipped = setEnum(false);\n state.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'BuyerNotPaid':\n state.modifiers.buyerFilters.paid = setEnum(false);\n state.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'NotSent':\n state.modifiers.sellerFilters.paid = setEnum(true);\n state.modifiers.sellerFilters.shipped = setEnum(false);\n state.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'AllSold':\n case 'AllUnsold':\n state.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'SellerHidden':\n state.modifiers.sellerFilters.hidden = setEnum(true);\n break;\n case 'BuyerHidden':\n state.modifiers.buyerFilters.hidden = setEnum(true);\n break;\n case 'BuyerNotHidden':\n state.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'AllPurchases':\n state.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'AllBids':\n state.modifiers.hasBids = setEnum('All');\n break;\n case 'HasBids':\n state.modifiers.hasBids = setEnum(true);\n break;\n case 'NoBids':\n state.modifiers.hasBids = setEnum(false);\n break;\n case 'ItemsLostNotHidden':\n state.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'ItemsLostHidden':\n state.modifiers.buyerFilters.hidden = setEnum(true);\n break;\n default:\n break;\n }\n};\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const getUuid = () => uuidv4();\n\n// Export object for Sinon stubbing\nexport default {\n getUuid\n};\n","import myTraderaItemActions from './my-tradera-items';\nimport qs from 'qs';\nimport { checkStateOfQueryParams } from '../../helpers/route-helper';\nimport {\n selectCookiesState,\n setCookie\n} from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectMyTraderaState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport {\n setFiltersFromRouter,\n updateFiltersForSelectedPage,\n updatePageSize\n} from 'tradera-apps/my-tradera/app/state/reducers/filters';\n\nexport const setPageSize = value => dispatch => {\n dispatch(\n setCookie({\n name: 'ITEMS_PER_PAGE',\n value\n })\n );\n dispatch(updatePageSize({ size: value }));\n};\n\nexport const setFiltersForSelectedPage = ({ newFilters, defaultFilters }) => (\n dispatch,\n getState\n) => {\n const pageSize = selectCookiesState(getState()).ITEMS_PER_PAGE;\n if (pageSize) {\n // eslint-disable-next-line better-mutation/no-mutation\n newFilters.modifiers.paging.size = pageSize;\n }\n dispatch(updateFiltersForSelectedPage({ newFilters, defaultFilters }));\n};\n\nexport const historyLocationDidUpdate = history => (dispatch, getState) => {\n const isPrevAndCurrentPathnameEqual = () => {\n const routingState = getState().router;\n return (\n routingState.location &&\n routingState.location.pathname &&\n routingState.location.pathname === history.location.pathname\n );\n };\n\n const { location } = history;\n\n if (history.action === 'POP' && isPrevAndCurrentPathnameEqual()) {\n if (\n checkStateOfQueryParams(getState, location.search) &&\n selectMyTraderaState(getState()).isSearching === false\n ) {\n const { filters } = qs.parse(location.search.replace('?', ''));\n dispatch(setFiltersFromRouter({ filters }));\n dispatch(myTraderaItemActions.updateURL());\n }\n } else if (history.action === 'PUSH' && !isPrevAndCurrentPathnameEqual()) {\n if (\n checkStateOfQueryParams(getState, location.search) &&\n selectMyTraderaState(getState()).isSearching === false\n ) {\n const { filters } = qs.parse(location.search.replace('?', ''));\n dispatch(setFiltersFromRouter({ filters }));\n dispatch(myTraderaItemActions.updateURL());\n }\n }\n};\n\nexport const showHideFilterToolbar = showCookies => dispatch => {\n dispatch(\n setCookie({\n name: 'SHOW_FILTERS',\n value: showCookies === 'visible' ? 'hidden' : 'visible'\n })\n );\n};\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\nexport const GeneralError = () => {\n const { t } = useTranslator();\n return (\n \n

\n \n

\n

{t('error_somethingWentWrong')}

\n

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

\n
\n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 { push, replace } from 'connected-react-router';\nimport qs from 'qs';\nimport {\n error,\n searching,\n selectMyTraderaState\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport purchaseOrderActions from './purchase-order';\nimport { endItems } from '../../helpers/item-actions-helper';\nimport { logger } from 'packages/logger';\nimport Analytics from 'packages/analytics';\nimport { getAvailableQueryParams } from '../../helpers/route-helper';\nimport URLS from '../../constants/urls';\nimport fetch from '../../utils/fetch';\nimport featureToggles from '../../utils/feature-toggles';\nimport triot from 'triot';\nimport { selectCookiesState } from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectFiltersState } from 'tradera-apps/my-tradera/app/state/selectors/filters';\nimport { selectMyTraderaItemsState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera-items';\nimport { selectRouterState } from 'tradera-apps/my-tradera/app/state/selectors/router';\nimport { scrollToInitialScroll } from 'tradera-apps/my-tradera/app/state/actions/scroll-to-initial-scroll';\nimport { webApiClient } from 'tradera-utils/http';\n\n/**\n * @param {function} dispatch dispatch redux action\n * @param {err} error error relayed from asynch call\n */\nconst handleError = (dispatch, e) => {\n dispatch(searching(false));\n dispatch(error(true));\n logger(e);\n};\n\nconst actionTypes = {\n BUYER_ACTIVE_ITEMS_HIDE: 'BUYER_ACTIVE_ITEMS_HIDE',\n BUYER_ACTIVE_ITEMS_SHOW: 'BUYER_ACTIVE_ITEMS_SHOW',\n UPDATE_ITEMS: 'UPDATE_ITEMS',\n COMPLETED_SEARCH: 'COMPLETED_SEARCH',\n OPEN_MORE: 'OPENED_MORE_BUTTON_DROPDOWN',\n SELECT_ITEM: 'SELECT_ITEM_CHECKBOX',\n SELECT_ALL_ITEMS: 'SELECT_ALL_ITEMS',\n REMOVE_ITEMS: 'REMOVE_ITEMS',\n OPEN_DEL_LISTING_ITEM: 'OPEN_DELETE_LISTING_ITEM',\n REMOVE_ALL_SELECTED: 'REMOVE_ALL_SELECTED_CHECKBOXES',\n UPDATE_ITEMS_WITH_ERROR: 'UPDATED_ALL_ITEMS_DUE_TO_ERROR',\n PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER:\n 'PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER',\n PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER:\n 'PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER',\n PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER:\n 'PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER',\n PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER:\n 'PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER',\n PURCHASE_ORDERS_HIDDEN_BY_SELLER: 'PURCHASE_ORDERS_HIDDEN_BY_SELLER',\n PURCHASE_ORDERS_HIDDEN_BY_BUYER: 'PURCHASE_ORDERS_HIDDEN_BY_BUYER',\n PURCHASE_ORDERS_SHOWN_BY_SELLER: 'PURCHASE_ORDERS_SHOWN_BY_SELLER',\n PURCHASE_ORDERS_SHOWN_BY_BUYER: 'PURCHASE_ORDERS_SHOWN_BY_BUYER',\n ITEM_HIDDEN: 'ITEM_HIDDEN',\n ITEM_SHOWN: 'ITEM_SHOWN',\n PURCHASE_ORDERS_MARKED_AS_SHIPPED_BY_SELLER:\n 'PURCHASE_ORDERS_MARKED_AS_SHIPPED_BY_SELLER',\n PURCHASE_ORDERS_UNMARKED_AS_SHIPPED_BY_SELLER:\n 'PURCHASE_ORDERS_UNMARKED_AS_SHIPPED_BY_SELLER',\n PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED:\n 'PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED',\n PURCHASE_ORDERS_MARKED_AS_SHIPPING_BOOKED:\n 'PURCHASE_ORDERS_MARKED_AS_SHIPPING_BOOKED',\n SHIPMENT_DELETED: 'SHIPMENT_DELETED',\n FEEDBACK_LEFT_BY_SELLER: 'FEEDBACK_LEFT_BY_SELLER',\n FEEDBACK_LEFT_BY_BUYER: 'FEEDBACK_LEFT_BY_BUYER',\n RESET_ITEMS: 'RESET_ITEMS',\n SET_RESTARTED: 'SET_RESTARTED',\n SET_NEW_SHIPPING_PRICE: 'SET_NEW_SHIPPING_PRICE'\n};\n\nconst updateItems = (\n value,\n page,\n listViewType,\n memberMessagingParticipation\n) => ({\n type: actionTypes.UPDATE_ITEMS,\n payload: {\n value,\n page,\n listViewType,\n memberMessagingParticipation\n }\n});\n\nconst updateItemsWithError = () => ({\n type: actionTypes.UPDATE_ITEMS_WITH_ERROR\n});\n\nconst openMore = (itemId, pageName = false) => {\n if (pageName) {\n Analytics.trackEvent({\n category: pageName,\n action: 'Toggle',\n label: 'More'\n });\n }\n\n return {\n type: actionTypes.OPEN_MORE,\n payload: itemId\n };\n};\n\nconst selectItem = (itemId, listViewType, selectedFilterBar) => ({\n type: actionTypes.SELECT_ITEM,\n payload: {\n id: itemId,\n listViewType,\n selectedFilterBar\n }\n});\n\nconst resetSelectedCheckboxes = () => ({\n type: actionTypes.REMOVE_ALL_SELECTED\n});\n\nconst selectAllItems = (select, listViewType, selectedFilterBar, memberId) => ({\n type: actionTypes.SELECT_ALL_ITEMS,\n payload: {\n select,\n listViewType,\n selectedFilterBar,\n memberId\n }\n});\n\nconst removeItems = itemIds => ({\n type: actionTypes.REMOVE_ITEMS,\n payload: itemIds\n});\n\nconst updateURL = url => (dispatch, getState) => {\n const state = getState();\n const locationDescriptor = {\n pathname: url,\n search: qs.stringify(getAvailableQueryParams(state))\n };\n\n if (!window.location.search) {\n dispatch(replace(locationDescriptor));\n } else {\n dispatch(push(locationDescriptor));\n }\n};\n\nconst purchaseOrdersMarkAsPaidBySeller = (\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n) => ({\n type: actionTypes.PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER,\n payload: {\n ids: purchaseOrderIds,\n listViewType,\n messagingParticipation\n }\n});\n\nconst purchaseOrdersMarkAsPaidByBuyer = (purchaseOrderIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER,\n payload: {\n ids: purchaseOrderIds,\n listViewType: listViewType\n }\n});\n\nconst purchaseOrdersUnmarkAsPaidBySeller = (\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n) => ({\n type: actionTypes.PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER,\n payload: {\n ids: purchaseOrderIds,\n listViewType,\n messagingParticipation\n }\n});\n\nconst purchaseOrdersUnmarkAsPaidByBuyer = (purchaseOrderIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER,\n payload: {\n ids: purchaseOrderIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsMarkAsShippedBySeller = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_MARKED_AS_SHIPPED_BY_SELLER,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsUnmarkAsShippedBySeller = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_UNMARKED_AS_SHIPPED_BY_SELLER,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsMarkAsShippingBooked = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_MARKED_AS_SHIPPING_BOOKED,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsUnmarkAsShippingBooked = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst transactionDeleteShipment = (purchaseOrderId, listViewType) => ({\n type: actionTypes.SHIPMENT_DELETED,\n payload: {\n purchaseOrderId,\n listViewType\n }\n});\n\nconst buyerActiveItemsHide = (itemIds, listViewType) => ({\n type: actionTypes.BUYER_ACTIVE_ITEMS_HIDE,\n payload: {\n ids: itemIds,\n listViewType: listViewType\n }\n});\n\nconst buyerActiveItemsShow = (itemIds, listViewType) => ({\n type: actionTypes.BUYER_ACTIVE_ITEMS_SHOW,\n payload: {\n ids: itemIds,\n listViewType: listViewType\n }\n});\n\nconst purchaseOrdersHiddenBySeller = (purchaseOrderIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_HIDDEN_BY_SELLER,\n payload: {\n ids: purchaseOrderIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsHiddenByBuyer = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_HIDDEN_BY_BUYER,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst purchaseOrdersShownBySeller = (purchaseOrderIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_SHOWN_BY_SELLER,\n payload: {\n ids: purchaseOrderIds,\n listViewType: listViewType\n }\n});\n\nconst transactionsShownByBuyer = (transactionIds, listViewType) => ({\n type: actionTypes.PURCHASE_ORDERS_SHOWN_BY_BUYER,\n payload: {\n ids: transactionIds,\n listViewType: listViewType\n }\n});\n\nconst unsoldItemsHidden = (itemIds, listViewType) => ({\n type: actionTypes.ITEM_HIDDEN,\n payload: {\n ids: itemIds,\n listViewType: listViewType\n }\n});\n\nconst unsoldItemsShown = (itemIds, listViewType) => ({\n type: actionTypes.ITEM_SHOWN,\n payload: {\n ids: itemIds,\n listViewType: listViewType\n }\n});\n\nconst feedbackLeftBySeller = (transactionId, listViewType) => ({\n type: actionTypes.FEEDBACK_LEFT_BY_SELLER,\n payload: {\n id: transactionId,\n listViewType: listViewType\n }\n});\n\nconst feedbackLeftByBuyer = (transactionId, listViewType) => ({\n type: actionTypes.FEEDBACK_LEFT_BY_BUYER,\n payload: {\n id: transactionId,\n listViewType: listViewType\n }\n});\n\nconst resetMyTraderaItems = () => ({\n type: actionTypes.RESET_ITEMS\n});\n\nconst cancelItem = item => dispatch => {\n dispatch(searching(true));\n endItems([item.itemId])\n .then(response => {\n if (response && response.itemId) {\n dispatch(removeItems(response.itemId));\n }\n dispatch(resetSelectedCheckboxes());\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst setRestarted = (itemIds, listViewType) => ({\n type: actionTypes.SET_RESTARTED,\n payload: {\n itemIds: itemIds,\n listViewType: listViewType\n }\n});\n\n/**\n * Tmp function until backend has changed its api\n * Manipulate paging params before sending to API;\n * @param {object} params - current state.filters.modifiers;\n */\nconst changeParamsForBackend = params => {\n const skip =\n params.paging && params.paging.page > 0\n ? (params.paging.page - 1) * params.paging.size\n : 0;\n const take =\n params.paging && params.paging.page > 0 ? params.paging.size * 1 : 25;\n\n const newPaging = {\n skip: skip < 0 ? 0 : skip,\n take: take\n };\n\n return {\n ...params,\n paging: newPaging\n };\n};\n\nconst runSearch = (\n page,\n shouldScrollToInitialScroll = false,\n listViewType,\n waitForBackend = false,\n dontModifyHistory = true\n) => async (dispatch, getState) => {\n if (!featureToggles.isMyTraderaElasticEnabled) {\n return;\n }\n\n const endPoint = page && page.searchUrl;\n\n if (!endPoint) {\n return;\n }\n\n const search = async () => {\n const state = getState();\n\n dispatch(searching(true));\n dispatch(error(false));\n dispatch(purchaseOrderActions.resetPurchaseOrder());\n dispatch(resetMyTraderaItems());\n dispatch(resetSelectedCheckboxes());\n\n try {\n const modifiers = selectFiltersState(state).modifiers;\n\n const data = await fetch(endPoint, {\n body: JSON.stringify(changeParamsForBackend(modifiers))\n });\n dispatch(\n updateItems(\n data,\n page.pageName,\n listViewType,\n selectMyTraderaState(state).memberMessagingParticipation\n )\n );\n\n if (shouldScrollToInitialScroll === true) {\n scrollToInitialScroll();\n }\n dispatch(searching(false));\n return dispatch(error(false));\n } catch (error) {\n dispatch(updateItemsWithError());\n if (dontModifyHistory === false) {\n updateURL(\n dispatch,\n page.url,\n selectFiltersState(state).modifiers\n );\n }\n handleError(dispatch, error);\n }\n };\n\n // This is a hack to enable delay of searches since sometimes when modifying an item\n // outside of the SPA world, it could take some time for the backend to catch up\n if (waitForBackend === true) {\n setTimeout(search, 3000);\n } else {\n search();\n }\n};\n\nconst rebuildList = () => (dispatch, getState) => {\n const existingState = { ...selectMyTraderaItemsState(getState()) };\n if (!existingState.itemsByID) {\n return dispatch(error(true));\n }\n const state = getState();\n\n const pageName =\n selectMyTraderaState(state).page &&\n selectMyTraderaState(state).page[\n selectRouterState(state).location.pathname\n ] &&\n selectMyTraderaState(state).page[\n selectRouterState(state).location.pathname\n ].pageName;\n const items = existingState.itemsOrderedByID.map(\n i => existingState.itemsByID[i]\n );\n const newState = {\n currentTime: existingState.currentTime,\n paging: existingState.paging,\n statistics: existingState.statistics,\n items: items\n };\n dispatch(\n updateItems(\n newState,\n pageName,\n selectCookiesState(getState()).LIST_VIEW_TYPE\n )\n );\n};\n\nconst contactHighestBidder = (item, sellerEmail) => () => {\n const payload = {\n modalTitle: 'Kontakta högsta budgivare',\n messageSubject: `Meddelande från säljare: ${item.listing.shortDescription}`,\n itemEnddate: item.listing.endDate.formatted,\n itemId: item.itemId,\n itemImageUrl: item.listing.images.main.medium,\n itemTitle: item.listing.shortDescription,\n receiverMemberAlias: item.bidInformation.leadingBidder.alias,\n receiverMemberId: item.bidInformation.leadingBidder.id,\n senderMemberEmail: sellerEmail,\n businessWarning: false,\n reloadAfterClose: true\n };\n\n triot.bus.trigger('ui:contact-modal:show-modal', payload);\n};\n\n// From the more-menu\nconst buyerActiveItemsHideItems = itemIds => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_ACTIVE_ITEMS_HIDE, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(removeItems(itemIds));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\n// From the more-menu\nconst buyerActiveItemsShowItems = itemIds => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_ACTIVE_ITEMS_SHOW, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(removeItems(itemIds));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst markPurchaseOrdersAsPaidBySeller = (\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.SELLER_MARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersMarkAsPaidBySeller(\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n )\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst markPurchaseOrdersAsPaidByBuyer = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_MARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersMarkAsPaidByBuyer(purchaseOrderIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst unmarkPurchaseOrdersAsPaidBySeller = (\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.SELLER_UNMARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersUnmarkAsPaidBySeller(\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n )\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst unmarkPurchaseOrdersAsPaidByBuyer = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_UNMARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersUnmarkAsPaidByBuyer(\n purchaseOrderIds,\n listViewType\n )\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingUnmarkAsShippingBooked = (\n purchaseOrderIds,\n listViewType,\n transactionIds\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.UNMARK_BOOKED, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n transactionsUnmarkAsShippingBooked(transactionIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingMarkAsShippingBooked = (\n purchaseOrderId,\n listViewType,\n transactionIds\n) => dispatch => {\n dispatch(searching(true));\n webApiClient\n .post('/member/selling/item-shipping-booked', {\n purchaseOrderId,\n booked: true\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n transactionsMarkAsShippingBooked(transactionIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingDeleteShipment = (\n shipmentId,\n purchaseOrderId,\n listViewType\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.DELETE_SHIPMENT, {\n body: JSON.stringify({ shipmentId: shipmentId })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(transactionDeleteShipment(purchaseOrderId, listViewType));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingMarkAsShipped = (transactionIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.MARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n transactionsMarkAsShippedBySeller(transactionIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingUnmarkAsShipped = (transactionIds, listViewType) => dispatch => {\n dispatch(searching(true));\n\n fetch(URLS.UNMARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n transactionsUnmarkAsShippedBySeller(\n transactionIds,\n listViewType\n )\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingLeaveFeedback = (item, listViewType) => () => {\n const payload = {\n action: 'LeaveFeedbackAsSeller',\n ids: [item.transaction.transactionId],\n itemId: item.itemId,\n listViewType: listViewType\n };\n triot.bus.trigger('ui:list-item-action:on-leave-single-feedback', payload);\n return payload;\n};\n\nconst sellerUnhideTransaction = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.SELLER_SHOW, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersShownBySeller(purchaseOrderIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst buyerUnhideTransaction = (transactionIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_SHOW, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(transactionsShownByBuyer(transactionIds, listViewType));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerHideTransaction = (purchaseOrderIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.SELLER_HIDE, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(\n purchaseOrdersHiddenBySeller(purchaseOrderIds, listViewType)\n );\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst buyerHideTransaction = (transactionIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.BUYER_HIDE, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(transactionsHiddenByBuyer(transactionIds, listViewType));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerUnhideUnsold = (itemIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.UNSOLDSHOW, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(unsoldItemsShown(itemIds, listViewType));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerHideUnsold = (itemIds, listViewType) => dispatch => {\n dispatch(searching(true));\n fetch(URLS.UNSOLDHIDE, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(error(false));\n dispatch(unsoldItemsHidden(itemIds, listViewType));\n dispatch(searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst buyingLeaveFeedback = (item, listViewType) => () => {\n const payload = {\n action: 'LeaveFeedbackAsBuyer',\n ids: [item.transaction.transactionId],\n itemId: item.itemId,\n listViewType: listViewType\n };\n triot.bus.trigger('ui:list-item-action:on-leave-single-feedback', payload);\n return payload;\n};\n\nconst setNewShippingPrice = (purchaseOrderId, shippingProvider, newPrice) => ({\n type: actionTypes.SET_NEW_SHIPPING_PRICE,\n purchaseOrderId,\n shippingProvider,\n newPrice\n});\n\nexport default {\n resetMyTraderaItems,\n transactionsUnmarkAsShippedBySeller,\n transactionsMarkAsShippedBySeller,\n handleError,\n actionTypes,\n cancelItem,\n buyerActiveItemsHide,\n buyerActiveItemsShow,\n buyerActiveItemsHideItems, // More menu\n buyerActiveItemsShowItems, // More menu\n updateItems,\n resetSelectedCheckboxes,\n openMore,\n updateURL,\n runSearch,\n selectItem,\n removeItems,\n selectAllItems,\n contactHighestBidder,\n markPurchaseOrdersAsPaidBySeller,\n unmarkPurchaseOrdersAsPaidBySeller,\n rebuildList,\n sellerUnhideTransaction,\n sellerHideTransaction,\n sellerUnhideUnsold,\n sellerHideUnsold,\n sellingMarkAsShippingBooked,\n sellingMarkAsShipped,\n sellingUnmarkAsShipped,\n sellingUnmarkAsShippingBooked,\n sellingDeleteShipment,\n sellingLeaveFeedback,\n feedbackLeftBySeller,\n feedbackLeftByBuyer,\n markPurchaseOrdersAsPaidByBuyer,\n unmarkPurchaseOrdersAsPaidByBuyer,\n buyerUnhideTransaction,\n buyerHideTransaction,\n buyingLeaveFeedback,\n setRestarted,\n setNewShippingPrice,\n purchaseOrdersMarkAsPaidBySeller,\n purchaseOrdersUnmarkAsPaidBySeller,\n purchaseOrdersMarkAsPaidByBuyer,\n purchaseOrdersUnmarkAsPaidByBuyer,\n changeParamsForBackend\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport initData from 'init-data';\nimport { createSlice } from '@reduxjs/toolkit';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport { getSyiSlice } from 'tradera-state/views/syi/selectors/syi';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nconst defaultRegionValue = 'EU';\nlet availableAllowedBuyerRegions;\nlet defaultBuyerRegion;\nlet initialState = {};\n\nconst initModuleGlobals = () => {\n if (\n !initData.pageSpecificData ||\n !initData.pageSpecificData.allowedBuyerRegions\n ) {\n return null;\n }\n\n availableAllowedBuyerRegions =\n initData.pageSpecificData.allowedBuyerRegions;\n defaultBuyerRegion = availableAllowedBuyerRegions.find(\n r => r.value === defaultRegionValue\n );\n\n initialState = {\n availableAllowedBuyerRegions: availableAllowedBuyerRegions,\n selectedBuyerRegion: defaultBuyerRegion.value,\n selectedBuyerRegionText: defaultBuyerRegion.text,\n availableAllowedBuyerRegionsForEditWithBids: false,\n isSetAllowedBuyerRegionToAtLeastEuEnabled:\n initData &&\n initData.featureSwitches &&\n initData.featureSwitches[\n 'international-shipping-schenker-eu-default'\n ],\n isTraderaPayEnabled: userData.payment.isTraderaPayEnabled\n };\n};\n\ninitModuleGlobals();\nconst buyerRegionSlice = createSlice({\n name: 'buyer-region',\n initialState: initialState,\n reducers: {\n setAllowedBuyerRegion: (state, action) => {\n const region = availableAllowedBuyerRegions.find(\n r => r.value === action.payload.allowedBuyerRegion\n );\n const { value, text } = region || defaultBuyerRegion;\n state.selectedBuyerRegion = value;\n state.selectedBuyerRegionText = text;\n\n return state;\n },\n setAvailableAllowedBuyerRegions: (state, action) => {\n state.availableAllowedBuyerRegions =\n action.payload.availableRegions;\n state.availableAllowedBuyerRegionsForEditWithBids = true;\n return state;\n }\n }\n});\n\nexport const setAvailableAllowedBuyerRegions = () => (dispatch, getState) => {\n const draftState = getSyiSlice(getState()).draft;\n const regionState = getSyiSlice(getState()).buyerRegion;\n const regions = regionState.availableAllowedBuyerRegions;\n const selectedRegion = regionState.selectedBuyerRegion;\n const filters = {\n Sweden: region =>\n ['Sweden', 'Nordic', 'EU', 'International'].indexOf(region.value) >\n -1,\n Nordic: region =>\n ['Nordic', 'International'].indexOf(region.value) > -1,\n EU: region => ['EU', 'International'].indexOf(region.value) > -1,\n International: region => ['International'].indexOf(region.value) > -1\n };\n const useFilter = draftState.draftReason === 'ChangeItemWithBids';\n const filter = (useFilter && filters[selectedRegion]) || (() => true);\n const availableRegions = regions.filter(filter);\n dispatch(\n buyerRegionSlice.actions.setAvailableAllowedBuyerRegions({\n availableRegions\n })\n );\n};\n\nexport const { setAllowedBuyerRegion } = buyerRegionSlice.actions;\n\nexport default buyerRegionSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"overlay--ZLLD9\"};","import React, { Component } from 'react';\nimport PropType from 'prop-types';\nimport styles from './overlay.module.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 qs from 'qs';\n\nexport const URL_HASHES = {\n openBiddingModal: 'bidding',\n saveInWishlist: 'wishlist=1',\n openBinModal: 'bin=1',\n openChangeCombinedShippingModal: 'open_change_combined_shipping=',\n markAsPaid: 'mark_as_paid=',\n hasRequestedCombinedShipping: 'has_requested_combined_shipping='\n};\n\n/**\n * Remove hash and forceRedirect param from url\n */\nexport const removeHashFromUrl = nextRouter => {\n const { forceRedirect, ...otherQueryParams } = qs.parse(location.search, {\n ignoreQueryPrefix: true\n });\n if (document.location.hash.length === 0 && !forceRedirect) {\n return;\n }\n const url =\n location.pathname +\n qs.stringify(otherQueryParams, { addQueryPrefix: true });\n if (nextRouter) {\n nextRouter.replace(url, undefined, { shallow: true });\n } else {\n history.replaceState({}, window.title, url);\n }\n};\n\nexport const shouldOpenBiddingModal = () => {\n if (document.location.hash.includes(URL_HASHES.openBiddingModal)) {\n const { bidding } = qs.parse(document.location.hash.substr(1));\n return bidding ? bidding : '';\n } else {\n return '';\n }\n};\n\nexport const shouldSaveInWishlist = () =>\n document.location.hash.includes(URL_HASHES.saveInWishlist);\n\nexport const shouldOpenBinModal = () =>\n document.location.hash.includes(URL_HASHES.openBinModal);\n\nexport const shouldOpenChangeCombinedShippingModal = () =>\n document.location.hash.includes(URL_HASHES.openChangeCombinedShippingModal);\n\nexport const shouldMarkAsPaid = () =>\n document.location.hash.includes(URL_HASHES.markAsPaid);\n\nexport const shouldShowRequestedCombinedShippingToast = () =>\n document.location.hash.includes(URL_HASHES.hasRequestedCombinedShipping);\n\nconst getBaseRedirectUrl = () => {\n // Add random query parameter to force reload when redirecting to this url\n // and only the hash differs\n const queryParams = {\n ...qs.parse(location.search, { ignoreQueryPrefix: true }),\n forceRedirect: Math.round(Math.random() * 100000)\n };\n return (\n location.protocol +\n '//' +\n location.host +\n location.pathname +\n qs.stringify(queryParams, { addQueryPrefix: true })\n );\n};\n\nexport const getBiddingRedirectUrl = amount => {\n const url = getBaseRedirectUrl() + '#' + URL_HASHES.openBiddingModal;\n if (!amount) return url;\n return `${url}=${amount}`;\n};\n\nexport const getWishlistRedirectUrl = () =>\n getBaseRedirectUrl() + '#' + URL_HASHES.saveInWishlist;\n\nexport const getBinRedirectUrl = () =>\n getBaseRedirectUrl() + '#' + URL_HASHES.openBinModal;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 { 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 = (\n secondsLeft,\n t,\n endDate,\n serverDate,\n dayjs\n) => {\n if (Number.isInteger(secondsLeft)) {\n if (secondsLeft > DAY_IN_SECONDS) {\n return formatEndDate(endDate, t, serverDate, dayjs);\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","export const MODAL_TYPE = {\n BANK_ID: 'BANK_ID',\n SWISH_HANDEL: 'SWISH_HANDEL'\n};\n\nexport const MODAL_STATUS = {\n START: 'START',\n COMPLETE: 'COMPLETE',\n ERROR: 'ERROR'\n};\n\nexport const PAYMENT_OPTIONS = {\n CARD: 'Card',\n APPLEPAY: 'ApplePay',\n GOOGLEPAY: 'GooglePay',\n SWISH_HANDEL: 'SwishHandel',\n VISA_MASTERCARD: 'VisaMasterCard'\n};\n\nexport const PAYMENT_OPTION_STATUS = {\n AVAILABLE: 'Available',\n UNAVAILABLE_DUE_TO_AMOUNT: 'UnavailableDueToAmount'\n};\n\nexport default () => ({\n invoice: {},\n ongoingPaymentAttempt: {\n invoicePaymentAttemptId: null,\n paymentMethod: null\n },\n payment: {\n hasError: false,\n isFetching: false,\n paymentOptions: null,\n selectedPayment: null,\n paymentMethodData: null,\n modal: {\n open: '',\n status: MODAL_STATUS.START\n }\n },\n checkoutSummary: {\n hasError: false,\n isFetching: false\n }\n});\n","export default ({ displayAllowedBuyerRegionFilter }) => {\n return {\n activeBrands: [],\n activeFilters: [],\n attributeFilters: [],\n categoryPath: [],\n currentCategoryId: 0,\n displayAllowedBuyerRegionFilter,\n endpoint: null,\n error: null,\n fallbackItemsById: [],\n filterCategories: {},\n filterPrice: {},\n filters: {},\n hasResult: false,\n headerText: null,\n internalSearch: {},\n introText: null,\n isFetchingGeolocation: false,\n isSavedSearchEmailEnabled: false,\n isShopOwnedByCurrentMember: false,\n itemsById: [],\n itemsOnDisplayById: [],\n mainText: null,\n pagination: null,\n queryParams: {},\n totalItems: 0,\n reduxContainer: {},\n searchLanguages: []\n };\n};\n","import { logger } from 'packages/logger';\n\nimport { getSearchResults } from './api';\nimport actionTypes from './action-types';\nimport itemActions from '../items/actions';\nimport pageActions from '../page/actions';\nimport { setAds } from '../ads/actions';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { reload } from 'tradera-utils/location';\nimport initialState from './initial-state';\nimport * as discoverTracking from 'tradera-apps/tradera/components/discover/helpers/search-gtm';\nimport {\n isSwedenCountryCodeOrUndefined,\n isSwedenCountryNameOrUndefined\n} from 'tradera-localization/countrycode';\nimport { selectShippingRegionCountryCodeIso2 } from 'tradera-state/shipping-region/selectors';\nimport {\n selectIsLoggedIn,\n selectMemberCountryCodeIso2\n} from 'tradera-state/member/selectors';\n\nconst requestSearchResults = () => {\n return {\n type: actionTypes.REQUEST_SEARCH_RESULTS\n };\n};\n\nconst updatePageMetaForSearchResults = () => (dispatch, getState) => {\n const discover = getState().discover;\n const { reduxContainer } = discover;\n const { ads, pageMeta } = reduxContainer;\n dispatch(\n pageActions.setPageMeta({\n ...pageMeta\n })\n );\n if (ads) dispatch(setAds(ads));\n};\n\n/**\n *\n * @param {object} payload the normalized version of the response\n * @param {object} payload.result\n * @param {object} payload.result.categoryPath\n * @param {object[]} [payload.result.fallbackItems]\n * @param {object[]} [payload.result.items]\n * @param {object} [payload.result.itemsOnDisplay]\n * @param {object[]} [payload.result.itemsOnDisplay.items]\n * @param {object} [payload.result.reduxContainer]\n * @param {object} [payload.result.reduxContainer.ads]\n * @param {object} [payload.result.reduxContainer.pageMeta]\n */\nconst receiveSearchResults = payload => (dispatch, getState) => {\n const {\n result: { fallbackItems, items, itemsOnDisplay }\n } = payload;\n\n const itemsToAdd = [];\n if (fallbackItems?.length > 0) {\n itemsToAdd.push(...fallbackItems);\n }\n if (items?.length > 0) {\n itemsToAdd.push(...items);\n }\n if (itemsOnDisplay?.items?.length > 0) {\n itemsToAdd.push(...itemsOnDisplay.items);\n }\n if (itemsToAdd.length > 0) {\n dispatch(itemActions.add(itemsToAdd));\n }\n\n dispatch({\n type: actionTypes.RECEIVE_SEARCH_RESULTS,\n payload: {\n ...payload,\n shippingRegionCountryCodeIso2: selectShippingRegionCountryCodeIso2(\n getState()\n )\n }\n });\n};\n\nconst fetchSearchResults = (endpoint, queryParams, pageType, onLoaded) => {\n return async (dispatch, getState) => {\n dispatch(requestSearchResults());\n const {\n environment: { version }\n } = getState();\n return getSearchResults(endpoint, queryParams, '', version)\n .then(({ data: result }) => {\n const searchResults = { result, endpoint, queryParams };\n dispatch(receiveSearchResults(searchResults));\n return searchResults;\n })\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n break;\n case API_ERRORS.VERSION_MISMATCH:\n reload(true);\n break;\n default:\n dispatch(handleSearchResultsError(error.message));\n break;\n }\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n case API_ERRORS.NETWORK:\n case API_ERRORS.TIMEOUT:\n case API_ERRORS.VERSION_MISMATCH:\n break;\n default:\n logger(error);\n break;\n }\n })\n .finally(() => {\n dispatch(afterReceiveSearchResults(pageType, onLoaded));\n });\n };\n};\n\nconst afterReceiveSearchResults = (pageType, onLoaded) => (\n dispatch,\n getState\n) => {\n dispatch(updatePageMetaForSearchResults(pageType));\n dispatch(() => {\n trackNewSearch(getState);\n onLoaded();\n });\n};\n\nconst handleSearchResultsError = payload => ({\n type: actionTypes.HANDLE_SEARCH_RESULTS_ERROR,\n payload\n});\n\nconst setSingleFilterValue = (filter, value) => {\n return {\n type: actionTypes.SET_SINGLE_FILTER,\n payload: {\n filter,\n value\n }\n };\n};\n\nconst addItemOnDisplay = payload => ({\n type: actionTypes.ADD_ITEM_ON_DISPLAY,\n payload\n});\n\nconst removeItemOnDisplay = payload => ({\n type: actionTypes.REMOVE_ITEM_ON_DISPLAY,\n payload\n});\n\nconst setCategoryPath = categoryPath => {\n return {\n type: actionTypes.SET_CATEGORY_PATH,\n payload: categoryPath\n };\n};\n\nconst setCurrentCategoryId = categoryId => {\n return {\n type: actionTypes.SET_CURRENT_CATEGORY_ID,\n payload: categoryId\n };\n};\n\nconst reset = () => (dispatch, getState) => {\n const state = getState();\n return dispatch({\n type: actionTypes.RESET,\n payload: {\n initialState: initialState(state.initData)\n }\n });\n};\n\nconst initialize = () => (dispatch, getState) => {\n const shippingCountry = selectShippingRegionCountryCodeIso2(getState());\n const isLoggedIn = selectIsLoggedIn(getState());\n const memberCountry = selectMemberCountryCodeIso2(getState());\n const displayAllowedBuyerRegionFilter =\n !isSwedenCountryCodeOrUndefined(shippingCountry) ||\n (isLoggedIn && !isSwedenCountryNameOrUndefined(memberCountry));\n dispatch({\n type: actionTypes.INITIALIZE,\n payload: initialState({\n displayAllowedBuyerRegionFilter\n })\n });\n};\n\nconst trackNewSearch = getState => {\n const state = getState();\n const { categoryPath, itemsById, metaTitle } = state.discover;\n discoverTracking.trackNewSearch(categoryPath, itemsById, metaTitle);\n};\n\nexport default {\n afterReceiveSearchResults,\n addItemOnDisplay,\n fetchSearchResults,\n initialize,\n receiveSearchResults,\n removeItemOnDisplay,\n requestSearchResults,\n reset,\n setCategoryPath,\n setCurrentCategoryId,\n setSingleFilterValue\n};\n","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e.default:e}Object.defineProperty(exports,\"__esModule\",{value:!0});var React=_interopDefault(require(\"react\"));function AppContainer(e){return AppContainer.warnAboutHMRDisabled&&(AppContainer.warnAboutHMRDisabled=!0,console.error(\"React-Hot-Loader: misconfiguration detected, using production version in non-production environment.\"),console.error(\"React-Hot-Loader: Hot Module Replacement is not enabled.\")),React.Children.only(e.children)}AppContainer.warnAboutHMRDisabled=!1;var hot=function e(){return e.shouldWrapWithAppContainer?function(e){return function(n){return React.createElement(AppContainer,null,React.createElement(e,n))}}:function(e){return e}};hot.shouldWrapWithAppContainer=!1;var areComponentsEqual=function(e,n){return e===n},setConfig=function(){},cold=function(e){return e},configureComponent=function(){};exports.AppContainer=AppContainer,exports.hot=hot,exports.areComponentsEqual=areComponentsEqual,exports.setConfig=setConfig,exports.cold=cold,exports.configureComponent=configureComponent;\n","import Analytics from 'packages/analytics';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { setPreferredCurrency } from './reducer';\nimport { selectIsLoggedIn } from 'tradera-state/member/selectors';\nimport { touchWebClient } from 'tradera-utils/http';\nimport { selectPreferredLanguage } from 'tradera-state/language/selectors';\n\nexport const setPreferredCurrencyThunk = (\n currencyCode,\n triggerGa = true\n) => async (dispatch, getState) => {\n if (triggerGa) {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Currency',\n label: currencyCode\n });\n }\n\n if (selectIsLoggedIn(getState())) {\n await touchWebClient.post('my/profile/save-currency-setting', {\n currencyCode\n });\n }\n\n createPreferredCurrencyCookie(currencyCode);\n dispatch(setPreferredCurrency({ currencyCode }));\n};\n\nexport const setCurrencyIfNotChosen = currencyCode => (dispatch, getState) => {\n if (\n cookieUtil.readCookie('preferred_currency') ||\n selectIsLoggedIn(getState())\n ) {\n return;\n }\n\n const { languageCodeIso2 } = selectPreferredLanguage(getState());\n\n const map = {\n sv: 'SEK',\n da: 'DKK',\n de: 'EUR'\n };\n\n if (Object.keys(map).includes(languageCodeIso2)) {\n dispatch(setPreferredCurrencyThunk(map[languageCodeIso2], false));\n } else {\n dispatch(setPreferredCurrencyThunk(currencyCode, false));\n }\n};\n\nconst yearInMilliseconds = 1000 * 60 * 60 * 24 * 365;\nconst createPreferredCurrencyCookie = currencyCode => {\n cookieUtil.createCookie(\n 'preferred_currency',\n currencyCode,\n new Date(new Date().getTime() + yearInMilliseconds)\n );\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: 120,\n className: ''\n};\n\nexport default React.memo(TraderaLogo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CartIcon from '@tradera/blueprint/theme/icons2/cart.svg?jsx';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport LocalizedPrice from 'tradera-localization/localized-price';\n\nconst CartLink = ({ formattedCartItems, cartSum, transparentHeader }) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const cartUrl = toLocalizedUrl('/shopping/cart');\n return (\n
\n \n \n {formattedCartItems}\n \n
\n \n
\n
\n \n \n \n
\n \n
\n );\n};\n\nCartLink.propTypes = {\n formattedCartItems: PropTypes.number,\n cartSum: PropTypes.number\n};\n\nexport default React.memo(CartLink);\n","import React from 'react';\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\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 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","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 imageContainerClassName,\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 imageContainerClassName,\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';\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 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 { useEffect, useRef } from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\n\nexport const useMenuHeightFix = () => {\n const menuContentRef = useRef();\n const isExtraLargeDesktop = useMediaQuery({\n minWidth: BREAKPOINT_SIZES.XL.min\n });\n\n useEffect(() => {\n if (!menuContentRef.current) return;\n const element = menuContentRef.current.parentElement;\n const marginBottom = isExtraLargeDesktop ? 7 : 0;\n const marginTop = element.getBoundingClientRect().top;\n const marginY = marginTop + marginBottom;\n // eslint-disable-next-line better-mutation/no-mutation\n element.style.maxHeight = `calc(100vh - ${marginY}px)`;\n }, [isExtraLargeDesktop]);\n return menuContentRef;\n};\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 {\n useTranslator,\n useUrlLocalizer,\n useCurrentLanguage\n} 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 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 { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\nimport { isSwedishOrUndefined } from 'tradera-localization/languagecode';\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 isNextWebBrandsPageEnabled = useIsFeatureEnabled(\n 'next-web-brands-page'\n );\n const isPennybridgeCharitiesEnabled = useIsFeatureEnabled(\n 'pennybridge-charities'\n );\n const isValuationPageEnabled = useIsFeatureEnabled('valuation-page');\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 const { language } = useCurrentLanguage();\n\n const isSwedish = isSwedishOrUndefined(language);\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 border>\n \n \n {isSwedish && (\n \n )}\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={!isNextWebBrandsPageEnabled}\n label={t('siteHeader_brands')}\n link={toLocalizedUrl(\n `/brands${isNextWebBrandsPageEnabled ? '?next=1' : ''}`\n )}\n onClick={onClick}\n />\n {isPennybridgeCharitiesEnabled && (\n }\n inSPA={inSPA}\n label={t('siteHeader_donateWithTradera')}\n link={toLocalizedUrl('/causes')}\n onClick={onClick}\n />\n )}\n {isValuationPageEnabled && (\n }\n inSPA={inSPA}\n label={t('siteHeader_valuation')}\n link={toLocalizedUrl('/valuation')}\n onClick={onClick}\n />\n )}\n\n \n \n \n {t('siteHeader_categoriesAll')}\n \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 {/* 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 (\n this.props.categoryList[0]?.categoryNodes !==\n prevProps.categoryList[0]?.categoryNodes\n ) {\n this.filterCategories(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 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 { fetchCategoryList } from 'tradera-state/categories/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\nimport { logger } from 'packages/logger';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\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\nconst trackAnalytics = label => {\n try {\n GtmService.trackAction('Top navigation', 'Category menu', label);\n } catch (error) {\n logger(error);\n }\n};\n\nconst DropdownMenu = ({\n className,\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 const onClick = () => {\n if (expanded) {\n dispatch(uiActions.closeCategoryDropdownMenu());\n trackAnalytics('Menu close');\n } else {\n dispatch(uiActions.closeProfileMenu());\n if (!categories.isFetching && categories.list.length === 0) {\n dispatch(fetchCategoryList());\n }\n dispatch(uiActions.openCategoryDropdownMenu());\n\n trackAnalytics('Menu open');\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 { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { useSelector } from 'react-redux';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport { selectIsForeignLanguageActivated } from 'tradera-state/language/selectors';\nimport { selectIsOutsideSweden } from 'tradera-state/member/selectors';\n\nconst SignUpLink = ({ clickAction }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const register = t('siteHeader_register');\n const isForeignVisitor = useSelector(\n state =>\n (!selectIsSwedishVisitor(state) ||\n selectIsForeignLanguageActivated(state)) &&\n selectIsOutsideSweden(state)\n );\n const url = isForeignVisitor\n ? toLocalizedUrl('/register/foreign-private')\n : toLocalizedUrl('/register');\n\n return (\n \n \n {register}\n \n \n );\n};\n\nexport default React.memo(SignUpLink);\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","/* 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\";","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"item--btWVc\",\"link\":\"link--1sGjM\",\"icon\":\"icon--3Zoct\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport styles from './hover-menu-item.module.scss';\nimport ALink from 'tradera-components/alink/alink';\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 {icon && (\n \n {icon}\n \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","// extracted by mini-css-extract-plugin\nexport default {\"separator\":\"separator--1xa0y\"};","import React from 'react';\nimport styles from './hover-menu-separator.module.scss';\n\nconst HoverMenuItemSeparator = () =>
  • ;\n\nexport default HoverMenuItemSeparator;\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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport hoverMenuStyles from './hover-menu/hover-menu.module.scss';\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 React from 'react';\nimport {\n useTranslator,\n useUrlLocalizer,\n useCurrentLanguage\n} from 'tradera-lang/translate';\nimport { isSwedishOrUndefined } from 'tradera-localization/languagecode';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport HoverMenu from './hover-menu/hover-menu';\nimport HoverMenuItem from './hover-menu/hover-menu-item';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\n\nexport const HowTraderaWorks = ({\n mouseOut,\n mouseOver,\n onBlur,\n transparentHeader,\n showMenu\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const { language } = useCurrentLanguage();\n\n const isSwedish = isSwedishOrUndefined(language);\n\n return (\n mouseOver(HOVER_MENUS.HOW_TRADERA_WORKS)}>\n \n \n \n {t('siteHeader_howTo_v2')}\n \n \n \n \n \n {isSwedish && (\n \n )}\n \n \n );\n};\n","import React from 'react';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\n\nconst NewListingLink = ({ transparentHeader }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const newListingLink = t('siteHeader_newListing');\n\n return (\n \n \n\n \n {newListingLink}\n \n \n );\n};\n\nexport default NewListingLink;\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-localization/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","// extracted by mini-css-extract-plugin\nexport default {\"row\":\"row--1I9zj\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n selectCurrencies,\n selectPreferredCurrency\n} from 'tradera-state/multi-currency/selectors';\nimport { setPreferredCurrencyThunk } from 'tradera-state/multi-currency/actions';\nimport Flag from 'tradera-components/flag/flag';\nimport { mapCurrencyCodeToCountryCode } from 'tradera-localization/map-currency-code-to-country-code';\nimport styles from './currency-select.module.scss';\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 title\n}) => {\n return (\n
    \n {title && (\n
    \n {title}\n
    \n )}\n {currencies.map(({ code, shortName, longName }) => (\n {\n onCurrencySelected(code);\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 => ({\n onCurrencySelected: code => dispatch(setPreferredCurrencyThunk(code))\n});\n\nexport const CurrencySelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainCurrencySelect);\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/selectors';\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 window.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 window.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 window.location.href = '/my/PayeeVerificationCompleted';\n }}>\n \n \n \n {t('siteheader_hyperwalletPayeeVerificationReviewTitle')}\n \n
    \n {t('siteheader_hyperwalletPayeeVerificationReviewDescription')}\n
    \n \n );\n};\n\nconst FeeNettingInfoAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n \n \n \n {t('siteheader_feeNettingInfoTitle')}\n \n \n \n
    \n );\n};\n\nconst RemoveSwishNumberAlert = ({ removeSwishNumberUrl }) => {\n const { t } = useTranslator();\n return (\n {\n e.preventDefault();\n window.location.href = removeSwishNumberUrl;\n }}>\n \n \n {t('siteheader_removeSwishNumberTitle')}\n
    \n {t('siteheader_removeSwishNumberDescription')}\n
    \n \n );\n};\n\nexport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n FeeNettingInfoAlert,\n RemoveSwishNumberAlert\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';\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';\nimport { CurrencyMenuItem } from './expandable-currency-menu-item';\nimport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n FeeNettingInfoAlert,\n RemoveSwishNumberAlert\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 { localStore } from 'utils/storage';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\nimport initData from 'init-data';\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 hasTraderaPay,\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 'To Tradera Shop'\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 {hasTraderaPay && (\n \n {t('siteheader_payments')}\n {!localStore.getItem(\n STORAGE_KEYS.BATCH_PAYOUTS_ALERT_DISMISSED\n ) && (\n \n {t('siteHeader_updated')}\n \n )}\n \n )\n }\n link={toLocalizedUrl('/my/payouts')}\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.RemoveSwishNumber && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationRequired && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationUnderReview && (\n \n ),\n systemMessages.FeeNettingInfo && (\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 hasTraderaPay: PropTypes.bool,\n systemMessages: PropTypes.object,\n threadsUnread: PropTypes.number\n};\nProfileMenuContent.defaultProps = {\n systemMessages: {}\n};\n\nexport default ProfileMenuContent;\n","import { isServer } from 'tradera-utils/nextjs';\n\nexport const openChatBot = () => {\n if (isServer) return;\n\n const protocol =\n document.location.protocol === 'https:' ? 'https://' : 'http://';\n\n const id = '62132ec40d7b5b0007d222c5';\n const src = `${protocol}cdn.chatbot.com/widget/plugin.js`;\n\n window.__be = window.__be || {};\n window.__be.id = id;\n window.BE_API = window.BE_API || {};\n\n if (window.BE_API.openChatWindow) {\n if (\n window.BE_API.isChatWindowOpened &&\n !window.BE_API.isChatWindowOpened()\n ) {\n window.BE_API.openChatWindow();\n }\n return;\n }\n\n window.BE_API.onLoad = () => {\n window.BE_API.openChatWindow();\n };\n\n if (!isExisting(src)) {\n const scriptEl = document.createElement('script');\n scriptEl.setAttribute('type', 'text/javascript');\n scriptEl.setAttribute('async', true);\n scriptEl.setAttribute('src', src);\n\n document.body.appendChild(scriptEl);\n }\n};\n\nconst isExisting = src => {\n return !!document.querySelector(`script[src=\"${src}\"]`);\n};\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 'packages/logger';\nimport {\n useTranslator,\n useUrlLocalizer,\n useCurrentLanguage\n} from 'tradera-lang/translate';\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport { SURVEYS } from 'tradera-constants/surveys';\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';\nimport { openChatBot } from './chat-bot-loader';\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 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 { language } = useCurrentLanguage();\n const menuContentRef = useMenuHeightFix();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n\n const isChatBotEnabled = language === 'sv';\n\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 {isChatBotEnabled && (\n }\n onClick={async () => {\n try {\n openChatBot();\n closeMenu();\n } catch (e) {\n logger(e);\n }\n\n trackOnClick('Chat with JUNO');\n }}\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\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 hasTraderaPay\n } = member;\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 \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 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';\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 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 React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport hoverMenuStyles from './hover-menu/hover-menu.module.scss';\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('To Tradera Shop')}\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","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';\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","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 hoverMenuStyles from './hover-menu/hover-menu.module.scss';\nimport { CurrencySelect } from 'components/localization/currency-select';\nimport { selectPreferredCurrency } from 'tradera-state/multi-currency/selectors';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst PlainCurrencyLink = ({\n onClick,\n onBlur,\n mouseOver,\n mouseOut,\n showMenu,\n transparentHeader,\n preferredCurrency\n}) => {\n const { t } = useTranslator();\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 onBlur(e, HOVER_MENUS.CURRENCY);\n }}\n inProfileMenu={false}\n title={t('siteHeader_currency')}\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","import React, { Component } from 'react';\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/selectors';\nimport { withIsMobile } from 'tradera-hooks/use-is-mobile';\nimport { withIsTablet } from 'tradera-hooks/use-is-tablet';\nimport { withIsDesktop } from 'tradera-hooks/use-is-desktop';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { onWindowLoad } from 'utils/on-ready';\nimport { getGeolocation } from 'tradera-state/member/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { withUrlLocalizer } from 'tradera-lang/translate';\nimport TraderaLogo from 'components/tradera/logo?jsx';\nimport TraderaAppLogo from '@tradera/blueprint/theme/logos/tradera-app-logo.svg?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 { HowTraderaWorks } from './how-tradera-works';\nimport NewListingLink from './new-listing-link';\nimport ProfileMenuLink from './profile-menu-link';\nimport { SearchButton } from './search-button';\n\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 cartItemCount: PropTypes.number,\n cartSum: PropTypes.number,\n closeMessagingModal: PropTypes.func,\n fetchMessagingNotifications: PropTypes.func,\n getGeolocation: PropTypes.func,\n inSPA: PropTypes.bool,\n searchQuery: PropTypes.string,\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 (this.props.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 this.props.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 (this.props.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 cartItemCount,\n cartSum,\n closeMessagingModal,\n closeNotificationOptinModal,\n isMobile,\n inSPA,\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 = cartItemCount;\n const hasCartItems = formattedCartItems > 0;\n const stickyEnabledOnPage = !pageName?.includes('MyTradera');\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 \n {inSPA ? (\n \n ) : (\n \n )}\n \n \n
      \n
    • \n \n
    • \n {!isLoggedIn && (\n
    • \n \n
    • \n )}\n {!isLoggedIn && showCurrencySelection && (\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
    \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\nconst mapStateToProps = state => {\n return {\n cartItemCount: state.ui.cartItemCount,\n cartSum: state.ui.cartSum,\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 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: getGeolocation,\n openSearchForm: uiActions.openSearchForm\n};\n\nexport default compose(\n withIsMobile,\n withIsTablet,\n withIsDesktop,\n withUrlLocalizer,\n connect(mapStateToProps, mapDispatchToProps)\n)(SiteHeader);\n\nexport { SiteHeader };\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 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 { useMediaQuery } from 'react-responsive';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\n\nconst useIsTablet = () =>\n useMediaQuery({\n minWidth: BREAKPOINT_SIZES.MD.min,\n maxWidth: BREAKPOINT_SIZES.MD.max\n });\n\nexport const withIsTablet = WrappedComponent => {\n const WithIsTablet = props => {\n const isTablet = useIsTablet();\n return ;\n };\n\n WithIsTablet.displayName = `withIsTablet(${WrappedComponent.displayName ||\n WrappedComponent.name}`;\n\n return WithIsTablet;\n};\n\nexport { useIsTablet };\n","import PropTypes from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\n\n/**\n * Conditionally render children depending on matching breakpoint\n *\n * \"is\" prop has precedence over \"upTo\" and \"downTo\", which can be used together to define a range\n *\n * @param {boolean} props.desktop - LG and above\n * @param {boolean} props.tablet - MD\n * @param {boolean} props.mobile - SM and below\n * @param {string} props.is - Exact breakpoint match\n * @param {string} props.upTo - Up to (inclusive) breakpoint match\n * @param {string} props.downTo - Down to (inclusive) breakpoint match\n * @param props.children\n * @returns {children|null}\n */\nconst Breakpoint = props => {\n const { desktop, tablet, mobile, children } = props;\n let { is, upTo, downTo } = props;\n let mediaQuery = {};\n if (desktop || tablet || mobile) {\n if (desktop) downTo = BREAKPOINTS.LG;\n else if (tablet) is = BREAKPOINTS.MD;\n else if (mobile) upTo = BREAKPOINTS.SM;\n }\n if (is) {\n mediaQuery.minWidth = BREAKPOINT_SIZES[is].min;\n mediaQuery.maxWidth = BREAKPOINT_SIZES[is].max;\n } else {\n if (upTo) {\n mediaQuery.maxWidth = BREAKPOINT_SIZES[upTo].max;\n } else if (downTo) {\n mediaQuery.minWidth = BREAKPOINT_SIZES[downTo].min;\n }\n }\n const isActive = useMediaQuery(mediaQuery);\n return isActive ? children : null;\n};\nBreakpoint.propTypes = {\n desktop: PropTypes.bool,\n tablet: PropTypes.bool,\n mobile: PropTypes.bool,\n is: PropTypes.oneOf(Object.keys(BREAKPOINTS)),\n upTo: PropTypes.oneOf(Object.keys(BREAKPOINTS)),\n downTo: PropTypes.oneOf(Object.keys(BREAKPOINTS))\n};\n\nexport { Breakpoint as default, Breakpoint, BREAKPOINTS };\n","import { isServer } from 'tradera-utils/nextjs';\n\nexport default !isServer && window.sellingGlobalData;\n","export const selectFiltersState = state => state.views.myTradera.filters;\n","export const PAGE_NAMES = {\n Overview: 'MyTradera',\n BuyerActiveItems: 'MyTradera_ActiveBids',\n BuyerItemsLost: 'MyTradera_LostBids',\n MyTraderaLeaveFeedback: 'MyTradera_LeaveFeedback',\n MyTraderaMyFeedback: 'MyTradera_MyFeedback',\n SellerActive: 'MyTradera_ActiveItems',\n SellerList: 'MyTradera_SellerList',\n SellerSold: 'MyTradera_SoldItems',\n SellerUnsold: 'MyTradera_UnsoldItems',\n BuyerPurchases: 'MyTradera_Purchases',\n Settings: 'MyTradera_Settings',\n SettingsAccount: 'MyTradera_SettingsAccount',\n SettingsEmail: 'MyTradera_SettingsEmail',\n SettingsNotifications: 'MyTradera_SettingsNotifications',\n SettingsSeller: 'MyTradera_SettingsSeller',\n SettingsSecurity: 'MyTradera_SettingsSecurity',\n Payouts: 'MyTradera_Payouts',\n Invoices: 'MyTradera_Invoices',\n WishList: 'MyTradera_WishList'\n};\n","import { logger } from 'packages/logger';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\nimport StorageService from '../../../app/data/storage-service';\nimport { axiosConfigs } from 'tradera-utils/api';\nimport { searchSuggestionsClient } from 'tradera-utils/http';\n\nconst previousSearchService = new StorageService(STORAGE_KEYS.SEARCH_RECENT);\n\nexport const getSuggestions = async ({\n searchTerm = '',\n limitPrevious = 7,\n enablePrevious = false,\n enableSuggestions = false\n}) => {\n const generateSuggestionId = (categoryId, term) =>\n categoryId ? categoryId + '-' + term : term;\n\n let previousSearchResults = [],\n suggestedResults = {\n searches: [],\n shops: [],\n charities: [],\n campaigns: []\n };\n\n // ------------------------------\n // get suggestion data\n if (enablePrevious) {\n previousSearchResults = getPreviousSearches(searchTerm, limitPrevious);\n }\n\n if (enableSuggestions) {\n // eslint-disable-next-line better-mutation/no-mutation\n suggestedResults = await getSuggestionsFromBackend(searchTerm);\n }\n\n // ------------------------------\n // merge lists\n const withDuplicates = [].concat(\n previousSearchResults.map((item, index) => ({\n key: `previous_search-${index}`,\n type: 'previous',\n text: item.key,\n id: generateSuggestionId(null, index)\n })),\n suggestedResults.searches.map((item, index) => ({\n key: `suggested_search-${index}`,\n type: 'suggested-item',\n categories: item.categories,\n item,\n text: item.text,\n id: generateSuggestionId(\n item.category ? item.category.id : null,\n item.text\n )\n }))\n );\n const uniqueMap = new Map();\n withDuplicates.forEach(item => {\n if (uniqueMap.has(item.id)) return;\n uniqueMap.set(item.id, item);\n });\n const uniqueResults = Array.from(uniqueMap.values());\n\n const shopResults = suggestedResults.shops.map((item, key) => ({\n key: `suggested_shop-${key}`,\n type: 'suggested-shop',\n item,\n memberId: item.memberId,\n name: item.name,\n urlName: item.urlName,\n inSPA: false, // Turned off until profile pages are SPAified\n id: key\n }));\n\n const suggestedCharitiesResults = suggestedResults.charities || [];\n const charitiesResults = suggestedCharitiesResults.map((item, key) => ({\n key: `suggested_charity-${key}`,\n type: 'suggested-charity',\n item,\n name: item.name,\n slug: item.slug,\n inSPA: false, // Turned off until profile pages are SPAified\n id: key\n }));\n\n const suggestedCampaignResults = suggestedResults.campaigns || [];\n const campaignResults = suggestedCampaignResults.map((item, key) => ({\n key: `suggested_campaign-${key}`,\n type: 'suggested-campaign',\n item,\n capaignId: item.campaignId,\n name: item.name,\n urlName: item.urlName,\n inSPA: false, // Turned off until profile pages are SPAified\n id: key\n }));\n\n const allSuggestions = [\n ...campaignResults,\n ...uniqueResults,\n ...shopResults,\n ...charitiesResults,\n {\n key: 'advanced-search',\n type: 'link-advanced-search'\n },\n {\n key: 'seller-search',\n type: 'link-seller-search'\n }\n ];\n return allSuggestions;\n};\n\n// --------------------------------------------\n// backend suggestions\n// --------------------------------------------\n\nconst normalizeSearches = (searches = []) => {\n return searches.reduce((acc, search) => {\n if (search.categories) {\n search.categories.map(category => {\n acc.push({\n text: search.text,\n category: category\n });\n });\n } else {\n acc.push({\n text: search.text,\n category: null\n });\n }\n return acc;\n }, []);\n};\n\nconst getSuggestionsFromBackend = async searchTerm => {\n try {\n const response = await searchSuggestionsClient.get('', {\n ...axiosConfigs.notAuthenticated,\n cancelTokenId: 'getSuggestionsFromBackend',\n params: {\n q: searchTerm\n }\n });\n\n const {\n campaigns = [],\n searches,\n shops = [],\n charities = []\n } = response.data;\n return {\n campaigns,\n searches: normalizeSearches(searches) || [],\n shops,\n charities\n };\n } catch (error) {\n if (error.message !== 'CANCELLED') {\n logger(error);\n }\n return { searches: [], shops: [] };\n }\n};\n\n// --------------------------------------------\n// previous searches\n// --------------------------------------------\n\n// function needed by state\nconst getPreviousSearches = (searchTerm, limit = 7) => {\n const previousResults =\n previousSearchService.fetch().orderByTimestamp() || [];\n let output =\n searchTerm.length === 0\n ? previousResults\n : previousResults.filter(item => item.key.includes(searchTerm));\n return output.splice(0, limit);\n};\n\nexport const addRecentSearch = searchTerm => {\n if (!searchTerm) {\n return;\n }\n const prettySearchTerm = searchTerm\n .toString()\n .replace(//g, ' ')\n .trim();\n if (prettySearchTerm.length > 2) {\n const recentCount =\n (previousSearchService.get(prettySearchTerm) || 0) + 1;\n previousSearchService.set(prettySearchTerm, recentCount);\n }\n};\n\nexport const removeRecentSearch = searchTerm => {\n if (!searchTerm || searchTerm.length < 3) {\n return;\n }\n previousSearchService.remove(searchTerm);\n};\n","import {\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError,\n API_ERRORS\n} from 'tradera-utils/api';\nimport { toLocalizedUrl } from 'tradera-utils/url';\n\nexport const getTraderaShopProductData = async (id, preferredLanguageCode) => {\n return axiosWithTokenRefresh()\n .get(toLocalizedUrl(`/tradera-shop/${id}.json`, preferredLanguageCode))\n .then(finalizeResponse())\n .then(response => response.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","import { mapItemDetails } from '../view-item/reducer';\n\nexport default initData => {\n if (!initData.traderaShopProduct) {\n return {};\n }\n\n const { product, item } = initData.traderaShopProduct;\n\n return {\n product,\n itemDetails: mapItemDetails(item.itemDetails),\n loading: false\n };\n};\n","import actionTypes from './action-types';\nimport { setAds } from 'tradera-state/ads/actions';\nimport { selectPreferredLanguageCode } from 'tradera-state/language/selectors';\nimport { getTraderaShopProductData } from './api';\nimport { logger } from 'packages/logger';\nimport getInitialState from './initial-state';\n\nexport const initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: getInitialState(initData)\n});\n\nexport const fetchTraderaShopProductData = urlSlug => async (\n dispatch,\n getState\n) => {\n const preferredLanguageCode = selectPreferredLanguageCode(getState);\n dispatch(setIsLoading(true));\n try {\n const { product, item } = await getTraderaShopProductData(\n urlSlug,\n preferredLanguageCode\n );\n dispatch(setItemDetails(item.itemDetails));\n dispatch(setProduct(product));\n dispatch(setAds(item.reduxContainer.ads));\n dispatch(setIsLoading(false));\n } catch (error) {\n const status = error.response && error.response.status;\n if (status === 404) {\n // Handle server side.\n window.location.reload();\n } else {\n logger(error);\n }\n }\n};\n\nconst setProduct = product => dispatch => {\n dispatch({ type: actionTypes.SET_PRODUCT, payload: product });\n};\n\nconst setItemDetails = itemDetails => dispatch => {\n dispatch({ type: actionTypes.SET_ITEM_DETAILS, payload: itemDetails });\n};\n\nconst setIsLoading = isLoading => dispatch => {\n dispatch({ type: actionTypes.SET_IS_LOADING, payload: isLoading });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"dialog\":\"dialog--pUDDs\"};","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport { LeaveFeedback } from './leave-feedback';\nimport { ROLES } from './constants';\nimport { closeModal } from 'tradera-state/ui/actions';\nimport { useTranslator } from 'tradera-lang/translate';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport styles from './single-feedback-dialog.module.scss';\n\nexport const SINGLE_FEEDBACK_DIALOG_ID = 'single-feedback-dialog';\n\nexport const SingleFeedbackDialog = ({\n onDismiss = () => {},\n onDone,\n isSeller\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const { currentModal, currentModalData } = useSelector(\n state => state.ui.modals\n );\n\n if (currentModal !== SINGLE_FEEDBACK_DIALOG_ID) {\n return null;\n }\n return (\n dispatch(closeModal())}>\n <>\n \n dispatch(closeModal())}>\n \n \n \n

    \n {t(\n isSeller\n ? 'leaveFeedback_rateBuyer_title'\n : 'leaveFeedback_rateSeller_title'\n )}\n

    \n {\n dispatch(closeModal());\n onDismiss();\n }}\n onDone={submittables => {\n dispatch(closeModal());\n onDone({\n submittables,\n purchaseOrderId: currentModalData.purchaseOrderId,\n transactionId: currentModalData.transactionId\n });\n }}\n />\n \n \n );\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport Flag from 'tradera-components/flag/flag';\nimport { isSwedenCountryCodeOrUndefined } from 'tradera-localization/countrycode';\nimport LocalizedPrice from 'tradera-localization/localized-price';\nimport { getDisplayText } from 'tradera-apps/tradera/components/vip-shared/shipping-options/shipping-options';\nimport { useLocalizedPriceFormatter } from 'tradera-localization/use-localized-price-formatter';\n\nconst ShippingDisplay = ({\n buyerCountryCode,\n shippingOptions,\n shippingPriceRange,\n isSellpyCheckout\n}) => {\n const { t } = useTranslator();\n const localizedPriceFormatter = useLocalizedPriceFormatter();\n\n const isFromAndToCountryDifferent = shippingOptions.some(\n ({ fromCountryCodeIso2, toCountryCodeIso2 }) =>\n fromCountryCodeIso2 !== toCountryCodeIso2\n );\n let displayOptions = shippingOptions;\n if (buyerCountryCode !== undefined && isFromAndToCountryDifferent) {\n displayOptions = displayOptions.filter(\n option => option.toCountryCodeIso2 === buyerCountryCode\n );\n }\n\n const shippingOptionsPart = (\n <>\n {!shippingPriceRange &&\n displayOptions.map((shippingOption, index) => {\n const description = getDisplayText(\n shippingOption,\n t,\n localizedPriceFormatter\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
    \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 { useEffect } from 'react';\n\nexport const useOnMount = fn => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useEffect(fn, []);\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { useState, useEffect, useRef } from 'react';\n\nconst useDidMountEffect = (func, deps) => {\n const didMount = useRef(false);\n\n useEffect(() => {\n if (didMount.current) func();\n else didMount.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\n/**\n * Loads an image source and keep track of isLoaded and error states.\n *\n * @param {string} src\n * @returns {[boolean, boolean]}\n */\nfunction useImageLoader(src) {\n const [isLoaded, setIsLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n useEffect(() => {\n if (!src) {\n return;\n }\n const image = new Image();\n image.onload = () => setIsLoaded(true);\n image.onerror = () => setError(true);\n image.src = src;\n return () => {\n image.onload = null;\n image.onerror = null;\n };\n }, [src]);\n\n return [isLoaded, error];\n}\n\nexport { useDidMountEffect, useImageLoader };\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","/**\n * @param {string} redirectURL\n */\nexport const getReturnUrl = redirectURL =>\n `?returnUrl=${encodeURIComponent(\n redirectURL\n ? redirectURL\n : window.location.pathname + window.location.hash\n )}`;\n","/* eslint-disable better-mutation/no-mutation */\n\nimport initData from 'init-data';\nimport uiReducer from 'tradera-state/ui/reducer';\nimport CONSTANTS from 'tradera-constants/state';\nimport TEXT_STRINGS from 'tradera-apps/my-tradera/app/constants/text-strings';\nimport { createSlice } from '@reduxjs/toolkit';\nimport uiActionTypes from 'tradera-state/ui/action-types';\n\nconst initialState = {\n isCombinedShippingEnabled: false,\n isSearching: false,\n page: {},\n error: false,\n initData: {\n environment: initData.environment || '',\n version: initData.environment || '',\n title: initData.title || '',\n description: initData.description || ''\n },\n splitTests: initData.splitTests || null,\n memberAlias: initData ? initData.memberAlias : '',\n memberFirstName: initData ? initData.memberFirstName : '',\n memberId: initData ? initData.memberId : '',\n memberLastName: initData ? initData.memberLastName : '',\n memberCountryCodeIso2: initData ? initData.memberCountryCodeIso2 : null,\n memberMessagingParticipation: false,\n mobileMenu: false,\n mobileActions: false,\n messagingModal: {\n open: CONSTANTS.MODAL.CLOSED,\n title: '',\n src: '',\n participating: false,\n recipientId: '',\n item: null\n },\n changeShippingModal: {\n open: false,\n purchaseOrderId: null\n },\n setDiscountModal: {\n open: false,\n purchaseOrderId: null\n }\n};\n\nconst slice = createSlice({\n name: 'my-tradera',\n initialState,\n reducers: {\n setCombinedShippingEnabled: (state, { payload }) => {\n state.isCombinedShippingEnabled = payload;\n },\n searching: (state, { payload }) => {\n state.isSearching = payload;\n },\n error: (state, { payload }) => {\n state.error =\n payload === true ? TEXT_STRINGS.ERRORS.GENERIC : payload;\n },\n openModal: (state, { payload }) => {\n state.openModal = payload;\n },\n setBreakPoint: (state, { payload }) => {\n state.breakpoint = payload;\n },\n mobileMenu: (state, { payload }) => {\n state.mobileMenu =\n payload && payload === false ? false : !state.mobileMenu;\n },\n mobileActions: (state, { payload }) => {\n state.mobileActions =\n payload && payload === false ? false : !state.mobileActions;\n },\n setMemberMessagingParticipation: (state, { payload }) => {\n state.memberMessagingParticipation = payload;\n },\n openChangeShipping: (state, { payload }) => {\n state.changeShippingModal.open = true;\n state.changeShippingModal.purchaseOrderId = payload.purchaseOrderId;\n state.changeShippingModal.receiverCountry =\n payload.receiverCountry || 'SE';\n },\n closeChangeShipping: state => {\n state.changeShippingModal.open = false;\n },\n openSetDiscount: (state, { payload }) => {\n state.setDiscountModal.open = true;\n state.setDiscountModal.purchaseOrderId = payload;\n },\n closeSetDiscount: state => {\n state.setDiscountModal.open = false;\n },\n setTranslatedRouteInformation: (state, { payload }) => {\n state.page = payload;\n }\n },\n extraReducers: {\n /*\n Reusing actions and reducers for messaging modal from global\n redux store to reduce duplicate code\n */\n [uiActionTypes.OPEN_MESSAGING_MODAL]: uiReducer,\n [uiActionTypes.CLOSE_MESSAGING_MODAL]: uiReducer\n }\n});\n\nexport const selectMyTraderaState = state => state.views.myTradera.myTradera;\n\nexport default slice.reducer;\n\nexport const {\n openModal,\n searching,\n error,\n mobileMenu,\n mobileActions,\n setBreakPoint,\n setMemberMessagingParticipation,\n openChangeShipping,\n closeChangeShipping,\n openSetDiscount,\n closeSetDiscount,\n setCombinedShippingEnabled,\n setTranslatedRouteInformation\n} = slice.actions;\n","import { PAGE_LIST_TYPES, PAGE_BULK_ACTIONS } from '../constants/list-types';\n\n/**\n * @param {string} listType\n * @param {object} item\n * @returns {object} 'Bulk Actions' available for the specific list\n */\n\nexport const listActions = (\n listType,\n memberId,\n selectedFilterBar,\n count = 0,\n t\n) => {\n const actions = {\n [PAGE_LIST_TYPES.SELLER_ACTIVE]: () => {\n switch (selectedFilterBar) {\n default:\n return {\n isCheckboxActive: item =>\n item && item.bidInformation.bidCount === 0,\n bulkCssClass: 'outline-dark',\n label: t('myt_action_cancelListingsLabel'),\n bulkAction: PAGE_BULK_ACTIONS.ACTIVE_CANCEL,\n modal: {\n icon: 'warning',\n heading: t(\n 'myt_action_cancelListingsModalHeading',\n { count: count, itemCount: count }\n ),\n message: t(\n 'myt_action_cancelListingsModalMessage',\n { count: count }\n ),\n confirmButtonText: t(\n 'myt_action_cancelListingsModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_cancelListingsModalCancelButtonText'\n ),\n dismissable: true\n },\n idType: 'itemId'\n };\n }\n },\n\n [PAGE_LIST_TYPES.SELLER_NOT_SOLD]: () => {\n switch (selectedFilterBar) {\n default:\n return {\n isCheckboxActive: item => {\n if (!item) {\n return false;\n }\n if (item.listing.restart.hasRestartedChild) {\n return false;\n }\n return !item.isArchived;\n },\n /*\n * @todo: confirm this\n */\n bulkCssClass: 'outline-dark',\n label: t('myt_action_restartListingsLabel'),\n bulkAction: PAGE_BULK_ACTIONS.UNSOLD_RESTART,\n modal: {\n heading: t(\n 'myt_action_restartListingsModalHeading',\n { count: count, itemCount: count }\n ),\n dismissable: true,\n wide: true,\n confirmButtonText: t(\n 'myt_action_restartListingsModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_restartListingsModalCancelButtonText'\n ),\n headingCSS: 'messaging-modal-title-with-line',\n messageAlignment: 'left',\n cssClass: false\n },\n idType: 'itemId'\n };\n }\n },\n\n [PAGE_LIST_TYPES.BUYER_ACTIVE_ITEMS]: () => {\n switch (selectedFilterBar) {\n case 'BuyerHidden':\n return {\n isCheckboxActive: item => {\n return (\n (item &&\n item.caller.leadingBidRemoved === true) ||\n (item.bidInformation.leadingBidder &&\n item.bidInformation.leadingBidder.id !==\n memberId)\n );\n },\n bulkCssClass: 'outline-dark',\n label: t(\n 'myt_action_showBuyerHiddenActiveListingsLabel'\n ),\n bulkAction: PAGE_BULK_ACTIONS.BUYER_SHOW_ACTIVE,\n modal: {\n heading: t(\n 'myt_action_showBuyerHiddenActiveListingsModalHeading',\n { count: count, itemCount: count }\n ),\n message: t(\n 'myt_action_showBuyerHiddenActiveListingsModalMessage',\n { count: count }\n ),\n dismissable: true,\n wide: false,\n confirmButtonText: t(\n 'myt_action_showBuyerHiddenActiveListingsModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_showBuyerHiddenActiveListingsModalCancelButtonText'\n ),\n icon: 'warning',\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n case 'BuyerNotHidden':\n return {\n isCheckboxActive: item => {\n return (\n (item &&\n item.caller?.leadingBidRemoved === true) ||\n (item.bidInformation.leadingBidder &&\n (item.bidInformation.leadingBidder.id !==\n memberId ||\n item.reservePriceReached === false))\n );\n },\n bulkCssClass: 'outline-dark',\n label: t('myt_action_hideListingsLabel'),\n bulkAction: PAGE_BULK_ACTIONS.BUYER_HIDE_ACTIVE,\n modal: {\n heading: t('myt_action_hideListingsModalHeading', {\n count: count,\n itemCount: count\n }),\n dismissable: true,\n wide: false,\n icon: 'warning',\n confirmButtonText: t(\n 'myt_action_hideListingsModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_hideListingsModalCancelButtonText'\n ),\n message: t('myt_action_hideListingsModalMessage', {\n count: count\n }),\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n default:\n return undefined;\n }\n },\n\n [PAGE_LIST_TYPES.BUYER_PURCHASES]: () => {\n switch (selectedFilterBar) {\n case 'AllPurchases':\n case 'BuyerNotPaid':\n return {\n isCheckboxActive: item =>\n item &&\n item.transaction &&\n item.transaction.buyerState &&\n item.transaction.buyerState.paid !== true,\n bulkCssClass: 'outline-dark',\n label: t('myt_action_markListingsAsPaidLabel'),\n bulkAction: PAGE_BULK_ACTIONS.BUYER_MARK_PAID,\n modal: {\n heading: t(\n 'myt_action_markListingsAsPaidModalHeading',\n { count: count, itemCount: count }\n ),\n message: '',\n dismissable: true,\n wide: false,\n confirmButtonText: t(\n 'myt_action_markListingsAsPaidModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_markListingsAsPaidModalCancelButtonText'\n ),\n icon: 'warning',\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n case 'BuyerHidden':\n return {\n isCheckboxActive: () => {\n return true;\n // return item && (item.caller.leadingBidRemoved === true) || (item.bidInformation.leadingBidder && item.bidInformation.leadingBidder.id !== memberId) ? true : false;\n },\n bulkCssClass: 'outline-dark',\n label: t('myt_action_showBuyerHiddenPurchasesLabel'),\n bulkAction: PAGE_BULK_ACTIONS.PURCHASES_SHOW,\n modal: {\n heading: t(\n 'myt_action_showBuyerHiddenPurchasesModalHeading',\n { count: count, itemCount: count }\n ),\n message: t(\n 'myt_action_showBuyerHiddenPurchasesModalMessage',\n { count: count }\n ),\n dismissable: true,\n wide: false,\n confirmButtonText: t(\n 'myt_action_showBuyerHiddenPurchasesModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_showBuyerHiddenPurchasesModalCancelButtonText'\n ),\n icon: 'warning',\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n default:\n return undefined;\n }\n },\n\n [PAGE_LIST_TYPES.BUYER_ITEMS_LOST]: () => {\n switch (selectedFilterBar) {\n case 'ItemsLostNotHidden':\n return {\n isCheckboxActive: () => true,\n bulkCssClass: 'outline-dark',\n label: t('myt_action_hideListingsLabel'),\n bulkAction: PAGE_BULK_ACTIONS.BUYER_HIDE_ACTIVE,\n modal: {\n heading: t('myt_action_hideListingsModalHeading', {\n count: count,\n itemCount: count\n }),\n dismissable: true,\n wide: false,\n icon: 'warning',\n confirmButtonText: 'Ja',\n cancelButtonText: 'Nej',\n message: t('myt_action_hideListingsModalMessage', {\n count: count\n }),\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n case 'ItemsLostHidden':\n return {\n isCheckboxActive: () => true,\n bulkCssClass: 'outline-dark',\n label: t(\n 'myt_action_showBuyerHiddenActiveListingsLabel'\n ),\n bulkAction: PAGE_BULK_ACTIONS.BUYER_SHOW_ACTIVE,\n modal: {\n heading: t(\n 'myt_action_showBuyerHiddenActiveListingsModalHeading',\n { count: count, itemCount: count }\n ),\n message: t(\n 'myt_action_showBuyerHiddenActiveListingsModalMessage',\n { count: count }\n ),\n dismissable: true,\n wide: false,\n confirmButtonText: t(\n 'myt_action_showBuyerHiddenActiveListingsModalConfirmButtonText'\n ),\n cancelButtonText: t(\n 'myt_action_showBuyerHiddenActiveListingsModalCancelButtonText'\n ),\n icon: 'warning',\n headingCSS: 'messaging-modal-title',\n messageAlignment: 'center',\n cssClass: false\n }\n };\n default:\n return undefined;\n }\n },\n\n default: () => ({})\n };\n\n return actions[listType] ? actions[listType]() : actions['default']();\n};\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 shipping: {\n survey: 'tradera/fraktbokning---hur-fungerar-det-fr-dig'\n },\n selectShipping: {\n survey: 'tradera/hur-fungerar-det-att-valja-och-boka-frakt'\n },\n invoice: {\n survey: 'tradera/fakturabetalning-hur-fungerar-den-for-dig'\n }\n};\n","import { CHANNEL_TAG_GROUPS } from 'tradera-state/push-notifications/constants';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport { logger } from 'packages/logger';\n\n/**\n * get the urban airship sdk.\n * @returns obj if null then no sdk object available\n */\nexport const getUrbanSdk = () => {\n return new Promise(resolve => {\n // script from urban airship not loaded\n if (!window.UA) {\n return resolve(null);\n }\n\n // is already loaded?\n if (window.UACache) {\n return resolve(window.UACache);\n }\n\n UA.then(async sdk => {\n if (sdk !== null && !sdk.isSupported) {\n // eslint-disable-next-line better-mutation/no-mutation\n sdk = null;\n }\n window.UACache = sdk;\n return resolve(window.UACache);\n }).catch(() => {\n // browser is most likely not supported, return null\n window.UACache = null;\n return resolve(null);\n });\n });\n};\n\nexport const getTagGroupsFromUrbanAirship = async () => {\n try {\n const sdk = await getUrbanSdk();\n if (sdk.channel === null) {\n return null;\n }\n\n // check what tag groups are active\n let tagGroups = {};\n for (const [group, groupTags] of Object.entries(CHANNEL_TAG_GROUPS)) {\n for (const tag of groupTags) {\n tagGroups[group] = sdk.channel.tags.has(tag) === true;\n if (tagGroups[group] === true) {\n break;\n }\n }\n }\n return tagGroups;\n } catch (error) {\n logger(error);\n }\n};\n\nexport const isPushEnabled = getState => {\n const {\n member,\n environment: { featureSwitches }\n } = getState();\n\n // something blocking notifications modal from being shown?\n if (\n !GdprSettings.isFunctionalEnabled() ||\n !member.isLoggedIn ||\n featureSwitches['web-push-notifications'] !== true\n ) {\n return false;\n }\n return true;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\n/**\n * HOW IT WORKS\n *\n * urban airship has something called channels. A tradera member subscribes to a channel to get push notifications.\n * each channel has tags that indicate what kind of push notifications the member wants to receive. In the case of the wish list\n * reminder that particular setting subscribes the user to 2 different notifications: reminder 15 minutes before auction ends\n * and reminder 3 minutes before the auction ends. In order to be able to have 1 push notification setting that subscribes\n * to multiple push notifications at tradera we call these tag groups.\n *\n *\n * Urban airship docs:\n * https://docs.airship.com/reference/libraries/web-notify-sdk/latest/index.html\n *\n * web_version_2:\n * Version 1 of push notifications was just targetted at wish list reminders, 3 min and 15 min. When this release was done\n * the code did subscribe the user to all notifications even though the user only wanted to signup for wish list reminders.\n * Since the app push notifier only sent wishlist reminders for web push it was not a problem that the user was subscribed to all\n * kinds of notifications. In the next release when tradera wanted to offer all sorts of push notifications but wanted the users\n * to on their own sign up then we had to update all the current subscriptions. Since this is not possible via the urban airship\n * to update channels via the REST API and then see the updated reflected in the Web SDK we had to introduce the tag web_version_2\n * that indicates if the user has updated their push notification settings.\n *\n * opt-in dialog sample usage:\n * import uiActions from 'tradera-state/ui/actions';\n * import { MODAL_TYPES } from 'tradera-constants/push-notifications';\n *\n * uiActions.openNotificationOptinModal(\n * MODAL_TYPES.wishlistReminders\n * )\n *\n */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport { logger } from 'packages/logger';\nimport {\n CHANNEL_TAG_GROUPS,\n MODAL_TYPES\n} from 'tradera-state/push-notifications/constants';\nimport { localStore } from 'utils/storage';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\nimport {\n getUrbanSdk,\n getTagGroupsFromUrbanAirship,\n isPushEnabled\n} from './helpers';\n\nconst pushNotificationsSlice = createSlice({\n name: 'pushNotifications',\n initialState: {\n enabled: false,\n initDone: false,\n pushSupported: false,\n optedIn: false,\n tagGroups: {\n wishlistReminders: false,\n buyingListingOutbid: false,\n buyingListingWon: false,\n sellingListingFirstBid: false,\n sellingListingAllBids: false,\n sellingListingSold: false,\n sellingPaymentReceived: false\n },\n shownModals: {\n [MODAL_TYPES.wishlistReminders]: false,\n [MODAL_TYPES.default]: false,\n [MODAL_TYPES.selling]: false\n }\n },\n reducers: {\n setInitDone(state) {\n state.initDone = true;\n },\n setPushSupported(state, actions) {\n state.pushSupported = actions.payload;\n if (!state.pushSupported) {\n state.optedIn = false;\n }\n },\n setOptedInValue(state, action) {\n state.optedIn = action.payload;\n },\n setTagGroupsValue(state, action) {\n const tagGroups = action.payload;\n state.tagGroups = { ...state.tagGroups, ...tagGroups };\n },\n setShownModalTrue(state, action) {\n const modalType = action.payload;\n state.shownModals[modalType] = true;\n localStore.setItem(\n STORAGE_KEYS.WEB_PUSH_SHOWN_MODALS,\n state.shownModals\n );\n },\n setAllShownModals(state, action) {\n const shownModals = action.payload;\n state.shownModals = shownModals;\n localStore.setItem(\n STORAGE_KEYS.WEB_PUSH_SHOWN_MODALS,\n state.shownModals\n );\n },\n setEnabled(state, action) {\n const enabled = action.payload;\n state.enabled = enabled;\n }\n }\n});\n\nconst actions = pushNotificationsSlice.actions;\nexport const { setShownModalTrue } = actions;\nexport default pushNotificationsSlice.reducer;\n\n/**\n * this should be called as soon as the store is mounted\n */\nexport const init = () => async (dispatch, getState) => {\n let sdk = null;\n try {\n sdk = await getUrbanSdk();\n } catch (error) {\n // not able to init sdk\n }\n dispatch(\n actions.setPushSupported(\n sdk !== null && sdk.canRegister && sdk.isSupported\n )\n );\n\n if (sdk !== null && sdk.channel !== null) {\n dispatch(actions.setOptedInValue(sdk.channel.optedIn));\n\n // has this user been upgraded to version 2?\n if (!sdk.channel.tags.has('web_version_2')) {\n await sdk.channel.tags.set([\n 'wishlist_reminder_3_min_optin',\n 'wishlist_reminder_15_min_optin',\n 'web_version_2'\n ]);\n }\n const tagGroups = await getTagGroupsFromUrbanAirship();\n dispatch(actions.setTagGroupsValue(tagGroups));\n }\n dispatch(actions.setEnabled(sdk !== null && isPushEnabled(getState)));\n\n // load modal shown settings from local store\n const shownModals = localStore.getItem(STORAGE_KEYS.WEB_PUSH_SHOWN_MODALS);\n if (shownModals !== null) {\n dispatch(actions.setAllShownModals(shownModals));\n }\n dispatch(actions.setInitDone());\n};\n\nexport const optIn = () => async (dispatch, getState) => {\n try {\n dispatch(actions.setOptedInValue(true));\n const memberId = getState().member.memberId;\n const sdk = await getUrbanSdk();\n const channel = await sdk.register();\n await channel.namedUser.set(memberId.toString());\n return channel;\n } catch (error) {\n dispatch(actions.setOptedInValue(false));\n return null;\n }\n};\n\nexport const optOut = () => async dispatch => {\n try {\n dispatch(actions.setOptedInValue(false));\n const sdk = await getUrbanSdk();\n if (sdk !== null && sdk.channel !== null) {\n await sdk.channel.optOut();\n }\n } catch (error) {\n dispatch(actions.setOptedInValue(true));\n return null;\n }\n};\n\nconst saveTagsToUrbanAirshipAndUpdateState = async (\n channel,\n tagGroups,\n tagGroupValue,\n dispatch,\n getState\n) => {\n // check what tag groups to set and not set\n const tagGroupsToSet = { ...getState().pushNotifications.tagGroups };\n for (let t of tagGroups) {\n tagGroupsToSet[t] = tagGroupValue;\n }\n\n // get the actual tags that we want to get push notifications for and\n // register these tags in urban airship\n let channelTags = ['web_version_2'];\n for (const [group, enabled] of Object.entries(tagGroupsToSet)) {\n if (enabled) {\n channelTags = [...channelTags, ...CHANNEL_TAG_GROUPS[group]];\n }\n }\n\n dispatch(actions.setTagGroupsValue(tagGroupsToSet));\n await channel.tags.set(channelTags);\n};\n\nexport const addTagGroups = tagGroupsToAdd => async (dispatch, getState) => {\n try {\n // no sdk? then do nothing\n const sdk = await getUrbanSdk();\n if (sdk === null) {\n return;\n }\n\n let channel = sdk.channel;\n if (channel === null) {\n channel = await dispatch(optIn());\n if (channel === null) {\n dispatch(actions.setPushSupported(false));\n // seems user clicked on block notifications in the browser, abort\n return;\n }\n }\n\n saveTagsToUrbanAirshipAndUpdateState(\n channel,\n tagGroupsToAdd,\n true,\n dispatch,\n getState\n );\n } catch (error) {\n logger(error);\n }\n};\n\nexport const removeTagGroups = tagGroupsToRemove => async (\n dispatch,\n getState\n) => {\n try {\n // no sdk and no subscription? then do nothing\n const sdk = await getUrbanSdk();\n if (sdk === null || sdk.channel === null) {\n return;\n }\n saveTagsToUrbanAirshipAndUpdateState(\n sdk.channel,\n tagGroupsToRemove,\n false,\n dispatch,\n getState\n );\n } catch (error) {\n logger(error);\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction TimeLeft(props) {\n const {\n className = '',\n isTimeLeftBelowWarningLimit,\n timeLeftText,\n icon,\n ...otherProps\n } = props;\n\n if (!timeLeftText) {\n return null;\n }\n\n return (\n \n {icon}\n {timeLeftText}\n \n );\n}\n\nTimeLeft.propTypes = {\n timeLeftText: PropTypes.string.isRequired,\n isTimeLeftBelowWarningLimit: PropTypes.bool.isRequired\n};\n\nexport default TimeLeft;\n","import React, { useState } from 'react';\nimport UpIcon from '@tradera/blueprint/theme/icons2/arrow-up.svg?jsx';\nimport DownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\n\nconst MoreInfoFoldOut = ({ triggerText, infoText }) => {\n const [isOpen, setIsOpen] = useState(false);\n return (\n
    \n setIsOpen(!isOpen)}>\n {triggerText}\n {isOpen ? (\n \n ) : (\n \n )}\n \n {isOpen &&
    {infoText}
    }\n
    \n );\n};\n\nexport default MoreInfoFoldOut;\n","/* eslint-disable better-mutation/no-mutation */\n\nimport riot from 'riot';\nimport ajax from 'app/data/ajax';\nimport { localStore } from 'utils/storage';\nimport { toLocalizedRiotUrl } from 'tradera-apps/syi/script/app_react/utils/language';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nconst service = riot.observable();\nlet storageKey;\nlet rootUrl;\n\nconst get = function(url, data, onSuccess, onError) {\n ajax({\n url: url,\n method: 'GET',\n data: data,\n traditional: true,\n cache: false,\n statusCode: {\n 200: function(response) {\n onSuccess(response);\n }.bind(this),\n 500: function(response) {\n if (onError) {\n onError(response);\n }\n }\n }\n });\n};\n\nservice.setRootUrl = function(url) {\n rootUrl = toLocalizedRiotUrl(url);\n};\n\nservice.setStorageKey = function(key) {\n storageKey = key;\n};\n\nservice.getFeedbackItems = function(transactionIds, onSuccess, onError) {\n let data = {\n ids: transactionIds\n };\n\n const url = rootUrl + 'items';\n\n get(url, data, onSuccess, onError);\n};\n\nservice.getAllFeedbackItems = function(skip, take, onSuccess, onError) {\n let data = {\n skip: skip || 0,\n take: take || 10\n };\n let url = rootUrl + 'pageditems';\n\n get(url, data, onSuccess, onError);\n};\n\nconst getFeedbackStorageAsArray = function() {\n let currentStorageArray = localStore.getItem(storageKey);\n\n if (!Array.isArray(currentStorageArray)) {\n currentStorageArray = [];\n }\n\n return currentStorageArray;\n};\n\nconst _mergeAndSortStorage = function(newStorageArray, newItems, maxStorage) {\n newStorageArray = newStorageArray.filter(\n item => !newItems.find(newItem => newItem.text === item.text)\n );\n\n newStorageArray = newStorageArray.concat(newItems);\n newStorageArray.sort(function(curr, next) {\n // Sorting on multiple values are tricky - but so am I.\n return (\n next.counter +\n '.' +\n next.searchTime -\n (curr.counter + '.' + curr.searchTime)\n );\n });\n\n return newStorageArray.slice(0, maxStorage);\n};\n\nconst _createNewFeedbackItemsToStore = function(data, newStorageArray) {\n let newItemsCounter = 0;\n let newItems = [];\n let existingItem;\n\n for (let i = 0; i < data.length; i++) {\n if (data[i].comment && data[i].comment.length > 0) {\n // Om data finns.\n existingItem = newStorageArray.find(\n newStorageItem => newStorageItem.text === data[i].comment\n );\n if (existingItem) {\n newItems[newItemsCounter] = {\n text: existingItem.text,\n counter: existingItem.counter + 1\n };\n } else {\n newItems[newItemsCounter] = {\n text: data[i].comment,\n counter: 1\n };\n }\n newItems[newItemsCounter].searchTime = Date.now();\n newItemsCounter++;\n }\n }\n\n return newItems;\n};\n\nconst addFeedbackToStorage = function(data) {\n let newStorageArray = getFeedbackStorageAsArray() || [];\n let maxStorage = 10;\n let newItems = _createNewFeedbackItemsToStore(data, newStorageArray);\n\n if (newItems.length > 0) {\n newStorageArray = _mergeAndSortStorage(\n newStorageArray,\n newItems,\n maxStorage\n );\n localStore.setItem(storageKey, newStorageArray);\n }\n};\n\nservice.getFeedbackHistory = function() {\n return getFeedbackStorageAsArray();\n};\n\nservice.getStorageKey = function() {\n return storageKey;\n};\n\nservice.submitData = function(data, cb, error) {\n ajax({\n url: rootUrl + 'save',\n method: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify(data),\n traditional: true,\n statusCode: {\n 200: function(response) {\n addFeedbackToStorage(data);\n if (response.failures?.length > 0) {\n error(response);\n } else {\n cb(response);\n }\n },\n 400: function(response) {\n error(response);\n }\n }\n });\n};\n\nservice.saveAutomaticFeedback = function(data, cb) {\n ajax({\n url: toLocalizedRiotUrl('/my/profile/save-automatic-feedback'),\n method: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify(data),\n traditional: true,\n statusCode: {\n 200: function(response) {\n let comments = [];\n if (data.message && data.message.length > 0) {\n comments.push({ comment: data.message });\n addFeedbackToStorage(comments);\n }\n cb(response);\n }\n }\n });\n};\n\nexport default service;\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","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport { assertNoUndefinedProperties } from 'tradera-utils/assert';\nimport { getItemState } from '../view-item/item-state-helper';\nimport { getAmountDetails } from 'tradera-apps/tradera/components/vip/bidding/bid-details'; // TODO put getAmountDetails somewhere else\nimport { VIEW_STATES } from './constants';\n\nexport const initialState = {\n amount: 0,\n breadCrumbs: [],\n categoryId: 0,\n categoryNames: [],\n categories: [],\n categoryLevel: 0,\n description: null,\n hasEnded: false,\n images: [],\n itemId: 0,\n itemUrl: null,\n paymentOptions: [],\n paymentTerms: null,\n reasons: [],\n resultMessage: null,\n shippingOptions: [],\n shippingTerms: [],\n sellerMemberId: 0,\n title: null,\n viewState: VIEW_STATES.LOADING,\n itemDetails: null\n};\n\nconst slice = createSlice({\n name: 'reportItem',\n initialState,\n reducers: {\n resetInitialState: () => {\n return initialState;\n },\n setReportItem: (state, { payload: { item, itemUrl, reasons } }) => {\n const itemDetails = item.itemDetails;\n const bidInfo = item.bidInfo;\n const itemState = getItemState(\n itemDetails.hasEnded,\n itemDetails.itemType,\n bidInfo.bidCount,\n bidInfo.reservePriceReached,\n itemDetails.openingBid,\n bidInfo.nextValidBidAmount,\n bidInfo.transactionType,\n bidInfo.leadingBidderMemberId\n );\n const amountDetails = getAmountDetails(\n () => '', // We are currently not interested in displaying what the amount means in the current UX.\n itemState,\n itemDetails.fixedPrice,\n bidInfo.leadingBidAmount,\n itemDetails.openingBid,\n bidInfo.bidCount > 0\n );\n state.amount = amountDetails.amount;\n state.allowedBuyerRegion = itemDetails.allowedBuyerRegion;\n state.breadCrumbs = item.breadCrumbs;\n state.categoryId = itemDetails.categoryId;\n state.categoryNames = item.breadCrumbs.map(\n breadCrumb => breadCrumb.text\n );\n state.description = itemDetails.description;\n state.endDate = itemDetails.endDate;\n state.hasEnded = itemDetails.hasEnded;\n state.images = itemDetails.images;\n state.itemId = itemDetails.itemId;\n state.itemUrl = itemUrl;\n state.paymentOptions = itemDetails.paymentOptions;\n state.reasons = reasons;\n state.shippingOptions = itemDetails.shippingOptions;\n state.shippingTerms = itemDetails.shippingTerms;\n state.sellerMemberId = itemDetails.sellerMemberId;\n state.title = itemDetails.title;\n state.viewState = itemDetails.hasEnded\n ? VIEW_STATES.ITEM_ENDED\n : VIEW_STATES.FORM;\n state.itemDetails = itemDetails;\n assertNoUndefinedProperties(state);\n },\n setViewState: (state, { payload }) => {\n state.viewState = payload;\n },\n setCategories: (state, { payload: categories, categoryLevel }) => {\n state.categories = categories;\n state.categoryLevel = categoryLevel;\n }\n }\n});\n\nexport const {\n resetInitialState,\n setReportItem,\n setViewState,\n setCategories\n} = slice.actions;\nexport const reducer = slice.reducer;\n","import qs from 'qs';\n\nexport const getInitialFilters = filters => {\n let newFilters = { ...filters };\n let defaultFilters = { ...filters };\n if (window.location.search) {\n const defaultSearchParams = qs.parse(\n window.location.search.replace('?', '')\n );\n newFilters.modifiers = {\n ...newFilters.modifiers,\n ...defaultSearchParams.filters\n };\n }\n return {\n newFilters,\n defaultFilters\n };\n};\n","import { openModal } from 'tradera-state/ui/actions';\nimport { types } from './item-actions-helper';\nimport purchaseOrderActions from '../state/actions/purchase-order';\nimport { SINGLE_FEEDBACK_DIALOG_ID } from '../components/leave-feedback/single-feedback-dialog';\nimport featureToggles from '../utils/feature-toggles';\nimport {\n openChangeShipping,\n openSetDiscount\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\n\nconst isTakeaway = purchaseOrder => {\n return (\n (purchaseOrder.shipping.selectedShipping &&\n purchaseOrder.shipping.selectedShipping.isTakeaway) ||\n (purchaseOrder.shipping.shippingDiscount &&\n purchaseOrder.shipping.shippingDiscount.isTakeaway)\n );\n};\n\nconst getId = purchaseOrder => purchaseOrder.purchaseOrderId;\n\nexport const soldActions = (\n purchaseOrder,\n listViewType,\n memberMessagingParticipation\n) => {\n const actions = [\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Ange samfraktpris',\n getTranslatedLabel: t =>\n purchaseOrder.shipping.shippingDiscount\n ? t('myt_itemCard_actions_update_combinedshipping_change')\n : t('myt_itemCard_actions_update_combinedshipping'),\n dispatch: dispatch => {\n dispatch(\n openChangeShipping({\n purchaseOrderId: purchaseOrder?.purchaseOrderId,\n receiverCountry:\n purchaseOrder?.buyerMember.address.countryCodeIso2\n })\n );\n },\n gaLabel: 'ChangeShippingPriceSold',\n isVisible: () =>\n purchaseOrder.combinedShippingInformation &&\n !purchaseOrder.state.isPaid,\n isPrimaryAction: () =>\n !purchaseOrder.shipping.shippingDiscount &&\n purchaseOrder.transactionIds.length > 1\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Orderinformation',\n getTranslatedLabel: t => t('myt_itemCard_actions_orderInformation'),\n url: `/my/sold/buyer-info?purchaseOrderId=${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'BuyerInfo',\n isVisible: () => !!purchaseOrder.purchaseOrderId,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Markera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_markAsPaid'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderPaidBySeller(\n purchaseOrder.purchaseOrderId,\n listViewType,\n memberMessagingParticipation,\n true\n )\n ),\n gaLabel: 'MarkAsPaid',\n isVisible: () => {\n if (purchaseOrder.state.isPaidWithIntegratedPayment) {\n return false;\n }\n if (\n purchaseOrder.combinedShippingInformation &&\n purchaseOrder.combinedShippingInformation\n .hasBuyerRequestedCombinedShippingPrice &&\n !purchaseOrder.shipping.shippingDiscount\n ) {\n return false;\n }\n return !purchaseOrder.state.isPaid;\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Boka frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_bookShipping'),\n url: `/my/shipping?purchaseOrderId=${purchaseOrder.purchaseOrderId}&originUrl=%2fmy%2fsold`,\n gaLabel: 'BookShipping',\n isVisible: () => {\n if (\n purchaseOrder.state.isShippingBooked ||\n purchaseOrder.state.isShipped ||\n purchaseOrder.state.hasUnpaidShipping ||\n purchaseOrder.state.isArchived ||\n (purchaseOrder.combinedShippingInformation &&\n purchaseOrder.combinedShippingInformation\n .hasBuyerRequestedCombinedShippingPrice &&\n !purchaseOrder.shipping.shippingDiscount)\n ) {\n return false;\n }\n return true;\n },\n isPrimaryAction: () => {\n return (\n !purchaseOrder.state.hasUnpaidShipping &&\n !isTakeaway(purchaseOrder) &&\n !purchaseOrder.state.isArchived\n );\n }\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Betala frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_payShipping'),\n url:\n purchaseOrder.shipping?.unpaidShipping?.url ||\n `/my/shipping/checkout`,\n gaLabel: 'PayShipping',\n isVisible: () => purchaseOrder.state.hasUnpaidShipping,\n isPrimaryAction: () => purchaseOrder.state.hasUnpaidShipping\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Avbryt fraktbokning',\n getTranslatedLabel: t => t('myt_itemCard_actions_deleteShipping'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.deleteShipment(\n purchaseOrder.shipping.unpaidShipping.id,\n purchaseOrder.purchaseOrderId,\n listViewType\n )\n );\n },\n gaLabel: 'DeleteShipping',\n isVisible: () => purchaseOrder.state.hasUnpaidShipping,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Markera som bokad',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_markAsShippingBooked'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.markAsShippingBooked(\n purchaseOrder.purchaseOrderId,\n listViewType\n )\n );\n },\n gaLabel: 'MarkAsShippingBooked',\n isVisible: () =>\n !purchaseOrder.shipping.shipping?.url &&\n !purchaseOrder.state.isShippingBooked &&\n !purchaseOrder.state.isShipped,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Avmarkera som bokad',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_unmarkAsShippingBooked'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.updateShippingBooked(\n purchaseOrder.purchaseOrderId,\n listViewType,\n memberMessagingParticipation\n )\n );\n },\n gaLabel: 'UnmarkAsShippingBooked',\n isVisible: () => {\n return (\n !purchaseOrder.shipping.shipping?.url &&\n purchaseOrder.state.isShippingBooked &&\n !purchaseOrder.state.isShipped\n );\n },\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `/my/sold/buyer-info?purchaseOrderId=${purchaseOrder.purchaseOrderId}#shipping`,\n gaLabel: 'TrackShipment',\n isVisible: () => !!purchaseOrder.shipping.shipping?.url,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.EXTERNAL_LINK,\n label: 'Kvitto för frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_shippingReceipt'),\n url: `/my/shipping/receipt/${purchaseOrder.shipping.shipping?.shipmentCheckoutId}`,\n gaLabel: 'ShippingReceipt',\n isVisible: () =>\n purchaseOrder.shipping.shipping?.hasShipmentReceipt,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.EXTERNAL_LINK,\n label: 'Ladda ner fraktsedel',\n getTranslatedLabel: t => t('myt_itemCard_actions_shippingLabel'),\n url: `/my/shipping/label/${purchaseOrder.shipping.shipping?.shipmentId}`,\n gaLabel: 'ShippingLabel',\n isVisible: () => purchaseOrder.shipping.shipping?.hasShipmentLabel,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: isTakeaway(purchaseOrder)\n ? 'Avmarkera som hämtad'\n : 'Avmarkera som skickad',\n getTranslatedLabel: t =>\n isTakeaway(purchaseOrder)\n ? t('myt_itemCard_actions_unmarkAsCollected')\n : t('myt_itemCard_actions_unmarkAsSent'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.updatePurchaseOrderShipped(\n purchaseOrder.purchaseOrderId,\n listViewType,\n purchaseOrder.transactionIds,\n false\n )\n );\n },\n gaLabel: 'UnmarkAsShipped',\n isVisible: () => purchaseOrder.state.isShipped,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: isTakeaway(purchaseOrder)\n ? 'Markera som hämtad'\n : 'Markera som skickad',\n getTranslatedLabel: t =>\n isTakeaway(purchaseOrder)\n ? t('myt_itemCard_actions_markAsCollected')\n : t('myt_itemCard_actions_markAsSent'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.updatePurchaseOrderShipped(\n purchaseOrder.purchaseOrderId,\n listViewType,\n purchaseOrder.transactionIds,\n true\n )\n );\n },\n gaLabel: 'MarkAsShipped',\n isVisible: () => {\n return !purchaseOrder.state.isShipped;\n },\n isPrimaryAction: () => !purchaseOrder.state.hasUnpaidShipping\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Lämna omdöme',\n getTranslatedLabel: t => t('myt_itemCard_actions_leaveFeedback'),\n dispatch: dispatch => {\n dispatch(\n openModal({\n modalId: SINGLE_FEEDBACK_DIALOG_ID,\n data: {\n purchaseOrderId: purchaseOrder.purchaseOrderId,\n transactionIds: purchaseOrder.itemsToGiveFeedBackTo\n }\n })\n );\n },\n gaLabel: 'LeaveFeedbackOnBuyer',\n isVisible: () => !!purchaseOrder.itemsToGiveFeedBackTo.length,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Återbetala',\n getTranslatedLabel: t => t('myt_itemCard_actions_refund'),\n dispatch: dispatch =>\n dispatch(openSetDiscount(purchaseOrder.purchaseOrderId)),\n gaLabel: 'Refund',\n isVisible: () => purchaseOrder.state.isRefundAllowed,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Köparens omdömen',\n getTranslatedLabel: t => t('myt_itemCard_actions_buyerFeedback'),\n url: `/profile/feedback/${purchaseOrder.buyerMember.memberId}`,\n gaLabel: 'BuyerProfile',\n isVisible: () => true,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Avmarkera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_unmarkAsPaid'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderPaidBySeller(\n purchaseOrder.purchaseOrderId,\n listViewType,\n memberMessagingParticipation,\n false\n )\n ),\n gaLabel: 'UnmarkAsPaid',\n isVisible: () => {\n if (purchaseOrder.state.isPaidWithIntegratedPayment) {\n return false;\n }\n return !!purchaseOrder.state.isPaid;\n },\n isPrimaryAction: () => true\n }),\n () => ({\n // \"UPI\" = \"Unpaid Item\"\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Anmäl utebliven betalning',\n getTranslatedLabel: t => t('myt_itemCard_actions_reportUnpaidItem'),\n url: `/resolution/UPI2/${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'ReportUnpaidItem',\n isVisible: () =>\n featureToggles.isUpiPurchaseOrderEnabled &&\n !purchaseOrder.state.isPaid &&\n !purchaseOrder.state.isUpiSubmitted &&\n !featureToggles.isDiscontinuedSaleEnabled,\n isPrimaryAction: () => true\n }),\n () => ({\n // \"DCS\" = \"Discontinued Sale\"\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Utebliven försäljning',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_reportDiscontinuedSale'),\n url: `/resolution/DCS/${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'ReportDiscontinuedSale',\n isVisible: () =>\n featureToggles.isDiscontinuedSaleEnabled &&\n !purchaseOrder.state.isPaid &&\n !purchaseOrder.state.isMcpSubmitted &&\n !purchaseOrder.state.isUpiSubmitted,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Lämna rabatt',\n getTranslatedLabel: t => t('myt_itemCard_actions_giveDiscount'),\n dispatch: dispatch =>\n dispatch(openSetDiscount(purchaseOrder.purchaseOrderId)),\n gaLabel: 'Discount',\n isVisible: () => purchaseOrder.state.isDiscountAllowed,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderHiddenForSeller(\n purchaseOrder.purchaseOrderId,\n true,\n listViewType\n )\n ),\n gaLabel: 'HideSold',\n isVisible: () => !purchaseOrder.state.isHiddenForSeller,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Ångra dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_unhide'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderHiddenForSeller(\n purchaseOrder.purchaseOrderId,\n false,\n listViewType\n )\n ),\n gaLabel: 'UnhideSold',\n isVisible: () => purchaseOrder.state.isHiddenForSeller,\n isPrimaryAction: () => false\n })\n ];\n\n return actions;\n};\n","import { openModal } from 'tradera-state/ui/actions';\nimport { types } from './item-actions-helper';\nimport purchaseOrderActions from '../state/actions/purchase-order';\nimport { SINGLE_FEEDBACK_DIALOG_ID } from '../components/leave-feedback/single-feedback-dialog';\nimport featureToggles from '../utils/feature-toggles';\nimport { openModal as openMyTraderaModal } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\n\nconst getId = purchaseOrder => purchaseOrder.purchaseOrderId;\n\nconst showModal = translationKey => {\n return openMyTraderaModal({\n bulkAction: 'MytListInfo',\n modal: {\n cssClass: 'fixed',\n icon: 'check',\n isSingleButton: true,\n getTranslatedMessage: t => t(translationKey)\n }\n });\n};\n\nexport const boughtActions = (purchaseOrder, listViewType) => {\n const actions = [\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Begär samfraktpris',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_request_combinedshipping'),\n dispatch: dispatch => {\n dispatch(\n purchaseOrderActions.requestCombinedShippingPrice(\n purchaseOrder.purchaseOrderId,\n !purchaseOrder.combinedShippingInformation\n .hasBuyerRequestedCombinedShippingPrice\n )\n );\n },\n gaLabel: 'RequestCombinedShipping',\n isVisible: () =>\n purchaseOrder.combinedShippingInformation &&\n !purchaseOrder.combinedShippingInformation\n .hasBuyerRequestedCombinedShippingPrice &&\n !purchaseOrder.shipping.shippingDiscount &&\n !purchaseOrder.state.isPaid &&\n purchaseOrder.shipping.shippingOptions?.length < 1,\n isPrimaryAction: () => !purchaseOrder.shipping.shippingDiscount\n }),\n () => ({\n id: getId(purchaseOrder),\n type: purchaseOrder.state.isPaymentExpired\n ? types.DISPATCH\n : types.LINK,\n label: 'Betala',\n getTranslatedLabel: t => t('myt_itemCard_actions_pay'),\n dispatch: dispatch => {\n dispatch(showModal('myt_orderinfo_paymentExpired'));\n },\n url: `/Shopping/Checkout/SelectPayment?purchaseOrderId=${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'Pay',\n buttonTheme: 'success',\n isVisible: () => {\n if (purchaseOrder.state.isPaid) {\n return false;\n }\n return (\n !purchaseOrder.state.isPaid &&\n !purchaseOrder.state.isMarkedAsPaidByBuyer\n );\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Markera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_markAsPaid'),\n dispatch: dispatch => {\n if (purchaseOrder.state.isPaymentExpired) {\n return dispatch(showModal('myt_orderinfo_paymentExpired'));\n }\n if (\n purchaseOrder.combinedShippingInformation &&\n !purchaseOrder.shipping.shippingDiscount &&\n !purchaseOrder.shipping.selectedShipping\n ) {\n return dispatch(showModal('myt_modal_mark_as_paid_info'));\n }\n dispatch(\n purchaseOrderActions.updatePurchaseOrderPaidByBuyer(\n purchaseOrder.purchaseOrderId,\n listViewType,\n true\n )\n );\n },\n gaLabel: 'MarkAsPaid',\n isVisible: () => {\n if (purchaseOrder.state.isPaid) {\n return false;\n }\n if (\n !purchaseOrder.combinedShippingInformation &&\n !purchaseOrder.shipping.selectedShipping &&\n !purchaseOrder.shipping.shippingDiscount\n ) {\n return false;\n }\n return (\n !purchaseOrder.state.isPaidWithIntegratedPayment &&\n !purchaseOrder.state.isMarkedAsPaidByBuyer\n );\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Avmarkera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_unmarkAsPaid'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderPaidByBuyer(\n purchaseOrder.purchaseOrderId,\n listViewType,\n false\n )\n ),\n gaLabel: 'UnmarkAsPaid',\n isVisible: () => {\n if (purchaseOrder.state.isPaid) {\n return false;\n }\n return (\n !purchaseOrder.state.isPaidWithIntegratedPayment &&\n purchaseOrder.state.isMarkedAsPaidByBuyer &&\n !purchaseOrder.state.isPaymentExpired\n );\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Lämna omdöme',\n getTranslatedLabel: t => t('myt_itemCard_actions_leaveFeedback'),\n dispatch: dispatch => {\n dispatch(\n openModal({\n modalId: SINGLE_FEEDBACK_DIALOG_ID,\n data: {\n purchaseOrderId: purchaseOrder.purchaseOrderId,\n transactionIds: purchaseOrder.itemsToGiveFeedBackTo\n }\n })\n );\n },\n gaLabel: 'LeaveFeedbackOnSeller',\n isVisible: () => !!purchaseOrder.itemsToGiveFeedBackTo.length,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Orderbekräftelse',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_orderConfirmation'),\n url: `/Shopping/OrderConfirmation?purchaseOrderId=${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'OrderConfirmation',\n isVisible: () => !featureToggles.isBuyerOrderInformationEnabled,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Orderinformation',\n getTranslatedLabel: t => t('myt_itemCard_actions_orderInformation'),\n url: `/my/order/${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'OrderInformation',\n isVisible: () => featureToggles.isBuyerOrderInformationEnabled,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.EXTERNAL_LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `${purchaseOrder.shipping.shipping?.url}`,\n gaLabel: 'BuyerTrackShipment',\n isVisible: () =>\n !featureToggles.isBuyerOrderInformationEnabled &&\n !!purchaseOrder.shipping.shipping?.url,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `/my/order/${purchaseOrder.purchaseOrderId}#shipping`,\n gaLabel: 'BuyerTrackShipment',\n isVisible: () =>\n featureToggles.isBuyerOrderInformationEnabled &&\n !!purchaseOrder.shipping.shipping?.url,\n isPrimaryAction: () => true\n }),\n () => ({\n // \"INR\" = \"Item Not Received\"\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Anmäl utebliven leverans',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_reportFailureToDeliver'),\n url: `/resolution/INR2/${purchaseOrder.purchaseOrderId}`,\n gaLabel: 'ReportItemNotReceived',\n isVisible: () =>\n !purchaseOrder.payment.hasBuyerProtection &&\n !purchaseOrder.state.isInrSubmitted &&\n featureToggles.isInrPurchaseOrderEnabled,\n isPrimaryAction: () => true\n }),\n // () => ({ TODO REWRITE TO REACT\n // id: getId(item),\n // type: types.LINK,\n // label: 'Anmäl utebliven vara',\n // getTranslatedLabel: t => t('myt_itemCard_actions_createDispute'),\n // url: `/resolution/disputes/${item.transaction.transactionId}`,\n // gaLabel: 'CreateDispute',\n // isVisible: () =>\n // featureToggles.isDisputesEntranceEnabled &&\n // item.transaction.hasBuyerProtection &&\n // !item.transaction.dispute,\n // isPrimaryAction: () => !item.haveMultipleRows\n // }),\n () => ({\n id: getId(purchaseOrder),\n type: types.LINK,\n label: 'Säljarens annonser',\n getTranslatedLabel: t => t('myt_itemCard_actions_itemsFromSeller'),\n url: `/profile/items/${purchaseOrder.sellerMember.memberId}/${purchaseOrder.sellerMember.cleanedAlias}`,\n gaLabel: 'SellerOtherItems',\n isVisible: () => true,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderHiddenForBuyer(\n purchaseOrder.purchaseOrderId,\n purchaseOrder.transactionIds,\n true,\n listViewType\n )\n ),\n gaLabel: 'HideSold',\n isVisible: () => !purchaseOrder.state.isHiddenForBuyer,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(purchaseOrder),\n type: types.DISPATCH,\n label: 'Ångra dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_unhide'),\n dispatch: dispatch =>\n dispatch(\n purchaseOrderActions.updatePurchaseOrderHiddenForBuyer(\n purchaseOrder.purchaseOrderId,\n purchaseOrder.transactionIds,\n false,\n listViewType\n )\n ),\n gaLabel: 'UnhideSold',\n isVisible: () => purchaseOrder.state.isHiddenForBuyer,\n isPrimaryAction: () => false\n })\n ];\n\n return actions;\n};\n","import { soldActions } from '../../helpers/purchase-order-actions-helper-seller';\nimport { boughtActions } from '../../helpers/purchase-order-actions-helper-buyer';\nimport { logger } from 'packages/logger';\nimport { PAGE_NAMES } from '../../constants/page';\n\nexport const getActionsForPurchaseOrder = (\n purchaseOrder,\n listViewType,\n memberMessagingParticipation,\n pageName\n) => {\n const secondaryActions = [];\n let primaryAction = null;\n\n const checkAndAdd = action => {\n try {\n if (!action.isVisible) {\n throw 'Action is not compatible: ' + action.label;\n }\n if (!action.isVisible()) {\n return;\n }\n if (primaryAction === null && action.isPrimaryAction()) {\n // eslint-disable-next-line better-mutation/no-mutation\n primaryAction = action;\n } else {\n secondaryActions.push(action);\n }\n } catch (error) {\n logger(error);\n }\n };\n\n const resolveActions = potentialActions => {\n potentialActions.forEach(actionCreator => {\n const action = actionCreator();\n checkAndAdd(action);\n });\n return {\n primaryAction,\n secondaryActions\n };\n };\n\n let actionsForItem = [];\n\n switch (pageName) {\n case PAGE_NAMES.SellerSold:\n actionsForItem = resolveActions(\n soldActions(\n purchaseOrder,\n listViewType,\n memberMessagingParticipation\n )\n );\n break;\n case PAGE_NAMES.BuyerPurchases:\n actionsForItem = resolveActions(\n boughtActions(purchaseOrder, listViewType)\n );\n break;\n }\n return actionsForItem;\n};\n","import { selectMyTraderaItemsState } from '../reducers/my-tradera-items';\nimport { selectCookiesState } from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectMyTraderaState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport { selectRouterState } from 'tradera-apps/my-tradera/app/state/selectors/router';\nimport { getActionsForPurchaseOrder } from '../selectors/purchase-actions';\n\nexport const selectPurchaseOrderState = state => {\n const listViewType = selectCookiesState(state).LIST_VIEW_TYPE_SELLER_SOLD;\n const memberMessagingParticipation = selectMyTraderaState(state)\n .memberMessagingParticipation;\n const pageName =\n selectMyTraderaState(state).page &&\n selectMyTraderaState(state).page[\n selectRouterState(state).location.pathname\n ]?.pageName;\n\n const purchaseOrders = state.views.myTradera.purchaseOrder.purchaseOrders.map(\n purchaseOrder => {\n const rows = selectMyTraderaItemsState(state).itemsOrderedByID.map(\n id => {\n return state.views.myTradera.myTraderaItems.itemsByID[id];\n }\n );\n return {\n ...purchaseOrder,\n actions: getActionsForPurchaseOrder(\n purchaseOrder,\n listViewType,\n memberMessagingParticipation,\n pageName\n ),\n rows: rows.filter(\n row =>\n row.transaction.purchaseOrderId ===\n purchaseOrder.purchaseOrderId\n )\n };\n }\n );\n return {\n ...state.views.myTradera.purchaseOrder,\n purchaseOrders\n };\n};\n","import qs from 'qs';\n\nexport const waitForBackend = () => {\n let waitForBackend = false;\n if (window.location.search) {\n const searchParams = qs.parse(window.location.search.replace('?', ''));\n waitForBackend = !!searchParams.updateditems;\n }\n return waitForBackend;\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport myTraderaItemActions from '../../state/actions/my-tradera-items';\nimport purchaseOrderActions from '../../state/actions/purchase-order';\nimport { getInitialFilters } from '../../helpers/payloads/initial-payload';\nimport { setFiltersForSelectedPage } from '../../state/actions/filters';\nimport { LIST_VIEW_TYPES, PAGE_LIST_TYPES } from '../../constants/list-types';\nimport featureToggles, {\n errors as featureToggleErrors\n} from '../../utils/feature-toggles';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { useDayJs } from 'tradera-hooks/use-day-js';\nimport {\n openChangeShipping,\n error,\n selectMyTraderaState\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport { selectMyTraderaItemsState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera-items';\nimport {\n selectCookiesState,\n setCookie\n} from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectFiltersState } from 'tradera-apps/my-tradera/app/state/selectors/filters';\nimport { selectPurchaseOrderState } from 'tradera-apps/my-tradera/app/state/selectors/purchase-order';\nimport { getItemFromPurchaseOrderId } from 'tradera-apps/my-tradera/app/state/selectors/items';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { waitForBackend } from '../../helpers/payloads/wait-for-backend';\nimport {\n removeHashFromUrl,\n shouldMarkAsPaid,\n shouldOpenChangeCombinedShippingModal,\n shouldShowRequestedCombinedShippingToast,\n URL_HASHES\n} from 'tradera-apps/tradera/components/vip/helpers/navigation-helper';\nimport { showSuccessToast } from 'tradera-services/toasts';\n\nconst modifyHistory = (match, history) => {\n return !(history.action === 'POP' && match.params.length > 0); // When using back button from a list to another (ie from \"sold\" to \"not sold\"), we should not modify the history object\n};\n\nconst defaultPayload = () => {\n return {\n filters: {\n modifiers: {\n query: {},\n paging: {}\n },\n filterBar: null,\n shownFilters: null\n }\n };\n};\n\n// eslint-disable-next-line react/display-name\nconst withPageInit = (Component, initialPayload = defaultPayload) => props => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n const dayjs = useDayJs();\n\n const state = {\n filters: useSelector(selectFiltersState),\n myTradera: useSelector(selectMyTraderaState),\n\n myTraderaItems: useSelector(selectMyTraderaItemsState),\n breakpoint: useSelector(selectMyTraderaState).breakpoint || {},\n page:\n useSelector(selectMyTraderaState).page[props.location.pathname] ||\n false,\n purchaseOrder: useSelector(selectPurchaseOrderState),\n sellerEmail: useSelector(state => state.member.memberEmail)\n };\n\n const stateCookies = useSelector(selectCookiesState);\n const { isCombinedShippingEnabled } = state.myTradera;\n const [pageListType, setPageListType] = useState();\n const { match } = props;\n const { LIST_VIEW_TYPE } = stateCookies;\n\n const listViewTypeWithFallBack =\n stateCookies['LIST_VIEW_TYPE_' + state.page.listType] || LIST_VIEW_TYPE;\n const listViewType = stateCookies['LIST_VIEW_TYPE_' + state.page.listType];\n\n useEffect(() => {\n let initialState = initialPayload ? initialPayload(t) : null;\n\n if (!featureToggles.isMyTraderaElasticEnabled) {\n dispatch(error(featureToggleErrors.ELASTIC_MYTRADERA));\n }\n\n if (initialState) {\n dispatch(\n setFiltersForSelectedPage(\n getInitialFilters(initialState.filters)\n )\n );\n }\n }, [dispatch, t]);\n\n useEffect(() => {\n const getPurchaseOrderIdFromHash = hash =>\n document.location.hash.split(hash)[1];\n\n const removeHashAndSetNormalList = () => {\n removeHashFromUrl();\n dispatch(\n setCookie({\n name: `LIST_VIEW_TYPE_${state.page.listType}`,\n value: LIST_VIEW_TYPES.NORMAL\n })\n );\n };\n\n const itemsHasLoaded =\n state.myTraderaItems?.itemsOrderedByID?.length > 0;\n\n const changeShippingPurchaseOrderId = getPurchaseOrderIdFromHash(\n URL_HASHES.openChangeCombinedShippingModal\n );\n if (\n shouldOpenChangeCombinedShippingModal() &&\n changeShippingPurchaseOrderId &&\n itemsHasLoaded\n ) {\n const item = getItemFromPurchaseOrderId(\n state.myTraderaItems,\n changeShippingPurchaseOrderId\n );\n dispatch(\n openChangeShipping({\n purchaseOrderId: changeShippingPurchaseOrderId,\n receiverCountry:\n item?.transaction.buyer.address.countryCodeIso2\n })\n );\n removeHashAndSetNormalList();\n }\n\n const markAsPaidPurchaseOrderId = getPurchaseOrderIdFromHash(\n URL_HASHES.markAsPaid\n );\n if (shouldMarkAsPaid() && markAsPaidPurchaseOrderId) {\n dispatch(\n purchaseOrderActions.updatePurchaseOrderPaidBySeller(\n markAsPaidPurchaseOrderId,\n state.page.listType,\n false,\n true\n )\n );\n removeHashAndSetNormalList();\n }\n\n if (shouldShowRequestedCombinedShippingToast()) {\n showSuccessToast(\n 'checkout_shipping_requestCombinedShippingPriceInfo',\n 'checkout_shipping_combinedShippingPriceRequested'\n );\n removeHashAndSetNormalList();\n }\n }, [dispatch, state.myTraderaItems, state.page.listType]);\n\n const setDefaultListViewType = useCallback(() => {\n if (window.location.search.length !== 0) {\n return null;\n }\n if (\n state.page.listType === PAGE_LIST_TYPES.BUYER_PURCHASES &&\n !listViewType\n ) {\n return dispatch(\n setCookie({\n name: `LIST_VIEW_TYPE_${state.page.listType}`,\n value: LIST_VIEW_TYPES.NORMAL\n })\n );\n }\n if (\n isCombinedShippingEnabled &&\n (state.page.listType === PAGE_LIST_TYPES.SELLER_SOLD ||\n state.page.listType === PAGE_LIST_TYPES.BUYER_PURCHASES) &&\n !listViewType\n ) {\n return dispatch(\n setCookie({\n name: `LIST_VIEW_TYPE_${state.page.listType}`,\n value: LIST_VIEW_TYPES.NORMAL\n })\n );\n }\n if (\n state.page.listType !== PAGE_LIST_TYPES.SELLER_SOLD &&\n state.page.listType !== PAGE_LIST_TYPES.BUYER_PURCHASES &&\n !listViewType\n ) {\n return dispatch(\n setCookie({\n name: 'LIST_VIEW_TYPE',\n value: LIST_VIEW_TYPES.BASIC\n })\n );\n }\n }, [\n dispatch,\n state.page.listType,\n isCombinedShippingEnabled,\n listViewType\n ]);\n\n useEffect(() => {\n setDefaultListViewType();\n }, [setDefaultListViewType]);\n\n useEffect(() => {\n setPageListType(state.page.listType);\n }, [state.page.listType]);\n\n const getData = useCallback(() => {\n const shouldWaitForBackend = waitForBackend();\n if (!pageListType) {\n return null;\n }\n if (listViewTypeWithFallBack === LIST_VIEW_TYPES.NORMAL) {\n return dispatch(\n purchaseOrderActions.runPurchaseOrders({\n page: state.page,\n shouldScrollToInitialScroll: false,\n listViewType: listViewTypeWithFallBack,\n waitForBackend: shouldWaitForBackend,\n dontModifyHistory: !modifyHistory(match, history),\n dayjs\n })\n );\n }\n return dispatch(\n myTraderaItemActions.runSearch(\n state.page,\n false,\n listViewTypeWithFallBack,\n shouldWaitForBackend,\n !modifyHistory(match, history)\n )\n );\n }, [\n dispatch,\n state.page,\n pageListType,\n listViewTypeWithFallBack,\n match,\n dayjs\n ]);\n\n useEffect(() => {\n getData();\n }, [pageListType, getData]);\n\n const cookies = {\n ...stateCookies,\n LIST_VIEW_TYPE: listViewTypeWithFallBack\n };\n\n return (\n \n );\n};\n\nexport default withPageInit;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\nimport {\n selectMyTraderaState,\n setBreakPoint\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\n\nconst MakeResponsive = ComposedComponent => {\n class Responsive extends React.Component {\n constructor(props) {\n super(props);\n this.removeMediaQueries = [];\n }\n\n componentDidMount() {\n if (window.matchMedia) {\n this.addMediaQueries();\n }\n }\n\n componentWillUnmount() {\n if (window.matchMedia && this.removeMediaQueries) {\n this.removeMediaQueries.forEach(removeMediaQuery =>\n removeMediaQuery()\n );\n }\n }\n\n setBreakPoint = breakpoint => {\n this.props.dispatch(setBreakPoint(breakpoint));\n };\n\n addMediaQueries = () => {\n for (let breakpoint of Object.values(BREAKPOINT_SIZES)) {\n const matchMedia = window.matchMedia(\n `screen and (min-width: ${breakpoint.min}px) and (max-width: ${breakpoint.max}px)`\n );\n if (matchMedia.matches) {\n this.setBreakPoint(breakpoint);\n }\n const handleMediaChange = val => {\n if (val.matches) {\n this.setBreakPoint(breakpoint);\n }\n };\n // addListener is an alias for addEventListener https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener\n matchMedia.addListener(handleMediaChange);\n this.removeMediaQueries.push(() => {\n matchMedia.removeListener(handleMediaChange);\n });\n }\n };\n\n render() {\n return ;\n }\n }\n\n const mapStateToProps = state => ({\n breakpoint: selectMyTraderaState(state).breakpoint\n });\n\n return connect(mapStateToProps)(Responsive);\n};\n\nexport default MakeResponsive;\n","//@ts-check --jsx\nimport React from 'react';\nimport throttle from 'underscore/modules/throttle';\n\nconst MakeSticky = ComposedComponent =>\n class Sticky extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sticky: false,\n height: null\n };\n this.onScroll = this.onScroll.bind(this);\n this.onScrollThrottled = throttle(this.onScroll, props.wait || 0);\n }\n\n componentDidMount() {\n window.addEventListener('scroll', this.onScrollThrottled, false);\n }\n\n componentWillUnmount() {\n this.doc = null;\n window.removeEventListener('scroll', this.onScrollThrottled, false);\n }\n\n onScroll() {\n this.doc = document.documentElement;\n if (!this.el) {\n return;\n }\n const position = this.el.getBoundingClientRect();\n if (!this.state.height && position.height) {\n this.setState({\n height: position.height\n });\n }\n // const top = (window.pageYOffset || this.doc.scrollTop) - (this.doc.clientTop || 0);\n if (position && position.top <= 0) {\n if (!this.state.sticky) {\n this.setState({\n sticky: true\n });\n }\n } else {\n if (this.state.sticky) {\n this.setState({\n sticky: false\n });\n }\n }\n }\n\n render() {\n let { position, zIndex } = this.props;\n\n //return before doing anything, we don't know how to make the element sticky.\n if (!position) {\n return null;\n }\n\n const positions = {\n top: 'sticky-top',\n bottom: 'sticky-bottom'\n };\n\n const getStickyClasses = () =>\n this.state.sticky ? `myt-sticky ${positions[position]}` : '';\n const wrapperStyles = {\n height: this.state.height ? this.state.height : 'auto'\n };\n const stickyStyles = {\n zIndex: zIndex ? zIndex : 10\n };\n\n return (\n <>\n (this.el = el)}\n style={wrapperStyles}>\n \n \n \n \n \n );\n }\n };\n\nexport default MakeSticky;\n","import React from 'react';\nimport { formatPrice } from './formats';\nimport { LIST_VIEW_TYPES } from './../constants/list-types';\nimport STRINGS from './../constants/text-strings';\n\nexport const generateSumOfDiscounts = discounts => {\n return discounts\n .map(discount => discount.amount)\n .reduce((total, currentAmount) => {\n return total + currentAmount;\n }, 0);\n};\n\nexport const getBidCount = item => {\n return item && item.bidInformation && item.bidInformation.bidCount > 0\n ? item.bidInformation.bidCount\n : 0;\n};\n\nexport const getSumOfDiscounts = item => {\n const transaction = item.transaction;\n return transaction &&\n transaction.discounts &&\n transaction.discounts.length > 0\n ? generateSumOfDiscounts(transaction.discounts)\n : null;\n};\n\nexport const getMaxBid = item =>\n item.caller && item.caller.maxBid && item.caller.maxBid > 0\n ? item.caller.maxBid\n : null;\n\nexport const getTimeLeft = item => {\n return item.isActive === true && item.timeLeft && item.timeLeft.timeleft\n ? item.timeLeft.timeleft\n : null;\n};\n\nexport const isTimeLeftCritical = item => {\n return item.timeLeft && item.timeLeft.critical\n ? item.timeLeft.critical\n : false;\n};\n\nexport const getShippingCost = (item, listViewType) => {\n const translateShippingNames = name => {\n const names = {\n Takeaway: 'Avh.',\n TakeawayLong: 'Avhämtning',\n TakeawayOnly: 'Avhämtning',\n SchenkerPrivpak: 'DB Schenker',\n Alternative: 'Annat fraktsätt'\n };\n if (!names[name]) {\n return name;\n }\n if (name === 'Takeaway' && listViewType === LIST_VIEW_TYPES.BASIC) {\n return names['TakeawayLong'];\n }\n return names[name];\n };\n\n const shouldShowShippingPrice = shippingItem =>\n shippingItem.shippingType === 'Takeaway'\n ? ''\n : `: ${formatPrice(shippingItem.shippingCost)}`;\n const getShippingLabelWithPrice = shippingItem => {\n return `${translateShippingNames(\n shippingItem.shippingType\n )}${shouldShowShippingPrice(shippingItem)}`;\n };\n\n return () => {\n const shippingOptions = item.listing.shippingOptions;\n\n if (item.transaction) {\n // Logic from Areas/MyTradera/Models/ShippingPrice.cs\n const selectedShipping = item.transaction.selectedShipping;\n if (selectedShipping) {\n if (selectedShipping.isTakeaway) {\n return `${translateShippingNames(\n 'Takeaway'\n )}: ${formatPrice(item.transaction.selectedShipping.cost)}`;\n }\n\n if (selectedShipping.isFreeShipping) {\n return STRINGS.SHIPPING_LABELS.FREE_SHIPPING;\n }\n return `${translateShippingNames(\n selectedShipping.name\n )}: ${formatPrice(item.transaction.selectedShipping.cost)}`;\n } else {\n /*\n * @todo: This if should be fixed in the backend.\n */\n if (\n item.transaction.hasIntegratedPayment === true &&\n shippingOptions.length === 1\n ) {\n let theOnlyShippingOption = item.listing.shippingOptions[0];\n return theOnlyShippingOption.shippingType === 'Takeaway'\n ? STRINGS.SHIPPING_LABELS.TAKEAWAY\n : formatPrice(theOnlyShippingOption.shippingCost);\n }\n\n return shippingOptions.map((shippingItem, i) => {\n return listViewType === LIST_VIEW_TYPES.BASIC ? (\n

    {getShippingLabelWithPrice(shippingItem)}

    \n ) : (\n `${getShippingLabelWithPrice(shippingItem)}${\n i < shippingOptions.length ? ', ' : ''\n }`\n );\n });\n }\n }\n\n const itemOffersTakeawayOnly = () =>\n shippingOptions.length === 1 &&\n shippingOptions.find(\n shippingOption => shippingOption.shippingType === 'Takeaway'\n ) !== undefined\n ? true\n : false;\n const getCheapestShippingCost = () =>\n shippingOptions.length === 0\n ? { shippingCost: 0 }\n : shippingOptions.reduce((accumulator, currentValue) => {\n if (\n (currentValue.shippingCost <\n accumulator.shippingCost &&\n currentValue.shippingType !== 'Takeaway') ||\n accumulator.shippingType === 'Takeaway'\n ) {\n return currentValue;\n }\n return accumulator;\n });\n\n return itemOffersTakeawayOnly()\n ? STRINGS.SHIPPING_LABELS.TAKEAWAY\n : formatPrice(getCheapestShippingCost().shippingCost);\n };\n};\n\nexport const isNormalListViewType = listViewType =>\n listViewType === LIST_VIEW_TYPES.NORMAL;\n","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 ? Object.assign.bind() : 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 { useTranslator, useUrlLocalizer } 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 * 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 { CardVerificationModal } from 'tradera-components/wacko-bidder/card-verification-modal';\nimport { BID_VALIDATION_RESULTS } from 'tradera-apps/tradera/components/vip/api/vip-api-constants';\nimport { useLocalizedPriceFormatter } from 'tradera-localization/use-localized-price-formatter';\nimport { BinModalCurrencyConversionInfoModal } from 'tradera-apps/tradera/components/vip/bidding/bin-modal/bin-modal-currency-conversion-info-modal';\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 }) => {\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\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 localizedFormatPrice = useLocalizedPriceFormatter();\n const formattedPrice = localizedFormatPrice(fixedPrice);\n\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 findKeysByPurchaseOrderId = items => purchaseOrderId => {\n return Object.keys(items).filter(\n key => items[key].transaction.purchaseOrderId === purchaseOrderId\n );\n};\n\nexport const findKeysByTransactionId = items => transactionId => {\n return Object.keys(items).filter(\n key => items[key].transaction.transactionId === transactionId\n );\n};\n\nexport const findKeysByItemId = items => itemId => {\n return Object.keys(items).filter(key => items[key].itemId === itemId);\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport myTraderaItemsSelector from './items';\nimport { logger } from 'packages/logger';\nimport {\n findKeysByPurchaseOrderId,\n findKeysByTransactionId,\n findKeysByItemId\n} from '../../helpers/commands-helper.js';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nconst getSoldItemStateFor = sellerState => {\n if (sellerState.shipped && sellerState.feedbackLeft) {\n return 'Done';\n }\n if (sellerState.shipped) {\n return 'Shipped';\n }\n return sellerState.paid ? 'Paid' : 'NotPaid';\n};\n\nconst updateStateAndLabels = (item, listViewType, messagingParticipation) => {\n if (listViewType === undefined) {\n try {\n throw 'updateStateAndLabels: listViewType === undefined, ' + item;\n } catch (e) {\n logger(e);\n }\n }\n item.transaction.sellerState.state = getSoldItemStateFor(\n item.transaction.sellerState\n );\n return myTraderaItemsSelector.getSoldItem(\n item,\n listViewType,\n messagingParticipation\n );\n};\n\nconst updateUnsoldLabelsAndActions = (item, listViewType) => {\n if (listViewType === undefined) {\n try {\n throw 'updateUnsoldLabelsAndActions: listViewType === undefined, ' +\n item;\n } catch (e) {\n logger(e);\n }\n }\n return myTraderaItemsSelector.getUnsoldItem(item, listViewType);\n};\n\nconst setPaidState = (\n flag,\n listViewType,\n messagingParticipation\n) => items => keys => {\n return keys.map(key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setPaidState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (e) {\n logger(e);\n }\n }\n\n item.transaction.sellerState.paid = flag;\n return updateStateAndLabels(item, listViewType, messagingParticipation);\n });\n};\n\nconst setShippedState = (flag, listViewType) => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setShippedState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (e) {\n logger(e);\n }\n }\n\n item.transaction.sellerState.shipped = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setTransactionHiddenState = (flag, listViewType) => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setTransactionHiddenState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.sellerState.hidden = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setUnsoldItemHiddenState = (flag, listViewType) => (\n items,\n memberId\n) => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setUnsoldItemHiddenState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n if (!item.hiddenByMember?.includes(memberId)) {\n item.removeFromList = true;\n }\n return updateUnsoldLabelsAndActions(item, listViewType, memberId);\n};\n\nconst setFeedback = (flag, listViewType) => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setFeedback failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.sellerState.feedbackLeft = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setShippingBookedState = (flag, listViewType) => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setShippingBookedState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.sellerState.shippingBooked = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setShippingDeletedState = listViewType => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setShippingDeletedState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.hasUnpaidShipping = false;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setItemsHasRestartedChild = (flag, listViewType) => items => key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setItemHasRestartedChild failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.listing.restart.hasRestartedChild = flag;\n return updateUnsoldLabelsAndActions(item, listViewType);\n};\n\nexport const markAsPaidBySellerReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setPaidState(\n true,\n action.payload.listViewType,\n action.payload.messagingParticipation\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n const updatedOrders = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n\n updatedOrders.forEach(updatedItems => {\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n });\n\n return stateItems;\n};\n\nexport const unmarkAsPaidBySellerReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setPaidState(\n false,\n action.payload.listViewType,\n action.payload.messagingParticipation\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n const updatedOrders = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n\n updatedOrders.forEach(updatedItems => {\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n });\n\n return stateItems;\n};\n\nexport const markAsShippedReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippedState(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const unmarkAsShippedReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippedState(\n false,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const markTransactionAsHiddenBySellerReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n\n const updateChangedItems = setTransactionHiddenState(\n true,\n action.payload.listViewType\n )(updatedItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n updatedItems\n );\n action.payload.ids\n .flatMap(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n return updatedItems;\n};\n\nexport const markTransactionAsShownBySellerReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n\n const updateChangedItems = setTransactionHiddenState(\n false,\n action.payload.listViewType\n )(updatedItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n updatedItems\n );\n action.payload.ids\n .flatMap(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n return updatedItems;\n};\n\nexport const markItemAsHiddenReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n const updateChangedItems = setUnsoldItemHiddenState(\n true,\n action.payload.listViewType\n )(updatedItems, state.currentMemberId);\n const findUpdatedKeysByItemId = findKeysByItemId(updatedItems);\n action.payload.ids.map(findUpdatedKeysByItemId).map(updateChangedItems);\n return updatedItems;\n};\n\nexport const markItemAsShownReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n const updateChangedItems = setUnsoldItemHiddenState(\n false,\n action.payload.listViewType\n )(updatedItems);\n const findUpdatedKeysByItemId = findKeysByItemId(updatedItems);\n action.payload.ids.map(findUpdatedKeysByItemId).map(updateChangedItems);\n return updatedItems;\n};\n\nexport const feedbackLeftBySeller = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setFeedback(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = [action.payload.id]\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const markAsShippingBooked = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippingBookedState(\n true,\n action.payload.listViewType\n )(stateItems);\n\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const unmarkAsShippingBooked = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippingBookedState(\n false,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const deleteShipment = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippingDeletedState(\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n\n const updatedItems = [action.payload.purchaseOrderId]\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const setRestartedReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setItemsHasRestartedChild(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByItemId = findKeysByItemId(stateItems);\n const updatedItems = action.payload.itemIds\n .map(findUpdatedKeysByItemId)\n .map(updateChangedItems);\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n return stateItems;\n};\n\nexport const feedbacksLeftBySeller = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setFeedback(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.submittables\n .map(submittable => submittable.transactionId)\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport myTraderaItemsSelector from './items';\nimport { logger } from 'packages/logger';\nimport {\n findKeysByPurchaseOrderId,\n findKeysByTransactionId\n} from '../../helpers/commands-helper.js';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nconst updateStateAndLabels = (item, listViewType) => {\n if (listViewType === undefined) {\n try {\n throw 'updateStateAndLabels: listViewType === undefined, ' + item;\n } catch (e) {\n logger(e);\n }\n }\n return myTraderaItemsSelector.getPurchasedItem(item, listViewType);\n};\n\nconst setPaidState = (\n flag,\n listViewType,\n messagingParticipation\n) => items => keys => {\n return keys.map(key => {\n const item = items[key];\n if (!item) {\n try {\n throw `setPaidState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (e) {\n logger(e);\n }\n }\n\n item.transaction.buyerState.paid = flag;\n return updateStateAndLabels(item, listViewType, messagingParticipation);\n });\n};\n\nconst setTransactionHiddenState = (flag, listViewType) => items => key => {\n let item = items[key];\n if (!item) {\n try {\n throw `setTransactionHiddenState failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.buyerState.hidden = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setFeedback = (flag, listViewType) => items => key => {\n let item = items[key];\n if (!item) {\n try {\n throw `setFeedback failed. tried to find key ${key} in ${JSON.stringify(\n items\n )}`;\n } catch (err) {\n logger(err);\n }\n return [];\n }\n\n item.transaction.buyerState.feedbackLeft = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nexport const markAsPaidByBuyerReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setPaidState(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n const updatedOrders = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n\n updatedOrders.forEach(updatedItems => {\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n });\n\n return stateItems;\n};\n\nexport const feedbackLeftByBuyer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setFeedback(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = [action.payload.id]\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n\nexport const unmarkAsPaidByBuyerReducer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setPaidState(\n false,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n const updatedOrders = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n\n updatedOrders.forEach(updatedItems => {\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n });\n\n return stateItems;\n};\n\nexport const markTransactionAsHiddenByBuyerReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n\n const updateChangedItems = setTransactionHiddenState(\n true,\n action.payload.listViewType\n )(updatedItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(\n updatedItems\n );\n action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n return updatedItems;\n};\n\nexport const markTransactionAsShownByBuyerReducer = (state, action) => {\n let updatedItems = { ...state.itemsByID };\n\n const updateChangedItems = setTransactionHiddenState(\n false,\n action.payload.listViewType\n )(updatedItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(\n updatedItems\n );\n action.payload.ids\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n return updatedItems;\n};\n\nexport const feedbacksLeftByBuyer = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setFeedback(\n true,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByTransactionId = findKeysByTransactionId(stateItems);\n const updatedItems = action.payload.submittables\n .map(submittable => submittable.transactionId)\n .map(findUpdatedKeysByTransactionId)\n .map(updateChangedItems);\n\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\n });\n\n return stateItems;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport myTraderaItems from '../actions/my-tradera-items';\nimport myTraderaItemsSelector from '../selectors/items';\nimport { listActions } from '../../helpers/list-helper';\nimport { actionTypes as purchaseOrderActionTypes } from '../action-types/purchase-order';\n\nimport {\n markAsPaidBySellerReducer,\n unmarkAsPaidBySellerReducer,\n markAsShippedReducer,\n unmarkAsShippedReducer,\n markItemAsHiddenReducer,\n markItemAsShownReducer,\n markTransactionAsHiddenBySellerReducer,\n markTransactionAsShownBySellerReducer,\n feedbackLeftBySeller,\n unmarkAsShippingBooked,\n deleteShipment,\n setRestartedReducer,\n feedbacksLeftBySeller,\n markAsShippingBooked\n} from '../selectors/seller-commands';\n\nimport {\n markAsPaidByBuyerReducer,\n feedbackLeftByBuyer,\n feedbacksLeftByBuyer,\n unmarkAsPaidByBuyerReducer,\n markTransactionAsHiddenByBuyerReducer,\n markTransactionAsShownByBuyerReducer\n} from '../selectors/buyer-commands';\n\nimport { findKeysByPurchaseOrderId } from '../../helpers/commands-helper.js';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nexport default (state, action) => {\n state = state || {};\n\n const updateItems = () => {\n return {\n ...state,\n ...myTraderaItemsSelector.getItemsInOrder(\n action.payload.value,\n action.payload.listViewType,\n action.payload.value.currentMemberId,\n action.payload.memberMessagingParticipation,\n action.payload.page\n )\n };\n };\n\n /**\n * Called when server has an error\n * @returns {object} with basic structure needed for application.\n */\n const updateItemsWithError = () => ({\n ...state,\n itemsByID: {},\n itemsOrderedByID: [],\n statistics: {\n values: []\n },\n paging: {\n ...state.paging,\n totalItems: 0\n }\n });\n\n /**\n * Tells State which More Menu to open / close;\n * @returns {object} - new state\n */\n const openMore = () => ({\n ...state,\n isSubMenuOpen:\n action.payload === state.isSubMenuOpen ? false : action.payload\n });\n\n /**\n * Selects a specific item for bulk action;\n * @returns {object} new state\n */\n const selectItem = () => {\n let bulkChecked = false;\n if (\n !state.selectedCheckboxes ||\n state.selectedCheckboxes.length === 0\n ) {\n return {\n ...state,\n selectedCheckboxes: [action.payload.id],\n bulkChecked: bulkChecked\n };\n } else {\n let chosenBoxes = [...state.selectedCheckboxes];\n if (state.selectedCheckboxes.indexOf(action.payload.id) > -1) {\n bulkChecked = false;\n chosenBoxes = chosenBoxes.filter(\n id => id !== action.payload.id\n );\n } else {\n chosenBoxes.push(action.payload.id);\n }\n\n return {\n ...state,\n selectedCheckboxes: chosenBoxes,\n bulkChecked: bulkChecked\n };\n }\n };\n\n /**\n * Selects all items for bulk action\n * @returns {object} new state\n */\n const selectAllItems = () => {\n const checkIfActive = item => {\n const actions = listActions(\n action.payload.listViewType,\n action.payload.memberId,\n action.payload.selectedFilterBar,\n 0,\n () => {}\n );\n return actions.isCheckboxActive(item);\n };\n if (action.payload.select === true || !state.bulkChecked) {\n const allItemsWithBulk = Object.keys(state.itemsByID)\n .filter(itemId => checkIfActive(state.itemsByID[itemId]))\n .map(id => {\n return parseInt(id, 10);\n });\n return {\n ...state,\n selectedCheckboxes: allItemsWithBulk,\n bulkChecked: true\n };\n }\n\n return {\n ...state,\n selectedCheckboxes: [],\n bulkChecked: false\n };\n };\n\n const openDelListingItem = () => ({\n ...state,\n isOpenDeleteItem:\n action.payload === false ? false : !state.isOpenDeleteItem\n });\n\n const removeAllSelected = () => ({\n ...state,\n selectedCheckboxes: [],\n bulkChecked: false\n });\n\n const removeItems = () => {\n const newItemsOrderedByID = state.itemsOrderedByID.filter(id =>\n action.payload.some(element => element.toString() === id.toString())\n ? false\n : true\n );\n const newItems = {};\n newItemsOrderedByID.map(\n item => (newItems[item] = state.itemsByID[item])\n );\n return {\n ...state,\n itemsByID: newItems,\n itemsOrderedByID: newItemsOrderedByID\n };\n };\n\n const setNewShippingPrice = () => {\n const items = { ...state.itemsByID };\n const itemKeysForPurchaseOrderId = findKeysByPurchaseOrderId(items)(\n action.purchaseOrderId\n );\n const shippingDiscount = {\n shippingProvider: action.shippingProvider,\n price: action.newPrice\n };\n itemKeysForPurchaseOrderId.map(key => {\n items[key].transaction.shippingDiscount = shippingDiscount;\n });\n return {\n ...state,\n itemsByID: items\n };\n };\n\n /**\n * Reset state to empty.\n */\n const resetItems = () => ({\n ...state,\n itemsByID: [],\n itemsOrderedByID: [],\n paging: {\n ...state.paging,\n totalItems: 0\n }\n });\n\n const poMarkedAsPaidBySeller = () => ({\n ...state,\n itemsByID: markAsPaidBySellerReducer(state, action)\n });\n const poUnmarkedAsPaidBySeller = () => ({\n ...state,\n itemsByID: unmarkAsPaidBySellerReducer(state, action)\n });\n const markedAsShippedBySeller = () => ({\n ...state,\n itemsByID: markAsShippedReducer(state, action)\n });\n const unmarkedAsShippedBySeller = () => ({\n ...state,\n itemsByID: unmarkAsShippedReducer(state, action)\n });\n const poHiddenBySeller = () => ({\n ...state,\n itemsByID: markTransactionAsHiddenBySellerReducer(state, action)\n });\n const poShownBySeller = () => ({\n ...state,\n itemsByID: markTransactionAsShownBySellerReducer(state, action)\n });\n const itemHidden = () => ({\n ...state,\n itemsByID: markItemAsHiddenReducer(state, action)\n });\n const itemShown = () => ({\n ...state,\n itemsByID: markItemAsShownReducer(state, action)\n });\n const feedbackLeftBySellerReducer = () => ({\n ...state,\n itemsByID: feedbackLeftBySeller(state, action)\n });\n const feedbackLeftByBuyerReducer = () => ({\n ...state,\n itemsByID: feedbackLeftByBuyer(state, action)\n });\n const poMarkedAsShippingBooked = () => ({\n ...state,\n itemsByID: markAsShippingBooked(state, action)\n });\n const poUnmarkedAsShippingBooked = () => ({\n ...state,\n itemsByID: unmarkAsShippingBooked(state, action)\n });\n const poShipmentDeleted = () => ({\n ...state,\n itemsByID: deleteShipment(state, action)\n });\n const poMarkedAsPaidByBuyer = () => ({\n ...state,\n itemsByID: markAsPaidByBuyerReducer(state, action)\n });\n const poUnmarkedAsPaidByBuyer = () => ({\n ...state,\n itemsByID: unmarkAsPaidByBuyerReducer(state, action)\n });\n const poHiddenByBuyer = () => ({\n ...state,\n itemsByID: markTransactionAsHiddenByBuyerReducer(state, action)\n });\n const poShownByBuyer = () => ({\n ...state,\n itemsByID: markTransactionAsShownByBuyerReducer(state, action)\n });\n const setRestarted = () => ({\n ...state,\n itemsByID: setRestartedReducer(state, action)\n });\n const feedbacksLeftBySellerReducer = () => ({\n ...state,\n itemsByID: feedbacksLeftBySeller(state, action)\n });\n const feedbacksLeftByBuyerReducer = () => ({\n ...state,\n itemsByID: feedbacksLeftByBuyer(state, action)\n });\n\n const def = () => state;\n\n const reducers = {\n [myTraderaItems.actionTypes.BUYER_ACTIVE_ITEMS_HIDE]: poHiddenByBuyer,\n [myTraderaItems.actionTypes.BUYER_ACTIVE_ITEMS_SHOW]: poShownByBuyer,\n [myTraderaItems.actionTypes.UPDATE_ITEMS]: updateItems,\n [myTraderaItems.actionTypes\n .UPDATE_ITEMS_WITH_ERROR]: updateItemsWithError,\n [myTraderaItems.actionTypes.OPEN_MORE]: openMore,\n [myTraderaItems.actionTypes.SELECT_ITEM]: selectItem,\n [myTraderaItems.actionTypes.SELECT_ALL_ITEMS]: selectAllItems,\n [myTraderaItems.actionTypes.OPEN_DEL_LISTING_ITEM]: openDelListingItem,\n [myTraderaItems.actionTypes.REMOVE_ALL_SELECTED]: removeAllSelected,\n [myTraderaItems.actionTypes.REMOVE_ITEMS]: removeItems,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER]: poMarkedAsPaidBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER]: poMarkedAsPaidByBuyer,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER]: poUnmarkedAsPaidBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER]: poUnmarkedAsPaidByBuyer,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_SHIPPED_BY_SELLER]: markedAsShippedBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_SHIPPED_BY_SELLER]: unmarkedAsShippedBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_HIDDEN_BY_SELLER]: poHiddenBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_HIDDEN_BY_BUYER]: poHiddenByBuyer,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_SHOWN_BY_SELLER]: poShownBySeller,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_SHOWN_BY_BUYER]: poShownByBuyer,\n [myTraderaItems.actionTypes.ITEM_HIDDEN]: itemHidden,\n [myTraderaItems.actionTypes.ITEM_SHOWN]: itemShown,\n [myTraderaItems.actionTypes\n .FEEDBACK_LEFT_BY_SELLER]: feedbackLeftBySellerReducer,\n [myTraderaItems.actionTypes\n .FEEDBACK_LEFT_BY_BUYER]: feedbackLeftByBuyerReducer,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_SHIPPING_BOOKED]: poMarkedAsShippingBooked,\n [myTraderaItems.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED]: poUnmarkedAsShippingBooked,\n [myTraderaItems.actionTypes.SHIPMENT_DELETED]: poShipmentDeleted,\n [myTraderaItems.actionTypes.RESET_ITEMS]: resetItems,\n [myTraderaItems.actionTypes.SET_RESTARTED]: setRestarted,\n [purchaseOrderActionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER]: feedbacksLeftBySellerReducer,\n [purchaseOrderActionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER]: feedbacksLeftByBuyerReducer,\n [myTraderaItems.actionTypes.SET_NEW_SHIPPING_PRICE]: setNewShippingPrice\n };\n\n return !reducers[action.type] ? def() : reducers[action.type]();\n};\n\nexport const selectMyTraderaItemsState = state =>\n state.views.myTradera.myTraderaItems;\n","export const resolveMostPreciseTranslationKey = errorKeys => {\n const errorTranslationKeys = errorKeys.map(key =>\n getOrDefault(key.message)\n );\n\n const errorPrio = [DefaultReceiverAddressError, DefaultError];\n const prioritizedKeys = errorTranslationKeys.sort((a, b) => {\n const aPrio = errorPrio.indexOf(a);\n const bPrio = errorPrio.indexOf(b);\n\n return aPrio - bPrio;\n });\n\n return prioritizedKeys[0];\n};\n\nexport const isUnSupportedProduct = error =>\n error.message ===\n `${Shipment}:${ValidatedProperty.Product}:${ValidationErrorType.NotSupported}`;\n\nexport const getDefaultErrorKey = () => DefaultError;\n\nconst getOrDefault = errorCode => {\n const error = errorMap[errorCode];\n if (!error) return DefaultError;\n\n return error;\n};\n\nconst Unknown = 'Unknown';\nconst ReceiverAddress = 'ReceiverAddress';\nconst Shipment = 'Shipment';\nconst SenderAddress = 'SenderAddress';\nconst AgentAddress = 'AgentAddress';\nconst Product = 'Product';\n\nconst ValidatedProperty = {\n Unknown: 'Unknown',\n Street: 'Street',\n ZipCode: 'ZipCode',\n City: 'City',\n CountryCode: 'CountryCode',\n Email: 'Email',\n Phone: 'Phone',\n Length: 'Length',\n Width: 'Width',\n Height: 'Height',\n Weight: 'Weight',\n Product: 'Product',\n Type: 'Type'\n};\n\nconst ValidationErrorType = {\n Unknown: 'Unknown',\n Missing: 'Missing',\n WrongFormat: 'WrongFormat',\n NotReal: 'NotReal',\n ZipcodeRouting: 'ZipcodeRouting',\n NotSupported: 'NotSupported',\n NotEnabled: 'NotEnabled'\n};\n\nvar DefaultReceiverAddressError = 'shipping_validation_defaultReceiverAddress';\nvar DefaultSenderAddressError = 'shipping_validation_defaultSenderAddress';\nvar DefaultAgentAddressError = 'shipping_validation_defaultAgentAddress';\nvar DefaultError = 'shipping_validation_default';\n\nconst errorMap = {\n [`${ReceiverAddress}:${ValidatedProperty.City}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.City}:${ValidationErrorType.WrongFormat}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.NotSupported}`]: 'shipping_validation_invalidCountryCode',\n [`${ReceiverAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.WrongFormat}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.Email}:${ValidationErrorType.Missing}`]: 'shipping_validation_checkReceiverEmail',\n [`${ReceiverAddress}:${ValidatedProperty.Email}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkReceiverEmail',\n [`${ReceiverAddress}:${ValidatedProperty.Name}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.Name}:${ValidationErrorType.WrongFormat}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.Phone}:${ValidationErrorType.Missing}`]: 'shipping_validation_checkReceiverPhone',\n [`${ReceiverAddress}:${ValidatedProperty.Phone}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkReceiverPhone',\n [`${ReceiverAddress}:${ValidatedProperty.Street}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.Street}:${ValidationErrorType.WrongFormat}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.Unknown}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.Missing}`]: DefaultReceiverAddressError,\n [`${ReceiverAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.NotReal}`]: 'shipping_validation_checkReceiverZipCode',\n [`${ReceiverAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.NotSupported}`]: 'shipping_validation_checkReceiverZipCode',\n [`${ReceiverAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkReceiverZipCode',\n\n [`${Shipment}:${ValidatedProperty.Agent}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.City}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Height}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Length}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Street}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Unknown}:${ValidationErrorType.Unknown}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Unknown}:${ValidationErrorType.ZipcodeRouting}`]: 'shipping_validation_checkAddresses',\n [`${Shipment}:${ValidatedProperty.Weight}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.Width}:${ValidationErrorType.Missing}`]: DefaultError,\n [`${Shipment}:${ValidatedProperty.ZipCode}:${ValidationErrorType.NotReal}`]: 'shipping_validation_badZipCode',\n [`${Shipment}:${ValidatedProperty.ZipCode}:${ValidationErrorType.WrongFormat}`]: DefaultError,\n\n [`${SenderAddress}:${ValidatedProperty.City}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.City}:${ValidationErrorType.WrongFormat}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.WrongFormat}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.Email}:${ValidationErrorType.Missing}`]: 'shipping_validation_checkSenderEmail',\n [`${SenderAddress}:${ValidatedProperty.Email}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkSenderEmail',\n [`${SenderAddress}:${ValidatedProperty.Name}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.Name}:${ValidationErrorType.WrongFormat}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.Phone}:${ValidationErrorType.Missing}`]: 'shipping_validation_checkSenderPhone',\n [`${SenderAddress}:${ValidatedProperty.Phone}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkSenderPhone',\n [`${SenderAddress}:${ValidatedProperty.Street}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.Street}:${ValidationErrorType.WrongFormat}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.Unknown}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.Missing}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.NotReal}`]: DefaultSenderAddressError,\n [`${SenderAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.NotSupported}`]: 'shipping_validation_checkSenderZipCode',\n [`${SenderAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.WrongFormat}`]: 'shipping_validation_checkSenderZipCode',\n\n [`${AgentAddress}:${ValidatedProperty.Unknown}:${ValidationErrorType.WrongFormat}`]: DefaultAgentAddressError,\n [`${AgentAddress}:${ValidatedProperty.Street}:${ValidationErrorType.WrongFormat}`]: DefaultAgentAddressError,\n [`${AgentAddress}:${ValidatedProperty.ZipCode}:${ValidationErrorType.WrongFormat}`]: DefaultAgentAddressError,\n [`${AgentAddress}:${ValidatedProperty.City}:${ValidationErrorType.WrongFormat}`]: DefaultAgentAddressError,\n [`${AgentAddress}:${ValidatedProperty.CountryCode}:${ValidationErrorType.WrongFormat}`]: DefaultAgentAddressError,\n\n [`${Product}:${ValidatedProperty.Type}:${ValidationErrorType.NotEnabled}`]: 'shipping_validation_defaultProductNotEnabled',\n\n [`${Unknown}:${ValidatedProperty.Unknown}:${ValidationErrorType.Unknown}`]: DefaultError\n};\n","import api from './api';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { logger } from 'packages/logger';\nimport utils from './utils';\nimport {\n selectShipment,\n selectItemWithoutShipment,\n selectShippingPayment,\n selectCheckoutSummary,\n selectShippingCheckout,\n selectSellerPhoneNumber\n} from './selector';\nimport {\n resolveMostPreciseTranslationKey,\n getDefaultErrorKey,\n isUnSupportedProduct\n} from 'tradera-helpers/shipping-validation-errors';\nimport {\n setCheckoutSummaryFetching,\n openPaymentModal,\n closePaymentModal,\n setPaymentMethodData,\n resetOngoingPaymentAttempt\n} from './reducer';\nimport { CHECKOUT_ERRORS } from 'tradera-helpers/checkout-errors';\nimport {\n MODAL_TYPE,\n MODAL_STATUS,\n PAYMENT_OPTIONS\n} from 'tradera-state/views/shipping-checkout/initial-state';\nimport * as analytics from 'tradera-apps/tradera/components/vip/helpers/analytics';\nimport { paymentInstance } from 'tradera-apps/my-tradera/shipping-checkout/payment/braintree-drop-in';\nimport {\n selectMemberCountryCodeIso2,\n selectMemberEmail,\n selectMemberFirstName,\n selectMemberLastName\n} from 'tradera-state/member/selectors';\n\nexport const deleteShipment = createAsyncThunk(\n 'shippingCheckout/deleteShipment',\n async ({ shipmentId }, thunkAPI) => {\n try {\n const result = await api.deleteShipment(shipmentId);\n const { shipmentCheckoutId } = result?.data;\n return {\n shipmentId,\n shipmentCheckoutId\n };\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const createShipmentCheckout = createAsyncThunk(\n 'shippingCheckout/createShipmentCheckout',\n async (callback = () => {}, thunkAPI) => {\n try {\n const result = await api.createShipmentCheckout();\n callback();\n\n return result.data;\n } catch (error) {\n logger(error);\n callback();\n\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const getShippingOptions = createAsyncThunk(\n 'shippingCheckout/getShippingOptions',\n async (\n {\n fromCountry,\n toCountry,\n bringEnabled,\n postnordEnabled,\n dhlEnabled,\n schenkerEnabled\n },\n thunkAPI\n ) => {\n try {\n const result = await api.getShippingOptions(fromCountry, toCountry);\n\n return {\n data: result.data,\n bringEnabled: bringEnabled,\n postnordEnabled: postnordEnabled,\n dhlEnabled: dhlEnabled,\n schenkerEnabled: schenkerEnabled\n };\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const updateShipment = createAsyncThunk(\n 'shippingCheckout/updateShipment',\n async (shipmentDetails, thunkAPI) => {\n thunkAPI.dispatch(setCheckoutSummaryFetching(true));\n\n let mostPreciseTranslationKey;\n try {\n const { data } = await api.setShipmentDetails(shipmentDetails);\n const { errors } = data.responseStatus;\n if (!errors) {\n return thunkAPI.dispatch(\n createShipmentCheckout(() =>\n thunkAPI.dispatch(setCheckoutSummaryFetching(false))\n )\n );\n }\n\n mostPreciseTranslationKey = resolveMostPreciseTranslationKey(\n errors\n );\n } catch (error) {\n logger(error);\n mostPreciseTranslationKey = getDefaultErrorKey();\n }\n\n thunkAPI.dispatch(setCheckoutSummaryFetching(false));\n return thunkAPI.rejectWithValue({\n mostPreciseErrorKey: mostPreciseTranslationKey\n });\n }\n);\n\nexport const updateShippingProvider = (id, payload) => (dispatch, getState) => {\n const shipment = selectShipment(getState(), id);\n\n const { providerId, id: productId } = payload;\n const { purchaseOrderId, shipmentId, receiver } = shipment;\n\n const shippingPayload = buildShippingPayload(\n shipmentId,\n providerId,\n productId,\n purchaseOrderId,\n receiver\n );\n\n dispatch(updateShipment(shippingPayload));\n};\n\nexport const updateShippingAddress = (id, payload) => (dispatch, getState) => {\n const shipment = selectShipment(getState(), id);\n\n const {\n purchaseOrderId,\n shippingProvider,\n shipmentId,\n product,\n receiver\n } = shipment;\n\n const address = {\n name: payload.name || receiver.name,\n city: payload.city || receiver.city,\n zipCode: payload.zipCode || receiver.zipCode,\n street: payload.streetName || receiver.street\n };\n\n const shippingPayload = buildShippingPayload(\n shipmentId,\n shippingProvider,\n product.id,\n purchaseOrderId,\n address\n );\n dispatch(updateShipment(shippingPayload));\n};\n\nexport const createShipment = createAsyncThunk(\n 'shippingCheckout/createShipment',\n async (payload, thunkAPI) => {\n const {\n item: { selectedShipping },\n buyerContactDetails\n } = selectItemWithoutShipment(thunkAPI.getState());\n\n const { address } = payload;\n const shippingPayload = buildShippingPayload(\n null,\n payload.providerId || selectedShipping.providerId,\n payload.productId || selectedShipping.productId,\n payload.purchaseOrderId,\n {\n name: address?.name || buyerContactDetails.fullName,\n city: address?.city || buyerContactDetails.town,\n zipCode: address?.zipCode || buyerContactDetails.zipCode,\n street: address?.street || buyerContactDetails.streetName\n }\n );\n\n try {\n const { data } = await api.setShipmentDetails(shippingPayload);\n const { errors } = data.responseStatus;\n if (errors) {\n // Can happen i combined shipping when seller sets custom shipping price and changes product\n // in that case we want to let the seller choose a product from shipping selector\n if (isUnSupportedProduct(errors[0])) {\n return thunkAPI.rejectWithValue({\n hasUnSupportedProduct: true\n });\n }\n\n const mostPreciseTranslationKey = resolveMostPreciseTranslationKey(\n errors\n );\n\n return thunkAPI.rejectWithValue({\n mostPreciseErrorKey: mostPreciseTranslationKey\n });\n }\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue({\n mostPreciseErrorKey: getDefaultErrorKey()\n });\n }\n }\n);\n\nexport const markAsBooked = createAsyncThunk(\n 'shippingCheckout/markAsBooked',\n async (purchaseOrderId, thunkAPI) => {\n try {\n return await api.setShippingAsBooked(purchaseOrderId);\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const markAsShipped = createAsyncThunk(\n 'shippingCheckout/markAsShipped',\n async (purchaseOrderId, thunkAPI) => {\n try {\n return await api.setShippingAsShipped(purchaseOrderId);\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const getItemWithoutShipment = createAsyncThunk(\n 'shippingCheckout/getItemWithoutShipment',\n async (purchaseOrderId, thunkAPI) => {\n try {\n const { data } = await api.getMemberSoldItemShippingInfo(\n purchaseOrderId\n );\n const { responseStatus } = data;\n if (responseStatus?.errorCode) {\n return thunkAPI.rejectWithValue({\n errorCode: responseStatus?.errorCode\n });\n }\n\n return data;\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nexport const getShippingConfirmation = createAsyncThunk(\n 'shippingCheckout/getShippingConfirmation',\n async (shippingCheckoutId, thunkAPI) => {\n try {\n const { data } = await api.getShippingConfirmation(\n shippingCheckoutId\n );\n\n if (!data.pollBookingUrl) return data;\n\n const isBookingComplete = await pollShippingConfirmationStatus(\n data.pollBookingUrl,\n shippingCheckoutId\n );\n\n if (!isBookingComplete) {\n logger(\n `Booking was not completed after 10 retries. shippingCheckoutId ${shippingCheckoutId}`\n );\n return thunkAPI.rejectWithValue({ isLongPolling: true });\n }\n\n const response = await api.getShippingConfirmation(\n shippingCheckoutId\n );\n return response.data;\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nconst pollShippingConfirmationStatus = async pollBookingUrl =>\n new Promise((resolve, reject) => {\n let iterations = 0;\n const poller = setInterval(async () => {\n if (iterations === 10) {\n clearInterval(poller);\n return resolve(false);\n }\n\n try {\n const { data } = await api.getShippingConfirmationStatus(\n pollBookingUrl\n );\n\n if (data.isBookingComplete) {\n clearInterval(poller);\n return resolve(true);\n }\n } catch (error) {\n clearInterval(poller);\n logger(error);\n\n return reject(error);\n }\n // eslint-disable-next-line better-mutation/no-mutation\n iterations++;\n }, 2000);\n });\n\nconst buildShippingPayload = (\n shipmentId,\n shippingProvider,\n shippingProductId,\n purchaseOrderId,\n receiver\n) => ({\n shipmentId, // nullable if `null` -> new shipment is created\n shippingProvider,\n buyerAddress: {\n name: receiver.name,\n city: receiver.city,\n zipCode: receiver.zipCode,\n streetName: receiver.street\n },\n shippingProductId,\n purchaseOrderId\n});\n\n// Payment\n\nexport const getPaymentOptions = createAsyncThunk(\n 'shippingCheckout/getPaymentOptions',\n async (shipmentCheckoutId, thunkAPI) => {\n try {\n const { data } = await api.getPaymentOptions(shipmentCheckoutId);\n return data;\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nconst sleep = delay => new Promise(resolve => setTimeout(resolve, delay));\n\nconst PAYMENT_STATUS = {\n AUTHORIZED: 'Authorized',\n AWAITING_SWISH: 'AwaitingExternalAuthentication',\n CANCELLED: 'Cancelled',\n CANCELLING: 'Cancelling',\n CANCELLING_FAILED: 'CancellingFailed',\n COMPLETING: 'Completing',\n COMPLETING_FAILED: 'CompletingFailed',\n DECLINED: 'Declined',\n FAILED: 'Failed',\n INIT: 'Initializing',\n INIT_COMPLETE: 'Initialized',\n INIT_FAILED: 'InitializationFailed',\n SETTLED: 'Settled'\n};\n\n// eslint-disable-next-line no-control-regex\nconst containsNonPrintableAscii = value => value.match(/[^\\x00-\\x7F]/g);\n\nconst createThreeDSecureParameters = getState => {\n const currentState = getState();\n const { totalCost } = selectCheckoutSummary(currentState);\n const memberFirstName = selectMemberFirstName(currentState);\n const firstName = containsNonPrintableAscii(memberFirstName)\n ? null\n : memberFirstName;\n const memberLastName = selectMemberLastName(currentState);\n const lastName = containsNonPrintableAscii(memberLastName)\n ? null\n : memberLastName;\n\n const buyerAddress = {\n phoneNumber: selectSellerPhoneNumber(currentState)?.replace(\n /[^\\d]/g,\n ''\n ),\n countryCodeAlpha2: selectMemberCountryCodeIso2(currentState)\n };\n return {\n amount: totalCost,\n email: selectMemberEmail(currentState),\n billingAddress: {\n givenName: firstName,\n surname: lastName,\n ...buyerAddress\n },\n additionalInformation: {\n shippingGivenName: firstName,\n shippingSurname: lastName,\n shippingAddress: buyerAddress\n }\n };\n};\n\nexport const initBraintreePayment = (paymentOption, onComplete) => async (\n dispatch,\n getState\n) => {\n let requestOptions = {};\n\n if (\n paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD ||\n paymentOption === PAYMENT_OPTIONS.GOOGLEPAY\n ) {\n requestOptions = {\n threeDSecure: createThreeDSecureParameters(getState)\n };\n }\n\n dispatch(setCheckoutSummaryFetching(true));\n\n try {\n if (paymentInstance) {\n const data = await paymentInstance.requestPaymentMethod(\n requestOptions\n );\n dispatch(setPaymentMethodData(data));\n } else {\n throw { message: CHECKOUT_ERRORS.NO_PAYMENT_METHOD };\n }\n return dispatch(initPayment(onComplete));\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const initPayment = onComplete => async (dispatch, getState) => {\n const currentState = getState();\n\n const { ongoingPaymentAttempt } = selectShippingCheckout(currentState);\n const payment = selectShippingPayment(currentState);\n const { shipmentCheckoutId, selectedPayment, paymentMethodData } = payment;\n\n dispatch(closePaymentModal());\n dispatch(setCheckoutSummaryFetching(true));\n\n try {\n const { shipmentPaymentAttemptId } = ongoingPaymentAttempt;\n const paymentAttemptId = shipmentPaymentAttemptId || utils.getUuid();\n\n if (!shipmentPaymentAttemptId) {\n const formData = {\n shipmentPaymentAttemptId: paymentAttemptId,\n shipmentCheckoutId,\n paymentMethod: selectedPayment,\n paymentMethodData\n };\n await api.initializePayment(formData);\n }\n\n //POST successful? then start polling:\n return dispatch(\n checkPaymentStatus(paymentAttemptId, selectedPayment, onComplete)\n );\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const cancelPayment = async shipmentPaymentAttemptId => {\n const formData = {\n shipmentPaymentAttemptId\n };\n\n try {\n await api.cancelPayment(formData);\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const completePayment = (\n paymentAttemptId,\n paymentMethod,\n onComplete\n) => async dispatch => {\n const formData = {\n paymentAttemptId,\n googleAnalyticsData: analytics.getGaTrackingData()\n };\n\n try {\n await api.completePayment(formData);\n\n //POST successful? then start polling again:\n return dispatch(\n checkPaymentStatus(paymentAttemptId, paymentMethod, onComplete)\n );\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const checkPaymentStatus = (\n paymentAttemptId,\n paymentMethod,\n onComplete\n) => async (dispatch, getState) => {\n const { modal } = selectShippingPayment(getState());\n\n let poll = true;\n\n try {\n const paymentStatus = await api.getPaymentStatus(paymentAttemptId);\n\n const { data } = paymentStatus;\n\n switch (data?.status) {\n case PAYMENT_STATUS.AUTHORIZED:\n case PAYMENT_STATUS.COMPLETING:\n case PAYMENT_STATUS.INIT:\n case PAYMENT_STATUS.CANCELLING:\n poll = true;\n break;\n case PAYMENT_STATUS.AWAITING_SWISH:\n poll = true;\n if (!modal.open) {\n dispatch(\n openPaymentModal({\n open: MODAL_TYPE.SWISH_HANDEL,\n status: MODAL_STATUS.START,\n paymentAttemptId\n })\n );\n }\n break;\n case PAYMENT_STATUS.INIT_COMPLETE:\n poll = false;\n return dispatch(\n completePayment(paymentAttemptId, paymentMethod, onComplete)\n );\n case PAYMENT_STATUS.SETTLED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(setCheckoutSummaryFetching(false));\n onComplete();\n break;\n case PAYMENT_STATUS.DECLINED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n return Promise.reject(new Error(CHECKOUT_ERRORS.DECLINED));\n case PAYMENT_STATUS.CANCELLED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n break;\n case PAYMENT_STATUS.COMPLETING_FAILED:\n case PAYMENT_STATUS.FAILED:\n case PAYMENT_STATUS.INIT_FAILED:\n case PAYMENT_STATUS.CANCELLING_FAILED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n return Promise.reject(\n new Error(`Payment error: ${data?.status}`)\n );\n default:\n dispatch(closePaymentModal());\n poll = false;\n }\n } catch (error) {\n poll = false;\n return Promise.reject(error);\n }\n\n if (poll) {\n await sleep(1500);\n return dispatch(\n checkPaymentStatus(paymentAttemptId, paymentMethod, onComplete)\n );\n }\n};\n","import { logger } from 'packages/logger';\n//jshint module : true\nimport {\n searching,\n error\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { removePayout } from '../payouts/reducer';\nimport { selectPaymentsState } from 'tradera-apps/my-tradera/app/state/reducers/payments-reducer';\nconst actionTypes = {\n // Init\n INIT_DATA_LOAD: 'INIT_DATA_LOAD',\n INIT_DATA_LOADED: 'INIT_DATA_LOADED',\n\n // Swish\n UPDATE_PHONENUMBER: 'UPDATE_PHONENUMBER',\n INVALID_PHONENUMBER: 'INVALID_PHONENUMBER',\n UPDATE_VERIFYCODE: 'UPDATE_VERIFYCODE',\n INVALID_VERIFYCODE: 'INVALID_VERIFYCODE',\n DELETE_PHONENUMBER: 'DELETE_PHONENUMBER',\n SAVE_PHONENUMBER: 'SAVE_PHONENUMBER',\n SWISH_ENABLED: 'SWISH_ENABLED',\n SWISH_ERROR: 'SWISH_ERROR',\n\n // Bank\n DELETE_BANK_ACCOUNT: 'DELETE_BANK_ACCOUNT',\n UPDATE_CLEARING_NUMBER: 'UPDATE_CLEARING_NUMBER',\n UPDATE_ACCOUNT_NUMBER: 'UPDATE_ACCOUNT_NUMBER',\n BANK_NOT_MATCHED: 'BANK_NOT_MATCHED',\n IGNORE_BANK_NOT_MATCHED: 'IGNORE_BANK_NOT_MATCHED',\n BANK_ACCOUNT_SAVED: 'BANK_ACCOUNT_SAVED',\n INVALID_CLEARINGNUMBER: 'INVALID_CLEARINGNUMBER',\n INVALID_BANKACCOUNTNUMBER: 'INVALID_BANKACCOUNTNUMBER',\n BANK_ERROR: 'BANK_ERROR',\n\n // Tink\n INIT_TINK: 'INIT_TINK',\n CANCEL_TINK: 'CANCEL_TINK',\n SHOW_BANK_ACCOUNTS: 'SHOW_BANK_ACCOUNTS',\n SELECT_BANK_ACCOUNT: 'SELECT_BANK_ACCOUNT',\n TINK_COMPLETED: 'TINK_COMPLETED',\n TINK_ERROR: 'TINK_ERROR',\n\n // BankId\n SKIP_BANKID_AUTH: 'SKIP_BANKID_AUTH',\n BEGIN_BANKID_AUTH: 'BEGIN_BANKID_AUTH',\n CANCEL_BANKID_AUTH: 'CANCEL_BANKID_AUTH',\n BANKID_IN_PROGRESS: 'BANKID_IN_PROGRESS',\n BANKID_COMPLETED: 'BANKID_COMPLETED',\n BANKID_ERROR: 'BANKID_ERROR',\n INCREMENT_BANKID_ERROR: 'INCREMENT_BANKID_ERROR',\n\n // Payouts\n PAYOUTS_LOADED: 'PAYOUTS_LOADED',\n PAYOUTS_ERROR: 'PAYOUTS_ERROR'\n};\n\n// Init\n\nconst loadInitData = toLocalizedUrl => {\n return async dispatch => {\n try {\n dispatch({ type: actionTypes.INIT_DATA_LOAD });\n const response = await fetch(\n toLocalizedUrl('/my/payments2/GetInitData'),\n {\n method: 'GET',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n }\n );\n const result = await response.json();\n if (response.ok)\n dispatch({\n type: actionTypes.INIT_DATA_LOADED,\n payload: result\n });\n else\n dispatch({\n type: actionTypes.PAYOUTS_ERROR,\n payload: 'Det gick inte att ladda utbetalningar.'\n });\n\n dispatch(searching(false));\n dispatch(error(false));\n } catch (err) {\n logger(err);\n }\n };\n};\n\n// Swish\n\nconst updatePhoneNumber = newNumber => ({\n type: actionTypes.UPDATE_PHONENUMBER,\n payload: { number: newNumber, isValid: newNumber.length > 7 }\n});\n\nconst updateVerifyCode = verifyCode => ({\n type: actionTypes.UPDATE_VERIFYCODE,\n payload: verifyCode\n});\n\nconst deletePhoneNumber = () => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/DeletePhoneNumber', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n });\n await response.json();\n if (response.ok) dispatch({ type: actionTypes.DELETE_PHONENUMBER });\n else\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst verifyCode = code => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/VerifyCode', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ code: code })\n });\n const result = await response.json();\n const payload = {\n type: 'swish',\n completeText: 'Ditt Swish-nummer är nu tillagt och bekräftat.',\n verificationText: 'Bekräfta Swish-nummer'\n };\n if (response.ok) {\n dispatch({\n type: actionTypes.BEGIN_BANKID_AUTH,\n payload: payload\n });\n dispatch(bankIdAuthenticate());\n } else if (result.code == 'InvalidCode')\n dispatch({\n type: actionTypes.INVALID_VERIFYCODE,\n payload: 'Du har angett fel kod.'\n });\n else\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst savePhoneNumber = newNumber => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/SavePhoneNumber', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ phoneNumber: newNumber })\n });\n const result = await response.json();\n if (\n response.ok &&\n !result.requireSmsVerification &&\n !result.requireBankIdVerification\n ) {\n const payload = {\n type: 'swish',\n completeText:\n 'Ditt Swish-nummer är nu tillagt och bekräftat.',\n verificationText: 'Bekräfta Swish-nummer'\n };\n dispatch({\n type: actionTypes.SAVE_PHONENUMBER,\n payload: newNumber\n });\n dispatch({ type: actionTypes.SWISH_ENABLED });\n dispatch({\n type: actionTypes.SKIP_BANKID_AUTH,\n payload: payload\n });\n } else if (response.ok)\n dispatch({\n type: actionTypes.SAVE_PHONENUMBER,\n payload: newNumber\n });\n else if (result.code == 'InvalidPhoneNumber')\n dispatch({\n type: actionTypes.INVALID_PHONENUMBER,\n payload: 'Du har angett ett felaktigt telefonnummer.'\n });\n else if (result.code == 'InvalidCompanySwishNumber')\n dispatch({\n type: actionTypes.INVALID_PHONENUMBER,\n payload: 'Du har angett ett felaktigt Swishnummer.'\n });\n else if (result.code == 'SendSmsError')\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Det gick inte att skicka SMS. Försök igen.'\n });\n else\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst setVerifiedPhoneNumber = () => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/SetSwishVerified', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n });\n await response.json();\n if (response.ok) dispatch({ type: actionTypes.SWISH_ENABLED });\n else\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.SWISH_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\n// Bank\n\nconst updateAccountNumber = newAccountNumber => ({\n type: actionTypes.UPDATE_ACCOUNT_NUMBER,\n payload: {\n newAccountNumber: newAccountNumber,\n isValid: newAccountNumber.length > 4\n }\n});\n\nconst updateClearingNumber = newClearingNumber => ({\n type: actionTypes.UPDATE_CLEARING_NUMBER,\n payload: {\n newClearingNumber: newClearingNumber,\n isValid: newClearingNumber.length > 3\n }\n});\n\nconst deleteBankAccount = () => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/DeleteBankAccount', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n });\n if (response.ok) {\n dispatch({ type: actionTypes.DELETE_BANK_ACCOUNT });\n dispatch(removePayout());\n } else {\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst saveBankAccount = () => {\n return async (dispatch, getState) => {\n try {\n const clearingNumber = selectPaymentsState(getState())\n .bankAccountDetails.newClearingNumber;\n const accountNumber = selectPaymentsState(getState())\n .bankAccountDetails.newAccountNumber;\n const response = await fetch('/my/payments2/SaveBankAccount', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n clearingNumber: clearingNumber,\n accountNumber: accountNumber\n })\n });\n const result = await response.json();\n if (response.ok) {\n dispatch({\n type: actionTypes.BANK_ACCOUNT_SAVED,\n payload: result.maskedAccountNumber\n });\n } else if (result.code == 'InvalidClearingNumber') {\n dispatch({\n type: actionTypes.INVALID_CLEARINGNUMBER,\n payload:\n 'Du har angett ett felaktigt clearingnummer. Clearingnumret ska vara 4-5 siffror långt.'\n });\n } else if (result.code == 'InvalidBankAccountNumber') {\n dispatch({\n type: actionTypes.INVALID_BANKACCOUNTNUMBER,\n payload:\n 'Du har angett ett felaktigt bankkontonummer. Bankkontonumret ska vara mellan 7-10 siffror långt.'\n });\n } else {\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst initSaveBankAccount = () => {\n return async (dispatch, getState) => {\n try {\n const clearingNumber = selectPaymentsState(getState())\n .bankAccountDetails.newClearingNumber;\n const accountNumber = selectPaymentsState(getState())\n .bankAccountDetails.newAccountNumber;\n\n const response = await fetch('/my/payments2/MatchBank', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n clearingNumber: clearingNumber,\n accountNumber: accountNumber\n })\n });\n\n const result = await response.json();\n\n if (result.invalidNumber) {\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Felaktigt kontonummer'\n });\n return;\n }\n const payload = {\n type: 'bank',\n completeText: 'Ditt bankkonto är nu tillagt och bekräftat.',\n verificationText: 'Bekräfta bankkonto'\n };\n if (result.ok && !result.requireBankIdVerification) {\n dispatch(saveBankAccount());\n dispatch({\n type: actionTypes.SKIP_BANKID_AUTH,\n payload: payload\n });\n return;\n }\n if (result.ok) {\n dispatch({\n type: actionTypes.BEGIN_BANKID_AUTH,\n payload: payload\n });\n dispatch(bankIdAuthenticate());\n return;\n }\n\n dispatch({ type: actionTypes.BANK_NOT_MATCHED });\n if (result.requireBankIdVerification) {\n dispatch({\n type: actionTypes.BEGIN_BANKID_AUTH,\n payload: payload\n });\n } else {\n dispatch({\n type: actionTypes.SKIP_BANKID_AUTH,\n payload: payload\n });\n }\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.BANK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\n// Tink\nconst initTink = () => ({\n type: actionTypes.INIT_TINK\n});\n\nconst cancelTink = () => ({\n type: actionTypes.CANCEL_TINK\n});\n\nconst errorTink = () => ({\n type: actionTypes.TINK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n});\n\nconst loadBankAccounts = data => {\n return async dispatch => {\n try {\n const response = await fetch(\n '/my/payments2/TinkCallback?code=' + data.data,\n {\n method: 'GET',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n }\n );\n const result = await response.json();\n dispatch({\n type: actionTypes.SHOW_BANK_ACCOUNTS,\n payload: result.accounts\n });\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.TINK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst selectBankAccount = account => {\n return async dispatch => {\n dispatch({ type: actionTypes.SELECT_BANK_ACCOUNT, payload: account });\n const payload = {\n type: 'tink',\n completeText: 'Ditt bankkonto är nu tillagt och bekräftat.',\n verificationText: 'Bekräfta bankkonto'\n };\n dispatch({ type: actionTypes.BEGIN_BANKID_AUTH, payload: payload });\n };\n};\n\n// Needs better handling: 500 error on fetch does not catch\nconst saveTinkBankAccount = account => {\n return async dispatch => {\n try {\n const response = await fetch('/my/payments2/SaveTinkBankAccount', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ accountNumber: account.accountNumber })\n });\n const result = await response.json();\n if (result.errorMessage) {\n dispatch({\n type: actionTypes.TINK_ERROR,\n payload: result.errorMessage\n });\n } else {\n dispatch({\n type: actionTypes.TINK_COMPLETED,\n payload: result.maskedAccountNumber\n });\n }\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.TINK_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\n// BankId\n\nconst cancelBankId = () => {\n return async dispatch => {\n try {\n await fetch('/bankid/cancel', {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n });\n } catch (err) {\n logger(err);\n }\n\n dispatch({ type: actionTypes.CANCEL_BANKID_AUTH });\n };\n};\n\nconst bankIdContinue = () => {\n return async (dispatch, getState) => {\n dispatch({ type: actionTypes.IGNORE_BANK_NOT_MATCHED });\n if (\n selectPaymentsState(getState()).bankIdVerification\n .requireBankIdVerification\n ) {\n dispatch(bankIdAuthenticate());\n } else {\n dispatch(saveBankAccount());\n }\n };\n};\n\nconst bankIdAuthenticate = () => {\n return async dispatch => {\n try {\n const response = await fetch(ENDPOINTS.BANK_ID_AUTHENTICATE, {\n method: 'POST',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n purpose: 'confirm-bank-account-or-swish'\n })\n });\n\n const result = await response.json();\n if (result.errorMessage) {\n dispatch({\n type: actionTypes.BANKID_ERROR,\n payload: bankIdUserMessage(result.errorMessage)\n });\n return;\n }\n dispatch({ type: actionTypes.BANKID_IN_PROGRESS, payload: result });\n\n dispatch(bankIdPollProgress());\n } catch (err) {\n logger(err);\n dispatch({\n type: actionTypes.BANKID_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n };\n};\n\nconst sleep = delay => new Promise(resolve => setTimeout(resolve, delay));\n\nconst bankIdPollProgress = () => {\n return async (dispatch, getState) => {\n try {\n const response = await fetch(\n `${ENDPOINTS.BANK_ID_PROGRESS}?${new Date().getTime()}`,\n {\n method: 'GET',\n credentials: 'same-origin',\n headers: { 'Content-Type': 'application/json' }\n }\n );\n const result = await response.json();\n if (result.errorMessage) {\n dispatch({\n type: actionTypes.BANKID_ERROR,\n payload: bankIdUserMessage(result.errorMessage)\n });\n return;\n }\n if (result.isCompleted) {\n if (\n selectPaymentsState(getState()).bankIdVerification.type ===\n 'swish'\n ) {\n dispatch(setVerifiedPhoneNumber());\n } else if (\n selectPaymentsState(getState()).bankIdVerification.type ===\n 'bank'\n ) {\n dispatch(saveBankAccount());\n } else if (\n selectPaymentsState(getState()).bankIdVerification.type ===\n 'tink'\n ) {\n dispatch(\n saveTinkBankAccount(\n selectPaymentsState(getState()).tink.account\n )\n );\n }\n dispatch({ type: actionTypes.BANKID_COMPLETED });\n return;\n }\n await sleep(3000);\n if (\n !selectPaymentsState(getState()).bankIdVerification\n .bankIdInProgress\n ) {\n return;\n }\n dispatch(bankIdPollProgress());\n } catch (err) {\n dispatch({ type: actionTypes.INCREMENT_BANKID_ERROR });\n if (\n selectPaymentsState(getState()).bankIdVerification.errorCount <\n 3\n ) {\n dispatch(bankIdPollProgress());\n } else {\n logger(err);\n dispatch({\n type: actionTypes.BANKID_ERROR,\n payload: 'Ett fel uppstod. Försök igen.'\n });\n }\n }\n };\n};\n\nconst bankIdUserMessage = errorMessage => {\n switch (errorMessage) {\n case 'START_FAILED':\n return 'BankID-appen verkar inte finnas i din dator eller telefon. Installera den och hämta ett BankID hos din internetbank.';\n case 'EXPIRED_TRANSACTION':\n return 'BankID-appen svarar inte. Kontrollera att den är startad och att du har internetanslutning. Om du inte har något giltigt BankID kan du hämta ett hos din Bank. Försök sedan igen.';\n case 'ALREADY_IN_PROGRESS':\n return 'En identifiering för det här personnumret är redan påbörjad. Vänta en stund och försök igen.';\n case 'CERTIFICATE_ERROR':\n return 'Det BankID du försöker använda är för gammalt eller spärrat. Använd ett annat BankID eller hämta ett nytt hos din internetbank.';\n case 'CANCELLED':\n return 'Åtgärden avbruten. Försök igen.';\n case 'USER_CANCEL':\n return 'Åtgärden avbruten.';\n default:\n return 'Ett fel uppstod. Försök igen.';\n }\n};\n\nexport default {\n actionTypes,\n loadInitData,\n deletePhoneNumber,\n updatePhoneNumber,\n savePhoneNumber,\n updateVerifyCode,\n verifyCode,\n deleteBankAccount,\n updateAccountNumber,\n updateClearingNumber,\n initSaveBankAccount,\n initTink,\n cancelTink,\n errorTink,\n loadBankAccounts,\n selectBankAccount,\n saveTinkBankAccount,\n cancelBankId,\n bankIdContinue,\n bankIdAuthenticate\n};\n","export const MODAL_TYPE = {\n BANK_ID: 'BANK_ID',\n SWISH_APP_2_APP: 'SWISH_APP_2_APP',\n SWISH_HANDEL: 'SWISH_HANDEL'\n};\n\nexport const MODAL_STATUS = {\n START: 'START',\n COMPLETE: 'COMPLETE',\n ERROR: 'ERROR'\n};\n\nexport const PAYMENT_OPTIONS = {\n CARD: 'Card',\n PAYNOVA: 'Paynova',\n PAYPAL: 'PayPal',\n APPLEPAY: 'ApplePay',\n GOOGLEPAY: 'GooglePay',\n SWISH_APP_2_APP: 'SwishApp2App',\n SWISH_HANDEL: 'SwishHandel',\n VISA_MASTERCARD: 'VisaMasterCard',\n PAYNOVA_DIRECT_INVOICE: 'PaynovaDirectInvoice',\n PAYNOVA_INSTALLMENTS: 'PaynovaInstallments',\n KLARNA: 'Klarna'\n};\n\nexport const PAYMENT_OPTION_STATUS = {\n AVAILABLE: 'Available',\n UNAVAILABLE_DUE_TO_AMOUNT: 'UnavailableDueToAmount',\n UNAVAILABLE_DUE_TO_SHIPPING_NOT_TRACEABLE:\n 'UnavailableDueToShippingNotTraceable',\n UNAVAILABLE_DUE_TO_SHIPPING_NOT_TRACEABLE_TO_SERVICEPOINT:\n 'UnavailableDueToShippingNotTraceableToServicePoint'\n};\n\nexport default () => {\n return {\n buyerMember: null,\n checkoutSummary: {\n hasError: false,\n isFetching: false\n },\n hasError: false,\n items: null,\n isFetching: false,\n payment: {\n hasError: false,\n isFetching: false,\n paymentOptions: null,\n selectedPayment: null,\n buyerProtection: false,\n orderCalculation: null,\n paymentMethodData: null,\n isValid: false\n },\n sellerMember: null,\n modal: {\n open: '',\n status: MODAL_STATUS.START\n },\n ongoingPaymentAttempt: null,\n shippingInfo: {\n shippingOptions: null,\n shippingPriceRange: null,\n shippingDiscount: null,\n collectionPoints: null,\n selectedCollectionPoint: null,\n isFetching: false\n },\n combinedShippingInfo: null,\n purchaseOrder: null,\n shippingOptionsLoading: false\n };\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst NewTodayLabel = ({ className }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_isNewToday')}\n \n );\n};\n\nexport default NewTodayLabel;\n","import React, { useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { localizedDayjs } from 'tradera-utils/date';\n\nexport const useDayJs = () => {\n const preferredLanguageCodeIso2 = useSelector(\n state => state.language.preferred.languageCodeIso2\n );\n const localizedDayjsCallback = useCallback(\n (...args) => localizedDayjs(preferredLanguageCodeIso2)(...args),\n [preferredLanguageCodeIso2]\n );\n return localizedDayjsCallback;\n};\n\nexport const withDayJs = WrappedComponent => {\n const WithDayJs = props => {\n const localizedDayjs = useDayJs();\n return ;\n };\n\n WithDayJs.displayName = `withDayJs(${WrappedComponent.displayName ||\n WrappedComponent.name}`;\n\n return WithDayJs;\n};\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport RadioSwitch from 'tradera-components/form-controls/radio-switch';\n\nexport const 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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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})));","const STORAGE_KEYS = {\n COOKIE_NOTIFICATION: 'cookieNotification',\n HIDE_WISH_LIST_INFO_CARD: 'hideWishListInfoCard',\n ITEMS_CLICK: 'items-click',\n SYI_IMAGE_FORMAT_HINT: 'syi-image-format-tooltip',\n SAVE_SEARCH_HINT: 'save-search-tooltip',\n SEARCH_RECENT: 'search-recent',\n WEB_PUSH_ACCEPTED: 'web_push_accepted',\n WEB_PUSH_SHOWN_MODALS: 'webPushModalsShown',\n SELLER_LIST_COMPACT_VIEW: 'sellerListCompactView',\n SYI_NEW_LAYOUT_INFO_DISMISSED: 'syiNewLayoutInfoDismissed',\n SYI_DESCRIPTION_LANGUAGE_DISMISSED: 'syiDescriptionLanguageDismissed',\n SYI_RESELL_SHOWN_FOR_DRAFT_IDS: 'syiResellShownForDraftIds',\n BATCH_PAYOUTS_ALERT_DISMISSED: 'batchPayoutsAlertDismissed',\n // State caches\n CACHE_MESSAGING_BADGES: 'cache.messagingBadges',\n CACHE_RECENTLY_VIEWED_ITEMS: 'cache.recentlyViewedItems',\n CACHE_SYSTEM_MESSAGES: 'cache.systemMessages',\n // Apple ID login user\n APPLE_ID_USER: 'appleId.user'\n};\n\nconst STORAGE_VALUES = {\n SAVE_SEARCH_HINT_CLICKED: 'CLOSE_CLICKED',\n SYI_IMAGE_FORMAT_HINT_CLICKED: 'CLOSE_CLICKED'\n};\n\nexport { STORAGE_KEYS, STORAGE_VALUES };\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { 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","/**\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","export default {\n INITIALIZE: 'PAGE/INITIALIZE',\n SET_PAGE_TYPE: 'PAGE/SET_PAGE_TYPE',\n SET_PAGE_META_FROM_SEARCH_RESULT: 'PAGE/SET_PAGE_META_FROM_SEARCH_RESULT',\n SET_PAGE_META: 'PAGE/SET_PAGE_META'\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","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--3_reZ\",\"target\":\"target--2S-Ew\",\"arrow\":\"arrow--1tkPu\",\"tooltip\":\"tooltip--1b7b2\"};","import React from 'react';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport styles from './info-tooltip.module.scss';\n\nexport const InfoTooltip = ({\n customIcon,\n className = '',\n containerClassName = '',\n children\n}) => (\n \n \n {customIcon || }\n\n \n \n {children}\n \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","'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;","export default {\n INITIALIZE: 'UI/INITIALIZE',\n TOGGLE_HEADER_SEARCH: 'UI/TOGGLE_HEADER_SEARCH',\n OPEN_GDPR_MODAL: 'UI/OPEN_GDPR_MODAL',\n CLOSE_GDPR_MODAL: 'UI/CLOSE_GDPR_MODAL',\n OPEN_GDPR_SETTINGS: 'UI/OPEN_GDPR_SETTINGS',\n CLOSE_GDPR_SETTINGS: 'UI/CLOSE_GDPR_SETTINGS',\n OPEN_QUICK_VIEW: 'UI/OPEN_QUICK_VIEW',\n CLOSE_QUICK_VIEW: 'UI/CLOSE_QUICK_VIEW',\n LOADING_QUICK_VIEW: 'UI/LOADING_QUICK_VIEW',\n OPEN_VIDEO_MODAL: 'UI/OPEN_VIDEO_MODAL',\n CLOSE_VIDEO_MODAL: 'UI/CLOSE_VIDEO_MODAL',\n OPEN_YOUTUBE_VIDEO_MODAL: 'UI/OPEN_YOUTUBE_VIDEO_MODAL',\n CLOSE_YOUTUBE_VIDEO_MODAL: 'UI/CLOSE_YOUTUBE_VIDEO_MODAL',\n OPEN_MESSAGING_MODAL: 'UI/OPEN_MESSAGING_MODAL',\n CLOSE_MESSAGING_MODAL: 'UI/CLOSE_MESSAGING_MODAL',\n OPEN_NOTIFICATION_OPTIN_MODAL: 'UI/OPEN_NOTIFICATION_OPTIN_MODAL',\n CLOSE_NOTIFICATION_OPTIN_MODAL: 'UI/CLOSE_NOTIFICATION_OPTIN_MODAL',\n OPEN_MODAL: 'UI/OPEN_MODAL',\n CLOSE_MODAL: 'UI/CLOSE_MODAL',\n OPEN_SHARE_MODAL: 'UI/OPEN_SHARE_MODAL',\n CLOSE_SHARE_MODAL: 'UI/CLOSE_SHARE_MODAL',\n ITEM_LAYOUT: 'UI/ITEM_LAYOUT',\n UPDATE_SYSTEM_MESSAGES: 'UI/UPDATE_SYSTEM_MESSAGES',\n UPDATE_MESSAGING_NOTIFICATIONS: 'UI/UPDATE_MESSAGING_NOTIFICATIONS',\n OPEN_PROFILE_MENU: 'UI/OPEN_PROFILE_MENU',\n CLOSE_PROFILE_MENU: 'UI/CLOSE_PROFILE_MENU',\n OPEN_CATEGORY_DROPDOWN_MENU: 'UI/OPEN_CATEGORY_DROPDOWN_MENU',\n CLOSE_CATEGORY_DROPDOWN_MENU: 'UI/CLOSE_CATEGORY_DROPDOWN_MENU',\n OPEN_SEARCH_FORM: 'UI/OPEN_SEARCH_FORM',\n CLOSE_SEARCH_FORM: 'UI/CLOSE_SEARCH_FORM',\n REQUEST_ITEM_SETTINGS: 'UI/REQUEST_ITEM_SETTINGS',\n OPEN_ITEM_SETTINGS: 'UI/OPEN_ITEM_SETTINGS',\n CLOSE_ITEM_SETTINGS: 'UI/CLOSE_ITEM_SETTINGS',\n SITE_LAYOUT: 'UI/SITE_LAYOUT',\n SET_HAS_SEARCH: 'UI/SET_HAS_SEARCH',\n OPEN_HELP_SECTION: 'UI/OPEN_HELP_SECTION',\n CLOSE_HELP_SECTION: 'UI/CLOSE_HELP_SECTION',\n // General action types without prefix that many reducers can listen to\n LOG_OUT: 'LOG_OUT'\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nconst PaymentSummary = ({\n formattedPrice,\n shippingOptions,\n isSellpyCheckout\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 {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","// extracted by mini-css-extract-plugin\nexport default {\"combined-shipping-badge\":\"combined-shipping-badge--XQ8H-\",\"combinedShippingBadge\":\"combined-shipping-badge--XQ8H-\",\"combined-shipping-badge-shipping\":\"combined-shipping-badge-shipping--2ztnT\",\"combinedShippingBadgeShipping\":\"combined-shipping-badge-shipping--2ztnT\",\"compact\":\"compact--3cwI6\",\"top-center\":\"top-center--3ilAd\",\"topCenter\":\"top-center--3ilAd\",\"badge-days\":\"badge-days--EflCu\",\"badgeDays\":\"badge-days--EflCu\",\"icon-relative-size\":\"icon-relative-size--21Ve_\",\"iconRelativeSize\":\"icon-relative-size--21Ve_\"};","import React from 'react';\nimport CombinedShippingIcon from '@tradera/blueprint/theme/icons2/combined-shipping.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport styles from './combined-shipping-badge.module.scss';\nimport { useSelector } from 'react-redux';\n\nconst CombinedShippingBadge = ({\n days,\n position,\n className = '',\n freeShippingCostLimit,\n compact,\n disableFreeShippingCostLimit = false\n}) => {\n const { t } = useTranslator();\n\n const isAutoCalcPriceShippingSettings = useSelector(\n state =>\n state.environment.featureSwitches[\n 'auto-calc-price-shipping-settings'\n ]\n );\n\n return (\n \n \n \n \n {t('combinedShippingBadge_title')}\n {days !== undefined && (\n \n {' '}\n {t('combinedShippingBadge_count_days', {\n count: days\n })}\n \n )}\n \n {freeShippingCostLimit !== undefined &&\n isAutoCalcPriceShippingSettings &&\n !disableFreeShippingCostLimit && (\n \n \n {t(\n 'combinedShippingBadge_x_freeShippingCostLimit',\n {\n freeShippingCostLimit\n }\n )}\n \n \n )}\n \n \n );\n};\n\nexport { CombinedShippingBadge };\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","export const selectRouterState = state => state.router;\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const getUuid = () => uuidv4();\n\n// Export object for Sinon stubbing\nexport default {\n getUuid\n};\n","import { useSelector } from 'react-redux';\n\nconst useIsLoggedIn = () => useSelector(state => state.member?.isLoggedIn);\n\nexport default useIsLoggedIn;\n","import { logger } from 'packages/logger';\nimport { nullifyUndefinedProperties } from 'tradera-utils/object';\n\n/**\n *\n * @param {object} initData\n * @param {object} [initData.featureSwitches]\n * @param {object} [initData.startPageResponse]\n * @param {object} [initData.trendingBrands]\n * @param {object} [initData.trendingSearches]\n * @returns {{isFetching: boolean, hasResults: boolean, config: object, trendingBrands: object, trendingSearches: object}}\n */\nexport default (initData = {}) => {\n const {\n startPageResponse,\n trendingBrands = { items: [], status: 'NOT_FETCHED' },\n trendingSearches = { items: [], status: 'NOT_FETCHED' },\n wishList = { itemIds: [], status: 'NOT_FETCHED' },\n favouriteSellers = {\n sellers: [],\n sellerSuggestions: [],\n items: [],\n totalItems: 0,\n status: 'NOT_FETCHED'\n }\n } = initData;\n let config;\n if (startPageResponse?.config) {\n try {\n config = JSON.parse(startPageResponse.config);\n } catch (error) {\n logger(error);\n }\n }\n return nullifyUndefinedProperties({\n status: config ? 'HAS_DATA' : 'NOT_FETCHED',\n config,\n trendingBrands,\n trendingSearches,\n wishList,\n favouriteSellers\n });\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport initialState from './initial-state';\n\nconst startPageSlice = createSlice({\n name: 'startPage',\n initialState: initialState(),\n reducers: {\n initialize: (_state, { payload }) => {\n return initialState(payload);\n },\n setStartPageConfigAction: (state, { payload }) => {\n state.config = payload.config;\n state.status = payload.status;\n },\n setStartPageConfigStatusAction: (state, { payload }) => {\n state.status = payload.status;\n },\n setTrendingBrandsAction: (state, { payload }) => {\n state.trendingBrands.items = payload.items;\n state.trendingBrands.status = payload.status;\n },\n setTrendingBrandsStatusAction: (state, { payload }) => {\n state.trendingBrands.status = payload.status;\n },\n setTrendingSearchesAction: (state, { payload }) => {\n state.trendingSearches.items = payload.items;\n state.trendingSearches.status = payload.status;\n },\n setTrendingSearchesStatusAction: (state, { payload }) => {\n state.trendingSearches.status = payload.status;\n },\n setWishListAction: (state, { payload }) => {\n state.wishList.itemIds = payload.itemIds;\n state.wishList.status = payload.status;\n },\n setWishListStatusAction: (state, { payload }) => {\n state.wishList.status = payload.status;\n },\n setFavouriteSellersAction: (state, { payload }) => {\n state.favouriteSellers = {\n ...state.favouriteSellers,\n ...payload\n };\n },\n setFavouriteSellersStatusAction: (state, { payload }) => {\n state.favouriteSellers.status = payload.status;\n }\n }\n});\n\nexport const {\n initialize,\n setStartPageConfigAction,\n setStartPageConfigStatusAction,\n setTrendingBrandsAction,\n setTrendingBrandsStatusAction,\n setTrendingSearchesAction,\n setTrendingSearchesStatusAction,\n setWishListAction,\n setWishListStatusAction,\n setFavouriteSellersAction,\n setFavouriteSellersStatusAction\n} = startPageSlice.actions;\n\nexport default startPageSlice.reducer;\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/logger';\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/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 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});\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","const bannedCountries = new Set([\n 'by',\n 'cu',\n 'fx',\n 'ir',\n 'kp',\n 'ru',\n 'sy',\n 'ua'\n]);\n\nexport const removeBannedCountries = countryCodeIso2 =>\n !bannedCountries.has(countryCodeIso2.toLowerCase());\n\nexport const getAvailableCountries = t => {\n return Object.keys(countries)\n .filter(removeBannedCountries)\n .map(code => ({\n code,\n name: t(mapCountryCodeToCountryKey(code))\n }))\n .sort((a, b) => (a.name > b.name ? 1 : -1));\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 = countries[countryCode.toLowerCase()];\n if (!lokaliseKey)\n throw `CountryCode ${countryCode} has no mapping to lokalise key`;\n return lokaliseKey;\n};\n\nexport const countries = {\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};\n","export default {\n BRAND_PAGE: 'Brand',\n BRAND_LIST_PAGE: 'BrandList',\n CATEGORY_LIST: 'CategoryList',\n CATEGORY_RESULT_PAGE: 'Category',\n CUSTOM_RESULT_PAGE: 'CustomResults',\n DEFAULT: 'default',\n ENDLESS_RECOMMENDATIONS_PAGE: 'EndlessRecommendation',\n ERROR_PAGE: 'ErrorPage',\n FAVOURITE_SELLERS_PAGE: 'FavouriteSellers',\n MY_TRADERA_PAGE: 'MyTradera',\n PROFILE_PAGE: 'ProfilePage',\n REPORT_ITEM_PAGE: 'ReportItem',\n SEARCH_RESULT_PAGE: 'SearchResults',\n START_PAGE: 'StartPage',\n SYI_PAGE: 'SellItem',\n TRADERA_SHOP_PAGE: 'TraderaShop',\n VALUATION: 'Valuation',\n VIEW_ITEM_PAGE: 'VIP'\n};\n","export const getSyiSlice = state => state.views.syi;\nexport const selectShortDescription = state =>\n getSyiSlice(state).shortDescription.shortDescription;\n","export const VIEW_STATES = {\n FORM: 'FORM',\n ITEM_ENDED: 'ITEM_ENDED',\n LOADING: 'LOADING',\n SUBMIT_FAILED: 'SUBMIT_FAILED',\n SUBMIT_SUCCESS: 'SUBMIT_SUCCESS',\n SUBMITTING: 'SUBMITTING'\n};\n\nexport const REASONS = {\n NONE: '0',\n SUSPECTED_FRAUD: '1',\n ITEM_IS_A_COUNTERFEIT: '2',\n BRAND_NAME_MISUSE: '3',\n WRONG_CATEGORY: '4',\n PROHIBITED_SHIPPINGvOR_PAYMEN_TMETHOD: '5',\n OTHER_PROHIBITED_ITEM: '6',\n OTHER_PROHIBITED_SETUP: '7',\n OTHER: '8'\n};\n","export const GPT_PAGE_NAMES = {\n NONE: 'other',\n STARTPAGE: 'startPage',\n MY_TRADERA: 'myTradera',\n SYI: 'syi',\n SRP: 'srp',\n CRP: 'crp',\n LAST_CHANCE: 'lastChance',\n NEW_TODAY: 'newToday',\n BLP: 'blp',\n VIP: 'vip',\n SHOP_SELLER_ITEMS: 'shopSellerItems',\n SELLER_ITEMS: 'sellerItems',\n BRAND_LIST: 'brand',\n CATEGORY_LIST: 'category',\n FALLBACK: 'fallback',\n MUSIKHJALPEN: 'musikhjalpen',\n WISHLIST: 'wishlist',\n TILLSAMMANS: 'tillsammans',\n CAUSE: 'cause'\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/logger';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport {\n defaultJsonRequestHeaders,\n handleError,\n API_ERRORS,\n reloadOnUnauthorized\n} from 'tradera-utils/api';\nimport { setAds } 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 { ComponentsWithStitchAds } from 'tradera-apps/tradera/components/discover/components/search-results/items-with-stiched-ads';\nimport { touchWebClient } from 'tradera-utils/http';\nimport { GPT_PAGE_NAMES } from 'tradera-state/ads/constants';\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 empty: 'empty' // final state\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 ssrItemIds,\n loader,\n noMoreItemsMarker,\n onError,\n onReachedEnd,\n openQuickView,\n setAds,\n showAds,\n title,\n toggleWishlist\n } = props;\n\n const [loadingState, setLoadingState] = useState(\n ssrItemIds\n ? ssrItemIds.length > 0\n ? LOADING_STATES.ready\n : LOADING_STATES.empty\n : LOADING_STATES.initializing\n );\n const [currentPage, setCurrentPage] = useState(0);\n const [itemIds, setItemIds] = useState(ssrItemIds || []);\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 // eslint-disable-next-line better-mutation/no-mutation\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.empty);\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.empty);\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 &&\n loadingTriggerInView &&\n !ssrItemIds)\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 ssrItemIds\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.empty) {\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.empty && errorFallback}\n {loadingState === LOADING_STATES.end && noMoreItemsMarker}\n {infiniteScrollEnabled &&\n loadingState !== LOADING_STATES.end &&\n loadingState !== LOADING_STATES.empty && (\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 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(setAds(ads)),\n toggleWishlist: itemId => dispatch(itemActions.wishlist(itemId))\n});\n\nexport { Recommendations, LOADING_STATES };\nexport default connect(mapStateToProps, mapDispatchToProps)(Recommendations);\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-zoom/view-item-carousel-zoom';\nimport { LocalLoader } from 'tradera-components/loader/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 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","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"logo--swiNm\",\"logo-white\":\"logo-white--uH6jv\",\"logoWhite\":\"logo-white--uH6jv\",\"logo-dark\":\"logo-dark--3dsP6\",\"logoDark\":\"logo-dark--3dsP6\"};","import React from 'react';\nimport styles from './mit-id-logo.module.scss';\n\nexport const MitIdLogo = ({ className = '', color }) => {\n const logoClassName =\n color === 'white'\n ? styles.logoWhite\n : color === 'dark'\n ? styles.logoDark\n : styles.logoWhite;\n return (\n \n \n \n );\n};\n","import { selectIsFeatureEnabled } from 'tradera-state/environment/selectors';\nimport { selectIsDanishVisitor } from 'tradera-state/shipping-region/selectors';\n\nexport const selectIsGoogleAdsEnabled = state =>\n !selectIsDanishVisitor(state) && selectIsFeatureEnabled('google-ads');\n","export const selectInvoiceCheckout = state =>\n state.views.invoiceCheckout.invoice;\n\nexport const selectInvoicePayment = state =>\n state.views.invoiceCheckout.payment;\n\nexport const selectInvoiceOngoingPayment = state =>\n state.views.invoiceCheckout.ongoingPaymentAttempt;\n\nexport const selectCheckoutSummary = state =>\n state.views.invoiceCheckout.checkoutSummary;\n\nexport const selectSellerPhoneNumber = state =>\n state.views.invoiceCheckout.sellerPhoneNumber;\n","export default {\n ACTIVE_FILTER_STATES_COUNTY: [\n 'Blekinge',\n 'Dalarna',\n 'Gavleborg',\n 'Gotland',\n 'Halland',\n 'Jamtland',\n 'Jonkoping',\n 'Kalmar',\n 'Kronoberg',\n 'Norrbotten',\n 'Skane',\n 'Sodermanland',\n 'Stockholm',\n 'Uppsala',\n 'Varmland',\n 'Vasterbotten',\n 'Vasternorrland',\n 'Vastmanland',\n 'VastraGotaland',\n 'Orebro',\n 'Ostergotland'\n ],\n ACTIVE_FILTER_STATES_ITEM_CONDITION: ['New', 'Used'],\n ACTIVE_FILTER_STATES_ITEM_STATUS: ['Ended'],\n ACTIVE_FILTER_STATES_ITEM_TYPE: ['Auction', 'FixedPrice'],\n ACTIVE_FILTER_STATES_SELLER_TYPE: ['Private', 'Company'],\n FILTER_STATES_ALLOWED_BUYER_REGIONS: {\n SWEDEN: 'sweden;eu;international',\n EU: 'eu;international',\n INTERNATIONAL: 'international',\n NORDIC: 'nordic;international'\n },\n MODALS: {\n FILTER_MODAL: 'filterModal',\n CATEGORY_MODAL: 'categoryModal'\n },\n ITEM_LAYOUT: {\n GRID: 'layout-grid',\n LIST: 'layout-list'\n }\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","/**\n OBSOLETE - use google tag manager service instead:\n src\\EbaySweden.TouchWeb\\static\\script\\app\\ui\\google-tagmanager-service.js\n\n\n * Ported from Applications/TouchWeb/src/EbaySweden.TouchWeb/static/script/app/ui/layout/google-tagmanager.js\n * Best way to import this module is `import * as Analytics from 'analytics'`\n */\n\nimport * as Sentry from '@sentry/react';\n\nexport const pushToDataLayer = payload => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(payload);\n};\nexport const trackPageView = () =>\n window.ga\n ? ga('send', 'pageview', location.pathname)\n : pushToDataLayer({ event: 'trackPageview' });\nexport const isNonInteractive = analyticsData =>\n analyticsData.userTriggered === undefined\n ? true\n : !analyticsData.userTriggered;\n/**\n * trackTiming\n * @param {*} category\n * @param {*} variable\n * @param {*} value\n * @param {*} label\n */\nexport const trackTiming = (category, variable, value, label = '') =>\n window.ga ? ga('send', 'timing', category, variable, value, label) : false;\n\n/**\n * Track Analytics Event\n */\nexport const trackEvent = analyticsData => {\n if (!analyticsData) {\n return;\n }\n pushToDataLayer({\n event: 'trackEvent',\n eventCategory: analyticsData.category || '',\n eventAction: analyticsData.action || '',\n eventLabel: analyticsData.label || '',\n eventValue: analyticsData.value || '0',\n eventNonInteractive: isNonInteractive(analyticsData),\n hitCallback: analyticsData.hitCallback || []\n });\n\n Sentry.addBreadcrumb({\n type: 'default',\n level: 'info',\n category: isNonInteractive(analyticsData) ? 'tracking' : 'ui-action',\n message: 'Analytics Event',\n data: analyticsData\n });\n};\n\n// Export object for Sinon stubbing\nexport default {\n pushToDataLayer,\n trackEvent,\n trackPageView,\n trackTiming\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';\n\nimport { useDayJs } from 'tradera-hooks/use-day-js';\nimport { logger } from 'packages/logger';\nimport Analytics from 'packages/analytics';\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 { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\n\nconst GdprContainer = props => {\n const {\n visibleModal,\n visibleSettings,\n closeModal,\n openSettings,\n closeSettings\n } = props;\n\n const isQuantcastConsentEnabled = useIsFeatureEnabled('quantcast-consent');\n const dayjs = useDayJs();\n\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 !isQuantcastConsentEnabled ? (\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 io from 'socket.io-client';\nimport { logger } from 'packages/logger';\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","import { warnIfDevBuild } from 'utils/environment';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App, { BasicApp } from './app';\nimport { logger } from 'packages/logger';\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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/react';\nimport { isServer } from 'tradera-utils/nextjs';\nimport { getErrorMessage } from 'tradera-backend/utils/error';\n\nlet log;\n\n(async () => {\n if (isServer) {\n const { Logger } = await import(\n '@tradera-internal/infrastructure-logging'\n );\n // eslint-disable-next-line better-mutation/no-mutation\n log = new Logger('ApplicationErrorBoundary');\n }\n})();\n\nclass ApplicationErrorBoundary extends React.Component {\n componentDidCatch() {}\n\n onError(error) {\n const { capture = true } = this?.props || {};\n if (typeof capture === 'function') {\n capture(error);\n }\n if (isServer && log) {\n const errorMessage = getErrorMessage(error);\n log.error(\n errorMessage,\n {\n source: 'react ApplicationErrorBoundary'\n },\n error\n );\n }\n }\n\n render() {\n const { children, fallback, capture } = this.props;\n\n if (!capture) {\n return children;\n }\n\n return (\n this.onError(error)}>\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","export const getErrorContext = (context = {}) => {\n const { locale, req = {}, resolvedUrl } = context;\n const { headers = {}, url } = req;\n const errorContext = {\n url: resolvedUrl || url,\n locale,\n ip: headers['x-real-ip'],\n userAgent: headers['user-agent']\n };\n return errorContext;\n};\n\nexport const getErrorMessage = error => {\n switch (typeof error) {\n case 'string':\n return error;\n case 'object':\n if (error?.name && error?.message) {\n return `${error.name}: ${error.message}`;\n } else if (error?.message) {\n return error.message;\n }\n return `unknown error object: ${error}`;\n default:\n return `unknown error type caught: ${error}`;\n }\n};\n","import React from 'react';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\nimport RatingNegativeIcon from '@tradera/blueprint/theme/icons2/rating-negative.svg?jsx';\n\nconst nonActiveButtonClasses = 'btn btn-light btn-lg btn-round border';\nconst activeButtonClasses = 'btn btn-lg btn-round';\n\nconst _Happy = ({ active, className = '', onClick }) => (\n \n \n \n);\n\nconst _Sad = ({ active, className = '', onClick }) => (\n \n \n \n);\n\nexport const Happy = React.memo(_Happy);\nexport const Sad = React.memo(_Sad);\n","// extracted by mini-css-extract-plugin\nexport default {\"figure\":\"figure--3epop\",\"red\":\"red----iUA\",\"green\":\"green--31wnP\",\"grey-soft\":\"grey-soft--3B9wq\",\"greySoft\":\"grey-soft--3B9wq\",\"grey-hard\":\"grey-hard--3KnOi\",\"greyHard\":\"grey-hard--3KnOi\",\"blue\":\"blue--1s_-z\"};","import React from 'react';\nimport styles from './figure.module.scss';\n\nconst Caption = ({ color, className = '', text }) => {\n return (\n \n {text}\n \n );\n};\n\nexport const Figure = ({\n className = '',\n imageUrl,\n title,\n captionText,\n captionColor\n}) => {\n return (\n \n {title}\n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"rating-button\":\"rating-button--3AWTI\",\"ratingButton\":\"rating-button--3AWTI\",\"rating-color1\":\"rating-color1--2vIUS\",\"ratingColor1\":\"rating-color1--2vIUS\",\"rating-color2\":\"rating-color2--2sNAQ\",\"ratingColor2\":\"rating-color2--2sNAQ\",\"rating-color3\":\"rating-color3--T0NBU\",\"ratingColor3\":\"rating-color3--T0NBU\",\"rating-color4\":\"rating-color4--Qbqs7\",\"ratingColor4\":\"rating-color4--Qbqs7\",\"rating-color5\":\"rating-color5--2Ovw4\",\"ratingColor5\":\"rating-color5--2Ovw4\"};","import React from 'react';\nimport styles from './rating.module.scss';\n\nconst _Rating = ({ selectedRating = 0, onRatingClicked }) => {\n return (\n
      \n {[...Array(5)]\n .map((e, i) => i + 1)\n .map(number => (\n onRatingClicked(number)}\n className={`btn border ${styles.ratingButton}\n ${\n selectedRating === number\n ? styles['ratingColor' + number]\n : 'bg-white'\n }`}>\n {number}\n \n ))}\n
    \n );\n};\nexport const Rating = React.memo(_Rating);\n","// extracted by mini-css-extract-plugin\nexport default {\"detailedRating\":\"detailedRating--EQ0ij\"};","const namespace = 'FEEDBACKS';\nexport const ACTION_TYPES = {\n SET_FEEDBACKS: `${namespace}/SET_FEEDBACKS`,\n TOGGLE_IS_POSITIVE: `${namespace}/TOGGLE_IS_POSITIVE`,\n SET_IS_POSITIVE: `${namespace}/SET_IS_POSITIVE`,\n SET_IS_ITEM_NOT_RECEIVED: `${namespace}/SET_IS_ITEM_NOT_RECEIVED`,\n SET_COMMENT: `${namespace}/SET_COMMENT`,\n SET_RATING: `${namespace}/SET_RATING`\n};\n\nexport const setFeedbacks = payload => ({\n type: ACTION_TYPES.SET_FEEDBACKS,\n payload\n});\n\n/**\n * If previously null, isPositive value becomes the given value.\n * If previously true, isPositive becomes null if given true or false if given false.\n * If previously false, isPositive becomes null if given false or true if given true.\n * @param {*} transactionId\n * @param {*} isPositive\n * @returns\n */\nexport const toggleIsPositive = (transactionId, isPositive) => ({\n type: ACTION_TYPES.TOGGLE_IS_POSITIVE,\n payload: { transactionId, isPositive }\n});\n\nexport const setComment = (transactionId, comment) => ({\n type: ACTION_TYPES.SET_COMMENT,\n payload: { transactionId, comment }\n});\n\nexport const setRating = (transactionId, ratingName, rating) => ({\n type: ACTION_TYPES.SET_RATING,\n payload: { transactionId, rating, ratingName }\n});\n\nexport const setItemNotReceived = (transactionId, isItemNotReceived) => ({\n type: ACTION_TYPES.SET_IS_ITEM_NOT_RECEIVED,\n payload: { transactionId, isItemNotReceived }\n});\n","import React from 'react';\nimport { Rating } from './rating';\nimport styles from './detailed-rating.module.scss';\nimport { setRating } from './feedbacks-actions';\n\nexport const DetailedRating = ({\n children,\n className = '',\n dispatch,\n ratingDescriptions = [],\n ratingSettingName,\n selectedRating = 0,\n title,\n transactionId\n}) => {\n const ratingDescriptionExist =\n ratingDescriptions.length > 0 &&\n ratingDescriptions.length >= selectedRating;\n const ratingDescription = ratingDescriptionExist\n ? ratingDescriptions[selectedRating - 1]\n : null;\n\n const onRatingClicked = React.useCallback(\n value => dispatch(setRating(transactionId, ratingSettingName, value)),\n [dispatch, transactionId, ratingSettingName]\n );\n\n return (\n
    \n
    {title}
    \n \n {ratingDescription && (\n

    \n {ratingDescription}\n

    \n )}\n {children}\n
    \n );\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport AlertIcon from '@tradera/blueprint/theme/icons2/alert.svg?jsx';\nimport { setItemNotReceived } from './feedbacks-actions';\n\nconst _ItemNotReceived = ({ dispatch, isItemNotReceived, transactionId }) => {\n const { t } = useTranslator();\n const checkboxId = `inr-checkbox-${transactionId}`;\n return (\n
    \n
    \n \n
    {t('leaveFeedback_inrHeading')}
    \n
    \n\n

    {t('leaveFeedback_inrText')}

    \n
    \n \n dispatch(\n setItemNotReceived(\n transactionId,\n !isItemNotReceived\n )\n )\n }\n checked={isItemNotReceived}\n />\n \n
    \n
    \n );\n};\nexport const ItemNotReceived = React.memo(_ItemNotReceived);\n","import React from 'react';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport AlertIcon from '@tradera/blueprint/theme/icons2/alert.svg?jsx';\n\nconst _UnpaidItem = ({ unpaidItemUrl }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
    \n
    \n \n
    {t('leaveFeedback_upiHeading')}
    \n
    \n\n

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

    \n
    \n );\n};\nexport const UnpaidItem = React.memo(_UnpaidItem);\n","// extracted by mini-css-extract-plugin\nexport default {\"commentInput\":\"commentInput--2nFgi\"};","import React, { useRef, useState, useEffect } from 'react';\n\nexport const AutoHeightTextArea = props => {\n const textAreaRef = useRef(null);\n const [text, setText] = useState(props.text || '');\n const [textAreaHeight, setTextAreaHeight] = useState('auto');\n const [parentHeight, setParentHeight] = useState('auto');\n\n useEffect(() => {\n setParentHeight(`${textAreaRef.current.scrollHeight}px`);\n setTextAreaHeight(`${textAreaRef.current.scrollHeight}px`);\n }, [text, textAreaRef]);\n\n const onChangeHandler = event => {\n setTextAreaHeight('auto');\n setParentHeight(`${textAreaRef.current.scrollHeight}px`);\n setText(event.target.value);\n\n if (props.onChange) {\n props.onChange(event);\n }\n };\n\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport { setComment } from './feedbacks-actions';\nimport styles from './comment-input.module.scss';\nimport { AutoHeightTextArea } from 'tradera-components/form-controls/auto-height-text-area';\n\nconst _CommentInput = ({ className = '', dispatch, value, transactionId }) => {\n return (\n {\n if (evt.key === 'Enter') {\n evt.preventDefault();\n }\n }}\n onChange={evt => {\n dispatch(setComment(transactionId, evt.target.value));\n }}\n />\n );\n};\n\nexport const CommentInput = React.memo(_CommentInput);\n","import {\n MAX_COMMENT_LENGTH,\n MAX_RATING_VALUE,\n MIN_RATING_VALUE,\n RATING_SETTINGS,\n RATING_NAMES_BUYER,\n RATING_NAMES_SELLER,\n UNSET_RATING_VALUE\n} from './constants';\n\nexport const togglePositive = (previous, isPositive) => {\n let result;\n if (previous === null) {\n result = isPositive;\n } else {\n result = previous === isPositive ? null : isPositive;\n }\n return result;\n};\n\nexport const createFeedbackPayload = (\n itemId,\n memberId,\n transactionId,\n ratingNames\n) => {\n const ratings = {};\n ratingNames.forEach(name => {\n // eslint-disable-next-line better-mutation/no-mutation\n ratings[name] = MAX_RATING_VALUE;\n });\n return {\n comment: '',\n ratings,\n inr: false,\n transactionId: transactionId,\n isPositive: null,\n itemId: itemId,\n memberId: memberId\n };\n};\n\nexport const createFeedbackPayloadsMap = (groups, isBuyer) => {\n const ratingNames = isBuyer ? RATING_NAMES_BUYER : RATING_NAMES_SELLER;\n const feedbacks = {};\n groups.map(group => {\n group.items.map(item => {\n const feedback = createFeedbackPayload(\n item.itemId,\n item.memberId,\n item.transactionId,\n ratingNames\n );\n // eslint-disable-next-line better-mutation/no-mutation\n feedbacks[item.transactionId] = feedback;\n });\n });\n return feedbacks;\n};\n\nexport const getRatingSettings = isBuyer => {\n const ratingNames = isBuyer ? RATING_NAMES_BUYER : RATING_NAMES_SELLER;\n return ratingNames.map(ratingName => RATING_SETTINGS[ratingName]);\n};\n\nexport const isCommentTooLong = comment =>\n comment.trim().length > MAX_COMMENT_LENGTH;\nexport const isCommentWithLinebreaks = comment => !!comment.match(/\\r|\\n/);\nexport const isPositiveOrNegative = feedback => feedback.isPositive !== null;\nexport const isAllRatingsValid = feedback =>\n Object.values(feedback.ratings).every(\n value => value === UNSET_RATING_VALUE || value >= MIN_RATING_VALUE\n );\n\nexport const isValidFeedback = feedback =>\n isAllRatingsValid(feedback) &&\n !isCommentTooLong(feedback.comment) &&\n !isCommentWithLinebreaks(feedback.comment) &&\n isPositiveOrNegative(feedback);\n\nexport const getValidationErrorTranslationKeys = feedback => {\n const result = [];\n if (isCommentWithLinebreaks(feedback.comment)) {\n result.push('leaveFeedback_noLineBreaks');\n }\n return result;\n};\n","import React, { useEffect, useState } from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\nimport { DetailedRating } from './detailed-rating';\nimport { ItemNotReceived } from './item-not-received';\nimport { UnpaidItem } from './unpaid-item';\nimport { CommentInput } from './comment-input';\nimport {\n MAX_COMMENT_LENGTH,\n MIN_RATING_VALUE,\n RATING_NAMES\n} from './constants';\nimport {\n isCommentTooLong,\n isCommentWithLinebreaks\n} from './leave-feedback-helper';\n\nexport const Form = ({\n comment,\n dispatch,\n errorMessageTranslationKeys,\n isItemNotReceived,\n transactionId,\n ratingSettings,\n ratings,\n unpaidItemUrl\n}) => {\n const { t } = useTranslator();\n const isMobile = useIsMobile();\n const [ratingValues, setRatingValues] = useState(Object.values(ratings));\n\n useEffect(() => {\n setRatingValues(Object.values(ratings));\n }, [ratings]);\n\n const isCommentInvalid =\n isCommentTooLong(comment) || isCommentWithLinebreaks(comment);\n\n const indexOfShippingTime = ratingSettings.findIndex(\n ratingSetting => ratingSetting.name === RATING_NAMES.SHIPPING_TIME\n );\n const showItemNotReceived =\n indexOfShippingTime > -1 &&\n ratingValues[indexOfShippingTime] === MIN_RATING_VALUE;\n\n const indexOfPaymentTime = ratingSettings.findIndex(\n ratingSetting => ratingSetting.name === RATING_NAMES.PAYMENT_TIME\n );\n const showUnpaidItem =\n indexOfPaymentTime > -1 &&\n ratingValues[indexOfPaymentTime] === MIN_RATING_VALUE;\n\n return (\n <>\n
    \n
    \n
    {t('leaveFeedback_leaveComment')}
    \n \n {t('leaveFeedback_charsLeft_v2', {\n charsCount: comment.length,\n max: MAX_COMMENT_LENGTH\n })}\n \n
    \n {errorMessageTranslationKeys.map(translationKey => (\n

    \n {t(translationKey)}\n

    \n ))}\n \n
    \n
    \n {ratingSettings.map((ratingSetting, index) => {\n return (\n t(key)\n )}\n selectedRating={ratingValues[index]}\n transactionId={transactionId}\n ratingSettingName={ratingSetting.name}\n dispatch={dispatch}>\n {showItemNotReceived &&\n isMobile &&\n indexOfShippingTime === index && (\n \n )}\n {showUnpaidItem &&\n isMobile &&\n indexOfPaymentTime === index && (\n \n )}\n \n );\n })}\n
    \n {showItemNotReceived && !isMobile && (\n \n )}\n {showUnpaidItem && !isMobile && (\n \n )}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"title--1PQM-\",\"price\":\"price--318-r\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ALink from 'tradera-components/alink/alink';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport styles from './details.module.scss';\n\nexport const Details = ({ url, title, transactionDate, memberUrl, alias }) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
    \n
    \n

    \n \n {title}\n \n

    \n
    \n

    \n {transactionDate} |{' '}\n \n {alias}\n \n

    \n
    \n
    \n
    \n );\n};\n\nDetails.propTypes = {\n url: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n transactionDate: PropTypes.string.isRequired,\n memberUrl: PropTypes.string.isRequired,\n alias: PropTypes.string.isRequired\n};\n","import React, { useCallback } from 'react';\nimport { Happy, Sad } from './smiley';\nimport { Figure } from './figure';\nimport { Form } from './form';\nimport { toggleIsPositive } from './feedbacks-actions';\nimport { Details } from './details';\n\nexport const _LeaveFeedbackItem = ({\n alias,\n className = '',\n comment = '',\n dispatch,\n errorMessageTranslationKeys,\n imageUrl,\n isItemNotReceived,\n memberUrl,\n title,\n transactionDate,\n transactionId,\n url,\n isPositive,\n isNegative,\n ratingSettings,\n ratings,\n state,\n unpaidItemUrl\n}) => {\n const togglePositive = useCallback(\n () => dispatch(toggleIsPositive(transactionId, true)),\n [dispatch, transactionId]\n );\n\n const toggleNegative = useCallback(\n () => dispatch(toggleIsPositive(transactionId, false)),\n [dispatch, transactionId]\n );\n\n const Image = ({ className = '' }) => (\n \n );\n\n const showForm = isNegative || isPositive;\n\n return (\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n {showForm && (\n \n )}\n
    \n
    \n );\n};\n\nexport const LeaveFeedbackItem = React.memo(_LeaveFeedbackItem);\n","// extracted by mini-css-extract-plugin\nexport default {\"thinDivider\":\"thinDivider--35UZk\",\"thickDivider\":\"thickDivider--CR6ys\"};","import React from 'react';\nimport styles from './divider.module.scss';\n\nexport const ThinDivider = ({ className = '' }) => (\n
    \n);\n\nexport const ThickDivider = ({ className = '' }) => (\n
    \n);\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport CheckmarkIcon from '@tradera/blueprint/theme/icons2/check-circle.svg?jsx';\nimport AlertIcon from '@tradera/blueprint/theme/icons2/alert.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nexport const Dialog = ({\n title,\n text,\n icon,\n dismissActionText,\n onDismiss,\n confirmActionText,\n onConfirm\n}) => {\n return (\n \n
    \n \n \n
    \n

    {title}

    \n
    {icon}
    \n

    {text}

    \n {onConfirm ? (\n
    \n \n {confirmActionText}\n \n \n {dismissActionText}\n \n
    \n ) : (\n
    \n \n {dismissActionText}\n \n
    \n )}\n
    \n \n );\n};\n\nexport const SubmittedDialog = ({ submittedFeedbackCount, onDismiss }) => {\n const { t } = useTranslator();\n return (\n }\n dismissActionText={t('leaveFeedback_submittedClose')}\n onDismiss={onDismiss}\n />\n );\n};\n\nexport const SubmitErrorDialog = ({ onDismiss }) => {\n const { t } = useTranslator();\n return (\n }\n dismissActionText={t('leaveFeedback_submittedClose')}\n onDismiss={onDismiss}\n />\n );\n};\n\nexport const AlreadySubmittedErrorDialog = ({ onDismiss }) => {\n const { t } = useTranslator();\n return (\n }\n dismissActionText={t('leaveFeedback_errorClose')}\n onDismiss={onDismiss}\n />\n );\n};\n\nexport const ConfirmSubmitDialog = ({\n negativeCount,\n isInMultipleFeedbacksContext = false,\n onConfirm,\n onDismiss\n}) => {\n const { t } = useTranslator();\n return (\n 0\n ? 'leaveFeedback_negativeWarningTextWithCount'\n : 'leaveFeedback_negativeWarningText',\n {\n count: negativeCount\n }\n )}\n text={t('leaveFeedback_negativeDisclaimer')}\n icon={}\n dismissActionText={t('leaveFeedback_negativeWarningAbort')}\n onDismiss={onDismiss}\n confirmActionText={t('leaveFeedback_negativeWarningConfirm')}\n onConfirm={onConfirm}\n />\n );\n};\n","import { ACTION_TYPES } from './feedbacks-actions';\nimport {\n getValidationErrorTranslationKeys,\n isValidFeedback,\n togglePositive\n} from './leave-feedback-helper';\nimport {\n MAX_RATING_VALUE,\n MIN_RATING_VALUE,\n RATING_NAMES,\n UNSET_RATING_VALUE\n} from './constants';\n\nexport const initialState = {\n feedbacks: {},\n submittables: []\n};\n\nconst updateValidationError = state => {\n Object.values(state.feedbacks).forEach(feedback => {\n const translationKeys = getValidationErrorTranslationKeys(feedback);\n const hasChanged =\n JSON.stringify(feedback.errorMessageTranslationKeys) !==\n JSON.stringify(translationKeys);\n if (hasChanged) {\n // eslint-disable-next-line better-mutation/no-mutation\n feedback.errorMessageTranslationKeys = translationKeys;\n }\n });\n};\n\nconst updateSubmittables = state => {\n // eslint-disable-next-line better-mutation/no-mutation\n state.submittables = Object.values(state.feedbacks)\n .filter(feedback => isValidFeedback(feedback))\n .map(validFeedback => {\n const feedback = { ...validFeedback };\n delete feedback.errorMessageTranslationKeys;\n return feedback;\n });\n};\n\nconst isAllRatings = (feedback, rating) =>\n Object.values(feedback.ratings).every(value => value === rating);\n\nconst setAllRatings = (feedback, rating) =>\n Object.keys(feedback.ratings).forEach(\n // eslint-disable-next-line better-mutation/no-mutation\n key => (feedback.ratings[key] = rating)\n );\n\nconst resetItemNotReceivedIfNeeded = feedback => {\n if (feedback.ratings[RATING_NAMES.SHIPPING_TIME] !== MIN_RATING_VALUE) {\n // eslint-disable-next-line better-mutation/no-mutation\n feedback.inr = false;\n }\n};\n\nexport const feedbacksReducer = (state, action) => {\n switch (action.type) {\n case ACTION_TYPES.SET_FEEDBACKS: {\n const newState = { ...state, feedbacks: { ...action.payload } };\n updateSubmittables(newState);\n updateValidationError(newState);\n return newState;\n }\n case ACTION_TYPES.TOGGLE_IS_POSITIVE: {\n const { transactionId, isPositive } = action.payload;\n const oldFeedback = state.feedbacks[transactionId];\n const newFeedback = {\n ...oldFeedback,\n isPositive: togglePositive(oldFeedback.isPositive, isPositive)\n };\n\n const shouldSetAllRatings =\n oldFeedback.isPositive === null ||\n isAllRatings(newFeedback, UNSET_RATING_VALUE) ||\n isAllRatings(newFeedback, MAX_RATING_VALUE);\n if (shouldSetAllRatings) {\n setAllRatings(\n newFeedback,\n newFeedback.isPositive\n ? MAX_RATING_VALUE\n : UNSET_RATING_VALUE\n );\n }\n\n const newState = { ...state };\n resetItemNotReceivedIfNeeded(newFeedback);\n newState.feedbacks[transactionId] = newFeedback;\n updateSubmittables(newState);\n updateValidationError(newState);\n return newState;\n }\n case ACTION_TYPES.SET_RATING: {\n const { transactionId, ratingName, rating } = action.payload;\n const oldFeedback = state.feedbacks[transactionId];\n const newRatings = {\n ...oldFeedback.ratings,\n [ratingName]: rating\n };\n const newFeedback = {\n ...oldFeedback,\n ratings: newRatings\n };\n const newState = { ...state };\n resetItemNotReceivedIfNeeded(newFeedback);\n newState.feedbacks[transactionId] = newFeedback;\n updateSubmittables(newState);\n updateValidationError(newState);\n return newState;\n }\n case ACTION_TYPES.SET_COMMENT: {\n const { transactionId, comment } = action.payload;\n const newFeedback = {\n ...state.feedbacks[transactionId],\n comment\n };\n const newState = { ...state };\n resetItemNotReceivedIfNeeded(newFeedback);\n newState.feedbacks[transactionId] = newFeedback;\n updateSubmittables(newState);\n updateValidationError(newState);\n return newState;\n }\n case ACTION_TYPES.SET_IS_ITEM_NOT_RECEIVED: {\n const { transactionId, isItemNotReceived } = action.payload;\n const newFeedback = {\n ...state.feedbacks[transactionId],\n inr: isItemNotReceived\n };\n const newState = { ...state };\n newState.feedbacks[transactionId] = newFeedback;\n updateSubmittables(newState);\n updateValidationError(newState);\n return newState;\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const PageHeader = ({ title, actionComponent, dataTestPageId }) => {\n const hasSecondColumn = !!actionComponent;\n return (\n
    \n \n \n {title}\n \n
    \n {actionComponent && (\n
    \n {actionComponent}\n
    \n )}\n
    \n );\n};\n\nPageHeader.propTypes = {\n title: PropTypes.node.isRequired,\n actionComponent: PropTypes.node\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang/translate';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\n\nexport const SubmitButton = ({\n isInMultipleFeedbacksContext,\n isSubmitting,\n onClick,\n submittableCount,\n className = ''\n}) => {\n const { t } = useTranslator();\n const submitButtonText = isInMultipleFeedbacksContext\n ? t(\n submittableCount > 0\n ? 'leaveFeedback_submitButton'\n : 'leaveFeedback_submitButton_noSelected',\n {\n count: submittableCount\n }\n )\n : t('leaveFeedback_confirmButton');\n return (\n \n {isSubmitting ? (\n \n ) : (\n \n )}\n\n {submitButtonText}\n \n );\n};\n\nSubmitButton.propTypes = {\n isInMultipleFeedbacksContext: PropTypes.bool.isRequired,\n isSubmitting: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n submittableCount: PropTypes.number.isRequired,\n className: PropTypes.string\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"stickyContainer\":\"stickyContainer--3PMEr\"};","import React from 'react';\nimport { makeSticky } from 'tradera-apps/my-tradera/app/components/hoc';\nimport styles from './sticky-container.module.scss';\n\nconst Container = ({ children, className = '' }) => {\n return (\n
    \n {children}\n
    \n );\n};\nexport const StickyContainer = makeSticky(Container);\n","// extracted by mini-css-extract-plugin\nexport default {\"leaveFeedbackLayout\":\"leaveFeedbackLayout--3RkUl\",\"loaderContainer\":\"loaderContainer--7G8pB\"};","import React, {\n useCallback,\n useEffect,\n useReducer,\n useState,\n Fragment\n} from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { LocalLoader } from 'tradera-components/loader/loader';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport leaveFeedbackService from 'tradera-apps/my-tradera/app/data/leave-feedback-service';\nimport { LeaveFeedbackItem } from './leave-feedback-item';\nimport { ThinDivider, ThickDivider } from './divider';\nimport {\n AlreadySubmittedErrorDialog,\n SubmittedDialog,\n ConfirmSubmitDialog,\n SubmitErrorDialog\n} from './dialog';\nimport { keepUnique } from 'tradera-utils/array';\nimport {\n createFeedbackPayloadsMap,\n getRatingSettings\n} from './leave-feedback-helper';\nimport { feedbacksReducer, initialState } from './feedbacks-reducer';\nimport { setFeedbacks } from './feedbacks-actions';\nimport { ROLES } from './constants';\nimport {\n Breakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport { PageHeader } from './page-header';\nimport { SubmitButton } from './submit-button';\nimport { StickyContainer } from './sticky-container';\nimport styles from './leave-feedback.module.scss';\n\nconst PAGE_SIZE = 10;\n\nconst Layout = ({ renderHeader, children, className = '' }) => (\n
    \n
    \n {renderHeader && renderHeader()}\n {children}\n
    \n
    \n);\n\nexport const LeaveFeedback = ({\n isInMultipleFeedbacksContext,\n onDismiss = () => {},\n onDone,\n role,\n transactionIds: givenTransactionIds\n}) => {\n const [transactionIds] = useState(givenTransactionIds);\n const [loadedCount, setLoadedCount] = useState(0);\n const [itemsLeft, setItemsLeft] = useState(0);\n const [groups, setGroups] = useState([]);\n const [isFetching, setIsFetching] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [negativeCount, setNegativeCount] = useState(0);\n const [showSubmitNegativeWarning, setShowSubmitNegativeWarning] = useState(\n false\n );\n const [showSubmittedDialog, setShowSubmittedDialog] = useState(false);\n const [showSubmitErrorDialog, setShowSubmitErrorDialog] = useState(false);\n const [\n showAlreadySubmittedErrorDialog,\n setShowAlreadySubmittedErrorDialog\n ] = useState(false);\n const [{ feedbacks, submittables }, dispatch] = useReducer(\n feedbacksReducer,\n initialState\n );\n const [ratingSettings] = useState(getRatingSettings(role === ROLES.BUYER));\n const nextCount = itemsLeft > PAGE_SIZE ? PAGE_SIZE : itemsLeft;\n const { t } = useTranslator();\n\n useEffect(() => {\n let loadedCount = groups.reduce((acc, group) => {\n return acc + group.items.length;\n }, 0);\n setLoadedCount(loadedCount);\n const feedbacks = createFeedbackPayloadsMap(\n groups,\n role === ROLES.BUYER\n );\n dispatch(setFeedbacks(feedbacks));\n }, [groups, role]);\n\n useEffect(() => {\n const negatives = Object.values(submittables).filter(\n submittable => submittable.isPositive === false\n );\n setNegativeCount(negatives.length);\n }, [submittables]);\n\n const submitOrConfirm = useCallback(() => {\n if (negativeCount > 0) {\n setShowSubmitNegativeWarning(true);\n } else {\n submit(submittables);\n }\n }, [negativeCount, submit, submittables]);\n\n const submit = useCallback(submittables => {\n setIsSubmitting(true);\n const onSuccess = () => {\n setIsSubmitting(false);\n setShowSubmittedDialog(true);\n };\n const onError = () => {\n setIsSubmitting(false);\n setShowSubmitErrorDialog(true);\n };\n leaveFeedbackService.submitData(submittables, onSuccess, onError);\n }, []);\n\n const onFetchAllSuccess = useCallback(data => {\n setGroups(oldGroups => {\n const newGroups = [...oldGroups];\n data.groups.forEach(incomingGroup => {\n const existingGroup = newGroups.find(\n g => g.label === incomingGroup.label\n );\n if (existingGroup) {\n const mayHaveDuplicates = existingGroup.items.concat(\n incomingGroup.items\n );\n // eslint-disable-next-line better-mutation/no-mutation\n existingGroup.items = keepUnique(\n mayHaveDuplicates,\n item => `${item.itemId}${item.transactionId}`,\n false\n );\n } else {\n newGroups.push(incomingGroup);\n }\n });\n return newGroups;\n });\n setItemsLeft(() => data.itemsLeft);\n setIsFetching(false);\n }, []);\n\n const onFetchError = useCallback(data => {\n setIsFetching(false);\n if (\n data.responseJSON.errorCode === 'BuyerFeedbackAlreadyLeft' ||\n data.responseJSON.errorCode === 'SellerFeedbackAlreadyLeft'\n ) {\n setShowAlreadySubmittedErrorDialog(true);\n }\n }, []);\n\n const fetchNext = useCallback(() => {\n leaveFeedbackService.getAllFeedbackItems(\n loadedCount,\n PAGE_SIZE,\n onFetchAllSuccess,\n onFetchError\n );\n }, [loadedCount, onFetchError, onFetchAllSuccess]);\n\n const fetchAll = useCallback(() => {\n setIsFetching(true);\n leaveFeedbackService.getAllFeedbackItems(\n 0,\n PAGE_SIZE,\n onFetchAllSuccess,\n onFetchError\n );\n }, [onFetchAllSuccess, onFetchError]);\n\n const fetchByTransactionIds = useCallback(\n transactionIds => {\n setIsFetching(true);\n leaveFeedbackService.getFeedbackItems(\n transactionIds,\n data => {\n const group = {\n items: data.items\n };\n setGroups(() => {\n return [group];\n });\n setIsFetching(false);\n },\n onFetchError\n );\n },\n [onFetchError]\n );\n\n useEffect(() => {\n setIsFetching(true);\n leaveFeedbackService.setRootUrl(`/my/leave-feedback/${role}/`);\n if (transactionIds.length > 0) {\n fetchByTransactionIds(transactionIds);\n } else {\n fetchAll();\n }\n }, [fetchAll, fetchByTransactionIds, role, transactionIds]);\n\n if (isFetching) {\n return (\n \n \n \n );\n }\n\n const isInDialog = !isInMultipleFeedbacksContext;\n const isSubDialogOpen =\n showAlreadySubmittedErrorDialog ||\n showSubmitNegativeWarning ||\n showSubmittedDialog ||\n showSubmitErrorDialog;\n const showItems = !(isInDialog && isSubDialogOpen);\n const itemsExist = loadedCount > 0;\n return (\n <>\n {showSubmitNegativeWarning && (\n {\n setShowSubmitNegativeWarning(false);\n submit(submittables);\n }}\n onDismiss={() => setShowSubmitNegativeWarning(false)}\n />\n )}\n {showSubmittedDialog && (\n onDone(submittables)}\n />\n )}\n {showSubmitErrorDialog && (\n {\n setShowSubmitErrorDialog(false);\n onDismiss();\n }}\n />\n )}\n {showAlreadySubmittedErrorDialog && (\n {\n setShowAlreadySubmittedErrorDialog(false);\n onDismiss();\n }}\n />\n )}\n {showItems && (\n \n isInMultipleFeedbacksContext && (\n \n \n }\n dataTestPageId={\n role === ROLES.BUYER\n ? 'leaveFeedback_buyer'\n : 'leaveFeedback_seller'\n }\n />\n \n )\n }>\n {isInMultipleFeedbacksContext && (\n \n \n \n \n \n )}\n {!itemsExist &&
    {t('leaveFeedback_no_items')}
    }\n {itemsExist && (\n \n {groups.map((group, index) => (\n \n {index > 0 && (\n \n )}\n {group.label && (\n

    \n {group.label}\n

    \n )}\n {group.items.map((item, index) => {\n const payload =\n feedbacks[item.transactionId];\n if (!payload) {\n return null;\n }\n return (\n \n {index > 0 && (\n \n )}\n \n \n );\n })}\n \n ))}\n {nextCount > 0 && (\n
    \n \n {t('leaveFeedback_showMore', {\n count: nextCount\n })}\n \n
    \n )}\n {isInMultipleFeedbacksContext ? (\n \n
    \n \n
    \n
    \n ) : (\n
    \n \n onDismiss && onDismiss()\n }>\n \n {t('leaveFeedback_abort')}\n \n \n
    \n )}\n \n )}\n \n )}\n \n );\n};\n","/**\n * Returns an array with unique values based on keys provided by the given function.\n */\nexport const keepUnique = (arr, getKey, keepFirst) => {\n if (keepFirst) {\n let seen = new Set();\n return arr.filter(item => {\n let key = getKey(item);\n return seen.has(key) ? false : seen.add(key);\n });\n }\n return [...new Map(arr.map(x => [getKey(x), x])).values()];\n};\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","const THROW_ERROR = false;\n\nexport const assertNoUndefinedProperties = obj => {\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) {\n const message = `${key} is undefined`;\n if (THROW_ERROR) {\n throw new Error(message);\n }\n console.error(message);\n }\n }\n};\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 = (\n shippingCountryCode,\n userLanguageCodeIso2,\n automaticTranslationPreference\n) => {\n return webApiClient\n .get(\n `/discover/favouritesellers-and-items2?maxFavouriteSellers=4&maxItemsPerFavouriteSeller=3&shippingCountryCode=${shippingCountryCode}&userLanguage=${userLanguageCodeIso2}&automaticTranslationPreference=${automaticTranslationPreference}`\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 {\n selectAutomaticTranslationPreference,\n selectPreferredLanguage\n} 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 userLanguageCodeIso2 = selectPreferredLanguage(getState())\n .languageCodeIso2;\n\n const automaticTranslationPreference = selectAutomaticTranslationPreference(\n getState()\n );\n const promise = getFavouriteSellers(\n shippingCountryCode,\n userLanguageCodeIso2,\n automaticTranslationPreference\n );\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 isGrid,\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\n if (isGrid) {\n switch (imageCount) {\n case 2:\n imageSizes = {\n srcSet: `${imageUrl}&w=1200 1200w, ${imageUrl}&w=605 605w, ${imageUrl}&w=363 363w, ${imageUrl}&w=209 209w`,\n sizes:\n '(max-width: 425px) 209px, (max-width: 768px) 363px, 605px'\n };\n break;\n case 4:\n case 8:\n imageSizes = {\n srcSet: `${imageUrl}&w=905 905w, ${imageUrl}&w=605 605w, ${imageUrl}&w=305 305w, ${imageUrl}&w=363 363w, ${imageUrl}&w=209 209w`,\n sizes:\n '(max-width: 425px) 209px, (max-width: 768px) 363px, 305px'\n };\n break;\n default:\n imageSizes = {\n srcSet: `${imageUrl}&w=600 600w, ${imageUrl}&w=400 400w, ${imageUrl}&w=200 200w, ${imageUrl}&w=363 363w, ${imageUrl}&w=209 209w`,\n sizes:\n '(max-width: 425px) 209px, (max-width: 768px) 363px, 200px'\n };\n break;\n }\n } else {\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 }\n\n return imageSizes;\n};\n\nexport const getWebpImage = (imageCount, image, containerType, isGrid) => {\n if (!image) {\n return {};\n }\n\n const imageSizes = getImageSizes(\n imageCount,\n image,\n containerType,\n isGrid,\n 'webp'\n );\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 useIsMobile from 'tradera-hooks/use-is-mobile';\nimport { useIsTablet } from 'tradera-hooks/use-is-tablet';\nimport useIsDesktop from 'tradera-hooks/use-is-desktop';\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 isMobileBreakpoint = useIsMobile();\n const isTabletBreakpoint = useIsTablet();\n const isDesktopBreakpoint = useIsDesktop();\n\n const playVideo = async video => {\n try {\n await video.play();\n } catch (err) {\n return;\n }\n };\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
    \n );\n};\n\nexport default OnDisplayBadge;\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}","export default {\n INITIALIZE: 'CATEGORIES/INITIALIZE',\n REQUEST_CATEGORY_LIST: 'CATEGORIES/REQUEST_CATEGORY_LIST',\n RECEIVE_CATEGORY_LIST: 'CATEGORIES/RECEIVE_CATEGORY_LIST',\n HANDLE_CATEGORY_LIST_ERROR: 'CATEGORIES/HANDLE_CATEGORY_LIST_ERROR'\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 11c-.6 0-1 .4-1 1s.4 1 1 1c.5 0 1-.4 1-1s-.5-1-1-1zm0-8c-1.6 0-3 .9-3 2.7h1.7c0-.9.7-1.3 1.3-1.3.7 0 1.3.5 1.3 1.2s-.4 1.1-1 1.5C7.5 7.6 7 8.2 7 9.9v.1h1.6v-.1c0-1 .3-1.5 1.1-1.9.8-.6 1.3-1.3 1.3-2.4C11 4 9.8 3 8 3z\",\n fillRule: \"evenodd\"\n})));","const modalState = {\n CLOSED: 'CLOSED',\n START: 'START',\n COMPLETED: 'COMPLETED',\n ERROR: 'ERROR',\n IN_PROGRESS: 'IN_PROGRESS'\n};\n\nexport default modalState;\n","export default {\n ADD: 'ITEMS/ADD',\n ADD_RECENTLY_VIEWED: 'ITEMS/ADD_RECENTLY_VIEWED',\n INITIALIZE: 'ITEMS/INITIALIZE',\n WISHLIST: 'ITEMS/WISHLIST',\n WISHLIST_ADD_RANGE: 'ITEMS/WISHLIST_ADD_RANGE',\n SETTINGS: 'ITEMS/SETTINGS',\n UPDATE_ITEM: 'ITEMS/UPDATE_ITEM'\n};\n","import { cache, CACHE_KEYS } from 'tradera-utils/cache';\n\nexport default initData => {\n const wishListItemIds = new Set(initData.wishListItemIds || []);\n let recent = cache.read(CACHE_KEYS.RECENTLY_VIEWED_ITEMS) || [];\n\n //Fix for mapping of url to itemUrl. Only needed for old recent items state visited before 2021-11-16.\n recent = recent.map(({ url, itemUrl, ...item }) => ({\n ...item,\n itemUrl: itemUrl || url\n }));\n return {\n // Items by itemId\n cache: {},\n // List of item ids in ascending cache order (oldest first)\n cacheOrder: [],\n recent,\n wishListItemIds: Array.from(wishListItemIds)\n };\n};\n","import gtmCore from 'static/script/app/ui/google-tagmanager-service';\nimport { logger } from 'packages/logger';\nimport Analytics from 'packages/analytics';\nimport { cache, CACHE_KEYS } from 'tradera-utils/cache';\nimport actionTypes from './action-types';\nimport uiActions from '../ui/actions';\nimport { postWishlistItem } from './api';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { MODAL_TYPES } from 'tradera-state/push-notifications/constants';\nimport getInitialState from './initial-state';\n\nconst RECENTLY_VIEWED_CACHE_TTL = 30 * 24 * 60 * 60 * 1000;\n\nconst add = items => ({\n type: actionTypes.ADD,\n payload: items\n});\n\nconst addRecentlyViewed = item => async (dispatch, getStore) => {\n dispatch({\n type: actionTypes.ADD_RECENTLY_VIEWED,\n payload: item\n });\n\n const {\n items: { recent }\n } = getStore();\n\n cache.write(\n CACHE_KEYS.RECENTLY_VIEWED_ITEMS,\n recent,\n RECENTLY_VIEWED_CACHE_TTL\n );\n};\n\nconst setItemWishList = (itemId, exists) => (dispatch, getState) => {\n const existsInState = getState().items.wishListItemIds.includes(itemId);\n if (existsInState !== exists) {\n dispatch({\n type: actionTypes.WISHLIST,\n payload: { itemId, exists }\n });\n }\n};\nconst addItemsToWishList = itemIds => ({\n type: actionTypes.WISHLIST_ADD_RANGE,\n payload: { itemIds }\n});\n\n/**\n * Toggle item in wishlist\n *\n * @param {int} itemId\n * @param {boolean} [value] - Force add or remove from wishlist\n * @param {boolean} [shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip]\n * @returns {function(*, *): Promise<* | Error>}\n */\nconst wishlist = (\n itemId,\n value,\n shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip = false\n) => async (dispatch, getStore) => {\n const {\n member: { isLoggedIn, memberId },\n items: { wishListItemIds },\n page\n } = getStore();\n let existsInWishList;\n if (value === undefined) {\n existsInWishList = wishListItemIds.includes(itemId);\n } else {\n existsInWishList = !value;\n }\n\n const redirectUrl = window.location.toString();\n const onSignedOutError = () => dispatch(uiActions.signIn({ redirectUrl }));\n if (!isLoggedIn) {\n onSignedOutError();\n return;\n }\n\n dispatch(setItemWishList(itemId, !existsInWishList));\n\n if (!existsInWishList) {\n gtmCore.trackGtmEvent('add-to-wishlist', {\n memberId: memberId,\n itemId: itemId\n });\n }\n if (!shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip) {\n Analytics.trackEvent({\n category: 'Wish list',\n action: existsInWishList ? 'remove' : 'add',\n label: page.type\n });\n }\n\n return postWishlistItem(itemId, !existsInWishList)\n .then(() => {\n dispatch(\n uiActions.openNotificationOptinModal(\n MODAL_TYPES.wishlistReminders,\n 'Enable - Wishlist - Reminders (from alert)',\n 'pushModal_wishlist_title',\n 'pushModal_wishlist_description',\n ['wishlistReminders']\n )\n );\n return !existsInWishList;\n })\n .catch(error => {\n // Restore previous wishlist status on error\n dispatch(setItemWishList(itemId, existsInWishList));\n switch (error.message) {\n case API_ERRORS.LOGGED_OUT:\n onSignedOutError();\n break;\n default:\n break;\n }\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n case API_ERRORS.NETWORK:\n case API_ERRORS.TIMEOUT:\n case API_ERRORS.VERSION_MISMATCH:\n break;\n default:\n logger(error);\n break;\n }\n });\n};\n\nconst updateItem = ({ itemId, item }) => ({\n type: actionTypes.UPDATE_ITEM,\n payload: { itemId, item }\n});\n\nconst initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: getInitialState(initData)\n});\n\nexport default {\n add,\n addItemsToWishList,\n addRecentlyViewed,\n initialize,\n setItemWishList,\n updateItem,\n wishlist\n};\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport ALink from 'tradera-components/alink/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 '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 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","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport LoadingPortal from 'tradera-components/portals/loading-portal';\n\nconst LoaderComponent = ({\n className,\n children,\n visibleClassName,\n ...otherProps\n}) => {\n const loaderRef = useRef(null);\n useEffect(() => {\n const timeout = setTimeout(() => {\n loaderRef?.current?.classList.add(visibleClassName);\n }, 0);\n return () => clearTimeout(timeout);\n }, [visibleClassName]);\n\n return (\n
    \n {children}\n
    \n );\n};\n\n// Global loading with overlay that covers the whole page, except top menu\nexport const GlobalLoader = () => (\n \n \n \n);\n\n// Legacy global loader that uses portal\nexport const PortalLoader = () => (\n \n \n \n);\n\n// Local loader that covers its closest positioned parent\n// Tip: use position-relative class for containing parent\nexport const LocalLoader = ({ className = '', ...otherProps }) => (\n \n \n \n);\n\nconst Loader = ({ usePortal }) => {\n return usePortal ? : ;\n};\n\nLoader.propTypes = {\n usePortal: PropTypes.bool.isRequired\n};\n\nLoader.defaultProps = {\n usePortal: true\n};\n\nexport default Loader;\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}","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, { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setSelectedPayment } from 'tradera-state/views/invoice-checkout/reducer';\nimport { LocalLoader } from 'tradera-components/loader/loader';\nimport { useCurrentLanguage, useTranslator } from 'tradera-lang/translate';\nimport { PAYMENT_OPTIONS } from 'tradera-state/views/invoice-checkout/initial-state';\nimport { selectInvoiceCheckout } from 'tradera-state/views/invoice-checkout/selector';\nimport PaymentMethodLogo from 'tradera-components/payment-method/payment-method-logo';\nimport api from 'tradera-state/views/invoice-checkout/api';\nimport qs from 'qs';\nimport { useFetchData } from 'tradera-hooks/use-fetch-data';\n\nimport './braintree-drop-in.scss';\n\n// Testing card number for dev environment: 4111111111111111\n\nexport var paymentInstance = null;\n\nconst BraintreeDropIn = ({\n paymentOptions,\n selected,\n onPaymentMethodRequestable\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const isNativeAppWithApplyPaySupport = useSelector(\n state => state.environment.isNativeAppWithApplyPaySupport\n );\n\n const preselectedPaymentOption = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n })['payment-option'];\n\n useEffect(() => {\n if (!preselectedPaymentOption) return;\n\n dispatch(setSelectedPayment(preselectedPaymentOption));\n }, [preselectedPaymentOption, dispatch]);\n\n const { paymentOption } = paymentOptions;\n\n const handlePaymentSelected = () => {\n const url = new URL(window.location.href);\n if (!selected) {\n if (isNativeAppWithApplyPaySupport) {\n url.searchParams.set('payment-option', paymentOption);\n return (window.location = url.toString());\n }\n dispatch(setSelectedPayment(paymentOption));\n }\n };\n\n const getName = () => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return t('syi_payment_option_VisaMasterCard');\n case PAYMENT_OPTIONS.APPLEPAY:\n return t('syi_payment_option_ApplePay');\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return t('syi_payment_option_GooglePay');\n default:\n return null;\n }\n };\n\n return (\n <>\n
    \n \n \n
    \n {getName()}\n \n
    \n
    \n {paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD &&\n t('payment_method_info_visaMasterCard')}\n {paymentOption === PAYMENT_OPTIONS.APPLEPAY &&\n t('payment_method_info_applePay')}\n {paymentOption === PAYMENT_OPTIONS.GOOGLEPAY &&\n t('payment_method_info_googlePay')}\n
    \n \n
    \n {selected && (\n
    \n \n
    \n )}\n \n );\n};\n\nconst DropInSelected = ({ paymentOption, onPaymentMethodRequestable }) => {\n const { language } = useCurrentLanguage();\n const { t } = useTranslator();\n const { invoiceId, amountOwed: totalCost } = useSelector(\n selectInvoiceCheckout\n );\n\n const fetchParams = useMemo(() => {\n return {\n invoiceId: invoiceId,\n paymentOption: paymentOption\n };\n }, [invoiceId, paymentOption]);\n\n //Fetch Braintree Token\n const {\n data,\n isLoading,\n isRejected,\n isResolved,\n retryFetch\n } = useFetchData(\n api.getBraintreeToken,\n fetchParams,\n 'Invoice Checkout Braintree token'\n );\n\n useEffect(() => {\n const dropIn = async () => {\n if (isResolved && !paymentInstance) {\n const { clientToken } = data;\n await initDropIn(\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n );\n }\n };\n dropIn();\n }, [\n data,\n isResolved,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n ]);\n\n // Update amount in configuration for Apple Pay, Google Pay\n useEffect(() => {\n let paymentProvider = null;\n if (paymentInstance) {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.APPLEPAY:\n paymentProvider = 'applepay';\n break;\n case PAYMENT_OPTIONS.GOOGLEPAY:\n paymentProvider = 'googlepay';\n break;\n default:\n paymentProvider = null;\n break;\n }\n }\n if (paymentProvider) {\n paymentInstance.updateConfiguration(\n paymentProvider,\n 'amount',\n totalCost\n );\n }\n }, [paymentOption, totalCost]);\n\n // Effect to reset paymentIntance when switching payment option\n useEffect(() => {\n return () => {\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = null; // Reset paymentInstance when unmounting\n };\n }, [paymentOption]);\n\n return (\n
    \n {isRejected && (\n
    \n
    \n

    {t('error_somethingWentWrong')}

    \n
    \n retryFetch()}>\n {t('error_reloadPage')}\n \n
    \n )}\n {isLoading && (\n \n \n
    \n )}\n \n
    \n
    \n \n );\n};\n\nconst initDropIn = async (\n clientToken,\n language,\n paymentOption,\n totalCost,\n onPaymentMethodRequestable\n) => {\n const callback = (err, dropinInstance) => {\n if (err) {\n return null;\n }\n\n if (dropinInstance.isPaymentMethodRequestable()) {\n onPaymentMethodRequestable(null, true);\n }\n\n dropinInstance.on('paymentMethodRequestable', function(\n paymentMethodRequestable\n ) {\n onPaymentMethodRequestable(paymentMethodRequestable, true);\n });\n\n dropinInstance.on('noPaymentMethodRequestable', function() {\n onPaymentMethodRequestable(null, false);\n });\n\n // eslint-disable-next-line better-mutation/no-mutation\n paymentInstance = dropinInstance;\n };\n\n const paymentOptions = getDropInOptions(paymentOption, totalCost);\n var options = {\n authorization: clientToken,\n container: '#dropin-container',\n locale: language,\n vaultManager: true,\n dataCollector: {\n kount: true // Required if Kount fraud data collection is enabled\n },\n card: {\n vault: {\n allowVaultCardOverride: true,\n vaultCard: false\n }\n },\n ...paymentOptions\n };\n\n const dropin = await import(\n /* webpackChunkName: \"braintree-web-drop-in\" */ 'braintree-web-drop-in'\n );\n await dropin.create(options, callback);\n};\n\nconst getDropInOptions = (paymentOption, totalCost) => {\n switch (paymentOption) {\n case PAYMENT_OPTIONS.VISA_MASTERCARD:\n return {\n threeDSecure: true\n };\n case PAYMENT_OPTIONS.APPLEPAY:\n return {\n card: false,\n paypal: false,\n googlePay: false,\n applePay: {\n displayName: 'Tradera',\n paymentRequest: {\n total: {\n label: 'Tradera',\n amount: totalCost.toString()\n },\n requiredBillingContactFields: ['postalAddress']\n }\n }\n };\n case PAYMENT_OPTIONS.GOOGLEPAY:\n return {\n card: false,\n paypal: false,\n applePay: false,\n threeDSecure: true,\n googlePay: {\n googlePayVersion: 2,\n merchantId: 'BCR2DN6TU7KPRDTQ',\n transactionInfo: {\n totalPriceStatus: 'FINAL',\n totalPrice: totalCost.toString(),\n currencyCode: 'SEK'\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL'\n }\n }\n }\n ]\n }\n };\n default:\n return {};\n }\n};\n\nexport default BraintreeDropIn;\n","export const getDefaultImageData = () => ({\n isListingImage: false,\n imageId: null,\n rotationDegrees: null,\n imageUrl: null,\n firstEmpty: false,\n isUploading: false\n});\n","import { logger } from 'packages/logger';\nimport TRANSACTION_TYPES from 'tradera-constants/transaction-types';\nimport ITEM_TYPES from 'tradera-constants/item-types';\nimport { ITEM_STATES } from './constants';\n\nconst getEndedItemState = (\n itemType,\n bidCount,\n reservePriceReached,\n openingBid,\n nextValidBidAmount,\n transactionType,\n leadingBidMemberId,\n isCancelled\n) => {\n if (isCancelled) {\n return ITEM_STATES.ENDED_CANCELLED;\n }\n\n const isAuction = itemType === ITEM_TYPES.AUCTION;\n const isAuctionBin = itemType === ITEM_TYPES.AUCTION_BIN;\n const isBuyItNow = itemType === ITEM_TYPES.PURE_BIN;\n const isShopItem = itemType === ITEM_TYPES.SHOP_ITEM;\n\n // transactionType may not be set if feature-toggle 'always-enrich-with-transactiontype' is off in WebApi.\n if (transactionType === TRANSACTION_TYPES.BIN) {\n return ITEM_STATES.ENDED_AUCTION_BIN_BOUGHT_AS_BIN;\n }\n\n // When transactionType is not available (feature toggle is off), we can still figure out\n // that the item was bought with buy-it-now price if there are no bids and a leading bidder exist.\n if (\n !transactionType &&\n isAuctionBin &&\n bidCount === 0 &&\n reservePriceReached &&\n leadingBidMemberId > 0\n ) {\n return ITEM_STATES.ENDED_AUCTION_BIN_BOUGHT_AS_BIN;\n }\n\n if ((isAuction || isAuctionBin) && bidCount === 0) {\n return ITEM_STATES.ENDED_AUCTION_WITHOUT_BID;\n }\n if (bidCount > 0 && !reservePriceReached) {\n return ITEM_STATES.ENDED_AUCTION_WITHOUT_WINNING_BID;\n }\n if (bidCount > 0 && reservePriceReached) {\n return ITEM_STATES.ENDED_AUCTION_WITH_WINNING_BID;\n }\n if (isBuyItNow || isShopItem) {\n return ITEM_STATES.ENDED_FIXED_PRICE;\n }\n logger(\n `Unknown ended state for parameters: ${JSON.stringify({\n itemType,\n bidCount,\n reservePriceReached,\n openingBid,\n nextValidBidAmount\n })}`\n );\n return ITEM_STATES.UNKNOWN;\n};\n\nconst getOngoingItemState = itemType => {\n if (itemType === ITEM_TYPES.AUCTION) {\n return ITEM_STATES.ONGOING_AUCTION;\n }\n if (itemType === ITEM_TYPES.AUCTION_BIN) {\n return ITEM_STATES.ONGOING_AUCTION_BIN;\n }\n if (itemType === ITEM_TYPES.PURE_BIN || itemType === ITEM_TYPES.SHOP_ITEM) {\n return ITEM_STATES.ONGOING_FIXED_PRICE;\n }\n logger(\n `Unknown ongoing state for parameters: ${JSON.stringify({\n itemType\n })}`\n );\n return ITEM_STATES.UNKNOWN;\n};\n\nexport const getItemState = (\n hasEnded,\n itemType,\n bidCount,\n reservePriceReached,\n openingBid,\n nextValidBidAmount,\n transactionType,\n leadingBidMemberId,\n isCancelled\n) => {\n if (hasEnded) {\n return getEndedItemState(\n itemType,\n bidCount,\n reservePriceReached,\n openingBid,\n nextValidBidAmount,\n transactionType,\n leadingBidMemberId,\n isCancelled\n );\n }\n return getOngoingItemState(itemType);\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';\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","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 qs from 'qs';\nimport { useSelector } from 'react-redux';\nimport {\n selectAutomaticTranslationPreference,\n selectPreferredLanguageCode\n} from 'tradera-state/language/selectors';\nimport { useMemo } from 'react';\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 */\nexport const useRecommendationsRequestBuilder = (\n slotId,\n pageSize,\n shippingCountryCode,\n seedItemIds = []\n) => {\n const userLanguage = useSelector(selectPreferredLanguageCode);\n const automaticTranslationPreference = useSelector(\n selectAutomaticTranslationPreference\n );\n const endpoint = '/api/webapi/discover/recommendations-v4';\n\n return useMemo(\n () => (pageIndex = 0) => {\n let queryParameters = {\n slot: slotId,\n maxResults: pageSize,\n pageNumber: pageIndex,\n shippingCountryCode,\n userLanguage,\n automaticTranslationPreference\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 automaticTranslationPreference,\n pageSize,\n seedItemIds,\n shippingCountryCode,\n slotId,\n userLanguage\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 */\nexport const 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 */\nexport const 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\nexport const 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoadableContext = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nconst LoadableContext = _react.default.createContext(null);\nexports.LoadableContext = LoadableContext;\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext';\n}\n\n//# sourceMappingURL=loadable-context.js.map","import React from 'react';\n\nconst DiscountBadge = ({ className, discountRate }) => {\n return (\n \n -{discountRate}%\n \n );\n};\n\nexport default DiscountBadge;\n","module.exports = require('./dist/shared/lib/dynamic')\n","import { CHECKOUT_ERRORS } from 'tradera-helpers/checkout-errors';\nimport { webApiClient } from 'tradera-utils/http';\nimport {\n axiosWithTokenRefresh,\n axiosConfigs,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\n\nconst setErrorMessage = e => {\n if (e) {\n // eslint-disable-next-line better-mutation/no-mutation\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 webApiClient.get(\n `/shopping/ordercheckout/purchaseordercheckoutviewmodel/${purchaseOrderId}`,\n {\n withCredentials: true\n }\n );\n\nexport const getPaymentOptions = async (purchaseOrderId, selectedShippingId) =>\n webApiClient.get(\n `/shopping/ordercheckout/purchaseorderpaymentoptions/${purchaseOrderId}`,\n {\n params: {\n selectedShippingId\n },\n withCredentials: true\n }\n );\n\nexport const initializePayment = async formData =>\n webApiClient\n .post(\n '/shopping/ordercheckout/initializepurchaseorderpaymentattempt',\n formData\n )\n .catch(e => {\n setErrorMessage(e);\n });\n\nexport const getPaymentStatus = async paymentAttemptId =>\n webApiClient.get(\n `/shopping/ordercheckout/purchaseorderpaymentattemptstatus/${paymentAttemptId}`\n );\n\nexport const completePayment = async formData =>\n webApiClient.post(\n '/shopping/ordercheckout/completepurchaseorderpaymentattempt',\n formData\n );\n\nexport const purchaseBin = async formData =>\n webApiClient.post('/shopping/ordercheckout/purchasebin', formData);\n\nexport const getBraintreeToken = async (purchaseOrderId, paymentOption) =>\n webApiClient.get(\n `/shopping/ordercheckout/purchaseorderbraintreeclienttoken/${purchaseOrderId}`,\n {\n params: {\n paymentMethod: paymentOption\n },\n withCredentials: true\n }\n );\n\nexport const getExternalAuthData = async paymentAttemptId =>\n webApiClient.get(\n `/shopping/ordercheckout/purchaseorderpaymentattemptauthenticationdata/${paymentAttemptId}`\n );\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 webApiClient.post(\n '/shopping/ordercheckout/requestcombinedshippingprice',\n formData\n );\n\nexport const setShippingInfo = async formData =>\n webApiClient.post('/shopping/ordercheckout/setshippinginfo', formData);\n\nexport const setCollectionPoint = async formData =>\n webApiClient.post('/shopping/ordercheckout/setcollectionpoint', formData);\n\nexport const cancelPayment = async formData =>\n webApiClient.post(\n '/shopping/ordercheckout/cancelpurchaseorderpaymentattempt',\n formData\n );\n\nexport const getCollectionPoints = async (\n countryCodeIso2,\n shippingProvider,\n zipCode\n) => {\n const params = new URLSearchParams({\n countryCodeIso2,\n shippingProvider,\n zipCode\n });\n\n return webApiClient.get(\n `${'/selling/collection-points-unifaun'}?${params.toString()}`,\n axiosConfigs.authenticated\n );\n};\n\nexport const createKlarnaClientToken = async (\n purchaseOrderId,\n orderCalculation\n) =>\n webApiClient.post(\n '/shopping/ordercheckout/createpurchaseorderklarnaclienttoken',\n {\n purchaseOrderId,\n orderCalculation\n }\n );\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 setCollectionPoint,\n getCollectionPoints,\n createKlarnaClientToken\n};\n","export const VIEW_ITEM_STATES = {\n INITIALIZING: 'INITIALIZING',\n ACTIVE: 'ACTIVE',\n ENDING: 'ENDING',\n ENDED: 'ENDED'\n};\n\nexport const ITEM_STATES = {\n ONGOING_AUCTION: 'ONGOING_AUCTION',\n ONGOING_AUCTION_BIN: 'ONGOING_AUCTION_BIN',\n ONGOING_FIXED_PRICE: 'ONGOING_FIXED_PRICE',\n ENDED_AUCTION_WITHOUT_BID: 'ENDED_AUCTION_WITHOUT_BID',\n ENDED_AUCTION_WITH_WINNING_BID: 'ENDED_AUCTION_WITH_WINNING_BID',\n ENDED_AUCTION_WITHOUT_WINNING_BID: 'ENDED_AUCTION_WITHOUT_WINNING_BID',\n ENDED_AUCTION_BIN_BOUGHT_AS_BIN: 'ENDED_AUCTION_BIN_BOUGHT_AS_BIN',\n ENDED_FIXED_PRICE: 'ENDED_FIXED_PRICE',\n ENDED_CANCELLED: 'ENDED_CANCELLED',\n UNKNOWN: 'UNKNOWN'\n};\n","export const getTranslatedImageLabel = (t, labelKey) => {\n switch (labelKey) {\n case buyerActiveItemsLabelKeys.RESERVE_PRICE_NOT_REACHED:\n case activeLabelKeys.RESERVE_PRICE_NOT_REACHED:\n case unsoldLabelKeys.RESERVE_PRICE_NOT_REACHED:\n return t('myt_itemCard_imgLabel_reservePriceNotReached');\n case soldLabelKeys.NOT_PAID:\n case purchasesLabelKeys.NOT_PAID:\n return t('myt_itemCard_imgLabel_notPaid');\n case unsoldLabelKeys.NOT_PAID:\n return t('myt_itemCard_imgLabel_unsoldNotPaid');\n case soldLabelKeys.PAID:\n case purchasesLabelKeys.PAID:\n return t('myt_itemCard_imgLabel_paid');\n case soldLabelKeys.DONE:\n case purchasesLabelKeys.DONE:\n return t('myt_itemCard_imgLabel_done');\n case buyerActiveItemsLabelKeys.LEADING:\n return t('myt_itemCard_imgLabel_leading');\n case buyerActiveItemsLabelKeys.OVERBIDDEN:\n return t('myt_itemCard_imgLabel_overbidden');\n case buyerActiveItemsLabelKeys.BID_REMOVED:\n return t('myt_itemCard_imgLabel_bidRemoved');\n case activeLabelKeys.NOT_STARTED:\n return t('myt_itemCard_imgLabel_notStarted');\n case activeLabelKeys.HAS_BIDS:\n return t('myt_itemCard_imgLabel_hasBids');\n case activeLabelKeys.ACTIVE:\n return t('myt_itemCard_imgLabel_active');\n case activeLabelKeys.SOLD:\n return t('myt_itemCard_imgLabel_sold');\n case activeLabelKeys.NOT_SOLD:\n return t('myt_itemCard_imgLabel_notSold');\n case soldLabelKeys.SHIPPING_BOOKED:\n return t('myt_itemCard_imgLabel_shippingBooked');\n case soldLabelKeys.SHIPPED:\n return t('myt_itemCard_imgLabel_shipped');\n case unsoldLabelKeys.FORICBLY_CLOSED:\n return t('myt_itemCard_imgLabel_forciblyClosed');\n case unsoldLabelKeys.RESTARTED:\n return t('myt_itemCard_imgLabel_restarted');\n case itemLostLabelKeys.REMOVED:\n return t('myt_itemCard_imgLabel_removed');\n case itemLostLabelKeys.LOST:\n return t('myt_itemCard_imgLabel_lost');\n default:\n return '';\n }\n};\n\nconst buyerActiveItemsLabelKeys = {\n RESERVE_PRICE_NOT_REACHED: 'BUYER_RESERVE_PRICE_NOT_REACHED',\n LEADING: 'LEADING',\n OVERBIDDEN: 'OVERBIDDEN',\n BID_REMOVED: 'BID_REMOVED'\n};\n\nconst activeLabelKeys = {\n NOT_STARTED: 'NOT_STARTED',\n RESERVE_PRICE_NOT_REACHED: 'ACTIVE_RESERVE_PRICE_NOT_REACHED',\n HAS_BIDS: 'HAS_BIDS',\n ACTIVE: 'ACTIVE',\n SOLD: 'SOLD',\n NOT_SOLD: 'NOT_SOLD'\n};\n\nconst soldLabelKeys = {\n NOT_PAID: 'SOLD_NOT_PAID',\n PAID: 'SOLD_PAID',\n SHIPPING_BOOKED: 'SHIPPING_BOOKED',\n SHIPPED: 'SHIPPED',\n DONE: 'SOLD_DONE'\n};\n\nconst unsoldLabelKeys = {\n NOT_PAID: 'UNSOLD_NOT_PAID',\n RESERVE_PRICE_NOT_REACHED: 'UNSOLD_RESERVE_PRICE_NOT_REACHED',\n FORICBLY_CLOSED: 'FORCIBLY_CLOSED',\n RESTARTED: 'RESTARTED'\n};\n\nconst purchasesLabelKeys = {\n NOT_PAID: 'PURHCASED_NOT_PAID',\n PAID: 'PURCHASED_PAID',\n DONE: 'PURCHASED_DONE'\n};\n\nconst itemLostLabelKeys = {\n LOST: 'LOST',\n REMOVED: 'ITEMLOST_REMOVED '\n};\n\nconst buyerActiveItemsLabels = {\n reservePriceNotReached: {\n key: buyerActiveItemsLabelKeys.RESERVE_PRICE_NOT_REACHED,\n color: 'red'\n },\n leading: {\n key: buyerActiveItemsLabelKeys.LEADING,\n color: 'green'\n },\n overbidden: {\n key: buyerActiveItemsLabelKeys.OVERBIDDEN,\n color: 'red'\n },\n bidRemoved: {\n key: buyerActiveItemsLabelKeys.BID_REMOVED,\n color: 'grey-hard'\n }\n};\n\nconst activeLabels = {\n notStarted: {\n key: activeLabelKeys.NOT_STARTED,\n color: 'grey-soft'\n },\n reservePriceNotReached: {\n key: activeLabelKeys.RESERVE_PRICE_NOT_REACHED,\n color: 'red'\n },\n hasBids: { key: activeLabelKeys.HAS_BIDS, color: 'green' },\n active: { key: activeLabelKeys.ACTIVE, color: 'blue' },\n sold: { key: activeLabelKeys.SOLD, color: 'green' },\n notSold: {\n key: activeLabelKeys.NOT_SOLD,\n color: 'grey-soft'\n }\n};\n\nconst soldLabels = {\n notPaid: { key: soldLabelKeys.NOT_PAID, color: 'red' },\n paid: { key: soldLabelKeys.PAID, color: 'green' },\n shippingBooked: {\n key: soldLabelKeys.SHIPPING_BOOKED,\n color: 'green'\n },\n shipped: { key: soldLabelKeys.SHIPPED, color: 'blue' },\n done: { key: soldLabelKeys.DONE, color: 'grey-hard' }\n};\n\nconst unsoldLabels = {\n notPaid: {\n key: unsoldLabelKeys.NOT_PAID,\n color: 'grey-hard'\n },\n reservePriceNotReached: {\n key: unsoldLabelKeys.RESERVE_PRICE_NOT_REACHED,\n color: 'red'\n },\n forciblyClosed: {\n key: unsoldLabelKeys.FORICBLY_CLOSED,\n color: 'red'\n },\n restarted: {\n key: unsoldLabelKeys.RESTARTED,\n color: 'blue'\n }\n};\n\nconst purchasesLabels = {\n notPaid: {\n key: purchasesLabelKeys.NOT_PAID,\n color: 'red'\n },\n paid: { key: purchasesLabelKeys.PAID, color: 'green' },\n done: { key: purchasesLabelKeys.DONE, color: 'grey-hard' }\n};\n\nconst itemLostLabels = {\n lost: {\n key: itemLostLabelKeys.LOST,\n color: 'grey-hard'\n },\n removed: {\n key: itemLostLabelKeys.REMOVED,\n color: 'grey-hard'\n }\n};\n\nexport const itemHasBids = item => item.bidInformation.bidCount > 0;\nexport const itemHasBidsButReservePriceNotReached = item =>\n item.transaction\n ? false\n : itemHasBids(item) &&\n !item.reservePriceReached &&\n item.listing.pricing.reservePrice !== -1;\n\nconst getActiveActiveLabel = item => {\n if (itemHasBidsButReservePriceNotReached(item)) {\n return activeLabels.reservePriceNotReached;\n }\n return itemHasBids(item) ? activeLabels.hasBids : activeLabels.active;\n};\n\nexport const getActiveLabel = item => {\n switch (item.activityType) {\n case 'NotPublished':\n return activeLabels.notStarted;\n case 'Active':\n return getActiveActiveLabel(item);\n case 'Sold':\n return activeLabels.sold;\n case 'Unsold':\n return activeLabels.unSold;\n }\n};\n\nexport const getUnsoldLabel = item => {\n if (item && item.listing.restart.hasRestartedChild) {\n return unsoldLabels.restarted;\n }\n if (item && item.forciblyClosed && item.forciblyClosed.closed) {\n return unsoldLabels.forciblyClosed;\n }\n if (itemHasBidsButReservePriceNotReached(item)) {\n return unsoldLabels.reservePriceNotReached;\n }\n return unsoldLabels.notPaid;\n};\n\nconst getStates = sellerState => ({\n paid: sellerState.paid ? 'done' : '',\n shipped: sellerState.shipped\n ? 'done'\n : sellerState.shippingBooked\n ? 'partial'\n : '',\n feedbackLeft: sellerState.feedbackLeft ? 'done' : ''\n});\n\nexport const getBuyerActiveItemsLabel = (item, memberId) => {\n if (item.caller.leadingBidRemoved === true) {\n return buyerActiveItemsLabels.bidRemoved;\n }\n\n if (\n item.bidInformation.leadingBidder &&\n item.bidInformation.leadingBidder.id === memberId\n ) {\n if (!item.reservePriceReached) {\n return buyerActiveItemsLabels.reservePriceNotReached;\n }\n return buyerActiveItemsLabels.leading;\n } else {\n return buyerActiveItemsLabels.overbidden;\n }\n};\n\nexport const getSoldLabel = item => {\n const sellerState = item.transaction.sellerState;\n const states = getStates(sellerState);\n if (sellerState.shipped && sellerState.paid && sellerState.feedbackLeft) {\n return {\n ...soldLabels.done,\n states: states\n };\n }\n\n if (sellerState.shipped || (sellerState.shipped && sellerState.paid)) {\n return {\n ...soldLabels.shipped,\n states: states\n };\n }\n\n if (sellerState.shippingBooked && sellerState.paid) {\n return {\n ...soldLabels.shippingBooked,\n states: states\n };\n }\n\n if (sellerState.paid) {\n return {\n ...soldLabels.paid,\n states: states\n };\n }\n\n return {\n ...soldLabels.notPaid,\n states: states\n };\n};\n\nexport const getPurchasesLabel = item => {\n const buyerState = item.transaction.buyerState;\n const states = getStates(buyerState);\n\n if (buyerState.paid && buyerState.feedbackLeft) {\n return {\n ...purchasesLabels.done,\n states: states\n };\n }\n\n if (buyerState.paid) {\n return {\n ...purchasesLabels.paid,\n states: states\n };\n }\n\n return {\n ...purchasesLabels.notPaid,\n states: states\n };\n};\n\nexport const getBuyerItemsLostLabel = item => {\n if (item && item.forciblyClosed && item.forciblyClosed.closed) {\n return {\n ...itemLostLabels.removed\n };\n }\n\n return {\n ...itemLostLabels.lost\n };\n};\n\nexport default {\n getActiveLabel,\n getBuyerItemsLostLabel,\n getSoldLabel,\n getUnsoldLabel\n};\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 null;\n }\n\n const [beforeQuery, afterQuery] = query ? text.split(query) : [];\n const hasSplitQuery = beforeQuery && afterQuery;\n return (\n \n {icon && icon}\n {hasSplitQuery && {beforeQuery}}\n {hasSplitQuery ? query : text}\n {hasSplitQuery && {afterQuery}}\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/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 const { t } = useTranslator();\n\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 \n {' '}\n {item.category\n ? `${t('search_suggestion_within')} ${item.category.name}`\n : ''}\n \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 {t('siteHeader_cause')}\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport { useCurrentLanguage } from 'tradera-lang/translate';\nimport { formatPrice } from 'tradera-utils/format';\nimport { useSelector } from 'react-redux';\nimport { selectPreferredCurrency } from 'tradera-state/multi-currency/selectors';\n\nconst MultiCurrency = ({\n amountInSek,\n className,\n tagName: TagName,\n style,\n prefix,\n allowNegative\n}) => {\n const { language } = useCurrentLanguage();\n const preferredCurrency = useSelector(selectPreferredCurrency);\n\n const isVisible =\n preferredCurrency &&\n preferredCurrency.code !== 'SEK' &&\n amountInSek &&\n (amountInSek * preferredCurrency.rate > 0 || allowNegative);\n\n if (!isVisible) {\n return null;\n }\n\n const formattedPrice = formatPrice(\n amountInSek * preferredCurrency.rate,\n language,\n {\n currency: preferredCurrency.code,\n maximumFractionDigits: preferredCurrency.decimals\n }\n );\n return (\n \n {prefix || <>≈} {formattedPrice}\n \n );\n};\n\nMultiCurrency.propTypes = {\n amountInSek: PropTypes.number,\n className: PropTypes.string,\n tagName: PropTypes.string,\n style: PropTypes.object,\n prefix: PropTypes.string,\n allowNegative: PropTypes.bool\n};\n\nMultiCurrency.defaultProps = {\n tagName: 'span'\n};\n\nexport default MultiCurrency;\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';\nimport { isPrerender } from 'tradera-utils/is-prerender';\nimport { useUserAgent } from 'tradera-hooks/use-user-agent';\n\nconst LocalizationRegionPicker = ({\n showLocalizationRegionPicker,\n dismissLocalizationRegionPicker,\n onLocalizationShippingRegionSelected,\n geolocation\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const userAgent = useUserAgent();\n const onClick = () => {\n onLocalizationShippingRegionSelected({\n countryCodeIso2: geolocation.isoCode,\n currencyCode: geolocation.currency,\n toLocalizedUrl\n });\n dismissLocalizationRegionPicker();\n };\n const isCrawler = isPrerender(userAgent);\n\n return showLocalizationRegionPicker && !isCrawler ? (\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 hoverMenuStyles from './hover-menu/hover-menu.module.scss';\nimport { LocalizationMenu } from 'components/localization/localization-menu';\nimport { ConnectedLocalizationRegionPicker } from './localization-region-picker';\nimport TranslateIcon from '@tradera/blueprint/theme/icons2/translate.svg?jsx';\nimport { getCountryCodeForFlagFromLanguage } from 'tradera-localization/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 showIconInsteadOfFlag = false\n}) => {\n const countryCode = getCountryCodeForFlagFromLanguage(\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 {showIconInsteadOfFlag ? (\n \n \n \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, { hideRegionSelection = false }) => ({\n preferredLanguage: selectPreferredLanguage(state),\n showRegionSelection:\n !hideRegionSelection && selectShowRegionSelection(state),\n showLocalizationRegionPicker: selectShowLocalizationRegionPicker(state)\n});\n\nconst mapDispatchToProps = {};\n\nexport const LocalizationLink = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainLocalizationLink);\n","// extracted by mini-css-extract-plugin\nexport default {\"shipping-country-select-row\":\"shipping-country-select-row--p9bCi\",\"shippingCountrySelectRow\":\"shipping-country-select-row--p9bCi\"};","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-localization/countries';\nimport Flag from 'tradera-components/flag/flag';\nimport styles from './shipping-country-select-dropdown.module.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 { ShippingCountrySelectDropdown } from './shipping-country-select-dropdown';\nimport Load from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\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';\nimport { useTranslator } from 'tradera-lang/translate';\n\nexport const LocalizationMenu = ({ onBlur, showRegionSelection }) => {\n const { t } = useTranslator();\n return (\n
    \n {showRegionSelection && (\n <>\n \n
    \n \n )}\n <>\n \n
    \n \n
    \n );\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport getInitialState, { MODAL_STATUS } from './initial-state';\nimport { getPaymentOptions, getInvoice } from './actions';\n\nconst invoiceCheckoutSlice = createSlice({\n name: 'invoiceCheckout',\n initialState: getInitialState(),\n reducers: {\n setInvoiceData: (state, { payload }) => {\n state.invoice = payload;\n },\n setSelectedPayment: (state, { payload }) => {\n state.payment.selectedPayment = payload;\n state.payment.paymentMethodData = null;\n state.checkoutSummary.hasError = false;\n },\n setPaymentMethodData: (state, { payload }) => {\n state.payment.paymentMethodData = payload;\n },\n setPaymentPaying: (state, { payload }) => {\n state.payment.isPaying = payload;\n state.payment.hasError = false;\n },\n setCheckoutSummaryFetching: (state, { payload }) => {\n state.checkoutSummary.isFetching = payload;\n state.checkoutSummary.hasError = false;\n state.isUpdating = payload;\n },\n setCheckoutSummaryHasError: (state, { payload }) => {\n state.checkoutSummary.hasError = payload;\n state.checkoutSummary.isFetching = false;\n state.isUpdating = false;\n state.payment.modal.status = MODAL_STATUS.ERROR;\n },\n openPaymentModal: (state, { payload }) => {\n const { open, status, paymentAttemptId } = payload;\n state.payment.modal = {\n open,\n status,\n paymentAttemptId\n };\n },\n closePaymentModal: state => {\n state.payment.modal = {\n open: '',\n status: MODAL_STATUS.START\n };\n },\n resetOngoingPaymentAttempt: state => {\n state.ongoingPaymentAttempt = {\n invoicePaymentAttemptId: null,\n paymentMethod: null\n };\n }\n },\n extraReducers: builder => {\n // get invoice\n builder.addCase(getInvoice.fulfilled, (state, { payload }) => {\n state.invoice = {\n ...state.invoice,\n ...payload.invoice,\n isFetching: false\n };\n state.sellerPhoneNumber = payload.sellerPhone;\n state.ongoingPaymentAttempt = {\n ...state.ongoingPaymentAttempt,\n ...payload.ongoingPaymentAttempt\n };\n });\n builder.addCase(getInvoice.pending, state => {\n state.invoice = {\n ...state.invoice,\n isFetching: true,\n hasError: null\n };\n });\n builder.addCase(getInvoice.rejected, state => {\n state.invoice = {\n ...state.invoice,\n isFetching: false,\n hasError: true\n };\n });\n\n // get payment options\n builder.addCase(getPaymentOptions.fulfilled, (state, { payload }) => {\n const { paymentOptions } = payload;\n state.payment = {\n ...state.payment,\n isFetching: false,\n paymentOptions: paymentOptions\n };\n });\n builder.addCase(getPaymentOptions.pending, state => {\n state.payment = {\n ...state.payment,\n isFetching: true,\n hasError: null\n };\n });\n builder.addCase(getPaymentOptions.rejected, state => {\n state.payment = {\n ...state.payment,\n isFetching: false,\n hasError: true\n };\n });\n }\n});\n\nexport const {\n openNonIntegratedModal,\n closeNonIntegratedModal,\n setSelectedPayment,\n setPaymentMethodData,\n setPaymentPaying,\n setCheckoutSummaryFetching,\n setCheckoutSummaryHasError,\n openPaymentModal,\n closePaymentModal,\n setTermsAccepted,\n setInvoiceData,\n resetOngoingPaymentAttempt\n} = invoiceCheckoutSlice.actions;\n\nexport default invoiceCheckoutSlice.reducer;\n","import React from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\n\nconst useIsMobile = () =>\n useMediaQuery({\n minWidth: BREAKPOINT_SIZES.XS.min,\n maxWidth: BREAKPOINT_SIZES.SM.max\n });\n\nexport const withIsMobile = WrappedComponent => {\n const WithIsMobile = props => {\n const isMobile = useIsMobile();\n return ;\n };\n\n WithIsMobile.displayName = `withIsMobile(${WrappedComponent.displayName ||\n WrappedComponent.name}`;\n\n return WithIsMobile;\n};\n\nexport default useIsMobile;\n","export default {\n MODAL: {\n OPEN: 'open',\n CLOSED: 'closed'\n },\n MENU: {\n OPEN: 'open',\n CLOSED: 'closed'\n },\n ITEM_LAYOUT: {\n GRID: 'layout-grid',\n LIST: 'layout-list'\n }\n};\n","export const actionTypes = {\n PURCHASE_ORDER_REQUEST_COMBINED_SHIPPING:\n 'PURCHASE_ORDER_REQUEST_COMBINED_SHIPPING',\n PURCHASE_ORDER_SHIPPED: 'PURCHASE_ORDER_SHIPPED',\n PURCHASE_ORDER_LIST: 'PURCHASE_ORDER_LIST',\n PURCHASE_ORDER_PAID_BY_SELLER: 'PURCHASE_ORDER_PAID_BY_SELLER',\n PURCHASE_ORDER_PAID_BY_BUYER: 'PURCHASE_ORDER_PAID_BY_BUYER',\n PURCHASE_ORDER_RESET: 'PURCHASE_ORDER_RESET',\n PURCHASE_ORDER_DELETE_SHIPMENT: 'PURCHASE_ORDER_DELETE_SHIPMENT',\n PURCHASE_ORDER_HIDDEN: 'PURCHASE_ORDER_HIDDEN',\n PURCHASE_ORDERS_SHIPPING_BOOKED: 'PURCHASE_ORDERS_SHIPPING_BOOKED',\n PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER:\n 'PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER',\n PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER:\n 'PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER'\n};\n","import fetch from '../utils/fetch';\nimport URLS from '../constants/urls';\nexport const types = {\n LINK: 'LINK',\n EXTERNAL_LINK: 'EXTERNAL_LINK',\n DISPATCH: 'DISPATCH',\n DISABLED: 'DISABLED'\n};\n\n/**\n * Converts Array to string for FormData;\n * @param {array} ids array of ids to send to backend\n */\nconst getBodyStringFromIDs = ids => {\n let bodyString = '';\n if (ids) {\n ids.forEach((id, pos) => {\n // eslint-disable-next-line better-mutation/no-mutation\n bodyString += `${pos > 0 ? '&' : ''}ids=${id}`;\n });\n }\n return bodyString;\n};\n\n/**\n * Headers to be set on 'fetch' requests for FormData\n * We should remove FormData posts\n */\nconst formHeaders = {\n 'X-Requested-With': 'XmlHtpRequest',\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Content-Disposition': 'form-data'\n};\n\n/**\n * Get Restart Items Summary\n * @param {array} ids\n * @returns {promise} fetch promise returned;\n */\nexport const restartItemsSummary = ids =>\n fetch(URLS.ACTIVE_ITEMS_RESTART_SUMMARY, {\n body: JSON.stringify({ ids: ids })\n });\n\n/**\n * End Items\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const endItems = ids =>\n fetch(URLS.ACTIVE_END_ITEMS, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n\n/**\n * Show Items in Purchases list\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const showPurchases = ids =>\n fetch(URLS.BUYER_SHOW, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n\n/**\n * Show Items\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const showActive = ids =>\n fetch(URLS.BUYER_ACTIVE_ITEMS_SHOW, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n\n/**\n * Hide Items\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const hideActive = ids =>\n fetch(URLS.BUYER_ACTIVE_ITEMS_HIDE, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n\n/**\n * Restart Items\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const restartItems = ids =>\n fetch(URLS.UNSOLD_RESTART_ITEMS, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n\n/**\n * Mark Paid\n * @param {array} ids 'selectedCheckboxes in state'\n * @returns {promise} fetch promise returned;\n */\nexport const markPaid = ids =>\n fetch(URLS.BUYER_MARK_PAID, {\n body: `${getBodyStringFromIDs(ids)}&filter=all`,\n headers: formHeaders\n });\n","// extracted by mini-css-extract-plugin\nexport default {\"logo-with-border\":\"logo-with-border--1WqhL\",\"logoWithBorder\":\"logo-with-border--1WqhL\",\"narrow\":\"narrow--2MmQI\",\"logo-without-border\":\"logo-without-border--8i8PY\",\"logoWithoutBorder\":\"logo-without-border--8i8PY\"};","import React from 'react';\nimport MaestroLogo from '@tradera/blueprint/theme/logos/maestro_vertical.svg?jsx';\nimport MasterCardLogo from '@tradera/blueprint/theme/logos/mastercard_vertical.svg?jsx';\nimport PaynovaLogo from '@tradera/blueprint/theme/logos/paynova.svg?jsx';\nimport PaypalLogo from '@tradera/blueprint/theme/logos/paypal.svg?jsx';\nimport SwishLogo from '@tradera/blueprint/theme/logos/swish_horizontal.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';\nimport KlarnaLogo from '@tradera/blueprint/theme/logos/klarna.svg?jsx';\n\nimport style from './payment-method-logo.module.scss';\n\nconst PaymentMethodLogo = ({ paymentMethod, displayText }) => {\n const visaLogo = (\n \n \n
    \n );\n const mastercardLogo = (\n \n \n \n
    \n );\n switch (paymentMethod) {\n case 'Visa':\n return visaLogo;\n case 'Mastercard':\n return mastercardLogo;\n case 'VisaMasterCard':\n return (\n
    \n
    {visaLogo}
    \n {mastercardLogo}\n
    \n );\n case 'Paynova':\n return (\n \n \n \n );\n case 'PayPal':\n return (\n \n \n \n );\n case 'SwishApp2App':\n case 'SwishHandel':\n return (\n \n \n \n );\n case 'ApplePay':\n return (\n \n );\n case 'GooglePay':\n return (\n \n );\n case 'Klarna':\n return (\n \n );\n default:\n return null;\n }\n};\n\nexport default PaymentMethodLogo;\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const getUuid = () => uuidv4();\n\n// Export object for Sinon stubbing\nexport default {\n getUuid\n};\n","import api from './api';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { logger } from 'packages/logger';\nimport utils from './utils';\nimport {\n selectInvoiceCheckout,\n selectInvoiceOngoingPayment,\n selectInvoicePayment,\n selectSellerPhoneNumber\n} from './selector';\nimport {\n setCheckoutSummaryFetching,\n openPaymentModal,\n closePaymentModal,\n setPaymentMethodData,\n resetOngoingPaymentAttempt\n} from './reducer';\nimport { CHECKOUT_ERRORS } from 'tradera-helpers/checkout-errors';\nimport {\n MODAL_TYPE,\n MODAL_STATUS,\n PAYMENT_OPTIONS\n} from 'tradera-state/views/invoice-checkout/initial-state';\nimport * as analytics from 'tradera-apps/tradera/components/vip/helpers/analytics';\nimport { paymentInstance } from 'tradera-apps/my-tradera/invoice-checkout/payment/braintree-drop-in';\nimport {\n selectMemberCountryCodeIso2,\n selectMemberEmail,\n selectMemberFirstName,\n selectMemberLastName\n} from 'tradera-state/member/selectors';\n\nexport const getInvoice = createAsyncThunk(\n 'invoiceCheckout/getInvoice',\n async ({ invoiceId }, thunkAPI) => {\n try {\n const result = await api.getInvoice(invoiceId);\n\n return result.data;\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\n// Payment\n\nexport const getPaymentOptions = createAsyncThunk(\n 'invoiceCheckout/getPaymentOptions',\n async (invoiceId, thunkAPI) => {\n try {\n const { data } = await api.getPaymentOptions(invoiceId);\n return data;\n } catch (error) {\n logger(error);\n return thunkAPI.rejectWithValue(error);\n }\n }\n);\n\nconst sleep = delay => new Promise(resolve => setTimeout(resolve, delay));\n\nconst PAYMENT_STATUS = {\n AUTHORIZED: 'Authorized',\n AWAITING_SWISH: 'AwaitingExternalAuthentication',\n CANCELLED: 'Cancelled',\n CANCELLING: 'Cancelling',\n CANCELLING_FAILED: 'CancellingFailed',\n COMPLETING: 'Completing',\n COMPLETING_FAILED: 'CompletingFailed',\n DECLINED: 'Declined',\n FAILED: 'Failed',\n INIT: 'Initializing',\n INIT_COMPLETE: 'Initialized',\n INIT_FAILED: 'InitializationFailed',\n SETTLED: 'Settled'\n};\n\n// eslint-disable-next-line no-control-regex\nconst containsNonPrintableAscii = value => value.match(/[^\\x00-\\x7F]/g);\n\nconst createThreeDSecureParameters = getState => {\n const currentState = getState();\n const { amountOwed: totalCost } = selectInvoiceCheckout(currentState);\n const memberFirstName = selectMemberFirstName(currentState);\n const firstName = containsNonPrintableAscii(memberFirstName)\n ? null\n : memberFirstName;\n const memberLastName = selectMemberLastName(currentState);\n const lastName = containsNonPrintableAscii(memberLastName)\n ? null\n : memberLastName;\n\n const buyerAddress = {\n countryCodeAlpha2: selectMemberCountryCodeIso2(currentState),\n phoneNumber: selectSellerPhoneNumber(currentState)?.replace(\n /[^\\d]/g,\n ''\n )\n };\n return {\n amount: totalCost,\n email: selectMemberEmail(currentState),\n billingAddress: {\n givenName: firstName,\n surname: lastName,\n ...buyerAddress\n },\n additionalInformation: {\n shippingGivenName: firstName,\n shippingSurname: lastName,\n shippingAddress: buyerAddress\n }\n };\n};\n\nexport const initBraintreePayment = (paymentOption, onComplete) => async (\n dispatch,\n getState\n) => {\n let requestOptions = {};\n\n if (\n paymentOption === PAYMENT_OPTIONS.VISA_MASTERCARD ||\n paymentOption === PAYMENT_OPTIONS.GOOGLEPAY\n ) {\n requestOptions = {\n threeDSecure: createThreeDSecureParameters(getState)\n };\n }\n\n dispatch(setCheckoutSummaryFetching(true));\n\n try {\n if (paymentInstance) {\n const data = await paymentInstance.requestPaymentMethod(\n requestOptions\n );\n dispatch(setPaymentMethodData(data));\n } else {\n throw { message: CHECKOUT_ERRORS.NO_PAYMENT_METHOD };\n }\n return dispatch(initPayment(onComplete));\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const initPayment = onComplete => async (dispatch, getState) => {\n const currentState = getState();\n\n const { invoicePaymentAttemptId } = selectInvoiceOngoingPayment(\n currentState\n );\n const { selectedPayment, paymentMethodData } = selectInvoicePayment(\n currentState\n );\n const { invoiceId } = selectInvoiceCheckout(currentState);\n\n dispatch(closePaymentModal());\n dispatch(setCheckoutSummaryFetching(true));\n\n try {\n const paymentAttemptId = invoicePaymentAttemptId || utils.getUuid();\n\n if (!invoicePaymentAttemptId) {\n const formData = {\n invoicePaymentAttemptId: paymentAttemptId,\n invoiceId,\n paymentMethod: selectedPayment,\n paymentMethodData\n };\n await api.initializePayment(formData);\n }\n\n //POST successful? then start polling:\n return dispatch(\n checkPaymentStatus(paymentAttemptId, selectedPayment, onComplete)\n );\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const cancelPayment = async invoicePaymentAttemptId => {\n const formData = {\n invoicePaymentAttemptId\n };\n\n try {\n await api.cancelPayment(formData);\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const completePayment = (\n paymentAttemptId,\n paymentMethod,\n onComplete\n) => async dispatch => {\n const formData = {\n paymentAttemptId,\n googleAnalyticsData: analytics.getGaTrackingData()\n };\n\n try {\n await api.completePayment(formData);\n\n //POST successful? then start polling again:\n return dispatch(\n checkPaymentStatus(paymentAttemptId, paymentMethod, onComplete)\n );\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const checkPaymentStatus = (\n paymentAttemptId,\n paymentMethod,\n onComplete\n) => async (dispatch, getState) => {\n const { modal } = selectInvoicePayment(getState());\n\n let poll = true;\n\n try {\n const paymentStatus = await api.getPaymentStatus(paymentAttemptId);\n\n const { data } = paymentStatus;\n\n switch (data?.status) {\n case PAYMENT_STATUS.AUTHORIZED:\n case PAYMENT_STATUS.COMPLETING:\n case PAYMENT_STATUS.INIT:\n case PAYMENT_STATUS.CANCELLING:\n poll = true;\n break;\n case PAYMENT_STATUS.AWAITING_SWISH:\n poll = true;\n if (!modal.open) {\n dispatch(\n openPaymentModal({\n open: MODAL_TYPE.SWISH_HANDEL,\n status: MODAL_STATUS.START,\n paymentAttemptId\n })\n );\n }\n break;\n case PAYMENT_STATUS.INIT_COMPLETE:\n poll = false;\n return dispatch(\n completePayment(paymentAttemptId, paymentMethod, onComplete)\n );\n case PAYMENT_STATUS.SETTLED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(setCheckoutSummaryFetching(false));\n onComplete();\n break;\n case PAYMENT_STATUS.DECLINED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n return Promise.reject(new Error(CHECKOUT_ERRORS.DECLINED));\n case PAYMENT_STATUS.CANCELLED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n break;\n case PAYMENT_STATUS.COMPLETING_FAILED:\n case PAYMENT_STATUS.FAILED:\n case PAYMENT_STATUS.INIT_FAILED:\n case PAYMENT_STATUS.CANCELLING_FAILED:\n poll = false;\n dispatch(closePaymentModal());\n dispatch(resetOngoingPaymentAttempt());\n dispatch(setCheckoutSummaryFetching(false));\n return Promise.reject(\n new Error(`Payment error: ${data?.status}`)\n );\n default:\n dispatch(closePaymentModal());\n poll = false;\n }\n } catch (error) {\n poll = false;\n return Promise.reject(error);\n }\n\n if (poll) {\n await sleep(1500);\n return dispatch(\n checkPaymentStatus(paymentAttemptId, paymentMethod, onComplete)\n );\n }\n};\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 metaRobots = null\n) => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n useEffect(() => {\n const pageMetaData = {\n metaRobots: metaRobots,\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, metaRobots]);\n};\n\nexport { usePageMeta, PAGE_TYPES };\n","//jshint module : true\nimport actionTypes from './action-types';\nimport pick from 'underscore/modules/pick';\n\nexport default (\n state = {\n isTcfLoaded: false,\n gpt: null,\n adSenseQuery: null,\n adSenseShoppingPublisherId:\n process.env.PUBLIC_ADSENSE_SHOPPING_PUBLISHER_ID\n },\n action\n) => {\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...action.payload\n };\n case actionTypes.SET_ADS:\n if (!action || !action.type || !action.payload) return state;\n return {\n ...state,\n gpt: action.payload.gpt,\n adSenseQuery: action.payload.adSenseQuery\n ? action.payload.adSenseQuery\n : null,\n adSenseShoppingPublisherId:\n action.payload.adSenseShoppingPublisherId\n };\n case actionTypes.SET_GPT: {\n const {\n adUnitPath,\n age,\n devTest,\n gender,\n memberIdHash,\n page\n } = action.payload;\n return {\n ...state,\n gpt: {\n adUnitPath,\n customTargetingParameters: pick(\n {\n page,\n gender,\n age,\n devTest\n },\n Boolean\n ),\n publisherProvidedId: memberIdHash\n }\n };\n }\n case actionTypes.SET_TCF_LOADED:\n return {\n ...state,\n isTcfLoaded: true\n };\n\n default:\n return state;\n }\n};\n","import modalState from './modal-state';\nimport { getInitData } from 'packages/init-data';\n\nconst initData = getInitData() || {};\nlet isAutoStartAllowed = initData.pageSpecificData\n ? initData.pageSpecificData.isAutoStartAllowed\n : false;\n\nexport default {\n isFetching: false,\n errorMessage: null,\n modalState: modalState.CLOSED,\n autoStartToken: null,\n onCompleteCallback: null,\n onCloseCallback: null,\n isAutoStartAllowed\n};\n","import actionTypes from './action-types';\nimport initialState from './initial-state';\nimport modalState from './modal-state';\n\nexport default (state = initialState, action) => {\n if (!action || !action.type) return state;\n switch (action.type) {\n case actionTypes.RESET:\n return { ...initialState };\n case actionTypes.COMPLETED:\n return { ...state, modalState: modalState.COMPLETED };\n case actionTypes.SET_ERROR:\n return {\n ...state,\n errorMessage: action.payload,\n modalState: modalState.ERROR\n };\n case actionTypes.IN_PROGRESS:\n return {\n ...state,\n autoStartToken: action.payload.autoStartToken,\n isAutoStartAllowed: action.payload.isAutoStartAllowed\n };\n case actionTypes.START_AUTH:\n return {\n ...state,\n errorMessage: null,\n retryCount: 0,\n modalState: modalState.IN_PROGRESS\n };\n case actionTypes.CLOSE:\n return {\n ...state,\n modalState: modalState.CLOSED\n };\n default:\n return state;\n }\n};\n","import initData from 'init-data';\n\nexport default {\n list: [],\n topLevelCategories:\n initData.allCategories?.map(({ id, name, href }) => ({\n id,\n title: name,\n href\n })) || [],\n isFetching: false,\n error: null\n};\n","import actionTypes from './action-types';\nimport initialState from './initial-state';\n\nexport default (state = initialState, action) => {\n if (!action || !action.type) return state;\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...state,\n ...action.payload\n };\n case actionTypes.RECEIVE_CATEGORY_LIST:\n return {\n ...state,\n list: action.payload,\n isFetching: false,\n error: null\n };\n case actionTypes.REQUEST_CATEGORY_LIST:\n return { ...state, isFetching: true, error: null };\n case actionTypes.HANDLE_CATEGORY_LIST_ERROR:\n return { ...state, isFetching: false, error: action.payload };\n default:\n return state;\n }\n};\n","import {\n isEuCountryCode,\n isSwedenCountryCode\n} from 'tradera-utils/allowed-buyer-region';\nimport constants from '../constants/constants';\n\nconst getDefaultAllowedBuyerRegionsFilter = countryCodeIso2 =>\n isSwedenCountryCode(countryCodeIso2)\n ? constants.FILTER_STATES_ALLOWED_BUYER_REGIONS.SWEDEN\n : isEuCountryCode(countryCodeIso2)\n ? constants.FILTER_STATES_ALLOWED_BUYER_REGIONS.EU\n : constants.FILTER_STATES_ALLOWED_BUYER_REGIONS.INTERNATIONAL;\n\nexport const getActiveFilterStatesAllowedBuyerRegions = countryCodeIso2 =>\n Object.values(constants.FILTER_STATES_ALLOWED_BUYER_REGIONS).filter(\n x => x !== getDefaultAllowedBuyerRegionsFilter(countryCodeIso2)\n );\n\nexport const getActiveFilterStates = countryCodeIso2 => {\n return [\n ...constants.ACTIVE_FILTER_STATES_ITEM_CONDITION,\n ...constants.ACTIVE_FILTER_STATES_SELLER_TYPE,\n ...constants.ACTIVE_FILTER_STATES_ITEM_STATUS,\n ...constants.ACTIVE_FILTER_STATES_ITEM_TYPE,\n ...constants.ACTIVE_FILTER_STATES_COUNTY,\n ...getActiveFilterStatesAllowedBuyerRegions(countryCodeIso2)\n ];\n};\n","import { getActiveFilterStates } from 'tradera-apps/tradera/components/discover/helpers/filter-states';\n\nconst normalizeFilters = filters => {\n if (filters) {\n let normalized = {};\n filters.map(filter => {\n const { parameter } = filter;\n // eslint-disable-next-line better-mutation/no-mutation\n normalized = {\n ...normalized,\n [parameter]: {\n ...filter\n }\n };\n });\n return normalized;\n }\n};\n\nconst activeFilters = (filters, shippingRegionCountryCodeIso2) => {\n if (filters) {\n let normalized = [];\n filters.map(filter => {\n const { selectedValue } = filter;\n if (\n getActiveFilterStates(shippingRegionCountryCodeIso2).includes(\n selectedValue\n )\n ) {\n normalized.push(filter);\n }\n });\n return normalized;\n }\n};\n\nconst normalize = (responseData, shippingRegionCountryCodeIso2 = 'se') => {\n const normalized = {\n activeBrands: [],\n activeFilters: [],\n attributeFilters: [],\n categoryPath: responseData.categoryPath || [],\n currentCategoryId: responseData.categoryPath?.[0]?.id || 0,\n fallbackItemsById: [],\n filterCategories: {},\n filterPrice: {},\n filters: {},\n headerText: responseData.headerText || null,\n internalSearch: responseData.internalSearchBar || {},\n introText: responseData.introText || null,\n isSavedSearchEmailEnabled:\n responseData?.isSavedSearchEmailEnabled || false,\n isShopOwnedByCurrentMember:\n responseData?.itemsOnDisplay?.isShopOwnedByCurrentMember || false,\n itemsById: [],\n itemsOnDisplayById: [],\n mainText: responseData.mainText || null,\n pagination: responseData.pagination || null,\n fallbackUrl: responseData.fallbackUrl || null,\n totalItems: responseData.totalItems || 0,\n reduxContainer: responseData.reduxContainer || {},\n searchLanguages: responseData.searchLanguages || []\n };\n\n if (responseData.filters) {\n normalized.filterCategories = responseData.filters.categoryFilter;\n normalized.filters = normalizeFilters(\n responseData.filters.singleOptionFilters\n );\n normalized.activeFilters = activeFilters(\n responseData.filters.singleOptionFilters,\n shippingRegionCountryCodeIso2\n );\n normalized.filterPrice = responseData.filters.priceRangeFilter;\n normalized.attributeFilters = responseData.filters.attributeFilters;\n }\n\n if (responseData.items) {\n responseData.items.map(item => {\n normalized.itemsById.push(item.itemId);\n });\n }\n\n if (responseData.itemsOnDisplay) {\n responseData.itemsOnDisplay.items.map(item => {\n normalized.itemsOnDisplayById.push(item.itemId);\n });\n }\n\n if (responseData.fallbackItems) {\n responseData.fallbackItems.map(item => {\n normalized.fallbackItemsById.push(item.itemId);\n });\n }\n\n normalized.status = responseData.status;\n return normalized;\n};\n\nexport { normalize };\n","import actionTypes from './action-types';\nimport memberActionTypes from '../member/action-types';\nimport { normalize } from './helpers';\n\nexport default (state = {}, action) => {\n const requestSearchResults = () => {\n return {\n ...state,\n error: null\n };\n };\n\n const receiveSearchResults = () => {\n const {\n payload: {\n result = {},\n endpoint = null,\n queryParams = null,\n shippingRegionCountryCodeIso2 = 'se'\n }\n } = action;\n return {\n ...state,\n endpoint,\n error: null,\n hasResult: true,\n queryParams,\n ...normalize(result, shippingRegionCountryCodeIso2)\n };\n };\n\n const handleSearchResultsError = () => {\n return {\n ...state,\n error: action.payload,\n hasResult: true,\n ...normalize({})\n };\n };\n\n const setSingleFilter = () => ({\n ...state,\n filters: {\n ...state.filters,\n [action.payload.filter]: {\n ...state.filters[action.payload.filter],\n selectedValue: action.payload.value\n }\n }\n });\n\n const addItemOnDisplay = () => {\n const { payload } = action;\n return {\n ...state,\n itemsOnDisplayById: state.itemsOnDisplayById.includes(\n payload.itemId\n )\n ? [...state.itemsOnDisplayById]\n : [...state.itemsOnDisplayById, payload.itemId]\n };\n };\n\n const removeItemOnDisplay = () => {\n const { payload } = action;\n const items = state.itemsOnDisplayById.filter(\n item => item !== payload.itemId\n );\n return {\n ...state,\n itemsOnDisplayById: [...items]\n };\n };\n\n const setCategoryPath = () => {\n return {\n ...state,\n categoryPath: action.payload,\n currentCategoryId: (action.payload && action.payload[0].id) || 0\n };\n };\n\n const setCurrentCategoryId = () => {\n return {\n ...state,\n currentCategoryId: action.payload\n };\n };\n\n // Set show/hide buyer region filter when member geo changes\n const showOrHideAllowedBuyerRegionFilter = () => {\n const { payload } = action;\n return {\n ...state,\n displayAllowedBuyerRegionFilter:\n state.displayAllowedBuyerRegionFilter ||\n payload?.isoCode !== 'SE'\n };\n };\n\n const reset = () => {\n return action.payload.initialState;\n };\n\n const initialize = () => {\n return {\n ...action.payload\n };\n };\n\n const def = () => state;\n\n const reducers = {\n [actionTypes.INITIALIZE]: initialize,\n [actionTypes.REQUEST_SEARCH_RESULTS]: requestSearchResults,\n [actionTypes.RECEIVE_SEARCH_RESULTS]: receiveSearchResults,\n [actionTypes.HANDLE_SEARCH_RESULTS_ERROR]: handleSearchResultsError,\n [actionTypes.SET_SINGLE_FILTER]: setSingleFilter,\n [actionTypes.ADD_ITEM_ON_DISPLAY]: addItemOnDisplay,\n [actionTypes.REMOVE_ITEM_ON_DISPLAY]: removeItemOnDisplay,\n [actionTypes.SET_CATEGORY_PATH]: setCategoryPath,\n [actionTypes.SET_CURRENT_CATEGORY_ID]: setCurrentCategoryId,\n [memberActionTypes.SET_GEOLOCATION]: showOrHideAllowedBuyerRegionFilter,\n [actionTypes.RESET]: reset\n };\n\n return !action || !action.type || !reducers[action.type]\n ? def()\n : reducers[action.type]();\n};\n","import actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...action.payload\n };\n case actionTypes.DEFAULT_ACTION:\n return {\n ...state,\n default: action.payload\n };\n default:\n return state;\n }\n};\n","import actionTypes from './action-types';\n\n// The max size of the item cache * before adding new items *\nconst ITEM_CACHE_MAX_SIZE = 500;\nconst RECENTLY_VIEWED_MAX_LENGTH = 4;\n\nexport const initialState = {\n cache: {},\n cacheOrder: [],\n recent: [],\n wishListItemIds: []\n};\n\nexport default (\n state = {\n ...initialState\n },\n action\n) => {\n const add = () => {\n const { cache = {}, cacheOrder = [] } = state;\n // Clear out old items\n let newCache = {};\n let newCacheOrder = [...cacheOrder];\n if (cacheOrder.length > ITEM_CACHE_MAX_SIZE) {\n newCacheOrder = cacheOrder.slice(\n cacheOrder.length - ITEM_CACHE_MAX_SIZE\n );\n newCacheOrder.forEach(itemId => {\n // eslint-disable-next-line better-mutation/no-mutation\n newCache[itemId] = cache[itemId];\n });\n } else {\n newCache = { ...cache };\n }\n // Add new items\n action.payload.forEach(item => {\n if (item.itemId in newCache) {\n // Combine existing item with updated item\n // eslint-disable-next-line better-mutation/no-mutation\n newCache[item.itemId] = {\n ...newCache[item.itemId],\n ...item\n };\n // Renew item in cache order\n // eslint-disable-next-line better-mutation/no-mutation\n newCacheOrder = [\n ...newCacheOrder.filter(itemId => itemId !== item.itemId),\n item.itemId\n ];\n } else {\n // eslint-disable-next-line better-mutation/no-mutation\n newCache[item.itemId] = item;\n newCacheOrder.push(item.itemId);\n }\n });\n\n return {\n ...state,\n cache: newCache,\n cacheOrder: newCacheOrder\n };\n };\n\n const addRecentlyViewed = () => {\n const { payload: item } = action;\n const { recent = [] } = state;\n //Ignore item if it is not active\n if (Date.parse(item.recentItemEndDate) < Date.now()) {\n return state;\n }\n // Remove item if already present\n let updatedRecent = recent.filter(\n recentItem => recentItem.itemId !== item.itemId\n );\n // Add to front of list\n updatedRecent.unshift(item);\n // Limit list length\n updatedRecent = updatedRecent.slice(0, RECENTLY_VIEWED_MAX_LENGTH);\n return {\n ...state,\n recent: updatedRecent\n };\n };\n\n const wishlist = () => {\n const {\n payload: { itemId, exists }\n } = action;\n\n const wishListItemIds = new Set(state.wishListItemIds || []);\n if (exists) {\n wishListItemIds.add(itemId);\n } else {\n wishListItemIds.delete(itemId);\n }\n return {\n ...state,\n wishListItemIds: Array.from(wishListItemIds)\n };\n };\n\n const wishlistAddRange = () => {\n const {\n payload: { itemIds }\n } = action;\n const wishListItemIds = new Set(state.wishListItemIds || []);\n itemIds?.forEach(itemId => wishListItemIds.add(itemId));\n return {\n ...state,\n wishListItemIds: Array.from(wishListItemIds)\n };\n };\n\n const updateItem = () => {\n const {\n payload: { itemId, item }\n } = action;\n return {\n ...state,\n cache: {\n ...state.cache,\n [itemId]: {\n ...state.cache?.[itemId],\n ...item\n }\n }\n };\n };\n\n const initialize = () => {\n return {\n ...action.payload\n };\n };\n\n const def = () => state;\n\n const reducers = {\n [actionTypes.ADD]: add,\n [actionTypes.ADD_RECENTLY_VIEWED]: addRecentlyViewed,\n [actionTypes.INITIALIZE]: initialize,\n [actionTypes.WISHLIST]: wishlist,\n [actionTypes.WISHLIST_ADD_RANGE]: wishlistAddRange,\n [actionTypes.UPDATE_ITEM]: updateItem\n };\n\n return !action || !action.type || !reducers[action.type]\n ? def()\n : reducers[action.type]();\n};\n","import actionTypes from './action-types';\n\nexport default (state = { isLoggedIn: false }, action) => {\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...action.payload\n };\n case actionTypes.DEFAULT_ACTION:\n return {\n ...state,\n default: action.payload\n };\n case actionTypes.SET_IS_FETCHING_GEOLOCATION: {\n const { payload } = action;\n return {\n ...state,\n isFetchingGeolocation: payload.isFetchingGeolocation\n };\n }\n case actionTypes.SET_GEOLOCATION: {\n const { payload } = action;\n return {\n ...state,\n geolocation: payload\n };\n }\n case actionTypes.FAILED_LOADING_GEOLOCATION: {\n return {\n ...state,\n geolocation: null,\n isFetchingGeolocation: false\n };\n }\n case actionTypes.SET_MEMBER_HERO_IMAGE: {\n return {\n ...state,\n memberHeroImage: {\n max: action.payload,\n med: action.payload,\n min: action.payload\n }\n };\n }\n default:\n return state;\n }\n};\n","import actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n if (!action || !action.type) return state;\n const { payload } = action;\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...payload\n };\n case actionTypes.SET_PAGE_TYPE:\n return {\n ...state,\n type: payload\n };\n case actionTypes.SET_PAGE_META: {\n const newState = {\n ...state,\n ...payload\n };\n return newState;\n }\n default:\n return state;\n }\n};\n","export default {\n brands: {\n items: [],\n status: 'NOT_FETCHED'\n },\n searches: {\n items: [],\n status: 'NOT_FETCHED'\n },\n recentSearches: {\n lastUpdated: null\n }\n};\n","import initialState from './initial-state';\n\nexport default (state = initialState, action) => {\n if (!action || !action.type) return state;\n switch (action.type) {\n case 'PERSONALISATION/SET_BRANDS':\n return {\n ...state,\n brands: {\n ...state.brands,\n items: action.items,\n status: action.status\n }\n };\n case 'PERSONALISATION/FETCH_BRANDS_STATUS':\n return {\n ...state,\n brands: {\n ...state.brands,\n status: action.status\n }\n };\n case 'PERSONALISATION/SET_SEARCHES':\n return {\n ...state,\n searches: {\n ...state.searches,\n items: action.items,\n status: action.status\n }\n };\n case 'PERSONALISATION/FETCH_SEARCHES_STATUS':\n return {\n ...state,\n searches: {\n ...state.searches,\n status: action.status\n }\n };\n case 'RECENT_SEARCHES_LAST_UPDATED':\n return {\n ...state,\n recentSearches: {\n lastUpdated: action.lastUpdated\n }\n };\n default:\n return state;\n }\n};\n","import dayjs from 'dayjs';\n\nconst initialState = {\n isLoading: false\n};\n\nexport default (state = initialState, action) => {\n var newDraft = null;\n switch (action.type) {\n case 'SET_DRAFT_PROPERTIES': {\n const referenceIsReadonly =\n action.draft.reference &&\n action.draft.reference.indexOf('Sello artnr') >= 0;\n newDraft = {\n ...initialState,\n ...action.payload,\n draftId: action.draft.draftId,\n draftReason: action.draft.draftReason,\n memberId: action.draft.memberId,\n itemId: action.draft.itemId,\n restart: action.draft.restart,\n publishedPromoted: action.draft.publishedPromoted,\n publishedHighlighted: action.draft.publishedHighlighted,\n createdDate: action.draft.createdDate,\n lastModifiedDate: action.draft.lastModifiedDate,\n publishedDate: action.draft.publishedDate,\n publishedAsItemType: action.draft.publishedAsItemType,\n reference: action.draft.reference,\n referenceIsReadonly: referenceIsReadonly,\n additionalDescriptions: action.draft.additionalDescriptions,\n metadata: action.draft.metadata,\n templateId: action.draft.templateId,\n templateName: action.draft.templateName,\n version: action.draft.version,\n isNewDraft: !action.draft.draftId\n };\n break;\n }\n case 'SET_DRAFT_ID':\n newDraft = { ...state, draftId: action.payload };\n break;\n case 'SET_RESTART':\n newDraft = { ...state, restart: action.payload };\n break;\n case 'DISABLE_RESTART':\n newDraft = { ...state, restart: false };\n break;\n case 'SET_REFERENCE':\n newDraft = { ...state, reference: action.payload };\n break;\n case 'ADD_ADDITIONAL_DESCRIPTION':\n var newAdditionalDescriptions = state.additionalDescriptions\n ? [...state.additionalDescriptions]\n : [];\n newAdditionalDescriptions.push({ message: action.payload });\n newDraft = {\n ...state,\n additionalDescriptions: newAdditionalDescriptions\n };\n break;\n case 'SET_DRAFT_REASON':\n newDraft = { ...state, draftReason: action.payload };\n break;\n case 'SET_DRAFT_VERSION':\n newDraft = { ...state, version: action.payload };\n break;\n case 'RESET_DRAFT':\n newDraft = { ...initialState };\n break;\n case 'SET_DRAFT_IS_LOADING':\n newDraft = { ...state, isLoading: action.payload };\n break;\n case 'SET_DESCRIPTION_LANGUAGECODE':\n newDraft = {\n ...state,\n descriptionLanguageCodeIso2:\n action.payload.descriptionLanguageCodeIso2\n };\n break;\n case 'SET_CURRENCY':\n newDraft = {\n ...state,\n currency: action.payload.currency\n };\n break;\n case 'SET_RESELL_PARTNER':\n newDraft = {\n ...state,\n resellPartner: action.payload.resellPartner\n };\n break;\n default:\n return state;\n }\n if (JSON.stringify(state) != JSON.stringify(newDraft)) {\n newDraft.lastModifiedDate = dayjs().toISOString();\n }\n return newDraft;\n};\n","function createInitialState() {\n const levels = new Array(4).fill({}).map((_level, index) => {\n return {\n index,\n categories: [],\n suggestions: [],\n suggestionsVisible: false,\n categoriesVisible: false,\n moreButtonVisible: false,\n hideButtonVisible: false,\n selectedCategory: null,\n isOpen: false,\n visible: true,\n disabled: index > 0\n };\n });\n const initialState = {\n suggestionsAvailable: false,\n levels,\n anyLevelOpen: false,\n showExplanation: true,\n draftCategoryId: 0,\n draftCategoryPath: [],\n previousDraftCategoryId: 0,\n prevoiusDraftCategoryPath: [],\n shortDescriptionForRecommendations: null,\n validationError: null\n };\n return initialState;\n}\n\nconst initialState = createInitialState();\n\nfunction validate(newState) {\n if (!newState.draftCategoryId || newState.draftCategoryId === 0) {\n if (newState.levels[0].selectedCategory) {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.validationError = 'syi_validation_missing_leaf_category';\n } else {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.validationError = 'syi_validation_missing_category';\n }\n } else {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.validationError = null;\n }\n\n return newState;\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'RESET_CATEGORY': {\n return validate(createInitialState());\n }\n case 'CATEGORIES_LOADING': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].loading = true;\n return validate(newState);\n }\n case 'CATEGORIES_LOADED': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].loading = false;\n newState.levels[\n action.index\n ].categories = action.category.categories.slice();\n newState.levels[\n action.index\n ].suggestions = action.category.suggestions.slice();\n newState.levels[action.index].disabled = false;\n var suggestions =\n newState.levels[action.index].suggestions.length > 0;\n if (suggestions) {\n newState.levels[action.index].suggestionsVisible = true;\n newState.levels[action.index].moreButtonVisible = !newState\n .levels[action.index].categoriesVisible;\n newState.levels[action.index].hideButtonVisible = !newState\n .levels[action.index].moreButtonVisible;\n if (action.index === 0) {\n newState.shortDescriptionForRecommendations =\n action.shortDescriptionForRecommendations;\n newState.showExplanation = true;\n }\n } else {\n newState.shortDescriptionForRecommendations = null;\n newState.levels[action.index].suggestionsVisible = false;\n newState.levels[action.index].categoriesVisible = true;\n newState.levels[action.index].moreButtonVisible = false;\n newState.levels[action.index].hideButtonVisible = !newState\n .levels[action.index].moreButtonVisible;\n }\n return validate(newState);\n }\n case 'OPEN_LEVEL': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.anyLevelOpen = true;\n newState.levels[action.index].isOpen = true;\n newState.levels[action.index].disabled = false;\n const suggestions =\n newState.levels[action.index].suggestions.length > 0;\n if (suggestions) {\n newState.levels[action.index].suggestionsVisible = true;\n newState.levels[action.index].moreButtonVisible = !newState\n .levels[action.index].categoriesVisible;\n newState.levels[action.index].hideButtonVisible = !newState\n .levels[action.index].moreButtonVisible;\n } else {\n newState.levels[action.index].suggestionsVisible = false;\n newState.levels[action.index].categoriesVisible = true;\n newState.levels[action.index].moreButtonVisible = false;\n newState.levels[action.index].hideButtonVisible = !newState\n .levels[action.index].moreButtonVisible;\n }\n return validate(newState);\n }\n case 'CLOSE_LEVEL': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.anyLevelOpen = false;\n newState.levels[action.index].isOpen = false;\n return newState;\n }\n case 'TOGGLE_CATEGORIES': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].categoriesVisible = action.value;\n newState.levels[action.index].moreButtonVisible = !action.value;\n newState.levels[action.index].hideButtonVisible = action.value;\n return validate(newState);\n }\n case 'SELECT_LEVEL_CATEGORY': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].selectedCategory = action.category;\n if (action.category.isLeaf) {\n newState.showExplanation = false;\n }\n return validate(newState);\n }\n case 'TOGGLE_LEVEL_LABEL': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].visible = action.value;\n return validate(newState);\n }\n case 'DISABLE_LEVEL': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].disabled = true;\n return validate(newState);\n }\n case 'RESET_LEVEL': {\n const newLevels = [...state.levels];\n const newState = { ...state, levels: newLevels };\n newState.levels[action.index].selectedCategory = null;\n newState.levels[action.index].suggestions = [];\n newState.levels[action.index].categories = [];\n if (action.index === 0) {\n newState.showExplanation = true;\n }\n return validate(newState);\n }\n case 'SET_DRAFT_CATEGORY': {\n const newLevels = [...state.levels];\n const newState = {\n ...state,\n draftCategoryId: action.categoryId,\n draftCategoryPath: action.categoryPath,\n previousDraftCategoryId: state.draftCategoryId,\n prevoiusDraftCategoryPath: state.prevoiusDraftCategoryPath,\n levels: newLevels\n };\n return validate(newState);\n }\n default:\n return state;\n }\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation may not compatible with SSR where global properties are shared between server instances'\n );\n}\n\nlet _paymentOptions;\nlet _paymentOptionsPresentationData;\nlet initialState;\n\nconst initModuleGlobals = () => {\n if (initialState) {\n return initialState;\n }\n\n _paymentOptions = userData.paymentOptions;\n _paymentOptionsPresentationData = [\n { text: 'Kontant vid avhämtning', value: 'Cash' },\n {\n text: 'PayPal',\n value: 'Paypal',\n isCreditCard: true,\n isSecure: true,\n helpModalId: 'info-modal-payment-paypal'\n },\n {\n text: 'Manuell överföring till bankkonto',\n value: 'Account',\n top: true,\n helpModalId: 'info-modal-payment-account'\n },\n {\n text: 'Swish',\n value: 'Swish',\n isPhone: true,\n helpModalId: 'info-modal-payment-swish'\n },\n { text: 'PlusGiro / Bankgiro', value: 'Plusgiro' },\n { text: 'Mot postförskott', value: 'Postforskott', hasFee: true },\n { text: 'Braintree', value: 'Braintree' }\n ];\n\n initialState = {\n displayPaymentOptions: '',\n paymentOptionGroups: [],\n selectedPaymentOptions: userData.braintree.isBraintreeOnly\n ? ['Braintree']\n : [],\n validationError: null,\n uiCheckedPaymentOptions: [],\n takeawaySelected: false\n };\n};\n\nfunction validate(newState) {\n if (userData.braintree && userData.braintree.isBraintreeOnly) {\n if (\n newState.selectedPaymentOptions.length === 1 &&\n newState.selectedPaymentOptions[0] === 'Braintree'\n ) {\n newState.validationError = null;\n } else {\n newState.validationError = 'syi_validation_payment_mismatch';\n }\n } else {\n var paymentOptions = newState.selectedPaymentOptions;\n var hasAnyValidPayment = !!paymentOptions.length;\n newState.validationError = hasAnyValidPayment\n ? null\n : 'syi_validation_payment_missing';\n }\n return newState;\n}\n\nfunction forceBraintreeIfNeeded(state) {\n if (userData.braintree && userData.braintree.isBraintreeOnly) {\n state.selectedPaymentOptions = ['Braintree'];\n state.uiCheckedPaymentOptions = ['Braintree'];\n }\n}\n\nfunction shapePaymentOptions(state) {\n var filteredPaymentOptions = _paymentOptions\n .map(paymentOption => {\n var presentationData = _paymentOptionsPresentationData.find(\n pd => pd.value == paymentOption.paymentType\n );\n paymentOption.selected = state.uiCheckedPaymentOptions?.find(\n selectedPaymentOption =>\n selectedPaymentOption == paymentOption.paymentType\n );\n return { ...presentationData, ...paymentOption };\n })\n .filter(paymentOption => paymentOption && !!paymentOption.value)\n .filter(\n paymentOption =>\n state.takeawaySelected || paymentOption.value !== 'Cash'\n );\n\n state.displayPaymentOptions = filteredPaymentOptions\n .filter(po => po.selected)\n .map(po => po.text)\n .join(', ');\n var paymentOptionsTop = filteredPaymentOptions.filter(\n po => po.top || po.selected\n );\n state.selectedPaymentOptions = filteredPaymentOptions\n .filter(paymentOption => {\n if (!paymentOption || !paymentOption.value) {\n return false;\n }\n return paymentOption.selected;\n })\n .map(paymentOption => paymentOption.value);\n state.paymentOptionGroups = [\n {\n visible: true,\n paymentOptions: paymentOptionsTop,\n showToggle: filteredPaymentOptions.some(\n po => !po.top && !po.selected\n )\n },\n {\n visible: paymentOptionsTop.length === 0,\n paymentOptions: filteredPaymentOptions.filter(\n po => !po.top && !po.selected\n ),\n showToggle: false\n }\n ];\n forceBraintreeIfNeeded(state);\n}\n\nexport default (state, action) => {\n initModuleGlobals();\n if (!state) {\n shapePaymentOptions(initialState);\n state = validate(initialState);\n }\n switch (action.type) {\n case 'SET_PAYMENT_OPTIONS': {\n const newState = {\n ...state,\n uiCheckedPaymentOptions: action.selectedPaymentOptions\n };\n shapePaymentOptions(newState);\n return validate(newState);\n }\n case 'TOGGLE_ALL_VISIBLE': {\n const newState = { ...state };\n newState.allVisible = !newState.allVisible;\n return validate(newState);\n }\n case 'SET_CATEGORY_WARNING': {\n const newState = {\n ...state\n };\n return validate(newState);\n }\n case 'SET_TAKEAWAY_SELECTED': {\n const newState = {\n ...state,\n takeawaySelected: action.payload.offerTakeaway\n };\n shapePaymentOptions(newState);\n return validate(newState);\n }\n case 'ENSURE_ANY_PAYMENT_OPTION_FOR_CHARITY': {\n const newState = { ...state };\n const hasAnyValidPayment = newState.selectedPaymentOptions.some(\n po => po\n );\n if (!hasAnyValidPayment) {\n newState.selectedPaymentOptions = ['Account'];\n newState.uiCheckedPaymentOptions = ['Account'];\n }\n shapePaymentOptions(newState);\n return validate(newState);\n }\n default:\n return state;\n }\n};\n","const initialState = {\n isPropertyEditMode: false,\n creationType: 'new',\n creationStart: null,\n allErrorsVisible: false,\n isEditOfPublishedItem: false,\n publishPending: false,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishedItemPendingVip: false,\n publishedItem: null,\n openModal: null,\n openModalData: null,\n autoSaveEnabled: false,\n draftCanBeResumed: false,\n itemUpdating: false,\n itemUpdated: false\n};\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'RESET_SYI':\n return { ...initialState };\n case 'SET_IS_PROPERTY_EDIT_MODE':\n return { ...state, isPropertyEditMode: action.payload };\n case 'SET_CREATION_TYPE':\n return { ...state, creationType: action.payload };\n case 'SET_CREATION_START':\n return { ...state, creationStart: action.payload };\n case 'SHOW_ALL_ERRORS':\n return { ...state, allErrorsVisible: true };\n case 'HIDE_ALL_ERRORS':\n return { ...state, allErrorsVisible: false };\n case 'SET_IS_EDIT_OF_PUBLISHED_ITEM':\n return { ...state, isEditOfPublishedItem: action.payload };\n case 'SET_PUBLISHED_ITEM_PENDING_VIP':\n return {\n ...state,\n publishedItemPendingVip: action.payload,\n publishedItem: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: false,\n publishDelayed: false\n };\n case 'SET_PUBLISHED_ITEM_DELAYED':\n return {\n ...state,\n publishedItemPendingVip: action.payload,\n publishedItem: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: false,\n publishDelayed: true\n };\n case 'SET_PUBLISHED_ITEM':\n return {\n ...state,\n publishedItem: action.payload,\n publishedItemPendingVip: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: false,\n publishDelayed: false\n };\n case 'SET_PUBLISH_FAILED':\n return {\n ...state,\n publishedItem: null,\n publishedItemPendingVip: null,\n publishFailed: true,\n publishFailedReasonDisplayText: action.reasonDisplayText,\n publishPending: false,\n publishDelayed: false\n };\n case 'SET_PUBLISH_PENDING':\n return {\n ...state,\n publishedItem: null,\n publishedItemPendingVip: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: true,\n publishDelayed: false\n };\n case 'SET_CATEGORY_RESTRICTION':\n return { ...state, categoryRestriction: action.payload };\n case 'TOGGLE_MODAL':\n var newValue =\n state.openModal === action.payload ? null : action.payload;\n return { ...state, openModal: newValue };\n case 'SHOW_MODAL':\n return {\n ...state,\n openModal: action.modalId,\n openModalData: action.modalData\n };\n case 'HIDE_MODAL':\n return { ...state, openModal: null };\n case 'ENABLE_AUTOSAVE':\n return { ...state, autoSaveEnabled: true };\n case 'DISABLE_AUTOSAVE':\n return { ...state, autoSaveEnabled: false };\n case 'SET_DRAFT_CAN_BE_RESUMED':\n return { ...state, draftCanBeResumed: action.payload };\n case 'SET_ITEM_UPDATING':\n return { ...state, itemUpdating: action.payload };\n case 'SET_ITEM_UPDATED':\n return { ...state, itemUpdated: action.payload };\n default:\n return state;\n }\n};\n","const initialState = {\n shortDescription: null,\n longDescription: null,\n categoryId: null,\n images: null,\n openingBid: null,\n reservePrice: null,\n fixedPrice: null,\n durationDays: null,\n customEndTime: null,\n shippingOptions: null,\n paymentOptions: null,\n itemCondition: null,\n step1: true,\n step2: true,\n step3: true,\n step4: true\n};\n\nexport default (state = initialState, action) => {\n const step1Errors = function(state) {\n return (\n !!state.shortDescription ||\n !!state.categoryId ||\n !!state.images ||\n !!state.longDescription ||\n !!state.itemCondition\n );\n };\n\n const step2Errors = function(state) {\n return (\n !!state.openingBid ||\n !!state.reservePrice ||\n !!state.fixedPrice ||\n !!state.durationDays ||\n !!state.customEndTime\n );\n };\n\n const step3Errors = function(state) {\n return !!state.shippingOptions;\n };\n\n const step4Errors = function(state) {\n return !!state.paymentOptions;\n };\n\n switch (action.type) {\n case 'SET_ERROR':\n // eslint-disable-next-line better-mutation/no-mutation\n state = { ...state };\n // eslint-disable-next-line better-mutation/no-mutation\n state[action.propertyName] = action.error;\n break;\n default:\n return state;\n }\n\n const e1 = step1Errors(state);\n const e2 = step2Errors(state);\n const e3 = step3Errors(state);\n const e4 = step4Errors(state);\n // eslint-disable-next-line better-mutation/no-mutation\n state = {\n ...state,\n step1: e1 || undefined,\n step2: e2 || undefined,\n step3: e3 || undefined,\n step4: e4 || undefined\n };\n\n return state;\n};\n","export const getSelectedShippingProducts = (\n shippingByWeight,\n selectedShippingOptions,\n offerTakeaway\n) => {\n const result = selectedShippingOptions.map(selected => {\n const shippingOption = shippingByWeight\n .flatMap(options => options.products)\n .find(product => {\n if (!selected.productId || !selected.weight) {\n return product.providerId === selected.type;\n }\n\n return (\n product.providerId === selected.type &&\n product.weight === selected.weight &&\n product.id === selected.productId\n );\n });\n return shippingOption\n ? {\n ...shippingOption,\n cost: selected?.cost\n }\n : null;\n });\n\n const possiblePosten = selectedShippingOptions.find(\n shippingOption => shippingOption.type === 'Posten'\n );\n\n if (possiblePosten) {\n result.push({\n ...possiblePosten,\n productId: possiblePosten.type,\n providerId: possiblePosten.type,\n price: possiblePosten.cost\n });\n }\n\n if (offerTakeaway) {\n const takeAwayOption =\n result.length === 0\n ? {\n type: 'TakeawayOnly',\n providerId: 'TakeawayOnly',\n name: 'Endast avhämtning',\n summaryDisplayName: 'Endast avhämtning'\n }\n : {\n type: 'Takeaway',\n providerId: 'Takeaway',\n name: 'Avhämtning',\n summaryDisplayName: 'Avhämtning'\n };\n result.push(takeAwayOption);\n }\n\n return result.filter(x => x !== null);\n};\n","/* eslint-disable better-mutation/no-mutation */\nconst errors = {\n noShipping: 'syi_validation_shipping_no_shipping',\n empty: 'syi_validation_shipping_enter_method_and_cost',\n invalid: 'syi_validation_shipping_method_invalid',\n duplicate: 'syi_validation_shipping_method_identical',\n weight: 'syi_validation_shipping_enter_weight'\n};\n\nexport function validate(newState) {\n if (!newState.offerTakeaway && !newState.offerShipping) {\n newState.globalValidationError = errors.noShipping;\n newState.validationErrors = {\n global: errors.noShipping\n };\n return newState;\n }\n\n newState.globalValidationError = null;\n newState.validationErrors = {};\n\n return newState;\n}\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createReducer } from '@reduxjs/toolkit';\nimport { getSelectedShippingProducts } from './shipping-selectors';\nimport { validate } from './validate';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst getUuid = () => uuidv4();\n\nconst initialState = validate({\n validationErrors: {},\n globalValidationError: null,\n shippingByWeight: [],\n shippingRecommendations: [],\n recommendedWeight: null,\n selectedShippingOptions: [],\n shippingOptionsLoading: false,\n shippingOptionsError: false,\n offerTakeaway: false,\n offerShipping: false,\n fromCountry: null\n});\n\nconst shippingContainsTakeaway = shippingOptions =>\n shippingOptions.some(\n shippingOption =>\n shippingOption.type === 'Takeaway' ||\n shippingOption.type === 'TakeawayOnly'\n );\n\nconst shippingContainsProduct = shippingOptions =>\n shippingOptions.some(\n shippingOption =>\n shippingOption.type !== 'Takeaway' &&\n shippingOption.type !== 'TakeawayOnly'\n );\n\nexport default createReducer(initialState, {\n RESET_SHIPPING_OPTIONS: state => {\n state.selectedShippingOptions = [];\n state.offerShipping = false;\n return validate(state);\n },\n SET_SHIPPING_OPTIONS_BY_WEIGHT: (state, action) => {\n const {\n productsPerWeightSpan,\n shippingOptions,\n bringEnabled\n } = action.payload;\n\n state.offerShipping = shippingContainsProduct(shippingOptions);\n state.offerTakeaway = shippingContainsTakeaway(shippingOptions);\n\n //Decorate products with cost, type & productId for draft api:\n const productsDecorated = productsPerWeightSpan.map(weightClass => {\n const productsWithDecoration = weightClass.products.map(\n product => ({\n ...product,\n cost: product.price,\n productId: product.id,\n type: product.providerId,\n uuid: getUuid()\n })\n );\n const filteredProductsWithDecoration = productsWithDecoration.filter(\n shippingProvider =>\n shippingProvider.providerId !== 'BringDenmark' ||\n bringEnabled\n );\n return { ...weightClass, products: filteredProductsWithDecoration };\n });\n\n state.shippingByWeight = productsDecorated;\n state.selectedShippingOptions = getSelectedShippingProducts(\n productsDecorated,\n shippingOptions,\n state.offerTakeaway\n );\n state.shippingOptionsLoading = false;\n state.shippingOptionsError = false;\n return validate(state);\n },\n\n SET_SHIPPING_OPTION_SELECTED: (state, action) => {\n const { payload } = action;\n\n const selectedOptions = getSelectedShippingProducts(\n state.shippingByWeight,\n payload,\n state.offerTakeaway\n );\n\n if (shippingContainsProduct(selectedOptions)) {\n state.offerShipping = true;\n } else {\n state.offerShipping = false;\n }\n\n state.selectedShippingOptions = selectedOptions;\n\n return validate(state);\n },\n SET_TAKEAWAY_SELECTED: (state, action) => {\n state.offerTakeaway = action.payload.offerTakeaway;\n state.selectedShippingOptions = getSelectedShippingProducts(\n state.shippingByWeight,\n state.selectedShippingOptions,\n state.offerTakeaway\n );\n\n return validate(state);\n },\n SET_SHIPPING_OPTIONS_ERROR: state => {\n state.shippingOptionsLoading = false;\n state.shippingOptionsError = true;\n\n return validate(state);\n },\n SET_SHIPPING_FROMCOUNTRY: (state, action) => {\n state.fromCountry = action.payload.fromCountry;\n },\n CLEAR_SHIPPING_RECOMMENDATIONS: state => {\n state.recommendedWeight = initialState.recommendedWeight;\n state.shippingRecommendations = initialState.shippingRecommendations;\n },\n SET_SHIPPING_RECOMMENDATIONS: (state, action) => {\n const { recommendedWeight, shippingRecommendations } = action.payload;\n\n state.recommendedWeight = recommendedWeight;\n state.shippingRecommendations = shippingRecommendations;\n return validate(state);\n }\n});\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createReducer } from '@reduxjs/toolkit';\n\nconst initialState = {\n saveAsDialogOpen: false,\n templatesLimitReachedDialogOpen: false,\n ignoreProperties: []\n};\n\nexport default createReducer(initialState, {\n SET_SAVE_AS_DIALOG_OPEN: (state, action) => {\n state.saveAsDialogOpen = action.payload;\n },\n SET_TEMPLATES_LIMIT_REACHED_DIALOG_OPEN: (state, action) => {\n state.templatesLimitReachedDialogOpen = action.payload;\n },\n RESET_IGNORE_PROPERTIES: state => {\n state.ignoreProperties = [];\n },\n ADD_IGNORE_PROPERTIES: (state, action) => {\n state.ignoreProperties = [\n ...new Set([...state.ignoreProperties, ...action.payload])\n ];\n },\n REMOVE_IGNORE_PROPERTIES: (state, action) => {\n state.ignoreProperties = state.ignoreProperties.filter(\n prop => !action.payload.includes(prop)\n );\n }\n});\n","var initialState = {\n itemCondition: null,\n validationError: null,\n selectionError: null\n};\n\nfunction validate(newState) {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.validationError =\n newState.itemCondition == null ||\n newState.itemCondition.trim() == '' ||\n newState.itemCondition === 'Undefined'\n ? 'syi_validation_missing_condition'\n : newState.selectionError;\n\n return newState;\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_ITEM_CONDITION':\n return validate({ ...state, itemCondition: action.payload });\n case 'RESET_ITEM_CONDITION':\n return validate({ ...initialState });\n case 'SET_ITEM_CONDITION_SELECTION_ERROR':\n return validate({ ...state, selectionError: action.payload });\n default:\n return state;\n }\n};\n","const defaultCampaignProperties = {\n campaignCode: '',\n campaignCodeId: null,\n campaignCodeDescription: null,\n maxFeeCap: null\n};\n\nconst initialState = {\n ...defaultCampaignProperties,\n campaignCodeChecked: false,\n firstTimeSubscribe: true,\n validCampaign: false,\n timeoutId: null,\n loading: false,\n searching: false,\n campaignCodeValid: false,\n searchingDelayed: false,\n validationError: null,\n searchingDelayedTimeoutId: null,\n isReadOnly: false,\n bannerMobileImageUrl: null,\n bannerTabletImageUrl: null,\n bannerDesktopImageUrl: null,\n hasEnded: false\n};\n\nfunction nullIfFalsy(val) {\n return val ? val : null;\n}\n\nfunction ensureValidCampaignCodeId(campaignCodeId) {\n // Cannot publish when campaignCodeId is zero.\n // Fix server side when Riot SYI is used by 100% of members.\n if (campaignCodeId === 0) {\n return null;\n }\n return nullIfFalsy(campaignCodeId);\n}\n\nfunction validate(state) {\n if (state.campaignCodeChecked) {\n // eslint-disable-next-line better-mutation/no-mutation\n state.validationError = state.campaignCodeValid\n ? null\n : 'syi_campaign_code_invalid';\n } else {\n // eslint-disable-next-line better-mutation/no-mutation\n state.validationError = null;\n }\n return state;\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'INITIALIZE_CAMPAIGN_CODE_STATE': {\n return validate({\n ...state,\n ...defaultCampaignProperties,\n campaignCode: action.campaignCode,\n campaignCodeId: ensureValidCampaignCodeId(\n action.campaignCodeId\n ),\n campaignCodeDescription: nullIfFalsy(\n action.campaignCodeDescription\n ),\n campaignCodeValid:\n !!action.campaignCodeId || !action.campaignCode,\n campaignCodeChecked: !!action.campaignCode,\n isReadOnly: action.isReadOnly,\n hasEnded: action.hasEnded\n });\n }\n\n case 'SET_UNVERIFIED_CAMPAIGN_CODE': {\n return validate({\n ...state,\n ...defaultCampaignProperties,\n campaignCode: action.campaignCode,\n campaignCodeId: null,\n campaignCodeDescription: null,\n campaignCodeValid: !action.campaignCode,\n bannerMobileImageUrl: null,\n bannerTabletImageUrl: null,\n bannerDesktopImageUrl: null\n });\n }\n\n case 'SET_CAMPAIGN_VALIDATION_RESULT': {\n if (state.campaignCode === action.campaignCode) {\n return validate({\n ...state,\n ...defaultCampaignProperties,\n campaignCode: action.campaignCode,\n campaignCodeId: ensureValidCampaignCodeId(\n action.campaignCodeId\n ),\n campaignCodeDescription: nullIfFalsy(\n action.campaignCodeDescription\n ),\n campaignCodeValid: action.campaignCodeValid,\n maxFeeCap: nullIfFalsy(action.maxFeeCap),\n bannerMobileImageUrl: action.bannerMobileImageUrl,\n bannerTabletImageUrl: action.bannerTabletImageUrl,\n bannerDesktopImageUrl: action.bannerDesktopImageUrl,\n hasEnded: action.hasEnded,\n searching: false,\n searchingDelayed: false\n });\n }\n break;\n }\n case 'RESET_MAX_FEE_CAP': {\n return validate({ ...state, maxFeeCap: initialState.maxFeeCap });\n }\n\n case 'RESET_CAMPAIGN_BANNER': {\n return validate({\n ...state,\n bannerMobileImageUrl: initialState.bannerMobileImageUrl,\n bannerTabletImageUrl: action.bannerTabletImageUrl,\n bannerDesktopImageUrl: action.bannerDesktopImageUrl\n });\n }\n\n case 'TOGGLE_CAMPAIGN_CODE_CHECKBOX': {\n if (action.isChecked) {\n return validate({\n ...state,\n campaignCodeChecked: true,\n searching: false,\n searchingDelayed: false\n });\n } else {\n return validate({\n ...state,\n campaignCodeChecked: false,\n campaignCode: initialState.campaignCode,\n campaignCodeId: initialState.campaignCodeId,\n campaignCodeDescription: null,\n searching: false,\n searchingDelayed: false,\n hasEnded: false\n });\n }\n }\n\n case 'VALIDATING_CAMPAIGN_CODE_BY_SEARCHING': {\n return validate({ ...state, searching: true });\n }\n\n case 'SEARCHING_FOR_CAMPAIGN_CODE_IS_DELAYED': {\n return validate({ ...state, searchingDelayed: true });\n }\n }\n return validate(state);\n};\n","import config from 'tradera-apps/syi/script/app_react/services/config';\n\nconst initialState = {\n commissionProcent: '10',\n discountFactor: null,\n campaignCommissionProcent: null,\n minCommissionCost: config.commissionMinimum,\n maxCommissionCost: config.commissionCap,\n isVariableCommission: false,\n chosenExtraFeatures: [],\n hasChosenExtraFeatures: false,\n isUnsoldFeeFree: false,\n isCategoryWithNoCommissionCap: false\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_COMMISSION_PROCENT': {\n return { ...state, commissionProcent: action.commissionProcent };\n }\n\n case 'SET_DISCOUNT_FACTOR': {\n return { ...state, discountFactor: action.discountFactor };\n }\n\n case 'RESET_DISCOUNT_FACTOR': {\n return { ...state, discountFactor: initialState.discountFactor };\n }\n\n case 'SET_CAMPAIGN_COMMISSION_PROCENT': {\n return {\n ...state,\n campaignCommissionProcent: action.campaignCommissionProcent\n };\n }\n\n case 'RESET_CAMPAIGN_COMMISSION_PROCENT': {\n return {\n ...state,\n campaignCommissionProcent:\n initialState.campaignCommissionProcent\n };\n }\n\n case 'SET_MAX_COMMISSION_COST': {\n return {\n ...state,\n maxCommissionCost: action.payload.maxCommissionCost,\n isCategoryWithNoCommissionCap:\n action.payload.isCategoryWithNoCommissionCap\n };\n }\n\n case 'SET_MIN_COMMISSION_COST': {\n return { ...state, minCommissionCost: action.payload.text };\n }\n\n case 'SET_IS_VARIABLE_COMMISSION': {\n return { ...state, isVariableCommission: action.payload };\n }\n\n case 'SET_UNSOLD_FEE_FREE_FOR_CAMPAIGN': {\n return { ...state, isUnsoldFeeFree: true };\n }\n\n case 'UNSET_UNSOLD_FEE_FREE_FOR_CAMPAIGN': {\n return { ...state, isUnsoldFeeFree: false };\n }\n\n case 'SET_CHOSEN_EXTRA_FEATURES': {\n const hasChosenExtraFeatures =\n action.payload && action.payload.length;\n return {\n ...state,\n chosenExtraFeatures: action.payload,\n hasChosenExtraFeatures\n };\n }\n }\n\n return state;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport dayjs from 'dayjs';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport draftService from 'tradera-apps/syi/script/app_react/services/draft-service';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nvar defaultDraft;\nvar initialState;\n\nconst initModuleGlobals = () => {\n if (initialState) {\n return initialState;\n }\n\n defaultDraft = userData.defaultDrafts.newItem;\n\n initialState = {\n daysOptions: makeDaysOptions(3, 14),\n hourOptions: makeHourOptions(),\n minuteOptions: makeMinuteOptions(),\n isCustomEndTimeVisible: false,\n customEndTimePrice: 10,\n isRestartAvailable: true,\n durationDays: defaultDraft.durationDays,\n customEndTimeHour: null,\n customEndTimeMinute: null,\n allowZeroDayAuctions: false,\n validationErrors: {}\n };\n};\n\nfunction makeDaysOptions(min, max) {\n var result = [];\n var minDays = min;\n var maxDays = max;\n for (var numberOfDays = minDays; numberOfDays <= maxDays; numberOfDays++) {\n result.push({\n days: numberOfDays,\n selected: false\n });\n }\n return result;\n}\n\nfunction makeHourOptions() {\n var result = [];\n for (var i = 0; i < 24; i++) {\n var hour = i < 10 ? '0' + i : parseInt(i, 10);\n result.push({ value: hour, text: hour });\n }\n return result;\n}\n\nfunction makeMinuteOptions() {\n var result = [];\n for (var i = 0; i < 60; i++) {\n var minute = i < 10 ? '0' + i : parseInt(i, 10);\n result.push({ value: minute, text: minute });\n }\n return result;\n}\n\nconst getEndDate = (durationDays, customEndTimeHour, customEndTimeMinute) => {\n const endDate = dayjs()\n .startOf('date')\n .add(durationDays, 'day');\n\n if (customEndTimeHour && customEndTimeMinute) {\n return endDate.hour(customEndTimeHour).minute(customEndTimeMinute);\n }\n\n return endDate;\n};\n\nconst getValidationErrors = (\n durationDays,\n customEndTimeHour,\n customEndTimeMinute,\n allowZeroDayAuctions\n) => {\n let customEndTimeError = null;\n const endDate = getEndDate(\n durationDays,\n customEndTimeHour,\n customEndTimeMinute\n );\n\n if (allowZeroDayAuctions) {\n const earliestEndDate = dayjs().add(5, 'minute');\n\n if (endDate.isBefore(earliestEndDate)) {\n customEndTimeError = 'syi_validation_duration_too_short_zero_day'; //'Din valda sluttid är för tidig. Annonser får avslutas tidigast efter 5 minuter.';\n }\n } else if (customEndTimeHour && customEndTimeMinute) {\n const earliestEndDate = dayjs().add(3, 'day');\n\n if (endDate.isBefore(earliestEndDate)) {\n customEndTimeError = 'syi_validation_duration_too_short'; //'Din valda sluttid är för tidig. Annonser får avslutas tidigast efter 72 timmar.';\n }\n }\n\n return customEndTimeError ? { customEndTime: customEndTimeError } : {};\n};\n\nconst newStateWithoutCampaignRelatedProps = (\n state,\n durationDays,\n customEndTime,\n allowZeroDayAuctions\n) => {\n const validationErrors = getValidationErrors(\n durationDays,\n customEndTime,\n allowZeroDayAuctions\n );\n return {\n ...state,\n durationDays,\n customEndTime,\n isCustomEndTimeVisible: !!customEndTime,\n validationErrors\n };\n};\n\nexport default (state, action) => {\n initModuleGlobals();\n state = state || initialState;\n switch (action.type) {\n case 'SET_DURATION_DAYS': {\n const durationDays = action.payload;\n const validationErrors = getValidationErrors(\n durationDays,\n state.customEndTimeHour,\n state.customEndTimeMinute,\n state.allowZeroDayAuctions\n );\n return {\n ...state,\n durationDays,\n validationErrors\n };\n }\n case 'SET_CUSTOM_END_TIME': {\n const [customEndTimeHour, customEndTimeMinute] =\n action.payload?.split(':') || [];\n\n const validationErrors = getValidationErrors(\n state.durationDays,\n customEndTimeHour,\n customEndTimeMinute,\n state.allowZeroDayAuctions\n );\n return {\n ...state,\n customEndTimeHour: customEndTimeHour,\n customEndTimeMinute: customEndTimeMinute,\n isCustomEndTimeVisible: !!action.payload,\n validationErrors\n };\n }\n case 'RESET_DURATION_AND_END_TIME': {\n const durationDays = draftService.getDefaultTemplateValue(\n 'durationDays'\n );\n const customEndTime = draftService.getDefaultTemplateValue(\n 'customEndTime'\n );\n let newState = newStateWithoutCampaignRelatedProps(\n state,\n durationDays,\n customEndTime,\n state.allowZeroDayAuctions\n );\n newState.customEndTimePrice = initialState.customEndTimePrice;\n return newState;\n }\n case 'RESET_CUSTOM_END_TIME': {\n return {\n ...state,\n customEndTimeHour: initialState.customEndTimeHour,\n customEndTimeMinute: initialState.customEndTimeMinute\n };\n }\n case 'SET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN':\n return { ...state, customEndTimePrice: 0 };\n case 'RESET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN':\n return {\n ...state,\n customEndTimePrice: initialState.customEndTimePrice\n };\n case 'SET_AUCTION_BIN_PRICE': {\n const validationErrors = getValidationErrors(\n state.durationDays,\n state.customEndTimeHour,\n state.customEndTimeMinute,\n state.allowZeroDayAuctions\n );\n return { ...state, validationErrors };\n }\n case 'DISABLE_ZERO_DAY_AUCTIONS': {\n const durationDays =\n state.durationDays >= 3 ? state.durationDays : 3;\n return {\n ...state,\n allowZeroDayAuctions: false,\n daysOptions: makeDaysOptions(3, 14),\n durationDays\n };\n }\n case 'ENABLE_ZERO_DAY_AUCTIONS': {\n const daysOptions = makeDaysOptions(0, 14);\n return { ...state, daysOptions, allowZeroDayAuctions: true };\n }\n case 'ENABLE_RESTART':\n return { ...state, isRestartAvailable: true };\n case 'DISABLE_RESTART':\n return { ...state, isRestartAvailable: false };\n default:\n return state;\n }\n};\n","var initialState = {\n displayPromoted: false,\n displayHighlighted: false\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_DISPLAY_PROMOTED':\n return { ...state, displayPromoted: action.payload };\n case 'SET_DISPLAY_HIGHLIGHTED':\n return { ...state, displayHighlighted: action.payload };\n default:\n return state;\n }\n};\n","/* eslint-disable better-mutation/no-mutation */\nimport { getDefaultImageData } from '../helpers/image-helpers';\n\nconst initialState = {\n slots: [{}, {}, {}, {}, {}],\n validationError: null,\n uploadError: null,\n isUploadingWithApp: false,\n imageCount: 0\n};\n\nexport function validate(newState) {\n if (newState.slots.some(slot => slot.isUploading)) {\n newState.validationError = 'syi_validation_images_uploading';\n } else if (newState.slots.every(slot => !slot.imageUrl)) {\n newState.validationError = 'syi_validation_images';\n } else if (\n !newState.slots.find(slot => slot.isUploadedBySystem === false)\n ) {\n // If there isn't at least one image uploaded by the user (can be uploaded by Klarna for example)\n // Important to compare to false since isUploadedBySystem will be undefined (falsy) by default\n newState.validationError = 'syi_validation_images_not_uploaded_by_user';\n } else {\n newState.validationError = null;\n }\n return newState;\n}\n\nfunction resolveFirstEmpty(slots) {\n let foundFirst = false;\n for (var i = 0; i < slots.length; i++) {\n if (slots[i].imageUrl || foundFirst) {\n slots[i].firstEmpty = false;\n } else {\n slots[i].firstEmpty = true;\n foundFirst = true;\n }\n }\n}\n\nfunction resetUploadError(newState) {\n newState.uploadError = null;\n}\n\nfunction removeLastLoading(newState) {\n const slots = newState.slots;\n for (var i = slots.length; i-- > 0; ) {\n if (slots[i].isUploading) {\n slots[i].isUploading = false;\n return;\n }\n }\n}\n\nfunction setLoadingOnFreeSlots(newState, numberOfLoading) {\n const slots = newState.slots;\n for (var i = 0; i < slots.length; i++) {\n if (!slots[i].imageId) {\n slots[i].isUploading = true;\n if (--numberOfLoading <= 0) {\n return;\n }\n }\n }\n}\n\nfunction setImageCount(newState) {\n const withUrl = newState.slots.filter(slot => !!slot.imageUrl);\n newState.imageCount = withUrl.length;\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_DRAFT_IMAGES': {\n const slots = [...new Array(5)].map(() => getDefaultImageData());\n\n var images = action.payload;\n for (let i = 0; i < images.length && i < slots.length; i++) {\n if (images[i].draftImage) {\n slots[i].isListingImage = false;\n slots[i].imageId = images[i].draftImage.imageId;\n slots[i].rotationDegrees =\n images[i].draftImage.rotationDegrees;\n slots[i].isUploadedBySystem =\n images[i].draftImage.isUploadedBySystem;\n } else if (images[i].listingImage) {\n slots[i].isListingImage = true;\n slots[i].filename = images[i].listingImage.filename;\n slots[i].imageGroupId = images[i].listingImage.imageGroupId;\n slots[i].imageId = images[i].listingImage.imageId;\n slots[i].rotationDegrees =\n images[i].listingImage.rotationDegrees;\n slots[i].isUploadedBySystem =\n images[i].listingImage.isUploadedBySystem;\n } else {\n slots[i].isListingImage = false;\n slots[i].imageId = images[i].imageId;\n slots[i].rotationDegrees = images[i].rotationDegrees;\n }\n slots[i].imageUrl = images[i].imageUrl;\n }\n\n resolveFirstEmpty(slots);\n let newState = { ...state, slots };\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_UPLOADED_IMAGE_IN_SLOT': {\n const newslots = [...state.slots];\n const slot = newslots[action.slotIndex];\n slot.imageUrl = action.imageUrl;\n slot.imageId = action.imageId;\n slot.isListingImage = false;\n slot.isUploading = false;\n slot.rotationDegrees = null;\n slot.isUploadedBySystem = slot.isUploadedBySystem ?? false;\n resolveFirstEmpty(newslots);\n let newState = { ...state, slots: newslots };\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_SLOTS': {\n let newslots = [...action.slots];\n resolveFirstEmpty(newslots);\n let newState = { ...state, slots: newslots };\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_ROTATION': {\n let slots = [...state.slots];\n slots[action.slotIndex].rotationDegrees = action.rotationDegrees;\n let newState = { ...state, slots: slots };\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_UPLOAD_FAILED': {\n let newState = { ...state, uploadError: action.payload };\n setImageCount(newState);\n removeLastLoading(newState);\n return validate(newState);\n }\n case 'SET_IMAGES_UPLOADING': {\n let slots = [...state.slots];\n let newState = { ...state, slots: slots, uploadError: null };\n setLoadingOnFreeSlots(newState, action.numberOfSlots);\n return validate(newState);\n }\n case 'SET_MOBILE_UPLOAD': {\n const newState = {\n ...state,\n isUploadingWithApp: action.isUploadingWithApp\n };\n if (action.isUploadingWithApp) {\n resetUploadError(newState);\n }\n return newState;\n }\n case 'HIDE_ALL_ERRORS': {\n let newState = { ...state, uploadError: null };\n return newState;\n }\n default:\n return state;\n }\n};\n","import config from 'tradera-apps/syi/script/app_react/services/config';\n\nfunction isValidPrice(number) {\n var str = new String(number);\n if (!Number.isFinite(parseInt(str))) {\n return false;\n } else if (str.indexOf('.') > -1) {\n return false;\n } else if (str.indexOf(',') > -1) {\n return false;\n }\n return true;\n}\n\nfunction isInt(number) {\n return number % 1 === 0;\n}\n\nfunction validateOpeningBid({ isPureBinSelected, openingBid }) {\n if (isPureBinSelected) {\n return null;\n }\n\n if (openingBid && !isInt(openingBid)) {\n return 'syi_validation_amount_must_be_whole_number';\n }\n\n var maxPrice = 10000000;\n var minPrice = 1;\n\n if (!isValidPrice(openingBid)) {\n return 'syi_validation_opening_bid_missing';\n }\n\n if (openingBid > maxPrice) {\n return 'syi_validation_max_opening_bid';\n }\n\n if (openingBid < minPrice) {\n return 'syi_validation_minimum_opening_bid';\n }\n\n return null;\n}\n\nfunction validateReservePrice({\n isPureBinSelected,\n showReservePrice,\n openingBid,\n reservePrice,\n auctionBinPrice\n}) {\n if (isPureBinSelected) {\n return null;\n }\n\n if (showReservePrice && !reservePrice) {\n return 'syi_validation_amount_missing';\n }\n\n if (reservePrice && !isInt(reservePrice)) {\n return 'syi_validation_amount_must_be_whole_number';\n }\n\n var maxPrice = 10000000;\n\n if (reservePrice && !isValidPrice(reservePrice)) {\n return 'syi_validation_invalid_reservation_price';\n }\n\n let reservePriceIsLessThanOpeningBid =\n reservePrice && reservePrice <= openingBid;\n if (reservePriceIsLessThanOpeningBid) {\n return 'syi_validation_reservation_must_be_larger_than_starting';\n }\n\n let reservePriceIsGreaterThanAuctionBinPrice =\n reservePrice && auctionBinPrice && reservePrice >= auctionBinPrice;\n if (reservePriceIsGreaterThanAuctionBinPrice) {\n return 'syi_validation_reservation_must_be_less_than_buy_now';\n }\n\n if (reservePrice > maxPrice) {\n return 'syi_validation_max_reservation_price';\n }\n\n return null;\n}\n\nfunction validateAuctionBinPrice({\n isPureBinSelected,\n showAuctionBinPrice,\n openingBid,\n reservePrice,\n auctionBinPrice\n}) {\n if (isPureBinSelected) {\n return null;\n }\n\n if (showAuctionBinPrice && !auctionBinPrice) {\n return 'syi_validation_amount_missing';\n }\n\n if (auctionBinPrice && !isInt(auctionBinPrice)) {\n return 'syi_validation_amount_must_be_whole_number';\n }\n let auctionBinPriceIsLessThanOpeningBid =\n auctionBinPrice && auctionBinPrice <= openingBid;\n if (auctionBinPriceIsLessThanOpeningBid) {\n return 'syi_validation_buy_now_must_be_larger_than_starting';\n }\n\n let reservePriceIsGreaterThanAuctionBinPrice =\n reservePrice && auctionBinPrice && reservePrice >= auctionBinPrice;\n if (reservePriceIsGreaterThanAuctionBinPrice) {\n return 'syi_validation_buy_now_must_be_larger_than_reservation';\n }\n return null;\n}\n\nfunction validateFixedPrice({ isPureBinSelected, fixedPrice }) {\n if (!isPureBinSelected) {\n return null;\n }\n\n if (fixedPrice && !isInt(fixedPrice)) {\n return 'syi_validation_amount_must_be_whole_number';\n }\n\n var maxPrice = 10000000;\n var minPrice = 1;\n\n if (!isValidPrice(fixedPrice)) {\n return 'syi_validation_enter_fixed_price';\n }\n if (!isNaN(fixedPrice)) {\n if (parseInt(fixedPrice) > maxPrice) {\n return 'syi_validation_fixed_price_max_value';\n }\n\n if (parseInt(fixedPrice) < minPrice) {\n return 'syi_validation_fixed_price_min_value';\n }\n }\n return null;\n}\n\nfunction validate(newState) {\n const validationErrors = {};\n\n validationErrors.fixedPrice = validateFixedPrice(newState);\n validationErrors.openingBid = validateOpeningBid(newState);\n validationErrors.auctionBinPrice = validateAuctionBinPrice(newState);\n validationErrors.reservePrice = validateReservePrice(newState);\n\n for (const errorKey in validationErrors) {\n if (!validationErrors[errorKey]) delete validationErrors[errorKey];\n }\n\n // eslint-disable-next-line better-mutation/no-mutation\n newState.validationErrors = validationErrors;\n\n return newState;\n}\n\nconst queryParams = new URLSearchParams(window.location.search);\nconst initialState = {\n openingBid: null,\n auctionBinPrice: null,\n fixedPrice: null,\n reservePrice: null,\n showAuctionBinPrice: false,\n showReservePrice: false,\n showCharityDonation: Boolean(queryParams.get('charityId')),\n editCharity: false,\n isPureBinSelected: null,\n validationErrors: {},\n selectableVats: config.selectableVatValues,\n reservePriceCanChangeButNotBeRemoved: false,\n vat: null\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_OPENING_BID':\n return validate({ ...state, openingBid: action.payload });\n case 'SET_AUCTION_BIN_PRICE':\n return validate({ ...state, auctionBinPrice: action.payload });\n case 'SET_FIXED_PRICE':\n return validate({ ...state, fixedPrice: action.payload });\n case 'SET_RESERVE_PRICE':\n return validate({ ...state, reservePrice: action.payload });\n case 'SET_AUCTION_BIN_PRICE_VISIBILITY':\n return validate({ ...state, showAuctionBinPrice: action.payload });\n case 'SET_RESERVE_PRICE_VISIBILITY':\n return validate({ ...state, showReservePrice: action.payload });\n case 'SET_CHARITY_DONATION_VISIBILITY':\n return validate({ ...state, showCharityDonation: action.payload });\n case 'SET_EDIT_CHARITY':\n return validate({ ...state, editCharity: action.payload });\n case 'SET_IS_PURE_BIN_SELECTED':\n return validate({\n ...state,\n isPureBinSelected: action.isPureBinSelected\n });\n case 'SET_VAT':\n return validate({ ...state, vat: action.payload });\n case 'RESET_PRICES_AND_VAT':\n return validate({\n ...state,\n openingBid: null,\n auctionBinPrice: null,\n fixedPrice: null,\n vat: null\n });\n case 'SET_RESERVE_PRICE_CAN_CHANGE_BUT_NOT_BE_REMOVED':\n return validate({\n ...state,\n reservePriceCanChangeButNotBeRemoved: action.payload\n });\n default:\n return state;\n }\n};\n","const initialState = {\n draftBeforeChange: null\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_DRAFT_BEFORE_CHANGE':\n return { ...state, draftBeforeChange: action.payload };\n default:\n return state;\n }\n};\n","const MAX_DESCRIPTION_LENGTH = 7000;\n\nfunction validate(textWithHtml) {\n if (textWithHtml && textWithHtml.length > MAX_DESCRIPTION_LENGTH) {\n return 'syi_validation_description_to_long';\n }\n\n var elm = document.createElement('div');\n // eslint-disable-next-line better-mutation/no-mutation\n elm.innerHTML = textWithHtml || '';\n\n if (elm.textContent) {\n return elm.textContent.trim() !== ''\n ? null\n : 'syi_validation_missing_description';\n } else if (elm.innerText) {\n return elm.innerText.trim() !== ''\n ? null\n : 'syi_validation_missing_description';\n }\n return 'syi_validation_missing_description';\n}\n\n// By ensuring that shortDescription is always a string makes\n// it easy to know when it has really changed to something significant.\nfunction ensureString(s) {\n return !s ? '' : s;\n}\n\nvar initialState = {\n longDescription: null,\n validationError: null,\n isCurrentDescriptionFromDraft: false,\n fromDraftCounter: 0\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_LONG_DESCRIPTION_FROM_DRAFT':\n return {\n ...state,\n isCurrentDescriptionFromDraft: true,\n longDescription: ensureString(action.payload),\n validationError: validate(action.payload),\n fromDraftCounter: state.fromDraftCounter + 1\n };\n case 'SET_LONG_DESCRIPTION':\n return {\n ...state,\n isCurrentDescriptionFromDraft: false,\n longDescription: ensureString(action.payload),\n validationError: validate(action.payload)\n };\n case 'RESET_LONG_DESCRIPTION': {\n const defaultValue = null;\n return {\n ...state,\n isCurrentDescriptionFromDraft: false,\n longDescription: defaultValue,\n validationError: validate(defaultValue)\n };\n }\n default:\n return state;\n }\n};\n","var initialState = {\n scrollY: {}\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_SCROLL_Y': {\n const scrollY = { ...state.scrollY };\n scrollY[action.key] = action.value;\n return { ...initialState, scrollY };\n }\n default:\n return state;\n }\n};\n","const initialState = {\n charityId: null,\n forceFreeShipping: false,\n name: null,\n description: null,\n isSchenkerPaidBySchenker: false\n};\n\nfunction isSchenkerPaying(campaignCode) {\n const code = campaignCode.toUpperCase();\n return (\n code == 'MHO20' ||\n code == 'MHF20' ||\n code == 'MH20' ||\n code == 'MHTEST' ||\n code == 'MHTESTF'\n );\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'RESET_CHARITY_CAMPAIGN':\n return { ...initialState };\n case 'SET_CHARITY_CAMPAIGN':\n return {\n ...state,\n charityId: action.charityCampaign.charityId,\n forceFreeShipping: action.charityCampaign.forceFreeShipping,\n name: action.charityCampaign.name,\n description: action.charityCampaign.description,\n isSchenkerPaidBySchenker: isSchenkerPaying(action.campaignCode),\n allowZeroDayAuctions:\n action.charityCampaign.allowZeroDayAuctions\n };\n\n default:\n return state;\n }\n};\n","export const filterSelectableSuggestions = (\n incomingSuggestedAttributes,\n categoryAttributes\n) => {\n const selectableSuggestions = [];\n incomingSuggestedAttributes.forEach(sa => {\n const categoryAttribute = categoryAttributes.find(a => a.id === sa.id);\n if (categoryAttribute) {\n const suggestedAttribute = { id: sa.id, values: [] };\n sa.values.forEach(v => {\n const isSelectableSuggestion = categoryAttribute.options.some(\n o => o.value === v\n );\n const isMaxReached =\n suggestedAttribute.values.length >=\n categoryAttribute.maxNumberOfValues;\n if (isSelectableSuggestion && !isMaxReached) {\n suggestedAttribute.values.push(v);\n }\n });\n selectableSuggestions.push(suggestedAttribute);\n }\n });\n return selectableSuggestions;\n};\n\nexport const filterCombinedSelectableSuggestions = (\n primarySuggestedAttributes,\n secondarySuggestedAttributes,\n categoryAttributes\n) => {\n const selectableSuggestions = [];\n categoryAttributes.forEach(categoryAttribute => {\n const primarySuggestedAttribute = primarySuggestedAttributes.find(\n psa => psa.id == categoryAttribute.id\n );\n const secondarySuggestedAttribute = secondarySuggestedAttributes.find(\n ssa => ssa.id == categoryAttribute.id\n );\n const suggestedAttributeValues = [];\n if (primarySuggestedAttribute) {\n primarySuggestedAttribute.values.forEach(v => {\n const isSelectableSuggestion = categoryAttribute.options.some(\n o => o.value === v\n );\n const isMaxReached =\n suggestedAttributeValues.length >=\n categoryAttribute.maxNumberOfValues;\n if (isSelectableSuggestion && !isMaxReached) {\n suggestedAttributeValues.push(v);\n }\n });\n }\n if (secondarySuggestedAttribute) {\n secondarySuggestedAttribute.values.forEach(v => {\n const isSelectableSuggestion = categoryAttribute.options.some(\n o => o.value === v\n );\n const isAlreadySuggested = suggestedAttributeValues.some(\n o => o === v\n );\n const isMaxReached =\n suggestedAttributeValues.length >=\n categoryAttribute.maxNumberOfValues;\n if (\n isSelectableSuggestion &&\n !isMaxReached &&\n !isAlreadySuggested\n ) {\n suggestedAttributeValues.push(v);\n }\n });\n }\n if (suggestedAttributeValues.length > 0) {\n selectableSuggestions.push({\n id: categoryAttribute.id,\n values: suggestedAttributeValues\n });\n }\n });\n return selectableSuggestions;\n};\n","import {\n filterSelectableSuggestions,\n filterCombinedSelectableSuggestions\n} from './attributes-helpers';\n\nconst initialState = {\n // The attributes for the current category\n categoryAttributes: [],\n // The attributes of the draft.\n /**\n draftAttributes: {\n termAttributeValues: [\n {\n id: 1,\n backingField: 'clothes_size',\n userGenerated: true,\n values: [\n 'b'\n ]\n }\n ],\n numberAttributeValues: []\n }\n */\n draftAttributes: {},\n // A list of the selected attributes (draftAttributes) for display on the page.\n // Exists for ease of use in views.\n // Format:\n /**\n {\n title: 'Klädstorlek',\n value: 'L'\n }\n */\n selectableSuggestedAttributes: [],\n selectableCategorySuggestedAttributes: [],\n selectableImageToColorSuggestedAttributes: [],\n // Attribute suggestions from the image-to-color service.\n imageToColorSuggestedAttributes: [],\n validationErrors: {}\n};\n\nconst setCategoryAttributesSuggestions = (state, action) => {\n const { payload } = action;\n const newState = {\n ...state,\n categorySuggestedAttributes: payload.suggestedAttributes,\n selectableCategorySuggestedAttributes: filterSelectableSuggestions(\n payload.suggestedAttributes,\n state.categoryAttributes\n ),\n suggestionsExtractorType: payload.suggestionsExtractorType\n };\n updateSelectableSuggestedAttributes(newState);\n return newState;\n};\n\nconst setImageToColorSuggestions = (state, action) => {\n const { payload } = action;\n const newState = {\n ...state,\n imageToColorSuggestedAttributes: payload.suggestedAttributes\n };\n updateSelectableImageToColorSuggestedAttributes(newState);\n return newState;\n};\n\nconst updateSelectableSuggestedAttributes = newState => {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.selectableSuggestedAttributes = filterCombinedSelectableSuggestions(\n newState.selectableCategorySuggestedAttributes,\n newState.selectableImageToColorSuggestedAttributes,\n newState.categoryAttributes\n );\n};\n\nconst updateSelectableImageToColorSuggestedAttributes = newState => {\n // eslint-disable-next-line better-mutation/no-mutation\n newState.selectableImageToColorSuggestedAttributes = filterSelectableSuggestions(\n newState.imageToColorSuggestedAttributes,\n newState.categoryAttributes\n );\n updateSelectableSuggestedAttributes(newState);\n};\n\nconst setCategoryAttributeOption = (state, action) => {\n const { payload } = action;\n const attribute = state.categoryAttributes.find(\n a => a.id === payload.attributeId\n );\n let options = attribute.options;\n if (\n !attribute.isMultiSelect ||\n (!payload.optionValue && !payload.activate)\n ) {\n options = options.map(o =>\n !o.isActive ? o : { ...o, isActive: false }\n );\n }\n if (payload.optionValue) {\n options = options.map(o =>\n o.value !== payload.optionValue\n ? o\n : { ...o, isActive: payload.activate }\n );\n }\n const numberOfValuesSelected = options.filter(o => o.isActive).length;\n return {\n ...state,\n categoryAttributes: state.categoryAttributes.map(a =>\n a.id !== payload.attributeId\n ? a\n : { ...attribute, options, numberOfValuesSelected }\n )\n };\n};\n\nconst updateCategoryAttributesOptionsStatuses = state => {\n const categoryAttributes = state.categoryAttributes.map(a => {\n const draftAttributeValues =\n state.draftAttributes.termAttributeValues?.find(\n tav => a.id === tav.id\n )?.values || [];\n const options = a.options.map(o => {\n const isActive = draftAttributeValues.includes(o.value);\n return o.isActive === isActive ? o : { ...o, isActive };\n });\n const numberOfValuesSelected = options.filter(o => o.isActive).length;\n return { ...a, options, numberOfValuesSelected };\n });\n return { ...state, categoryAttributes };\n};\n\nconst setDraftAttributes = (state, action) => {\n const newState = {\n ...state,\n draftAttributes: {\n ...action.payload\n }\n };\n return newState;\n};\n\nconst setCategoryAttributes = (state, action) => {\n const newState = {\n ...state,\n categoryAttributes: [...action.payload]\n };\n updateSelectableImageToColorSuggestedAttributes(newState);\n return newState;\n};\n\nconst resetAttributes = state => {\n return {\n ...initialState,\n // Resetting image-to-color suggested attributes is done separately\n imageToColorSuggestedAttributes: state.imageToColorSuggestedAttributes,\n selectableImageToColorSuggestedAttributes:\n state.selectableImageToColorSuggestedAttributes\n };\n};\n\nconst resetSelectedAttributes = state => {\n return updateCategoryAttributesOptionsStatuses({\n ...state,\n draftAttributes: {}\n });\n};\n\nconst resetImageAttributeSuggestions = state => {\n const newState = {\n ...state,\n imageToColorSuggestedAttributes:\n initialState.imageToColorSuggestedAttributes\n };\n updateSelectableImageToColorSuggestedAttributes(newState);\n return newState;\n};\n\nconst validate = state => {\n const validationErrors = {};\n state.categoryAttributes.forEach(attribute => {\n if (attribute.minNumberOfValues === 0) {\n return;\n }\n if (attribute.options.length === 0) {\n // There were no options to choose from.\n // May not happen when backend implementation is done,\n // we should not get an empty list of options.\n return;\n }\n const values = attribute.options.reduce((acc, option) => {\n if (option.isActive) {\n acc.push(option.value);\n }\n return acc;\n }, []);\n if (values.length === 0) {\n // eslint-disable-next-line better-mutation/no-mutation\n validationErrors[\n attribute.backingField\n ] = `attributes:::syi_validation_missing_attribute_${attribute.backingField}`;\n }\n });\n\n return { ...state, validationErrors };\n};\n\nconst reducers = {\n RESET_ATTRIBUTES: resetAttributes,\n RESET_SELECTED_ATTRIBUTES: resetSelectedAttributes,\n RESET_IMAGE_ATTRIBUTES_SUGGESTIONS: resetImageAttributeSuggestions,\n SET_CATEGORY_ATTRIBUTES: setCategoryAttributes,\n SET_DRAFT_ATTRIBUTES: setDraftAttributes,\n SET_CATEGORY_ATTRIBUTE_OPTION: setCategoryAttributeOption,\n UPDATE_CATEGORY_ATTRIBUTES_OPTIONS_STATUSES: updateCategoryAttributesOptionsStatuses,\n SET_CATEGORY_ATTRIBUTES_SUGGESTIONS: setCategoryAttributesSuggestions,\n SET_IMAGE_ATTRIBUTES_SUGGESTIONS: setImageToColorSuggestions\n};\n\nexport default (state = initialState, action) => {\n const reducer = reducers[action.type];\n if (reducer) {\n return validate(reducer(state, action));\n }\n return state;\n};\n","import { createReducer } from '@reduxjs/toolkit';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport config from 'tradera-apps/syi/script/app_react/services/config';\n\nconst createInitalState = () => {\n if (!userData || !userData.consent || !userData.braintree) {\n // seems syi is not loaded, return empty object\n return {};\n }\n const shouldGiveConsent =\n config.isSyiMemberConsentEnabled && userData.braintree.isBraintreeOnly;\n\n return {\n hasTraderaPayConsent: !!userData.consent.hasTraderaPayConsent,\n shouldGiveConsent,\n hasValidationError:\n shouldGiveConsent && !userData.consent.hasTraderaPayConsent\n };\n};\n\nconst initialState = createInitalState();\n\nexport default createReducer(initialState, {\n SET_TRADERAPAY_CONSENT: (state, action) => {\n // eslint-disable-next-line better-mutation/no-mutation\n state.hasTraderaPayConsent = action.payload;\n // eslint-disable-next-line better-mutation/no-mutation\n state.hasValidationError = !action.payload;\n }\n});\n","import { mapItemDetails } from 'tradera-state/views/view-item/reducer';\n\nvar initialState = {\n itemDetails: null,\n bidInfo: null,\n hasLoaded: false,\n\n viewItemState: null,\n isBidding: false,\n itemState: null,\n placeBidResponse: {\n info: null,\n isSuccessful: null,\n validationResult: null,\n error: null\n },\n myMaxBidAmount: null,\n initialBidFormValue: null,\n serverSecondsLeft: null\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_PREVIEW_ITEM_DETAILS': {\n return {\n ...state,\n itemDetails: mapItemDetails(action.payload)\n };\n }\n case 'SET_PREVIEW_BID_INFO': {\n const { bidInfo, memberId } = action.payload;\n\n return {\n ...state,\n bidInfo: {\n bidId: bidInfo.bidId || 0,\n leadingBidAmount: bidInfo.leadingBidAmount || 0,\n leadingBidderMemberId:\n bidInfo.leadingBidderMemberId || null,\n leadingBidMemberAlias:\n bidInfo.leadingBidMemberAlias || null,\n nextValidBidAmount: bidInfo.nextValidBidAmount,\n transactionType: bidInfo.transactionType || null,\n bidCount: bidInfo.bidCount,\n reservePriceReached: bidInfo.reservePriceReached || false,\n hasLeadingBid:\n !!memberId &&\n memberId === bidInfo.leadingBidderMemberId,\n hasLostLeadingBid: false\n }\n };\n }\n case 'SET_PREVIEW_ITEM_STATE':\n return { ...state, itemState: action.payload };\n case 'SET_PREVIEW_SERVER_SECONDS_LEFT':\n return { ...state, serverSecondsLeft: action.payload };\n case 'SET_PREVIEW_IS_LOADING':\n return { ...state, hasLoaded: action.payload };\n default:\n return state;\n }\n};\n","import { combineReducers } from 'redux';\nimport draft from './reducers/draft';\nimport category from './reducers/category';\nimport payment from './reducers/payment';\nimport syi from './reducers/syi';\nimport errors from './reducers/errors';\nimport shipping from './reducers/shipping/shipping-reducer';\nimport templates from './reducers/templates';\nimport template from './reducers/template';\nimport buyerRegion from './reducers/buyer-region';\nimport itemCondition from './reducers/item-condition';\nimport campaignCode from './reducers/campaign-code';\nimport fees from './reducers/fees';\nimport itemDuration from './reducers/item-duration';\nimport shortDescription from './reducers/short-description';\nimport extraFeatures from './reducers/extra-features';\nimport images from './reducers/images';\nimport price from './reducers/price';\nimport edit from './reducers/edit';\nimport longDescription from './reducers/long-description';\nimport scroll from './reducers/scroll';\nimport charityCampaign from './reducers/charity-campaign';\nimport drafts from './reducers/drafts';\nimport attributes from './reducers/attributes';\nimport language from './reducers/language';\nimport traderaStateBankId from 'tradera-state/bank-id/reducer';\nimport memberConsent from './reducers/member-consent';\nimport preview from './reducers/preview';\nimport charity from './reducers/charity';\n\nexport default combineReducers({\n attributes,\n bankId: traderaStateBankId,\n buyerRegion,\n campaignCode,\n category,\n charity,\n charityCampaign,\n draft,\n drafts,\n edit,\n errors,\n extraFeatures,\n fees,\n images,\n itemCondition,\n itemDuration,\n language,\n longDescription,\n memberConsent,\n payment,\n preview,\n price,\n scroll,\n shipping,\n shortDescription,\n syi,\n templates,\n template\n});\n","const initialState = null;\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SET_DRAFTS':\n if (action.payload) {\n return [...action.payload];\n } else {\n return null;\n }\n }\n return state;\n};\n","import { getLanguage } from 'tradera-apps/syi/script/app_react/utils/language';\n\nexport default state =>\n state\n ? state\n : {\n preferredLanguage: getLanguage()\n };\n","export default (state = null, action) => {\n switch (action.type) {\n case 'SET_TEMPLATES':\n if (action.payload) {\n return [...action.payload];\n } else {\n return null;\n }\n case 'UPDATE_TEMPLATE_IN_LIST':\n if (state) {\n const newState = [...state];\n let index = newState.findIndex(\n template =>\n template.templateId == action.template.templateId\n );\n if (index > -1) {\n const images = action.template.images;\n const image = images.length > 0 ? images[0] : {};\n newState[index].templateId = action.template.templateId;\n newState[index].name = action.template.templateName;\n newState[index].shortDescription =\n action.template.shortDescription;\n newState[index].imageUrl = image.imageUrl;\n newState[index].imageRotationDegrees =\n image.draftImage && image.draftImage.rotationDegrees;\n }\n return newState;\n }\n break;\n }\n return state;\n};\n","import { actionTypes as purchaseOrderActionTypes } from '../action-types/purchase-order';\nimport myTraderaItemActions from '../actions/my-tradera-items';\n\nconst initialState = {\n purchaseOrders: []\n};\n\nconst updatePurchaseOrderPaidBySeller = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n state: {\n ...purchaseOrder.state,\n isPaid: action.payload.isPaid\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderPaidByBuyer = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n state: {\n ...purchaseOrder.state,\n isMarkedAsPaidByBuyer:\n action.payload.isMarkedAsPaidByBuyer\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderShipped = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n state: {\n ...purchaseOrder.state,\n isShipped: action.payload.isShipped\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderRequestCombinedShipping = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n combinedShippingInformation: {\n ...purchaseOrder.combinedShippingInformation,\n buyerRequestedCombinedShippingPriceDate: Date.now(),\n hasBuyerRequestedCombinedShippingPrice:\n action.payload\n .hasBuyerRequestedCombinedShippingPrice\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderShippingPrice = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.purchaseOrderId\n ? {\n ...purchaseOrder,\n ...(purchaseOrder.combinedShippingInformation\n ? {\n combinedShippingInformation: {\n ...purchaseOrder.combinedShippingInformation,\n sellerSetCombinedShippingPriceDate: Date.now()\n }\n }\n : null),\n shippingAmount: action.newPrice,\n totalAmount:\n parseInt(action.newPrice) +\n parseInt(purchaseOrder.totalItemAmount),\n shipping: {\n ...purchaseOrder.shipping,\n shippingDiscount: {\n shippingCost: action.newPrice,\n shippingType: action.shippingProvider\n }\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderShipment = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n state: {\n ...purchaseOrder.state,\n hasUnpaidShipping: false\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrderShippedBooked = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n state: {\n ...purchaseOrder.state,\n isShippingBooked: action.payload.isBooked\n }\n }\n : purchaseOrder\n )\n };\n};\n\nconst updatePurchaseOrders = (state, action) => {\n return {\n ...state,\n paging: {\n ...action.payload.paging\n },\n statistics: action.payload.statistics,\n purchaseOrders: action.payload.purchaseOrders.map(purchaseOrder => {\n const { rows, ...filteredPurchaseOrder } = purchaseOrder;\n return {\n ...filteredPurchaseOrder\n };\n })\n };\n};\n\nconst checkHaveGivenFeedBackTo = (action, purchaseOrder) => {\n const itemsToGiveFeedBackTo = purchaseOrder.itemsToGiveFeedBackTo\n .map(itemToGiveFeedBackTo => {\n const haveGivenFeedBackTo = action.payload.submittables.filter(\n submittable => {\n return submittable.transactionId === itemToGiveFeedBackTo;\n }\n ).length;\n if (haveGivenFeedBackTo) {\n return null;\n }\n return itemToGiveFeedBackTo;\n })\n .filter(Boolean);\n return itemsToGiveFeedBackTo;\n};\n\nconst updatePurchaseOrderFeedback = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.map(purchaseOrder =>\n purchaseOrder.purchaseOrderId === action.payload.purchaseOrderId\n ? {\n ...purchaseOrder,\n itemsToGiveFeedBackTo: checkHaveGivenFeedBackTo(\n action,\n purchaseOrder\n )\n }\n : purchaseOrder\n )\n };\n};\n\n// Updating hidden always hides the order from the current list\nconst updatePurchaseOrderHidden = (state, action) => {\n return {\n ...state,\n purchaseOrders: state.purchaseOrders.filter(\n purchaseOrder =>\n purchaseOrder.purchaseOrderId !== action.payload.purchaseOrderId\n )\n };\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case myTraderaItemActions.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_PAID_BY_SELLER:\n return updatePurchaseOrderPaidBySeller(state, {\n payload: {\n purchaseOrderId: action.payload.ids[0],\n isPaid: true\n }\n });\n case myTraderaItemActions.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_SELLER:\n return updatePurchaseOrderPaidBySeller(state, {\n payload: {\n purchaseOrderId: action.payload.ids[0],\n isPaid: false\n }\n });\n case myTraderaItemActions.actionTypes\n .PURCHASE_ORDERS_MARKED_AS_PAID_BY_BUYER:\n return updatePurchaseOrderPaidByBuyer(state, {\n payload: {\n purchaseOrderId: action.payload.ids[0],\n isMarkedAsPaidByBuyer: true\n }\n });\n case myTraderaItemActions.actionTypes\n .PURCHASE_ORDERS_UNMARKED_AS_PAID_BY_BUYER:\n return updatePurchaseOrderPaidByBuyer(state, {\n payload: {\n purchaseOrderId: action.payload.ids[0],\n isMarkedAsPaidByBuyer: false\n }\n });\n case purchaseOrderActionTypes.PURCHASE_ORDER_RESET:\n return initialState;\n case purchaseOrderActionTypes.PURCHASE_ORDERS_SHIPPING_BOOKED:\n return updatePurchaseOrderShippedBooked(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_REQUEST_COMBINED_SHIPPING:\n return updatePurchaseOrderRequestCombinedShipping(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_SHIPPED:\n return updatePurchaseOrderShipped(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_PAID_BY_BUYER:\n return updatePurchaseOrderPaidByBuyer(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_PAID_BY_SELLER:\n return updatePurchaseOrderPaidBySeller(state, action);\n case myTraderaItemActions.actionTypes.SET_NEW_SHIPPING_PRICE:\n return updatePurchaseOrderShippingPrice(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_LIST:\n return updatePurchaseOrders(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_DELETE_SHIPMENT:\n return updatePurchaseOrderShipment(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER:\n case purchaseOrderActionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER:\n return updatePurchaseOrderFeedback(state, action);\n case purchaseOrderActionTypes.PURCHASE_ORDER_HIDDEN:\n return updatePurchaseOrderHidden(state, action);\n default:\n return state;\n }\n};\n","import { combineReducers } from 'redux';\nimport cookies from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport filters from 'tradera-apps/my-tradera/app/state/reducers/filters';\nimport myTradera from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport myTraderaItems from 'tradera-apps/my-tradera/app/state/reducers/my-tradera-items';\nimport payments from 'tradera-apps/my-tradera/app/state/reducers/payments-reducer';\nimport payout from 'tradera-apps/my-tradera/app/state/payouts/reducer';\nimport purchaseOrder from 'tradera-apps/my-tradera/app/state/reducers/purchase-order';\n\nexport default combineReducers({\n cookies,\n filters,\n myTradera,\n myTraderaItems,\n payments,\n payout,\n purchaseOrder\n});\n","import { mapItemDetails } from '../view-item/reducer';\nimport actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n switch (action.type) {\n case actionTypes.INITIALIZE:\n return {\n ...action.payload\n };\n case actionTypes.SET_IS_LOADING:\n return { ...state, loading: action.payload };\n case actionTypes.SET_ITEM_DETAILS:\n return { ...state, itemDetails: mapItemDetails(action.payload) };\n case actionTypes.SET_PRODUCT:\n return { ...state, product: action.payload };\n default:\n return state;\n }\n};\n","import { combineReducers } from 'redux';\nimport viewItem from './view-item/reducer';\nimport { reducer as reportItem } from './report-item/reducer';\nimport profile from './profile/reducer';\nimport startPage from './start-page/reducer';\nimport checkout from './checkout/reducer';\nimport syi from './syi/reducer';\nimport myTradera from './my-tradera/reducer';\nimport shippingCalculator from './shipping-calculator/reducer';\nimport cart from './cart/reducer';\nimport traderaShop from './tradera-shop/reducer';\nimport shippingCheckout from './shipping-checkout/reducer';\nimport invoiceCheckout from './invoice-checkout/reducer';\nimport initData from 'init-data';\n\nconst reducers = {\n checkout,\n myTradera,\n profile,\n cart,\n reportItem,\n shippingCalculator,\n startPage,\n viewItem,\n traderaShop,\n shippingCheckout,\n invoiceCheckout\n};\nif (initData.pageName === 'SellItem') {\n reducers.syi = syi;\n}\n\nexport default combineReducers(reducers);\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const initialState = {};\n\nconst slice = createSlice({\n name: 'status',\n initialState,\n reducers: {\n setIsActionsPerFullPageLoadDone: (state, { payload }) => {\n state.isActionsPerFullPageLoadDone = payload;\n }\n }\n});\n\nexport const { setIsActionsPerFullPageLoadDone } = slice.actions;\n\nexport const reducer = slice.reducer;\n","import { combineReducers } from 'redux';\n\nimport ads from './ads/reducer';\nimport bankId from './bank-id/reducer';\nimport categories from './categories/reducer';\nimport discover from 'tradera-state/discover/reducer';\nimport { reducer as environment } from './environment/reducer';\nimport initData from './init-data/reducer';\nimport items from './items/reducer';\nimport language from './language/reducer';\nimport member from './member/reducer';\nimport multiCurrency from './multi-currency/reducer';\nimport page from './page/reducer';\nimport personalisation from './personalisation/reducer';\nimport pushNotifications from './push-notifications/push-notifications-slice';\nimport shippingRegion from './shipping-region/reducer';\nimport ui from './ui/reducer';\nimport views from './views/reducer';\nimport { connectRouter } from 'connected-react-router';\nimport { reducer as status } from './status/reducer';\n\nexport default history =>\n combineReducers({\n ads,\n bankId,\n categories,\n discover,\n environment,\n initData,\n items,\n language,\n member,\n multiCurrency,\n page,\n personalisation,\n pushNotifications,\n shippingRegion,\n ui,\n views,\n router: connectRouter(history),\n status\n });\n","const getJSValue = {\n True: true,\n False: false,\n All: 'All'\n};\n\nconst setJSValue = {\n true: 'True',\n false: 'False',\n All: 'All'\n};\n\nexport const setEnum = value => setJSValue[value];\nexport const getEnum = value => getJSValue[value];\n","export const selectShippingConfirmation = state =>\n state.views.shippingCheckout.shippingConfirmation;\n\nexport const selectShippingCheckout = state => state.views.shippingCheckout;\n\nexport const selectShipping = state => state.views.shippingCheckout.shipping;\n\nexport const selectItemWithoutShipment = state =>\n state.views.shippingCheckout.itemWithoutShipment;\n\nexport const selectShipment = (state, shipmentId) =>\n state.views.shippingCheckout?.shipments?.find(\n shipment => shipment.shipmentId === shipmentId\n );\n\nexport const selectShippingPayment = state =>\n state.views.shippingCheckout.payment;\n\nexport const selectCheckoutSummary = state =>\n state.views.shippingCheckout.checkoutSummary;\n\nexport const selectSellerPhoneNumber = state =>\n state.views.shippingCheckout.sellerPhoneNumber;\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","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 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 createUncommittedPurchaseOrder\n};\n","import { logger } from 'packages/logger';\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 // eslint-disable-next-line better-mutation/no-mutation\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 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","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, { 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/application-error-boundary';\nimport { LocalizedDfpAd } from 'tradera-components/ads/localized-dfp-ad';\nimport MediaQuery from 'react-responsive';\nimport { selectIsGoogleAdsEnabled } from 'tradera-state/ads/selectors';\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 isGoogleAdsEnabled,\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 (isGoogleAdsEnabled && 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 isGoogleAdsEnabled: selectIsGoogleAdsEnabled(state)\n});\n\nexport default connect(mapStateToProps)(Ad);\n","import myTraderaItemActions from '../state/actions/my-tradera-items';\nimport dayjs from 'dayjs';\nimport featureToggles from '../utils/feature-toggles';\nimport { getMessagingThreadLink } from './messaging-helpers';\nimport purchaseOrderActions from '../state/actions/purchase-order';\nimport uiActions, { openModal, openShareModal } from 'tradera-state/ui/actions';\nimport { types } from './item-actions-helper';\nimport { isNormalListViewType } from './item-helper';\nimport { SINGLE_FEEDBACK_DIALOG_ID } from '../components/leave-feedback/single-feedback-dialog';\nimport { toLocalizedUrl } from 'tradera-utils/url';\nimport {\n openChangeShipping,\n openSetDiscount\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\n\nconst getId = item => item.key;\nconst getIds = item => [item.itemId];\n\nconst isTakeAway = item => {\n return (\n (item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway) ||\n (item.transaction.shippingDiscount &&\n item.transaction.shippingDiscount.isTakeaway)\n );\n};\n\nconst hasStampsAsSelectedShippingType = item => {\n return (\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.type == 'PostNordStamp'\n );\n};\n\n// isPrimaryAction = will be primary action unless one before has not already been set as primary action\n// Hence, the order of the actions matter.\nconst commonActions = item => ({\n sellSimilar: () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Sälj liknande',\n getTranslatedLabel: t => t('myt_itemCard_actions_sellSimilar'),\n url: `/selling/sell-similar/${item.itemId}`,\n gaLabel: 'SellSimilar',\n isVisible: () => true,\n isPrimaryAction: () => true\n })\n});\n\nconst hasTransactionDateNewerThen60Days = item => {\n const dateLimit = dayjs().subtract(60, 'day');\n return dayjs(item.transaction?.transactionDate?.date).isAfter(dateLimit);\n};\n\nexport const soldActions = (\n item,\n listViewType,\n memberId,\n memberMessagingParticipation\n) => {\n const common = commonActions(item);\n const actions = [\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Ändra fraktpris',\n getTranslatedLabel: t =>\n item.haveCombinedShipping && item.haveMultipleRows\n ? item.transaction.shippingDiscount\n ? t(\n 'myt_itemCard_actions_update_combinedshipping_change'\n )\n : t('myt_itemCard_actions_update_combinedshipping')\n : t('myt_itemCard_actions_update_shipping'),\n dispatch: dispatch => {\n dispatch(\n openChangeShipping({\n purchaseOrderId: item?.transaction?.purchaseOrderId,\n receiverCountry:\n item?.transaction?.buyer.address.countryCodeIso2\n })\n );\n },\n gaLabel: 'ChangeShippingPriceSold',\n isVisible: () =>\n isNormalListViewType(listViewType) &&\n !item.haveMultipleRows &&\n !item.transaction.sellerState.paid,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Orderinformation',\n getTranslatedLabel: t => t('myt_itemCard_actions_orderInformation'),\n url: `/my/sold/buyer-info?purchaseOrderId=${item.transaction.purchaseOrderId}`,\n gaLabel: 'BuyerInfo',\n isVisible: () =>\n !!item.transaction.purchaseOrderId && !item.haveMultipleRows,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Kontakta köpare',\n getTranslatedLabel: t => t('myt_itemCard_actions_contactBuyer'),\n dispatch: dispatch => {\n const recipientId = item.seller.id;\n const src = getMessagingThreadLink(\n recipientId,\n item.transaction.buyer.id,\n item.itemId,\n {\n traderaUserId: recipientId,\n singleThread: true,\n openForm: true,\n source: 'contact_buyer'\n }\n );\n const title = 'Kontakta köpare';\n dispatch(\n uiActions.openMessagingModal({\n title,\n src,\n recipientId,\n item\n })\n );\n },\n gaLabel: 'ContactBuyer',\n isVisible: () => {\n return (\n !item.haveMultipleRows &&\n featureToggles.isMessagingEnabled &&\n featureToggles.isMessagingBuyerButtonsEnabled &&\n memberMessagingParticipation &&\n item.transaction.purchaseOrderId &&\n item.transaction.buyer\n );\n },\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Markera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_markAsPaid'),\n dispatch: dispatch =>\n dispatch(\n myTraderaItemActions.markPurchaseOrdersAsPaidBySeller(\n [item.transaction.purchaseOrderId],\n listViewType,\n memberMessagingParticipation\n )\n ),\n gaLabel: 'MarkAsPaid',\n isVisible: () => {\n if (item.transaction.isPaidWithIntegratedPaymentOption) {\n return false;\n }\n return !item.transaction.sellerState.paid;\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Boka frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_bookShipping'),\n url: `/my/shipping?purchaseOrderId=${item.transaction.purchaseOrderId}&originUrl=%2fmy%2fsold`,\n /*\n * @todo\n */\n gaLabel: 'BookShipping',\n isVisible: () => {\n if (\n item.haveMultipleRows ||\n item.transaction.sellerState.shippingBooked ||\n item.transaction.sellerState.shipped ||\n item.transaction.hasUnpaidShipping ||\n item.isArchived\n ) {\n return false;\n }\n return true;\n },\n isPrimaryAction: () => {\n return (\n !item.transaction.hasUnpaidShipping &&\n !isTakeAway(item) &&\n !hasStampsAsSelectedShippingType(item) &&\n !item.isArchived\n );\n }\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Betala frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_payShipping'),\n url: item.transaction.unpaidShippingUrl || `/my/shipping/checkout`,\n gaLabel: 'PayShipping',\n isVisible: () => item.transaction.hasUnpaidShipping,\n isPrimaryAction: () => item.transaction.hasUnpaidShipping\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Avbryt fraktbokning',\n getTranslatedLabel: t => t('myt_itemCard_actions_deleteShipping'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellingDeleteShipment(\n item.transaction.unpaidShippingId,\n item.transaction.purchaseOrderId,\n listViewType\n )\n );\n },\n gaLabel: 'DeleteShipping',\n isVisible: () =>\n item.transaction.hasUnpaidShipping && !item.haveMultipleRows,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Avmarkera som bokad',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_unmarkAsShippingBooked'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellingUnmarkAsShippingBooked(\n [item.transaction.purchaseOrderId],\n listViewType,\n [item.transaction.transactionId]\n )\n );\n },\n gaLabel: 'UnmarkAsShippingBooked',\n isVisible: () => {\n return (\n !item.transaction.trackingLink &&\n !item.haveMultipleRows &&\n item.transaction.sellerState.shippingBooked &&\n !item.transaction.sellerState.shipped\n );\n },\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Markera som bokad',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_markAsShippingBooked'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellingMarkAsShippingBooked(\n item.transaction.purchaseOrderId,\n listViewType,\n [item.transaction.transactionId]\n )\n );\n },\n gaLabel: 'MarkAsShippingBooked',\n isVisible: () => {\n return (\n !item.transaction.trackingLink &&\n !item.haveMultipleRows &&\n !item.transaction.sellerState.shippingBooked &&\n !item.transaction.sellerState.shipped\n );\n },\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `/my/sold/buyer-info?purchaseOrderId=${item.transaction.purchaseOrderId}#shipping`,\n gaLabel: 'TrackShipment',\n isVisible: () =>\n !item.haveMultipleRows && !!item.transaction.trackingLink,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.EXTERNAL_LINK,\n label: 'Kvitto för frakt',\n getTranslatedLabel: t => t('myt_itemCard_actions_shippingReceipt'),\n url: `/my/shipping/receipt/${item.transaction.paidShipmentCheckoutId}`,\n gaLabel: 'ShippingReceipt',\n isVisible: () =>\n item.transaction.bookedShipment &&\n !item.haveMultipleRows &&\n item.transaction.bookedShipment.hasShipmentReceipt,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.EXTERNAL_LINK,\n label: 'Ladda ner fraktsedel',\n getTranslatedLabel: t => t('myt_itemCard_actions_shippingLabel'),\n url: `/my/shipping/label/${item.transaction.shipmentId}`,\n gaLabel: 'ShippingLabel',\n isVisible: () =>\n item.transaction.bookedShipment &&\n item.transaction.bookedShipment.hasShipmentLabel,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: isTakeAway(item)\n ? 'Avmarkera som hämtad'\n : 'Avmarkera som skickad',\n getTranslatedLabel: t =>\n isTakeAway(item)\n ? t('myt_itemCard_actions_unmarkAsCollected')\n : t('myt_itemCard_actions_unmarkAsSent'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellingUnmarkAsShipped(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'UnmarkAsShipped',\n isVisible: () =>\n item.transaction.sellerState.shipped && !item.haveMultipleRows,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: isTakeAway(item)\n ? 'Markera som hämtad'\n : 'Markera som skickad',\n getTranslatedLabel: t =>\n isTakeAway(item)\n ? t('myt_itemCard_actions_markAsCollected')\n : t('myt_itemCard_actions_markAsSent'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellingMarkAsShipped(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'MarkAsShipped',\n isVisible: () =>\n !item.transaction.sellerState.shipped && !item.haveMultipleRows,\n isPrimaryAction: () => !item.transaction.hasUnpaidShipping\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Lämna omdöme',\n getTranslatedLabel: t => t('myt_itemCard_actions_leaveFeedback'),\n dispatch: dispatch => {\n dispatch(\n featureToggles.isLeaveFeedbackReactEnabled\n ? openModal({\n modalId: SINGLE_FEEDBACK_DIALOG_ID,\n data: {\n transactionId: item.transaction.transactionId\n }\n })\n : myTraderaItemActions.sellingLeaveFeedback(\n item,\n listViewType\n )\n );\n },\n gaLabel: 'LeaveFeedbackOnBuyer',\n isVisible: () =>\n !item.transaction.sellerState.feedbackLeft &&\n !item.haveMultipleRows,\n isPrimaryAction: () => !item.haveMultipleRows\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Återbetala',\n getTranslatedLabel: t => t('myt_itemCard_actions_refund'),\n dispatch: dispatch =>\n dispatch(openSetDiscount(item.transaction.purchaseOrderId)),\n gaLabel: 'Refund',\n isVisible: () =>\n !item.haveMultipleRows &&\n (item.transaction.isDiscountAfterPaymentSupported ||\n item.transaction.isRefundAllowed),\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Köparens omdömen',\n getTranslatedLabel: t => t('myt_itemCard_actions_buyerFeedback'),\n url: `/profile/feedback/${item.transaction.buyer.id}`,\n gaLabel: 'BuyerProfile',\n isVisible: () => !item.haveMultipleRows,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Se köphistorik',\n getTranslatedLabel: t => t('myt_itemCard_actions_purchaseHistory'),\n url: `/my/item/${item.itemId}/purchasehistory`,\n gaLabel: 'PurchaseHistory',\n isVisible: () =>\n !(\n item.listing.itemType === 'Auction' ||\n item.listing.itemType === 'AuctionBin' ||\n item.haveMultipleRows\n ),\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Avmarkera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_unmarkAsPaid'),\n dispatch: dispatch =>\n dispatch(\n myTraderaItemActions.unmarkPurchaseOrdersAsPaidBySeller(\n [item.transaction.purchaseOrderId],\n listViewType,\n memberMessagingParticipation\n )\n ),\n gaLabel: 'UnmarkAsPaid',\n isVisible: () => {\n if (item.transaction.isPaidWithIntegratedPaymentOption) {\n return false;\n }\n return (\n !!item.transaction.sellerState.paid &&\n !item.haveMultipleRows\n );\n },\n isPrimaryAction: () => true\n }),\n () => ({\n // \"UPI\" = \"Unpaid Item\"\n id: getId(item),\n type: types.LINK,\n label: 'Anmäl utebliven betalning',\n getTranslatedLabel: t => t('myt_itemCard_actions_reportUnpaidItem'),\n url: isNormalListViewType(listViewType)\n ? `/resolution/UPI2/${item.transaction.purchaseOrderId}`\n : `/resolution/UPI/${item.transaction.transactionId}`,\n gaLabel: 'ReportUnpaidItem',\n isVisible: () =>\n (!item.haveMultipleRows ||\n !featureToggles.isUpiPurchaseOrderEnabled) &&\n item.transaction.sellerState.state === 'NotPaid' &&\n !item.transaction.sellerState.upiSubmitted &&\n !featureToggles.isDiscontinuedSaleEnabled &&\n hasTransactionDateNewerThen60Days(item),\n isPrimaryAction: () => true\n }),\n () => ({\n // \"DCS\" = \"Discontinued Sale\"\n id: getId(item),\n type: types.LINK,\n label: 'Utebliven försäljning',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_reportDiscontinuedSale'),\n url: `/resolution/DCS/${item.transaction.purchaseOrderId}`,\n gaLabel: 'ReportDiscontinuedSale',\n isVisible: () =>\n !item.haveMultipleRows &&\n featureToggles.isDiscontinuedSaleEnabled &&\n item.transaction.sellerState.state === 'NotPaid' &&\n !item.transaction.sellerState.isMcpSubmitted &&\n !item.transaction.sellerState.isUpiSubmitted &&\n hasTransactionDateNewerThen60Days(item),\n isPrimaryAction: () => true\n }),\n common.sellSimilar,\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Lämna rabatt',\n getTranslatedLabel: t => t('myt_itemCard_actions_giveDiscount'),\n dispatch: dispatch =>\n dispatch(openSetDiscount(item.transaction.purchaseOrderId)),\n gaLabel: 'Discount',\n isVisible: () =>\n !item.haveMultipleRows &&\n (item.transaction.isDiscountBeforePaymentSupported ||\n item.transaction.isDiscountAllowed),\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Ångra dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_unhide'),\n dispatch: dispatch => {\n dispatch(\n isNormalListViewType(listViewType)\n ? purchaseOrderActions.updatePurchaseOrderHiddenForSeller(\n item.transaction.purchaseOrderId,\n false,\n listViewType\n )\n : myTraderaItemActions.sellerUnhideTransaction(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n );\n },\n gaLabel: 'UnhideSold',\n isVisible: () =>\n isNormalListViewType(listViewType)\n ? !item.haveMultipleRows &&\n item.transaction?.sellerState.hidden\n : item.transaction && item.transaction.sellerState.hidden,\n isPrimaryAction: () => true\n })\n ];\n\n const hide = () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch => {\n dispatch(\n isNormalListViewType(listViewType)\n ? purchaseOrderActions.updatePurchaseOrderHiddenForSeller(\n item.transaction.purchaseOrderId,\n true,\n listViewType\n )\n : myTraderaItemActions.sellerHideTransaction(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n );\n },\n gaLabel: 'HideSold',\n isVisible: () =>\n isNormalListViewType(listViewType)\n ? !item.haveMultipleRows &&\n !item.transaction?.sellerState.hidden\n : item.transaction && !item.transaction.sellerState.hidden,\n isPrimaryAction: () => true\n });\n\n if (item.transaction && item.transaction.sellerState.state === 'Done') {\n // Make \"hide\" the primary action by setting it as the first element in the array\n actions.unshift(hide);\n } else {\n actions.push(hide);\n }\n\n return actions;\n};\n\nexport const activeSellerActions = (\n item,\n listViewType,\n memberId,\n memberMessagingParticipation\n) => {\n const isShopItem = item.listing.itemType === 'Shopitem';\n const common = commonActions(item);\n\n const translationKeys = {\n shareHeader: 'myt_shareHeader',\n shareMailSubject: 'myt_shareViaMailSubject',\n shareMailBody: 'myt_shareViaMailBody',\n sharePinterestDescription: 'myt_shareViaPinterestDescription',\n shareLinkText: 'myt_shareLink'\n };\n\n const actions = [\n () => ({\n id: getId(item),\n type: isShopItem ? types.DISABLED : types.LINK,\n tooltip: isShopItem\n ? 'Använd Sello för att ändra butiksannonser'\n : null,\n label: 'Ändra',\n getTranslatedLabel: t => t('myt_itemCard_actions_update'),\n url: `/selling/edit/${item.itemId}`,\n gaLabel: isShopItem\n ? 'EditShopItem'\n : item.bidInformation.bidCount === 0\n ? 'EditItem'\n : 'AddText',\n isVisible: () => true,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dela',\n getTranslatedLabel: t => t('myt_itemCard_actions_share'),\n gaLabel: 'ShareActiveSellingItem',\n isVisible: () => true,\n isPrimaryAction: () => false,\n dispatch: (dispatch, _props, preferredLanguageCode) => {\n const shareLinkHref = toLocalizedUrl(\n new URL(item.itemUrl, window.location.origin).href,\n preferredLanguageCode\n );\n dispatch(\n openShareModal({\n shareLinkHref,\n translationKeys,\n shareTitle: item.listing.shortDescription,\n shareImageUrl: item.listing.images.main.full\n })\n );\n }\n }),\n common.sellSimilar,\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Kontakta högstbjudande',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_contactHighestBidder'),\n dispatch: dispatch => {\n const recipientId = item.seller.id;\n const src = getMessagingThreadLink(\n recipientId,\n item.bidInformation.leadingBidder &&\n item.bidInformation.leadingBidder.id,\n item.itemId,\n {\n traderaUserId: recipientId,\n singleThread: true,\n openForm: true,\n source: 'contact_highest_bidder'\n }\n );\n const title = 'Kontakta högstbjudande';\n dispatch(\n uiActions.openMessagingModal({\n title,\n src,\n recipientId,\n item\n })\n );\n },\n gaLabel: 'ContactHighestBidder',\n isVisible: () => {\n return (\n featureToggles.isMessagingEnabled &&\n featureToggles.isMessagingBuyerButtonsEnabled &&\n memberMessagingParticipation &&\n item.bidInformation.bidCount > 0\n );\n },\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Kontakta högstbjudande',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_contactHighestBidder'),\n dispatch: (dispatch, props) => {\n dispatch(\n myTraderaItemActions.contactHighestBidder(\n item,\n props.sellerEmail\n )\n );\n },\n gaLabel: 'ContactHighestBidder',\n isVisible: () => {\n return (\n (!featureToggles.isMessagingEnabled ||\n !featureToggles.isMessagingBuyerButtonsEnabled ||\n !memberMessagingParticipation) &&\n item.bidInformation.bidCount > 0\n );\n },\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Avbryt annons',\n getTranslatedLabel: t => t('myt_itemCard_actions_cancelItem'),\n dispatch: dispatch => {\n dispatch(myTraderaItemActions.cancelItem(item));\n },\n gaLabel: 'EndItem',\n isVisible: () => item.bidInformation.bidCount === 0,\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n\nexport const unsoldActions = (item, listViewType, memberId) => {\n const actions = [\n () => ({\n id: getId(item),\n type: types.LINK,\n label: item.listing.restart.hasRestartedChild\n ? 'Sälj liknande'\n : 'Lägg upp igen',\n getTranslatedLabel: t =>\n item.listing.restart.hasRestartedChild\n ? t('myt_itemCard_actions_sellSimilar')\n : t('myt_itemCard_actions_restart'),\n url: item.listing.restart.hasRestartedChild\n ? `/selling/sell-similar/${item.itemId}`\n : `/selling/restart/${item.itemId}`,\n gaLabel: 'Restart',\n isVisible: () => true,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellerHideUnsold(\n getIds(item),\n listViewType\n )\n );\n },\n gaLabel: 'HideUnsold',\n isVisible: () =>\n !item.transaction && !item.hiddenByMember?.includes(memberId),\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Visa',\n getTranslatedLabel: t => t('myt_itemCard_actions_show'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.sellerUnhideUnsold(\n getIds(item),\n listViewType\n )\n );\n },\n gaLabel: 'UnhideUnsold',\n isVisible: () =>\n !item.transaction && item.hiddenByMember?.includes(memberId),\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n","import myTraderaItemActions from '../state/actions/my-tradera-items';\nimport { openModal as openMyTraderaModal } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport purchaseOrderActions from '../state/actions/purchase-order';\nimport featureToggles from '../utils/feature-toggles';\nimport { getMessagingThreadLink } from './messaging-helpers';\nimport uiActions, { openModal } from 'tradera-state/ui/actions';\nimport { SINGLE_FEEDBACK_DIALOG_ID } from '../components/leave-feedback/single-feedback-dialog';\nimport { isNormalListViewType } from './item-helper';\nimport { showSuccessToast } from 'tradera-services/toasts';\n\nexport const types = {\n LINK: 'LINK',\n EXTERNAL_LINK: 'EXTERNAL_LINK',\n DISPATCH: 'DISPATCH'\n};\n\nconst getId = item => item.key;\nconst getIds = item => [item.itemId];\n\nconst fixItemUrlIfNeeded = (item = {}) => {\n // Fix this at backend?\n return item.itemUrl && item.itemUrl[0] !== '/'\n ? `/${item.itemUrl}`\n : item.itemUrl;\n};\n\nconst showModal = translationKey => {\n return openMyTraderaModal({\n bulkAction: 'MytListInfo',\n modal: {\n cssClass: 'fixed',\n icon: 'check',\n isSingleButton: true,\n getTranslatedMessage: t => t(translationKey)\n }\n });\n};\n\n// isPrimaryAction = will be primary action unless one before has not already been set as primary action\n// Hence, the order of the actions matter.\nconst commonActions = item => {\n const actions = {\n itemsFromSeller: () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Säljarens annonser',\n getTranslatedLabel: t => t('myt_itemCard_actions_itemsFromSeller'),\n url: `/profile/items/${item.seller.id}/${item.seller.cleanedAlias}`,\n gaLabel: 'SellerOtherItems',\n isVisible: () => !item.haveMultipleRows,\n isPrimaryAction: () => true\n })\n };\n return actions;\n};\n\nexport const activeBuyerActions = (item, listViewType, memberId) => {\n const common = commonActions(item);\n const actions = [\n () => {\n const isLeading =\n item.bidInformation &&\n item.bidInformation.leadingBidder &&\n item.bidInformation.leadingBidder.id === memberId;\n const fixedItemUrl = fixItemUrlIfNeeded(item);\n return {\n id: getId(item),\n type: types.LINK,\n label: isLeading ? 'Öka maxbud' : 'Lägg bud',\n getTranslatedLabel: t =>\n isLeading\n ? t('myt_itemCard_actions_raiseMaxBid')\n : t('myt_itemCard_actions_placeBid'),\n url: fixedItemUrl,\n gaLabel: isLeading ? 'RaiseMaxBid' : 'PlaceBid',\n buttonTheme: 'success',\n isVisible: () => true,\n isPrimaryAction: () => true\n };\n },\n common.itemsFromSeller,\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.buyerActiveItemsHideItems(\n getIds(item),\n listViewType\n )\n );\n },\n gaLabel: 'HideBuyerActiveItem',\n isVisible: () =>\n (item.caller.leadingBidRemoved ||\n (item.bidInformation.leadingBidder &&\n item.bidInformation.leadingBidder.id !== memberId)) &&\n item.caller.hidden === false,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Visa',\n getTranslatedLabel: t => t('myt_itemCard_actions_show'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.buyerActiveItemsShowItems(\n getIds(item),\n listViewType\n )\n );\n },\n gaLabel: 'ShowBuyerActiveItem',\n isVisible: () => item.caller.hidden === true, // User should always be able to Show a hidden item, no matter if leading or not\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n\nexport const boughtActions = (item, listViewType, memberId) => {\n const common = commonActions(item);\n const actions = [\n () => ({\n id: getId(item),\n type: item.transaction.isPaymentExpired\n ? types.DISPATCH\n : types.LINK,\n label: 'Betala',\n getTranslatedLabel: t => t('myt_itemCard_actions_pay'),\n dispatch: dispatch => {\n dispatch(showModal('myt_orderinfo_paymentExpired'));\n },\n url: `/Shopping/Checkout/SelectPayment?purchaseOrderId=${item.transaction.purchaseOrderId}`,\n gaLabel: 'Pay',\n buttonTheme: 'success',\n isVisible: () =>\n !item.transaction.buyerState.paid && !item.haveMultipleRows,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Markera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_markAsPaid'),\n dispatch: dispatch => {\n if (item.transaction.isPaymentExpired) {\n return dispatch(showModal('myt_orderinfo_paymentExpired'));\n }\n showSuccessToast('siteWideNotifications_orderMarkedAsPaid');\n dispatch(\n myTraderaItemActions.markPurchaseOrdersAsPaidByBuyer(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n );\n },\n gaLabel: 'MarkAsPaid',\n isVisible: () =>\n !item.transaction.isPaidWithIntegratedPaymentOption &&\n !item.transaction.buyerState.paid &&\n !item.haveMultipleRows,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Avmarkera som betald',\n getTranslatedLabel: t => t('myt_itemCard_actions_unmarkAsPaid'),\n dispatch: dispatch =>\n dispatch(\n myTraderaItemActions.unmarkPurchaseOrdersAsPaidByBuyer(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n ),\n gaLabel: 'UnmarkAsPaid',\n isVisible: () =>\n !item.transaction.isPaidWithIntegratedPaymentOption &&\n item.transaction.buyerState.paid &&\n !item.transaction.isPaymentExpired &&\n !item.haveMultipleRows,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Lämna omdöme',\n getTranslatedLabel: t => t('myt_itemCard_actions_leaveFeedback'),\n dispatch: dispatch => {\n dispatch(\n featureToggles.isLeaveFeedbackReactEnabled\n ? openModal({\n modalId: SINGLE_FEEDBACK_DIALOG_ID,\n data: {\n transactionId: item.transaction.transactionId\n }\n })\n : myTraderaItemActions.buyingLeaveFeedback(\n item,\n listViewType\n )\n );\n },\n gaLabel: 'LeaveFeedbackOnSeller',\n isVisible: () =>\n !item.transaction.buyerState.feedbackLeft &&\n !item.haveMultipleRows,\n isPrimaryAction: () => !item.haveMultipleRows\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Orderbekräftelse',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_orderConfirmation'),\n url: `/Shopping/OrderConfirmation?purchaseOrderId=${item.transaction.purchaseOrderId}`,\n gaLabel: 'OrderConfirmation',\n isVisible: () =>\n !featureToggles.isBuyerOrderInformationEnabled &&\n !item.haveMultipleRows,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Orderinformation',\n getTranslatedLabel: t => t('myt_itemCard_actions_orderInformation'),\n url: `/my/order/${item.transaction.purchaseOrderId}`,\n gaLabel: 'OrderInformation',\n isVisible: () =>\n featureToggles.isBuyerOrderInformationEnabled &&\n !item.haveMultipleRows,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Kontakta säljare',\n getTranslatedLabel: t => t('myt_itemCard_actions_contactSeller'),\n dispatch: dispatch => {\n const src = getMessagingThreadLink(\n item.seller.id,\n memberId,\n item.itemId,\n {\n traderaUserId: item.seller.id,\n singleThread: true,\n openForm: true,\n source: 'contact_seller'\n }\n );\n const title = 'Kontakta säljare';\n const recipientId = item.seller.id;\n dispatch(\n uiActions.openMessagingModal({\n title,\n src,\n recipientId,\n item\n })\n );\n },\n gaLabel: 'ContactSeller',\n isVisible: () =>\n featureToggles.isMessagingEnabled &&\n featureToggles.isMessagingSellerButtonsEnabled &&\n !item.haveMultipleRows,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.EXTERNAL_LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `${item.transaction.trackingLink}`,\n gaLabel: 'BuyerTrackShipment',\n isVisible: () =>\n !item.haveMultipleRows &&\n !featureToggles.isBuyerOrderInformationEnabled &&\n !!item.transaction.trackingLink,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Spåra paket',\n getTranslatedLabel: t => t('myt_itemCard_actions_trackShipment'),\n url: `/my/order/${item.transaction.purchaseOrderId}#shipping`,\n gaLabel: 'BuyerTrackShipment',\n isVisible: () =>\n !item.haveMultipleRows &&\n featureToggles.isBuyerOrderInformationEnabled &&\n !!item.transaction.trackingLink,\n isPrimaryAction: () => true\n }),\n common.itemsFromSeller,\n () => ({\n // \"INR\" = \"Item Not Received\"\n id: getId(item),\n type: types.LINK,\n label: 'Anmäl utebliven vara',\n getTranslatedLabel: t =>\n t('myt_itemCard_actions_reportItemNotReceived'),\n url: isNormalListViewType(listViewType)\n ? `/resolution/INR2/${item.transaction.purchaseOrderId}`\n : `/resolution/INR/${item.transaction.transactionId}`,\n gaLabel: 'ReportItemNotReceived',\n isVisible: () =>\n !(\n featureToggles.isDisputesEntranceEnabled &&\n item.transaction.hasBuyerProtection\n ) && !item.transaction.buyerState.inr,\n isPrimaryAction: () => !item.haveMultipleRows\n }),\n () => ({\n id: getId(item),\n type: types.LINK,\n label: 'Anmäl utebliven vara',\n getTranslatedLabel: t => t('myt_itemCard_actions_createDispute'),\n url: `/resolution/disputes/${item.transaction.transactionId}`,\n gaLabel: 'CreateDispute',\n isVisible: () =>\n featureToggles.isDisputesEntranceEnabled &&\n item.transaction.hasBuyerProtection &&\n !item.transaction.dispute,\n isPrimaryAction: () => !item.haveMultipleRows\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Ångra dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_unhide'),\n dispatch: dispatch => {\n dispatch(\n isNormalListViewType(listViewType)\n ? purchaseOrderActions.updatePurchaseOrderHiddenForBuyer(\n item.transaction.purchaseOrderId,\n [item.transaction.transactionId],\n false,\n listViewType\n )\n : myTraderaItemActions.buyerUnhideTransaction(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'UnhideSold',\n isVisible: () =>\n isNormalListViewType(listViewType)\n ? !item.haveMultipleRows &&\n item.transaction?.buyerState.hidden\n : item.transaction.buyerState.hidden,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch => {\n dispatch(\n isNormalListViewType(listViewType)\n ? purchaseOrderActions.updatePurchaseOrderHiddenForBuyer(\n item.transaction.purchaseOrderId,\n [item.transaction.transactionId],\n true,\n listViewType\n )\n : myTraderaItemActions.buyerHideTransaction(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'HideSold',\n isVisible: () =>\n isNormalListViewType(listViewType)\n ? !item.haveMultipleRows &&\n !item.transaction?.buyerState.hidden\n : !item.transaction.buyerState.hidden,\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n\nexport const lostActions = (item, listViewType) => {\n const common = commonActions(item);\n const actions = [\n common.itemsFromSeller,\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Dölj',\n getTranslatedLabel: t => t('myt_itemCard_actions_hide'),\n dispatch: dispatch => {\n dispatch(\n myTraderaItemActions.buyerActiveItemsHideItems(\n getIds(item),\n listViewType\n )\n );\n },\n gaLabel: 'HideBuyerLostItem',\n isVisible: () => true,\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n","import {\n activeSellerActions,\n soldActions,\n unsoldActions\n} from '../../helpers/item-actions-helper-seller';\nimport {\n activeBuyerActions,\n boughtActions,\n lostActions\n} from '../../helpers/item-actions-helper-buyer';\nimport { PAGE_NAMES } from '../../constants/page';\nimport { logger } from 'packages/logger';\n\nexport const getActionsForItem = (\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n) => {\n const secondaryActions = [];\n let primaryAction = null;\n\n const checkAndAdd = action => {\n try {\n if (!action.isVisible) {\n throw 'Action is not compatible: ' + action.label;\n }\n if (!action.isVisible()) {\n return;\n }\n if (primaryAction === null && action.isPrimaryAction()) {\n // eslint-disable-next-line better-mutation/no-mutation\n primaryAction = action;\n } else {\n secondaryActions.push(action);\n }\n } catch (error) {\n logger(error);\n }\n };\n\n const resolveActions = potentialActions => {\n potentialActions.forEach(actionCreator => {\n const action = actionCreator();\n checkAndAdd(action);\n });\n return {\n primaryAction,\n secondaryActions\n };\n };\n\n let actionsForItem = [];\n switch (pageName) {\n case PAGE_NAMES.BuyerActiveItems:\n actionsForItem = resolveActions(\n activeBuyerActions(item, listViewType, memberId)\n );\n break;\n case PAGE_NAMES.BuyerPurchases:\n actionsForItem = resolveActions(\n boughtActions(item, listViewType, memberId)\n );\n break;\n case PAGE_NAMES.BuyerItemsLost:\n actionsForItem = resolveActions(lostActions(item, listViewType));\n break;\n case PAGE_NAMES.SellerSold:\n actionsForItem = resolveActions(\n soldActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation\n )\n );\n break;\n case PAGE_NAMES.SellerUnsold:\n actionsForItem = resolveActions(\n unsoldActions(item, listViewType, memberId)\n );\n break;\n case PAGE_NAMES.SellerActive:\n actionsForItem = resolveActions(\n activeSellerActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation\n )\n );\n break;\n default:\n throw 'Actions for item and pageName ' +\n pageName +\n ' is not defined';\n }\n return actionsForItem;\n};\n","import {\n getBuyerActiveItemsLabel,\n getBuyerItemsLostLabel,\n getActiveLabel,\n getSoldLabel,\n getUnsoldLabel,\n getPurchasesLabel\n} from './item-labels';\nimport { getActionsForItem } from './item-actions';\n\nimport { getColumns } from './item-columns';\nimport {\n buyerActiveItemsColumns,\n buyerPurchasesColumns,\n buyerItemsLostColumns,\n sellerActiveColumns,\n sellerSoldColumns,\n sellerUnsoldColumns\n} from './../../constants/column-definitions';\nimport { logger } from 'packages/logger';\nimport { PAGE_NAMES } from '../../constants/page';\n\n/**\n * @param {boolean} declares if response is incorrect;\n */\nconst hasIncorrectResponse = response =>\n !response ||\n response === null ||\n response === undefined ||\n typeof response === 'string';\n\n/**\n * @param {object} response - copy of the response with empty values;\n */\nconst createReturnObject = response => ({\n paging: response.paging,\n itemsOrderedByID: [],\n itemsByID: {},\n statistics: response.statistics,\n currentTime: response.currentTime,\n currentMemberId: response.currentMemberId,\n sellerEmail: response.sellerEmail || ''\n});\n\n/**\n * TODO\n * Describe the relationship of transactionID / PurchaseID for future developers;\n *\n * @param {object} item - the item from webApi\n * @returns {object} The single item transformed with all properties set as expected for the front end.\n * @desc - the purchase\n */\nconst getItem = (\n item,\n labelFunc,\n columnFunc,\n listType,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n) => ({\n ...item,\n key: item.transaction ? item.transaction.transactionId : item.itemId,\n bidInformation: {\n ...item.bidInformation,\n hasBids: item.bidInformation.bidCount > 0\n },\n label: labelFunc(item, memberId),\n actions: getActionsForItem(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n ),\n columns: columnFunc(item, listType),\n shippingPrice: getCheapestShippingPrice(item),\n leadingBidder:\n item.bidInformation.leadingBidder && item.isActive\n ? item.bidInformation.leadingBidder\n : null,\n buyer:\n item.transaction && item.transaction.buyer\n ? item.transaction.buyer\n : null,\n itemUrl:\n item.itemUrl.substring(0, 1) === '/' ? item.itemUrl : `/${item.itemUrl}`\n});\n\nconst getCheapestShippingPrice = item => {\n const shippingOptions = (item.listing.shippingOptions || [])\n .filter(\n option =>\n option.shippingType !== 'Takeaway' &&\n option.shippingType !== 'TakeawayOnly'\n )\n .map(({ shippingCost }) => shippingCost);\n\n return shippingOptions.length\n ? shippingOptions.reduce((prev, current) =>\n prev < current ? prev : current\n )\n : 0;\n};\n\n/**\n * @returns {Object} : Defines which labels and actions are used for each page\n */\nconst actionLabelMap = {\n [PAGE_NAMES.BuyerActiveItems]: {\n label: getBuyerActiveItemsLabel,\n columns: buyerActiveItemsColumns,\n pageName: PAGE_NAMES.BuyerActiveItems\n },\n [PAGE_NAMES.BuyerPurchases]: {\n label: getPurchasesLabel,\n columns: buyerPurchasesColumns,\n pageName: PAGE_NAMES.BuyerPurchases\n },\n [PAGE_NAMES.BuyerItemsLost]: {\n label: getBuyerItemsLostLabel,\n columns: buyerItemsLostColumns,\n pageName: PAGE_NAMES.BuyerItemsLost\n },\n [PAGE_NAMES.SellerActive]: {\n label: getActiveLabel,\n columns: sellerActiveColumns,\n pageName: PAGE_NAMES.SellerActive\n },\n [PAGE_NAMES.SellerSold]: {\n label: getSoldLabel,\n columns: sellerSoldColumns,\n pageName: PAGE_NAMES.SellerSold\n },\n [PAGE_NAMES.SellerUnsold]: {\n label: getUnsoldLabel,\n columns: sellerUnsoldColumns,\n pageName: PAGE_NAMES.SellerUnsold\n }\n};\n\nconst getSoldItem = (item, listViewType, messagingParticipation = false) =>\n getItem(\n item,\n getSoldLabel,\n getColumns(sellerSoldColumns[listViewType], listViewType),\n actionLabelMap[PAGE_NAMES.SellerSold].columns[listViewType],\n listViewType,\n '',\n messagingParticipation,\n PAGE_NAMES.SellerSold\n );\nconst getUnsoldItem = (item, listViewType) =>\n getItem(\n item,\n getUnsoldLabel,\n getColumns(sellerUnsoldColumns[listViewType], listViewType),\n actionLabelMap[PAGE_NAMES.SellerUnsold].columns[listViewType],\n listViewType,\n '',\n false,\n PAGE_NAMES.SellerUnsold\n );\nconst getPurchasedItem = (item, listViewType) =>\n getItem(\n item,\n getPurchasesLabel,\n getColumns(buyerPurchasesColumns[listViewType], listViewType),\n actionLabelMap[PAGE_NAMES.BuyerPurchases].columns[listViewType],\n listViewType,\n '',\n true,\n PAGE_NAMES.BuyerPurchases\n );\n\n/**\n * @param {object} response - from webApi\n * @param {string} listViewType\n * @param {string} memberId\n * @param {boolean} memberMessagingParticipation\n * @param {string} pageName\n * @description creates an ordered list of items, with ui state set for frontend;\n */\nconst getItemsInOrder = (\n response,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n) => {\n if (!actionLabelMap[pageName]) {\n try {\n throw actionLabelMap[pageName];\n } catch (e) {\n logger(e);\n }\n }\n const newItems = createReturnObject(response);\n if (hasIncorrectResponse(response)) {\n return newItems;\n }\n\n Object.keys(response.items).forEach(key => {\n const item = response.items[key];\n let id = 1;\n switch (pageName) {\n case PAGE_NAMES.BuyerActiveItems:\n case PAGE_NAMES.BuyerItemsLost:\n case PAGE_NAMES.SellerUnsold:\n case PAGE_NAMES.SellerActive:\n id = item.itemId.toString();\n break;\n case PAGE_NAMES.BuyerPurchases:\n case PAGE_NAMES.SellerSold:\n id = item.transaction.transactionId.toString();\n break;\n default:\n try {\n throw `trying to update state on undefined (${pageName}) pageName`;\n } catch (e) {\n logger(e);\n }\n }\n newItems.itemsOrderedByID.push(id);\n // eslint-disable-next-line better-mutation/no-mutation\n newItems.itemsByID[id] = getItem(\n item, //item,\n actionLabelMap[pageName].label, //labelFunc,\n getColumns(\n actionLabelMap[pageName].columns[listViewType],\n listViewType\n ), //columnFunc,\n actionLabelMap[pageName].columns[listViewType], //listType,\n listViewType, //listViewType,\n memberId, //memberId,\n memberMessagingParticipation, // memberMessagingParticipation\n actionLabelMap[pageName].pageName //pageName\n );\n });\n\n return newItems;\n};\n\nexport const getItemFromPurchaseOrderId = (items, purchaseOrderId) => {\n const { itemsByID } = items;\n const item = Object.keys(itemsByID).find(key => {\n const item = itemsByID[key];\n return item.transaction.purchaseOrderId === purchaseOrderId;\n });\n\n return item ? itemsByID[item] : null;\n};\n\nexport default {\n getSoldItem,\n getUnsoldItem,\n getItemsInOrder,\n getPurchasedItem,\n getItemFromPurchaseOrderId\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"animate-on-value-change\":\"animate-on-value-change--oN6-7\",\"animateOnValueChange\":\"animate-on-value-change--oN6-7\",\"animate\":\"animate--1oeJ_\"};","import React, { useEffect, useRef, useState } from 'react';\nimport styles from './animate-on-value-change.module.scss';\n\nexport const AnimateOnValueChange = ({ trigger, children }) => {\n const [animate, setAnimate] = useState(false);\n const firstUpdate = useRef(true);\n\n useEffect(() => {\n if (firstUpdate.current) {\n // eslint-disable-next-line better-mutation/no-mutation\n firstUpdate.current = false;\n return;\n }\n setAnimate(true);\n }, [trigger]);\n\n return (\n setAnimate(false)}>\n {children}\n \n );\n};\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 { useTranslator } from 'tradera-lang/translate';\nimport ShieldIcon from '@tradera/blueprint/theme/icons2/shield.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { InfoTooltip } from 'tradera-apps/syi/script/app_react/components/info-tooltip';\n\nconst BuyerProtectionInfo = ({ className }) => {\n const { t } = useTranslator();\n\n return (\n \n \n {t('payment_method_info_hasBuyerProtection')}\n \n }>\n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default BuyerProtectionInfo;\n","import React from 'react';\nimport { Router } from 'react-router';\nimport { getHistory } from 'tradera-utils/history';\nimport { hot } from 'react-hot-loader';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport { GeneralError } from 'tradera-components/errors/general-error';\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\n// Full SPA app with header, footer & everything\nfunction App() {\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 { touchWebClient, webApiClient } from 'tradera-utils/http';\n\nexport const createShipmentCheckout = async () =>\n webApiClient.post('/mytradera/shipmentcheckout/createshipmentcheckout');\n\nexport const deleteShipment = async shipmentId =>\n touchWebClient.post('/my/shipping/checkout/delete', { shipmentId });\n\nexport const getShippingOptions = (fromCountry, toCountry) =>\n webApiClient.get(\n `/selling/shipmentcheckout/shipping-products-for-country-by-weight-span?fromCountryCode=${fromCountry}&toCountryCode=${toCountry}`\n );\n\nexport const setShipmentDetails = async payload =>\n webApiClient.post('/mytradera/shipmentcheckout/shipment', {\n shippingDetails: payload\n });\n\nexport const setShippingAsBooked = async purchaseOrderId =>\n webApiClient.post('/member/selling/item-shipping-booked', {\n purchaseOrderId: purchaseOrderId,\n booked: true\n });\n\nexport const setShippingAsShipped = async purchaseOrderId =>\n webApiClient.post('/member/selling/item-shipped', {\n purchaseOrderId: purchaseOrderId,\n shipped: true\n });\n\nexport const getMemberSoldItemShippingInfo = purchaseOrderId =>\n webApiClient.get(\n `/member/selling/sold-item/shipping-info-v2/${purchaseOrderId}`\n );\n\nexport const getPaymentOptions = async shipmentCheckoutId =>\n webApiClient.get(\n `/mytradera/shipmentcheckout/shipmentpaymentoptions/${shipmentCheckoutId}`\n );\n\nexport const initializePayment = async formData =>\n webApiClient.post(\n '/mytradera/shipmentcheckout/initializeshipmentpaymentattempt',\n formData\n );\n\nexport const getPaymentStatus = async paymentAttemptId =>\n webApiClient.get(\n `/mytradera/shipmentcheckout/shipmentpaymentattemptstatus/${paymentAttemptId}`\n );\n\nexport const completePayment = async formData =>\n webApiClient.post(\n '/mytradera/shipmentcheckout/completeshipmentpaymentattempt',\n formData\n );\n\nexport const cancelPayment = async formData =>\n webApiClient.post(\n '/mytradera/shipmentcheckout/cancelshipmentpaymentattempt',\n formData\n );\n\nexport const getExternalAuthData = async paymentAttemptId =>\n webApiClient.get(\n `/mytradera/shipmentcheckout/shipmentpaymentattemptauthenticationdata/${paymentAttemptId}`\n );\n\nexport const getBraintreeToken = async ({\n shipmentCheckoutId,\n paymentOption\n}) =>\n webApiClient.get(\n `/mytradera/shipmentcheckout/shipmentbraintreeclienttoken/${shipmentCheckoutId}`,\n {\n params: {\n paymentMethod: paymentOption\n },\n withCredentials: true\n }\n );\n\n// Export object for Sinon stubbing\nconst getShippingConfirmation = shippingCheckoutId =>\n touchWebClient.get(`/my/shipping/confirmation/${shippingCheckoutId}/data`);\n\nconst getShippingConfirmationStatus = url => touchWebClient.get(url);\n\nexport default {\n createShipmentCheckout,\n deleteShipment,\n getShippingOptions,\n setShipmentDetails,\n setShippingAsBooked,\n setShippingAsShipped,\n getMemberSoldItemShippingInfo,\n getPaymentOptions,\n initializePayment,\n getPaymentStatus,\n completePayment,\n cancelPayment,\n getExternalAuthData,\n getBraintreeToken,\n getShippingConfirmation,\n getShippingConfirmationStatus\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.5 2V1c0-.6.4-1 1-1h4c.6 0 1 .4 1 1v1H14c.3 0 .5.2.5.5 0 .2-.2.4-.4.5h-.8l-1.8 12h-8L1.7 3H.9c-.3-.1-.4-.3-.4-.6.1-.2.3-.4.5-.4zm1 0h4V1h-4zM2.7 3l1.7 11h6.3l1.7-11z\"\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","/* 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 { useCallback, useState, useRef } from 'react';\nimport { useHistory, useLocation } from 'react-router';\nimport googleTagManagerService from 'app/ui/google-tagmanager-service';\nimport initData from 'init-data';\nimport { buildInitialGtmDataLayerFromInitData } from 'app/ui/google-tagmanager-helper';\n\nimport { getCurrentPageFromRoute } from 'tradera-helpers/get-current-page-helper';\nimport { isDev } from 'static/script/utils/environment';\nimport { useOnMount } from 'tradera-hooks/use-on-mount';\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(\n page.pageType,\n buildInitialGtmDataLayerFromInitData(initData)\n );\n // eslint-disable-next-line better-mutation/no-mutation\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 // eslint-disable-next-line better-mutation/no-mutation\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocalizedPriceFormatter } from 'tradera-localization/use-localized-price-formatter';\n\nconst LocalizedPrice = ({ className, price, renderZero }) => {\n const localizedPriceFormatter = useLocalizedPriceFormatter();\n\n if (!price && !(renderZero && price === 0)) {\n return null;\n }\n\n const formattedPrice = localizedPriceFormatter(price);\n\n return formattedPrice ? (\n {formattedPrice}\n ) : null;\n};\nLocalizedPrice.propTypes = {\n className: PropTypes.string,\n price: PropTypes.number,\n renderZero: PropTypes.bool\n};\n\nexport default LocalizedPrice;\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 title: t('searchSelect_allCategories'),\n shortName: t('searchSelect_allCategoriesShortName')\n };\n\n const optionDivider = {\n id: 0,\n title: '------------------'\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 // eslint-disable-next-line better-mutation/no-mutation\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 \n {chosenCategory.shortName\n ? chosenCategory.shortName\n : chosenCategory.title}\n \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/debounce';\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 topLevelCategories = [],\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 [...topLevelCategories, ...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 topLevelCategories,\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.map(\n ({ name, ...category }) => ({\n ...category,\n title: name\n })\n );\n discoverCurrentCategoryId = state.discover.currentCategoryId;\n discoverSearchTerm = state.discover.queryParams?.q || '';\n }\n\n return {\n topLevelCategories: state.categories.topLevelCategories,\n categoryPath,\n discoverCurrentCategoryId,\n queryParams: state.discover.queryParams,\n discoverSearchTerm\n };\n};\n\nSearch.propTypes = {\n inSPA: PropTypes.bool.isRequired,\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/analytics';\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","import { isServer } from 'tradera-utils/nextjs';\n\n// ATTENTION: This is only OK because initHold will never execute on server\nlet initialized = false;\n\nexport function initHolid(addTimestamp, useBeta) {\n if (isServer) {\n throw new Error(\n 'Do not run on server. Has global variables that are shared between all requests.'\n );\n }\n if (initialized) {\n return;\n }\n // eslint-disable-next-line better-mutation/no-mutation\n initialized = true;\n if (!window.holidAds) {\n let scriptTag = document.createElement('script');\n const timestamp = addTimestamp\n ? '?timestamp=' + getAlmostRandomId()\n : ''; // Using timestamp parameter will always use latest HolidAd.js. This will slow down loading of ads\n const url = useBeta\n ? `https://ads.holid.io/auto/beta.tradera.com/holid.js${timestamp}`\n : `https://ads.holid.io/auto/tradera.com/holid.js${timestamp}`;\n scriptTag.src = url;\n scriptTag.async = true;\n scriptTag.type = 'text/javascript';\n\n scriptTag.onerror = function scriptTagOnError(errors) {\n console.error('holidAds errors:', errors);\n };\n document.getElementsByTagName('head')[0].appendChild(scriptTag);\n if (useBeta) {\n console.log('Holid BETA initialized');\n }\n }\n}\n\nexport const getAdClass = adFormats => {\n const adFormat = adFormats.split(',');\n switch (adFormat[0]) {\n case 'wide_skyscraper': // wide_skyscraper: [[160, 600]],\n case 'half_page': // half_page: [[300, 600],[250, 600]],\n return 'tower'; //300x600 + 300x250\n case 'medium_rectangle': // medium_rectangle: [[300, 250]],\n case 'mobile_rectangle': // mobile_rectangle: [[320, 320]],\n case 'mobile_wideboard': // mobile_wideboard: [[320, 160]]\n return 'mobile'; // 320x320 + 300x250\n case 'panorama': // panorama: [[980, 240], [980, 160], [980, 120], [970, 250], 'fluid'],\n return 'widescreen'; // 980x240 + 980x120\n default:\n console.error('Invalid adformat for Holid ads', adFormats);\n return '';\n }\n};\n\nexport const getAdSize = adFormats => {\n const adClass = getAdClass(adFormats);\n switch (adClass) {\n case 'tower':\n return [300, 600];\n case 'mobile':\n return [320, 320];\n case 'widescreen':\n return [980, 240];\n default:\n console.error('Invalid adformat for Holid ads', adFormats);\n return [0, 0];\n }\n};\n\nexport const getAlmostRandomId = () => {\n let seed = 0;\n if (window.performance && window.performance.now) {\n seed = Math.random(window.performance.now());\n } else {\n seed = Math.random(new Date().getMilliseconds());\n }\n return Math.floor(Math.random(seed) * (1000000 - 0) + 0);\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { initHolid } from './holid-ad-helper';\nimport { useSelector } from 'react-redux';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\n\nconst HolidAd = ({ id, adClass }) => {\n const { environment } = useSelector(state => state.environment);\n const isTestEnvironment = environment === 'test';\n const isHolidBetaTest = useIsFeatureEnabled('ads-holid-beta-test');\n\n useEffect(() => {\n initHolid(isTestEnvironment, isHolidBetaTest);\n }, [isTestEnvironment, isHolidBetaTest]);\n\n return
    ;\n};\n\nHolidAd.propTypes = {\n id: PropTypes.string,\n adClass: PropTypes.string\n};\n\nexport default HolidAd;\n","// extracted by mini-css-extract-plugin\nexport default {\"holid-ad\":\"holid-ad--2okPh\",\"holidAd\":\"holid-ad--2okPh\",\"holid-ad-loaded\":\"holid-ad-loaded--GKn8Y\",\"holidAdLoaded\":\"holid-ad-loaded--GKn8Y\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getAdSize, getAdClass, getAlmostRandomId } from './holid-ad-helper';\nimport HolidAd from './holid-ad';\nimport styles from './holid-ad.module.scss';\n\nconst HolidAdWrapper = ({ adFormats, text, className }) => {\n const adClass = getAdClass(adFormats);\n const adSize = getAdSize(adFormats);\n const id = `${getAlmostRandomId()}-${adClass}`;\n return (\n \n \n
    \n );\n};\n\nHolidAdWrapper.propTypes = {\n className: PropTypes.string,\n adFormats: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired\n};\n\nHolidAdWrapper.defaultProps = {\n text: 'Annons'\n};\n\nexport default HolidAdWrapper;\n","import React from 'react';\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 { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\nimport HolidAdWrapper from './holid-ad-wrapper';\n\nexport const LocalizedDfpAd = props => {\n const { t } = useTranslator();\n const isCriteoDirectBidderEnabled = useIsFeatureEnabled(\n 'ads-criteo-direct-bidder'\n );\n const isHolidAdsEnabled = useIsFeatureEnabled('ads-holid');\n const text = {\n label: t('dfpAd_label')\n };\n\n const adComponent = isHolidAdsEnabled ? (\n \n ) : (\n \n );\n return (\n \n adComponent}\n />\n \n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocalizedPriceFormatter } from 'tradera-localization/use-localized-price-formatter';\n\nconst PriceLabel = ({\n tagName: TagName,\n className,\n price,\n hasDiscount,\n renderZero\n}) => {\n const localizedPriceFormatter = useLocalizedPriceFormatter();\n\n if (!price && !(renderZero && price === 0)) {\n return null;\n }\n\n const formattedPrice = localizedPriceFormatter(price);\n\n return formattedPrice ? (\n \n {formattedPrice}\n \n ) : null;\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 { createSlice } from '@reduxjs/toolkit';\nimport { isDenmarkCountryCode } from 'tradera-localization/countrycode';\nimport initData from 'init-data';\n\nconst initialState = {\n shortDescription: null,\n validationError: null,\n descriptionLanguageCodeIso2: null,\n isDescriptionLanguageCodeIso2ChangeAvailable:\n initData &&\n initData.memberCountryCodeIso2 &&\n isDenmarkCountryCode(initData.memberCountryCodeIso2) &&\n initData.featureSwitches &&\n initData.featureSwitches['danish-description']\n};\n\nconst getValidationError = state => {\n if (!state.shortDescription || state.shortDescription.trim() === '') {\n return 'syi_validation_missing_title';\n }\n\n if (\n state.isDescriptionLanguageCodeIso2ChangeAvailable &&\n !state.descriptionLanguageCodeIso2\n ) {\n return 'syi_validation_missing_descriptionLanguageCodeIso2';\n }\n};\n\nconst validate = state => ({\n ...state,\n validationError: getValidationError(state)\n});\n\nconst shortDescriptionSlice = createSlice({\n name: 'shortDescription',\n initialState,\n reducers: {\n setShortDescription: (state, action) =>\n validate({ ...state, shortDescription: action.payload }),\n resetShortDescription: state =>\n validate({ ...state, shortDescription: null }),\n setDescriptionLanguageCodeIso2: (state, action) =>\n validate({\n ...state,\n descriptionLanguageCodeIso2: action.payload\n })\n }\n});\n\nexport const {\n setShortDescription,\n resetShortDescription,\n setDescriptionLanguageCodeIso2\n} = shortDescriptionSlice.actions;\n\nexport default shortDescriptionSlice.reducer;\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 {children && (\n
    \n {children}\n
    \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","import { formatUtcDateAsSwedishTimeZoneDate } from 'tradera-utils/date';\nimport { PAGE_LIST_TYPES } from '../../constants/list-types';\n\nconst isTakeaway = shippingType => {\n return shippingType === 'Takeaway' || shippingType === 'TakeawayOnly';\n};\n\nconst getSoldItemStateFor = sellerState => {\n if (sellerState.shipped && sellerState.feedbackLeft) {\n return 'Done';\n }\n if (sellerState.shipped) {\n return 'Shipped';\n }\n return sellerState.paid ? 'Paid' : 'NotPaid';\n};\n\nexport const initialPayloadItems = (data, listType, dayjs) => {\n return data.purchaseOrders\n .map(purchaseOrder =>\n purchaseOrder.rows.map(row => ({\n ...row,\n caller: {},\n haveMultipleRows: purchaseOrder.rows.length > 1,\n haveCombinedShipping: !!purchaseOrder.combinedShippingInformation,\n isArchived: purchaseOrder.state.isArchived,\n key: row.listing.itemId,\n itemId: row.listing.itemId,\n itemUrl: row.listing.itemUrl,\n listing: {\n ...row.listing,\n restart: {},\n endDate: {\n formatted: formatUtcDateAsSwedishTimeZoneDate(\n row.listing.endDate,\n dayjs\n )\n }\n },\n bidInformation: {\n bidCount: row.buying.bidCount\n },\n seller: {\n ...purchaseOrder.sellerMember,\n id: purchaseOrder.sellerMember.memberId\n },\n transaction: {\n ...row.transaction,\n ...(purchaseOrder.shipping.selectedShipping\n ? {\n selectedShipping: {\n ...purchaseOrder.shipping.selectedShipping,\n isTakeaway: isTakeaway(\n purchaseOrder.shipping.selectedShipping\n .shippingType\n )\n }\n }\n : null),\n ...(purchaseOrder.shipping.shippingDiscount\n ? {\n shippingDiscount: {\n ...purchaseOrder.shipping.shippingDiscount,\n isTakeaway: isTakeaway(\n purchaseOrder.shipping.shippingDiscount\n .shippingType\n )\n }\n }\n : null),\n ...(purchaseOrder.shipping.shipping?.url\n ? {\n trackingLink: purchaseOrder.shipping.shipping?.url\n }\n : null),\n bookedShipment: {\n ...purchaseOrder.shipping.shipping\n },\n isPaymentExpired: purchaseOrder.state.isPaymentExpired,\n paidShipmentCheckoutId:\n purchaseOrder.shipping.shipping?.shipmentCheckoutId,\n shipmentId: purchaseOrder.shipping.shipping?.shipmentId,\n hasUnpaidShipping: purchaseOrder.state.hasUnpaidShipping,\n isRefundAllowed: purchaseOrder.state.isRefundAllowed,\n isDiscountAllowed: purchaseOrder.state.isDiscountAllowed,\n isPaidWithIntegratedPaymentOption:\n purchaseOrder.state.isPaidWithIntegratedPayment,\n purchaseOrderId: purchaseOrder.purchaseOrderId,\n hasBuyerProtection:\n purchaseOrder.payment.hasBuyerProtection,\n ...(listType === PAGE_LIST_TYPES.BUYER_PURCHASES\n ? {\n buyerState: {\n ...row.transaction.sellerState,\n ...row.transaction.buyerState,\n paid:\n purchaseOrder.state.isPaid ||\n purchaseOrder.state.isMarkedAsPaidByBuyer,\n shippingBooked:\n purchaseOrder.state.isShippingBooked,\n shipped: purchaseOrder.state.isShipped,\n hidden: purchaseOrder.state.isHiddenForBuyer,\n inr: row.transaction.buyerState.isInrSubmitted\n }\n }\n : {\n sellerState: {\n upiSubmitted:\n purchaseOrder.state.isUpiSubmitted,\n dcsSubmitted:\n purchaseOrder.state.isDcsSubmitted,\n state: getSoldItemStateFor({\n ...row.transaction.sellerState,\n shipped: purchaseOrder.state.isShipped,\n paid: purchaseOrder.state.isPaid\n }),\n ...row.transaction.sellerState,\n paid: purchaseOrder.state.isPaid,\n shippingBooked:\n purchaseOrder.state.isShippingBooked,\n shipped: purchaseOrder.state.isShipped,\n hidden: purchaseOrder.state.isHiddenForSeller\n }\n }),\n transactionDate: {\n formatted: formatUtcDateAsSwedishTimeZoneDate(\n row.transaction.transactionDate,\n dayjs\n )\n },\n buyer: {\n ...purchaseOrder.buyerMember,\n id: purchaseOrder.buyerMember.memberId\n }\n }\n }))\n )\n .flatMap(row => row);\n};\n\nexport const initialPayloadPurchaseOrders = (data, page) => {\n return data.purchaseOrders.map(purchaseOrder => {\n return {\n ...purchaseOrder,\n shipping: {\n ...purchaseOrder.shipping,\n ...(purchaseOrder.shipping.selectedShipping\n ? {\n selectedShipping: {\n ...purchaseOrder.shipping.selectedShipping,\n isTakeaway: isTakeaway(\n purchaseOrder.shipping.selectedShipping\n .shippingType\n )\n }\n }\n : null),\n ...(purchaseOrder.shipping.shippingDiscount\n ? {\n shippingDiscount: {\n ...purchaseOrder.shipping.shippingDiscount,\n isTakeaway: isTakeaway(\n purchaseOrder.shipping.shippingDiscount\n .shippingType\n )\n }\n }\n : null)\n },\n transactionIds: purchaseOrder.rows.map(row => {\n return row.transaction.transactionId;\n }),\n itemsToGiveFeedBackTo: purchaseOrder.rows\n .map(row => {\n if (\n row.transaction[\n page.listType === PAGE_LIST_TYPES.BUYER_PURCHASES\n ? 'buyerState'\n : 'sellerState'\n ].feedbackLeft !== true\n ) {\n return row.transaction.transactionId;\n }\n return null;\n })\n .filter(Boolean)\n };\n });\n};\n","import {\n selectMyTraderaState,\n searching,\n error\n} from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport { selectFiltersState } from 'tradera-apps/my-tradera/app/state/selectors/filters';\nimport fetch from '../../utils/fetch';\nimport myTraderaItemsActions from './my-tradera-items';\nimport URLS from '../../constants/urls';\nimport { actionTypes } from '../action-types/purchase-order';\nimport {\n initialPayloadItems,\n initialPayloadPurchaseOrders\n} from '../../helpers/payloads/purchase-order';\nimport { showSuccessToast } from 'tradera-services/toasts';\nimport { scrollToInitialScroll } from 'tradera-apps/my-tradera/app/state/actions/scroll-to-initial-scroll';\nimport { webApiClient } from 'tradera-utils/http';\n\nconst resetPurchaseOrder = () => ({\n type: actionTypes.PURCHASE_ORDER_RESET\n});\n\nconst runPurchaseOrders = ({\n page,\n shouldScrollToInitialScroll = false,\n listViewType,\n waitForBackend = false,\n dontModifyHistory = true,\n dayjs\n}) => async (dispatch, getState) => {\n const endPoint = page.searchUrlNormalView;\n\n if (!endPoint) {\n return;\n }\n\n const state = getState();\n\n const currentMemberId = state.member.memberId;\n\n dispatch(searching(true));\n dispatch(error(false));\n dispatch(resetPurchaseOrder());\n dispatch(myTraderaItemsActions.resetMyTraderaItems());\n\n const search = async () => {\n try {\n const modifiersFromState = selectFiltersState(state).modifiers;\n const modifiers = {\n ...modifiersFromState,\n PageNumber: modifiersFromState.paging.page,\n PageSize: modifiersFromState.paging.size\n };\n\n const data = await fetch(endPoint, {\n body: JSON.stringify(\n myTraderaItemsActions.changeParamsForBackend(modifiers)\n )\n });\n\n dispatch({\n type: myTraderaItemsActions.actionTypes.UPDATE_ITEMS,\n payload: {\n value: {\n currentMemberId,\n items: initialPayloadItems(data, page.listType, dayjs)\n },\n page: page.pageName,\n listViewType,\n memberMessagingParticipation: selectMyTraderaState(state)\n .memberMessagingParticipation\n }\n });\n dispatch({\n type: actionTypes.PURCHASE_ORDER_LIST,\n payload: {\n paging: {\n from:\n modifiers.paging.size * (modifiers.paging.page - 1),\n page: modifiers.paging.page,\n size: modifiers.paging.size,\n totalPages: data.totalNumberOfPages,\n totalItems: data.totalNumberOfPurchaseOrders\n },\n purchaseOrders: initialPayloadPurchaseOrders(data, page),\n statistics: data.statistics\n }\n });\n\n if (shouldScrollToInitialScroll === true) {\n scrollToInitialScroll();\n }\n\n dispatch(error(false));\n return dispatch(searching(false));\n } catch (error) {\n dispatch(searching(false));\n if (dontModifyHistory === false) {\n myTraderaItemsActions.updateURL(\n dispatch,\n page.url,\n selectFiltersState(state).modifiers\n );\n }\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n };\n\n // This is a hack to enable delay of searches since sometimes when modifying an item\n // outside of the SPA world, it could take some time for the backend to catch up\n if (waitForBackend === true) {\n setTimeout(search, 3000);\n } else {\n search();\n }\n};\n\nconst updatePurchaseOrderShipped = (\n purchaseOrderId,\n listViewType,\n transactionIds,\n isShipped\n) => async dispatch => {\n dispatch(searching(true));\n try {\n dispatch(error(false));\n if (isShipped) {\n await fetch(URLS.MARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n });\n dispatch(\n myTraderaItemsActions.transactionsMarkAsShippedBySeller(\n transactionIds,\n listViewType\n )\n );\n } else {\n await fetch(URLS.UNMARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n });\n dispatch(\n myTraderaItemsActions.transactionsUnmarkAsShippedBySeller(\n transactionIds,\n listViewType\n )\n );\n }\n dispatch({\n type: actionTypes.PURCHASE_ORDER_SHIPPED,\n payload: {\n isShipped,\n purchaseOrderId\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst requestCombinedShippingPrice = (\n purchaseOrderId,\n hasBuyerRequestedCombinedShippingPrice\n) => async dispatch => {\n dispatch(searching(true));\n try {\n dispatch(error(false));\n\n await fetch(URLS.REQUEST_COMBINED_SHIPPING_PRICE, {\n body: JSON.stringify({\n purchaseOrderId,\n hasRequested: hasBuyerRequestedCombinedShippingPrice\n })\n });\n\n dispatch({\n type: actionTypes.PURCHASE_ORDER_REQUEST_COMBINED_SHIPPING,\n payload: {\n purchaseOrderId,\n hasBuyerRequestedCombinedShippingPrice\n }\n });\n\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst updatePurchaseOrderPaidByBuyer = (\n purchaseOrderId,\n listViewType,\n isMarkedAsPaidByBuyer\n) => async dispatch => {\n dispatch(searching(true));\n try {\n dispatch(error(false));\n if (isMarkedAsPaidByBuyer) {\n await fetch(URLS.BUYER_MARK_PAID, {\n body: JSON.stringify({ ids: [purchaseOrderId] })\n });\n dispatch(\n myTraderaItemsActions.purchaseOrdersMarkAsPaidByBuyer(\n [purchaseOrderId],\n listViewType\n )\n );\n } else {\n await fetch(URLS.BUYER_UNMARK_PAID, {\n body: JSON.stringify({ ids: [purchaseOrderId] })\n });\n dispatch(\n myTraderaItemsActions.purchaseOrdersUnmarkAsPaidByBuyer(\n [purchaseOrderId],\n listViewType\n )\n );\n }\n dispatch({\n type: actionTypes.PURCHASE_ORDER_PAID_BY_BUYER,\n payload: {\n isMarkedAsPaidByBuyer,\n purchaseOrderId\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst updatePurchaseOrderPaidBySeller = (\n purchaseOrderId,\n listViewType,\n memberMessagingParticipation,\n isPaid\n) => async dispatch => {\n dispatch(searching(true));\n try {\n dispatch(error(false));\n if (isPaid) {\n await fetch(URLS.SELLER_MARK_PAID, {\n body: JSON.stringify({ ids: [purchaseOrderId] })\n });\n dispatch(\n myTraderaItemsActions.purchaseOrdersMarkAsPaidBySeller(\n [purchaseOrderId],\n listViewType,\n memberMessagingParticipation\n )\n );\n showSuccessToast('siteWideNotifications_orderMarkedAsPaid');\n } else {\n await fetch(URLS.SELLER_UNMARK_PAID, {\n body: JSON.stringify({ ids: [purchaseOrderId] })\n });\n dispatch(\n myTraderaItemsActions.purchaseOrdersUnmarkAsPaidBySeller(\n [purchaseOrderId],\n listViewType,\n memberMessagingParticipation\n )\n );\n }\n dispatch({\n type: actionTypes.PURCHASE_ORDER_PAID_BY_SELLER,\n payload: {\n isPaid,\n purchaseOrderId\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst deleteShipment = (\n shipmentId,\n purchaseOrderId,\n listViewType\n) => async dispatch => {\n dispatch(searching(true));\n try {\n await fetch(URLS.DELETE_SHIPMENT, {\n body: JSON.stringify({ shipmentId: shipmentId })\n });\n dispatch(error(false));\n dispatch({\n type: actionTypes.PURCHASE_ORDER_DELETE_SHIPMENT,\n payload: {\n purchaseOrderId,\n listViewType\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst markAsShippingBooked = (\n purchaseOrderId,\n listViewType\n) => async dispatch => {\n dispatch(searching(true));\n webApiClient\n .post('/member/selling/item-shipping-booked', {\n purchaseOrderId,\n booked: true\n })\n .then(() => {\n dispatch(error(false));\n dispatch({\n type: actionTypes.PURCHASE_ORDERS_SHIPPING_BOOKED,\n payload: {\n purchaseOrderId,\n listViewType,\n isBooked: true\n }\n });\n dispatch(searching(false));\n return;\n })\n .catch(error => myTraderaItemsActions.handleError(dispatch, error));\n};\n\nconst updateShippingBooked = (\n purchaseOrderId,\n listViewType\n) => async dispatch => {\n dispatch(searching(true));\n try {\n await fetch(URLS.UNMARK_BOOKED, {\n body: JSON.stringify({ ids: [purchaseOrderId] })\n });\n dispatch(error(false));\n dispatch({\n type: actionTypes.PURCHASE_ORDERS_SHIPPING_BOOKED,\n payload: {\n purchaseOrderId,\n listViewType,\n isBooked: false\n }\n });\n dispatch(searching(false));\n } catch (error) {\n myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst feedbackLeftBySeller = (purchaseOrderId, submittables, listViewType) => {\n return {\n type: actionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_SELLER,\n payload: {\n submittables,\n purchaseOrderId,\n listViewType\n }\n };\n};\n\nconst feedbackLeftByBuyer = (purchaseOrderId, submittables, listViewType) => {\n return {\n type: actionTypes.PURCHASE_ORDERS_FEEDBACK_LEFT_BY_BUYER,\n payload: {\n purchaseOrderId,\n submittables,\n listViewType\n }\n };\n};\n\nconst updatePurchaseOrderHiddenForSeller = (\n purchaseOrderId,\n isHidden,\n listViewType\n) => async dispatch => {\n try {\n dispatch(searching(true));\n\n const action = isHidden\n ? myTraderaItemsActions.sellerHideTransaction\n : myTraderaItemsActions.sellerUnhideTransaction;\n\n dispatch(action([purchaseOrderId], listViewType));\n dispatch({\n type: actionTypes.PURCHASE_ORDER_HIDDEN,\n payload: {\n purchaseOrderId,\n listViewType\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nconst updatePurchaseOrderHiddenForBuyer = (\n purchaseOrderId,\n transactionIds,\n isHidden,\n listViewType\n) => async dispatch => {\n try {\n dispatch(searching(true));\n\n const action = isHidden\n ? myTraderaItemsActions.buyerHideTransaction\n : myTraderaItemsActions.buyerUnhideTransaction;\n\n dispatch(action(transactionIds, listViewType));\n dispatch({\n type: actionTypes.PURCHASE_ORDER_HIDDEN,\n payload: {\n purchaseOrderId,\n listViewType\n }\n });\n return dispatch(searching(false));\n } catch (error) {\n return myTraderaItemsActions.handleError(dispatch, error);\n }\n};\n\nexport default {\n feedbackLeftBySeller,\n feedbackLeftByBuyer,\n markAsShippingBooked,\n updateShippingBooked,\n deleteShipment,\n requestCombinedShippingPrice,\n updatePurchaseOrderShipped,\n updatePurchaseOrderPaidBySeller,\n updatePurchaseOrderPaidByBuyer,\n resetPurchaseOrder,\n runPurchaseOrders,\n updatePurchaseOrderHiddenForSeller,\n updatePurchaseOrderHiddenForBuyer\n};\n","import {\n formatQueryParams,\n stripItmFromQueryParameters,\n toQueryParameters\n} from 'tradera-utils/url';\nimport cookieUtil from 'tradera-utils/cookie';\n\nimport { setTcfLoaded, initialize, setAds } from './ads/actions';\nimport uiActions from './ui/actions';\nimport * as pushNotificationActions from './push-notifications/push-notifications-slice';\nimport { initializeFromInitData as initShippingRegion } from './shipping-region/actions';\nimport discoverActions from './discover/actions';\nimport { initEnvironment } from './environment/actions';\nimport { initialize as initLanguage } from './language/reducer';\nimport { initialize as initMember } from './member/actions';\nimport { initialize as initInitData } from './init-data/actions';\nimport { initialize as initMultiCurrency } from './multi-currency/reducer';\nimport itemsActions from './items/actions';\nimport pageActions from './page/actions';\n\n// Views\nimport * as viewItemActions from './views/view-item/reducer';\nimport { handleReportItemModel } from './views/report-item/actions';\nimport { initialize as initStartPage } from './views/start-page/reducer';\nimport { initialize as initTraderaShop } from './views/tradera-shop/actions';\nimport { initializeFromInitData as initializeUiFromInitData } from './ui/initial-state';\n\nexport const initializeState = initData => dispatch => {\n const { isLoggedIn, featureSwitches, currencies, currencyCode } = initData;\n if (initData?.itemNext) {\n // temporary compatibility fix during migration\n // from touchweb backend to nextjs/webapi\n // eslint-disable-next-line better-mutation/no-mutation\n initData.item = initData.itemNext;\n }\n\n const preferredCurrency = isLoggedIn\n ? currencyCode\n : cookieUtil.readCookie('preferred_currency');\n /**\n * handle tcf + gdpr loading\n */\n if (featureSwitches?.['quantcast-consent']) {\n window.addEventListener('tcfLoaded', function() {\n dispatch(setTcfLoaded());\n });\n } else {\n dispatch(setTcfLoaded());\n }\n dispatch(initializeUiFromInitData(initData));\n dispatch(pushNotificationActions.init());\n dispatch(initialize(initData));\n dispatch(initLanguage(initData));\n dispatch(initShippingRegion(initData));\n dispatch(initEnvironment(initData));\n dispatch(initMember(initData));\n dispatch(initInitData(initData));\n dispatch(\n initMultiCurrency({\n currencies,\n enabled: featureSwitches?.['multi-currency'],\n preferredCurrency\n })\n );\n dispatch(itemsActions.initialize(initData));\n dispatch(pageActions.initialize(initData));\n dispatch(initStartPage(initData));\n dispatch(initTraderaShop(initData));\n dispatch(uiActions.fetchSystemMessages());\n dispatch(discoverActions.initialize());\n\n /**\n * We hydrate the store with discover results from initData\n * this will be dispatched before any rendering to reduce the time from first byte to first render.\n */\n if (initData?.discoverResponse) {\n dispatch(\n discoverActions.receiveSearchResults({\n endpoint: window.location.pathname,\n queryParams: stripItmFromQueryParameters(\n formatQueryParams(toQueryParameters(window.location.search))\n ),\n result: initData.discoverResponse\n })\n );\n } else if (initData?.item) {\n dispatch(\n viewItemActions.handleItemModel(initData.item, initData.memberId)\n );\n } else if (initData?.reportItem) {\n dispatch(handleReportItemModel(initData.reportItem));\n } else if (initData?.traderaShopProduct) {\n dispatch(setAds(initData.traderaShopProduct.item.reduxContainer.ads));\n }\n};\n","import actionTypes from './action-types';\n\nexport const initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: initData\n});\n\nexport const defaultAction = data => ({\n type: actionTypes.DEFAULT_ACTION,\n payload: data\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"hover-menu-container\":\"hover-menu-container--3e5t9\",\"hoverMenuContainer\":\"hover-menu-container--3e5t9\",\"hover-menu-area-content\":\"hover-menu-area-content--IkpxV\",\"hoverMenuAreaContent\":\"hover-menu-area-content--IkpxV\",\"hover-menu-area\":\"hover-menu-area--3eHR4\",\"hoverMenuArea\":\"hover-menu-area--3eHR4\",\"align-right\":\"align-right--Ny_i9\",\"alignRight\":\"align-right--Ny_i9\",\"align-sm25-lg50\":\"align-sm25-lg50--3uG5u\",\"alignSm25Lg50\":\"align-sm25-lg50--3uG5u\",\"align-sm43-lg50\":\"align-sm43-lg50--2qBNG\",\"alignSm43Lg50\":\"align-sm43-lg50--2qBNG\"};","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 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 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 { useDayJs } from 'tradera-hooks/use-day-js';\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 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 const dayjs = useDayJs();\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 {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 ready: PropTypes.bool,\n showBidStatus: PropTypes.bool,\n showShippingOrOnDisplay: PropTypes.bool,\n isShopOwnedByCurrentMember: PropTypes.bool\n};\n\nexport default ItemCard;\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 // Possible error codes from backend\n ['Error']: 'checkout_summary_error',\n ['Declined']: 'checkout_summary_error_declined',\n ['InsufficientFunds']: 'checkout_summary_error_insufficient_funds',\n ['PaymentInstrumentTypeNotAccepted']:\n 'checkout_summary_error_payment_intrument_type_not_accepted'\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","// extracted by mini-css-extract-plugin\nexport default {\"with-arrow-top\":\"with-arrow-top--3SozC\",\"withArrowTop\":\"with-arrow-top--3SozC\"};","const BID_VALIDATION_RESULTS = {\n AUCTION_HAS_ENDED: 'AuctionHasEnded',\n AUCTION_HAS_NOT_STARTED: 'AuctionHasNotStarted',\n BELOW_MINIMUM: 'BelowMinimum',\n BELOW_OWN_LEADING_BID: 'BelowOwnLeadingBid',\n BELOW_RESERVE_PRICE: 'BelowReservePrice',\n BID_NOT_FOUND: 'BidNotFound',\n BIDDER_IS_BLOCKED: 'BidderIsBlocked',\n BIDDING_OR_BUYING_OWN_ITEM: 'BiddingOrBuyingOwnItem',\n BUYING_LIMIT_REACHED: 'BuyingLimitReached',\n EQUAL_OR_HIGHER_THAN_BUY_IT_NOW: 'EqualOrHigherThanBuyItNow',\n HIGHER_BIDDER_EXISTS: 'HigherBidderExists',\n ITEM_NO_LONGER_AVAILABLE: 'ItemNoLongerAvailable',\n ITEM_NOT_FOUND: 'ItemNotFound',\n LEADING_BIDDER: 'LeadingBidder',\n NO_LONGER_VALID: 'NoLongerValid',\n ONLY_EU_BUYERS_ACCEPTED: 'OnlyEUBuyersAccepted',\n ONLY_NORDIC_BUYERS_ACCEPTED: 'OnlyNordicBuyersAccepted',\n ONLY_SWEDISH_BUYERS_ACCEPTED: 'OnlySwedishBuyersAccepted',\n SUCCESSFULLY_CHANGED_AUTOBID: 'SuccessfullyChangedAutoBid',\n USER_IS_SUSPENDED: 'UserIsSuspended',\n MAX_PLACED_BIDS_LIMIT: 'MaxPlacedBidsLimit',\n BID_AMOUNT_LIMIT: 'BidAmountLimit',\n OFFLINE: 'Offline'\n};\n\nconst BID_VALIDATION_SUCCESSES = [\n BID_VALIDATION_RESULTS.LEADING_BIDDER,\n BID_VALIDATION_RESULTS.SUCCESSFULLY_CHANGED_AUTOBID\n];\n\nconst BID_VALIDATION_RETRY = [\n BID_VALIDATION_RESULTS.BELOW_MINIMUM,\n BID_VALIDATION_RESULTS.BELOW_RESERVE_PRICE,\n BID_VALIDATION_RESULTS.BELOW_OWN_LEADING_BID,\n BID_VALIDATION_RESULTS.HIGHER_BIDDER_EXISTS,\n BID_VALIDATION_RESULTS.OFFLINE\n];\n\nconst BIN_VALIDATION_RESULTS = {\n ITEM_NOT_FOUND: 'ItemNotFound',\n ONLY_EU_BUYERS_ACCEPTED: 'OnlyEUBuyersAccepted',\n ONLY_NORDIC_BUYERS_ACCEPTED: 'OnlyNordicBuyersAccepted',\n ONLY_SWEDISH_BUYERS_ACCEPTED: 'OnlySwedishBuyersAccepted',\n USER_IS_SUSPENDED: 'UserIsSuspended',\n BIDDER_IS_BLOCKED: 'BidderIsBlocked',\n ITEM_HAS_ENDED: 'ItemHasEnded',\n BUYING_OWN_ITEM: 'BuyingOwnItem',\n ITEM_ALREADY_PURCHASED_BY_OTHER_USER: 'ItemAlreadyPurchasedByOtherUser',\n PURCHASE_DID_NOT_SUCCEED: 'PurchaseDidNotSucceed'\n};\n\nexport {\n BID_VALIDATION_RESULTS,\n BID_VALIDATION_SUCCESSES,\n BID_VALIDATION_RETRY,\n BIN_VALIDATION_RESULTS\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport Analytics from 'packages/analytics';\nimport dayjs from 'dayjs';\nimport { VIEW_ITEM_STATES } from './constants';\nimport TRANSACTION_TYPES from 'tradera-constants/transaction-types';\nimport { getItemApi, placeBidApi } from './api';\nimport { logger } from 'packages/logger';\nimport * as analytics from '../../../apps/tradera/components/vip/helpers/analytics';\nimport itemActions from '../../items/actions';\nimport { assertNoUndefinedProperties } from 'tradera-utils/assert';\nimport { setAds } from 'tradera-state/ads/actions';\nimport pageActions from 'tradera-state/page/actions';\nimport { selectPreferredLanguageCode } from 'tradera-state/language/selectors';\nimport {\n selectBidInfo,\n selectItemId,\n selectItemDetails,\n selectBreadcrumbs\n} from './selectors';\nimport gtm from 'static/script/app/ui/google-tagmanager-service';\nimport { getItemState } from './item-state-helper';\nimport { getHistory } from 'tradera-utils/history';\nimport { BID_VALIDATION_RESULTS } from 'tradera-apps/tradera/components/vip/api/vip-api-constants';\n\nconst initialPlaceBidResponse = {\n info: null,\n isSuccessful: null,\n validationResult: null,\n error: null\n};\n\nexport const translatedDescriptionStates = {\n DEFAULT: 'DEFAULT',\n LOADING: 'LOADING',\n SERVER_ERROR: 'SERVER_ERROR',\n TRANSLATION_ON_DEMAND_DISABLED: 'TRANSLATION_ON_DEMAND_DISABLED'\n};\n\nexport const initialState = {\n initialBidFormValue: null,\n bidInfo: null,\n breadCrumbs: [],\n isBidding: false,\n itemDetails: {},\n categoryItemIds: [],\n sellerItems: null,\n combinedShippingItemIds: null,\n itemState: null,\n viewItemState: null,\n myMaxBidAmount: null,\n placeBidResponse: initialPlaceBidResponse,\n serverSecondsLeft: null,\n translatedDescription: null,\n translatedDescriptionState: translatedDescriptionStates.DEFAULT\n};\n\nconst viewItemSlice = createSlice({\n name: 'viewItem',\n initialState,\n reducers: {\n resetPlaceBidResponse: state => {\n state.placeBidResponse = initialPlaceBidResponse;\n },\n resetInitialState: () => {\n return initialState;\n },\n setInitialBidFormValue: (state, { payload }) => {\n state.initialBidFormValue = payload;\n },\n setIsRestricted: (state, { payload }) => {\n state.itemDetails.isRestricted = payload;\n },\n setIsInternationalWacko: (state, { payload }) => {\n state.itemDetails.wackoInfo.isInternationalWacko = payload;\n },\n setItemDetails: (state, { payload: itemDetails }) => {\n state.itemDetails = mapItemDetails(itemDetails);\n },\n setPurchaseInfo: (state, { payload: purchaseInfo }) => {\n state.purchaseInfo = purchaseInfo || null;\n },\n setBreadCrumbs: (state, { payload: breadCrumbs }) => {\n state.breadCrumbs = breadCrumbs.map(\n ({ id, href, text }, index) => ({\n id: index,\n url: href,\n name: text,\n categoryId: id\n })\n );\n },\n setIsBidding: (state, { payload: isBidding }) => {\n state.isBidding = isBidding;\n },\n setPlaceBidResponse: (\n state,\n { payload: { isSuccessful, validationResult, bidError } }\n ) => {\n state.placeBidResponse.isSuccessful = isSuccessful;\n state.placeBidResponse.validationResult = validationResult;\n state.placeBidResponse.error = bidError;\n },\n setBidInfo: (state, { payload: { bidInfo, itemId, memberId } }) => {\n // Ensure bid is for current item.\n if (state.itemDetails?.itemId !== itemId) {\n logger(new Error(`setBidInfo was not for current item`), {\n contexts: {\n items: {\n currentItemId: state.itemDetails?.itemId,\n bidInfoItemId: itemId\n }\n }\n });\n return;\n }\n\n // Ensure incoming data is for latest bid. It is possible to get stale data in\n // the response from place bid due to eventual consistency. When that happens\n // we should have received the latest bid before via web socket. For items where\n // web socket updates are not enabled (too long time left of auction) the effect\n // is considered acceptable. Just make sure to not overwrite newer data here.\n const isFirstBidInfo = !state.bidInfo;\n const isBinPurchase =\n bidInfo.transactionType === TRANSACTION_TYPES.BIN;\n const isLatestBid =\n isFirstBidInfo ||\n isBinPurchase ||\n state.bidInfo.bidId <= bidInfo.bidId;\n if (!isLatestBid) return;\n\n const bidStatus = getLeadingBidStatus(\n bidInfo,\n memberId,\n state.bidInfo\n );\n\n const existingBidCount = state.bidInfo?.bidCount || 0;\n const incomingBidCount = bidInfo.bidCount || 0;\n const newBidInfo = {\n bidId: bidInfo.bidId || 0,\n leadingBidAmount: bidInfo.leadingBidAmount || 0,\n leadingBidderMemberId: bidInfo.leadingBidderMemberId || null,\n leadingBidMemberAlias: bidInfo.leadingBidMemberAlias || null,\n nextValidBidAmount: bidInfo.nextValidBidAmount,\n transactionType: state.bidInfo?.transactionType\n ? state.bidInfo.transactionType\n : bidInfo.transactionType || null,\n\n // Never update with a lower bidCount. Can happen if place-bid-response comes before WebSocket event.\n bidCount:\n incomingBidCount > existingBidCount\n ? incomingBidCount\n : existingBidCount,\n\n // Never reset if reservePriceReached was true. Can happen if place-bid-response comes before WebSocket event.\n reservePriceReached:\n state.bidInfo?.reservePriceReached ||\n bidInfo.reservePriceReached ||\n false\n };\n\n assertNoUndefinedProperties(newBidInfo);\n\n state.bidInfo = { ...newBidInfo, ...bidStatus };\n },\n setMyMaxBidAmount: (state, { payload }) => {\n state.myMaxBidAmount = payload;\n },\n setItemState: (state, { payload }) => {\n state.itemState = payload;\n },\n setViewItemState: (state, { payload: viewItemState }) => {\n state.viewItemState = viewItemState;\n },\n setServerSecondsLeft: (state, { payload }) => {\n state.serverSecondsLeft = payload;\n },\n setTranslatedDescription: (state, { payload }) => {\n state.translatedDescription = { ...payload };\n state.translatedDescriptionState =\n translatedDescriptionStates.DEFAULT;\n },\n setTranslationOnDemandDisabled: state => {\n state.translatedDescription = null;\n state.translatedDescriptionState =\n translatedDescriptionStates.TRANSLATION_ON_DEMAND_DISABLED;\n },\n resetTranslatedDescription: {\n reducer: state => {\n state.translatedDescription = null;\n state.translatedDescriptionState =\n translatedDescriptionStates.DEFAULT;\n },\n prepare: payload => {\n Analytics.trackEvent({\n category: 'View Item Page',\n action: 'Translation',\n label: 'Hide'\n });\n return { payload };\n }\n },\n beginLoadingTranslatedDescription: state => {\n state.translatedDescription = null;\n state.translatedDescriptionState =\n translatedDescriptionStates.LOADING;\n },\n failedLoadingTranslatedDescription: state => {\n state.translatedDescriptionState =\n translatedDescriptionStates.SERVER_ERROR;\n },\n setSellerItems: (state, { payload }) => {\n state.sellerItems = payload;\n },\n setCategoryItemIds: (state, { payload }) => {\n state.categoryItemIds = payload;\n },\n setCombinedShippingItemIds: (state, { payload }) => {\n state.combinedShippingItemIds = payload;\n }\n }\n});\n\nexport default viewItemSlice.reducer;\n\nexport const mapItemDetails = itemDetails => ({\n ...itemDetails,\n descriptionLanguageCodeIso2: itemDetails.descriptionLanguageCodeIso2.toLowerCase(),\n images: itemDetails.images.map(img => ({\n thumbnail: img.thumbnail,\n multiThumbnail: img.thumbnail,\n medium: img.medium || img.small,\n normal: img.normal,\n smallFit: img.smallFit,\n mediumFit: img.mediumFit,\n largeFit: img.largeFit,\n alt: img.alt || img.altText || null,\n video: img.video || null\n }))\n});\n\nexport const handleItemModel = (itemModel, memberId) => (\n dispatch,\n getState\n) => {\n const previousItemId = selectItemId(getState());\n dispatch(viewItemSlice.actions.setItemDetails(itemModel.itemDetails));\n dispatch(viewItemSlice.actions.setPurchaseInfo(itemModel.purchaseInfo));\n\n dispatch(\n itemActions.setItemWishList(\n itemModel.itemDetails.itemId,\n itemModel.itemDetails.inWishList\n )\n );\n dispatch(viewItemSlice.actions.setBreadCrumbs(itemModel.breadCrumbs));\n dispatch(\n viewItemSlice.actions.setBidInfo({\n bidInfo: itemModel.bidInfo,\n itemId: itemModel.itemDetails.itemId,\n memberId\n })\n );\n\n if (itemModel.bidInfo.maxBidAmount) {\n // Touchweb uses a different property name than is used in frontend.\n dispatch(\n viewItemSlice.actions.setMyMaxBidAmount(\n itemModel.bidInfo.maxBidAmount\n )\n );\n } else if (itemModel.bidInfo.myMaxBidAmount) {\n // NextWeb uses the correct property name.\n dispatch(\n viewItemSlice.actions.setMyMaxBidAmount(\n itemModel.bidInfo.myMaxBidAmount\n )\n );\n }\n\n const isSafeToShowWinnerStatus =\n itemModel.itemDetails.hasEnded && !itemModel.hasBidsWinnerToBeConfirmed;\n\n const viewItemState = isSafeToShowWinnerStatus\n ? VIEW_ITEM_STATES.ENDED\n : VIEW_ITEM_STATES.ACTIVE;\n\n dispatch(viewItemSlice.actions.setViewItemState(viewItemState));\n dispatch(\n updateItemState(\n selectItemDetails(getState()),\n selectBidInfo(getState()),\n viewItemState\n )\n );\n\n if (itemModel.reduxContainer) {\n const { ads, pageMeta } = itemModel.reduxContainer;\n dispatch(setAds(ads));\n dispatch(pageActions.setPageMeta(pageMeta));\n }\n\n dispatch(\n viewItemSlice.actions.setServerSecondsLeft(itemModel.serverSecondsLeft)\n );\n\n const isNewPage = previousItemId != selectItemId(getState());\n if (isNewPage) {\n handleNewPage(getState);\n }\n};\n\nconst handleNewPage = getState => {\n const currentItemDetails = selectItemDetails(getState());\n const currentBidInfo = selectBidInfo(getState());\n const breadCrumbs = selectBreadcrumbs(getState());\n const swedishCategoryPath = breadCrumbs.map(b => b.name).join(' > ');\n\n const getAuctionState = () => {\n const hasWon =\n currentItemDetails.hasEnded && currentBidInfo.hasLeadingBid;\n const isLeading =\n !currentItemDetails.hasEnded && currentBidInfo.hasLeadingBid;\n if (hasWon) return 'won';\n if (isLeading) return 'leading';\n return currentItemDetails.hasEnded ? 'ended' : 'normal';\n };\n\n const contentGroup = `${currentItemDetails.itemType}-${getAuctionState()}`;\n gtm.trackGtmEvent('viewItem', {\n page: {\n itemState: contentGroup,\n 'content-group-2': swedishCategoryPath,\n 'content-group-3': contentGroup\n },\n itemType: currentItemDetails.itemType,\n itemId: currentItemDetails.itemId,\n itemFixedPrice: currentItemDetails.fixedPrice || 0,\n itemCategory: swedishCategoryPath,\n itemStatus: currentItemDetails.hasEnded ? 'inactive' : 'active',\n itemEndDate: dayjs(currentItemDetails.endDate).format('YYYYMMDD')\n });\n};\n\nconst updateItemState = (itemDetails, bidInfo, viewItemState) => dispatch => {\n const itemState = getItemState(\n viewItemState === VIEW_ITEM_STATES.ENDED,\n itemDetails.itemType,\n bidInfo.bidCount,\n bidInfo.reservePriceReached,\n itemDetails.openingBid,\n bidInfo.nextValidBidAmount,\n bidInfo.transactionType,\n bidInfo.leadingBidderMemberId,\n itemDetails.isCancelled\n );\n dispatch(viewItemSlice.actions.setItemState(itemState));\n};\n\n/**\n * It is possible that we need to update the URL\n * when an auction that expires is automatically\n * restarted and gets a new itemId. Without this,\n * we could end up in an endless recursion of\n * trying to fetch data for the itemId in the URL.\n * @param {*} currentItemId\n * @param {*} itemModel\n */\nexport const ensureCorrectUrlForItem = (expectedItemId, itemModel) => {\n const incomingItemId = itemModel.itemDetails.itemId;\n if (expectedItemId !== incomingItemId) {\n // Restarted item, update URL\n getHistory().replace({\n pathname: itemModel.reduxContainer.pageMeta.canonicalLink,\n search: window.location.search\n });\n }\n};\n\nexport const fetchItemAndBidInfo = (\n itemId,\n shouldResetInititalState,\n setLoading,\n setLoaded\n) => async (dispatch, getState) => {\n setLoading && setLoading();\n const { memberId = 0 } = getState().member;\n const preferredLanguageCode = selectPreferredLanguageCode(getState());\n if (shouldResetInititalState) {\n dispatch(viewItemSlice.actions.resetInitialState());\n }\n try {\n const itemModel = (await getItemApi(itemId, preferredLanguageCode))\n .data;\n dispatch(handleItemModel(itemModel, memberId));\n setLoaded && setLoaded();\n ensureCorrectUrlForItem(itemId, itemModel);\n } catch (error) {\n const status = error.response && error.response.status;\n if (status === 404) {\n // Handle server side.\n window.location.reload();\n } else {\n logger(error);\n }\n }\n};\n\nconst getLeadingBidStatus = (bidInfo, memberId, previousBidInfo = null) => {\n const hadLeadingBid = !!previousBidInfo?.hasLeadingBid;\n const hasLeadingBid =\n !!memberId && memberId === bidInfo.leadingBidderMemberId;\n const hadLostLeadingBid = !!previousBidInfo?.hasLostLeadingBid;\n const hasLostLeadingBid =\n (hadLostLeadingBid || hadLeadingBid) && !hasLeadingBid;\n return {\n // ...bidInfo,\n hasLostLeadingBid,\n hasLeadingBid\n };\n};\n\nexport const toggleWishList = (itemId, forceAdd = false) => (\n dispatch,\n getState\n) => {\n const shouldNotTrackWishlistEventBecauseNeedsToBeSameAsLegacyVip = true;\n const inWishListOldValue = getState().items.wishListItemIds.includes(\n itemId\n );\n const inWishListNewValue = !inWishListOldValue || forceAdd;\n\n const itemDetails = getState().views.viewItem.itemDetails;\n const wishListCountOldValue = itemDetails.wishListCount;\n let wishListCountNewValue = wishListCountOldValue;\n if (Number.isInteger(wishListCountNewValue)) {\n if (inWishListOldValue && !inWishListNewValue) {\n wishListCountNewValue--;\n } else if (!inWishListOldValue && inWishListNewValue) {\n wishListCountNewValue++;\n }\n }\n dispatch(\n viewItemSlice.actions.setItemDetails({\n ...itemDetails,\n inWishList: inWishListNewValue,\n wishListCount: wishListCountNewValue\n })\n );\n\n return dispatch(\n itemActions.wishlist(\n itemId,\n inWishListNewValue,\n shouldNotTrackWishlistEventBecauseNeedsToBeSameAsLegacyVip\n )\n ).then(inWishListNewValue => {\n if (inWishListNewValue !== undefined) {\n analytics.trackWishlist(itemId, inWishListNewValue);\n } else {\n //Restore previous value;\n const itemDetails = getState().views.viewItem.itemDetails;\n dispatch(\n viewItemSlice.actions.setItemDetails({\n ...itemDetails,\n inWishList: inWishListOldValue,\n wishListCount: wishListCountOldValue\n })\n );\n }\n return inWishListNewValue;\n });\n};\n\nexport const placeBid = (itemId, memberId, amount, onLoggedOut) => async (\n dispatch,\n getState\n) => {\n dispatch(viewItemSlice.actions.setIsBidding(true));\n const preferredLanguageCode = selectPreferredLanguageCode(getState());\n try {\n const result = await placeBidApi(\n itemId,\n amount,\n onLoggedOut,\n preferredLanguageCode\n );\n\n if (!result) {\n dispatch(\n viewItemSlice.actions.setPlaceBidResponse({\n isSuccessful: false,\n validationResult: {\n code: BID_VALIDATION_RESULTS.OFFLINE\n }\n })\n );\n dispatch(viewItemSlice.actions.setInitialBidFormValue(amount));\n dispatch(viewItemSlice.actions.setIsBidding(false));\n return;\n }\n\n const {\n analyticsData,\n bidInfo,\n isSuccessful,\n item: updatedItem,\n validationResult,\n myMaxBidAmount,\n serverSecondsLeft\n } = result;\n\n if (isSuccessful) {\n dispatch(\n viewItemSlice.actions.setBidInfo({ bidInfo, itemId, memberId })\n );\n dispatch(viewItemSlice.actions.setMyMaxBidAmount(myMaxBidAmount));\n dispatch(\n viewItemSlice.actions.setInitialBidFormValue(\n bidInfo.nextValidBidAmount\n )\n );\n } else {\n // suggest next valid bid to user\n dispatch(\n viewItemSlice.actions.setInitialBidFormValue(\n bidInfo.nextValidBidAmount\n )\n );\n }\n\n analytics.trackBidPlaced(\n itemId,\n validationResult.code,\n analyticsData.isMaxBid,\n analyticsData.potentialBidChange,\n analyticsData.bidId,\n analyticsData.transactionTotal,\n analyticsData.weightedBidValue\n );\n\n const currentItemDetails = getState().views.viewItem.itemDetails;\n dispatch(\n viewItemSlice.actions.setItemDetails({\n ...currentItemDetails,\n ...updatedItem\n })\n );\n\n dispatch(\n viewItemSlice.actions.setPlaceBidResponse({\n isSuccessful,\n validationResult,\n bidError: null\n })\n );\n\n dispatch(viewItemSlice.actions.setServerSecondsLeft(serverSecondsLeft));\n } catch (error) {\n logger(error);\n dispatch(\n viewItemSlice.actions.setPlaceBidResponse({\n isSuccessful: false,\n validationResult: null,\n error\n })\n );\n }\n dispatch(viewItemSlice.actions.setIsBidding(false));\n};\n\nexport const setNotValidToBidOrBuyNow = () => dispatch => {\n return dispatch(\n viewItemSlice.actions.setPlaceBidResponse({\n isSuccessful: false,\n validationResult: {\n code: BID_VALIDATION_RESULTS.BIDDING_OR_BUYING_OWN_ITEM\n }\n })\n );\n};\n\nexport const {\n beginLoadingTranslatedDescription,\n failedLoadingTranslatedDescription,\n resetPlaceBidResponse,\n resetTranslatedDescription,\n setBidInfo,\n setIsRestricted,\n setIsInternationalWacko,\n setViewItemState,\n setTranslatedDescription,\n setTranslationOnDemandDisabled,\n setSellerItems,\n setCategoryItemIds,\n setCombinedShippingItemIds\n} = viewItemSlice.actions;\n","import { isServer } from 'tradera-utils/nextjs';\n\nconst config =\n !isServer && window.sellingGlobalConfig\n ? { ...window.sellingGlobalConfig }\n : {};\n\nconfig.maxTemplates = 100;\nconfig.domainNameCategoryId = 344477;\n\nexport default config;\n","export const MODAL_TYPE = {\n BANK_ID: 'BANK_ID',\n SWISH_HANDEL: 'SWISH_HANDEL'\n};\n\nexport const MODAL_STATUS = {\n START: 'START',\n COMPLETE: 'COMPLETE',\n ERROR: 'ERROR'\n};\n\nexport const PAYMENT_OPTIONS = {\n CARD: 'Card',\n PAYPAL: 'PayPal',\n APPLEPAY: 'ApplePay',\n GOOGLEPAY: 'GooglePay',\n SWISH_HANDEL: 'SwishHandel',\n VISA_MASTERCARD: 'VisaMasterCard',\n INVOICE: 'Invoice'\n};\n\nexport const PAYMENT_OPTION_STATUS = {\n AVAILABLE: 'Available',\n UNAVAILABLE_DUE_TO_AMOUNT: 'UnavailableDueToAmount'\n};\n\nexport default () => ({\n shipments: [],\n isFetching: false,\n hasError: false,\n error: null,\n isDeleting: false,\n isUpdating: false,\n isCreating: false,\n ongoingPaymentAttempt: {\n shipmentPaymentAttemptId: null,\n paymentMethod: null\n },\n payment: {\n hasError: false,\n isFetching: false,\n paymentOptions: null,\n selectedPayment: null,\n paymentMethodData: null,\n modal: {\n open: '',\n status: MODAL_STATUS.START\n }\n },\n checkoutSummary: {\n hasError: false,\n isFetching: false,\n totalCost: null,\n termsAccepted: true\n },\n itemWithoutShipment: {\n error: null,\n item: null,\n buyerContactDetails: null,\n isFetching: false\n },\n nonIntegrated: {\n open: false,\n provider: null,\n isUpdating: false,\n markedAsBooked: false,\n markedAsShipped: false,\n hasError: false\n },\n shipping: {\n shippingOptions: [],\n isShippingFetching: false,\n hasShippingError: false\n },\n shippingConfirmation: {\n data: null,\n isFetching: false,\n isLongPolling: false,\n hasError: false\n }\n});\n","export default {\n AUCTION: 'Auction',\n AUCTION_BIN: 'AuctionBin',\n PURE_BIN: 'PureBin',\n SHOP_ITEM: 'ShopItem'\n};\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';\nexport const CATEGORY_LINKS = 'categoryLinks';\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 // eslint-disable-next-line better-mutation/no-mutation\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 // eslint-disable-next-line better-mutation/no-mutation\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 // eslint-disable-next-line better-mutation/no-mutation\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 { useSelector } from 'react-redux';\nimport { useTicker } from 'tradera-hooks/use-ticker';\nimport { syncServerTime } from 'tradera-utils/server-date';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { selectPreferredLanguageCode } from 'tradera-state/language/selectors';\nimport { useDayJs } from 'tradera-hooks/use-day-js';\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 const preferredLanguageCode = useSelector(selectPreferredLanguageCode);\n const dayjs = useDayJs();\n\n const updateTimeLeft = useCallback(\n async (isInitialCall = false) => {\n const serverDate = await syncServerTime(preferredLanguageCode);\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 // eslint-disable-next-line better-mutation/no-mutation\n previousAdjustment.current = adjustment;\n }\n\n const formattedTimeLeft =\n secondsLeft > 0\n ? formatTimeLeft(secondsLeft, t, endDate, serverDate, dayjs)\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, preferredLanguageCode, dayjs]\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","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n axiosConfigs,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\n\nimport {\n selectBox,\n isLoadingShippingProducts,\n selectIsBoxValid\n} from './selectors';\n\nconst defaultBox = {\n length: 15,\n height: 15,\n width: 15,\n weight: 1000\n};\n\nconst weightMap = {\n 1: 50,\n 2: 100,\n 3: 250,\n 4: 500,\n 5: 1000,\n 6: 2000,\n 7: 3000,\n 8: 5000,\n 9: 7000,\n 10: 9000,\n 11: 10000,\n 12: 12000,\n 13: 15000,\n 14: 20000,\n 15: 35000\n};\n\nconst enabledCountries = ['DK', 'SE'];\n\nconst shippingCalculatorSlice = createSlice({\n name: 'shippingCalculator',\n initialState: {\n box: { ...defaultBox },\n availableFromCountryCodes: [],\n availableToCountryCodes: [],\n defaultBox,\n weightUnit: 'kg',\n weightSliderValue: 5,\n isLoadingShippingProducts: false,\n shippingProviders: [\n {\n providerName: 'SchenkerPrivpak',\n service: 'traceable'\n },\n {\n providerName: 'PostNordParcel',\n service: 'traceable'\n },\n {\n providerName: 'PostNordStamp',\n service: 'stamps'\n },\n {\n providerName: 'DHL',\n service: 'traceable'\n },\n {\n providerName: 'Bussgods',\n service: 'traceable'\n },\n {\n providerName: 'BringDenmark',\n service: 'traceable'\n }\n ],\n internationalProductsGroupedByFromThenToCountry: {\n SE: { SE: [] }\n },\n showError: false\n },\n reducers: {\n initializeShippingCalculator: (state, action) => {\n const defaultCountry = enabledCountries.includes(\n action.payload.defaultCountry\n )\n ? action.payload.defaultCountry\n : 'SE';\n state.defaultCountry = defaultCountry;\n state.selectedToCountry = defaultCountry;\n state.selectedFromCountry = defaultCountry;\n },\n setSelectedToCountry: (state, action) => {\n state.selectedToCountry = action.payload.selectedToCountry;\n },\n setSelectedFromCountry: (state, action) => {\n state.selectedFromCountry = action.payload.selectedFromCountry;\n },\n setDefaultValuesOnBox: state => {\n state.box = { ...defaultBox };\n const value = weightMap[5];\n state.weightUnit = value % 1000 === 0 ? 'kg' : 'g';\n state.weightSliderValue = 5;\n },\n updateFilter: (state, action) => {\n const { filterName, value } = action.payload;\n state.box[filterName] = value;\n },\n setWeightFilter: (state, action) => {\n const value = weightMap[action.payload.value];\n state.weightUnit = value % 1000 === 0 ? 'kg' : 'g';\n state.box.weight = value;\n state.weightSliderValue = action.payload.value;\n },\n setWeightUnit: (state, action) => {\n state.weightUnit = action.payload.weightUnit;\n },\n beginFetchingShippingProducts: state => {\n state.isLoadingShippingProducts = true;\n },\n setShowError: state => {\n state.showError = true;\n },\n setShippingProducts: (state, action) => {\n const { internationalShippingCalculatorProducts } = action.payload;\n\n const internationalProductsGroupedByFromThenToCountry = internationalShippingCalculatorProducts.reduce(\n (prev, product) => {\n const {\n fromCountryCodeIso2: from,\n toCountryCodeIso2: to\n } = product;\n prev[from] = prev[from] || {};\n prev[from][to] = prev[from][to] || [];\n prev[from][to].push(product);\n return prev;\n },\n {}\n );\n\n const availableToCountryCodes = [\n ...new Set(\n internationalShippingCalculatorProducts.map(\n ({ toCountryCodeIso2 }) => toCountryCodeIso2\n )\n )\n ];\n\n const availableFromCountryCodes = [\n ...new Set(\n internationalShippingCalculatorProducts.map(\n ({ fromCountryCodeIso2 }) => fromCountryCodeIso2\n )\n )\n ];\n\n state.availableFromCountryCodes = availableFromCountryCodes;\n state.availableToCountryCodes = availableToCountryCodes;\n state.showError = false;\n state.internationalProductsGroupedByFromThenToCountry = internationalProductsGroupedByFromThenToCountry;\n state.isLoadingShippingProducts = false;\n }\n }\n});\n\nexport const setDefaultValues = () => (dispatch, getState) => {\n const state = getState();\n dispatch(setDefaultValuesOnBox());\n dispatch(fetchShippingProducts());\n dispatch(\n initializeShippingCalculator({\n defaultCountry: state.views.shippingCalculator.defaultCountry\n })\n );\n};\n\nexport const fetchShippingProducts = () => async (dispatch, getState) => {\n const { length, height, width, weight } = selectBox(getState());\n\n if (isLoadingShippingProducts(getState())) {\n return;\n }\n\n if (!selectIsBoxValid(getState())) {\n dispatch(\n setShippingProducts({\n internationalShippingCalculatorProducts: []\n })\n );\n return;\n }\n dispatch(beginFetchingShippingProducts());\n\n try {\n const response = await axiosWithTokenRefresh()\n .get(ENDPOINTS.INTERNATIONAL_SHIPPING_CALCULATOR, {\n params: {\n lengthInMillimeters: length * 10,\n heightInMillimeters: height * 10,\n widthInMillimeters: width * 10,\n weightInGrams: weight\n },\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse())\n .catch(handleError());\n\n dispatch(\n setShippingProducts({\n internationalShippingCalculatorProducts:\n response.data.internationalShippingCalculatorProducts\n })\n );\n } catch (e) {\n dispatch(\n setShippingProducts({\n internationalShippingCalculatorProducts: []\n })\n );\n dispatch(setShowError());\n }\n};\n\nexport const {\n updateFilter,\n setWeightUnit,\n beginFetchingShippingProducts,\n initializeShippingCalculator,\n setShippingProducts,\n setDefaultValuesOnBox,\n setSelectedToCountry,\n setSelectedFromCountry,\n setWeightFilter,\n setShowError\n} = shippingCalculatorSlice.actions;\nexport default shippingCalculatorSlice.reducer;\n","import qs from 'qs';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport initData from 'init-data';\n\nconst checkUserMessagingParticipation = sellerId => {\n return fetch(ENDPOINTS.TOUCHWEB_URL + 'messaging/participation/' + sellerId)\n .then(sellerResponse => sellerResponse.json())\n .then(data => 'participates' in data && data.participates);\n};\n\nconst setUserMessagingParticipation = async messagingSettings => {\n return fetch(\n ENDPOINTS.TOUCHWEB_URL + 'my/profile/messaging-participation',\n {\n method: 'POST',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(messagingSettings)\n }\n )\n .then(userResponse => userResponse.json())\n .then(data => data);\n};\n\nconst getUserMessagingEmailSetting = async () => {\n return fetch(ENDPOINTS.TOUCHWEB_URL + 'api/messaging/emailnotify', {\n credentials: 'include'\n })\n .then(userResponse => userResponse.json())\n .then(data => data);\n};\n\nconst setUserMessagingEmailSetting = async setting => {\n return fetch(\n ENDPOINTS.TOUCHWEB_URL +\n 'api/messaging/emailnotify?emailNotify=' +\n setting,\n {\n method: 'POST',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n .then(userResponse => userResponse.json())\n .then(data => data);\n};\n\n/**\n * Returns base path for a thread\n *\n * @param {number} u1\n * @param {number} u2\n * @param {number} l\n * @param {object} [options]\n * @param {boolean} [options.singleThread] - Open in single thread mode\n * @param {boolean} [options.openForm] - Open message form right away\n * @param {string} [options.source] - Message source info for tracking\n * @returns {string}\n */\nconst getMessagingThreadLink = (u1, u2, l, options) => {\n const optionsWithDefaults = {\n singleThread: false,\n openForm: false,\n ...options\n };\n const { singleThread, ...queryParams } = optionsWithDefaults;\n return (\n (singleThread ? '/thread/' : '/threads/') +\n 'u' +\n Math.min(u1, u2) +\n '_u' +\n Math.max(u1, u2) +\n '_l' +\n l +\n qs.stringify(queryParams, { addQueryPrefix: true })\n );\n};\n\n/**\n * Returns the path to a thread on Tradera's messaging page\n *\n * @param {number} u1\n * @param {number} u2\n * @param {number} l\n * @param {object} [options]\n * @returns {string}\n */\nconst getMessagingPageLink = (u1, u2, l, options) => {\n return (\n ENDPOINTS.TOUCHWEB_URL +\n 'messaging' +\n (u1 && u2 && l ? getMessagingThreadLink(u1, u2, l, options) : '')\n );\n};\n\n/**\n * Get messaging url\n *\n * @returns {string}\n */\nconst getMessagingRemoteUrl = () => {\n return initData.messagingIframeUrl;\n};\n\nexport {\n checkUserMessagingParticipation,\n setUserMessagingParticipation,\n getUserMessagingEmailSetting,\n setUserMessagingEmailSetting,\n getMessagingPageLink,\n getMessagingThreadLink,\n getMessagingRemoteUrl\n};\n","const SHIPPING_OPTIONS = {\n ALTERNATIVE: 'Alternative',\n BRINGDENMARK: 'BringDenmark',\n BUSSGODS: 'Bussgods',\n COMBINED_SHIPPING: 'CombinedShipping',\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 SHIPPING_OPTIONS;\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","// extracted by mini-css-extract-plugin\nexport default {\"sm-separator\":\"sm-separator--2-eWr\",\"smSeparator\":\"sm-separator--2-eWr\",\"md-separator\":\"md-separator--1dABa\",\"mdSeparator\":\"md-separator--1dABa\"};","import GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { BID_VALIDATION_RESULTS } from '../api/vip-api-constants';\n\nexport const CATEGORIES = {\n VIEW_ITEM: 'View item',\n BIDDING: 'Bidding',\n CART: 'Cart',\n CHECKOUT_BIN: 'Checkout bin'\n};\n\nconst trackAction = (category, action, label) => {\n GtmService.trackAction(category, action, label);\n};\n\nexport const trackBiddingConfirmBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Bid button', 'Bekräfta bud');\n\nexport const trackBiddingShowEnterBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Show', 'EnterBid');\n\nexport const trackBiddingShowConfirmBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Show', 'ConfirmBid');\n\nexport const trackBiddingShowChangeMaxBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Show', 'ChangeMaxBid');\n\nexport const trackBiddingQuickBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Bid button', 'Lägg snabbud');\n\nexport const trackBiddingNewMaxBid = () =>\n trackAction(CATEGORIES.BIDDING, 'Bid button', 'Lägg maxbud');\n\nexport const trackNewBid = () =>\n trackAction(CATEGORIES.VIEW_ITEM, 'Bid button', 'Lägg bud');\n\nexport const trackNewMaxBid = () =>\n trackAction(CATEGORIES.VIEW_ITEM, 'Bid button', 'Ändra maxbud');\n\nexport const trackOpenCheckoutBin = () =>\n trackAction(CATEGORIES.CHECKOUT_BIN, 'Show', 'Open BIN modal');\n\nexport const trackConfirmBin = () =>\n trackAction(\n CATEGORIES.CHECKOUT_BIN,\n 'Bin navigation',\n 'Confirm BIN purchase'\n );\n\nexport const trackPayBin = () =>\n trackAction(CATEGORIES.CHECKOUT_BIN, 'Bin navigation', 'Pay BIN');\n\nexport const trackKeepShopping = () =>\n trackAction(CATEGORIES.CHECKOUT_BIN, 'Bin navigation', 'Keep shopping');\n\nexport const trackBinError = () =>\n trackAction(CATEGORIES.CHECKOUT_BIN, 'Bin navigation', 'Error');\n\nexport const trackBidPlaced = (\n itemId,\n validationCode,\n isMaxBid,\n potentialBidChange,\n bidId,\n transactionTotal,\n weightedBidValue\n) => {\n switch (validationCode) {\n case BID_VALIDATION_RESULTS.LEADING_BIDDER:\n case BID_VALIDATION_RESULTS.HIGHER_BIDDER_EXISTS:\n // LeadingBidder.cshtml and HigherBidderExists renders _PlaceBidDataLayerTracking.cshtml\n // which has this tracking.\n GtmService.push({\n event: 'auctionEvent',\n transactionTotal: `${transactionTotal}`\n });\n GtmService.trackAction(\n CATEGORIES.BIDDING,\n 'PlacedBidPotential',\n isMaxBid ? 'MaxBid' : 'MinBid',\n `${potentialBidChange}`,\n true\n );\n GtmService.push({\n event: 'bidPlacedEvent',\n itemId: `${itemId}`,\n placedBidId: `${bidId}`,\n bidValue: `${transactionTotal}`,\n weightedBidValue: `${weightedBidValue}`\n });\n break;\n }\n GtmService.trackAction(\n CATEGORIES.BIDDING,\n 'Show',\n validationCode,\n '0',\n true\n );\n};\n\nexport const trackWishlist = (itemId, isAdding) => {\n const action = isAdding ? 'Added to wish list' : 'Removed from wish list';\n const label = isAdding\n ? `Added item: ${itemId}`\n : `Removed item: ${itemId}`;\n GtmService.trackAction('View item', action, label);\n};\n\nexport const trackAddToCart = (sellerMemberAlias, fixedPrice, redirectUrl) =>\n GtmService.trackLinkClickAndGotoUrl(\n CATEGORIES.CART,\n 'Add to cart',\n `Added ${sellerMemberAlias}`,\n redirectUrl,\n fixedPrice\n );\n\nconst defaultClientId = '2ab8b9da-aeb2-4790-86cf-bd1cd3c51453';\nexport const getGaTrackingData = () => {\n /* global gaData */\n return {\n clientId: window?.ga?.getAll?.()[0]?.get('clientId') || defaultClientId,\n trackingIds:\n typeof gaData !== 'undefined' ? [Object.keys(gaData)[1]] : []\n };\n};\n","export default {\n ADD_ITEM_ON_DISPLAY: 'SEARCH/ADD_ITEM_ON_DISPLAY',\n ADD_SEARCH_RESULTS: 'SEARCH/ADD_SEARCH_RESULTS',\n CHANGE_SORT_VALUE: 'SEARCH/CHANGE_SORT_VALUE',\n HANDLE_SEARCH_RESULTS_ERROR: 'SEARCH/HANDLE_SEARCH_RESULTS_ERROR',\n INITIALIZE: 'SEARCH/INITIALIZE',\n LOCATION_CHANGE: 'SEARCH/ROUTER_DISPATCHED_ROUTE_CHANGE',\n RECEIVE_SEARCH_RESULTS: 'SEARCH/RECEIVE_SEARCH_RESULTS',\n REMOVE_ITEM_ON_DISPLAY: 'SEARCH/REMOVE_ITEM_ON_DISPLAY',\n REQUEST_SEARCH_RESULTS: 'SEARCH/REQUEST_SEARCH_RESULTS',\n SET_ACTIVE_CATEGORY: 'SEARCH/SET_ACTIVE_CATEGORY',\n SET_ACTIVE_FILTER: 'SEARCH/SET_ACTIVE_FILTER',\n SET_CATEGORY_PATH: 'SEARCH/SET_CATEGORY_PATH',\n SET_CURRENT_CATEGORY_ID: 'SEARCH/SET_CURRENT_CATEGORY_ID',\n SET_SINGLE_FILTER: 'SEARCH/SET_SINGLE_FILTER_VALUE',\n STOP_REQUEST_SEARCH_RESULTS: 'SEARCH/STOP_REQUEST_SEARCH_RESULTS',\n RESET: 'SEARCH/RESET'\n};\n","import { toLocalizedUrl } from 'tradera-utils/url';\nimport { getLanguage } from 'tradera-apps/syi/script/app_react/utils/language';\nimport { whenInitialized } from 'tradera-lang/boot-languages';\nimport i18n from 'i18next';\n\nfunction TriotException(message) {\n this.message = message;\n this.name = 'TriotException';\n}\n\n// Inherit riot's api\nvar triot = Object.create(riot);\n\n// Expose a global observable as triot.bus\n// Used by non-riot components, such as data-services\nObject.defineProperties(triot, {\n bus: {\n value: triot.observable(),\n enumerable: false,\n writable: false,\n configurable: false\n }\n});\n\n// Add the global bus to all riot components\n// so they can reach it as this.bus, ie this.bus.on('eventName' .. )\n// No more need to pass the bus around and no\n// more \"var bus = riot.observable()\" on different places\ntriot.mixin({\n init: function() {\n this.on('before-mount', function () {\n Object.defineProperties(this, {\n bus: {\n value: triot.bus,\n enumerable: false,\n writable: false,\n configurable: false\n }\n });\n });\n }\n});\n\ntriot.mixin({\n init: function() {\n this.toLocalizedUrl = url => {\n return toLocalizedUrl(url, getLanguage());\n };\n }\n});\n\ntriot.mixin({\n init: function() {\n let translate = () => '';\n this.t = (...args) => translate(...args);\n whenInitialized().then(({ t }) => {\n translate = t;\n this.update();\n });\n }\n});\n\n// Triot's mount functionality doesn't break if we try to mount\n// a component that doesn't exist. We add a safeMount function\n// that throws if number of mounted components < 1.\nfunction safeMount (selector, tagName, opts) {\n var mountedComponents = triot.mount(selector, tagName, opts);\n if (mountedComponents.length < 1) {\n throw new TriotException('No component mounted with selector: ' + selector);\n }\n return mountedComponents;\n}\n\n// Expose safeMount as triot.safeMount\nObject.defineProperties(triot, {\n safeMount: {\n value: safeMount,\n enumerable: false,\n writable: false,\n configurable: false\n }\n});\n\n// Function to unmount all components\nfunction unmountAll (keepRootTag) {\n var unmounted = 0;\n while (triot.vdom.length > 0) {\n triot.vdom[0].unmount(keepRootTag);\n unmounted++;\n }\n return unmounted;\n}\n\nfunction setupTeardown () {\n triot.bus.on('triot:teardown', function (payload) {\n payload = payload || {};\n var keepRootTag = !!payload.keepRootTag;\n unmountAll(keepRootTag);\n triot.bus.off('*');\n\n setupTeardown();\n });\n}\n\nsetupTeardown();\n\nexport default triot\n","import React from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\n\nconst useIsDesktop = () =>\n useMediaQuery({\n minWidth: BREAKPOINT_SIZES.LG.min,\n maxWidth: BREAKPOINT_SIZES.XL.max\n });\n\nexport const withIsDesktop = WrappedComponent => {\n const WithIsDesktop = props => {\n const isDesktop = useIsDesktop();\n return ;\n };\n\n WithIsDesktop.displayName = `withIsDesktop(${WrappedComponent.displayName ||\n WrappedComponent.name}`;\n\n return WithIsDesktop;\n};\n\nexport default useIsDesktop;\n","import React from 'react';\nimport HelpIcon from '@tradera/blueprint/theme/icons2/help.svg?jsx';\n\nconst InfoTooltip = ({ displayText }) => {\n return (\n \n \n {displayText}\n \n );\n};\n\nexport default InfoTooltip;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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: \"M11.93 2.03a7.69 7.69 0 00-5.55 1.18 6.2 6.2 0 00-1.93 2.2 4.23 4.23 0 00-.59 2.35c.03.26-.16.5-.43.52a.5.5 0 01-.55-.4 5.1 5.1 0 01.69-2.9c.52-.96 1.3-1.9 2.24-2.53C8.75.48 11.67.95 13.52 1.38c.26.06.42.3.37.54l-.03.17C13.53 3.77 13 5.1 10.78 6.9c-.66.53-1.6 1.1-2.55 1.52-.91.43-1.91.77-2.65.77a.48.48 0 01-.5-.47c0-.26.22-.47.5-.47.5 0 1.32-.25 2.22-.67.88-.4 1.75-.93 2.33-1.4 1.65-1.33 2.24-1.85 2.6-3.49-.12.06-.23.1-.33.16-2.5 1.2-4.76 2.3-7.32 5.71-.42.57-.95 1.7-1.38 2.9A11.13 11.13 0 003 14.6c0 .26-.23.47-.5.47a.48.48 0 01-.5-.47c0-.86.33-2.18.76-3.4.43-1.24 1-2.47 1.51-3.16 2.7-3.59 5.15-4.79 7.66-6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.59 1.72S8.23 3.78 3.7 9.55c0 0 2.47 1.24 6.6-2.06 4.11-3.3 3.29-5.77 3.29-5.77z\"\n})));","// extracted by mini-css-extract-plugin\nexport default {\"shipping-options\":\"shipping-options--3i-hm\",\"shippingOptions\":\"shipping-options--3i-hm\",\"min-width-0\":\"min-width-0--21fnV\",\"minWidth0\":\"min-width-0--21fnV\",\"leaftlet-placeholder\":\"leaftlet-placeholder--1YwdO\",\"leaftletPlaceholder\":\"leaftlet-placeholder--1YwdO\"};","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport InfoTooltip from './info-tooltip';\nimport { mapCountryCodeToCountryKey } from 'tradera-localization/countries';\nimport LeafIcon from '@tradera/blueprint/theme/icons2/leaf.svg?jsx';\nimport styles from './shipping-options.module.scss';\n\nexport const OptionsDisplay = ({ options, shouldShowFromCountry }) => {\n const { t } = useTranslator();\n return options.map((option, idx) => (\n

    \n \n {option.displayText}\n {option.hasClimateCompensation ? (\n \n \n \n {t('vip_shipping_climateCompensation')}\n \n \n ) : null}\n {shouldShowFromCountry && (\n <>\n {' '}\n {t('vip_shipping_options_to_text')}{' '}\n {t(\n mapCountryCodeToCountryKey(option.toCountryCodeIso2)\n )}\n \n )}\n \n {option.tooltipText && (\n \n )}\n

    \n ));\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\n\nexport const TakeawayOptionsDisplay = ({ options, onlyTakeaway }) => {\n const { t } = useTranslator();\n const getLocationText = option =>\n `${option.location.city}, ${option.location.country}`;\n return options.map((option, idx) => (\n
    \n \n {onlyTakeaway\n ? t('vip_shipping_pickup_only')\n : option.displayText}\n \n
    \n {option.location &&\n (option.location.mapUrl ? (\n \n {getLocationText(option)}\n \n ) : (\n getLocationText(option)\n ))}\n
    \n
    \n ));\n};\n","/* eslint-disable react/no-danger */\nimport React, { lazy, Suspense } from 'react';\nimport dynamic from 'next/dynamic';\nimport { useTranslator } from 'tradera-lang/translate';\nimport Flag from 'tradera-components/flag/flag';\nimport { OptionsDisplay } from './options-display';\nimport { TakeawayOptionsDisplay } from './takeaway-options-display';\nimport MoreInfoFoldOut from '../more-info-fold-out';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport InfoSection from 'tradera-apps/tradera/components/vip-shared/info-section';\nimport CombinedShippingBadgeLink from 'tradera-components/combined-shipping-badge/combined-shipping-badge-link';\nimport { mapCountryCodeToCountryKey } from 'tradera-localization/countries';\nimport { isInternationalShippingToCountryAllowed } from 'tradera-utils/allowed-buyer-region';\nimport { isNextJs } from 'tradera-utils/nextjs';\nimport { isSwedenCountryCodeOrUndefined } from 'tradera-localization/countrycode';\nimport { translateBuyerRegionText } from './translate-buyer-region-text';\nimport shippingProviders from 'tradera-apps/my-tradera/app/data/shipping-providers';\nimport SHIPPING_OPTIONS from 'tradera-components/shipping-product/shipping-options';\nimport styles from './shipping-options.module.scss';\nimport { useLocalizedPriceFormatter } from 'tradera-localization/use-localized-price-formatter';\n\nconst LazyLoadedMap = lazy(() => import('../map/map'));\nconst Map = isNextJs\n ? dynamic(() => import('../map/map'), {\n ssr: false,\n loading: () => (\n \n )\n })\n : props => (\n \n \n \n );\n\nexport const getDisplayText = (option, t, localizedPriceFormatter) => {\n const providerDisplayName =\n shippingProviders.map(t)[option.provider]?.text || option.provider;\n if (option.isTakeaway || option.isNotSpecified) {\n return providerDisplayName;\n } else if (option.cost === 0) {\n return t('shippingInfo_providerWithFreeShipping', {\n provider: providerDisplayName\n });\n } else {\n return `${localizedPriceFormatter(option.cost)} ${providerDisplayName}`;\n }\n};\n\nconst getTooltipText = (option, t) => {\n if (option.tooltipText) {\n // TODO: this can be removed after move to Next.js\n return option.tooltipText;\n }\n if (option.isNotSpecified) {\n return t('vip_shipping_notSpecifiedDesc');\n } else if (option.provider === SHIPPING_OPTIONS.ALTERNATIVE) {\n return t('vip_shipping_altDesc');\n } else {\n return null;\n }\n};\n\nconst getMapUrl = (city, zipCode, countryCodeIso2) => {\n const q = `${city}, ${zipCode}, ${countryCodeIso2}`;\n return `http://maps.apple.com/?q=${encodeURIComponent(q)}`;\n};\n\nexport const ShippingOptions = ({\n allowedBuyerRegion,\n buyerCountryCode,\n shippingOptions,\n shippingTerms,\n seller,\n combinedShippingDays,\n freeShippingCostLimit\n}) => {\n const { t } = useTranslator();\n const localizedPriceFormatter = useLocalizedPriceFormatter();\n\n const sellerCity = seller.city;\n const sellerZipCode = seller.zipCode || seller.postcode?.code;\n const sellerCountryCodeIso2 = seller.countryCodeIso2;\n const sellerMapUrl =\n sellerCity && sellerZipCode && sellerCountryCodeIso2\n ? getMapUrl(sellerCity, sellerZipCode, sellerCountryCodeIso2)\n : null;\n\n const augmentOption = option => {\n const displayText = getDisplayText(option, t, localizedPriceFormatter);\n const tooltipText = getTooltipText(option, t);\n const location = option.isTakeaway\n ? {\n city: sellerCity,\n country: t(mapCountryCodeToCountryKey(sellerCountryCodeIso2)),\n mapUrl: sellerMapUrl\n }\n : null;\n\n return {\n ...option,\n displayText: displayText,\n tooltipText: tooltipText,\n location: location\n };\n };\n\n const augmentedOptions = shippingOptions.map(option =>\n augmentOption(option)\n );\n\n const sortOptionsByPriceAscending = options =>\n options.sort((a, b) => a - b);\n const splitShippingOptionsIntoPrimaryAndSecondaryAndTakeAwayOptions = options => {\n const primaryOptions = [];\n const secondaryOptions = [];\n const takeAwayOptions = [];\n\n for (const option of options) {\n if (option.isTakeaway) {\n takeAwayOptions.push(option);\n } else if (option.toCountryCodeIso2 === buyerCountryCode) {\n primaryOptions.push(option);\n } else {\n secondaryOptions.push(option);\n }\n }\n return {\n primaryOptions,\n secondaryOptions,\n takeAwayOptions\n };\n };\n\n const {\n primaryOptions,\n secondaryOptions,\n takeAwayOptions\n } = splitShippingOptionsIntoPrimaryAndSecondaryAndTakeAwayOptions(\n augmentedOptions\n );\n\n sortOptionsByPriceAscending(primaryOptions);\n sortOptionsByPriceAscending(secondaryOptions);\n\n const shippingOptionFromCountryCode =\n augmentedOptions[0].fromCountryCodeIso2;\n const shippingOptionToCountryCode = augmentedOptions[0].toCountryCodeIso2;\n const shouldShowFromCountry =\n !isSwedenCountryCodeOrUndefined(shippingOptionFromCountryCode) &&\n shippingOptionFromCountryCode !== shippingOptionToCountryCode;\n\n const inAllowedBuyerRegion = isInternationalShippingToCountryAllowed(\n allowedBuyerRegion,\n buyerCountryCode\n );\n const showMoreInfoFoldOut =\n secondaryOptions.length > 0 || shippingTerms || !inAllowedBuyerRegion;\n const hasTakeawayOption = takeAwayOptions && takeAwayOptions.length > 0;\n const hasOnlyTakeawayOption =\n hasTakeawayOption &&\n primaryOptions.length == 0 &&\n secondaryOptions.length == 0;\n const hasOnlyNotSpecified =\n primaryOptions.length === 1 && primaryOptions[0].isNotSpecified;\n\n const hasMap = postcode => {\n const location = postcode && postcode.location;\n return postcode && location && location.latitude && location.longitude;\n };\n\n const buyerRegionText = translateBuyerRegionText(t, allowedBuyerRegion);\n const fromCountryText = shouldShowFromCountry ? (\n <>\n {' '}\n {t('vip_from_country_text', {\n shippingOptionCountry: t(\n mapCountryCodeToCountryKey(shippingOptionFromCountryCode)\n )\n })}{' '}\n \n \n ) : (\n ''\n );\n\n return (\n \n {combinedShippingDays > 0 && !hasOnlyTakeawayOption && (\n
    \n \n
    \n )}\n \n }>\n
    \n {!hasOnlyTakeawayOption && (\n

    \n {buyerRegionText}\n {fromCountryText}\n

    \n )}\n {(inAllowedBuyerRegion || hasOnlyNotSpecified) && (\n \n )}\n {showMoreInfoFoldOut && (\n \n \n {shippingTerms && (\n \n )}\n\n {!inAllowedBuyerRegion && (\n
    \n {t('vip_object_not_shipped_to_country')}\n
    \n )}\n \n }\n />\n )}\n {hasTakeawayOption && (\n <>\n \n\n {hasMap(seller.postcode) && (\n
    \n \n \n \n
    \n )}\n \n )}\n
    \n \n );\n};\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","/* eslint-disable better-mutation/no-mutation */\nimport { compose, createStore, applyMiddleware } from 'redux';\nimport { Provider } from 'react-redux';\nimport React from 'react';\nimport ReduxThunk from 'redux-thunk';\nimport rootReducer from './root-reducer';\nimport { routerMiddleware } from 'connected-react-router';\nimport { getHistory } from 'tradera-utils/history';\nimport { sentryReduxEnhancer } from 'tradera-utils/sentry/redux';\nimport { initializeState } from './state-initializer';\nimport initData from 'packages/init-data';\nimport { isServer } from 'tradera-utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\n// Ensure only 1 redux store;\nlet reduxStore;\n\n// Apply middlewares via redux compose;\nconst getComposer = history => {\n const middlewares = [ReduxThunk];\n if (history) {\n middlewares.push(routerMiddleware(history));\n }\n let composeEnhancers;\n // If url contains ?debug-redux devtools will be enabled in production;\n if (\n (process && process.env && process.env.NODE_ENV !== 'production') ||\n window.location.search.includes('debug-redux')\n ) {\n composeEnhancers =\n window['__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'] || compose;\n } else {\n composeEnhancers = compose;\n }\n return composeEnhancers(\n applyMiddleware(...middlewares),\n sentryReduxEnhancer\n );\n};\n\n// Hot reloading\nconst enableWebPackHotModuleReplacementForReducers = (module, store) => {\n if (!module.hot) {\n return;\n }\n module.hot.accept('./root-reducer', () => {\n const nextRootReducer = require('./root-reducer');\n store.replaceReducer(nextRootReducer);\n });\n};\n\nconst configureStore = browserHistory => {\n reduxStore = createStore(\n rootReducer(browserHistory),\n getComposer(browserHistory)\n );\n\n // make it possible to observe state changes. used by syi\n reduxStore.observe = function(select, onChange) {\n var currentState;\n function handleChange() {\n var nextState = select(reduxStore.getState());\n if (nextState !== currentState) {\n var previousState = currentState;\n currentState = nextState;\n onChange(previousState, currentState);\n }\n }\n\n var unsubscribe = reduxStore.subscribe(handleChange);\n handleChange();\n return unsubscribe;\n };\n\n enableWebPackHotModuleReplacementForReducers(module, reduxStore);\n return reduxStore;\n};\n\nexport const globalStore = () =>\n reduxStore ? reduxStore : configureStore(getHistory());\nconst store = globalStore();\n\ninitializeState(initData)(store.dispatch);\n\nwindow.getState = store.getState; // TODO: REmove me or put behind ENV-check (dev only)\n\nexport default store;\n\nexport const ProviderWithGlobalStore = props => (\n \n);\n","import 'react';\nimport { itemHasBidsButReservePriceNotReached } from './item-labels';\nimport { columns } from '../../constants/column-definitions';\nimport { PAGE_NAMES } from '../../constants/page';\nimport {\n getBidCount,\n getMaxBid,\n getShippingCost\n} from '../../helpers/item-helper';\nimport { infoItemComponents } from 'tradera-apps/my-tradera/app/components/listing/item/info-item-components';\n\nconst labels = {\n [columns.CurrentPrice]: 'Pris',\n [columns.TransactionDate]: 'Avslutad',\n [columns.EndDate]: 'Sluttid',\n [columns.ShippingCost]: 'Frakt',\n [columns.Bids]: '#Bud',\n [columns.ItemId]: 'Objektnr',\n [columns.OpeningBid]: 'Utrop',\n [columns.ReservePrice]: 'Res.pris',\n [columns.BuyItNow]: 'Köp nu',\n [columns.OwnReference]: 'Ref',\n [columns.MaxBid]: 'Maxbud',\n [columns.TimeLeft]: 'Tid kvar'\n};\n\nconst columnCssClassCore = {\n [columns.CurrentPrice]: 'myt-list3__table-column-current-price', // show tablet\n [columns.TransactionDate]: 'myt-list3__table-column-end-date',\n [columns.EndDate]: 'myt-list3__table-column-end-date',\n [columns.ShippingCost]: 'myt-list3__table-column-shipping-cost', // show tablet\n [columns.Bids]: 'myt-list3__table-column-current-bids', // show tablet\n [columns.ItemId]: 'myt-list3__table-column-item-id',\n [columns.OpeningBid]: 'myt-list3__table-column-opening-bid',\n [columns.ReservePrice]: 'myt-list3__table-column-reserve-price',\n [columns.BuyItNow]: 'myt-list3__table-column-buy-it-now',\n [columns.OwnReference]: 'myt-list3__table-column-own-reference',\n [columns.MaxBid]: 'myt-list3__table-column-maxbid',\n [columns.TimeLeft]: 'myt-list3__table-column-timeleft'\n};\n\nconst getCoreCssClass = column => columnCssClassCore[column];\nconst getHeading = (label, cssClass, columnKey) => ({\n term: label,\n cssClass: cssClass,\n columnKey\n});\n\nexport const getTranslatedColumnKey = (t, columnKey) => {\n switch (columnKey) {\n case columns.CurrentPrice:\n return t('myt_columns_price');\n case columns.TransactionDate:\n return t('myt_columns_transactionDate');\n case columns.EndDate:\n return t('myt_columns_endTime');\n case columns.ShippingCost:\n return t('myt_columns_shipping');\n case columns.Bids:\n return `#${t('myt_columns_bids')}`;\n case columns.ItemId:\n return t('myt_columns_objectNo');\n case columns.OpeningBid:\n return t('myt_columns_startingPrice');\n case columns.ReservePrice:\n return t('myt_columns_reservePrice');\n case columns.BuyItNow:\n return t('myt_columns_buyNow');\n case columns.OwnReference:\n return t('myt_columns_ownReference');\n case columns.MaxBid:\n return t('myt_columns_maxBid');\n case columns.TimeLeft:\n return t('myt_columns_timeLeft');\n default:\n return '';\n }\n};\n\nexport const getHeadings = (t, columnDefinitions) => {\n return columnDefinitions\n ? columnDefinitions.map(columnKey =>\n getHeading(\n getTranslatedColumnKey(t, columnKey),\n columnCssClassCore[columnKey]\n )\n )\n : [];\n};\n\nexport const getUserHeading = (t, pageName) => {\n const highestBidder = t('myt_columns_highestBidder');\n\n switch (pageName) {\n case PAGE_NAMES.BuyerActiveItems:\n return getHeading(\n highestBidder,\n 'myt-list3__table-column-counterpart'\n );\n case PAGE_NAMES.SellerActive:\n return getHeading(\n highestBidder,\n 'myt-list3__table-column-counterpart'\n );\n case PAGE_NAMES.SellerUnsold:\n return getHeading(\n highestBidder,\n 'myt-list3__table-column-counterpart'\n );\n case PAGE_NAMES.BuyerPurchases:\n return getHeading(\n 'Mina Köp',\n 'myt-list3__table-column-counterpart'\n );\n default:\n return null;\n }\n};\n\n/**\n * @name GetColumns\n * @desc Builds the columns out for a single item;\n */\nexport const getColumns = (columnDefinitions, listViewType) => item => {\n const getColumn = (label, value, cssClass, title, columnKey) => ({\n term: label,\n definition: value,\n cssClass: cssClass,\n tagTitle: title,\n columnKey\n });\n\n const hasTransactionDate =\n !!item &&\n item.transaction &&\n item.transaction &&\n item.transaction.transactionDate;\n const price = item.transaction\n ? parseInt(item.transaction.price)\n : parseInt(item.currentPrice);\n\n const getCurrentPriceMeta = () =>\n itemHasBidsButReservePriceNotReached(item)\n ? columnCssClassCore[columns.CurrentPrice] + ' text-danger bold'\n : columnCssClassCore[columns.CurrentPrice];\n\n const getItemId = item.itemId;\n const itemType = item.listing.itemType;\n const hasHighestBidder =\n item && item.bidInformation && item.bidInformation.leadingBidder\n ? true\n : false;\n const shouldShowBids =\n itemType === 'Auction' ||\n (hasHighestBidder && itemType === 'AuctionBin') ||\n (hasHighestBidder &&\n item.transaction &&\n item.listing.purchaseType === 'Auction')\n ? true\n : false;\n const bidCount = getBidCount(item);\n const getTransactionDate = hasTransactionDate\n ? item.transaction.transactionDate.formatted\n : null;\n const getEndDate = item.listing.endDate.formatted;\n const getCurrentPrice = () => ({\n component: infoItemComponents.ITEM_PRICE,\n transaction: item.transaction,\n price: price\n });\n const getTimeLeftAsString = item.listing.timeLeft\n ? item.listing.timeLeft.timeleft\n : null;\n\n const columnCssClass = {\n [columns.CurrentPrice]: getCurrentPriceMeta(),\n [columns.TransactionDate]:\n getCoreCssClass(columns.TransactionDate) +\n (hasTransactionDate && item.transaction.transactionDate.critical\n ? ' text-danger'\n : ''),\n [columns.EndDate]:\n getCoreCssClass(columns.EndDate) +\n (item.listing.endDate.critical ? ' text-danger' : ''),\n [columns.ShippingCost]: getCoreCssClass(columns.ShippingCost),\n [columns.Bids]: getCoreCssClass(columns.Bids),\n [columns.ItemId]: getCoreCssClass(columns.ItemId),\n [columns.OpeningBid]: getCoreCssClass(columns.OpeningBid),\n [columns.ReservePrice]: getCoreCssClass(columns.ReservePrice),\n [columns.BuyItNow]: getCoreCssClass(columns.BuyItNow),\n [columns.OwnReference]: getCoreCssClass(columns.OwnReference),\n [columns.Discount]: getCoreCssClass(columns.Discount) + ' text-danger',\n [columns.TimeLeft]: getCoreCssClass(columns.TimeLeft),\n [columns.MaxBid]: getCoreCssClass(columns.MaxBid)\n };\n\n const columnTitle = {\n [columns.CurrentPrice]: itemHasBidsButReservePriceNotReached(item)\n ? 'Reservationspris ej uppnått'\n : price,\n [columns.TransactionDate]: hasTransactionDate\n ? item.transaction.transactionDate.full\n : null,\n [columns.EndDate]:\n item &&\n item.listing &&\n item.listing.endDate &&\n item.listing.endDate.critical\n ? item.listing.timeLeft.timeleft\n : item.listing.endDate.full,\n [columns.ShippingCost]: '',\n [columns.Bids]: bidCount,\n [columns.ItemId]: '',\n [columns.OpeningBid]: '',\n [columns.ReservePrice]: '',\n [columns.BuyItNow]: '',\n [columns.OwnReference]: '',\n [columns.Discount]: '',\n [columns.TimeLeft]: getTimeLeftAsString\n };\n\n const getBids =\n shouldShowBids && bidCount\n ? {\n component: infoItemComponents.BIDS,\n itemId: getItemId,\n bidCount: bidCount\n }\n : '-';\n const getOpeningBid =\n item.listing.pricing.openingBid > 0\n ? item.listing.pricing.openingBid\n : ' ';\n const getReservePrice =\n item.listing.pricing.reservePrice > 0\n ? item.listing.pricing.reservePrice\n : 0;\n const getBuyItNow =\n item.listing.pricing.buyItNow > 0 ? item.listing.pricing.buyItNow : 0;\n const getOwnReference = item.listing.ownReference\n ? item.listing.ownReference\n : ' ';\n const getDefinitionForPriceLabel = price => ({\n component: infoItemComponents.PRICE_LABEL,\n price\n });\n const getTimeLeft = {\n component: infoItemComponents.TIME_LEFT,\n timeLeft: item.listing.timeLeft\n };\n const shippingCost = getShippingCost(item, listViewType)();\n\n const definitions = {\n [columns.CurrentPrice]: getCurrentPrice(),\n [columns.TransactionDate]: getTransactionDate,\n [columns.EndDate]: getEndDate,\n [columns.ShippingCost]: shippingCost,\n [columns.Bids]: getBids,\n [columns.ItemId]: getItemId,\n [columns.OpeningBid]: getOpeningBid,\n [columns.ReservePrice]: getDefinitionForPriceLabel(getReservePrice),\n [columns.BuyItNow]: getDefinitionForPriceLabel(getBuyItNow),\n [columns.OwnReference]: getOwnReference,\n [columns.MaxBid]: getDefinitionForPriceLabel(getMaxBid(item)),\n [columns.TimeLeft]: getTimeLeft\n };\n\n return columnDefinitions.map(columnKey =>\n getColumn(\n columnKey === 'CurrentPrice' ? undefined : labels[columnKey],\n definitions[columnKey],\n columnCssClass[columnKey],\n columnTitle[columnKey],\n columnKey\n )\n );\n};\n\nexport default {\n getColumns,\n getHeadings\n};\n","import { logger } from 'packages/logger';\nimport * as gtm from 'tradera-apps/tradera/components/discover/helpers/search-gtm';\nimport { getReturnUrl } from 'tradera-utils/login';\nimport { DEFAULT_COOKIES } from 'tradera-constants/cookies';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { cache, CACHE_KEYS } from 'tradera-utils/cache';\nimport cookieUtil from 'tradera-utils/cookie';\nimport actionTypes from './action-types';\nimport {\n getSystemMessages,\n getMessagingNotifications,\n getDismissSwish\n} from './api';\nimport itemActions from '../items/actions';\nimport { getItem } from '../items/api';\n\nconst initialize = initialState => ({\n type: actionTypes.INITIALIZE,\n payload: initialState\n});\n\nconst toggleHeaderSearch = payload => ({\n type: actionTypes.TOGGLE_HEADER_SEARCH,\n payload\n});\n\nconst openGdprModal = payload => ({\n type: actionTypes.OPEN_GDPR_MODAL,\n payload\n});\n\nconst closeGdprModal = payload => ({\n type: actionTypes.CLOSE_GDPR_MODAL,\n payload\n});\n\nconst openGdprSettings = payload => ({\n type: actionTypes.OPEN_GDPR_SETTINGS,\n payload\n});\n\nconst closeGdprSettings = payload => ({\n type: actionTypes.CLOSE_GDPR_SETTINGS,\n payload\n});\n\nconst openQuickView = payload => (dispatch, getState) => {\n const { openedFrom, ...restOfPayload } = payload;\n\n if (getState().ui.quickView.loading) {\n return;\n }\n dispatch({\n type: actionTypes.LOADING_QUICK_VIEW,\n payload: true\n });\n\n return getItem(restOfPayload.itemId)\n .then(({ data }) => {\n if (data) {\n const updatedData = {\n ...data,\n imageFormats: data.imageFormats?.map(i => ({\n ...i,\n alt: i.alt || data.shortDescription\n }))\n };\n dispatch(itemActions.add([updatedData]));\n }\n dispatch({\n type: actionTypes.OPEN_QUICK_VIEW,\n payload: restOfPayload\n });\n gtm.trackAction('Quick View', `Open: from ${openedFrom}`);\n dispatch({\n type: actionTypes.LOADING_QUICK_VIEW,\n payload: false\n });\n return data;\n })\n .catch(error => {\n dispatch(closeQuickView());\n dispatch({\n type: actionTypes.LOADING_QUICK_VIEW,\n payload: false\n });\n logger(error);\n });\n};\n\nconst closeQuickView = payload => ({\n type: actionTypes.CLOSE_QUICK_VIEW,\n payload\n});\n\nconst openVideoModal = payload => ({\n type: actionTypes.OPEN_VIDEO_MODAL,\n payload\n});\n\nconst closeVideoModal = payload => ({\n type: actionTypes.CLOSE_VIDEO_MODAL,\n payload\n});\n\nconst openYoutubeVideoModal = payload => ({\n type: actionTypes.OPEN_YOUTUBE_VIDEO_MODAL,\n payload\n});\n\nconst closeYoutubeVideoModal = payload => ({\n type: actionTypes.CLOSE_YOUTUBE_VIDEO_MODAL,\n payload\n});\n\n/**\n * signIn\n * @param {object} payload\n * @param {string} payload.redirectUrl - where to send the user after login completes\n */\nconst signIn = payload => (dispatch, getStore) => {\n const {\n environment: { featureSwitches }\n } = getStore();\n\n if (!featureSwitches['login-anywhere']) {\n window.location = `/login${getReturnUrl(payload.redirectUrl)}`;\n } else {\n dispatch(openProfileMenu(payload.redirectUrl));\n }\n};\n\n/*\n Changes made to messaging modal will affect My Tradera as well!\n*/\nconst openMessagingModal = payload => ({\n type: actionTypes.OPEN_MESSAGING_MODAL,\n payload\n});\n\nconst closeMessagingModal = payload => ({\n type: actionTypes.CLOSE_MESSAGING_MODAL,\n payload\n});\n\n/**\n * Open a notification optin modal\n *\n * @param {boolean} type - type of notifications to show modal for\n * @returns {function(*, *): boolean}\n */\nconst openNotificationOptinModal = (\n modalType,\n gaLabel,\n title,\n description,\n tagGroups\n) => async (dispatch, getState) => {\n const { pushNotifications } = getState();\n if (!pushNotifications.enabled) {\n return;\n }\n if (pushNotifications.shownModals[modalType] === true) {\n return;\n }\n dispatch({\n type: actionTypes.OPEN_NOTIFICATION_OPTIN_MODAL,\n payload: {\n modalType,\n gaLabel,\n title,\n description,\n tagGroups\n }\n });\n};\n\nconst closeNotificationOptinModal = payload => ({\n type: actionTypes.CLOSE_NOTIFICATION_OPTIN_MODAL,\n payload\n});\n\nconst openProfileMenu = payload => ({\n type: actionTypes.OPEN_PROFILE_MENU,\n payload\n});\n\nconst closeProfileMenu = payload => ({\n type: actionTypes.CLOSE_PROFILE_MENU,\n payload\n});\n\nconst openCategoryDropdownMenu = payload => ({\n type: actionTypes.OPEN_CATEGORY_DROPDOWN_MENU,\n payload\n});\n\nconst closeCategoryDropdownMenu = payload => ({\n type: actionTypes.CLOSE_CATEGORY_DROPDOWN_MENU,\n payload\n});\n\nconst openSearchForm = payload => ({\n type: actionTypes.OPEN_SEARCH_FORM,\n payload\n});\n\nconst closeSearchForm = payload => ({\n type: actionTypes.CLOSE_SEARCH_FORM,\n payload\n});\n\nconst updateItemLayout = value => {\n const defaultCookie = DEFAULT_COOKIES['ITEM_LAYOUT'];\n const expires = defaultCookie.length;\n try {\n cookieUtil.createCookie(defaultCookie.key, value, expires);\n } catch (e) {\n logger(e);\n }\n return {\n type: actionTypes.ITEM_LAYOUT,\n payload: value\n };\n};\n\nconst updateSiteLayout = value => {\n const defaultCookie = DEFAULT_COOKIES['SITE_LAYOUT'];\n const expires = defaultCookie.length;\n try {\n cookieUtil.createCookie(defaultCookie.key, value, expires);\n } catch (e) {\n logger(e);\n }\n return {\n type: actionTypes.SITE_LAYOUT,\n payload: value\n };\n};\n\nconst updateSystemMessages = systemMessages => ({\n type: actionTypes.UPDATE_SYSTEM_MESSAGES,\n payload: systemMessages\n});\n\nconst fetchSystemMessages = () => async (dispatch, getState) => {\n const {\n environment: { featureSwitches },\n member: { isLoggedIn }\n } = getState();\n if (featureSwitches && featureSwitches['mytradera-alerts'] && isLoggedIn) {\n try {\n let systemMessages = cache.read(CACHE_KEYS.SYSTEM_MESSAGES);\n if (!systemMessages) {\n const fetchedMessages = await getSystemMessages();\n systemMessages = {};\n if (fetchedMessages && 'items' in fetchedMessages.data) {\n fetchedMessages.data.items.forEach(({ type }) => {\n // eslint-disable-next-line better-mutation/no-mutation\n systemMessages[type] = true;\n });\n cache.write(CACHE_KEYS.SYSTEM_MESSAGES, systemMessages);\n }\n }\n dispatch(updateSystemMessages(systemMessages));\n } catch (error) {\n // Invalidate cache to fetch fresh again next action\n cache.remove(CACHE_KEYS.SYSTEM_MESSAGES);\n switch (error.message) {\n case API_ERRORS.LOGGED_OUT:\n await dispatch(logOut());\n window.location = '/login/logout';\n break;\n case API_ERRORS.IGNORE_ME:\n case API_ERRORS.CANCELLED:\n case API_ERRORS.NETWORK:\n case API_ERRORS.TIMEOUT:\n break;\n default:\n logger(error);\n break;\n }\n }\n }\n};\n\nconst updateMessagingNotifications = payload => ({\n type: actionTypes.UPDATE_MESSAGING_NOTIFICATIONS,\n payload\n});\n\nconst fetchMessagingNotifications = () => async dispatch => {\n try {\n let messagingNotifications = cache.read(CACHE_KEYS.MESSAGING_BADGES);\n if (!messagingNotifications) {\n const { data } = await getMessagingNotifications();\n messagingNotifications = data;\n }\n dispatch(updateMessagingNotifications(messagingNotifications));\n } catch (error) {\n // Fail silently\n }\n};\n\nconst dismissSwish = () => dispatch => {\n dispatch({\n type: actionTypes.UPDATE_SYSTEM_MESSAGES,\n payload: {\n SwishNumberMissing: false\n }\n });\n cache.remove(CACHE_KEYS.SYSTEM_MESSAGES);\n getDismissSwish().catch(() => {\n // Fail silently\n });\n};\n\nconst logOut = () => async dispatch => {\n cache.remove(CACHE_KEYS.MESSAGING_BADGES);\n cache.remove(CACHE_KEYS.SYSTEM_MESSAGES);\n dispatch({\n type: actionTypes.LOG_OUT,\n payload: {}\n });\n};\n\nconst openItemSettings = payload => ({\n type: actionTypes.OPEN_ITEM_SETTINGS,\n payload: { item: payload }\n});\n\nconst closeItemSettings = payload => ({\n type: actionTypes.CLOSE_ITEM_SETTINGS,\n payload\n});\n\nexport const openModal = ({ modalId, data }) => ({\n type: actionTypes.OPEN_MODAL,\n payload: { modalId, data }\n});\n\nexport const closeModal = () => ({\n type: actionTypes.CLOSE_MODAL\n});\n\nexport const openShareModal = payload => ({\n type: actionTypes.OPEN_SHARE_MODAL,\n payload\n});\n\nexport const closeShareModal = () => ({\n type: actionTypes.CLOSE_SHARE_MODAL,\n payload: false\n});\n\nexport const openHelpSection = payload => ({\n type: actionTypes.OPEN_HELP_SECTION,\n payload\n});\n\nexport const closeHelpSection = () => ({\n type: actionTypes.CLOSE_HELP_SECTION,\n payload: false\n});\n\nexport default {\n initialize,\n toggleHeaderSearch,\n openGdprModal,\n closeGdprModal,\n openGdprSettings,\n closeGdprSettings,\n openQuickView,\n closeQuickView,\n openVideoModal,\n closeVideoModal,\n openYoutubeVideoModal,\n closeYoutubeVideoModal,\n signIn,\n openMessagingModal,\n closeMessagingModal,\n openNotificationOptinModal,\n closeNotificationOptinModal,\n updateItemLayout,\n updateSiteLayout,\n updateSystemMessages,\n fetchSystemMessages,\n updateMessagingNotifications,\n fetchMessagingNotifications,\n dismissSwish,\n openProfileMenu,\n closeProfileMenu,\n openCategoryDropdownMenu,\n closeCategoryDropdownMenu,\n openSearchForm,\n closeSearchForm,\n openItemSettings,\n closeItemSettings,\n logOut\n};\n","import axios from 'axios';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n API_ERRORS,\n axiosConfigs,\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport { touchWebClient } from 'tradera-utils/http';\n\nfunction getSystemMessages() {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.MEMBER_SYSTEM_MESSAGES, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse())\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\nfunction getMessagingNotifications() {\n return touchWebClient.get('api/messaging/stats', {\n cancelTokenId: 'fetchMessagingNotifications',\n ...axiosConfigs.authenticated\n });\n}\n\nfunction getDismissSwish() {\n return axios\n .get(ENDPOINTS.PAYMENT_SWISH_OPTOUT, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse())\n .catch(handleError());\n}\n\nexport { getSystemMessages, getMessagingNotifications, getDismissSwish };\n","import axios from 'axios';\nimport {\n utilizeCancelToken,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { FORCE_GEO_DEV } from 'tradera-constants/cookies';\nimport { isServer } from 'tradera-utils/nextjs';\n\nexport const fetchGeolocation = geoPublicBaseUrl => {\n if (isServer) {\n return Promise.reject(\n 'Cannot fetch geo information from server as that would give the wrong result.'\n );\n }\n\n const { cancel, cancelToken } = utilizeCancelToken('fetchGeolocation');\n\n if (cancel) cancel();\n\n const search = (window && window.location && window.location.search) || '';\n return axios\n .get(getGeoPublicApiLocationUrl(geoPublicBaseUrl, search), {\n cancelToken\n })\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const getGeoPublicApiLocationUrl = (geoPublicBaseUrl, search) => {\n const originalUrl = `${geoPublicBaseUrl}/api/country`;\n const forceGeoDevMatch = search.match(/force-geo-(.*?)-dev/);\n\n if (forceGeoDevMatch) {\n cookieUtil.createCookie(FORCE_GEO_DEV, forceGeoDevMatch[1]);\n return `${originalUrl}/${forceGeoDevMatch[1]}`;\n }\n\n const forceGeoDevCookie = cookieUtil.readCookie(FORCE_GEO_DEV);\n if (forceGeoDevCookie) {\n return `${originalUrl}/${forceGeoDevCookie}`;\n }\n\n return originalUrl;\n};\n","import { nullifyUndefinedProperties } from 'tradera-utils/object';\n\nexport default initData => {\n const {\n cleanedMemberAlias,\n facebookId,\n isLoggedIn,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberCountry,\n memberCountryCodeIso2,\n memberEmail,\n memberEmailMd5,\n memberEmailSha256,\n memberFirstName,\n memberId,\n memberHeroImage,\n memberLastName,\n memberBirthdate,\n memberTown,\n hasTraderaPay\n } = initData;\n return nullifyUndefinedProperties({\n cleanedMemberAlias,\n facebookId,\n geolocation: null,\n isLoggedIn,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberCountry,\n memberCountryCodeIso2,\n memberEmail,\n memberEmailMd5,\n memberEmailSha256,\n memberFirstName,\n memberId,\n memberHeroImage,\n memberLastName,\n memberBirthdate,\n memberTown,\n hasTraderaPay\n });\n};\n","import actionTypes from './action-types';\nimport { fetchGeolocation } from './api';\nimport { setCurrencyIfNotChosen } from 'tradera-state/multi-currency/actions';\nimport { removeShippingCountryCookieIfSwedish } from 'tradera-state/shipping-region/actions';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { logger } from 'packages/logger';\nimport getInitialState from './initial-state';\n\nexport const initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: getInitialState(initData)\n});\n\nexport const initializeServerMember = member => ({\n type: actionTypes.INITIALIZE,\n payload: member\n});\n\nexport const defaultAction = data => ({\n type: actionTypes.DEFAULT_ACTION,\n payload: data\n});\n\nconst setIsFetchingGeolocation = isFetchingGeolocation => ({\n type: actionTypes.SET_IS_FETCHING_GEOLOCATION,\n payload: {\n isFetchingGeolocation\n }\n});\n\nconst setGeolocation = payload => ({\n type: actionTypes.SET_GEOLOCATION,\n payload\n});\n\nconst failedLoadingGeolocation = () => ({\n type: actionTypes.FAILED_LOADING_GEOLOCATION\n});\n\nexport const setMemberHeroImage = payload => ({\n type: actionTypes.SET_MEMBER_HERO_IMAGE,\n payload\n});\n\nexport const getGeolocation = () => (dispatch, getState) => {\n dispatch(setIsFetchingGeolocation(true));\n const { PUBLIC_GEO_PUBLIC_API_BASE_URL } = getState().environment.variables;\n return fetchGeolocation(PUBLIC_GEO_PUBLIC_API_BASE_URL)\n .then(response => {\n const { data } = response;\n dispatch(setGeolocation(data));\n dispatch(setCurrencyIfNotChosen(data.currency));\n dispatch(setIsFetchingGeolocation(false));\n dispatch(removeShippingCountryCookieIfSwedish(data));\n return data;\n })\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.ABORTED:\n case API_ERRORS.CANCELLED:\n case API_ERRORS.NETWORK:\n break;\n default:\n logger(error);\n break;\n }\n dispatch(failedLoadingGeolocation());\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';\nimport ALink from 'tradera-components/alink/alink';\nimport MultiCurrency from '../multi-currency/multi-currency';\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 { useSelector } from 'react-redux';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport ITEM_TYPES from 'tradera-constants/item-types';\nimport { useDayJs } from 'tradera-hooks/use-day-js';\n\nfunction ItemListCard({\n className,\n item = {},\n lazy,\n onClick,\n onAddToWishlist,\n onQuickView,\n onRemoveFromWishlist,\n onAttributeButtonClick,\n onSettings,\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 const dayjs = useDayJs();\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 ready: PropTypes.bool,\n isShopOwnedByCurrentMember: PropTypes.bool\n};\n\nexport default ItemListCard;\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","export default {\n DEFAULT_ACTION: 'initData/default',\n INITIALIZE: 'initData/INITIALIZE'\n};\n","import { selectFiltersState } from 'tradera-apps/my-tradera/app/state/selectors/filters';\n\nconst getDefaultFilters = (filtersState, checkModifiersExist) => {\n return {\n 'filters[paging][page]':\n checkModifiersExist && filtersState.modifiers.paging\n ? filtersState.modifiers.paging.page\n : '',\n 'filters[paging][size]':\n checkModifiersExist && filtersState.modifiers.paging\n ? filtersState.modifiers.paging.size\n : '',\n 'filters[selectedFilterBar]': checkModifiersExist\n ? filtersState.modifiers.selectedFilterBar\n : '',\n 'filters[sellerFilters][feedbackLeft]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.feedbackLeft\n : '',\n 'filters[sellerFilters][paid]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.paid\n : '',\n 'filters[sellerFilters][shipped]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.shipped\n : '',\n 'filters[sellerFilters][hidden]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.hidden\n : '',\n 'filters[buyerFilters][feedbackLeft]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.feedbackLeft\n : '',\n 'filters[buyerFilters][paid]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.paid\n : '',\n 'filters[buyerFilters][hidden]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.hidden\n : ''\n };\n};\n\n/** This matches query parameters to state filters.\n * @param {object} state\n * @returns {object}\n */\nexport const getAvailableQueryParams = state => {\n const filtersState = selectFiltersState(state);\n\n const checkModifiersExist =\n !!state && filtersState && filtersState.modifiers;\n\n const defaultFilters = getDefaultFilters(filtersState, checkModifiersExist);\n\n return {\n ...defaultFilters,\n 'filters[datatype]': checkModifiersExist\n ? filtersState.modifiers.datatype\n : '',\n 'filters[dateRange][field]':\n checkModifiersExist && filtersState.modifiers.dateRange\n ? filtersState.modifiers.dateRange.field\n : '',\n 'filters[dateRange][from]':\n checkModifiersExist && filtersState.modifiers.dateRange\n ? filtersState.modifiers.dateRange.from\n : '',\n 'filters[dateRange][to]':\n checkModifiersExist && filtersState.modifiers.dateRange\n ? filtersState.modifiers.dateRange.to\n : '',\n 'filters[hasBids]': checkModifiersExist\n ? filtersState.modifiers.hasBids\n : '',\n 'filters[itemCondition]': checkModifiersExist\n ? filtersState.modifiers.itemCondition\n : '',\n 'filters[itemType]': checkModifiersExist\n ? filtersState.modifiers.itemType\n : '',\n 'filters[processState]': checkModifiersExist\n ? filtersState.modifiers.processState\n : '',\n 'filters[purchaseType]': checkModifiersExist\n ? filtersState.modifiers.purchaseType\n : '',\n 'filters[query][properties]':\n checkModifiersExist && filtersState.modifiers.query\n ? filtersState.modifiers.query.properties\n : '',\n 'filters[query][scope]':\n checkModifiersExist && filtersState.modifiers.query\n ? filtersState.modifiers.query.scope\n : '',\n 'filters[query][searchQuery]':\n checkModifiersExist && filtersState.modifiers.query\n ? filtersState.modifiers.query.searchQuery\n : '',\n 'filters[reservePriceReached]': checkModifiersExist\n ? filtersState.modifiers.reservePriceReached\n : '',\n 'filters[searchType]': checkModifiersExist\n ? filtersState.modifiers.searchType\n : '',\n 'filters[sellerFilters][shippingBooked]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.shippingBooked\n : '',\n 'filters[sort][order]':\n checkModifiersExist && filtersState.modifiers.sort\n ? filtersState.modifiers.sort.order\n : '',\n 'filters[sort][sorting]':\n checkModifiersExist && filtersState.modifiers.sort\n ? filtersState.modifiers.sort.sorting\n : '',\n 'filters[userIs]': checkModifiersExist\n ? filtersState.modifiers.userIs\n : '',\n 'filters[selectedFilterBar]': checkModifiersExist\n ? filtersState.modifiers.selectedFilterBar\n : ''\n };\n};\n\n/**\n * Checks if a query parameter is in the available parameters.\n * @param {function} getState\n * @param {object} locationQuery\n */\nexport const checkStateOfQueryParams = (getState, locationQuery) => {\n let check = getAvailableQueryParams(getState());\n let checkItem = item =>\n !!check[item] &&\n check[item].toString() !== locationQuery[item].toString();\n return Object.keys(check).some(item => {\n if (!check[item] || !locationQuery[item]) {\n return false;\n }\n return checkItem(item) ? true : false;\n });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"language-select\":\"language-select--2fNZ6\",\"languageSelect\":\"language-select--2fNZ6\",\"language-select-row\":\"language-select-row--14WN1\",\"languageSelectRow\":\"language-select-row--14WN1\"};","// extracted by mini-css-extract-plugin\nexport default {\"translation-preference-form-toggle-input\":\"translation-preference-form-toggle-input--27odm\",\"translationPreferenceFormToggleInput\":\"translation-preference-form-toggle-input--27odm\"};","import React from 'react';\nimport { touchWebClient } from 'tradera-utils/http';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectAutomaticTranslationPreference } from 'tradera-state/language/selectors';\nimport styles from './translation-preference-menu-item.module.scss';\nimport { setAutomaticTranslationPreference } from 'tradera-state/language/reducer';\nimport { useTranslator } from 'tradera-lang/translate';\nimport { selectIsLoggedIn } from 'tradera-state/member/selectors';\n\nexport const TranslationPreferenceMenuItem = () => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n const automaticTranslationPreference = useSelector(\n selectAutomaticTranslationPreference\n );\n const isLoggedIn = useSelector(selectIsLoggedIn);\n\n const onAutomaticTranslationPreferenceChanged = async e => {\n const checked = e.target.checked;\n await touchWebClient.post(\n 'my/profile/save-automatic-translation-preference-setting',\n { isAutomaticTranslationPreferenceEnabled: checked }\n );\n\n dispatch(\n setAutomaticTranslationPreference({\n automaticTranslationPreference: checked\n })\n );\n };\n return isLoggedIn ? (\n
    \n \n {t('profileMenu_translationPreferenceHeading')}\n \n \n
    \n {t('profileMenu_translationPreferenceText')}\n
    \n
    \n ) : null;\n};\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 Flag from 'tradera-components/flag/flag';\nimport { getCountryCodeForFlagFromLanguage } from 'tradera-localization/languagecode';\nimport { useQualtive } from 'tradera-hooks/use-qualtive';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport styles from './language-select.module.scss';\nimport { TranslationPreferenceMenuItem } from './translation-preference-menu-item';\n\nexport const PlainLanguageSelect = ({\n languages,\n preferredLanguage,\n setPreferredLanguage,\n onLanguageSelected,\n inProfileMenu,\n title\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const { isQualtiveEnabled, openQualtiveModal } = useQualtive();\n\n const onLanguageChanged = (code, e) => {\n if (preferredLanguage.languageCodeIso2 === code) {\n return;\n }\n setPreferredLanguage(code, toLocalizedUrl);\n if (onLanguageSelected) {\n onLanguageSelected(code, e);\n }\n };\n return (\n
    \n {title && (\n
    \n {title}\n
    \n )}\n {languages.map(({ languageCodeIso2, displayName }) => (\n {\n onLanguageChanged(languageCodeIso2, e);\n }}\n data-language-select={languageCodeIso2}>\n \n \n {preferredLanguage.languageCodeIso2 ===\n languageCodeIso2 ? (\n {displayName}\n ) : (\n {displayName}\n )}\n \n {preferredLanguage.languageCodeIso2 ===\n languageCodeIso2 && (\n \n )}\n \n ))}\n \n {isQualtiveEnabled && (\n
    \n {t('siteHeader_languageDisclaimerShort')} \n openQualtiveModal(SURVEYS.language)}>\n {t('siteHeader_languageLeaveFeedBack')}\n \n
    \n )}\n
    \n );\n};\n\nPlainLanguageSelect.propTypes = {\n languages: PropTypes.arrayOf(\n PropTypes.shape({\n languageCodeIso2: PropTypes.string,\n displayName: 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","/* eslint-disable better-mutation/no-mutation */\nimport { createSlice } from '@reduxjs/toolkit';\nimport getInitialState from './initial-state';\n\nconst cartSlice = createSlice({\n name: 'cart',\n initialState: getInitialState(),\n reducers: {\n setFetching: (state, { payload }) => {\n state.isFetching = payload;\n },\n setCartData: (state, { payload }) => {\n state.isFetching = false;\n state.merchantPreOrders = payload.merchantPreOrders;\n state.errors = {};\n },\n setError: (state, { payload }) => {\n state.errors[payload.id] = payload.message;\n }\n }\n});\n\nexport const { setFetching, setCartData, setError } = cartSlice.actions;\n\nexport default cartSlice.reducer;\n","export default () => {\n return {\n isFetching: false,\n merchantPreOrders: [],\n errors: {}\n };\n};\n","export default {\n INITIALIZE: 'TRADERA_SHOP/INITIALIZE',\n SET_IS_LOADING: 'TRADERA_SHOP/SET_IS_LOADING',\n SET_ITEM_DETAILS: 'TRADERA_SHOP/SET_ITEM_DETAILS',\n SET_PRODUCT: 'TRADERA_SHOP/SET_PRODUCT'\n};\n","import { nullifyUndefinedProperties } from 'tradera-utils/object';\nimport { capitalize } from 'tradera-utils/string';\nimport {\n SUPPORTED_LANGUAGES,\n DEFAULT_LANGUAGE\n} from 'tradera-lang/constants.mjs';\n\nconst getInitialPreferredLanguage = (\n languageCodeIso2,\n availableLanguages,\n defaultLanguage\n) => {\n const availableIsoCodes = availableLanguages.map(\n lang => lang.languageCodeIso2\n );\n if (\n !!languageCodeIso2 &&\n availableIsoCodes.indexOf(languageCodeIso2) !== -1\n ) {\n return availableLanguages.find(\n l => l.languageCodeIso2 === languageCodeIso2\n );\n }\n\n return defaultLanguage;\n};\n\nconst getLanguageDisplayName = languageCodeIso2 =>\n capitalize(\n // Only works on server side, lacks good browser support\n new Intl.DisplayNames([languageCodeIso2], { type: 'language' }).of(\n languageCodeIso2\n )\n );\n\nexport const getInitialServerLanguage = ({\n preferredLanguage = DEFAULT_LANGUAGE,\n memberCountryCodeIso2 = null,\n automaticTranslationPreference = false\n}) => {\n const defaultLanguage = {\n languageCodeIso2: preferredLanguage,\n displayName: getLanguageDisplayName(preferredLanguage)\n };\n const availableLanguages = SUPPORTED_LANGUAGES.map(languageCodeIso2 => ({\n languageCodeIso2,\n displayName: getLanguageDisplayName(languageCodeIso2)\n }));\n\n return {\n preferred: getInitialPreferredLanguage(\n preferredLanguage,\n availableLanguages,\n defaultLanguage\n ),\n available: availableLanguages,\n memberCountryCodeIso2,\n automaticTranslationPreference\n };\n};\n\nexport default initData => {\n const result = nullifyUndefinedProperties({\n preferred: getInitialPreferredLanguage(\n initData.languageCodeIso2,\n initData.availableLanguages || [],\n initData.defaultLanguage\n ),\n memberCountryCodeIso2: initData.memberCountryCodeIso2,\n available: initData.availableLanguages,\n automaticTranslationPreference: initData.automaticTranslationPreference\n });\n return result;\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport getInitialState, { getInitialServerLanguage } from './initial-state';\n\nconst languageSlice = createSlice({\n name: 'language',\n initialState: {},\n reducers: {\n initialize: (_state, { payload }) => {\n return getInitialState(payload);\n },\n initServerLanguage: (_state, { payload }) => {\n return getInitialServerLanguage(payload);\n },\n setPreferred: (state, action) => {\n state.preferred =\n state.available.find(\n language => language.languageCodeIso2 === action.payload\n ) || {};\n },\n setAutomaticTranslationPreference: (state, { payload }) => {\n state.automaticTranslationPreference =\n payload.automaticTranslationPreference;\n }\n }\n});\n\nexport const {\n initialize,\n initServerLanguage,\n setPreferred,\n setAutomaticTranslationPreference\n} = languageSlice.actions;\nexport default languageSlice.reducer;\n","export const infoItemComponents = {\n BIDS: 'BIDS',\n TIME_LEFT: 'TIME_LEFT',\n ITEM_PRICE: 'ITEM_PRICE',\n PRICE_LABEL: 'PRICE_LABEL'\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from '../vip-shared/separators.module.scss';\n\nconst InfoSection = ({\n children,\n title,\n titleRightContentArea,\n showSeparators\n}) => {\n return (\n \n
    \n
    \n

    {title}

    \n {titleRightContentArea}\n
    \n {children}\n
    \n \n );\n};\n\nInfoSection.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string,\n titleRightContentArea: PropTypes.node,\n showSeparators: PropTypes.bool\n};\n\nInfoSection.defaultProps = {\n showSeparators: true\n};\n\nexport default InfoSection;\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","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 { LocalLoader } from 'tradera-components/loader/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 \n {t(\n 'internationalwacko_cardverificationmodal_welcome'\n )}\n {' '}\n {t(\n 'internationalwacko_cardverificationmodal_info'\n )}\n

    \n\n
    \n\n

    \n {t(\n 'internationalwacko_cardverificationmodal_disclaimer'\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';\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 { isNextJs } from 'tradera-utils/nextjs';\nimport { NextArrow, PreviousArrow } from '../arrows';\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: !isNextJs, // Enables SSR\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","// extracted by mini-css-extract-plugin\nexport default {\"view-item-video\":\"view-item-video--VPG9e\",\"viewItemVideo\":\"view-item-video--VPG9e\"};","import React, { useEffect, useRef } from 'react';\nimport styles from './view-item-video.module.scss';\n\nexport const ViewItemVideo = ({\n className,\n autoPlay,\n playsInline,\n controls,\n loop,\n muted,\n image,\n isInView\n}) => {\n const { normal, video } = image;\n\n const videoRef = useRef(null);\n\n useEffect(() => {\n const video = videoRef.current;\n if (isInView) {\n video.play();\n } else {\n video.pause();\n }\n }, [isInView]);\n\n return (\n \n \n \n );\n};\n\nViewItemVideo.defaultProps = {\n className: '',\n autoPlay: true,\n playsInline: true,\n muted: true,\n loop: true,\n controls: false\n};\n","import React, { useCallback, useEffect, useRef, useState } 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/basic';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport { ViewItemVideo } from 'tradera-components/carousels/view-item-carousel-zoom/view-item-video';\n\nconst ImageGalleryModal = props => {\n const {\n images,\n initialSlideIndex,\n closeModalCallback,\n isVideoEnabled,\n ...rest\n } = 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 [activeSlideIndex, setActiveSlideIndex] = useState(initialSlideIndex);\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 afterChange: index => {\n setActiveSlideIndex(index);\n }\n };\n\n return (\n \n
    \n \n images.map((image, index) => (\n \n \n {isVideoEnabled && image.video ? (\n \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-constants/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 // eslint-disable-next-line better-mutation/no-mutation\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 {\n image,\n enableZoom,\n handleZoomClick,\n defaultAltText\n } = this.props;\n const { hover, zoomImageLargeEnough } = this.state;\n const { alt, normal, smallFit, mediumFit, largeFit } = image;\n const altText = alt || defaultAltText;\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 defaultAltText: PropTypes.string,\n image: PropTypes.shape({\n alt: PropTypes.string,\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-constants/breakpoints';\nimport BasicCarousel from '../basic/basic';\nimport { ImageGalleryModal } from 'components/modals/image-gallery-modal/image-gallery-modal';\nimport ViewItemImage from './view-item-image';\nimport { ViewItemVideo } from './view-item-video';\n\nclass ViewItemCarouselZoom extends React.Component {\n static propTypes = {\n carouselStyle: PropTypes.object,\n className: PropTypes.string,\n enableZoom: PropTypes.bool,\n defaultAltText: PropTypes.string,\n fixedHeight: PropTypes.bool,\n id: PropTypes.string,\n images: PropTypes.array.isRequired,\n pageType: PropTypes.string,\n actionButtons: PropTypes.object,\n isVideoEnabled: PropTypes.bool\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 defaultAltText,\n enableZoom,\n fixedHeight,\n id,\n images,\n actionButtons,\n isVideoEnabled,\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 const imageThumbnail = images[imageIndex].video\n ? images[imageIndex].normal\n : images[imageIndex].multiThumbnail;\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 if (isVideoEnabled && image.video) {\n return (\n {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n }}>\n \n
    \n );\n } else {\n return (\n {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n }}\n />\n );\n }\n })}\n
    \n {enableZoom && showZoomModal && (\n {\n this.setState({ showZoomModal: false });\n }}\n images={images}\n isVideoEnabled={isVideoEnabled}\n />\n )}\n \n );\n }\n}\n\nexport default ViewItemCarouselZoom;\n","export const getInitialState = ({\n localizationRegionPickerEnabled,\n memberCountryCodeIso2,\n isFunctionalCookiesEnabled,\n hasRegionPickerDismissedCookie,\n shippingCountryCookieValue,\n fallbackShippingCountry\n}) => {\n const regionPickerDismissed =\n isFunctionalCookiesEnabled && hasRegionPickerDismissedCookie;\n const preferredShippingCountry = memberCountryCodeIso2\n ? memberCountryCodeIso2\n : isFunctionalCookiesEnabled &&\n !!shippingCountryCookieValue &&\n shippingCountryCookieValue;\n return {\n availableShippingCountries: [],\n isLoadingAvailableShippingCountries: false,\n hasLoadedAvailableShippingCountries: false,\n shippingCountry: {\n countryCodeIso2:\n preferredShippingCountry ||\n fallbackShippingCountry.toUpperCase()\n },\n localizationRegionPickerEnabled,\n regionPickerDismissed\n };\n};\n","import cookieUtil from 'tradera-utils/cookie';\nimport {\n REGION_PICKER_DISMISSED,\n SHIPPING_COUNTRY\n} from 'tradera-constants/cookies';\nimport { fetchAvailableShippingCountries } from './api';\nimport {\n selectIsLoadingAvailableShippingCountries,\n selectHasLoadedAvailableShippingCountries\n} from './selectors';\n\nimport {\n initialize,\n setShippingCountry,\n setAvailableShippingCountries,\n beginLoadingAvailableShippingOptions,\n setDefaultShippingCountry\n} from './reducer';\nimport { setPreferredCurrencyThunk } from 'tradera-state/multi-currency/actions';\nimport { setPreferredLanguage } from 'tradera-state/language/actions';\nimport Analytics from 'packages/analytics';\nimport {\n getCountryCodeFromLanguage,\n getLanguageFromCountryCode\n} from 'tradera-localization/languagecode';\nimport { selectFeatureSwitches } from 'tradera-state/environment/selectors';\nimport { selectMemberCountryCodeIso2 } from 'tradera-state/member/selectors';\nimport { getInitialState } from './initial-state';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport { selectPreferredLanguageCode } from 'tradera-state/language/selectors';\n\nconst yearInMilliseconds = 1000 * 60 * 60 * 24 * 365;\n\nexport const updateShippingRegion = countryCodeIso2 => dispatch => {\n const expireDate = new Date(new Date().getTime() + yearInMilliseconds);\n cookieUtil.createCookie(SHIPPING_COUNTRY, countryCodeIso2, expireDate);\n\n dispatch(setShippingCountry({ countryCodeIso2 }));\n};\n\nexport const removeShippingCountryCookieIfSwedish = geolocation => dispatch => {\n if (\n geolocation.isoCode === 'SE' &&\n cookieUtil.hasCookie(SHIPPING_COUNTRY)\n ) {\n cookieUtil.eraseCookie(SHIPPING_COUNTRY);\n dispatch(setDefaultShippingCountry());\n }\n};\n\nexport const getAvailableShippingCountries = () => async (\n dispatch,\n getState\n) => {\n if (\n selectIsLoadingAvailableShippingCountries(getState()) ||\n selectHasLoadedAvailableShippingCountries(getState())\n ) {\n return;\n }\n\n dispatch(beginLoadingAvailableShippingOptions());\n const { shippingCountries } = await fetchAvailableShippingCountries();\n dispatch(setAvailableShippingCountries({ shippingCountries }));\n\n if (cookieUtil.hasCookie(SHIPPING_COUNTRY)) {\n dispatch(\n setShippingCountry({\n countryCodeIso2: cookieUtil.readCookie(SHIPPING_COUNTRY)\n })\n );\n }\n};\n\nexport const onLocalizationShippingRegionSelected = ({\n countryCodeIso2,\n currencyCode,\n toLocalizedUrl\n}) => dispatch => {\n const languageCodeIso2 = getLanguageFromCountryCode(countryCodeIso2);\n\n Analytics.trackEvent({\n category: 'Top navigation',\n action: 'Localization menu tooltip',\n label: `Set localization region - ${countryCodeIso2}`\n });\n\n dispatch(getAvailableShippingCountries()); //make sure we have loaded countries\n dispatch(updateShippingRegion(countryCodeIso2));\n dispatch(setPreferredCurrencyThunk(currencyCode));\n dispatch(setPreferredLanguage(languageCodeIso2, toLocalizedUrl));\n};\n\nconst getFallbackShippingCountry = state =>\n getCountryCodeFromLanguage(selectPreferredLanguageCode(state));\n\nexport const initializeFromInitData = initData => (dispatch, getState) => {\n const localizationRegionPickerEnabled =\n initData &&\n initData.featureSwitches &&\n !!initData.featureSwitches['localization-region-picker'];\n const memberCountryCodeIso2 = initData.memberCountryCodeIso2;\n const initialState = getInitialState({\n localizationRegionPickerEnabled,\n memberCountryCodeIso2,\n isFunctionalCookiesEnabled: GdprSettings.isFunctionalEnabled(),\n hasRegionPickerDismissedCookie: cookieUtil.hasCookie(\n REGION_PICKER_DISMISSED\n ),\n shippingCountryCookieValue: cookieUtil.readCookie(SHIPPING_COUNTRY),\n fallbackShippingCountry: getFallbackShippingCountry(getState())\n });\n dispatch(initialize(initialState));\n};\n\nexport const initializeFromState = (gdprSettings, ssrCookieUtil) => (\n dispatch,\n getState\n) => {\n const featureToggles = selectFeatureSwitches(getState());\n const memberCountryCodeIso2 = selectMemberCountryCodeIso2(getState());\n const initialState = getInitialState({\n localizationRegionPickerEnabled: !!featureToggles[\n 'localization-region-picker'\n ],\n memberCountryCodeIso2,\n isFunctionalCookiesEnabled: gdprSettings.isFunctionalEnabled(),\n hasRegionPickerDismissedCookie: ssrCookieUtil.hasCookie(\n REGION_PICKER_DISMISSED\n ),\n shippingCountryCookieValue: ssrCookieUtil.readCookie(SHIPPING_COUNTRY),\n fallbackShippingCountry: getFallbackShippingCountry(getState())\n });\n dispatch(initialize(initialState));\n};\n","import axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { finalizeResponse, handleError } from 'tradera-utils/api';\nimport { removeBannedCountries } from 'tradera-localization/countries';\n\nexport const fetchAvailableShippingCountries = () =>\n axios\n .get(ENDPOINTS.AVAILABLE_SHIPPING_COUNTRIES)\n .then(finalizeResponse())\n .then(({ data }) => ({\n shippingCountries: data.availableCountries\n .map(country => country.countryCodeIso2.toLowerCase())\n .filter(removeBannedCountries)\n }))\n .catch(handleError());\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 = () => {\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 setLocalizationSettingsVisible(false)}>\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\nexport default new ConsentService();\n","// extracted by mini-css-extract-plugin\nexport default {\"link-container\":\"link-container--1ds_S\",\"linkContainer\":\"link-container--1ds_S\",\"icon-row\":\"icon-row--5N-75\",\"iconRow\":\"icon-row--5N-75\"};","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n useTranslator,\n useCurrentLanguage,\n useUrlLocalizer\n} from 'tradera-lang/translate';\nimport {\n areLanguageCodesIso2Equal,\n isSwedishOrUndefined\n} from 'tradera-localization/languagecode';\nimport ConsentService from 'tradera-utils/consent-service';\nimport { useIsFeatureEnabled } from 'tradera-hooks/use-is-feature-enabled';\nimport styles from './footer-links.module.scss';\nimport { selectAvailableLanguageCodesIso2 } from 'tradera-state/language/selectors';\n\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 TwitterIcon from '@tradera/blueprint/theme/icons2/network-twitter.svg?jsx';\nimport BankidIcon from '@tradera/blueprint/theme/icons2/bankid.svg?jsx';\nimport { MitIdLogo } from 'tradera-components/international-identification-modal/mit-id-logo';\n\nconst FooterLinks = ({ links, callerId }) => {\n const { language } = useCurrentLanguage();\n\n const linksToRender = links.filter(link =>\n link.includedLanguages.find(lang =>\n areLanguageCodesIso2Equal(lang, language)\n )\n );\n\n return (\n <>\n {linksToRender.map(\n (\n { text, className, includedLanguages, href, icon, ...rest },\n index\n ) => {\n return (\n \n \n {icon && icon}\n {text}\n \n
  • \n );\n }\n )}\n \n );\n};\n\nexport const BuyingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const isNextWebBrandsPageEnabled = useSelector(\n state => !!state.environment.featureSwitches['next-web-brands-page']\n );\n const availableLanguageCodesIso2 = useSelector(\n selectAvailableLanguageCodesIso2\n );\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 includedLanguages: availableLanguageCodesIso2\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 includedLanguages: availableLanguageCodesIso2\n },\n {\n href: toLocalizedUrl(\n `/brands${isNextWebBrandsPageEnabled ? '?next=1' : ''}`\n ),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Populära varumärken',\n text: t('footer_popularBrands'),\n includedLanguages: availableLanguageCodesIso2\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 includedLanguages: ['SV']\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 includedLanguages: ['SV']\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 isPennybridgeCharitiesEnabled = useIsFeatureEnabled(\n 'pennybridge-charities'\n );\n const availableLanguageCodesIso2 = useSelector(\n selectAvailableLanguageCodesIso2\n );\n\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 includedLanguages: availableLanguageCodesIso2\n },\n {\n href: {\n SV: 'https://info.tradera.com/foretag/',\n DA: 'https://info.tradera.com/da/virksomhedskonto/'\n },\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 includedLanguages: ['SV', 'DA']\n },\n 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 includedLanguages: ['SV']\n },\n {\n href: toLocalizedUrl('/frakt'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Fraktkalkylator',\n text: t('footer_shippingCalculator'),\n includedLanguages: ['SV', 'DA', 'EN']\n },\n {\n href: {\n SV: 'https://info.tradera.com/butik-privat/',\n DA: 'https://info.tradera.com/da/butik-privat/'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Butik',\n text: t('footer_store'),\n includedLanguages: ['SV', 'DA']\n },\n {\n href: {\n SV:\n 'https://info.tradera.com/salja-pa-tradera/prislista-privat/',\n DA: 'https://info.tradera.com/da/price-list-personal-account/',\n DE: 'https://info.tradera.com/en/price-list-personal-account/',\n EN: 'https://info.tradera.com/en/price-list-personal-account/'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Priser',\n text: t('footer_prices'),\n includedLanguages: ['SV', 'DA', 'EN']\n },\n {\n href: {\n SV: 'https://prolister.tradera.com/'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'ProLister',\n text: t('footer_prolister'),\n includedLanguages: ['SV']\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 isQuantcastConsentEnabled = useIsFeatureEnabled('quantcast-consent');\n const availableLanguageCodesIso2 = useSelector(\n selectAvailableLanguageCodesIso2\n );\n\n const links = [\n {\n href: {\n SV:\n 'https://info.tradera.com/sakerhetscenter/regler-pa-tradera/',\n DA: 'https://info.tradera.com/da/rules-at-tradera-2/'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Regler på Tradera',\n text: t('footer_traderaRules'),\n includedLanguages: ['SV', 'DA']\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 includedLanguages: ['SV']\n },\n {\n href: {\n SV: 'https://info.tradera.com/sakerhetscenter',\n DA: 'https://info.tradera.com/da/security-center/'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Säkerhet',\n text: t('footer_security'),\n includedLanguages: ['SV', 'DA']\n },\n {\n href: {\n SV: 'https://info.tradera.com',\n DA: 'https://info.tradera.com/da',\n DE: 'https://info.tradera.com/en',\n EN: 'https://info.tradera.com/en'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Vanliga frågor',\n text: t('footer_faq'),\n includedLanguages: availableLanguageCodesIso2\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 includedLanguages: ['SV']\n },\n {\n href: 'https://info.tradera.com/kontakt/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kontakta oss',\n text: t('footer_contactUs'),\n includedLanguages: ['SV']\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 includedLanguages: availableLanguageCodesIso2\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 (isQuantcastConsentEnabled) {\n ConsentService.openUi();\n } else {\n openGdprSettings();\n }\n },\n includedLanguages: availableLanguageCodesIso2\n }\n ];\n\n return (\n
    \n

    {t('footer_contactHelpHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const InformationLinks = () => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n const availableLanguageCodesIso2 = useSelector(\n selectAvailableLanguageCodesIso2\n );\n\n const links = [\n {\n href: isSwedishOrUndefined(language)\n ? 'https://info.tradera.com/anvandaravtal/'\n : 'https://info.tradera.com/en/anvandaravtal-eng/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Användaravtal',\n text: t('footer_userAgreement'),\n includedLanguages: availableLanguageCodesIso2\n },\n {\n href: isSwedishOrUndefined(language)\n ? 'https://info.tradera.com/sakerhetscenter/integritetspolicy/'\n : 'https://info.tradera.com/en/integritetespolicy-eng/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Integritetspolicy',\n text: t('footer_integrityPolicy'),\n includedLanguages: availableLanguageCodesIso2\n },\n {\n href: isSwedishOrUndefined(language)\n ? 'https://info.tradera.com/cookies-webb-beacons-och-liknande-teknik/'\n : 'https://info.tradera.com/en/cookies-webb-beacons-och-liknande-teknik/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Cookies',\n text: t('footer_cookies'),\n includedLanguages: availableLanguageCodesIso2\n },\n {\n href: {\n SV: '/info/om-oss',\n DE: '/info/om-oss',\n EN: '/info/om-oss',\n DA: '/info/om-os'\n },\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Om oss',\n text: t('footer_aboutTradera'),\n includedLanguages: availableLanguageCodesIso2\n },\n {\n href: 'https://careers.tradera.com/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Jobb',\n text: t('footer_availableJobs'),\n includedLanguages: availableLanguageCodesIso2\n }\n ];\n\n return (\n
    \n

    {t('footer_informationHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const SocialLinks = () => {\n const { t } = useTranslator();\n const availableLanguageCodesIso2 = useSelector(\n selectAvailableLanguageCodesIso2\n );\n const { language } = useCurrentLanguage();\n const appLinks = {\n SV: {\n appStore:\n 'https://apps.apple.com/se/app/tradera-köp-och-sälj/id427984084',\n googlePlay:\n 'https://play.google.com/store/apps/details?id=com.tradera&hl=sv'\n },\n DA: {\n appStore:\n 'https://apps.apple.com/dk/app/tradera-køb-og-sælg/id427984084?l=da',\n googlePlay:\n 'https://play.google.com/store/apps/details?id=com.tradera&hl=da&gl=DK'\n },\n EN: {\n appStore:\n 'https://apps.apple.com/us/app/tradera-buy-sell/id427984084',\n googlePlay:\n 'https://play.google.com/store/apps/details?id=com.tradera&hl=en'\n },\n DE: {\n appStore:\n 'https://apps.apple.com/de/app/tradera-kaufen-und-verkaufen/id427984084',\n googlePlay:\n 'https://play.google.com/store/apps/details?id=com.tradera&hl=de'\n }\n };\n\n const links = [\n {\n ['aria-label']: 'Tradera Facebook',\n href: 'https://www.facebook.com/Tradera',\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'Sociala medier - Facebook',\n rel: 'nofollow',\n icon: ,\n includedLanguages: availableLanguageCodesIso2\n },\n {\n ['aria-label']: 'Tradera Twitter',\n href: 'https://twitter.com/tradera',\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'Sociala medier - Twitter',\n rel: 'nofollow',\n icon: ,\n includedLanguages: availableLanguageCodesIso2\n },\n {\n ['aria-label']: 'Tradera Instagram',\n href: {\n SV: 'https://www.instagram.com/tradera/',\n DE: 'https://www.instagram.com/tradera/',\n EN: 'https://www.instagram.com/tradera/',\n DA: 'https://www.instagram.com/tradera_dk/'\n },\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'Sociala medier - Instagram',\n rel: 'nofollow',\n icon: ,\n includedLanguages: availableLanguageCodesIso2\n },\n {\n ['aria-label']: 'Tradera LinkedIn',\n href: 'https://www.linkedin.com/company/tradera/',\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'Sociala medier - LinkedIn',\n rel: 'nofollow',\n icon: ,\n includedLanguages: availableLanguageCodesIso2\n },\n {\n ['aria-label']: 'Tradera BankId',\n href: 'https://www.bankid.com/',\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'BankId',\n target: '_blank',\n rel: 'nofollow',\n icon: ,\n includedLanguages: ['sv']\n },\n {\n ['aria-label']: 'Tradera MitId',\n href: 'https://www.mitid.dk/',\n ['data-ga-category']: 'Footer',\n ['data-ga-action']: 'Navigation',\n ['data-ga-label']: 'MitId',\n target: '_blank',\n rel: 'nofollow',\n icon: ,\n includedLanguages: ['da']\n }\n ];\n\n return (\n
    \n
    \n {/* Social media */}\n\n
      \n \n
    \n \n {/* App download */}\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 48 9\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFCC29\",\n d: \"M0 0h48v9H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45 0v9H3V0h42z\",\n fill: \"#FECC00\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.22 4.2l-.36.47c-.1.12-.26.35.3.35h3l.88-1.17c.55-.73.05-2.24-1.91-2.24h-7.74L9.04 3.4h7.32c.37 0 .36.13.18.37l-.32.43zm-1.87 1.25c-.57 0-.4-.22-.3-.35l.37-.5.3-.4c.19-.24.2-.37-.18-.37H11.2L8.5 7.38h6.57a4.68 4.68 0 003.75-1.93h-4.48zm8.13 1.93h-3.86l1.46-1.93h3.86l-1.47 1.93zm6.09-5.76l-1.48 1.95h-1.72l1.48-1.95h-3.86l-2.58 3.4h9.43l2.58-3.4h-3.85zm-.52 5.76H24.2l1.46-1.93h3.85l-1.46 1.93zM3 6.22v.4h5.37l.31-.4H3zm0-.76h6.26l-.31.4H3v-.4zm0 1.93h4.8l.3-.41H3v.4zm42-.76h-5.66l.31-.41H45v.4zm-6.23.76H45v-.41h-5.92l-.31.4zm1.15-1.52l.3-.41H45v.4h-5.08zm-4.74-.85l2.58-3.4h-4.08l-2.58 3.4h4.08zM30.35 6l.42-.55h8.75l-1.46 1.93h-6.19c-1.58 0-2-.75-1.52-1.38z\",\n fill: \"#D50029\"\n})));","// extracted by mini-css-extract-plugin\nexport default {\"image-container\":\"image-container--3Gg11\",\"imageContainer\":\"image-container--3Gg11\"};","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectIsOutsideSweden } from 'tradera-state/member/selectors';\nimport PaypalLogo from '@tradera/blueprint/theme/logos/paypal.svg?jsx';\nimport MastercardLogo from '@tradera/blueprint/theme/logos/mastercard_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';\nimport DhlLogo from './dhl.svg?jsx';\n\nimport SwishLogo from '@tradera/blueprint/theme/logos/swish_horizontal.svg?jsx';\nimport PaynovaLogo from '@tradera/blueprint/theme/logos/paynova.svg?jsx';\n\nimport styles from './footer-partners.module.scss';\n\nexport const FooterPartners = () => {\n const isOutsideSweden = useSelector(state => selectIsOutsideSweden(state));\n\n const partners = [\n {\n src: '/static/images/shipping/postnord.svg',\n alt: 'Postnord logo',\n height: 9,\n containerCss: styles.imageContainer\n },\n {\n src: '/static/images/shipping/schenker.svg',\n alt: 'Schenker logo',\n height: 9,\n containerCss: styles.imageContainer\n },\n {\n logo: ,\n containerCss: styles.imageContainer,\n hide: isOutsideSweden\n },\n {\n src: '/static/images/shipping/bring.svg',\n alt: 'Bring logo',\n height: 15,\n containerCss: styles.imageContainer,\n hide: !isOutsideSweden\n },\n {\n logo: ,\n containerCss: styles.imageContainer\n },\n {\n logo: ,\n containerCss: styles.imageContainer\n },\n {\n logo: ,\n hide: isOutsideSweden,\n containerCss: styles.imageContainer\n },\n {\n logo: ,\n containerCss: styles.imageContainer\n },\n {\n logo: ,\n hide: isOutsideSweden,\n containerCss: styles.imageContainer\n },\n {\n logo: \n },\n {\n logo: \n }\n ];\n\n return (\n <>\n {partners.map((partner, index) => {\n return !partner.hide ? (\n \n {partner.logo ? (\n partner.logo\n ) : (\n \n )}\n \n ) : null;\n })}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"site-footer\":\"site-footer--Hop1m\",\"siteFooter\":\"site-footer--Hop1m\",\"wrapper\":\"wrapper--15bXC\",\"symbol\":\"symbol--tlYV3\",\"logo\":\"logo--vnsX0\",\"play-animation\":\"play-animation--3N0nR\",\"playAnimation\":\"play-animation--3N0nR\",\"counter-clockwise\":\"counter-clockwise--1fr4x\",\"counterClockwise\":\"counter-clockwise--1fr4x\",\"logos-row\":\"logos-row--29nG7\",\"logosRow\":\"logos-row--29nG7\"};","import React from 'react';\nimport { connect } from 'react-redux';\nimport { useInView } from 'react-intersection-observer';\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 TraderaSymbol from '@tradera/blueprint/theme/logos/tradera_symbol.svg?jsx';\n\nimport {\n BuyingLinks,\n SellingLinks,\n ContactAndHelpLinks,\n InformationLinks,\n SocialLinks\n} from './footer-links';\nimport { FooterPartners } from './footer-partners';\n\nimport styles from './site-footer.module.scss';\n\nconst SiteFooter = ({ pageName, openGdprSettings }) => {\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 {/* Information */}\n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \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","export const getMessagingUrl = toLocalizedUrl =>\n toLocalizedUrl(`${window.origin}/messagingiframe`);\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","export default {\n ERRORS: {\n GENERIC:\n 'Något har gått fel på Tradera. Vi jobbar på att fixa det. Försök igen om en stund.'\n },\n SHIPPING_LABELS: {\n NO_SELECTED_SHIPPING: 'Inget fraktsätt valt',\n FREE_SHIPPING: 'Fri frakt',\n TAKEAWAY: 'Avhämtning'\n }\n};\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, { useEffect, useCallback } from 'react';\nimport PropType from 'prop-types';\nimport { RemoveScroll } from 'react-remove-scroll';\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","import { createSlice } from '@reduxjs/toolkit';\n\nconst resolveCurrency = (enabled, preferredCurrencyCookieValue, currencies) => {\n if (!enabled || !preferredCurrencyCookieValue) {\n return null;\n }\n return (\n currencies.find(\n currency => currency.code === preferredCurrencyCookieValue\n ) || null\n );\n};\n\nconst multiCurrencySlice = createSlice({\n name: 'multiCurrency',\n initialState: {},\n reducers: {\n initialize: (_state, { payload }) => {\n const { currencies = [], enabled, preferredCurrency } = payload;\n\n return {\n enabled,\n currencies,\n preferredCurrency: resolveCurrency(\n enabled,\n preferredCurrency,\n currencies\n )\n };\n },\n setPreferredCurrency: (state, { payload }) => {\n const { enabled, currencies } = state;\n\n return {\n ...state,\n preferredCurrency: resolveCurrency(\n enabled,\n payload.currencyCode,\n currencies\n )\n };\n }\n }\n});\n\nexport const { initialize, setPreferredCurrency } = multiCurrencySlice.actions;\nexport default multiCurrencySlice.reducer;\n","const SwedenCountryCode = 'SE';\n\nexport const isInternationalShippingToCountryAllowed = (\n region,\n countryCodeIso2\n) => {\n switch (region) {\n case 'Sweden':\n return isSwedenCountryCode(countryCodeIso2);\n case 'Nordic':\n return isNordicCountryCode(countryCodeIso2);\n case 'EU':\n return isEuCountryCode(countryCodeIso2);\n case 'International':\n return true;\n default:\n throw `Unhandled buyer region: ${region}`;\n }\n};\n\nexport const isSwedenCountryCode = countryCodeIso2 =>\n isCountryCode(SwedenCountryCode, countryCodeIso2);\n\nexport const isNordicCountryCode = countryCodeIso2 =>\n containsCode(nordicCountryCodes, countryCodeIso2);\n\nexport const isEuCountryCode = countryCodeIso2 =>\n containsCode(euCountryCodes, countryCodeIso2);\n\nconst containsCode = (codes, code) => !!codes.find(c => isCountryCode(code, c));\n\nconst isCountryCode = (c1, c2) => c1.toUpperCase() === c2.toUpperCase();\n\nconst nordicCountryCodes = [\n 'SE',\n 'FI',\n 'NO',\n 'DK',\n 'IS',\n 'GL',\n 'FO',\n 'AX',\n 'SJ'\n];\n\nconst euCountryCodes = [\n 'AT',\n 'BE',\n 'BG',\n 'CY',\n 'CZ',\n 'DE',\n 'DK',\n 'EE',\n 'EL',\n 'ES',\n 'FI',\n 'FR',\n 'GR',\n 'HR',\n 'HU',\n 'IE',\n 'IT',\n 'LT',\n 'LU',\n 'LV',\n 'MT',\n 'NL',\n 'PL',\n 'PT',\n 'RO',\n 'SE',\n 'SI',\n 'SK'\n];\n","import axios from 'axios';\nimport qs from 'qs';\nimport {\n utilizeCancelToken,\n checkResponseVersion,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\n\n/**\n *\n * @param {string} endpoint\n * @param {object} params\n * @param {string} baseURL\n * @param version\n * @returns {Promise<*>}\n */\nexport const getSearchResults = async (\n endpoint,\n params,\n baseURL = '',\n version\n) => {\n if (!params) {\n if (process && process.env && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'getSearchResults must have queryParams as the first argument'\n );\n }\n return;\n }\n\n const { cancel, cancelToken } = utilizeCancelToken('fetchCategoryList');\n if (cancel) cancel();\n\n return axios\n .get(`${endpoint}.json`, {\n cancelToken,\n baseURL,\n params,\n paramsSerializer: function(params) {\n return qs.stringify(params, { arrayFormat: 'repeat' });\n }\n })\n .then(version ? checkResponseVersion(version) : response => response)\n .then(finalizeResponse())\n .catch(handleError());\n};\n","import React from 'react';\nimport { useUrlLocalizer } from 'tradera-lang/translate';\nimport { CombinedShippingBadge } from './combined-shipping-badge';\n\nconst CombinedShippingBadgeLink = ({ ...props }) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n \n \n \n );\n};\n\nexport default CombinedShippingBadgeLink;\n","export const TRACK_REDUX_ACTIONS = ['SET_DRAFT_ID', 'SET_DRAFT_VERSION'];\n// Note: Don't add large objects - Sentry will reject events over 200kB\nexport const SAVE_REDUX_STATE_PATHS = [\n 'views.syi.draft.draftId',\n 'views.syi.draft.itemId',\n 'views.syi.draft.version',\n 'views.syi.syi.autoSaveEnabled'\n];\n","import has from 'underscore/modules/has';\nimport get from 'underscore/modules/get';\nimport * as Sentry from '@sentry/react';\nimport { setNestedObjectValue } from 'tradera-utils/set-nested-object-value';\nimport {\n TRACK_REDUX_ACTIONS,\n SAVE_REDUX_STATE_PATHS\n} from 'tradera-constants/sentry-redux-filters';\n\nexport const actionTransformer = action =>\n TRACK_REDUX_ACTIONS.includes(action.type) ? action : null;\n\nexport const stateTransformer = state =>\n SAVE_REDUX_STATE_PATHS.reduce((sentryState, keyString) => {\n const keyArray = keyString.split('.');\n if (has(state, keyArray)) {\n const value = get(state, keyArray);\n setNestedObjectValue(sentryState, keyArray, value);\n }\n\n return sentryState;\n }, {});\n\nexport const sentryReduxEnhancer = Sentry.createReduxEnhancer({\n actionTransformer,\n stateTransformer\n});\n","export const setNestedObjectValue = (object, keyPathArray, value) => {\n keyPathArray.reduce((acc, key, index, array) => {\n if (index + 1 < array.length) {\n acc[key] = acc[key] || {};\n } else {\n acc[key] = value;\n }\n return acc[key];\n }, object);\n};\n","import { webApiClient } from 'tradera-utils/http';\n\nexport const getInvoice = invoiceId =>\n webApiClient.get('/mytradera/invoicecheckout', {\n params: {\n invoiceId\n },\n withCredentials: true\n });\n\nexport const getPaymentOptions = async invoiceId =>\n webApiClient.get(\n `/mytradera/invoicecheckout/invoicepaymentoptions/${invoiceId}`\n );\n\nexport const initializePayment = async formData =>\n webApiClient.post(\n '/mytradera/invoicecheckout/initializeinvoicepaymentattempt',\n formData\n );\n\nexport const getPaymentStatus = async paymentAttemptId =>\n webApiClient.get(\n `/mytradera/invoicecheckout/invoicepaymentattemptstatus/${paymentAttemptId}`\n );\n\nexport const completePayment = async formData =>\n webApiClient.post(\n '/mytradera/invoicecheckout/completeinvoicepaymentattempt',\n formData\n );\n\nexport const cancelPayment = async formData =>\n webApiClient.post(\n '/mytradera/invoicecheckout/cancelinvoicepaymentattempt',\n formData\n );\n\nexport const getExternalAuthData = async paymentAttemptId =>\n webApiClient.get(\n `/mytradera/invoicecheckout/invoicepaymentattemptauthenticationdata/${paymentAttemptId}`\n );\n\nexport const getBraintreeToken = async ({ invoiceId, paymentOption }) =>\n webApiClient.get(\n `/mytradera/invoicecheckout/invoicebraintreeclienttoken/${invoiceId}`,\n {\n params: {\n paymentMethod: paymentOption\n },\n withCredentials: true\n }\n );\n\n// Export object for Sinon stubbing\nexport default {\n getInvoice,\n getPaymentOptions,\n initializePayment,\n getPaymentStatus,\n completePayment,\n cancelPayment,\n getExternalAuthData,\n getBraintreeToken\n};\n","export const formatPrice = price => {\n const format = formatMe =>\n formatMe.toLocaleString('sv', {\n symbol: ' kr',\n symbolPosition: 'end',\n decimal: ',',\n comma: '.'\n });\n return typeof price !== 'number'\n ? `${format(parseInt(price))} kr`\n : `${format(price)} kr`;\n};\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 { useMediaQuery } from 'react-responsive';\nimport { BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\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 = (isExtraLargeDesktop, itemLayout, siteLayout) => {\n if (\n isExtraLargeDesktop &&\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 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 isExtraLargeDesktop = useMediaQuery({\n minWidth: BREAKPOINT_SIZES.XL.min\n });\n\n if (!(components && components.length > 0)) {\n return null;\n }\n\n const adFrequency = getAdFrequency(\n isExtraLargeDesktop,\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","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","/**\n * @returns {object} - list of available columns in MyTradera.\n */\nexport const columns = {\n CurrentPrice: 'CurrentPrice',\n TransactionDate: 'TransactionDate',\n EndDate: 'EndDate',\n ShippingCost: 'ShippingCost',\n Bids: 'Bids',\n ItemId: 'ItemId',\n OpeningBid: 'OpeningBid',\n ReservePrice: 'ReservePrice',\n BuyItNow: 'BuyItNow',\n OwnReference: 'OwnReference',\n Discount: 'Discount',\n MaxBid: 'MaxBid',\n TimeLeft: 'TimeLeft'\n};\n\nexport const buyerActiveItemsColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.MaxBid,\n columns.Bids,\n columns.ShippingCost,\n columns.EndDate,\n columns.TimeLeft,\n columns.ItemId\n ]\n};\n\nexport const buyerItemsLostColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.MaxBid,\n columns.Bids,\n columns.ShippingCost,\n columns.EndDate,\n columns.ItemId\n ]\n};\n\nexport const sellerActiveColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.Bids,\n columns.EndDate,\n columns.ItemId,\n columns.ReservePrice,\n columns.OwnReference\n ],\n Compact: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.EndDate,\n columns.ItemId,\n columns.ReservePrice,\n columns.BuyItNow,\n columns.OwnReference\n ]\n};\nexport const sellerSoldColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.TransactionDate,\n columns.ItemId,\n columns.ReservePrice,\n columns.BuyItNow,\n columns.OwnReference\n ],\n Compact: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.TransactionDate,\n columns.ItemId,\n columns.OpeningBid,\n columns.BuyItNow,\n columns.ReservePrice,\n columns.OwnReference\n ],\n Normal: [\n columns.Bids,\n columns.TransactionDate,\n columns.ItemId,\n columns.OwnReference,\n columns.ReservePrice,\n columns.BuyItNow,\n columns.CurrentPrice\n ]\n};\n\nexport const sellerUnsoldColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.EndDate,\n columns.ItemId,\n columns.OwnReference\n ],\n Compact: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.EndDate,\n columns.ItemId,\n columns.ReservePrice,\n columns.BuyItNow,\n columns.OwnReference\n ]\n};\n\nexport const buyerPurchasesColumns = {\n Basic: [\n columns.CurrentPrice,\n columns.Bids,\n columns.ShippingCost,\n columns.TransactionDate,\n columns.ItemId\n ],\n Normal: [\n columns.Bids,\n columns.TransactionDate,\n columns.ItemId,\n columns.CurrentPrice\n ]\n};\n\nexport const payments2Columns = {\n Basic: []\n};\n","export const capitalize = text => `${text[0].toUpperCase()}${text.slice(1)}`;\n\nexport const removeTags = text => text.replace(/(<([^>]+)>)/gi, '');\n","export const generateItemCardPlaceholders = itemCount =>\n [...new Array(itemCount)].map((_, index) => ({\n itemId: index,\n shortDescription: ''\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 initData from 'init-data';\n\nexport default {\n BUYER_ACTIVE_ITEMS_HIDE: initData.pageSpecificData?.BUYER_ACTIVE_ITEMS_HIDE,\n BUYER_ACTIVE_ITEMS_SHOW: initData.pageSpecificData?.BUYER_ACTIVE_ITEMS_SHOW,\n ACTIVE_ITEMS_RESTART_SUMMARY:\n initData.pageSpecificData?.ACTIVE_ITEMS_RESTART_SUMMARY,\n MARK_PAID: initData.pageSpecificData?.MARK_PAID,\n SELLER_MARK_PAID: initData.pageSpecificData?.SELLER_MARK_PAID,\n SELLER_UNMARK_PAID: initData.pageSpecificData?.SELLER_UNMARK_PAID,\n MARK_SHIPPED: initData.pageSpecificData?.MARK_SHIPPED,\n UNMARK_SHIPPED: initData.pageSpecificData?.UNMARK_SHIPPED,\n DELETE_SHIPMENT: initData.pageSpecificData?.DELETE_SHIPMENT,\n SELLER_HIDE: initData.pageSpecificData?.SELLER_HIDE,\n SELLER_SHOW: initData.pageSpecificData?.SELLER_SHOW,\n UNSOLDHIDE: initData.pageSpecificData?.UNSOLDHIDE,\n UNSOLDSHOW: initData.pageSpecificData?.UNSOLDSHOW,\n UNMARK_BOOKED: initData.pageSpecificData?.UNMARK_BOOKED,\n ACTIVE_END_ITEMS: initData.pageSpecificData?.ACTIVE_END_ITEMS,\n UNSOLD_RESTART_ITEMS: initData.pageSpecificData?.UNSOLD_RESTART_ITEMS,\n BUYER_MARK_PAID: initData.pageSpecificData?.BUYER_MARK_PAID,\n BUYER_UNMARK_PAID: initData.pageSpecificData?.BUYER_UNMARK_PAID,\n BUYER_HIDE: initData.pageSpecificData?.BUYER_HIDE,\n BUYER_SHOW: initData.pageSpecificData?.BUYER_SHOW,\n REQUEST_COMBINED_SHIPPING_PRICE:\n '/api/webapi/shopping/ordercheckout/requestcombinedshippingprice'\n};\n","import React from 'react';\n\nconst Flag = ({ countryCodeIso2, ...otherProps }) => {\n return countryCodeIso2 ? (\n \n ) : null;\n};\n\nexport default Flag;\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, { useState } from 'react';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from 'components/modals/modal-container';\nimport ModalHeader from 'components/modals/modal-header';\nimport ModalBody from 'components/modals/modal-body';\nimport { Trans, useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { useSelector } from 'react-redux';\nimport {\n selectIsPreferredCurrencySEK,\n selectPreferredCurrency\n} from 'tradera-state/multi-currency/selectors';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\n\nexport const BinModalCurrencyConversionInfoModal = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const currency = useSelector(selectPreferredCurrency).code;\n const [visible, setVisible] = useState(false);\n const isPreferredCurrencySEK = useSelector(selectIsPreferredCurrencySEK);\n\n if (isPreferredCurrencySEK) {\n return null;\n }\n\n return (\n <>\n
    \n {' '}\n setVisible(true)}\n className=\"link clear-button unbutton ml-1\"\n />\n )\n }}\n />\n
    \n {visible && (\n \n \n setVisible(false)}>\n {t('vip_bid_currency_conversion_info_header')}\n \n \n \n ),\n strong: (\n \n )\n }}\n />\n \n \n \n )}\n \n );\n};\n","export default {\n AUCTION: 'Auction',\n CART: 'Cart',\n BIN: 'Bin'\n};\n","export const HOVER_MENUS = {\n WISHLIST: 'Wishlist',\n SELL: 'Selling',\n BUY: 'Buying',\n LOCALIZATION: 'Localization',\n CURRENCY: 'Currency',\n HOW_TRADERA_WORKS: 'HowTraderaWorks'\n};\n","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","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\nconst shippingProvidersMap = t =>\n shippingProviders(t).reduce(\n (obj, provider) => ({\n ...obj,\n [provider.type]: provider\n }),\n {}\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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dynamic;\nexports.noSSR = noSSR;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _loadable = _interop_require_default(require(\"./loadable\"));\nfunction dynamic(dynamicOptions, options) {\n let loadableFn = _loadable.default;\n let loadableOptions = {\n // A loading component is not required, so we default it\n loading: ({ error , isLoading , pastDelay })=>{\n if (!pastDelay) return null;\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null;\n }\n if (error) {\n return /*#__PURE__*/ _react.default.createElement(\"p\", null, error.message, /*#__PURE__*/ _react.default.createElement(\"br\", null), error.stack);\n }\n }\n return null;\n }\n };\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = ()=>dynamicOptions;\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions;\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = _extends({}, loadableOptions, dynamicOptions);\n }\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

    Loading something

    })\n loadableOptions = _extends({}, loadableOptions, options);\n // Error if Fizz rendering is not enabled and `suspense` option is set to true\n if (!process.env.__NEXT_REACT_ROOT && loadableOptions.suspense) {\n throw new Error(`Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n }\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = _extends({}, loadableOptions, loadableOptions.loadableGenerated);\n delete loadableOptions.loadableGenerated;\n }\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false}).\n // skip `ssr` for suspense mode and opt-in React.lazy directly\n if (typeof loadableOptions.ssr === 'boolean' && !loadableOptions.suspense) {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr;\n return noSSR(loadableFn, loadableOptions);\n }\n delete loadableOptions.ssr;\n }\n return loadableFn(loadableOptions);\n}\nconst isServerSide = typeof window === 'undefined';\nfunction noSSR(LoadableInitializer, loadableOptions) {\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack;\n delete loadableOptions.modules;\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions);\n }\n const Loading = loadableOptions.loading;\n // This will only be rendered on the server side\n return ()=>/*#__PURE__*/ _react.default.createElement(Loading, {\n error: null,\n isLoading: true,\n pastDelay: false,\n timedOut: false\n });\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=dynamic.js.map","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';\n\nconst categoryIcons = {\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 axios from 'axios';\nimport { handleError } from 'tradera-utils/api';\n\nexport const saveLanguageSetting = (code, toLocalizedUrl) =>\n axios\n .post(toLocalizedUrl('/my/profile/save-language-setting'), {\n languageCodeIso2: code\n })\n .catch(handleError());\n\n// Export object for Sinon stubbing\nexport default {\n saveLanguageSetting\n};\n","import Analytics from 'packages/analytics';\nimport { logger } from 'packages/logger';\nimport locationUtils from 'tradera-utils/location';\nimport api from './api';\nimport { selectIsLoggedIn } from 'tradera-state/member/selectors';\nimport { setPreferred } from './reducer';\n\n/**\n * Sets new preferred language\n * @param {string} code - example: 'sv' or 'en'\n */\nexport const setPreferredLanguage = (code, toLocalizedUrl) => async (\n dispatch,\n getState\n) => {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Language',\n label: code\n });\n\n try {\n if (selectIsLoggedIn(getState())) {\n await api.saveLanguageSetting(code, toLocalizedUrl);\n }\n dispatch(setPreferred(code));\n locationUtils.reloadLocalized(code);\n } catch (error) {\n logger(error);\n }\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 CONSTANTS from 'tradera-constants/state';\nimport { nullifyUndefinedProperties } from 'tradera-utils/object';\nimport {\n DEFAULT_COOKIES,\n GDPR_CONSENT_ALERT_DISMISSED\n} from 'tradera-constants/cookies';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { cache, CACHE_KEYS } from 'tradera-utils/cache';\nimport uiActions from './actions';\n\nexport const getInitialBadges = () => ({\n messaging: {\n threads: 0,\n threadsUnread: 0\n },\n system: 0\n});\n\nexport const getInitialState = ({\n cartItemCount,\n cartSum,\n isGdprModalOpen = false,\n itemLayout,\n messageThreadCount = 0,\n messageThreadsUnreadCount = 0,\n showHeaderSearch,\n showSearchForm,\n siteLayout,\n systemMessages\n}) => {\n const gdpr = {\n modalOpen: isGdprModalOpen,\n settingsOpen: false\n };\n\n const badges = getInitialBadges();\n // eslint-disable-next-line better-mutation/no-mutation\n badges.messaging.threads = messageThreadCount;\n // eslint-disable-next-line better-mutation/no-mutation\n badges.messaging.threadsUnread = messageThreadsUnreadCount;\n\n return nullifyUndefinedProperties({\n cartItemCount,\n cartSum,\n categoryDropdownMenu: { open: CONSTANTS.MODAL.CLOSED },\n badges,\n gdpr,\n itemLayout: itemLayout,\n itemSettings: {\n open: CONSTANTS.MODAL.CLOSED,\n item: {}\n },\n messagingModal: {\n open: CONSTANTS.MODAL.CLOSED,\n title: '',\n src: '',\n participating: false,\n recipientId: '',\n item: null\n },\n modals: {\n currentModal: null\n },\n notificationOptinModal: {\n open: CONSTANTS.MODAL.CLOSED,\n modalType: null,\n gaLabel: null,\n title: null,\n description: null,\n tagGroups: []\n },\n profileMenu: { open: CONSTANTS.MODAL.CLOSED, redirectUrl: false },\n quickView: {\n open: CONSTANTS.MODAL.CLOSED,\n items: {},\n itemIds: [],\n currentItem: 0,\n loading: false\n },\n siteLayout,\n showHeaderSearch,\n showSearchForm,\n systemMessages: {\n BankAccountMissing: false,\n InvoiceOverdue: false,\n InvoiceUnpaid: false,\n PayoutFailed: false,\n PayoutReadyBankAccountMissing: false,\n SwishNumberMissing: false,\n ...systemMessages\n },\n videoModal: {\n open: CONSTANTS.MODAL.CLOSED,\n video: ''\n },\n youtubeVideoModal: {\n open: CONSTANTS.MODAL.CLOSED,\n video: ''\n },\n shareModal: {\n isOpen: false,\n settings: null\n }\n });\n};\n\nexport const initializeFromInitData = initData => dispatch => {\n const headerElement = document.querySelector('[data-site-header-slim]');\n const cartItemCount = parseInt(\n headerElement?.getAttribute('data-cart-item-count') || '0'\n );\n const cartSum = parseInt(\n headerElement?.getAttribute('data-cart-sum') || '0'\n );\n\n const messagingBadges = cache.read(CACHE_KEYS.MESSAGING_BADGES) || {\n threads: 0,\n threadsUnread: 0\n };\n\n const state = getInitialState({\n cartItemCount,\n cartSum,\n isGdprModalOpen:\n cookieUtil.readCookie(GDPR_CONSENT_ALERT_DISMISSED) === null,\n itemLayout:\n cookieUtil.readCookie(DEFAULT_COOKIES['ITEM_LAYOUT'].key) ||\n DEFAULT_COOKIES['ITEM_LAYOUT'].default,\n messageThreadCount: messagingBadges.threads,\n messageThreadsUnreadCount: messagingBadges.threadsUnread,\n showHeaderSearch:\n initData.pageName && initData.pageName.includes('StartPage'),\n showSearchForm: !!initData.hasSearch,\n siteLayout:\n cookieUtil.readCookie(DEFAULT_COOKIES['SITE_LAYOUT'].key) ||\n DEFAULT_COOKIES['SITE_LAYOUT'].default,\n systemMessages: cache.read(CACHE_KEYS.SYSTEM_MESSAGES) || {}\n });\n dispatch(uiActions.initialize(state));\n};\n","import React from 'react';\n\nconst ErrorContainer = ({\n children,\n className = '',\n style = {},\n ...otherProps\n}) => (\n \n
    {children}
    \n \n);\n\nexport default ErrorContainer;\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","import axios from 'axios';\nimport qs from 'qs';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosConfigs,\n checkResponseLoggedOut,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport { touchWebClient } from 'tradera-utils/http';\n\nconst getItem = itemId =>\n touchWebClient.get('ajax/item/' + itemId, {\n withCredentials: true\n });\n\nfunction postWishlistItem(itemId, add) {\n return axios\n .post(\n add ? ENDPOINTS.WISHLIST_ADD : ENDPOINTS.WISHLIST_REMOVE,\n {\n itemId\n },\n axiosConfigs.authenticated\n )\n .then(checkResponseLoggedOut())\n .then(finalizeResponse())\n .catch(handleError());\n}\n\nfunction getItemDiscountQuota() {\n return axios\n .get(ENDPOINTS.ITEM_DISCOUNT_QUOTA, { withCredentials: true })\n .then(finalizeResponse())\n .catch(handleError());\n}\n\nfunction postItemSettings(itemId, onDisplay, discountRate) {\n const formData = qs.stringify({\n itemId,\n onDisplay,\n discountRate\n });\n return axios\n .post(ENDPOINTS.SETTINGS, formData, axiosConfigs.authenticated)\n .then(checkResponseLoggedOut())\n .then(finalizeResponse())\n .catch(handleError());\n}\n\nexport { getItem, postWishlistItem, getItemDiscountQuota, postItemSettings };\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';\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\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 // eslint-disable-next-line better-mutation/no-mutation\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 { URL_LANGUAGES } from 'tradera-lang/constants.mjs';\nexport const OPTIONAL_LANG = `/:lang(${URL_LANGUAGES.join('|')})?`;\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport getInitialState, {\n MODAL_STATUS\n} from 'tradera-state/views/checkout/initial-state';\n\nconst checkoutSlice = createSlice({\n name: 'checkout',\n initialState: getInitialState(),\n reducers: {\n receiveCheckout: (state, { payload }) => {\n const {\n buyerMember,\n purchaseOrder,\n sellerMember,\n shippingInfo,\n combinedShippingInfo,\n ongoingPaymentAttempt,\n shippingFeeRule\n } = payload;\n state.buyerMember = { ...buyerMember };\n state.sellerMember = { ...sellerMember };\n state.items = purchaseOrder.items;\n state.isFetching = false;\n state.hasError = false;\n state.purchaseOrderId = purchaseOrder.purchaseOrderId;\n state.orderNumber = purchaseOrder.orderNumber;\n state.isPaid = purchaseOrder.isPaid;\n state.isMarkedAsPaidByBuyer = purchaseOrder.isMarkedAsPaidByBuyer;\n state.ongoingPaymentAttempt = ongoingPaymentAttempt;\n state.shippingInfo.shippingOptions = shippingInfo.shippingOptions;\n state.shippingInfo.shippingPriceRange =\n shippingInfo.shippingPriceRange;\n state.shippingInfo.shippingDiscount = shippingInfo.shippingDiscount;\n state.shippingInfo.selectedCollectionPoint =\n shippingInfo.collectionPointId !== undefined\n ? { id: shippingInfo.collectionPointId }\n : undefined;\n state.combinedShippingInfo = combinedShippingInfo;\n state.shippingFeeRule = shippingFeeRule;\n state.purchaseOrder = {\n isOpen: purchaseOrder.isOpen,\n created: purchaseOrder.created\n };\n state.shippingOptionsLoading = false;\n },\n setShippingOptionsLoading: (state, { payload }) => {\n state.shippingOptionsLoading = payload.isLoading;\n },\n receivePaymentOptions: (state, { payload }) => {\n const { paymentOptions } = payload;\n state.payment.paymentOptions = paymentOptions;\n state.payment.isFetching = false;\n },\n receiveCollectionPoints: (state, { payload }) => {\n state.shippingInfo.collectionPoints = payload;\n },\n setFetching: (state, { payload }) => {\n state.isFetching = payload;\n state.hasError = false;\n },\n openModal: (state, { payload }) => {\n const { open, status, paymentAttemptId } = payload;\n state.modal = {\n open,\n status,\n paymentAttemptId\n };\n },\n cancelPayment: state => {\n state.checkoutSummary.hasError = false;\n state.checkoutSummary.isFetching = false;\n },\n closeModal: state => {\n state.modal = {\n open: '',\n status: MODAL_STATUS.START\n };\n },\n setHasError: (state, { payload }) => {\n state.hasError = payload;\n state.isFetching = false;\n },\n setPaymentFetching: (state, { payload }) => {\n state.payment.isFetching = payload;\n state.payment.hasError = false;\n },\n setPaymentHasError: (state, { payload }) => {\n state.payment.hasError = payload;\n state.payment.isFetching = false;\n },\n setPaymentIsValid: (state, { payload }) => {\n state.payment.isValid = payload;\n },\n setPaymentMethodData: (state, { payload }) => {\n state.payment.paymentMethodData = payload;\n },\n setCheckoutSummaryFetching: (state, { payload }) => {\n state.checkoutSummary.isFetching = payload;\n state.checkoutSummary.hasError = false;\n },\n setCheckoutSummaryHasError: (state, { payload }) => {\n state.checkoutSummary.hasError = payload;\n state.checkoutSummary.isFetching = false;\n state.modal.status = MODAL_STATUS.ERROR;\n },\n setSelectedPayment: (state, { payload }) => {\n state.payment.selectedPayment = payload;\n state.checkoutSummary.hasError = false;\n },\n setOrderCalculation: (state, { payload }) => {\n state.payment.orderCalculation = payload;\n },\n setBuyerProtection: (state, { payload }) => {\n state.payment.buyerProtection = payload;\n },\n setSelectedShipping: (state, { payload }) => {\n state.selectedShipping = payload;\n },\n setOngoingPaymentAttempt: (state, { payload }) => {\n state.ongoingPaymentAttempt = payload;\n },\n setCombinedShippingInfo: (state, { payload }) => {\n state.combinedShippingInfo = {\n ...state.combinedShippingInfo,\n ...payload\n };\n },\n setBuyerMember: (state, { payload }) => {\n state.buyerMember = { ...state.buyerMember, ...payload };\n },\n setBuyerMemberAddress: (state, { payload }) => {\n state.buyerMember.address = {\n ...state.buyerMember.address,\n ...payload\n };\n },\n setCollectionPoint: (state, { payload }) => {\n state.shippingInfo.selectedCollectionPoint = payload;\n },\n setShippingInfoFetching: (state, { payload }) => {\n state.shippingInfo.isFetching = payload;\n },\n setCollectionPointSaving: (state, { payload }) => {\n state.shippingInfo.savingCollectionPoint = payload;\n },\n setDropinLoading: (state, { payload }) => {\n state.payment.dropinLoading = payload;\n }\n }\n});\n\nexport const {\n openModal,\n closeModal,\n cancelPayment,\n receiveCheckout,\n setShippingOptionsLoading,\n receivePaymentOptions,\n receiveCollectionPoints,\n setFetching,\n setHasError,\n setCheckoutSummaryFetching,\n setCheckoutSummaryHasError,\n setPaymentFetching,\n setPaymentHasError,\n setPaymentIsValid,\n setPaymentMethodData,\n setSelectedPayment,\n setOrderCalculation,\n setSelectedShipping,\n setOngoingPaymentAttempt,\n setCombinedShippingInfo,\n setBuyerMember,\n setBuyerMemberAddress,\n setCollectionPoint,\n setShippingInfoFetching,\n setCollectionPointSaving,\n setBuyerProtection,\n setDropinLoading\n} = checkoutSlice.actions;\n\nexport default checkoutSlice.reducer;\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};","export const scrollToInitialScroll = () => {\n const initialScrollEls = document.querySelectorAll('[data-initial-scroll]');\n if (initialScrollEls.length > 0) {\n window.scrollTo(0, initialScrollEls[0].offsetTop || 0);\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}","import { useCallback } from 'react';\nimport { useDayJs } from 'tradera-hooks/use-day-js';\nimport { formatUtcDateAsSwedishTimeZoneDate } from 'tradera-utils/date';\n\nexport const useFormatUtcDateInSwedishTimeZone = () => {\n const dayjs = useDayJs();\n\n const formatUtcDateInSwedishTimeZone = useCallback(\n transactionDate =>\n formatUtcDateAsSwedishTimeZoneDate(transactionDate, dayjs),\n [dayjs]\n );\n\n return formatUtcDateInSwedishTimeZone;\n};\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 initData from 'init-data';\n\nconst isEnabled = key => {\n return (\n initData && initData.featureSwitches && initData.featureSwitches[key]\n );\n};\n\nexport const errors = {\n ELASTIC_MYTRADERA:\n 'Just nu har vi driftstörningar på delar av Mitt Tradera. Vi arbetar på att lösa problemet.'\n};\n\n// ATTENTION!\n// Do not any more dependencies to initData.featureSwitches!\n// Feature switches MUST be read from Redux.\n// The functions below must only be used in MyTradera and the only\n// reason they are still here is because it requires large changes\n// to MyTradera to get rid of them.\nexport default {\n isBuyerOrderInformationEnabled: isEnabled('buyer-order-information'),\n isDisputesEntranceEnabled: isEnabled('disputes-entrance'),\n isLeaveFeedbackReactEnabled: isEnabled('leave-feedback-react'),\n isMyTraderaElasticEnabled: isEnabled('mytradera-elasticsearch'),\n isMessagingEnabled: isEnabled('messaging'),\n isMessagingBuyerButtonsEnabled: isEnabled(\n 'messaging-contact-buyer-buttons'\n ),\n isMessagingSellerButtonsEnabled: isEnabled(\n 'messaging-contact-seller-buttons'\n ),\n isInrPurchaseOrderEnabled: isEnabled('inr-purchaseorder'),\n isUpiPurchaseOrderEnabled: isEnabled('upi-purchaseorder'),\n isPennybridgeCharitiesEnabled: isEnabled('pennybridge-charities'),\n isSyiShippingAlertPriceIncreaseEnabled: isEnabled(\n 'syi-shipping-alert-price-increase'\n ),\n isShippingCheckoutSwishHandelPaymentReactEnabled: isEnabled(\n 'shipping-checkout-swish-handel-payment-react'\n ),\n isDiscontinuedSaleEnabled: isEnabled('discontinued-sale'),\n isDiscontinuedSaleMessagingEnabled: isEnabled('discontinued-sale-messaging')\n};\n","export default initData => {\n return {\n breadcrumbs: '',\n canonicalLink: '',\n metaDescription: initData.description || '',\n metaRobots: '',\n metaTitle: initData.title || '',\n type: initData.pageName || null\n };\n};\n","//jshint module : true\nimport actionTypes from './action-types';\nimport getInitialState from './initial-state';\n\nconst initialize = initData => ({\n type: actionTypes.INITIALIZE,\n payload: getInitialState(initData)\n});\n\nconst setPageMeta = meta => {\n return {\n type: actionTypes.SET_PAGE_META,\n payload: meta\n };\n};\n\nexport default {\n initialize,\n setPageMeta\n};\n","import { toLocalizedUrl } from 'tradera-utils/url';\n\n/**\n * Hide location.reload to be able to stub it with sinon\n * see https://developer.mozilla.org/en-US/docs/Web/API/Location/reload\n */\nexport const reload = (force = false) => location.reload(force);\n\nexport const reloadLocalized = code =>\n (window.location.href = toLocalizedUrl(window.location.href, code));\n\n// Export object for Sinon stubbing\nexport default {\n reload,\n reloadLocalized\n};\n","/**\n * Clone of 'init-data'\n * @returns initData as JSON;\n */\nconst initData = () => {\n if (!window.initData) {\n const initDataEL = document.getElementById('init-data');\n if (initDataEL) {\n const data = initDataEL.getAttribute('data-init-data');\n const parsed = JSON.parse(data);\n return parsed;\n } else {\n return null;\n }\n } else {\n return window.initData;\n }\n};\n\nexport default initData;\n","import getInitData from './init-data';\nimport { logger } from 'packages/logger';\nimport { reload } from 'tradera-utils/location';\n/**\n * The fetch() function is a Promise-based mechanism for programmatically making web requests in the browser;\n * The fetch implementation we're using is developer by GitHub and polyfills the API for browsers that don't contain it.\n * https://github.com/github/fetch\n */\n\nconst refreshPageIfNotAuthenticated = statusCode => {\n if (statusCode === 401 || statusCode === 402) {\n window.document.location = window.document.location.pathname;\n }\n return false;\n};\n\n/**\n * Checks status of Fetch response;\n * @param {object} response\n */\nconst checkStatus = response => {\n const ID = getInitData();\n const tradVersion =\n response && response.headers\n ? response.headers.get('X-Tradera-Version')\n : '';\n if (tradVersion && tradVersion !== ID.version) {\n reload(true);\n }\n if (\n response.status >= 200 &&\n response.status < 300 &&\n typeof response !== 'string'\n ) {\n return Promise.resolve(response);\n } else {\n if (refreshPageIfNotAuthenticated(response.status)) {\n const error = new Error('Du har blivit utloggad - sidan laddas om');\n logger(error, {\n contexts: {\n response\n }\n });\n } else {\n return Promise.reject(response);\n }\n }\n};\n\n/**\n * parseJSON - don't remove res\n * @param {object} res - the response from the fetch API;\n */\nconst parseJSON = res => res.json();\n\n/**\n * get request from server;\n * @param {string} endPoint - declare where the network request is to be made\n * @param {string} params.body - body of the request\n * @param {string} params.method - request method\n */\nconst get = (endPoint, params) =>\n fetch(endPoint, {\n ...params,\n method: params.method || 'POST',\n dataType: params.dataType || 'json',\n headers:\n params.headers === false\n ? ''\n : params.headers || {\n 'Content-Type': 'application/json; charset=UTF-8'\n },\n credentials: 'include'\n })\n .then(checkStatus)\n .then(parseJSON);\n\nexport default get;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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","/* eslint-disable better-mutation/no-mutation */\n\nimport cookieUtil from 'tradera-utils/cookie';\nimport { MYTRADERA_DEFAULT_COOKIES } from 'tradera-constants/cookies';\nimport { logger } from 'packages/logger';\nimport { createSlice } from '@reduxjs/toolkit';\n\nconst defaultState = () => {\n let defaultCookies = {};\n Object.keys(MYTRADERA_DEFAULT_COOKIES).forEach(value => {\n let val = cookieUtil.readCookie(MYTRADERA_DEFAULT_COOKIES[value].key);\n defaultCookies[value] = val\n ? val\n : MYTRADERA_DEFAULT_COOKIES[value].default;\n });\n return defaultCookies;\n};\n\nconst cookiesSlice = createSlice({\n name: 'cookies',\n initialState: defaultState(),\n reducers: {\n setCookie: {\n reducer: (state, { payload }) => {\n if (state[payload.name] !== payload.value) {\n state[payload.name] = payload.value;\n }\n },\n prepare: payload => {\n const { length, key } = MYTRADERA_DEFAULT_COOKIES[payload.name];\n try {\n cookieUtil.createCookie(key, payload.value, length);\n } catch (e) {\n logger(e);\n }\n return { payload };\n }\n }\n }\n});\n\nexport default cookiesSlice.reducer;\n\nexport const { setCookie } = cookiesSlice.actions;\n\nexport const selectCookiesState = state => state.views.myTradera.cookies;\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport getPayoutState from './initial-state';\n\nconst payoutSlice = createSlice({\n name: 'payout',\n initialState: getPayoutState(),\n reducers: {\n receivePayouts: (state, { payload }) => {\n const { member, traderaPay } = payload;\n state.member = member;\n state.traderaPay = traderaPay;\n state.isFetching = false;\n },\n removePayout: state => {\n state.traderaPay.payoutDestination = null;\n },\n setFetching: (state, { payload }) => {\n state.isFetching = payload;\n }\n }\n});\n\nexport const {\n receivePayouts,\n removePayout,\n setFetching\n} = payoutSlice.actions;\n\nexport default payoutSlice.reducer;\n\nexport const selectPayoutState = state => state.views.myTradera.payout;\n","export default () => {\n return {\n member: null,\n traderaPay: {},\n isFetching: false\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"site-subheader\":\"site-subheader--3wE8f\",\"siteSubheader\":\"site-subheader--3wE8f\"};","import React from 'react';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nimport styles from './site-subheader.module.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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 fillRule: \"evenodd\",\n d: \"M.15 4.75a.42.42 0 01.36-.71l4.22.72c.09.02.17.05.23.11l2.79 2.76.13 5.8c.01.29-.28.5-.55.4l-4.57-1.61a.42.42 0 01-.28-.38L2.32 6.8zm2.82 2.32l.16 4.6 4.1 1.44-.12-5.08zm3.41.12L2.8 6.36 1.15 4.81l3.4.58z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M6.5 2.8l-4.96.51.4.96 2.78.47c.08.01.15.05.2.1l.93.86 1.9-.35zm2.29 2.57l.91.17.23-.18a.42.42 0 01.2-.1l4.24-.65.47-.87-4.43-.69zm6.38-.88l.33-.05c.42-.07.65.47.32.74l-2.07 1.6v5.06c0 .18-.13.35-.3.4l-5.68 1.6a.42.42 0 01-.53-.4L7.2 7.59l1.84-1.5-.82-.16-2.38.43a.42.42 0 01-.35-.1l-.96-.89-2.84-.48a.42.42 0 01-.32-.25L.83 3.27a.42.42 0 01.34-.57l5.42-.56c.17-.02.34.07.42.23l1.27 2.59 1.68-2.4c.1-.13.25-.2.4-.17l4.9.76c.29.05.44.36.3.61zm-1.89 1.84l1.43-1.11-4.42.68-1.56 1.28zM7.86 8l5.24-.98v4.64l-5.21 1.48z\"\n})));","export const selectBox = state => state.views.shippingCalculator.box;\n\nexport const selectFilterValue = filterName => state =>\n state.views.shippingCalculator.box[filterName];\n\nexport const selectIsBoxValid = state =>\n state.views.shippingCalculator.box.height &&\n state.views.shippingCalculator.box.length &&\n state.views.shippingCalculator.box.width &&\n state.views.shippingCalculator.box.weight;\n\nexport const selectWeightUnit = state =>\n state.views.shippingCalculator.weightUnit;\n\nexport const selectWeightSliderValue = state =>\n state.views.shippingCalculator.weightSliderValue;\n\nexport const selectNormalizedWeight = state =>\n state.views.shippingCalculator.box.weight % 1000 === 0\n ? state.views.shippingCalculator.box.weight / 1000\n : state.views.shippingCalculator.box.weight;\n\nexport const selectWeightString = state =>\n `${selectNormalizedWeight(state)} ${selectWeightUnit(state)}`;\n\nexport const isLoadingShippingProducts = state =>\n state.views.shippingCalculator.isLoadingShippingProducts;\n\nexport const selectShippingProviders = state =>\n state.views.shippingCalculator.shippingProviders.map(provider => ({\n ...provider,\n domesticProducts:\n selectShippingProducts(state)[\n state.views.shippingCalculator.selectedFromCountry\n ]?.filter(\n ({ shippingProvider }) =>\n shippingProvider === provider.providerName\n ) || []\n }));\n\nexport const selectAvailableShippingProviders = state => {\n const shippingProviders = state.views.shippingCalculator.shippingProviders;\n const shippingProducts = selectShippingProducts(state);\n\n const includedProviders = [];\n\n shippingProviders.forEach(provider => {\n Object.keys(shippingProducts).forEach(key => {\n if (\n shippingProducts[key] &&\n shippingProducts[key].length > 0 &&\n shippingProducts[key].some(\n x =>\n x.shippingProvider === provider.providerName &&\n !includedProviders.includes(x.shippingProvider)\n )\n ) {\n includedProviders.push(provider.providerName);\n }\n });\n });\n\n return shippingProviders.filter(({ providerName }) =>\n includedProviders.find(p => p === providerName)\n );\n};\n\nexport const selectShippingProducts = state => {\n const {\n internationalProductsGroupedByFromThenToCountry,\n selectedFromCountry\n } = state.views.shippingCalculator;\n return (\n internationalProductsGroupedByFromThenToCountry[selectedFromCountry] ||\n {}\n );\n};\n\nexport const selectIsDifferentFromDefaultBox = state =>\n !(\n state.views.shippingCalculator.box.length ===\n state.views.shippingCalculator.defaultBox.length &&\n state.views.shippingCalculator.box.width ===\n state.views.shippingCalculator.defaultBox.width &&\n state.views.shippingCalculator.box.height ===\n state.views.shippingCalculator.defaultBox.height &&\n state.views.shippingCalculator.box.weight ===\n state.views.shippingCalculator.defaultBox.weight\n );\n\nexport const selectSelectedCountries = state => ({\n selectedFromCountry: state.views.shippingCalculator.selectedFromCountry,\n selectedToCountry: state.views.shippingCalculator.selectedToCountry\n});\n\nexport const selectAvailableCountryCodes = state => ({\n availableFromCountryCodes:\n state.views.shippingCalculator.availableFromCountryCodes,\n availableToCountryCodes:\n state.views.shippingCalculator.availableToCountryCodes\n});\n\nexport const selectShowError = state =>\n state.views.shippingCalculator.showError;\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport Analytics from 'packages/analytics';\nimport getInitialState from './initial-state';\n\nconst profileSlice = createSlice({\n name: 'profile',\n initialState: getInitialState(),\n reducers: {\n setTranslatedReviews: (state, { payload }) => {\n state.translatedReviews = [\n ...state.translatedReviews,\n ...payload.items\n ];\n state.isTranslationOnDemandDisabled = false;\n state.translatedReviewsLoading = false;\n state.translatedReviewsLoadingError = false;\n state.translatedReviewsProviderName = payload.providerName;\n },\n resetTranslatedReview: (state, { payload }) => {\n state.translatedReviews = state.translatedReviews.filter(\n review => review.gradeId !== payload.gradeId\n );\n },\n setTranslationOnDemandIsDisabled: state => {\n state.translatedReviews = [];\n state.isTranslationOnDemandDisabled = true;\n state.translatedReviewsLoading = false;\n state.translatedReviewsLoadingError = false;\n },\n showTranslatedReviews: {\n reducer: (state, { payload }) => {\n state.showTranslatedReviews = payload.show;\n state.translatedReviews = state.showTranslatedReviews\n ? state.translatedReviews\n : [];\n },\n prepare: payload => {\n Analytics.trackEvent({\n category: 'Profile',\n action: 'Translation',\n label: payload.show ? `Show - ${payload.language}` : 'Hide'\n });\n return { payload };\n }\n },\n beginLoadingTranslatedReviews: state => {\n state.translatedReviewsLoading = true;\n state.translatedReviewsLoadingError = false;\n },\n failedLoadingTranslatedReviews: state => {\n state.translatedReviewsLoading = false;\n state.translatedReviewsLoadingError = true;\n },\n beginLoadingModel: state => {\n state.loadingModel = true;\n },\n setModel: (state, { payload }) => {\n state.model = payload.model;\n state.showTranslatedReviews =\n state.showTranslatedReviews &&\n state.translatedReviews.some(\n ({ gradeId }) =>\n payload.model.feedbackItems.filter(\n feedbackItem => gradeId === feedbackItem.gradeId\n ).length\n );\n state.loadingModel = false;\n },\n setFeedbackComment: (state, { payload }) => {\n const { feedbackId, comment } = payload;\n const newFeedbackItems = state.model.feedbackItems.map(item =>\n item.gradeId === feedbackId\n ? {\n ...item,\n hasReply: true,\n isReplyAllowed: false,\n reply: comment\n }\n : { ...item }\n );\n state.model.feedbackItems = newFeedbackItems;\n }\n }\n});\n\nexport const {\n setTranslatedReviews,\n showTranslatedReviews,\n beginLoadingModel,\n beginLoadingTranslatedReviews,\n failedLoadingTranslatedReviews,\n setModel,\n setTranslationOnDemandIsDisabled,\n setFeedbackComment,\n resetTranslatedReview\n} = profileSlice.actions;\n\nexport default profileSlice.reducer;\n","export default () => {\n return {\n isTranslationOnDemandDisabled: false,\n loadingModel: false,\n model: null,\n showTranslatedReviews: false,\n translatedReviews: [],\n translatedReviewsLoading: false,\n translatedReviewsLoadingError: false\n };\n};\n","import { isSwedenCountryNameOrUndefined } from 'tradera-localization/countrycode';\n\nexport const selectViewItem = state => state.views.viewItem;\n\nexport const selectTranslatedDescription = state =>\n state.views.viewItem.translatedDescription || null;\n\nexport const selectItemDetails = state => selectViewItem(state).itemDetails;\n\nexport const selectBreadcrumbs = state => selectViewItem(state).breadCrumbs;\n\nexport const selectItemId = state => selectItemDetails(state)?.itemId;\n\nexport const selectBidInfo = state => selectViewItem(state).bidInfo;\n\nexport const selectAllowedBuyerRegionOutsideSweden = state =>\n selectItemDetails(state)?.allowedBuyerRegion &&\n !isSwedenCountryNameOrUndefined(\n selectItemDetails(state).allowedBuyerRegion\n );\n\nexport const selectTranslatedDescriptionState = state =>\n selectViewItem(state).translatedDescriptionState;\n","import qs from 'qs';\nimport axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\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, preferredLanguageCode) => {\n return axiosWithTokenRefresh()\n .get(toLocalizedUrl(`/ajax/item/${itemId}/bids`, preferredLanguageCode))\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 { matchPath } from 'react-router';\nimport { logger } from 'packages/logger';\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 actionTypes from './action-types';\nimport { getCategoryList } from './api';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { reload } from 'tradera-utils/location';\n\nexport const fetchCategoryList = () => dispatch => {\n dispatch(requestCategoryList());\n\n return getCategoryList()\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 handleCategoryListError = payload => ({\n type: actionTypes.HANDLE_CATEGORY_LIST_ERROR,\n payload\n});\n","import { touchWebClient } from 'tradera-utils/http';\n\nexport const getCategoryList = () =>\n touchWebClient.get('categories', { cancelTokenId: 'getCategoryList' });\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 $ from 'jquery';\nexport default $.ajax;\n","//jshint module : true\nimport payments from '../actions/payments-actions';\n\nconst initState = {\n bankIdVerification: {\n type: '',\n shouldInitBankID: false,\n bankIdInProgress: false,\n isAutoStartAllowed: false,\n autoStartToken: '',\n completeText: '',\n verificationText: '',\n bankIdErrorMessage: '',\n errorCount: 0,\n requireBankIdVerification: true\n },\n swishDetails: {\n newNumber: '',\n verifyCode: '',\n isValid: false,\n errorMessage: '',\n isCompany: false\n },\n bankAccountDetails: {\n newClearingNumber: '',\n newAccountNumber: '',\n bankAccountSaved: false,\n bankUnknown: false,\n errorMessage: '',\n hasFailedPayouts: false,\n isMemberSetForPayout: false\n },\n tink: {\n tinkOnboarding: false,\n iframeUrl: '',\n shouldInitTink: false,\n accounts: null,\n account: null,\n errorMessage: ''\n },\n payouts: [],\n pagination: {},\n paginationLinks: []\n};\n\nexport default (state = initState, action) => {\n switch (action.type) {\n // Init\n case payments.actionTypes.INIT_DATA_LOADED:\n var swishApp2AppMember =\n action.payload.initData.pageSpecificData.swishApp2AppMember;\n var braintreeMember =\n action.payload.initData.pageSpecificData.braintreeMember;\n var onboardToHyperwalletProblems =\n action.payload.initData.pageSpecificData\n .onboardToHyperwalletProblems;\n var isAutoStartAllowed =\n action.payload.initData.pageSpecificData.isAutoStartAllowed;\n var requireBankIdVerification =\n action.payload.initData.pageSpecificData\n .requireBankIdVerification;\n var isCompany = action.payload.initData.pageSpecificData.isCompany;\n var tinkLink = action.payload.initData.pageSpecificData.tinkLink;\n var tinkOnboarding =\n action.payload.initData.featureSwitches['tink-onboarding'];\n var hyperwalletPayeeVerification =\n action.payload.initData.pageSpecificData\n .hyperwalletPayeeVerification;\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n isAutoStartAllowed: isAutoStartAllowed,\n requireBankIdVerification: requireBankIdVerification\n },\n swishDetails: {\n ...state.swishDetails,\n number: swishApp2AppMember.phoneNumber,\n newNumber:\n swishApp2AppMember.phoneNumber ||\n swishApp2AppMember.suggestedPhoneNumber,\n enabled: swishApp2AppMember.enabled,\n state: swishApp2AppMember.state,\n isCompany: isCompany,\n checkMark:\n swishApp2AppMember.state == 'Step3' ? 'Completed' : ''\n },\n bankAccountDetails: {\n ...state.bankAccountDetails,\n maskedBankAccountNumber:\n braintreeMember.maskedBankAccountNumber,\n isBankAccountSupplied:\n braintreeMember.isBankAccountSupplied,\n hasFailedPayouts: braintreeMember.hasFailedPayouts,\n isMemberSetForPayout: braintreeMember.isMemberSetForPayout,\n onboardToHyperwalletProblems: onboardToHyperwalletProblems,\n checkMark:\n !braintreeMember.hasFailedPayouts &&\n braintreeMember.isBankAccountSupplied\n ? 'Completed'\n : ''\n },\n tink: {\n ...state.tink,\n tinkOnboarding: tinkOnboarding,\n iframeUrl: tinkLink\n },\n hyperwalletPayeeVerification\n };\n // Swish\n case payments.actionTypes.SAVE_PHONENUMBER:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n number: action.payload,\n enabled: false,\n verifyCode: '',\n state: 'Step2',\n checkMark: '',\n errorMessage: ''\n }\n };\n case payments.actionTypes.DELETE_PHONENUMBER:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n enabled: false,\n number: '',\n verifyCode: '',\n state: 'Step1',\n checkMark: '',\n errorMessage: ''\n }\n };\n case payments.actionTypes.UPDATE_PHONENUMBER:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n newNumber: action.payload.number,\n checkMark: '',\n errorMessage: ''\n }\n };\n case payments.actionTypes.UPDATE_VERIFYCODE:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n verifyCode: action.payload,\n checkMark: '',\n errorMessage: ''\n }\n };\n case payments.actionTypes.SWISH_ENABLED:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n enabled: true,\n state: 'Step3',\n checkMark: 'Completed',\n errorMessage: ''\n }\n };\n case payments.actionTypes.INVALID_PHONENUMBER:\n case payments.actionTypes.INVALID_VERIFYCODE:\n case payments.actionTypes.SWISH_ERROR:\n return {\n ...state,\n swishDetails: {\n ...state.swishDetails,\n errorMessage: action.payload\n }\n };\n // BankAccount\n case payments.actionTypes.UPDATE_CLEARING_NUMBER:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n newClearingNumber: action.payload.newClearingNumber,\n checkMark: '',\n bankUnknown: false,\n errorMessage: ''\n }\n };\n case payments.actionTypes.UPDATE_ACCOUNT_NUMBER:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n newAccountNumber: action.payload.newAccountNumber,\n checkMark: '',\n bankUnknown: false,\n errorMessage: ''\n }\n };\n case payments.actionTypes.DELETE_BANK_ACCOUNT:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n maskedBankAccountNumber: '',\n isBankAccountSupplied: false,\n newClearingNumber: '',\n newAccountNumber: '',\n checkMark: '',\n errorMessage: ''\n }\n };\n case payments.actionTypes.INVALID_CLEARINGNUMBER:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n errorMessage: action.payload\n }\n };\n case payments.actionTypes.INVALID_BANKACCOUNTNUMBER:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n errorMessage: action.payload\n }\n };\n case payments.actionTypes.BANK_ERROR:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n errorMessage: action.payload\n }\n };\n case payments.actionTypes.BANK_ACCOUNT_SAVED:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n bankAccountSaved: true,\n isBankAccountSupplied: true,\n maskedBankAccountNumber: action.payload,\n checkMark: 'Completed',\n errorMessage: ''\n }\n };\n case payments.actionTypes.BANK_NOT_MATCHED:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n bankUnknown: true\n }\n };\n case payments.actionTypes.IGNORE_BANK_NOT_MATCHED:\n return {\n ...state,\n bankAccountDetails: {\n ...state.bankAccountDetails,\n bankUnknown: false\n }\n };\n // Tink\n case payments.actionTypes.INIT_TINK:\n return {\n ...state,\n tink: {\n ...state.tink,\n shouldInitTink: true,\n errorMessage: ''\n }\n };\n case payments.actionTypes.CANCEL_TINK:\n return {\n ...state,\n tink: {\n ...state.tink,\n shouldInitTink: false,\n accounts: null\n }\n };\n case payments.actionTypes.SHOW_BANK_ACCOUNTS:\n return {\n ...state,\n tink: {\n ...state.tink,\n accounts: action.payload\n }\n };\n case payments.actionTypes.SELECT_BANK_ACCOUNT:\n return {\n ...state,\n tink: {\n ...state.tink,\n account: action.payload\n }\n };\n case payments.actionTypes.TINK_COMPLETED:\n return {\n ...state,\n tink: {\n ...state.tink,\n shouldInitTink: false,\n accounts: null\n },\n bankAccountDetails: {\n ...state.bankAccountDetails,\n bankAccountSaved: true,\n isBankAccountSupplied: true,\n maskedBankAccountNumber: action.payload,\n checkMark: 'Completed'\n }\n };\n case payments.actionTypes.TINK_ERROR:\n return {\n ...state,\n tink: {\n ...state.tink,\n errorMessage: action.payload\n }\n };\n // BankId\n case payments.actionTypes.SKIP_BANKID_AUTH:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n type: action.payload.type,\n shouldInitBankID: false,\n bankIdCompleted: true,\n completeText: action.payload.completeText,\n verificationText: action.payload.verificationText,\n bankIdErrorMessage: '',\n requireBankIdVerification: false\n }\n };\n case payments.actionTypes.BEGIN_BANKID_AUTH:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n type: action.payload.type,\n shouldInitBankID: true,\n bankIdCompleted: false,\n completeText: action.payload.completeText,\n verificationText: action.payload.verificationText,\n bankIdErrorMessage: ''\n }\n };\n case payments.actionTypes.CANCEL_BANKID_AUTH:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n type: '',\n shouldInitBankID: false,\n bankIdInProgress: false,\n bankIdCompleted: false,\n bankIdErrorMessage: ''\n }\n };\n case payments.actionTypes.BANKID_IN_PROGRESS:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n bankIdInProgress: true,\n autoStartToken: action.payload.autoStartToken,\n errorCount: 0\n }\n };\n case payments.actionTypes.BANKID_ERROR:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n bankIdErrorMessage: action.payload,\n bankIdInProgress: false,\n bankIdCompleted: false\n }\n };\n case payments.actionTypes.INCREMENT_BANKID_ERROR:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n errorCount: state.bankIdVerification.errorCount + 1\n }\n };\n case payments.actionTypes.BANKID_COMPLETED:\n return {\n ...state,\n bankIdVerification: {\n ...state.bankIdVerification,\n shouldInitBankID: false,\n bankIdInProgress: false,\n bankIdCompleted: true\n }\n };\n // Payouts\n case payments.actionTypes.PAYOUTS_LOADED:\n return {\n ...state,\n payouts: action.payload.list,\n pagination: action.payload.pagination,\n paginationLinks: action.payload.paginationLinks\n };\n case payments.actionTypes.PAYOUTS_ERROR:\n return {\n ...state\n };\n // Default\n default:\n return state;\n }\n};\n\nexport const selectPaymentsState = state => state.views.myTradera.payments;\n","import React, { useState } from 'react';\nimport { useTranslator } from 'tradera-lang/translate';\nimport TrashcanIcon from '@tradera/blueprint/theme/icons2/trashcan.svg?jsx';\nimport { Button } from 'tradera-components/atoms/button/button';\nimport LocalizedPrice from 'tradera-localization/localized-price';\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 setInputMode(true);\n } else {\n onQuantityChange(Math.min(value, quantityInShop));\n }\n };\n\n return (\n
    \n {!inputMode && (\n
    \n quantityInShop ? 'border-danger' : ''\n }`}\n onChange={onChange}>\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 {t('cartCheckoutOverview_countDisplay', {\n count: count\n })}\n \n );\n })}\n {quantity > quantityInShop && (\n \n )}\n {quantityInShop > MAX_DROPDOWN_SIZE && (\n \n )}\n \n onQuantityChange(0)}\n title={t('cartCheckoutOverview_removeItem')}>\n \n \n
    \n )}\n {inputMode && (\n \n )}\n
    \n );\n};\n\nconst ItemDisplay = ({\n itemImage,\n itemTitle,\n unitPrice,\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 1 ? 'ml-1' : 'font-weight-bold'\n }`}\n />\n
    \n\n {quantity > 1 && (\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 { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nexport default class LoadingPortal extends Component {\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n };\n\n constructor() {\n super();\n this.el = document.createElement('div');\n this.loadingPortalRoot = document.getElementById('loading-portal');\n }\n\n componentDidMount() {\n if (this.loadingPortalRoot) {\n this.loadingPortalRoot.appendChild(this.el);\n setTimeout(() => {\n this.el.classList.add('loading-portal-visible');\n }, 0);\n }\n }\n\n componentWillUnmount() {\n if (this.loadingPortalRoot) {\n this.loadingPortalRoot.removeChild(this.el);\n }\n }\n\n render() {\n const { children, className = 'loading-portal' } = this.props;\n this.el.className = className;\n return ReactDOM.createPortal(children, this.el);\n }\n}\n","import { useSelector } from 'react-redux';\nimport { isServer } from 'tradera-utils/nextjs';\n\nexport const useUserAgent = () => {\n const request = useSelector(state => state.request);\n return isServer ? request.userAgent : navigator.userAgent;\n};\n","import BPOINT from '@tradera/blueprint/theme/scss/export/breakpoints.module.scss';\n\n// Explicit list of breakpoints for code completion\nconst BREAKPOINTS = {\n XS: 'XS',\n SM: 'SM',\n MD: 'MD',\n LG: 'LG',\n XL: 'XL'\n};\n\n/**\n * @type {Object.}\n */\nconst BREAKPOINT_SIZES = {};\nObject.entries(BPOINT)\n .filter(([bp]) => BREAKPOINTS[bp])\n .map(([name, size], index, entries) => {\n const min = parseInt(size, 10);\n // Look ahead to next breakpoint entry and get its size minus one as current breakpoint's max size\n const max =\n index + 1 in entries\n ? parseInt(entries[index + 1][1], 10) - 1\n : 99999;\n return {\n min,\n max,\n name\n };\n })\n .forEach(breakpoint => {\n // eslint-disable-next-line better-mutation/no-mutation\n BREAKPOINT_SIZES[breakpoint.name] = breakpoint;\n });\n\nexport { BREAKPOINTS, BREAKPOINT_SIZES };\n","/* eslint-disable better-mutation/no-mutation */\n/**\n * Debounce function\n * Borrowed from underscore;\n */\nexport const debounce = function(func, wait, immediate) {\n let timeout;\n return function() {\n let context = this,\n args = arguments;\n let later = function() {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n let callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","export default {\n DEFAULT_ACTION: 'member/default',\n INITIALIZE: 'MEMBER/INITIALIZE',\n SET_IS_FETCHING_GEOLOCATION: 'MEMBER/SET_IS_FETCHING_GEOLOCATION',\n SET_GEOLOCATION: 'MEMBER/SET_GEOLOCATION',\n FAILED_LOADING_GEOLOCATION: 'MEMBER/FAILED_LOADING_GEOLOCATION',\n SET_MEMBER_HERO_IMAGE: 'MEMBER/SET_MEMBER_HERO_IMAGE'\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { REGION_PICKER_DISMISSED } from 'tradera-constants/cookies';\n\nconst shippingRegionSlice = createSlice({\n name: 'shippingRegion',\n initialState: {},\n reducers: {\n initialize: (_state, { payload }) => {\n return { ...payload };\n },\n setShippingCountry: (state, action) => {\n const { countryCodeIso2 } = action.payload;\n state.shippingCountry = {\n countryCodeIso2: toUpperCase(countryCodeIso2)\n };\n },\n setDefaultShippingCountry: state => {\n // Remove name\n state.shippingCountry = { countryCodeIso2: 'SE' };\n },\n setAvailableShippingCountries: (state, action) => {\n state.availableShippingCountries = action.payload.shippingCountries;\n state.hasLoadedAvailableShippingCountries = true;\n state.isLoadingAvailableShippingCountries = false;\n },\n beginLoadingAvailableShippingOptions: state => {\n state.isLoadingAvailableShippingCountries = true;\n },\n dismissLocalizationRegionPicker: {\n reducer: state => {\n state.localizationRegionPickerEnabled = false;\n },\n prepare: () => {\n cookieUtil.createCookie(REGION_PICKER_DISMISSED, true);\n return {};\n }\n }\n }\n});\n\nconst toUpperCase = (countryCodeIso2 = '') => countryCodeIso2.toUpperCase();\n\nexport const {\n initialize,\n setShippingCountry,\n setAvailableShippingCountries,\n beginLoadingAvailableShippingOptions,\n dismissLocalizationRegionPicker,\n setDefaultShippingCountry\n} = shippingRegionSlice.actions;\nexport default shippingRegionSlice.reducer;\n","import { createBrowserHistory } from 'history';\nimport { isServer } from 'tradera-utils/nextjs';\n\nconst history = isServer ? null : createBrowserHistory();\n\nexport const getHistory = () => {\n if (isServer) {\n throw new Error('Do not use history on server');\n }\n return history;\n};\n","import { touchWebClient } from 'tradera-utils/http';\n\nexport const getReportItemModel = itemId => {\n return touchWebClient.get(`report-item/${itemId}.json`);\n};\n\nexport const postReport = (itemId, reason, message, categoryId) => {\n const payload = { reason, message, categoryId };\n return touchWebClient.post(`report-item/${itemId}`, payload);\n};\n","import { setReportItem, setViewState } from './reducer';\nimport { getReportItemModel, postReport } from './api';\nimport { VIEW_STATES } from './constants';\nimport { logger } from 'packages/logger';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { getBackToHereRedirectUrl } from 'tradera-utils/url';\nimport { getReturnUrl } from 'tradera-utils/login';\n\nconst onLoggedOut = () => {\n window.location = `/login${getReturnUrl(getBackToHereRedirectUrl())}`;\n};\n\nexport const loadReportItemModel = itemId => async (dispatch, getState) => {\n const reportItem = getState().views.reportItem;\n const isLoaded = reportItem.itemId === itemId;\n if (isLoaded) {\n dispatch(\n setViewState(\n reportItem.hasEnded ? VIEW_STATES.ITEM_ENDED : VIEW_STATES.FORM\n )\n );\n return;\n }\n try {\n dispatch(setViewState(VIEW_STATES.LOADING));\n const { data } = await getReportItemModel(itemId);\n\n dispatch(handleReportItemModel(data));\n } catch (error) {\n if (error.message === API_ERRORS.LOGGED_OUT) {\n onLoggedOut();\n } else {\n logger(error);\n }\n }\n};\n\nexport const handleReportItemModel = reportItemModel => dispatch => {\n dispatch(setReportItem(reportItemModel));\n};\n\nexport const submitReport = (\n itemId,\n reason,\n message,\n categoryId\n) => async dispatch => {\n dispatch(setViewState(VIEW_STATES.SUBMITTING));\n try {\n await postReport(itemId, reason, message, categoryId);\n dispatch(setViewState(VIEW_STATES.SUBMIT_SUCCESS));\n } catch (error) {\n logger(error);\n dispatch(setViewState(VIEW_STATES.SUBMIT_FAILED));\n }\n};\n"],"sourceRoot":""}