{"version":3,"sources":["webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-validation-parser.js","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/state/ui/initial-state.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/payments-actions.js","webpack:///./src/frontend/apps/tradera/components/start-page/content-types.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-helper.js","webpack:///./src/frontend/apps/tradera/components/start-page/analytics.js","webpack:///./src/frontend/state/views/checkout/api.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/tradera/logo.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/image-gallery-modal/image-gallery-modal.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel/view-item-image.jsx","webpack:///./src/frontend/components/carousels/view-item-carousel/view-item-carousel-zoom.jsx","webpack:///./src/frontend/state/views/syi/reducers/price.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-item-display.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/time-left-label.jsx","webpack:///./src/frontend/state/views/report-item/api.js","webpack:///./src/frontend/state/views/report-item/actions.js","webpack:///./src/frontend/state/views/view-item/constants.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-payment-summary.jsx","webpack:///./src/frontend/components/alink/index.js","webpack:///./src/frontend/apps/syi/script/app_react/services/user-data.js","webpack:///./src/frontend/apps/tradera/components/start-page/last-chance/last-chance.jsx","webpack:///./src/frontend/utils/time-api.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/my-tradera.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/my-tradera.js","webpack:///./src/frontend/constants/cookies.js","webpack:///./src/frontend/state/ui/action-creators.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/simple-modal.jsx","webpack:///./src/frontend/utils/gdpr-settings.js","webpack:///./src/frontend/utils/languagecode.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/cookies.js","webpack:///./src/frontend/state/bank-id/modal-state.js","webpack:///./src/frontend/state/views/shipping-calculator/reducer.js","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image-modes.js","webpack:///./src/frontend/state/views/syi/reducers/templates.js","webpack:///./src/frontend/state/categories/actions.js","webpack:///./src/frontend/state/categories/api.js","webpack:///./src/frontend/utils/location.js","webpack:///./src/frontend/state/shipping-region/actions.js","webpack:///./src/frontend/state/shipping-region/api.js","webpack:///./src/frontend/constants/breakpoints.js","webpack:///./src/frontend/components/quick-view/quick-view-modal.jsx","webpack:///./src/frontend/components/item-card/generate-item-card-placeholders.js","webpack:///./src/frontend/state/views/syi/reducers/campaign-code.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-shipping-display.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/helper.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search-category/search-category.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/search-input.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/highlight-word.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/suggestion-list-items.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/components/search-suggestion.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/search.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/search.analytics.js","webpack:///./src/frontend/components/international-shipping-modal/map-country-code-to-country-key.js","webpack:///./src/frontend/apps/syi/script/app_react/hoc/with-router-params.jsx","webpack:///./src/frontend/state/views/syi/reducers/bankid.js","webpack:///./src/frontend/state/views/checkout/reducer.js","webpack:///./src/frontend/hooks/use-breakpoint-mobile.js","webpack:///./src/frontend/hooks/use-on-mount.js","webpack:///./src/frontend/hooks/use-page-meta.jsx","webpack:///./src/frontend/hooks/use-scroll-to-top-on-mount.jsx","webpack:///./src/frontend/apps/my-tradera/app/constants/page.js","webpack:///./src/frontend/state/views/syi/reducers/template.js","webpack:///./src/frontend/state/views/syi/reducers/payment.js","webpack:///./src/frontend/apps/tradera/components/vip/helpers/analytics.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/language-select.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/localization/currency-select.jsx","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/apps/my-tradera/app/constants/urls.js","webpack:///./src/frontend/apps/syi/script/app_react/services/navigation-service.js","webpack:///./src/frontend/state/shipping-region/initial-state.js","webpack:///./src/frontend/components/errors/general-error.jsx","webpack:///./src/frontend/components/errors/not-found-error.jsx","webpack:///./src/frontend/state/views/shipping-calculator/selectors.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/customer-feedback/mopinion-button.jsx","webpack:///./src/frontend/components/multi-currency/multi-currency.jsx","webpack:///./src/frontend/components/rating-stars/rating-utils.js","webpack:///./src/frontend/components/rating-stars/rating-stars.jsx","webpack:///./src/frontend/apps/syi/script/app_react/hooks/use-syi-urls.js","webpack:///./src/frontend/state/personalisation/actions.js","webpack:///./src/frontend/state/personalisation/api.js","webpack:///./src/frontend/hooks/use-is-feature-enabled.js","webpack:///./src/frontend/state/views/syi/actions/long-description-actions.js","webpack:///./src/frontend/apps/my-tradera/app/utils/feature-toggles.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/item-columns.js","webpack:///./src/frontend/constants/endpoints.js","webpack:///./src/frontend/apps/my-tradera/app/constants/routes.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-footer.jsx","webpack:///./src/frontend/state/views/syi/reducers/draft.js","webpack:///./src/frontend/utils/cache.js","webpack:///./src/frontend/apps/tradera/app.jsx","webpack:///./src/frontend/components/transitions/transitions.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bid-details.jsx","webpack:///./src/frontend/constants/page-types.js","webpack:///./src/frontend/state/discover/action-types.js","webpack:///./src/frontend/state/member/api.js","webpack:///./src/frontend/state/member/actions.js","webpack:///./src/frontend/components/form-controls/radio-switch.jsx","webpack:///./src/frontend/state/views/view-item/api.js","webpack:///./src/frontend/components/portals/loading-portal.jsx","webpack:///./src/frontend/state/ui/action-types.js","webpack:///./node_modules/react-hot-loader/dist/react-hot-loader.production.min.js","webpack:///./src/frontend/apps/syi/script/app_react/services/shipping-calculator-service.js","webpack:///./src/frontend/components/item-card/item-card-parts/on-display-badge.jsx","webpack:///./src/frontend/state/page/action-types.js","webpack:///./src/frontend/components/messaging/messaging-button-email.jsx","webpack:///./src/frontend/components/messaging/messaging-button.jsx","webpack:///./src/frontend/state/language/api.js","webpack:///./src/frontend/state/language/actions.js","webpack:///./src/frontend/state/views/syi/actions/syi-actions.js","webpack:///./src/frontend/state/views/cart/reducer.js","webpack:///./src/frontend/state/views/syi/reducers/long-description.js","webpack:///./src/frontend/state/push-notifications/constants.js","webpack:///./src/frontend/utils/date.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/spinner/spinner.jsx","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-bottom-buttons.jsx","webpack:///./src/frontend/state/views/cart/api.js","webpack:///./src/frontend/state/views/cart/actions.js","webpack:///./src/frontend/components/new-page-tracker/new-page-tracker.jsx","webpack:///./src/frontend/state/multi-currency/helpers.js","webpack:///./src/frontend/components/application-error-boundary/application-error-boundary.jsx","webpack:///./src/frontend/components/route-map-routes/route-map-routes.jsx","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/ensure-good-shipping-options.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/storage-service.js","webpack:///./src/frontend/state/categories/initial-state.js","webpack:///./src/frontend/state/bank-id/action-types.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-seller-name.jsx","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./src/frontend/components/loader/loader.jsx","webpack:///./src/frontend/state/discover/api.js","webpack:///./src/frontend/state/views/syi/reducers/short-description.js","webpack:///./src/frontend/components/item-card/item-card-parts/quick-view-button.jsx","webpack:///./src/frontend/state/views/syi/actions/attributes-actions.js","webpack:///./src/frontend/utils/http.js","webpack:///./src/frontend/state/language/selectors.js","webpack:///./src/frontend/state/views/view-item/selectors.js","webpack:///./src/frontend/state/language/reducer.js","webpack:///./src/frontend/utils/countdown.js","webpack:///./src/frontend/utils/date-now.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/formats.js","webpack:///./src/frontend/components/carousels/arrows.jsx","webpack:///./src/frontend/components/carousels/basic/basic.jsx","webpack:///./src/frontend/state/views/syi/reducers/errors.js","webpack:///./src/frontend/components/item-card/config.js","webpack:///./node_modules/react-hot-loader/index.js","webpack:///./src/frontend/state/multi-currency/action-types.js","webpack:///./src/frontend/apps/syi/script/app_react/services/session-service.js","webpack:///./src/frontend/state/shipping-region/selectors.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/list-helper.js","webpack:///./src/frontend/apps/syi/script/app_react/services/shipping-provider-service.js","webpack:///./src/frontend/apps/syi/script/app_react/routes.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/apps/syi/script/app_react/hoc/with-urls.jsx","webpack:///./src/frontend/state/push-notifications/helpers.js","webpack:///./src/frontend/state/push-notifications/push-notifications-slice.js","webpack:///./src/frontend/components/errors/no-items-error.jsx","webpack:///./src/frontend/state/views/start-page/initial-state.js","webpack:///./src/frontend/state/ads/action-types.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/logger.js","webpack:///./src/frontend/apps/syi/script/app_react/services/publish-service.js","webpack:///./src/frontend/state/ui/helpers.js","webpack:///./src/frontend/state/ui/reducer.js","webpack:///./src/frontend/components/breakpoint/breakpoint.js","webpack:///./src/frontend/state/categories/action-types.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./src/EbaySweden.TouchWeb/static/script/constants/strings.js","webpack:///./src/frontend/apps/my-tradera/app/constants/text-strings.js","webpack:///./src/frontend/apps/my-tradera/app/data/shipping-providers.js","webpack:///./src/frontend/state/international-shipping/reducer.js","webpack:///./src/frontend/state/views/checkout/checkout-errors.js","webpack:///./src/frontend/components/site-subheader/site-subheader.jsx","webpack:///./src/frontend/state/views/syi/selectors/attribute-selectors.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/filters.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/filters.js","webpack:///./src/frontend/state/views/syi/reducers/item-condition.js","webpack:///./src/frontend/constants/state.js","webpack:///./src/frontend/apps/tradera/components/vip/helpers/server-time-left.jsx","webpack:///./src/frontend/apps/tradera/components/vip/helpers/time-left.jsx","webpack:///./src/frontend/apps/tradera/pages/category-page.jsx","webpack:///./src/frontend/state/views/syi/reducers/edit.js","webpack:///./src/frontend/components/loader/index.js","webpack:///./src/frontend/apps/syi/script/app_react/utils/language.js","webpack:///./src/frontend/apps/tradera/components/discover/helpers/search-gtm.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/item-labels.js","webpack:///./src/frontend/components/item-card/item-card-parts/fixed-price-label.jsx","webpack:///./src/frontend/state/views/cart/initial-state.js","webpack:///./src/frontend/components/item-card/item-card-parts/price-label.jsx","webpack:///./src/frontend/state/discover/initial-state.js","webpack:///./src/frontend/components/shipping/shipping-provider-icon.jsx","webpack:///./src/frontend/apps/syi/script/app_react/utils/array-utils.js","webpack:///./src/frontend/components/international-shipping-modal/international-shipping-modal.jsx","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu.jsx","webpack:///./src/frontend/apps/my-tradera/app/constants/column-definitions.js","webpack:///./src/frontend/apps/syi/script/app_react/services/campaign-service.js","webpack:///./src/frontend/state/views/syi/actions/campaign-code-actions.js","webpack:///./node_modules/moment/locale sync ^\\.\\/(se)$","webpack:///./src/frontend/apps/syi/script/app_react/services/draft-service.js","webpack:///./src/frontend/state/views/profile/reducer.js","webpack:///./src/frontend/state/ads/actions.js","webpack:///./src/frontend/components/breadcrumbs/breadcrumbs.jsx","webpack:///./src/frontend/state/environment/reducer.js","webpack:///./src/frontend/components/item-card/item-card-parts/wish-list-button.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-header.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/recommendations/recommendation-loading-spinners.jsx","webpack:///./src/frontend/state/shipping-region/reducer.js","webpack:///./src/frontend/components/wait-for-consent-api-loaded/wait-for-consent-api-loaded.jsx","webpack:///./src/frontend/utils/api.js","webpack:///./src/frontend/state/views/syi/reducers/extra-features.js","webpack:///./src/frontend/state/items/initial-state.js","webpack:///./src/frontend/state/member/action-types.js","webpack:///./src/frontend/state/configure-store.js","webpack:///./src/frontend/utils/assert.js","webpack:///./src/frontend/apps/tradera/index.js","webpack:///./src/frontend/state/items/actions.js","webpack:///./src/frontend/apps/syi/script/app_react/utils/throttled-action.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/filters.js","webpack:///./src/frontend/state/member/selectors.js","webpack:///./src/frontend/utils/history.js","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-button.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/attribute-buttons-list.jsx","webpack:///./src/frontend/constants/item-types.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/on-ready.js","webpack:///./src/frontend/state/views/syi/actions/category-actions.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/overlay.jsx","webpack:///./src/frontend/state/views/syi/actions/payment-actions.js","webpack:///./src/frontend/components/recommendations/recommendations-requests.js","webpack:///./src/frontend/components/form-controls/radio-group.jsx","webpack:///./src/frontend/components/zign-sec-modal/zign-sec-logo.jsx","webpack:///./src/frontend/components/zign-sec-modal/zign-sec-modal.jsx","webpack:///./src/frontend/apps/syi/script/app_react/pages/summary-page/components/syi-zign-sec-modal.jsx","webpack:///./src/frontend/state/views/start-page/reducer.js","webpack:///./src/frontend/apps/my-tradera/app/constants/list-types.js","webpack:///./src/frontend/apps/my-tradera/app/utils/init-data.js","webpack:///./src/frontend/apps/my-tradera/app/utils/fetch.js","webpack:///./src/frontend/state/views/syi/reducers/item-duration.js","webpack:///./src/frontend/components/item-card/item-card-parts/disacount-price-label.jsx","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/EbaySweden.TouchWeb/static/script/app/ui/layout/ads/ad-slot-utilities.js","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_accessories.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_antiques_design.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_art.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_beauty_care.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_books_magazines.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_charity.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_childrens_clothing_shoes.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_clothes.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_collectibles.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_computers_accessories.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_construction_tools.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_consumer_electronics.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_currency.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_dvd_videos.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_hobby.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_home_household.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_jewlry_gemstones.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_mobile_phone_telecommunications.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_music.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_other.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_photo_cameras_optics.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_postcards_pictures.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_shoes.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_sports_leisure.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_stamp.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_tickets_travel.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_toys_childrens_items.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_watches.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_vehicles_boats_parts.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_video_computer_games.svg","webpack:///./src/EbaySweden.TouchWeb/static/images/category-icons/ic_handmade_applied_arts.svg","webpack:///./src/frontend/helpers/category-icon-helper.js","webpack:///./src/frontend/constants/storage.js","webpack:///./src/frontend/apps/tradera/components/vip/bidding/bin-modal/bin-modal-top-description.jsx","webpack:///./src/frontend/apps/my-tradera/app/components/listing/item/info-item-components.js","webpack:///./src/frontend/components/site-footer/footer-localization-link.jsx","webpack:///./src/frontend/utils/consent-service.js","webpack:///./src/frontend/components/site-footer/footer-links.jsx","webpack:///./src/frontend/components/site-footer/site-footer.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-body.jsx","webpack:///./src/frontend/hooks/use-interval.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/storage.js","webpack:///./src/frontend/components/dialog/dialog-modal.jsx","webpack:///./src/frontend/apps/syi/script/app_react/services/scribe.js","webpack:///./src/EbaySweden.TouchWeb/static/script/libs/triot.js","webpack:///./src/frontend/utils/countrycode.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/modals/modal-container.jsx","webpack:///./src/frontend/apps/tradera/components/vip/api/vip-api-constants.js","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/index.js","webpack:///./src/frontend/components/ads/ad.jsx","webpack:///./src/frontend/state/views/syi/actions/helpers/server-validation-error-helper.js","webpack:///./src/frontend/state/views/syi/reducers/buyer-region.js","webpack:///./src/frontend/utils/cookie.js","webpack:///./src/frontend/utils/register-live-updates.js","webpack:///./src/frontend/state/member/reducer.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./src/frontend/state/items/api.js","webpack:///./src/frontend/state/views/syi/actions/shipping-actions.js","webpack:///./src/frontend/components/alink/alink.jsx","webpack:///./src/frontend/state/environment/actions.js","webpack:///./src/frontend/state/views/syi/reducers/fees.js","webpack:///./src/frontend/components/messaging/messaging-modal.jsx","webpack:///./src/frontend/state/views/syi/actions/image-actions.js","webpack:///./src/frontend/components/flag/flag.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/background-image-loader.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/item-card-image.jsx","webpack:///./src/frontend/state/views/checkout/initial-state.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/route-helper.js","webpack:///./src/frontend/components/ads/localized-dfp-ad.jsx","webpack:///./src/frontend/state/views/syi/actions/helpers/postnord-parcel-productid-converter-helper.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/environment.js","webpack:///./src/frontend/apps/my-tradera/app/state/selectors/router.js","webpack:///./src/frontend/apps/my-tradera/app/state/actions/my-tradera-items.js","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/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/components/recommendations/recommendations.jsx","webpack:///./src/frontend/components/recommendations/index.js","webpack:///./node_modules/react-intersection-observer/react-intersection-observer.m.js","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/reducer.js","webpack:///./src/frontend/state/discover/helpers.js","webpack:///./src/frontend/state/discover/reducer.js","webpack:///./src/frontend/state/init-data/action-types.js","webpack:///./src/frontend/state/init-data/reducer.js","webpack:///./src/frontend/state/items/reducer.js","webpack:///./src/frontend/state/multi-currency/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/attributes.js","webpack:///./src/frontend/state/views/syi/reducers/attributes-helpers.js","webpack:///./src/frontend/state/views/syi/reducers/member-consent.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/my-tradera/reducer.js","webpack:///./src/frontend/state/views/reducer.js","webpack:///./src/frontend/state/root-reducer.js","webpack:///./src/frontend/state/views/syi/actions/price-actions.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/item-actions-helper.js","webpack:///./src/frontend/components/item-card/item-card-parts/animated-price-label.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/leading-badge.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/overbidden-badge.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/shipping-badge.jsx","webpack:///./src/frontend/components/item-card/item-card.jsx","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/next-shipping-selectors.js","webpack:///./src/frontend/state/multi-currency/actions.js","webpack:///./src/frontend/state/multi-currency/selectors.js","webpack:///./src/frontend/state/views/syi/reducers/category.js","webpack:///./src/frontend/hooks/use-is-mobile.js","webpack:///./src/frontend/state/views/syi/reducers/syi.js","webpack:///./src/frontend/state/views/syi/reducers/images.js","webpack:///./src/frontend/state/items/action-types.js","webpack:///./src/frontend/state/views/syi/actions/draft-actions.js","webpack:///./src/frontend/state/ui/actions.js","webpack:///./src/frontend/state/ui/api.js","webpack:///./src/frontend/apps/my-tradera/app/helpers/enums.js","webpack:///./src/frontend/state/views/report-item/reducer.js","webpack:///./src/frontend/utils/itm.js","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/get-selected-shipping-options.js","webpack:///./src/frontend/state/discover/actions.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/customer-feedback/mopinion-loader.js","webpack:///./src/frontend/utils/breakpoints.js","webpack:///./src/frontend/components/content-switch/content-switch.jsx","webpack:///./src/frontend/constants/transaction-types.js","webpack:///./src/frontend/state/views/view-item/item-state-helper.js","webpack:///./src/frontend/components/item-card/item-card-parts/bids-label.jsx","webpack:///./src/frontend/state/views/report-item/constants.js","webpack:///./src/frontend/components/page-head/page-head.jsx","webpack:///./src/frontend/apps/syi/script/app_react/services/google-tagmanager.js","webpack:///./src/frontend/state/page/actions.js","webpack:///./src/frontend/apps/tradera/components/discover/constants/constants.js","webpack:///./src/frontend/components/item-card/item-card-parts/settings-button.jsx","webpack:///./src/frontend/state/views/syi/reducers/charity.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./src/frontend/state/views/view-item/reducer.js","webpack:///./src/frontend/state/views/syi/actions/fees-actions.js","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/validate.js","webpack:///./src/frontend/state/views/syi/reducers/next-shipping/validate-valid-shipping-price.js","webpack:///./src/frontend/components/application-error-boundary/index.js","webpack:///./src/frontend/services/category-service.js","webpack:///./src/frontend/components/site-header/hover-menu/constants.js","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/EbaySweden.TouchWeb/static/script/utils/itm.js","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/components/site-header/dropdown-menu-content.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/localization-region-picker.jsx","webpack:///./src/frontend/components/site-header/localization-link.jsx","webpack:///./src/frontend/components/site-header/hover-menu/hover-menu-item.jsx","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-to-link.jsx","webpack:///./src/frontend/components/profile-menu/expandable-localization-menu-item.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu-alerts.jsx","webpack:///./src/frontend/components/profile/profile-card.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu-content.jsx","webpack:///./src/frontend/components/profile-menu/sign-in-menu-content.jsx","webpack:///./src/frontend/components/profile-menu/profile-menu.jsx","webpack:///./src/frontend/components/site-header/profile.jsx","webpack:///./src/frontend/components/site-header/profile-link.jsx","webpack:///./src/frontend/components/site-header/profile-menu-link.jsx","webpack:///./src/frontend/components/site-header/search-button.jsx","webpack:///./src/frontend/components/modal-renderer/modal-renderer.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/site-header/site-header.jsx","webpack:///./src/frontend/apps/syi/script/app_react/history.js","webpack:///./src/frontend/components/item-card/item-card-parts/animated-time-left-label.jsx","webpack:///./src/frontend/apps/my-tradera/app/state/actions/cookies.js","webpack:///./src/frontend/components/item-card/item-card-parts/discount-badge.jsx","webpack:///./src/frontend/state/views/start-page/api.js","webpack:///./src/frontend/state/views/start-page/actions.js","webpack:///./src/frontend/hooks/use-is-desktop.js","webpack:///./src/frontend/hooks/use-is-loggedin.js","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:///./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.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-categoires.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/apps/tradera/components/start-page/page-content.jsx","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-sellers-fallback.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-info-card.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/wish-list/wish-list.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/image-tag.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/tags/image-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/trending/trending-brands-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-brands-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-searches-tags.jsx","webpack:///./src/frontend/apps/tradera/components/start-page/personalised/personalised-tags.jsx","webpack:///./src/frontend/apps/tradera/pages/start-page.jsx","webpack:///./src/frontend/apps/tradera/pages/cart-page.jsx","webpack:///./src/frontend/apps/tradera/routes.jsx","webpack:///./src/frontend/apps/my-tradera/app/helpers/messaging-helpers.js","webpack:///./src/frontend/utils/login.js","webpack:///./src/frontend/state/views/syi/actions/short-description-actions.js","webpack:///./src/frontend/state/views/syi/selectors/category-selectors.js","webpack:///./src/frontend/hooks/use-in-spa.js","webpack:///./src/frontend/apps/my-tradera/app/state/reducers/payments-reducer.js","webpack:///./src/frontend/apps/syi/script/app_react/services/config.js","webpack:///./src/frontend/state/views/syi/reducers/scroll.js","webpack:///./src/frontend/components/errors/error-container.jsx","webpack:///./src/frontend/components/item-card/item-card-parts/new-today-label.jsx","webpack:///./src/frontend/state/views/profile/initial-state.js","webpack:///./src/frontend/state/get-initial-state.js","webpack:///./src/frontend/state/ads/initial-state.js","webpack:///./src/frontend/state/environment/initial-state.js","webpack:///./src/frontend/state/member/initial-state.js","webpack:///./src/frontend/state/multi-currency/initial-state.js","webpack:///./src/frontend/state/language/initial-state.js","webpack:///./src/frontend/state/page/initial-state.js","webpack:///./src/frontend/state/views/initial-state.js","webpack:///./src/EbaySweden.TouchWeb/static/script/components/search/helpers/suggestions-api.js","webpack:///./src/frontend/components/item-card/hooks.js"],"names":["binValidationParser","error","validationTitle","validationBody","BIN_VALIDATION_RESULTS","ITEM_NOT_FOUND","BIDDER_IS_BLOCKED","BUYING_OWN_ITEM","ONLY_EU_BUYERS_ACCEPTED","ONLY_NORDIC_BUYERS_ACCEPTED","ONLY_SWEDISH_BUYERS_ACCEPTED","USER_IS_SUSPENDED","ITEM_HAS_ENDED","PURCHASE_DID_NOT_SUCCEED","ITEM_ALREADY_PURCHASED_BY_OTHER_USER","ItemDisplayConfirmed","itemImage","itemTitle","formattedPrice","itemUrl","className","height","src","href","BIN_FORM_STATES","CenteredIcon","children","Separator","style","BigSeparator","CloseButton","action","text","type","onClick","BinModal","onClose","preferredCurrency","toLocalizedUrl","useUrlLocalizer","t","useTranslator","dispatch","useDispatch","useState","currentFormState","setCurrentFormState","undefined","setError","purchaseOrderId","setPurchaseOrderId","language","useCurrentLanguage","itemDetails","useSelector","state","views","viewItem","seller","itemMainImage","title","itemId","shippingOptions","fixedPrice","formatPrice","buyerCountryCode","shippingRegion","shippingCountry","countryCodeIso2","onContinue","useCallback","analytics","window","location","closeModal","fetchItemAndBidInfo","dismissOnOverlayClick","onDismiss","mobileFullscreen","titleKey","descriptions","classes","memberId","alias","cleanedAlias","hasBackground","isCompany","hasShop","med","isFirstItem","leftButton","rightButton","purchaseBin","googleAnalyticsData","then","data","e","response","responseStatus","errorCode","isError","initData","gdpr","modalOpen","cookieUtil","readCookie","GDPR_CONSENT_ALERT_DISMISSED","settingsOpen","hasSearch","itemLayout","DEFAULT_COOKIES","key","messagingBadges","cache","read","CACHE_KEYS","MESSAGING_BADGES","threads","threadsUnread","siteLayout","systemMessages","SYSTEM_MESSAGES","categoryDropdownMenu","open","CONSTANTS","MODAL","CLOSED","badges","messaging","system","itemSettings","item","messagingModal","participating","recipientId","modals","currentModal","notificationOptinModal","modalType","gaLabel","description","tagGroups","profileMenu","redirectUrl","quickView","items","itemIds","currentItem","loading","showHeaderSearch","pageName","showSearchForm","BankAccountMissing","InvoiceOverdue","InvoiceUnpaid","PayoutFailed","PayoutReadyBankAccountMissing","SwishNumberMissing","videoModal","video","actionTypes","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","PAYOUTS_LOADED","PAYOUTS_ERROR","saveBankAccount","getState","a","clearingNumber","selectPaymentsState","bankAccountDetails","newClearingNumber","accountNumber","newAccountNumber","fetch","method","credentials","headers","body","json","result","ok","payload","maskedAccountNumber","code","logger","saveTinkBankAccount","account","errorMessage","bankIdAuthenticate","ENDPOINTS","BANK_ID_AUTHENTICATE","purpose","bankIdUserMessage","bankIdVerification","errorCount","bankIdPollProgress","sleep","delay","resolve","BANK_ID_PROGRESS","Date","getTime","isCompleted","tink","bankIdInProgress","loadInitData","myTradera","searching","deletePhoneNumber","updatePhoneNumber","newNumber","number","isValid","length","savePhoneNumber","phoneNumber","requireSmsVerification","requireBankIdVerification","completeText","verificationText","updateVerifyCode","verifyCode","deleteBankAccount","removePayout","updateAccountNumber","updateClearingNumber","initSaveBankAccount","invalidNumber","initTink","cancelTink","errorTink","loadBankAccounts","accounts","selectBankAccount","cancelBankId","bankIdContinue","loadPayouts","page","params","HEADER","LAST_CHANCE","PICKS_FOR_YOU","POPULAR_CATEGORIES","CAROUSEL","RECENTLY_VIEWED","INSTAGRAM_FEED","getBidCount","bidInformation","bidCount","getSumOfDiscounts","discounts","transaction","discount","amount","total","currentAmount","getMaxBid","caller","maxBid","getTimeLeft","isActive","timeLeft","timeleft","isTimeLeftCritical","critical","getShippingCost","listViewType","translateShippingNames","name","names","Takeaway","TakeawayLong","TakeawayOnly","SchenkerPrivpak","Alternative","LIST_VIEW_TYPES","BASIC","getShippingLabelWithPrice","shippingItem","shippingType","shippingCost","shouldShowShippingPrice","listing","selectedShipping","isTakeaway","cost","isFreeShipping","STRINGS","SHIPPING_LABELS","FREE_SHIPPING","hasIntegratedPayment","theOnlyShippingOption","TAKEAWAY","i","shippingOption","accumulator","currentValue","containerTypes","trackContainerClick","containerType","trackingId","Analytics","trackEvent","category","label","setErrorMessage","message","Error","CHECKOUT_ERRORS","GENERIC","getCheckout","axiosWithTokenRefresh","get","ORDER_CHECKOUT_VIEW","withCredentials","finalizeResponse","handleError","getPaymentOptions","selectedShippingId","ORDER_CHECKOUT_PAYMENT_OPTIONS","initializePayment","formData","post","ORDER_CHECKOUT_INIT_PAYMENT","axiosConfigs","authenticated","getPaymentStatus","paymentAttemptId","ORDER_CHECKOUT_PAYMENT_STATUS","completePayment","ORDER_CHECKOUT_COMPLETE_PAYMENT","ORDER_PURCHASE_BIN","getBraintreeToken","paymentOption","ORDER_CHECKOUT_BRAINTREE","paymentMethod","getExternalAuthData","ORDER_CHECKOUT_AUTH_DATA","sendSwishSms","TraderaLogo","width","otherProps","data-nav-logo","alt","viewBox","d","propTypes","defaultProps","React","memo","ImageGalleryModal","keyCode","carousel","previous","preventDefault","next","event","stopPropagation","props","closeModalCallback","addEventListener","this","navigate","removeEventListener","images","initialSlideIndex","rest","settings","initialSlide","accessibility","adaptiveHeight","lazyLoad","fade","useCss","useTransform","responsive","breakpoint","BREAKPOINT_SIZES","BREAKPOINTS","MD","min","arrows","classNameBody","stopClickEventPropagationFromCarousel","ref","c","render","image","index","handleCloseModalClick","stopClickEventsFromImage","normal","Component","ViewItemImage","imageContainer","createRef","zoomImage","bounds","hover","zoomImageLargeEnough","hoverState","setState","prevState","current","getBounds","containerWidth","containerHeight","zoomImageWidth","zoomImageHeight","widthDiff","heightDiff","widthRatio","nativeEvent","offsetX","heightRatio","offsetY","translateXValue","translateYValue","transform","handleMouseHover","zoomImageElement","getBoundingClientRect","enableZoom","handleZoomClick","minWidth","maxWidth","SM","max","medium","onMouseMove","handleMouseMove","onMouseLeave","ViewItemCarouselZoom","showZoomModal","activeSlideIndex","basicCarousel","carouselStyle","fixedHeight","onMouseUp","customPaging","imageIndex","onMouseOver","goTo","multiThumbnail","afterChange","arrowClassName","isValidPrice","str","String","_","isFinite","isInt","validate","newState","isPureBinSelected","openingBid","fixedPriceValidationError","isNaN","validateFixedPrice","openingBidValidationError","reservePriceValidationError","showReservePrice","reservePrice","auctionBinPrice","validateReservePrice","auctionBinValidationError","showAuctionBinPrice","validateAuctionBinPrice","validationError","initialState","selectableVats","config","selectableVatValues","reservePriceCanChangeButNotBeRemoved","vat","assign","ItemQuantitySelector","quantity","quantityInShop","onQuantityChange","inputMode","setInputMode","onChange","value","target","Math","defaultValue","Array","count","autoComplete","ItemDisplay","TimeLeftLabel","isEndingSoon","dangerouslySetInnerHTML","__html","data-item-card-details-time-left","getReportItemModel","touchWebClient","postReport","reason","categoryId","loadReportItemModel","reportItem","setViewState","hasEnded","VIEW_STATES","ITEM_ENDED","FORM","LOADING","handleReportItemModel","API_ERRORS","LOGGED_OUT","getReturnUrl","getBackToHereRedirectUrl","reportItemModel","setReportItem","submitReport","SUBMITTING","SUBMIT_SUCCESS","SUBMIT_FAILED","VIEW_ITEM_STATES","INITIALIZING","ACTIVE","ENDING","ENDED","ITEM_STATES","ONGOING_AUCTION","ONGOING_AUCTION_BIN","ONGOING_FIXED_PRICE","ENDED_AUCTION_WITHOUT_BID","ENDED_AUCTION_WITH_WINNING_BID","ENDED_AUCTION_WITHOUT_WINNING_BID","ENDED_AUCTION_BIN_BOUGHT_AS_BIN","ENDED_FIXED_PRICE","UNKNOWN","PaymentSummary","price","LastChanceNewConnected","connect","isLoggedIn","member","multiCurrency","addItems","itemActions","add","openQuickView","uiActions","openedFrom","toggleWishlist","wishlist","updateItem","inSPA","pageSpecificData","BuyingEventPusherEnabled","BuyingEventPusherServerUrl","useEffect","axios","CancelToken","source","cancel","cancelToken","token","CANCELLED","ABORTED","NETWORK","registerLiveUpdates","url","onConnect","socket","emit","onClientEvent","Type","Event","AuctionId","currentBid","BidAmount","totalBids","NumberOfBids","itemCount","useIsMobile","handleQuickView","displayItems","generateItemCardPlaceholders","itemsMap","maxItemsCount","mappedItems","resolveItems","animatePriceLabel","animateTimeLeft","featureSwitches","lazy","lazyLoadSettings","onAddToWishlist","onQuickView","onRemoveFromWishlist","ready","useLink","role","compose","withUrlLocalizer","withTranslator","hot","module","queryServerTime","retryCount","latencyLimit","maxRetries","requestStart","getCurrentLanguage","currentTime","start","latency","parse","getServerTime","SEARCHING","CHANGE_URL_PARAMS","CHANGE_LIST_VIEW_TYPE","ERROR","HIDE_NOTIFICATIONS","OPEN_MODAL","SET_BREAKPOINT","SET_SELECTED","MOBILE_MENU","MOBILE_ACTIONS","UPDATING_NEW_SHPPING_PRICE","SET_MEMBER_MESSAGING_PARTICIPATION","OPEN_MESSAGING_MODAL","uiActionTypes","CLOSE_MESSAGING_MODAL","SET_TRANSLATED_ROUTE_INFORMATION","hideActualNotification","notification","setTranslatedRouteInformation","whenInitialized","routeInformationFactory","hideNotification","notificationName","expires","setMonth","getMonth","setCookie","changeListViewType","COMPACT","myTraderaItemActions","rebuildList","scrollToInitialScroll","initialScrollEls","document","querySelectorAll","scrollTo","offsetTop","openModal","options","setBreakPoint","TEXT_STRINGS","ERRORS","mobileMenu","forceClose","mobileActions","setSelected","object","updatingNewShippingPrice","setMemberMessagingParticipation","toggle","openMessagingModal","closeMessagingModal","defaultState","isSearching","environment","version","splitTests","memberAlias","memberFirstName","memberLastName","memberCountryCodeIso2","memberMessagingParticipation","selected","isUpdatingNewShippingPrice","hideNotifications","uiReducers","def","reducers","actions","selectMyTraderaState","ITEM_LAYOUT","default","SITE_LAYOUT","MYTRADERA_DEFAULT_COOKIES","LIST_VIEW_TYPE","ITEMS_PER_PAGE","SHOW_FILTERS","GDPR_CONSENT_COOKIE","FORCE_GEO_DEV","PREFERRED_LANGUAGE","REGION_PICKER_DISMISSED","SHIPPING_COUNTRY","CART_ID","COOKIE_CATEGORIES","Essential","Performance","Functional","Marketing","CATEGORIZED_COOKIES","COOKIE_DEFAULT_CATEGORY","CLOSE_MODAL","SimpleModal","styleBody","closeOnEscape","allowPinchZoom","forwardProps","GdprSettings","cookieCategory","decodedCookie","decodeURI","CookieUtil","RegExp","test","isCategoryEnabled","performance","functional","marketing","cookie","createCookie","join","moment","toDate","isEnabled","featureSwitch","isSwedishOrUndefined","languageCodeIso2","toLowerCase","getLanguageFromCountryCode","se","dk","de","getCountryCodeFromLanguage","languageCode","en","da","defaultCookies","val","set","SET","selectCookiesState","cookies","modalState","START","COMPLETED","IN_PROGRESS","defaultBox","weight","shippingCalculatorSlice","createSlice","box","selectedCountry","weightUnit","isLoadingShippingProducts","shippingProviders","providerName","swedishProducts","internationalProducts","internationalProductsGroupedByCountry","shoError","setSelectedCountry","setDefaultValuesOnBox","updateFilter","filterName","setWeightFilter","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","setWeightUnit","beginFetchingShippingProducts","setShowError","showError","setShippingProducts","internationalShippingCalculatorProducts","newShippingProviders","shippingProvider","toCountryCodeIso2","product","logoUrl","products","setDefaultValues","fetchShippingProducts","selectBox","selectIsBoxValid","INTERNATIONAL_SHIPPING_CALCULATOR","lengthInMillimeters","heightInMillimeters","widthInMillimeters","weightInGrams","ITEM_CARD_IMAGE_MODES","SQUARE","NATURAL","arrayUtils","shallowCopyArrayObjects","template","templateId","templateName","shortDescription","imageUrl","imageRotationDegrees","draftImage","rotationDegrees","requestCategoryList","REQUEST_CATEGORY_LIST","receiveCategoryList","RECEIVE_CATEGORY_LIST","handleCategoryListError","HANDLE_CATEGORY_LIST_ERROR","fetchCategoryList","cancelTokenId","results","VERSION_MISMATCH","reload","force","reloadLocalized","updateShippingRegion","expireDate","setShippingCountry","removeShippingCountryCookieIfSwedish","geolocation","isoCode","hasCookie","eraseCookie","setDefaultShippingCountry","getAvailableShippingCountries","selectIsLoadingAvailableShippingCountries","selectHasLoadedAvailableShippingCountries","beginLoadingAvailableShippingOptions","AVAILABLE_SHIPPING_COUNTRIES","shippingCountries","availableCountries","country","setAvailableShippingCountries","onLocalizationShippingRegionSelected","currencyCode","setPreferredCurrency","setPreferredLanguage","XS","LG","XL","BPOINT","entries","size","QuickView","imageFormats","existsInWishList","handleModalDismiss","closeQuickView","urlWithTracking","disableNext","disablePrev","mediaQuery","onKeyDown","prevItem","nextItem","top","right","zIndex","pageType","GtmService","trackAction","bottom","left","ui","defaultCampaignProperties","campaignCode","campaignCodeId","campaignCodeDescription","maxFeeCap","campaignCodeChecked","firstTimeSubscribe","validCampaign","timeoutId","campaignCodeValid","searchingDelayed","searchingDelayedTimeoutId","isReadOnly","bannerMobileImageUrl","bannerTabletImageUrl","bannerDesktopImageUrl","nullIfFalsy","ensureValidCampaignCodeId","isChecked","ShippingDisplay","removeCostInShippingOption","option","replace","isSwedishBuyer","displayOptions","ship","displayText","specialSearchTerms","stammisglaset","SearchCategory","handleCategoryChange","selectOptions","selectedCategoryId","chosenCategory","isDefaultSelected","aria-label","data-search-category","id","SearchInput","categoriesElement","inputClassName","onBlur","onClearSearchInput","onFocus","onFormSubmit","onUserInputChange","onUserKeyUp","searchInputRef","searchTerm","selectedCategory","suggestionsElement","placeHolderTranslation","categoryName","showClearButton","onSubmit","data-nav-search","data-search-field","placeholder","maxLength","data-search-clear","data-search-submit","HighlightWord","query","icon","split","prev","evt","fixFlexHeightInIpadMini2Style","flexBasis","PreviousSearchesListItem","changeSearchTerm","isSelected","onPreviousSearchRemoved","encodeURIComponent","addRecentSearchText","onMouseDown","data-suggestion","data-previous-suggestion","data-ga-category","data-ga-action","data-ga-label","removeRecentSearchText","SearchesSuggestionsListItem","data-search-suggestion","ShopsSuggestionsListItem","suggestionUrl","urlName","data-shop-suggestion","CampaignSuggestionsListItem","campaignId","data-campaign-suggestion","headline","AdvancedSearchListItem","data-advanced-search","SellerSearchListItem","data-seller-search","SearchSuggestion","suggestions","visible","onChangeSearchTerm","selectedIndex","searchSuggestionsElementRef","data-search-suggestions-container","entry","componentProps","KEYCODE","Search","allCategories","categoryPath","discoverCurrentCategoryId","discoverSearchTerm","queryParams","history","currentCategoryId","setCurrentCategoryId","isSearchInputFocused","setIsSearchInputFocused","setSearchTerm","setSuggestions","selectedSuggestionIndex","setSelectedSuggestionIndex","loadSuggestionsDebounce","debounce","callback","getSuggestionsWrapper","enableSuggestionsFromBackend","getSuggestions","limitPrevious","enablePrevious","enableSuggestions","loadSearchSuggestions","newSearchTerm","changeWindowLocation","newQuery","trimmedSearchTerm","newSearchUrl","specialTermUrl","q","filteredQueryParams","paging","spage","isQueryReformulation","SEARCH","qs","stringify","addQueryPrefix","currentCategory","getNewSearchUrl","addRecentSearch","blur","push","allCategoriesOption","isTopLevel","optionsList","selectedOption","getCategoryDropdownConfig","categorySelectOptions","discoverActions","selectedOptions","which","click","incrementBy","newIndex","currentIndex","totalElements","getNextIndex","handleUpDownArrowKeys","ConnectedSearch","PAGE_TYPES","SEARCH_RESULT_PAGE","CATEGORY_RESULT_PAGE","discover","categories","SearchInSpa","withRouter","SearchOutsideSpa","mapCountryCodeToCountryKey","countryCode","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","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","fx","ga","gb","gd","ge","gf","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","ie","il","in","io","iq","ir","is","it","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","ru","rs","rw","sa","sb","sc","sd","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","sv","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za","zm","zw","withRouterParams","routerParams","useParams","useLocation","useHistory","initialStateBankIdRequirementExcluded","showBankIdProgress","showBankIdError","authenticationStarted","initialBankIdForBinRequired","userData","supportsVerification","bankIdForBinRequired","maskedPersonalNumber","initModuleGlobals","checkoutSlice","getInitialState","receiveCheckout","buyerMember","purchaseOrder","sellerMember","ongoingPaymentAttempt","isFetching","hasError","isPaid","isMarkedAsPaidByBuyer","receivePaymentOptions","paymentOptions","payment","setFetching","status","modal","cancelPayment","checkoutSummary","showDisableOverlay","MODAL_STATUS","setHasError","setPaymentFetching","setPaymentHasError","setPaymentMethodData","paymentMethodData","setCheckoutSummaryFetching","setCheckoutSummaryHasError","setSelectedPayment","selectedPayment","setSelectedShipping","setShowDisalbeOverlay","setOngoingPaymentAttempt","useBreakpointMobile","isMobile","innerWidth","active","setActive","useLayoutEffect","handleResize","useOnMount","fn","usePageMeta","DEFAULT","customPageMetaData","pageMetaData","metaRobots","metaTitle","pageActions","setPageMeta","useScrollToTopOnMount","PAGE_NAMES","Overview","BuyerActiveItems","BuyerItemsLost","SellerActive","SellerSold","SellerUnsold","BuyerPurchases","Profile","Settings","createReducer","saveAsDialogOpen","templatesLimitReachedDialogOpen","ignoreProperties","SET_SAVE_AS_DIALOG_OPEN","SET_TEMPLATES_LIMIT_REACHED_DIALOG_OPEN","RESET_IGNORE_PROPERTIES","ADD_IGNORE_PROPERTIES","union","REMOVE_IGNORE_PROPERTIES","difference","_paymentOptions","_paymentOptionsPresentationData","braintree","isBraintreeOnly","selectedPaymentOptions","hasAnyValidPayment","po","shapePaymentOptions","filteredPaymentOptions","presentationData","pd","paymentType","uiCheckedPaymentOptions","selectedPaymentOption","takeawaySelected","displayPaymentOptions","paymentOptionsTop","paymentOptionGroups","showToggle","forceBraintreeIfNeeded","isCreditCard","isSecure","helpModalId","isPhone","hasFee","allVisible","CATEGORIES","trackBiddingConfirmBid","trackBiddingShowEnterBid","trackBiddingShowConfirmBid","trackBiddingShowChangeMaxBid","trackBiddingQuickBid","trackBiddingNewMaxBid","trackNewBid","trackNewMaxBid","trackOpenCheckoutBin","trackConfirmBin","trackPayBin","trackKeepShopping","trackBinError","trackBidPlaced","validationCode","isMaxBid","potentialBidChange","bidId","transactionTotal","weightedBidValue","BID_VALIDATION_RESULTS","LEADING_BIDDER","HIGHER_BIDDER_EXISTS","placedBidId","bidValue","trackWishlist","isAdding","trackAddToCart","sellerMemberAlias","trackLinkClickAndGotoUrl","getGaTrackingData","clientId","getAll","trackingIds","gaData","LanguageSelect","idPrefix","languages","preferredLanguage","onLanguageSelected","displayName","languageCodeIso3","checked","handleOnChange","radioButtonClassName","mapDispatchToProps","ConnectedLanguageSelect","selectAvailableLanguages","selectPreferredLanguage","CurrencySelect","currencies","onCurrencySelected","currency","shortName","longName","ConnectedCurrencySelect","selectCurrencies","selectPreferredCurrency","ownProps","ShippingCountrySelectDropdown","selectedShippingCountry","onSelect","searchFocus","setSearchFocus","search","setSearch","isSearchEnabled","setIsSearchEnabled","includesSearch","v","filteredShippingCountries","listStyle","Row","itemSize","ShippingCountrySelect","showShippingCountries","isLoadingAvailableShippingCountries","onShippingCountrySelected","ConnectedShippingCountrySelect","selectShippingCountry","selectAvailableShippingCountries","LocalizationMenu","showCurrencySelection","showRegionSelection","BUYER_ACTIVE_ITEMS_HIDE","BUYER_ACTIVE_ITEMS_SHOW","ACTIVE_ITEMS_RESTART_SUMMARY","MARK_PAID","SELLER_MARK_PAID","SELLER_UNMARK_PAID","UPDATE_SHIPPING_PRICE","MARK_SHIPPED","UNMARK_SHIPPED","DELETE_SHIPMENT","SELLER_HIDE","SELLER_SHOW","UNSOLDHIDE","UNSOLDSHOW","UNMARK_BOOKED","ACTIVE_END_ITEMS","UNSOLD_RESTART_ITEMS","BUYER_MARK_PAID","BUYER_UNMARK_PAID","BUYER_HIDE","BUYER_SHOW","goToDraft","draftId","goToStart","isReactComponentsEnabled","toLocalizedRiotUrl","goToSummary","fromPage","goToTemplates","goToTemplate","goToPublished","goToEdit","propertyNames","goToEditTemplate","setDraftUrlWithoutReload","replaceState","localizationRegionPickerEnabled","regionPickerDismissed","isFunctionalEnabled","availableShippingCountries","hasLoadedAvailableShippingCountries","GeneralError","data-general-error","data-general-reload","NotFoundError","data-not-found-error","shippingCalculator","selectFilterValue","selectWeightUnit","selectNormalizedWeight","selectWeightString","selectShippingProviders","selectInternationalShippingProviders","p","selectShippingProductsGroupedByCountry","selectIsDifferentFromDefaultBox","selectSelectedCountry","selectShowError","MopinionButton","formKey","openMopinionWidget","MopinionLanguageFeedbackButton","languageFeedbackForm","MopinionPaynovaFeedbackButton","paynovaFeedbackForm","MopinionAutomaticSuggestionFeedbackButton","automaticSuggestionFeedbackForm","MultiCurrency","amountInSek","TagName","tagName","isVisible","rate","maximumFractionDigits","decimals","PropTypes","shape","isRequired","string","symbolPrefix","symbolSuffix","decimalPlaces","num","match","rating","toFixed","RatingStars","gaAttributes","dark","utils","useSyiUrls","routes","templates","TEMPLATES","TEMPLATE","newTemplate","newTemplateFromDraft","editTemplateProperties","EDIT_TEMPLATE_PROPERTIES","newDraft","NEW_DRAFT","draft","DRAFT","draftSummary","DRAFT_SUMMARY","editDraftProperties","EDIT_DRAFT_PROPERTIES","published","PUBLISHED","urlGetters","setPersonalisedBrandsAction","setPersonalisedSearchesAction","setPersonalisedBrandsStatusAction","setPersonalisedSearchesStatusAction","recentSearchesIsUpdatedAction","lastUpdated","fetchPersonalisedBrandsIfNeeded","personalisation","brands","PERSONALISED_SUGGESTIONS","logError","brandsResult","newStatus","fetchPersonalisedSearchesIfNeeded","searches","searchesResult","removeRecentSearch","useIsFeatureEnabled","featureName","setLongDescription","longDescription","draftActions","updateDraftCanBeResumed","setLongDescriptionFromDraft","reset","errors","ELASTIC_MYTRADERA","isDisputesEntranceEnabled","isMyTraderaElasticEnabled","isBuyerOrderInformationEnabled","isMessagingEnabled","isMessagingBuyerButtonsEnabled","isMessagingSellerButtonsEnabled","isOrderCheckoutBinEnabled","isReactCartEnabled","downloadCsvPayouts","labels","columns","CurrentPrice","TransactionDate","EndDate","ShippingCost","Bids","ItemId","OpeningBid","ReservePrice","BuyItNow","OwnReference","MaxBid","TimeLeft","columnCssClassCore","getCoreCssClass","column","getHeading","cssClass","columnKey","term","getTranslatedColumnKey","getHeadings","columnDefinitions","getUserHeading","highestBidder","getColumns","hasTransactionDate","transactionDate","currentPrice","getItemId","itemType","hasHighestBidder","leadingBidder","shouldShowBids","purchaseType","getTransactionDate","formatted","getEndDate","endDate","getTimeLeftAsString","columnCssClass","itemHasBidsButReservePriceNotReached","Discount","columnTitle","full","getBids","component","infoItemComponents","BIDS","getOpeningBid","pricing","getReservePrice","getBuyItNow","buyItNow","getOwnReference","ownReference","callerMaxBid","TIME_LEFT","definitions","ITEM_PRICE","definition","tagTitle","getColumn","webApiUrl","touchWebUrl","BRAND_LIST_PAGE","BRAND_PAGE","CAMPAIGN","CART_UPDATE_SUMMARY","CART_OVERVIEW_VIEW","CART_ADD_ITEM","CART_REMOVE_ITEMS","CART_SET_ITEM_QUANTITY","CHARITY_EARNINGS_TICKER","CMS_API","cmsApiUrl","FAVORITE_SELLER_ADD","FAVORITE_SELLER_REMOVE","FAVOURITE_SELLERS","GEO_PUBLIC_API_URL","geoPublicApiUrl","GET_PROFILE_FEEDBACK_ITEMS","HYPERWALLET_PAYOUT_COMPLETE","HYPERWALLET_PAYOUT_TOKEN","HYPERWALLET_PAYOUT","ITEM_DESCRIPTION","ITEM_DISCOUNT_QUOTA","MEMBER_PAYOUT_SETTINGS_REMOVE","MEMBER_PAYOUT_SETTINGS","MEMBER_SYSTEM_MESSAGES","ORDER_CHECKOUT_CONFIRMATION","ORDER_CHECKOUT_PAYMENT","orderCheckoutPaymentUrl","ORDER_PURCHASE_SHOP_ITEMS","PAYMENT_SWISH_OPTOUT","SAVED_SEARCH_ADD","SAVED_SEARCH_NOTIFICATION","SAVED_SEARCH_REMOVE","SEARCH_SUGGESTIONS","SELLING_ATTRIBUTES","SELLING_SUGGEST_ATTRIBUTES","SELLING_CATEGORY_RESTRICTIONS","SETTINGS","SHIPPING_BAGS_ORDER_COUNT_FOR_ITEM","SHIPPING_BAGS_ORDER_COUNT_TOTAL","SHIPPING_BAGS_ORDER","SHIPPING_PROVIDERS","TOUCHWEB_URL","TRANSLATE_PROFILE_FEEDBACKITEMS","WEB_API","WISHLIST","WISHLIST_ADD","WISHLIST_REMOVE","START_OFF_PLATFORM_CHECKOUT","getLocalizedUrls","overview","buyerOverview","sellerOverview","accountOverview","activeItems","itemsLost","sold","unsold","purchases","savedSearches","favouriteSellers","pickList","buyerFeedback","sellerFeedback","myFeedback","profile","invoices","payments","payments2","selling","settingsAccount","settingsEmail","settingsSelling","settingsNotifications","settingsSecurity","settingsPayouts","urls","class","isExternal","isBuyerPage","searchUrl","listType","PAGE_LIST_TYPES","BUYER_ACTIVE_ITEMS","buyerActiveItemsColumns","hasLabels","shouldShowCompact","subHeadings","bulkEditEnabled","noResultsText","BUYER_ITEMS_LOST","buyerItemsLostColumns","SELLER_ACTIVE","sellerActiveColumns","stats","FastPris","Auktioner","Bud","SummaUtropspris","SummaBud","SELLER_SOLD","sellerSoldColumns","Butiksobjekt","SELLER_NOT_SOLD","sellerUnsoldColumns","BUYER_PURCHASES","buyerPurchasesColumns","showBasedOnInitData","subTitle","isInternalOverview","paymentSettings","showPayments1Menu","showPayments2Menu","payments2Columns","hideMainNav","ModalFooter","isLoading","referenceIsReadonly","reference","draftReason","restart","publishedPromoted","publishedHighlighted","createdDate","lastModifiedDate","publishedDate","publishedAsItemType","additionalDescriptions","metadata","isNewDraft","newAdditionalDescriptions","isEqual","toISOString","RECENTLY_VIEWED_ITEMS","store","keyPrefix","cached","getItem","removeItem","ttl","setItem","clearByPrefix","caches","getItemsByPrefix","now","localStore","headerElement","querySelector","BasicApp","fallback","locale","cartItemCount","getAttribute","cartSum","cartItems","Expand","timeout","classNames","EnterFrom","from","unmountOnExit","EnterFade","BidDetails","hasLeadingBid","hasLostLeadingBid","isCountdownEnabled","isEnding","itemState","leadingBidAmount","onShowBids","secondsLeft","serverSecondsLeft","ITEM_TYPES","AUCTION","AUCTION_BIN","isSupportedItemType","hasBids","amountDetails","getAmountDetails","data-test-bid-details-amount-title","data-test-bid-details-amount","formatNumberWithSeparators","data-test-ended-time","formatDate","data-test-time-ended","data-test-will-end-time","seconds","data-test-number-of-bids","leadingBid","CATEGORY_LIST","CUSTOM_RESULT_PAGE","ENDLESS_RECOMMENDATIONS_PAGE","ERROR_PAGE","MY_TRADERA_PAGE","REPORT_ITEM_PAGE","START_PAGE","SYI_PAGE","VIEW_ITEM_PAGE","ADD_ITEM_ON_DISPLAY","ADD_SEARCH_RESULTS","CHANGE_SORT_VALUE","HANDLE_SEARCH_RESULTS_ERROR","LOCATION_CHANGE","RECEIVE_SEARCH_RESULTS","REMOVE_ITEM_ON_DISPLAY","REQUEST_SEARCH_RESULTS","SET_ACTIVE_CATEGORY","SET_ACTIVE_FILTER","SET_CATEGORY_PATH","SET_CURRENT_CATEGORY_ID","SET_SINGLE_FILTER","STOP_REQUEST_SEARCH_RESULTS","RESET","getGeoPublicApiUrl","forceGeoDevCookie","defaultAction","DEFAULT_ACTION","setIsFetchingGeolocation","isFetchingGeolocation","SET_IS_FETCHING_GEOLOCATION","getGeolocation","utilizeCancelToken","fetchGeolocation","SET_GEOLOCATION","setCurrencyIfNotChosen","filterAvailableLanguages","FAILED_LOADING_GEOLOCATION","RadioSwitch","optionClasses","getOptionClasses","flexGrow","htmlFor","classMap","noclip","fetchDescription","getItemApi","400","IGNORE_ME","401","placeBidApi","onLoggedOut","bid","isSuccessful","leadingBidderMemberId","leadingBidMemberAlias","leadingMemberAlias","nextValidBidAmount","nextBidAmount","validationResult","placedBid","reservePriceReached","sellerMemberId","sellermemberId","startDate","bidInfo","analyticsData","myMaxBidAmount","getItemsFromSeller","LoadingPortal","el","createElement","loadingPortalRoot","getElementById","appendChild","classList","removeChild","ReactDOM","createPortal","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_NOTIFICATION_OPTIN_MODAL","CLOSE_NOTIFICATION_OPTIN_MODAL","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","REQUEST_ITEM_SETTINGS","OPEN_ITEM_SETTINGS","CLOSE_ITEM_SETTINGS","LOG_OUT","Object","defineProperty","exports","AppContainer","warnAboutHMRDisabled","console","Children","only","shouldWrapWithAppContainer","n","areComponentsEqual","setConfig","cold","configureComponent","toInt","round","Number","calculateShipping","deferred","$","Deferred","fail","reject","promise","OnDisplayBadge","SET_PAGE_TYPE","SET_PAGE_META_FROM_SEARCH_RESULT","SET_PAGE_META","MessagingButtonEmail","emailPayload","handleLogin","triot","bus","trigger","handleButtonClick","verticalAlign","MessagingButton","buttonVisible","signIn","checkUserMessagingParticipation","sellerId","err","buyerId","buyerAlias","mode","itemenddate","itemimageurl","itemtitle","receivermemberalias","getMessagingThreadLink","traderaUserId","singleThread","openForm","getMessagingPageLink","pathname","BUTTON_LABELS","ask_seller","contact_seller","contact_buyer","contact_seller_email","disableButton","modalTitle","messageSubject","itemEnddate","itemImageUrl","receiverMemberAlias","receiverMemberId","senderMemberAlias","businessWarning","reloadAfterClose","disabled","selectIsLoggedIn","api","setPreferred","locationUtils","globalStore","setIsPropertyEditMode","isPropertyEditMode","setCreationType","creationType","showAllErrors","hideAllErrors","setIsEditOfPublishedItem","isEditOfPublishedItem","resetPublishState","setEditedImageIndex","setCategoryRestriction","restriction","updateItemConditionRestrictionForCategory","toggleModal","modalId","showModal","modalData","hideModal","enableAutoSave","disableAutoSave","cartSlice","setCartData","merchantPreOrders","textWithHtml","elm","innerHTML","textContent","innerText","ensureString","s","isCurrentDescriptionFromDraft","fromDraftCounter","MODAL_TYPES","wishlistReminders","CHANNEL_TAG_GROUPS","buyingListingOutbid","buyingListingWon","sellingListingFirstBid","sellingListingAllBids","sellingListingSold","sellingPaymentReceived","date","format","getTimeSpanParts","optionsWithDefaults","startUnit","endUnit","parts","remaining","started","TIME_SPAN_UNIT_LENGTHS","part","floor","TIME_SPAN_UNITS","DAYS","HOURS","MINUTES","SECONDS","JsxSpinner","spinjsConfig","radius","lines","color","spinner","Spinner","spin","spinnerEl","stop","BottomButtons","getCartOverview","cartId","addItemToCart","removeItemsFromCart","setCartItemQuantity","confirmCartPurchase","shopItems","startOffPlatformCheckout","updateCartSummary","fetchCartData","checkoutData","onSuccess","addItemResult","confirmData","NewPageTracker","routeMap","matchedPage","matchPath","path","exact","strict","googleTagManagerService","newPage","trackPageView","resolveCode","enabled","currencyCodeOrNull","resolveCurrency","ApplicationErrorBoundary","capture","RouteMapRoutes","optionHasError","ensureGoodShippingOptions","ResultSet","_result","orderByTimestamp","orderByValue","orderByExpire","orderProp","b","_orderBy","StorageService","namespace","datastore","getDataSafe","encodedKey","encodeURI","purge","timestamp","prop","hasOwnProperty","addRow","row","propValue","rows","list","START_AUTH","SET_ERROR","CLOSE","SellerName","badgeText","rel","clock","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","keys","map","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","SELF_CLOSING_TAGS","_typeof","Symbol","iterator","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","arguments","call","objectWithoutProperties","indexOf","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","isArray","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","concat","getTagsFromPropsList","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","forEach","tagUnion","property","rafPolyfill","setTimeout","cafPolyfill","clearTimeout","requestAnimationFrame","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","tags","headElement","head","tagNodes","slice","indexToDelete","newElement","styleSheet","cssText","createTextNode","some","existingTag","isEqualNode","parentNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","toString","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","apply","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","oneOfType","arrayOf","node","defaultTitle","bool","func","titleTemplate","peek","rewind","mappedState","renderStatic","LoaderComponent","visibleClassName","loaderRef","useRef","GlobalLoader","PortalLoader","LocalLoader","Loader","usePortal","getSearchResults","endpoint","baseURL","process","paramsSerializer","arrayFormat","checkResponseVersion","QuickViewButton","iconClassName","suggestionsThrottle","ThrottledAction","INPUT_TYPE_MAP","Button","Color","Dropdown","transformServerOption","serverOption","warningLabel","transformServerAttribute","hiddenCategories","sortOrder","backingField","possibleValues","inputType","isMultiSelect","maxNumberOfValues","minNumberOfValues","numberOfValuesSelected","shouldTranslateValues","setAttributesFromDraft","attributeValues","fetchForCategory","defaultClient","attributeDefinitions","updateCategoryAttributesOptionsStatuses","campaignCodeActions","validateCampaignCode","updateAttribute","attributeId","optionValue","activate","onUpdated","selectCategoryAttributes","resetAttribute","throttledFetchCategoryAttributeSuggestions","fetchCategoryAttributeSuggestions","execute","splitTestGroup","splitTestGroups","splitTestEnabled","extractorType","getAttributeSuggestionExtractor","suggestedAttributes","termAttributeValues","transformServerAttributeSuggestion","suggestionsExtractorType","splitTest","attributeSuggestion","values","getSafeUrl","baseUrl","substring","httpClient","httpClientConfig","defaultJsonRequestHeaders","axiosConfig","available","preferred","selectIsForeignLanguageActivated","selectShouldAlwaysDisplayInMenu","shouldAlwaysDisplayInMenu","selectShouldDisplayInHeader","shouldDisplayInHeader","isTranslateDescriptionEnabled","selectViewItem","selectTranslatedDescription","translatedDescription","selectItemDetails","selectBreadcrumbs","breadCrumbs","selectItemId","selectBidInfo","selectAllowedBuyerRegionOutsideSweden","allowedBuyerRegion","isSwedenCountryNameOrUndefined","showLoading","translatedDescriptionLoading","translatedDescriptionLoadingError","languageSlice","gpsCountry","memberCountry","urlLanguage","languagesToShow","getTimeLeftInSeconds","endTimeInMs","calculateClientEndTime","serverTimeInms","serverlatency","clientTimeInMs","itemEndTimeInMs","formatMe","toLocaleString","symbol","symbolPosition","decimal","comma","NextArrow","display","PreviousArrow","BasicCarousel","slider","slickNext","slickPrev","slickGoTo","defaults","dots","dotsClass","nextArrow","prevArrow","infinite","speed","slidesToShow","slidesToScroll","data-testid","durationDays","customEndTime","itemCondition","step1","step2","step3","step4","tmp","propertyName","e1","step1Errors","e2","step2Errors","e3","step3Errors","e4","step4Errors","offset","once","SET_PREFERRED_CURRENCY","SET_CURRENCY_IF_NOT_CHOSEN","startTime","startSession","getElapsedMillis","selectShowRegionSelection","selectIsOutsideSweden","selectShippingRegionCountryCodeIso2","selectIsSwedishVisitor","isSwedenCountryCodeOrUndefined","selectShowLocalizationRegionPicker","geoLocation","selectGeolocation","gpsMatchesLanguage","listActions","selectedFilterBar","isCheckboxActive","bulkCssClass","bulkAction","PAGE_BULK_ACTIONS","ACTIVE_CANCEL","heading","confirmButtonText","cancelButtonText","dismissable","idType","hasRestartedChild","isArchived","UNSOLD_RESTART","wide","headingCSS","messageAlignment","leadingBidRemoved","BUYER_SHOW_ACTIVE","BUYER_HIDE_ACTIVE","buyerState","paid","PURCHASES_SHOW","getShippingProviders","prepareResultForView","useAdvancedWidget","variants","promotedProviders","promoted","isObsolete","isExtraInfoVisible","isBulkySelected","isStamps","variant","texts","numberOfStamps","restrictionText","restrictionTexts","area","DRAFTS","EXTRA","FEATURES","GdprModal","openGdprSettings","acceptAndHide","data-gdpr-modal","data-gdpr-approve-button","GdprSettingsModal","saveHandler","gdprSettings","l","save","tabIndex","autoFocus","handleChange","visibleModal","visibleSettings","closeGdprModal","openSettings","closeSettings","closeGdprSettings","quantcastConsent","eventLabel","hitCallback","isPerformanceEnabled","isMarketingEnabled","createNavigator","getDraftIdFromUrl","draftPath","withUrls","getUrbanSdk","UA","UACache","sdk","isSupported","getTagGroupsFromUrbanAirship","channel","group","groupTags","has","isPushEnabled","pushNotificationsSlice","initDone","pushSupported","optedIn","shownModals","setInitDone","setPushSupported","setOptedInValue","setTagGroupsValue","setShownModalTrue","STORAGE_KEYS","WEB_PUSH_SHOWN_MODALS","setAllShownModals","setEnabled","init","canRegister","optIn","register","namedUser","optOut","saveTagsToUrbanAirshipAndUpdateState","tagGroupValue","tagGroupsToSet","pushNotifications","channelTags","addTagGroups","tagGroupsToAdd","removeTagGroups","tagGroupsToRemove","NoItemsError","data-recommendations-error","data-recommendations-reload","startPageResponse","trendingBrands","trendingSearches","wishList","sellers","totalItems","JSON","SET_TCF_LOADED","SET_ADS","logInfo","_log","logLevel","eventName","trace","stack","trackItemPublished","isFromTemplate","isNull","isUndefined","isDraftFromTemplate","scribe","sendSessionDuration","sessionService","publish","hasTraderaPayConsent","prepareForPublish","ajax","contentType","dataType","postJson","getSystemMessageAlertCount","HyperwalletPayeeVerificationRequired","toggleHeaderSearch","openGdprModal","OPEN","loadingQuickView","openVideoModal","videoId","closeVideoModal","openNotificationOptinModal","closeNotificationOptinModal","updateSystemMessages","updateMessagingNotifications","write","openProfileMenu","closeProfileMenu","openCategoryDropdownMenu","closeCategoryDropdownMenu","openSearchForm","closeSearchForm","logOut","openItemSettings","closeItemSettings","Breakpoint","desktop","tablet","mobile","upTo","downTo","useMediaQuery","useBreakpoint","getCurrentBreakpoint","setBreakpoint","oneOf","withBreakpoint","WrappedComponent","WithBreakpoint","currentBreakpoint","ex","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","getDisplayName","INVOICE_UNPAID","INVOICE_UNPAID_DESCRIPTION","INVOICE_OVERDUE","INVOICE_OVERDUE_DESCRIPTION","BANK_ACCOUNT_MISSING","BANK_ACCOUNT_MISSING_DESCRIPTION","PAYOUT_FAILED","PAYOUT_FAILED_DESCRIPTION","PAYMENT_READY_BANK_ACCOUNT_MISSING","PAYMENT_READY_BANK_ACCOUNT_MISSING_DESCRIPTION","SWISH_MISSING","SWISH_MISSING_DESCRIPTION","ADD_SWISH","NO_THANKS_SWISH","I_UNDERSTAND","IFRAME_NOT_SUPPORTED","COOKIES","DESC","READ_MORE","WELCOME_TO_TRADERA","GET_STARTED_BUYING","GET_STARTED_SELLING","VIEW_MORE_VIDEOS","DISCOVER","FILTERS","ALL_CATEGORIES","BRANDS","CONDITION","ITEM_TYPE","PRICE","SELLER_TYPE","COUNTY","ITEM_STATUS","SORTING","CLEAR","DEFAULT_SITE_NAME","DEFAULT_DESCRIPTION","NO_SELECTED_SHIPPING","logoImgUrl","internationalShippingSlice","messagingLink","ownItem","providers","weights","setInternationalShipping","shippingWeight","fetchInternationalShipping","selectMemberId","internationalShippingModalId","BANK_ID_CANCEL","DECLINED","DECLINED_PAYNOVA","PERSONAL_ID_INVALID","NotSpecifiedShippingOption","NO_PAYMENT_METHOD","CHECKOUT_ERROR_STRINGS","getCheckoutErrorMessage","SiteSubheader","responsiveClassNames","selectSyiAttributes","syi","categoryAttributes","selectSuggestedAttributes","modifiers","sellerFilters","setEnum","buyerFilters","shipped","feedbackLeft","hidden","resetPageIndex","setPageSize","changeSortValue","sort","sorting","order","changeSortOrder","changeTypeValue","setDateFrom","dateRange","field","setSingleFilter","setDateTo","setFiltersByState","showSelectFiltersDropDown","filterBar","updatedState","filterSelectors","changePage","updatedPaging","resetDateRangeTo","resetDateRangeFrom","resetFilters","changeSearchQuery","searchQuery","properties","scope","changeReservationPrice","setFiltersForPage","newFilters","defaultFilters","locationChange","filters","showHideFilterToolbar","SET_PAGE_SIZE","CHANGE_SORT_ORDER","CHANGE_TYPE_VALUE","CHANGE_SORTING_TO_BEST_MATCH","SET_DATE_FROM","SET_DATE_TO","SET_FILTERS_BY_STATE","CHANGE_PAGE","RESET_DATE_RANGE_TO","RESET_DATE_RANGE_FROM","RESET_FILTERS","CHANGE_SEARCH_QUERY","CHANGE_RESERVATION_PRICE","SET_FILTERS_FOR_PAGE","SHOW_HIDE_FILTERS","selectFiltersState","selectionError","MENU","GRID","LIST","ServerTimeLeft","ifValueNotZeroShowLabel","minutes","hours","days","getTimeLeftLabel","timeLeftWarning","data-test-time-left","formattedTimeLeft","hoursOrEmpty","minutesOrEmpty","formatTimeSpan","CategoryPage","categoryList","setIsLoading","setFilter","filteredCategories","setFilteredCategories","openCategories","setOpenCategories","backToTopButtonRef","filterCategories","handleScroll","scrollY","adFormats","deviceName","position","data-scroll-target","handleFilterBlur","data-scroll-to","getCategoryIcon","categoryNodes","columnSpan","IsSpaRoute","scrollTarget","currentTarget","dataset","scrollToElement","categoryActions","draftBeforeChange","getLanguage","filterNameMappings","sellerType","county","countyBox","itemStatus","shoeTypes","subDepartments","shoeSizes","brandTags","sortBy","Layout","categorySelected","categoryHorizontalSelected","getFilterLabel","trackFilter","trackNavigation","trackAccordion","trackButton","trackLink","trackPriceFilter","fromPrice","toPrice","lbl","trackNewSearch","reverseCategoryPath","trackGtmEvent","keywords","ga_page_title","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","notSold","soldLabels","notPaid","shippingBooked","done","unsoldLabels","forciblyClosed","restarted","purchasesLabels","itemLostLabels","lost","removed","itemHasBids","getActiveLabel","activityType","getActiveActiveLabel","unSold","getUnsoldLabel","closed","getStates","sellerState","getBuyerActiveItemsLabel","getSoldLabel","states","getPurchasesLabel","getBuyerItemsLostLabel","FixedPriceLabel","PriceLabel","hasDiscount","currencyDisplay","getInitialCategoryId","activeBrands","activeFilters","attributeFilters","displayAllowedBuyerRegionFilter","fallbackItemsById","filterPrice","hasResult","headerText","internalSearch","introText","itemsById","itemsOnDisplayById","mainText","pagination","discoverTranslationResult","ShippingProviderIcon","iconClass","imgClass","arrayOfObjects","newArray","each","newObject","Modal","header","getMessagingCell","getProviderIcon","provider","providerImageMap","DHL","Bussgods","Posten","PostNordParcel","PostNordStamp","Schenker","getProviderCell","removeDuplicateOwnCountryRowIfOnlyRow","ownShippingCountryCode","ShippingRow","isOwnRow","getValueCell","internationalShipping","shippingCountryCode","sortedRows","ownCountryRow","HoverMenu","show","hoverContainer","toggleShowTimeoutId","prevProps","showMenu","toggleShow","Basic","Compact","_request","getCampaignCode","brandAttributeValues","requestData","selectedCategories","selectedBrandAttributes","abort","success","statusText","validation","validationDisplayMessage","campaign","campaignCodeMessage","isCustomLengthFeeFree","isUnsoldFeeFree","provisionFactor","discountFactor","CHARITIES","charities","throttledCampaignCodeValidation","delayedValidationTimeoutId","resetCharity","getSyiSlice","charity","wasForceFreeShipping","forceFreeShipping","shippingActions","resetSelected","resetCampaign","feesActions","resetDiscountFactor","resetCampaignCommission","updateCommission","updateMaxCommission","updatePrices","acc","findBrandAttributeValues","campaignService","draftCategoryId","isCompanyUser","setDiscountFactor","setCampaignCommission","commissionProcent","allowZeroDayAuctions","forcePaymentOption","setDisplayPromoted","setDisplayHighlighted","applyCharityFromCampaignCodeId","toggleShowInput","setInitialCampaignCode","isChangeItem","saveTypedCampaignCode","inputCampaignCode","webpackContext","req","webpackContextResolve","__webpack_require__","o","defaultDrafts","sellingGlobalData","isNullOrUndefined","getType","hasOpeningPrice","hasFixedPrice","getCustomEndTime","itemDuration","isString","customEndTimeHour","customEndTimeMinute","deleteDrafts","draftIds","isPureBin","isAuctionBin","getDefaultTemplateValue","loadDraft","loadDrafts","loadDefaultDraft","clone","newItem","loadDefaultTemplateDraft","loadDraftFromTemplate","resetUnwantedProperties","saveDraft","applicationId","ensureApplicationId","ensureBraintree","buildDraftFromState","syiSlice","MemberId","draftCategoryPath","slots","slot","imageId","isListingImage","listingImage","filename","imageGroupId","resolveImages","shipping","selectedShippingOptions","buyerRegion","selectedBuyerRegion","displayPromoted","extraFeatures","displayHighlighted","charityId","userGenerated","deleteDraft","profileSlice","setTranslatedReviews","translatedReviews","translatedReviewsLoading","translatedReviewsLoadingError","showTranslatedReviews","reducer","prepare","beginLoadingTranslatedReviews","failedLoadingTranslatedReviews","beginLoadingModel","loadingModel","setModel","model","gradeId","feedbackItems","feedbackItem","setAds","ads","setTcfLoaded","Breadcrumbs","categoryTree","handleClick","breadcrumbRef","parsedCategoryPath","useMemo","resolveActiveCategoryPath","scrollLeft","scrollWidth","clientWidth","itemScope","data-breadcrumb","BreadcrumbItem","origin","microDataPositionProperty","parents","isFirstElement","itemProp","data-test-search-breadcrumb-link","aria-labelledby","TextElement","setEnvironmentHash","environmentHash","setIsSpaNavigationEnabled","isSpaNavigationEnabled","WishListButton","showText","toggled","iconClasses","combinedClassName","ModalHeader","LoadingSymbolSpinner","LoadingSymbolCards","itemsPerPage","localLazyLoadSettings","shippingRegionSlice","dismissLocalizationRegionPicker","WaitForConsentApiLoaded","adsCheckGdprCookie","placeHolder","onLoadRender","hasGivenConsent","isTcfLoaded","TIMEOUT","Accept","axiosInstance","interceptors","use","request","responseString","isMissingAuthToken","newError","cancelTokens","tokenId","checkResponseLoggedOut","statusHandlers","isCancel","shippingBags","cacheOrder","recent","reduxStore","configureStore","browserHistory","middlewares","createStore","rootReducer","ReduxThunk","routerMiddleware","applyMiddleware","observe","select","currentState","nextState","unsubscribe","subscribe","accept","nextRootReducer","require","replaceReducer","enableWebPackHotModuleReplacementForReducers","adsActions","discoverResponse","searchActions","receiveSearchResults","stripItmFromQueryParameters","formatQueryParams","toQueryParameters","viewItemActions","fetchSystemMessages","pushNotificationActions","ProviderWithGlobalStore","assertNoUndefinedProperties","warnIfDevBuild","isHybridAppContext","getElementsByClassName","AppToMount","App","createEndDateForCountdownDecorator","serverTimeMs","serverLatencyMs","nowMs","originalEndTimeMs","calculatedEndTimeMs","endDateForCountdown","ADD","addAndDecorateItemsWithEndDateForCountdown","serverTimeObject","endDateForCountdownDecorator","decoratedItems","addRecentlyViewed","getStore","ADD_RECENTLY_VIEWED","shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip","onSignedOutError","exists","gtmCore","postWishlistItem","removeWishList","REMOVE_WISHLIST","UPDATE_ITEM","minDelayInMs","alwaysDelay","lastActionTime","wrappedAction","timeNow","SELECT_RADIO_BAR","GET_SEARCH","SET_FILTERS_FROM_ROUTER","updatePageSize","setFiltersFromRouter","updateFiltersForSelectedPage","selectTypeChange","selectSortChange","changeSortingToBestMatch","setSingleFilterValue","selectReservationPriceChange","setFiltersForSelectedPage","pageSize","filterByState","historyLocationDidUpdate","isPrevAndCurrentPathnameEqual","routingState","router","checkStateOfQueryParams","updateURL","showCookies","createBrowserHistory","AttributeButton","AttributeButtonsList","itemAttributesForFilter","attributeButtons","PURE_BIN","SHOP_ITEM","onDOMContentLoaded","readyState","onWindowLoad","throttledCategoriesRequest","loadCategories","executeImmediately","categoryService","loadChildCategories","prefetchChildren","closeLevel","resetLevel","disableLevel","toggleLevelLabel","selectLevelCategory","resetCategoryRestriction","syiActions","setDraftCategory","levels","level","updateCategoryRestrictions","loadTopCategories","shortDescriptionForRecommendations","setPath","openLevel","toggleCategories","categoryLevel","categoriesVisible","selectCategory","isLeaf","x","setPathFromDraft","Overlay","toggleAllVisible","togglePaymentOption","setSelectedPaymentOptions","recommendationsRequestBuilder","slotId","seedItemIds","pageIndex","queryParameters","similarItemsRequestBuilder","similarItemsFromShopRequestBuilder","similarItemsFromCampaignRequestBuilder","RadioGroup","ZignSecLogo","xmlns","STATE","ZignSecModal","zignSecWebSDKUrl","onVerifyComplete","verifyingState","setVerifyingState","js","addScriptToDom","currentTimeoutId","poll","zs","sessionId","getSessionStatus","ZignSec","ZsProduct","Scanning","openInIframe","relay_state","relayState","analysis_types","r","SyiZignSecModal","onPublished","syiZignSecModalId","startPageSlice","setStartPageConfigAction","setStartPageConfigStatusAction","setTrendingBrandsAction","setTrendingBrandsStatusAction","setTrendingSearchesAction","setTrendingSearchesStatusAction","setWishListAction","setWishListStatusAction","setFavouriteSellersAction","setFavouriteSellersStatusAction","initDataEL","checkStatus","statusCode","ID","getInitData","tradVersion","parseJSON","res","endPoint","defaultDraft","makeDaysOptions","maxDays","numberOfDays","dateText","toDisplayText","makeHourOptions","hour","makeMinuteOptions","minute","toDaysText","toDateText","resolveSummaryText","getCustomEndTimeError","newCustomEndTimeError","earliestEndDate","isBefore","daysOptions","hourOptions","minuteOptions","isCustomEndTimeVisible","customEndTimePrice","isRestartAvailable","customEndTimeError","selectedDaysText","selectedDateText","summaryText","newStateWithoutCampaignRelatedProps","draftService","DiscountedPriceLabel","payoutSlice","traderaPay","receivePayouts","payoutDestination","selectPayoutState","payout","mapDeviceNameToViewport","device","createGptSizeMapping","sizeMap","viewport","adFormat","panorama","wide_skyscraper","half_page","medium_rectangle","mobile_rectangle","mobile_wideboard","mapSingleAdFormatToSizes","pre","cur","mapManyAdFormatsToSizes","categoryIcons","0","PriceIcon","styles","y","xmlSpace","fillRule","clipRule","fill","16","17","18","19","20","21","22","23","stroke","24","25","26","27","28","29","30","31","32","33","34","35","36","1612","1623","340736","343319","IconComponent","COOKIE_NOTIFICATION","HIDE_WISH_LIST_INFO_CARD","ITEMS_CLICK","ITEMS_IN_VIEWPORT","SAVE_SEARCH_HINT","SEARCH_RECENT","SELLING_DONT_ASK_FOR_SCHENKER_PRINTER","SELLING_DONT_ASK_FOR_SCHENKER_UPSELL","WEB_PUSH_ACCEPTED","CACHE_MESSAGING_BADGES","CACHE_RECENTLY_VIEWED_ITEMS","CACHE_SYSTEM_MESSAGES","APPLE_ID_USER","STORAGE_VALUES","SAVE_SEARCH_HINT_CLICKED","TopDescription","descKey","FooterLocalizationLink","isLocalizationSettingsVisible","setLocalizationSettingsVisible","shouldBeVisible","selectShowCurrencySelection","oneInstance","__tcfapi","FooterLinks","links","callerId","linksToRender","onlySwedish","BuyingLinks","SellingLinks","ContactAndHelpLinks","ConsentService","openUi","CouponCodeLinks","isCouponationNavLinkEnabled","appName","getFullYear","ModalBody","inlineStyle","useInterval","savedCallback","clearInterval","Storage","storage","prefix","clear","MemoryStorage","defaultStorage","testStorage","localStorage","mobileOnlyProps","desktopOnlyProps","allDeviceProps","DialogModal","mediaQueryProps","getDefaultMediaProps","aria-modal","sendSessionStart","duration","madeByTemplate","durationMilliSeconds","sendDuration","measuredName","sendIncrement","sendValidationErrors","sendJsError","errorMsg","lineNumber","errorObj","TriotException","riot","observable","mixin","on","translate","update","safeMount","selector","opts","mountedComponents","mount","setupTeardown","keepRootTag","unmounted","vdom","unmount","unmountAll","off","countryName","ModalContainer","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","ITEM_NO_LONGER_AVAILABLE","NO_LONGER_VALID","SUCCESSFULLY_CHANGED_AUTOBID","BID_VALIDATION_RETRY","primaryShippingProviders","secondaryShippingProviders","secondaryShippingOptionOpen","suggestedInvalidProducts","hasSuggestedProductDescriptions","invalidShippingCosts","takeawayDeliveryAccepted","showMoreOptions","showMoreSecondaryOptions","isLoadingProvidersWithProducts","getProviderByProductType","productType","SET_SUGGESTED_SHIPPING_PRODUCTS","getAllProducts","suggestedProduct","shippingProducts","calculatorSuggestion","additionalInfo","RESET_SHIPPING_OPTIONS","primaryShippingOption","secondaryShippingOption","RESET_SELECTED_SHIPPING_OPTIONS","selectedVariant","productId","getSelectedShippingOptions","SET_SHIPPING_OPTIONS","updateProviderProducts","updateProductIfType","typeToBeVisible","updateVisibilities","isObject","TOGGLE_SHIPPING_OPTION","primary","productProvider","previousValue","SET_SHIPPING_OPTION_COST","getProduct","SET_SHIPPING_OPTION_VARIANT","SET_TAKEAWAY_SELECTED","SET_SECONDARY_SHIPPING_OPTION_OPEN","REMOVE_SHIPPING_OPTION","getPrimaryOrSecondaryProducts","MAKE_SECONDARY_SHIPPING_OPTION_PRIMARY","FORCE_FREE_SHIPPING","SHOW_MORE_SHIPPING_OPTIONS","isPrimary","TOGGLE_MORE_SHIPPING_OPTIONS","TOGGLE_PRODUCT_EXTRA_INFO_VISIBILITY","SET_SHIPPING_PRODUCT_BULKY_SELECTED","SET_SHIPPING_PROVIDERS_WITH_PRODUCTS","SET_SHIPPING_PROVIDERS_WITH_PRODUCTS_FETCHING","gpt","adContainerRef","adContainerClass","autoscale","autoscaleOffsetWidth","refresh","stickyBottom","stickyEnabled","stickyTop","canCreateDfpAd","adUnitPath","sizeMapping","minViewportWidth","maxViewportWidth","pageTargeting","customTargetingParameters","offsetWidth","slotTargeting","pos","handleServerValidationError","translator","invalidImageErrorCodes","imageErrors","nonImageErrors","imageErrorDisplayTexts","displayTexts","invalidImageCount","invalidImageIds","imageActions","removeImageWithId","handleInvalidImages","nonImageErrorDisplayTexts","translateErrorCode","errorDisplayTexts","errorDisplayText","reasonDisplayText","availableAllowedBuyerRegions","findIndexOfRegion","regionValue","allowedBuyerRegions","selectedBuyerRegionText","availableAllowedBuyerRegionsForEditWithBids","isSetAllowedBuyerRegionToAtLeastEuEnabled","isTraderaPayEnabled","hasSetAllowedBuyerRegionAtLeastEu","buyerRegionSlice","setAllowedBuyerRegion","region","regionOrDefault","where","setAllowedBuyerRegionAtLeastEu","euIndex","setAvailableAllowedBuyerRegions","availableRegions","draftState","regionState","regions","selectedRegion","Sweden","Nordic","EU","International","expiresStr","Infinity","toUTCString","cookieKey","cookieValue","domain","secure","_getGdprSettings","convertToExpiresStr","segment","decodeURIComponent","disconnect","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","lll","llll","calendar","sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse","relativeTime","future","past","ss","m","h","hh","dd","M","MM","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","factory","getItemDiscountQuota","postItemSettings","onDisplay","discountRate","setShippingOptionVariant","getShippingProvidersWithProducts","shippingCalculatorService","setSuggestedShippingProducts","toggleShippingOption","isAdd","upsellShippingTypes","setShippingOptionCost","setTakeawayDeliveryAccepted","removeTakeawayDeliveryAccepted","setShippingOptionsFromDraft","any","removeCostIfCostMatchesSelectedProduct","transformPostNordParcelProductId","setShippingOptionVariantAfterDraft","productVariant","setSecondaryShippingOptionOpen","removeShippingOption","makeSecondaryShippingOptionPrimary","toggleProductExtraInfoVisibility","setShippingProductBulkySelected","toggleMoreShippingOptions","ALink","givenOnClick","campaignCommissionProcent","minCommissionCost","commissionMinimum","maxCommissionCost","commissionCap","isVariableCommission","chosenExtraFeatures","hasChosenExtraFeatures","isCategoryWithNoCommissionCap","MESSAGING_STATES","MESSAGING_REMOTE_URL","hostname","messagingIframeUrl","MessagingModal","POST_MESSAGE_TYPE_PREFIX","handleClose","element","iframeElement","contentWindow","focus","handleMessage","setIframeRef","scrolling","NotParticipatingMessage","setDraftImages","removeImageInSlot","slotIndex","isUploading","setUploadedImageInNextFreeSlot","freeSlotIndex","changeImagePosition","len","newSlots","rotateImage","setUploadFailed","setUploading","numberOfSlots","Flag","toUpperCase","BackgroundImageLoader","placeholderSrc","placeholderClassName","fallbackSrc","fallbackClassName","loadedClassName","useImageLoader","isLoaded","currentSrc","currentClassName","backgroundImage","ItemCardImage","imageHeight","imageMode","imageWidth","linkProps","imageStyle","aspectRatio","paddingTop","MODAL_TYPE","BANK_ID","SWISH_APP_2_APP","SWISH_HANDEL","COMPLETE","PAYMENT_OPTIONS","CARD","PAYNOVA","PAYPAL","VISA_MASTERCARD","getAvailableQueryParams","filtersState","checkModifiersExist","datatype","processState","searchType","userIs","locationQuery","check","checkItem","LocalizedDfpAd","isTraderaGptEnabled","isCriteoDirectBidderEnabled","isLoggingEnabled","validProductIds","productIdsToTransform","compositeKey","moduleName","onModuleLoaded","isModuleLoaded","MutationObserver","mutationsList","attributeName","selectRouterState","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","SHIPMENT_DELETED","FEEDBACK_LEFT_BY_SELLER","RESET_ITEMS","SET_RESTARTED","SET_NEW_SHIPPING_PRICE","updateItems","updateItemsWithError","resetSelectedCheckboxes","removeItems","locationDescriptor","resetMyTraderaItems","changeParamsForBackend","skip","newPaging","take","setNewShippingPrice","newPrice","cancelItem","endItems","buyerActiveItemsHide","ids","buyerActiveItemsShow","buyerActiveItemsHideItems","URLS","buyerActiveItemsShowItems","openMore","updateUrlWithoutSearch","pageUrl","runSearch","waitForBackend","dontModifyHistory","featureToggles","selectItem","selectAllItems","contactHighestBidder","sellerEmail","main","senderMemberEmail","markPurchaseOrdersAsPaidBySeller","purchaseOrderIds","messagingParticipation","purchaseOrdersMarkAsPaidBySeller","unmarkPurchaseOrdersAsPaidBySeller","purchaseOrdersUnmarkAsPaidBySeller","refund","existingState","selectMyTraderaItemsState","itemsByID","itemsOrderedByID","statistics","sellerUnhideTransaction","purchaseOrdersShownBySeller","sellerHideTransaction","purchaseOrdersHiddenBySeller","sellerUnhideUnsold","unsoldItemsShown","sellerHideUnsold","unsoldItemsHidden","sellingMarkAsShipped","transactionIds","transactionsMarkAsShippedBySeller","sellingUnmarkAsShipped","transactionsUnmarkAsShippedBySeller","sellingUnmarkAsShippingBooked","transactionsUnmarkAsShippingBooked","sellingDeleteShipment","shipmentId","transactionDeleteShipment","sellingLeaveFeedback","transactionId","feedbackLeftBySeller","markPurchaseOrdersAsPaidByBuyer","purchaseOrdersMarkAsPaidByBuyer","unmarkPurchaseOrdersAsPaidByBuyer","purchaseOrdersUnmarkAsPaidByBuyer","buyerUnhideTransaction","transactionsShownByBuyer","buyerHideTransaction","transactionsHiddenByBuyer","buyingLeaveFeedback","setRestarted","updateShippingPrice","getId","getIds","commonActions","sellSimilar","types","getTranslatedLabel","isPrimaryAction","actionStyles","itemsFromSeller","getActionsForItem","secondaryActions","primaryAction","resolveActions","potentialActions","actionCreator","checkAndAdd","actionsForItem","isLeading","fixedItemUrl","fixItemUrlIfNeeded","activeBuyerActions","isPaymentExpired","isPaidWithIntegratedPaymentOption","myTraderaActions","trackingLink","hasBuyerProtection","inr","dispute","boughtActions","lostActions","DISPATCH","buyer","hasUnpaidShipping","unpaidShippingUrl","unpaidShippingId","EXTERNAL_LINK","paidShipmentCheckoutId","isDiscountAfterPaymentSupported","upiSubmitted","isDiscountBeforePaymentSupported","hide","unshift","soldActions","contains","hiddenByMember","unsoldActions","isShopItem","DISABLED","tooltip","activeSellerActions","labelFunc","columnFunc","shippingPrice","getCheapestShippingPrice","actionLabelMap","newItems","currentMemberId","createReturnObject","hasIncorrectResponse","findKeysByPurchaseOrderId","findKeysByTransactionId","findKeysByItemId","updateStateAndLabels","myTraderaItemsSelector","updateUnsoldLabelsAndActions","setPaidState","flag","setShippedState","setTransactionHiddenState","setUnsoldItemHiddenState","removeFromList","markAsPaidBySellerReducer","stateItems","updateChangedItems","findUpdatedKeysByPurchaseOrderId","updatedItems","updatedItem","unmarkAsPaidBySellerReducer","markAsShippedReducer","findUpdatedKeysByTransactionId","unmarkAsShippedReducer","markTransactionAsHiddenBySellerReducer","markTransactionAsShownBySellerReducer","markItemAsHiddenReducer","findUpdatedKeysByItemId","markItemAsShownReducer","unmarkAsShippingBooked","deleteShipment","setRestartedReducer","markAsPaidByBuyerReducer","unmarkAsPaidByBuyerReducer","markTransactionAsHiddenByBuyerReducer","markTransactionAsShownByBuyerReducer","poHiddenByBuyer","poShownByBuyer","myTraderaItems","isSubMenuOpen","bulkChecked","selectedCheckboxes","chosenBoxes","allItemsWithBulk","isOpenDeleteItem","newItemsOrderedByID","itemKeysForPurchaseOrderId","shippingDiscount","LOADING_STATES","Recommendations","collapseIfEmpty","createRequestUrl","enableQuickView","errorFallback","gtmLabel","infiniteScrollEnabled","itm","loader","noMoreItemsMarker","onError","onReachedEnd","loadingState","setLoadingState","currentPage","setCurrentPage","setItemIds","useInView","rootMargin","threshold","loadingTriggerRef","loadingTriggerInView","addItemIds","itemIdsToAdd","getItems","itemsInResponse","nextPage","handleQuickViewClick","margin","data-recommendations-infinite-scroll-trigger","ObserverMap","Map","RootIds","rootId","optionsToId","Boolean","root","_createObserver","elements","observer","IntersectionObserver","_elements$get","inView","isIntersecting","thresholds","intersectionRatio","trackVisibility","createObserver","callbacks","unobserve","isPlainChildren","InView","_this","_unobserveCb","handleNode","triggerOnce","initialInView","observeNode","_this$props","_this$state","_this$props2","excluded","sourceKeys","_objectWithoutPropertiesLoose","_React$useState","setRef","adSenseQuery","adSenseShoppingPublisherId","isAutoStartAllowed","autoStartToken","onCompleteCallback","onCloseCallback","normalize","responseData","normalized","internalSearchBar","fallbackUrl","categoryFilter","parameter","normalizeFilters","singleOptionFilters","selectedValue","ACTIVE_FILTER_STATES","priceRangeFilter","itemsOnDisplay","fallbackItems","requestSearchResults","handleSearchResultsError","addItemOnDisplay","removeItemOnDisplay","setCategoryPath","showOrHideAllowedBuyerRegionFilter","memberActionTypes","newCache","newCacheOrder","updatedRecent","recentItem","blockMetaTitleFromSearchResult","recentSearches","draftAttributes","displayAttributes","selectableSuggestedAttributes","validationErrors","createDisplayAttributes","tav","categoryAttribute","findTitleForAttributeId","updateDisplayAttributes","RESET_ATTRIBUTES","SET_CATEGORY_ATTRIBUTES","SET_DRAFT_ATTRIBUTES","SET_CATEGORY_ATTRIBUTE_OPTION","selectedCount","UPDATE_CATEGORY_ATTRIBUTES_OPTIONS_STATUSES","draftTermAttributes","draftTermAttribute","SET_CATEGORY_ATTRIBUTES_SUGGESTIONS","incomingSuggestedAttributes","selectableSuggestions","suggestedAttribute","isSelectableSuggestion","isMaxReached","consent","shouldGiveConsent","isSyiMemberConsentEnabled","hasValidationError","createInitalState","SET_TRADERAPAY_CONSENT","combineReducers","isSyiAttributesEnabled","bankid","bankId","traderaStateBankId","drafts","edit","fees","memberConsent","scroll","checkout","cart","startPage","connectRouter","toIntOrNull","setOpeningBid","setFixedPrice","setReservePrice","setAuctionBinPrice","setAuctionBinPriceVisibility","setReservePriceVisibility","setIsPureBinSelected","setVat","setFromDraft","hasOpeningBid","hasReservePrice","isAuction","getBodyStringFromIDs","bodyString","formHeaders","restartItemsSummary","showPurchases","showActive","hideActive","restartItems","markPaid","AnimatedPriceLabel","showAnimation","setShowAnimation","useDidMountEffect","timer","priceLabelProps","LeadingBadge","OverbiddenBadge","ShippingBadge","hasFreeShipping","ItemCard","animateTimeLeftWarningLimit","gaCategory","onAttributeButtonClick","onSettings","showBidStatus","showShippingOrOnDisplay","useInSPA","itmToQueryString","onNavigate","data-item-loaded","showShipping","showOnDisplayRibbon","isOverbidden","showShopItemSettings","data-shop-item-settings-action","priceBeforeDiscount","countdownWarningLimit","showBids","isNewToday","getAllProviders","onlyPrimary","createPreferredCurrencyCookie","createInitialState","suggestionsAvailable","anyLevelOpen","showExplanation","previousDraftCategoryId","prevoiusDraftCategoryPath","suggestionsVisible","moreButtonVisible","hideButtonVisible","isOpen","newLevels","allErrorsVisible","editedImageIndex","publishPending","publishFailed","publishFailedReasonDisplayText","publishedItemPendingVip","publishedItem","openModalData","autoSaveEnabled","draftCanBeResumed","itemUpdating","itemUpdated","publishDelayed","categoryRestriction","newValue","uploadError","imageCount","resolveFirstEmpty","foundFirst","firstEmpty","resetUploadError","setImageCount","withUrl","newslots","removeLastLoading","numberOfLoading","setLoadingOnFreeSlots","setDraft","ensureDraftReason","setItemCondition","setDurationDays","setCustomEndTime","shortDescriptionActions","setShortDescription","longDescriptionActions","priceActions","paymentActions","canBeResumed","hasShortDescription","hasLongDescription","hasImage","setResumableDrafts","hasAuctionBinPrice","hasResponseErrorCode","responseOrNull","arrayOfErrorCodesToCheck","triggerSave","navigationService","setDraftVersion","responseJSON","setUsedAllowed","isAllowed","condition","isUsedAllowed","allowUsed","resumableDrafts","imageSlots","setDraftId","resetDurationAndEndTime","setRestart","setShippingBags","setReference","publishService","googleTagManager","trackAddonBeforePublish","draftSelectedAttributes","suggestionEngine","completionTimeInSeconds","comparer","localeCompare","log","trackAttributeSuggestions","loadDraftIfMissing","always","useDraftAsTemplate","resetItemCondition","publishAdditionalDescription","resetDraft","resetDrafts","remove","restOfPayload","updatedData","gtm","updateItemLayout","defaultCookie","updateSiteLayout","fetchedMessages","fetchMessagingNotifications","messagingNotifications","dismissSwish","getJSValue","True","False","All","setJSValue","true","false","getEnum","allowedBuyerRegionText","categoryNames","paymentTerms","reasons","resultMessage","shippingTerms","shipsToBuyerCountry","viewState","resetInitialState","getItemState","transactionType","breadCrumb","setCategories","parseItmObject","summaryDisplayName","takeAwayOption","reduxContainer","pageMeta","itemsToAdd","fetchSearchResults","searchResults","messagingFeedbackForm","generalFeedbackForm","newMemberBankIdForm","loadMopinionWidget","attemptsLeft","Pastease","load","srv","memberEmail","splittest_attribute_suggestion_extractor","isBreakpoint","isBreakpointOrLower","isBreakpointOrHigher","isDesktop","isTablet","ContentSwitch","defaultSelected","onSwitch","renderedOptions","setRenderedOptions","leadingBidMemberId","isBuyItNow","TRANSACTION_TYPES","getEndedItemState","getOngoingItemState","BidsLabel","REASONS","NONE","SUSPECTED_FRAUD","ITEM_IS_A_COUNTERFEIT","BRAND_NAME_MISUSE","WRONG_CATEGORY","PROHIBITED_SHIPPINGvOR_PAYMEN_TMETHOD","OTHER_PROHIBITED_ITEM","OTHER_PROHIBITED_SETUP","OTHER","breadcrumbs","canonicalLink","metaDescription","bodyClass","toAbsoluteUrl","timers","sentCounter","pushToDataLayer","dataLayer","trackAddonAfterPublish","addOnfeatureName","trackTiming","timingCategory","timingVar","variable","timingValue","timingLabel","startTimer","sendTimer","trackSellItemEvent","sendTimerOnce","eventCategory","eventAction","eventValue","setPageType","setPageMetaFromSearchResult","MODALS","FILTER_MODAL","CATEGORY_MODAL","SettingsButton","isSchenkerPaidBySchenker","hasElementType","Element","hasMap","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","flags","valueOf","$$typeof","initialPlaceBidResponse","info","initialBidFormValue","isBidding","viewItemState","placeBidResponse","vipLiveUpdatesEnabled","vipLiveUpdatesUrl","viewItemSlice","resetPlaceBidResponse","setInitialBidFormValue","setIsApprovedBuyer","isApprovedBuyer","setVipLiveUpdate","setItemDetails","img","thumbnail","small","altText","setBreadCrumbs","setIsBidding","setPlaceBidResponse","bidError","setBidInfo","bidStatus","getLeadingBidStatus","existingBidCount","incomingBidCount","newBidInfo","setMyMaxBidAmount","setItemState","setViewItemState","setServerSecondsLeft","setTranslatedDescription","resetTranslatedDescription","beginLoadingTranslatedDescription","failedLoadingTranslatedDescription","setSellerItems","sellerItems","handleItemModel","itemModel","previousItemId","maxBidAmount","updateItemState","handleNewPage","hasWon","currentItemDetails","currentBidInfo","swedishCategoryPath","contentGroup","itemFixedPrice","itemCategory","ensureCorrectUrlForItem","expectedItemId","previousBidInfo","hadLeadingBid","hadLostLeadingBid","toggleWishList","forceAdd","inWishList","inWishListNewValue","placeBid","setNotValidToBidOrBuyNow","priceInfo","auctionCommission","fixedPriceCommission","featureFees","feesTotal","shippingBagAmountsPrices","amountPrice","highlightFeaturePrice","fee","isDomainNameCategory","domainNameCategoryId","companyMinCommissionProcent","companyMaxCommissionProcent","hasAnyNonValidOption","hasAnyValidOption","weightIsInvalid","isAdvanced","isWeightValid","weightValidationError","_cache","_title","existsInCache","clearCache","topCategories","levelToSearch","chain","isEmpty","categoryIds","categoryInfo","HOVER_MENUS","CartLink","formattedCartItems","transparentHeader","cartUrl","DropDownMenuHamburger","aria-haspopup","aria-expanded","aria-hidden","MenuItemSeparator","decorateUrlWithItm","itmQueryString","stringified","MenuItemButton","containerClass","follow","MenuItem","alerts","bold","border","notify","notificationDot","MenuItemContent","NotificationDot","ExpandableMenuItem","expanded","onOpen","defaultExpanded","imageContainerClassName","getGaAttributes","CategoryMenuItems","trackAnalytics","searchPlaceholder","handleFilterKey","handleFilterChange","CategoryMenuItem","categoryNode","DropdownMenuContent","mediaProps","DropdownMenu","dropdownMenu","trackClick","onItemClick","sideMenuMediaProps","dropdownMenuMediaProps","renderChild","TransitionGroup","mountOnEnter","SignUpLink","clickAction","isForeignVisitor","data-nav-signup","ModalPortal","notificationPortalRoot","PushNotificationModal","trackGa","handleAccept","handleReject","ConnectedLocalizationRegionPicker","showLocalizationRegionPicker","LocalizationLink","ConnectedLocalizationLink","HoverMenuItem","HoverMenuItemSeparator","getMenuGaAttributes","trackProfileClick","BuyMenu","BuyingLink","mouseOver","mouseOut","buyingText","onMouseEnter","ToBuyLink","howTo","data-nav-how-to-link","LocalizationMenuItem","onToggle","ConnectedLocalizationMenuItem","trackPaymentOnboarding","InvoiceUnpaidAlert","InvoiceOverdueAlert","BankAccountMissingAlert","PayoutFailedAlert","PayoutReadyBankAccountMissingAlert","SwishMissingAlert","enableSwishUrl","HyperwalletPayeeVerificationAlert","HyperwalletPayeeVerificationReviewAlert","OnboardToTraderaPayAlert","getGaLinkAttributes","getGaButtonAttributes","ProfileCard","imageAvailable","setImageAvailable","mediaBelowLarge","trackExpandItemClick","ProfileMenuContent","cleanedMemberAlias","memberDetailedSellerRatingAverage","memberHeroImage","showMessagingLink","OnboardToTraderaPay","HyperwalletPayeeVerificationUnderReview","mopinion","trackOnClick","SignInMenuContent","closeMenu","data-sign-in-modal","onLoad","iframe","iframeDocument","contentDocument","onIframeLoad","AddHumanyBot","botWidget","ProfileMenu","handleExpand","facebookId","borderRadius","ProfileLink","handleProfileClick","menuExpanded","systemMessageCount","logInText","badgeType","multipleBadges","ProfileMenuLink","preventNavigationAndShowLogin","redirect","handleLoginClick","messagingThreads","profileMenuOpen","SearchButton","showSearch","data-nav-search-button","WatchListMenu","WishlistLink","wishlistText","data-nav-wishlist","OngoingAuctionsLink","SellMenu","SellingLink","data-nav-syi","SiteHeader","autoFocusSearch","menu","activeHoverMenu","setTime","sticky","shouldDisplayLanguageSelectionInHeader","hasCartItems","stickyEnabledOnPage","hideElements","enableTransforms","activeClass","maxHeight","handleClickSearch","handleMenuClick","handleMouseOverMenu","handleMouseOutMenu","handleMenuBlur","handleAlwaysOpenMenuClick","handleRegisterClick","memberStateActions","searchParams","AnimatedTimeLeftLabel","countdownSecondsLimit","timeLeftSeconds","countdown","setCountdown","stopCountdown","useTicker","formatDuration","DiscountBadge","data-item-card-discount-rate","getStartPageConfig","sortByIndex","defaultStartPageConfig","alternativeText","isCampaignMode","webpageUrl","fetchTrendingBrandsIfNeeded","slug","logoImageUrl","fetchTrendingSearchesIfNeeded","useIsDesktop","useIsLoggedIn","getImageSizes","imageSizes","srcSet","sizes","getWebpImage","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","navigator","unsupported","memory","deviceMemory","totalJSHeapSize","usedJSHeapSize","jsHeapSizeLimit","hardwareConcurrency","Video","poster","videoLarge","largeUrl","videoMedium","mediumUrl","videoSmall","smallUrl","loops","setLoops","videoRef","handleVideoEnded","videoLoops","play","videoElement","autoPlay","playsInline","muted","media","MediaItem","u","f","webpImage","effectiveConnectionType","connection","effectiveType","return","setNetworkStatus","Tag","gaAction","Tags","onClickTag","titleOnSameLine","TrendingSearchesTags","inHeader","textOrIcon","useRecentSearchesUpdated","RecentSearchesTags","recentSearchesUpdated","getPreviousSearches","limit","previousResults","StartPageHero","showRecentSearches","showTrendingSearches","backgroundVideo","searchElementRef","searchInView","searchInViewEntry","parsedCampaignUrl","toRelativeTraderaUrl","isSpaLink","opacity","transition","FallbackImage","CarouselItem","videoEnabled","button","showHeading","showContent","stripHost","Carousel","singleItemClass","swipeToSlide","InstagramFeed","postId","InstagramImage","PopularCategories","multiRow","singleItem","slidesPerRow","ConnectedRecentlyViewed","trackPicksForYouClick","EndingSoonErrorMessage","LoadMoreButton","recommendationMode","data-load-more-recommendations","PicksForYou","endingSoon","Container","container","PageContent","FavouriteSellerCard","sellerAlias","matchedItems","heroImageUrl","FavouriteSellersFallback","FavouriteSellers","showFallbackInfo","WishListInfoCard","marginBottom","padding","boxSizing","WishList","hideWishListInfoCard","setHideWishListInfoCard","showInfoCard","linkStart","linkEnd","ImageTag","ImageTags","limitTags","TrendingBrandsTags","PersonalisedBrandsTags","showFallback","useShowPersonalisedBrandsFallback","useIsPersonalisedBrandsTagsLoading","fallbackStatus","PersonalisedSearchesTags","useShowPersonalisedSearchesFallback","useIsPersonalisedSearchesTagsLoading","PersonalisedTags","StartPage","isPersonalisedSuggestionsEnabled","isWishListEnabled","isFavouriteSellersEnabled","isPersonalisedBrandsTagsLoading","isPersonalisedSearchesTagsLoading","showPersonalisedSearchesFallback","showPersonalisedTags","isLoadingPersonalisedTags","moveTrendingSearchesToPersonalised","showTrendingBrands","showTrendingSearchesInHeader","showTrendingSearchesBelowHeader","showRecentSearchesInHeader","showRecentSearchesBelowHeader","showWishList","showFavouriteSellers","hasTraderaPay","getShippingDisplayText","CartPage","isCheckoutDisabled","orderRows","mapShippingOption","totalPrice","sum","unitPrice","merchantMemberId","merchantAlias","merchantId","expectedItemPrice","onConfirm","BrandPage","BrandListPage","CampaignPage","CheckoutPage","CheckoutConfirmationPage","DiscoverPage","Landing_GantXTradera","Landing_StadiumXTradera","ProfilePage","ShippingCalculatorPage","RecommendationsPage","ReportItemPage","VerifyPage","ViewItemPage","viewItemPage","brandPage","brand","brandListPage","campaignPage","categoryListPage","checkoutConfirmationPage","checkoutPage","preSelectPayment","ignoreQueryPrefix","preSelectShipping","cartPage","searchResultPage","landing_GantXTradera","landing_StadiumXTradera","profilePage","recommendationsPage","reportItemPage","verifyPage","returnUrl","shippingCalculatorPage","categoryResultPage","notFoundPage","Routes","sellerResponse","participates","setUserMessagingParticipation","messagingSettings","userResponse","getUserMessagingEmailSetting","setUserMessagingEmailSetting","setting","u1","u2","redirectURL","hash","initState","shouldInitBankID","bankIdErrorMessage","swishDetails","bankAccountSaved","bankUnknown","hasFailedPayouts","isMemberSetForPayout","tinkOnboarding","iframeUrl","shouldInitTink","payouts","paginationLinks","swishApp2AppMember","braintreeMember","onboardToHyperwalletProblems","tinkLink","hyperwalletPayeeVerification","suggestedPhoneNumber","checkMark","maskedBankAccountNumber","isBankAccountSupplied","bankIdCompleted","sellingGlobalConfig","imageSizeX","imageSizeY","maxTemplates","URL_BASE","RIOT_MOUNTPOINT","ErrorContainer","minHeight","NewTodayLabel","profileFeedbackMemberId","initializers","args","initialize","gptData","debug","discoverEnabled","enableTimeMetrics","enableFastClick","isNativeAppContext","isIOS","isMobileDevice","isMobileSafari","memberBirthdate","initialCurrencyCode","availableLanguages","defaultLanguage","availableIsoCodes","lang","getStartPageState","getCheckoutState","getProfileState","getCartState","previousSearchService","generateSuggestionId","previousSearchResults","suggestedResults","shops","campaigns","getSuggestionsFromBackend","withDuplicates","uniqueMap","uniqueResults","shopResults","suggestedCampaignResults","campaignResults","capaignId","allSuggestions","normalizeSearches","output","prettySearchTerm","recentCount","deps","didMount","setIsLoaded","Image","onload","onerror","intervals","period","cleanup","intervalId"],"mappings":"gVAoDeA,EAlDa,SAAAC,GACxB,IAAIC,EACAC,EACJ,OAAQF,GACJ,KAAKG,IAAuBC,eACxBH,EAAkB,4BAClBC,EAAiB,2BACjB,MACJ,KAAKC,IAAuBE,kBACxBJ,EAAkB,+BAClBC,EAAiB,8BACjB,MACJ,KAAKC,IAAuBG,gBACxBL,EAAkB,sCAClBC,EAAiB,qCACjB,MACJ,KAAKC,IAAuBI,wBACxBN,EAAkB,oCAClBC,EAAiB,mCACjB,MACJ,KAAKC,IAAuBK,4BACxBP,EAAkB,wCAClBC,EAAiB,uCACjB,MACJ,KAAKC,IAAuBM,6BACxBR,EAAkB,yCAClBC,EAAiB,wCACjB,MACJ,KAAKC,IAAuBO,kBACxBT,EAAkB,+BAClBC,EAAiB,8BACjB,MACJ,KAAKC,IAAuBQ,eACxBV,EAAkB,+BAClBC,EAAiB,8BACjB,MACJ,KAAKC,IAAuBS,yBAC5B,KAAKT,IAAuBU,qCAC5B,QACIZ,EAAkB,qBAClBC,EAAiB,2BAIzB,MAAO,CACHD,kBACAC,mB,gHCZOY,EAlCc,SAAC,GAKxB,IAJFC,EAIE,EAJFA,UACAC,EAGE,EAHFA,UACAC,EAEE,EAFFA,eACAC,EACE,EADFA,QAEA,OACI,kBAAC,WAAD,KACI,yBAAKC,UAAU,mCACX,yBAAKA,UAAU,yDACX,yBAAKA,UAAU,OAAOC,OAAO,QAAQC,IAAKN,IAC1C,uBAAGO,KAAMJ,EAASC,UAAU,+BACvBH,GAEL,yBAAKG,UAAU,oBAAoBF,KAG3C,yBAAKE,UAAU,8BACX,yBAAKA,UAAU,iBACX,yBAAKA,UAAU,OAAOC,OAAO,OAAOC,IAAKN,IACzC,yBAAKI,UAAU,eACX,uBAAGG,KAAMJ,EAASC,UAAU,qBACvBH,GAEL,yBAAKG,UAAU,gCACVF,Q,gDCHvBM,G,cACa,iBADbA,EAES,YAFTA,EAGoB,uBAGpBC,EAAe,SAAC,GAAiB,IAAfC,EAAe,EAAfA,SACpB,OACI,yBAAKN,UAAU,yBACX,yBAAKA,UAAU,sBAAsBM,KAK3CC,EAAY,kBAAM,yBAAKP,UAAU,cAAcQ,MAAO,CAAEP,OAAQ,MAEhEQ,EAAe,kBACjB,yBAAKT,UAAU,gCAAgCQ,MAAO,CAAEP,OAAQ,MAG9DS,EAAc,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAQC,EAAX,EAAWA,KAAX,OAChB,yBAAKZ,UAAU,oBACX,yBAAKA,UAAU,kBACX,4BACIa,KAAK,SACLb,UAAU,oCACVc,QAASH,GACRC,MAqNFG,IA/ME,SAAC,GAAmC,IAAjCC,EAAiC,EAAjCA,QAASC,EAAwB,EAAxBA,kBACjBC,EAAmBC,cAAnBD,eACAE,EAAMC,cAAND,EACFE,EAAWC,cAHgC,EAIDC,mBAC5CpB,GAL6C,WAI1CqB,EAJ0C,KAIxBC,EAJwB,OAOvBF,wBAASG,GAPc,WAO1C9C,EAP0C,KAOnC+C,EAPmC,OAQHJ,wBAASG,GARN,WAQ1CE,EAR0C,KAQzBC,EARyB,KASzCC,EAAaC,cAAbD,SAEFE,EAAcC,aAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,SAASJ,eAE1DK,EAMAL,EANAK,OACAC,EAKAN,EALAM,cACO1C,EAIPoC,EAJAO,MACAC,EAGAR,EAHAQ,OACAC,EAEAT,EAFAS,gBACAC,EACAV,EADAU,WAEE7C,EAAiB8C,YAAYD,EAAYZ,EAAUd,GACnD4B,GAAmBX,aACrB,SAAAC,GAAK,OAAIA,EAAMW,eAAeC,gBAAgBC,mBAG5CC,GAAaC,uBAAY,WAC3BC,MACAC,OAAOC,SAAWnC,EAAe,oDAAD,OACwBW,MAEzD,CAACA,EAAiBX,IAyBfoC,GAAa,WACX7B,IAAqBrB,GACrBkB,EAASiC,YAAoBd,IAEjCzB,KAQJ,OACI,kBAAC,IAAD,CACIwC,uBAAuB,EACvBC,UAAWH,GACXI,kBAAkB,EAClB1D,UAAS,oCACT,yBAAKA,UAAU,gDACVyB,IAAqBrB,GAClB,kBAAC,WAAD,KACI,kBAAC,IAAD,CACIuD,SAAU,qBACVC,aAAc,CACV,4BACA,6BAEJC,QAAQ,sBAGZ,kBAAC,IAAD,CACIC,SAAUxB,EAAOwB,SACjBC,MAAOzB,EAAOyB,MACdC,aAAc1B,EAAO0B,aACrBC,eAAe,EACfC,UAAW5B,EAAO4B,UAClBC,QAAS7B,EAAO6B,UAGpB,kBAAC,EAAD,MAEA,kBAAC,IAAD,CACIvE,UAAW2C,EAAc6B,IACzBvE,UAAWA,EACXC,eAAgBA,EAChBuE,aAAa,EACbtE,QAAS,KAGb,kBAAC,EAAD,MAEA,kBAAC,IAAD,CACI2C,gBAAiBA,EACjBzB,kBAAmBA,EACnB4B,iBAAkBA,KAGtB,kBAAC,EAAD,MAEA,kBAAC,IAAD,CACI/C,eAAgBA,EAChB4C,gBAAiBA,IAGrB,kBAAC,EAAD,MAEA,kBAAC,IAAD,CACI4B,WAAY,CACR3D,OAAQ2C,GACR1C,KAAMQ,EAAE,uBACRpB,UAAW,oBAEfuE,YAAa,CACT5D,OAhGV,WACd6D,YAAY,CACR/B,OAAQA,EACRgC,oBAAqBtB,QAEpBuB,MAAK,YAAc,IAAXC,EAAW,EAAXA,KACL/C,OAASD,GACTwB,MACArB,EAAmB6C,EAAK9C,iBACxBH,EAAoBtB,MAR5B,OAWW,SAAAwE,GACHzB,MACAvB,EACIhD,EACIgG,EAAEC,SAASF,KAAKG,eAAeC,YAGvCrD,EAAoBtB,OA8EJQ,KAAMQ,EAAE,sBACRpB,UAAW,kBAM1ByB,IAAqBrB,GAClB,kBAAC,WAAD,KACI,kBAAC,EAAD,KACI,kBAAC,IAAD,CAAeJ,UAAU,+BAG7B,kBAAC,IAAD,CACI2D,SAAU,8BACVC,aAAc,CAAC,qCACfC,QAAQ,sBAGZ,kBAAC,EAAD,CACIjE,UAAW2C,EAAc6B,IACzBvE,UAAWA,EACXC,eAAgBA,EAChBC,QAAS,KAGb,kBAAC,EAAD,MAEA,kBAAC,IAAD,CACIuE,WAAY,CACR3D,OAjGP,WACjBwC,MACAG,MAgGwB1C,KAAMQ,EAAE,wBACRpB,UAAW,eAEfuE,YAAa,CACT5D,OAAQsC,GACRrC,KAAMQ,EAAE,wBACRpB,UAAW,uBAM1ByB,IAAqBrB,GAClB,kBAAC,WAAD,KACI,kBAAC,EAAD,KACI,kBAAC,IAAD,CAAYJ,UAAU,8BAG1B,kBAAC,IAAD,CACI2D,SAAU9E,EAAMC,gBAChB8E,aAAc,CAAC/E,EAAME,gBACrBiG,SAAS,EACTnB,QAAQ,sBAGZ,kBAAC,EAAD,CACIjE,UAAW2C,EAAc6B,IACzBvE,UAAWA,EACXC,eAAgBA,EAChBC,QAAS,KAGb,kBAAC,EAAD,MAEA,kBAAC,EAAD,CACIa,KAAMQ,EAAE,sBACRT,OAAQ2C,U,+vBCrPrB,aAAA2B,GAAY,MACjBC,EAAO,CACTC,UAAmE,OAAxDC,UAAWC,WAAWC,KACjCC,cAAc,GAEVC,EAAcP,EAAdO,UACFC,EACFL,UAAWC,WAAWK,IAAe,YAAgBC,MACrDD,IAAe,YAAf,QACEE,EAAkBC,IAAMC,KAAKC,IAAWC,mBAAqB,CAC/DC,QAAS,EACTC,cAAe,GAEbC,EACFf,UAAWC,WAAWK,IAAe,YAAgBC,MACrDD,IAAe,YAAf,QACEU,EAAiBP,IAAMC,KAAKC,IAAWM,kBAAoB,GAEjE,MAAO,CACHC,qBAAsB,CAAEC,KAAMC,IAAUC,MAAMC,QAC9CC,OAAQ,CACJC,UAAWhB,EACXiB,OAAQ,GAEZ3B,OACAM,YACAC,WAAYA,EACZqB,aAAc,CACVP,KAAMC,IAAUC,MAAMC,OACtBK,KAAM,IAEVC,eAAgB,CACZT,KAAMC,IAAUC,MAAMC,OACtBlE,MAAO,GACPtC,IAAK,GACL+G,eAAe,EACfC,YAAa,GACbH,KAAM,MAEVI,OAAQ,CACJC,aAAc,MAElBC,uBAAwB,CACpBd,KAAMC,IAAUC,MAAMC,OACtBY,UAAW,KACXC,QAAS,KACT/E,MAAO,KACPgF,YAAa,KACbC,UAAW,IAEfC,YAAa,CAAEnB,KAAMC,IAAUC,MAAMC,OAAQiB,aAAa,GAC1DC,UAAW,CACPrB,KAAMC,IAAUC,MAAMC,OACtBmB,MAAO,GACPC,QAAS,GACTC,YAAa,EACbC,SAAS,GAEb7B,aACA8B,mBACIhD,EAASiD,UAAY,MAAAjD,EAASiD,UAAT,OAA2B,cAEpDC,eAAgB3C,EAChBY,eAAgB,EAAF,CACVgC,oBAAoB,EACpBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,+BAA+B,EAC/BC,oBAAoB,GACjBrC,GAEPsC,WAAY,CACRnC,KAAMC,IAAUC,MAAMC,OACtBiC,MAAO,O,8TC5EbC,EAAc,CAEhBC,eAAgB,iBAChBC,iBAAkB,mBAGlBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,cAAe,gBACfC,YAAa,cAGbC,oBAAqB,sBACrBC,uBAAwB,yBACxBC,sBAAuB,wBACvBC,iBAAkB,mBAClBC,wBAAyB,0BACzBC,mBAAoB,qBACpBC,uBAAwB,yBACxBC,0BAA2B,4BAC3BC,WAAY,aAGZC,UAAW,YACXC,YAAa,cACbC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,eAAgB,iBAChBC,WAAY,aAGZC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,aAAc,eAGdC,eAAgB,iBAChBC,cAAe,iBA0PbC,EAAkB,WACpB,sCAAO,WAAOxJ,EAAUyJ,GAAjB,qBAAAC,EAAA,sEAEOC,EAAiBC,YAAoBH,KACtCI,mBAAmBC,kBAClBC,EAAgBH,YAAoBH,KACrCI,mBAAmBG,iBALzB,SAMwBC,MAAM,gCAAiC,CAC1DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CACjBV,eAAgBA,EAChBI,cAAeA,MAZxB,cAMOxG,EANP,gBAesBA,EAAS+G,OAf/B,OAeOC,EAfP,OAgBKhH,EAASiH,GACTxK,EAAS,CACLT,KAAM+H,EAAYgB,mBAClBmC,QAASF,EAAOG,sBAEE,yBAAfH,EAAOI,KACd3K,EAAS,CACLT,KAAM+H,EAAYiB,uBAClBkC,QACI,2FAEc,4BAAfF,EAAOI,KACd3K,EAAS,CACLT,KAAM+H,EAAYkB,0BAClBiC,QACI,qGAGRzK,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,kCApClB,kDAwCCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,kCA3Cd,0DAAP,yDA6KEI,EAAsB,SAAAC,GACxB,sCAAO,WAAM9K,GAAN,iBAAA0J,EAAA,+EAEwBO,MAAM,oCAAqC,CAC9DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CAAEN,cAAee,EAAQf,kBANnD,cAEOxG,EAFP,gBAQsBA,EAAS+G,OAR/B,QAQOC,EARP,QASYQ,aACP/K,EAAS,CACLT,KAAM+H,EAAYyB,WAClB0B,QAASF,EAAOQ,eAGpB/K,EAAS,CACLT,KAAM+H,EAAYwB,eAClB2B,QAASF,EAAOG,sBAjBzB,kDAqBCE,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYyB,WAClB0B,QAAS,kCAxBd,0DAAP,uDA8DEO,EAAqB,WACvB,sCAAO,WAAOhL,EAAUyJ,GAAjB,iBAAAC,EAAA,+EAEwBO,MAAMgB,IAAUC,qBAAsB,CACzDhB,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CACjBc,QAAS,oCAPlB,cAEO5H,EAFP,gBAWsBA,EAAS+G,OAX/B,YAWOC,EAXP,QAYYQ,aAZZ,wBAaK/K,EAAS,CACLT,KAAM+H,EAAY+B,aAClBoB,QAASW,EAAkBb,EAAOQ,gBAf3C,2BAmBC/K,EAAS,CAAET,KAAM+H,EAAY6B,mBAAoBsB,QAASF,IAE1DX,YAAoBH,KAAY4B,mBAAmBC,WAAa,EAEhEtL,EAASuL,KAvBV,kDAyBCX,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAY+B,aAClBoB,QAAS,kCA5Bd,0DAAP,yDAkCEe,EAAQ,SAAAC,GAAK,OAAI,IAAI,KAAQ,SAAAC,GAAO,OAAI,IAAWA,EAASD,OAE5DF,EAAqB,SAArBA,IACF,sCAAO,WAAOvL,EAAUyJ,GAAjB,mBAAAC,EAAA,+EAEwBO,MAAM,gBACtBgB,IAAUU,iBADW,cACS,IAAIC,MAAOC,WAC5C,CACI3B,OAAQ,MACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBAPpC,cAEO7G,EAFP,gBAUsBA,EAAS+G,OAV/B,YAUOC,EAVP,QAWYQ,aAXZ,wBAYK/K,EAAS,CACLT,KAAM+H,EAAY+B,aAClBoB,QAASW,EAAkBb,EAAOQ,gBAd3C,+BAkBKR,EAAOuB,YAlBZ,uBAqBS,UADAlC,YAAoBH,KAAY4B,mBAAmB9L,KAGnDS,EA/WhB,+BAAO,WAAMA,GAAN,eAAA0J,EAAA,+EAEwBO,MAAM,iCAAkC,CAC3DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBALhC,cAEO7G,EAFP,gBAOOA,EAAS+G,OAPhB,OAQK/G,EAASiH,GAAIxK,EAAS,CAAET,KAAM+H,EAAYS,gBAE1C/H,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCAZlB,gDAeCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCAlBd,yDAAP,uDAkXgB,SADAb,YAAoBH,KAAY4B,mBAAmB9L,KAGnDS,EAASwJ,KAGT,SADAI,YAAoBH,KAAY4B,mBAAmB9L,MAGnDS,EACI6K,EACIjB,YAAoBH,KAAYsC,KAAKjB,UAIjD9K,EAAS,CAAET,KAAM+H,EAAY8B,mBAvClC,4CA0COoC,EAAM,KA1Cb,WA4CM5B,YAAoBH,KAAY4B,mBAC5BW,iBA7CV,mDAiDChM,EAASuL,KAjDV,kDAmDC3B,YAAoBH,KAAY4B,mBAAmBC,aAE/C1B,YAAoBH,KAAY4B,mBAAmBC,WACnD,EAEAtL,EAASuL,MAETX,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAY+B,aAClBoB,QAAS,mCA7DlB,0DAAP,yDAoEEW,EAAoB,SAAAL,GACtB,OAAQA,GACJ,IAAK,eACD,MAAO,uHACX,IAAK,sBACD,MAAO,oLACX,IAAK,sBACD,MAAO,+FACX,IAAK,oBACD,MAAO,kIACX,IAAK,YACD,MAAO,oCACX,IAAK,cACD,MAAO,sBACX,QACI,MAAO,kCA+BJ,KACXzD,cACA2E,aA5nBiB,SAAArM,GACjB,sCAAO,WAAMI,GAAN,iBAAA0J,EAAA,sEAEC1J,EAAS,CAAET,KAAM+H,EAAYC,iBAF9B,SAGwB0C,MACnBrK,EAAe,6BACf,CACIsK,OAAQ,MACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBARpC,cAGO7G,EAHP,gBAWsBA,EAAS+G,OAX/B,OAWOC,EAXP,OAYKhH,EAASiH,GACTxK,EAAS,CACLT,KAAM+H,EAAYE,iBAClBiD,QAASF,IAGbvK,EAAS,CACLT,KAAM+H,EAAYiC,cAClBkB,QAAS,2CAGjBzK,EAASkM,IAAUC,WAAU,IAC7BnM,EAASkM,IAAU3O,OAAM,IAxB1B,kDA0BCqN,YAAO,EAAD,IA1BP,0DAAP,uDA4nBAwB,kBAjlBsB,WACtB,sCAAO,WAAMpM,GAAN,eAAA0J,EAAA,+EAEwBO,MAAM,kCAAmC,CAC5DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBALhC,cAEO7G,EAFP,gBAOOA,EAAS+G,OAPhB,OAQK/G,EAASiH,GAAIxK,EAAS,CAAET,KAAM+H,EAAYO,qBAE1C7H,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCAZlB,gDAeCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCAlBd,yDAAP,uDAilBA4B,kBA5lBsB,SAAAC,GAAS,MAAK,CACpC/M,KAAM+H,EAAYG,mBAClBgD,QAAS,CAAE8B,OAAQD,EAAWE,QAASF,EAAUG,OAAS,KA2lB1DC,gBAjhBoB,SAAAJ,GACpB,sCAAO,WAAMtM,GAAN,mBAAA0J,EAAA,+EAEwBO,MAAM,gCAAiC,CAC1DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CAAEsC,YAAaL,MANzC,cAEO/I,EAFP,gBAQsBA,EAAS+G,OAR/B,OAQOC,EARP,QAUKhH,EAASiH,IACRD,EAAOqC,wBACPrC,EAAOsC,0BAiBDtJ,EAASiH,GAChBxK,EAAS,CACLT,KAAM+H,EAAYQ,iBAClB2C,QAAS6B,IAEO,sBAAf/B,EAAOI,KACZ3K,EAAS,CACLT,KAAM+H,EAAYI,oBAClB+C,QAAS,+CAEO,6BAAfF,EAAOI,KACZ3K,EAAS,CACLT,KAAM+H,EAAYI,oBAClB+C,QAAS,6CAEO,gBAAfF,EAAOI,KACZ3K,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,+CAGbzK,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,mCAtCPA,EAAU,CACZlL,KAAM,QACNuN,aACI,iDACJC,iBAAkB,yBAEtB/M,EAAS,CACLT,KAAM+H,EAAYQ,iBAClB2C,QAAS6B,IAEbtM,EAAS,CAAET,KAAM+H,EAAYS,gBAC7B/H,EAAS,CACLT,KAAM+H,EAAY0B,iBAClByB,QAASA,KA3BlB,kDAuDCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCA1Dd,0DAAP,uDAihBAuC,iBAzlBqB,SAAAC,GAAU,MAAK,CACpC1N,KAAM+H,EAAYK,kBAClB8C,QAASwC,IAwlBTA,WA5jBe,SAAAtC,GACf,sCAAO,WAAM3K,GAAN,mBAAA0J,EAAA,+EAEwBO,MAAM,2BAA4B,CACrDC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CAAEM,KAAMA,MANlC,cAEOpH,EAFP,gBAQsBA,EAAS+G,OAR/B,OAQOC,EARP,OASOE,EAAU,CACZlL,KAAM,QACNuN,aAAc,iDACdC,iBAAkB,yBAElBxJ,EAASiH,IACTxK,EAAS,CACLT,KAAM+H,EAAY2B,kBAClBwB,QAASA,IAEbzK,EAASgL,MACa,eAAfT,EAAOI,KACd3K,EAAS,CACLT,KAAM+H,EAAYM,mBAClB6C,QAAS,2BAGbzK,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCA5BlB,kDA+BCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYU,YAClByC,QAAS,kCAlCd,0DAAP,uDA4jBAyC,kBAxasB,WACtB,sCAAO,WAAMlN,GAAN,SAAA0J,EAAA,+EAEwBO,MAAM,kCAAmC,CAC5DC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBALhC,cAOcI,IACTxK,EAAS,CAAET,KAAM+H,EAAYW,sBAC7BjI,EAASmN,gBAETnN,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,kCAblB,gDAiBCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,kCApBd,yDAAP,uDAwaA2C,oBAzbwB,SAAApD,GAAgB,MAAK,CAC7CzK,KAAM+H,EAAYa,sBAClBsC,QAAS,CACLT,iBAAkBA,EAClBwC,QAASxC,EAAiByC,OAAS,KAsbvCY,qBAlbyB,SAAAvD,GAAiB,MAAK,CAC/CvK,KAAM+H,EAAYY,uBAClBuC,QAAS,CACLX,kBAAmBA,EACnB0C,QAAS1C,EAAkB2C,OAAS,KA+axCa,oBA9VwB,WACxB,sCAAO,WAAOtN,EAAUyJ,GAAjB,uBAAAC,EAAA,sEAEOC,EAAiBC,YAAoBH,KACtCI,mBAAmBC,kBAClBC,EAAgBH,YAAoBH,KACrCI,mBAAmBG,iBALzB,SAOwBC,MAAM,0BAA2B,CACpDC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,IAAe,CACjBV,eAAgBA,EAChBI,cAAeA,MAbxB,cAOOxG,EAPP,gBAiBsBA,EAAS+G,OAjB/B,YAiBOC,EAjBP,QAmBYgD,cAnBZ,wBAoBKvN,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,0BAtBlB,8BA0BOA,EAAU,CACZlL,KAAM,OACNuN,aAAc,8CACdC,iBAAkB,uBAElBxC,EAAOC,IAAOD,EAAOsC,0BA/B1B,wBAgCK7M,EAASwJ,KACTxJ,EAAS,CACLT,KAAM+H,EAAY0B,iBAClByB,QAASA,IAnClB,+BAuCKF,EAAOC,GAvCZ,wBAwCKxK,EAAS,CACLT,KAAM+H,EAAY2B,kBAClBwB,QAASA,IAEbzK,EAASgL,KA5Cd,2BAgDChL,EAAS,CAAET,KAAM+H,EAAYc,mBACzBmC,EAAOsC,0BACP7M,EAAS,CACLT,KAAM+H,EAAY2B,kBAClBwB,QAASA,IAGbzK,EAAS,CACLT,KAAM+H,EAAY0B,iBAClByB,QAASA,IAzDlB,kDA6DCG,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYmB,WAClBgC,QAAS,kCAhEd,0DAAP,yDA8VA+C,SAvRa,iBAAO,CACpBjO,KAAM+H,EAAYoB,YAuRlB+E,WApRe,iBAAO,CACtBlO,KAAM+H,EAAYqB,cAoRlB+E,UAjRc,iBAAO,CACrBnO,KAAM+H,EAAYyB,WAClB0B,QAAS,kCAgRTkD,iBA7QqB,SAAAtK,GACrB,sCAAO,WAAMrD,GAAN,iBAAA0J,EAAA,+EAEwBO,MACnB,mCAAqC5G,EAAKA,KAC1C,CACI6G,OAAQ,MACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBAPpC,cAEO7G,EAFP,gBAUsBA,EAAS+G,OAV/B,OAUOC,EAVP,OAWCvK,EAAS,CACLT,KAAM+H,EAAYsB,mBAClB6B,QAASF,EAAOqD,WAbrB,kDAgBChD,YAAO,EAAD,IACN5K,EAAS,CACLT,KAAM+H,EAAYyB,WAClB0B,QAAS,kCAnBd,0DAAP,uDA6QAoD,kBApPsB,SAAA/C,GACtB,sCAAO,WAAM9K,GAAN,SAAA0J,EAAA,sDACH1J,EAAS,CAAET,KAAM+H,EAAYuB,oBAAqB4B,QAASK,IAM3D9K,EAAS,CAAET,KAAM+H,EAAY2B,kBAAmBwB,QALhC,CACZlL,KAAM,OACNuN,aAAc,8CACdC,iBAAkB,wBALnB,2CAAP,uDAoPAlC,sBACAiD,aAxMiB,WACjB,sCAAO,WAAM9N,GAAN,SAAA0J,EAAA,+EAEOO,MAAM,iBAAkB,CAC1BC,OAAQ,OACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBALhC,sDAQCQ,YAAO,EAAD,IARP,OAWH5K,EAAS,CAAET,KAAM+H,EAAY4B,qBAX1B,wDAAP,uDAwMA6E,eAzLmB,WACnB,sCAAO,WAAO/N,EAAUyJ,GAAjB,SAAAC,EAAA,sDACH1J,EAAS,CAAET,KAAM+H,EAAYe,0BAEzBuB,YAAoBH,KAAY4B,mBAC3BwB,0BAEL7M,EAASgL,KAEThL,EAASwJ,KARV,2CAAP,yDAyLAwB,qBACAgD,YA/CgB,SAACpO,EAAgBqO,GACjC,sCAAO,WAAMjO,GAAN,mBAAA0J,EAAA,6DACCwE,EAASD,EAAO,SAAWA,EAAO,GADnC,kBAGwBhE,MACnBrK,EAAe,wBAA0BsO,GACzC,CACIhE,OAAQ,MACRC,YAAa,cACbC,QAAS,CAAE,eAAgB,sBARpC,cAGO7G,EAHP,gBAWsBA,EAAS+G,OAX/B,OAWOC,EAXP,OAYKhH,EAASiH,GACTxK,EAAS,CAAET,KAAM+H,EAAYgC,eAAgBmB,QAASF,IAEtDvK,EAAS,CACLT,KAAM+H,EAAYiC,cAClBkB,QAAS,2CAjBlB,kDAoBCG,YAAO,EAAD,IApBP,0DAAP,yD,wCCxpBJ,8OAAO,IAAMuD,EAAS,SACTC,EAAc,aACdC,EAAgB,cAChBC,EAAqB,oBACrBC,EAAW,WACXC,EAAkB,iBAClBC,EAAiB,kB,mbCOjBC,EAAc,SAAAjJ,GACvB,OAAOA,GAAQA,EAAKkJ,gBAAkBlJ,EAAKkJ,eAAeC,SAAW,EAC/DnJ,EAAKkJ,eAAeC,SACpB,GAGGC,EAAoB,SAAApJ,GAC7B,IAf2BqJ,EAAa,EAelCC,EAActJ,EAAKsJ,YACzB,OAAOA,GACHA,EAAYD,WACZC,EAAYD,UAAUrC,OAAS,GAlBRqC,EAmBEC,EAAYD,UAlBlC,UAAAA,GAAS,KAATA,GACE,SAAAE,GAAQ,OAAIA,EAASC,WADvB,QAEK,SAACC,EAAOC,GACZ,OAAOD,EAAQC,IAChB,IAeD,MAGGC,EAAY,SAAA3J,GAAI,OACzBA,EAAK4J,QAAU5J,EAAK4J,OAAOC,QAAU7J,EAAK4J,OAAOC,OAAS,EACpDhO,YAAYmE,EAAK4J,OAAOC,QACxB,MAEGC,EAAc,SAAA9J,GACvB,OAAyB,IAAlBA,EAAK+J,UAAqB/J,EAAKgK,UAAYhK,EAAKgK,SAASC,SAC1DjK,EAAKgK,SAASC,SACd,MAGGC,EAAqB,SAAAlK,GAC9B,SAAOA,EAAKgK,WAAYhK,EAAKgK,SAASG,WAChCnK,EAAKgK,SAASG,UAIXC,EAAkB,SAACpK,EAAMqK,GAClC,IAAMC,EAAyB,SAAAC,GAC3B,IAAMC,EAAQ,CACVC,SAAU,OACVC,aAAc,aACdC,aAAc,aACdC,gBAAiB,cACjBC,YAAa,mBAEjB,OAAKL,EAAMD,GAGE,aAATA,GAAuBF,IAAiBS,IAAgBC,MACjDP,EAAK,aAETA,EAAMD,GALFA,GAYTS,EAA4B,SAAAC,GAAgB,MAC9C,uBAAUX,EACNW,EAAaC,gBADjB,OAL4B,SAAAD,GAAY,MACV,aAA9BA,EAAaC,aACP,GADN,YAEWrP,YAAYoP,EAAaE,eAIhCC,CAAwBH,KAGhC,OAAO,WACH,IAAItP,EAAkBqE,EAAKqL,QAAQ1P,gBAEnC,GAAIqE,EAAKsJ,YAAa,CAElB,IACsB,EACe,EAY9B,EAdDgC,EAAmBtL,EAAKsJ,YAAYgC,iBAC1C,GAAIA,EACA,OAAIA,EAAiBC,WACjB,gBAAUjB,EACN,YADJ,cAEMzO,YAAYmE,EAAKsJ,YAAYgC,iBAAiBE,OAGpDF,EAAiBG,eACVC,IAAQC,gBAAgBC,cAEnC,gBAAUtB,EACNgB,EAAiBf,MADrB,cAEM1O,YAAYmE,EAAKsJ,YAAYgC,iBAAiBE,OAKpD,IAC8C,IAA1CxL,EAAKsJ,YAAYuC,sBACU,IAA3BlQ,EAAgBqL,OAClB,CACE,IAAI8E,EAAwB9L,EAAKqL,QAAQ1P,gBAAgB,GACzD,MAA8C,aAAvCmQ,EAAsBZ,aACvBQ,IAAQC,gBAAgBI,SACxBlQ,YAAYiQ,EAAsBX,cAG5C,OAAO,MAAAnL,EAAKqL,QAAQ1P,iBAAb,QAAiC,SAACsP,EAAce,GAAM,MACzD,OAAO3B,IAAiBS,IAAgBC,MACpC,uBAAGnM,IAAKoN,GAAIhB,EAA0BC,IADnC,gBAGAD,EAA0BC,KAH1B,OAICe,EAAIrQ,EAAgBqL,OAAS,KAAO,OA6BxD,OArB+B,IAA3BrL,EAAgBqL,aAGVpM,IAFN,IAAAe,GAAe,KAAfA,GACI,SAAAsQ,GAAc,MAAoC,aAAhCA,EAAef,gBAoBnCQ,IAAQC,gBAAgBI,SACxBlQ,aAhByB,IAA3BF,EAAgBqL,OACV,CAAEmE,aAAc,GAChB,IAAAxP,GAAe,KAAfA,GAAuB,SAACuQ,EAAaC,GACjC,OACKA,EAAahB,aACVe,EAAYf,cACkB,aAA9BgB,EAAajB,cACY,aAA7BgB,EAAYhB,aAELiB,EAEJD,MAKuBf,iB,yICnI9CiB,GAAc,WACfvD,IAAqB,WADN,MAEfC,IAAW,YAFI,MAGfF,IAAgB,iBAHD,MAIfD,IAAc,eAJC,MAKfK,IAAiB,kBALF,MAMfD,IAAkB,mBANH,MAOfL,IAAS,gBAPM,GAUP2D,EAAsB,SAACC,EAAeC,GAC/CC,IAAUC,WAAW,CACjBC,SAAU,YACV9S,OAAQ,GAAF,OAAKwS,EAAeE,IAC1BK,MAAOJ,M,yNChBTK,EAAkB,SAAA/O,GACb,UAAP,GAAIA,EAEA,MADAA,EAAEgP,QAAF,UAAYhP,EAAEC,gBAAd,iBAAY,EAAYF,YAAxB,iBAAY,EAAkBG,sBAA9B,aAAY,EAAkCC,UACxCH,EAEN,MAAM,IAAIiP,MAAMC,IAAgBC,UAI3BC,EAAW,+BAAG,WAAMnS,GAAN,eAAAmJ,EAAA,+EACvBiJ,cACKC,IADL,gBACY3H,IAAU4H,oBADtB,aAC6CtS,GAAmB,CACxDuS,iBAAiB,IAEpB1P,KAAK2P,eAJV,MAKWC,gBANY,2CAAH,sDAQXC,EAAiB,+BAAG,WAAO1S,EAAiB2S,GAAxB,eAAAxJ,EAAA,+EAC7BiJ,cACKC,IADL,gBACY3H,IAAUkI,+BADtB,aACwD5S,GAAmB,CACnE2N,OAAQ,CACJgF,sBAEJJ,iBAAiB,IAEpB1P,KAAK2P,eAPV,MAQWC,gBATkB,2CAAH,wDAWjBI,EAAiB,+BAAG,WAAMC,GAAN,SAAA3J,EAAA,+EAC7BiJ,cACKW,KACGrI,IAAUsI,4BACVF,EACAG,IAAaC,eAEhBrQ,KAAK2P,eANV,OAOW,SAAAzP,GACH+O,EAAgB/O,OATK,2CAAH,sDAYjBoQ,EAAgB,+BAAG,WAAMC,GAAN,eAAAjK,EAAA,+EAC5BiJ,cACKC,IADL,gBAEW3H,IAAU2I,8BAFrB,aAEsDD,GAC9CH,IAAaC,eAEhBrQ,KAAK2P,eALV,MAMWC,gBAPiB,2CAAH,sDAShBa,EAAe,+BAAG,WAAMR,GAAN,SAAA3J,EAAA,+EAC3BiJ,cACKW,KACGrI,IAAU6I,gCACVT,EACAG,IAAaC,eAEhBrQ,KAAK2P,eANV,MAOWC,gBARgB,2CAAH,sDAUf9P,EAAW,+BAAG,WAAMmQ,GAAN,SAAA3J,EAAA,+EACvBiJ,cACKW,KACGrI,IAAU8I,mBACVV,EACAG,IAAaC,eAEhBrQ,KAAK2P,eANV,MAOWC,gBARY,2CAAH,sDAUXgB,EAAiB,+BAAG,WAAOzT,EAAiB0T,GAAxB,eAAAvK,EAAA,+EAC7BiJ,cACKC,IADL,gBACY3H,IAAUiJ,yBADtB,aACkD3T,GAAmB,CAC7D2N,OAAQ,CACJiG,cAAeF,GAEnBnB,iBAAiB,IAEpB1P,KAAK2P,eAPV,MAQWC,gBATkB,2CAAH,wDAWjBoB,EAAmB,+BAAG,WAAMT,GAAN,eAAAjK,EAAA,+EAC/BiJ,cACKC,IADL,gBAEW3H,IAAUoJ,yBAFrB,aAEiDV,GACzCH,IAAaC,eAEhBrQ,KAAK2P,eALV,MAMWC,gBAPoB,2CAAH,sDASnBsB,EAAY,+BAAG,WAAMjB,GAAN,SAAA3J,EAAA,+EACxBiJ,cACKW,KACG,8BACAD,EACAG,IAAaC,eAEhBrQ,KAAK2P,eANV,MAOWC,gBARa,2CAAH,sDAWV,KACXgB,oBACAtB,cACA0B,sBACAnB,oBACAG,oBACAM,mBACAG,kBACAS,iB,uHClHEC,G,cAAc,SAAC,GAAD,IAAGC,EAAH,EAAGA,MAAO7V,EAAV,EAAUA,OAAQD,EAAlB,EAAkBA,UAAWQ,EAA7B,EAA6BA,MAAUuV,EAAvC,qDAChB,6BACIC,gBAAc,GACdC,IAAI,UACJC,QAAQ,aACRJ,MAAOA,EACP7V,OAAQA,EACRD,UAAWA,EACXQ,MAAOA,GACHuV,GACJ,0BAAMI,EAAE,skCAGhBN,EAAYO,UAAZ,GAMAP,EAAYQ,aAAe,CACvBP,MAAO,IACP9V,UAAW,IAGAsW,QAAMC,KAAKV,I,s2BCpBpBW,E,iNAUS,SAAA5R,GACW,KAAdA,EAAE6R,SAEF,EAAKC,SAASC,WACd/R,EAAEgS,kBACmB,KAAdhS,EAAE6R,UAET,EAAKC,SAASG,OACdjS,EAAEgS,qB,oCAIc,SAAAE,GACpBA,EAAMC,kBACN,EAAKC,MAAMC,wB,oDAGyB,SAAAH,GAAK,OAAIA,EAAMC,qB,uCAE5B,SAAAD,GAAK,OAAIA,EAAMC,qB,0DAGtC3T,OAAO8T,iBAAiB,UAAWC,KAAKC,Y,6CAIxChU,OAAOiU,oBAAoB,UAAWF,KAAKC,Y,+BAGtC,aAMDD,KAAKH,MAJLM,EAFC,EAEDA,OACAC,EAHC,EAGDA,kBACAN,EAJC,EAIDA,mBACGO,EALF,2DAOCC,EAAW,CACbC,aAAcH,EACdI,eAAe,EACfC,gBAAgB,EAChBC,SAAU,cACVC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACdC,WAAY,CACR,CACIC,WAAYC,IAAiBC,IAAYC,IAAIC,IAC7Cb,SAAU,CACNc,QAAQ,MAMxB,OACI,kBAAC,IAAD,KACIvY,UACI,mFAEJwY,cAAe,QACfvB,mBAAoBA,GAChBO,GACJ,yBAAK1W,QAASqW,KAAKsB,uCACf,kBAAC,IAAD,CACIC,IAAK,SAAAC,GACD,EAAKjC,SAAWiC,GAEpB3Y,UAAU,QACVyX,SAAUA,EACVmB,OAAQ,kBACJ,IAAAtB,GAAM,KAANA,GAAW,SAACuB,EAAOC,GAAR,OACP,yBACInT,IAAKmT,EACL9Y,UACI,oCAEJc,QAAS,EAAKiY,uBACd,yBACI/Y,UAAU,oBACVc,QAAS,EAAKkY,0BACd,yBACI9Y,IACI2Y,EAAMI,QACN,iEAEJjZ,UAAU,yBACViW,IAAK4C,EAAM5C,cAOnC,4BACIjW,UAAU,sFACVc,QAASqW,KAAK4B,8B,GAzGNG,a,IAA1B1C,E,eAMoB,CAClBe,kBAAmB,IAPrBf,EACKJ,U,GAgHII,Q,m/BCnHT2C,G,iCACF,WAAYnC,GAAO,0BACf,cAAMA,IAEDoC,eAAiB9C,IAAM+C,YAC5B,EAAKC,UAAYhD,IAAM+C,YAEvB,EAAKE,OAAS,KAEd,EAAKpX,MAAQ,CACTqX,OAAO,EACPC,sBAAsB,GAVX,E,qDAkBFC,GACbvC,KAAKwC,UAAS,SAAAC,GAAS,gBAChBA,GADgB,IAEnBJ,MAAOE,S,sCAIC9U,GAAG,MAEf,GAA+B,OAA3BuS,KAAKmC,UAAUO,QAAnB,CAFe,MAYX1C,KAAK2C,YANLC,EANW,EAMXA,eACAC,EAPW,EAOXA,gBACAC,EARW,EAQXA,eACAC,EATW,EASXA,gBACAC,EAVW,EAUXA,UACAC,EAXW,EAWXA,WAGEX,EAAuBU,EAAY,GAAKC,EAAa,EAK3D,GAJAjD,KAAKwC,SAAS,CACVF,yBAGCA,EAAL,CAIA,IAAMY,EAAazV,EAAE0V,YAAYC,QAAUR,EACrCS,EAAc5V,EAAE0V,YAAYG,QAAUT,EAEtCU,EACFP,EAAY,EACNE,EAAaF,EACbF,EAAiB,EAAIF,EAAiB,EAC1CY,EACFP,EAAa,EACPI,EAAcJ,EACdF,EAAkB,EAAIF,EAAkB,EAEzB7C,KAAKmC,UAAUO,QACvBrZ,MAAMoa,UAAvB,2BAAiDF,EAAjD,8BACOC,EADP,OAGAxD,KAAK0D,kBAAiB,O,kCAItB,GAAI1D,KAAKoC,OACL,OAAOpC,KAAKoC,OAGhB,IAAMuB,EAAmB3D,KAAKmC,UAAUO,QALhC,EAMsB1C,KAAKiC,eAAeS,QAKxBkB,wBAFfhB,EATH,EASJjE,MACQkE,EAVJ,EAUJ/Z,OAVI,EAeJ6a,EAAiBC,wBAFVd,EAbH,EAaJnE,MACQoE,EAdJ,EAcJja,OAGEka,EAAYF,EAAiBF,EAC7BK,EAAaF,EAAkBF,EAErC,OAAIC,GAAkB,GAAKC,GAAmB,EACnC,IAEX/C,KAAKoC,OAAS,CACVQ,iBACAC,kBACAC,iBACAC,kBACAC,YACAC,cAGGjD,KAAKoC,U,+BAGP,aAC0CpC,KAAKH,MAA5C6B,EADH,EACGA,MAAOmC,EADV,EACUA,WAAYC,EADtB,EACsBA,gBADtB,EAEmC9D,KAAKhV,MAArCqX,EAFH,EAEGA,MAAOC,EAFV,EAEUA,qBACf,OACI,yBACIf,IAAKvB,KAAKiC,eACVpZ,UAAS,6BACLgb,EAAa,iBAAmB,KAEpC,kBAAC,IAAD,CAAYE,SAAU/C,IAAiBC,IAAYC,IAAIC,KACnD,yBACItY,UAAS,mDACJwZ,EAA+C,GAAvC,sCAEbtZ,IACI2Y,EAAMI,QACN,iEAEJhD,IAAK4C,EAAM5C,MAEf,yBACIyC,IAAKvB,KAAKmC,UACVtZ,UAAS,mCACLwZ,GAASC,EACH,qBACA,IAEVvZ,IACI2Y,EAAMI,QACN,iEAEJhD,IAAK4C,EAAM5C,OAGnB,kBAAC,IAAD,CAAYkF,SAAUhD,IAAiBC,IAAYgD,IAAIC,KACnD,yBACIrb,UAAU,iBACVE,IACI2Y,EAAMyC,QACN,iEAEJrF,IAAK4C,EAAM5C,OAGnB,yBACIjW,UAAU,8BACVc,QAASma,EACTM,YAAa,SAAA3W,GACT,EAAK4W,gBAAgB5W,IAEzB6W,aAAc,kBAAM,EAAKZ,kBAAiB,W,GAzJlC3B,a,IAAtBC,G,eAeoB,CAClB6B,YAAY,IAgJpB7B,GAAc/C,UAAd,GAUe+C,U,iZCrKTuC,G,iCAsBF,WAAY1E,GAAO,yBACf,cAAMA,GADS,mBALX,CACJ2E,eAAe,EACfC,iBAAkB,IAKlB,EAAKC,cAAgBvF,IAAM+C,YAFZ,E,6CAKV,aAQDlC,KAAKH,MANL8E,EAFC,EAEDA,cACA9b,EAHC,EAGDA,UACAgb,EAJC,EAIDA,WACAe,EALC,EAKDA,YACAzE,EANC,EAMDA,OACGE,EAPF,2EASuCL,KAAKhV,MAAzCwZ,EATH,EASGA,cAAeC,EATlB,EASkBA,iBAEjBI,EAAY,WACVhB,GACA,EAAKrB,SAAS,CACVgC,eAAe,KAKrBlE,EAAW,CACbwE,aAAc,SAAAC,GACV,OACI,yBACIlc,UAAU,mCACVgc,UAAWA,EACXG,YAAa,kBACT,EAAKN,cAAchC,QAAQuC,KAAKF,KAEpC,yBACIlc,UAAU,qBACVE,IAAKoX,EAAO4E,GAAYG,iBAE5B,yBAAKrc,UAAU,kCAI3Bsc,YAAa,SAAAxD,GACT,EAAKa,SAAS,CAAEiC,iBAAkB9C,KAEtCpB,aAAckE,EACdjE,eAAe,EACfM,WAAY,CACR,CACIC,WAAYC,IAAiBC,IAAYC,IAAIC,IAC7Cb,SAAU,CACNwE,aAAc,SAASlJ,GACnB,OAAO,gCAASA,QAOpC,OACI,yBAAK/S,UAAWA,EAAWQ,MAAOsb,GAC9B,kBAAC,IAAD,KACInW,IAAK2R,EAAOvJ,OACZ2K,IAAKvB,KAAK0E,cACV7b,UAAS,kEACJ+b,GAAezE,EAAOvJ,OAAS,EAAI,OAAS,IAEjDwO,eAAe,gCACf9E,SAAUA,GACND,GACH,IAAAF,GAAM,KAANA,GAAW,SAACuB,EAAOC,GAAR,OACR,kBAAC,GAAD,CACInT,IAAKmT,EACLD,MAAOA,EACPmC,WAAYA,EACZC,gBAAiB,WACTD,GACA,EAAKrB,SAAS,CACVgC,eAAe,WAOtCX,GAAcW,GACX,kBAAC,EAAD,CACIpE,kBAAmBqE,EACnBG,aAAa,EACb9E,mBAAoB,WAChB,EAAK0C,SAAS,CAAEgC,eAAe,KAEnCrE,OAAQA,S,GAjHGhB,IAAM4C,W,IAAnCwC,G,eAUoB,CAClBI,cAAe,GACf9b,UAAW,GACXgb,YAAY,EACZe,aAAa,IAdfL,GACKtF,U,GAwHIsF,W,yHChIf,SAASc,EAAa3O,GAClB,IAAI4O,EAAM,IAAIC,OAAO7O,GACrB,QAAK8O,EAAEC,SAAS,IAASH,QAEd,IAAAA,GAAG,KAAHA,EAAY,MAAQ,MAEpB,IAAAA,GAAG,KAAHA,EAAY,MAAQ,IAMnC,SAASI,EAAMhP,GACX,OAAOA,EAAS,GAAM,EAqI1B,SAASiP,EAASC,GAlIlB,IAA4BC,EAAmBC,EAgK3C,OA7BAF,EAASG,0BA5Bb,SAA4BF,EAAmBra,GAC3C,IAAKqa,EACD,OAAO,KAGX,GAAIra,IAAeka,EAAMla,GACrB,MAAO,6CAMX,IAAK6Z,EAAa7Z,GACd,MAAO,mCAEX,IAAKwa,MAAMxa,GAAa,CACpB,GAAI,IAASA,GAPF,IAQP,MAAO,uCAGX,GAAI,IAASA,GAVF,EAWP,MAAO,uCAGf,OAAO,KAI8Bya,CACjCL,EAASC,kBACTD,EAASpa,YAEboa,EAASM,2BAvIeL,EAwIpBD,EAASC,kBAxI8BC,EAyIvCF,EAASE,WAxITD,EACO,KAGPC,IAAeJ,EAAMI,GACd,6CAMNT,EAAaS,GAIdA,EAPW,IAQJ,iCAGPA,EAVW,EAWJ,qCAGJ,KAXI,sCA8HXF,EAASO,4BAhHb,SACIN,EACAO,EACAN,EACAO,EACAC,GAEA,OAAIT,EACO,KAGPO,IAAqBC,EACd,gCAGPA,IAAiBX,EAAMW,GAChB,6CAKPA,IAAiBhB,EAAagB,GACvB,2CAIPA,GAAgBA,GAAgBP,EAEzB,0DAIPO,GAAgBC,GAAmBD,GAAgBC,EAE5C,uDAGPD,EAlBW,IAmBJ,uCAGJ,KAuEgCE,CACnCX,EAASC,kBACTD,EAASQ,iBACTR,EAASE,WACTF,EAASS,aACTT,EAASU,iBAEbV,EAASY,0BA3Eb,SACIX,EACAY,EACAX,EACAO,EACAC,GAEA,OAAIT,EACO,KAGPY,IAAwBH,EACjB,gCAGPA,IAAoBZ,EAAMY,GACnB,6CAGPA,GAAmBA,GAAmBR,EAE/B,sDAIPO,GAAgBC,GAAmBD,GAAgBC,EAE5C,yDAEJ,KA8C8BI,CACjCd,EAASC,kBACTD,EAASa,oBACTb,EAASE,WACTF,EAASS,aACTT,EAASU,iBAEbV,EAASe,gBACLf,EAASG,2BACTH,EAASM,2BACTN,EAASO,6BACTP,EAASY,0BACH,+BACA,KACHZ,EAGX,IAAIgB,EAAe,CACfd,WAAY,KACZQ,gBAAiB,KACjB9a,WAAY,KACZ6a,aAAc,KACdI,qBAAqB,EACrBL,kBAAkB,EAClBP,kBAAmB,KACnBK,0BAA2B,KAC3BM,0BAA2B,KAC3BL,4BAA6B,KAC7BJ,0BAA2B,KAC3Bc,e,cAAgBC,EAAOC,oBACvBC,sCAAsC,EACtCC,IAAK,MAGM,aAACjc,EAAOxB,GAEnB,OADAwB,EAAQA,GAAS4b,EACTpd,EAAOE,MACX,IAAK,kBACD,OAAOic,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAE8a,WAAYtc,EAAOoL,WAEjD,IAAK,wBACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEsb,gBAAiB9c,EAAOoL,WAEtD,IAAK,kBACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEQ,WAAYhC,EAAOoL,WAEjD,IAAK,oBACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEqb,aAAc7c,EAAOoL,WAEnD,IAAK,mCACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEyb,oBAAqBjd,EAAOoL,WAE1D,IAAK,+BACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEob,iBAAkB5c,EAAOoL,WAEvD,IAAK,2BACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAChB6a,kBAAmBrc,EAAOqc,qBAGtC,IAAK,UACD,OAAOF,EAASH,EAAE0B,OAAO,GAAIlc,EAAO,CAAEic,IAAKzd,EAAOoL,WACtD,IAAK,uBACD,OAAO+Q,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAChB8a,WAAY,KACZQ,gBAAiB,KACjB9a,WAAY,KACZyb,IAAK,QAGjB,IAAK,kDACD,OAAOtB,EACHH,EAAE0B,OAAO,GAAIlc,EAAO,CAChBgc,qCAAsCxd,EAAOoL,WAGzD,QACI,OAAO5J,M,mNCrPbmc,EAAuB,SAAC,GAIxB,MAHFC,EAGE,EAHFA,SACAC,EAEE,EAFFA,eACAC,EACE,EADFA,iBAEQrd,EAAMC,cAAND,EADN,EAEgCI,mBAAS+c,EARrB,IAMpB,WAEKG,EAFL,KAEgBC,EAFhB,KAIIC,EAAW,SAAA9H,GACb,IAAM+H,EAAQ,IAAS/H,EAAMgI,OAAOD,OAChC1B,MAAM0B,MAEK,IAAXA,IACA/H,EAAMgI,OAAOD,MAAQE,KAAKzG,IAAIuG,EAAOL,GACrCC,EAAiB3H,KAGN,IAAX+H,GACAF,GAAa,KAIrB,OACI,yBAAK3e,UAAU,+CACT0e,GACE,4BACIM,aAAcT,EACdve,UAAS,0CACLue,EAAWC,EAAiB,gBAAkB,IAElDI,SAAUA,GACV,4BAAQC,MAAO,GAAf,WACC,UACMI,MAAMF,KAAKzG,IAAIkG,EAnChB,OAkCL,QAEK,SAAC7B,EAAG5J,GACN,IAAMmM,EAAQnM,EAAI,EAClB,OACI,4BAAQ/S,UAAU,OAAO2F,IAAKuZ,EAAOL,MAAOK,GACvCA,EADL,UAKPX,EAAWC,GACR,4BAAQxe,UAAU,OAAO6e,MAAON,GAC3BA,EADL,OAIHC,EAjDK,IAkDF,4BAAQxe,UAAU,OAAO6e,OAAQ,GAC5Bzd,EAAE,8CAKlBsd,GACG,2BACI7d,KAAK,SACL6d,UAAU,UACVS,aAAa,MACb7G,IAAK,EACL+C,IAAKmD,EACLI,SAAUA,EACV5e,UAAU,+BACVgf,aAAcT,MAqGnBa,IA9FK,SAAC,GASf,IARFxf,EAQE,EARFA,UACAC,EAOE,EAPFA,UACAC,EAME,EANFA,eACAuE,EAKE,EALFA,YACAka,EAIE,EAJFA,SACAC,EAGE,EAHFA,eACAC,EAEE,EAFFA,iBACA1e,EACE,EADFA,QAEQqB,EAAMC,cAAND,EAER,OACI,kBAAC,WAAD,KACI,yBAAKpB,UAAU,8BACX,yBAAKA,UAAU,oCACX,yBAAKA,UAAU,+BACVqE,GACG,0BAAMrE,UAAU,kBACXoB,EAAE,uBADP,MAKR,yBAAKpB,UAAU,OAAOC,OAAO,OAAOC,IAAKN,IACzC,uBACIO,KAAMJ,EACNC,UAAU,2CACTH,QAGe8B,IAAnB6c,GACGD,EAAWC,GACP,yBAAKxe,UAAU,eACVoB,EAAE,kCAIKO,IAAnB6c,GACG,kBAACF,EAAD,CACIC,SAAUA,EACVC,eAAgBA,EAChBC,iBAAkBA,IAI1B,yBAAKze,UAAU,2CACVF,KAIZuE,GACG,yBAAKrE,UAAU,8BACX,yBAAKA,UAAU,eACX,0BAAMA,UAAU,kBACXoB,EAAE,uBADP,OAMZ,yBAAKpB,UAAU,8BACX,yBAAKA,UAAU,iBACX,yBAAKA,UAAU,OAAOC,OAAO,OAAOC,IAAKN,IACzC,yBAAKI,UAAU,eACX,uBAAGG,KAAMJ,EAASC,UAAU,qBACvBH,GAGL,yBAAKG,UAAU,+DACS2B,IAAnB6c,GACG,kBAACF,EAAD,CACIC,SAAUA,EACVC,eAAgBA,EAChBC,iBAAkBA,IAI1B,yBAAKze,UAAU,gCACVF,UAKO6B,IAAnB6c,GACGD,EAAWC,GACP,yBAAKxe,UAAU,eACVoB,EAAE,kC,8FChJpBie,IAdO,SAAC,GAA0C,MAAxCrf,EAAwC,EAAxCA,UAAWsf,EAA6B,EAA7BA,aAAcvO,EAAe,EAAfA,SAC9C,OACI,0BACI/Q,UAAS,gBAAKA,GAAa,GAAlB,aACLsf,EAAe,cAAgB,IAGnCC,wBAAyB,CACrBC,OAAQzO,GAEZ0O,mCAAiC,O,oPCVhCC,EAAqB,SAAAjd,GAC9B,OAAOkd,IAAezL,IAAf,sBAAkCzR,EAAlC,WAGEmd,EAAa,SAACnd,EAAQod,EAAQjM,EAASkM,GAChD,IAAM/T,EAAU,CAAE8T,SAAQjM,UAASkM,cACnC,OAAOH,IAAe/K,KAAf,sBAAmCnS,GAAUsJ,I,gFCI3CgU,EAAsB,SAAAtd,GAAM,sCAAI,WAAOnB,EAAUyJ,GAAjB,mBAAAC,EAAA,yDACnCgV,EAAajV,IAAW3I,MAAM4d,aACnBA,EAAWvd,SAAWA,GAFE,uBAIrCnB,EACI2e,YACID,EAAWE,SAAWC,IAAYC,WAAaD,IAAYE,OAN9B,0CAYrC/e,EAAS2e,YAAaE,IAAYG,UAZG,SAadZ,EAAmBjd,GAbL,gBAa7BkC,EAb6B,EAa7BA,KAERrD,EAASif,EAAsB5b,IAfM,kDAiBjC,OAAU6b,IAAWC,WApB7Brd,OAAOC,SAAP,gBAA2Bqd,YAAaC,gBAuBhCzU,YAAO,EAAD,IApB2B,0DAAJ,yDAyB5BqU,EAAwB,SAAAK,GAAe,OAAI,SAAAtf,GACpDA,EAASuf,YAAcD,MAGdE,EAAe,SACxBre,EACAod,EACAjM,EACAkM,GAJwB,sCAKvB,WAAMxe,GAAN,SAAA0J,EAAA,6DACD1J,EAAS2e,YAAaE,IAAYY,aADjC,kBAGSnB,EAAWnd,EAAQod,EAAQjM,EAASkM,GAH7C,OAIGxe,EAAS2e,YAAaE,IAAYa,iBAJrC,gDAMG9U,YAAO,EAAD,IACN5K,EAAS2e,YAAaE,IAAYc,gBAPrC,yDALuB,wD,wCCzC5B,oEAAO,IAAMC,EAAmB,CAC5BC,aAAc,eACdC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SAGEC,EAAc,CACvBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,oBAAqB,sBACrBC,0BAA2B,4BAC3BC,+BAAgC,iCAChCC,kCAAmC,oCACnCC,gCAAiC,kCACjCC,kBAAmB,oBACnBC,QAAS,Y,wCChBb,6CAoCeC,IAjCQ,SAAC,GAAwC,IAAtCniB,EAAsC,EAAtCA,eAAgB4C,EAAsB,EAAtBA,gBAC9BtB,EAAMC,cAAND,EAER,OACI,kBAAC,WAAD,KACI,yBACIpB,UAAS,2BACL0C,EAAgBqL,OAAS,EAAI,OAAS,SAE1C,yBAAK/N,UAAU,OACX,0BAAMA,UAAU,kBACXoB,EAAE,+BADP,MAIJ,yBAAKpB,UAAU,kBACX,yBAAKA,UAAU,oBACVoB,EAAE,iCAAkC,CACjC8gB,MAAOpiB,OAKtB4C,EAAgBqL,OAAS,GACtB,yBAAK/N,UAAU,oBACX,yBAAKA,UAAU,0CACVoB,EAAE,yC,wCC5B3B,yD,wCCAegC,WAAf,mB,kmDCuBA,IAoMM+e,EAAyBC,aAvBP,SAAAjgB,GAAK,MAAK,CAC9B8C,SAAU9C,EAAM8C,SAChB4C,MAAO1F,EAAM0F,MAAMhC,MACnBwc,WAAYlgB,EAAMmgB,OAAOD,WACzBphB,kBAAmBkB,EAAMogB,cAActhB,sBAGhB,SAAAK,GAAQ,MAAK,CACpCkhB,SAAU,SAAA3a,GACNvG,EAASmhB,IAAYC,IAAI7a,KAE7B8a,cAAe,SAAClgB,EAAQqF,GAAT,OACXxG,EACIshB,IAAUD,cAAc,CACpB7a,UACArF,SACAogB,WAAY,kBAGxBC,eAAgB,SAAArgB,GAAM,OAAInB,EAASmhB,IAAYM,SAAStgB,KACxDugB,WAAY,SAAAjX,GAAO,OAAIzK,EAASmhB,IAAYO,WAAWjX,QAG5BqW,EA5LT,SAAApL,GAAS,IAEvBwL,EAUAxL,EAVAwL,SACAvd,EASA+R,EATA/R,SACAge,EAQAjM,EARAiM,MACAZ,EAOArL,EAPAqL,WACAxa,EAMAmP,EANAnP,MACA8a,EAKA3L,EALA2L,cACA1hB,EAIA+V,EAJA/V,kBACA6hB,EAGA9L,EAHA8L,eACA5hB,EAEA8V,EAFA9V,eACA8hB,EACAhM,EADAgM,WAXuB,EAgBvB/d,EAASie,iBAFTC,EAduB,EAcvBA,yBACAC,EAfuB,EAevBA,2BAfuB,EAkBD5hB,mBAAS,CAC/BwG,SAAS,EACTnJ,OAAO,EACPiJ,QAAS,KArBc,WAkBpB3F,EAlBoB,KAkBbwX,EAlBa,KAuBnB3R,EAA4B7F,EAA5B6F,QAASnJ,EAAmBsD,EAAnBtD,MAAOiJ,EAAY3F,EAAZ2F,QAExBub,qBAAU,WAAM,MAC2BC,IAAMC,YAAYC,SAAjDC,EADI,EACJA,OAAeC,EADX,EACIC,MAgChB,OA/BAL,IACKpP,IAAI3H,IAAUmD,YAAa,CAAEgU,gBAC7Bhf,MAAK,YAAc,IAAXC,EAAW,EAAXA,KACDmD,EAAU,GAKd,OAJInD,IACA6d,EAAS7d,GACTmD,EAAU,IAAAnD,GAAI,KAAJA,GAAS,SAAAoC,GAAI,OAAIA,EAAKtE,WAE7BkX,EAAS,CACZ3R,SAAS,EACTnJ,OAAO,EACPiJ,eAXZ,MAcWwM,eAdX,OAeW,SAAAzV,GACH,OAAQA,EAAM+U,SACV,KAAK4M,IAAWoD,UACZ,OACJ,KAAKpD,IAAWqD,QAChB,KAAKrD,IAAWsD,QACZ,MACJ,QACI5X,YAAOrN,GAEf8a,EAAS,CACL3R,SAAS,EACTnJ,OAAO,EACPiJ,QAAS,QAGd2b,IACR,CAACjB,IAEJa,qBAAU,WACN,GAAIF,EACA,OAAOY,YAAoB,CACvBC,IAAKZ,EACLa,UAAW,SAAAC,GAAU,UACEpc,GADF,IACjB,2BAA4B,KAAnBrF,EAAmB,QACxByhB,EAAOC,KAAK,cAAe1hB,IAFd,gCAKrB2hB,cAAe,SAAAzf,GACX,OAAQA,EAAK0f,MACT,IAAK,WACL,IAAK,aACD,MACJ,IAAK,2BACL,IAAK,4BACDrB,EAAW,CACPvgB,OAAQkC,EAAK2f,MAAMC,UACnBxd,KAAM,CACFyd,WAAY7f,EAAK2f,MAAMG,UACvBC,UAAW/f,EAAK2f,MAAMK,sBAQnD,CACCxB,EACAC,EACAtb,EACAkb,IA7FuB,IAgGnB5hB,EAAMC,cAAND,EACFwjB,EAAYC,cAAgB,EAAI,EAEhCC,EAAkB5hB,uBACpB,SAAAT,GACIkgB,EAAclgB,EAAQqF,KAE1B,CAACA,EAAS6a,IAGd,GAAI9jB,IAAWmJ,GAA8B,IAAnBF,EAAQiG,OAAe,OAAO,KAExD,IAKMgX,EAAe/c,EACfgd,YAA6BJ,GANd,WAAoD,MAAnD9c,EAAmD,uDAAzC,GAAImd,EAAqC,uDAA1B,GAAIC,EAAsB,uDAAN,EACzDC,EAAc,IAAArd,GAAO,KAAPA,GAAY,SAAArF,GAAM,OAAIwiB,EAASxiB,MACnD,OAAO,UAAA0iB,GAAW,KAAXA,GAAmB,SAAApe,GAAI,QAAMA,MAA7B,OAAyC,EAAGme,GAKjDE,CAAatd,EAASD,EAAO+c,GAEnC,OACI,6BAAS5kB,UAAU,WACf,wBAAIA,UAAU,yBAAyBoB,EAAE,sBACzC,yBAAKpB,UAAU,oCACV,IAAA+kB,GAAY,KAAZA,GAAiB,SAAAhe,GAAI,OAClB,yBACIpB,IAAKoB,EAAKtE,OACVzC,UAAU,iCACV,kBAAC,IAAD,CACIqlB,mBAAmB,EACnBC,gBACIrgB,EAASsgB,gBACL,iCAGRlD,WAAYA,EACZtb,KAAMA,EACNye,KAAMC,IACNC,gBAAiB5C,EACjB6C,YAAab,EACbc,qBAAsB9C,EACtB7hB,kBAAmBA,EACnB4kB,QAAS9e,EAAKhH,eAK9B,yBAAKC,UAAU,OACX,yBAAKA,UAAU,sBACX,kBAAC,IAAD,CACI8lB,QAAS7C,EACT9iB,KAAMe,EAAe,2BACrB6kB,KAAK,SACL/lB,UAAU,2BACVc,QAAS,kBACLsS,YACI1D,IACA,8BARZ,UAWQtO,EAAE,uBAXV,cA+CL4kB,sBACXC,IACAC,IACAC,cAAIC,GAHOJ,EAzMI,SAAAhP,GAAK,OACpB,kBAAC,IAAD,KACI,kBAAC,IAAD,KACI,kBAACmL,EAA2BnL,U,+PClBlCqP,EAAe,+BAAG,WAAMC,GAAN,yBAAAtb,EAAA,6DACdub,EAAe,IACfC,EAAa,EACbC,EAAe,MAHD,SAMVnD,IAAMpP,IACZhT,YACI,wCACAwlB,gBATY,mBAKRC,EALQ,EAKhBhiB,KAAQgiB,YATKC,EAgBYH,KAAvBI,EAfC,MAAaD,GAiBNL,GAdM,0CAeT,CAAEI,YAAazZ,KAAK4Z,MAAMH,GAAcE,YAf/B,aAgBTP,EAAaE,GAhBJ,0CAiBTH,EAAgBC,EAAa,IAjBpB,iCAmBT,MAnBS,kCAJH,IAAAM,IAIG,OAAH,sDA2BRG,EAAa,+BAAG,sBAAA/b,EAAA,sEACZqb,EAAgB,GADJ,mFAAH,sD,wCCnC1B,sKASMzd,EAAc,CAChBoe,UAAW,YACXC,kBAAmB,oBACnBC,sBAAuB,wBACvBC,MAAO,QACPC,mBAAoB,oBACpBC,WAAY,aACZC,eAAgB,iBAChBC,aAAc,eACdC,YAAa,yBACbC,eAAgB,4BAChBC,2BAA4B,6BAC5BC,mCAAoC,qCACpCC,qBAAsBC,IAAcD,qBACpCE,sBAAuBD,IAAcC,sBACrCC,iCAAkC,oCA2ChCC,EAAyB,SAAAC,GAAY,MAAK,CAC5CpnB,KAAM+H,EAAYwe,mBAClBrb,QAASkc,IA4CAC,EAAgC,SAAA5mB,GACzC,OAAO6mB,cAAkBzjB,MAAK,YAA2B,IAAxBtD,EAAwB,EAAxBA,EAAGF,EAAqB,EAArBA,eAC1B6K,EAAUqc,YAAwBhnB,EAAGF,GAC3CI,EAAS,CACLT,KAAM+H,EAAYmf,iCAClBhc,gBAOG,KACXnD,cACA6E,UA/Fc,SAAA1B,GAAO,MAAK,CAC1BlL,KAAM+H,EAAYoe,UAClBjb,QAASA,IA8FTsc,iBAxDqB,SAAAJ,GAAY,OAAI,SAAA3mB,GACrC,IAAMgnB,EAAmB,oBAAH,OAAuBL,GACvCM,EAAU,IAAIrb,KACpBqb,EAAQC,SAASD,EAAQE,WAAa,GACtCnnB,EAASonB,YAAUJ,EAAkBA,EAAkBC,IACvDjnB,EAAS0mB,EAAuBC,MAoDhCU,mBAlFuB,SAAAvX,GAAY,OAAI,SAAA9P,GAOvC,OANA8P,EACIA,IAAiBS,IAAgBC,MAC3BD,IAAgB+W,QAChB/W,IAAgBC,MAC1BxQ,EAASonB,YAAU,iBAAkBtX,IACrC9P,EAASunB,IAAqBC,eACvB,CACHjoB,KAAM+H,EAAYse,sBAClBnb,QAASqF,KA0Eb4W,yBACAe,sBAvE0B,WAC1B,IAAMC,EAAmBC,SAASC,iBAAiB,yBAC/CF,EAAiBjb,OAAS,GAC1B3K,OAAO+lB,SAAS,EAAGH,EAAiB,GAAGI,WAAa,IAqExDC,UAzGc,SAAAC,GAAO,MAAK,CAC1BzoB,KAAM+H,EAAYye,WAClBtb,QAASud,IAwGTC,cA3CkB,SAAArR,GAAU,MAAK,CACjCrX,KAAM+H,EAAY0e,eAClBvb,QAASmM,IA0CTrZ,MA5FU,SAAAA,GAAK,MAAK,CACpBgC,KAAM+H,EAAYue,MAClBpb,SAAmB,IAAVlN,EAAiB2qB,IAAaC,OAAO1V,QAAUlV,IA2FxD6qB,WAvDe,SAAAC,GAAU,MAAK,CAC9B9oB,KAAM+H,EAAY4e,YAClBzb,QAAS4d,IAsDTC,cAnDkB,SAAAD,GAAU,MAAK,CACjC9oB,KAAM+H,EAAY6e,eAClB1b,QAAS4d,IAkDTE,YA1CgB,SAAAC,GAAM,MAAK,CAC3BjpB,KAAM+H,EAAY2e,aAClBxb,QAAS+d,IAyCTC,yBArG6B,SAAAhe,GAAO,MAAK,CACzClL,KAAM+H,EAAY8e,2BAClB3b,QAASA,IAoGTie,gCAvCoC,SAAAC,GAAM,MAAK,CAC/CppB,KAAM+H,EAAY+e,mCAClB5b,QAASke,IAsCTC,mBA/BuB,SAAAne,GAAO,OAAI6W,IAAUsH,mBAAmBne,IAgC/Doe,oBA9BwB,SAAApe,GAAO,OAAI6W,IAAUuH,oBAAoBpe,M,syBC1GrE,IAAMqe,EAAe,CACjBC,aAAa,EACb9a,KAAM,GACN1Q,OAAO,EACPoG,SAAU,CACNqlB,YAAarlB,IAASqlB,aAAe,GACrCC,QAAStlB,IAASqlB,aAAe,GACjC9nB,MAAOyC,IAASzC,OAAS,GACzBgF,YAAavC,IAASuC,aAAe,IAEzCgjB,WAAYvlB,IAASulB,YAAc,KACnCC,YAAaxlB,IAAWA,IAASwlB,YAAc,GAC/CC,gBAAiBzlB,IAAWA,IAASylB,gBAAkB,GACvD5mB,SAAUmB,IAAWA,IAASnB,SAAW,GACzC6mB,eAAgB1lB,IAAWA,IAAS0lB,eAAiB,GACrDC,sBAAuB3lB,IAAWA,IAAS2lB,sBAAwB,KACnEC,8BAA8B,EAC9BnB,YAAY,EACZE,eAAe,EACfkB,SAAU,KACVC,4BAA4B,EAC5B/jB,eAAgB,CACZT,KAAMC,IAAUC,MAAMC,OACtBlE,MAAO,GACPtC,IAAK,GACL+G,eAAe,EACfC,YAAa,GACbH,KAAM,OAIC,eAAkC,MAAjC5E,EAAiC,uDAAzBioB,EAAczpB,EAAW,uCACvC8M,EAAY,yBACXtL,GADW,IAEdkoB,YAAa1pB,EAAOoL,WAGlBlN,EAAQ,yBACPsD,GADO,IAEVtD,MAAO8B,EAAOoL,WAGZif,EAAoB,yBACnB7oB,GADmB,IAEtB6oB,kBAAmBrqB,EAAOoL,WAGxBsd,EAAY,yBACXlnB,GADW,IAEdknB,WAA8B,IAAnB1oB,EAAOoL,SAA4BpL,EAAOoL,WAGnDwd,EAAgB,yBACfpnB,GADe,IAElB+V,WAAYvX,EAAOoL,WAGjB2d,EAAa,yBACZvnB,GADY,IAEfunB,aACI/oB,EAAOoL,UAA8B,IAAnBpL,EAAOoL,WAElB5J,EAAMunB,cAGfE,EAAgB,yBACfznB,GADe,IAElBynB,gBACIjpB,EAAOoL,UAA8B,IAAnBpL,EAAOoL,WAElB5J,EAAMynB,iBAGfC,EAAc,yBACb1nB,GADa,IAEhB2oB,SAAUnqB,EAAOoL,WAGfge,EAA2B,yBAC1B5nB,GAD0B,IAE7B4oB,2BAA4BpqB,EAAOoL,WAGjCie,EAAkC,yBACjC7nB,GADiC,IAEpC0oB,6BAA8BlqB,EAAOoL,WAOnCme,EAAqB,kBAAMe,YAAW9oB,EAAOxB,IAE7CwpB,EAAsB,kBAAMc,YAAW9oB,EAAOxB,IAE9CunB,EAAgC,yBAC/B/lB,GAD+B,IAElCoN,KAAM5O,EAAOoL,WAGXmf,EAAM,kBAAM/oB,GAEZgpB,GAAQ,WACTC,IAAQxiB,YAAYoe,UAAYvZ,GADvB,MAET2d,IAAQxiB,YAAYwe,mBAAqB4D,GAFhC,MAGTI,IAAQxiB,YAAYue,MAAQtoB,GAHnB,MAITusB,IAAQxiB,YAAYye,WAAagC,GAJxB,MAKT+B,IAAQxiB,YAAY0e,eAAiBiC,GAL5B,MAMT6B,IAAQxiB,YAAY2e,aAAesC,GAN1B,MAOTuB,IAAQxiB,YAAY4e,YAAckC,GAPzB,MAQT0B,IAAQxiB,YAAY6e,eAAiBmC,GAR5B,MASTwB,IAAQxiB,YACJ8e,2BAA6BqC,GAVxB,MAWTqB,IAAQxiB,YACJ+e,mCAAqCqC,GAZhC,MAaToB,IAAQxiB,YAAYgf,qBAAuBsC,GAblC,MAcTkB,IAAQxiB,YAAYkf,sBAAwBqC,GAdnC,MAeTiB,IAAQxiB,YACJmf,iCAAmCG,GAhB9B,GAmBd,OAAQiD,EAASxqB,EAAOE,MAAgBsqB,EAASxqB,EAAOE,QAAxBqqB,KAG7B,IAAMG,EAAuB,SAAAlpB,GAAK,OAAIA,EAAMC,MAAMoL,UAAUA,Y,+dC3HtD9H,EAAkB,CAC3B4lB,YAAa,CACT3lB,IAAK,kBACL4lB,QAAS,cACTxd,OAAQ,KAEZyd,YAAa,CACT7lB,IAAK,kBACL4lB,QAAS,qBACTxd,OAAQ,MAIH0d,EAA4B,CACrCC,eAAgB,CACZ/lB,IAAK,yBACL4lB,QAAS,QACTxd,OAAQ,KAEZ4d,eAAgB,CACZhmB,IAAK,yBACL4lB,QAAS,KACTxd,OAAQ,KAEZ6d,aAAc,CACVjmB,IAAK,+BACL4lB,QAAS,SACTxd,OAAQ,MAKHzI,EAA+B,oBAC/BumB,EAAsB,kBACtBC,EAAgB,gBAKhBC,EAAqB,qBACrBC,EAA0B,kCAE1BC,EAAmB,mBAMnBC,EAAU,SAEVC,EAAoB,CAC7BC,UAAW,EACXC,YAAa,EACbC,WAAY,EACZC,UAAW,GAMFC,GAAmB,WAC3BlnB,EAA+B6mB,EAAkBC,WADtB,MAE3BP,EAAsBM,EAAkBC,WAFb,MAdZ,OAiBRD,EAAkBC,WAHE,MA7BS,4BAkCRD,EAAkBG,YALnB,MAM3B5mB,EAAgB4lB,YAAY3lB,IAAMwmB,EAAkBG,YANzB,MAO3B5mB,EAAgB8lB,YAAY7lB,IAAMwmB,EAAkBG,YAPzB,MAQ3BR,EAAgBK,EAAkBG,YARP,MAzBF,iBAkCRH,EAAkBG,YATR,MAxBF,iBAkCRH,EAAkBG,YAVR,MAvBE,qBAkCRH,EAAkBG,YAXZ,MAY3Bb,EAA0BE,eAAehmB,IACtCwmB,EAAkBG,YAbM,MAc3Bb,EAA0BC,eAAe/lB,IACtCwmB,EAAkBG,YAfM,MAgB3Bb,EAA0BG,aAAajmB,IAAMwmB,EAAkBG,YAhBpC,MAtBE,qBAuCRH,EAAkBG,YAjBZ,MAkB3BP,EAAqBI,EAAkBG,YAlBZ,MAmB3BN,EAA0BG,EAAkBG,YAnBjB,MAnBf,IAuCRH,EAAkBG,YApBK,MAqB3BL,EAAmBE,EAAkBG,YArBV,MAjBJ,eAuCRH,EAAkBG,YAtBN,MAhBI,uBAuCRH,EAAkBG,YAvBd,MAfE,qBAuCRH,EAAkBG,YAxBZ,MAbD,kBAsCRH,EAAkBG,YAzBT,MA0B3BJ,EAAUC,EAAkBG,YA1BD,GA6BnBG,EAA0BN,EAAkBG,Y,wCChGzD,wFAEajD,EAAY,SAAAtd,GAAO,MAAK,CACjClL,KAAM+H,IAAYye,WAClBtb,YAGSzI,EAAa,iBAAO,CAC7BzC,KAAM+H,IAAY8jB,e,wCCRtB,6DAKMC,GALN,cAKoB,SAAC,GAOf,IANFrsB,EAME,EANFA,SACAN,EAKE,EALFA,UACAwY,EAIE,EAJFA,cACAvB,EAGE,EAHFA,mBACAzW,EAEE,EAFFA,MACAosB,EACE,EADFA,UAEMC,EAAgB3pB,uBAClB,SAAA0B,GACsB,KAAdA,EAAE6R,UACF7R,EAAEgS,iBACFK,EAAmBrS,MAG3B,CAACqS,IAUL,OAPAoM,qBAAU,WAEN,OADAjgB,OAAO8T,iBAAiB,UAAW2V,GAC5B,WACHzpB,OAAOiU,oBAAoB,UAAWwV,MAE3C,CAACA,IAGA,kBAAC,IAAD,CAAcC,gBAAgB,EAAMC,cAAY,GAC5C,yBACI/sB,UAAS,4DAAuDA,GAChEQ,MAAOA,GACP,yBACIR,UAAS,2BAAsBwY,GAC/BhY,MAAOosB,GACNtsB,OAOrBqsB,EAAYvW,UAAZ,GAQAuW,EAAYtW,aAAe,CACvBrW,UAAW,GACXwY,cAAe,GACfhY,MAAO,GACPosB,UAAW,IAGAD,O,wOC/CTK,E,0FAKgBC,GACd,GAAIA,IAAmBd,IAAkBC,UACrC,OAAO,EAEX,IAAIc,EAAgBC,UAChBC,UAAW/nB,WAAWwmB,MAE1B,OAAsB,OAAlBqB,GAAmD,IAAzBA,EAAcnf,QAItB,IAAIsf,OAAJ,WAAeJ,EAAf,OACCK,KAAKJ,K,6CAI5B,OAAO/V,KAAKoW,kBAAkBpB,IAAkBE,e,4CAIhD,OAAOlV,KAAKoW,kBAAkBpB,IAAkBG,c,2CAIhD,OAAOnV,KAAKoW,kBAAkBpB,IAAkBI,a,0BAGhDiB,EAAaC,EAAYC,GAAW,UAC9BC,EAAS,CAAC,GAAD,OACRxB,IAAkBC,UADV,sBAERD,IAAkBE,YAFV,aAEyBmB,EAAc,IAAM,KAF7C,gBAGRrB,IAAkBG,WAHV,aAGwBmB,EAAa,IAAM,KAH3C,gBAIRtB,IAAkBI,UAJV,aAIuBmB,EAAY,IAAM,MAWxD,OARAN,UAAWQ,aACP/B,IACA8B,EAAOE,KAAK,KACZC,MACKpL,IAAI,EAAG,SACPqL,SACL,KAEG5W,S,KAIA,QAAI6V,G,wCCjEnB,0HAEMgB,EAAY,SAAAC,GACd,OACIhpB,KACAA,IAASsgB,iBACTtgB,IAASsgB,gBAAgB0I,IAIpBC,EAAuB,SAAAC,GAAgB,YAC3BxsB,IAArBwsB,GAAqE,OAAnCA,EAAiBC,eAE1CC,EAA6B,SAAArrB,GAAmB,MAOzD,OANAA,GAAiC,QAAf,EAAAA,SAAA,eAAiBorB,gBAAiB,KAChC,CAChBE,GAAI,KACJC,GAAIP,EAAU,2BAA6B,KAC3CQ,GAAIR,EAAU,2BAA6B,MAE5BhrB,IAAoB,MAG9ByrB,EAA6B,SAAAC,GAAgB,MAOtD,OANAA,GAA2B,QAAZ,EAAAA,SAAA,eAAcN,gBAAiB,KAC3B,CACfO,GAAI,KACJC,GAAIZ,EAAU,2BAA6B,KAC3CQ,GAAIR,EAAU,2BAA6B,MAE7BU,IAAiB,O,wxBCzBvC,IAAMtE,EAAe,WAAM,MACnByE,EAAiB,GAOrB,OANA,UAAYpD,MAAZ,QAA+C,SAAA5M,GAC3C,IAAIiQ,EAAM1pB,UAAWC,WAAWomB,IAA0B5M,GAAOlZ,KACjEkpB,EAAehQ,GAASiQ,GAElBrD,IAA0B5M,GAA1B,WAEHgQ,GAGI,eAAoC,IAAnC1sB,EAAmC,uDAA3BioB,IAAgBzpB,EAAW,uCACzCouB,EAAM,WACR,IAAI7D,EAAMO,IAA0B9qB,EAAOoL,QAAQuF,MAC7CiX,EAAU2C,EAAInd,OACpB,IACI3I,UAAWwoB,aAAa1C,EAAIvlB,IAAKhF,EAAOoL,QAAQ8S,MAAO0J,GACzD,MAAO3jB,GACLsH,YAAOtH,GAEX,OAAIzC,EAAMxB,EAAOoL,QAAQuF,QAAU3Q,EAAOoL,QAAQ8S,MACvC1c,EAEX,OACOA,GADP,UAEKxB,EAAOoL,QAAQuF,KAAO3Q,EAAOoL,QAAQ8S,SAIxCqM,EAAM,kBAAM/oB,GAEZgpB,EAAW,OACZviB,IAAYomB,IAAMD,GAEvB,OAAQ5D,EAASxqB,EAAOE,MAAgBsqB,EAASxqB,EAAOE,QAAxBqqB,KAG7B,IAAM+D,EAAqB,SAAA9sB,GAAK,OAAIA,EAAMC,MAAMoL,UAAU0hB,U,wCClClDC,IARI,CACfzoB,OAAQ,SACR0oB,MAAO,QACPC,UAAW,YACXlI,MAAO,QACPmI,YAAa,gB,2oCCUjB,IAAMC,EAAa,CACfxhB,OAAQ,GACR9N,OAAQ,GACR6V,MAAO,GACP0Z,OAAQ,KAKNC,EAA0BC,YAAY,CACxCpe,KAAM,qBACNyM,aAAc,CACV4R,IAAK,EAAF,GAAOJ,GACVK,gBANe,KAOfL,aACAM,WAAY,KACZC,2BAA2B,EAC3BC,kBAAmB,CACf,CACIC,aAAc,kBACdC,gBAAiB,GACjBC,sBAAuB,IAE3B,CACIF,aAAc,iBACdC,gBAAiB,GACjBC,sBAAuB,IAE3B,CACIF,aAAc,gBACdC,gBAAiB,GACjBC,sBAAuB,IAE3B,CACIF,aAAc,MACdC,gBAAiB,GACjBC,sBAAuB,IAE3B,CACIF,aAAc,WACdC,gBAAiB,GACjBC,sBAAuB,KAG/BC,sCAAuC,GACvCC,UAAU,GAEdjF,SAAU,CACNkF,mBAAoB,SAACluB,EAAOxB,GACxBwB,EAAMytB,gBAAkBjvB,EAAOoL,QAAQ6jB,iBAE3CU,sBAAuB,SAAAnuB,GACnBA,EAAMwtB,IAAN,KAAiBJ,IAErBgB,aAAc,SAACpuB,EAAOxB,GAAW,MACCA,EAAOoL,QAA7BykB,EADqB,EACrBA,WAAY3R,EADS,EACTA,MACpB1c,EAAMwtB,IAAIa,GAAc3R,GAE5B4R,gBAAiB,SAACtuB,EAAOxB,GACrB,IAkBMke,EAlBM,CACR6R,EAAG,GACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,KACJC,GAAI,KACJC,GAAI,IACJC,GAAI,MAGU7wB,EAAOoL,QAAQ8S,OACjC1c,EAAM0tB,WAAahR,EAAQ,KAAS,EAAI,KAAO,IAC/C1c,EAAMwtB,IAAIH,OAAS3Q,GAEvB4S,cAAe,SAACtvB,EAAOxB,GACnBwB,EAAM0tB,WAAalvB,EAAOoL,QAAQ8jB,YAEtC6B,8BAA+B,SAAAvvB,GAC3BA,EAAM2tB,2BAA4B,GAEtC6B,aAAc,SAAAxvB,GACVA,EAAMyvB,WAAY,GAEtBC,oBAAqB,SAAC1vB,EAAOxB,GAAW,QAC5BmxB,EAA4CnxB,EAAOoL,QAAnD+lB,wCAEFC,EAAuB,MAAA5vB,EAAM4tB,mBAAN,QACzB,gBAAGC,EAAH,EAAGA,aAAH,2CAEIA,eACAE,sBAAuB,IAAA4B,GAAuC,KAAvCA,GACnB,gBAAGE,EAAH,EAAGA,iBAAkBC,EAArB,EAAqBA,kBAArB,OACID,IAAqBhC,GACC,OAAtBiC,KAERhC,gBAAiB,IAAA6B,GAAuC,KAAvCA,GACb,gBAAGE,EAAH,EAAGA,iBAAkBC,EAArB,EAAqBA,kBAArB,OACID,IAAqBhC,GACC,OAAtBiC,UAKV9B,EAAwC,UAAA2B,GAAuC,KAAvCA,GACrC,SAAAI,GAAO,gBACRC,QAAS,MAAAhwB,EAAM4tB,mBAAN,QACL,qBAAGC,eACkBkC,EAAQF,oBAC/BG,SACCD,OANmC,QAStC,SAACE,EAAUF,GAAX,oBACOE,GADP,UAEKF,EAAQD,kBAAoBG,EACzBF,EAAQD,mBADiB,OAGtBC,IAHsB,WAGVE,EAASF,EAAQD,qBAC9B,CAACC,OAEX,IAGR/vB,EAAMyvB,WAAY,EAClBzvB,EAAM4tB,kBAAoBgC,EAC1B5vB,EAAMguB,sCAAwCA,EAC9ChuB,EAAM2tB,2BAA4B,MAKjCuC,EAAmB,kBAAM,SAAA/wB,GAClCA,EAASgvB,KACThvB,EAASgxB,KACThxB,EAAS+uB,EAAmB,CAAET,gBAtIX,UAyIV0C,EAAwB,iDAAM,WAAOhxB,EAAUyJ,GAAjB,yBAAAC,EAAA,2DACGunB,YAAUxnB,KAA5CgD,EAD+B,EAC/BA,OAAQ9N,EADuB,EACvBA,OAAQ6V,EADe,EACfA,MAAO0Z,EADQ,EACRA,QAE3BM,YAA0B/kB,KAHS,oDAOlCynB,YAAiBznB,KAPiB,uBAQnCzJ,EACIuwB,EAAoB,CAChBC,wCAAyC,MAVd,iCAevCxwB,EAASowB,KAf8B,mBAkBZzd,cAClBC,IAAI3H,IAAUkmB,kCADI,GAEfjjB,OAAQ,CACJkjB,oBAA8B,GAAT3kB,EACrB4kB,oBAA8B,GAAT1yB,EACrB2yB,mBAA4B,GAAR9c,EACpB+c,cAAerD,IAEhB1a,IAAaC,gBAEnBrQ,KAAK2P,eAVa,MAWZC,eA7BwB,QAkB7BzP,EAlB6B,OA+BnCvD,EACIuwB,EAAoB,CAChBC,wCACIjtB,EAASF,KAAKmtB,2CAlCS,kDAsCnCxwB,EACIuwB,EAAoB,CAChBC,wCAAyC,MAGjDxwB,EAASqwB,MA3C0B,0DAAN,yD,EAwDjClC,EAAwBrE,QARxBmF,E,EAAAA,aACAkB,E,EAAAA,cACAC,E,EAAAA,8BACAG,E,EAAAA,oBACAvB,E,EAAAA,sBACAD,E,EAAAA,mBACAI,G,EAAAA,gBACAkB,G,EAAAA,aAEWlC,MAAf,S,wCCxNA,kCAAO,IAAMqD,EAAwB,CACjCC,OAAQ,SACRC,QAAS,Y,2JCGE,aAAC7wB,EAAOxB,GAGnB,OAFAwB,EAAQA,GAHO,KAKPxB,EAAOE,MACX,IAAK,gBAEGsB,EADAxB,EAAOoL,QACCknB,IAAWC,wBAAwBvyB,EAAOoL,SAE1C,KAEZ,MACJ,IAAK,0BACD,GAAI5J,EAAO,CACPA,EAAQ8wB,IAAWC,wBAAwB/wB,GAC3C,IAAI2W,EAAQ,IAAA6D,GAAC,KAADA,EACRxa,GACA,SAAAgxB,GAAQ,OACJA,EAASC,YAAczyB,EAAOwyB,SAASC,cAE/C,GAAIta,GAAS,EAAG,CACZ,IAAMxB,EAAS3W,EAAOwyB,SAAS7b,OACzBuB,EAAQvB,EAAOvJ,OAAS,EAAIuJ,EAAO,GAAK,GAC9CnV,EAAM2W,GAAOsa,WAAazyB,EAAOwyB,SAASC,WAC1CjxB,EAAM2W,GAAOxH,KAAO3Q,EAAOwyB,SAASE,aACpClxB,EAAM2W,GAAOwa,iBACT3yB,EAAOwyB,SAASG,iBACpBnxB,EAAM2W,GAAOya,SAAW1a,EAAM0a,SAC9BpxB,EAAM2W,GAAO0a,qBACT3a,EAAM4a,YAAc5a,EAAM4a,WAAWC,kBAKzD,OAAOvxB,K,sICbLwxB,EAAsB,SAAA5nB,GAAO,MAAK,CACpClL,KAAM+H,IAAYgrB,sBAClB7nB,YAGE8nB,EAAsB,SAAA9nB,GAAO,MAAK,CACpClL,KAAM+H,IAAYkrB,sBAClB/nB,YAGEgoB,EAA0B,SAAAhoB,GAAO,MAAK,CACxClL,KAAM+H,IAAYorB,2BAClBjoB,YAGW,KACXkoB,kBApCsB,kBAAM,SAAC3yB,EAAUyJ,GAIvC,OAHAzJ,EAASqyB,MACY5oB,IAAb9F,SAEwBslB,QCNhC5K,IAAezL,IAAI,aAAc,CAAEggB,cAAe,qBDO7CxvB,MAAK,SAAAyvB,GAAO,OAAI7yB,EAASuyB,EAAoBM,EAAQxvB,UADnD,OAEI,SAAA9F,GACH,OAAQA,EAAM+U,SACV,KAAK4M,IAAW4T,iBACZC,aAAO,GACP,MACJ,KAAK7T,IAAWoD,UACZ,MACJ,QACItiB,EAASyyB,EAAwBl1B,Y,wCEnBrD,sDAMaw1B,EAAS,eAACC,EAAD,+DAAmBjxB,SAASgxB,OAAOC,IAM1C,KACXD,SACAE,gBAN2B,SAAAtoB,GAAI,OAC9B7I,OAAOC,SAASlD,KAAOe,YAAekC,OAAOC,SAASlD,KAAM8L,M,wcCYpDuoB,EAAuB,SAAAxxB,GAAe,OAAI,SAAA1B,GACnD,IAAMmzB,EAAa,IAAIvnB,MAAK,IAAIA,MAAOC,UAHhB,SAIvB/H,UAAWwoB,aAAa3B,IAAkBjpB,EAAiByxB,GAE3DnzB,EAASozB,YAAmB,CAAE1xB,uBAGrB2xB,EAAuC,SAAAC,GAAW,OAAI,SAAAtzB,GAEnC,OAAxBszB,EAAYC,SACZzvB,UAAW0vB,UAAU7I,OAErB7mB,UAAW2vB,YAAY9I,KACvB3qB,EAAS0zB,kBAIJC,EAAgC,iDAAM,WAC/C3zB,EACAyJ,GAF+C,iBAAAC,EAAA,0DAK3CkqB,YAA0CnqB,OAC1CoqB,YAA0CpqB,KANC,wDAW/CzJ,EAAS8zB,eAXsC,SChC/C9R,IACKpP,IAAI3H,IAAU8oB,8BACd3wB,KAAK2P,eACL3P,MAAK,kBAAGC,EAAH,EAAGA,KAAH,MAAe,CACjB2wB,kBAAmB,MAAA3wB,EAAK4wB,oBAAL,QACf,SAAAC,GAAO,OAAIA,EAAQxyB,uBAL/B,MAQWsR,eDwBoC,gBAYvCghB,EAZuC,EAYvCA,kBACRh0B,EAASm0B,YAA8B,CAAEH,uBAErClwB,UAAW0vB,UAAU7I,MACrB3qB,EACIozB,YAAmB,CACf1xB,gBAAiBoC,UAAWC,WAAW4mB,QAlBJ,2CAAN,yDAwBhCyJ,EAAuC,SAAC,GAAD,IAChD1yB,EADgD,EAChDA,gBACA2yB,EAFgD,EAEhDA,aACAz0B,EAHgD,EAGhDA,eAHgD,OAI9C,SAAAI,GACF,IAAM6sB,EAAmBE,YAA2BrrB,GAEpDuQ,IAAUC,WAAW,CACjBC,SAAU,iBACV9S,OAAQ,4BACR+S,MAAO,6BAAF,OAA+B1Q,KAGxC1B,EAAS2zB,KACT3zB,EAASkzB,EAAqBxxB,IAC9B1B,EAASs0B,YAAqBD,IAC9Br0B,EAASu0B,YAAqB1H,EAAkBjtB,O,iTE3E9CkX,EAAc,CAChB0d,GAAI,KACJ1a,GAAI,KACJ/C,GAAI,KACJ0d,GAAI,KACJC,GAAI,MAMF7d,EAAmB,GACzB,gBAAW,IAAe8d,OAA1B,QACS,WAAend,EAAOod,GAAY,eAAhC5kB,EAAgC,KAA1B6kB,EAA0B,KAOnC,MAAO,CACH7d,IAPQ,IAAS6d,EAAM,IAQvB9a,IALAvC,EAAQ,KAAKod,EACP,IAASA,EAAQpd,EAAQ,GAAG,GAAI,IAAM,EACtC,MAINxH,YAXZ,QAca,SAAA4G,GACLC,EAAiBD,EAAW5G,MAAQ4G,M,8SCbtCke,EAAY,SAAC,GAQb,IAPF90B,EAOE,EAPFA,SACAwG,EAME,EANFA,QACAvB,EAKE,EALFA,KACA8b,EAIE,EAJFA,WACAtb,EAGE,EAHFA,KACAgB,EAEE,EAFFA,YACAC,EACE,EADFA,QAEQ9G,EAAmBC,cAAnBD,eACAE,EAAMC,cAAND,EAER,GAAa,SAATmF,EACA,OAAO,KALT,IAQM8vB,EAA0DtvB,EAA1DsvB,aAAc/C,EAA4CvsB,EAA5CusB,iBAAkBtP,EAA0Bjd,EAA1Bid,IAAKsS,EAAqBvvB,EAArBuvB,iBAEvCC,EAAqB,WACvBj1B,EAASshB,IAAU4T,mBA8BjBC,EAAkBzS,EAAM,yBAExB0S,EAAc,IAAA5uB,GAAO,KAAPA,EAAgBC,KAAiBD,EAAQiG,OAAS,EAChE4oB,EAAc,IAAA7uB,GAAO,KAAPA,EAAgBC,GAAe,EAEnD,OACI,kBAAC,IAAD,CACI/H,UAAU,oCACV42B,WAAY,CAAE1b,SAAU,MACxBzX,UAAW8yB,GACX,yBACIv2B,UAAU,YACV62B,UAAW,SAAAjyB,GAhCK,IAClBkyB,EAUAC,EAsBwB,KAAdnyB,EAAE6R,SAAmBigB,EAEA,KAAd9xB,EAAE6R,SAAmBkgB,IAlCtCG,EAAWhvB,EAAQ,IAAAA,GAAO,KAAPA,EAAgBC,GAAe,GACxDzG,EACIshB,IAAUD,cAAc,CACpBlgB,OAAQq0B,EACRjU,WAAY,kBAMdkU,EAAWjvB,EAAQ,IAAAA,GAAO,KAAPA,EAAgBC,GAAe,GACxDzG,EACIshB,IAAUD,cAAc,CACpBlgB,OAAQs0B,EACRlU,WAAY,mBAwBZ,yBACI7iB,UAAU,oBACVQ,MAAO,CAAEw2B,IAAK,OAAQC,MAAO,OAAQC,OAAQ,IAC7C,4BACIl3B,UAAU,gCACVc,QAAS,kBAAMy1B,MACf,kBAAC,IAAD,CAAWv2B,UAAU,mBAG7B,yBAAKA,UAAU,OACTq2B,EAKE,kBAAC,IAAD,CACI/e,OAAQ+e,EACRc,SAAU,aACVpb,aAAa,EACbD,cAAe,CACXhG,MAAO,UATf,yBAAK9V,UAAU,qBACX,kBAAC,IAAD,QAaZ,yBAAKA,UAAU,YACX,yBAAKA,UAAU,sBACX,wBAAIA,UAAU,aAAaszB,KAGnC,yBAAKtzB,UAAU,YACX,yBAAKA,UAAU,gDACX,4BACIA,UAAS,mBACLs2B,EACM,cACA,oBAEVx1B,QAAS,kBAnFxBuhB,GACDkU,SAEJj1B,EAASmhB,IAAYM,SAAShc,EAAKtE,WAiFd6zB,EACG,kBAAC,IAAD,CAAet2B,UAAU,0BAEzB,kBAAC,IAAD,CAAWA,UAAU,cAGnBoB,EADLk1B,EACO,+BACA,gCAEZ,uBACIn2B,KAAMe,EAAeu1B,GACrBz2B,UAAU,uBACVc,QAAS,WACLs2B,IAAWC,YACP,aACA,aACA,uBAGPj2B,EAAE,oCAKlB4G,GACG,yBACIhI,UAAU,oBACVQ,MAAO,CACHw2B,IAAK,EACLM,OAAQ,EACRC,KAAM,EACNN,MAAO,IAEX,kBAAC,IAAD,SAOpBb,EAAUhgB,UAAV,GAkBegM,iBATS,SAAAjgB,GAAK,MAAK,CAC9B2F,QAAS3F,EAAMq1B,GAAG5vB,UAAUE,QAC5BvB,KAAMpE,EAAMq1B,GAAG5vB,UAAUrB,KACzB8b,WAAYlgB,EAAMmgB,OAAOD,WACzBtb,KAAM5E,EAAM0F,MAAMhC,MAAM1D,EAAMq1B,GAAG5vB,UAAUG,cAAgB,KAC3DA,YAAa5F,EAAMq1B,GAAG5vB,UAAUG,YAChCC,QAAS7F,EAAMq1B,GAAG5vB,UAAUI,WAGjBoa,CAAyBgU,I,gICtL3BpR,EAA+B,SAAAJ,GAAS,aACjD,UAAI,IAAI3F,MAAM2F,KAAd,QAA8B,SAACjI,EAAG7D,GAAJ,MAAe,CACzCrW,OAAQqW,EACRwa,iBAAkB,S,yCCH1B,8BAEImE,EAA4B,CAC5BC,aAAc,GACdC,eAAgB,KAChBC,wBAAyB,KACzBC,UAAW,MAGX9Z,EAAepB,EAAE0B,OAAO,GAAIoZ,EAA2B,CACvDK,qBAAqB,EACrBC,oBAAoB,EACpBC,eAAe,EACfC,UAAW,KACXjwB,SAAS,EACTyF,WAAW,EACXyqB,mBAAmB,EACnBC,kBAAkB,EAClBra,gBAAiB,KACjBsa,0BAA2B,KAC3BC,YAAY,EACZC,qBAAsB,KACtBC,qBAAsB,KACtBC,sBAAuB,KACvBtY,UAAU,IAGd,SAASuY,EAAY3J,GACjB,OAAOA,GAAY,KAGvB,SAAS4J,EAA0Bf,GAG/B,OAAuB,IAAnBA,EACO,KAEJc,EAAYd,GAGvB,SAAS7a,EAAS3a,GACVA,EAAM21B,oBACN31B,EAAM2b,iBAAkB3b,EAAM+1B,mBAAoB,KAElD/1B,EAAM2b,gBAAkB,KAIjB,eAAkC,IAAjC3b,EAAiC,uDAAzB4b,EAAcpd,EAAW,uCAC7C,OAAQA,EAAOE,MACX,IAAK,iCACDsB,EAAQwa,EAAE0B,OACN,GACAlc,EACAwa,EAAE0B,OAAO,GAAIoZ,EAA2B,CACpCC,aAAc/2B,EAAO+2B,aACrBC,eAAgBe,EACZ/3B,EAAOg3B,gBAEXC,wBAAyBa,EACrB93B,EAAOi3B,yBAEXM,oBACMv3B,EAAOg3B,iBAAmBh3B,EAAO+2B,aACvCI,sBAAuBn3B,EAAO+2B,aAC9BW,WAAY13B,EAAO03B,WACnBnY,SAAUvf,EAAOuf,YAGzB,MAGJ,IAAK,+BACD/d,EAAQwa,EAAE0B,OACN,GACAlc,EACAwa,EAAE0B,OAAO,GAAIoZ,EAA2B,CACpCC,aAAc/2B,EAAO+2B,aAErBC,eAAgB,KAChBC,wBAAyB,KACzBM,mBAAoBv3B,EAAO+2B,aAC3BY,qBAAsB,KACtBC,qBAAsB,KACtBC,sBAAuB,QAG/B,MAGJ,IAAK,iCACGr2B,EAAMu1B,eAAiB/2B,EAAO+2B,eAC9Bv1B,EAAQwa,EAAE0B,OACN,GACAlc,EACAwa,EAAE0B,OAAO,GAAIoZ,EAA2B,CACpCC,aAAc/2B,EAAO+2B,aACrBC,eAAgBe,EACZ/3B,EAAOg3B,gBAEXC,wBAAyBa,EACrB93B,EAAOi3B,yBAEXM,kBAAmBv3B,EAAOu3B,kBAC1BL,UAAWY,EAAY93B,EAAOk3B,WAC9BS,qBAAsB33B,EAAO23B,qBAC7BC,qBAAsB53B,EAAO43B,qBAC7BC,sBAAuB73B,EAAO63B,sBAC9BtY,SAAUvf,EAAOuf,SACjBzS,WAAW,EACX0qB,kBAAkB,MAI9B,MAGJ,IAAK,oBACDh2B,EAAQwa,EAAE0B,OAAO,GAAIlc,EAAO,CACxB01B,UAAW9Z,EAAa8Z,YAE5B,MAGJ,IAAK,wBACD11B,EAAQwa,EAAE0B,OAAO,GAAIlc,EAAO,CACxBm2B,qBAAsBva,EAAaua,qBACnCC,qBAAsB53B,EAAO43B,qBAC7BC,sBAAuB73B,EAAO63B,wBAElC,MAGJ,IAAK,gCAEGr2B,EADAxB,EAAOg4B,UACChc,EAAE0B,OAAO,GAAIlc,EAAO,CACxB21B,qBAAqB,EACrBrqB,WAAW,EACX0qB,kBAAkB,IAGdxb,EAAE0B,OAAO,GAAIlc,EAAO,CACxB21B,qBAAqB,EACrBJ,aAAc3Z,EAAa2Z,aAC3BC,eAAgB5Z,EAAa4Z,eAC7BC,wBAAyB,KACzBnqB,WAAW,EACX0qB,kBAAkB,EAClBjY,UAAU,IAGlB,MAGJ,IAAK,wCACD/d,EAAQwa,EAAE0B,OAAO,GAAIlc,EAAO,CACxBsL,WAAW,IAEf,MAGJ,IAAK,yCACDtL,EAAQwa,EAAE0B,OAAO,GAAIlc,EAAO,CACxBg2B,kBAAkB,IAM9B,OADArb,EAAS3a,GACFA,K,+QCnDIy2B,IAjHS,SAAC,GAInB,IAUqD,EAbvD/1B,EAGE,EAHFA,iBACAH,EAEE,EAFFA,gBACAzB,EACE,EADFA,kBAEQG,EAAMC,cAAND,EACAW,EAAaC,cAAbD,SAGF82B,EAA6B,SAAAC,GAAM,OACrCA,EAAOC,QAAQ,eAAgB,IAAIA,QAAQ,gBAAiB,KAE1DC,EAAsC,OAArBn2B,EACnBo2B,EAAiBv2B,OACIf,IAArBkB,GAAmCm2B,IACnCC,EAAiB,qBACV,IAAAA,GAAc,KAAdA,GACC,SAAAH,GAAM,OAAIA,EAAO7G,oBAAsBpvB,MAFjC,IAIP,IAAAo2B,GAAc,KAAdA,GAAsB,SAAAH,GAAM,OAAIA,EAAOxmB,iBAIlD,OACI,kBAAC,WAAD,KACI,yBAAKtS,UAAU,8BACX,yBAAKA,UAAU,iBACX,yBAAKA,UAAU,oBACX,0BAAMA,UAAU,kBACXoB,EAAE,gCADP,MAIJ,yBAAKpB,UAAU,sBACV,IAAAi5B,GAAc,KAAdA,GAAmB,SAACC,EAAMpgB,GACvB,IAAMtR,EAAcqxB,EAChBK,EAAKC,aAET,OACI,yBACIxzB,IAAK6B,EAAc0xB,EAAK3mB,KACxBvS,UAAS,iBACL8Y,IAAUmgB,EAAelrB,OAAS,EAC5B,GACA,UAERirB,GACE,kBAAC,IAAD,CACIh5B,UAAU,iCACVgD,gBACIk2B,EAAKjH,oBAIjB,yBAAKjyB,UAAU,oBACVwH,GAEL,yBAAKxH,UAAU,yBACV4C,YACGs2B,EAAK3mB,KACLxQ,EACAd,WAShC,yBAAKjB,UAAU,8BACX,yBAAKA,UAAU,UACX,0BAAMA,UAAU,sBACXoB,EAAE,gCADP,OAKP,IAAA63B,GAAc,KAAdA,GAAmB,SAACC,EAAMpgB,GACvB,IAAMtR,EAAcqxB,EAChBK,EAAKC,aAET,OACI,yBACIxzB,IAAK6B,EAAc0xB,EAAK3mB,KACxBvS,UAAS,wBACL8Y,IAAUmgB,EAAelrB,OAAS,EAC5B,OACA,SAEV,yBAAK/N,UAAU,yCACX,yBAAKA,UAAU,0CACTg5B,GACE,kBAAC,IAAD,CACIh5B,UAAU,iCACVgD,gBAAiBk2B,EAAKjH,oBAG9B,8BAAOzqB,IAEX,6BACK5E,YACGs2B,EAAK3mB,KACLxQ,EACAd,Y,yrCCxGpC,IAAMm4B,GAAqB,CACvBC,cAAe,2B,6DCAbC,GAAiB,SAAC,GAKlB,IAJFC,EAIE,EAJFA,qBACAC,EAGE,EAHFA,cACAC,EAEE,EAFFA,mBACAC,EACE,EADFA,eAEA,IAAKF,EACD,OAAO,KAGX,IAAMG,EAA2C,IAAvBF,EAE1B,OACI,yBACIz5B,UAAS,0EACL25B,EACM,kDACA,KAEV,0BAAM35B,UAAU,aACZ,8BAAO05B,EAAepoB,MACtB,0BAAMtR,UAAU,0BACZ,kBAAC,KAAD,CAAcA,UAAU,gCAGhC,4BACI45B,aAAW,kBACXtoB,KAAK,aACLtR,UAAU,sCACV65B,wBAAA,EACAjb,SAAU2a,EACV1a,MAAO4a,GACN,KAAAD,GAAa,KAAbA,GAAkB,SAACV,EAAQhgB,GACxB,OACIggB,GACI,4BAAQnzB,IAAKmT,EAAO+F,MAAOia,EAAOgB,IAC7BhB,EAAOxnB,YAUxCgoB,GAAeljB,UAAf,GAOekjB,U,kCClDTS,GAAc,SAAC,GAaf,IAZFC,EAYE,EAZFA,kBACAC,EAWE,EAXFA,eACAC,EAUE,EAVFA,OACAC,EASE,EATFA,mBACAC,EAQE,EARFA,QACAC,EAOE,EAPFA,aACAC,EAME,EANFA,kBACAC,EAKE,EALFA,YACAC,EAIE,EAJFA,eACAC,EAGE,EAHFA,WACAC,EAEE,EAFFA,iBACAC,EACE,EADFA,mBAEQz5B,EAAmBC,cAAnBD,eACAE,EAAMC,cAAND,EAEFw5B,EACFF,GAA4C,IAAxBA,EAAiBZ,IAAYY,EAAiBppB,KAC5DlQ,EAAE,uCAAwC,CACtCy5B,aAAcH,EAAiBppB,OAEnClQ,EAAE,uCAEN05B,EAAiC,KAAfL,EAExB,OACI,0BACI95B,OAAQO,EAAe,WACvBsK,OAAO,MACP2T,aAAa,MACb4b,SAAUV,EACVr6B,UAAU,0CACVg7B,mBAAA,GACA,yBAAKh7B,UAAU,gCACVg6B,GAEL,yBAAKh6B,UAAU,OACX,2BACI45B,aAAYgB,EACZ/5B,KAAK,OACLi5B,GAAE,mCAA8BG,GAChCj6B,UAAS,iDAA4Ci6B,GACrDgB,qBAAA,EACA3pB,KAAK,IACL4pB,YAAaN,EACbO,UAAU,KACVpV,KAAK,SACLqU,QAASA,EACTF,OAAQA,EACRxhB,IAAK8hB,EACL3b,MAAO4b,GAAc,GACrB7b,SAAU0b,EACVzD,UAAW0D,IAEf,8BAAUv6B,UAAU,6BACf86B,EACG,4BACIlB,aAAW,cACX/4B,KAAK,QACLu6B,qBAAA,EACAp7B,UAAU,+CACVc,QAASq5B,GACT,kBAAC,KAAD,CAAiBn6B,UAAU,+BAG/B,4BACI45B,aAAW,SACX/4B,KAAK,SACLw6B,sBAAA,EACAr7B,UAAU,0EACV,kBAAC,KAAD,CAAYA,UAAU,WAIjC26B,KAMjBZ,GAAY3jB,UAAZ,GAee2jB,U,sLCtEAuB,GA9BO,SAAC,GAA+B,MAA7B16B,EAA6B,EAA7BA,KAA6B,IAAvB26B,aAAuB,MAAf,GAAe,EAAXC,EAAW,EAAXA,KACvC,GAAK56B,EAGL,OAAK26B,EASD,0BAAMv7B,UAAU,oBACXw7B,GAAQA,EACR,OAAA56B,EAAK66B,MAAMF,IAAX,QAAyB,SAACG,EAAM7hB,EAAS9G,GACtC,OAAKA,EAGE,IAAA2oB,GAAI,KAAJA,EACH,0BAAM17B,UAAS,qBAAwB2F,IAAKoN,GACvCwoB,GAEL1hB,GANO,CAACA,KAQb,KAnBH,8BACK2hB,GAAQA,EACR56B,I,iBCIXgW,GAAiB,SAAA+kB,GACnBA,EAAI/kB,kBAIFglB,GAAgC,CAAEC,UAAW,QAEtCC,GAA2B,SAAC,GAQnC,MAPFC,EAOE,EAPFA,iBACA9Y,EAME,EANFA,MACA+Y,EAKE,EALFA,WACAC,EAIE,EAJFA,wBACAxB,EAGE,EAHFA,WACAhB,EAEE,EAFFA,mBACA74B,EACE,EADFA,KAEQM,EAAmBC,cAAnBD,eACFI,EAAWC,cACjB,OACI,yBACIvB,UAAS,uHACLg8B,EAAa,yCAA2C,KAE5D,kBAAC,KAAD,CACIlW,QAAS7C,EACT9iB,KAAMe,EAAe,0BACJg7B,mBAAmBt7B,GADhB,wBAEZ64B,GAA0C,IAGlDz5B,UAAS,uEACTc,QAAS,WACLQ,EAAS66B,aAAoBv7B,IAC7Bm7B,EAAiBn7B,IAErBw7B,YAAaxlB,GACbylB,mBAAA,EACAC,2BAA0B17B,EAC1B27B,mBAAiB,cACjBC,iBAAe,8BACfC,gBAAehC,GACf,kBAAC,GAAD,CACIz6B,UAAU,GACVu7B,MAAOd,EACP75B,KAAMA,EACN46B,KAAM,kBAAC,KAAD,CAAUx7B,UAAU,mCAGlC,4BACI45B,aAAW,uBACX55B,UAAU,yCACVo7B,qBAAA,EACAt6B,QAAS,WACLQ,EAASo7B,aAAuB97B,IAChCq7B,KAEJG,YAAaxlB,GACb/V,KAAK,SACL,kBAAC,KAAD,CAAiBb,UAAU,iCAM9B28B,GAA8B,SAAC,GAOtC,MANFZ,EAME,EANFA,iBACA9Y,EAKE,EALFA,MACA+Y,EAIE,EAJFA,WACAj1B,EAGE,EAHFA,KACA0zB,EAEE,EAFFA,WACAhB,EACE,EADFA,mBAEM3Z,EAAa/Y,EAAK0M,SAClB1M,EAAK0M,SAASqmB,GACdL,GAEA,EACEv4B,EAAmBC,cAAnBD,eACR,OACI,kBAAC,KAAD,CACI4kB,QAAS7C,EACT9iB,KAAMe,EAAe,0BACJg7B,mBACTn1B,EAAKnG,MAFO,wBAGAkf,IAEpB9f,UAAS,gFACLg8B,EAAa,yCAA2C,IAE5Dl7B,QAAS,kBAAMi7B,EAAiBh1B,EAAKnG,OACrCw7B,YAAaxlB,GACbylB,mBAAA,EACAO,yBAAwB71B,EAAKnG,KAC7B27B,mBAAiB,cACjBC,iBAAA,uBACIz1B,EAAK0M,SAAW,WAAa,cAEjCgpB,gBAAe11B,EAAKnG,MACpB,kBAAC,GAAD,CAAe26B,MAAOd,EAAY75B,KAAMmG,EAAKnG,OAC7C,+BAAKmG,EAAK0M,SAAL,eAAwB1M,EAAK0M,SAASnC,MAAS,MAKnDurB,GAA2B,SAAC,GAMnC,MALFd,EAKE,EALFA,iBAEAC,EAGE,EAHFA,WACAj1B,EAEE,EAFFA,KACA0zB,EACE,EADFA,WAEQr5B,EAAMC,cAAND,EACAF,EAAmBC,cAAnBD,eACF47B,EACY,iBAAd/1B,EAAKuK,KACCpQ,EAAe,yBACfA,EAAe,+BAAkB6F,EAAKjD,SAAxB,aAAoCiD,EAAKg2B,UACjE,OACI,kBAAC,KAAD,CACIjX,SAAS,EACT3lB,KAAM28B,EACN98B,UAAS,gFACLg8B,EAAa,yCAA2C,IAE5Dl7B,QAAS,kBAAMi7B,EAAiBh1B,EAAKnG,OACrCw7B,YAAaxlB,GACbylB,mBAAA,EACAW,uBAAsBj2B,EAAKuK,KAC3BirB,mBAAiB,cACjBC,iBAAe,oBACfC,gBAAe11B,EAAKuK,MACpB,wBAAItR,UAAU,4BAA4BoB,EAAE,oBAC5C,kBAAC,GAAD,CAAem6B,MAAOd,EAAY75B,KAAMmG,EAAKuK,SAK5C2rB,GAA8B,SAAC,GAMtC,IALFlB,EAKE,EALFA,iBAEAC,EAGE,EAHFA,WACAj1B,EAEE,EAFFA,KACA0zB,EACE,EADFA,WAEQr5B,EAAMC,cAAND,EAEF07B,GAAgB57B,EADKC,cAAnBD,gBAC6B,YAAc6F,EAAKm2B,YACxD,OACI,kBAAC,KAAD,CACIpX,SAAS,EACT3lB,KAAM28B,EACN98B,UAAS,gFACLg8B,EAAa,yCAA2C,IAE5Dl7B,QAAS,kBAAMi7B,EAAiBh1B,EAAKnG,OACrCw7B,YAAaxlB,GACbylB,mBAAA,EACAc,2BAA0Bp2B,EAAKq2B,SAC/Bb,mBAAiB,cACjBC,iBAAe,wBACfC,gBAAe11B,EAAKq2B,UACpB,wBAAIp9B,UAAU,4BACToB,EAAE,wBAEP,kBAAC,GAAD,CAAem6B,MAAOd,EAAY75B,KAAMmG,EAAKq2B,aAK5CC,GAAyB,SAAC,GAAmB,IAAjBrB,EAAiB,EAAjBA,WAC7B56B,EAAMC,cAAND,EACAF,EAAmBC,cAAnBD,eACR,OACI,uBACIf,KAAMe,EAAe,oBACrBm7B,mBAAA,EACAiB,wBAAA,EACAf,mBAAiB,cACjBC,iBAAe,yBACfx8B,UAAS,8HACLg8B,EAAa,yCAA2C,IAE5Dx7B,MAAOo7B,GACPQ,YAAaxlB,IACb,kBAAC,KAAD,CAAY5W,UAAU,2BACtB,0BAAMA,UAAU,QAAQoB,EAAE,gCAKzBm8B,GAAuB,SAAC,GAAmB,IAAjBvB,EAAiB,EAAjBA,WAC3B56B,EAAMC,cAAND,EACAF,EAAmBC,cAAnBD,eACR,OACI,uBACIf,KAAMe,EACF,4EAEJm7B,mBAAA,EACAmB,sBAAA,EACAjB,mBAAiB,cACjBC,iBAAe,yBACfx8B,UAAS,4HACLg8B,EAAa,yCAA2C,IAE5Dx7B,MAAOo7B,GACPQ,YAAaxlB,IACb,kBAAC,KAAD,CAAU5W,UAAU,2BACpB,0BAAMA,UAAU,QAAQoB,EAAE,8BCpNhCq8B,GAAmB,SAAC,GAAD,IACrBC,EADqB,EACrBA,YACAza,EAFqB,EAErBA,MACA0a,EAHqB,EAGrBA,QACAC,EAJqB,EAIrBA,mBACA3B,EALqB,EAKrBA,wBACAxB,EANqB,EAMrBA,WACAhB,EAPqB,EAOrBA,mBACAoE,EARqB,EAQrBA,cACAC,EATqB,EASrBA,4BATqB,OAWrB,6BACIC,qCAAA,EACA/9B,UAAS,0CACL29B,EAAU,UAAY,IAE1BjlB,IAAKolB,GACL,yBAAK99B,UAAU,cACV,KAAA09B,GAAW,KAAXA,GAAgB,SAACM,EAAOllB,GACrB,IAAMmlB,EAAiB,CACnBlC,iBAAkB6B,EAClB3a,MAAOA,EACP+Y,WAAYljB,IAAU+kB,EACtB92B,KAAMi3B,EAAMj3B,KACZpB,IAAKq4B,EAAMr4B,IACX80B,WAAYA,EACZhB,mBAAoBA,EACpB74B,KAAMo9B,EAAMp9B,MAEhB,OAAQo9B,EAAMn9B,MACV,IAAK,WACD,OACI,kBAAC,GAAD,MACI8E,IAAKq4B,EAAMr4B,IACXs2B,wBACIA,GAEAgC,IAGhB,IAAK,qBACD,OACI,kBAAC,GAAD,MACIt4B,IAAKq4B,EAAMr4B,KACPs4B,IAGhB,IAAK,iBACD,OACI,kBAAC,GAAD,MACIt4B,IAAKq4B,EAAMr4B,KACPs4B,IAGhB,IAAK,iBACD,OACI,kBAAC,GAAD,MACIt4B,IAAKq4B,EAAMr4B,KACPs4B,IAGhB,IAAK,uBACD,OACI,kBAAC,GAAD,MACIt4B,IAAKq4B,EAAMr4B,KACPs4B,IAGhB,IAAK,qBACD,OACI,kBAAC,GAAD,MACIt4B,IAAKq4B,EAAMr4B,KACPs4B,IAGhB,QACI,MAAM,IAAIpqB,MACN,yBACA,KAAemqB,WAQ3CP,GAAiBrnB,UAAjB,GAYeqnB,UCpFFS,GACF,GADEA,GAEJ,GAFIA,GAGL,GAHKA,GAIH,GAKGC,GAAS,SAAC,GASjB,IARFlb,EAQE,EARFA,MAQE,IAPFmb,qBAOE,MAPc,GAOd,MANFC,oBAME,MANa,GAMb,MALFpE,sBAKE,MALe,GAKf,MAJFqE,iCAIE,MAJ0B,EAI1B,MAHFC,0BAGE,MAHmB,GAGnB,EAFFC,EAEE,EAFFA,YACAC,EACE,EADFA,QAEMn9B,EAAWC,cACTH,EAAMC,cAAND,EACAF,EAAmBC,cAAnBD,eACF48B,EAA8BxnB,IAAM+C,YACpCmhB,EAAiBlkB,IAAM+C,YAL3B,EAOgD7X,mBAC9C88B,GARF,WAOKI,EAPL,KAOwBC,EAPxB,OAUsDn9B,oBAAS,GAV/D,WAUKo9B,EAVL,KAU2BC,EAV3B,OAWkCr9B,mBAAS+8B,GAAsB,IAXjE,WAWK9D,EAXL,KAWiBqE,EAXjB,OAYoCt9B,mBAAS,IAZ7C,WAYKk8B,EAZL,KAYkBqB,GAZlB,QAa4Dv9B,mBAC1D,MAdF,aAaKw9B,GAbL,MAa8BC,GAb9B,MAiBF5b,qBAAU,WACNsb,EAAqBL,KACtB,CAACA,IAEJjb,qBAAU,WACNyb,EAAcP,KACf,CAACA,IAEJ,IAAMW,GAA0BC,YAAQ,+BAAC,WAAO1E,EAAY2E,GAAnB,eAAAp0B,EAAA,sEACXq0B,GAAsB5E,GADX,QAC/BiD,EAD+B,SAGjC0B,EAAS1B,GAHwB,2CAAD,wDAKrC,KAMG2B,GAAqB,+BAAG,WAAM5E,GAAN,iBAAAzvB,EAAA,6DACpBs0B,EACF7E,EAAW1sB,QAjDkB,EA+CP,SAGAwxB,YAAe,CACrC9E,aACA+E,cAAeF,EAA+B,EAAI,EAClDG,gBAAgB,EAChBC,kBAAmBJ,IAPG,cAGpB5B,EAHoB,yBASnBA,GATmB,2CAAH,sDAsDrBiC,GAAqB,+BAAG,WAAMC,GAAN,eAAA50B,EAAA,yDAC1Bi0B,GAA2B,MAC3BH,EAAcc,GACdf,GAAwB,KAEpBe,EAAc7xB,QA1Ge,GAqGP,uBAMtBmxB,GAAwBU,GAAe,SAAAlC,GACnCqB,GAAerB,MAPG,0CAWA2B,GAAsBO,GAXtB,OAWpBlC,EAXoB,OAa1BqB,GAAerB,GAbW,4CAAH,sDAoCrBmC,GAAuB,SAAAC,GAAY,MCtJlBpsB,EDwJbqsB,EAAoB,IAAAD,GAAQ,KAARA,GACtBE,EN9JmB,SAC3BvF,EACA+D,EACAE,EACAN,GAGA,GAAI3D,EAAY,CAGZ,IAAMwF,EAAiB7G,GAAmBqB,EAAWrM,eACrD,GAAI6R,EACA,OAAOA,EALC,IAURC,EAKA1B,EALA0B,EAIGC,GACH3B,EAJA1e,WAIA0e,EAHA4B,OAGA5B,EAFA6B,MAbQ,IAeR7B,EAfQ,sCAkBN8B,EACF,IAAA7F,GAAU,KAAVA,EAAoByF,IAAOA,GAAK,IAAAA,GAAC,KAADA,EAAWzF,GAE/C,OACIluB,IAAUg0B,OACVC,IAAGC,UAAH,SAGYH,EAAuBH,EAAsB,IAHzD,IAIQD,EAAGzF,EACH3a,WAAY4e,QAEN/8B,IAEV,CACI++B,gBAAgB,IAMhC,GAAIhC,EAAoB,EAAG,CAEvB,IAAMiC,EAAkB,IAAAvC,GAAa,KAAbA,GACpB,SAAA3qB,GAAQ,OAAIA,EAASqmB,KAAO4E,KAGhC,OAAIiC,EACOA,EAAgBxgC,UAE3B,EAGJ,MAAO,cMoGgBygC,CACfb,EACAvB,EACAE,EAH8B,qBAI1BN,GAJ0B,IAIRC,KAItB0B,IACAc,YAAgBd,GClKDrsB,EDmKHqsB,EClKpBxsB,IAAUC,WAAW,CACjBC,SAAU,cACV9S,OAAQ,eACR+S,MAAOA,KDiKHuP,GACAuX,EAAe3gB,QAAQinB,OACvBrC,EAAQsC,KAAK7/B,EAAe8+B,KAE5B58B,OAAOC,SAASlD,KAAOe,EAAe8+B,GAE1CnB,GAAwB,IAnJ1B,GNuCmC,SACrCz9B,EACAg9B,EACAC,EACAK,GACC,MACKsC,EAAsB,CACxBlH,GAAI,EACJxoB,KAAMlQ,EAAE,8BACR6/B,YAAY,EACZnW,UAAU,GAgBRoW,EAAc,qBACb,IAAA7C,GAAY,KAAZA,GAAoB,SAAA5qB,GAAQ,OAAoB,IAAhBA,EAASqmB,OAD/B,CAEbkH,EAfkB,CAClBlH,GAAI,EACJmH,YAAY,EACZ3vB,KAAM,qBACNwZ,UAAU,IASG,IAIVsT,IAUP,MAAO,CACH+C,eAJA,IAAAD,GAAW,KAAXA,GAAiB,SAAAztB,GAAQ,OAAIA,EAASqmB,KAAO4E,MAC7CsC,EAIAE,eMiGAE,CACAhgC,EACAg9B,EACAC,EACAK,GANgBhE,GAhLlB,GAgLEyG,eACaE,GAjLf,GAiLEH,YAQJ,OACI,kBAAC,GAAD,CACIlH,kBACI,kBAAC,GAAD,CACIT,qBAtEa,SAAAziB,GACzB,IChKEyb,EACA4O,ED+JIzC,EAAoB,IAAS5nB,EAAMgI,OAAOD,MAAO,IACvD8f,EAAqBD,GACrBp9B,EAASggC,IAAgB3C,qBAAqBD,IClK5CnM,EDmKyBzb,ECnKTgI,QAChBqiB,EACF5O,GACAA,EAAUgP,iBACVhP,EAAUgP,gBAAgBxzB,OAAS,GACnCwkB,EAAUgP,gBAAgB,KAI9BhuB,IAAUC,WAAW,CACjBC,SAAU,cACV9S,OAAQ,mCACR+S,MAAOytB,EAAevgC,QD0NV84B,eAAgBgB,GAChBjB,mBAAoBiF,EACpBlF,cAAe6H,KAGvBpH,eAAgBA,EAChBC,OAvFW,kBAAM2E,GAAwB,IAwFzC1E,mBA1C8B,SAAArjB,GAClCA,EAAMF,iBC3KVrD,IAAUC,WAAW,CACjBC,SAAU,cACV9S,OAAQ,0BD2KRm+B,EAAc,IACde,GAAqB,KAuCjBzF,QAvFY,WAChBuF,GAAsBlF,IAuFlBJ,aAjDiB,SAAAvjB,GACrBA,EAAMF,iBACNipB,GAAqBpF,IAgDjBH,kBA9FsB,SAAAqB,GAAG,OAC7BgE,GAAsBhE,EAAI7c,OAAOD,QA8F7B0b,YAxIgB,SAAAoB,GAAO,MAC3B,OAAQA,EAAI6F,OACR,KAAKtD,GAED,YADAvC,EAAI7c,OAAOgiB,OAGf,KAAK5C,GAED,IAAMR,EAAW,UAAGI,EAA4BjkB,eAA/B,aAAG,EAAqCqP,iBACrD,qBAOJ,YAJIwU,GAAeA,EAAYsB,MAC3BrD,EAAI/kB,iBACJ8mB,EAAYsB,IAAyByC,UAI7C,KAAKvD,GACL,KAAKA,GAED,YAtCkB,SAAAznB,GAC1B,IAAIirB,EAAc,KAMlB,GALIjrB,IAAYynB,GACZwD,EAAc,EACPjrB,IAAYynB,KACnBwD,GAAe,GAEC,OAAhBA,EAAsB,CACtB,IAAMC,EN6BU,SAACD,EAAaE,EAAcC,GAC/B,OAAjBD,IACAA,EAAeF,EAAc,GAAK,EAAI,GAG1C,IAAIC,EAAWC,EAAeF,EAC9B,OAAIC,EAAW,EACJE,EAAgB,EAEvBF,GAAYE,EACL,EAEJF,EMzCkBG,CACbJ,EACA1C,GACAtB,EAAY3vB,QAEhBkxB,GAA2B0C,IAwBvBI,CAAsBpG,EAAI6F,SAqH9BhH,eAAgBA,EAChBC,WAAYA,EACZC,iBAAkBA,GAClBC,mBACI,kBAAC,GAAD,CACI+C,YAAaA,EACbza,MAAOA,EACP0a,QAASiB,EACThB,mBAhD4B,SAAAgC,GAMpCA,IAAkBnF,GAClBqE,EAAcc,GAElBf,GAAwB,GACxBrE,EAAe3gB,QAAQinB,QAuCX7E,wBAhGoB,WAChC0D,GAAsBlF,IAgGVA,WAAYA,EACZhB,mBAAoBiF,EACpBb,cAAemB,GACflB,4BAA6BA,OAmCjDK,GAAO/nB,UAAP,GAQA,IAAM4rB,GAAkB5f,aApCA,SAAAjgB,GAAS,MAY3B,EAXIg1B,EAAWh1B,EAAMoN,KAAK1O,KACxBw9B,OAAe18B,EACf28B,EAA4B,EAC5BC,EAAqB,GAIrB,OACI0D,IAAWC,mBACXD,IAAWE,uBAFf,OAGWhL,KAEXkH,EAAel8B,EAAMigC,SAAS/D,aAC9BC,EAA4Bn8B,EAAMigC,SAAS1D,kBAC3CH,GAAqB,UAAAp8B,EAAMigC,SAAS5D,mBAAf,eAA4B0B,IAAK,IAG1D,MAAO,CACH9B,cAAej8B,EAAMoN,KAAK6uB,cAC1BiE,WAAYlgC,EAAMkgC,WAClBhE,eACAC,4BACAE,YAAar8B,EAAMigC,SAAS5D,YAC5BD,wBAYgBnc,CAAyB+b,IACpCmE,GAAcC,YAAWP,IACzBQ,GAAmBR,I,wCE/ShC,kCAEO,IAAMS,EAA6B,SAAAC,GACtC,IAAMC,EAAc,CAChBC,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,aACJxX,GAAI,aACJyX,GAAI,aACJ1X,GAAI,aACJ2X,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,aACJ5O,GAAI,aACJ6O,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,GAAI,aACJC,G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","file":"script/chunks/chunk.tradera.a48369801e.js","sourcesContent":["import { BIN_VALIDATION_RESULTS } from '../../api/vip-api-constants';\n\nconst binValidationParser = error => {\n let validationTitle;\n let validationBody;\n switch (error) {\n case BIN_VALIDATION_RESULTS.ITEM_NOT_FOUND:\n validationTitle = 'vip_bid_itemNotFoundTitle';\n validationBody = 'vip_bid_itemNotFoundBody';\n break;\n case BIN_VALIDATION_RESULTS.BIDDER_IS_BLOCKED:\n validationTitle = 'vip_bid_bidderIsBlockedTitle';\n validationBody = 'vip_bid_bidderIsBlockedBody';\n break;\n case BIN_VALIDATION_RESULTS.BUYING_OWN_ITEM:\n validationTitle = 'vip_bid_biddingOrBuyingOwnItemTitle';\n validationBody = 'vip_bid_biddingOrBuyingOwnItemBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_EU_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlyEUBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlyEUBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_NORDIC_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlyNordicBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlyNordicBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.ONLY_SWEDISH_BUYERS_ACCEPTED:\n validationTitle = 'vip_bid_onlySwedishBuyersAcceptedTitle';\n validationBody = 'vip_bid_onlySwedishBuyersAcceptedBody';\n break;\n case BIN_VALIDATION_RESULTS.USER_IS_SUSPENDED:\n validationTitle = 'vip_bid_userIsSuspendedTitle';\n validationBody = 'vip_bid_userIsSuspendedBody';\n break;\n case BIN_VALIDATION_RESULTS.ITEM_HAS_ENDED:\n validationTitle = 'vip_bid_auctionHasEndedTitle';\n validationBody = 'vip_bid_auctionHasEndedBody';\n break;\n case BIN_VALIDATION_RESULTS.PURCHASE_DID_NOT_SUCCEED:\n case BIN_VALIDATION_RESULTS.ITEM_ALREADY_PURCHASED_BY_OTHER_USER:\n default:\n validationTitle = 'vip_bid_errorTitle';\n validationBody = 'vip_bid_errorDescription';\n break;\n }\n\n return {\n validationTitle,\n validationBody\n };\n};\n\nexport default binValidationParser;\n","import React, { Fragment } 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, Fragment } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n useUrlLocalizer,\n useCurrentLanguage,\n useTranslator\n} from 'tradera-lang';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport { purchaseBin } from 'tradera-state/views/checkout/api';\nimport { fetchItemAndBidInfo } from 'tradera-state/views/view-item/reducer';\nimport binValidationParser from './bin-validation-parser';\nimport CheckFillIcon from '@tradera/blueprint/theme/icons2/check-fill.svg?jsx';\nimport NotifyIcon from '@tradera/blueprint/theme/icons2/notify.svg?jsx';\nimport { formatPrice } from '@tradera/blueprint/utils';\nimport * as analytics from '../../helpers/analytics';\nimport TopDescription from './bin-modal-top-description';\nimport SellerName from './bin-modal-seller-name';\nimport ItemDisplay from './bin-modal-item-display';\nimport ItemDisplayConfirmed from './bin-modal-item-display-confirmed';\nimport ShippingDisplay from './bin-modal-shipping-display';\nimport PaymentSummary from './bin-modal-payment-summary';\nimport BottomButtons from './bin-modal-bottom-buttons';\nimport './bin-modal.scss';\n\nconst BIN_FORM_STATES = {\n NOT_CONFIRMED: 'NOT_CONFIRMED',\n CONFIRMED: 'CONFIRMED',\n CONFIRMED_WITH_ERROR: 'CONFIRMED_WITH_ERROR'\n};\n\nconst CenteredIcon = ({ children }) => {\n return (\n
\n
{children}
\n
\n );\n};\n\nconst Separator = () =>
;\n\nconst BigSeparator = () => (\n
\n);\n\nconst CloseButton = ({ action, text }) => (\n
\n
\n \n {text}\n \n
\n
\n);\n\nconst BinModal = ({ onClose, preferredCurrency }) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n const dispatch = useDispatch();\n const [currentFormState, setCurrentFormState] = useState(\n BIN_FORM_STATES.NOT_CONFIRMED\n );\n const [error, setError] = useState(undefined);\n const [purchaseOrderId, setPurchaseOrderId] = useState(undefined);\n const { language } = useCurrentLanguage();\n\n const itemDetails = useSelector(state => state.views.viewItem.itemDetails);\n const {\n seller,\n itemMainImage,\n title: itemTitle,\n itemId,\n shippingOptions,\n fixedPrice\n } = itemDetails;\n const formattedPrice = formatPrice(fixedPrice, language, preferredCurrency);\n const buyerCountryCode = useSelector(\n state => state.shippingRegion.shippingCountry.countryCodeIso2\n );\n\n const onContinue = useCallback(() => {\n analytics.trackPayBin();\n window.location = toLocalizedUrl(\n `/Shopping/Checkout/SelectPayment?purchaseOrderId=${purchaseOrderId}`\n );\n }, [purchaseOrderId, 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 setPurchaseOrderId(data.purchaseOrderId);\n setCurrentFormState(BIN_FORM_STATES.CONFIRMED);\n return;\n })\n .catch(e => {\n analytics.trackBinError();\n setError(\n binValidationParser(\n e.response.data.responseStatus.errorCode\n )\n );\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));\n }\n onClose();\n };\n\n const keepShopping = () => {\n analytics.trackKeepShopping();\n closeModal();\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\n \n\n \n\n \n \n )}\n
\n \n );\n};\n\nexport { Separator, BigSeparator };\n\nexport default BinModal;\n","import CONSTANTS from 'tradera-constants/state';\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';\n\nexport default initData => {\n const gdpr = {\n modalOpen: cookieUtil.readCookie(GDPR_CONSENT_ALERT_DISMISSED) === null,\n settingsOpen: false\n };\n const { hasSearch } = initData;\n const itemLayout =\n cookieUtil.readCookie(DEFAULT_COOKIES['ITEM_LAYOUT'].key) ||\n DEFAULT_COOKIES['ITEM_LAYOUT'].default;\n const messagingBadges = cache.read(CACHE_KEYS.MESSAGING_BADGES) || {\n threads: 0,\n threadsUnread: 0\n };\n const siteLayout =\n cookieUtil.readCookie(DEFAULT_COOKIES['SITE_LAYOUT'].key) ||\n DEFAULT_COOKIES['SITE_LAYOUT'].default;\n const systemMessages = cache.read(CACHE_KEYS.SYSTEM_MESSAGES) || {};\n\n return {\n categoryDropdownMenu: { open: CONSTANTS.MODAL.CLOSED },\n badges: {\n messaging: messagingBadges,\n system: 0\n },\n gdpr,\n hasSearch,\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 initData.pageName && initData.pageName.includes('StartPage')\n ),\n showSearchForm: hasSearch,\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 };\n};\n","import { logger } from 'packages';\n//jshint module : true\nimport myTradera from './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\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(myTradera.searching(false));\n dispatch(myTradera.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, getState) => {\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 selectPaymentsState(getState()).bankIdVerification.errorCount = 0;\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 selectPaymentsState(getState()).bankIdVerification.errorCount++;\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\n// Payouts\nconst loadPayouts = (toLocalizedUrl, page) => {\n return async dispatch => {\n var params = page ? '?page=' + page : '';\n try {\n const response = await fetch(\n toLocalizedUrl('/my/payments2/payouts' + params),\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({ type: actionTypes.PAYOUTS_LOADED, payload: result });\n else\n dispatch({\n type: actionTypes.PAYOUTS_ERROR,\n payload: 'Det gick inte att ladda utbetalningar.'\n });\n } catch (err) {\n logger(err);\n }\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 loadPayouts\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';\n","import React from 'react';\nimport { formatPrice } from './formats';\nimport { LIST_VIEW_TYPES } from './../constants/list-types';\nimport STRINGS from './../constants/text-strings';\n\nconst 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 ? formatPrice(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 let 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 item.listing.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","import { Analytics } from 'packages';\nimport {\n POPULAR_CATEGORIES,\n CAROUSEL,\n PICKS_FOR_YOU,\n LAST_CHANCE,\n HEADER,\n INSTAGRAM_FEED,\n RECENTLY_VIEWED\n} 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};\n\nexport const trackContainerClick = (containerType, trackingId) => {\n Analytics.trackEvent({\n category: 'StartPage',\n action: `${containerTypes[containerType]}`,\n label: trackingId\n });\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport { CHECKOUT_ERRORS } from './checkout-errors';\nimport {\n axiosWithTokenRefresh,\n axiosConfigs,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\n\nconst setErrorMessage = e => {\n if (e) {\n e.message = e.response?.data?.responseStatus?.errorCode;\n throw e;\n } else {\n throw new Error(CHECKOUT_ERRORS.GENERIC);\n }\n};\n\nexport const getCheckout = async purchaseOrderId =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_VIEW}/${purchaseOrderId}`, {\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getPaymentOptions = async (purchaseOrderId, selectedShippingId) =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_PAYMENT_OPTIONS}/${purchaseOrderId}`, {\n params: {\n selectedShippingId\n },\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const initializePayment = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_INIT_PAYMENT,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(e => {\n setErrorMessage(e);\n });\n\nexport const getPaymentStatus = async paymentAttemptId =>\n axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.ORDER_CHECKOUT_PAYMENT_STATUS}/${paymentAttemptId}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const completePayment = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_CHECKOUT_COMPLETE_PAYMENT,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const purchaseBin = async formData =>\n axiosWithTokenRefresh()\n .post(\n ENDPOINTS.ORDER_PURCHASE_BIN,\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getBraintreeToken = async (purchaseOrderId, paymentOption) =>\n axiosWithTokenRefresh()\n .get(`${ENDPOINTS.ORDER_CHECKOUT_BRAINTREE}/${purchaseOrderId}`, {\n params: {\n paymentMethod: paymentOption\n },\n withCredentials: true\n })\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const getExternalAuthData = async paymentAttemptId =>\n axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.ORDER_CHECKOUT_AUTH_DATA}/${paymentAttemptId}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\nexport const sendSwishSms = async formData =>\n axiosWithTokenRefresh()\n .post(\n '/shopping/swishapp2app/send',\n formData,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n\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};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TraderaLogo = ({ width, height, className, style, ...otherProps }) => (\n \n \n \n);\nTraderaLogo.propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n className: PropTypes.string,\n style: PropTypes.object\n};\nTraderaLogo.defaultProps = {\n width: 100,\n className: ''\n};\n\nexport default React.memo(TraderaLogo);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport SimpleModal from 'components/modals/simple-modal';\nimport { BasicCarousel } from 'tradera-components/carousels/basic';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport './image-gallery-modal.scss';\n\nclass ImageGalleryModal extends Component {\n static propTypes = {\n images: PropTypes.array.isRequired,\n initialSlideIndex: PropTypes.number\n };\n\n static defaultProps = {\n initialSlideIndex: 0\n };\n\n navigate = e => {\n if (e.keyCode === 37) {\n // left\n this.carousel.previous();\n e.preventDefault();\n } else if (e.keyCode === 39) {\n // right\n this.carousel.next();\n e.preventDefault();\n }\n };\n\n handleCloseModalClick = event => {\n event.stopPropagation();\n this.props.closeModalCallback();\n };\n\n stopClickEventPropagationFromCarousel = event => event.stopPropagation();\n\n stopClickEventsFromImage = event => event.stopPropagation();\n\n componentDidMount() {\n window.addEventListener('keydown', this.navigate);\n }\n\n componentWillUnmount() {\n window.removeEventListener('keydown', this.navigate);\n }\n\n render() {\n const {\n images,\n initialSlideIndex,\n closeModalCallback,\n ...rest\n } = this.props;\n const settings = {\n initialSlide: initialSlideIndex,\n accessibility: false,\n adaptiveHeight: true,\n lazyLoad: 'progressive',\n fade: false,\n useCss: false,\n useTransform: false,\n responsive: [\n {\n breakpoint: BREAKPOINT_SIZES[BREAKPOINTS.MD].min,\n settings: {\n arrows: false\n }\n }\n ]\n };\n\n return (\n \n
\n {\n this.carousel = c;\n }}\n className=\"w-100\"\n settings={settings}\n render={() =>\n images.map((image, index) => (\n \n \n \n
\n
\n ))\n }\n />\n \n
\n \n );\n }\n}\n\nexport default ImageGalleryModal;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport MediaQuery from 'react-responsive';\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-utils/breakpoints';\n\nclass ViewItemImage extends Component {\n constructor(props) {\n super(props);\n\n this.imageContainer = React.createRef();\n this.zoomImage = React.createRef();\n\n this.bounds = null;\n\n this.state = {\n hover: false,\n zoomImageLargeEnough: true\n };\n }\n\n static defaultProps = {\n enableZoom: false\n };\n\n handleMouseHover(hoverState) {\n this.setState(prevState => ({\n ...prevState,\n hover: hoverState\n }));\n }\n\n handleMouseMove(e) {\n // this check is here because the mobile version does not have a zoomImageElement in the DOM.\n if (this.zoomImage.current === null) {\n return;\n }\n const {\n containerWidth,\n containerHeight,\n zoomImageWidth,\n zoomImageHeight,\n widthDiff,\n heightDiff\n } = this.getBounds();\n\n const zoomImageLargeEnough = widthDiff > 0 || heightDiff > 0;\n this.setState({\n zoomImageLargeEnough\n });\n\n if (!zoomImageLargeEnough) {\n return;\n }\n\n const widthRatio = e.nativeEvent.offsetX / containerWidth;\n const heightRatio = e.nativeEvent.offsetY / containerHeight;\n\n const translateXValue =\n widthDiff > 0\n ? widthRatio * widthDiff\n : zoomImageWidth / 2 - containerWidth / 2;\n const translateYValue =\n heightDiff > 0\n ? heightRatio * heightDiff\n : zoomImageHeight / 2 - containerHeight / 2;\n\n const zoomImageElement = this.zoomImage.current;\n zoomImageElement.style.transform = `translate(${-translateXValue}px,\n ${-translateYValue}px)`;\n\n this.handleMouseHover(true);\n }\n\n getBounds() {\n if (this.bounds) {\n return this.bounds;\n }\n\n const zoomImageElement = this.zoomImage.current;\n const imageContainerElement = this.imageContainer.current;\n\n const {\n width: containerWidth,\n height: containerHeight\n } = imageContainerElement.getBoundingClientRect();\n const {\n width: zoomImageWidth,\n height: zoomImageHeight\n } = zoomImageElement.getBoundingClientRect();\n\n const widthDiff = zoomImageWidth - containerWidth;\n const heightDiff = zoomImageHeight - containerHeight;\n\n if (zoomImageWidth <= 0 || zoomImageHeight <= 0) {\n return {};\n }\n this.bounds = {\n containerWidth,\n containerHeight,\n zoomImageWidth,\n zoomImageHeight,\n widthDiff,\n heightDiff\n };\n\n return this.bounds;\n }\n\n render() {\n const { image, enableZoom, handleZoomClick } = this.props;\n const { hover, zoomImageLargeEnough } = this.state;\n return (\n \n \n \n \n \n \n \n \n {\n this.handleMouseMove(e);\n }}\n onMouseLeave={() => this.handleMouseHover(false)}\n />\n \n );\n }\n}\n\nViewItemImage.propTypes = {\n image: PropTypes.shape({\n alt: PropTypes.string.isRequired,\n normal: PropTypes.string.isRequired,\n medium: PropTypes.string.isRequired\n }).isRequired,\n enableZoom: PropTypes.bool,\n handleZoomClick: PropTypes.func\n};\n\nexport default ViewItemImage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-utils/breakpoints';\nimport { BasicCarousel } from '../basic';\nimport ImageGalleryModal from 'components/modals/image-gallery-modal/image-gallery-modal';\nimport ViewItemImage from './view-item-image';\nimport './view-item-carousel.scss';\nimport './cursor.scss';\n\nclass ViewItemCarouselZoom extends React.Component {\n static propTypes = {\n carouselStyle: PropTypes.object,\n className: PropTypes.string,\n enableZoom: PropTypes.bool,\n fixedHeight: PropTypes.bool,\n images: PropTypes.array.isRequired,\n pageType: PropTypes.string\n };\n\n static defaultProps = {\n carouselStyle: {},\n className: '',\n enableZoom: false,\n fixedHeight: true\n };\n\n state = {\n showZoomModal: false,\n activeSlideIndex: 0\n };\n\n constructor(props) {\n super(props);\n this.basicCarousel = React.createRef();\n }\n\n render() {\n const {\n carouselStyle,\n className,\n enableZoom,\n fixedHeight,\n images,\n ...rest\n } = this.props;\n const { showZoomModal, activeSlideIndex } = this.state;\n\n const onMouseUp = () => {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n };\n\n const settings = {\n customPaging: imageIndex => {\n return (\n \n this.basicCarousel.current.goTo(imageIndex)\n }>\n \n
\n
\n );\n },\n afterChange: index => {\n this.setState({ activeSlideIndex: index });\n },\n initialSlide: activeSlideIndex,\n accessibility: false,\n responsive: [\n {\n breakpoint: BREAKPOINT_SIZES[BREAKPOINTS.MD].min,\n settings: {\n customPaging: function(i) {\n return ;\n }\n }\n }\n ]\n };\n\n return (\n
\n \n {images.map((image, index) => (\n {\n if (enableZoom) {\n this.setState({\n showZoomModal: true\n });\n }\n }}\n />\n ))}\n \n {enableZoom && showZoomModal && (\n {\n this.setState({ showZoomModal: false });\n }}\n images={images}\n />\n )}\n
\n );\n }\n}\n\nexport default ViewItemCarouselZoom;\n","import 'underscore';\nimport config from 'tradera-apps/syi/script/app_react/services/config';\n\nfunction isValidPrice(number) {\n var str = new String(number);\n if (!_.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 newState.fixedPriceValidationError = validateFixedPrice(\n newState.isPureBinSelected,\n newState.fixedPrice\n );\n newState.openingBidValidationError = validateOpeningBid(\n newState.isPureBinSelected,\n newState.openingBid\n );\n newState.reservePriceValidationError = validateReservePrice(\n newState.isPureBinSelected,\n newState.showReservePrice,\n newState.openingBid,\n newState.reservePrice,\n newState.auctionBinPrice\n );\n newState.auctionBinValidationError = validateAuctionBinPrice(\n newState.isPureBinSelected,\n newState.showAuctionBinPrice,\n newState.openingBid,\n newState.reservePrice,\n newState.auctionBinPrice\n );\n newState.validationError =\n newState.fixedPriceValidationError ||\n newState.openingBidValidationError ||\n newState.reservePriceValidationError ||\n newState.auctionBinValidationError\n ? 'syi_validation_invalid_price'\n : null;\n return newState;\n}\n\nvar initialState = {\n openingBid: null,\n auctionBinPrice: null,\n fixedPrice: null,\n reservePrice: null,\n showAuctionBinPrice: false,\n showReservePrice: false,\n isPureBinSelected: null,\n openingBidValidationError: null,\n auctionBinValidationError: null,\n reservePriceValidationError: null,\n fixedPriceValidationError: null,\n selectableVats: config.selectableVatValues,\n reservePriceCanChangeButNotBeRemoved: false,\n vat: null\n};\n\nexport default (state, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_OPENING_BID':\n return validate(\n _.assign({}, state, { openingBid: action.payload })\n );\n case 'SET_AUCTION_BIN_PRICE':\n return validate(\n _.assign({}, state, { auctionBinPrice: action.payload })\n );\n case 'SET_FIXED_PRICE':\n return validate(\n _.assign({}, state, { fixedPrice: action.payload })\n );\n case 'SET_RESERVE_PRICE':\n return validate(\n _.assign({}, state, { reservePrice: action.payload })\n );\n case 'SET_AUCTION_BIN_PRICE_VISIBILITY':\n return validate(\n _.assign({}, state, { showAuctionBinPrice: action.payload })\n );\n case 'SET_RESERVE_PRICE_VISIBILITY':\n return validate(\n _.assign({}, state, { showReservePrice: action.payload })\n );\n case 'SET_IS_PURE_BIN_SELECTED':\n return validate(\n _.assign({}, state, {\n isPureBinSelected: action.isPureBinSelected\n })\n );\n case 'SET_VAT':\n return validate(_.assign({}, state, { vat: action.payload }));\n case 'RESET_PRICES_AND_VAT':\n return validate(\n _.assign({}, state, {\n openingBid: null,\n auctionBinPrice: null,\n fixedPrice: null,\n vat: null\n })\n );\n case 'SET_RESERVE_PRICE_CAN_CHANGE_BUT_NOT_BE_REMOVED':\n return validate(\n _.assign({}, state, {\n reservePriceCanChangeButNotBeRemoved: action.payload\n })\n );\n default:\n return state;\n }\n};\n","import React, { Fragment, useState } from 'react';\nimport { useTranslator } from 'tradera-lang';\n\nconst MAX_DROPDOWN_SIZE = 10;\n\nconst ItemQuantitySelector = ({\n quantity,\n quantityInShop,\n onQuantityChange\n}) => {\n const { t } = useTranslator();\n const [inputMode, setInputMode] = useState(quantity > MAX_DROPDOWN_SIZE);\n\n const onChange = event => {\n const value = parseInt(event.target.value);\n if (isNaN(value)) return;\n\n if (value !== -1) {\n event.target.value = Math.min(value, quantityInShop);\n onQuantityChange(event);\n }\n\n if (value === -1) {\n setInputMode(true);\n }\n };\n\n return (\n
\n {!inputMode && (\n quantityInShop ? 'border-danger' : ''\n }`}\n onChange={onChange}>\n \n {[\n ...Array(Math.min(quantityInShop, MAX_DROPDOWN_SIZE))\n ].map((_, i) => {\n const count = i + 1;\n return (\n \n );\n })}\n {quantity > quantityInShop && (\n \n )}\n {quantityInShop > MAX_DROPDOWN_SIZE && (\n \n )}\n \n )}\n {inputMode && (\n \n )}\n
\n );\n};\n\nconst ItemDisplay = ({\n itemImage,\n itemTitle,\n formattedPrice,\n isFirstItem,\n quantity,\n quantityInShop,\n onQuantityChange,\n itemUrl\n}) => {\n const { t } = useTranslator();\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 {quantityInShop !== undefined &&\n quantity > quantityInShop && (\n
\n {t('checkout_item_outOfStock')}\n
\n )}\n\n {quantityInShop !== undefined && (\n \n )}\n\n
\n {formattedPrice}\n
\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
\n {formattedPrice}\n
\n
\n
\n\n {quantityInShop !== undefined &&\n quantity > quantityInShop && (\n
\n {t('checkout_item_outOfStock')}\n
\n )}\n
\n
\n
\n );\n};\n\nexport default ItemDisplay;\n","import React from 'react';\n\nconst TimeLeftLabel = ({ className, isEndingSoon, timeLeft }) => {\n return (\n \n );\n};\nexport default TimeLeftLabel;\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';\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 === 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","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 UNKNOWN: 'UNKNOWN'\n};\n","import React, { Fragment } from 'react';\nimport { useTranslator } from 'tradera-lang';\n\nconst PaymentSummary = ({ formattedPrice, shippingOptions }) => {\n const { t } = useTranslator();\n\n return (\n \n 1 ? 'mb-3' : 'mb-5'\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 {shippingOptions.length > 1 && (\n
\n
\n {t('checkout_bin_shippingDescription')}\n
\n
\n )}\n
\n );\n};\n\nexport default PaymentSummary;\n","export { default } from './alink';\n","export default window.sellingGlobalData;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { hot } from 'react-hot-loader';\nimport axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { handleError, API_ERRORS } from 'tradera-utils/api';\nimport { logger } from 'packages';\nimport { LAST_CHANCE } from '../content-types';\nimport { trackContainerClick } from '../analytics';\nimport { withTranslator, useTranslator, withUrlLocalizer } from 'tradera-lang';\nimport { registerLiveUpdates } from 'tradera-utils/register-live-updates';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport itemActions from 'tradera-state/items/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { generateItemCardPlaceholders } from 'tradera-components/item-card/generate-item-card-placeholders';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\nimport ALink from 'tradera-components/alink/alink';\n\nconst LastChance = props => (\n \n \n \n \n \n);\n\nconst LastChanceNew = props => {\n const {\n addItems,\n initData,\n inSPA,\n isLoggedIn,\n items,\n openQuickView,\n preferredCurrency,\n toggleWishlist,\n toLocalizedUrl,\n updateItem\n } = props;\n const {\n BuyingEventPusherEnabled,\n BuyingEventPusherServerUrl\n } = initData.pageSpecificData;\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 (BuyingEventPusherEnabled) {\n return registerLiveUpdates({\n url: BuyingEventPusherServerUrl,\n onConnect: socket => {\n for (let itemId of itemIds) {\n socket.emit('joinChannel', 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 currentBid: data.Event.BidAmount,\n totalBids: data.Event.NumberOfBids\n }\n });\n break;\n }\n }\n });\n }\n }, [\n BuyingEventPusherEnabled,\n BuyingEventPusherServerUrl,\n itemIds,\n updateItem\n ]);\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

{t('lastChance_header')}

\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 initData: state.initData,\n items: state.items.cache,\n isLoggedIn: state.member.isLoggedIn,\n preferredCurrency: state.multiCurrency.preferredCurrency\n});\n\nconst mapDispatchToProps = dispatch => ({\n addItems: items => {\n dispatch(itemActions.add(items));\n },\n openQuickView: (itemId, itemIds) =>\n dispatch(\n uiActions.openQuickView({\n itemIds,\n itemId,\n openedFrom: 'Last Chance'\n })\n ),\n toggleWishlist: itemId => dispatch(itemActions.wishlist(itemId)),\n updateItem: payload => dispatch(itemActions.updateItem(payload))\n});\n\nconst LastChanceNewConnected = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LastChanceNew);\n\nexport default compose(\n withUrlLocalizer,\n withTranslator,\n hot(module)\n)(LastChance);\n","import axios from 'axios';\nimport { getCurrentLanguage } from 'tradera-lang';\nimport { toLocalizedUrl } from 'tradera-utils/url';\n\nconst timeDiffInMs = start => {\n return Date.now() - start;\n};\n\nconst queryServerTime = async retryCount => {\n const latencyLimit = 500;\n const maxRetries = 2;\n const requestStart = Date.now();\n const {\n data: { currentTime }\n } = await axios.get(\n toLocalizedUrl(\n '/api/webapi/discover/server-time.json',\n getCurrentLanguage()\n )\n );\n const latency = timeDiffInMs(requestStart);\n\n if (latency < latencyLimit) {\n return { currentTime: Date.parse(currentTime), latency };\n } else if (retryCount < maxRetries) {\n return queryServerTime(retryCount + 1);\n } else {\n return null;\n }\n};\n\n/**\n * Requests server time and returns\n * { currentTime, latency }\n */\nexport const getServerTime = async () => {\n return await queryServerTime(0);\n};\n","import myTraderaItemActions from './my-tradera-items';\nimport { setCookie } from './cookies';\nimport { LIST_VIEW_TYPES } from '../../constants/list-types';\nimport TEXT_STRINGS from '../../constants/text-strings';\nimport uiActions from 'tradera-state/ui/actions';\nimport uiActionTypes from 'tradera-state/ui/action-types';\nimport { whenInitialized } from 'tradera-lang/boot-languages';\nimport { routeInformationFactory } from '../../constants/routes';\n\nconst actionTypes = {\n SEARCHING: 'SEARCHING',\n CHANGE_URL_PARAMS: 'CHANGE_URL_PARAMS',\n CHANGE_LIST_VIEW_TYPE: 'CHANGE_LIST_VIEW_TYPE',\n ERROR: 'ERROR',\n HIDE_NOTIFICATIONS: 'HIDE_NOTIFICATION',\n OPEN_MODAL: 'OPEN_MODAL',\n SET_BREAKPOINT: 'SET_BREAKPOINT',\n SET_SELECTED: 'SET_SELECTED',\n MOBILE_MENU: 'INTERACT_W_MOBILE_MENU',\n MOBILE_ACTIONS: 'INTERACT_W_MOBILE_ACTIONS',\n UPDATING_NEW_SHPPING_PRICE: 'UPDATING_NEW_SHPPING_PRICE',\n SET_MEMBER_MESSAGING_PARTICIPATION: 'SET_MEMBER_MESSAGING_PARTICIPATION',\n OPEN_MESSAGING_MODAL: uiActionTypes.OPEN_MESSAGING_MODAL,\n CLOSE_MESSAGING_MODAL: uiActionTypes.CLOSE_MESSAGING_MODAL,\n SET_TRANSLATED_ROUTE_INFORMATION: 'SET_TRANSLATED_ROUTE_INFORMATION'\n};\n\nconst openModal = options => ({\n type: actionTypes.OPEN_MODAL,\n payload: options\n});\n\nconst searching = payload => ({\n type: actionTypes.SEARCHING,\n payload: payload\n});\n\nconst updatingNewShippingPrice = payload => ({\n type: actionTypes.UPDATING_NEW_SHPPING_PRICE,\n payload: payload\n});\n\nconst error = error => ({\n type: actionTypes.ERROR,\n payload: error === true ? TEXT_STRINGS.ERRORS.GENERIC : error\n});\n\nconst changeListViewType = listViewType => dispatch => {\n listViewType =\n listViewType === LIST_VIEW_TYPES.BASIC\n ? LIST_VIEW_TYPES.COMPACT\n : LIST_VIEW_TYPES.BASIC;\n dispatch(setCookie('LIST_VIEW_TYPE', listViewType));\n dispatch(myTraderaItemActions.rebuildList());\n return {\n type: actionTypes.CHANGE_LIST_VIEW_TYPE,\n payload: listViewType\n };\n};\n\nconst 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\nconst hideActualNotification = notification => ({\n type: actionTypes.HIDE_NOTIFICATIONS,\n payload: notification\n});\n\nconst hideNotification = notification => dispatch => {\n const notificationName = `hideNotification-${notification}`;\n const expires = new Date();\n expires.setMonth(expires.getMonth() + 3);\n dispatch(setCookie(notificationName, notificationName, expires));\n dispatch(hideActualNotification(notification));\n};\n\nconst mobileMenu = forceClose => ({\n type: actionTypes.MOBILE_MENU,\n payload: forceClose\n});\n\nconst mobileActions = forceClose => ({\n type: actionTypes.MOBILE_ACTIONS,\n payload: forceClose\n});\n\nconst setBreakPoint = breakpoint => ({\n type: actionTypes.SET_BREAKPOINT,\n payload: breakpoint\n});\n\nconst setSelected = object => ({\n type: actionTypes.SET_SELECTED,\n payload: object\n});\n\nconst setMemberMessagingParticipation = toggle => ({\n type: actionTypes.SET_MEMBER_MESSAGING_PARTICIPATION,\n payload: toggle\n});\n\n/*\n Reusing actions and reducers for messaging modal from global\n redux store to reduce duplicate code\n*/\nconst openMessagingModal = payload => uiActions.openMessagingModal(payload);\n\nconst closeMessagingModal = payload => uiActions.closeMessagingModal(payload);\n\nexport const setTranslatedRouteInformation = dispatch => {\n return whenInitialized().then(({ t, toLocalizedUrl }) => {\n const payload = routeInformationFactory(t, toLocalizedUrl);\n dispatch({\n type: actionTypes.SET_TRANSLATED_ROUTE_INFORMATION,\n payload\n });\n\n return undefined;\n });\n};\n\nexport default {\n actionTypes,\n searching,\n hideNotification,\n changeListViewType,\n hideActualNotification,\n scrollToInitialScroll,\n openModal,\n setBreakPoint,\n error,\n mobileMenu,\n mobileActions,\n setSelected,\n updatingNewShippingPrice,\n setMemberMessagingParticipation,\n openMessagingModal,\n closeMessagingModal\n};\n","import initData from 'init-data';\nimport actions from '../actions/my-tradera';\nimport uiReducers from 'tradera-state/ui/reducer';\nimport CONSTANTS from 'tradera-constants/state';\n\nconst defaultState = {\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 selected: null,\n isUpdatingNewShippingPrice: false,\n messagingModal: {\n open: CONSTANTS.MODAL.CLOSED,\n title: '',\n src: '',\n participating: false,\n recipientId: '',\n item: null\n }\n};\n\nexport default (state = defaultState, action) => {\n const searching = () => ({\n ...state,\n isSearching: action.payload\n });\n\n const error = () => ({\n ...state,\n error: action.payload\n });\n\n const hideNotifications = () => ({\n ...state,\n hideNotifications: action.payload\n });\n\n const openModal = () => ({\n ...state,\n openModal: action.payload === false ? false : action.payload\n });\n\n const setBreakPoint = () => ({\n ...state,\n breakpoint: action.payload\n });\n\n const mobileMenu = () => ({\n ...state,\n mobileMenu:\n action.payload && action.payload === false\n ? false\n : !state.mobileMenu\n });\n\n const mobileActions = () => ({\n ...state,\n mobileActions:\n action.payload && action.payload === false\n ? false\n : !state.mobileActions\n });\n\n const setSelected = () => ({\n ...state,\n selected: action.payload\n });\n\n const updatingNewShippingPrice = () => ({\n ...state,\n isUpdatingNewShippingPrice: action.payload\n });\n\n const setMemberMessagingParticipation = () => ({\n ...state,\n memberMessagingParticipation: action.payload\n });\n\n /*\n Reusing actions and reducers for messaging modal from global\n redux store to reduce duplicate code\n */\n const openMessagingModal = () => uiReducers(state, action);\n\n const closeMessagingModal = () => uiReducers(state, action);\n\n const setTranslatedRouteInformation = () => ({\n ...state,\n page: action.payload\n });\n\n const def = () => state;\n\n const reducers = {\n [actions.actionTypes.SEARCHING]: searching,\n [actions.actionTypes.HIDE_NOTIFICATIONS]: hideNotifications,\n [actions.actionTypes.ERROR]: error,\n [actions.actionTypes.OPEN_MODAL]: openModal,\n [actions.actionTypes.SET_BREAKPOINT]: setBreakPoint,\n [actions.actionTypes.SET_SELECTED]: setSelected,\n [actions.actionTypes.MOBILE_MENU]: mobileMenu,\n [actions.actionTypes.MOBILE_ACTIONS]: mobileActions,\n [actions.actionTypes\n .UPDATING_NEW_SHPPING_PRICE]: updatingNewShippingPrice,\n [actions.actionTypes\n .SET_MEMBER_MESSAGING_PARTICIPATION]: setMemberMessagingParticipation,\n [actions.actionTypes.OPEN_MESSAGING_MODAL]: openMessagingModal,\n [actions.actionTypes.CLOSE_MESSAGING_MODAL]: closeMessagingModal,\n [actions.actionTypes\n .SET_TRANSLATED_ROUTE_INFORMATION]: setTranslatedRouteInformation\n };\n\n return !reducers[action.type] ? def() : reducers[action.type]();\n};\n\nexport const selectMyTraderaState = state => state.views.myTradera.myTradera;\n","/**\n * @returns {object} list of default cookies that could be set in Touchweb\n * @desc\n * key: Cookie Name\n * default: Default Value if not set\n * length: Time to be stored (months)\n */\nexport const DEFAULT_COOKIES = {\n ITEM_LAYOUT: {\n key: 'Srp_Item_Layout',\n default: 'layout-grid',\n length: 365\n },\n SITE_LAYOUT: {\n key: 'Srp_Site_Layout',\n default: 'site-width-default',\n length: 365\n }\n};\n\nexport const MYTRADERA_DEFAULT_COOKIES = {\n LIST_VIEW_TYPE: {\n key: 'MyTradera_ListViewType',\n default: 'Basic',\n length: 365\n },\n ITEMS_PER_PAGE: {\n key: 'MyTradera_ItemsPerPage',\n default: '25',\n length: 365\n },\n SHOW_FILTERS: {\n key: 'MyTradera_ShowFiltersToolbar',\n default: 'hidden',\n length: 365\n }\n};\n\nexport const CURRENCY_SELECTED_BY_USER = 'currency_selected_by_user';\nexport const GDPR_CONSENT_ALERT_DISMISSED = 'gdpr_dismissed_v1';\nexport const GDPR_CONSENT_COOKIE = 'gdpr_consent_v1';\nexport const FORCE_GEO_DEV = 'force-geo-dev';\nexport const ITEMS_PER_PAGE = 'ITEMS_PER_PAGE';\nexport const LIST_VIEW_TYPE = 'LIST_VIEW_TYPE';\nexport const MOBILE_OPT_IN_TAGS = 'mobile-opt-in-tags';\nexport const PREFERRED_CURRENCY = 'preferred_currency';\nexport const PREFERRED_LANGUAGE = 'preferred_language';\nexport const REGION_PICKER_DISMISSED = 'region_picker_dismissed_session';\nexport const S = 's';\nexport const SHIPPING_COUNTRY = 'shipping_country';\nexport const SHOW_FILTERS = 'SHOW_FILTERS';\nexport const SIGNUP_REFERRAL_PATH = 'signup_referral_path';\nexport const SOLD_VIEW_PICKLIST = 'sold_view_picklist';\nexport const TEST = 'test';\nexport const USERPREFERENCES = 'UserPreferences';\nexport const CART_ID = 'cartId';\n\nexport const COOKIE_CATEGORIES = {\n Essential: 1,\n Performance: 2,\n Functional: 3,\n Marketing: 4\n};\n\n/**\n * all cookies that are used by tradera must be categorized in the array below.\n */\nexport const CATEGORIZED_COOKIES = {\n [GDPR_CONSENT_ALERT_DISMISSED]: COOKIE_CATEGORIES.Essential,\n [GDPR_CONSENT_COOKIE]: COOKIE_CATEGORIES.Essential,\n [TEST]: COOKIE_CATEGORIES.Essential, // Unit test cookie\n\n [CURRENCY_SELECTED_BY_USER]: COOKIE_CATEGORIES.Functional,\n [DEFAULT_COOKIES.ITEM_LAYOUT.key]: COOKIE_CATEGORIES.Functional,\n [DEFAULT_COOKIES.SITE_LAYOUT.key]: COOKIE_CATEGORIES.Functional,\n [FORCE_GEO_DEV]: COOKIE_CATEGORIES.Functional,\n [ITEMS_PER_PAGE]: COOKIE_CATEGORIES.Functional,\n [LIST_VIEW_TYPE]: COOKIE_CATEGORIES.Functional,\n [MOBILE_OPT_IN_TAGS]: COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.ITEMS_PER_PAGE.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.SHOW_FILTERS.key]: COOKIE_CATEGORIES.Functional,\n [PREFERRED_CURRENCY]: COOKIE_CATEGORIES.Functional,\n [PREFERRED_LANGUAGE]: COOKIE_CATEGORIES.Functional,\n [REGION_PICKER_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [S]: COOKIE_CATEGORIES.Functional, // saved search\n [SHIPPING_COUNTRY]: COOKIE_CATEGORIES.Functional,\n [SHOW_FILTERS]: COOKIE_CATEGORIES.Functional,\n [SIGNUP_REFERRAL_PATH]: COOKIE_CATEGORIES.Functional,\n [SOLD_VIEW_PICKLIST]: COOKIE_CATEGORIES.Functional,\n [USERPREFERENCES]: COOKIE_CATEGORIES.Functional,\n [CART_ID]: COOKIE_CATEGORIES.Functional\n};\n\nexport const COOKIE_DEFAULT_CATEGORY = COOKIE_CATEGORIES.Functional;\n","import actionTypes from 'tradera-state/ui/action-types';\n\nexport const openModal = payload => ({\n type: actionTypes.OPEN_MODAL,\n payload\n});\n\nexport const closeModal = () => ({\n type: actionTypes.CLOSE_MODAL\n});\n","import React, { useEffect, useCallback } from 'react';\nimport PropType from 'prop-types';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport './modal.scss';\n\nconst SimpleModal = ({\n children,\n className,\n classNameBody,\n closeModalCallback,\n style,\n styleBody\n}) => {\n const closeOnEscape = useCallback(\n e => {\n if (e.keyCode === 27) {\n e.preventDefault();\n closeModalCallback(e);\n }\n },\n [closeModalCallback]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', closeOnEscape);\n return () => {\n window.removeEventListener('keydown', closeOnEscape);\n };\n }, [closeOnEscape]);\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nSimpleModal.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string,\n classNameBody: PropType.string,\n closeModalCallback: PropType.func.isRequired,\n style: PropType.object,\n styleBody: PropType.object\n};\nSimpleModal.defaultProps = {\n className: '',\n classNameBody: '',\n style: {},\n styleBody: {}\n};\n\nexport default SimpleModal;\n","/***\n *\n * Keep track of users' GDPR settings.\n *\n */\nimport moment from 'moment';\n\nimport CookieUtil from 'tradera-utils/cookie';\nimport {\n GDPR_CONSENT_COOKIE,\n COOKIE_CATEGORIES\n} from 'tradera-constants/cookies';\n\nclass GdprSettings {\n /**\n *\n * @param {int} cookieCategory use the constant COOKIE_CATEGORIES to get different values.\n */\n isCategoryEnabled(cookieCategory) {\n if (cookieCategory === COOKIE_CATEGORIES.Essential) {\n return true;\n }\n let decodedCookie = decodeURI(\n CookieUtil.readCookie(GDPR_CONSENT_COOKIE)\n );\n if (decodedCookie === null || decodedCookie.length === 0) {\n return true;\n }\n\n let categoryPattern = new RegExp(`,${cookieCategory}:1`);\n return categoryPattern.test(decodedCookie);\n }\n\n isPerformanceEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Performance);\n }\n\n isFunctionalEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Functional);\n }\n\n isMarketingEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Marketing);\n }\n\n set(performance, functional, marketing) {\n const cookie = [\n `${COOKIE_CATEGORIES.Essential}:1`,\n `${COOKIE_CATEGORIES.Performance}:${performance ? '1' : '0'}`,\n `${COOKIE_CATEGORIES.Functional}:${functional ? '1' : '0'}`,\n `${COOKIE_CATEGORIES.Marketing}:${marketing ? '1' : '0'}`\n ];\n\n CookieUtil.createCookie(\n GDPR_CONSENT_COOKIE,\n cookie.join(','),\n moment()\n .add(1, 'years')\n .toDate(),\n '/'\n );\n return this;\n }\n}\n\nexport default new GdprSettings();\n","import initData from 'init-data';\n\nconst isEnabled = featureSwitch => {\n return (\n initData &&\n initData.featureSwitches &&\n initData.featureSwitches[featureSwitch]\n );\n};\n\nexport const isSwedishOrUndefined = languageCodeIso2 =>\n languageCodeIso2 === undefined || languageCodeIso2.toLowerCase() === 'sv';\n\nexport const getLanguageFromCountryCode = countryCodeIso2 => {\n countryCodeIso2 = countryCodeIso2?.toLowerCase() || 'se';\n const languageMap = {\n se: 'sv',\n dk: isEnabled('danish-where-available') && 'da',\n de: isEnabled('german-where-available') && 'de'\n };\n return languageMap[countryCodeIso2] || 'en';\n};\n\nexport const getCountryCodeFromLanguage = languageCode => {\n languageCode = languageCode?.toLowerCase() || 'sv';\n const countryMap = {\n en: 'gb', // We default to GB which isn't strictly correct\n da: isEnabled('danish-where-available') && 'dk',\n de: isEnabled('german-where-available') && 'de'\n };\n return countryMap[languageCode] || 'se';\n};\n","import { actionTypes } from '../actions/cookies';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { MYTRADERA_DEFAULT_COOKIES } from 'tradera-constants/cookies';\nimport { logger } from 'packages';\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\nexport default (state = defaultState(), action) => {\n const set = () => {\n let def = MYTRADERA_DEFAULT_COOKIES[action.payload.name];\n const expires = def.length;\n try {\n cookieUtil.createCookie(def.key, action.payload.value, expires);\n } catch (e) {\n logger(e);\n }\n if (state[action.payload.name] === action.payload.value) {\n return state;\n }\n return {\n ...state,\n [action.payload.name]: action.payload.value\n };\n };\n\n const def = () => state;\n\n const reducers = {\n [actionTypes.SET]: set\n };\n return !reducers[action.type] ? def() : reducers[action.type]();\n};\n\nexport const selectCookiesState = state => state.views.myTradera.cookies;\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","import { 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 defaultCountry = 'SE';\n\nconst shippingCalculatorSlice = createSlice({\n name: 'shippingCalculator',\n initialState: {\n box: { ...defaultBox },\n selectedCountry: defaultCountry,\n defaultBox,\n weightUnit: 'kg',\n isLoadingShippingProducts: false,\n shippingProviders: [\n {\n providerName: 'SchenkerPrivpak',\n swedishProducts: [],\n internationalProducts: []\n },\n {\n providerName: 'PostNordParcel',\n swedishProducts: [],\n internationalProducts: []\n },\n {\n providerName: 'PostNordStamp',\n swedishProducts: [],\n internationalProducts: []\n },\n {\n providerName: 'DHL',\n swedishProducts: [],\n internationalProducts: []\n },\n {\n providerName: 'Bussgods',\n swedishProducts: [],\n internationalProducts: []\n }\n ],\n internationalProductsGroupedByCountry: [],\n shoError: false\n },\n reducers: {\n setSelectedCountry: (state, action) => {\n state.selectedCountry = action.payload.selectedCountry;\n },\n setDefaultValuesOnBox: state => {\n state.box = { ...defaultBox };\n },\n updateFilter: (state, action) => {\n const { filterName, value } = action.payload;\n state.box[filterName] = value;\n },\n setWeightFilter: (state, action) => {\n const map = {\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\n const value = map[action.payload.value];\n state.weightUnit = value % 1000 === 0 ? 'kg' : 'g';\n state.box.weight = 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 newShippingProviders = state.shippingProviders.map(\n ({ providerName, ...rest }) => ({\n ...rest,\n providerName,\n internationalProducts: internationalShippingCalculatorProducts.filter(\n ({ shippingProvider, toCountryCodeIso2 }) =>\n shippingProvider === providerName &&\n toCountryCodeIso2 !== 'SE'\n ),\n swedishProducts: internationalShippingCalculatorProducts.filter(\n ({ shippingProvider, toCountryCodeIso2 }) =>\n shippingProvider === providerName &&\n toCountryCodeIso2 === 'SE'\n )\n })\n );\n\n const internationalProductsGroupedByCountry = internationalShippingCalculatorProducts\n .map(product => ({\n logoUrl: state.shippingProviders.find(\n ({ providerName }) =>\n providerName === product.shippingProvider\n ).logoUrl,\n ...product\n }))\n .reduce(\n (products, product) => ({\n ...products,\n [product.toCountryCodeIso2]: products[\n product.toCountryCodeIso2\n ]\n ? [product, ...products[product.toCountryCodeIso2]]\n : [product]\n }),\n {}\n );\n\n state.showError = false;\n state.shippingProviders = newShippingProviders;\n state.internationalProductsGroupedByCountry = internationalProductsGroupedByCountry;\n state.isLoadingShippingProducts = false;\n }\n }\n});\n\nexport const setDefaultValues = () => dispatch => {\n dispatch(setDefaultValuesOnBox());\n dispatch(fetchShippingProducts());\n dispatch(setSelectedCountry({ selectedCountry: defaultCountry }));\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 setShippingProducts,\n setDefaultValuesOnBox,\n setSelectedCountry,\n setWeightFilter,\n setShowError\n} = shippingCalculatorSlice.actions;\nexport default shippingCalculatorSlice.reducer;\n","export const ITEM_CARD_IMAGE_MODES = {\n SQUARE: 'SQUARE',\n NATURAL: 'NATURAL'\n};\n","import arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\nimport 'underscore';\n\nvar initialState = null;\n\nexport default (state, action) => {\n state = state || initialState;\n\n switch (action.type) {\n case 'SET_TEMPLATES':\n if (action.payload) {\n state = arrayUtils.shallowCopyArrayObjects(action.payload);\n } else {\n state = null;\n }\n break;\n case 'UPDATE_TEMPLATE_IN_LIST':\n if (state) {\n state = arrayUtils.shallowCopyArrayObjects(state);\n let index = _.findIndex(\n state,\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 state[index].templateId = action.template.templateId;\n state[index].name = action.template.templateName;\n state[index].shortDescription =\n action.template.shortDescription;\n state[index].imageUrl = image.imageUrl;\n state[index].imageRotationDegrees =\n image.draftImage && image.draftImage.rotationDegrees;\n }\n }\n break;\n }\n return state;\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\nconst fetchCategoryList = () => (dispatch, getState) => {\n dispatch(requestCategoryList());\n const { initData } = getState();\n\n return getCategoryList(initData.version)\n .then(results => dispatch(receiveCategoryList(results.data)))\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.VERSION_MISMATCH:\n reload(true);\n break;\n case API_ERRORS.CANCELLED:\n break;\n default:\n dispatch(handleCategoryListError(error));\n break;\n }\n });\n};\n\nconst requestCategoryList = payload => ({\n type: actionTypes.REQUEST_CATEGORY_LIST,\n payload\n});\n\nconst receiveCategoryList = payload => ({\n type: actionTypes.RECEIVE_CATEGORY_LIST,\n payload\n});\n\nconst handleCategoryListError = payload => ({\n type: actionTypes.HANDLE_CATEGORY_LIST_ERROR,\n payload\n});\n\nexport default {\n fetchCategoryList\n};\n","import { touchWebClient } from 'tradera-utils/http';\n\nexport const getCategoryList = () =>\n touchWebClient.get('categories', { cancelTokenId: 'getCategoryList' });\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","import cookieUtil from 'tradera-utils/cookie';\nimport { SHIPPING_COUNTRY } from 'tradera-constants/cookies';\nimport { fetchAvailableShippingCountries } from './api';\nimport {\n selectIsLoadingAvailableShippingCountries,\n selectHasLoadedAvailableShippingCountries\n} from './selectors';\n\nimport {\n setShippingCountry,\n setAvailableShippingCountries,\n beginLoadingAvailableShippingOptions,\n setDefaultShippingCountry\n} from './reducer';\nimport { setPreferredCurrency } from 'tradera-state/multi-currency';\nimport { setPreferredLanguage } from 'tradera-state/language/actions';\nimport { Analytics } from 'packages';\nimport { getLanguageFromCountryCode } from 'tradera-utils/languagecode';\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(setPreferredCurrency(currencyCode));\n dispatch(setPreferredLanguage(languageCodeIso2, toLocalizedUrl));\n};\n","import axios from 'axios';\n\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { finalizeResponse, handleError } from 'tradera-utils/api';\n\nexport const fetchAvailableShippingCountries = () =>\n axios\n .get(ENDPOINTS.AVAILABLE_SHIPPING_COUNTRIES)\n .then(finalizeResponse())\n .then(({ data }) => ({\n shippingCountries: data.availableCountries.map(\n country => country.countryCodeIso2\n )\n }))\n .catch(handleError());\n","import BPOINT from '@tradera/blueprint/theme/scss/export/breakpoints.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 = {};\nArray.from(Object.entries(BPOINT))\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 BREAKPOINT_SIZES[breakpoint.name] = breakpoint;\n });\n\nexport { BREAKPOINTS, BREAKPOINT_SIZES };\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { ViewItemCarouselZoom } from 'tradera-components/carousels/view-item-carousel';\nimport { LocalLoader } from 'tradera-components/loader';\nimport HeartIcon from '@tradera/blueprint/theme/icons2/heart.svg?jsx';\nimport HeartFillIcon from '@tradera/blueprint/theme/icons2/heart-fill.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nimport uiActions from 'tradera-state/ui/actions';\nimport itemActions from 'tradera-state/items/actions';\n\nimport './quick-view-modal.scss';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\n\nconst QuickView = ({\n dispatch,\n itemIds,\n open,\n isLoggedIn,\n item,\n currentItem,\n loading\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n\n if (open !== 'open') {\n return null;\n }\n\n const { imageFormats, shortDescription, url, existsInWishList } = 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 urlWithTracking = url + '?itm_source=quick-view';\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

{shortDescription}

\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};\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});\n\nexport default connect(mapStateToProps)(QuickView);\n","export const generateItemCardPlaceholders = itemCount =>\n [...new Array(itemCount)].map((_, index) => ({\n itemId: index,\n shortDescription: ''\n }));\n","import 'underscore';\n\nvar defaultCampaignProperties = {\n campaignCode: '',\n campaignCodeId: null,\n campaignCodeDescription: null,\n maxFeeCap: null\n};\n\nvar initialState = _.assign({}, 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 state.validationError = state.campaignCodeValid ? null : true;\n } else {\n state.validationError = null;\n }\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'INITIALIZE_CAMPAIGN_CODE_STATE': {\n state = _.assign(\n {},\n state,\n _.assign({}, 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 break;\n }\n\n case 'SET_UNVERIFIED_CAMPAIGN_CODE': {\n state = _.assign(\n {},\n state,\n _.assign({}, defaultCampaignProperties, {\n campaignCode: action.campaignCode,\n\n campaignCodeId: null,\n campaignCodeDescription: null,\n campaignCodeValid: !action.campaignCode,\n bannerMobileImageUrl: null,\n bannerTabletImageUrl: null,\n bannerDesktopImageUrl: null\n })\n );\n break;\n }\n\n case 'SET_CAMPAIGN_VALIDATION_RESULT': {\n if (state.campaignCode === action.campaignCode) {\n state = _.assign(\n {},\n state,\n _.assign({}, 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 }\n break;\n }\n\n case 'RESET_MAX_FEE_CAP': {\n state = _.assign({}, state, {\n maxFeeCap: initialState.maxFeeCap\n });\n break;\n }\n\n case 'RESET_CAMPAIGN_BANNER': {\n state = _.assign({}, state, {\n bannerMobileImageUrl: initialState.bannerMobileImageUrl,\n bannerTabletImageUrl: action.bannerTabletImageUrl,\n bannerDesktopImageUrl: action.bannerDesktopImageUrl\n });\n break;\n }\n\n case 'TOGGLE_CAMPAIGN_CODE_CHECKBOX': {\n if (action.isChecked) {\n state = _.assign({}, state, {\n campaignCodeChecked: true,\n searching: false,\n searchingDelayed: false\n });\n } else {\n state = _.assign({}, 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 break;\n }\n\n case 'VALIDATING_CAMPAIGN_CODE_BY_SEARCHING': {\n state = _.assign({}, state, {\n searching: true\n });\n break;\n }\n\n case 'SEARCHING_FOR_CAMPAIGN_CODE_IS_DELAYED': {\n state = _.assign({}, state, {\n searchingDelayed: true\n });\n break;\n }\n }\n validate(state);\n return state;\n};\n","import React, { Fragment } from 'react';\nimport { useTranslator, useCurrentLanguage } from 'tradera-lang';\nimport { formatPrice } from '@tradera/blueprint/utils';\nimport Flag from 'tradera-components/flag/flag';\n\nconst ShippingDisplay = ({\n buyerCountryCode,\n shippingOptions,\n preferredCurrency\n}) => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n\n // TODO: Remove the \"x kr\" or \"x SEK\" in backend instead\n const removeCostInShippingOption = option =>\n option.replace(/\\s*\\d+\\s*kr$/, '').replace(/\\s*\\d+\\s*SEK$/, '');\n\n const isSwedishBuyer = buyerCountryCode === 'SE';\n let displayOptions = shippingOptions;\n if (buyerCountryCode !== undefined && !isSwedishBuyer) {\n displayOptions = [\n ...displayOptions.filter(\n option => option.toCountryCodeIso2 === buyerCountryCode\n ),\n ...displayOptions.filter(option => option.isTakeaway)\n ];\n }\n\n return (\n \n
\n
\n
\n \n {t('checkout_bin_shippingOptions')}:\n \n
\n
\n {displayOptions.map((ship, index) => {\n const description = removeCostInShippingOption(\n ship.displayText\n );\n return (\n \n {!isSwedishBuyer && (\n \n )}\n
\n {description}\n
\n
\n {formatPrice(\n ship.cost,\n language,\n preferredCurrency\n )}\n
\n
\n );\n })}\n
\n
\n \n
\n
\n \n {t('checkout_bin_shippingOptions')}:\n \n
\n
\n {displayOptions.map((ship, index) => {\n const description = removeCostInShippingOption(\n ship.displayText\n );\n return (\n \n
\n
\n {!isSwedishBuyer && (\n \n )}\n {description}\n
\n
\n {formatPrice(\n ship.cost,\n language,\n preferredCurrency\n )}\n
\n
\n \n );\n })}\n
\n );\n};\n\nexport default ShippingDisplay;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport qs from 'qs';\n\nconst specialSearchTerms = {\n stammisglaset: '/campaign/stammisglaset'\n};\n\n/**\n *\n * @param {string} searchTerm search term\n * @param {object} queryParams query paramters of the current page\n * @param {int} currentCategoryId id of the current selected category\n * @param {array} allCategories array with all the categories\n */\nexport const getNewSearchUrl = (\n searchTerm,\n queryParams,\n currentCategoryId,\n allCategories\n) => {\n // Search with search term\n if (searchTerm) {\n // ----------------------------------\n // Special case redirects\n const specialTermUrl = specialSearchTerms[searchTerm.toLowerCase()];\n if (specialTermUrl) {\n return specialTermUrl;\n }\n\n // Filter out params not to pass on in query reformulation\n const {\n q,\n categoryId,\n paging,\n spage,\n ...filteredQueryParams\n } = queryParams;\n\n // Query reformulation = First \"Nike\" and then \"Nike air\" or the other way around\n const isQueryReformulation =\n searchTerm.includes(q) || (q && q.includes(searchTerm));\n\n return (\n ENDPOINTS.SEARCH +\n qs.stringify(\n {\n // Keep\n ...(isQueryReformulation ? filteredQueryParams : {}),\n q: searchTerm,\n categoryId: currentCategoryId\n ? currentCategoryId\n : undefined\n },\n {\n addQueryPrefix: true\n }\n )\n );\n }\n\n if (currentCategoryId > 0) {\n // Search without search term, just category\n const currentCategory = allCategories.find(\n category => category.id === currentCategoryId\n );\n\n if (currentCategory) {\n return currentCategory.href;\n }\n return;\n }\n // Fall back to category page for empty search\n return '/kategorier';\n};\n\n/**\n *\n * @param {function} t translator function\n * @param {array} allCategories all categories\n * @param {array} categoryPath path to the current category. it's in the reverse order\n * @param {int} currentCategoryId id of the current category\n */\nexport const getCategoryDropdownConfig = (\n t,\n allCategories,\n categoryPath,\n currentCategoryId\n) => {\n const allCategoriesOption = {\n id: 0,\n name: t('searchSelect_allCategories'),\n isTopLevel: false,\n selected: false\n };\n\n const optionDivider = {\n id: 0,\n isTopLevel: false,\n name: '------------------',\n selected: false\n };\n\n /**\n * Strip \"all categories\" (may be multiple) from categorypath\n * Add rest of categorypath\n * Add \"all categories\"\n * Add all level1 categories\n */\n const optionsList = [\n ...categoryPath.filter(category => category.id !== 0),\n allCategoriesOption,\n optionDivider,\n ...allCategories\n ];\n\n /**\n * Get selected category from list, fallback to \"all categories\"\n */\n const selectedOption =\n optionsList.find(category => category.id === currentCategoryId) ||\n allCategoriesOption;\n\n return {\n selectedOption,\n optionsList\n };\n};\n\nexport const getNextIndex = (incrementBy, currentIndex, totalElements) => {\n if (currentIndex === null) {\n currentIndex = incrementBy > 0 ? -1 : 0;\n }\n\n let newIndex = currentIndex + incrementBy;\n if (newIndex < 0) {\n return totalElements - 1;\n }\n if (newIndex >= totalElements) {\n return 0;\n }\n return newIndex;\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\n\nconst SearchCategory = ({\n handleCategoryChange,\n selectOptions,\n selectedCategoryId,\n chosenCategory\n}) => {\n if (!selectOptions) {\n return null;\n }\n\n const isDefaultSelected = selectedCategoryId === 0;\n\n return (\n \n \n {chosenCategory.name}\n \n \n \n \n \n {selectOptions.map((option, index) => {\n return (\n option && (\n \n )\n );\n })}\n \n \n );\n};\n\nSearchCategory.propTypes = {\n handleCategoryChange: PropTypes.func,\n selectOptions: PropTypes.array,\n selectedCategoryId: PropTypes.number,\n chosenCategory: PropTypes.object\n};\n\nexport default SearchCategory;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang';\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}) => {\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,\n onUserInputChange: PropTypes.func,\n onUserKeyUp: PropTypes.func,\n searchInputRef: PropTypes.object,\n searchTerm: PropTypes.string,\n selectedCategory: PropTypes.object,\n suggestionsElement: PropTypes.element\n};\n\nexport default SearchInput;\n","import React from 'react';\n\n// https://github.com/facebook/react/issues/3386#issuecomment-291152357\nconst HighlightWord = ({ text, query = '', icon }) => {\n if (!text) {\n return;\n }\n if (!query) {\n return (\n \n {icon && icon}\n {text}\n \n );\n }\n return (\n \n {icon && icon}\n {text.split(query).reduce((prev, current, i) => {\n if (!i) {\n return [current];\n }\n return prev.concat(\n \n {query}\n ,\n current\n );\n }, [])}\n \n );\n};\n\nexport default HighlightWord;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport ALink from 'tradera-components/alink';\nimport FilterIcon from '@tradera/blueprint/theme/icons2/filter.svg?jsx';\nimport TimeIcon from '@tradera/blueprint/theme/icons2/time.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user-fill.svg?jsx';\nimport HighlightWord from './highlight-word';\nimport CloseNarrowIcon from '@tradera/blueprint/theme/icons/close-narrow.svg?jsx';\nimport {\n addRecentSearchText,\n removeRecentSearchText\n} from 'tradera-state/personalisation/actions';\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);\n }}\n onMouseDown={preventDefault}\n data-suggestion\n data-previous-suggestion={text}\n data-ga-category=\"User search\"\n data-ga-action=\"Suggestion - Previous Query\"\n data-ga-label={searchTerm}>\n }\n />\n \n {\n dispatch(removeRecentSearchText(text));\n onPreviousSearchRemoved();\n }}\n onMouseDown={preventDefault}\n type=\"reset\">\n \n \n \n );\n};\n\nexport const SearchesSuggestionsListItem = ({\n changeSearchTerm,\n inSPA,\n isSelected,\n item,\n searchTerm,\n selectedCategoryId\n}) => {\n const categoryId = item.category\n ? item.category.id\n : selectedCategoryId\n ? selectedCategoryId\n : 0;\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n changeSearchTerm(item.text)}\n onMouseDown={preventDefault}\n data-suggestion\n data-search-suggestion={item.text}\n data-ga-category=\"User search\"\n data-ga-action={`Suggestion - ${\n item.category ? 'Category' : 'Auto Query'\n }`}\n data-ga-label={item.text}>\n \n {item.category ? `inom ${item.category.name}` : ''}\n \n );\n};\n\nexport const ShopsSuggestionsListItem = ({\n changeSearchTerm,\n // inSPA,\n isSelected,\n item,\n searchTerm\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const suggestionUrl =\n item.name === 'Musikhjälpen'\n ? toLocalizedUrl('/charity/musikhjalpen')\n : toLocalizedUrl(`/profile/items/${item.memberId}/${item.urlName}`);\n return (\n changeSearchTerm(item.text)}\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 CampaignSuggestionsListItem = ({\n changeSearchTerm,\n // inSPA,\n isSelected,\n item,\n searchTerm\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const suggestionUrl = toLocalizedUrl('/charity/' + item.campaignId);\n return (\n changeSearchTerm(item.text)}\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 }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\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} 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 '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, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect, useDispatch } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\n\nimport PAGE_TYPES from 'tradera-constants/page-types';\nimport discoverActions from 'tradera-state/discover/actions';\nimport { debounce } from 'packages';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport { getSuggestions, addRecentSearch } from './helpers/suggestions-api';\nimport {\n trackSearch,\n trackSearchCategoryChanges,\n trackResetButton\n} from './helpers/search.analytics';\nimport {\n getNewSearchUrl,\n getCategoryDropdownConfig,\n getNextIndex\n} from './helpers/helper';\n\nimport SearchCategory from 'components/search-category/search-category';\nimport SearchInput from './components/search-input';\nimport SearchSuggestion from './components/search-suggestion';\n\nexport const KEYCODE = {\n ENTER: 13,\n ESC: 27,\n UP: 38,\n DOWN: 40\n};\n\nexport const MIN_CHARS_FOR_SUGGESTIONS = 2;\n\nexport const Search = ({\n inSPA,\n allCategories = [],\n categoryPath = [],\n inputClassName = '',\n 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 (newSearchTerm.length >= MIN_CHARS_FOR_SUGGESTIONS) {\n loadSuggestionsDebounce(newSearchTerm, suggestions => {\n setSuggestions(suggestions);\n });\n return;\n }\n const suggestions = await getSuggestionsWrapper(newSearchTerm);\n\n setSuggestions(suggestions);\n };\n\n const handleUserInputChange = evt =>\n loadSearchSuggestions(evt.target.value);\n\n const handleBlur = () => setIsSearchInputFocused(false);\n\n const handleFocus = () => {\n loadSearchSuggestions(searchTerm);\n };\n\n const handlePreviousSearchRemoved = () => {\n loadSearchSuggestions(searchTerm);\n };\n\n const handleCategoryChange = event => {\n const currentCategoryId = parseInt(event.target.value, 10);\n setCurrentCategoryId(currentCategoryId);\n dispatch(discoverActions.setCurrentCategoryId(currentCategoryId));\n trackSearchCategoryChanges(event);\n };\n\n const changeWindowLocation = newQuery => {\n // Trim search term to avoid empty searches\n const trimmedSearchTerm = newQuery.trim();\n let newSearchUrl = getNewSearchUrl(\n trimmedSearchTerm,\n queryParams,\n currentCategoryId,\n [...allCategories, ...categoryPath]\n );\n\n // Search with search term\n if (trimmedSearchTerm) {\n addRecentSearch(trimmedSearchTerm);\n trackSearch(trimmedSearchTerm);\n }\n if (inSPA) {\n searchInputRef.current.blur();\n history.push(toLocalizedUrl(newSearchUrl));\n } else {\n window.location.href = toLocalizedUrl(newSearchUrl);\n }\n setIsSearchInputFocused(false);\n };\n\n const handleFormSubmit = event => {\n event.preventDefault();\n changeWindowLocation(searchTerm);\n };\n\n const clearSearchInputAndGoToBrowse = event => {\n event.preventDefault();\n trackResetButton();\n setSearchTerm('');\n changeWindowLocation('');\n };\n\n const handleSuggestionsChangingSearchTerm = newSearchTerm => {\n // fixes case when user is on the same url as the current selected serach term. To reproduce:\n // 1. search tröja\n // 2. change the search term in the search box to \"tröj\" without hitting enter\n // 3. now you get previous searches \"tröja\", click on it\n // 4. without next line nothing will happen\n if (newSearchTerm !== searchTerm) {\n setSearchTerm(newSearchTerm);\n }\n setIsSearchInputFocused(false);\n searchInputRef.current.blur();\n };\n\n const {\n selectedOption: selectedCategory,\n optionsList: categorySelectOptions\n } = getCategoryDropdownConfig(\n t,\n allCategories,\n categoryPath,\n currentCategoryId\n );\n\n return (\n \n }\n inputClassName={inputClassName}\n onBlur={handleBlur}\n onClearSearchInput={clearSearchInputAndGoToBrowse}\n onFocus={handleFocus}\n onFormSubmit={handleFormSubmit}\n onUserInputChange={handleUserInputChange}\n onUserKeyUp={handleUserKeyUp}\n searchInputRef={searchInputRef}\n searchTerm={searchTerm}\n selectedCategory={selectedCategory}\n suggestionsElement={\n \n }\n />\n );\n};\n\nconst mapStateToProps = state => {\n const pageType = state.page.type;\n let categoryPath = undefined;\n let discoverCurrentCategoryId = 0;\n let discoverSearchTerm = '';\n\n // Reflect search state on search & category pages\n if (\n [\n PAGE_TYPES.SEARCH_RESULT_PAGE,\n PAGE_TYPES.CATEGORY_RESULT_PAGE\n ].includes(pageType)\n ) {\n categoryPath = state.discover.categoryPath;\n discoverCurrentCategoryId = state.discover.currentCategoryId;\n discoverSearchTerm = state.discover.queryParams?.q || '';\n }\n\n return {\n allCategories: state.page.allCategories,\n categories: state.categories,\n categoryPath,\n discoverCurrentCategoryId,\n queryParams: state.discover.queryParams,\n discoverSearchTerm\n };\n};\n\nSearch.propTypes = {\n inSPA: PropTypes.bool.isRequired,\n allCategories: PropTypes.array,\n categoryPath: PropTypes.array,\n discoverCurrentCategoryId: PropTypes.number,\n queryParams: PropTypes.object\n};\n\nconst ConnectedSearch = connect(mapStateToProps)(Search);\nexport const SearchInSpa = withRouter(ConnectedSearch);\nexport const SearchOutsideSpa = ConnectedSearch;\n","import { Analytics } from 'packages';\n\nexport const trackSearchCategoryChanges = evt => {\n const selectBox = evt.target;\n const selectedOption =\n selectBox &&\n selectBox.selectedOptions &&\n selectBox.selectedOptions.length > 0 &&\n selectBox.selectedOptions[0];\n if (!selectedOption) {\n return;\n }\n Analytics.trackEvent({\n category: 'User search',\n action: 'Top search box Category dropdown',\n label: selectedOption.text\n });\n};\n\nexport const trackSearch = label => {\n Analytics.trackEvent({\n category: 'User search',\n action: 'Search Query',\n label: label\n });\n};\n\nexport const trackResetButton = () => {\n Analytics.trackEvent({\n category: 'User search',\n action: ' Top search box Reset'\n });\n};\n","// We map this way to ensure that each key in lokalise is present in code.\n// This allows us to clean up unnecessary codes in the future.\nexport const mapCountryCodeToCountryKey = countryCode => {\n const lokaliseKey = {\n ad: 'country_ad',\n ae: 'country_ae',\n af: 'country_af',\n ag: 'country_ag',\n ai: 'country_ai',\n al: 'country_al',\n am: 'country_am',\n an: 'country_an',\n ao: 'country_ao',\n aq: 'country_aq',\n ar: 'country_ar',\n as: 'country_as',\n at: 'country_at',\n au: 'country_au',\n aw: 'country_aw',\n az: 'country_az',\n ba: 'country_ba',\n bb: 'country_bb',\n bd: 'country_bd',\n be: 'country_be',\n bf: 'country_bf',\n bg: 'country_bg',\n bh: 'country_bh',\n bi: 'country_bi',\n bj: 'country_bj',\n bm: 'country_bm',\n bn: 'country_bn',\n bo: 'country_bo',\n br: 'country_br',\n bs: 'country_bs',\n bt: 'country_bt',\n bv: 'country_bv',\n bw: 'country_bw',\n by: 'country_by',\n bz: 'country_bz',\n ca: 'country_ca',\n cc: 'country_cc',\n cd: 'country_cd',\n cf: 'country_cf',\n cg: 'country_cg',\n ch: 'country_ch',\n ci: 'country_ci',\n ck: 'country_ck',\n cl: 'country_cl',\n cm: 'country_cm',\n cn: 'country_cn',\n co: 'country_co',\n cr: 'country_cr',\n cu: 'country_cu',\n cv: 'country_cv',\n cx: 'country_cx',\n cy: 'country_cy',\n cz: 'country_cz',\n de: 'country_de',\n dj: 'country_dj',\n dk: 'country_dk',\n dm: 'country_dm',\n do: 'country_do',\n dz: 'country_dz',\n ec: 'country_ec',\n ee: 'country_ee',\n eg: 'country_eg',\n eh: 'country_eh',\n er: 'country_er',\n es: 'country_es',\n et: 'country_et',\n fi: 'country_fi',\n fj: 'country_fj',\n fk: 'country_fk',\n fm: 'country_fm',\n fo: 'country_fo',\n fr: 'country_fr',\n fx: 'country_fx',\n ga: 'country_ga',\n gb: 'country_gb',\n gd: 'country_gd',\n ge: 'country_ge',\n gf: 'country_gf',\n gh: 'country_gh',\n gi: 'country_gi',\n gl: 'country_gl',\n gm: 'country_gm',\n gn: 'country_gn',\n gp: 'country_gp',\n gq: 'country_gq',\n gr: 'country_gr',\n gs: 'country_gs',\n gt: 'country_gt',\n gu: 'country_gu',\n gw: 'country_gw',\n gy: 'country_gy',\n hk: 'country_hk',\n hm: 'country_hm',\n hn: 'country_hn',\n hr: 'country_hr',\n ht: 'country_ht',\n hu: 'country_hu',\n id: 'country_id',\n ie: 'country_ie',\n il: 'country_il',\n in: 'country_in',\n io: 'country_io',\n iq: 'country_iq',\n ir: 'country_ir',\n is: 'country_is',\n it: 'country_it',\n jm: 'country_jm',\n jo: 'country_jo',\n jp: 'country_jp',\n ke: 'country_ke',\n kg: 'country_kg',\n kh: 'country_kh',\n ki: 'country_ki',\n km: 'country_km',\n kn: 'country_kn',\n kp: 'country_kp',\n kr: 'country_kr',\n kw: 'country_kw',\n ky: 'country_ky',\n kz: 'country_kz',\n la: 'country_la',\n lb: 'country_lb',\n lc: 'country_lc',\n li: 'country_li',\n lk: 'country_lk',\n lr: 'country_lr',\n ls: 'country_ls',\n lt: 'country_lt',\n lu: 'country_lu',\n lv: 'country_lv',\n ly: 'country_ly',\n ma: 'country_ma',\n mc: 'country_mc',\n md: 'country_md',\n mg: 'country_mg',\n mh: 'country_mh',\n mk: 'country_mk',\n ml: 'country_ml',\n mm: 'country_mm',\n mn: 'country_mn',\n mo: 'country_mo',\n mp: 'country_mp',\n mq: 'country_mq',\n mr: 'country_mr',\n ms: 'country_ms',\n mt: 'country_mt',\n mu: 'country_mu',\n mv: 'country_mv',\n mw: 'country_mw',\n mx: 'country_mx',\n my: 'country_my',\n mz: 'country_mz',\n na: 'country_na',\n nc: 'country_nc',\n ne: 'country_ne',\n nf: 'country_nf',\n ng: 'country_ng',\n ni: 'country_ni',\n nl: 'country_nl',\n no: 'country_no',\n np: 'country_np',\n nr: 'country_nr',\n nu: 'country_nu',\n nz: 'country_nz',\n om: 'country_om',\n pa: 'country_pa',\n pe: 'country_pe',\n pf: 'country_pf',\n pg: 'country_pg',\n ph: 'country_ph',\n pk: 'country_pk',\n pl: 'country_pl',\n pm: 'country_pm',\n pn: 'country_pn',\n pr: 'country_pr',\n ps: 'country_ps',\n pt: 'country_pt',\n pw: 'country_pw',\n py: 'country_py',\n qa: 'country_qa',\n re: 'country_re',\n ro: 'country_ro',\n ru: 'country_ru',\n rs: 'country_rs',\n rw: 'country_rw',\n sa: 'country_sa',\n sb: 'country_sb',\n sc: 'country_sc',\n sd: 'country_sd',\n se: 'country_se',\n sg: 'country_sg',\n sh: 'country_sh',\n si: 'country_si',\n sj: 'country_sj',\n sk: 'country_sk',\n sl: 'country_sl',\n sm: 'country_sm',\n sn: 'country_sn',\n so: 'country_so',\n sr: 'country_sr',\n st: 'country_st',\n sv: 'country_sv',\n sy: 'country_sy',\n sz: 'country_sz',\n tc: 'country_tc',\n td: 'country_td',\n tf: 'country_tf',\n tg: 'country_tg',\n th: 'country_th',\n tj: 'country_tj',\n tk: 'country_tk',\n tl: 'country_tl',\n tm: 'country_tm',\n tn: 'country_tn',\n to: 'country_to',\n tr: 'country_tr',\n tt: 'country_tt',\n tv: 'country_tv',\n tw: 'country_tw',\n tz: 'country_tz',\n ua: 'country_ua',\n ug: 'country_ug',\n um: 'country_um',\n us: 'country_us',\n uy: 'country_uy',\n uz: 'country_uz',\n va: 'country_va',\n vc: 'country_vc',\n ve: 'country_ve',\n vg: 'country_vg',\n vi: 'country_vi',\n vn: 'country_vn',\n vu: 'country_vu',\n wf: 'country_wf',\n ws: 'country_ws',\n ye: 'country_ye',\n yt: 'country_yt',\n yu: 'country_yu',\n za: 'country_za',\n zm: 'country_zm',\n zw: 'country_zw'\n }[countryCode.toLowerCase()];\n if (!lokaliseKey)\n throw `CountryCode ${countryCode} has no mapping to lokalise key`;\n return lokaliseKey;\n};\n","import React from 'react';\nimport { useParams, useLocation, useHistory } from 'react-router-dom';\n\nconst withRouterParams = Component => {\n const ComposedComponent = ({ ...props }) => {\n return (\n \n );\n };\n return ComposedComponent;\n};\n\nexport default withRouterParams;\n","import 'underscore';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\n\nvar initialStateBankIdRequirementExcluded;\nvar initialState;\n\nconst initModuleGlobals = () => {\n if (initialState) {\n return initialState;\n }\n initialStateBankIdRequirementExcluded = {\n showBankIdProgress: false,\n showBankIdError: false,\n authenticationStarted: false,\n errorMessage: ''\n };\n initialState = _.assign({}, initialStateBankIdRequirementExcluded, {\n initialBankIdForBinRequired: userData.initialBankIdForBinRequired,\n supportsVerification: userData.supportsVerification,\n bankIdForBinRequired: userData.bankIdForBinRequired,\n maskedPersonalNumber: userData.maskedPersonalNumber\n });\n};\n\nexport default (state, action) => {\n initModuleGlobals();\n state = state || initialState;\n switch (action.type) {\n case 'RESET_BANKID_AUTHENTICATION_STATE':\n return _.assign({}, initialState, {\n initialBankIdForBinRequired: state.initialBankIdForBinRequired,\n bankIdForBinRequired: state.bankIdForBinRequired,\n supportsVerification: state.supportsVerification\n });\n case 'SHOW_BANKID_PROGRESS':\n return _.assign({}, state, { showBankIdProgress: true });\n case 'SET_BANKID_AUTHENTICATION_STARTED':\n return _.assign({}, state, { authenticationStarted: true });\n case 'SET_BANKID_AUTHENTICATION_ENDED':\n return _.assign({}, state, { authenticationStarted: false });\n case 'SET_BANKID_ERROR_MESSAGE':\n return _.assign({}, state, {\n errorMessage: action.payload,\n showBankIdError: true\n });\n case 'SET_BANKID_NOT_REQUIRED':\n return _.assign({}, state, {\n initialBankIdForBinRequired: false,\n bankIdForBinRequired: false,\n supportsVerification: false\n });\n default:\n return state;\n }\n};\n","import { 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 shippingOptions,\n ongoingPaymentAttempt\n } = payload;\n state.buyerMember = { ...buyerMember };\n state.sellerMember = { ...sellerMember };\n state.items = purchaseOrder.items;\n state.shippingOptions = shippingOptions;\n state.isFetching = false;\n state.hasError = false;\n state.purchaseOrderId = purchaseOrder.purchaseOrderId;\n state.isPaid = purchaseOrder.isPaid;\n state.isMarkedAsPaidByBuyer = purchaseOrder.isMarkedAsPaidByBuyer;\n state.ongoingPaymentAttempt = ongoingPaymentAttempt;\n },\n receivePaymentOptions: (state, { payload }) => {\n const { paymentOptions } = payload;\n state.payment.paymentOptions = paymentOptions;\n state.payment.isFetching = false;\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 state.showDisableOverlay = 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 state.showDisableOverlay = 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 state.showDisableOverlay = false;\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.showDisableOverlay = false;\n state.modal.status = MODAL_STATUS.ERROR;\n },\n setSelectedPayment: (state, { payload }) => {\n state.payment.selectedPayment = payload;\n state.payment.paymentMethodData = null;\n state.checkoutSummary.hasError = false;\n },\n setSelectedShipping: (state, { payload }) => {\n state.selectedShipping = payload;\n },\n setShowDisalbeOverlay: (state, { payload }) => {\n state.showDisableOverlay = payload;\n },\n setOngoingPaymentAttempt: (state, { payload }) => {\n state.ongoingPaymentAttempt = payload;\n }\n }\n});\n\nexport const {\n openModal,\n closeModal,\n cancelPayment,\n receiveCheckout,\n receivePaymentOptions,\n setFetching,\n setHasError,\n setCheckoutSummaryFetching,\n setCheckoutSummaryHasError,\n setPaymentFetching,\n setPaymentHasError,\n setPaymentMethodData,\n setSelectedPayment,\n setSelectedShipping,\n setShowDisalbeOverlay,\n setOngoingPaymentAttempt\n} = checkoutSlice.actions;\n\nexport default checkoutSlice.reducer;\n","import { useLayoutEffect, useState } from 'react';\nimport { isMobile } from 'tradera-utils/breakpoints';\n\nexport function useBreakpointMobile() {\n const [active, setActive] = useState(isMobile(window.innerWidth));\n useLayoutEffect(() => {\n const handleResize = event =>\n setActive(isMobile(event.target.innerWidth));\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n });\n return active;\n}\n","import { useEffect } from 'react';\n\nexport const useOnMount = fn => {\n useEffect(fn, []);\n};\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useTranslator } from 'tradera-lang';\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 = (type = PAGE_TYPES.DEFAULT, customPageMetaData) => {\n const { t } = useTranslator();\n const dispatch = useDispatch();\n useEffect(() => {\n const pageMetaData = {\n metaRobots: null,\n metaTitle: t(`pageMeta_title_${type}`),\n type,\n ...(customPageMetaData || {})\n };\n dispatch(pageActions.setPageMeta(pageMetaData));\n }, [customPageMetaData, dispatch, t, type]);\n};\n\nexport { usePageMeta, PAGE_TYPES };\n","import { useEffect } from 'react';\n\nconst useScrollToTopOnMount = () => {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n return null;\n};\n\nexport { useScrollToTopOnMount };\n","export const PAGE_NAMES = {\n Overview: 'MyTradera',\n BuyerActiveItems: 'MyTradera_ActiveBids',\n BuyerItemsLost: 'MyTradera_LostBids',\n SellerActive: 'MyTradera_ActiveItems',\n SellerSold: 'MyTradera_SoldItems',\n SellerUnsold: 'MyTradera_UnsoldItems',\n BuyerPurchases: 'MyTradera_Purchases',\n Profile: 'MyTradera_Profile',\n Settings: 'MyTradera_Settings'\n};\n","import 'underscore';\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 = _.union(\n state.ignoreProperties,\n action.payload\n );\n },\n REMOVE_IGNORE_PROPERTIES: (state, action) => {\n state.ignoreProperties = _.difference(\n state.ignoreProperties,\n action.payload\n );\n }\n});\n","import 'underscore';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\n\nvar _paymentOptions;\nvar _paymentOptionsPresentationData;\nvar 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 = 'Utkastet har fel betalsätt';\n }\n } else {\n var paymentOptions = newState.selectedPaymentOptions;\n var hasAnyValidPayment = _.some(paymentOptions, po => po);\n newState.validationError = hasAnyValidPayment ? null : 'Ange betalsätt';\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 = _.map(_paymentOptions, function(\n paymentOption\n ) {\n var presentationData = _.find(_paymentOptionsPresentationData, function(\n pd\n ) {\n return pd.value == paymentOption.paymentType;\n });\n paymentOption.selected = _.find(state.uiCheckedPaymentOptions, function(\n selectedPaymentOption\n ) {\n return selectedPaymentOption == paymentOption.paymentType;\n });\n return _.assign(presentationData, paymentOption);\n })\n .filter(function(paymentOption) {\n return paymentOption && !!paymentOption.value;\n })\n .filter(function(paymentOption) {\n return state.takeawaySelected || paymentOption.value !== 'Cash';\n });\n\n state.displayPaymentOptions = _.filter(filteredPaymentOptions, function(\n po\n ) {\n return po.selected;\n })\n .map(function(po) {\n return po.text;\n })\n .join(', ');\n var paymentOptionsTop = _.filter(filteredPaymentOptions, function(po) {\n return po.top || po.selected;\n });\n state.selectedPaymentOptions = _.filter(filteredPaymentOptions, function(\n paymentOption\n ) {\n if (!paymentOption || !paymentOption.value) {\n return false;\n }\n return paymentOption.selected;\n }).map(function(paymentOption) {\n return paymentOption.value;\n });\n state.paymentOptionGroups = [\n {\n visible: true,\n paymentOptions: paymentOptionsTop,\n showToggle:\n _.filter(filteredPaymentOptions, function(po) {\n return !po.top && !po.selected;\n }).length > 0\n },\n {\n visible: paymentOptionsTop.length === 0,\n paymentOptions: _.filter(filteredPaymentOptions, function(po) {\n return !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.takeawaySelected\n };\n shapePaymentOptions(newState);\n return validate(newState);\n }\n case 'ENSURE_ANY_PAYMENT_OPTION_FOR_CHARITY': {\n const newState = { ...state };\n const hasAnyValidPayment = _.some(\n newState.selectedPaymentOptions,\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","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:\n ga && ga.getAll && ga.getAll()?.length > 0\n ? ga.getAll()[0].get('clientId') || defaultClientId\n : defaultClientId,\n trackingIds:\n typeof gaData !== 'undefined' ? [Object.keys(gaData)[1]] : []\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n selectAvailableLanguages,\n selectPreferredLanguage,\n setPreferredLanguage\n} from 'tradera-state/language';\nimport RadioGroup from 'tradera-components/form-controls/radio-group';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport { MopinionLanguageFeedbackButton } from 'components/customer-feedback/mopinion-button';\nimport LanguageIcon from '@tradera/blueprint/theme/icons2/language.svg?jsx';\n\nexport const LanguageSelect = ({\n idPrefix,\n languages,\n preferredLanguage,\n setPreferredLanguage,\n onLanguageSelected\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n onLanguageSelected = onLanguageSelected || (() => {});\n const onLanguageChanged = (code, e) => {\n setPreferredLanguage(code, toLocalizedUrl);\n onLanguageSelected(code, e);\n };\n return (\n
\n
\n \n {t('siteHeader_language')}\n \n Beta\n \n
\n
\n \n {t('siteHeader_languageDisclaimerShort')}\n \n \n
\n ({\n name: `${language.displayName} - ${language.languageCodeIso3}`,\n value: language.languageCodeIso2\n }))}\n checked={preferredLanguage.languageCodeIso2}\n handleOnChange={onLanguageChanged}\n className=\"form-check-sm mt-3 ml-3\"\n radioButtonClassName=\"form-check-sm\"\n />\n
\n );\n};\n\nLanguageSelect.propTypes = {\n idPrefix: PropTypes.string.isRequired,\n languages: PropTypes.arrayOf(\n PropTypes.shape({\n languageCodeIso2: PropTypes.string,\n displayName: PropTypes.string,\n languageCodeIso3: PropTypes.string\n })\n ),\n preferredLanguage: PropTypes.object,\n onLanguageSelected: PropTypes.func\n};\n\nconst mapStateToProps = state => ({\n languages: selectAvailableLanguages(state),\n preferredLanguage: selectPreferredLanguage(state)\n});\n\nconst mapDispatchToProps = {\n setPreferredLanguage\n};\n\nexport const ConnectedLanguageSelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LanguageSelect);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport RadioGroup from 'tradera-components/form-controls/radio-group';\nimport {\n selectCurrencies,\n selectPreferredCurrency,\n setPreferredCurrency\n} from 'tradera-state/multi-currency';\nimport { useTranslator } from 'tradera-lang';\nimport CurrencyIcon from '@tradera/blueprint/theme/icons2/currency.svg?jsx';\n\nexport const CurrencySelect = ({\n idPrefix,\n currencies,\n preferredCurrency,\n onCurrencySelected\n}) => {\n const { t } = useTranslator();\n return (\n
\n
\n \n {t('siteHeader_currency')}\n
\n ({\n name: ` ${currency.shortName} - ${currency.longName}`,\n value: currency.code\n }))}\n checked={preferredCurrency.code}\n handleOnChange={onCurrencySelected}\n className=\"form-check-sm mt-3 ml-3\"\n radioButtonClassName=\"form-check-sm\"\n />\n
\n );\n};\n\nCurrencySelect.propTypes = {\n idPrefix: PropTypes.string.isRequired,\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};\n\nconst mapStateToProps = state => ({\n currencies: selectCurrencies(state),\n preferredCurrency: selectPreferredCurrency(state)\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n onCurrencySelected: (code, e) => {\n dispatch(setPreferredCurrency(code));\n ownProps.onCurrencySelected && ownProps.onCurrencySelected(code, e);\n }\n});\n\nexport const ConnectedCurrencySelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(CurrencySelect);\n","import React, { useState } from 'react';\nimport { FixedSizeList } from 'react-window';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport ArrowDownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\nimport { useTranslator } from 'tradera-lang';\nimport { mapCountryCodeToCountryKey } from 'tradera-components/international-shipping-modal/map-country-code-to-country-key';\nimport Flag from 'tradera-components/flag/flag';\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 \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 from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useTranslator } from 'tradera-lang';\nimport ShippingIcon from '@tradera/blueprint/theme/icons2/shipping.svg?jsx';\nimport {\n selectAvailableShippingCountries,\n selectShippingCountry,\n selectIsLoadingAvailableShippingCountries,\n selectHasLoadedAvailableShippingCountries\n} from 'tradera-state/shipping-region/selectors';\nimport {\n updateShippingRegion,\n getAvailableShippingCountries\n} from 'tradera-state/shipping-region/actions';\nimport Spinner from 'components/spinner/spinner';\nimport { ShippingCountrySelectDropdown } from './shipping-country-select-dropdown';\n\nexport const ShippingCountrySelect = ({\n getAvailableShippingCountries,\n shippingCountry,\n shippingCountries,\n updateShippingRegion,\n showShippingCountries,\n isLoadingAvailableShippingCountries,\n onShippingCountrySelected\n}) => {\n const { t } = useTranslator();\n getAvailableShippingCountries();\n\n return (\n
\n \n \n \n {t('siteHeader_shippingCountry')}\n \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\nShippingCountrySelect.propTypes = {\n shippingCountries: PropTypes.arrayOf(PropTypes.string),\n shippingCountry: PropTypes.object,\n updateShippingRegion: PropTypes.func\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 ConnectedShippingCountrySelect = connect(\n mapStateToProps,\n mapDispatchToProps\n)(ShippingCountrySelect);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ConnectedLanguageSelect } from './language-select';\nimport { ConnectedCurrencySelect } from './currency-select';\nimport { ConnectedShippingCountrySelect } from './shipping-country-select';\n\nexport const LocalizationMenu = ({\n idPrefix,\n onBlur,\n showCurrencySelection,\n showRegionSelection,\n className\n}) => (\n
\n {showRegionSelection && (\n <>\n \n
\n \n )}\n <>\n \n
\n \n {showCurrencySelection && (\n \n )}\n
\n);\n\nLocalizationMenu.propTypes = {\n idPrefix: PropTypes.string,\n showRegionSelection: PropTypes.bool.isRequired,\n showCurrencySelection: PropTypes.bool.isRequired,\n className: PropTypes.string\n};\n\nLocalizationMenu.defaultProps = {\n className: ''\n};\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 UPDATE_SHIPPING_PRICE: initData.pageSpecificData?.UPDATE_SHIPPING_PRICE,\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};\n","import { toLocalizedRiotUrl } from './../utils/language';\nimport config from './config';\nimport history from '../../app_react/history';\n\nexport default new (function() {\n this.goToDraft = function(draftId) {\n if (draftId) {\n history.push('draft/' + draftId);\n } else {\n history.push('draft/');\n }\n };\n\n this.goToStart = function() {\n if (config.isReactComponentsEnabled) {\n history.push(toLocalizedRiotUrl('/selling/'));\n } else {\n history.push('/');\n }\n };\n\n this.goToSummary = function(draftId, fromPage) {\n if (fromPage) {\n history.push('summary/' + draftId + '?from=' + fromPage);\n } else {\n history.push('summary/' + draftId);\n }\n };\n\n this.goToTemplates = function() {\n history.push('templates');\n };\n\n this.goToTemplate = function(templateId) {\n if (templateId) {\n history.push('template/' + templateId);\n } else {\n history.push('template/');\n }\n };\n\n this.goToPublished = function(itemId) {\n if (config.isReactComponentsEnabled) {\n history.push(toLocalizedRiotUrl('/selling/published/' + itemId));\n } else {\n history.push('published/' + itemId);\n }\n };\n\n this.goToEdit = function(draftId, propertyNames) {\n history.push('draft/' + draftId + '/edit/' + propertyNames);\n };\n\n this.goToEditTemplate = function(draftId, propertyNames) {\n history.push('template/' + draftId + '/edit/' + propertyNames);\n };\n\n this.setDraftUrlWithoutReload = function(draftId) {\n window.history.replaceState(\n {},\n document.title,\n toLocalizedRiotUrl('/selling/draft/' + draftId)\n );\n };\n})();\n","import {\n PREFERRED_LANGUAGE,\n REGION_PICKER_DISMISSED,\n SHIPPING_COUNTRY\n} from 'tradera-constants/cookies';\nimport cookieUtil from 'tradera-utils/cookie';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\n\nexport default initData => {\n const localizationRegionPickerEnabled =\n initData &&\n initData.featureSwitches &&\n initData.featureSwitches['localization-region-picker'];\n const regionPickerDismissed =\n GdprSettings.isFunctionalEnabled() &&\n cookieUtil.hasCookie(REGION_PICKER_DISMISSED);\n const preferredLanguage =\n GdprSettings.isFunctionalEnabled() &&\n cookieUtil.hasCookie(PREFERRED_LANGUAGE);\n const preferredShippingCountry = initData.isLoggedIn\n ? initData.memberCountryCodeIso2\n : GdprSettings.isFunctionalEnabled() &&\n cookieUtil.hasCookie(SHIPPING_COUNTRY) &&\n cookieUtil.readCookie(SHIPPING_COUNTRY);\n\n return {\n availableShippingCountries: [],\n isLoadingAvailableShippingCountries: false,\n hasLoadedAvailableShippingCountries: false,\n shippingCountry: { countryCodeIso2: preferredShippingCountry || 'SE' },\n localizationRegionPickerEnabled,\n regionPickerDismissed,\n preferredLanguage\n };\n};\n","import React from 'react';\n\nimport { useTranslator } from 'tradera-lang';\nimport ErrorContainer from './error-container';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst 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\nexport default GeneralError;\n","import React from 'react';\n\nimport { useTranslator } from 'tradera-lang';\nimport ErrorContainer from './error-container';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst NotFoundError = () => {\n const { t } = useTranslator();\n return (\n \n

\n \n

\n

{t('error_pageNotFound')}

\n

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

\n
\n );\n};\n\nexport default NotFoundError;\n","export const 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 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;\n\nexport const selectInternationalShippingProviders = state =>\n state.views.shippingCalculator.shippingProviders.filter(\n ({ providerName }) =>\n ['SchenkerPrivpak', 'PostNordParcel', 'PostNordStamp'].find(\n p => p === providerName\n )\n );\n\nexport const selectShippingProductsGroupedByCountry = state =>\n state.views.shippingCalculator.internationalProductsGroupedByCountry;\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 selectSelectedCountry = state =>\n state.views.shippingCalculator.selectedCountry;\n\nexport const selectShowError = state =>\n state.views.shippingCalculator.showError;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n openMopinionWidget,\n languageFeedbackForm,\n paynovaFeedbackForm,\n automaticSuggestionFeedbackForm,\n isEnabled\n} from './mopinion-loader';\n\nexport const MopinionButton = ({ formKey, text, className }) => {\n return isEnabled() ? (\n openMopinionWidget(formKey)}>\n {text}\n \n ) : null;\n};\n\nMopinionButton.propTypes = {\n formKey: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired\n};\n\nexport const MopinionLanguageFeedbackButton = ({ text, className }) => (\n \n);\n\nMopinionLanguageFeedbackButton.propTypes = {\n text: PropTypes.string.isRequired\n};\n\nexport const MopinionPaynovaFeedbackButton = ({ text, className }) => (\n \n);\n\nMopinionLanguageFeedbackButton.propTypes = {\n text: PropTypes.string.isRequired\n};\n\nexport const MopinionAutomaticSuggestionFeedbackButton = ({\n text,\n className\n}) => (\n \n);\n\nMopinionAutomaticSuggestionFeedbackButton.propTypes = {\n text: PropTypes.string.isRequired\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useCurrentLanguage } from 'tradera-lang';\nimport { formatPrice } from 'tradera-utils/format';\n\nconst MultiCurrency = ({\n amountInSek,\n className,\n preferredCurrency,\n tagName: TagName\n}) => {\n const { language } = useCurrentLanguage();\n if (!MultiCurrency.isVisible(amountInSek, preferredCurrency)) {\n return null;\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 ≈ {formattedPrice}\n \n );\n};\n\nMultiCurrency.isVisible = (amountInSek, preferredCurrency) => {\n return (\n preferredCurrency &&\n preferredCurrency.code !== 'SEK' &&\n amountInSek &&\n amountInSek * preferredCurrency.rate > 0\n );\n};\n\nexport const preferredCurrencyPropTypes = PropTypes.shape({\n // Rate in percent\n rate: PropTypes.number.isRequired,\n decimals: PropTypes.number.isRequired,\n code: PropTypes.string.isRequired,\n symbolPrefix: PropTypes.string,\n symbolSuffix: PropTypes.string\n});\n\nMultiCurrency.propTypes = {\n amountInSek: PropTypes.number,\n className: PropTypes.string,\n preferredCurrency: preferredCurrencyPropTypes,\n tagName: PropTypes.string\n};\n\nMultiCurrency.defaultProps = {\n tagName: 'span'\n};\n\nexport default MultiCurrency;\n","const getDisplayRating = rating => {\n if (rating) {\n let decimals = decimalPlaces(rating);\n if (decimals === 0) decimals = 1;\n return rating.toFixed(decimals);\n }\n};\n\nconst decimalPlaces = num => {\n var match = ('' + num).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n return Math.max(\n 0,\n // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) -\n // Adjust for scientific notation.\n (match[2] ? +match[2] : 0)\n );\n};\n\nexport default {\n getDisplayRating\n};\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport './rating-stars.scss';\nimport utils from './rating-utils';\nimport { useUrlLocalizer } from 'tradera-lang';\n\n// Rating is multipled with 20.5 to account for margin between stars and rounding up\n\nconst RatingStars = ({\n memberAlias,\n memberId,\n rating,\n gaAttributes,\n dark = false\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n \n
\n \n \n ★\n ★\n ★\n ★\n ★\n
\n
\n ★\n ★\n ★\n ★\n ★\n
\n \n
\n \n {utils.getDisplayRating(rating)}\n \n
\n
\n \n );\n};\n\nRatingStars.defaultProps = {};\n\nRatingStars.propTypes = {\n memberAlias: PropTypes.string,\n memberId: PropTypes.number,\n rating: PropTypes.number,\n gaAttributes: PropTypes.object,\n dark: PropTypes.bool\n};\n\nexport default RatingStars;\n","import { useUrlLocalizer } from 'tradera-lang';\nimport routes from '../routes';\n\nconst urlGetters = toLocalizedUrl => ({\n start: () => toLocalizedUrl(routes.START),\n templates: () => toLocalizedUrl(routes.TEMPLATES),\n template: (templateId, fromPage) =>\n toLocalizedUrl(routes.TEMPLATE.replace(':templateId', templateId)) +\n (fromPage ? '?from=' + fromPage : ''),\n newTemplate: () =>\n toLocalizedUrl(routes.TEMPLATE.replace(':templateId', 'new')),\n newTemplateFromDraft: () =>\n toLocalizedUrl(routes.TEMPLATE.replace(':templateId', 'newFromDraft')),\n editTemplateProperties: (templateId, propertyNames) =>\n toLocalizedUrl(\n routes.EDIT_TEMPLATE_PROPERTIES.replace(\n ':templateId',\n templateId\n ).replace(':propertyNames', propertyNames)\n ),\n newDraft: () => toLocalizedUrl(routes.NEW_DRAFT),\n draft: draftId => toLocalizedUrl(routes.DRAFT.replace(':draftId', draftId)),\n draftSummary: draftId =>\n toLocalizedUrl(routes.DRAFT_SUMMARY.replace(':draftId', draftId)),\n editDraftProperties: (draftId, propertyNames) =>\n toLocalizedUrl(\n routes.EDIT_DRAFT_PROPERTIES.replace(':draftId', draftId).replace(\n ':propertyNames',\n propertyNames\n )\n ),\n published: itemId =>\n toLocalizedUrl(routes.PUBLISHED.replace(':itemId', itemId))\n});\n\nconst useSyiUrls = () => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const urls = urlGetters(toLocalizedUrl);\n return urls;\n};\n\nexport default useSyiUrls;\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 handleError,\n logError\n} from 'tradera-utils/api';\n\nexport const getPersonalisedBrands = () => {\n return axiosWithTokenRefresh()\n .get(`${ENDPOINTS.PERSONALISED_SUGGESTIONS}/brands`)\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 .catch(handleError())\n .catch(logError)\n .then(response => response?.data || []);\n};\n","import { useSelector } from 'react-redux';\n\nconst useIsFeatureEnabled = featureName =>\n useSelector(state => state.environment.featureSwitches[featureName]);\n\nexport default useIsFeatureEnabled;\n","import draftActions from './draft-actions';\n\nexport default {\n setLongDescription: longDescription => dispatch => {\n dispatch({\n type: 'SET_LONG_DESCRIPTION',\n payload: longDescription\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n },\n setLongDescriptionFromDraft: longDescription => dispatch => {\n dispatch({\n type: 'SET_LONG_DESCRIPTION_FROM_DRAFT',\n payload: longDescription\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n },\n reset: () => dispatch => {\n dispatch({\n type: 'RESET_LONG_DESCRIPTION'\n });\n dispatch(draftActions.updateDraftCanBeResumed());\n }\n};\n","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\nexport default {\n isDisputesEntranceEnabled: isEnabled('disputes-entrance'),\n isMyTraderaElasticEnabled: isEnabled('mytradera-elasticsearch'),\n isBuyerOrderInformationEnabled: isEnabled('buyer-order-information'),\n isMessagingEnabled: isEnabled('messaging'),\n isMessagingBuyerButtonsEnabled: isEnabled(\n 'messaging-contact-buyer-buttons'\n ),\n isMessagingSellerButtonsEnabled: isEnabled(\n 'messaging-contact-seller-buttons'\n ),\n isOrderCheckoutBinEnabled: isEnabled('order-checkout-bin'),\n isReactCartEnabled: isEnabled('react-cart'),\n downloadCsvPayouts: isEnabled('download-csv-payouts')\n};\n","import 'react';\nimport { itemHasBidsButReservePriceNotReached } from './item-labels';\nimport { columns } from '../../constants/column-definitions';\nimport { PAGE_NAMES } from '../../constants/page';\nimport { formatPrice } from '../../helpers/formats';\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 // eslint-disable-line\n\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-alert 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: formatPrice(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-alert'\n : ''),\n [columns.EndDate]:\n getCoreCssClass(columns.EndDate) +\n (item.listing.endDate.critical ? ' text-alert' : ''),\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-alert',\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 : formatPrice(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 ? formatPrice(item.listing.pricing.openingBid)\n : ' ';\n const getReservePrice =\n item.listing.pricing.reservePrice > 0\n ? formatPrice(item.listing.pricing.reservePrice)\n : '-';\n const getBuyItNow =\n item.listing.pricing.buyItNow > 0\n ? formatPrice(item.listing.pricing.buyItNow)\n : '-';\n const getOwnReference = item.listing.ownReference\n ? item.listing.ownReference\n : ' ';\n const callerMaxBid = getMaxBid(item) || '-';\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]: getReservePrice,\n [columns.BuyItNow]: getBuyItNow,\n [columns.OwnReference]: getOwnReference,\n [columns.MaxBid]: callerMaxBid,\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 initData from 'init-data';\n\nconst { webApiUrl, touchWebUrl } = initData;\n\nexport default {\n AVAILABLE_SHIPPING_COUNTRIES:\n webApiUrl + '/member/getavailablecountriesforshipping',\n BANK_ID_AUTHENTICATE: touchWebUrl + 'bankid/authenticate',\n BANK_ID_PROGRESS: touchWebUrl + 'bankid/progress',\n BRAND_LIST_PAGE: touchWebUrl + 'brands/api',\n BRAND_PAGE: touchWebUrl + 'brand/api/',\n CAMPAIGN: campaignId =>\n touchWebUrl +\n 'campaign/api/{campaignId}'.replace('{campaignId}', campaignId),\n CART_UPDATE_SUMMARY: touchWebUrl + 'shopping/managecart/updatecartsummary',\n CART_OVERVIEW_VIEW: webApiUrl + '/shopping/checkout/cartoverview',\n CART_ADD_ITEM: webApiUrl + '/shopping/cart/item',\n CART_REMOVE_ITEMS: webApiUrl + '/shopping/cart/removeitems',\n CART_SET_ITEM_QUANTITY: webApiUrl + '/shopping/cart/setitemquantity',\n CHARITY_EARNINGS_TICKER:\n touchWebUrl + 'cache/kampanjer/earningsticker/earnings',\n CMS_API: initData.cmsApiUrl,\n FAVORITE_SELLER_ADD: touchWebUrl + 'my/favourite-sellers/add',\n FAVORITE_SELLER_REMOVE: touchWebUrl + 'my/favourite-sellers/remove',\n FAVOURITE_SELLERS: touchWebUrl + 'startpage/favourite-sellers', // TODO: Align with BE\n GEO_PUBLIC_API_URL: initData.geoPublicApiUrl,\n GET_PROFILE_FEEDBACK_ITEMS: touchWebUrl + 'profile/model',\n HYPERWALLET_PAYOUT_COMPLETE:\n webApiUrl + '/member/paymentprovider/completehyperwallettransfermethod',\n HYPERWALLET_PAYOUT_TOKEN:\n webApiUrl + '/member/paymentprovider/hyperwalletauthenticationtoken',\n HYPERWALLET_PAYOUT:\n webApiUrl +\n '/member/paymentprovider/hyperwallettransfermethodviewmodel',\n INTERNATIONAL_SHIPPING_CALCULATOR:\n webApiUrl + '/browse/internationalshippingcalculator',\n ITEM_DESCRIPTION: itemId =>\n `${webApiUrl}/browse/item/${itemId}/description`,\n ITEM_DISCOUNT_QUOTA: touchWebUrl + 'profile/shop-item-settings/quotas',\n LAST_CHANCE: touchWebUrl + 'StartPage/LastChance',\n MEMBER_PAYOUT_SETTINGS_REMOVE:\n webApiUrl + '/member/profile/removetraderapaypayoutdestination',\n MEMBER_PAYOUT_SETTINGS:\n webApiUrl + '/member/paymentprovider/memberpayoutsettingsviewmodel',\n MEMBER_SYSTEM_MESSAGES: webApiUrl + '/member/system-messages',\n ORDER_CHECKOUT_AUTH_DATA:\n webApiUrl +\n '/shopping/ordercheckout/purchaseorderpaymentattemptauthenticationdata',\n ORDER_CHECKOUT_BRAINTREE:\n webApiUrl + '/shopping/ordercheckout/purchaseorderbraintreeclienttoken',\n ORDER_CHECKOUT_COMPLETE_PAYMENT:\n webApiUrl +\n '/shopping/ordercheckout/completepurchaseorderpaymentattempt',\n ORDER_CHECKOUT_CONFIRMATION:\n webApiUrl +\n '/shopping/ordercheckout/purchaseordercheckoutconfirmationviewmodel',\n ORDER_CHECKOUT_INIT_PAYMENT:\n webApiUrl +\n '/shopping/ordercheckout/initializepurchaseorderpaymentattempt',\n ORDER_CHECKOUT_PAYMENT_OPTIONS:\n webApiUrl + '/shopping/ordercheckout/purchaseorderpaymentoptions',\n ORDER_CHECKOUT_PAYMENT_STATUS:\n webApiUrl + '/shopping/ordercheckout/purchaseorderpaymentattemptstatus',\n ORDER_CHECKOUT_PAYMENT: initData.orderCheckoutPaymentUrl,\n ORDER_CHECKOUT_VIEW:\n webApiUrl + '/shopping/ordercheckout/purchaseordercheckoutviewmodel',\n ORDER_PURCHASE_BIN: webApiUrl + '/shopping/ordercheckout/purchasebin',\n ORDER_PURCHASE_SHOP_ITEMS:\n webApiUrl + '/shopping/ordercheckout/purchaseshopitems',\n PAYMENT_SWISH_OPTOUT: touchWebUrl + 'my/payments2/OptOut',\n PERSONALISED_SUGGESTIONS: '/api/personalised-suggestions',\n SAVED_SEARCH_ADD: touchWebUrl + 'my/savedsearches/add',\n SAVED_SEARCH_NOTIFICATION: touchWebUrl + 'my/savedsearches/notification',\n SAVED_SEARCH_REMOVE: touchWebUrl + 'my/savedsearches/remove',\n SEARCH_SUGGESTIONS: touchWebUrl + 'search/suggestions',\n SEARCH: touchWebUrl + 'search',\n SELLING_ATTRIBUTES: webApiUrl + '/selling/attributes',\n SELLING_SUGGEST_ATTRIBUTES: webApiUrl + '/selling/suggest/attributes',\n SELLING_CATEGORY_RESTRICTIONS: webApiUrl + '/selling/category-restriction',\n SETTINGS: touchWebUrl + 'profile/shop-item-settings/settings',\n SHIPPING_BAGS_ORDER_COUNT_FOR_ITEM: itemId =>\n webApiUrl + `/selling/shipping-bags-order/${itemId}`,\n SHIPPING_BAGS_ORDER_COUNT_TOTAL:\n webApiUrl + '/selling/shipping-bags-order-count',\n SHIPPING_BAGS_ORDER: webApiUrl + '/selling/add-shipping-bags-order',\n SHIPPING_PROVIDERS: webApiUrl + '/selling/shippingproviderswithproducts',\n TOUCHWEB_URL: touchWebUrl,\n TRANSLATE_PROFILE_FEEDBACKITEMS: webApiUrl + '/member/feedback/translated',\n WEB_API: webApiUrl,\n WISHLIST: touchWebUrl + 'my/api/wish-list',\n WISHLIST_ADD: touchWebUrl + 'shopping/wishlist/add',\n WISHLIST_REMOVE: touchWebUrl + 'shopping/wishlist/remove',\n START_OFF_PLATFORM_CHECKOUT:\n touchWebUrl + 'shopping/cartoverview/StartCheckoutSession'\n};\n","import React from 'react';\nimport {\n buyerActiveItemsColumns,\n buyerItemsLostColumns,\n buyerPurchasesColumns,\n sellerActiveColumns,\n sellerSoldColumns,\n sellerUnsoldColumns,\n payments2Columns\n} from './../constants/column-definitions';\nimport { PAGE_LIST_TYPES } from '../constants/list-types';\nimport { PAGE_NAMES } from '../constants/page';\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 MessageIcon from '@tradera/blueprint/theme/icons2/message.svg?jsx';\nimport CrossIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport BidLostIcon from '@tradera/blueprint/theme/icons2/bid-lost.svg?jsx';\nimport TagIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport ListIcon from '@tradera/blueprint/theme/icons2/list.svg?jsx';\nimport WriteIcon from '@tradera/blueprint/theme/icons2/write.svg?jsx';\nimport SettingsIcon from '@tradera/blueprint/theme/icons2/settings.svg?jsx';\nimport BiddingIcon from '@tradera/blueprint/theme/icons2/auction.svg?jsx';\nimport WonIcon from '@tradera/blueprint/theme/icons2/winning.svg?jsx';\nimport DocumentIcon from '@tradera/blueprint/theme/icons2/document.svg?jsx';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\nimport LockIcon from '@tradera/blueprint/theme/icons2/lock.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user.svg?jsx';\nimport WalletIcon from '@tradera/blueprint/theme/icons2/wallet.svg?jsx';\n\nexport const getLocalizedUrls = toLocalizedUrl => ({\n overview: toLocalizedUrl('/my/overview'),\n buyerOverview: toLocalizedUrl('/my/overview-buyer'),\n sellerOverview: toLocalizedUrl('/my/overview-seller'),\n accountOverview: toLocalizedUrl('/my/overview-my-account'),\n wishlist: toLocalizedUrl('/my/wish-list'),\n activeItems: toLocalizedUrl('/my/active-items'),\n itemsLost: toLocalizedUrl('/my/items-lost'),\n active: toLocalizedUrl('/my/active'),\n sold: toLocalizedUrl('/my/sold'),\n unsold: toLocalizedUrl('/my/unsold'),\n purchases: toLocalizedUrl('/my/purchases'),\n savedSearches: toLocalizedUrl('/my/saved-searches'),\n favouriteSellers: toLocalizedUrl('/my/favourite-sellers'),\n pickList: toLocalizedUrl('/my/picklist'),\n buyerFeedback: toLocalizedUrl('/my/leave-feedback/buyer'),\n sellerFeedback: toLocalizedUrl('/my/leave-feedback/seller'),\n myFeedback: toLocalizedUrl('/my/feedback'),\n profile: toLocalizedUrl('/my/profile'),\n invoices: toLocalizedUrl('/my/Invoices'),\n payments: toLocalizedUrl('/my/Payments'),\n payments2: toLocalizedUrl('/my/Payments2'),\n messaging: toLocalizedUrl('/messaging'),\n selling: toLocalizedUrl('/selling'),\n settings: toLocalizedUrl('/my/settings'),\n settingsAccount: toLocalizedUrl('/my/settings/account'),\n settingsEmail: toLocalizedUrl('/my/settings/email'),\n settingsSelling: toLocalizedUrl('/my/settings/selling'),\n settingsNotifications: toLocalizedUrl('/my/settings/notifications'),\n settingsSecurity: toLocalizedUrl('/my/settings/security'),\n settingsPayouts: toLocalizedUrl('/my/settings/payouts')\n});\n\n/**\n * This is default information used to differentiate UI elements based on different pages.\n * @returns {object}\n */\nexport const routeInformationFactory = (t, toLocalizedUrl) => {\n const urls = getLocalizedUrls(toLocalizedUrl);\n return {\n [urls.overview]: {\n url: toLocalizedUrl('/my/overview'),\n class: 'myt-menu-list-item-subtitle myt-menu-list-item-overview',\n label: t('myt_overview_label'),\n isExternal: true\n },\n [urls.wishlist]: {\n url: toLocalizedUrl('/my/wish-list'),\n title: t('myt_wishlist_title'),\n isExternal: true,\n icon: \n },\n [urls.savedSearches]: {\n url: toLocalizedUrl('/my/saved-searches'),\n title: t('myt_savedSearches_title'),\n isExternal: true,\n icon: \n },\n [urls.favouriteSellers]: {\n url: toLocalizedUrl('/my/favourite-sellers'),\n title: t('myt_favouriteSellers_title'),\n isExternal: true,\n icon: \n },\n [urls.activeItems]: {\n isBuyerPage: true,\n searchUrl: toLocalizedUrl('/my/api/buyer/active'),\n pageName: PAGE_NAMES.BuyerActiveItems,\n listType: PAGE_LIST_TYPES.BUYER_ACTIVE_ITEMS,\n url: toLocalizedUrl('/my/active-items'),\n title: t('myt_activeItems_title'),\n columns: buyerActiveItemsColumns,\n overview: urls.buyerOverview,\n hasLabels: false,\n shouldShowCompact: false,\n gaLabel: 'Pågående budgivningar',\n subHeadings: true,\n bulkEditEnabled: true,\n icon: ,\n noResultsText: t('myt_activeItems_noResultsText')\n },\n [urls.itemsLost]: {\n isBuyerPage: true,\n searchUrl: toLocalizedUrl('/my/api/buyer/items-lost'),\n pageName: PAGE_NAMES.BuyerItemsLost,\n listType: PAGE_LIST_TYPES.BUYER_ITEMS_LOST,\n overview: urls.buyerOverview,\n url: toLocalizedUrl('/my/items-lost'),\n title: t('myt_lostItems_title'),\n columns: buyerItemsLostColumns,\n hasLabels: false,\n shouldShowCompact: false,\n bulkEditEnabled: true,\n icon: ,\n noResultsText: t('myt_lostItems_noResultsText')\n },\n [urls.selling]: {\n url: toLocalizedUrl('/selling'),\n title: t('siteHeader_createItem'),\n isExternal: true,\n icon: \n },\n [urls.active]: {\n searchUrl: toLocalizedUrl('/my/api/seller/active'),\n pageName: PAGE_NAMES.SellerActive,\n listType: PAGE_LIST_TYPES.SELLER_ACTIVE,\n url: toLocalizedUrl('/my/active'),\n overview: urls.sellerOverview,\n title: t('myt_activeListings_title'),\n columns: sellerActiveColumns,\n hasLabels: false,\n shouldShowCompact: true,\n subHeadings: true,\n stats: {\n FastPris: {\n label: 'Fast pris',\n value: '0'\n },\n Auktioner: {\n label: 'Auktioner',\n value: '0'\n },\n Bud: {\n label: 'Bud',\n value: '0'\n },\n SummaUtropspris: {\n label: 'Summa utropspris',\n value: '0'\n },\n SummaBud: {\n label: 'Summa bud',\n value: '0'\n }\n },\n bulkEditEnabled: true,\n icon: ,\n noResultsText: t('myt_activeListings_noResultsText')\n },\n [urls.sold]: {\n searchUrl: toLocalizedUrl('/my/api/seller/sold'),\n pageName: PAGE_NAMES.SellerSold,\n listType: PAGE_LIST_TYPES.SELLER_SOLD,\n url: toLocalizedUrl('/my/sold'),\n title: t('myt_soldItems_title'),\n columns: sellerSoldColumns,\n overview: urls.sellerOverview,\n hasLabels: true,\n shouldShowCompact: true,\n subHeadings: true,\n stats: {\n Butiksobjekt: {\n label: 'Butiksobjekt',\n value: '0'\n },\n FastPris: {\n label: 'Fast pris',\n value: '0'\n },\n Auktioner: {\n label: 'Auktioner',\n value: '0'\n },\n Bud: {\n label: 'Bud',\n value: '0t'\n },\n SummaUtropspris: {\n label: 'Summa utropspris',\n value: '0'\n },\n SummaBud: {\n label: 'Summa bud',\n value: '0'\n }\n },\n bulkEditEnabled: false,\n icon: ,\n noResultsText: t('myt_soldItems_noResultsText')\n },\n [urls.unsold]: {\n searchUrl: toLocalizedUrl('/my/api/seller/unsold'),\n pageName: PAGE_NAMES.SellerUnsold,\n listType: PAGE_LIST_TYPES.SELLER_NOT_SOLD,\n overview: urls.sellerOverview,\n url: toLocalizedUrl('/my/unsold'),\n title: t('myt_unsoldItems_title'),\n columns: sellerUnsoldColumns,\n shouldShowCompact: true,\n subHeadings: true,\n stats: {},\n bulkEditEnabled: true,\n icon: ,\n noResultsText: t('myt_unsoldItems_noResultsText')\n },\n [urls.purchases]: {\n isBuyerPage: true,\n searchUrl: toLocalizedUrl('/my/api/buyer/purchases'),\n pageName: PAGE_NAMES.BuyerPurchases,\n listType: PAGE_LIST_TYPES.BUYER_PURCHASES,\n url: toLocalizedUrl('/my/purchases'),\n overview: urls.buyerOverview,\n title: t('myt_boughtItems_title'),\n columns: buyerPurchasesColumns,\n shouldShowCompact: false,\n stats: {},\n bulkEditEnabled: true,\n icon: ,\n noResultsText: t('myt_boughtItems_noResultsText')\n },\n [urls.pickList]: {\n url: toLocalizedUrl('/my/picklist'),\n title: t('myt_picklist_title'),\n isExternal: true,\n icon: \n },\n [urls.buyerFeedback]: {\n url: toLocalizedUrl('/my/leave-feedback/buyer?transactionId=0'),\n title: t('myt_buyerFeedback_title'),\n isExternal: true,\n icon: \n },\n [urls.sellerFeedback]: {\n url: toLocalizedUrl('/my/leave-feedback/seller?transactionId=0'),\n title: t('myt_sellerFeedback_title'),\n isExternal: true,\n icon: \n },\n [urls.myFeedback]: {\n url: toLocalizedUrl('/getUrlMyFeedback'),\n title: t('myt_myFeedback_title'),\n isExternal: true,\n icon: \n },\n [urls.profile]: {\n url: toLocalizedUrl('/my/profile'),\n title: t('myt_settings_title'),\n pageName: PAGE_NAMES.Profile,\n overview: urls.accountOverview,\n showBasedOnInitData: initData =>\n !initData?.featureSwitches['my-tradera-settings'],\n isExternal: true,\n icon: \n },\n [urls.settings]: {\n url: urls.settings,\n title: t('myt_settings_title'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.accountOverview,\n showBasedOnInitData: initData =>\n initData?.featureSwitches['my-tradera-settings'],\n isExternal: false,\n icon: \n },\n [urls.settingsAccount]: {\n url: urls.settingsAccount,\n title: t('myt_settings_account_title'),\n subTitle: t('myt_settings_account_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.settingsEmail]: {\n url: urls.settingsEmail,\n title: t('myt_settings_email_title'),\n subTitle: t('myt_settings_email_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.settingsSelling]: {\n url: urls.settingsSelling,\n title: t('myt_settings_selling_title'),\n subTitle: t('myt_settings_selling_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.settingsNotifications]: {\n url: urls.settingsNotifications,\n title: t('myt_settings_notifications_title'),\n subTitle: t('myt_settings_notifications_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.settingsSecurity]: {\n url: urls.settingsSecurity,\n title: t('myt_settings_security_title'),\n subTitle: t('myt_settings_security_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.settingsPayouts]: {\n url: urls.settingsPayouts,\n title: t('myt_settings_payouts_title'),\n subTitle: t('myt_settings_payouts_subTitle'),\n pageName: PAGE_NAMES.Settings,\n overview: urls.settings,\n isInternalOverview: true,\n isExternal: false,\n icon: \n },\n [urls.invoices]: {\n url: toLocalizedUrl('/my/Invoices?page=1'),\n title: t('myt_invoices_title'),\n isExternal: true,\n icon: \n },\n [urls.payments]: {\n url: toLocalizedUrl('/my/Payments'),\n title: t('myt_payments_title'),\n isExternal: true,\n showBasedOnInitData: initData => {\n return (\n initData &&\n initData.paymentSettings &&\n initData.paymentSettings.showPayments1Menu === true &&\n initData.paymentSettings.showPayments2Menu === false\n );\n },\n icon: \n },\n [urls.payments2]: {\n url: toLocalizedUrl('/my/Payments2'),\n title: t('myt_payments_title'),\n isExternal: true,\n overview: urls.accountOverview,\n showBasedOnInitData: initData => {\n return (\n initData &&\n initData.paymentSettings &&\n initData.paymentSettings.showPayments2Menu === true\n );\n },\n icon: ,\n columns: payments2Columns\n },\n [urls.messaging]: {\n url: toLocalizedUrl('/messaging'),\n label: t('myt_messaging_label'),\n class: 'myt-menu-list-item-subtitle',\n hideMainNav: true,\n isExternal: true,\n icon: \n }\n };\n};\n","import React from 'react';\nimport PropType from 'prop-types';\n\nconst ModalFooter = ({ children, className }) => (\n
{children}
\n);\n\nModalFooter.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string\n};\n\nexport default ModalFooter;\n","import moment from 'moment';\nimport 'underscore';\nimport arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\n\nvar initialState = {\n isLoading: false\n};\n\nexport default (state, action) => {\n state = state || initialState;\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 = _.assign(initialState, 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 = _.assign({}, state, { draftId: action.payload });\n break;\n case 'SET_RESTART':\n newDraft = _.assign({}, state, { restart: action.payload });\n break;\n case 'DISABLE_RESTART':\n newDraft = { ...state, restart: false };\n break;\n case 'SET_REFERENCE':\n newDraft = _.assign({}, state, { reference: action.payload });\n break;\n case 'ADD_ADDITIONAL_DESCRIPTION':\n var newAdditionalDescriptions = arrayUtils.shallowCopyArrayObjects(\n state.additionalDescriptions || []\n );\n newAdditionalDescriptions.push({ message: action.payload });\n newDraft = _.assign({}, state, {\n additionalDescriptions: newAdditionalDescriptions\n });\n break;\n case 'SET_DRAFT_REASON':\n newDraft = _.assign({}, state, { draftReason: action.payload });\n break;\n case 'SET_DRAFT_VERSION':\n newDraft = _.assign({}, 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 default:\n return state;\n }\n if (!_.isEqual(state, newDraft)) {\n newDraft.lastModifiedDate = moment().toISOString();\n }\n return newDraft;\n};\n\n/**\nTODO: Do this:\n\nimport arrayUtils from '../../utils/array-utils';\nimport { createReducer } from '@reduxjs/toolkit';\n\nvar initialState = {};\n\nexport default createReducer(initialState, {\n SET_DRAFT_PROPERTIES: (state, action) => {\n const referenceIsReadonly =\n action.draft.reference &&\n action.draft.reference.indexOf('Sello artnr') >= 0;\n\n state = { ...action.draft, referenceIsReadonly };\n },\n SET_DRAFT_ID: (state, action) => {\n state.draftId = action.payload;\n },\n SET_RESTART: (state, action) => {\n state.restart = action.payload;\n },\n SET_REFERENCE: (state, action) => {\n state.reference = action.payload;\n },\n\n ADD_ADDITIONAL_DESCRIPTION: (state, action) => {\n var newAdditionalDescriptions = arrayUtils.shallowCopyArrayObjects(\n state.additionalDescriptions || []\n );\n newAdditionalDescriptions.push({ message: action.payload });\n state.additionalDescriptions = newAdditionalDescriptions;\n },\n\n SET_DRAFT_REASON: (state, action) => {\n state.draftReason = action.payload;\n },\n\n SET_DRAFT_VERSION: (state, action) => {\n state.version = action.payload;\n },\n\n RESET_DRAFT: () => {\n return { ...initialState };\n }\n});\n\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, { useEffect } from 'react';\nimport { Router } from 'react-router';\nimport history from 'tradera-utils/history';\nimport { hot } from 'react-hot-loader';\n\nimport 'moment/locale/sv';\nimport moment from 'moment';\n\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport { GeneralError } from 'tradera-components/errors';\nimport PageHead from 'tradera-components/page-head/page-head';\nimport SiteHeader from 'tradera-components/site-header/site-header';\nimport SiteFooter from 'tradera-components/site-footer/site-footer';\nimport GdprContainer from 'tradera-components/alerts/gdpr/gpdr-container';\n\nimport Routes from './routes';\nimport './app.scss';\n\nconst headerElement = document.querySelector('[data-site-header-slim]');\n\n// Full SPA app with header, footer & everything\nfunction App(props) {\n useEffect(() => {\n moment.locale('sv');\n }, []);\n const {\n initData: { featureSwitches }\n } = props;\n const inSPA = featureSwitches['spa'];\n\n const cartItemCount = headerElement?.getAttribute('data-cart-item-count');\n const cartSum = headerElement?.getAttribute('data-cart-sum');\n return (\n // TODO: Replace with general error fallback, move ShowItemsError to discover error boundary\n }>\n \n \n \n \n
\n \n
\n \n \n
\n
\n
\n );\n}\n\n// Basic app without header, footer & other stuff, for old React pages & native app web views\nfunction BasicApp() {\n return (\n }>\n \n \n \n \n \n \n );\n}\n\nexport default hot(module)(App);\nexport { App, BasicApp };\n","import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport './transitions.scss';\n\nexport const Expand = ({ children, ...props }) => (\n \n {children}\n \n);\n\nexport const EnterFrom = ({ children, from, ...props }) => (\n \n {children}\n \n);\n\nexport const EnterFade = ({ children, ...props }) => (\n \n {children}\n \n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { formatNumberWithSeparators } from '@tradera/blueprint/utils';\nimport MultiCurrency from 'tradera-components/multi-currency/multi-currency';\nimport ITEM_TYPES from 'tradera-constants/item-types';\nimport { useTranslator } from 'tradera-lang';\nimport { formatDate } from 'tradera-utils/date';\nimport TimeLeft from '../helpers/time-left';\nimport { ITEM_STATES } from 'tradera-state/views/view-item/constants';\n\nconst isSupportedItemType = itemType =>\n [ITEM_TYPES.AUCTION, ITEM_TYPES.AUCTION_BIN].includes(itemType);\n\nfunction BidDetails(props) {\n const {\n bidCount,\n className,\n endDate,\n fixedPrice,\n hasEnded,\n hasLeadingBid,\n hasLostLeadingBid,\n isCountdownEnabled,\n isEnding,\n itemState,\n itemType,\n leadingBidAmount,\n onShowBids,\n openingBid,\n preferredCurrency,\n secondsLeft,\n serverSecondsLeft\n } = props;\n const { t } = useTranslator();\n\n if (!isSupportedItemType(itemType)) {\n return null;\n }\n\n const hasBids = bidCount > 0;\n const amountDetails = getAmountDetails(\n t,\n itemState,\n fixedPrice,\n leadingBidAmount,\n openingBid,\n hasBids\n );\n\n return (\n
\n
\n \n {amountDetails.title}\n

\n \n {formatNumberWithSeparators(amountDetails.amount)}{' '}\n {t('vip_currency')}\n
\n \n \n
\n {isEnding || hasEnded ? (\n
\n \n {t('vip_hasEndedTime')} {formatDate(new Date(endDate))}\n

\n \n {hasEnded ? t('vip_ended') : t('vip_ending')}\n \n
\n ) : (\n
\n \n {t('vip_willEndTime')} {formatDate(new Date(endDate))}\n

\n

\n \n

\n
\n )}\n
\n

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

\n \n {bidCount} {t('vip_amount')}\n \n
\n
\n );\n}\n\nBidDetails.propTypes = {\n bidCount: PropTypes.number,\n className: PropTypes.string,\n endDate: PropTypes.string.isRequired,\n hasEnded: PropTypes.bool.isRequired,\n hasLeadingBid: PropTypes.bool.isRequired,\n hasLostLeadingBid: PropTypes.bool.isRequired,\n isCountdownEnabled: PropTypes.bool.isRequired,\n itemState: PropTypes.string.isRequired,\n leadingBidAmount: PropTypes.number,\n onShowBids: PropTypes.func,\n openingBid: PropTypes.number,\n secondsLeft: PropTypes.number,\n serverSecondsLeft: 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) => {\n if (itemState === ITEM_STATES.ENDED_AUCTION_BIN_BOUGHT_AS_BIN) {\n return {\n title: t('vip_finalPrice'),\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: leadingBid\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\nexport default BidDetails;\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 MY_TRADERA_PAGE: 'MyTradera',\n REPORT_ITEM_PAGE: 'ReportItemPage',\n SEARCH_RESULT_PAGE: 'SearchResults',\n START_PAGE: 'StartPage',\n SYI_PAGE: 'SellItem',\n VIEW_ITEM_PAGE: 'VIP'\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 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 axios from 'axios';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n utilizeCancelToken,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport cookieUtil from 'tradera-utils/cookie';\n\nimport { FORCE_GEO_DEV } from 'tradera-constants/cookies';\n\nexport const fetchGeolocation = () => {\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(getGeoPublicApiUrl(search), {\n cancelToken\n })\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const getGeoPublicApiUrl = search => {\n const match = search.match(/force-geo-(.*?)-dev/);\n\n if (match) {\n cookieUtil.createCookie(FORCE_GEO_DEV, match[1]);\n return `${ENDPOINTS.GEO_PUBLIC_API_URL}/${match[1]}`;\n }\n\n const forceGeoDevCookie = cookieUtil.readCookie(FORCE_GEO_DEV);\n if (forceGeoDevCookie) {\n return `${ENDPOINTS.GEO_PUBLIC_API_URL}/${forceGeoDevCookie}`;\n }\n\n return ENDPOINTS.GEO_PUBLIC_API_URL;\n};\n","import actionTypes from './action-types';\nimport { fetchGeolocation } from './api';\nimport { setCurrencyIfNotChosen } from 'tradera-state/multi-currency';\nimport { removeShippingCountryCookieIfSwedish } from 'tradera-state/shipping-region/actions';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { logger } from 'packages/index';\nimport { filterAvailableLanguages } from 'tradera-state/language/reducer';\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 getGeolocation = () => dispatch => {\n dispatch(setIsFetchingGeolocation(true));\n return fetchGeolocation()\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 dispatch(filterAvailableLanguages(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 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 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 { getCurrentLanguage } from 'tradera-lang';\nimport logger from 'packages/logger';\n\nexport const fetchDescription = (itemId, languageCodeIso2) => {\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 }\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 => {\n return axiosWithTokenRefresh()\n .get(toLocalizedUrl(`/item/${itemId}.json`, getCurrentLanguage()))\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 (itemId, amount, onLoggedOut) => {\n try {\n const response = await axiosWithTokenRefresh().post(\n toLocalizedUrl(`/item/place-bid/${itemId}`, getCurrentLanguage()),\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 switch (error) {\n case API_ERRORS.LOGGED_OUT:\n onLoggedOut();\n break;\n default:\n logger(error);\n break;\n }\n }\n};\n\nexport const getItemsFromSeller = params => {\n return axiosWithTokenRefresh()\n .get(\n toLocalizedUrl(\n '/api/webapi/discover/more-from-seller/',\n getCurrentLanguage()\n ),\n { params }\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n","import { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport './loading-portal.scss';\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","export default {\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_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 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 // General action types without prefix that many reducers can listen to\n LOG_OUT: 'LOG_OUT'\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","/* eslint-disable promise/catch-or-return */\nimport $ from 'jquery';\nimport { toLocalizedRiotUrl } from './../utils/language';\n\nfunction toInt(n) {\n return Math.round(Number(n)) | 0;\n}\n\nexport default new (function() {\n this.calculateShipping = function(length, width, height, weight) {\n var deferred = $.Deferred();\n\n length = toInt(length);\n width = toInt(width);\n height = toInt(height);\n weight = toInt(weight);\n\n if (length && width && height && weight) {\n $.get(toLocalizedRiotUrl('/selling/shippingcalculator'), {\n length,\n width,\n height,\n weight\n })\n .then(deferred.resolve)\n .fail(deferred.reject);\n } else {\n deferred.reject();\n }\n\n return deferred.promise();\n };\n})();\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang';\n\nconst OnDisplayBadge = ({ className }) => {\n const { t } = useTranslator();\n return (\n \n {t('itemCard_onDisplay')}\n \n );\n};\n\nexport default OnDisplayBadge;\n","export default {\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","import React from 'react';\nimport MessagingIcon from '@tradera/blueprint/theme/icons/mail.svg?jsx';\nimport triot from 'triot';\n\nconst handleButtonClick = emailPayload => {\n triot.bus.trigger('ui:contact-modal:show-modal', emailPayload);\n};\n\nconst MessagingButtonEmail = ({\n label,\n className,\n emailPayload,\n isLoggedIn,\n handleLogin\n}) => {\n return (\n handleButtonClick(emailPayload)\n }>\n \n {label}\n \n );\n};\n\nexport default MessagingButtonEmail;\n","import React from 'react';\nimport { compose } from 'redux';\nimport PropTypes from 'prop-types';\n\nimport MessagingIcon from '@tradera/blueprint/theme/icons/mail.svg?jsx';\nimport MessagingButtonEmail from './messaging-button-email';\nimport uiActions from 'tradera-state/ui/actions';\nimport { logger } from 'packages';\nimport { withTranslator, withUrlLocalizer } from 'tradera-lang';\n\nimport {\n checkUserMessagingParticipation,\n getMessagingPageLink,\n getMessagingThreadLink\n} from 'tradera-apps/my-tradera/app/helpers/messaging-helpers';\n\nclass MessagingButton extends React.Component {\n state = {\n buttonVisible: false\n };\n\n componentDidMount() {\n // Only show button if participation returns true\n checkUserMessagingParticipation(this.props.sellerId)\n .then(buttonVisible => {\n this.setState({\n buttonVisible\n });\n return undefined;\n })\n .catch(err => {\n this.setState({\n buttonVisible: false\n });\n logger(err);\n });\n }\n\n openMessagingModal = (title, src, participating) => {\n const { dispatch, isLoggedIn } = this.props;\n if (isLoggedIn) {\n dispatch(\n uiActions.openMessagingModal({ title, src, participating })\n );\n } else {\n this.handleLogin(src);\n }\n };\n\n handleLogin = href =>\n this.props.dispatch(uiActions.signIn({ redirectUrl: href }));\n\n render() {\n const {\n buyerId,\n buyerAlias,\n sellerId,\n itemId,\n source,\n mode,\n className,\n itemenddate,\n itemimageurl,\n itemtitle,\n receivermemberalias,\n isLoggedIn,\n memberId,\n toLocalizedUrl,\n t\n } = this.props;\n const { buttonVisible } = this.state;\n\n let href;\n if (buyerId && sellerId) {\n if (mode === 'modal') {\n href = getMessagingThreadLink(buyerId, sellerId, itemId, {\n traderaUserId: memberId,\n singleThread: true,\n openForm: true,\n source\n });\n } else {\n href = getMessagingPageLink(buyerId, sellerId, itemId, {\n traderaUserId: memberId,\n source\n });\n }\n } else {\n href = window.location.pathname;\n }\n\n const BUTTON_LABELS = {\n ask_seller: t('messaging_askTheSeller'),\n contact_seller: t('messaging_contactSeller'),\n contact_buyer: t('messaging_contactBuyer'),\n contact_seller_email: t('messaging_askTheSeller')\n };\n\n // Disable on user's own items\n const disableButton = buyerId === sellerId;\n\n const emailPayload = itemtitle\n ? {\n modalTitle: BUTTON_LABELS['contact_seller_email'],\n messageSubject: t('messaging_messageSubject', {\n itemTitle: itemtitle\n }),\n itemEnddate: itemenddate,\n itemId: itemId,\n itemImageUrl: itemimageurl,\n itemTitle: itemtitle,\n receiverMemberAlias: receivermemberalias,\n receiverMemberId: sellerId,\n senderMemberAlias: buyerAlias,\n businessWarning: true,\n reloadAfterClose: false\n }\n : null;\n\n if (buttonVisible) {\n if (mode === 'modal') {\n return (\n \n \n this.openMessagingModal(\n BUTTON_LABELS[source],\n toLocalizedUrl(href),\n buttonVisible\n )\n }\n disabled={disableButton}>\n \n \n {BUTTON_LABELS[source]}\n \n \n {disableButton && (\n \n {t('messaging_contactSelfText')}\n \n )}\n \n );\n } else {\n return (\n \n \n \n {BUTTON_LABELS[source]}\n \n \n );\n }\n } else {\n // Show fallback if email payload is provided\n if (emailPayload) {\n return (\n \n );\n }\n }\n\n return null;\n }\n}\nMessagingButton.propTypes = {\n isLoggedIn: PropTypes.bool,\n memberId: PropTypes.string,\n className: PropTypes.string,\n buyerId: PropTypes.string.isRequired,\n sellerId: PropTypes.string.isRequired,\n itemId: PropTypes.string.isRequired,\n source: PropTypes.string.isRequired,\n mode: PropTypes.string,\n t: PropTypes.func.isRequired\n};\n\nMessagingButton.defaultProps = {\n className: '',\n buyerId: '',\n sellerId: '',\n itemId: '',\n source: '',\n mode: 'link'\n};\n\nexport default compose(withUrlLocalizer, withTranslator)(MessagingButton);\n","import 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';\nimport { setPreferred } from './reducer';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { PREFERRED_LANGUAGE } from 'tradera-constants/cookies';\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 } else {\n cookieUtil.createCookie(PREFERRED_LANGUAGE, code);\n }\n dispatch(setPreferred(code));\n locationUtils.reloadLocalized(code);\n } catch (error) {\n logger(error);\n }\n};\n","import { globalStore } from 'tradera-state/configure-store';\nimport draftActions from './draft-actions';\n\nconst store = globalStore();\n\nexport default {\n setIsPropertyEditMode: function(isPropertyEditMode) {\n store.dispatch({\n type: 'SET_IS_PROPERTY_EDIT_MODE',\n payload: isPropertyEditMode\n });\n },\n setCreationType: function(creationType) {\n store.dispatch({\n type: 'SET_CREATION_TYPE',\n payload: creationType\n });\n },\n showAllErrors: function() {\n store.dispatch({\n type: 'SHOW_ALL_ERRORS'\n });\n },\n hideAllErrors: function() {\n store.dispatch({\n type: 'HIDE_ALL_ERRORS'\n });\n },\n setIsEditOfPublishedItem: isEditOfPublishedItem => dispatch => {\n dispatch({\n type: 'SET_IS_EDIT_OF_PUBLISHED_ITEM',\n payload: isEditOfPublishedItem\n });\n },\n resetPublishState: function() {\n store.dispatch({\n type: 'RESET_PUBLISH_STATE'\n });\n },\n setEditedImageIndex: function(imageIndex) {\n store.dispatch({\n type: 'SET_EDITED_IMAGE_INDEX',\n payload: imageIndex\n });\n },\n setCategoryRestriction: function(restriction) {\n store.dispatch({\n type: 'SET_CATEGORY_RESTRICTION',\n payload: restriction\n });\n store.dispatch(\n draftActions.updateItemConditionRestrictionForCategory()\n );\n },\n toggleModal: modalId => ({\n type: 'TOGGLE_MODAL',\n payload: modalId\n }),\n showModal: function(modalId, modalData) {\n store.dispatch({\n type: 'SHOW_MODAL',\n modalId: modalId,\n modalData: modalData\n });\n },\n hideModal: function() {\n store.dispatch({\n type: 'HIDE_MODAL'\n });\n },\n reset: function() {\n store.dispatch({\n type: 'RESET_SYI'\n });\n },\n enableAutoSave: () => dispatch => {\n dispatch({\n type: 'ENABLE_AUTOSAVE'\n });\n },\n disableAutoSave: () => dispatch => {\n dispatch({\n type: 'DISABLE_AUTOSAVE'\n });\n }\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport getInitialState from 'tradera-state/views/cart/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 }\n }\n});\n\nexport const { setFetching, setCartData } = cartSlice.actions;\n\nexport default cartSlice.reducer;\n","import 'underscore';\n\nconst 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 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, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_LONG_DESCRIPTION_FROM_DRAFT':\n return _.assign({}, 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 _.assign({}, 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 _.assign({}, state, {\n isCurrentDescriptionFromDraft: false,\n longDescription: defaultValue,\n validationError: validate(defaultValue)\n });\n }\n default:\n return state;\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","import moment from 'moment';\n\nexport const formatDate = date => moment(date).format('D MMM HH:mm');\n\n/**\n * Format a number of seconds to an object of time units\n *\n * @param {number} seconds\n * @param {object} [options]\n * @param {string} [options.startUnit] - Time part to start counting from, empty for all parts\n * @param {string} [options.endUnit] - Time part to stop counting on, empty for all parts\n * @returns {{string: integer}}\n */\nexport const getTimeSpanParts = (seconds, options = {}) => {\n const optionsWithDefaults = {\n startUnit: '',\n endUnit: '',\n ...options\n };\n const parts = {};\n let remaining = seconds;\n let started = !optionsWithDefaults.startUnit;\n for (const [part, length] of Object.entries(TIME_SPAN_UNIT_LENGTHS)) {\n if (!started && part === optionsWithDefaults.startUnit) started = true;\n if (started) {\n if (remaining >= length) {\n parts[part] = Math.floor(remaining / length);\n }\n remaining %= length;\n if (remaining === 0 || optionsWithDefaults.endUnit === part) break;\n }\n }\n return parts;\n};\n\nexport const TIME_SPAN_UNITS = {\n DAYS: 'days',\n HOURS: 'hours',\n MINUTES: 'minutes',\n SECONDS: 'seconds'\n};\n\nconst TIME_SPAN_UNIT_LENGTHS = {\n [TIME_SPAN_UNITS.DAYS]: 24 * 60 * 60,\n [TIME_SPAN_UNITS.HOURS]: 60 * 60,\n [TIME_SPAN_UNITS.MINUTES]: 60,\n [TIME_SPAN_UNITS.SECONDS]: 1\n};\n","import React from 'react';\nimport Spinner from 'static/script/libs/spin';\n\nexport default class JsxSpinner extends React.Component {\n componentDidMount() {\n const { config } = this.props;\n const spinjsConfig = {\n width: 2,\n length: 4,\n radius: 5,\n lines: 11,\n color: '#404a54',\n ...config // overwrite default\n };\n\n this.spinner = new Spinner(spinjsConfig);\n this.spinner.spin(this.spinnerEl);\n }\n\n componentWillUnmount() {\n this.spinner.stop();\n }\n\n render() {\n const { className } = this.props;\n return (\n {\n this.spinnerEl = el;\n }}\n />\n );\n }\n}\n","import React from 'react';\n\nconst BottomButtons = ({ leftButton, rightButton }) => {\n return (\n
\n
\n \n {leftButton.text}\n \n
\n
\n \n {rightButton.text}\n \n
\n
\n );\n};\n\nexport default BottomButtons;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError,\n axiosConfigs\n} from 'tradera-utils/api';\n\nexport const getCartOverview = async cartId => {\n return axiosWithTokenRefresh()\n .get(\n `${ENDPOINTS.CART_OVERVIEW_VIEW}/${cartId}`,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const addItemToCart = async (cartId, itemId, price) => {\n const params = { cartId: cartId, itemId: itemId, price: price };\n return axiosWithTokenRefresh()\n .post(`${ENDPOINTS.CART_ADD_ITEM}`, params, axiosConfigs.authenticated)\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const removeItemsFromCart = async (cartId, itemIds) => {\n const params = { cartId: cartId, itemIds: itemIds };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_REMOVE_ITEMS}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const setCartItemQuantity = async (cartId, itemId, quantity) => {\n const params = { cartId: cartId, itemId: itemId, quantity: quantity };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_SET_ITEM_QUANTITY}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const confirmCartPurchase = async (shopItems, googleAnalyticsData) => {\n const params = {\n shopItems: shopItems,\n googleAnalyticsData: googleAnalyticsData\n };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.ORDER_PURCHASE_SHOP_ITEMS}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\nexport const startOffPlatformCheckout = async itemId => {\n const params = { itemId: itemId };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.START_OFF_PLATFORM_CHECKOUT}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\n// Temporary call to make TouchWeb update the cart item count + price. Remove once it's fully moved to React.\nexport const updateCartSummary = async cartId => {\n const params = { cartId: cartId };\n return axiosWithTokenRefresh()\n .post(\n `${ENDPOINTS.CART_UPDATE_SUMMARY}`,\n params,\n axiosConfigs.authenticated\n )\n .then(finalizeResponse())\n .catch(handleError());\n};\n\n// Export object for Sinon stubbing\nexport default {\n getCartOverview,\n addItemToCart,\n removeItemsFromCart,\n setCartItemQuantity,\n updateCartSummary,\n confirmCartPurchase,\n startOffPlatformCheckout\n};\n","import { logger } from 'packages';\nimport api from './api';\nimport { setFetching, setCartData } 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';\n\nexport const fetchCartData = cartId => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n const checkoutData = await api.getCartOverview(cartId);\n\n const { data } = checkoutData;\n\n dispatch(setCartData(data));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const addItemToCart = (\n cartId,\n itemId,\n price,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n const addItemResult = await api.addItemToCart(cartId, itemId, price);\n if (addItemResult.status === 200) {\n cartId = addItemResult.data.cartId;\n let date = new Date();\n date.setMonth(date.getMonth() + 2);\n cookieUtil.createCookie(CART_ID, cartId, date);\n }\n await api.updateCartSummary(cartId);\n onSuccess();\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const removeItemsFromCart = (cartId, itemIds) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.removeItemsFromCart(cartId, itemIds);\n await api.updateCartSummary(cartId);\n dispatch(fetchCartData(cartId));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const setCartItemQuantity = (\n cartId,\n itemId,\n quantity\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.setCartItemQuantity(cartId, itemId, quantity);\n await api.updateCartSummary(cartId);\n dispatch(fetchCartData(cartId));\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const confirmCartPurchase = (\n cartId,\n shopItems,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n const confirmData = await api.confirmCartPurchase(\n shopItems,\n analytics.getGaTrackingData()\n );\n\n // Update cart but don't dispatch as we will reload anyway\n await api.removeItemsFromCart(\n cartId,\n shopItems.map(item => item.itemId)\n );\n await api.updateCartSummary(cartId);\n const { data } = await api.getCartOverview(cartId);\n setCartData(data);\n\n onSuccess(confirmData.data.purchaseOrderId);\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n\nexport const startOffPlatformCheckout = (\n itemId,\n onSuccess\n) => async dispatch => {\n dispatch(setFetching(true));\n\n try {\n await api.startOffPlatformCheckout(itemId);\n onSuccess();\n } catch (error) {\n logger(error);\n dispatch(setFetching(false));\n }\n};\n","import { useEffect } from 'react';\nimport { useLocation, matchPath } from 'react-router';\nimport googleTagManagerService from 'app/ui/google-tagmanager-service';\n\nexport const NewPageTracker = ({ routeMap }) => {\n const location = useLocation();\n useEffect(() => {\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 const page = routeMap[matchedPage];\n if (page) {\n googleTagManagerService.newPage(page.pageType);\n googleTagManagerService.trackPageView();\n }\n }, [location, routeMap]);\n return null;\n};\n","const resolveCode = (enabled, currencyCodeOrNull, currencies) => {\n const currency = resolveCurrency(enabled, currencyCodeOrNull, currencies);\n return currency ? currency.code : null;\n};\n\nconst resolveCurrency = (enabled, currencyCodeOrNull, currencies) => {\n if (!enabled || !currencyCodeOrNull) {\n return null;\n }\n const result = (currencies || []).find(\n currency => currency.code === currencyCodeOrNull\n );\n if (result) {\n return result;\n }\n return null;\n};\n\nexport { resolveCode, resolveCurrency };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { logger } from 'packages';\n\nclass ApplicationErrorBoundary extends React.Component {\n state = { hasError: false };\n\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n componentDidCatch(error) {\n const { capture } = this.props;\n if (capture) capture(error);\n }\n\n render() {\n const { hasError } = this.state;\n const { children, fallback } = this.props;\n return hasError ? fallback : children;\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: logger,\n fallback: null\n};\n\nexport default ApplicationErrorBoundary;\n","import React from 'react';\nimport { Route, Switch } from 'react-router';\n\nexport const RouteMapRoutes = ({ routeMap }) => (\n \n {Object.keys(routeMap).map(page => (\n \n ))}\n \n);\n","const optionHasError = option => !option.type;\n\nexport const ensureGoodShippingOptions = shippingOptions => {\n shippingOptions = shippingOptions || [];\n return shippingOptions.find(optionHasError) ? [] : shippingOptions;\n};\n","import { localStore } from 'utils/storage';\n\nclass ResultSet {\n constructor(result) {\n this._result = result;\n this._result.orderByTimestamp = this.orderByTimestamp.bind(this);\n this._result.orderByValue = this.orderByValue.bind(this);\n this._result.orderByExpire = this.orderByExpire.bind(this);\n }\n\n get() {\n return this._result;\n }\n\n _orderBy(orderProp) {\n function orderByProp(a, b) {\n if (a[orderProp] === b[orderProp]) {\n return 0;\n }\n\n return a[orderProp] < b[orderProp] ? 1 : -1;\n }\n\n return this._result.sort(orderByProp);\n }\n\n orderByTimestamp() {\n return this._orderBy('timestamp');\n }\n\n orderByValue() {\n return this._orderBy('value');\n }\n\n orderByExpire() {\n return this._orderBy('expires');\n }\n}\n\nclass StorageService {\n constructor(namespace, options = {}) {\n this.namespace = namespace || 'default';\n this.datastore = options.datastore || localStore;\n }\n\n getDataSafe() {\n return this.datastore.getItem(this.namespace) || {};\n }\n\n store(data) {\n this.datastore.setItem(this.namespace, data);\n return true;\n }\n\n remove(key) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n this.purge(encodedKey, data);\n }\n\n purge(key, data) {\n delete data[key];\n this.store(data);\n return true;\n }\n\n get(key) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n if (\n data[encodedKey] &&\n data[encodedKey].expires &&\n data[encodedKey].expires < new Date().getTime()\n ) {\n this.purge(encodedKey, data);\n }\n\n return (data[encodedKey] && data[encodedKey].value) || null;\n }\n\n set(key, value, expires, timestamp) {\n let data = this.getDataSafe(),\n encodedKey = encodeURI(key).toLowerCase();\n\n data[encodedKey] = {\n expires: (expires && expires.getTime()) || null,\n timestamp:\n (timestamp && timestamp.getTime()) || new Date().getTime(),\n value: value\n };\n\n this.datastore.setItem(this.namespace, data);\n\n return data[encodedKey] || null;\n }\n\n removeExpired() {\n let data = this.getDataSafe(),\n prop;\n\n for (prop in data) {\n if (data.hasOwnProperty(prop)) {\n if (\n data[prop].expires &&\n data[prop].expires < new Date().getTime()\n ) {\n this.purge(prop, data);\n }\n }\n }\n }\n\n fetch() {\n function addRow(row, prop, propValue) {\n row.key = decodeURI(prop);\n row.value = propValue.value;\n row.timestamp = propValue.timestamp;\n return row;\n }\n\n let data = this.getDataSafe(),\n rows = [],\n prop;\n\n for (prop in data) {\n if (data.hasOwnProperty(prop)) {\n rows.push(addRow({}, prop, data[prop]));\n }\n }\n\n return new ResultSet(rows).get();\n }\n\n flush() {\n return this.datastore.clearByPrefix(this.namespace);\n }\n}\n\nexport default StorageService;\n","export default {\n list: [],\n isFetching: false,\n error: null\n};\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 React, { Fragment } from 'react';\nimport { useUrlLocalizer, useTranslator } from 'tradera-lang';\n\nconst SellerName = ({\n memberId,\n cleanedAlias,\n alias,\n hasBackground,\n isCompany,\n hasShop\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const { t } = useTranslator();\n\n const badgeText =\n (hasShop && t('vip_sellerInfoHasStore')) ||\n (isCompany && t('vip_sellerInfoCompany'));\n\n return (\n \n \n \n {badgeText && (\n \n {badgeText}\n \n )}\n \n {alias}\n \n \n \n \n );\n};\n\nexport default SellerName;\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import React, { 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';\nimport 'tradera-components/portals/loading-portal.scss';\nimport './loader.scss';\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\nconst GlobalLoader = () => (\n \n \n \n);\n\n// Legacy global loader that uses portal\nconst PortalLoader = () => (\n \n \n \n);\n\n// Local loader that covers its closest positioned parent\n// Tip: use position-relative class for containing parent\nconst 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;\nexport { PortalLoader, GlobalLoader, LocalLoader };\n","import axios from 'axios';\nimport qs from 'qs';\nimport {\n utilizeCancelToken,\n checkResponseVersion,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport { logger } from 'packages';\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 logger(\n 'getSearchResults must have queryParams as the first argument',\n true\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 'underscore';\n\nvar initialState = {\n shortDescription: null,\n validationError: null\n};\n\nfunction validate(newState) {\n newState.validationError =\n newState.shortDescription && newState.shortDescription.trim() !== ''\n ? null\n : 'syi_validation_missing_title';\n return newState;\n}\n\nexport default (state, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_SHORT_DESCRIPTION':\n return validate(\n _.assign({}, state, { shortDescription: action.payload })\n );\n case 'RESET_SHORT_DESCRIPTION':\n return validate(_.assign({}, state, { shortDescription: null }));\n default:\n return state;\n }\n};\n","import React from 'react';\nimport QuickViewIcon from '@tradera/blueprint/theme/icons2/quick-view.svg?jsx';\nimport { useTranslator } from 'tradera-lang';\n\nconst QuickViewButton = ({ className, iconClassName, onClick }) => {\n const { t } = useTranslator();\n return (\n \n \n \n );\n};\nexport default QuickViewButton;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport { axiosConfigs } from 'tradera-utils/api';\nimport campaignCodeActions from './campaign-code-actions';\nimport { defaultClient } from 'tradera-utils/http';\nimport { selectCategoryAttributes } from '../selectors/attribute-selectors';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nconst throttleTimeout = 2000;\nconst suggestionsThrottle = new ThrottledAction(throttleTimeout, true);\n\nconst INPUT_TYPE_MAP = {\n Button: 'button',\n Color: 'color',\n Dropdown: 'dropdown'\n};\n\nconst transformServerOption = serverOption => {\n return {\n value:\n typeof serverOption === 'string'\n ? serverOption\n : serverOption.value,\n isActive: false,\n warningLabel: {\n title:\n serverOption.warningLabel !== undefined &&\n serverOption.warningLabel !== null\n ? serverOption.warningLabel.title\n : null,\n text:\n serverOption.warningLabel !== undefined &&\n serverOption.warningLabel !== null\n ? serverOption.warningLabel.text\n : null\n }\n };\n};\n\nconst transformServerAttribute = attribute => {\n return {\n id: attribute.id,\n title: attribute.displayName,\n description: attribute.description,\n hiddenCategories: attribute.hiddenCategories,\n sortOrder: attribute.sortOrder,\n backingField: attribute.backingField,\n options: attribute.possibleValues.map(transformServerOption),\n inputType: INPUT_TYPE_MAP[attribute.type],\n isMultiSelect: attribute.isMultiSelect,\n maxNumberOfValues: attribute.maxNumberOfValues,\n minNumberOfValues: attribute.minNumberOfValues,\n numberOfValuesSelected: 0,\n shouldTranslateValues: attribute.shouldTranslateValues\n };\n};\n\nexport const setAttributesFromDraft = draft => dispatch => {\n dispatch({\n type: 'SET_DRAFT_ATTRIBUTES',\n payload: draft.attributeValues\n });\n};\n\nexport const fetchForCategory = categoryId => async dispatch => {\n dispatch({\n type: 'RESET_ATTRIBUTES'\n });\n\n if (!categoryId) {\n return;\n }\n\n try {\n const response = await defaultClient.get(\n `${ENDPOINTS.SELLING_ATTRIBUTES}/?categoryId=${categoryId}`,\n {\n ...axiosConfigs.authenticated\n }\n );\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTES',\n payload: response.data.attributeDefinitions.map(\n transformServerAttribute\n )\n });\n dispatch(updateCategoryAttributesOptionsStatuses());\n dispatch(campaignCodeActions.validateCampaignCode());\n } catch (error) {\n dispatch({\n type: 'RESET_ATTRIBUTES'\n });\n throw error;\n }\n};\n\nconst updateCategoryAttributesOptionsStatuses = () => dispatch => {\n dispatch({\n type: 'UPDATE_CATEGORY_ATTRIBUTES_OPTIONS_STATUSES'\n });\n};\n\nexport const updateAttribute = (\n attributeId,\n optionValue,\n activate,\n onUpdated\n) => (dispatch, getState) => {\n const {\n maxNumberOfValues,\n numberOfValuesSelected\n } = selectCategoryAttributes(getState()).find(a => a.id === attributeId);\n\n if (activate && maxNumberOfValues === numberOfValuesSelected) {\n return;\n }\n\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTE_OPTION',\n payload: {\n attributeId,\n optionValue,\n activate\n }\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n if (onUpdated) {\n onUpdated();\n }\n};\n\nexport const resetAttribute = attributeId => dispatch => {\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTE_OPTION',\n payload: {\n attributeId,\n activate: false\n }\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n};\n\nexport const throttledFetchCategoryAttributeSuggestions = (\n categoryId,\n shortDescription\n) => async dispatch => {\n const action = () => {\n dispatch(\n fetchCategoryAttributeSuggestions(categoryId, shortDescription)\n );\n };\n suggestionsThrottle.execute(action);\n};\n\nexport const fetchCategoryAttributeSuggestions = (\n categoryId,\n shortDescription\n) => async (dispatch, getState) => {\n const featureSwitches = getState().environment.featureSwitches;\n if (!featureSwitches['syi-attribute-suggestions']) {\n return;\n }\n\n if (!categoryId || !shortDescription) {\n dispatch({\n type: 'RESET_ATTRIBUTES_SUGGESTIONS'\n });\n return;\n }\n\n const splitTestGroup = getState().environment.splitTestGroups[\n 'attribute_suggestion_extractor'\n ];\n if (!splitTestEnabled(splitTestGroup)) {\n return;\n }\n const extractorType = getAttributeSuggestionExtractor(splitTestGroup);\n\n try {\n let params = {\n categoryId,\n shortDescription,\n extractorType\n };\n const response = await defaultClient.post(\n `${ENDPOINTS.SELLING_SUGGEST_ATTRIBUTES}`,\n params,\n {\n ...axiosConfigs.authenticated\n }\n );\n\n dispatch({\n type: 'SET_CATEGORY_ATTRIBUTES_SUGGESTIONS',\n payload: {\n suggestedAttributes: response.data.attributeValues.termAttributeValues.map(\n transformServerAttributeSuggestion\n ),\n suggestionsExtractorType: response.data.extractorType\n }\n });\n } catch (error) {\n dispatch({\n type: 'RESET_ATTRIBUTES_SUGGESTIONS'\n });\n throw error;\n }\n};\n\nconst splitTestEnabled = splitTest => splitTest !== 'control';\n\nconst getAttributeSuggestionExtractor = splitTest => {\n switch (splitTest) {\n case 'code':\n return 0;\n case 'tradera':\n return 1;\n case 'google':\n return 2;\n default:\n return 0;\n }\n};\n\nconst transformServerAttributeSuggestion = attributeSuggestion => {\n return {\n id: attributeSuggestion.id,\n name: attributeSuggestion.name,\n values: attributeSuggestion.values\n };\n};\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n checkResponseVersion,\n defaultJsonRequestHeaders,\n finalizeResponse,\n handleError,\n utilizeCancelToken\n} from 'tradera-utils/api';\nimport initData from 'init-data';\n\n// Prevents URL:s that begins with // when that was not intended.\nconst getSafeUrl = (baseUrl, url) => {\n if (baseUrl.endsWith('/') && url.startsWith('/')) {\n return baseUrl + url.substring(1);\n }\n return baseUrl + url;\n};\n\nconst httpClient = baseUrl => ({\n get: (url, httpClientConfig = { headers: defaultJsonRequestHeaders }) => {\n let { cancelTokenId, ...axiosConfig } = httpClientConfig;\n const version = initData.version;\n if (cancelTokenId) {\n const { cancel, cancelToken } = utilizeCancelToken(cancelTokenId);\n axiosConfig.cancelToken = cancelToken;\n if (cancel) {\n cancel();\n }\n }\n return axiosWithTokenRefresh()\n .get(getSafeUrl(baseUrl, url), axiosConfig)\n .then(\n version ? checkResponseVersion(version) : response => response\n )\n .then(finalizeResponse())\n .catch(handleError());\n },\n post: (\n url,\n payload,\n httpClientConfig = { headers: defaultJsonRequestHeaders }\n ) => {\n let { cancelTokenId, ...axiosConfig } = httpClientConfig;\n const version = initData.version;\n if (cancelTokenId) {\n const { cancel, cancelToken } = utilizeCancelToken(cancelTokenId);\n axiosConfig.cancelToken = cancelToken;\n if (cancel) {\n cancel();\n }\n }\n return axiosWithTokenRefresh()\n .post(getSafeUrl(baseUrl, url), payload, axiosConfig)\n .then(\n version ? checkResponseVersion(version) : response => response\n )\n .then(finalizeResponse())\n .catch(handleError());\n }\n});\n\nexport const defaultClient = httpClient('');\nexport const touchWebClient = httpClient(ENDPOINTS.TOUCHWEB_URL); // ENDPOINTS.TOUCHWEB_URL is localized.\n","export const selectAvailableLanguages = state => state.language.available;\n\nexport const selectPreferredLanguage = state => state.language.preferred;\n\nexport const selectIsForeignLanguageActivated = state =>\n selectPreferredLanguage(state).languageCodeIso2 !== 'sv';\n\nexport const selectShouldAlwaysDisplayInMenu = state =>\n state.language.shouldAlwaysDisplayInMenu;\n\nexport const selectShouldDisplayInHeader = state =>\n state.language.shouldDisplayInHeader;\n","import { selectIsForeignLanguageActivated } from '../../language';\nimport { isSwedenCountryNameOrUndefined } from 'tradera-utils/countrycode';\n\nexport const isTranslateDescriptionEnabled = state =>\n selectIsForeignLanguageActivated(state);\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 showTranslatedDescription = state =>\n !!selectViewItem(state).showTranslatedDescription;\n\nexport const showLoading = state =>\n selectViewItem(state)\n ? selectViewItem(state).translatedDescriptionLoading\n : false;\n\nexport const showError = state =>\n selectViewItem(state)\n ? selectViewItem(state).translatedDescriptionLoadingError\n : false;\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const languageSlice = createSlice({\n name: 'language',\n initialState: {},\n reducers: {\n setPreferred: (state, action) => {\n state.preferred =\n state.available.find(\n language => language.languageCodeIso2 === action.payload\n ) || {};\n },\n filterAvailableLanguages: (state, action) => {\n // Always show swedish, english, the language from the url, the language of the country the user is in, and\n // the language of the country of the member. This is temporary logic during initial internationalization.\n const gpsCountry = (action.payload.isoCode || '').toLowerCase();\n const memberCountry = (\n state.memberCountryCodeIso2 || ''\n ).toLowerCase();\n const urlLanguage = state.preferred.languageCodeIso2;\n const languagesToShow = {\n da: gpsCountry === 'dk' || memberCountry === 'dk',\n de: gpsCountry === 'de' || memberCountry === 'de',\n sv: true,\n en: true,\n [urlLanguage]: true\n };\n state.available = state.available.filter(\n ({ languageCodeIso2 }) =>\n languagesToShow[languageCodeIso2] === true\n );\n }\n }\n});\n\nexport const { setPreferred, filterAvailableLanguages } = languageSlice.actions;\nexport default languageSlice.reducer;\n","import { now } from './date-now';\n\nexport const getTimeLeftInSeconds = endTimeInMs => {\n return Math.floor((endTimeInMs - now()) / 1000);\n};\n\n/**\n * Calculates and end time that expires in the same amount of time as on server.\n * @param {*} serverTimeInms\n * @param {*} serverlatency\n * @param {*} clientTimeInMs\n * @param {*} itemEndTimeInMs\n */\nexport const calculateClientEndTime = (\n serverTimeInms,\n serverlatency,\n clientTimeInMs,\n itemEndTimeInMs\n) => {\n const diff = serverTimeInms - clientTimeInMs;\n const adjustedEndTime = itemEndTimeInMs - diff - serverlatency;\n return adjustedEndTime;\n};\n","export const now = () => Date.now();\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 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 );\n};\nexport const PreviousArrow = props => {\n const { className, arrowClassName = '', style, onClick } = props;\n return (\n {\n onClick();\n }}>\n \n \n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Slider from 'react-slick';\nimport { NextArrow, PreviousArrow } from '../arrows';\nimport './basic.scss';\n\n/**\n * BasicCarousel\n * Usage:\n * loopThroughSlides()} />\n */\nclass BasicCarousel extends React.Component {\n next() {\n if (this.slider) {\n this.slider.slickNext();\n }\n }\n\n previous() {\n if (this.slider) {\n this.slider.slickPrev();\n }\n }\n\n goTo(imageIndex) {\n if (this.slider) {\n const skipAnimation = true;\n this.slider.slickGoTo(imageIndex, skipAnimation);\n }\n }\n\n render() {\n const {\n render,\n pageType = '',\n settings,\n className,\n arrowClassName,\n children\n } = this.props;\n const defaults = {\n dots: true,\n dotsClass: 'slick-dots slick-thumb',\n nextArrow: (\n \n ),\n prevArrow: (\n \n ),\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n lazyLoad: true,\n ...settings\n };\n\n return (\n \n (this.slider = c)} {...defaults}>\n {render ? render() : children}\n \n \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","var 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, action) => {\n var step1Errors = function(state) {\n return (\n !!state.shortDescription ||\n !!state.categoryId ||\n !!state.images ||\n !!state.longDescription ||\n !!state.itemCondition\n );\n };\n\n var step2Errors = function(state) {\n return (\n !!state.openingBid ||\n !!state.reservePrice ||\n !!state.fixedPrice ||\n !!state.durationDays ||\n !!state.customEndTime\n );\n };\n\n var step3Errors = function(state) {\n return !!state.shippingOptions;\n };\n\n var step4Errors = function(state) {\n return !!state.paymentOptions;\n };\n\n state = state || initialState;\n switch (action.type) {\n case 'SET_ERRORS':\n state = _.assign({}, action.errors);\n break;\n case 'SET_ERROR':\n var tmp = {};\n tmp[action.propertyName] = action.error;\n state = _.assign({}, state, tmp);\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 state = _.assign({}, state, {\n step1: e1 || undefined,\n step2: e2 || undefined,\n step3: e3 || undefined,\n step4: e4 || undefined\n });\n\n return state;\n};\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","'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 default {\n SET_PREFERRED_CURRENCY: 'CURRENCY/SET_PREFERRED_CURRENCY',\n SET_CURRENCY_IF_NOT_CHOSEN: 'CURRENCY/SET_CURRENCY_IF_NOT_CHOSEN'\n};\n","let startTime = 0;\n\nconst startSession = () => {\n startTime = new Date().getTime();\n};\n\nconst getElapsedMillis = () => {\n return new Date().getTime() - startTime;\n};\n\nexport default {\n startSession,\n getElapsedMillis\n};\n","import {\n selectGeolocation,\n selectIsOutsideSweden\n} from 'tradera-state/member/selectors';\nimport { selectPreferredLanguage } from 'tradera-state/language';\nimport { selectIsLoggedIn } from 'tradera-state/member';\nimport { getLanguageFromCountryCode } from 'tradera-utils/languagecode';\nimport { isSwedenCountryCodeOrUndefined } from 'tradera-utils/countrycode';\n\nexport const selectShowRegionSelection = state =>\n !selectIsLoggedIn(state) && selectIsOutsideSweden(state);\nexport const selectAvailableShippingCountries = state =>\n state.shippingRegion.availableShippingCountries;\nexport const selectShippingCountry = state =>\n state.shippingRegion.shippingCountry;\nexport const selectIsLoadingAvailableShippingCountries = state =>\n state.shippingRegion.isLoadingAvailableShippingCountries;\nexport const selectHasLoadedAvailableShippingCountries = state =>\n state.shippingRegion.hasLoadedAvailableShippingCountries;\nexport const selectShippingRegionCountryCodeIso2 = state =>\n state.shippingRegion.shippingCountry?.countryCodeIso2;\nexport const selectIsSwedishVisitor = state =>\n isSwedenCountryCodeOrUndefined(selectShippingRegionCountryCodeIso2(state));\n\nconst gpsMatchesLanguage = state => {\n const geoLocation = selectGeolocation(state);\n if (!geoLocation) {\n return true;\n }\n const country = geoLocation?.isoCode?.toLowerCase();\n const expectedLang = getLanguageFromCountryCode(country);\n const language =\n selectPreferredLanguage(state)?.languageCodeIso2?.toLowerCase() || 'sv';\n return expectedLang === language;\n};\n\nexport const selectShowLocalizationRegionPicker = state =>\n !selectIsLoggedIn(state) &&\n state.shippingRegion.localizationRegionPickerEnabled &&\n !state.shippingRegion.regionPickerDismissed &&\n !gpsMatchesLanguage(state);\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: 'danger',\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: 'primary',\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: 'primary',\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: 'primary',\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: 'primary',\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: 'primary',\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: 'primary',\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: 'primary',\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 ENDPOINTS from 'tradera-constants/endpoints';\nimport initData from 'init-data';\n\nimport {\n axiosConfigs,\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError,\n API_ERRORS\n} from 'tradera-utils/api';\n\nexport const getShippingProviders = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.SHIPPING_PROVIDERS, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse())\n .then(prepareResultForView)\n .catch(\n handleError({\n // Ignore 400 & 401 errors that slip through token refresh\n 400: API_ERRORS.IGNORE_ME,\n 401: API_ERRORS.IGNORE_ME\n })\n );\n};\n\nconst GetRestrictionText = texts => {\n return texts.length === 0\n ? null\n : `

${texts[0]}

`;\n};\n\nconst prepareResultForView = result => {\n return result.data.shippingProviders.map(shippingProvider => {\n shippingProvider.useAdvancedWidget =\n shippingProvider.products &&\n shippingProvider.products[0].variants &&\n shippingProvider.products[0].variants.length > 1;\n\n const promotedProviders = initData.featureSwitches[\n 'dhl-integrated-booking-enabled'\n ]\n ? ['DBSchenker', 'PostNord', 'DHL']\n : ['DBSchenker', 'PostNord'];\n\n shippingProvider.promoted =\n promotedProviders.find(p => p === shippingProvider.id) !== undefined\n ? true\n : false;\n\n shippingProvider.isObsolete = shippingProvider.isObsolete || false;\n\n shippingProvider.products = shippingProvider.products.map(product => {\n product.validationError = null;\n product.cost = null;\n product.selected = false;\n product.isExtraInfoVisible = false;\n product.isBulkySelected = false;\n product.visible = product.type !== 'PostNordStamp';\n product.isValid = true;\n product.isStamps = product.type === 'PostNordStamp';\n\n product.variants = product.variants.map(variant => {\n if (product.type == 'PostNordStamp') {\n variant.numberOfStamps =\n variant.price / product.variants[0].price;\n }\n\n variant.restrictionText = GetRestrictionText(\n variant.restrictionTexts\n );\n return variant;\n });\n\n return product;\n });\n\n return shippingProvider;\n });\n};\n","const area = '/selling';\n\nexport default {\n START: `${area}/`,\n CAMPAIGN: `${area}/campaign/:campaignCode`,\n DRAFTS: `${area}/`,\n DRAFT: `${area}/draft/:draftId`,\n DRAFT_SUMMARY: `${area}/summary/:draftId`,\n EDIT_DRAFT_PROPERTIES: `${area}/draft/:draftId/edit/:propertyNames`,\n NEW_DRAFT: `${area}/new`,\n TEMPLATES: `${area}/templates`,\n TEMPLATE: `${area}/template/:templateId`,\n EDIT_TEMPLATE_PROPERTIES: `${area}/template/:templateId/edit/:propertyNames`,\n PUBLISHED: `${area}/published/:itemId`,\n EXTRA: `${area}/extra/:draftId`,\n FEATURES: `${area}/features/:itemId`\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';\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';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\n\nclass GdprSettingsModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n gdprSettings: props.gdprSettings\n };\n }\n\n save = () => {\n const { saveHandler } = this.props;\n const {\n gdprSettings: { performance, functional, marketing }\n } = this.state;\n\n let label;\n if (performance && functional && marketing) {\n label = 'Save All';\n } else {\n label =\n 'Save ' +\n [\n performance && 'performance',\n functional && 'functional',\n marketing && 'marketing'\n ]\n .filter(l => l)\n .join(', ');\n }\n\n saveHandler(performance, functional, marketing, label);\n };\n\n handleChange = event => {\n const {\n target: { name, checked }\n } = event;\n this.setState(state => ({\n gdprSettings: {\n ...state.gdprSettings,\n [name]: checked\n }\n }));\n };\n\n render() {\n const { t } = this.props;\n const { gdprSettings } = this.state;\n return (\n \n
\n

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

\n
\n
\n

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

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

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

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

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

\n \n \n
\n

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

\n
\n )\n )}\n
\n
\n \n {t('gdprConsent_save')}\n \n
\n \n );\n }\n}\n\nGdprSettingsModal.propTypes = {\n saveHandler: PropTypes.func.isRequired\n};\n\nexport default withTranslator(GdprSettingsModal);\n","import React, { Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n\nimport { Analytics, logger } from 'packages';\nimport uiActions from 'tradera-state/ui/actions';\nimport CookieUtil from 'tradera-utils/cookie';\nimport {\n GDPR_CONSENT_COOKIE,\n GDPR_CONSENT_ALERT_DISMISSED\n} from 'tradera-constants/cookies';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport GdprModal from 'tradera-components/alerts/gdpr/gdpr-modal';\nimport GdprSettingsModal from 'tradera-components/alerts/gdpr/gdpr-settings-modal';\nimport initData from 'init-data';\n\nconst GdprContainer = props => {\n const {\n visibleModal,\n visibleSettings,\n closeModal,\n openSettings,\n closeSettings\n } = props;\n\n const quantcastConsent = initData.featureSwitches['quantcast-consent'];\n const openGdprSettings = event => {\n if (event) event.preventDefault();\n openSettings();\n };\n\n const acceptAndHide = (\n performance = true,\n functional = true,\n marketing = true,\n eventLabel\n ) => {\n GdprSettings.set(performance, functional, marketing);\n CookieUtil.createCookie(\n GDPR_CONSENT_ALERT_DISMISSED,\n 1,\n moment()\n .add(1, 'years')\n .toDate()\n );\n closeSettings();\n closeModal();\n // Only track event and reload if cookie settings allow tracking\n if (performance) {\n trackEvent(eventLabel)\n .then(() => location.reload(true))\n .catch(error => logger(error));\n }\n };\n\n const trackEvent = (label = 'Save') => {\n return new Promise(resolve => {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Cookies',\n label,\n hitCallback: resolve\n });\n });\n };\n\n const hasGdprCookie = CookieUtil.hasCookie(GDPR_CONSENT_COOKIE);\n // Default to all toggled on if settings have never been set\n const gdprSettings = hasGdprCookie\n ? {\n performance: GdprSettings.isPerformanceEnabled(),\n functional: GdprSettings.isFunctionalEnabled(),\n marketing: GdprSettings.isMarketingEnabled()\n }\n : {\n performance: true,\n functional: true,\n marketing: true\n };\n\n return !quantcastConsent ? (\n \n {visibleModal && (\n \n )}\n {visibleSettings && (\n \n )}\n \n ) : null;\n};\n\nconst mapStateToProps = state => ({\n visibleModal: state.ui.gdpr.modalOpen,\n visibleSettings: state.ui.gdpr.settingsOpen\n});\n\nconst mapDispatchToProps = dispatch => ({\n closeModal: () => dispatch(uiActions.closeGdprModal()),\n openSettings: () => dispatch(uiActions.openGdprSettings()),\n closeSettings: () => dispatch(uiActions.closeGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GdprContainer);\n","import React from 'react';\nimport useSyiUrls from '../hooks/use-syi-urls';\nimport { useHistory } from 'react-router-dom';\n\nconst createNavigator = history => url => history.push(url);\n\nconst getDraftIdFromUrl = urls => () => {\n const path = document.location.pathname;\n const draftPath = urls.draft('');\n\n if (path.startsWith(draftPath)) {\n return path.substring(draftPath.length);\n }\n\n // Return undefined to match exactly what a draftId is before being set.\n return undefined;\n};\n\nconst withUrls = Component => {\n const ComposedComponent = ({ ...props }) => {\n const history = useHistory();\n const urls = useSyiUrls();\n return (\n \n );\n };\n return ComposedComponent;\n};\n\nexport default withUrls;\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 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 initData: { 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","/**\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 const memberId = getState().member.memberId;\n const sdk = await getUrbanSdk();\n const channel = await sdk.register();\n await channel.namedUser.set(memberId.toString());\n dispatch(actions.setOptedInValue(true));\n return channel;\n } catch (error) {\n return null;\n }\n};\n\nexport const optOut = () => async dispatch => {\n try {\n const sdk = await getUrbanSdk();\n if (sdk !== null && sdk.channel !== null) {\n await sdk.channel.optOut();\n }\n dispatch(actions.setOptedInValue(false));\n } catch (error) {\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';\n\nimport { useTranslator } from 'tradera-lang';\nimport ErrorContainer from './error-container';\nimport WarningIcon from '@tradera/blueprint/theme/icons/warning.svg?jsx';\n\nconst NoItemsError = () => {\n const { t } = useTranslator();\n return (\n \n

\n \n

\n

{t('error_oops')}

\n

{t('error_cantLoadItems')}

\n

{t('error_tryAgainLater')}

\n

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

\n
\n );\n};\n\nexport default NoItemsError;\n","import { logger } from 'packages';\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 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 {\n status: config ? 'HAS_DATA' : 'NOT_FETCHED',\n config,\n trendingBrands,\n trendingSearches,\n wishList,\n favouriteSellers\n };\n};\n","export default {\n SET_TCF_LOADED: 'ADS/SET_TCF_LOADED',\n SET_ADS: 'ADS/SET_ADS'\n};\n","import $ from 'static/script/libs/jquery';\nimport { component } from 'flightjs';\n\nfunction Logger() {\n this.logInfo = function(e, msg) {\n this._log(e, msg, 'js-info');\n };\n\n this.logError = function(e, msg) {\n this._log(e, msg, 'js-onerror');\n };\n\n this._log = function(e, msg, logLevel) {\n let errorMsg;\n\n if (e.message) {\n errorMsg = e.name + ': ' + e.message;\n } else {\n errorMsg = e;\n }\n\n let payload = {\n eventName: logLevel,\n message: msg + ' ' + errorMsg,\n trace: e.stack || ''\n };\n\n $(document).trigger('data:scribe', payload);\n };\n}\n\nexport default component(Logger);\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport scribe from './scribe';\nimport sessionService from './session-service';\nimport { toLocalizedRiotUrl } from './../utils/language';\n\nfunction postJson(url, draft) {\n return $.ajax({\n type: 'POST',\n contentType: 'application/json',\n url: url,\n data: JSON.stringify(draft),\n dataType: 'json'\n });\n}\n\nfunction trackItemPublished(draft) {\n var isFromTemplate = isDraftFromTemplate(draft);\n scribe.sendSessionDuration(\n sessionService.getElapsedMillis(),\n isFromTemplate\n );\n}\n\nfunction prepareForPublish(draft) {\n draft.shippingOptions = _.filter(draft.shippingOptions, function(item) {\n return !!item.type;\n });\n}\n\nfunction isNullOrUndefined(val) {\n return _.isNull(val) || _.isUndefined(val);\n}\n\nfunction isDraftFromTemplate(draft) {\n return draft && !isNullOrUndefined(draft.templateId);\n}\n\nconst publish = (draft, hasTraderaPayConsent) => {\n var deferred = $.Deferred();\n prepareForPublish(draft);\n postJson(toLocalizedRiotUrl('/selling/api/items'), {\n draft: draft,\n hasTraderaPayConsent: hasTraderaPayConsent\n })\n .then(function(data) {\n trackItemPublished(draft);\n if (data.errorCode) {\n deferred.reject(data);\n } else {\n deferred.resolve(data);\n }\n })\n .fail(function(data) {\n deferred.reject(data);\n });\n\n return deferred.promise();\n};\n\nexport default {\n publish\n};\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 getInitialState from './initial-state';\nimport { getSystemMessageAlertCount } from './helpers';\n\nconst MESSAGING_NOTIFICATIONS_CACHE_TTL = 30 * 1000;\n\nexport default (state = {}, 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 { videoId, title, pageType } = action.payload;\n return {\n ...state,\n videoModal: {\n ...state.videoModal,\n open: CONSTANTS.MODAL.OPEN,\n videoId: videoId,\n title: title,\n pageType: pageType\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 /*\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 } = action.payload;\n return {\n ...state,\n modals: {\n currentModal: modalId\n }\n };\n };\n\n const closeModal = () => {\n return {\n ...state,\n modals: {\n currentModal: 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 const { badges } = getInitialState({});\n return {\n ...state,\n badges\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 }\n };\n };\n\n const def = () => state;\n\n const reducers = {\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_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 };\n\n return !action || !action.type || !reducers[action.type]\n ? def()\n : reducers[action.type]();\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport { getCurrentBreakpoint } from 'tradera-utils/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\n/**\n * Returns breakpoint id when it changes\n *\n * @returns {string|null}\n */\nfunction useBreakpoint() {\n const [breakpoint, setBreakpoint] = useState(\n getCurrentBreakpoint(window.innerWidth)\n );\n useEffect(() => {\n const handleResize = event =>\n setBreakpoint(getCurrentBreakpoint(event.target.innerWidth));\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n return breakpoint;\n}\n\nconst withBreakpoint = WrappedComponent => {\n function WithBreakpoint(props) {\n const currentBreakpoint = useBreakpoint();\n return (\n \n );\n }\n\n WithBreakpoint.displayName = `withBreakpoint(${WithBreakpoint.displayName ||\n WithBreakpoint.name}`;\n\n return WithBreakpoint;\n};\n\nexport {\n Breakpoint as default,\n Breakpoint,\n BREAKPOINTS,\n useBreakpoint,\n withBreakpoint\n};\n","export default {\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","'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","/**\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","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","const shippingProviders = t => [\n {\n text: t('shippingProviders_schenkerPrivpak'),\n type: 'SchenkerPrivpak',\n logoImgUrl: '/static/images/shipping/schenker.svg'\n },\n {\n text: t('shippingProviders_posten'),\n type: 'Posten',\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_postNordParcel'),\n type: 'PostNordParcel',\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_postNordStamp'),\n type: 'PostNordStamp',\n logoImgUrl: '/static/images/shipping/postnord.svg'\n },\n {\n text: t('shippingProviders_dhl'),\n type: 'DHL',\n logoImgUrl: '/static/images/shipping/dhl.svg'\n },\n {\n text: t('shippingProviders_bussgods'),\n type: 'Bussgods',\n logoImgUrl: '/static/images/shipping/bussgods.svg'\n },\n {\n text: t('shippingProviders_alternative'),\n type: 'Alternative',\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_takeaway'),\n type: 'Takeaway',\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_takeaway'),\n type: 'TakeawayOnly',\n logoImgUrl: null\n },\n {\n text: t('shippingProviders_notSpecified_full'),\n type: 'NotSpecified',\n logoImgUrl: null\n }\n];\n\nexport default {\n get: t => shippingProviders(t)\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport {\n axiosWithTokenRefresh,\n finalizeResponse,\n handleError\n} from 'tradera-utils/api';\nimport { toLocalizedUrl } from 'tradera-utils/url';\nimport { getCurrentLanguage } from 'tradera-lang/boot-languages';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport { openModal } from 'tradera-state/ui/action-creators';\nimport { internationalShippingModalId } from 'tradera-components/international-shipping-modal/international-shipping-modal';\nimport {\n selectIsLoggedIn,\n selectMemberId\n} from 'tradera-state/member/selectors';\n\nconst internationalShippingSlice = createSlice({\n name: 'internationalShipping',\n initialState: {\n imageUrl: null,\n messagingLink: null,\n ownItem: null,\n providers: [],\n rows: [],\n title: null,\n weights: []\n },\n reducers: {\n setInternationalShipping: (state, action) => {\n state.messagingLink = action.payload.messagingLink;\n state.ownItem = action.payload.ownItem;\n const { imageUrl, title, shippingOptions } = action.payload.data;\n state.imageUrl = imageUrl;\n state.title = title;\n const { providers, rows, weights } = shippingOptions\n .sort((a, b) =>\n a.toCountryCodeIso2 > b.toCountryCodeIso2 ? 1 : -1\n )\n .reduce(\n ({ providers, rows, weights }, shippingOption) => {\n if (\n !providers.includes(shippingOption.shippingProvider)\n ) {\n providers = [\n ...providers,\n shippingOption.shippingProvider\n ];\n weights = [\n ...weights,\n shippingOption.shippingWeight\n ];\n }\n if (\n rows.length === 0 ||\n rows[rows.length - 1].toCountryCodeIso2 !==\n shippingOption.toCountryCodeIso2\n ) {\n rows = [\n ...rows,\n {\n toCountryCodeIso2:\n shippingOption.toCountryCodeIso2\n }\n ];\n }\n rows[rows.length - 1] = {\n ...rows[rows.length - 1],\n [shippingOption.shippingProvider]:\n shippingOption.shippingCost\n };\n return { providers, rows, weights };\n },\n { providers: [], rows: [], weights: [] }\n );\n\n state.providers = providers;\n state.rows = rows;\n state.weights = weights;\n }\n }\n});\n\nexport const fetchInternationalShipping = ({ itemId, sellerId }) => async (\n dispatch,\n getState\n) => {\n const url = toLocalizedUrl(\n `${ENDPOINTS.WEB_API}/browse/item/${itemId}/shipping`,\n getCurrentLanguage()\n );\n const response = await axiosWithTokenRefresh()\n .get(url)\n .then(finalizeResponse())\n .catch(handleError());\n const data = response.data;\n\n data.shippingOptions = data.shippingOptions.filter(\n ({ shippingProvider }) =>\n shippingProvider !== 'Takeaway' &&\n shippingProvider !== 'TakeawayOnly'\n );\n\n const isLoggedIn = selectIsLoggedIn(getState());\n const buyerId = selectMemberId(getState());\n const ownItem = buyerId === sellerId;\n const messagingLink = {\n isLoggedIn,\n buyerId: buyerId?.toString(),\n memberId: buyerId?.toString(),\n sellerId: sellerId?.toString(),\n itemId: itemId?.toString(),\n source: 'contact_seller'\n };\n\n dispatch(\n setInternationalShipping({\n data,\n messagingLink,\n ownItem\n })\n );\n dispatch(openModal({ modalId: internationalShippingModalId }));\n};\n\nexport const { setInternationalShipping } = internationalShippingSlice.actions;\nexport default internationalShippingSlice.reducer;\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 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.NotSpecifiedShippingOption]:\n 'checkout_summary_error_shipping_non_spec',\n [CHECKOUT_ERRORS.NO_PAYMENT_METHOD]:\n 'checkout_summary_error_no_payment_method'\n};\n\nconst getCheckoutErrorMessage = type => {\n return (\n CHECKOUT_ERROR_STRINGS[type] ||\n CHECKOUT_ERROR_STRINGS[CHECKOUT_ERRORS.GENERIC]\n );\n};\n\nexport { CHECKOUT_ERRORS, getCheckoutErrorMessage };\n","import React from 'react';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nimport './site-subheader.scss';\n\nconst SiteSubheader = ({ className, children, ...otherProps }) => {\n const responsiveClassNames = useIsMobile() ? '' : 'bg-gray-100 border-top';\n return (\n \n
\n {children}\n
\n \n );\n};\n\nexport default SiteSubheader;\n","export const selectSyiAttributes = state => state.views.syi.attributes;\n\nexport const selectCategoryAttributes = state =>\n selectSyiAttributes(state).categoryAttributes;\n\nexport const selectSuggestedAttributes = state =>\n selectSyiAttributes(state).suggestedAttributes;\n","/* eslint-disable complexity */\nimport { setEnum } from '../../helpers/enums';\nconst isSelectedFilterBarItem = (filterBarSelected, item) =>\n filterBarSelected === item ? true : false;\n\n/**\n * setSellerFilterBarModifiers\n * @param {object} state\n * @param {string} selected\n * @returns {object} newState of 'filters' based on UI tab selection. Note: WebApi expects values as Capitalcase Enum;\n */\nconst setSellerFilterBarModifiers = (state, selected) => {\n const newState = { ...state };\n if (selected === 'Valj') {\n return newState;\n }\n\n if (newState.modifiers.sellerFilters) {\n Object.keys(newState.modifiers.sellerFilters).forEach(key => {\n newState.modifiers.sellerFilters[key] = setEnum('All');\n });\n }\n\n if (newState.modifiers.buyerFilters) {\n Object.keys(newState.modifiers.buyerFilters).forEach(key => {\n newState.modifiers.buyerFilters[key] = setEnum('All');\n });\n }\n\n switch (selected) {\n case 'SellerNoFeedback':\n newState.modifiers.sellerFilters.paid = setEnum(true);\n newState.modifiers.sellerFilters.shipped = setEnum(true);\n newState.modifiers.sellerFilters.feedbackLeft = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'BuyerNoFeedback':\n newState.modifiers.buyerFilters.feedbackLeft = setEnum(false);\n newState.modifiers.buyerFilters.paid = setEnum(true);\n newState.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'SellerNotPaid':\n newState.modifiers.sellerFilters.paid = setEnum(false);\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n // newState.modifiers.sellerFilters.feedbackLeft = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'BuyerNotPaid':\n newState.modifiers.buyerFilters.paid = setEnum(false);\n newState.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'NotSent':\n newState.modifiers.sellerFilters.paid = setEnum(true);\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n // newState.modifiers.sellerFilters.feedbackLeft = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateNotPaid':\n newState.modifiers.sellerFilters.paid = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StatePaid':\n newState.modifiers.sellerFilters.paid = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateNotShipped':\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateShipped':\n newState.modifiers.sellerFilters.shipped = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateShippingNotBooked':\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateShippingBooked':\n newState.modifiers.sellerFilters.shipped = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateFeedbackNotLeft':\n newState.modifiers.sellerFilters.feedbackLeft = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateFeedbackLeft':\n newState.modifiers.sellerFilters.feedbackLeft = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateNotPaidNotShipped':\n newState.modifiers.sellerFilters.paid = setEnum(false);\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StateNotPaidShipped':\n newState.modifiers.sellerFilters.paid = setEnum(false);\n newState.modifiers.sellerFilters.shipped = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StatePaidNotShipped':\n newState.modifiers.sellerFilters.paid = setEnum(true);\n newState.modifiers.sellerFilters.shipped = setEnum(false);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'StatePaidShipped':\n newState.modifiers.sellerFilters.paid = setEnum(true);\n newState.modifiers.sellerFilters.shipped = setEnum(true);\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'AllSold':\n case 'AllUnsold':\n newState.modifiers.sellerFilters.hidden = setEnum(false);\n break;\n case 'SellerHidden':\n newState.modifiers.sellerFilters.hidden = setEnum(true);\n break;\n case 'BuyerHidden':\n newState.modifiers.buyerFilters.hidden = setEnum(true);\n break;\n case 'BuyerNotHidden':\n newState.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'AllPurchases':\n newState.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'AllBids':\n newState.modifiers.hasBids = setEnum('All');\n break;\n case 'HasBids':\n newState.modifiers.hasBids = setEnum(true);\n break;\n case 'NoBids':\n newState.modifiers.hasBids = setEnum(false);\n break;\n case 'ItemsLostNotHidden':\n newState.modifiers.buyerFilters.hidden = setEnum(false);\n break;\n case 'ItemsLostHidden':\n newState.modifiers.buyerFilters.hidden = setEnum(true);\n break;\n default:\n break;\n }\n return newState;\n};\n\nexport default {\n isSelectedFilterBarItem,\n setSellerFilterBarModifiers\n};\n","/* eslint-disable complexity */\nimport filters from '../actions/filters';\nimport filterSelectors from '../selectors/filters';\n\nexport default function(state = {}, action) {\n const resetPageIndex = () => ({\n page: 1,\n size: state.modifiers.paging.size\n });\n\n const setPageSize = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n paging: {\n page: 1,\n size: action.payload\n }\n }\n });\n\n const changeSortValue = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n sort: {\n sorting: action.payload.sort,\n order: action.payload.sortOrder\n },\n paging: resetPageIndex()\n }\n });\n\n const changeSortOrder = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n sort: {\n sorting: state.modifiers.sort.sorting,\n order:\n state.modifiers.sort.order === 'Descending'\n ? 'Ascending'\n : 'Descending'\n },\n paging: resetPageIndex()\n }\n });\n\n const changeTypeValue = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n itemType: action.payload,\n paging: resetPageIndex()\n }\n });\n\n const setDateFrom = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n dateRange: {\n from: action.payload,\n to: state.modifiers.dateRange.to,\n field: state.modifiers.dateRange.field\n },\n paging: resetPageIndex()\n }\n });\n\n const setSingleFilter = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n sellerFilters: {\n ...state.modifiers.sellerFilters,\n [action.payload.filter]: action.payload.value\n }\n }\n });\n const setDateTo = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n dateRange: {\n to: action.payload,\n from: state.modifiers.dateRange.from,\n field: state.modifiers.dateRange.field\n },\n paging: resetPageIndex()\n }\n });\n\n const setFiltersByState = () => {\n let showSelectFiltersDropDown = false;\n if (action.payload === 'Valj') {\n showSelectFiltersDropDown = !state.filterBar\n .showSelectFiltersDropDown;\n }\n const updatedState = filterSelectors.setSellerFilterBarModifiers(\n state,\n action.payload\n );\n return {\n ...updatedState,\n defaults: {\n ...state.defaults\n },\n modifiers: {\n ...updatedState.modifiers,\n selectedFilterBar: action.payload,\n paging: resetPageIndex()\n },\n filterBar: {\n ...state.filterBar,\n values: state.filterBar.values,\n showSelectFiltersDropDown: showSelectFiltersDropDown\n }\n };\n };\n\n const changePage = () => {\n const updatedPaging = {\n page: action.page,\n size: state.modifiers.paging.size\n };\n return {\n ...state,\n modifiers: {\n ...state.modifiers,\n paging: updatedPaging\n }\n };\n };\n\n const resetDateRangeTo = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n dateRange: {\n ...state.modifiers.dateRange,\n to: state.defaults.modifiers.dateRange.to\n }\n }\n });\n\n const resetDateRangeFrom = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n dateRange: {\n ...state.modifiers.dateRange,\n from: state.defaults.modifiers.dateRange.from\n }\n }\n });\n\n const resetFilters = () => ({\n ...state,\n modifiers: { ...state.defaults.modifiers },\n filterBar: { ...state.filterBar, ...state.defaults.filterBar }\n });\n\n const changeSearchQuery = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n query: {\n searchQuery: action.payload,\n properties: state.modifiers.query.properties,\n scope: state.modifiers.query.scope\n },\n sort: {\n sorting: 'BestMatch',\n order: 'Ascending'\n },\n paging: resetPageIndex()\n }\n });\n\n const changeReservationPrice = () => ({\n ...state,\n modifiers: {\n ...state.modifiers,\n reservePriceReached: action.payload,\n paging: resetPageIndex()\n }\n });\n\n const setFiltersForPage = () => {\n if (!action.payload.newFilters.modifiers) {\n return state;\n }\n return {\n ...state,\n ...action.payload.newFilters,\n defaults: {\n ...action.payload.defaultFilters\n }\n };\n };\n\n const locationChange = () => ({\n ...state,\n modifiers: action.payload.filters\n });\n\n const showHideFilterToolbar = () => ({\n ...state\n });\n\n const reducers = {\n [filters.actionTypes.SET_PAGE_SIZE]: setPageSize,\n [filters.actionTypes.CHANGE_SORT_VALUE]: changeSortValue,\n [filters.actionTypes.CHANGE_SORT_ORDER]: changeSortOrder,\n [filters.actionTypes.CHANGE_TYPE_VALUE]: changeTypeValue,\n [filters.actionTypes.CHANGE_SORTING_TO_BEST_MATCH]: changeSortOrder,\n [filters.actionTypes.SET_DATE_FROM]: setDateFrom,\n [filters.actionTypes.SET_SINGLE_FILTER]: setSingleFilter,\n [filters.actionTypes.SET_DATE_TO]: setDateTo,\n [filters.actionTypes.SET_FILTERS_BY_STATE]: setFiltersByState,\n [filters.actionTypes.CHANGE_PAGE]: changePage,\n [filters.actionTypes.RESET_DATE_RANGE_TO]: resetDateRangeTo,\n [filters.actionTypes.RESET_DATE_RANGE_FROM]: resetDateRangeFrom,\n [filters.actionTypes.RESET_FILTERS]: resetFilters,\n [filters.actionTypes.CHANGE_SEARCH_QUERY]: changeSearchQuery,\n [filters.actionTypes.CHANGE_RESERVATION_PRICE]: changeReservationPrice,\n [filters.actionTypes.SET_FILTERS_FOR_PAGE]: setFiltersForPage,\n [filters.actionTypes.LOCATION_CHANGE]: locationChange,\n [filters.actionTypes.SHOW_HIDE_FILTERS]: showHideFilterToolbar\n };\n\n if (!reducers[action.type]) {\n return state;\n } else {\n return reducers[action.type]();\n }\n}\n\nexport const selectFiltersState = state => state.views.myTradera.filters;\n","import 'underscore';\n\nvar initialState = {\n itemCondition: null,\n validationError: null,\n selectionError: null\n};\n\nfunction validate(newState) {\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, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_ITEM_CONDITION':\n return validate(\n _.assign({}, state, { itemCondition: action.payload })\n );\n case 'RESET_ITEM_CONDITION':\n return validate(_.assign({}, initialState));\n case 'SET_ITEM_CONDITION_SELECTION_ERROR':\n return validate(\n _.assign({}, state, {\n selectionError: action.payload\n })\n );\n default:\n return state;\n }\n};\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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang';\n\nconst DAY_IN_SECONDS = 24 * 60 * 60;\nconst HOUR_IN_SECONDS = 60 * 60;\nconst MINUTE_IN_SECONDS = 60;\nexport const TIME_LEFT_WARNING_LIMIT = 4 * 60 * 60;\n\nconst ServerTimeLeft = ({ seconds }) => {\n const { t } = useTranslator();\n const ifValueNotZeroShowLabel = (label, value) =>\n value > 0 ? ' ' + t(label, { count: value }) : '';\n\n const getTimeLeftLabel = () => {\n if (seconds < MINUTE_IN_SECONDS) {\n return t('vip_less_than_1_min_left');\n }\n if (seconds < HOUR_IN_SECONDS) {\n const minutes = Math.floor(seconds / MINUTE_IN_SECONDS);\n return t('vip_minutes', { count: minutes });\n }\n\n if (seconds >= HOUR_IN_SECONDS && seconds < DAY_IN_SECONDS) {\n const hours = Math.floor(seconds / HOUR_IN_SECONDS);\n const minutes = Math.floor(\n Math.floor(seconds % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS\n );\n return (\n t('vip_hours', { count: hours }) +\n ifValueNotZeroShowLabel('vip_minutes', minutes)\n );\n }\n\n const days = Math.floor(seconds / DAY_IN_SECONDS);\n const hours = Math.floor(\n Math.floor(seconds % DAY_IN_SECONDS) / HOUR_IN_SECONDS\n );\n\n return (\n t('vip_days', { count: days }) +\n ifValueNotZeroShowLabel('vip_hours', hours)\n );\n };\n\n return (\n \n {getTimeLeftLabel()}\n \n );\n};\n\nServerTimeLeft.propTypes = {\n seconds: PropTypes.number\n};\n\nexport default ServerTimeLeft;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ServerTimeLeft from './server-time-left';\n\nimport { getTimeSpanParts, TIME_SPAN_UNITS } from 'tradera-utils/date';\nimport { useTranslator } from 'tradera-lang';\n\nconst TIME_LEFT_DAY_LIMIT = 24 * 60 * 60;\nconst TIME_LEFT_HOUR_LIMIT = 60 * 60;\nconst TIME_LEFT_MINUTE_LIMIT = 60;\n\nconst TIME_LEFT_WARNING_LIMIT = 4 * 60 * 60;\n\nfunction TimeLeft(props) {\n const {\n className = '',\n isCountdownEnabled,\n serverSecondsLeft,\n icon,\n seconds,\n ...otherProps\n } = props;\n const { t } = useTranslator();\n\n if (!isCountdownEnabled)\n return ;\n\n const timeLeftWarning = seconds <= TIME_LEFT_WARNING_LIMIT;\n return (\n seconds >= 0 && (\n \n {icon}\n {seconds > 0 ? formatTimeSpan(seconds, t) : t('vip_ended')}\n \n )\n );\n}\n\nconst hoursOrEmpty = (hours, t) =>\n hours ? t('vip_hours', { count: hours }) : '';\n\nconst minutesOrEmpty = (minutes, t) =>\n minutes ? t('vip_minutes', { count: minutes }) : '';\n\nfunction formatTimeSpan(secondsLeft, t) {\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 }) + ' ' + hoursOrEmpty(hours, t);\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 }) + ' ' + minutesOrEmpty(minutes, t);\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\nTimeLeft.propTypes = {\n seconds: PropTypes.number.isRequired,\n serverSecondsLeft: PropTypes.number,\n isCountdownEnabled: PropTypes.bool.isRequired\n};\n\nexport default TimeLeft;\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport LazyLoad from 'react-lazyload';\n\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getCategoryIcon } from 'tradera-helpers/category-icon-helper';\nimport { usePageMeta } from 'tradera-hooks';\nimport { useTranslator } from 'tradera-lang';\nimport Ad from 'tradera-components/ads/ad';\nimport ALink from 'tradera-components/alink';\nimport Breadcrumbs from 'tradera-components/breadcrumbs/breadcrumbs';\nimport Loader from 'tradera-components/loader/loader';\nimport SiteSubheader from 'tradera-components/site-subheader/site-subheader';\nimport ArrowDownIcon from '@tradera/blueprint/theme/icons2/arrow-down.svg?jsx';\nimport ArrowUpIcon from '@tradera/blueprint/theme/icons2/arrow-up.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport SearchIcon from '@tradera/blueprint/theme/icons2/search.svg?jsx';\nimport categoryActions from 'tradera-state/categories/actions';\nimport './category-page.scss';\n\nconst CategoryPage = props => {\n const {\n categoryList,\n fetchCategoryList,\n inSPA,\n location,\n pageType\n } = props;\n const [isLoading, setIsLoading] = useState(true);\n const [filter, setFilter] = useState('');\n const [filteredCategories, setFilteredCategories] = useState([]);\n const [openCategories, setOpenCategories] = useState([]);\n const backToTopButtonRef = useRef(null);\n const { t } = useTranslator();\n usePageMeta(pageType);\n\n // Initial category fetch\n useEffect(() => {\n setIsLoading(true);\n fetchCategoryList()\n .then(() => setIsLoading(false))\n .catch(() => {});\n }, [fetchCategoryList]);\n\n // Filter categories when changed\n useEffect(() => {\n setFilteredCategories(filterCategories(categoryList, filter));\n }, [categoryList, filter]);\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n });\n\n const handleFilterChange = event => {\n setFilter(event.target.value.trim());\n };\n\n const handleFilterKey = event => {\n const { key, target } = event;\n switch (key) {\n case 'Escape':\n setFilter('');\n break;\n case 'Enter':\n target.blur();\n break;\n }\n };\n\n const handleScroll = () => {\n if (backToTopButtonRef.current) {\n backToTopButtonRef.current.classList.toggle(\n 'd-none',\n window.scrollY < 500\n );\n }\n };\n\n const toggleCategory = toggle => {\n if (openCategories.includes(toggle.id)) {\n setOpenCategories(openCategories.filter(id => id !== toggle.id));\n } else {\n setOpenCategories([...openCategories, toggle.id]);\n }\n };\n\n return (\n filteredCategories && (\n \n \n \n \n {isLoading && }\n \n
\n \n
\n
\n \n {filter\n ? t('categoryListView_categoriesMatching', {\n filter\n })\n : t('categoryListView_categories')}\n \n
\n
\n
\n
\n \n {filter.length > 0 ? (\n setFilter('')}\n />\n ) : (\n \n )}\n
\n\n
    \n {filteredCategories.length > 0 ? (\n filteredCategories.map(category => (\n \n \n {category.title}\n \n \n ))\n ) : (\n

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

    \n )}\n
\n
\n
\n {filteredCategories.length > 0 ? (\n
    \n {filteredCategories.map(\n (category, index) => (\n \n \n {category.title}\n \n
    \n \n toggleCategory(\n category\n )\n }>\n
    \n \n \n }\n offset={0}\n once>\n {getCategoryIcon(\n category.id,\n category.title\n )}\n \n \n
    \n \n \n {category.title}\n \n

    \n
    \n {!filter && (\n \n {openCategories.includes(\n category.id\n ) ? (\n \n ) : (\n \n )}\n \n )}\n
    \n
    \n
\n \n {category.categoryNodes.map(\n group => (\n \n \n {\n group.title\n }\n {group.isTopLevel && (\n \n  â€”>\n \n )}\n \n \n )\n )}\n \n {index <\n filteredCategories.length -\n 1 && (\n
\n )}\n \n )\n )}\n \n ) : (\n

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

\n )}\n
\n
\n \n \n {t('categoryListView_backToTop')}\n \n \n \n
\n \n )\n );\n};\nCategoryPage.propTypes = {\n categoryList: PropTypes.arrayOf(PropTypes.object),\n inSPA: PropTypes.bool,\n fetchCategoryList: PropTypes.func.isRequired\n};\nconst mapStateToProps = state => ({\n categoryList: state.categories.list,\n inSPA: state.environment.featureSwitches['spa']\n});\nconst mapDispatchToProps = dispatch => ({\n fetchCategoryList: () => dispatch(categoryActions.fetchCategoryList())\n});\n\nfunction filterCategories(categories, filter) {\n if (categories && filter.length > 0) {\n return categories\n .slice()\n .map(category => {\n const categoryNodes = category.categoryNodes\n .slice()\n .filter(node =>\n node.title.toLowerCase().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\nconst handleFilterBlur = event => {\n const {\n target: { value }\n } = event;\n if (value && value.length > 0) {\n GtmService.trackAction(\n 'Category browse',\n 'SearchCategories',\n `Search: ${value}`\n );\n }\n};\n\nconst scrollTo = event => {\n const scrollTarget = event.currentTarget.dataset.scrollTo;\n const scrollToElement = document.body.querySelector(\n `[data-scroll-target=\"${scrollTarget}\"]`\n );\n if (scrollToElement) {\n event.preventDefault();\n let { top } = scrollToElement.getBoundingClientRect();\n top = Math.max(0, top - 50);\n window.scrollTo(0, top);\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CategoryPage);\nexport { filterCategories };\n","import 'underscore';\n\nvar initialState = {\n draftBeforeChange: null\n};\n\nexport default (state, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_DRAFT_BEFORE_CHANGE':\n return _.assign({}, state, { draftBeforeChange: action.payload });\n default:\n return state;\n }\n};\n","export { default, GlobalLoader, LocalLoader, PortalLoader } from './loader';\n","import { toLocalizedUrl } from 'tradera-utils/url';\n\nexport const toLocalizedRiotUrl = url => toLocalizedUrl(url, getLanguage());\n\nlet language;\nexport const getLanguage = () => {\n if (language === '' || language === null || language === undefined) {\n language = document.querySelector('html').getAttribute('lang');\n }\n\n return language;\n};\n","/**\n * This is a helper class for sending google analytics events for the search experience\n * This is a wrapper for the GtmService. Do not call GTM or GA directly but use the GtmService.\n * Events tracked by this file set all GA categories to \"Search\" to namespace events\n */\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\n\nconst GA_EVENT_SEARCH_CATEGORY = 'Search';\n\nconst filterNameMappings = {\n itemCondition: 'Condition',\n itemType: 'Ad Format',\n sellerType: 'Seller Type',\n county: 'Geo - Selected',\n countyBox: 'Geo',\n itemStatus: 'Item Status',\n shoeTypes: 'Type',\n subDepartments: 'Department',\n shoeSizes: 'Size',\n brandTags: 'Brand',\n sortBy: 'Sorting',\n price: 'Price',\n Layout: 'Layout',\n categorySelected: 'Category - Selected',\n categoryHorizontalSelected: 'Category - Hrz nav - Selected'\n};\n\n/**\n * Generic action tracker for things that happen in the Search.\n * @param {string} action\n * @param {string} label\n */\nexport const trackAction = (action, label) => {\n GtmService.trackAction(GA_EVENT_SEARCH_CATEGORY, action, label);\n};\n\nconst getFilterLabel = key => {\n if (key in filterNameMappings) {\n return filterNameMappings[key];\n } else {\n return key;\n }\n};\n\n/**\n * translates the tech names of the filters to ga friendly names. to see the techie names a filter has\n * see the URL paramters on a search or a browse page.\n * @param {string} filter the name of the filter\n * @param {string} value the value the filter gets\n */\nexport const trackFilter = (filter, value) => {\n let action = getFilterLabel(filter);\n trackAction(`Filter ${action}`, value);\n};\n\nexport const trackNavigation = label => {\n trackAction('Navigation', label);\n};\n\nexport const trackAccordion = filter => {\n let action = getFilterLabel(filter);\n trackAction('Filter box - Open/Close', action);\n};\n\nexport const trackButton = label => {\n trackAction('Button', label);\n};\n\nexport const trackLink = (action, label) => {\n trackAction(`Link - ${action}`, label);\n};\n\nexport const trackPriceFilter = (fromPrice, toPrice) => {\n if (fromPrice === '1') {\n fromPrice = undefined;\n }\n\n // get a label that represents the current selected value\n let lbl = [];\n if (typeof fromPrice !== 'undefined') {\n lbl.push('Min set');\n }\n if (typeof toPrice !== 'undefined') {\n lbl.push('Max set');\n }\n if (lbl.length === 0) {\n lbl.push('All');\n }\n trackAction(`Filter Price`, lbl.join(' and '));\n};\n\n/**\n * Tracks to google tag manager that a new search was made\n * @param {object} searchResults data returned fromm ajax when doing a search or browsing.\n * Note: needs to be the normalized version.\n */\nexport const trackNewSearch = (categoryPath, items, metaTitle) => {\n if (typeof categoryPath === 'undefined' || categoryPath.length == 0) {\n return;\n }\n\n let reverseCategoryPath = categoryPath\n .filter(c => c.id > 0)\n .map(c => c.name)\n .reverse();\n\n GtmService.trackGtmEvent('viewCategory', {\n category: reverseCategoryPath.join(' > ')\n });\n\n GtmService.push({\n 'page.content-group-2': reverseCategoryPath.slice(0, 3).join(' > '),\n categoryId: categoryPath.length > 0 ? categoryPath[0].id : null\n });\n\n if (items && items.length >= 3) {\n GtmService.trackGtmEvent('viewItems', {\n itemIds: items.slice(0, 3),\n keywords: categoryPath[0].name\n });\n }\n\n GtmService.push({\n ga_page_title: metaTitle\n });\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';\nimport { useTranslator } from 'tradera-lang';\n\nconst FixedPriceLabel = ({ className }) => {\n const { t } = useTranslator();\n return {t('itemCard_fixedPrice')};\n};\n\nexport default FixedPriceLabel;\n","export default () => {\n return {\n isFetching: false,\n merchantPreOrders: []\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useCurrentLanguage } from 'tradera-lang';\nimport { formatPrice } from 'tradera-utils/format';\n\nconst PriceLabel = ({ tagName: TagName, className, price, hasDiscount }) => {\n const { language } = useCurrentLanguage();\n if (price) {\n return (\n \n {formatPrice(price, language, {\n // Swedish locale shows \"kr\", other \"SEK\"\n currencyDisplay: language.startsWith('sv')\n ? 'symbol'\n : 'code'\n })}\n \n );\n } else {\n return null;\n }\n};\nPriceLabel.propTypes = {\n tagName: PropTypes.string,\n className: PropTypes.string,\n price: PropTypes.number,\n hasDiscount: PropTypes.bool\n};\nPriceLabel.defaultProps = {\n tagName: 'span',\n className: ''\n};\n\nexport default PriceLabel;\n","import cookieUtil from 'tradera-utils/cookie';\nimport { SHIPPING_COUNTRY } from 'tradera-constants/cookies';\nimport {\n isSwedenCountryCodeOrUndefined,\n isSwedenCountryNameOrUndefined\n} from 'tradera-utils/countrycode';\n\nconst getInitialCategoryId = initData => {\n if (initData.categoryPath && initData.categoryPath.length > 0) {\n initData.categoryPath.forEach(item => {\n if (item.selected) {\n return item.id;\n }\n });\n }\n return 0;\n};\n\nexport default initData => {\n const { isLoggedIn, memberCountry } = initData;\n return {\n activeBrands: [],\n activeFilters: [],\n attributeFilters: [],\n categoryPath: initData.categoryPath || [],\n currentCategoryId: getInitialCategoryId(initData),\n displayAllowedBuyerRegionFilter:\n (cookieUtil.hasCookie(SHIPPING_COUNTRY) &&\n !isSwedenCountryCodeOrUndefined(\n cookieUtil.readCookie(SHIPPING_COUNTRY)\n )) ||\n (isLoggedIn && !isSwedenCountryNameOrUndefined(memberCountry)),\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 isFetching: false,\n isFetchingGeolocation: false,\n itemsById: [],\n itemsOnDisplayById: [],\n mainText: null,\n pagination: null,\n queryParams: {},\n totalItems: 0,\n discoverTranslationResult: {}\n };\n};\n","import React from 'react';\nimport StampIcon from '@tradera/blueprint/theme/icons2/stamp.svg?jsx';\nimport PackageIcon from '@tradera/blueprint/theme/icons2/package.svg?jsx';\nimport { useTranslator } from 'tradera-lang/translate';\nimport shippingProviders from 'tradera-apps/my-tradera/app/data/shipping-providers';\n\nexport const ShippingProviderIcon = ({ providerName, iconClass, imgClass }) => {\n const { t } = useTranslator();\n const { text, logoImgUrl } = shippingProviders\n .get(t)\n .find(p => p.type === providerName);\n return (\n \n {providerName === 'PostNordStamp' && (\n \n )}\n {providerName === 'PostNordParcel' && (\n \n )}\n \n \n );\n};\n","export default {\n shallowCopyArrayObjects: function(arrayOfObjects) {\n var newArray = [];\n _.each(arrayOfObjects, function(object) {\n var newObject = {};\n for (var property in object) {\n newObject[property] = object[property];\n }\n newArray.push(newObject);\n });\n return newArray;\n }\n};\n","import React from 'react';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from 'static/script/components/modals/modal-container';\nimport ModalHeader from 'static/script/components/modals/modal-header';\nimport ModalBody from 'static/script/components/modals/modal-body';\nimport { connect } from 'react-redux';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang/translate';\nimport { closeModal } from 'tradera-state/ui/action-creators';\nimport './international-shipping-modal.scss';\nimport { mapCountryCodeToCountryKey } from 'tradera-components/international-shipping-modal/map-country-code-to-country-key';\nimport { selectShippingCountry } from 'tradera-state/shipping-region/selectors';\nimport { ShippingProviderIcon } from 'tradera-components/shipping/shipping-provider-icon';\nimport MessagingButton from 'tradera-components/messaging/messaging-button';\nimport Flag from 'tradera-components/flag/flag';\n\nconst InternationalShippingModal = props => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n let sortedRows = props.internationalShipping.rows\n .map(row => ({\n ...row,\n country: t(mapCountryCodeToCountryKey(row.toCountryCodeIso2))\n }))\n .sort((a, b) => (a.country > b.country ? 1 : -1));\n const ownCountryRow = sortedRows.find(\n row =>\n row.toCountryCodeIso2.toLowerCase() ===\n props.shippingCountryCode.toLowerCase()\n ) || {\n country: t(mapCountryCodeToCountryKey(props.shippingCountryCode)),\n toCountryCodeIso2: props.shippingCountryCode\n };\n sortedRows = removeDuplicateOwnCountryRowIfOnlyRow(\n props.shippingCountryCode,\n sortedRows\n );\n return (\n \n
{t('internationalShippingModal_title')}
\n
\n \n \n {props.internationalShipping.title}\n \n \n {t('internationalShippingModal_readMore')}\n \n
\n \n }\n body={\n props.internationalShipping.providers.length ? (\n \n \n \n \n {props.internationalShipping.providers.map(\n provider => {\n return (\n \n );\n }\n )}\n \n \n \n \n \n {props.internationalShipping.weights.map(\n (weight, i) => (\n \n )\n )}\n \n {\n \n }\n {sortedRows.map(row => (\n \n ))}\n \n
\n {t(\n 'internationalShippingModal_destination'\n )}\n \n {getProviderCell(provider, t)}\n
\n {t(\n 'internationalShippingModal_providerWeight'\n )}\n \n {weight ? `${weight} kg` : 'N/A'}\n
\n ) : (\n
\n {t('internationalShippingModal_noShippingInfo')}\n \n {getMessagingCell(\n props.internationalShipping.messagingLink,\n props.internationalShipping.ownItem,\n t\n )}\n \n
\n )\n }\n />\n );\n};\n\nconst Modal = ({ closeModal, header, body }) => (\n \n \n \n {header}\n \n \n {body}\n \n \n \n);\n\nconst getMessagingCell = (\n { buyerId, sellerId, itemId, source, isLoggedIn, memberId },\n ownItem,\n t\n) =>\n !isLoggedIn ? (\n \n {t('internationalShippingModal_logIn')}\n \n ) : ownItem ? (\n ''\n ) : (\n \n );\n\nconst getValueCell = (row, provider, isOwnRow, messagingLink, ownItem, t) => {\n const getEmptyCell = () =>\n isOwnRow ? getMessagingCell(messagingLink, ownItem, t) : '-';\n\n return row[provider] || row[provider] === 0\n ? t('internationalShippingModal_currency', {\n price: row[provider]\n })\n : getEmptyCell();\n};\n\nconst getProviderIcon = provider => (\n \n);\nconst providerImageMap = {\n DHL: () => getProviderIcon('DHL'),\n Bussgods: () => getProviderIcon('Bussgods'),\n Posten: () => getProviderIcon('Posten'),\n PostNordParcel: () => getProviderIcon('PostNordParcel'),\n PostNordStamp: () => getProviderIcon('PostNordStamp'),\n Schenker: () => getProviderIcon('Schenker'),\n SchenkerPrivpak: () => getProviderIcon('SchenkerPrivpak'),\n Alternative: t => t('internationalShippingModal_other')\n};\n\nconst getProviderCell = (provider, t) =>\n providerImageMap[provider] ? providerImageMap[provider](t) : provider;\n\nconst removeDuplicateOwnCountryRowIfOnlyRow = (ownShippingCountryCode, rows) =>\n rows.length === 1 && rows[0].toCountryCodeIso2 === ownShippingCountryCode\n ? []\n : rows;\n\nconst ShippingRow = ({\n row,\n providers,\n t,\n isOwnRow,\n messagingLink,\n ownItem\n}) => (\n \n \n \n {row.country}\n {isOwnRow && (\n \n )}\n \n \n {providers.map((provider, i) => {\n return (\n \n {getValueCell(\n row,\n provider,\n isOwnRow,\n messagingLink,\n ownItem,\n t\n )}\n \n );\n })}\n \n);\n\nconst mapStateToProps = state => ({\n internationalShipping: state.internationalShipping,\n shippingCountryCode: selectShippingCountry(state)?.countryCodeIso2\n});\n\nconst mapDispatchToProps = {\n closeModal\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(InternationalShippingModal);\n\nconst internationalShippingModalId = 'internationalShippingModalId';\nexport { InternationalShippingModal, internationalShippingModalId };\n","/* eslint-disable */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './hover-menu.scss';\n\nclass HoverMenu extends Component {\n state = {\n show: false,\n hoverContainer: false\n };\n\n toggleShow = show => {\n window.clearTimeout(this.toggleShowTimeoutId);\n this.toggleShowTimeoutId = window.setTimeout(() => {\n if (this.state.show !== show) {\n this.setState({ show: show });\n }\n }, 100);\n };\n\n componentDidUpdate(prevProps) {\n if (this.props.showMenu !== prevProps.showMenu) {\n this.toggleShow(this.props.showMenu);\n }\n }\n\n render() {\n const { children, className = '' } = this.props;\n\n return (\n this.state.show && (\n
\n \n
\n )\n );\n }\n}\n\nHoverMenu.propTypes = {\n showMenu: PropTypes.bool,\n className: PropTypes.string\n};\n\nexport default HoverMenu;\n","/**\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.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};\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};\n\nexport const payments2Columns = {\n Basic: []\n};\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport $ from 'jquery';\nimport { toLocalizedRiotUrl } from './../utils/language';\n\nfunction postJson(url, draft) {\n return $.ajax({\n type: 'POST',\n contentType: 'application/json',\n url: url,\n data: JSON.stringify(draft),\n dataType: 'json'\n });\n}\n\nexport default new (function() {\n var _request = null;\n\n function getCampaignCode(campaignCode, categoryId, brandAttributeValues) {\n var deferred = $.Deferred();\n\n var requestData = {\n code: campaignCode,\n selectedCategories: categoryId ? [categoryId] : [],\n selectedBrandAttributes: brandAttributeValues\n };\n\n if (_request) {\n _request.abort();\n }\n\n _request = postJson(\n toLocalizedRiotUrl('/selling/api/campaign'),\n requestData\n )\n .success(function(data) {\n deferred.resolve(data);\n })\n .error(function(reason) {\n if (reason.statusText === 'abort') {\n deferred.reject('aborted');\n } else {\n deferred.reject('Could not get the campaignCode');\n }\n })\n .done(function() {\n _request = null;\n });\n\n return deferred.promise();\n }\n\n this.validate = function(campaignCode, categoryId, brandAttributeValues) {\n var deferred = $.Deferred();\n\n getCampaignCode(campaignCode, categoryId, brandAttributeValues)\n .then(function(data) {\n var result = {};\n result.campaignCodeValid = data.validation.isValid;\n result.validationDisplayMessage = data.validation.message;\n result.hasEnded = data.validation.hasEnded;\n if (data.campaign) {\n result.campaignCode = data.campaign.code;\n result.campaignCodeId = data.campaign.id;\n result.campaignCodeMessage = data.campaign.description;\n result.isCustomLengthFeeFree =\n data.campaign.isCustomLengthFeeFree;\n result.isUnsoldFeeFree = data.campaign.isUnsoldFeeFree;\n result.provisionFactor = data.campaign.provisionFactor;\n result.discountFactor = data.campaign.discountFactor;\n result.maxFeeCap = data.campaign.maxFeeCap;\n result.bannerMobileImageUrl =\n data.campaign.bannerMobileImageUrl;\n result.bannerTabletImageUrl =\n data.campaign.bannerTabletImageUrl;\n result.bannerDesktopImageUrl =\n data.campaign.bannerDesktopImageUrl;\n }\n deferred.resolve(result);\n })\n .fail(function(reason) {\n if (reason === 'aborted') {\n deferred.reject(reason);\n } else {\n deferred.reject('Kampanjkoden var inte giltig');\n }\n });\n return deferred.promise();\n };\n})();\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport campaignService from 'tradera-apps/syi/script/app_react/services/campaign-service';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport feesActions from './fees-actions';\nimport draftActions from './draft-actions';\nimport shippingActions from './shipping-actions';\nimport { getSyiSlice } from 'tradera-state/configure-store';\n\nconst CHARITIES = userData?.charities || [];\nlet throttleTimeout = 2000;\nlet throttledCampaignCodeValidation = new ThrottledAction(throttleTimeout);\nlet delayedValidationTimeoutId = null;\n\nconst findBrandAttributeValues = getState => {\n if (\n !getSyiSlice(getState()).attributes ||\n !getSyiSlice(getState()).attributes.categoryAttributes\n ) {\n return [];\n }\n\n let brandAttributeValues = [];\n getSyiSlice(getState()).attributes.categoryAttributes.forEach(attribute => {\n const brandAttributeId = 3; //Brand Attribute has Id == 3\n if (attribute.id != brandAttributeId) {\n return;\n }\n if (attribute.options.length === 0) {\n return;\n }\n brandAttributeValues = attribute.options.reduce((acc, option) => {\n if (option.isActive) {\n acc.push(option.value);\n }\n return acc;\n }, []);\n });\n return brandAttributeValues;\n};\n\nconst resetCharity = (dispatch, getState) => {\n const { name, forceFreeShipping: wasForceFreeShipping } = getSyiSlice(\n getState()\n ).charity;\n if (!name) {\n return;\n }\n dispatch({\n type: 'RESET_CHARITY'\n });\n dispatch({\n type: 'DISABLE_ZERO_DAY_AUCTIONS'\n });\n if (wasForceFreeShipping) {\n dispatch(shippingActions.resetSelected());\n }\n};\n\nconst resetCampaign = dispatch => {\n dispatch(resetCharity);\n dispatch({\n type: 'RESET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN'\n });\n dispatch({\n type: 'UNSET_UNSOLD_FEE_FREE_FOR_CAMPAIGN'\n });\n dispatch({\n type: 'ENABLE_RESTART'\n });\n dispatch({\n type: 'RESET_MAX_FEE_CAP'\n });\n dispatch({\n type: 'RESET_CAMPAIGN_BANNER'\n });\n dispatch(feesActions.resetDiscountFactor());\n dispatch(feesActions.resetCampaignCommission());\n\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n dispatch(feesActions.updatePrices());\n};\n\nconst applyCharityFromCampaignCodeId = (\n campaignCodeId,\n campaignCode\n) => dispatch => {\n const charity = CHARITIES.find(\n charity => charity.campaignCodeId === campaignCodeId\n );\n\n if (!charity) {\n dispatch(resetCharity);\n return;\n }\n\n dispatch({\n type: 'SET_CHARITY',\n charity,\n campaignCode\n });\n const {\n allowZeroDayAuctions,\n forceFreeShipping,\n forcePaymentOption\n } = charity;\n\n if (allowZeroDayAuctions) {\n dispatch({\n type: 'ENABLE_ZERO_DAY_AUCTIONS'\n });\n }\n\n if (forceFreeShipping) {\n dispatch({\n type: 'FORCE_FREE_SHIPPING'\n });\n }\n\n if (forcePaymentOption) {\n dispatch({\n type: 'ENSURE_ANY_PAYMENT_OPTION_FOR_CHARITY'\n });\n }\n\n dispatch(draftActions.setDisplayPromoted(false));\n dispatch(draftActions.setDisplayHighlighted(false));\n};\n\nconst validateCampaignCode = () => (dispatch, getState) => {\n let campaignCode = getSyiSlice(getState()).campaignCode.campaignCode;\n if (!campaignCode || campaignCode.trim().length === 0) {\n return;\n }\n dispatch({\n type: 'VALIDATING_CAMPAIGN_CODE_BY_SEARCHING'\n });\n const isReadOnly = getSyiSlice(getState()).campaignCode.isReadOnly;\n throttledCampaignCodeValidation.execute(function() {\n let category = getSyiSlice(getState()).category;\n const brandAttributeValues = findBrandAttributeValues(getState);\n campaignService\n .validate(\n campaignCode,\n category.draftCategoryId,\n brandAttributeValues\n )\n .then(result => {\n // If the campaign is read-only, ignore if the code is invalid since it has already been used.\n if (isReadOnly) {\n result.campaignCodeValid = true;\n result.campaignCodeMessage = null;\n }\n\n const {\n bannerDesktopImageUrl,\n bannerMobileImageUrl,\n bannerTabletImageUrl,\n campaignCodeId,\n campaignCodeMessage,\n campaignCodeValid,\n discountFactor = null,\n hasEnded,\n isCustomLengthFeeFree,\n isUnsoldFeeFree,\n maxFeeCap,\n provisionFactor = null,\n validationDisplayMessage\n } = result;\n\n const campaignCodeDescription = campaignCodeValid\n ? campaignCodeMessage\n : validationDisplayMessage;\n\n dispatch({\n type: 'SET_CAMPAIGN_VALIDATION_RESULT',\n bannerDesktopImageUrl,\n bannerMobileImageUrl,\n bannerTabletImageUrl,\n campaignCode,\n campaignCodeDescription,\n campaignCodeId,\n campaignCodeValid,\n hasEnded,\n maxFeeCap\n });\n\n if (!campaignCodeValid) {\n dispatch(resetCampaign);\n return;\n }\n\n if (isCustomLengthFeeFree) {\n dispatch({\n type: 'SET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN'\n });\n }\n\n if (isUnsoldFeeFree) {\n dispatch({\n type: 'SET_UNSOLD_FEE_FREE_FOR_CAMPAIGN'\n });\n }\n\n dispatch({\n type: 'DISABLE_RESTART'\n });\n\n if (userData.isCompanyUser) {\n dispatch(feesActions.setDiscountFactor(discountFactor));\n dispatch(feesActions.setCampaignCommission(null));\n } else {\n const commissionProcent =\n provisionFactor !== null\n ? `${provisionFactor * 100}`\n : null;\n dispatch(\n feesActions.setCampaignCommission(commissionProcent)\n );\n dispatch(feesActions.setDiscountFactor(null));\n }\n\n dispatch(\n applyCharityFromCampaignCodeId(campaignCodeId, campaignCode)\n );\n\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n dispatch(feesActions.updatePrices());\n });\n });\n};\n\nconst saveTypedCampaignCode = inputCampaignCode => (dispatch, getState) => {\n const campaignCode = inputCampaignCode?.trim() || null;\n dispatch({\n type: 'SET_UNVERIFIED_CAMPAIGN_CODE',\n campaignCode\n });\n\n if (delayedValidationTimeoutId) {\n clearTimeout(delayedValidationTimeoutId);\n }\n\n if (campaignCode === null) {\n dispatch(resetCampaign);\n return;\n }\n\n delayedValidationTimeoutId = setTimeout(() => {\n clearTimeout(delayedValidationTimeoutId);\n dispatch(validateCampaignCode());\n delayedValidationTimeoutId = setTimeout(() => {\n if (getSyiSlice(getState()).campaignCode.searching) {\n dispatch({\n type: 'SEARCHING_FOR_CAMPAIGN_CODE_IS_DELAYED'\n });\n }\n }, 100);\n }, 700);\n};\n\nconst setInitialCampaignCode = (\n campaignCode,\n campaignCodeId,\n campaignCodeDescription,\n isChangeItem\n) => dispatch => {\n let isReadOnly = campaignCodeId && isChangeItem;\n\n dispatch({\n type: 'INITIALIZE_CAMPAIGN_CODE_STATE',\n campaignCode,\n campaignCodeId,\n campaignCodeDescription,\n isReadOnly\n });\n dispatch(resetCampaign);\n\n // Always validate because this fetches info about the campaign like free shipping etc.\n // If the campaign is read-only, ignore if the code is invalid since it has already been used.\n dispatch(validateCampaignCode());\n};\n\nconst toggleShowInput = isChecked => dispatch => {\n clearTimeout(delayedValidationTimeoutId);\n dispatch({\n type: 'TOGGLE_CAMPAIGN_CODE_CHECKBOX',\n isChecked: isChecked\n });\n dispatch(resetCampaign);\n};\n\nexport default {\n toggleShowInput,\n setInitialCampaignCode,\n saveTypedCampaignCode,\n validateCampaignCode\n};\n","var map = {\n\t\"./se\": \"40bfee84\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"8bbfd8e3\";","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport 'underscore';\nimport userData from './user-data';\nimport { toLocalizedRiotUrl } from './../utils/language';\n\nvar initData = window.sellingGlobalData || {};\nvar defaultDrafts = initData.defaultDrafts;\n\nfunction postJson(url, draft) {\n return $.ajax({\n type: 'POST',\n contentType: 'application/json',\n url: url,\n data: JSON.stringify(draft),\n dataType: 'json'\n });\n}\n\nfunction resetUnwantedProperties(draft) {\n draft.itemId = 0;\n}\n\nfunction isNullOrUndefined(val) {\n return _.isNull(val) || _.isUndefined(val);\n}\n\nfunction 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\nfunction ensureApplicationId(draft) {\n if (!draft.metadata) {\n draft.metadata = {};\n }\n draft.metadata.applicationId = 'SYI-Riot';\n}\n\nfunction ensureBraintree(draft) {\n if (\n userData.braintree.isBraintreeOnly &&\n draft.paymentOptions.length == 0\n ) {\n draft.paymentOptions.push('Braintree');\n }\n}\n\nconst isPureBin = function(draft) {\n return draft && getType(draft) === 'PureBin';\n};\n\nconst isAuctionBin = function(draft) {\n return draft && getType(draft) === 'AuctionBin';\n};\n\nconst getDefaultTemplateValue = function(propertyName) {\n return defaultDrafts.newTemplate[propertyName];\n};\n\nconst loadDraft = function(draftId) {\n var deferred = $.Deferred();\n\n if (!draftId) {\n deferred.reject();\n } else {\n $.get(toLocalizedRiotUrl('/selling/api/drafts/' + draftId))\n .then(function(data) {\n deferred.resolve(data.draft);\n })\n .fail(function(result) {\n deferred.reject(result);\n });\n }\n\n return deferred.promise();\n};\n\nconst loadDrafts = function() {\n var deferred = $.Deferred();\n\n $.get(toLocalizedRiotUrl('/selling/api/drafts/'))\n .then(function(data) {\n deferred.resolve(data.items);\n })\n .fail(function(result) {\n deferred.reject(result);\n });\n\n return deferred.promise();\n};\n\nconst loadDefaultDraft = function() {\n return _.clone(defaultDrafts.newItem);\n};\n\nconst loadDefaultTemplateDraft = function() {\n return _.clone(defaultDrafts.newTemplate);\n};\n\nconst loadDraftFromTemplate = function(templateId) {\n var deferred = $.Deferred();\n\n postJson(toLocalizedRiotUrl('/selling/api/drafts/from-template'), {\n templateId: templateId\n })\n .success(function(data) {\n let draft = data.draft;\n resetUnwantedProperties(draft);\n draft.draftReason = 'Template';\n deferred.resolve(draft);\n })\n .error(function() {\n deferred.reject('Could not load the draft from the template');\n });\n\n return deferred.promise();\n};\n\nconst saveDraft = function(draft) {\n var deferred = $.Deferred();\n if (draft.draftReason === 'Template') {\n // Drafts for Templates cannot be saved\n deferred.reject('Cannot save Template draft');\n return deferred.promise();\n }\n\n ensureApplicationId(draft);\n ensureBraintree(draft);\n\n postJson(toLocalizedRiotUrl('/selling/api/drafts'), draft)\n .success(data => {\n if (data.errorCode) {\n deferred.reject(data);\n } else if (data.draftId) {\n deferred.resolve(data);\n } else {\n deferred.reject(data);\n }\n })\n .error(result => {\n deferred.reject(result);\n });\n return deferred.promise();\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 !_.isString(itemDuration.customEndTimeHour) ||\n !_.isString(itemDuration.customEndTimeMinute)\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.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.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.charity.charityId;\n draft.allowZeroDayAuctions = syiSlice.charity.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 = function(draftId) {\n return deleteDrafts([draftId]);\n};\n\nconst deleteDrafts = function(draftIds) {\n var deferred = $.Deferred();\n\n $.post(toLocalizedRiotUrl('/selling/api/drafts/delete'), {\n draftIds: draftIds\n })\n .done(function() {\n deferred.resolve();\n })\n .fail(function() {\n deferred.reject('Could not delete the draft');\n });\n\n return deferred.promise();\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","import { createSlice } from '@reduxjs/toolkit';\nimport { Analytics } from 'packages';\n\nconst profileSlice = createSlice({\n name: 'profile',\n initialState: {},\n reducers: {\n setTranslatedReviews: (state, { payload }) => {\n state.translatedReviews = [\n ...state.translatedReviews,\n ...payload.items\n ];\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 }\n});\n\nexport const {\n setTranslatedReviews,\n showTranslatedReviews,\n beginLoadingModel,\n beginLoadingTranslatedReviews,\n failedLoadingTranslatedReviews,\n setModel\n} = profileSlice.actions;\n\nexport default profileSlice.reducer;\n","import actionTypes from './action-types';\n\nconst setTcfLoaded = () => {\n return {\n type: actionTypes.SET_TCF_LOADED\n };\n};\n\nconst setAds = ads => {\n return {\n type: actionTypes.SET_ADS,\n payload: ads\n };\n};\n\nexport default {\n setAds,\n setTcfLoaded\n};\n","import React, { useEffect, useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useUrlLocalizer } from 'tradera-lang';\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 // Use path if provided otherwise parse path from tree\n let parsedCategoryPath = useMemo(() => {\n if (categoryPath) {\n return categoryPath;\n } else if (categoryTree) {\n const path = resolveActiveCategoryPath(categoryTree);\n // If empty path, fall back to first root category\n if (path.length > 0) {\n return path;\n } else {\n return [categoryTree];\n }\n } else {\n return [];\n }\n }, [categoryPath, categoryTree]);\n\n useEffect(() => {\n breadcrumbRef.current.scrollLeft =\n breadcrumbRef.current.scrollWidth -\n breadcrumbRef.current.clientWidth;\n }, [parsedCategoryPath]);\n\n return (\n
\n \n
  • \n \n \n \n
  • \n {parsedCategoryPath.map((category, index) => (\n handleClick(category) : null\n }\n />\n ))}\n \n
    \n );\n};\n\nBreadcrumbs.propTypes = {\n categoryPath: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n url: PropTypes.string,\n name: PropTypes.string\n })\n ),\n categoryTree: PropTypes.shape({\n status: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.number,\n url: PropTypes.string,\n name: PropTypes.string\n }),\n className: PropTypes.string,\n handleClick: PropTypes.func,\n inSPA: PropTypes.bool\n};\n\n/**\n * Recursively search tree for active category, return list of it and its parents\n *\n * @param {object} category - Category tree\n * @param {object[]} parents - Parent categories to current tree\n */\nconst resolveActiveCategoryPath = (category, parents = []) => {\n if (category.status === 'active') {\n return [...parents, category];\n } else {\n if (category.children) {\n for (const child of category.children) {\n const path = resolveActiveCategoryPath(child, [\n ...parents,\n category\n ]);\n if (path.length > 0) return path;\n }\n }\n return [];\n }\n};\n\n/**\n * Creates a breadcrumb item with Microdata attributes.\n * Microdata can be tested with Google's Structured Data Testing Tool here:\n * https://search.google.com/structured-data/testing-tool?utm_campaign=devsite&utm_medium=microdata&utm_source=breadcrumb\n * Please note that it will give errors if href is contains localhost:5454.\n */\nconst BreadcrumbItem = ({\n handleClick,\n inSPA,\n microDataPositionProperty,\n title,\n url\n}) => {\n const isFirstElement = microDataPositionProperty === 1;\n const gaLabel = isFirstElement\n ? 'All'\n : `L${microDataPositionProperty - 1}`;\n\n return (\n \n \n {'->'}\n \n {handleClick ? (\n \n {title}\n \n ) : (\n \n {title}\n \n )}\n \n \n );\n};\n\nconst TextElement = ({ children }) => (\n \n {children}\n \n);\n\nexport default Breadcrumbs;\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const initialState = {};\n\nconst slice = createSlice({\n name: 'environment',\n initialState,\n reducers: {\n setEnvironmentHash: (state, { payload }) => {\n state.environmentHash = payload;\n },\n setIsSpaNavigationEnabled: (state, { payload }) => {\n state.isSpaNavigationEnabled = payload;\n }\n }\n});\n\nexport const { setEnvironmentHash, setIsSpaNavigationEnabled } = slice.actions;\nexport const reducer = slice.reducer;\n","import React from 'react';\nimport HeartFilledIcon from '@tradera/blueprint/theme/icons2/heart-fill.svg?jsx';\nimport { useTranslator } from 'tradera-lang';\n\nconst WishListButton = ({\n className,\n disabled,\n iconClassName,\n onClick,\n showText,\n toggled\n}) => {\n const { t } = useTranslator();\n const text = toggled\n ? t('itemCard_savedToWishlist')\n : t('itemCard_saveToWishlist');\n\n const iconClasses = `icon icon-stroke-white \n ${toggled ? 'icon-danger' : ''} \n ${showText ? 'icon-before' : ''} \n ${iconClassName || ''}`;\n\n const combinedClassName = `btn \n ${showText ? 'btn-icon-fixed' : 'btn-round'}\n ${className || ''}`;\n\n return (\n \n {toggled ? (\n \n ) : (\n <>\n \n \n \n )}\n {showText && {text}}\n \n );\n};\n\nexport default WishListButton;\n","import React from 'react';\nimport PropType from 'prop-types';\nimport Close from '@tradera/blueprint/theme/icons2/close.svg?jsx';\n\nconst ModalHeader = ({ children, onClose, className = '' }) => (\n {\n onClose();\n e.stopPropagation();\n }}>\n
    \n {children}\n
    \n \n \n
    \n \n);\n\nModalHeader.propTypes = {\n children: PropType.node.isRequired,\n onClose: PropType.func,\n className: PropType.string\n};\n\nexport default ModalHeader;\n","import React from 'react';\n\nimport { generateItemCardPlaceholders } from 'tradera-components/item-card/generate-item-card-placeholders';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport useIsMobile from 'tradera-hooks/use-is-mobile';\n\nconst LoadingSymbolSpinner = () => (\n
    \n \n
    \n);\n\nconst LoadingSymbolCards = ({ itemsPerPage }) => {\n const items = generateItemCardPlaceholders(itemsPerPage);\n const localLazyLoadSettings = {\n ...lazyLoadSettings,\n offset: 100\n };\n\n const isMobile = useIsMobile();\n\n return (\n \n {items.map(item => (\n \n \n \n ))}\n \n );\n};\n\nexport { LoadingSymbolSpinner, LoadingSymbolCards };\n","import { createSlice } from '@reduxjs/toolkit';\nimport initialState from './initial-state';\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 setShippingCountry: (state, action) => {\n const { countryCodeIso2 } = action.payload;\n state.shippingCountry = { countryCodeIso2 };\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\nexport const {\n setShippingCountry,\n setAvailableShippingCountries,\n beginLoadingAvailableShippingOptions,\n dismissLocalizationRegionPicker,\n setDefaultShippingCountry\n} = shippingRegionSlice.actions;\nexport default shippingRegionSlice.reducer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport CookieUtil from 'tradera-utils/cookie';\nimport { GDPR_CONSENT_COOKIE } from 'tradera-constants/cookies';\n\nconst WaitForConsentApiLoaded = ({\n adsCheckGdprCookie,\n placeHolder,\n onLoadRender\n}) => {\n const hasGivenConsent = adsCheckGdprCookie\n ? CookieUtil.readCookie(GDPR_CONSENT_COOKIE)\n : true;\n const isTcfLoaded = useSelector(state => state.ads.isTcfLoaded);\n if (!isTcfLoaded && !hasGivenConsent) return null;\n if (!isTcfLoaded && placeHolder) return placeHolder; // Return ads placeholder until Tcf is loaded\n return <>{onLoadRender()};\n};\n\nWaitForConsentApiLoaded.propTypes = {\n adsCheckGdprCookie: PropTypes.bool.isRequired,\n placeHolder: PropTypes.node,\n onLoadRender: PropTypes.func.isRequired\n};\n\nexport default WaitForConsentApiLoaded;\n","import axios from 'axios';\n\nimport { logger } from 'packages/index';\nimport ENDPOINTS from 'tradera-constants/endpoints';\n\n/**\n * Standardized api error codes\n */\nconst API_ERRORS = {\n IGNORE_ME: 'IGNORE_ME',\n ABORTED: 'ABORTED',\n CANCELLED: 'CANCELLED',\n NETWORK: 'NETWORK',\n TIMEOUT: 'TIMEOUT',\n VERSION_MISMATCH: 'VERSION_MISMATCH',\n LOGGED_OUT: 'LOGGED_OUT'\n};\n\nconst defaultJsonRequestHeaders = {\n // Force json response\n Accept: 'application/json',\n // For WebAPI\n 'X-Requested-With': 'XMLHttpRequest'\n};\n\n/**\n * Standard Axios configs\n */\nconst axiosConfigs = {\n // Requests to endpoints with authentication\n authenticated: {\n // Send auth cookies\n withCredentials: true,\n headers: defaultJsonRequestHeaders\n }\n};\n\nconst isMissingAuthToken = responseString => {\n try {\n const responseObject = JSON.parse(responseString);\n const isMissing =\n responseObject.responseStatus.errorCode === 'MissingAuthToken';\n return isMissing;\n } catch {\n return false;\n }\n};\n\n/**\n * Create Axios instance or decorate existing instance with interceptor for expired token responses\n *\n * @param {AxiosInstance} [axiosInstance]\n * @returns {AxiosInstance}\n */\nfunction axiosWithTokenRefresh(axiosInstance) {\n let instance;\n if (axiosInstance === undefined) {\n instance = axios.create();\n } else {\n instance = axiosInstance;\n }\n instance.interceptors.response.use(\n response => response,\n error => {\n // Intercept errors\n if (error.request) {\n const isUnauthorized = error.request.status === 401;\n if (\n isUnauthorized ||\n isMissingAuthToken(error.request.response)\n ) {\n return axios\n .get(ENDPOINTS.TOUCHWEB_URL + 'login/state')\n .then(response => {\n return response;\n })\n .then(response => response.data)\n .then(({ isLoggedIn }) => {\n // Redo original request with fresh token\n if (isLoggedIn) {\n return axios({\n ...error.config\n });\n } else {\n // eslint-disable-next-line promise/no-return-wrap\n return Promise.reject(API_ERRORS.LOGGED_OUT);\n }\n })\n .catch(newError => {\n // eslint-disable-next-line promise/no-return-wrap\n return Promise.reject(newError);\n });\n }\n return Promise.reject(error);\n }\n }\n );\n return instance;\n}\n\nconst cancelTokens = {};\n\n/**\n * Create new or return existing cancellation function\n *\n * Usage:\n * const { cancel, cancelToken } = utilizeCancelToken('tokenId')\n * if (cancel) cancel();\n * axios.get('http://api.com/...', { cancelToken });\n *\n * @param {string} tokenId - A string ID shared between requests that cancel together\n * @returns {{ cancel: function, cancelToken: function }}\n */\nfunction utilizeCancelToken(tokenId) {\n let cancel;\n if (tokenId in cancelTokens) {\n cancel = cancelTokens[tokenId].cancel;\n }\n cancelTokens[tokenId] = axios.CancelToken.source();\n return {\n cancel,\n cancelToken: cancelTokens[tokenId].token\n };\n}\n\n/**\n * Check response version and throw error if different from current\n *\n * @param {string} version\n * @return {function(*): object|void}\n */\nfunction checkResponseVersion(version = '12.0.0') {\n return response => {\n if (\n response.headers &&\n response.headers['X-Tradera-Version'] &&\n response.headers['X-Tradera-Version'] !== version\n ) {\n throw new Error(API_ERRORS.VERSION_MISMATCH);\n } else {\n return response;\n }\n };\n}\n\n/**\n * Checks redirect response for logged out user\n * This is an old solution. New solutions return a 401 response instead (see handleError).\n * Requires Axios config to include { withCredentials: true }\n *\n * @returns {Function}\n */\nfunction checkResponseLoggedOut() {\n return response => {\n if (\n response.data &&\n typeof response.data === 'string' &&\n response.data.includes('Logga in')\n ) {\n throw new Error(API_ERRORS.LOGGED_OUT);\n } else {\n return response;\n }\n };\n}\n\n/**\n * Final standardized formatting of an api response\n *\n * @returns { function(*): { data: *, status: integer }}\n */\nfunction finalizeResponse() {\n return response => {\n const { data, status } = response;\n return {\n data,\n status\n };\n };\n}\n\n/**\n * Common network request error handling\n *\n * @param {Object.} statusHandlers - { code: message }\n * @returns {function(*=): Promise}\n */\nfunction handleError(statusHandlers = {}) {\n return error => {\n let status = error.response && error.response.status;\n let message = error.message ? error.message : error.toString();\n if (axios.isCancel(error)) {\n error.message = API_ERRORS.CANCELLED;\n } else if (message.includes('timeout') || status === 408) {\n error.message = API_ERRORS.TIMEOUT;\n } else if (message.includes('Network')) {\n error.message = API_ERRORS.NETWORK;\n } else if (message.includes('Request aborted')) {\n error.message = API_ERRORS.ABORTED;\n } else if (status in statusHandlers) {\n error.message = statusHandlers[status];\n }\n throw error;\n };\n}\n\nfunction logError(error) {\n switch (error.message) {\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\nexport {\n API_ERRORS,\n axiosConfigs,\n axiosWithTokenRefresh,\n checkResponseVersion,\n checkResponseLoggedOut,\n defaultJsonRequestHeaders,\n finalizeResponse,\n handleError,\n logError,\n utilizeCancelToken\n};\n","import 'underscore';\n\nvar initialState = {\n shippingBags: false,\n displayPromoted: false,\n displayHighlighted: false\n};\n\nexport default (state, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_SHIPPING_BAGS':\n return _.assign({}, state, { shippingBags: action.payload });\n case 'SET_DISPLAY_PROMOTED':\n return _.assign({}, state, { displayPromoted: action.payload });\n case 'SET_DISPLAY_HIGHLIGHTED':\n return _.assign({}, state, { displayHighlighted: action.payload });\n default:\n return state;\n }\n};\n","import { cache, CACHE_KEYS } from 'tradera-utils/cache';\n\nexport default () => {\n const recent = cache.read(CACHE_KEYS.RECENTLY_VIEWED_ITEMS) || [];\n return {\n // Items by itemId\n cache: {},\n // List of item ids in ascending cache order (oldest first)\n cacheOrder: [],\n recent\n };\n};\n","export default {\n DEFAULT_ACTION: 'member/default',\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};\n","import { compose, createStore, applyMiddleware } from 'redux';\nimport { Provider } from 'react-redux';\nimport React from 'react';\nimport ReduxThunk from 'redux-thunk';\nimport {\n formatQueryParams,\n stripItmFromQueryParameters,\n toQueryParameters\n} from 'tradera-utils/url';\nimport initData from 'init-data';\nimport rootReducer from './root-reducer';\nimport initialState from './get-initial-state';\nimport searchActions from './discover/actions';\nimport adsActions from './ads/actions';\nimport * as viewItemActions from './views/view-item/reducer';\nimport { handleReportItemModel } from './views/report-item/actions';\nimport uiActions from './ui/actions';\nimport * as pushNotificationActions from './push-notifications/push-notifications-slice';\nimport { routerMiddleware } from 'connected-react-router';\nimport history from 'tradera-utils/history';\n\n// Ensure only 1 redux store;\nlet reduxStore;\n\nexport { history };\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(applyMiddleware(...middlewares));\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 initialState,\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(history);\nconst store = globalStore();\n\n/**\n * handle tcf + gdpr loading\n */\n\nif (initData.featureSwitches && initData.featureSwitches['quantcast-consent']) {\n window.addEventListener('tcfLoaded', function() {\n store.dispatch(adsActions.setTcfLoaded());\n });\n} else {\n store.dispatch(adsActions.setTcfLoaded());\n}\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 */\nif (initData?.discoverResponse) {\n store.dispatch(\n searchActions.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 store.dispatch(\n viewItemActions.handleItemModel(initData.item, initData.memberId)\n );\n} else if (initData?.reportItem) {\n store.dispatch(handleReportItemModel(initData.reportItem));\n}\n\nstore.dispatch(uiActions.fetchSystemMessages());\nstore.dispatch(pushNotificationActions.init());\n\nwindow.getState = store.getState; // TODO: REmove me or put behind ENV-check (dev only)\n\nexport default store;\n\nexport const getSyiSlice = state => state.views.syi;\n\nexport const ProviderWithGlobalStore = props => (\n \n);\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 { warnIfDevBuild } from 'utils/environment';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App, { BasicApp } from './app';\nimport { logger } from 'packages';\n\nexport default initData => {\n warnIfDevBuild('discover');\n const { isHybridAppContext } = initData;\n const el = document.getElementsByClassName('site-container')[0];\n if (el) {\n try {\n el.classList.add('bp');\n // Render basic app for web views, regular app otherwise\n const AppToMount = isHybridAppContext ? 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 gtmCore from 'static/script/app/ui/google-tagmanager-service';\nimport { logger, Analytics } from 'packages';\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 { calculateClientEndTime } from 'tradera-utils/countdown';\nimport { getServerTime } from 'tradera-utils/time-api';\n\nconst RECENTLY_VIEWED_CACHE_TTL = 30 * 24 * 60 * 60 * 1000;\n\n/**\n * Adds The property \"endDateForCountdown\" on the given item. This property is used\n * by ItemCard and ItemListCard to display the correct amount of time left of an auction.\n * @param {*} serverTimeInMs\n * @param {*} serverLatencyInMs\n * @param {*} nowInMs\n */\nconst createEndDateForCountdownDecorator = (\n serverTimeMs,\n serverLatencyMs,\n nowMs\n) => item => {\n const originalEndTimeMs = new Date(item.endDate).getTime();\n const calculatedEndTimeMs = calculateClientEndTime(\n serverTimeMs,\n serverLatencyMs,\n nowMs,\n originalEndTimeMs\n );\n item.endDateForCountdown = new Date(calculatedEndTimeMs);\n return item;\n};\n\nconst add = items => ({\n type: actionTypes.ADD,\n payload: items\n});\n\nconst addAndDecorateItemsWithEndDateForCountdown = items => async dispatch => {\n const serverTimeObject = await getServerTime();\n const endDateForCountdownDecorator = createEndDateForCountdownDecorator(\n serverTimeObject ? serverTimeObject.currentTime : 0,\n serverTimeObject ? serverTimeObject.latency : 0,\n Date.now()\n );\n const decoratedItems = items.map(endDateForCountdownDecorator);\n dispatch(add(decoratedItems));\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\n/**\n * Toggle item in wishlist\n *\n * @param {int} itemId\n * @param {boolean} [toggle] - Force add or remove from wishlist\n * @param {boolean} [shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip]\n * @returns {function(*, *): Promise<* | Error>}\n */\nconst wishlist = (\n itemId,\n toggle,\n shouldNotTrackEventBecauseNeedsToBeSameAsLegacyVip = false\n) => async (dispatch, getStore) => {\n const {\n member: { isLoggedIn, memberId },\n items: { cache },\n page\n } = getStore();\n let existsInWishList;\n if (toggle === undefined) {\n existsInWishList = cache[itemId]?.existsInWishList || false;\n } else {\n existsInWishList = !toggle;\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({\n type: actionTypes.WISHLIST,\n payload: { itemId, exists: !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(response => {\n const addedToWishlist = response?.data?.isSuccessful;\n if (addedToWishlist) {\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 return;\n })\n .catch(error => {\n // Restore previous wishlist status on error\n dispatch({\n type: actionTypes.WISHLIST,\n payload: { itemId, exists: existsInWishList }\n });\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 removeWishList = payload => ({\n type: actionTypes.REMOVE_WISHLIST,\n payload\n});\n\nconst updateItem = ({ itemId, item }) => ({\n type: actionTypes.UPDATE_ITEM,\n payload: { itemId, item }\n});\n\nexport default {\n add,\n addAndDecorateItemsWithEndDateForCountdown,\n addRecentlyViewed,\n wishlist,\n removeWishList,\n updateItem\n};\n","export default function ThrottledAction(minDelayInMs, alwaysDelay) {\n var lastActionTime = 0;\n var timeoutId = null;\n this.execute = function(wrappedAction) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n var timeNow = Date.now();\n var elapsed = timeNow - lastActionTime;\n if (!alwaysDelay && elapsed > minDelayInMs) {\n wrappedAction();\n lastActionTime = timeNow;\n } else {\n timeoutId = setTimeout(function() {\n wrappedAction();\n }, minDelayInMs);\n }\n };\n}\n","import myTraderaItemActions from './my-tradera-items';\nimport qs from 'qs';\nimport { checkStateOfQueryParams } from '../../helpers/route-helper';\nimport { setCookie } from './cookies';\nimport { selectCookiesState } from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectMyTraderaState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\n\n//jshint module : true\nconst actionTypes = {\n SELECT_RADIO_BAR: 'SET_SELECTED_RADIO_BAR',\n GET_SEARCH: 'GET_SEARCH_RESULTS',\n SET_PAGE_SIZE: 'SET_PAGE_SIZE',\n CHANGE_SORT_VALUE: 'CHANGE_SORT_VALUE',\n CHANGE_TYPE_VALUE: 'CHANGE_TYPE_VALUE',\n CHANGE_SORT_ORDER: 'CHANGE_SORT_ORDER',\n CHANGE_SORTING_TO_BEST_MATCH: 'CHANGE_SORTING_TO_BEST_MATCH',\n SET_DATE_FROM: 'SET_DATE_FROM',\n SET_DATE_TO: 'SET_DATE_TO',\n CHANGE_PAGE: 'CHANGE_PAGE',\n CHANGE_SEARCH_QUERY: 'CHANGE_SEARCH_QUERY',\n CHANGE_RESERVATION_PRICE: 'CHANGE_RESERVATION_PRICE',\n RESET_FILTERS: 'RESET_FILTERS_TO_DEFAULT',\n SET_FILTERS_FROM_ROUTER: 'SET_FILTERS_BASED_ON_ROUTER',\n LOCATION_CHANGE: 'ROUTER_DISPATCHED_ROUTE_CHANGE',\n SET_FILTERS_FOR_PAGE: 'SET_FILTERS_BASED_ON_PAGE',\n SET_FILTERS_BY_STATE: 'SET_FILTERS_BASED_ON_STATE',\n SET_SINGLE_FILTER: 'SET_SINGLE_FILTER_VALUE',\n RESET_DATE_RANGE_TO: 'RESET_DATE_RANGE_TO',\n RESET_DATE_RANGE_FROM: 'RESET_DATE_RANGE_FROM',\n SHOW_HIDE_FILTERS: 'SHOW_HIDE_FILTER_TOOLBAR'\n};\n\nconst updatePageSize = value => ({\n type: actionTypes.SET_PAGE_SIZE,\n payload: value\n});\n\nconst setPageSize = value => dispatch => {\n dispatch(setCookie('ITEMS_PER_PAGE', value));\n dispatch(updatePageSize(value));\n return {\n type: actionTypes.setPageSize,\n payload: value\n };\n};\n\nconst selectTypeChange = value => ({\n type: actionTypes.CHANGE_TYPE_VALUE,\n payload: value\n});\n\nconst selectSortChange = (sort, sortOrder) => ({\n type: actionTypes.CHANGE_SORT_VALUE,\n payload: {\n sort: sort,\n sortOrder: sortOrder\n }\n});\n\nconst changeSortingToBestMatch = (sort, sortOrder) => ({\n type: actionTypes.CHANGE_SORTING_TO_BEST_MATCH,\n payload: {\n sort: sort,\n sortOrder: sortOrder\n }\n});\n\nconst setDateFrom = value => ({\n type: actionTypes.SET_DATE_FROM,\n payload: value\n});\n\nconst setDateTo = value => ({\n type: actionTypes.SET_DATE_TO,\n payload: value\n});\n\nconst changeSortOrder = () => ({\n type: actionTypes.CHANGE_SORT_ORDER\n});\n\nconst changePage = value => ({\n type: actionTypes.CHANGE_PAGE,\n page: value\n});\n\nconst changeSearchQuery = value => ({\n type: actionTypes.CHANGE_SEARCH_QUERY,\n payload: value\n});\n\nconst selectReservationPriceChange = value => ({\n type: actionTypes.CHANGE_RESERVATION_PRICE,\n payload: value\n});\n\nconst setFiltersFromRouter = params => ({\n type: actionTypes.LOCATION_CHANGE,\n payload: params\n});\n\nconst updateFiltersForSelectedPage = filters => ({\n type: actionTypes.SET_FILTERS_FOR_PAGE,\n payload: filters\n});\n\nconst setFiltersForSelectedPage = filters => (dispatch, getState) => {\n const pageSize = selectCookiesState(getState()).ITEMS_PER_PAGE;\n if (pageSize) {\n filters.newFilters.modifiers.paging.size = pageSize;\n }\n dispatch(updateFiltersForSelectedPage(filters));\n};\n\nconst filterByState = value => ({\n type: actionTypes.SET_FILTERS_BY_STATE,\n payload: value\n});\n\nconst setSingleFilterValue = (filter, value) => ({\n type: actionTypes.SET_SINGLE_FILTER,\n payload: {\n filter,\n value\n }\n});\n\nconst 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 dispatch(\n setFiltersFromRouter(qs.parse(location.search.replace('?', '')))\n );\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 dispatch(\n setFiltersFromRouter(qs.parse(location.search.replace('?', '')))\n );\n dispatch(myTraderaItemActions.updateURL());\n }\n }\n};\n\nconst resetFilters = () => ({\n type: actionTypes.RESET_FILTERS\n});\n\nconst resetDateRangeTo = () => ({\n type: actionTypes.RESET_DATE_RANGE_TO\n});\n\nconst resetDateRangeFrom = () => ({\n type: actionTypes.RESET_DATE_RANGE_FROM\n});\n\nconst showHideFilterToolbar = showCookies => dispatch => {\n dispatch(\n setCookie(\n 'SHOW_FILTERS',\n showCookies === 'visible' ? 'hidden' : 'visible'\n )\n );\n};\n\nexport default {\n actionTypes,\n resetDateRangeTo,\n resetDateRangeFrom,\n resetFilters,\n setPageSize,\n selectTypeChange,\n selectSortChange,\n changeSortingToBestMatch,\n setDateTo,\n setDateFrom,\n setSingleFilterValue,\n changeSortOrder,\n changePage,\n changeSearchQuery,\n updateFiltersForSelectedPage,\n selectReservationPriceChange,\n setFiltersFromRouter,\n setFiltersForSelectedPage,\n filterByState,\n updatePageSize,\n historyLocationDidUpdate,\n showHideFilterToolbar\n};\n","export const selectIsLoggedIn = state => state.member?.isLoggedIn;\n\nexport const selectGeolocation = state => state.member?.geolocation;\n\nexport const selectMemberId = state => state.member?.memberId;\nexport const selectMemberCountryCodeIso2 = state =>\n state.member?.countryCodeIso2;\n\nexport const selectIsOutsideSweden = state =>\n state.member?.geolocation?.isoCode &&\n state.member?.geolocation?.isoCode.toLowerCase() !== 'se';\n\nexport const selectIsFetchingGeolocation = state =>\n state.member?.isFetchingGeolocation;\n","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\nexport default history;\n","import React from 'react';\nimport Plus from '@tradera/blueprint/theme/icons2/plus.svg?jsx';\n\nconst AttributeButton = ({ className, text, onClick }) => {\n return (\n \n \n {text}\n \n );\n};\nexport default AttributeButton;\n","import React from 'react';\nimport AttributeButton from './attribute-button';\n\nconst AttributeButtonsList = ({ itemAttributesForFilter, onClick }) => {\n const attributeButtons = [];\n itemAttributesForFilter.map(attribute => {\n attributeButtons.push(\n onClick(attribute)}\n />\n );\n });\n\n return attributeButtons;\n};\nexport default AttributeButtonsList;\n","export default {\n AUCTION: 'Auction',\n AUCTION_BIN: 'AuctionBin',\n PURE_BIN: 'PureBin',\n SHOP_ITEM: 'ShopItem'\n};\n","/**\n * Run callback when document DOM content is ready\n *\n * @param {function} callback\n */\nfunction onDOMContentLoaded(callback) {\n if (document.readyState !== 'loading') {\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n}\n\n/**\n * Run callback when all window content has loaded\n *\n * @param {function} callback\n */\nfunction onWindowLoad(callback) {\n if (document.readyState === 'complete') {\n callback();\n } else {\n window.addEventListener('load', callback);\n }\n}\n\nexport {\n // Export onDOMContentLoaded as default to cover old uses of onReady\n onDOMContentLoaded as default,\n onDOMContentLoaded,\n onWindowLoad\n};\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport 'underscore';\nimport ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosConfigs,\n axiosWithTokenRefresh,\n finalizeResponse\n} from 'tradera-utils/api';\nimport categoryService from 'tradera-services/category-service';\nimport ThrottledAction from 'tradera-apps/syi/script/app_react/utils/throttled-action';\nimport syiActions from './syi-actions';\nimport feesActions from './fees-actions';\nimport {\n fetchForCategory,\n fetchCategoryAttributeSuggestions\n} from './attributes-actions';\n\nimport campaignCodeActions from './campaign-code-actions';\nimport { globalStore, getSyiSlice } from 'tradera-state/configure-store';\nimport { Analytics } from 'packages';\n\nconst store = globalStore();\n\nvar throttleTimeout = 1000;\nvar throttledCategoriesRequest = new ThrottledAction(throttleTimeout, true);\nvar numberOfLevels = 4;\n\nfunction loadCategories(\n shortDescription,\n categoryId,\n index,\n executeImmediately\n) {\n var request = function() {\n store.dispatch({\n type: 'CATEGORIES_LOADING',\n index: index\n });\n categoryService\n .loadChildCategories(shortDescription, categoryId, index)\n .then(function(result) {\n store.dispatch({\n type: 'CATEGORIES_LOADED',\n category: result,\n index: index\n });\n categoryService.prefetchChildren(\n shortDescription,\n result,\n index + 1\n );\n });\n };\n if (executeImmediately) {\n request();\n } else {\n throttledCategoriesRequest.execute(request);\n }\n}\n\nfunction closeLevel(index) {\n store.dispatch({\n type: 'CLOSE_LEVEL',\n index: index\n });\n}\nfunction resetLevel(index) {\n store.dispatch({\n type: 'RESET_LEVEL',\n index: index\n });\n}\nfunction disableLevel(index) {\n store.dispatch({\n type: 'DISABLE_LEVEL',\n index: index\n });\n}\nfunction toggleLevelLabel(index, value) {\n store.dispatch({\n type: 'TOGGLE_LEVEL_LABEL',\n index: index,\n value: value\n });\n}\nfunction selectLevelCategory(category, index) {\n store.dispatch({\n type: 'SELECT_LEVEL_CATEGORY',\n index: index,\n category: category\n });\n}\n\nexport const updateCategoryRestrictions = categoryId => async () => {\n if (!categoryId) {\n resetCategoryRestriction();\n return;\n }\n\n try {\n const url = ENDPOINTS.SELLING_CATEGORY_RESTRICTIONS + '/' + categoryId;\n const response = await axiosWithTokenRefresh()\n .get(url, {\n ...axiosConfigs.authenticated\n })\n .then(finalizeResponse());\n syiActions.setCategoryRestriction(response.data);\n } catch (error) {\n resetCategoryRestriction();\n throw error;\n }\n};\n\nconst resetCategoryRestriction = () =>\n syiActions.setCategoryRestriction({\n displayPaymentOptions: '',\n paymentOptionGroups: []\n });\n\nconst setDraftCategory = categoryId => (dispatch, getState) => {\n var slice = getSyiSlice(getState());\n var featureSwitches = getState().environment.featureSwitches;\n var categoryPath = _.filter(slice.category.levels, function(level) {\n return level.selectedCategory;\n }).map(function(level) {\n return level.selectedCategory;\n });\n dispatch({\n type: 'SET_DRAFT_CATEGORY',\n categoryId: categoryId,\n categoryPath: categoryPath\n });\n dispatch(campaignCodeActions.validateCampaignCode());\n dispatch(updateCategoryRestrictions(categoryId));\n if (featureSwitches['syi-attributes']) {\n dispatch(fetchForCategory(categoryId));\n dispatch(\n fetchCategoryAttributeSuggestions(\n categoryId,\n slice.shortDescription.shortDescription\n )\n );\n }\n dispatch(feesActions.updateCommission());\n dispatch(feesActions.updateMaxCommission());\n};\n\nconst loadTopCategories = shortDescription => dispatch => {\n dispatch({\n type: 'CATEGORIES_LOADING',\n index: 0\n });\n\n categoryService.loadTopCategories(shortDescription).then(function(result) {\n dispatch({\n type: 'CATEGORIES_LOADED',\n category: result,\n index: 0,\n shortDescriptionForRecommendations: shortDescription\n });\n categoryService.prefetchChildren(shortDescription, result, 1);\n });\n};\n\nconst setPath = (shortDescription, categoryPath) => () => {\n if (!categoryPath || !categoryPath.length) {\n for (let i = 0; i < numberOfLevels; i++) {\n closeLevel(i);\n }\n return;\n }\n for (let i = 0; i < categoryPath.length; i++) {\n closeLevel(i);\n selectLevelCategory(categoryPath[i], i);\n if (i < categoryPath.length - 1) {\n loadCategories(\n shortDescription,\n categoryPath[i].categoryId,\n i + 1,\n true\n );\n }\n }\n for (var i = categoryPath.length; i < numberOfLevels; i++) {\n toggleLevelLabel(i, false);\n }\n};\n\nconst setPathFromDraft = () => (dispatch, getState) => {\n let shortDescription = getSyiSlice(getState()).shortDescription;\n let category = getSyiSlice(getState()).category;\n dispatch(\n setPath(shortDescription.shortDescription, category.draftCategoryPath)\n );\n};\n\nconst reset = () => dispatch => {\n dispatch({\n type: 'RESET_CATEGORY'\n });\n dispatch(feesActions.updateCommission());\n};\n\nconst openLevel = (shortDescription, index) => dispatch => {\n for (var i = 0; i < numberOfLevels; i++) {\n closeLevel(i);\n toggleLevelLabel(i, true);\n if (i > index) {\n resetLevel(i);\n disableLevel(i);\n }\n }\n if (index === 0) {\n dispatch(loadTopCategories(shortDescription));\n }\n dispatch({\n type: 'OPEN_LEVEL',\n index: index\n });\n};\n\nconst toggleCategories = categoryLevel => dispatch => {\n dispatch({\n type: 'TOGGLE_CATEGORIES',\n index: categoryLevel.index,\n value: !categoryLevel.categoriesVisible\n });\n};\n\nconst selectCategory = (\n shortDescription,\n categoryLevel,\n category\n) => dispatch => {\n if (category.isLeaf) {\n closeLevel(categoryLevel.index);\n selectLevelCategory(category, categoryLevel.index);\n for (var i = categoryLevel.index + 1; i < numberOfLevels; i++) {\n toggleLevelLabel(i, false);\n }\n dispatch(setDraftCategory(category.categoryId));\n } else {\n closeLevel(categoryLevel.index);\n selectLevelCategory(category, categoryLevel.index);\n loadCategories(\n shortDescription,\n category.categoryId,\n categoryLevel.index + 1,\n true\n );\n dispatch(openLevel(shortDescription, categoryLevel.index + 1));\n }\n Analytics.trackEvent({\n category: 'SYI',\n action: `Select Category - Level ${categoryLevel.index + 1}`,\n label: `Suggested Categories - ${categoryLevel.suggestions\n .map(x => x.categoryId)\n .join()}`,\n value: category.categoryId\n });\n};\n\nexport default {\n setDraftCategory,\n loadTopCategories,\n openLevel,\n toggleCategories,\n selectCategory,\n setPath,\n setPathFromDraft,\n reset\n};\n","import React, { Component } from 'react';\nimport PropType from 'prop-types';\nimport './overlay.scss';\n\nclass Overlay extends Component {\n closeOnEscape = e => {\n const { closeModalCallback } = this.props;\n if (e.keyCode === 27) {\n if (closeModalCallback) {\n closeModalCallback(e);\n }\n e.preventDefault();\n }\n };\n\n componentDidMount() {\n window.addEventListener('keydown', this.closeOnEscape);\n }\n\n componentWillUnmount() {\n window.removeEventListener('keydown', this.closeOnEscape);\n }\n\n render() {\n const { children, closeModalCallback, style } = this.props;\n\n return (\n
    \n {children}\n
    \n );\n }\n}\n\nOverlay.propTypes = {\n children: PropType.node,\n closeModalCallback: PropType.func,\n style: PropType.object\n};\n\nexport default Overlay;\n","import 'underscore';\nimport { getSyiSlice } from 'tradera-state/configure-store';\n\nexport default {\n toggleAllVisible: () => dispatch => {\n dispatch({\n type: 'TOGGLE_ALL_VISIBLE'\n });\n },\n togglePaymentOption: paymentOption => (dispatch, getState) => {\n paymentOption.selected = !paymentOption.selected;\n var selectedPaymentOptions = [];\n if (_.isArray(getSyiSlice(getState()).payment.selectedPaymentOptions)) {\n selectedPaymentOptions = getSyiSlice(\n getState()\n ).payment.selectedPaymentOptions.slice();\n }\n\n if (paymentOption.selected) {\n selectedPaymentOptions.push(paymentOption.paymentType);\n } else {\n selectedPaymentOptions = _.filter(selectedPaymentOptions, function(\n po\n ) {\n return po != paymentOption.paymentType;\n });\n }\n selectedPaymentOptions = _.filter(selectedPaymentOptions, function(po) {\n return po != null;\n });\n\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: selectedPaymentOptions\n });\n },\n setSelectedPaymentOptions: selectedPaymentOptions => dispatch => {\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: selectedPaymentOptions\n });\n },\n reset: () => dispatch => {\n dispatch({\n type: 'SET_PAYMENT_OPTIONS',\n selectedPaymentOptions: []\n });\n }\n};\n","import qs from 'qs';\n\n/**\n * Generate url for recommendation request\n * @param {string} slotId - identifier of slot\n * @param {number} pageSize - limit items fetched\n * @param {array} [seedItemIds] - item list that will act as seed for recommendation\n */\nconst recommendationsRequestBuilder = (slotId, pageSize, seedItemIds = []) => {\n const endpoint = '/ma/recommendations-v3';\n\n return (pageIndex = 0) => {\n let queryParameters = {\n slotId,\n pageSize,\n pageIndex\n };\n\n if (!!seedItemIds && seedItemIds.length > 0) {\n queryParameters.seedItemIds = seedItemIds;\n }\n\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\n/**\n * Generate url for similar items request\n * @param {number} id - id of item to find similar to\n * @param {number} pageSize - limit items fetched\n */\nconst similarItemsRequestBuilder = (id, pageSize) => {\n const endpoint = '/ma/recommendations-similar-items';\n return () => {\n let queryParameters = {\n id,\n pageSize\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\n/**\n * Generate url for similar items request\n * @param {number} id - id of item to find similar to\n * @param {number} pageSize - limit items fetched\n */\nconst similarItemsFromShopRequestBuilder = (id, pageSize) => {\n const endpoint = '/ma/recommendations-similar-items-from-shop';\n return () => {\n let queryParameters = {\n id,\n pageSize\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\nconst similarItemsFromCampaignRequestBuilder = (\n itemId,\n size,\n query,\n campaignCodeId\n) => {\n const endpoint = '/ma/recommendations-more-items-from-campaign';\n return () => {\n let queryParameters = {\n itemId,\n size,\n query,\n campaignCodeId\n };\n return `${endpoint}?${qs.stringify(queryParameters)}`;\n };\n};\n\nexport {\n recommendationsRequestBuilder,\n similarItemsRequestBuilder,\n similarItemsFromShopRequestBuilder,\n similarItemsFromCampaignRequestBuilder\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @description Radio group component\n * props: options: array of objects of shape { name: string, value: string }\n */\n\nconst RadioGroup = ({\n id,\n options,\n checked,\n handleOnChange,\n className,\n radioButtonClassName\n}) => {\n return (\n
    \n {options.map(option => {\n return (\n \n {\n handleOnChange(e.target.value, e);\n }}\n />\n \n {option.name}\n \n
    \n );\n })}\n \n );\n};\n\nRadioGroup.propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string\n })\n ),\n checked: PropTypes.string,\n handleOnChange: PropTypes.func,\n id: PropTypes.string.isRequired,\n className: PropTypes.string,\n radioButtonClassName: PropTypes.string\n};\n\nRadioGroup.defaultProps = {\n className: '',\n radioButtonClassName: ''\n};\n\nexport default RadioGroup;\n","import React from 'react';\nimport './zign-sec-logo.scss';\n\nexport const ZignSecLogo = ({ className }) => {\n className = className || '';\n return (\n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport DialogModal from 'tradera-components/dialog/dialog-modal';\nimport ModalContainer from 'static/script/components/modals/modal-container';\nimport ModalHeader from 'static/script/components/modals/modal-header';\nimport ModalBody from 'static/script/components/modals/modal-body';\nimport { connect } from 'react-redux';\nimport { closeModal } from 'tradera-state/ui/action-creators';\nimport { axiosWithTokenRefresh } from 'tradera-utils/api';\nimport './zign-sec-modal.scss';\nimport { useTranslator } from 'tradera-lang';\nimport { LocalLoader } from 'tradera-components/loader/loader';\nimport { ZignSecLogo } from './zign-sec-logo.jsx';\n\nconst STATE = {\n START: 'START',\n VERIFYING: 'VERIFYING',\n ERROR_UNAVAILABLE: 'ERROR_UNAVAILABLE',\n CONTACT_CUSTOMER_SUPPORT: 'CONTACT_CUSTOMER_SUPPORT'\n};\n\nconst addScriptToDom = zignSecWebSDKUrl => {\n const dataAttributeName = 'data-zign-sec-web-sdk-url-script';\n if (document.querySelector(`[${dataAttributeName}]`)) {\n return;\n }\n const js = document.createElement('script');\n js.setAttribute(dataAttributeName, '1');\n js.setAttribute('type', 'text/javascript');\n js.setAttribute('src', zignSecWebSDKUrl);\n document.body.appendChild(js);\n};\n\nconst PlainZignSecModal = ({\n closeModal,\n onVerifyComplete,\n zignSecWebSDKUrl\n}) => {\n const [verifyingState, setVerifyingState] = useState(STATE.START);\n const [isLoading, setIsLoading] = useState(false);\n const { t } = useTranslator();\n\n useEffect(() => {\n addScriptToDom(zignSecWebSDKUrl);\n }, [zignSecWebSDKUrl]);\n\n useEffect(() => {\n if (verifyingState !== STATE.VERIFYING) {\n return;\n }\n\n let currentTimeoutId = null;\n const poll = (zs, sessionId) =>\n new Promise(resolve => {\n const call = () => {\n currentTimeoutId = setTimeout(async () => {\n try {\n // Result will appear when verification is completed.\n const { result } = await zs.getSessionStatus(\n sessionId\n );\n\n if (result) {\n return resolve();\n }\n } catch (error) {\n console.error(error);\n } finally {\n call();\n }\n }, 2000);\n };\n call();\n });\n setIsLoading(true);\n axiosWithTokenRefresh()\n .get('/api/member-identification/queries/ScanningsCreateWebToken', {\n params: {\n purpose: 'SYI'\n }\n })\n .then(async ({ data }) => {\n setIsLoading(false);\n const zs = new window.ZignSec(\n data.token,\n window.ZsProduct.Scanning\n );\n\n const r = await zs.openInIframe('zs-root', {\n relay_state: data.relayState,\n analysis_types: ['document', 'selfie', 'fraud']\n });\n await poll(zs, r.id);\n\n setIsLoading(true);\n return await axiosWithTokenRefresh().post(\n '/api/member-identification/commands/ScanningResult',\n {\n sessionId: r.id,\n relayState: data.relayState\n }\n );\n })\n .then(({ data }) => {\n setIsLoading(false);\n\n if (data.isSuccessful) {\n onVerifyComplete();\n } else {\n setVerifyingState(STATE.CONTACT_CUSTOMER_SUPPORT);\n }\n return;\n })\n .catch(() => {\n setIsLoading(false);\n setVerifyingState(STATE.ERROR_UNAVAILABLE);\n });\n return () => currentTimeoutId && clearTimeout(currentTimeoutId);\n }, [verifyingState, setVerifyingState, setIsLoading, onVerifyComplete]);\n\n return (\n \n \n \n
    {t('zignSecModal_heading')}
    \n \n \n
    \n {verifyingState === STATE.START && (\n
    \n

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

    \n
    \n

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

    \n

    {t('zignSecModal_introText_b')}

    \n
    \n \n

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

    \n \n setVerifyingState(STATE.VERIFYING)\n }>\n {t('zignSecModal_buttonText')}\n \n
    \n )}\n {isLoading && }\n {verifyingState === STATE.VERIFYING && !isLoading && (\n
    \n )}\n {verifyingState === STATE.ERROR_UNAVAILABLE && (\n \n {t('zignSecModal_errorUnavailable')}\n \n )}\n {verifyingState === STATE.CONTACT_CUSTOMER_SUPPORT && (\n
    \n

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

    \n \n \n setVerifyingState(STATE.VERIFYING)\n }>\n {t('zignSecModal_buttonTryAgain')}\n \n
    \n )}\n
    \n \n \n \n );\n};\n\nconst mapStateToProps = state => ({\n zignSecWebSDKUrl: state.initData.pageSpecificData.zignSecWebSDKUrl\n});\n\nconst mapDispatchToProps = {\n closeModal\n};\n\nexport const ZignSecModal = connect(\n mapStateToProps,\n mapDispatchToProps\n)(PlainZignSecModal);\n","import React from 'react';\nimport { ZignSecModal } from 'tradera-components/zign-sec-modal/zign-sec-modal';\nimport draftActions from 'tradera-state/views/syi/actions/draft-actions';\nimport { useDispatch } from 'react-redux';\nimport { useTranslator } from 'tradera-lang';\nimport { withUrls } from 'tradera-apps/syi/script/app_react/hoc';\nimport { closeModal } from 'tradera-state/ui/action-creators';\n\nexport const SyiZignSecModal = withUrls(({ navigate, urls }) => {\n const dispatch = useDispatch();\n const { t } = useTranslator();\n const onPublished = itemId => navigate(urls.published(itemId));\n return (\n {\n dispatch(draftActions.publish(onPublished, t));\n dispatch(closeModal());\n }}\n />\n );\n});\n\nexport const syiZignSecModalId = 'syiZignSecModalId';\n","import { createSlice } from '@reduxjs/toolkit';\nimport initialState from './initial-state';\n\nconst startPageSlice = createSlice({\n name: 'startPage',\n initialState: initialState(),\n reducers: {\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 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","export const LIST_VIEW_TYPES = {\n BASIC: 'Basic',\n COMPACT: 'Compact'\n};\n\nexport const PAGE_LIST_TYPES = {\n BUYER_ACTIVE_ITEMS: 'BUYER_ACTIVE_ITEMS',\n BUYER_PURCHASES: 'BUYER_PURCHASES',\n BUYER_ITEMS_LOST: 'BUYER_ITEMS_LOST',\n SELLER_ACTIVE: 'SELLER_ACTIVE',\n SELLER_SOLD: 'SELLER_SOLD',\n SELLER_NOT_SOLD: 'SELLER_NOT_SOLD'\n};\n\nexport const PAGE_BULK_ACTIONS = {\n ACTIVE_CANCEL: 'ActiveItems_Cancel',\n UNSOLD_RESTART: 'UnsoldItems_Restart',\n BUYER_MARK_PAID: 'Buyer_MarkPaid',\n BUYER_SHOW_ACTIVE: 'ShowActive',\n BUYER_HIDE_ACTIVE: 'HideActive',\n PURCHASES_SHOW: 'PurchasesShow'\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';\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 document.location = 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 error.response = response;\n logger(error);\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","import 'underscore';\nimport moment from 'moment';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport draftService from 'tradera-apps/syi/script/app_react/services/draft-service';\n\nmoment.locale('sv');\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 customEndTimeError: null,\n selectedDaysText: '',\n selectedDateText: '',\n summaryText: '',\n allowZeroDayAuctions: false\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 dateText: toDisplayText(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\nfunction toDaysText(numberOfDays) {\n return numberOfDays + ' dagar';\n}\n\nfunction toDateText(numberOfDays) {\n return (\n ' (avslutas ' +\n moment()\n .add(numberOfDays, 'days')\n .format('ddd D MMM') +\n ')'\n );\n}\n\nfunction toDisplayText(numberOfDays) {\n return toDaysText(numberOfDays) + toDateText(numberOfDays);\n}\n\nconst getCustomEndTime = state => {\n if (!state.customEndTimeHour || !state.customEndTimeMinute) {\n return null;\n }\n\n return state.customEndTimeHour + ':' + state.customEndTimeMinute;\n};\n\nfunction resolveSummaryText(days, customEndTime, isPureBin, isChangeItem) {\n let text;\n var durationDays = isPureBin ? 30 : days;\n if (isChangeItem) {\n text = 'Annonslängd ' + durationDays + ' dagar.';\n if (customEndTime) {\n text += ' Vald sluttid ' + customEndTime + '.';\n }\n } else {\n text =\n 'Annonslängd ' +\n durationDays +\n ' dagar (avslutas ' +\n moment()\n .add(durationDays, 'days')\n .format('ddd D MMM');\n if (customEndTime) {\n text += ' kl. ' + customEndTime;\n }\n text += ')';\n }\n\n return text;\n}\n\nconst getCustomEndTimeError = (\n durationDays,\n customEndTime,\n allowZeroDayAuctions\n) => {\n let newCustomEndTimeError = null;\n if (allowZeroDayAuctions) {\n const endDate = moment(customEndTime, 'HH:mm').add(\n durationDays,\n 'days'\n );\n const earliestEndDate = moment().add(5, 'minutes');\n if (endDate.isBefore(earliestEndDate)) {\n newCustomEndTimeError =\n 'Din valda sluttid är för tidig. Annonser får avslutas tidigast efter 5 minuter.';\n }\n } else if (customEndTime) {\n const endDate = moment(customEndTime, 'HH:mm').add(\n durationDays,\n 'days'\n );\n const earliestEndDate = moment().add(3, 'days');\n if (endDate.isBefore(earliestEndDate)) {\n newCustomEndTimeError =\n 'Din valda sluttid är för tidig. Annonser får avslutas tidigast efter 72 timmar.';\n }\n }\n\n return newCustomEndTimeError;\n};\n\nconst newStateWithoutCampaignRelatedProps = (\n state,\n durationDays,\n customEndTime,\n isPureBin,\n allowZeroDayAuctions,\n isChangeItem\n) => {\n const selectedDaysText = toDaysText(durationDays);\n const selectedDateText = toDateText(durationDays);\n const summaryText = resolveSummaryText(\n durationDays,\n customEndTime,\n isPureBin,\n isChangeItem\n );\n const customEndTimeError = getCustomEndTimeError(\n durationDays,\n customEndTime,\n allowZeroDayAuctions\n );\n return _.assign({}, state, {\n durationDays,\n customEndTime,\n selectedDaysText,\n selectedDateText,\n summaryText,\n customEndTimeError,\n isCustomEndTimeVisible: !!customEndTime\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 selectedDaysText = toDaysText(durationDays);\n const selectedDateText = toDateText(durationDays);\n const summaryText = resolveSummaryText(\n durationDays,\n getCustomEndTime(state),\n action.isPureBin,\n action.isChangeItem\n );\n const customEndTimeError = getCustomEndTimeError(\n durationDays,\n getCustomEndTime(state),\n state.allowZeroDayAuctions\n );\n return _.assign({}, state, {\n durationDays,\n selectedDaysText,\n selectedDateText,\n summaryText,\n customEndTimeError\n });\n }\n case 'SET_CUSTOM_END_TIME': {\n const isPureBin = action.isPureBin;\n const summaryText = resolveSummaryText(\n state.durationDays,\n action.payload,\n isPureBin,\n action.isChangeItem\n );\n const customEndTimeError = getCustomEndTimeError(\n state.durationDays,\n action.payload,\n state.allowZeroDayAuctions\n );\n let customEndTimeHour = null;\n let customEndTimeMinute = null;\n if (_.isString(action.payload)) {\n let customEndTime = action.payload.split(':');\n customEndTimeHour = customEndTime[0];\n customEndTimeMinute = customEndTime[1];\n }\n return _.assign({}, state, {\n customEndTimeHour: customEndTimeHour,\n customEndTimeMinute: customEndTimeMinute,\n isCustomEndTimeVisible: !!action.payload,\n summaryText,\n customEndTimeError\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 action.isPureBin,\n state.allowZeroDayAuctions\n );\n newState.customEndTimePrice = initialState.customEndTimePrice;\n return newState;\n }\n case 'RESET_CUSTOM_END_TIME': {\n return _.assign({}, state, {\n customEndTimeHour: initialState.customEndTimeHour,\n customEndTimeMinute: initialState.customEndTimeMinute\n });\n }\n case 'SET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN':\n return _.assign({}, state, {\n customEndTimePrice: 0\n });\n case 'RESET_CUSTOM_END_TIME_FEE_FREE_FOR_CAMPAIGN':\n return _.assign({}, state, {\n customEndTimePrice: initialState.customEndTimePrice\n });\n case 'SET_AUCTION_BIN_PRICE': {\n const customEndTimeError = getCustomEndTimeError(\n state.durationDays,\n getCustomEndTime(state),\n state.allowZeroDayAuctions\n );\n return _.assign({}, state, { customEndTimeError });\n }\n case 'SET_IS_PURE_BIN_SELECTED': {\n const durationDays = state.durationDays;\n const customEndTime = getCustomEndTime(state);\n const summaryText = resolveSummaryText(\n durationDays,\n customEndTime,\n action.isPureBinSelected,\n action.isChangeItem\n );\n return _.assign({}, state, { summaryText });\n }\n case 'DISABLE_ZERO_DAY_AUCTIONS': {\n const durationDays =\n state.durationDays >= 3 ? state.durationDays : 3;\n return _.assign({}, state, {\n allowZeroDayAuctions: false,\n daysOptions: makeDaysOptions(3, 14),\n durationDays,\n selectedDateText: toDateText(durationDays),\n selectedDaysText: toDaysText(durationDays)\n });\n }\n case 'ENABLE_ZERO_DAY_AUCTIONS': {\n const daysOptions = makeDaysOptions(0, 14);\n return _.assign({}, state, {\n daysOptions,\n allowZeroDayAuctions: true\n });\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","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 { 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","import logger from 'packages/logger';\n\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 * @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 logger(\n 'Missing some of the required arguments: adFormats, device',\n true\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","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5 8a2 2 0 012 2v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1c0-1.1.9-2 2-2h2zm0 1H3c-.5 0-.9.4-1 .9V11c0 .5.4.9.9 1H5c.5 0 .9-.4 1-.9V10c0-.5-.4-.9-.9-1H5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-23\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13 8a2 2 0 012 2v1a2 2 0 01-2 2h-2a2 2 0 01-2-2v-1c0-1.1.9-2 2-2h2zm0 1h-2c-.5 0-.9.4-1 .9V11c0 .5.4.9.9 1H13c.5 0 .9-.4 1-.9V10c0-.5-.4-.9-.9-1H13z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\",\n d: \"M6 9h4v1H6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-2\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5.7 3.9c.3 0 .5.3.4.6s-.3.4-.6.4c-.5-.1-.7-.1-.8.1L3 8.7c-.2.3-.5.4-.7.3s-.4-.4-.3-.7l1.7-3.8c.4-.6 1.1-.8 2-.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-2-Copy\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M10.3 3.9c-.3 0-.5.3-.4.6 0 .3.3.5.6.4.5-.1.8 0 .8.1L13 8.7c.2.3.5.4.7.3.3-.1.4-.4.3-.7l-1.7-3.8c-.4-.6-1.1-.8-2-.6z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 3.5c4 0 5 3.2 5 6 0 1.6-.8 3.1-2 4H5c-1.2-.9-2-2.4-2-4 0-2.8 1-6 5-6zm0 1c-2.8 0-4 1.9-4 5 0 1.1.5 2.2 1.2 2.9l.1.1h5.3l.1-.1c.7-.7 1.2-1.6 1.2-2.7v-.2c.1-3.1-1.1-5-3.9-5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M5 5.5h6l.8 1H4.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-3\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.1 5.6H16v.5c-.2 3.4-1.5 5.3-3.7 5.4h-.2v-1c1.6 0 2.5-1.1 2.9-3.6v-.3h-.2l-.1.1C14 8.3 13.1 9.1 12.2 9H12l.2-1c.5.1 1.1-.5 1.7-1.9l.1-.2.1-.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M3.8 11.5h-.2c-.8 0-2.8-.2-3.3-1.7C-.4 8.2.4 6.5 2 6.5 3.5 6.5 4 8 4 9v.1c0 1 .3 2.4-.2 2.4zM3 10.4l.1-.6v-.7c0-.9-.4-1.6-1-1.6-.7 0-1.2.9-.8 1.9.1.4.5.6 1.2.8.1.1.3.2.5.2z\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-17\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"8\",\n cy: \"3.5\",\n r: \"1\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 .1c.6 0 1.2.3 1.6.8L11 3.1H5L6.4.9C6.8.4 7.4.1 8 .1zm0 1c-.3 0-.5.1-.7.3l-.4.7h2.3l-.5-.7c-.1-.2-.3-.3-.6-.3H8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-37\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M3.4 11.2c.3.1.4.4.3.6l-1.4 3.8c-.1.3-.4.4-.6.3-.3-.1-.4-.4-.3-.6l1.4-3.8c0-.2.3-.4.6-.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-53\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12.6 11.2c-.3.1-.4.4-.3.6l1.4 3.8c.1.3.4.4.6.3.3-.1.4-.4.3-.6l-1.4-3.8c0-.2-.3-.4-.6-.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14 2.1c.6 0 1 .4 1 1v8c0 .6-.4 1-1 1H2c-.6 0-1-.4-1-1v-8c0-.6.4-1 1-1h12zm0 1H2v8h12v-8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n d: \"M9 6.8l-2 2-1-1-1.8 1.8h7.6L9 6.8z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\",\n stroke: \"#282828\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n className: styles[\"st2\"] || \"st2\",\n cx: \"12\",\n cy: \"5.1\",\n r: \"1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st2\"] || \"st2\",\n d: \"M1.5 13.1h13c.3 0 .5.2.5.5s-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5.9 3c.6 0 1 .4 1 1v.1l-.8 7.1c-.1.4-.5.8-1 .8H2.9c-.5 0-.9-.4-1-.9l-.8-7c0-.5.4-1 .9-1.1h3.9zM2.1 4l.8 7h2.2l.8-7H2.1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6 11v2c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-2h4zm-1 1H3v1h2v-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11.8 6c.6 0 1.2.4 1.4.9l.2.6c.1.3.1.6 0 .8 1 .5 1.6 1.5 1.6 2.7 0 1.7-1.3 3-3 3h-1c-1.7 0-3-1.3-3-3 0-1.2.7-2.2 1.6-2.7 0-.1-.1-.2-.1-.4 0-.1 0-.3.1-.4l.2-.6c.3-.5.8-.9 1.4-.9h.6zm0 1h-.5c-.2 0-.3.1-.4.2v.1l-.2.6.4.9-.8.4c-.9.4-1.3 1-1.3 1.8 0 1.1.8 1.9 1.9 2H12a2 2 0 002-2c0-.7-.4-1.3-.9-1.7l-.1-.1-.8-.4.4-.9-.2-.6c-.3-.2-.4-.3-.6-.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n d: \"M11 4h1c.6 0 1 .4 1 1s-.4 1-1 1h-1c-.6 0-1-.4-1-1s.4-1 1-1z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13 1v14H4c-.6 0-1-.4-1-1V2c0-.6.4-1 1-1h9zm-1 13V2H4v12h8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13 12v3H4.5c-.8 0-1.5-.7-1.5-1.5S3.7 12 4.5 12H13zm-1 2v-1H4.5c-.2 0-.4.2-.5.4v.1c0 .2.2.4.4.5H12z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M5.5 4h5c.3 0 .5.2.5.5s-.2.5-.5.5h-5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-55\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M5.5 6h3c.3 0 .5.2.5.5s-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-4\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12.5 9.9c.5-.2 1-.1 1.4.1.4.2.6.7.7 1.1V11.4c0 .5-.3 1-.7 1.3l-.1.1-5.7 2.7c-.5.3-1.1.3-1.7.2l-.2-.1-1.8-.7c-.2-.1-.5-.1-.8-.1h-.2l-1.3.4c-.3.1-.5-.1-.6-.3-.1-.2 0-.5.3-.6h.1l1.3-.4c.4-.1.9-.1 1.3 0l.2.1 1.8.7c.3.1.7.1 1 0l.1-.1 5.7-2.7c.2-.1.3-.2.3-.4v-.2c0-.2-.1-.3-.2-.4-.1-.1-.3-.1-.4-.1h-.1l-3.3 1.3c-.3.1-.5 0-.7-.3s0-.5.3-.7h.1l3.2-1.2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"ic_heart_fill\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9 2.1c-.6-.4-1.1-.5-1.7-.4-1.1.2-1.8 1.1-1.8 2.3 0 1.4 1.1 2.8 3.1 4.1.2.1.5.1.7 0 2.1-1.3 3.1-2.7 3.1-4.1 0-1.2-.7-2.1-1.8-2.3-.5-.1-1.1 0-1.6.4zm1.5.6c.6.1 1 .6 1 1.3v.1c-.1.9-.8 2-2.4 3l-.1.1.2.1C7.4 6.2 6.5 5 6.5 4c0-.7.4-1.2 1-1.3.4-.1.9.1 1.1.4l.4.5.4-.5c.2-.4.7-.5 1.1-.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-5\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6.4 9.5c.2 0 .5 0 .7.1l.2.1 1.6.6c.4.2.8.5.9 1v.2c.1.5-.1 1-.5 1.3-.3.2-.8.3-1.2.2H8l-2.2-.6h-.1c-.3-.1-.5-.3-.4-.6.1-.3.3-.5.6-.4h.2l2.2.6c.2 0 .3 0 .5-.1.1-.1.1-.1.1-.2v-.2c0-.1-.1-.3-.2-.3h-.1L7 10.6c-.1 0-.3-.1-.4-.1H5.4l-3.8 1c-.3.1-.5-.1-.6-.4 0-.1.1-.4.3-.5h.1l3.8-1c.1 0 .3-.1.4-.1h.8z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n d: \"M6 0c0 1.1.9 2 2 2s2-.9 2-2h.3c1.1 0 2.1.4 2.8 1.2l2.4 2.4c.4.4.4 1 0 1.4l-.7.7c-.4.4-1 .4-1.4 0L12 4.2v10.3c0 .8-.6 1.4-1.4 1.5h-.1c-.8 0-1.5-.7-1.5-1.5V11c0-.6-.4-1-1-1-.5 0-.9.4-1 .9v3.6c0 .8-.6 1.4-1.4 1.5h-.1c-.8 0-1.5-.7-1.5-1.5V4.2L2.6 5.7c-.4.3-.9.3-1.3 0h-.1l-.7-.8c-.4-.4-.4-1 0-1.4l2.4-2.4C3.6.4 4.6 0 5.7 0H6zM1.9 4.9l1.4-1.4c.6-.6 1.6-.2 1.7.6v10.4c0 .2.2.4.4.5h.1c.2 0 .4-.2.5-.4V10.7C6.1 9.8 7 9 8 9c1.1 0 1.9.8 2 1.9v3.6c0 .3.2.5.5.5.2 0 .4-.2.5-.4V4.2c0-.9 1-1.3 1.6-.8l.1.1 1.4 1.4.7-.7-2.4-2.4c-.4-.4-1-.7-1.5-.8h-.1v.1c-.4 1-1.4 1.8-2.6 1.8L8 3c-1.2 0-2.3-.8-2.8-1.8V1h-.1c-.5.1-1 .3-1.4.7l-.2.2-2.3 2.3.7.7z\",\n fill: \"#282828\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M4.8 13h2v1h-2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-56\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M10 13h2v1h-2z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 1.6h.8c1 0 2.1.4 2.8 1.1l1.7 1.7c.4.4.4.9.1 1.3l-.1.1L14 7.1c-.2.2-.5.3-.8.3l-.8-.1v7.3H3.6V7.3l-.8.1c-.3 0-.6-.1-.8-.3L.7 5.8C.4 5.5.3 4.9.6 4.5l.1-.1 1.7-1.7c.8-.7 1.8-1.1 2.8-1.1H6c0 1.1.9 2 2 2s2-.9 2-2zm1 1h-.2c-.4 1.2-1.5 2-2.8 2-1.2 0-2.3-.7-2.8-1.8v-.2H5c-.6 0-1.2.3-1.7.7l-.2.2-1.7 1.6 1.3 1.2 1.9-.2v7.4h6.8V6.1l1.9.2L14.6 5l-1.7-1.7c-.5-.3-1.2-.6-1.9-.7z\",\n fill: \"#282828\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 15 13\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 0C8.3 0 9 .7 9 1.5S8.3 3 7.5 3c-.2 0-.3 0-.5-.1V4h.5c2.8 0 4.1 3.7 5.1 3.7 2.5 0 3.1 4.3 1.6 4.3H13c-.2.6-.8 1-1.4 1s-1.2-.4-1.4-1H4.9c-.2.6-.8 1-1.4 1s-1.2-.4-1.4-1H.8c-1.5 0-.6-4.3 1.6-4.3.8 0 1.8-2.5 3.7-3.4V2.9c-.3.1-.4.1-.6.1C4.7 3 4 2.3 4 1.5S4.7 0 5.5 0c.4 0 .7.1 1 .4.3-.3.6-.4 1-.4zm-4 11c-.3 0-.5.2-.5.5 0 .2.2.4.4.5h.1c.3 0 .5-.2.5-.5 0-.2-.2-.4-.5-.5zm8 0c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5zm1.8-2H1.8c-.3.2-.5.6-.6 1.1-.2.3-.2.6-.2.8v.1h1.1c.2-.6.8-1 1.4-1s1.2.4 1.4 1h5.2c.2-.6.8-1 1.4-1s1.2.4 1.4 1H14v-.1V10c-.2-.4-.4-.8-.7-1zM5 6.5l-.9 1.1-.2.2-.2.2H6V5.5c-.3.3-.7.6-1 1zM7.5 5H7v3h4.2l-.2-.2-.2-.3c-.3-.3-.7-.8-.8-1C9.1 5.5 8.3 5 7.5 5zm-2-4c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5zm2 0c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\",\n fill: \"#282828\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13 2c.6 0 1 .4 1 1v7c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h10zm0 1H3v7h10V3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13.4 10c.4 0 .7.2.9.6l1 2c.2.5 0 1.1-.4 1.3-.2.1-.4.1-.5.1H1.6c-.6 0-1-.4-1-1 0-.2 0-.3.1-.4l1-2c.2-.4.5-.6.9-.6h10.8zm0 1H2.6l-1 2h12.8l-1-2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M10 12c.5 0 .9.4 1 .9v.1H5c0-.6.4-1 1-1h4z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9 1.5l4 1v3l-4 1H5.9l-1.1 4H6c.6 0 1 .4 1 1v2c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h.7l1.1-4h-.3C1.1 6.5 0 5.4 0 4s1.1-2.5 2.5-2.5H9zm-.1 1H2.5C1.7 2.5 1 3.2 1 4s.6 1.4 1.4 1.5H4.1l-1.6 6H1.1v2h5v-2H3.6l1.6-6H9l3-.8V3.3l-3.1-.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M15.5 3.5c.3 0 .5.2.5.5s-.2.5-.5.5H12v-1h3.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 5.5v2c0 .6-.4 1-1 1H5v-3h3zm-1 1H6v1h1v-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M3 2v4H2V2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-68\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6 3.5v1H4v-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-66\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11 2.5v3h-1v-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-67\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9 2v4H8V2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-65\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5 10.5v1H2v-1z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12 0a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V2c0-1.1.9-2 2-2h8zm0 1H4c-.5 0-.9.4-1 .9V14c0 .5.4.9.9 1H12c.5 0 .9-.4 1-.9V2c0-.5-.4-.9-.9-1H12z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 6.5c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zm0 1c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 8.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-23\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 6c.6 0 1 .4 1 1v8c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V7c0-.6.4-1 1-1h14zm0 1H1v8h14V7zM8 8c1.7 0 3 1.3 3 3s-1.3 3-3 3-3-1.3-3-3 1.3-3 3-3zm5.5 5c.3 0 .5.2.5.5s-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1zm-10 0c.3 0 .5.2.5.5s-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1zM8 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM3.5 8c.3 0 .5.2.5.5s-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1zm10 0c.3 0 .5.2.5.5s-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1zM5 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1zm5-2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.5.5c.6 0 1 .4 1 1v13c0 .6-.4 1-1 1h-12a2 2 0 01-2-2v-11c0-1.1.9-2 2-2h12zm0 1h-12c-.5 0-.9.4-1 .9v11.1c0 .5.4.9.9 1h12.1v-13z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2.5 1.5h1v13h-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9 3.5c2.5 0 4.5 2 4.5 4.5s-2 4.5-4.5 4.5-4.5-2-4.5-4.5 2-4.5 4.5-4.5zm0 1C7.1 4.5 5.5 6.1 5.5 8s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5S10.9 4.5 9 4.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M5 11.5c.3 0 .5.2.5.5v.5H6c.3 0 .5.2.5.5s-.2.5-.5.5H4.5V12c0-.3.2-.5.5-.5zm8 0c.3 0 .5.2.5.5v1.5H12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h.5V12c0-.3.2-.5.5-.5zm-7-9c.3 0 .5.2.5.5s-.2.5-.5.5h-.5V4c0 .3-.2.5-.5.5s-.5-.2-.5-.5V2.5H6zm6 1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1.5V4c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-.5H12z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9 6.5c.8 0 1.5.7 1.5 1.5S9.8 9.5 9 9.5 7.5 8.8 7.5 8 8.2 6.5 9 6.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M10.5 1.5c.6 0 1 .4 1 1v2h2c1.3 0 2.4 1 2.5 2.3v.7c0 .6-.4 1-1 1H8c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h2.5zm0 1H8v5h7v-.6c0-.7-.6-1.3-1.4-1.4h-3.1v-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-30\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8.5 7.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5S7 9.8 7 9s.7-1.5 1.5-1.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-31\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11.5 7.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5S10 9.8 10 9s.7-1.5 1.5-1.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-33\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M1.5 7.5C2.3 7.5 3 8.2 3 9s-.7 1.5-1.5 1.5S0 9.8 0 9s.7-1.5 1.5-1.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-32\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.5 7.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5S13 9.8 13 9s.7-1.5 1.5-1.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-34\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M4.5 7.5C5.3 7.5 6 8.2 6 9s-.7 1.5-1.5 1.5S3 9.8 3 9s.7-1.5 1.5-1.5zm0 1c-.3 0-.5.2-.5.5s.2.5.5.5.5-.2.5-.5-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-83\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5 1.5c.6 0 1 .4 1 1v5c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h4zm0 1H1v5h4v-5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M6 6.5h1v1H6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M0 5.5h6v1H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-76\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M9.5 4.5H11v1H9.5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_3_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M13 2.5h1v3h-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-85\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M.5 11.5h15c.3 0 .5.2.5.5s-.2.5-.5.5H.5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_4_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2 12.5h1v2H2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-87\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M6 12.5h1v2H6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-89\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M10 12.5h1v2h-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-91\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M14 12.5h1v2h-1z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n d: \"M14.5 6c-.3 0-.5.1-.7.3-.2.2-.3.4-.3.7v3h-11V7c0-.3-.1-.5-.3-.7-.2-.2-.4-.3-.7-.3s-.5.1-.7.3c-.2.2-.3.4-.3.7v3.5c0 .4.2.8.4 1.1.3.2.7.4 1.1.4h12c.4 0 .8-.2 1.1-.4.3-.3.4-.6.4-1.1V7c0-.3-.1-.5-.3-.7a.9.9 0 00-.7-.3z\",\n fill: \"none\",\n stroke: \"#282828\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M12 1.5a2 2 0 012 2v7H2v-7c0-1.1.9-2 2-2h8zm0 1H4c-.5 0-.9.4-1 .9v6.1h10v-6c0-.5-.4-.9-.9-1H12z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2 11.5v3H1v-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-90\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M15 11.5v3h-1v-3z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 5c3 0 5.5 2.5 5.5 5.5S11 16 8 16s-5.5-2.5-5.5-5.5S5 5 8 5zm0 1c-2.5 0-4.5 2-4.5 4.5S5.5 15 8 15s4.5-2 4.5-4.5S10.5 6 8 6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9.8 0l1.8 1.9-2.9 3.3H7.3L4.5 1.9 6.2 0h3.6zm-.5 1H6.7l-.9.9 1.9 2.3h.5l1.9-2.3-.8-.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 7c1.9 0 3.5 1.6 3.5 3.5S9.9 14 8 14s-3.5-1.6-3.5-3.5S6.1 7 8 7zm0 1c-1.4 0-2.5 1.1-2.5 2.5S6.6 13 8 13s2.5-1.1 2.5-2.5S9.4 8 8 8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M5.5 2h5v1h-5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M7 4h2v2H7z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"ic_mobile\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M4.5 14h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2c.3 0 .5.2.5.5s-.2.5-.5.5zM7 7v8c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h5c.6 0 1 .4 1 1v1zm-1 .4V6H1v9h5V7.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M15 1c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H8v-1h7V2H3v2H2V2c0-.6.4-1 1-1h12zm-1.5 9c.3 0 .5.2.5.5s-.2.5-.5.5H8v-1h5.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 13 13\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 0a2 2 0 012 2v9c0 1.1-1.1 2-2.5 2S8 12.1 8 11s1.1-2 2.5-2c.6 0 1.1.1 1.5.4V4H5v7c0 1.1-1.1 2-2.5 2S0 12.1 0 11s1.1-2 2.5-2c.6 0 1.1.1 1.5.4V2c0-1.1.9-2 2-2h5zM2.5 10c-.9 0-1.5.5-1.5 1s.6 1 1.5 1S4 11.5 4 11s-.6-1-1.5-1zm8 0c-.9 0-1.5.5-1.5 1s.6 1 1.5 1 1.5-.5 1.5-1-.6-1-1.5-1zm.5-9H6c-.5 0-.9.4-1 .9V3h7V2c0-.5-.4-.9-.9-1H11z\",\n fill: \"#282828\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6.5 2.5C7.3 2.5 8 3.2 8 4v.5c0 .6.4 1 1 1h5c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1H2c-.6 0-1-.4-1-1v-9c0-.6.4-1 1-1h4.5zm0 1H2v9h12v-6H9c-1.1 0-1.9-.8-2-1.9V4c0-.3-.2-.5-.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M5.5 4.5c.3 0 .5.2.5.5s-.2.5-.5.5h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13.5 3.5c.8 0 1.4.6 1.5 1.4v1.6h-1V5c0-.2-.2-.4-.4-.5H7v-1h6.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n d: \"M10 2.5l2 2h2c.6 0 1 .4 1 1v7c0 .6-.4 1-1 1h-3v-1h3v-7h-2.4l-2-2H6.4l-2 2H2v7h3v1H2c-.6 0-1-.4-1-1v-7c0-.6.4-1 1-1h2l2-2h4z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M8 5.5c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zm0 1c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2.5 2.5h1c.3 0 .5.2.5.5s-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M8 7.5a2 2 0 012 2H9c0-.6-.4-1-1-1v-1z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.3 2.5c.9 0 1.7.8 1.7 1.7v7.6c0 .9-.8 1.7-1.7 1.7H1.7c-.9 0-1.7-.8-1.7-1.7V4.2c0-.9.8-1.7 1.7-1.7h12.6zm0 .9H1.7c-.4 0-.8.3-.8.7V11.8c0 .4.3.8.7.8h12.7c.4 0 .8-.3.8-.7V4.2c.1-.4-.3-.8-.8-.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M8.4 4.2h.8v7.6h-.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.3 5v.8c0 .5-.4.8-.8.8h-.8c-.5 0-.8-.4-.8-.8v-.7c0-.5.4-.8.8-.8h.8c.1 0 .8.1.8.7zm-.8.1h-.8v.8h.8v-.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_3_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2.9 5.9h3.4c.2 0 .4.2.4.4s-.2.4-.4.4H2.9c-.2 0-.4-.2-.4-.4s.2-.4.4-.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-93\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2.9 7.6h1.7c.2 0 .4.2.4.4s-.2.4-.4.4H2.9c-.2 0-.4-.2-.4-.4s.2-.4.4-.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-94\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M2.9 9.3h3.4c.2 0 .4.2.4.4s-.2.4-.4.4H2.9c-.2 0-.4-.2-.4-.4s.2-.4.4-.4z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-7\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M15.4 9.4c-2.6.6-5.3.9-7.9.8l-7-.3c-.3 0-.5.2-.5.5l.2 1.9c0 .2.2.4.4.4l7 .3c2.5.1 5.1-.2 7.5-.9l.5-.2c.2-.1.3-.2.3-.5V9.9c.1-.3-.2-.6-.5-.5zm-.3 1.1v.7l-.2.1-.5.2c-2.2.6-4.4.8-6.6.7l-6.6-.3-.1-1 6.4.3c2.3.1 4.7-.1 7-.5l.6-.2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-8\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M7.2 2.9c.2-.1.4-.1.6 0V3l.6.6c1.3 1.3 2.7 2.5 4.2 3.6l.6.5-.6.8c-1.5-1.1-3-2.3-4.4-3.6l-.5-.7-.3-.3c-.3.4-.4.9-.2 1.3l.1.1-.8.5c-.5-.8-.4-1.9.3-2.5l.1-.1.3-.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-9\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6.7 4.8c.1-.1.3-.1.4 0h.1l3 1.8c.3.2.7.4 1 .5s.5.2.8.3l.3.1 1.2.2c1.2.2 2.2 1.1 2.4 2.3v.2l.1.4-.9.1-.1-.5c-.1-.8-.7-1.5-1.5-1.6h-.1l-1.2-.2c-.5-.1-.9-.2-1.3-.4-.3-.1-.6-.3-.9-.4l-.3-.2-2.8-1.7-1.4.8c-.4.2-.9.4-1.3.4H4c-.6 0-1-.1-1.4-.3l-.3-.1-.9-.5v.2c-.2.6-.3 1.2-.4 1.7v.4l-.1 2.1H0l.1-2.1c0-1.1.3-2.1.6-3.1.1-.2.4-.4.6-.3h.1l1.4.8c.3.2.7.3 1.1.3.3 0 .7-.1.9-.2l.2-.1 1.7-.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-10\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M.6 6.6C2.2 7 3.4 8.3 3.7 10v.2l.1.6-.9.1-.1-.6C2.7 9 1.8 7.9.5 7.6H.3l.3-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-11\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8.6 4.8c.2-.2.5-.2.7 0 .1.2.2.5 0 .6v.1L7.4 7.4c-.2.2-.5.2-.7 0-.1-.2-.2-.4 0-.6l.1-.1 1.8-1.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-11-Copy\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9.8 6c.2-.2.5-.2.7 0s.2.4.1.6l-.1.1L9 8.1c-.2.2-.5.2-.7 0-.1-.2-.1-.4 0-.6l.1-.1L9.8 6z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M9.3 8.8c1 1 1 2.6 0 3.5s-2.6 1-3.5 0-1-2.6 0-3.5c.9-1 2.5-1 3.5 0zm-.7.7c-.6-.6-1.6-.6-2.2 0s-.6 1.5 0 2.1 1.5.6 2.1 0 .6-1.5.1-2.1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n transform: \"rotate(-45 8.87 11.92)\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M8.4 9.4h1v5h-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n transform: \"rotate(-45 10.33 13.4)\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M8.8 12.9h3v1h-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14.9.3c.2.2.2.5 0 .7l-11 11-.7-.7 11-11c.2-.2.5-.2.7 0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_3_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M4.7 11.2c.4.4.4 1 0 1.4l-2.8 2.8c-.4.4-1 .4-1.4 0s-.4-1 0-1.4l2.8-2.8c.3-.3 1-.3 1.4 0z\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-37\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"13.2\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-36\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"11.4\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-29\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"7.9\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-27\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"4.3\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-35\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"9.6\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-28\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"6.1\",\n r: \".5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval_1_\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"14.6\",\n cy: \"2.5\",\n r: \".5\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Combined-Shape\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12.4 1c-.6.1-1 .4-1.3.9V2h-.2v-.1c-.2-.5-.8-.9-1.4-.9h-.1c-.6.1-1 .4-1.3.9V2h-.2v-.1c-.2-.5-.8-.9-1.4-.9h-.1c-.6.1-1 .4-1.3.9V2h-.2v-.1c-.2-.5-.8-.9-1.4-.9h-.1c-.6.1-1.1.5-1.3 1H2c-.6.3-1 .9-1 1.5v.1c.1.6.4 1 .9 1.3H2v.2h-.1c-.5.2-.9.8-.9 1.4v.1c.1.6.4 1 .9 1.3H2v.2h-.1c-.5.2-.9.8-.9 1.4v.1c.1.6.4 1 .9 1.3H2v.2h-.1c-.5.2-.9.8-.9 1.4v.1c.1.6.5 1.1 1 1.3v.1c.3.6.9 1 1.5 1h.1c.6-.1 1-.4 1.3-.9V14h.2v.1c.2.5.8.9 1.4.9h.1c.6-.1 1-.4 1.3-.9V14h.2v.1c.2.5.8.9 1.4.9h.1c.6-.1 1-.4 1.3-.9V14h.2v.1c.2.6.8.9 1.4.9h.1c.6-.1 1-.4 1.3-.9V14h.1c.6-.2.9-.8.9-1.4v-.1c-.1-.6-.4-1-.9-1.3h-.1V11h.1c.6-.2.9-.8.9-1.4v-.1c-.1-.6-.4-1-.9-1.3h-.1v-.3h.1c.6-.2 1-.8 1-1.4v-.1c-.1-.6-.4-1-.9-1.3H14v-.2h.1c.5-.2.9-.8.9-1.4v-.1c-.1-.6-.4-1-.9-1.3H14V2c-.3-.6-.9-1-1.5-1h-.1zm.1 1c.3 0 .5.2.5.5V3h.5c.3 0 .5.2.5.5s-.2.5-.4.5H13v2h.5c.3 0 .5.2.5.5s-.2.5-.4.5H13v2h.5c.3 0 .5.2.5.5s-.2.5-.4.5H13v2h.5c.3 0 .5.2.5.5s-.2.5-.5.5H13v.5c0 .3-.2.5-.5.5s-.5-.2-.5-.4V13h-2v.5c0 .3-.2.5-.5.5s-.5-.2-.5-.4V13H7v.5c0 .3-.2.5-.5.5s-.5-.2-.5-.4V13H4v.5c0 .3-.2.5-.5.5s-.5-.2-.5-.4V13h-.6c-.2 0-.4-.2-.4-.5s.2-.5.4-.5H3v-2h-.5c-.3 0-.5-.2-.5-.5s.2-.5.4-.5H3V7h-.5c-.3 0-.5-.2-.5-.5s.2-.5.4-.5H3V4h-.5c-.3 0-.5-.2-.5-.5s.2-.5.4-.5H3v-.6c0-.2.2-.4.5-.4s.5.2.5.4V3h2v-.5c0-.3.2-.5.5-.5s.5.2.5.4V3h2v-.5c0-.3.2-.5.5-.5s.5.2.5.4V3h2v-.5c0-.3.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12 4v8H4V7.4c0-.3.2-.5.5-.5.2 0 .4.2.5.4V11h6V5H4.5c-.2 0-.4-.2-.5-.4v-.1c0-.2.2-.4.4-.5H12z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-95\",\n d: \"M4.9 2.5l1.8 1 1.8-1H15c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1H8.4l-1.8-1-1.8 1H1c-.6 0-1-.4-1-1v-9c0-.6.4-1 1-1h3.9zm3.8 1l-2 1.1-2-1.1H1v9h3.6l2-1.1 2 1.1H15v-9H8.7z\",\n fill: \"#282828\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M6.5 5.5c.3 0 .5.2.5.5s-.2.5-.5.5S6 6.3 6 6s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-96\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M6.5 7.5c.3 0 .5.2.5.5s-.2.5-.5.5S6 8.3 6 8s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-97\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M6.5 9.5c.3 0 .5.2.5.5s-.2.5-.5.5-.5-.2-.5-.5.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M9.5 5.5h4c.3 0 .5.2.5.5s-.2.5-.5.5h-4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-98\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M9.5 8.5h3c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5s.2.5.5.5z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M7.8 14.5c-3.1 0-5.9-1.6-7.4-4.2-.1-.2-.1-.5.2-.7.2-.1.5-.1.7.2a7.6 7.6 0 006.6 3.7c2.7 0 5.2-1.4 6.6-3.8 0-.2.3-.3.6-.1.3.2.3.4.2.7a8.77 8.77 0 01-7.5 4.2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-13\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M13.8 5.6c-.7 0-1.2-.5-1.2-1.1 0-.3-.2-.5-.5-.5-.8 0-1.4.6-1.5 1.4V6.8c0 1.5.4 2.9 1.2 4.2l.2.2.5.7c.2.2.5.3.7.1.2-.1.3-.4.2-.6v-.1l-.5-.7A7.7 7.7 0 0111.7 7V5.5c0-.1 0-.2.1-.3v-.1c.2.8.9 1.4 1.8 1.4h.7c.2 0 .4-.2.5-.4V2.4h.4c.5-.1.5-.9 0-1h-3.5C9.6 1.4 7.9 3 7.8 5.1v.1H1.5c-.6 0-.7.9-.1 1h1.3c.4 0 .7.3.8.6v.1l.1.5c.1.9 0 1.8-.4 2.6l-.2.3-.6 1.1c-.1.2 0 .5.2.7.2.1.5 0 .6-.1v-.1l.6-1.1c.5-1 .7-2 .6-3.1v-.3l-.1-.5c0-.2-.1-.4-.2-.6h4.1c.2 0 .5-.2.5-.4v-.5c0-1.6 1.2-2.8 2.7-2.9H13.7l.1 3.1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-14\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11.3 13.1c-.2-1.9-2-3.3-3.9-3.1a3.5 3.5 0 00-3 2.9v.2c0 .3.2.5.4.6.2 0 .5-.1.5-.3v-.1c.1-1.1 1-2 2.2-2.2 1.4-.2 2.6.8 2.8 2.2 0 .3.3.5.6.4.3-.1.5-.3.4-.6z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8 3.5c2.5 0 4.5 2 4.5 4.5s-2 4.5-4.5 4.5-4.5-2-4.5-4.5 2-4.5 4.5-4.5zm0 1C6.1 4.5 4.5 6.1 4.5 8s1.6 3.5 3.5 3.5S11.5 10 11.5 8 9.9 4.5 8 4.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M7.5 5h1v4h-1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-100\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M7.5 8h3v1h-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11.8 2.8c0-1.3-1-2.4-2.3-2.5H7.3c-1.3 0-2.4 1-2.5 2.3v3.1l1-.8V2.8c0-.8.6-1.4 1.4-1.5h2.1c.8 0 1.4.6 1.5 1.4v3h1V2.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-99\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M11.7 13.3c0 1.3-1 2.4-2.3 2.5H7.2c-1.3 0-2.4-1-2.5-2.3V10.2l1 1v2.1c0 .8.6 1.4 1.4 1.5h2.1c.8 0 1.4-.6 1.5-1.4v-2.5l1-.7v3.1z\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"ic_vehicles_boats_parts\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-15\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M15.3 8.8c.3-.1.5 0 .7.2.1.2 0 .5-.2.6h-.1l-4.6 2.1H.5c-.3 0-.5-.2-.5-.5 0-.2.2-.4.4-.5h10.4l4.5-1.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-16\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M12 3.1c.2 0 .4.2.5.4v1.8l-4 6.2c-.1.1-.2.2-.3.2H6.8c-.2 0-.4-.2-.5-.4V7.7H4.6c-2 0-3.5 1.4-3.6 3.3v.2c0 .3-.2.5-.5.5s-.5-.3-.5-.5c0-2 1.3-3.7 3.1-4.3h.1l-2-.5c-.5-.1-.5-.9 0-1h3.5c1.3 0 2.4 1 2.5 2.3v3h.5l3.7-5.8V3.7c.1-.4.2-.6.6-.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-17\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M8.9 3c.9-.9 2.2-.9 3.1-.1l.1.1 1.3-.3c.3-.1.6.1.6.4v2.4c0 .3-.2.5-.5.5h-.1l-.8-.2.5 2.2c0 .2-.1.5-.3.6h-.1c-.2 0-.5-.1-.6-.3v-.1l-.6-3c-.1-.3.2-.6.5-.6h.1l1 .2v-1l-.9.3c-.2 0-.3 0-.5-.1l-.1-.1-.1-.1c-.5-.5-1.3-.6-1.8-.1h-.1l-.2.2c-.2.2-.5.2-.7 0-.2-.1-.2-.4-.1-.6l.1-.1.2-.2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M15.9 12.5c-.5 1.3-1.9 2-3.2 1.5-1.2-.5-1.9-1.8-1.5-3l.1-.2.9.3c-.3.8.1 1.6.9 1.9.8.3 1.6-.1 1.9-.9.3-.7-.1-1.5-.8-1.9H14l.3-.9c1.4.5 2 1.9 1.6 3.2z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Oval-Copy-25\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M6.3 11.7a2.5 2.5 0 01-5 .2v-.2h1c0 .8.7 1.5 1.5 1.5s1.4-.6 1.5-1.4v-.1h1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-18\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M10.8 9c1-1.4 2.9-1.7 4.3-.8l.2.1.5.4c.2.2.3.5.1.7-.1.2-.4.3-.6.2h-.1l-.5-.4c-1-.7-2.3-.5-3 .5 0 .1-.1.1-.1.2-.1.2-.4.3-.7.2-.2-.1-.3-.4-.2-.7 0-.2 0-.3.1-.4z\"\n})))));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n version: \"1.1\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0\",\n y: \"0\",\n viewBox: \"0 0 16 16\",\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path-15-Copy_2_\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M4 0c0 1 .8 1.8 1.8 1.9h.1c1.6 0 2.9 1.2 3 2.8V6H8V4.9c0-1-.8-1.9-1.8-2H6c-1.6 0-2.9-1.2-3-2.8V0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle\",\n className: styles[\"st0\"] || \"st0\",\n d: \"M14 7a2 2 0 012 2v5a2 2 0 01-2 2H2a2 2 0 01-2-2V9c0-1.1.9-2 2-2h12zm0 1H2c-.5 0-.9.4-1 .9V14c0 .5.4.9.9 1H14c.5 0 .9-.4 1-.9V9c0-.5-.4-.9-.9-1H14z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle_1_\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M4.5 9c.3 0 .5.2.5.5v4c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Rectangle-Copy-102\",\n className: styles[\"st1\"] || \"st1\",\n d: \"M7 11.5c0 .3-.2.5-.5.5h-4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h4c.3 0 .5.2.5.5z\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"10\",\n cy: \"11\",\n r: \"1\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-26\",\n className: styles[\"st1\"] || \"st1\",\n cx: \"13\",\n cy: \"11\",\n r: \"1\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.8.4c.2-.2.5-.2.7 0s.2.5 0 .7l-.4.3L4.7 4c1-.6 2.1-1 3.3-1 1.2 0 2.3.4 3.3 1l2.6-2.6-.4-.4c-.2-.2-.2-.5 0-.7s.5-.2.7 0l1.4 1.4c.2.2.2.5 0 .7-.2.2-.5.2-.7 0l-.4-.4L12 4.5A6.02 6.02 0 018 15H.5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h4.2A6.07 6.07 0 012 9c0-1.7.7-3.3 1.9-4.4L1.4 2.1l-.3.4c-.2.1-.5.2-.7 0-.2-.2-.2-.5 0-.7L1.8.4zM8 4C5.2 4 3 6.2 3 9a5 5 0 004.9 5H8c2.8 0 5-2.2 5-5s-2.2-5-5-5zm1.5 8.3l-.6.6c-.3.1-.6.1-.9.1-.3 0-.6 0-.8-.1.4-.2.9-.6 1.3-1-.5-.2-1-.5-1.5-.8-.1.2-.3.3-.5.5-.3.2-.6.4-1 .5-.3-.2-.5-.5-.7-.8.5-.1.9-.3 1.2-.5.1-.1.2-.2.3-.2a12 12 0 01-2.2-2.3c.1-.4.2-.8.4-1.1 1.9 2.5 4.1 4 6.6 4.4-.3.3-.6.6-1 .8-.2 0-.4-.1-.6-.1zM8 5c.2 0 .5 0 .7.1.4 1.2.4 2.3 0 3.2.4.2.8.5 1.2.6.3-1.3.4-2.4.1-3.4.5.3.9.6 1.2 1 .1.9-.1 1.8-.3 2.7l1.1.3c0 .3-.1.7-.3 1-2.8-.6-5-2-6.5-4.4.3-.2.5-.4.8-.6h.1c.5.8 1.1 1.6 1.8 2.2.2-.8.2-1.7-.3-2.7H8z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#282828\"\n})));","import React from 'react';\nimport ic_accessories from 'static/images/category-icons/ic_accessories.svg?jsx';\nimport ic_antiques_design from 'static/images/category-icons/ic_antiques_design.svg?jsx';\nimport ic_art from 'static/images/category-icons/ic_art.svg?jsx';\nimport ic_beauty_care from 'static/images/category-icons/ic_beauty_care.svg?jsx';\nimport ic_books_magazines from 'static/images/category-icons/ic_books_magazines.svg?jsx';\nimport ic_charity from 'static/images/category-icons/ic_charity.svg?jsx';\nimport ic_childrens_clothing_shoes from 'static/images/category-icons/ic_childrens_clothing_shoes.svg?jsx';\nimport ic_clothes from 'static/images/category-icons/ic_clothes.svg?jsx';\nimport ic_collectibles from 'static/images/category-icons/ic_collectibles.svg?jsx';\nimport ic_computers_accessories from 'static/images/category-icons/ic_computers_accessories.svg?jsx';\nimport ic_construction_tools from 'static/images/category-icons/ic_construction_tools.svg?jsx';\nimport ic_consumer_electronics from 'static/images/category-icons/ic_consumer_electronics.svg?jsx';\nimport ic_currency from 'static/images/category-icons/ic_currency.svg?jsx';\nimport ic_dvd_videos from 'static/images/category-icons/ic_dvd_videos.svg?jsx';\nimport ic_hobby from 'static/images/category-icons/ic_hobby.svg?jsx';\nimport ic_home_household from 'static/images/category-icons/ic_home_household.svg?jsx';\nimport ic_jewlry_gemstones from 'static/images/category-icons/ic_jewlry_gemstones.svg?jsx';\nimport ic_mobile_phone_telecommunications from 'static/images/category-icons/ic_mobile_phone_telecommunications.svg?jsx';\nimport ic_music from 'static/images/category-icons/ic_music.svg?jsx';\nimport ic_other from 'static/images/category-icons/ic_other.svg?jsx';\nimport ic_photo_cameras_optics from 'static/images/category-icons/ic_photo_cameras_optics.svg?jsx';\nimport ic_postcards_pictures from 'static/images/category-icons/ic_postcards_pictures.svg?jsx';\nimport ic_shoes from 'static/images/category-icons/ic_shoes.svg?jsx';\nimport ic_sports_leisure from 'static/images/category-icons/ic_sports_leisure.svg?jsx';\nimport ic_stamp from 'static/images/category-icons/ic_stamp.svg?jsx';\nimport ic_tickets_travel from 'static/images/category-icons/ic_tickets_travel.svg?jsx';\nimport ic_toys_childrens_items from 'static/images/category-icons/ic_toys_childrens_items.svg?jsx';\nimport ic_watches from 'static/images/category-icons/ic_watches.svg?jsx';\nimport ic_vehicles_boats_parts from 'static/images/category-icons/ic_vehicles_boats_parts.svg?jsx';\nimport ic_video_computer_games from 'static/images/category-icons/ic_video_computer_games.svg?jsx';\nimport ic_handmade_applied_arts from 'static/images/category-icons/ic_handmade_applied_arts.svg?jsx';\nimport PriceIcon from '@tradera/blueprint/theme/icons/price.svg?jsx';\n\nconst categoryIcons = {\n 0: PriceIcon, // Rabattkoder\n 10: ic_vehicles_boats_parts,\n 11: ic_books_magazines,\n 12: ic_computers_accessories,\n 13: ic_dvd_videos,\n 14: ic_photo_cameras_optics,\n 15: ic_stamp,\n 16: ic_clothes,\n 17: ic_consumer_electronics,\n 18: ic_hobby,\n 19: ic_watches,\n 20: ic_antiques_design,\n 21: ic_music,\n 22: ic_currency,\n 23: ic_art,\n 24: ic_jewlry_gemstones,\n 25: ic_sports_leisure,\n 26: ic_mobile_phone_telecommunications,\n 27: ic_postcards_pictures,\n 28: ic_other,\n 29: ic_collectibles,\n 30: ic_video_computer_games,\n 31: ic_home_household,\n 32: ic_construction_tools,\n 33: ic_childrens_clothing_shoes,\n 34: ic_tickets_travel,\n 35: ic_charity,\n 36: ic_handmade_applied_arts,\n 1612: ic_accessories,\n 1623: ic_shoes,\n 340736: ic_beauty_care,\n 343319: ic_toys_childrens_items\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","const STORAGE_KEYS = {\n COOKIE_NOTIFICATION: 'cookieNotification',\n HIDE_WISH_LIST_INFO_CARD: 'hideWishListInfoCard',\n ITEMS_CLICK: 'items-click',\n ITEMS_IN_VIEWPORT: 'items-in-viewport',\n SAVE_SEARCH_HINT: 'save-search-tooltip',\n SEARCH_RECENT: 'search-recent',\n SELLING_DONT_ASK_FOR_SCHENKER_PRINTER: 'dontAskForSchenkerPrinter',\n SELLING_DONT_ASK_FOR_SCHENKER_UPSELL: 'dontAskForSchenkerUpsell',\n WEB_PUSH_ACCEPTED: 'web_push_accepted',\n WEB_PUSH_SHOWN_MODALS: 'webPushModalsShown',\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};\n\nexport { STORAGE_KEYS, STORAGE_VALUES };\n","import React, { Fragment } from 'react';\nimport { useTranslator } from 'tradera-lang';\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","export const infoItemComponents = {\n BIDS: 'BIDS',\n TIME_LEFT: 'TIME_LEFT',\n ITEM_PRICE: 'ITEM_PRICE'\n};\n","import React, { Fragment, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { selectShowCurrencySelection } from 'tradera-state/multi-currency';\nimport { selectShowRegionSelection } from 'tradera-state/shipping-region/selectors';\nimport { useTranslator } from 'tradera-lang';\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';\n\nconst trackAnalytics = visible => {\n const label = visible ? 'Open' : 'Close';\n GtmService.trackAction('Footer', 'Localization menu', label);\n};\n\nconst FooterLocalizationLink = ({\n showCurrencySelection,\n showRegionSelection\n}) => {\n const { t } = useTranslator();\n const [\n isLocalizationSettingsVisible,\n setLocalizationSettingsVisible\n ] = useState(false);\n\n const onClick = e => {\n e.preventDefault();\n const shouldBeVisible = !isLocalizationSettingsVisible;\n trackAnalytics(shouldBeVisible);\n setLocalizationSettingsVisible(shouldBeVisible);\n };\n\n const title = showCurrencySelection\n ? t('footer_localization_languageAndCurrency')\n : t('footer_localization_language');\n\n return (\n \n \n setLocalizationSettingsVisible(false)}\n showCurrencySelection={showCurrencySelection}\n showRegionSelection={showRegionSelection || false}\n />\n \n \n {title}\n \n \n \n );\n};\n\nFooterLocalizationLink.propTypes = {\n showCurrencySelection: PropTypes.bool.isRequired\n};\n\nconst mapStateToProps = state => ({\n showCurrencySelection: selectShowCurrencySelection(state),\n showRegionSelection: selectShowRegionSelection(state)\n});\n\nexport default connect(mapStateToProps)(FooterLocalizationLink);\n","class ConsentService {\n openUi = () =>\n typeof window.__tcfapi === 'function' &&\n window.__tcfapi('displayConsentUi', 2, () => {});\n}\n\nconst oneInstance = oneInstance || new ConsentService();\nexport default oneInstance;\n","import React from 'react';\n\nimport {\n useTranslator,\n useCurrentLanguage,\n useUrlLocalizer\n} from 'tradera-lang';\n\nimport { isSwedishOrUndefined } from 'tradera-utils/languagecode';\nimport ConsentService from 'tradera-utils/consent-service';\nimport initData from 'init-data';\n\nconst FooterLinks = ({ links, callerId }) => {\n const { language } = useCurrentLanguage();\n\n const linksToRender =\n language !== 'sv' ? links.filter(link => !link.onlySwedish) : links;\n\n return (\n <>\n {linksToRender.map(\n ({ text, className, onlySwedish, ...rest }, index) => {\n return (\n \n {text}\n \n );\n }\n )}\n \n );\n};\n\nexport const BuyingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: toLocalizedUrl('/how-to-buy'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så handlar du på Tradera',\n text: t('footer_howToShop'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/kategorier'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kategorier',\n text: t('footer_categories'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/brands'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Populära varumärken',\n text: t('footer_popularBrands'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/inspiration'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Inspiration',\n text: t('footer_inspiration'),\n onlySwedish: true\n }\n ];\n\n return (\n
    \n

    {t('footer_buyHeading')}

    \n
      \n \n
    \n
    \n );\n};\n\nexport const SellingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const links = [\n {\n href: toLocalizedUrl('/how-to-sell'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så säljer du som privatperson',\n text: t('footer_howToSellPrivate'),\n onlySwedish: false\n },\n {\n href: 'https://info.tradera.com/foretag/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Sälj som företag',\n text: t('footer_howToSellCorporate'),\n onlySwedish: true\n },\n {\n href: '/info/gronfrakt/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Grön frakt på Tradera',\n text: t('footer_greenShipping'),\n onlySwedish: true\n },\n {\n href: 'https://www.tradera.com/fraktkalkylatorn/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Fraktkalkylator',\n text: t('footer_shippingCalculator'),\n onlySwedish: true\n },\n {\n href: 'http://info.tradera.com/foretag/butik/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Butik',\n text: t('footer_store'),\n onlySwedish: true\n }\n ];\n\n return (\n
    \n

    {t('footer_sellHeading')}

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

    {t('footer_contactHelpHeading')}

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

    {t('footer_couponCodes')}

    \n
      \n \n
    \n \n )}\n
    \n ) : null;\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { useTranslator } from 'tradera-lang';\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 AppstoreLogo from '@tradera/blueprint/theme/logos/appstore.svg?jsx';\nimport FacebookIcon from '@tradera/blueprint/theme/icons2/network-fb.svg?jsx';\nimport GooglePlayLogo from '@tradera/blueprint/theme/logos/googleplay.svg?jsx';\nimport InstagramIcon from '@tradera/blueprint/theme/icons2/network-ig.svg?jsx';\nimport LinkedInIcon from '@tradera/blueprint/theme/icons2/network-linkedin.svg?jsx';\nimport PinterestIcon from '@tradera/blueprint/theme/icons2/network-pin.svg?jsx';\nimport TwitterIcon from '@tradera/blueprint/theme/icons2/network-twitter.svg?jsx';\nimport BankidIcon from '@tradera/blueprint/theme/icons2/bankid.svg?jsx';\nimport TraderaSymbol from '@tradera/blueprint/theme/logos/tradera_symbol.svg?jsx';\n\nimport {\n BuyingLinks,\n SellingLinks,\n ContactAndHelpLinks,\n CouponCodeLinks\n} from './footer-links';\n\nimport './site-footer.scss';\n\nconst SiteFooter = props => {\n const { pageName, isCouponationNavLinkEnabled, openGdprSettings } = props;\n const { t } = useTranslator();\n return (\n
    \n
    \n
    \n
    \n {/* Köp */}\n \n\n {/* Sälj */}\n \n {/* Kontakt & hjälp */}\n \n {/* Rabattkoder */}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {/* Social media */}\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {/* App download */}\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n {t('footer_userAgreement')}\n \n \n {t('footer_integrityPolicy')}\n \n \n {t('footer_cookies')}\n \n \n {t('footer_aboutTradera')}\n \n \n {t('footer_availableJobs')}\n \n
    \n
    \n {/* Copyright */}\n
    \n

    \n © 1999–{new Date().getFullYear()} Tradera\n Sweden AB\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n );\n};\n\nconst mapStateToProps = state => ({\n pageName: state.page.name,\n isCouponationNavLinkEnabled:\n state.environment.featureSwitches['couponation-nav-link']\n});\n\nconst mapDispatchToProps = dispatch => ({\n openGdprSettings: () => dispatch(uiActions.openGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SiteFooter);\n","import React from 'react';\nimport PropType from 'prop-types';\n\nconst ModalBody = ({ children, className = '', inlineStyle = {} }) => (\n \n {children}\n
    \n);\n\nModalBody.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string\n};\n\nexport default ModalBody;\n","import { useEffect, useRef } from 'react';\n\n// From: https://overreacted.io/making-setinterval-declarative-with-react-hooks/\nexport function useInterval(callback, delay) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (delay > 0) {\n const id = setInterval(() => savedCallback.current(), delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n","import GdprSettings from 'tradera-utils/gdpr-settings';\nimport { STORAGE_KEYS } from 'tradera-constants/storage';\nimport logger from './logger';\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 }\n }\n return null;\n }\n\n getItemsByPrefix(prefix) {\n const items = {};\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 }\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 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 {Storage|null}\n */\nfunction testStorage(storage) {\n const TEST_KEY = 'STORAGE_TEST';\n const TEST_VALUE = '1';\n let testStorage;\n try {\n // This will throw an exception in some browsers when cookies/localStorage are explicitly disabled (i.e. Chrome)\n testStorage = storage;\n testStorage.setItem(TEST_KEY, TEST_VALUE);\n if (testStorage.getItem(TEST_KEY) === TEST_VALUE) {\n testStorage.removeItem(TEST_KEY);\n } else {\n throw new Error();\n }\n } catch (e) {\n testStorage = null;\n }\n return testStorage;\n}\n\n// Standard local store with GDPR cookie filter and in-memory storage fallback\nconst defaultStorage = testStorage(localStorage)\n ? 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 logger('Local storage blocked by GDPR settings', true);\n return false;\n }\n return true;\n});\n\nexport { Storage, MemoryStorage, localStore };\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';\nimport './dialog-modal.scss';\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 'bp' +\n (mobileFullscreen\n ? ' mobile-fullscreen'\n : ' mobile-alert')\n }>\n \n {children}\n \n \n \n );\n }\n}\n\nexport default DialogModal;\n","import { toLocalizedRiotUrl } from './../utils/language';\n\nexport default new (function() {\n this.sendSessionStart = function() {\n $.post(toLocalizedRiotUrl('/selling/api/scribe/session-start'));\n };\n\n this.sendSessionDuration = function(duration, madeByTemplate) {\n $.post(toLocalizedRiotUrl('/selling/api/scribe/session-duration'), {\n durationMilliSeconds: duration,\n madeByTemplate: madeByTemplate\n });\n };\n\n this.sendDuration = function(measuredName, durationMilliSeconds) {\n $.post(toLocalizedRiotUrl('/selling/api/scribe/duration'), {\n measuredName: measuredName,\n durationMilliSeconds: durationMilliSeconds\n });\n };\n\n this.sendIncrement = function(name) {\n $.post(toLocalizedRiotUrl('/selling/api/scribe/increment'), {\n name: name\n });\n };\n\n this.sendValidationErrors = function(errors) {\n $.post(\n toLocalizedRiotUrl('/selling/api/scribe/form-validation-errors'),\n {\n errors: errors\n }\n );\n };\n\n this.sendJsError = function(errorMsg) {\n var payload = {\n eventName: 'js-onerror',\n message: errorMsg || '',\n url: '',\n lineNumber: '',\n column: '',\n errorObj: '',\n trace: ''\n };\n\n var data = JSON.stringify(payload);\n data = data.replace(//gi, '}');\n\n $.post(toLocalizedRiotUrl('/scribe'), {\n entries: '[' + data.toString() + ']'\n });\n };\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","export const isSwedenCountryCodeOrUndefined = countryCodeIso2 =>\n countryCodeIso2 === undefined ||\n countryCodeIso2 === null ||\n countryCodeIso2.toLowerCase() === 'se';\n\nexport const isSwedenCountryNameOrUndefined = countryName =>\n countryName === undefined ||\n countryName === null ||\n countryName.toLowerCase() === 'sweden';\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 * Important: the \"bp\" class needs to exist as a parent before using the Modal component.\n * To use this modal\n * \n * Header Text\n * This is the body\n * This is my footer\n * \n\n */\n\nimport React from 'react';\nimport PropType from 'prop-types';\nimport './modal.scss';\n\nconst ModalContainer = ({ children, className = '', style = {} }) => {\n return (\n {\n e.stopPropagation();\n }}>\n {children}\n
    \n );\n};\n\nModalContainer.propTypes = {\n children: PropType.node.isRequired,\n className: PropType.string,\n style: PropType.object\n};\n\nexport default ModalContainer;\n","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};\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];\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","import { createReducer } from '@reduxjs/toolkit';\nimport {\n getAllProducts,\n getPrimaryOrSecondaryProducts,\n getProduct\n} from './next-shipping-selectors';\nimport { ensureGoodShippingOptions } from './ensure-good-shipping-options';\nimport { validate } from './validate';\nimport { getSelectedShippingOptions } from './get-selected-shipping-options';\n\nconst initialState = validate({\n primaryShippingProviders: [],\n secondaryShippingProviders: [],\n validationError: null,\n secondaryShippingOptionOpen: false,\n selectedShippingOptions: [],\n suggestedInvalidProducts: {},\n hasSuggestedProductDescriptions: false,\n invalidShippingCosts: {},\n takeawayDeliveryAccepted: false,\n showMoreOptions: false,\n showMoreSecondaryOptions: true,\n weight: 0,\n isLoadingProvidersWithProducts: false\n});\n\nconst getProviderByProductType = (providers, productType) =>\n providers.find(\n provider =>\n !!provider.products.find(product => product.type === productType)\n );\n\nexport default createReducer(initialState, {\n SET_SUGGESTED_SHIPPING_PRODUCTS: (state, action) => {\n // TODO Re-implement!\n\n state.hasSuggestedProductDescriptions = false;\n\n const products = getAllProducts(state);\n products.forEach(product => {\n const suggestedProduct = action.shippingProducts.find(\n p => p.type === product.type\n );\n if (suggestedProduct) {\n product.cost = suggestedProduct.cost || product.cost;\n state.hasSuggestedProductDescriptions = true;\n product.calculatorSuggestion = {\n description: suggestedProduct.description,\n cost: suggestedProduct.cost,\n additionalInfo: suggestedProduct.additionalInfo\n };\n } else {\n product.calculatorSuggestion = null;\n }\n product.selected = false;\n });\n return validate(state);\n },\n RESET_SHIPPING_OPTIONS: state => {\n state.primaryShippingOption = null;\n state.secondaryShippingOption = null;\n state.selectedShippingOptions = [];\n return validate(state);\n },\n RESET_SELECTED_SHIPPING_OPTIONS: state => {\n const products = getAllProducts(state);\n products.forEach(product => {\n product.selected = false;\n product.selectedVariant = null;\n product.productId = null;\n product.cost = null;\n });\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SET_SHIPPING_OPTIONS: (state, action) => {\n const shippingOptions = ensureGoodShippingOptions(action.payload);\n\n // Set a product to visible and hides the rest, if the type to be visible is found in the list.\n const updateVisibilities = (products, typeToBeVisible) => {\n if (products.length === 1) return;\n const typeToBeVisibleExists = products.find(\n product => product.type === typeToBeVisible\n );\n if (!typeToBeVisibleExists) return;\n products.forEach(\n product => (product.visible = product.type === typeToBeVisible)\n );\n };\n\n const updateProductIfType = (\n product,\n { type, cost, productId, weight }\n ) => {\n const isType = product.type === type;\n if (isType) {\n product.selected = true;\n product.cost = cost;\n product.productId = productId;\n product.weight = weight;\n } else {\n product.selected = false;\n }\n };\n\n const updateProviderProducts = (products, option) => {\n products.forEach(product => updateProductIfType(product, option));\n updateVisibilities(products, option.type);\n };\n\n if (_.isObject(shippingOptions[0])) {\n const option = shippingOptions[0];\n const providers = state.primaryShippingProviders;\n providers.forEach(provider =>\n updateProviderProducts(provider.products, option)\n );\n const provider = getProviderByProductType(providers, option.type);\n state.showMoreOptions =\n state.showMoreOptions || (provider && !provider.promoted);\n }\n\n if (_.isObject(shippingOptions[1])) {\n const option = shippingOptions[1];\n const providers = state.secondaryShippingProviders;\n providers.forEach(provider =>\n updateProviderProducts(provider.products, option)\n );\n const provider = getProviderByProductType(providers, option.type);\n state.showMoreSecondaryOptions =\n state.showMoreSecondaryOptions ||\n (provider && !provider.promoted);\n state.secondaryShippingOptionOpen = true;\n } else {\n state.secondaryShippingOptionOpen = false;\n }\n\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n\n return validate(state);\n },\n TOGGLE_SHIPPING_OPTION: (state, action) => {\n const providers = action.payload.primary\n ? state.primaryShippingProviders\n : state.secondaryShippingProviders;\n\n // Hide products so only one is visible per provider\n const productProvider = getProviderByProductType(\n providers,\n action.payload.type\n );\n productProvider.products.forEach(product => (product.visible = false));\n\n const products = providers.flatMap(provider => provider.products);\n let product = products.find(p => p.type === action.payload.type);\n let previousValue = product.selected;\n products.forEach(p => (p.selected = false));\n product.selected = !previousValue;\n product.visible = true;\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SET_SHIPPING_OPTION_COST: (state, action) => {\n let product = getProduct(\n state,\n action.payload.primary,\n action.payload.type\n );\n product.cost = action.payload.cost;\n product.isBulkySelected = false;\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SET_SHIPPING_OPTION_VARIANT: (state, action) => {\n let product = getProduct(\n state,\n action.payload.primary,\n action.payload.type\n );\n product.selectedVariant = action.payload.variant;\n product.weight = action.payload.variant\n ? action.payload.variant.weight\n : undefined;\n product.productId = action.payload.variant\n ? action.payload.variant.id\n : undefined;\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SET_TAKEAWAY_SELECTED: (state, action) => {\n state.takeawayDeliveryAccepted = action.payload.takeawaySelected;\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SET_SECONDARY_SHIPPING_OPTION_OPEN: (state, action) => {\n return validate(\n _.assign({}, state, {\n secondaryShippingOptionOpen:\n action.payload.secondaryShippingOptionOpen\n })\n );\n },\n REMOVE_SHIPPING_OPTION: (state, action) => {\n getPrimaryOrSecondaryProducts(state, action.payload.primary).forEach(\n product => (product.selected = false)\n );\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n MAKE_SECONDARY_SHIPPING_OPTION_PRIMARY: state => {\n const tmp = state.primaryShippingProviders;\n state.primaryShippingProviders = state.secondaryShippingProviders;\n state.secondaryShippingProviders = tmp;\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n FORCE_FREE_SHIPPING: state => {\n const products = getAllProducts(state);\n products.forEach(product => {\n product.cost = 0;\n });\n state.selectedShippingOptions = getSelectedShippingOptions(state);\n return validate(state);\n },\n SHOW_MORE_SHIPPING_OPTIONS: (state, action) => {\n if (action.payload.isPrimary) {\n state.showMoreOptions = true;\n } else {\n state.showMoreSecondaryOptions = true;\n }\n return validate(state);\n },\n TOGGLE_MORE_SHIPPING_OPTIONS: (state, action) => {\n const { isPrimary } = action.payload;\n if (isPrimary) {\n state.showMoreOptions = !state.showMoreOptions;\n } else {\n state.showMoreSecondaryOptions = !state.showMoreSecondaryOptions;\n }\n return validate(state);\n },\n TOGGLE_PRODUCT_EXTRA_INFO_VISIBILITY: (state, action) => {\n const product = getProduct(\n state,\n action.payload.primary,\n action.payload.productType\n );\n product.isExtraInfoVisible = !product.isExtraInfoVisible;\n return validate(state);\n },\n SET_SHIPPING_PRODUCT_BULKY_SELECTED: (state, action) => {\n const product = getProduct(\n state,\n action.payload.primary,\n action.payload.productType\n );\n product.isBulkySelected = action.payload.isBulkySelected;\n return validate(state);\n },\n SET_SHIPPING_PROVIDERS_WITH_PRODUCTS: (state, action) => {\n state.primaryShippingProviders = action.payload;\n state.secondaryShippingProviders = action.payload;\n state.isLoadingProvidersWithProducts = false;\n\n return validate(state);\n },\n SET_SHIPPING_PROVIDERS_WITH_PRODUCTS_FETCHING: state => {\n state.isLoadingProvidersWithProducts = true;\n\n return validate(state);\n }\n});\n","import React, { useRef } from 'react';\nimport { connect } from 'react-redux';\n\nimport {\n createGptSizeMapping,\n mapDeviceNameToViewport\n} from 'static/script/app/ui/layout/ads/ad-slot-utilities';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary';\nimport LocalizedDfpAd from 'tradera-components/ads/localized-dfp-ad';\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 lazyLoad,\n position,\n refresh,\n stickyBottom,\n stickyEnabled,\n stickyTop,\n ...otherProps\n } = props;\n const canCreateDfpAd = gpt?.adUnitPath;\n const sizeMapping = createGptSizeMapping(adFormats, deviceName);\n const [minViewportWidth, maxViewportWidth] = mapDeviceNameToViewport(\n deviceName\n );\n if (canCreateDfpAd) {\n return (\n \n \n \n {children} {/* Placeholder for ad */}\n \n \n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => ({\n featureSwitches: state.environment.featureSwitches,\n gpt: state.ads.gpt\n});\n\nexport default connect(mapStateToProps, () => ({}))(Ad);\n","import imageActions from '../image-actions';\n\nconst handleInvalidImages = (errors, dispatch, translator) => {\n const displayTexts = [];\n let invalidImageCount = 0;\n errors.forEach(error => {\n let invalidImageIds = error.message.split(',');\n invalidImageIds.forEach(id => {\n dispatch(imageActions.removeImageWithId(id));\n invalidImageCount++;\n });\n });\n if (invalidImageCount > 0) {\n displayTexts.push(\n translator('syi_publish_error_invalid_image', {\n count: invalidImageCount\n })\n );\n }\n return displayTexts;\n};\n\nconst translateErrorCode = (error, translator) => {\n switch (error.errorCode) {\n case 'AlreadyPublished':\n return translator('syi_publish_error_alreadypublished');\n case 'BuyItNowPriceNotLargerThanOpeningPrice':\n return translator(\n 'syi_publish_error_buyitnowpricenotlargerthanopeningprice'\n );\n case 'BuyItNowPriceNotLargerThanReservePrice':\n return translator(\n 'syi_publish_error_buyitnowpricenotlargerthanreserveprice'\n );\n case 'BuyItNowPriceTooLarge':\n return translator('syi_publish_error_buyitnowpricetoolarge');\n case 'BuyItNowPriceUnset':\n return translator('syi_publish_error_buyitnowpriceunset');\n case 'CampaignCodeInvalid':\n return translator('syi_publish_error_campaigncodeinvalid');\n case 'CategoryContainsTooManyItems':\n return translator('syi_publish_error_categorycontainstoomanyitems');\n case 'CategoryDoesNotSupportBin':\n return translator('syi_publish_error_categorydoesnotsupportbin');\n case 'CategoryDoesNotSupportUsedItems':\n return translator(\n 'syi_publish_error_categorydoesnotsupportuseditems'\n );\n case 'CategoryIdUnknown':\n return translator('syi_publish_error_categoryidunknown');\n case 'CustomEndDateTooLate':\n return translator('syi_publish_error_customenddatetoolate');\n case 'CustomEndDateTooSoon':\n return translator('syi_publish_error_customenddatetoosoon');\n case 'DisplayHighlightedCannotBeRemoved':\n return translator(\n 'syi_publish_error_displayhighlightedcannotberemoved'\n );\n case 'DisplayPromotedCannotBeRemoved':\n return translator(\n 'syi_publish_error_displaypromotedcannotberemoved'\n );\n case 'DurationNotAllowed':\n return translator('syi_publish_error_durationnotallowed');\n case 'ImagesTooFew':\n return translator('syi_publish_error_imagestoofew');\n case 'ImagesTooMany':\n return translator('syi_publish_error_imagestoomany');\n case 'ItemHasBidsAndCannotBeChanged':\n return translator(\n 'syi_publish_error_itemhasbidsandcannotbechanged'\n );\n case 'LongDescriptionCannotBeEmpty':\n return translator('syi_publish_error_longdescriptioncannotbeempty');\n case 'LongDescriptionTooLong':\n return translator('syi_publish_error_longdescriptiontoolong');\n case 'MemberIsActiveInternationalBuyer':\n return translator(\n 'syi_publish_error_memberisactiveinternationalbuyer'\n );\n case 'MemberIsSuspended':\n return translator('syi_publish_error_memberissuspended');\n case 'MemberNotAllowedToListImmeditateEndingItems':\n return translator(\n 'syi_publish_error_membernotallowedtolistimmeditateendingitems'\n );\n case 'OpeningPriceBelowOne':\n return translator('syi_publish_error_openingpricebelowone');\n case 'OpeningPriceTooLarge':\n return translator('syi_publish_error_openingpricetoolarge');\n case 'OwnReferenceTooLong':\n return translator('syi_publish_error_ownreferencetoolong');\n case 'PriceBelowOne':\n return translator('syi_publish_error_pricebelowone');\n case 'PriceBelowZero':\n return translator('syi_publish_error_pricebelowzero');\n case 'ReservePriceNotLargerThanOpeningPrice':\n return translator(\n 'syi_publish_error_reservepricenotlargerthanopeningprice'\n );\n case 'ReservePriceTooLarge':\n return translator('syi_publish_error_reservepricetoolarge');\n case 'ShippingCostBelowZero':\n return translator('syi_publish_error_shippingcostbelowzero');\n case 'ShippingOptionsCannotBeEmpty':\n return translator('syi_publish_error_shippingoptionscannotbeempty');\n case 'ShippingOptionsCountTooLarge':\n return translator('syi_publish_error_shippingoptionscounttoolarge');\n case 'ShippingOptionsMoreThanOneWithTakeawayOnly':\n return translator(\n 'syi_publish_error_shippingoptionsmorethanonewithtakeawayonly'\n );\n case 'ShortDescriptionCannotBeEmpty':\n return translator(\n 'syi_publish_error_shortdescriptioncannotbeempty'\n );\n case 'ShortDescriptionTooLong':\n return translator('syi_publish_error_shortdescriptiontoolong');\n case 'UnknownError':\n return translator('syi_publish_error_unknownerror');\n }\n\n return error.message;\n};\n\nexport const handleServerValidationError = (errors, dispatch, translator) => {\n const invalidImageErrorCodes = ['DeletedImage', 'MissingImage'];\n const imageErrorFilter = error =>\n invalidImageErrorCodes.includes(error.errorCode);\n const nonImageErrorFilter = error =>\n !invalidImageErrorCodes.includes(error.errorCode);\n\n const imageErrors = errors.filter(imageErrorFilter);\n const nonImageErrors = errors.filter(nonImageErrorFilter);\n\n const imageErrorDisplayTexts = handleInvalidImages(\n imageErrors,\n dispatch,\n translator\n );\n const nonImageErrorDisplayTexts = nonImageErrors.map(error =>\n translateErrorCode(error, translator)\n );\n\n const errorDisplayTexts = imageErrorDisplayTexts.concat(\n nonImageErrorDisplayTexts\n );\n const errorDisplayText = errorDisplayTexts.join(' ').trim();\n dispatch({\n type: 'SET_PUBLISH_FAILED',\n reasonDisplayText: errorDisplayText ? errorDisplayText : null\n });\n};\n","import 'underscore';\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/configure-store';\n\nlet availableAllowedBuyerRegions;\nlet initialState;\n\nconst regionOrDefault = region =>\n region ? region : availableAllowedBuyerRegions[0];\n\nconst findIndexOfRegion = (regionValue, state) =>\n state.availableAllowedBuyerRegions.findIndex(r => r.value === regionValue);\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\n initialState = {\n availableAllowedBuyerRegions: availableAllowedBuyerRegions,\n selectedBuyerRegion: availableAllowedBuyerRegions[0].value,\n selectedBuyerRegionText: availableAllowedBuyerRegions[0].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 hasSetAllowedBuyerRegionAtLeastEu: false\n };\n};\n\ninitModuleGlobals();\nconst buyerRegionSlice = createSlice({\n name: 'buyer-region',\n initialState: initialState,\n reducers: {\n setAllowedBuyerRegion: (state, action) => {\n const region = _.where(availableAllowedBuyerRegions, {\n value: action.payload\n })[0];\n const { value, text } = regionOrDefault(region);\n state.selectedBuyerRegion = value;\n state.selectedBuyerRegionText = text;\n return state;\n },\n setAllowedBuyerRegionAtLeastEu: state => {\n if (\n !state.isSetAllowedBuyerRegionToAtLeastEuEnabled ||\n !state.isTraderaPayEnabled ||\n state.hasSetAllowedBuyerRegionAtLeastEu\n ) {\n return state;\n }\n\n const euIndex = findIndexOfRegion('EU', state);\n const currentIndex = findIndexOfRegion(\n state.selectedBuyerRegion,\n state\n );\n if (currentIndex < euIndex) {\n const { value, text } = state.availableAllowedBuyerRegions[\n euIndex\n ];\n state.selectedBuyerRegion = value;\n state.selectedBuyerRegionText = text;\n state.hasSetAllowedBuyerRegionAtLeastEu = true;\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 {\n setAllowedBuyerRegion,\n setAllowedBuyerRegionAtLeastEu\n} = buyerRegionSlice.actions;\n\nexport default buyerRegionSlice.reducer;\n","/* eslint-disable */\nimport {\n CATEGORIZED_COOKIES,\n COOKIE_DEFAULT_CATEGORY\n} from 'tradera-constants/cookies';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport logger from 'packages/logger';\n\nclass CookieUtil {\n /**\n * @returns GdprSettings\n */\n _getGdprSettings() {\n if (typeof this.gdpr === 'undefined') {\n this.gdpr = GdprSettings;\n }\n return this.gdpr;\n }\n\n segment(name, value) {\n return value ? '; ' + name + '=' + value : '';\n }\n\n convertToExpiresStr(expires) {\n let expiresStr = '';\n\n switch (expires.constructor) {\n case Number:\n expiresStr =\n expires === Infinity\n ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT'\n : '; max-age=' + expires * 24 * 60 * 60;\n break;\n case String:\n expiresStr = '; expires=' + expires;\n break;\n case Date:\n expiresStr = '; expires=' + expires.toUTCString();\n break;\n }\n\n return expiresStr;\n }\n\n createCookie(cookieKey, cookieValue, expires, path, domain, secure) {\n let expiresStr = '';\n\n if (\n !cookieKey ||\n /^(?:expires|max\\-age|path|domain|secure)$/i.test(cookieKey)\n ) {\n return false;\n }\n\n // check gdpr for cookie category\n let category = CATEGORIZED_COOKIES[cookieKey];\n if (typeof category === 'undefined') {\n logger(`No category set for cookie ${cookieKey}`);\n category = COOKIE_DEFAULT_CATEGORY;\n }\n if (!this._getGdprSettings().isCategoryEnabled(category)) {\n // console.info(\n // `Cookie category not enabled: ${cookieKey}, category: ${category}`\n // );\n return false;\n }\n\n // if expired set prepare date string\n if (expires) {\n expiresStr = this.convertToExpiresStr(expires);\n }\n\n // console.info(`setting cookie: ${cookieKey} = ${cookieValue}`);\n window.document.cookie =\n encodeURIComponent(cookieKey) +\n '=' +\n encodeURIComponent(cookieValue) +\n expiresStr +\n this.segment('domain', domain) +\n this.segment('path', path || '/') +\n this.segment('secure', secure);\n\n return true;\n }\n\n readCookie(key) {\n return (\n decodeURIComponent(\n window.document.cookie.replace(\n new RegExp(\n '(?:(?:^|.*;)\\\\s*' +\n encodeURIComponent(key).replace(\n /[\\-\\.\\+\\*]/g,\n '\\\\$&'\n ) +\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n ),\n '$1'\n )\n ) || null\n );\n }\n\n hasCookie(key) {\n return new RegExp(\n '(?:^|;\\\\s*)' +\n encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\n '\\\\s*\\\\='\n ).test(window.document.cookie);\n }\n\n eraseCookie(key, path, domain) {\n if (!key || !this.readCookie(key)) {\n return false;\n }\n\n window.document.cookie =\n encodeURIComponent(key) +\n '=; expires=Thu, 01 Jan 1970 00:00:01 GMT' +\n this.segment('domain', domain) +\n this.segment('path', path || '/');\n\n return true;\n }\n}\n\nexport default new CookieUtil();\n","import io from 'socket.io-client';\nimport { logger } from 'packages';\n\nexport const registerLiveUpdates = ({ url, onConnect, onClientEvent }) => {\n let socket;\n try {\n socket = io.connect(url);\n } catch (e) {\n logger(e);\n return;\n }\n\n socket.on('connect', () => {\n try {\n onConnect(socket);\n } catch (e) {\n logger(e);\n }\n });\n\n socket.on('clientEvent', data => {\n try {\n onClientEvent(data);\n } catch (e) {\n logger(e);\n }\n });\n\n return () => socket.disconnect();\n};\n","import actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n switch (action.type) {\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 default:\n return state;\n }\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\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 .then(response => {\n // Transform inconsistent API response\n if (response?.data?.message) {\n response.data.isSuccessful =\n response.data.message === (add ? 'True' : 'true');\n }\n return response;\n })\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","/* eslint-disable promise/catch-or-return */\nimport 'underscore';\nimport shippingCalculatorService from 'tradera-apps/syi/script/app_react/services/shipping-calculator-service';\nimport { getShippingProviders } from 'tradera-apps/syi/script/app_react/services/shipping-provider-service';\nimport {\n getPrimaryOrSecondaryProducts,\n getProduct\n} from '../reducers/next-shipping/next-shipping-selectors';\nimport { setAllowedBuyerRegionAtLeastEu } from '../reducers/buyer-region';\nimport { getSyiSlice } from 'tradera-state/configure-store';\nimport { transformPostNordParcelProductId } from './helpers/postnord-parcel-productid-converter-helper';\n\nconst reset = () => ({\n type: 'RESET_SHIPPING_OPTIONS'\n});\n\nconst resetSelected = () => ({\n type: 'RESET_SELECTED_SHIPPING_OPTIONS'\n});\n\nconst showMoreOptions = isPrimary => ({\n type: 'SHOW_MORE_SHIPPING_OPTIONS',\n payload: {\n isPrimary\n }\n});\n\nconst toggleMoreShippingOptions = isPrimary => ({\n type: 'TOGGLE_MORE_SHIPPING_OPTIONS',\n payload: {\n isPrimary\n }\n});\n\nconst toggleShippingOption = (type, primary) => (dispatch, getState) => {\n const selectedShippingOptions = getSyiSlice(getState()).shipping\n .selectedShippingOptions;\n\n const isAdd = !selectedShippingOptions.find(\n shippingOption => shippingOption.type === type\n );\n const upsellShippingTypes = [\n 'PostNordParcel',\n 'PostNordStamp',\n 'SchenkerPrivpak'\n ];\n const isUpsellShippingType = upsellShippingTypes.includes(type);\n if (isUpsellShippingType && isAdd) {\n dispatch(setAllowedBuyerRegionAtLeastEu());\n }\n\n dispatch({\n type: 'TOGGLE_SHIPPING_OPTION',\n payload: {\n type,\n primary\n }\n });\n};\n\nconst setShippingOptionCost = (\n shippingType,\n shippingCost,\n primaryShippingOption,\n shippingWeight\n) => ({\n type: 'SET_SHIPPING_OPTION_COST',\n payload: {\n type: shippingType,\n cost: shippingCost,\n primary: primaryShippingOption,\n weight: shippingWeight\n }\n});\n\nconst setShippingOptionVariant = (type, cost, primary, variant) => dispatch => {\n dispatch({\n type: 'SET_SHIPPING_OPTION_VARIANT',\n payload: {\n type,\n cost,\n primary,\n variant\n }\n });\n};\n\nconst setTakeawayDeliveryAccepted = () => ({\n type: 'SET_TAKEAWAY_SELECTED',\n payload: {\n takeawaySelected: true\n }\n});\n\nconst removeTakeawayDeliveryAccepted = () => ({\n type: 'SET_TAKEAWAY_SELECTED',\n payload: {\n takeawaySelected: false\n }\n});\n\nconst setSecondaryShippingOptionOpen = open => ({\n type: 'SET_SECONDARY_SHIPPING_OPTION_OPEN',\n payload: { secondaryShippingOptionOpen: open }\n});\n\nconst removeShippingOption = primary => ({\n type: 'REMOVE_SHIPPING_OPTION',\n payload: {\n primary: primary\n }\n});\n\nconst toggleProductExtraInfoVisibility = (productType, primary) => ({\n type: 'TOGGLE_PRODUCT_EXTRA_INFO_VISIBILITY',\n payload: {\n productType,\n primary\n }\n});\n\nconst makeSecondaryShippingOptionPrimary = () => ({\n type: 'MAKE_SECONDARY_SHIPPING_OPTION_PRIMARY'\n});\n\nconst setShippingProductBulkySelected = (\n productType,\n primary,\n isBulkySelected\n) => ({\n type: 'SET_SHIPPING_PRODUCT_BULKY_SELECTED',\n payload: {\n productType,\n primary,\n isBulkySelected\n }\n});\n\nconst setSuggestedShippingProducts = shippingProducts => dispatch => {\n dispatch(reset());\n\n dispatch({\n type: 'SET_SUGGESTED_SHIPPING_PRODUCTS',\n shippingProducts\n });\n};\n\nconst calculateShipping = (length, width, height, weight) => dispatch => {\n shippingCalculatorService\n .calculateShipping(length, width, height, weight)\n .then(\n function(weight, data) {\n var shippingProducts = [];\n for (var i = 0; i < data.shippingOptions.length; i++) {\n let providerName = data.shippingOptions[i].providerName;\n let additionalInfo = null;\n\n if (providerName === 'Bussgods' && weight > 35000) {\n additionalInfo =\n 'OBS! Varje kolli får väga max 35 kg. Du kan skicka flera kollin i samma sändning.';\n }\n\n shippingProducts.push({\n type: providerName,\n cost: data.shippingOptions[i].price,\n description: data.shippingOptions[i].description,\n additionalInfo: additionalInfo\n });\n }\n dispatch(setSuggestedShippingProducts(shippingProducts));\n }.bind(this, weight)\n );\n};\n\nconst setShippingOptionsFromDraft = shippingOptions => async (\n dispatch,\n getState\n) => {\n if (\n _.any(\n shippingOptions,\n shippingOption =>\n shippingOption.type === 'Takeaway' ||\n shippingOption.type === 'TakeawayOnly'\n )\n ) {\n dispatch({\n type: 'SET_TAKEAWAY_SELECTED',\n payload: {\n takeawaySelected: true\n }\n });\n } else {\n dispatch({\n type: 'SET_TAKEAWAY_SELECTED',\n payload: {\n takeawaySelected: false\n }\n });\n }\n\n shippingOptions = _.reject(\n shippingOptions,\n shippingOption =>\n shippingOption.type === 'Takeaway' ||\n shippingOption.type === 'TakeawayOnly'\n );\n\n await dispatch(getShippingProvidersWithProducts());\n\n const removeCostIfCostMatchesSelectedProduct = (shippingOption, i) => {\n if (i > 1 || !shippingOption.productId || !shippingOption.cost) {\n return;\n }\n const isPrimary = i === 0;\n const product = getProduct(\n getSyiSlice(getState()).shipping,\n isPrimary,\n shippingOption.type\n );\n const variant = product.variants.find(\n v => v.id === shippingOption.productId\n );\n if (variant.price === shippingOption.cost) {\n shippingOption.cost = null;\n }\n };\n\n shippingOptions.forEach(transformPostNordParcelProductId);\n shippingOptions.forEach(removeCostIfCostMatchesSelectedProduct);\n\n dispatch({\n type: 'SET_SHIPPING_OPTIONS',\n payload: shippingOptions\n });\n\n const setShippingOptionVariantAfterDraft = isPrimary => {\n getPrimaryOrSecondaryProducts(\n getSyiSlice(getState()).shipping,\n isPrimary\n )\n .filter(({ productId }) => !!productId)\n .map(({ price, variants, productId }) => ({\n price,\n productVariant: variants.find(v => v.id === productId)\n }))\n .map(({ price, productVariant }) =>\n setShippingOptionVariant(\n productVariant.type,\n price,\n isPrimary,\n productVariant\n )\n )\n .forEach(dispatch);\n };\n\n setShippingOptionVariantAfterDraft(true);\n setShippingOptionVariantAfterDraft(false);\n};\n\nconst getShippingProvidersWithProducts = () => async (dispatch, getState) => {\n const { shipping } = getSyiSlice(getState());\n\n if (\n (shipping.primaryShippingProviders &&\n shipping.primaryShippingProviders.length > 0) ||\n shipping.isLoadingProvidersWithProducts === true\n ) {\n return;\n }\n\n dispatch({\n type: 'SET_SHIPPING_PROVIDERS_WITH_PRODUCTS_FETCHING'\n });\n\n const shippingProviders = await getShippingProviders();\n dispatch({\n type: 'SET_SHIPPING_PROVIDERS_WITH_PRODUCTS',\n payload: shippingProviders\n });\n};\n\nexport default {\n calculateShipping,\n getShippingProvidersWithProducts,\n toggleShippingOption,\n setShippingOptionCost,\n setShippingOptionVariant,\n setTakeawayDeliveryAccepted,\n removeTakeawayDeliveryAccepted,\n setShippingOptionsFromDraft,\n setSecondaryShippingOptionOpen,\n removeShippingOption,\n makeSecondaryShippingOptionPrimary,\n reset,\n resetSelected,\n showMoreOptions,\n toggleProductExtraInfoVisibility,\n setShippingProductBulkySelected,\n toggleMoreShippingOptions\n};\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { updateEnvironmentHash } from 'tradera-state/environment/actions';\n\nconst ALink = ({\n useLink,\n href,\n children,\n onClick: givenOnClick,\n ...otherProps\n}) => {\n const dispatch = useDispatch();\n const isSpaNavigationEnabled = useSelector(\n state => state.environment.isSpaNavigationEnabled\n );\n if (isSpaNavigationEnabled && useLink) {\n // Strip away origin for local links\n let to = href;\n if (href?.startsWith(location.origin)) {\n const { pathname, search } = new URL(href);\n to = pathname + search;\n }\n return (\n {\n dispatch(updateEnvironmentHash());\n if (givenOnClick) givenOnClick(evt);\n }}>\n {children}\n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n};\n\nexport default ALink;\n","import { setEnvironmentHash, setIsSpaNavigationEnabled } from './reducer';\nimport axios from 'axios';\n\nexport const updateEnvironmentHash = () => async (dispatch, getState) => {\n const response = await axios.get('/ping');\n const environmentHash = response.headers['x-tradera-environment'];\n const current = getState().environment.environmentHash;\n if (environmentHash !== current) {\n dispatch(setEnvironmentHash(environmentHash));\n dispatch(setIsSpaNavigationEnabled(false));\n }\n};\n","import 'underscore';\nimport config from 'tradera-apps/syi/script/app_react/services/config';\n\nvar 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 state = _.assign({}, state, {\n commissionProcent: action.commissionProcent\n });\n break;\n }\n\n case 'SET_DISCOUNT_FACTOR': {\n state = _.assign({}, state, {\n discountFactor: action.discountFactor\n });\n break;\n }\n\n case 'RESET_DISCOUNT_FACTOR': {\n state = _.assign({}, state, {\n discountFactor: initialState.discountFactor\n });\n break;\n }\n\n case 'SET_CAMPAIGN_COMMISSION_PROCENT': {\n state = _.assign({}, state, {\n campaignCommissionProcent: action.campaignCommissionProcent\n });\n break;\n }\n\n case 'RESET_CAMPAIGN_COMMISSION_PROCENT': {\n state = _.assign({}, state, {\n campaignCommissionProcent:\n initialState.campaignCommissionProcent\n });\n break;\n }\n\n case 'SET_MAX_COMMISSION_COST': {\n state = _.assign({}, state, {\n maxCommissionCost: action.payload.maxCommissionCost,\n isCategoryWithNoCommissionCap:\n action.payload.isCategoryWithNoCommissionCap\n });\n break;\n }\n\n case 'SET_MIN_COMMISSION_COST': {\n state = _.assign({}, state, {\n minCommissionCost: action.payload.text\n });\n break;\n }\n\n case 'SET_IS_VARIABLE_COMMISSION': {\n state = _.assign({}, state, {\n isVariableCommission: action.payload\n });\n break;\n }\n\n case 'SET_UNSOLD_FEE_FREE_FOR_CAMPAIGN': {\n state = _.assign({}, state, { isUnsoldFeeFree: true });\n break;\n }\n\n case 'UNSET_UNSOLD_FEE_FREE_FOR_CAMPAIGN': {\n state = _.assign({}, state, { isUnsoldFeeFree: false });\n break;\n }\n\n case 'SET_CHOSEN_EXTRA_FEATURES': {\n var hasChosenExtraFeatures =\n action.payload && action.payload.length;\n state = _.assign({}, state, {\n chosenExtraFeatures: action.payload,\n hasChosenExtraFeatures\n });\n\n break;\n }\n }\n\n return state;\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 initData from 'init-data';\nimport ArrowRightIcon from '@tradera/blueprint/theme/icons/arrow-right.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons/close-narrow.svg?jsx';\nimport LoadIcon from '@tradera/blueprint/theme/icons/load.svg?jsx';\nimport { logger } from 'packages';\nimport { withUrlLocalizer } from 'tradera-lang';\nimport './messaging-iframe.scss';\n\nconst MESSAGING_STATES = {\n LOADING: 'LOADING',\n READY: 'READY'\n};\nconst POST_MESSAGE_TYPE_PREFIX = 'tradera.messaging.';\n// For testing\nconst MESSAGING_REMOTE_URL =\n location.hostname === 'beta-a.tradera.com'\n ? 'https://tradera-staging-messaging.firebaseapp.com'\n : initData.messagingIframeUrl;\n\nclass MessagingModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n messaging: MESSAGING_STATES.LOADING,\n participating: props.participating || null\n };\n }\n\n handleMessage = event => {\n const {\n data: { type },\n origin\n } = event;\n if (origin !== MESSAGING_REMOTE_URL) {\n return;\n }\n switch (type) {\n // Messages loaded & ready\n case POST_MESSAGE_TYPE_PREFIX + 'ready':\n this.setState({ messaging: MESSAGING_STATES.READY });\n break;\n // Unread threads update\n case POST_MESSAGE_TYPE_PREFIX + 'close':\n this.handleClose();\n break;\n }\n };\n\n handleClose = () => {\n this.props.closeModal();\n };\n\n setIframeRef = element => {\n if (element) {\n this.iframeElement = element;\n }\n // Focus on iframe content window to allow focus to move into iframe\n setTimeout(() => {\n if (this.iframeElement && this.iframeElement.contentWindow) {\n this.iframeElement.contentWindow.focus();\n }\n }, 0);\n };\n\n componentDidMount() {\n if (this.state.participating === null) {\n checkUserMessagingParticipation(this.props.recipientId)\n .then(participating => this.setState({ participating }))\n .catch(logger);\n }\n window.addEventListener('message', this.handleMessage);\n this.setIframeRef();\n }\n\n componentWillUnmount() {\n window.removeEventListener('message', this.handleMessage);\n }\n\n render() {\n const { title, src, item, toLocalizedUrl } = this.props;\n const { participating } = this.state;\n return (\n this.handleClose()}>\n this.handleClose()}>\n {title && (\n this.handleClose()}>\n {title}\n \n )}\n \n {participating === true && (\n \n )}\n {participating === false && (\n this.handleClose()}\n toLocalizedUrl={toLocalizedUrl}\n />\n )}\n {participating === null && }\n \n \n \n );\n }\n}\n\nMessagingModal.propTypes = {\n title: PropTypes.string,\n src: PropTypes.string.isRequired\n};\n\nconst Loader = () => {\n return (\n
    \n \n
    \n );\n};\n\nconst NotParticipatingMessage = props => {\n const { item, onClose, toLocalizedUrl } = props;\n if (item) {\n return (\n
    \n
    \n

    {item.seller.alias}

    \n

    \n Butik\n

    \n
    \n

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

    \n

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

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

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

    \n
    \n \n \n \n Stäng\n \n
    \n \n );\n }\n};\n\nexport default withUrlLocalizer(MessagingModal);\n","import arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\nimport draftActions from './draft-actions';\nimport { getSyiSlice } from 'tradera-state/configure-store';\n\nconst setDraftImages = images => dispatch => {\n dispatch({\n type: 'SET_DRAFT_IMAGES',\n payload: images\n });\n\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst setUploadedImageInNextFreeSlot = (imageId, imageUrl) => (\n dispatch,\n getState\n) => {\n var slots = getSyiSlice(getState()).images.slots;\n var freeSlotIndex = -1;\n for (var i = 0; i < slots.length; i++) {\n if (!slots[i].imageId) {\n freeSlotIndex = i;\n break;\n }\n }\n if (freeSlotIndex > -1) {\n dispatch({\n type: 'SET_UPLOADED_IMAGE_IN_SLOT',\n slotIndex: freeSlotIndex,\n imageUrl: imageUrl,\n imageId: imageId\n });\n }\n\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst removeImageInSlot = slotIndex => (dispatch, getState) => {\n let slots = arrayUtils.shallowCopyArrayObjects(\n getSyiSlice(getState()).images.slots\n );\n // move images to the left\n for (var i = slotIndex; i < slots.length - 1; i++) {\n slots[i].imageUrl = slots[i + 1].imageUrl;\n slots[i].imageId = slots[i + 1].imageId;\n slots[i].rotationDegrees = slots[i + 1].rotationDegrees;\n slots[i].isListingImage = slots[i + 1].isListingImage;\n if (slots[i + 1].isListingImage) {\n slots[i].filename = slots[i + 1].filename;\n slots[i].imageGroupId = slots[i + 1].imageGroupId;\n }\n }\n\n // reset last slot\n slots[4].isUploading = false;\n slots[4].imageUrl = null;\n slots[4].imageId = null;\n slots[4].isListingImage = false;\n slots[4].filename = null;\n slots[4].imageGroupId = null;\n\n dispatch({\n type: 'SET_IMAGE_SLOTS',\n slots: slots\n });\n\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst changeImagePosition = (from, to) => (dispatch, getState) => {\n var slots = getSyiSlice(getState()).images.slots;\n var slot = slots[from];\n slots.splice(from, 1);\n var len = slots.length;\n var newSlots = [];\n for (var i = 0; i < len; i++) {\n if (i == to) {\n newSlots.push(slot);\n }\n newSlots.push(slots[i]);\n }\n if (to == slots.length) {\n newSlots.push(slot);\n }\n dispatch({\n type: 'SET_IMAGE_SLOTS',\n slots: newSlots\n });\n};\n\nconst removeImageWithId = imageId => (dispatch, getState) => {\n let slots = getSyiSlice(getState()).images.slots;\n let slotIndex = -1;\n for (var i = slots.length; i-- > 0; ) {\n if (slots[i].imageId === imageId) {\n slotIndex = i;\n break;\n }\n }\n if (slotIndex > -1) {\n dispatch(removeImageInSlot(slotIndex));\n }\n\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nconst rotateImage = slotIndex => (dispatch, getState) => {\n var slots = getSyiSlice(getState()).images.slots;\n var rotationDegrees = slots[slotIndex].rotationDegrees || 0;\n rotationDegrees += 90;\n if (rotationDegrees === 360) {\n rotationDegrees = 0;\n }\n dispatch({\n type: 'SET_IMAGE_ROTATION',\n slotIndex: slotIndex,\n rotationDegrees: rotationDegrees\n });\n};\n\nconst setUploadFailed = errorMessage => dispatch => {\n dispatch({\n type: 'SET_IMAGE_UPLOAD_FAILED',\n payload: errorMessage\n });\n};\n\nconst setUploading = numberOfSlots => dispatch => {\n dispatch({\n type: 'SET_IMAGES_UPLOADING',\n numberOfSlots: numberOfSlots\n });\n};\n\nconst reset = () => dispatch => {\n dispatch(setDraftImages([]));\n dispatch(draftActions.updateDraftCanBeResumed());\n};\n\nexport default {\n setDraftImages,\n setUploadedImageInNextFreeSlot,\n removeImageInSlot,\n removeImageWithId,\n changeImagePosition,\n rotateImage,\n setUploadFailed,\n setUploading,\n reset\n};\n","import React from 'react';\n\nconst Flag = ({ countryCodeIso2, ...otherProps }) => {\n return countryCodeIso2 ? (\n \n ) : null;\n};\n\nexport default Flag;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useImageLoader } from '../hooks';\n\nconst BackgroundImageLoader = props => {\n const {\n tagName: TagName,\n className,\n style,\n src,\n placeholderSrc,\n placeholderClassName,\n fallbackSrc,\n fallbackClassName,\n loadedClassName,\n children,\n ...otherProps\n } = props;\n const [isLoaded, error] = useImageLoader(src);\n let currentSrc = placeholderSrc;\n let currentClassName = className + ' ' + placeholderClassName;\n if (isLoaded) {\n currentSrc = src;\n currentClassName = className + ' ' + loadedClassName;\n } else if (error) {\n currentSrc = fallbackSrc;\n currentClassName = className + ' ' + fallbackClassName;\n }\n return (\n \n {children}\n \n );\n};\n\nBackgroundImageLoader.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n src: PropTypes.string,\n placeholderSrc: PropTypes.string,\n placeholderClassName: PropTypes.string,\n fallbackSrc: PropTypes.string,\n fallbackClassName: PropTypes.string,\n loadedClassName: PropTypes.string\n};\nBackgroundImageLoader.defaultProps = {\n tagName: 'div'\n};\n\nexport default BackgroundImageLoader;\n","import React from 'react';\nimport LazyLoad from 'react-lazyload';\n\nimport { ITEM_CARD_IMAGE_MODES } from './item-card-image-modes';\nimport BackgroundImageLoader from './background-image-loader';\nimport ALink from 'tradera-components/alink/alink';\n\nconst ItemCardImage = ({\n className,\n lazy,\n itemUrl,\n imageHeight,\n imageMode,\n imageUrl,\n imageWidth,\n shortDescription,\n onClick,\n children,\n inSPA\n}) => {\n const linkProps = {\n href: itemUrl,\n className: `item-card-image ${\n lazy ? '' : 'item-card-image-loaded'\n } ${className || ''}`,\n title: shortDescription,\n onClick,\n 'data-item-card-image': '',\n role: 'button',\n useLink: inSPA\n };\n const imageStyle = {};\n if (imageMode === ITEM_CARD_IMAGE_MODES.NATURAL) {\n let aspectRatio = imageHeight / imageWidth;\n aspectRatio = Math.min(aspectRatio, 3.0);\n aspectRatio = Math.max(aspectRatio, 0.33);\n imageStyle.paddingTop = aspectRatio * 100 + '%';\n }\n if (lazy) {\n return (\n \n \n {children}\n \n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n};\n\nexport default ItemCardImage;\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 SWISH_APP_2_APP: 'SwishApp2App',\n SWISH_HANDEL: 'SwishHandel',\n VISA_MASTERCARD: 'VisaMasterCard'\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 paymentMethodData: null\n },\n selectedShipping: '',\n sellerMember: null,\n shippingOptions: null,\n modal: {\n open: '',\n status: MODAL_STATUS.START\n },\n showDisableOverlay: false,\n ongoingPaymentAttempt: null\n };\n};\n","/* eslint-disable complexity */\n\nimport { selectFiltersState } from 'tradera-apps/my-tradera/app/state/reducers/filters';\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 const checkModifiersExist =\n !!state && filtersState && filtersState.modifiers;\n return {\n 'filters[buyerFilters][feedbackLeft]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.feedbackLeft\n : '',\n 'filters[buyerFilters][hidden]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.hidden\n : '',\n 'filters[buyerFilters][paid]':\n checkModifiersExist && filtersState.modifiers.buyerFilters\n ? filtersState.modifiers.buyerFilters.paid\n : '',\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[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[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][feedbackLeft]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.feedbackLeft\n : '',\n 'filters[sellerFilters][hidden]':\n checkModifiersExist && filtersState.modifiers.sellerFilters\n ? filtersState.modifiers.sellerFilters.hidden\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][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","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { useTranslator } from 'tradera-lang';\nimport DfpAd from '@tradera/blueprint/components/lib/ads';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport '@tradera/blueprint/components/lib/ads.css';\nimport WaitForConsentApiLoaded from 'tradera-components/wait-for-consent-api-loaded/wait-for-consent-api-loaded';\nimport { globalStore } from 'tradera-state/configure-store';\n\nconst LocalizedDfpAd = props => {\n const { t } = useTranslator();\n const text = {\n label: t('dfpAd_label')\n };\n const store = globalStore();\n const featureSwitches = store.getState().environment.featureSwitches;\n return (\n \n \n (\n \n )}\n />\n \n \n );\n};\n\nexport default LocalizedDfpAd;\n","export const transformPostNordParcelProductId = shippingOption => {\n //This code should be safe to remove 2021-06 since all drafts + templates containing old ids should have been removed by then\n if (shippingOption.type !== 'PostNordParcel') {\n return;\n }\n\n if (shippingOption.productId === undefined) {\n return;\n }\n\n const validProductIds = [10, 20, 30, 40, 50, 60, 70, 80, 90];\n const productIdsToTransform = [2000, 3000, 3500, 4000, 5000, 5500, 6000];\n\n if (validProductIds.indexOf(shippingOption.productId) !== -1) {\n return;\n }\n\n if (productIdsToTransform.indexOf(shippingOption.productId) === -1) {\n shippingOption.productId = undefined;\n return;\n }\n\n const compositeKey = `${shippingOption.productId},${shippingOption.weight *\n 1000}`;\n\n const map = {\n '2000,250': 10,\n '2000,500': 20,\n '2000,1000': 30,\n '3000,2000': 40,\n '3500,3000': 50,\n '4000,5000': 60,\n '5000,10000': 70,\n '5500,15000': 80,\n '6000,20000': 90\n };\n\n shippingOption.productId = map[compositeKey];\n};\n","export const warnIfDevBuild = moduleName => {\n if (process && process.env && process.env.NODE_ENV !== 'production') {\n /* eslint-disable no-console */\n console.log(\n `%c Warning: This is a Dev build of ${moduleName}`,\n 'background:red; color:white; font-size:18px;'\n );\n /* eslint-enable no-console */\n }\n};\n\n/**\n * helper function that is called after the header has been loaded. useful when you want to have the redux loaded before you start\n * to dispatch actions.\n * @param {func} callback\n */\nexport const onModuleLoaded = callback => {\n const isModuleLoaded = () =>\n window.document.body.getAttribute('data-module-loaded') === 'true';\n\n try {\n if (isModuleLoaded()) {\n callback();\n }\n let observer = new MutationObserver(mutationsList => {\n const element = mutationsList.filter(\n item => item.attributeName === 'data-module-loaded'\n );\n if (element !== null && isModuleLoaded()) {\n callback();\n }\n });\n observer.observe(window.document.body, { attributes: true });\n // eslint-disable-next-line no-empty\n } catch (error) {}\n};\n","export const selectRouterState = state => state.router;\n","import $ from 'jQuery';\nimport { push, replace } from 'connected-react-router';\nimport qs from 'qs';\n\nimport myTradera from './my-tradera';\nimport { endItems } from '../../helpers/item-actions-helper';\nimport { Analytics, logger } from 'packages';\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 { selectMyTraderaState } from 'tradera-apps/my-tradera/app/state/reducers/my-tradera';\nimport { selectCookiesState } from 'tradera-apps/my-tradera/app/state/reducers/cookies';\nimport { selectFiltersState } from 'tradera-apps/my-tradera/app/state/reducers/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';\n\n/**\n * @param {function} dispatch dispatch redux action\n * @param {err} error error relayed from asynch call\n */\nconst handleError = (dispatch, error) => {\n dispatch(myTradera.searching(false));\n dispatch(myTradera.error(true));\n logger(error);\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 SHIPMENT_DELETED: 'SHIPMENT_DELETED',\n FEEDBACK_LEFT_BY_SELLER: 'FEEDBACK_LEFT_BY_SELLER',\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 transactionsUnmarkAsShippingBooked = (\n purchaseOrderIds,\n listViewType\n) => ({\n type: actionTypes.PURCHASE_ORDERS_UNMARKED_AS_SHIPPING_BOOKED,\n payload: {\n ids: purchaseOrderIds,\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 resetMyTraderaItems = () => ({\n type: actionTypes.RESET_ITEMS\n});\n\nconst updateUrlWithoutSearch = () => (dispatch, getState) => {\n let state = getState();\n const pageUrl =\n selectMyTraderaState(state).page &&\n selectMyTraderaState(state).page[\n selectRouterState(state).location.pathname\n ] &&\n selectMyTraderaState(state).page[\n selectRouterState(state).location.pathname\n ].url;\n dispatch(updateURL(pageUrl));\n};\n\nconst cancelItem = item => dispatch => {\n dispatch(myTradera.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(myTradera.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 scrollToInitialScroll = false,\n waitForBackend = false,\n dontModifyHistory = true\n) => (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 dispatch(myTradera.searching(true));\n dispatch(resetMyTraderaItems());\n dispatch(resetSelectedCheckboxes());\n const state = getState();\n\n const search = () => {\n fetch(endPoint, {\n body: JSON.stringify(\n changeParamsForBackend(selectFiltersState(state).modifiers)\n )\n })\n .then(data => {\n dispatch(\n updateItems(\n data,\n page.pageName,\n selectCookiesState(state).LIST_VIEW_TYPE,\n selectMyTraderaState(state).memberMessagingParticipation\n )\n );\n dispatch(myTradera.searching(false));\n dispatch(myTradera.error(false));\n\n if (scrollToInitialScroll === true) {\n myTradera.scrollToInitialScroll();\n }\n return;\n })\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(myTradera.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\nconst refund = item => () => {\n const payload = {\n action: 'Refund',\n ids: [item.transaction.purchaseOrderId],\n itemId: item.itemId\n };\n $(document).trigger('ui:list-item-action:on-refund', payload);\n};\n\nconst discount = item => () => {\n const payload = {\n action: 'Discount',\n ids: [item.transaction.purchaseOrderId],\n itemId: item.itemId\n };\n $(document).trigger('ui:list-item-action:on-discount', payload);\n};\n\n// From the more-menu\nconst buyerActiveItemsHideItems = itemIds => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_ACTIVE_ITEMS_HIDE, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(removeItems(itemIds));\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\n// From the more-menu\nconst buyerActiveItemsShowItems = itemIds => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_ACTIVE_ITEMS_SHOW, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(removeItems(itemIds));\n dispatch(myTradera.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(myTradera.searching(true));\n fetch(URLS.SELLER_MARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersMarkAsPaidBySeller(\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n )\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst markPurchaseOrdersAsPaidByBuyer = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_MARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersMarkAsPaidByBuyer(purchaseOrderIds, listViewType)\n );\n dispatch(myTradera.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(myTradera.searching(true));\n fetch(URLS.SELLER_UNMARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersUnmarkAsPaidBySeller(\n purchaseOrderIds,\n listViewType,\n messagingParticipation\n )\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst unmarkPurchaseOrdersAsPaidByBuyer = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_UNMARK_PAID, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersUnmarkAsPaidByBuyer(\n purchaseOrderIds,\n listViewType\n )\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingUnmarkAsShippingBooked = (\n purchaseOrderIds,\n listViewType\n) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.UNMARK_BOOKED, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n transactionsUnmarkAsShippingBooked(\n purchaseOrderIds,\n listViewType\n )\n );\n dispatch(myTradera.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(myTradera.searching(true));\n fetch(URLS.DELETE_SHIPMENT, {\n body: JSON.stringify({ shipmentId: shipmentId })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(transactionDeleteShipment(purchaseOrderId, listViewType));\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingMarkAsShipped = (transactionIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.MARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n transactionsMarkAsShippedBySeller(transactionIds, listViewType)\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellingUnmarkAsShipped = (transactionIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n\n fetch(URLS.UNMARK_SHIPPED, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n transactionsUnmarkAsShippedBySeller(\n transactionIds,\n listViewType\n )\n );\n dispatch(myTradera.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(myTradera.searching(true));\n fetch(URLS.SELLER_SHOW, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersShownBySeller(purchaseOrderIds, listViewType)\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst buyerUnhideTransaction = (transactionIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_SHOW, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(transactionsShownByBuyer(transactionIds, listViewType));\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerHideTransaction = (purchaseOrderIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.SELLER_HIDE, {\n body: JSON.stringify({ ids: purchaseOrderIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(\n purchaseOrdersHiddenBySeller(purchaseOrderIds, listViewType)\n );\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst buyerHideTransaction = (transactionIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.BUYER_HIDE, {\n body: JSON.stringify({ ids: transactionIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(transactionsHiddenByBuyer(transactionIds, listViewType));\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerUnhideUnsold = (itemIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.UNSOLDSHOW, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(unsoldItemsShown(itemIds, listViewType));\n dispatch(myTradera.searching(false));\n return;\n })\n .catch(error => handleError(dispatch, error));\n};\n\nconst sellerHideUnsold = (itemIds, listViewType) => dispatch => {\n dispatch(myTradera.searching(true));\n fetch(URLS.UNSOLDHIDE, {\n body: JSON.stringify({ ids: itemIds })\n })\n .then(() => {\n dispatch(myTradera.error(false));\n dispatch(unsoldItemsHidden(itemIds, listViewType));\n dispatch(myTradera.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 updateShippingPrice = (\n purchaseOrderId,\n shippingProvider,\n newPrice\n) => dispatch => {\n dispatch(myTradera.updatingNewShippingPrice(true));\n fetch(URLS.UPDATE_SHIPPING_PRICE, {\n body: JSON.stringify({ purchaseOrderId, shippingProvider, newPrice })\n })\n .then(() => {\n dispatch(\n setNewShippingPrice(purchaseOrderId, shippingProvider, newPrice)\n );\n dispatch(myTradera.updatingNewShippingPrice(false));\n return;\n })\n .catch(error => {\n dispatch(myTradera.updatingNewShippingPrice(false));\n dispatch(myTradera.error(true));\n logger(error);\n });\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 actionTypes,\n cancelItem,\n buyerActiveItemsHide,\n buyerActiveItemsShow,\n buyerActiveItemsHideItems, // More menu\n buyerActiveItemsShowItems, // More menu\n updateItems,\n resetSelectedCheckboxes,\n openMore,\n updateURL,\n updateUrlWithoutSearch,\n runSearch,\n selectItem,\n removeItems,\n selectAllItems,\n contactHighestBidder,\n markPurchaseOrdersAsPaidBySeller,\n unmarkPurchaseOrdersAsPaidBySeller,\n refund,\n discount,\n rebuildList,\n sellerUnhideTransaction,\n sellerHideTransaction,\n sellerUnhideUnsold,\n sellerHideUnsold,\n sellingMarkAsShipped,\n sellingUnmarkAsShipped,\n sellingUnmarkAsShippingBooked,\n sellingDeleteShipment,\n sellingLeaveFeedback,\n feedbackLeftBySeller,\n markPurchaseOrdersAsPaidByBuyer,\n unmarkPurchaseOrdersAsPaidByBuyer,\n buyerUnhideTransaction,\n buyerHideTransaction,\n buyingLeaveFeedback,\n setRestarted,\n updateShippingPrice,\n setNewShippingPrice\n};\n","import myTraderaItemActions from '../state/actions/my-tradera-items';\nimport _ from 'underscore';\nimport featureToggles from '../utils/feature-toggles';\nimport { getMessagingThreadLink } from './messaging-helpers';\nimport myTraderaActions from '../state/actions/my-tradera';\nimport { types } from './item-actions-helper';\n\nconst getId = item => item.key;\nconst getIds = item => [item.itemId];\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\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.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: () => !!item.transaction.purchaseOrderId,\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 myTraderaActions.openMessagingModal({\n title,\n src,\n recipientId,\n item\n })\n );\n },\n gaLabel: 'ContactBuyer',\n isVisible: () => {\n return (\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.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 const isTakeaway =\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway;\n return (\n !item.transaction.hasUnpaidShipping &&\n !isTakeaway &&\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: () => item.transaction.hasUnpaidShipping,\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 memberMessagingParticipation\n )\n );\n },\n gaLabel: 'UnmarkAsShippingBooked',\n isVisible: () =>\n !item.transaction.trackingLink &&\n item.transaction.sellerState.shippingBooked,\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: () => !!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.paidShipmentCheckoutId &&\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.type === 'SchenkerPrivpak',\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.shipmentId &&\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.type === 'SchenkerPrivpak',\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label:\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway\n ? 'Avmarkera som hämtad'\n : 'Avmarkera som skickad',\n getTranslatedLabel: t =>\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway\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: () => item.transaction.sellerState.shipped,\n isPrimaryAction: () => false\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label:\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway\n ? 'Markera som hämtad'\n : 'Markera som skickad',\n getTranslatedLabel: t =>\n item.transaction.selectedShipping &&\n item.transaction.selectedShipping.isTakeaway\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: () => !item.transaction.sellerState.shipped,\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 myTraderaItemActions.sellingLeaveFeedback(\n item,\n listViewType\n )\n );\n },\n gaLabel: 'LeaveFeedbackOnBuyer',\n isVisible: () => !item.transaction.sellerState.feedbackLeft,\n isPrimaryAction: () => true\n }),\n () => ({\n id: getId(item),\n type: types.DISPATCH,\n label: 'Återbetala',\n getTranslatedLabel: t => t('myt_itemCard_actions_refund'),\n dispatch: dispatch => dispatch(myTraderaItemActions.refund(item)),\n gaLabel: 'Refund',\n isVisible: () => item.transaction.isDiscountAfterPaymentSupported,\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: () => true,\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 ),\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 !!item.transaction.sellerState.paid;\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: `/resolution/UPI/${item.transaction.transactionId}`,\n gaLabel: 'ReportUnpaidItem',\n isVisible: () =>\n item.transaction.sellerState.state === 'NotPaid' &&\n !item.transaction.sellerState.upiSubmitted,\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 => dispatch(myTraderaItemActions.discount(item)),\n gaLabel: 'Discount',\n isVisible: () => item.transaction.isDiscountBeforePaymentSupported,\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 myTraderaItemActions.sellerUnhideTransaction(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n );\n },\n gaLabel: 'UnhideSold',\n isVisible: () =>\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 myTraderaItemActions.sellerHideTransaction(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n );\n },\n gaLabel: 'HideSold',\n isVisible: () =>\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 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 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 myTraderaActions.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 && !_.contains(item.hiddenByMember, 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 && _.contains(item.hiddenByMember, memberId),\n isPrimaryAction: () => true\n })\n ];\n return actions;\n};\n","import myTraderaItemActions from '../state/actions/my-tradera-items';\nimport myTraderaActions from '../state/actions/my-tradera';\nimport featureToggles from '../utils/feature-toggles';\nimport { getMessagingThreadLink } from './messaging-helpers';\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 actionStyles = {\n // If no actionStyle is set for action, default is blue\n GREEN: 'primary-action'\n};\n\nconst fixItemUrlIfNeeded = (item = {}) => {\n // Fix this at backend?\n return item.itemUrl && item.itemUrl[0] !== '/'\n ? `/${item.itemUrl}`\n : item.itemUrl;\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.alias}`,\n gaLabel: 'SellerOtherItems',\n isVisible: () => true,\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 cssClass: actionStyles.GREEN,\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: types.LINK,\n label: 'Betala',\n getTranslatedLabel: t =>\n item.transaction.isPaymentExpired\n ? t('myt_itemCard_actions_orderInformation')\n : t('myt_itemCard_actions_pay'),\n url: `/Shopping/Checkout/SelectPayment?purchaseOrderId=${item.transaction.purchaseOrderId}`,\n gaLabel: 'Pay',\n cssClass: actionStyles.GREEN,\n isVisible: () => !item.transaction.buyerState.paid,\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 dispatch(\n myTraderaItemActions.markPurchaseOrdersAsPaidByBuyer(\n [item.transaction.purchaseOrderId],\n listViewType\n )\n ),\n gaLabel: 'MarkAsPaid',\n isVisible: () =>\n !item.transaction.isPaidWithIntegratedPaymentOption &&\n !item.transaction.buyerState.paid &&\n !item.transaction.isPaymentExpired,\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 isPrimaryAction: () => true\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 myTraderaItemActions.buyingLeaveFeedback(item, listViewType)\n );\n },\n gaLabel: 'LeaveFeedbackOnSeller',\n isVisible: () => !item.transaction.buyerState.feedbackLeft,\n isPrimaryAction: () => true\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: () => !featureToggles.isBuyerOrderInformationEnabled,\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: () => featureToggles.isBuyerOrderInformationEnabled,\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 myTraderaActions.openMessagingModal({\n title,\n src,\n recipientId,\n item\n })\n );\n },\n gaLabel: 'ContactSeller',\n isVisible: () =>\n featureToggles.isMessagingEnabled &&\n featureToggles.isMessagingSellerButtonsEnabled,\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 !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 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: `/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: () => true\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: () => true\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 myTraderaItemActions.buyerUnhideTransaction(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'UnhideSold',\n isVisible: () => 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 myTraderaItemActions.buyerHideTransaction(\n [item.transaction.transactionId],\n listViewType\n )\n );\n },\n gaLabel: 'HideSold',\n isVisible: () => !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 { LIST_VIEW_TYPES } from '../../constants/list-types';\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 const primaryActionIsVisible =\n listViewType !== LIST_VIEW_TYPES.COMPACT;\n if (\n primaryActionIsVisible &&\n primaryAction === null &&\n action.isPrimaryAction()\n ) {\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(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n )\n );\n break;\n case PAGE_NAMES.BuyerPurchases:\n actionsForItem = resolveActions(\n boughtActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n )\n );\n break;\n case PAGE_NAMES.BuyerItemsLost:\n actionsForItem = resolveActions(\n lostActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n )\n );\n break;\n case PAGE_NAMES.SellerSold:\n actionsForItem = resolveActions(\n soldActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n )\n );\n break;\n case PAGE_NAMES.SellerUnsold:\n actionsForItem = resolveActions(\n unsoldActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\n )\n );\n break;\n case PAGE_NAMES.SellerActive:\n actionsForItem = resolveActions(\n activeSellerActions(\n item,\n listViewType,\n memberId,\n memberMessagingParticipation,\n pageName\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';\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';\nimport { PAGE_NAMES } from '../../constants/page';\n\nimport { formatPrice } from '../../helpers/formats';\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: formatPrice(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 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 default {\n getSoldItem,\n getUnsoldItem,\n getItemsInOrder,\n getPurchasedItem\n};\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","import myTraderaItemsSelector from './items';\nimport _ from 'underscore';\nimport { logger } from 'packages';\nimport {\n findKeysByPurchaseOrderId,\n findKeysByTransactionId,\n findKeysByItemId\n} from '../../helpers/commands-helper.js';\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 => key => {\n let 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\nconst setShippedState = (flag, listViewType) => items => key => {\n let 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 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.sellerState.hidden = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setUnsoldItemHiddenState = (flag, listViewType) => (\n items,\n memberId\n) => key => {\n let 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 (!_.contains(item.hiddenByMember, memberId)) {\n item.removeFromList = true;\n }\n return updateUnsoldLabelsAndActions(item, listViewType, memberId);\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.sellerState.feedbackLeft = flag;\n return updateStateAndLabels(item, listViewType);\n};\n\nconst setShippingBookedState = (flag, listViewType) => items => key => {\n let 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 let 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 let 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 updatedItems = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\n updatedItems.forEach(updatedItem => {\n stateItems[updatedItem.key] = updatedItem;\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 updatedItems = action.payload.ids\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 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 .map(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 .map(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 unmarkAsShippingBooked = (state, action) => {\n let stateItems = { ...state.itemsByID };\n const updateChangedItems = setShippingBookedState(\n false,\n action.payload.listViewType\n )(stateItems);\n const findUpdatedKeysByPurchaseOrderId = findKeysByPurchaseOrderId(\n stateItems\n );\n const updatedItems = action.payload.ids\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 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","import myTraderaItemsSelector from './items';\nimport { logger } from 'packages';\nimport {\n findKeysByPurchaseOrderId,\n findKeysByTransactionId\n} from '../../helpers/commands-helper.js';\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 = (flag, listViewType) => items => key => {\n let 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 item.transaction.buyerState.paid = flag;\n return updateStateAndLabels(item, listViewType);\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\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 updatedItems = action.payload.ids\n .map(findUpdatedKeysByPurchaseOrderId)\n .map(updateChangedItems);\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 updatedItems = action.payload.ids\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 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","/* eslint-disable complexity, max-depth */\nimport myTraderaItems from '../actions/my-tradera-items';\nimport myTraderaItemsSelector from '../selectors/items';\nimport { listActions } from '../../helpers/list-helper';\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} from '../selectors/seller-commands';\n\nimport {\n markAsPaidByBuyerReducer,\n unmarkAsPaidByBuyerReducer,\n markTransactionAsHiddenByBuyerReducer,\n markTransactionAsShownByBuyerReducer\n} from '../selectors/buyer-commands';\n\nimport { findKeysByPurchaseOrderId } from '../../helpers/commands-helper.js';\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 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\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 .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 [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","import React, { useCallback, useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useInView } from 'react-intersection-observer';\nimport axios from 'axios';\n\nimport { logger } from 'packages';\nimport { useUrlLocalizer } from 'tradera-lang';\nimport { handleError, API_ERRORS } from 'tradera-utils/api';\nimport itemActions from 'tradera-state/items/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport ItemCard from 'tradera-components/item-card/item-card';\nimport { lazyLoadSettings } from 'tradera-components/item-card/config';\nimport 'tradera-components/item-card/layout.scss';\n\nconst LOADING_STATES = {\n // can transition to is represented by '->'\n initializing: 'initializing', // -> loading\n loading: 'loading', // -> ready, end, error\n ready: 'ready', // -> loading\n end: 'end', // final state\n error: 'error' // final state\n};\n\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 items,\n itm,\n loader,\n noMoreItemsMarker,\n onError,\n onReachedEnd,\n openQuickView,\n preferredCurrency,\n title,\n toggleWishlist\n } = props;\n\n const [loadingState, setLoadingState] = useState(\n LOADING_STATES.initializing\n );\n const [currentPage, setCurrentPage] = useState(0);\n const [itemIds, setItemIds] = useState([]);\n\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const [loadingTriggerRef, loadingTriggerInView] = useInView({\n rootMargin: '0px 0px 800px 0px', // Increase to load earlier\n threshold: 1.0\n });\n\n const addItemIds = useCallback(\n itemIdsToAdd => {\n setItemIds([...itemIds, ...itemIdsToAdd]);\n },\n [itemIds, setItemIds]\n );\n\n // For cancelling request when unmounting component:\n const cancelToken = useRef();\n useEffect(() => {\n cancelToken.current = axios.CancelToken.source();\n return cancelToken.current.cancel;\n }, []);\n\n const getItems = useCallback(\n page => {\n const endpoint = toLocalizedUrl(createRequestUrl(page));\n\n axios\n .get(endpoint, { cancelToken: cancelToken.current.token })\n .then(({ data }) => {\n const itemsInResponse = data?.items || [];\n if (itemsInResponse.length === 0) {\n if (itemIds.length === 0) {\n setLoadingState(LOADING_STATES.error);\n if (onError) onError();\n } else {\n setLoadingState(LOADING_STATES.end);\n if (onReachedEnd) onReachedEnd(itemIds);\n }\n } else {\n addItems(itemsInResponse);\n addItemIds(itemsInResponse.map(x => x.itemId));\n setLoadingState(LOADING_STATES.ready);\n }\n return itemsInResponse;\n })\n .catch(handleError())\n .catch(error => {\n switch (error.message) {\n case API_ERRORS.CANCELLED:\n return;\n case API_ERRORS.ABORTED:\n case API_ERRORS.NETWORK:\n break;\n default:\n logger(error);\n }\n if (itemIds.length === 0) {\n setLoadingState(LOADING_STATES.error);\n if (onError) onError();\n } else {\n setLoadingState(LOADING_STATES.end);\n }\n });\n },\n [\n addItems,\n addItemIds,\n createRequestUrl,\n itemIds,\n onError,\n onReachedEnd,\n toLocalizedUrl\n ]\n );\n\n useEffect(() => {\n if (\n loadingState === LOADING_STATES.initializing ||\n (loadingState === LOADING_STATES.ready && loadingTriggerInView)\n ) {\n setLoadingState(LOADING_STATES.loading);\n const nextPage = currentPage + 1;\n setCurrentPage(nextPage);\n return getItems(nextPage);\n } else {\n return;\n }\n }, [\n currentPage,\n getItems,\n infiniteScrollEnabled,\n loadingState,\n loadingTriggerInView\n ]);\n\n const handleQuickViewClick = useCallback(\n itemId => {\n openQuickView(itemId, itemIds, gtmLabel);\n },\n [gtmLabel, itemIds, openQuickView]\n );\n\n if (collapseIfEmpty && loadingState === LOADING_STATES.error) {\n return null;\n }\n\n return (\n
    \n {title}\n \n {itemIds.map((itemId, index) => (\n \n \n
    \n ))}\n \n {loadingState === LOADING_STATES.loading && loader}\n {loadingState === LOADING_STATES.error && errorFallback}\n {loadingState === LOADING_STATES.end && noMoreItemsMarker}\n {infiniteScrollEnabled &&\n loadingState !== LOADING_STATES.end &&\n loadingState !== LOADING_STATES.error && (\n \n )}\n {loadingState === LOADING_STATES.ready && children}\n \n );\n}\n\nRecommendations.propTypes = {\n className: PropTypes.string,\n collapseIfEmpty: PropTypes.bool,\n createRequestUrl: PropTypes.func.isRequired,\n enableQuickView: PropTypes.bool,\n errorFallback: PropTypes.node,\n infiniteScrollEnabled: PropTypes.bool,\n itm: PropTypes.object,\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};\n\nRecommendations.defaultProps = {\n className: '',\n collapseIfEmpty: true,\n enableQuickView: false,\n infiniteScrollEnabled: false\n};\n\nconst mapStateToProps = state => ({\n items: state.items.cache,\n isLoggedIn: state.member.isLoggedIn,\n preferredCurrency: state.multiCurrency.preferredCurrency,\n enableQuickView: state.environment.featureSwitches['quick-view']\n});\n\nconst mapDispatchToProps = dispatch => ({\n addItems: items => dispatch(itemActions.add(items)),\n openQuickView: (itemId, itemIds, openedFrom) =>\n dispatch(uiActions.openQuickView({ itemIds, itemId, openedFrom })),\n toggleWishlist: itemId => dispatch(itemActions.wishlist(itemId))\n});\n\nexport { Recommendations, LOADING_STATES };\nexport default connect(mapStateToProps, mapDispatchToProps)(Recommendations);\n","import Recommendations from './recommendations';\n\nexport default Recommendations;\nexport {\n recommendationsRequestBuilder,\n similarItemsRequestBuilder,\n similarItemsFromShopRequestBuilder,\n similarItemsFromCampaignRequestBuilder\n} from './recommendations-requests';\n","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _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\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new Map();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).filter(Boolean).sort().map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get;\n\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n var inView = entry.isIntersecting && observer.thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n * Monitors scroll, and triggers the children function with updated props\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, useInView };\n//# sourceMappingURL=react-intersection-observer.m.js.map\n","//jshint module : true\nimport actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n switch (action.type) {\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 adSenseShoppingPublisherId:\n action.payload.adSenseShoppingPublisherId\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\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 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.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 CONSTANTS from 'tradera-apps/tradera/components/discover/constants/constants';\n\nconst normalizeFilters = filters => {\n if (filters) {\n let normalized = {};\n filters.map(filter => {\n const { parameter } = filter;\n normalized = {\n ...normalized,\n [parameter]: {\n ...filter\n }\n };\n });\n return normalized;\n }\n};\n\nconst activeFilters = filters => {\n if (filters) {\n let normalized = [];\n filters.map(filter => {\n const { selectedValue } = filter;\n if (CONSTANTS.ACTIVE_FILTER_STATES.includes(selectedValue)) {\n normalized.push(filter);\n }\n });\n return normalized;\n }\n};\n\nconst normalize = responseData => {\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 itemsById: [],\n itemsOnDisplayById: [],\n mainText: responseData.mainText || null,\n pagination: responseData.pagination || null,\n fallbackUrl: responseData.fallbackUrl || null,\n totalItems: responseData.totalItems || 0,\n discoverTranslationResult: responseData.discoverTranslationResult || {}\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 );\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 const endpoint = action.payload?.endpoint || null;\n const queryParams = action.payload?.queryParams || state.queryParams;\n return {\n ...state,\n isFetching: true,\n error: null,\n endpoint,\n currentCategoryId:\n queryParams.categoryId || state.currentCategoryId,\n queryParams\n };\n };\n\n const receiveSearchResults = () => {\n const {\n payload: { result = {}, endpoint = null, queryParams = null }\n } = action;\n return {\n ...state,\n error: null,\n hasResult: true,\n isFetching: false,\n endpoint,\n queryParams,\n ...normalize(result)\n };\n };\n\n const handleSearchResultsError = () => {\n return {\n ...state,\n error: action.payload,\n hasResult: true,\n isFetching: false,\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 def = () => state;\n\n const reducers = {\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","export default {\n DEFAULT_ACTION: 'initData/default'\n};\n","import actionTypes from './action-types';\n\nexport default (state = {}, action) => {\n switch (action.type) {\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';\nimport initialState from './initial-state';\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 default (state = initialState(), action) => {\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 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 newCache[item.itemId] = {\n ...newCache[item.itemId],\n ...item\n };\n // Renew item in cache order\n newCacheOrder = [\n ...newCacheOrder.filter(itemId => itemId !== item.itemId),\n item.itemId\n ];\n } else {\n newCache[item.itemId] = item;\n newCacheOrder.push(item.itemId);\n }\n });\n\n return {\n ...state,\n cache: {\n ...newCache\n },\n cacheOrder: newCacheOrder\n };\n };\n\n const addRecentlyViewed = () => {\n const { payload: item } = action;\n const { recent } = state;\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 return {\n ...state,\n cache: {\n ...state.cache,\n [itemId]: {\n ...state.cache[itemId],\n existsInWishList: exists\n }\n }\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 def = () => state;\n\n const reducers = {\n [actionTypes.ADD]: add,\n [actionTypes.ADD_RECENTLY_VIEWED]: addRecentlyViewed,\n [actionTypes.WISHLIST]: wishlist,\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';\nimport { resolveCurrency } from './helpers';\n\nexport default (state = {}, action) => {\n const setPreferredCurrency = () => {\n const { enabled, currencies } = state;\n return {\n ...state,\n preferredCurrency: resolveCurrency(\n enabled,\n action.payload.currencyCode,\n currencies\n )\n };\n };\n\n const def = () => state;\n\n const reducers = {\n [actionTypes.SET_PREFERRED_CURRENCY]: setPreferredCurrency\n };\n\n return !state.enabled || !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 if (!action || !action.type) return state;\n switch (action.type) {\n case actionTypes.SET_PAGE_META_FROM_SEARCH_RESULT:\n return {\n ...state,\n ...action.payload\n };\n case actionTypes.SET_PAGE_TYPE:\n return {\n ...state,\n type: action.payload\n };\n case actionTypes.SET_PAGE_META:\n return {\n ...state,\n ...action.payload,\n blockMetaTitleFromSearchResult: action.payload.metaTitle\n ? true\n : false\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 arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\nimport config from 'tradera-apps/syi/script/app_react/services/config';\nimport { filterSelectableSuggestions } from './attributes-helpers';\n\nvar 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 displayAttributes: [],\n selectableSuggestedAttributes: [],\n validationErrors: []\n};\n\nconst setCategoryAttributesSuggestions = (state, action) => {\n const { payload } = action;\n const newState = {\n ...state,\n suggestedAttributes: payload.suggestedAttributes,\n selectableSuggestedAttributes: filterSelectableSuggestions(\n payload.suggestedAttributes,\n state.categoryAttributes\n ),\n suggestionsExtractorType: payload.suggestionsExtractorType\n };\n return newState;\n};\n\nconst setCategoryAttributeOption = (state, action) => {\n const { payload } = action;\n const newState = {\n ...state,\n categoryAttributes: arrayUtils.shallowCopyArrayObjects(\n state.categoryAttributes\n )\n };\n const attribute = newState.categoryAttributes.find(\n a => a.id === payload.attributeId\n );\n const options = arrayUtils.shallowCopyArrayObjects(attribute.options);\n if (!attribute.isMultiSelect) {\n options.map(o => (o.isActive = false));\n attribute.numberOfValuesSelected = 0;\n }\n if (payload.optionValue) {\n const option = options.find(o => o.value === payload.optionValue);\n option.isActive = payload.activate;\n } else if (!payload.activate) {\n options.forEach(o => (o.isActive = false));\n }\n let selectedCount = 0;\n options.forEach(o => {\n if (o.isActive) {\n selectedCount++;\n }\n });\n attribute.numberOfValuesSelected = selectedCount;\n attribute.options = options;\n return newState;\n};\n\nconst updateCategoryAttributesOptionsStatuses = state => {\n const newState = {\n ...state,\n categoryAttributes: arrayUtils.shallowCopyArrayObjects(\n state.categoryAttributes\n )\n };\n const draftTermAttributes =\n newState.draftAttributes.termAttributeValues || [];\n const findCategoryAttribute = attributeId =>\n newState.categoryAttributes.find(a => a.id === attributeId);\n draftTermAttributes.forEach(draftTermAttribute => {\n const categoryAttribute = findCategoryAttribute(draftTermAttribute.id);\n if (!categoryAttribute) return;\n categoryAttribute.options.forEach(\n option =>\n (option.isActive = draftTermAttribute.values.includes(\n option.value\n ))\n );\n categoryAttribute.numberOfValuesSelected =\n draftTermAttribute.values.length;\n });\n return newState;\n};\n\nconst findTitleForAttributeId = (categoryAttributes, attributeId) => {\n const categoryAttribute = categoryAttributes.find(\n a => a.id === attributeId\n );\n return categoryAttribute ? categoryAttribute.title : null;\n};\n\nconst createDisplayAttributes = (categoryAttributes, draftAttributes) => {\n const result = [];\n if (!draftAttributes.termAttributeValues) return result;\n draftAttributes.termAttributeValues.forEach(tav => {\n const title = findTitleForAttributeId(categoryAttributes, tav.id);\n const value = tav.values.join(', ');\n if (!title || !value) return;\n result.push({\n title,\n value\n });\n });\n return result;\n};\n\nconst setDraftAttributes = (state, action) => {\n const newState = {\n ...state,\n draftAttributes: {\n ...action.payload\n }\n };\n updateDisplayAttributes(newState);\n return newState;\n};\n\nconst updateDisplayAttributes = newState => {\n newState.displayAttributes = createDisplayAttributes(\n newState.categoryAttributes,\n newState.draftAttributes\n );\n return newState;\n};\n\nconst setCategoryAttributes = (state, action) => {\n const newState = {\n ...state,\n categoryAttributes: arrayUtils.shallowCopyArrayObjects(action.payload)\n };\n updateDisplayAttributes(newState);\n return newState;\n};\n\nconst resetAttributes = () => {\n return { ...initialState };\n};\n\nconst validate = newState => {\n const errors = [];\n newState.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 errors.push(\n 'syi_validation_missing_attribute_' + attribute.backingField\n );\n }\n });\n\n newState.validationErrors = errors;\n\n return newState;\n};\n\nconst reducers = {\n RESET_ATTRIBUTES: resetAttributes,\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};\n\nexport default (state, action) => {\n if (!config.isSyiAttributesEnabled) {\n return initialState;\n }\n state = state || initialState;\n const reducer = reducers[action.type];\n if (reducer) {\n return validate(reducer(state, action));\n }\n return state;\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","import 'underscore';\nimport { 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 state.hasTraderaPayConsent = action.payload;\n state.hasValidationError = !action.payload;\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/next-shipping';\nimport templates from './reducers/templates';\nimport template from './reducers/template';\nimport bankid from './reducers/bankid';\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 charity from './reducers/charity';\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';\n\nexport default combineReducers({\n attributes,\n bankid,\n bankId: traderaStateBankId,\n buyerRegion,\n campaignCode,\n category,\n charity,\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 price,\n scroll,\n shipping,\n shortDescription,\n syi,\n templates,\n template\n});\n","import arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\nimport 'underscore';\n\nvar initialState = null;\n\nexport default (state, action) => {\n state = state || initialState;\n\n switch (action.type) {\n case 'SET_DRAFTS':\n if (action.payload) {\n state = arrayUtils.shallowCopyArrayObjects(action.payload);\n } else {\n state = null;\n }\n break;\n }\n return state;\n};\n","import { getLanguage } from 'tradera-apps/syi/script/app_react/utils/language';\n\nexport default state => {\n state = state || {\n preferredLanguage: getLanguage()\n };\n\n return state;\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';\n\nexport default combineReducers({\n cookies,\n filters,\n myTradera,\n myTraderaItems,\n payments,\n payout\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 initData from 'init-data';\n\nconst reducers = {\n checkout,\n myTradera,\n profile,\n cart,\n reportItem,\n shippingCalculator,\n startPage,\n viewItem\n};\nif (initData.pageName === 'SellItem') {\n reducers.syi = syi;\n}\n\nexport default combineReducers(reducers);\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 internationalShipping from './international-shipping/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';\n\nexport default history =>\n combineReducers({\n ads,\n bankId,\n categories,\n discover,\n environment,\n initData,\n internationalShipping,\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 });\n","import 'underscore';\nimport feesActions from './fees-actions';\nimport { getSyiSlice } from 'tradera-state/configure-store';\n\nfunction toIntOrNull(number) {\n var i = parseInt(number);\n if (isFinite(i)) {\n return i;\n }\n return null;\n}\n\nfunction isNullOrUndefined(val) {\n return _.isNull(val) || _.isUndefined(val);\n}\n\nconst setOpeningBid = openingBid => dispatch => {\n dispatch({\n type: 'SET_OPENING_BID',\n payload: toIntOrNull(openingBid)\n });\n};\n\nconst setFixedPrice = fixedPrice => dispatch => {\n dispatch({\n type: 'SET_FIXED_PRICE',\n payload: toIntOrNull(fixedPrice)\n });\n};\n\nconst setReservePrice = reservePrice => dispatch => {\n dispatch({\n type: 'SET_RESERVE_PRICE',\n payload: toIntOrNull(reservePrice)\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setAuctionBinPrice = auctionBinPrice => dispatch => {\n dispatch({\n type: 'SET_AUCTION_BIN_PRICE',\n payload: toIntOrNull(auctionBinPrice)\n });\n};\n\nconst setAuctionBinPriceVisibility = visible => dispatch => {\n dispatch({\n type: 'SET_AUCTION_BIN_PRICE_VISIBILITY',\n payload: visible\n });\n if (!visible) {\n dispatch(setAuctionBinPrice(null));\n }\n};\n\nconst setReservePriceVisibility = visible => dispatch => {\n dispatch({\n type: 'SET_RESERVE_PRICE_VISIBILITY',\n payload: visible\n });\n if (!visible) {\n dispatch(setReservePrice(null));\n }\n};\n\nconst setIsPureBinSelected = isPureBinSelected => (dispatch, getState) => {\n dispatch({\n type: 'SET_IS_PURE_BIN_SELECTED',\n isPureBinSelected,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n if (isPureBinSelected) {\n dispatch(setOpeningBid(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setReservePrice(null));\n } else {\n dispatch(setFixedPrice(null));\n }\n};\n\nconst setVat = vat => dispatch => {\n dispatch({\n type: 'SET_VAT',\n payload: vat\n });\n};\n\nconst setFromDraft = (\n openingBid,\n fixedPrice,\n reservePrice,\n vat,\n isChangeItem\n) => dispatch => {\n let hasOpeningBid = !isNullOrUndefined(openingBid);\n let hasFixedPrice = !isNullOrUndefined(fixedPrice);\n let hasReservePrice = !isNullOrUndefined(reservePrice);\n let isAuction = hasOpeningBid && !hasFixedPrice;\n let isAuctionBin = hasOpeningBid && hasFixedPrice;\n let isPureBin = !hasOpeningBid && hasFixedPrice;\n\n dispatch(setVat(vat));\n\n // TODO: fewer changes to the state makes the page load faster...\n if (isAuction) {\n dispatch(setOpeningBid(openingBid));\n dispatch(setReservePrice(reservePrice));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(hasReservePrice));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setIsPureBinSelected(false));\n } else if (isAuctionBin) {\n dispatch(setOpeningBid(openingBid));\n dispatch(setReservePrice(reservePrice));\n dispatch(setAuctionBinPrice(fixedPrice));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(hasReservePrice));\n dispatch(setAuctionBinPriceVisibility(true));\n dispatch(setIsPureBinSelected(false));\n } else if (isPureBin) {\n dispatch(setOpeningBid(null));\n dispatch(setReservePrice(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(fixedPrice));\n dispatch(setReservePriceVisibility(false));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setIsPureBinSelected(true));\n } else {\n dispatch(setOpeningBid(null));\n dispatch(setReservePrice(null));\n dispatch(setAuctionBinPrice(null));\n dispatch(setFixedPrice(null));\n dispatch(setReservePriceVisibility(false));\n dispatch(setAuctionBinPriceVisibility(false));\n dispatch(setIsPureBinSelected(false));\n }\n\n dispatch({\n type: 'SET_RESERVE_PRICE_CAN_CHANGE_BUT_NOT_BE_REMOVED',\n payload: isChangeItem && hasReservePrice\n });\n};\n\nconst reset = () => dispatch => {\n dispatch({\n type: 'RESET_PRICES_AND_VAT'\n });\n};\n\nexport default {\n setOpeningBid,\n setFixedPrice,\n setReservePrice,\n setAuctionBinPrice,\n setAuctionBinPriceVisibility,\n setReservePriceVisibility,\n setIsPureBinSelected,\n setFromDraft,\n setVat,\n reset\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 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","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';\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';\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';\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';\nimport PropTypes from 'prop-types';\nimport useInSPA from 'tradera-hooks/use-in-spa';\nimport ALink from 'tradera-components/alink/alink';\nimport { itmToQueryString } from 'tradera-utils/itm';\nimport MultiCurrency, {\n preferredCurrencyPropTypes\n} from '../multi-currency/multi-currency';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { ITEM_CARD_IMAGE_MODES } from './item-card-parts/item-card-image-modes';\nimport AnimatedPriceLabel from './item-card-parts/animated-price-label';\nimport AnimatedTimeLeftLabel from './item-card-parts/animated-time-left-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 TimeLeftLabel from './item-card-parts/time-left-label';\nimport WishListButton from './item-card-parts/wish-list-button';\nimport './item-card.scss';\n\nconst ItemCard = ({\n animatePriceLabel,\n animateTimeLeft,\n animateTimeLeftWarningLimit,\n className,\n gaCategory,\n imageMode,\n itm,\n item = {},\n lazy,\n onAddToWishlist,\n onQuickView,\n onRemoveFromWishlist,\n onAttributeButtonClick,\n onSettings,\n preferredCurrency,\n ready,\n showBidStatus,\n showShippingOrOnDisplay\n}) => {\n let inSPA = useInSPA();\n inSPA = false; // To force a hard navigation to VIP from startpage - Remove ASAP\n\n const { existsInWishList } = item;\n const itemUrl =\n (item.url || item.itemUrl) &&\n `${item.url || item.itemUrl}${itmToQueryString(itm)}`;\n const imageUrl =\n item.imageUrl && item.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 = event => {\n event.preventDefault();\n if (existsInWishList) {\n onRemoveFromWishlist(item.itemId);\n } else {\n onAddToWishlist(item.itemId);\n }\n };\n\n const onNavigate = () => {\n if (gaCategory) {\n GtmService.trackAction(gaCategory, 'Navigation', item.itemId);\n }\n };\n\n return (\n \n \n
    \n {showShippingOrOnDisplay && item.showShipping && (\n \n )}\n {showShippingOrOnDisplay && item.showOnDisplayRibbon && (\n \n )}\n {showBidStatus && item.isLeading && (\n \n )}\n {showBidStatus && item.isOverbidden && (\n \n )}\n
    \n \n
    \n {ready && (\n <>\n \n {onQuickView && (\n \n )}\n {item.showShopItemSettings && (\n \n )}\n \n )}\n
    \n

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

    \n {item.itemAttributesForFilter && onAttributeButtonClick && (\n

    \n \n

    \n )}\n
    \n {item.hasDiscount && (\n \n )}\n {animatePriceLabel ? (\n \n ) : (\n \n )}\n {item.isShopItem ? (\n \n ) : animateTimeLeft ? (\n \n ) : (\n \n )}\n \n {MultiCurrency.isVisible(item.price, preferredCurrency) &&\n !item.isShopItem &&\n item.showBids && (\n |\n )}\n {!item.isShopItem && item.showBids && (\n \n )}\n {item.isNewToday && (\n \n )}\n
    \n \n );\n};\n\nItemCard.defaultProps = {\n animatePriceLabel: false,\n animateTimeLeft: false,\n className: '',\n gaCategory: null,\n imageMode: ITEM_CARD_IMAGE_MODES.SQUARE,\n onAddToWishlist: () => {},\n onRemoveFromWishlist: () => {},\n onQuickView: () => {},\n showBidStatus: false,\n showShippingOrOnDisplay: true\n};\n\nItemCard.propTypes = {\n animatePriceLabel: PropTypes.bool,\n animateTimeLeft: PropTypes.bool,\n animateTimeLeftWarningLimit: PropTypes.number,\n className: PropTypes.string,\n gaCategory: PropTypes.string,\n imageMode: PropTypes.oneOf(Object.values(ITEM_CARD_IMAGE_MODES)),\n item: PropTypes.shape({\n buyNowPrice: PropTypes.number,\n currentBid: PropTypes.number,\n discountRate: PropTypes.number,\n displayHighlighted: PropTypes.bool,\n existsInWishList: PropTypes.bool,\n hasDiscount: PropTypes.bool,\n hasNonSpecifiedShipping: PropTypes.bool,\n imageHeight: PropTypes.number,\n imageUrl: PropTypes.string,\n imageWidth: PropTypes.number,\n isEndingSoon: PropTypes.bool,\n isNewToday: PropTypes.bool,\n isShopItem: PropTypes.bool,\n itemId: PropTypes.number,\n itemUrl: PropTypes.string,\n prettifyRating: PropTypes.shape({\n includeTotal: PropTypes.bool,\n isBad: PropTypes.bool,\n isGood: PropTypes.bool,\n noRating: PropTypes.bool,\n rating: PropTypes.string\n }),\n price: PropTypes.number,\n priceBeforeDiscount: PropTypes.number,\n sellerAlias: PropTypes.string,\n sellerDsrAverage: PropTypes.number,\n shortDescription: PropTypes.string,\n showBids: PropTypes.bool,\n showBuyNow: PropTypes.bool,\n showFreeShippingRibbon: PropTypes.bool,\n showOnDisplayRibbon: PropTypes.bool,\n showShopItemSettings: PropTypes.bool,\n showSmbMessage: PropTypes.bool,\n timeLeft: PropTypes.string,\n url: PropTypes.string\n }),\n itm: PropTypes.shape({\n medium: PropTypes.string,\n source: PropTypes.string\n }),\n lazy: PropTypes.shape({\n offset: PropTypes.number,\n once: PropTypes.bool,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n placeholder: PropTypes.node,\n imagePlaceholder: PropTypes.node\n }),\n onAddToWishlist: PropTypes.func,\n onRemoveFromWishlist: PropTypes.func,\n onQuickView: PropTypes.func,\n onSettings: PropTypes.func,\n preferredCurrency: preferredCurrencyPropTypes,\n ready: PropTypes.bool,\n showBidStatus: PropTypes.bool,\n showShippingOrOnDisplay: PropTypes.bool\n};\n\nexport default ItemCard;\n","export const getAllProviders = state =>\n state.primaryShippingProviders.concat(state.secondaryShippingProviders);\n\nexport const getAllProducts = state =>\n getAllProviders(state).flatMap(provider => provider.products);\n\nexport const getPrimaryOrSecondaryProducts = (state, onlyPrimary) =>\n (onlyPrimary\n ? state.primaryShippingProviders\n : state.secondaryShippingProviders\n ).flatMap(provider => provider.products);\n\nexport const getProduct = (state, onlyPrimary, productType) =>\n getPrimaryOrSecondaryProducts(state, onlyPrimary).find(\n product => product.type === productType\n );\n","import actionTypes from './action-types';\nimport { Analytics } from 'packages';\nimport cookieUtil from 'tradera-utils/cookie';\n\nexport const setPreferredCurrency = currencyCode => {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Currency',\n label: currencyCode\n });\n\n createPreferredCurrencyCookie(currencyCode);\n\n return {\n type: actionTypes.SET_PREFERRED_CURRENCY,\n payload: { currencyCode: currencyCode }\n };\n};\n\nexport const setCurrencyIfNotChosen = currencyCode => dispatch => {\n if (cookieUtil.readCookie('preferred_currency') || currencyCode === 'SEK') {\n return;\n }\n\n dispatch(setPreferredCurrency(currencyCode));\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","export const selectCurrencies = state => state.multiCurrency.currencies;\n\nexport const selectPreferredCurrency = state =>\n state.multiCurrency.preferredCurrency;\n\nexport const selectShowCurrencySelection = state =>\n !!(\n state.multiCurrency.enabled &&\n state.multiCurrency.preferredCurrency &&\n state.multiCurrency.currencies &&\n state.multiCurrency.currencies.length > 0\n );\n","import 'underscore';\nimport arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\n\nfunction createInitialState() {\n var initialState = {\n suggestionsAvailable: false,\n levels: new Array(4),\n anyLevelOpen: false,\n showExplanation: true,\n draftCategoryId: 0,\n draftCategoryPath: [],\n previousDraftCategoryId: 0,\n prevoiusDraftCategoryPath: [],\n shortDescriptionForRecommendations: null,\n validationError: null\n };\n initialState.levels = _.map(initialState.levels, function(level, index) {\n level = { index: index };\n level.categories = [];\n level.suggestions = [];\n level.suggestionsVisible = false;\n level.categoriesVisible = false;\n level.moreButtonVisible = false;\n level.hideButtonVisible = false;\n level.selectedCategory = null;\n level.isOpen = false;\n level.visible = true;\n level.disabled = true;\n return level;\n });\n initialState.levels[0].disabled = false;\n return initialState;\n}\n\nfunction validate(newState) {\n newState.validationError =\n !newState.draftCategoryId || newState.draftCategoryId === 0\n ? 'syi_validation_missing_category'\n : null;\n\n return newState;\n}\n\nexport default (state, action) => {\n state = state || createInitialState();\n switch (action.type) {\n case 'RESET_CATEGORY': {\n const newState = _.assign({}, createInitialState());\n return validate(_.assign({}, newState));\n }\n case 'CATEGORIES_LOADING': {\n const newLevels = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, state, { levels: newLevels });\n newState.levels[action.index].loading = true;\n return validate(newState);\n }\n case 'CATEGORIES_LOADED': {\n const newLevels = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, state, { levels: newLevels });\n newState.levels[action.index].visible = action.value;\n return validate(newState);\n }\n case 'DISABLE_LEVEL': {\n const newLevels = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, state, { levels: newLevels });\n newState.levels[action.index].disabled = true;\n return validate(newState);\n }\n case 'RESET_LEVEL': {\n const newLevels = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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 = arrayUtils.shallowCopyArrayObjects(state.levels);\n const newState = _.assign({}, 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","import {\n useBreakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\n\nconst useIsMobile = () =>\n [BREAKPOINTS.XS, BREAKPOINTS.SM].includes(useBreakpoint());\n\nexport default useIsMobile;\n","import 'underscore';\n\nvar initialState = {\n isPropertyEditMode: false,\n creationType: 'new',\n allErrorsVisible: false,\n isEditOfPublishedItem: false,\n editedImageIndex: null,\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, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'RESET_SYI':\n return _.assign({}, initialState);\n case 'SET_IS_PROPERTY_EDIT_MODE':\n return _.assign({}, state, { isPropertyEditMode: action.payload });\n case 'SET_CREATION_TYPE':\n return _.assign({}, state, { creationType: action.payload });\n case 'SHOW_ALL_ERRORS':\n return _.assign({}, state, { allErrorsVisible: true });\n case 'HIDE_ALL_ERRORS':\n return _.assign({}, state, { allErrorsVisible: false });\n case 'SET_IS_EDIT_OF_PUBLISHED_ITEM':\n return _.assign({}, state, {\n isEditOfPublishedItem: action.payload\n });\n case 'SET_PUBLISHED_ITEM_PENDING_VIP':\n return _.assign({}, 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 _.assign({}, 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 _.assign({}, 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 _.assign({}, 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 _.assign({}, state, {\n publishedItem: null,\n publishedItemPendingVip: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: true,\n publishDelayed: false\n });\n case 'RESET_PUBLISH_STATE':\n return _.assign({}, state, {\n publishedItem: null,\n publishedItemPendingVip: null,\n publishFailed: false,\n publishFailedReasonDisplayText: null,\n publishPending: false,\n publishDelayed: false\n });\n case 'SET_EDITED_IMAGE_INDEX':\n return _.assign({}, state, { editedImageIndex: action.payload });\n case 'SET_CATEGORY_RESTRICTION':\n return _.assign({}, state, { categoryRestriction: action.payload });\n case 'TOGGLE_MODAL':\n var newValue =\n state.openModal === action.payload ? null : action.payload;\n return _.assign({}, state, { openModal: newValue });\n case 'SHOW_MODAL':\n return _.assign({}, state, {\n openModal: action.modalId,\n openModalData: action.modalData\n });\n case 'HIDE_MODAL':\n return _.assign({}, state, { openModal: null });\n case 'ENABLE_AUTOSAVE':\n return _.assign({}, state, { autoSaveEnabled: true });\n case 'DISABLE_AUTOSAVE':\n return _.assign({}, state, { autoSaveEnabled: false });\n case 'SET_DRAFT_CAN_BE_RESUMED':\n return _.assign({}, state, { draftCanBeResumed: action.payload });\n case 'SET_ITEM_UPDATING':\n return _.assign({}, state, { itemUpdating: action.payload });\n case 'SET_ITEM_UPDATED':\n return _.assign({}, state, { itemUpdated: action.payload });\n default:\n return state;\n }\n};\n","import 'underscore';\nimport arrayUtils from 'tradera-apps/syi/script/app_react/utils/array-utils';\n\nvar initialState = {\n slots: [{}, {}, {}, {}, {}],\n validationError: null,\n uploadError: null,\n imageCount: 0\n};\n\nfunction validate(newState) {\n if (_.any(newState.slots, slot => !!slot.imageUrl)) {\n newState.validationError = null;\n } else {\n newState.validationError = 'syi_validation_images';\n }\n return newState;\n}\n\nfunction resolveFirstEmpty(slots) {\n let foundFirst = false;\n for (var i = 0; i < slots.length; i++) {\n if (foundFirst) {\n slots[i].firstEmpty = false;\n } else if (!slots[i].imageUrl) {\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 let 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 let 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 let withUrl = _.filter(newState.slots, slot => !!slot.imageUrl);\n newState.imageCount = withUrl.length;\n}\n\nexport default (state, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'SET_DRAFT_IMAGES': {\n var slots = [{}, {}, {}, {}, {}];\n\n for (let i = 0; i < slots.length; i++) {\n slots[i].isListingImage = false;\n slots[i].imageId = null;\n slots[i].rotationDegrees = null;\n slots[i].imageUrl = null;\n slots[i].firstEmpty = false;\n slots[i].isUploading = false;\n }\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 } 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 } 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 = _.assign({}, state, { slots });\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_UPLOADED_IMAGE_IN_SLOT': {\n let newslots = arrayUtils.shallowCopyArrayObjects(state.slots);\n let 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 resolveFirstEmpty(newslots);\n let newState = _.assign({}, state, { slots: newslots });\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_SLOTS': {\n let newslots = arrayUtils.shallowCopyArrayObjects(action.slots);\n resolveFirstEmpty(newslots);\n let newState = _.assign({}, state, { slots: newslots });\n setImageCount(newState);\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_ROTATION': {\n let slots = arrayUtils.shallowCopyArrayObjects(state.slots);\n slots[action.slotIndex].rotationDegrees = action.rotationDegrees;\n let newState = _.assign({}, state, { slots: slots });\n resetUploadError(newState);\n return validate(newState);\n }\n case 'SET_IMAGE_UPLOAD_FAILED': {\n let newState = _.assign({}, state, { uploadError: action.payload });\n setImageCount(newState);\n removeLastLoading(newState);\n return validate(newState);\n }\n case 'SET_IMAGES_UPLOADING': {\n let slots = arrayUtils.shallowCopyArrayObjects(state.slots);\n let newState = _.assign({}, state, {\n slots: slots,\n uploadError: null\n });\n setLoadingOnFreeSlots(newState, action.numberOfSlots);\n return validate(newState);\n }\n case 'HIDE_ALL_ERRORS': {\n let newState = _.assign({}, state, {\n uploadError: null\n });\n return newState;\n }\n default:\n return state;\n }\n};\n","export default {\n ADD: 'ITEMS/ADD',\n ADD_RECENTLY_VIEWED: 'ITEMS/ADD_RECENTLY_VIEWED',\n WISHLIST: 'ITEMS/WISHLIST',\n REMOVE_WISHLIST: 'ITEMS/REMOVE_WISHLIST',\n SETTINGS: 'ITEMS/SETTINGS',\n UPDATE_ITEM: 'ITEMS/UPDATE_ITEM'\n};\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport 'jquery';\nimport 'underscore';\n\nimport publishService from 'tradera-apps/syi/script/app_react/services/publish-service';\nimport navigationService from 'tradera-apps/syi/script/app_react/services/navigation-service';\nimport draftService from 'tradera-apps/syi/script/app_react/services/draft-service';\nimport categoryActions from './category-actions';\nimport syiActions from './syi-actions';\nimport paymentActions from './payment-actions';\nimport imageActions from './image-actions';\nimport priceActions from './price-actions';\nimport shortDescriptionActions from './short-description-actions';\nimport longDescriptionActions from './long-description-actions';\nimport shippingActions from './shipping-actions';\nimport campaignCodeActions from './campaign-code-actions';\nimport feesActions from './fees-actions';\nimport { setAttributesFromDraft } from './attributes-actions';\nimport scribe from 'tradera-apps/syi/script/app_react/services/scribe';\nimport sessionService from 'tradera-apps/syi/script/app_react/services/session-service';\nimport googleTagManager from 'tradera-apps/syi/script/app_react/services/google-tagmanager';\nimport {\n setAvailableAllowedBuyerRegions,\n setAllowedBuyerRegion\n} from '../reducers/buyer-region';\nimport { handleServerValidationError } from './helpers/server-validation-error-helper';\nimport { globalStore, getSyiSlice } from 'tradera-state/configure-store';\nimport { selectSuggestedAttributes } from 'tradera-state/views/syi/selectors/attribute-selectors';\n\nconst store = globalStore();\n\nfunction ensureDraftReason(draft) {\n if (!draft.draftReason) {\n draft.draftReason = 'NewItem';\n }\n}\n\nconst setDraft = draft => (dispatch, getState) => {\n dispatch(syiActions.disableAutoSave());\n ensureDraftReason(draft);\n sessionService.startSession(draft.draftReason);\n\n let isNewDraft =\n getSyiSlice(getState()).draft.draftId != draft.draftId ||\n getSyiSlice(getState()).draft.draftReason != draft.draftReason;\n let isChangeItem = draft.draftReason === 'ChangeItem';\n\n // Do first for actions that depends on this info.\n dispatch(syiActions.setIsEditOfPublishedItem(isChangeItem));\n syiActions.hideAllErrors();\n dispatch(categoryActions.reset());\n\n dispatch({\n type: 'SET_DRAFT_PROPERTIES',\n draft: draft\n });\n\n dispatch(setAllowedBuyerRegion(draft.allowedBuyerRegion));\n dispatch(setAvailableAllowedBuyerRegions());\n dispatch(setItemCondition(draft.itemCondition));\n dispatch(\n campaignCodeActions.setInitialCampaignCode(\n draft.campaignCode,\n draft.campaignCodeId,\n draft.campaignCodeDescription,\n isChangeItem\n )\n );\n dispatch(setDurationDays(draft.durationDays));\n dispatch(setCustomEndTime(draft.customEndTime));\n\n dispatch(\n categoryActions.setPath(draft.shortDescription, draft.categoryPath)\n );\n\n // Setting short description also loads top categories!\n dispatch(\n shortDescriptionActions.setShortDescription(draft.shortDescription)\n );\n dispatch(categoryActions.setDraftCategory(draft.categoryId));\n dispatch(\n longDescriptionActions.setLongDescriptionFromDraft(\n draft.longDescription\n )\n );\n dispatch(setDisplayPromoted(draft.displayPromoted));\n dispatch(setDisplayHighlighted(draft.displayHighlighted));\n dispatch(imageActions.setDraftImages(draft.images || []));\n dispatch(\n priceActions.setFromDraft(\n draft.openingBid,\n draft.fixedPrice,\n draft.reservePrice,\n draft.vat,\n isChangeItem\n )\n );\n dispatch(paymentActions.setSelectedPaymentOptions(draft.paymentOptions));\n dispatch(setAttributesFromDraft(draft));\n\n dispatch(\n shippingActions.setShippingOptionsFromDraft(draft.shippingOptions)\n );\n dispatch(syiActions.enableAutoSave());\n\n if (isNewDraft) {\n scribe.sendSessionStart();\n }\n};\n\nconst setIsLoading = isLoading => ({\n type: 'SET_DRAFT_IS_LOADING',\n payload: isLoading\n});\n\nconst loadDraft = (dispatch, draftId) => {\n var deferred = $.Deferred();\n dispatch(setIsLoading(true));\n draftService\n .loadDraft(draftId)\n .then(function(result) {\n dispatch(setDraft(result));\n deferred.resolve(result);\n })\n .fail(function(result) {\n deferred.reject(result);\n navigationService.goToStart();\n })\n .always(() => dispatch(setIsLoading(false)));\n return deferred.promise();\n};\n\nconst loadDrafts = () => dispatch => {\n var deferred = $.Deferred();\n draftService\n .loadDrafts()\n .then(function(drafts) {\n let resumableDrafts = [];\n\n drafts.forEach(draft => {\n if (\n canBeResumed(\n draft.draftId,\n draft.draftReason,\n draft.shortDescription,\n draft.longDescription,\n [{ imageUrl: draft.imageUrl }]\n )\n ) {\n resumableDrafts.push(draft);\n }\n });\n\n dispatch(setResumableDrafts(resumableDrafts));\n\n deferred.resolve(resumableDrafts);\n })\n .fail(function(result) {\n deferred.reject(result);\n });\n return deferred.promise();\n};\n\nconst canBeResumed = (\n draftId,\n draftReason,\n shortDescription,\n longDescription,\n images\n) => {\n if (!draftId) {\n return false;\n }\n\n if (draftReason !== 'NewItem') {\n return false;\n }\n\n var hasShortDescription =\n shortDescription && shortDescription.trim().length > 0;\n var hasLongDescription =\n longDescription && longDescription.trim().length > 0;\n var hasImage =\n _.isArray(images) &&\n _.find(images, image => {\n return image.imageUrl;\n });\n return hasShortDescription || hasLongDescription || hasImage;\n};\n\nconst updateDraftCanBeResumed = () => (dispatch, getState) => {\n let draft = getSyiSlice(getState()).draft;\n let shortDescription = getSyiSlice(getState()).shortDescription\n .shortDescription;\n let longDescription = getSyiSlice(getState()).longDescription\n .longDescription;\n let imageSlots = getSyiSlice(getState()).images.slots;\n\n // TODO: avoid duplication by using canBeResumed\n if (!draft.draftId) {\n return false;\n }\n\n if (draft.draftReason !== 'NewItem') {\n return false;\n }\n\n var hasShortDescription =\n shortDescription && shortDescription.trim().length > 0;\n var hasLongDescription =\n longDescription && longDescription.trim().length > 0;\n var hasImage =\n _.isArray(imageSlots) &&\n _.find(imageSlots, image => {\n return image.imageUrl;\n });\n let canBeResumed = hasShortDescription || hasLongDescription || hasImage;\n\n dispatch({\n type: 'SET_DRAFT_CAN_BE_RESUMED',\n payload: canBeResumed\n });\n};\n\nconst setResumableDrafts = drafts => dispatch => {\n dispatch({\n type: 'SET_DRAFTS',\n payload: drafts\n });\n};\n\nconst setDraftId = draftId => {\n store.dispatch({\n type: 'SET_DRAFT_ID',\n payload: draftId\n });\n};\n\nconst setCustomEndTime = customEndTime => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'SET_CUSTOM_END_TIME',\n payload: customEndTime,\n isPureBin,\n isAuctionBin,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setDurationDays = durationDays => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'SET_DURATION_DAYS',\n payload: durationDays,\n isPureBin,\n isAuctionBin,\n isChangeItem: getSyiSlice(getState()).syi.isEditOfPublishedItem\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst resetDurationAndEndTime = () => (dispatch, getState) => {\n const price = getSyiSlice(getState()).price;\n const hasOpeningBid = !!price.openingBid;\n const hasAuctionBinPrice = !!price.auctionBinPrice;\n const isAuctionBin = hasOpeningBid && hasAuctionBinPrice;\n const isPureBin = !hasOpeningBid && hasAuctionBinPrice;\n dispatch({\n type: 'RESET_DURATION_AND_END_TIME',\n isPureBin,\n isAuctionBin\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setRestart = restart => {\n store.dispatch({\n type: 'SET_RESTART',\n payload: restart\n });\n};\n\nconst setShippingBags = shippingBags => dispatch => {\n dispatch({\n type: 'SET_SHIPPING_BAGS',\n payload: shippingBags || false\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setDisplayPromoted = displayPromoted => dispatch => {\n dispatch({\n type: 'SET_DISPLAY_PROMOTED',\n payload: displayPromoted || false\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setDisplayHighlighted = displayHighlighted => dispatch => {\n dispatch({\n type: 'SET_DISPLAY_HIGHLIGHTED',\n payload: displayHighlighted || false\n });\n dispatch(feesActions.updatePrices());\n};\n\nconst setReference = reference => {\n store.dispatch({\n type: 'SET_REFERENCE',\n payload: reference\n });\n};\n\nconst trackAttributeSuggestions = (\n draftSelectedAttributes,\n suggestedAttributes,\n suggestionEngine,\n completionTimeInSeconds,\n isNewDraft\n) => {\n const comparer = (a, b) => a.localeCompare(b);\n\n draftSelectedAttributes.forEach(attribute => {\n const label = [\n suggestionEngine,\n attribute.id,\n attribute.backingField,\n attribute.values?.sort(comparer).join(','),\n suggestedAttributes\n .find(sa => sa.id === attribute.id)\n ?.values?.sort(comparer)\n .join(','),\n completionTimeInSeconds,\n !!isNewDraft\n ];\n const analyticsData = {\n category: 'MachineLearning',\n action: 'SyiAttributeSuggestion',\n label: label.join(';')\n };\n console.log(analyticsData);\n googleTagManager.trackEvent(analyticsData);\n });\n};\n\nconst publish = (onPublished, translator) => (dispatch, getState) => {\n dispatch({ type: 'SET_PUBLISH_PENDING' });\n\n const state = getSyiSlice(getState());\n const { displayHighlighted, displayPromoted } = state.extraFeatures;\n const reservePrice = state.price.reservePrice;\n const customEndTime = draftService.getCustomEndTime(state.itemDuration);\n const draft = draftService.buildDraftFromState(state);\n var splitTestGroups = getState().environment.splitTestGroups;\n var featureSwitches = getState().environment.featureSwitches;\n\n publishService\n .publish(draft, state.memberConsent.hasTraderaPayConsent)\n .then(function(result) {\n if (displayHighlighted) {\n googleTagManager.trackAddonBeforePublish('Highlight');\n }\n if (displayPromoted) {\n googleTagManager.trackAddonBeforePublish('Rank up');\n }\n if (reservePrice) {\n googleTagManager.trackAddonBeforePublish('Reserve price');\n }\n if (customEndTime) {\n googleTagManager.trackAddonBeforePublish('End time');\n }\n\n if (featureSwitches['syi-attribute-suggestions']) {\n const draftSelectedAttributes =\n draft.attributeValues.termAttributeValues;\n const suggestedAttributes =\n selectSuggestedAttributes(getState()) || [];\n trackAttributeSuggestions(\n draftSelectedAttributes,\n suggestedAttributes,\n splitTestGroups['attribute_suggestion_extractor'],\n Math.round(sessionService.getElapsedMillis() / 1000),\n state.draft.isNewDraft\n );\n }\n\n dispatch(setDraft({}));\n // Navigation service works only for Riot and does nothing for React.\n navigationService.goToPublished(result.itemId);\n if (onPublished) {\n onPublished(result.itemId);\n }\n })\n .fail(function(result) {\n let response = result.responseJSON;\n if (\n hasResponseErrorCode(response, [\n 'DraftAlreadyPublished',\n 'DraftBelongsToAnotherMember'\n ])\n ) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n } else if (hasResponseErrorCode(response, ['ValidationError'])) {\n handleServerValidationError(\n response.errors || [],\n dispatch,\n translator\n );\n } else {\n dispatch({ type: 'SET_PUBLISH_FAILED' });\n dispatch(syiActions.toggleModal('error-modal-publish-failed'));\n }\n });\n};\n\nconst hasResponseErrorCode = (responseOrNull, arrayOfErrorCodesToCheck) =>\n responseOrNull &&\n arrayOfErrorCodesToCheck.includes(responseOrNull.errorCode);\n\nconst loadDraftIfMissing = draftId => (dispatch, getState) => {\n var draft = getSyiSlice(getState()).draft;\n const isAlreadyLoaded = draft.draftId === draftId;\n if (isAlreadyLoaded) {\n var deferred = $.Deferred();\n deferred.resolve(draft);\n return deferred.promise();\n }\n return loadDraft(dispatch, draftId);\n};\n\nconst loadDefaultDraft = () => dispatch => {\n syiActions.reset();\n dispatch(categoryActions.reset());\n dispatch(setDraft(draftService.loadDefaultDraft()));\n dispatch(shippingActions.resetSelected());\n};\n\nconst loadDefaultTemplateDraft = () => dispatch => {\n syiActions.reset();\n dispatch(categoryActions.reset());\n var template = draftService.loadDefaultTemplateDraft();\n template.templateId = 'new';\n dispatch(setDraft(template));\n};\n\nconst useDraftAsTemplate = () => dispatch => {\n dispatch({\n type: 'SET_DRAFT_REASON',\n payload: 'Template'\n });\n dispatch({\n type: 'SET_DRAFT_ID',\n payload: null\n });\n};\n\nconst setDraftVersion = version => dispatch => {\n dispatch({\n type: 'SET_DRAFT_VERSION',\n payload: version\n });\n};\n\nexport const triggerSave = () => (dispatch, getState) =>\n saveDraft(dispatch, getState);\n\nconst saveDraft = (dispatch, getState) => {\n var deferred = $.Deferred();\n let draft = draftService.buildDraftFromState(getSyiSlice(getState()));\n let version = getSyiSlice(getState()).draft.version || 0;\n draftService\n .saveDraft(draft)\n .then(function(result) {\n if (draft.draftId !== result.draftId) {\n dispatch({\n type: 'SET_DRAFT_ID',\n payload: result.draftId\n });\n }\n if (version > 0 && version + 1 !== result.version) {\n // Unexpected version. The draft is being edited somewhere else.\n }\n const wasNewDraftWithoutId = !draft.draftId && !!result.draftId;\n if (wasNewDraftWithoutId) {\n navigationService.setDraftUrlWithoutReload(result.draftId);\n }\n // Must happen after new URL is set for re-render to happen.\n dispatch(setDraftVersion(result.version));\n deferred.resolve();\n })\n .fail(function(result) {\n let response = result.responseJSON;\n if (\n hasResponseErrorCode(response, [\n 'DraftAlreadyPublished',\n 'DraftBelongsToAnotherMember'\n ])\n ) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n } else if (result.status == 404) {\n dispatch(setDraft({}));\n navigationService.goToStart();\n }\n deferred.reject();\n });\n return deferred.promise();\n};\n\nconst setUsedAllowed = isAllowed => ({\n type: 'SET_ITEM_CONDITION_SELECTION_ERROR',\n payload: isAllowed ? null : 'syi_validation_used_not_allowed_for_category'\n});\n\nconst setItemCondition = condition => dispatch => {\n dispatch({\n type: 'SET_ITEM_CONDITION',\n payload: condition\n });\n dispatch(updateItemConditionRestrictionForCategory());\n};\n\nconst updateItemConditionRestrictionForCategory = () => (\n dispatch,\n getState\n) => {\n const condition = getSyiSlice(getState()).itemCondition.itemCondition;\n const isUsed = condition === 'Used';\n if (isUsed) {\n const isAllowed = isUsedAllowed(getState);\n dispatch(setUsedAllowed(isAllowed));\n } else {\n dispatch(setUsedAllowed(true));\n }\n};\n\nconst isUsedAllowed = getState => {\n const categoryRestriction = getSyiSlice(getState()).syi.categoryRestriction;\n return !categoryRestriction || categoryRestriction.allowUsed !== false;\n};\n\nconst resetItemCondition = () => ({\n type: 'RESET_ITEM_CONDITION'\n});\n\nconst publishAdditionalDescription = text => (dispatch, getState) => {\n if (text && text.length > 0) {\n dispatch({\n type: 'ADD_ADDITIONAL_DESCRIPTION',\n payload: text\n });\n }\n dispatch({ type: 'SET_PUBLISH_PENDING' });\n let draft = draftService.buildDraftFromState(getSyiSlice(getState()));\n publishService\n .publish(draft)\n .then(function(result) {\n navigationService.goToPublished(result.itemId);\n dispatch(setDraft({}));\n })\n .fail(function() {\n dispatch({ type: 'SET_PUBLISH_FAILED' });\n });\n};\n\nconst resetDraft = () => ({ type: 'RESET_DRAFT' });\n\nconst resetDrafts = () => dispatch => {\n dispatch({\n type: 'SET_DRAFTS',\n payload: null\n });\n};\n\nexport default {\n setDraft,\n loadDrafts,\n canBeResumed,\n updateDraftCanBeResumed,\n setDraftId,\n setCustomEndTime,\n setDurationDays,\n resetDurationAndEndTime,\n setRestart,\n setShippingBags,\n setDisplayPromoted,\n setDisplayHighlighted,\n setReference,\n publish,\n loadDraftIfMissing,\n loadDefaultDraft,\n loadDefaultTemplateDraft,\n useDraftAsTemplate,\n saveDraft,\n setItemCondition,\n resetItemCondition,\n publishAdditionalDescription,\n resetDraft,\n resetDrafts,\n updateItemConditionRestrictionForCategory,\n setIsLoading\n};\n","import { logger } from 'packages';\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 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\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 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 default {\n toggleHeaderSearch,\n openGdprModal,\n closeGdprModal,\n openGdprSettings,\n closeGdprSettings,\n openQuickView,\n closeQuickView,\n openVideoModal,\n closeVideoModal,\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","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","import { 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 allowedBuyerRegionText: null,\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 shipsToBuyerCountry: null,\n sellerMemberId: 0,\n title: null,\n viewState: VIEW_STATES.LOADING\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.allowedBuyerRegionText = itemDetails.allowedBuyerRegionText;\n state.amount = amountDetails.amount;\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.shipsToBuyerCountry = itemDetails.shipsToBuyerCountry;\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 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 * as qs from 'qs';\n\nconst parseItmObject = itm =>\n Object.assign(\n {},\n ...Object.keys(itm).map(key => ({\n [`itm_${key}`]: itm[key]\n }))\n );\n\n/**\n * Converts an itm object to query string\n * @param {Object} itm - Object containing the itm properties\n * @param {string} itm.source - Reference to the referring location/page e.g: 'vip'\n * @param {string} itm.medium - Reference to the unique element e.g 'suggest-from-blueshift'\n */\nconst itmToQueryString = itm =>\n !itm ? '' : `?${qs.stringify(parseItmObject(itm))}`;\n\n/**\n * Converts itm to query string and appends it to given url\n * @param {string} url\n * @param {Object} itm - See definition above\n * @returns {string}\n */\nconst decorateUrlWithItm = (url, itm) => {\n if (!url || !itm) {\n return url;\n }\n\n const itmQueryString = parseItmObject(itm);\n const stringified = qs.stringify(itmQueryString);\n\n return url.includes('?')\n ? `${url}&${stringified}`\n : `${url}?${stringified}`;\n};\n\nexport { itmToQueryString, decorateUrlWithItm };\n","import { getAllProducts } from './next-shipping-selectors';\n\nexport const getSelectedShippingOptions = state => {\n const result = getAllProducts(state)\n .filter(product => product.selected)\n .map(product => {\n const cost =\n product.cost || product.cost === 0\n ? product.cost\n : product.selectedVariant\n ? product.selectedVariant.price\n : product.cost;\n return {\n type: product.type,\n cost,\n name: product.name,\n summaryDisplayName: product.summaryDisplayName,\n weight: product.weight,\n productId: product.productId\n };\n });\n\n if (state.takeawayDeliveryAccepted) {\n const takeAwayOption =\n result.length === 0\n ? {\n type: 'TakeawayOnly',\n name: 'Endast avhämtning',\n summaryDisplayName: 'Endast avhämtning'\n }\n : {\n type: 'Takeaway',\n name: 'Avhämtning',\n summaryDisplayName: 'Avhämtning'\n };\n result.push(takeAwayOption);\n }\n return result;\n};\n","import * as gtm from 'tradera-apps/tradera/components/discover/helpers/search-gtm';\nimport googleTagManagerService from 'app/ui/google-tagmanager-service';\nimport { logger } from 'packages';\n\nimport { getSearchResults } from './api';\nimport actionTypes from './action-types';\nimport itemActions from '../items/actions';\nimport pageActions from '../page/actions';\nimport adsActions from '../ads/actions';\nimport { API_ERRORS } from 'tradera-utils/api';\nimport { reload } from 'tradera-utils/location';\nimport initialState from './initial-state';\nimport PAGE_TYPES from 'tradera-constants/page-types';\n\nconst requestSearchResults = payload => {\n return {\n type: actionTypes.REQUEST_SEARCH_RESULTS,\n payload\n };\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: {\n categoryPath,\n fallbackItems,\n items,\n itemsOnDisplay,\n reduxContainer\n },\n queryParams\n } = payload;\n\n const { page } = getState();\n const ads = reduxContainer?.ads;\n const pageMeta = reduxContainer?.pageMeta;\n if (pageMeta) dispatch(pageActions.setPageMeta(pageMeta));\n if (ads) dispatch(adsActions.setAds(ads));\n\n googleTagManagerService.newPage(page.type);\n gtm.trackNewSearch(categoryPath, items, pageMeta ? pageMeta.metaTitle : ''); //pageMeta.metaTitle only from cms api\n if (page.type === PAGE_TYPES.SEARCH_RESULT_PAGE && items) {\n googleTagManagerService.trackGtmEvent('search', {\n searchQuery: queryParams.q,\n itemIds: items.map(item => item.itemId)\n });\n }\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 return dispatch({\n type: actionTypes.RECEIVE_SEARCH_RESULTS,\n payload\n });\n};\n\nconst fetchSearchResults = (endpoint, queryParams) => {\n return async (dispatch, getState) => {\n dispatch(requestSearchResults({ endpoint, queryParams }));\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 };\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\nexport default {\n addItemOnDisplay,\n fetchSearchResults,\n receiveSearchResults,\n removeItemOnDisplay,\n requestSearchResults,\n setCategoryPath,\n setCurrentCategoryId,\n setSingleFilterValue,\n reset\n};\n","/**\n * These functions control loading and opening of a Mopinion feedback widget.\n * We use this because we do not want to load the Mopinion script on each page load.\n */\n\nimport initData from 'init-data';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\n\nconst mopinionDeploymentId = 'wn05g86aghlgi91ctabv3m29illmqf7nfx4';\nconst messagingFeedbackForm = '6f7ae9cf201115236e162e097ef108046c2cb431';\nconst generalFeedbackForm = '06b06d1a56fda2f980b754939a1b4c1389bd9c2b';\nconst languageFeedbackForm = 'b418052da5fb4f4dfb3acb004b7519d12df8f49e';\nconst newMemberBankIdForm = 'f8753de9f8dee44348f52ec8fd4ea4af7c25d847';\nconst paynovaFeedbackForm = '6bf2e4a9c78ecb545d8ae6af8c05939f59f30261';\nconst automaticSuggestionFeedbackForm =\n '85cd25ff981e262f06ae7f24b569f3f3131a9b94';\n\n/**\n * Returns true if Mopinion widgets is enabled.\n */\nconst isEnabled = () => {\n return (\n initData &&\n initData.featureSwitches &&\n initData.featureSwitches['mopinion-feedback-widgets'] &&\n GdprSettings.isFunctionalEnabled()\n );\n};\n\n/**\n * Returns true if Mopinion widgets is enabled.\n */\nconst isMemberDataEnabled = () => {\n return (\n initData &&\n initData.featureSwitches &&\n initData.featureSwitches['mopinion-member-data']\n );\n};\n\n/**\n * Adds the Mopinion script to the page.\n */\nconst addScriptToDom = () => {\n if (!isEnabled()) {\n return;\n }\n const dataAttributeName = 'data-mopinion-script';\n if (document.querySelector(`[${dataAttributeName}]`)) {\n return;\n }\n const js = document.createElement('script');\n js.setAttribute(dataAttributeName, '1');\n js.setAttribute('type', 'text/javascript');\n js.setAttribute('src', '//deploy.mopinion.com/js/pastease.js');\n document.getElementsByTagName('head')[0].appendChild(js);\n loadMopinionWidget();\n};\n\n/**\n * Loads the Mopinion survey with the given ID.\n * @param {String} memberId The currently logged in member\n * @param {String} mopinionDeploymentId The ID of the Mopinion survey\n */\nconst loadMopinionWidget = () => {\n if (!isEnabled()) {\n return;\n }\n let attemptsLeft = 100;\n const timeBetweenAttempts = 50;\n const t = setInterval(function() {\n if (window.Pastease) {\n new window.Pastease.load(mopinionDeploymentId);\n clearInterval(t);\n } else if (--attemptsLeft < 1) {\n clearInterval(t);\n }\n }, timeBetweenAttempts);\n};\n\n/**\n * Opens the Mopinion widget that is currently loaded.\n */\nconst openMopinionWidget = formKey => {\n if (!isEnabled()) {\n return;\n }\n addScriptToDom();\n let attemptsLeft = 100;\n const timeBetweenAttempts = 50;\n const t = setInterval(function() {\n if (window.srv) {\n if (isMemberDataEnabled()) {\n const { memberId, memberEmail, splitTestGroups } = initData;\n window.memberId = memberId;\n window.memberEmail = memberEmail;\n window.splittest_attribute_suggestion_extractor =\n splitTestGroups['attribute_suggestion_extractor'];\n }\n setTimeout(() => {\n window.srv.openModal(true, formKey);\n }, 100);\n clearInterval(t);\n } else if (--attemptsLeft < 1) {\n clearInterval(t);\n }\n }, timeBetweenAttempts);\n};\n\nexport {\n messagingFeedbackForm,\n generalFeedbackForm,\n languageFeedbackForm,\n newMemberBankIdForm,\n isEnabled,\n openMopinionWidget,\n paynovaFeedbackForm,\n automaticSuggestionFeedbackForm\n};\n","// @ts-check\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\n\n/**\n * Return breakpoint label for given width\n *\n * @param {int} [width]\n * @returns {string|null}\n */\nfunction getCurrentBreakpoint(width = window.innerWidth) {\n for (let { min, max, name } of Object.values(BREAKPOINT_SIZES)) {\n if (width >= min && width <= max) {\n return name;\n }\n }\n return null;\n}\n\n/**\n * Check if current width is within a given breakpoint range\n *\n * @param {string} name\n * @param {int} [width]\n * @returns {boolean}\n */\nfunction isBreakpoint(name, width = window.innerWidth) {\n return (\n width >= BREAKPOINT_SIZES[name].min &&\n width <= BREAKPOINT_SIZES[name].max\n );\n}\n\n/**\n * Check if current width is in a given breakpoint range or below\n *\n * @param {string} name\n * @param {int} [width]\n * @returns {boolean}\n */\nfunction isBreakpointOrLower(name, width = window.innerWidth) {\n return width <= BREAKPOINT_SIZES[name].max;\n}\n\n/**\n * Check if current width is in a given breakpoint range or above\n *\n * @param {string} name\n * @param {int} [width]\n * @returns {boolean}\n */\nfunction isBreakpointOrHigher(name, width = window.innerWidth) {\n return width >= BREAKPOINT_SIZES[name].min;\n}\n\n/**\n * Check if current breakpoint is classified as desktop (large and above)\n *\n * @returns {boolean}\n */\nfunction isDesktop() {\n return isBreakpointOrHigher(BREAKPOINTS.LG);\n}\n\n/**\n * Check if current breakpoint is classified as tablet (medium)\n *\n * @returns {boolean}\n */\nfunction isTablet() {\n return isBreakpoint(BREAKPOINTS.MD);\n}\n\n/**\n * Check if current breakpoint is classified as mobile (small and below)\n * @param {int} [width]\n * @returns {boolean}\n */\nfunction isMobile(width = window.innerWidth) {\n return isBreakpointOrLower(BREAKPOINTS.SM, width);\n}\n\nexport {\n BREAKPOINTS,\n BREAKPOINT_SIZES,\n getCurrentBreakpoint,\n isBreakpoint,\n isBreakpointOrLower,\n isBreakpointOrHigher,\n isDesktop,\n isTablet,\n isMobile\n};\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport RadioSwitch from 'tradera-components/form-controls/radio-switch';\n\nconst ContentSwitch = props => {\n const { className, defaultSelected, onSwitch, options, title } = props;\n const [selected, setSelected] = useState(\n defaultSelected || Object.keys(options)[0]\n );\n // Keep track of which options have been shown to only render what's needed\n const [renderedOptions, setRenderedOptions] = useState([selected]);\n const onChange = useCallback(\n selected => {\n if (!renderedOptions.includes(selected)) {\n setRenderedOptions([...renderedOptions, selected]);\n }\n setSelected(selected);\n if (onSwitch) onSwitch(selected);\n },\n [onSwitch, renderedOptions, setRenderedOptions, setSelected]\n );\n\n return (\n
    \n
    \n {title && (\n

    \n {title}\n

    \n )}\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","export default {\n AUCTION: 'Auction',\n CART: 'Cart',\n BIN: 'Bin'\n};\n","import { logger } from 'packages';\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) => {\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 (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) => {\n if (hasEnded) {\n return getEndedItemState(\n itemType,\n bidCount,\n reservePriceReached,\n openingBid,\n nextValidBidAmount,\n transactionType,\n leadingBidMemberId\n );\n }\n return getOngoingItemState(itemType);\n};\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang';\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","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","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\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","/*\n * OBSOLETE - use google tag manager service instead:\n * src\\EbaySweden.TouchWeb\\static\\script\\app\\ui\\google-tagmanager-service.js\n *\n */\n\nexport default new (function() {\n var timers = {};\n var sentCounter = {};\n\n function pushToDataLayer(payload) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(payload);\n }\n\n this.trackAddonAfterPublish = function(addOnfeatureName) {\n const isPageOpenedFromMail =\n window.location.pathname.indexOf('/selling/features') > -1;\n const label = isPageOpenedFromMail\n ? 'After Publish Mail'\n : 'After Publish';\n this.trackEvent({\n category: 'Listing AddOns',\n action: addOnfeatureName,\n label: label\n });\n };\n\n this.trackAddonBeforePublish = function(addOnfeatureName) {\n this.trackEvent({\n category: 'Listing AddOns',\n action: addOnfeatureName,\n label: 'Before Publish'\n });\n };\n\n this.trackPageView = function() {\n pushToDataLayer({ event: 'trackPageview' });\n };\n\n this.trackTiming = function(analyticsData) {\n pushToDataLayer({\n event: 'timing',\n timingCategory: analyticsData.category || '',\n timingVar: analyticsData.variable || '',\n timingValue: analyticsData.value || '',\n timingLabel: analyticsData.label || ''\n });\n };\n\n this.startTimer = function(name) {\n timers[name] = new Date().getTime();\n sentCounter[name] = 0;\n };\n\n this.sendTimer = function(name, analyticsData) {\n var duration = +new Date().getTime() - timers[name];\n\n analyticsData.label = Math.round(duration / 1000) + ' s';\n\n this.trackSellItemEvent(analyticsData);\n\n sentCounter[name] += 1;\n };\n\n this.sendTimerOnce = function(name, analyticsData) {\n if (sentCounter[name] === 0) {\n this.sendTimer(name, analyticsData);\n }\n };\n\n this.trackEvent = function(analyticsData) {\n pushToDataLayer({\n event: 'trackEvent',\n eventCategory: analyticsData.category || '',\n eventAction: analyticsData.action || '',\n eventLabel: analyticsData.label || '',\n eventValue: analyticsData.value || '0'\n });\n };\n})();\n","//jshint module : true\nimport actionTypes from './action-types';\n\nconst setPageType = type => {\n return {\n type: actionTypes.SET_PAGE_TYPE,\n payload: type\n };\n};\n\nconst setPageMeta = meta => {\n return {\n type: actionTypes.SET_PAGE_META,\n payload: meta\n };\n};\n\nconst setPageMetaFromSearchResult = meta => (dispatch, getState) => {\n const { page } = getState();\n if (page.blockMetaTitleFromSearchResult) {\n delete meta.metaTitle;\n }\n dispatch({\n type: actionTypes.SET_PAGE_META_FROM_SEARCH_RESULT,\n payload: meta\n });\n};\n\nexport default {\n setPageType,\n setPageMeta,\n setPageMetaFromSearchResult\n};\n","export default {\n ACTIVE_FILTER_STATES: [\n 'New',\n 'Used',\n 'Private',\n 'Company',\n 'Ended',\n 'Auction',\n 'FixedPrice',\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 'eu;international',\n 'nordic;international',\n '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 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 'underscore';\n\nvar 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, action) => {\n state = state || initialState;\n switch (action.type) {\n case 'RESET_CHARITY':\n return _.assign({}, initialState);\n case 'SET_CHARITY':\n return _.assign({}, state, {\n charityId: action.charity.charityId,\n forceFreeShipping: action.charity.forceFreeShipping,\n name: action.charity.name,\n description: action.charity.description,\n isSchenkerPaidBySchenker: isSchenkerPaying(action.campaignCode),\n allowZeroDayAuctions: action.charity.allowZeroDayAuctions\n });\n\n default:\n return state;\n }\n};\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { Analytics } from 'packages';\nimport { VIEW_ITEM_STATES } from './constants';\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 adsActions from 'tradera-state/ads/actions';\nimport pageActions from 'tradera-state/page/actions';\nimport {\n selectBidInfo,\n selectItemId,\n selectItemDetails,\n selectBreadcrumbs\n} from './selectors';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getItemState } from './item-state-helper';\nimport history from 'tradera-utils/history';\nimport { BID_VALIDATION_RESULTS } from '../../../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 initialState = {\n initialBidFormValue: null,\n bidInfo: null,\n breadCrumbs: [],\n isBidding: false,\n isLoading: false,\n itemDetails: {},\n itemState: null,\n viewItemState: null,\n myMaxBidAmount: null,\n placeBidResponse: initialPlaceBidResponse,\n serverSecondsLeft: null,\n translatedDescription: null,\n translatedDescriptionLoading: false,\n translatedDescriptionLoadingError: false,\n vipLiveUpdatesEnabled: false,\n vipLiveUpdatesUrl: null\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 setIsApprovedBuyer: (state, { payload }) => {\n state.itemDetails.isApprovedBuyer = payload;\n },\n setVipLiveUpdate: (\n state,\n { payload: { vipLiveUpdatesEnabled, vipLiveUpdatesUrl } }\n ) => {\n state.vipLiveUpdatesEnabled = vipLiveUpdatesEnabled;\n state.vipLiveUpdatesUrl = vipLiveUpdatesUrl;\n },\n setItemDetails: (state, { payload: itemDetails }) => {\n state.itemDetails = itemDetails;\n state.itemDetails.images = itemDetails.images.map(img => ({\n thumbnail: img.thumbnail,\n multiThumbnail: img.thumbnail,\n medium: img.medium || img.small,\n normal: img.normal,\n alt: img.alt || img.altText\n }));\n },\n setBreadCrumbs: (state, { payload: breadCrumbs }) => {\n state.breadCrumbs = breadCrumbs.map(({ href, text }, index) => ({\n id: index,\n url: href,\n name: text\n }));\n },\n setIsLoading: (state, { payload: isLoading }) => {\n state.isLoading = isLoading;\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, memberId } }) => {\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 isLatestBid =\n isFirstBidInfo || 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.translatedDescriptionLoading = false;\n state.translatedDescriptionLoadingError = false;\n },\n resetTranslatedDescription: {\n reducer: state => {\n state.translatedDescription = null;\n state.translatedDescriptionLoading = false;\n state.translatedDescriptionLoadingError = false;\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.translatedDescriptionLoading = true;\n state.translatedDescriptionLoadingError = false;\n },\n failedLoadingTranslatedDescription: state => {\n state.translatedDescriptionLoading = false;\n state.translatedDescriptionLoadingError = true;\n },\n setSellerItems: (state, { payload }) => {\n state.sellerItems = payload;\n }\n }\n});\n\nexport default viewItemSlice.reducer;\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(\n viewItemSlice.actions.setVipLiveUpdate({\n vipLiveUpdatesEnabled: itemModel.vipLiveUpdatesEnabled,\n vipLiveUpdatesUrl: itemModel.vipLiveUpdatesUrl\n })\n );\n dispatch(viewItemSlice.actions.setBreadCrumbs(itemModel.breadCrumbs));\n dispatch(\n viewItemSlice.actions.setBidInfo({\n bidInfo: itemModel.bidInfo,\n memberId\n })\n );\n\n if (itemModel.bidInfo.maxBidAmount) {\n dispatch(\n viewItemSlice.actions.setMyMaxBidAmount(\n itemModel.bidInfo.maxBidAmount\n )\n );\n }\n dispatch(\n viewItemSlice.actions.setViewItemState(\n itemModel.itemDetails.hasEnded\n ? VIEW_ITEM_STATES.ENDED\n : VIEW_ITEM_STATES.ACTIVE\n )\n );\n dispatch(\n updateItemState(\n selectItemDetails(getState()),\n selectBidInfo(getState())\n )\n );\n\n dispatch(adsActions.setAds(itemModel.reduxContainer.ads));\n dispatch(pageActions.setPageMeta(itemModel.reduxContainer.pageMeta));\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 GtmService.push({\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 });\n\n GtmService.trackGtmEvent('viewItem', {\n itemType: currentItemDetails.itemType,\n itemId: currentItemDetails.itemId,\n itemFixedPrice: currentItemDetails.fixedPrice || 0,\n itemCategory: swedishCategoryPath\n });\n};\n\nconst updateItemState = (itemDetails, bidInfo) => dispatch => {\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 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 history.replace({\n pathname: itemModel.reduxContainer.pageMeta.canonicalLink,\n search: window.location.search\n });\n }\n};\n\nexport const fetchItemAndBidInfo = itemId => async (dispatch, getState) => {\n const { memberId = 0 } = getState().member;\n\n dispatch(viewItemSlice.actions.setIsLoading(true));\n let itemModel = (await getItemApi(itemId)).data;\n ensureCorrectUrlForItem(itemId, itemModel);\n dispatch(handleItemModel(itemModel, memberId));\n dispatch(viewItemSlice.actions.setIsLoading(false));\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) => async (\n dispatch,\n getStore\n) => {\n const shouldNotTrackWishlistEventBecauseNeedsToBeSameAsLegacyVip = true;\n const itemDetails = getStore().views.viewItem.itemDetails;\n let inWishListNewValue = await dispatch(\n itemActions.wishlist(\n itemId,\n !itemDetails.inWishList || forceAdd,\n shouldNotTrackWishlistEventBecauseNeedsToBeSameAsLegacyVip\n )\n );\n dispatch(\n viewItemSlice.actions.setItemDetails({\n ...itemDetails,\n inWishList: inWishListNewValue\n })\n );\n if (inWishListNewValue !== undefined) {\n analytics.trackWishlist(itemId, inWishListNewValue);\n }\n};\n\nexport const placeBid = (itemId, memberId, amount, onLoggedOut) => async (\n dispatch,\n getState\n) => {\n dispatch(viewItemSlice.actions.setIsBidding(true));\n try {\n const result = await placeBidApi(itemId, amount, onLoggedOut);\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(viewItemSlice.actions.setBidInfo({ bidInfo, memberId }));\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 resetInitialState,\n resetPlaceBidResponse,\n resetTranslatedDescription,\n setBidInfo,\n setIsApprovedBuyer,\n setViewItemState,\n setTranslatedDescription,\n setSellerItems\n} = viewItemSlice.actions;\n","import config from 'tradera-apps/syi/script/app_react/services/config';\nimport userData from 'tradera-apps/syi/script/app_react/services/user-data';\nimport { getSyiSlice } from 'tradera-state/configure-store';\n\nconst updatePrices = () => (dispatch, getState) => {\n const priceInfo = {\n auctionCommission: 0,\n fixedPriceCommission: 0,\n featureFees: [],\n feesTotal: 0\n };\n\n const state = getSyiSlice(getState());\n\n const commissionShare = 0.1;\n const commissionMinimum = config.commissionMinimum;\n const commissionCap = config.commissionCap;\n\n if (state.price.openingBid) {\n priceInfo.auctionCommission = Math.min(\n Math.max(\n state.price.openingBid * commissionShare,\n commissionMinimum\n ),\n commissionCap\n );\n }\n\n if (state.price.fixedPrice) {\n priceInfo.fixedPriceCommission = Math.min(\n Math.max(\n state.price.fixedPrice * commissionShare,\n commissionMinimum\n ),\n commissionCap\n );\n }\n\n if (state.price.reservePrice) {\n priceInfo.featureFees.push({\n description: 'Reservationspris',\n price: 40\n });\n }\n\n if (\n _.isString(state.itemDuration.customEndTimeHour) &&\n _.isString(state.itemDuration.customEndTimeMinute)\n ) {\n priceInfo.featureFees.push({\n description: 'Vald sluttid',\n price: state.itemDuration.customEndTimePrice\n });\n }\n\n if (state.extraFeatures.shippingBags) {\n const { value: price } =\n config.shippingBagAmountsPrices.find(\n amountPrice =>\n amountPrice.key === state.extraFeatures.shippingBags\n ) || {};\n if (price) {\n priceInfo.featureFees.push({\n description: 'Fraktpåsar',\n price\n });\n }\n }\n\n if (state.extraFeatures.displayHighlighted) {\n priceInfo.featureFees.push({\n description: 'Highlight',\n price: config.highlightFeaturePrice\n });\n }\n\n if (state.extraFeatures.displayPromoted) {\n priceInfo.featureFees.push({\n description: 'Rank up',\n price: 45\n });\n }\n\n priceInfo.feesTotal = _.reduce(\n priceInfo.featureFees,\n function(memo, fee) {\n return memo + fee.price;\n },\n 0\n );\n\n dispatch({\n type: 'SET_CHOSEN_EXTRA_FEATURES',\n payload: priceInfo.featureFees\n });\n};\n\nconst setDiscountFactor = discountFactor => ({\n type: 'SET_DISCOUNT_FACTOR',\n discountFactor: discountFactor\n});\n\nconst resetDiscountFactor = () => ({\n type: 'RESET_DISCOUNT_FACTOR'\n});\n\nconst setCampaignCommission = campaignCommissionProcent => ({\n type: 'SET_CAMPAIGN_COMMISSION_PROCENT',\n campaignCommissionProcent: campaignCommissionProcent\n});\n\nconst resetCampaignCommission = () => ({\n type: 'RESET_CAMPAIGN_COMMISSION_PROCENT'\n});\n\nconst updateMaxCommission = () => (dispatch, getState) => {\n let maxFeeCap = getSyiSlice(getState()).campaignCode.maxFeeCap;\n const isDomainNameCategory =\n getSyiSlice(getState()).category.draftCategoryId ===\n config.domainNameCategoryId;\n if (maxFeeCap === null || isDomainNameCategory) {\n dispatch({\n type: 'SET_MAX_COMMISSION_COST',\n payload: {\n maxCommissionCost: isDomainNameCategory\n ? undefined\n : config.commissionCap,\n isCategoryWithNoCommissionCap: isDomainNameCategory\n }\n });\n } else {\n dispatch({\n type: 'SET_MAX_COMMISSION_COST',\n payload: {\n maxCommissionCost: maxFeeCap,\n isCategoryWithNoCommissionCap: false\n }\n });\n }\n};\n\nconst updateCommission = () => (dispatch, getState) => {\n let campaignCommissionProcent = getSyiSlice(getState()).fees\n .campaignCommissionProcent;\n if (campaignCommissionProcent === null) {\n const isDomainNameCategory =\n getSyiSlice(getState()).category.draftCategoryId ===\n config.domainNameCategoryId;\n if (userData.isCompanyUser) {\n let companyMinCommissionProcent = 5;\n let companyMaxCommissionProcent = 8;\n let discountFactor = getSyiSlice(getState()).fees.discountFactor;\n if (discountFactor !== null) {\n companyMinCommissionProcent =\n companyMinCommissionProcent * (1 - discountFactor);\n companyMaxCommissionProcent =\n companyMaxCommissionProcent * (1 - discountFactor);\n }\n\n let commissionProcent = '0';\n if (companyMaxCommissionProcent > 0) {\n commissionProcent = isDomainNameCategory\n ? companyMaxCommissionProcent.toString()\n : companyMinCommissionProcent +\n ' - ' +\n companyMaxCommissionProcent;\n }\n\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: commissionProcent\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: true\n });\n } else {\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: '10'\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: false\n });\n }\n } else {\n dispatch({\n type: 'SET_COMMISSION_PROCENT',\n commissionProcent: campaignCommissionProcent\n });\n dispatch({\n type: 'SET_IS_VARIABLE_COMMISSION',\n payload: false\n });\n }\n};\n\nexport default {\n updatePrices,\n updateCommission,\n setDiscountFactor,\n resetDiscountFactor,\n setCampaignCommission,\n resetCampaignCommission,\n updateMaxCommission\n};\n","import { validateValidShippingPrice } from './validate-valid-shipping-price';\nimport { getAllProviders } from './next-shipping-selectors';\n\nconst errors = {\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 let hasAnyNonValidOption = false;\n let hasAnyValidOption = false;\n let weightIsInvalid = false;\n\n getAllProviders(newState).forEach(provider => {\n provider.products.forEach(product => {\n if (!product.selected) {\n // Not selected, set to valid without error\n product.isValid = true;\n product.validationError = null;\n product.isWeightValid = true;\n product.weightValidationError = null;\n } else {\n const errorMessage = validateValidShippingPrice(\n product,\n provider.useAdvancedWidget\n );\n if (errorMessage) {\n product.isValid = false;\n product.validationError = errorMessage;\n hasAnyNonValidOption = true;\n } else {\n product.isValid = true;\n product.validationError = null;\n hasAnyValidOption = true;\n }\n if (provider.useAdvancedWidget && !product.productId) {\n product.isWeightValid = false;\n product.weightValidationError = errors.weight;\n weightIsInvalid = true;\n } else {\n product.isWeightValid = true;\n product.weightValidationError = null;\n }\n }\n });\n });\n\n const getFirstValidationError = () => {\n if (!newState.takeawayDeliveryAccepted && !hasAnyValidOption)\n return errors.empty;\n if (hasAnyNonValidOption) return errors.invalid;\n if (weightIsInvalid) return errors.weight;\n if (\n newState.selectedShippingOptions.length > 1 &&\n JSON.stringify(newState.selectedShippingOptions[0]) ==\n JSON.stringify(newState.selectedShippingOptions[1])\n )\n return errors.duplicate;\n return null;\n };\n\n newState.validationError = getFirstValidationError();\n return newState;\n}\n","export function validateValidShippingPrice(so, isAdvanced) {\n if (\n so.type == null ||\n so.type === '' ||\n so.type === 'Takeaway' ||\n so.type === 'TakeawayOnly'\n ) {\n return null;\n }\n if (so.cost === null || so.cost === undefined) {\n return isAdvanced ? null : 'syi_validation_shipping_price_missing';\n }\n if (!isInt(so.cost)) {\n return 'syi_validation_shipping_amount_whole_number';\n }\n if (so.cost > 10000) {\n return 'syi_validation_shipping_max_price';\n }\n if (so.cost < 0) {\n return 'syi_validation_shipping_min_price';\n }\n return null;\n}\n\nfunction isInt(number) {\n return number % 1 === 0;\n}\n","export { default } from './application-error-boundary';\n","/* eslint-disable promise/always-return */\n/* eslint-disable promise/catch-or-return */\nimport 'underscore';\nimport { touchWebClient } from 'tradera-utils/http';\n\nvar _cache = {};\nvar _title = '';\n\nfunction existsInCache(categoryId) {\n return !_.isUndefined(_cache[categoryId]);\n}\n\nconst clearCache = title => {\n if ((!_title && !title) || _title === title) {\n return;\n }\n _cache = {};\n};\n\nconst loadTopCategories = title => {\n return new Promise((resolve, reject) => {\n clearCache(title);\n _title = title;\n\n if (_cache.topCategories) {\n resolve(_cache.topCategories);\n } else {\n touchWebClient\n .post('/selling/toplevelcategorysuggestions', {\n title: title || ''\n })\n .then(function(result) {\n _cache.topCategories = result.data;\n resolve(result.data);\n })\n .catch(reject);\n }\n });\n};\n\nconst loadChildCategories = (title, categoryId, level) => {\n return new Promise((resolve, reject) => {\n _title = title;\n if (!categoryId) {\n reject();\n return;\n }\n\n if (existsInCache(categoryId)) {\n resolve(_cache[categoryId]);\n } else {\n const levelToSearch = level + 1;\n const params = {\n title: title || '',\n categoryId: categoryId,\n levelToSearch\n };\n touchWebClient\n .post('/selling/categorysuggestions', params, {\n cancelTokenId: `cancel-category-level-search-${levelToSearch}`\n })\n .then(function(result) {\n _cache[categoryId] = result.data;\n resolve(result.data);\n })\n .catch(reject);\n }\n });\n};\n\nconst prefetchChildren = (title, categories, level) => {\n _title = title;\n var allCategories = categories.categories.concat(categories.suggestions);\n var ids = _.chain(allCategories)\n .filter(function(c) {\n return !existsInCache(c.categoryId);\n })\n .map(function(c) {\n return c.categoryId;\n })\n .value();\n\n if (_.isEmpty(ids)) {\n return;\n }\n\n var params = {\n title: _title || '',\n categoryIds: ids,\n levelToSearch: level + 1\n };\n\n touchWebClient\n .post('/selling/childcategorysuggestions', params)\n // eslint-disable-next-line promise/always-return\n .then(function(result) {\n _.each(result.data, function(categoryInfo) {\n _cache[categoryInfo.categoryId] = categoryInfo;\n });\n });\n};\n\nexport default {\n clearCache,\n loadTopCategories,\n loadChildCategories,\n prefetchChildren\n};\n","export const HOVER_MENUS = {\n WISHLIST: 'Wishlist',\n SELL: 'Selling',\n BUY: 'Buying',\n LOCALIZATION: 'Localization'\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CartIcon from '@tradera/blueprint/theme/icons2/cart.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport useIsFeatureEnabled from 'tradera-hooks/use-is-feature-enabled';\n\nconst CartLink = ({ formattedCartItems, cartSum, transparentHeader }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const cartUrl = useIsFeatureEnabled('react-cart')\n ? toLocalizedUrl('/shopping/cart')\n : toLocalizedUrl('/Shopping/CartOverview');\n return (\n
    \n \n \n {formattedCartItems}\n \n
    \n \n
    \n
    \n \n {t('siteHeader_cart')}\n \n \n {cartSum} kr\n \n
    \n \n
    \n );\n};\n\nCartLink.propTypes = {\n formattedCartItems: PropTypes.number,\n cartSum: PropTypes.string\n};\n\nexport default React.memo(CartLink);\n","import React from 'react';\nimport './dropdown-menu-burger.scss';\nimport { useTranslator } from 'tradera-lang';\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 qs from 'qs';\n\nconst parseItmObject = itm =>\n Object.assign(\n {},\n ...Object.keys(itm).map(key => ({\n [`itm_${key}`]: itm[key]\n }))\n );\n\n/**\n * Converts an itm object to query string\n * @param {Object} itm - Object containing the itm properties\n * @param {string} itm.source - Reference to the referring location/page e.g: 'vip'\n * @param {string} itm.medium - Reference to the unique element e.g 'suggest-from-blueshift'\n */\nconst itmToQueryString = itm =>\n !itm ? '' : `?${qs.stringify(parseItmObject(itm))}`;\n\n/**\n * Converts itm to query string and appends it to given url\n * @param {string} url\n * @param {Object} itm - See definition above\n * @returns {string}\n */\nconst decorateUrlWithItm = (url, itm) => {\n if (!url || !itm) {\n return url;\n }\n\n const itmQueryString = parseItmObject(itm);\n const stringified = qs.stringify(itmQueryString);\n\n return url.includes('?')\n ? `${url}&${stringified}`\n : `${url}?${stringified}`;\n};\n\nexport { itmToQueryString, decorateUrlWithItm };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { decorateUrlWithItm } from 'utils/itm';\nimport ALink from 'tradera-components/alink/alink';\n\nconst MenuItemButton = ({\n className,\n containerClass,\n follow,\n gaAttributes,\n inSPA,\n itm,\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 { decorateUrlWithItm } from 'utils/itm';\nimport ALink from 'tradera-components/alink/alink';\n\nconst MenuItem = ({\n alerts,\n bold,\n border,\n className,\n follow,\n gaAttributes,\n icon,\n imageUrl,\n inSPA,\n itm,\n label,\n link,\n notify,\n notificationDot,\n onClick\n}) => {\n const containerClass = `site-dropdown__item d-flex flex-row align-items-center ${\n alerts?.length > 0 ? 'flex-wrap' : ''\n } ${className} `;\n\n return (\n
  • \n {link ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
  • \n );\n};\n\nconst MenuItemContent = ({\n icon,\n bold,\n imageUrl,\n label,\n notify,\n alerts,\n notificationDot\n}) => {\n return (\n <>\n {icon && (\n \n {icon}\n \n )}\n \n {label}\n \n \n \n \n {alerts}\n \n );\n};\n\nconst NotificationDot = ({ notify, notificationDot }) => {\n if (notify > 0) {\n return (\n \n {notify}\n \n );\n }\n\n switch (notificationDot) {\n case 'info':\n case 'success':\n case 'warning':\n case 'danger':\n return (\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 onClick = () => {\n this.setState(\n prevState => ({\n expanded: !prevState.expanded\n }),\n () => {\n const { onOpen = () => {}, onClose = () => {} } = this.props;\n if (this.state.expanded) {\n onOpen();\n } else {\n onClose();\n }\n }\n );\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.defaultExpanded !== this.props.defaultExpanded) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ expanded: prevProps.defaultExpanded });\n }\n }\n\n render() {\n const {\n imageUrl,\n icon,\n label,\n className,\n imageContainerClassName,\n border,\n children\n } = this.props;\n const { expanded } = this.state;\n\n return (\n \n \n \n {icon && (\n \n {icon}\n \n )}\n \n {label}\n \n \n {expanded ? (\n \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","/**\n * Factory for the dropdown menu\n */\nimport React, { Fragment } from 'react';\nimport MediaQuery from 'react-responsive';\n\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport { filterCategories } from 'tradera-apps/tradera/pages/category-page';\nimport MenuItemSeparator from 'tradera-components/site-header/dropdown-menu-item-separator';\nimport MenuItemButton from 'tradera-components/site-header/dropdown-menu-item-button';\nimport MenuItem from 'tradera-components/site-header/dropdown-menu-item';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport ALink from 'tradera-components/alink/alink';\nimport CategoryIcon from '@tradera/blueprint/theme/icons2/category.svg?jsx';\nimport EndingSoonIcon from '@tradera/blueprint/theme/icons2/branded-ending.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport LoadingIcon from '@tradera/blueprint/theme/icons2/loading.svg?jsx';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport RecommendedIcon from '@tradera/blueprint/theme/icons2/branded-recommended.svg?jsx';\nimport SearchIcon from '@tradera/blueprint/theme/icons2/search.svg?jsx';\nimport BrandIcon from '@tradera/blueprint/theme/icons2/sale.svg?jsx';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user.svg?jsx';\nimport { getCategoryIcon } from 'tradera-helpers/category-icon-helper';\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 = ({\n categories,\n inSPA,\n isLoggedIn,\n onClick,\n pageName,\n trackAnalytics\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const itm = {\n source: pageName || 'undefined',\n medium: 'dropdown-menu'\n };\n\n const mediaProps = { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].max };\n\n // Only show rebate codes for non logged in users\n const categoryList = categories.list\n .map(category => ({ ...category, open: false }))\n .filter(category => !isLoggedIn || (isLoggedIn && category.id !== 0));\n\n return (\n
      \n {/* NOTE: Notifications are disabled for burger button for desktop due to hidden cart and messaging, see DropDownMenuHamburger */}\n \n {!isLoggedIn && (\n \n }\n inSPA={inSPA}\n label={t('siteHeader_howTo')}\n link={toLocalizedUrl('/how-to-buy')}\n onClick={onClick}\n />\n }\n inSPA={false}\n label={t('siteHeader_register')}\n link=\"/register\"\n onClick={onClick}\n />\n }\n inSPA={false}\n label={t('siteHeader_createItem')}\n link={toLocalizedUrl('/selling')}\n onClick={onClick}\n />\n \n )}\n \n\n }\n inSPA={false}\n itm={itm}\n label={\n isLoggedIn\n ? t('siteHeader_recommendedForYou')\n : t('siteHeader_recommendedAnonymous')\n }\n link={toLocalizedUrl('/ma/endless-recommendation/endingSoon')}\n onClick={onClick}\n />\n }\n inSPA={inSPA}\n itm={itm}\n label={t('siteHeader_lastChance')}\n link={toLocalizedUrl('/campaign/sista-chansen?sortBy=TimeLeft')}\n onClick={onClick}\n />\n }\n inSPA={inSPA}\n itm={itm}\n label={t('siteHeader_brands')}\n link={toLocalizedUrl('/brands')}\n onClick={onClick}\n />\n\n {!categories.error && (\n \n \n \n \n {t('siteHeader_categoriesAll')}\n \n \n }\n />\n {categories.isFetching ? (\n }\n label={`${t('siteHeader_loading')}`}\n />\n ) : (\n \n )}\n \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 handleFilterBlur = () => {\n this.props.trackAnalytics('Category Search');\n };\n\n handleFilterKey = event => {\n const { key, target } = event;\n switch (key) {\n case 'Escape':\n event.stopPropagation();\n if (this.state.filter === '') {\n event.target.blur();\n }\n this.filterCategories('');\n break;\n case 'Enter':\n event.stopPropagation();\n target.blur();\n break;\n }\n };\n\n filterCategories = filter => {\n this.setState({\n filter,\n filteredCategories: filterCategories(\n this.props.categoryList,\n filter\n )\n });\n };\n\n componentDidUpdate(prevProps) {\n if (this.props.categoryList.length !== prevProps.categoryList.length) {\n filterCategories(prevProps.categoryList, this.state.filter);\n }\n }\n\n render() {\n const {\n inSPA,\n itm,\n trackAnalytics,\n searchPlaceholder,\n onClick\n } = 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 },\n inSPA = false,\n itm,\n onClick,\n trackAnalytics\n}) => {\n return (\n trackAnalytics(`Open - ${title}`)}\n onClose={() => trackAnalytics(`Close - ${title}`)}>\n {categoryNodes.map(categoryNode => {\n if (categoryNode.isTopLevel) {\n return (\n ${categoryNode.title}`\n )}\n inSPA={inSPA}\n itm={itm}\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 itm={itm}\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 PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TransitionGroup } from 'react-transition-group';\nimport MediaQuery from 'react-responsive';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport categoryActions from 'tradera-state/categories/actions';\nimport uiActions from 'tradera-state/ui/actions';\nimport { BREAKPOINTS, BREAKPOINT_SIZES } from 'tradera-constants/breakpoints';\nimport { logger } from 'packages';\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 './dropdown-menu.scss';\n\nconst trackAnalytics = (\n label,\n action = 'Category menu',\n category = 'Top navigation'\n) => {\n try {\n GtmService.trackAction(category, action, label);\n } catch (error) {\n logger(error);\n }\n};\n\nconst DropdownMenu = ({\n className,\n featureSwitches,\n inSPA,\n isLoggedIn,\n pageName,\n transparentHeader,\n tabIndex\n}) => {\n const dispatch = useDispatch();\n\n const dropdownMenu = useSelector(state => state.ui.categoryDropdownMenu);\n const categories = useSelector(state => state.categories);\n const expanded = dropdownMenu.open === 'open';\n\n const trackClick = () => {\n trackAnalytics(expanded ? 'Menu close' : 'Menu open');\n };\n\n const onClick = () => {\n if (expanded) {\n dispatch(uiActions.closeCategoryDropdownMenu());\n } else {\n dispatch(uiActions.closeProfileMenu());\n if (!categories.isFetching && categories.list.length === 0) {\n dispatch(categoryActions.fetchCategoryList());\n }\n dispatch(uiActions.openCategoryDropdownMenu());\n }\n };\n\n const onItemClick = () => {\n dispatch(uiActions.closeCategoryDropdownMenu());\n };\n\n const sideMenuMediaProps = {\n maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.LG].max\n };\n const dropdownMenuMediaProps = {\n minWidth: BREAKPOINT_SIZES[BREAKPOINTS.LG].max\n };\n\n const renderChild = () => (\n \n
    \n \n
    \n
    \n );\n\n return (\n \n \n \n {expanded && (\n \n {\n onClick();\n trackClick();\n }}\n tabIndex=\"-1\"\n />\n \n )}\n \n \n );\n};\n\nDropdownMenu.propTypes = {\n className: PropTypes.string,\n isLoggedIn: PropTypes.bool,\n pageName: PropTypes.string,\n expanded: PropTypes.bool\n};\nDropdownMenu.defaultProps = {\n className: ''\n};\n\nexport default DropdownMenu;\n","import React from 'react';\nimport PenIcon from '@tradera/blueprint/theme/icons2/pen.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\n\nconst SignUpLink = ({ clickAction, transparentHeader, isForeignVisitor }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const register = t('siteHeader_register');\n const url = isForeignVisitor\n ? toLocalizedUrl('/register/foreign-private')\n : toLocalizedUrl('/register');\n\n return (\n \n \n \n {register}\n \n \n );\n};\n\nexport default React.memo(SignUpLink);\n","import { 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';\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.28d4b79a.svg\";","export default \"//static.tradera.net/touchweb/static/output/images/push-wishlist-icon.098d1553.svg\";","export default \"//static.tradera.net/touchweb/static/output/images/push-selling-icon.33e7a17c.svg\";","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';\nimport { selectShowLocalizationRegionPicker } from 'tradera-state/shipping-region/selectors';\nimport { selectGeolocation } from 'tradera-state/member/selectors';\nimport { dismissLocalizationRegionPicker } from 'tradera-state/shipping-region/reducer';\nimport { onLocalizationShippingRegionSelected } from 'tradera-state/shipping-region/actions';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport Flag from 'tradera-components/flag/flag';\n\nconst LocalizationRegionPicker = ({\n showLocalizationRegionPicker,\n dismissLocalizationRegionPicker,\n onLocalizationShippingRegionSelected,\n geolocation\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n const onClick = () => {\n onLocalizationShippingRegionSelected({\n countryCodeIso2: geolocation.isoCode,\n currencyCode: geolocation.currency,\n toLocalizedUrl\n });\n dismissLocalizationRegionPicker();\n };\n\n return showLocalizationRegionPicker ? (\n \n
    \n
    \n \n
    \n

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

    \n

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

    \n
    \n \n \n \n
    \n
    \n
    \n ) : null;\n};\n\nconst mapStateToProps = state => ({\n showLocalizationRegionPicker: selectShowLocalizationRegionPicker(state),\n geolocation: selectGeolocation(state)\n});\n\nconst mapDispatchToProps = {\n dismissLocalizationRegionPicker,\n onLocalizationShippingRegionSelected\n};\n\nexport const ConnectedLocalizationRegionPicker = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LocalizationRegionPicker);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport {\n selectPreferredCurrency,\n selectShowCurrencySelection\n} from 'tradera-state/multi-currency';\nimport { selectPreferredLanguage } from 'tradera-state/language';\nimport {\n selectShowLocalizationRegionPicker,\n selectShowRegionSelection\n} from 'tradera-state/shipping-region/selectors';\nimport HoverMenu from './hover-menu/hover-menu';\nimport { LocalizationMenu } from 'components/localization/localization-menu';\nimport { ConnectedLocalizationRegionPicker } from './localization-region-picker';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\n\nimport 'components/localization/localization.scss';\n\nconst LocalizationLink = ({\n onClick,\n onBlur,\n showMenu,\n preferredCurrency,\n showCurrencySelection,\n preferredLanguage,\n showRegionSelection,\n showLocalizationRegionPicker,\n transparentHeader\n}) => (\n \n {\n GtmService.trackAction(\n 'Top navigation',\n 'Localization menu',\n 'Open/Close'\n );\n onClick(e, HOVER_MENUS.LOCALIZATION);\n }}>\n \n \n {preferredLanguage.languageCodeIso3}\n {showCurrencySelection && (\n / \n )}\n \n {preferredCurrency && preferredCurrency.shortName}\n \n \n \n \n {\n onBlur(e, HOVER_MENUS.LOCALIZATION);\n }}\n showRegionSelection={showRegionSelection || false}\n />\n \n \n \n);\n\nLocalizationLink.propTypes = {\n onClick: PropTypes.func.isRequired,\n showMenu: PropTypes.bool.isRequired,\n preferredCurrency: PropTypes.object,\n showCurrencySelection: PropTypes.bool.isRequired,\n preferredLanguage: PropTypes.object\n};\n\nconst mapStateToProps = state => ({\n preferredCurrency: selectPreferredCurrency(state),\n showCurrencySelection: selectShowCurrencySelection(state),\n preferredLanguage: selectPreferredLanguage(state),\n showRegionSelection: selectShowRegionSelection(state),\n showLocalizationRegionPicker: selectShowLocalizationRegionPicker(state)\n});\n\nconst mapDispatchToProps = {};\n\nexport const ConnectedLocalizationLink = connect(\n mapStateToProps,\n mapDispatchToProps\n)(LocalizationLink);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useUrlLocalizer } from 'tradera-lang';\n\nconst HoverMenuItem = ({\n icon,\n label,\n link,\n border,\n follow,\n onClick,\n gaAttributes\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n return (\n
  • \n \n \n {icon}\n \n {label}\n \n
  • \n );\n};\n\nHoverMenuItem.propTypes = {\n icon: PropTypes.node,\n label: PropTypes.node,\n link: PropTypes.string,\n border: PropTypes.bool,\n follow: PropTypes.bool,\n onClick: PropTypes.func,\n gaAttributes: PropTypes.object\n};\n\nexport default HoverMenuItem;\n","import React from 'react';\n\nconst HoverMenuItemSeparator = () => (\n
  • \n);\n\nexport default HoverMenuItemSeparator;\n","import { Analytics } from 'packages';\n\nexport const getMenuGaAttributes = (category, action, label) => ({\n 'data-ga-category': category,\n 'data-ga-action': action,\n 'data-ga-label': `Link - ${label}`\n});\n\nexport const trackProfileClick = (isLoggedIn, open) => {\n Analytics.trackEvent({\n category: 'Top navigation',\n action: `${isLoggedIn ? 'Account' : 'Login'} menu`,\n label: `${open ? 'Menu open' : 'Menu close'}`\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMenu from './hover-menu/hover-menu';\nimport HoverMenuItem from './hover-menu/hover-menu-item';\nimport HoverMenuItemSeparator from './hover-menu/hover-menu-separator';\nimport { getMenuGaAttributes } from './site-header.analytics.js';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\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';\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 InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\n\nconst ToBuyLink = ({ isLoggedIn, transparentHeader }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const howTo = t('siteHeader_howTo');\n\n return (\n \n \n \n\n \n {howTo}\n \n \n );\n};\n\nexport default ToBuyLink;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport MediaQuery from 'react-responsive';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport {\n selectPreferredCurrency,\n selectShowCurrencySelection\n} from 'tradera-state/multi-currency';\nimport {\n selectPreferredLanguage,\n selectShouldAlwaysDisplayInMenu\n} from 'tradera-state/language';\nimport { LocalizationMenu } from 'static/script/components/localization/localization-menu';\nimport LocationIcon from '@tradera/blueprint/theme/icons2/location.svg?jsx';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport { selectShowRegionSelection } from 'tradera-state/shipping-region/selectors';\nimport { useTranslator } from 'tradera-lang';\n\nexport const LocalizationMenuItem = ({\n onToggle,\n preferredCurrency,\n showCurrencySelection,\n preferredLanguage,\n shouldAlwaysDisplayInMenu,\n showRegionSelection\n}) => {\n const { t } = useTranslator();\n const onOpen = useCallback(() => onToggle('Open - Localization'), [\n onToggle\n ]);\n const onClose = useCallback(() => onToggle('Close - Localization'), [\n onToggle\n ]);\n\n const mediaQuery = shouldAlwaysDisplayInMenu\n ? { minWidth: BREAKPOINT_SIZES[BREAKPOINTS.XS].min }\n : { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].max };\n\n return (\n \n }\n onOpen={onOpen}\n onClose={onClose}>\n \n \n \n );\n};\n\nLocalizationMenuItem.propTypes = {\n onToggle: PropTypes.func.isRequired,\n preferredCurrency: PropTypes.object,\n showCurrencySelection: PropTypes.bool.isRequired,\n preferredLanguage: PropTypes.object\n};\n\nconst mapStateToProps = state => ({\n preferredCurrency: selectPreferredCurrency(state),\n showCurrencySelection: selectShowCurrencySelection(state),\n preferredLanguage: selectPreferredLanguage(state),\n shouldAlwaysDisplayInMenu: selectShouldAlwaysDisplayInMenu(state),\n showRegionSelection: selectShowRegionSelection(state)\n});\n\nexport const ConnectedLocalizationMenuItem = connect(mapStateToProps)(\n LocalizationMenuItem\n);\n","import React from 'react';\nimport { useTranslator } from 'tradera-lang';\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 location.href = enableSwishUrl;\n trackPaymentOnboarding(\n 'Swish Onboarding Alert',\n 'Will add from - Account menu alert'\n );\n }}>\n \n {t('siteheader_addSwish')}\n \n {\n e.preventDefault();\n dismissSwish();\n trackPaymentOnboarding(\n 'Swish Onboarding Alert',\n 'Dismissed from - Account menu alert'\n );\n }}>\n {t('siteheader_swishNoThanks')}\n
    \n \n );\n};\n\nconst HyperwalletPayeeVerificationAlert = () => {\n const { t } = useTranslator();\n return (\n
    \n
    \n \n \n \n {t('siteheader_hyperwalletPayeeVerificationTitle')}\n \n
    \n {t('siteheader_hyperwalletPayeeVerificationDescription')}\n
    \n
    \n {\n e.preventDefault();\n location.href = '/my/PayeeVerification';\n }}>\n {t('siteheader_hyperwalletPayeeVerificationMoreInfo')}\n \n
    \n );\n};\n\nconst HyperwalletPayeeVerificationReviewAlert = () => {\n const { t } = useTranslator();\n return (\n {\n e.preventDefault();\n location.href = '/my/PayeeVerificationCompleted';\n }}>\n \n \n \n {t('siteheader_hyperwalletPayeeVerificationReviewTitle')}\n \n
    \n {t('siteheader_hyperwalletPayeeVerificationReviewDescription')}\n
    \n \n );\n};\n\nconst OnboardToTraderaPayAlert = () => {\n const { t } = useTranslator();\n return (\n {\n e.preventDefault();\n location.href = '/my/Payments';\n }}>\n
    \n \n \n {t('siteheader_onboardToTraderaPayTitle')}\n
    \n {t('siteheader_onboardToTraderaPayDescription')}\n
    \n
    \n {\n e.preventDefault();\n location.href = '/my/Payments';\n }}>\n {t('siteheader_onboardToTraderaPayMoreInfo')}\n \n \n );\n};\n\nexport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n OnboardToTraderaPayAlert\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport RatingStars from 'tradera-components/rating-stars/rating-stars';\nimport './profile-card.scss';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\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 = ({ memberAlias, memberId, rating, imageUrl }) => {\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, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport MediaQuery from 'react-responsive';\n\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport { BREAKPOINT_SIZES, BREAKPOINTS } from 'tradera-constants/breakpoints';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getMenuGaAttributes } from 'tradera-components/site-header/site-header.analytics';\nimport * as mopinion from 'static/script/components/customer-feedback/mopinion-loader';\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 { ConnectedLocalizationMenuItem } from './expandable-localization-menu-item.jsx';\nimport {\n InvoiceUnpaidAlert,\n InvoiceOverdueAlert,\n BankAccountMissingAlert,\n PayoutFailedAlert,\n PayoutReadyBankAccountMissingAlert,\n SwishMissingAlert,\n HyperwalletPayeeVerificationAlert,\n HyperwalletPayeeVerificationReviewAlert,\n OnboardToTraderaPayAlert\n} from './profile-menu-alerts';\nimport ProfileCard from '../profile/profile-card';\nimport AuctionIcon from '@tradera/blueprint/theme/icons2/auction.svg?jsx';\nimport AuctionLostIcon from '@tradera/blueprint/theme/icons2/bid-lost.svg?jsx';\nimport BookmarkIcon from '@tradera/blueprint/theme/icons2/bookmark.svg?jsx';\nimport BuyIcon from '@tradera/blueprint/theme/icons2/buy.svg?jsx';\nimport ChatIcon from '@tradera/blueprint/theme/icons2/chat.svg?jsx';\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.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 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 StarIcon from '@tradera/blueprint/theme/icons2/star.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';\n\nconst mediaBelowLarge = { maxWidth: BREAKPOINT_SIZES[BREAKPOINTS.MD].max };\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Account menu', label);\n\nconst trackOnClick = label => {\n GtmService.trackAction('Top navigation', 'Account menu', `Link - ${label}`);\n};\n\nconst trackExpandItemClick = label => {\n GtmService.trackAction('Top navigation', 'Account menu', label);\n};\n\nconst ProfileMenuContent = ({\n cleanedMemberAlias,\n dismissSwish,\n logOut,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberHeroImage = {},\n memberId,\n showMessagingLink,\n showPayments1Menu,\n showPayments2Menu,\n systemMessages,\n threadsUnread\n}) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\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 onOpen={() => trackExpandItemClick('Open - Watchlist')}\n onClose={() =>\n trackExpandItemClick('Close - Watchlist')\n }>\n }\n border\n gaAttributes={getGaAttributes('Wishlist')}\n />\n }\n border\n gaAttributes={getGaAttributes('Saved searches')}\n />\n }\n gaAttributes={getGaAttributes('Favorite seller')}\n />\n \n }\n border\n onOpen={() => trackExpandItemClick('Open - Buying')}\n onClose={() => trackExpandItemClick('Close - Buying')}>\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 onOpen={() => trackExpandItemClick('Open - Selling')}\n onClose={() => trackExpandItemClick('Close - Selling')}>\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 gaAttributes={getGaAttributes('Rate buyer')}\n />\n \n \n \n }\n border\n gaAttributes={getGaAttributes('My profile')}\n />\n }\n border\n gaAttributes={getGaAttributes('Ratings')}\n />\n }\n border\n gaAttributes={getGaAttributes('Notifications')}\n />\n \n }\n notificationDot={systemMessages.InvoiceUnpaid && 'warning'}\n alerts={[\n systemMessages.InvoiceUnpaid && (\n \n ),\n systemMessages.InvoiceOverdue && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Invoices')}\n />\n {showPayments1Menu && (\n }\n alerts={[\n systemMessages.OnboardToTraderaPay && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Payouts')}\n />\n )}\n {showPayments2Menu && (\n }\n alerts={[\n systemMessages.BankAccountMissing && (\n \n ),\n systemMessages.PayoutReadyBankAccountMissing && (\n \n ),\n systemMessages.PayoutFailed && (\n \n ),\n systemMessages.SwishNumberMissing && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationRequired && (\n \n ),\n systemMessages.HyperwalletPayeeVerificationUnderReview && (\n \n )\n ]}\n border\n gaAttributes={getGaAttributes('Payouts')}\n />\n )}\n }\n border\n gaAttributes={getGaAttributes('Settings')}\n />\n \n \n {mopinion.isEnabled() && (\n }\n onClick={() => {\n mopinion.openMopinionWidget(\n mopinion.generalFeedbackForm\n );\n trackOnClick('Leave feedback');\n }}\n />\n )}\n }\n border\n gaAttributes={getGaAttributes('Customer service')}\n />\n \n }\n gaAttributes={getGaAttributes('Logout')}\n />\n {/* NOTE: Fix for iPhone menu making bottom element unclickable */}\n \n
    \n
    \n );\n};\n\nProfileMenuContent.propTypes = {\n cleanedMemberAlias: PropTypes.string,\n dismissSwish: PropTypes.func,\n logOut: PropTypes.func,\n memberAlias: PropTypes.string,\n memberDetailedSellerRatingAverage: PropTypes.number,\n memberHeroImage: PropTypes.object,\n memberId: PropTypes.number,\n showMessagingLink: PropTypes.bool,\n showPayments1Menu: PropTypes.bool,\n showPayments2Menu: PropTypes.bool,\n systemMessages: PropTypes.object,\n threadsUnread: PropTypes.number\n};\nProfileMenuContent.defaultProps = {\n systemMessages: {}\n};\n\nexport default ProfileMenuContent;\n","import React, { Fragment } from 'react';\nimport MenuItemSeparator from 'tradera-components/site-header/dropdown-menu-item-separator';\nimport MenuItem from 'tradera-components/site-header/dropdown-menu-item';\nimport ExpandableMenuItem from 'tradera-components/site-header/dropdown-menu-item-expandable';\nimport GtmService from 'static/script/app/ui/google-tagmanager-service';\nimport { getMenuGaAttributes } from 'tradera-components/site-header/site-header.analytics';\nimport STRINGS from 'static/script/constants/strings';\nimport { getReturnUrl } from 'tradera-utils/login';\nimport logger from 'logger';\nimport { useTranslator, useUrlLocalizer } from 'tradera-lang';\nimport * as mopinion from 'static/script/components/customer-feedback/mopinion-loader';\nimport { getInitData } from 'packages/init-data';\n\nimport ChatIcon from '@tradera/blueprint/theme/icons2/chat.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\n\nconst onIframeLoad = (e, closeMenu) => {\n const iframe = e.target;\n if (iframe) {\n const iframeDocument =\n iframe.contentDocument || iframe.contentWindow.document;\n if (iframeDocument) {\n iframeDocument.body.addEventListener('keydown', e => {\n if (e.keyCode === 27) {\n closeMenu();\n }\n });\n }\n }\n};\n\nconst handleBotClick = () => {\n const botWidget = document.querySelector('.humany-trigger');\n if (botWidget) {\n botWidget.click();\n }\n};\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Login menu', label);\n\nconst trackOnClick = label => {\n GtmService.trackAction('Top navigation', 'Login menu', `Link - ${label}`);\n};\n\nconst trackExpandItemClick = label => {\n GtmService.trackAction('Top navigation', 'Login menu', label);\n};\n\nconst SignInMenuContent = ({ closeMenu, redirectUrl }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n const initData = getInitData();\n return (\n \n onIframeLoad(e, closeMenu)}>\n

    {STRINGS.IFRAME_NOT_SUPPORTED}

    \n \n }\n border={false}\n onOpen={() => trackExpandItemClick('Open - Help')}\n onClose={() => trackExpandItemClick('Close - Help')}>\n }\n gaAttributes={getGaAttributes('Forgot')}\n />\n }\n gaAttributes={getGaAttributes('Help pages')}\n />\n }\n gaAttributes={getGaAttributes('Customer service')}\n />\n\n }\n onClick={async () => {\n try {\n const { default: AddHumanyBot } = await import(\n /* webpackChunkName: \"humany-bot\" */ 'static/script/components/humany/humany-bot'\n );\n AddHumanyBot(initData);\n handleBotClick();\n } catch (e) {\n logger(e);\n }\n\n trackOnClick('Chat with JUNO');\n }}\n />\n\n {mopinion.isEnabled() && (\n \n }\n onClick={() => {\n mopinion.openMopinionWidget(\n mopinion.generalFeedbackForm\n );\n trackOnClick('Leave feedback');\n }}\n />\n \n )}\n {/* NOTE: Fix for iPhone menu making bottom element unclickable */}\n \n \n
    \n );\n};\n\nexport default SignInMenuContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport {\n Breakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport {\n EnterFrom,\n EnterFade\n} from 'tradera-components/transitions/transitions';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport Overlay from 'components/modals/overlay';\nimport ProfileMenuContent from './profile-menu-content';\nimport SignInMenuContent from './sign-in-menu-content';\n\nimport 'tradera-components/site-header/dropdown-menu.scss';\nimport './profile-menu.scss';\n\nconst ProfileMenu = props => {\n const {\n className,\n dismissSwish,\n expanded,\n handleExpand,\n logOut,\n member,\n redirectUrl,\n showMessagingLink,\n systemMessages,\n threadsUnread,\n transparentHeader\n } = props;\n\n const {\n cleanedMemberAlias,\n isLoggedIn,\n memberAlias,\n memberDetailedSellerRatingAverage,\n memberHeroImage,\n memberId\n } = member;\n\n const showPayments1Menu =\n member.paymentSettings && member.paymentSettings.showPayments1Menu;\n\n const showPayments2Menu =\n member.paymentSettings && member.paymentSettings.showPayments2Menu;\n\n const renderChild = () => (\n \n
    \n {isLoggedIn ? (\n \n ) : (\n \n )}\n
    \n
    \n );\n\n return (\n \n \n \n );\n};\n\nProfileMenu.defaultProps = {\n expanded: false\n};\n\nProfileMenu.propTypes = {\n className: PropTypes.string,\n dismissSwish: PropTypes.func.isRequired,\n expanded: PropTypes.bool,\n logOut: PropTypes.func.isRequired,\n member: PropTypes.shape({\n cleanedMemberAlias: PropTypes.string,\n isLoggedIn: PropTypes.bool.isRequired,\n memberAlias: PropTypes.string,\n memberDetailedSellerRatingAverage: PropTypes.number,\n memberHeroImage: PropTypes.object,\n memberId: PropTypes.number\n }),\n showMessagingLink: PropTypes.bool,\n systemMessages: PropTypes.object,\n threadsUnread: PropTypes.number\n};\n\nexport default ProfileMenu;\n","import React from 'react';\nimport UserIcon from '@tradera/blueprint/theme/icons2/user-fill.svg?jsx';\n\nconst Profile = ({ isLoggedIn, facebookId }) =>\n isLoggedIn && facebookId ? (\n \n ) : (\n
    \n \n \n
    \n );\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';\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 ml-2 pl-2'\n : ''\n }`}>\n {systemMessageCount}\n \n )}\n \n )}\n \n {text}\n \n {isLoggedIn && (\n \n \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, { Fragment } 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 { trackProfileClick } from './site-header.analytics';\nimport { useUrlLocalizer } from 'tradera-lang';\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 trackProfileClick(isLoggedIn, false);\n closeProfileMenu();\n } else {\n closeCategoryDropdownMenu();\n trackProfileClick(isLoggedIn, true);\n // not logged in\n if (!isLoggedIn) {\n preventNavigationAndShowLogin(evt, '/my/overview');\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';\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 { connect } from 'react-redux';\nimport InternationalShippingModal, {\n internationalShippingModalId\n} from 'tradera-components/international-shipping-modal/international-shipping-modal';\nimport {\n SyiZignSecModal,\n syiZignSecModalId\n} from 'tradera-apps/syi/script/app_react/pages/summary-page/components/syi-zign-sec-modal';\n\nconst ModalRenderer = props => (\n
    \n {\n {\n [internationalShippingModalId]: ,\n [syiZignSecModalId]: \n }[props.currentModal]\n }\n
    \n);\n\nexport default connect(state => state.ui.modals)(ModalRenderer);\n\nexport { ModalRenderer };\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';\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';\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Watchlist menu', label);\n\nconst WatchListMenu = ({ showMenu }) => {\n const { t } = useTranslator();\n return (\n \n }\n gaAttributes={getGaAttributes('Wishlist')}\n />\n }\n gaAttributes={getGaAttributes('Saved searches')}\n />\n }\n gaAttributes={getGaAttributes('Favorite seller')}\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';\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';\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 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';\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 CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport CloseIcon from '@tradera/blueprint/theme/icons2/close.svg?jsx';\nimport ListIcon from '@tradera/blueprint/theme/icons2/list.svg?jsx';\nimport RatingPositiveIcon from '@tradera/blueprint/theme/icons2/rating-positive.svg?jsx';\n\nconst getGaAttributes = label =>\n getMenuGaAttributes('Top navigation', 'Selling menu', label);\n\nconst SellMenu = ({ showMenu }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\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 \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';\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, { Component } from 'react';\nimport { compose } from 'redux';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport Sticky from 'react-stickynode';\nimport MediaQuery from 'react-responsive';\nimport { selectShowCurrencySelection } from 'tradera-state/multi-currency';\nimport {\n selectShouldDisplayInHeader,\n selectIsForeignLanguageActivated\n} from 'tradera-state/language';\nimport { selectIsSwedishVisitor } from 'tradera-state/shipping-region/selectors';\nimport {\n BREAKPOINTS,\n BREAKPOINT_SIZES,\n isDesktop,\n isTablet,\n isMobile\n} from 'tradera-utils/breakpoints';\nimport { withBreakpoint } from 'tradera-components/breakpoint/breakpoint';\nimport { HOVER_MENUS } from './hover-menu/constants';\nimport cookieUtil from 'tradera-utils/cookie';\nimport { onWindowLoad } from 'utils/on-ready';\nimport { actions as memberStateActions } from 'tradera-state/member';\nimport uiActions from 'tradera-state/ui/actions';\nimport { withUrlLocalizer } from 'tradera-lang';\nimport TraderaLogo from 'components/tradera/logo';\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 { ConnectedLocalizationLink } from './localization-link';\nimport BuyingLink from './buying-link';\nimport HowToLink from './how-to-link';\nimport ProfileMenuLink from './profile-menu-link';\nimport { SearchButton } from './search-button';\n\nimport './slim-header.scss';\nimport ModalRenderer from 'tradera-components/modal-renderer/modal-renderer';\nimport MessagingModal from 'tradera-components/messaging/messaging-modal';\nimport WishlistLink from 'tradera-components/site-header/wishlist-link';\nimport OngoingAuctionsLink from 'tradera-components/site-header/ongoing-auctions-link';\nimport SellingLink from 'tradera-components/site-header/selling-link';\n\nclass SiteHeader extends Component {\n static propTypes = {\n cartItems: PropTypes.string,\n cartSum: PropTypes.string,\n closeMessagingModal: PropTypes.func,\n currentCategoryId: PropTypes.number,\n fetchMessagingNotifications: PropTypes.func,\n getGeolocation: PropTypes.func,\n inSPA: PropTypes.bool,\n messagingThreads: PropTypes.object,\n searchQuery: PropTypes.string,\n setCurrentCategoryId: PropTypes.func,\n showHeaderSearch: PropTypes.bool\n };\n\n static defaultProps = {\n inSPA: false\n };\n\n constructor(props) {\n super(props);\n this.state = {\n sticky: false,\n autoFocusSearch: false\n };\n }\n\n componentDidMount() {\n const {\n featureSwitches,\n isLoggedIn,\n fetchMessagingNotifications,\n getGeolocation\n } = this.props;\n getGeolocation();\n\n if (featureSwitches['messaging'] && isLoggedIn) {\n fetchMessagingNotifications();\n }\n\n // Scroll up one pixel to show fixed header on mobile\n onWindowLoad(() => {\n // Toggle on sticky behavior on window load to force reflow and show sticky header on mobile & Firefox\n this.setState({ sticky: true });\n });\n }\n\n handleClickSearch = () => {\n const { openSearchForm, closeSearchForm, showSearch } = this.props;\n if (showSearch) {\n closeSearchForm();\n } else {\n openSearchForm();\n }\n this.setState(prevState => ({\n ...prevState,\n autoFocusSearch: !prevState.showSearch\n }));\n };\n\n handleMouseOverMenu = menu => {\n if (isDesktop()) {\n this.setState({\n activeHoverMenu: menu\n });\n }\n };\n\n handleMouseOutMenu = () => {\n this.setState({\n activeHoverMenu: false\n });\n };\n\n // Event handler for menu button:\n // Mobile: link, no menu open\n // Tablet: not a link, menu open\n // Desktop: link, menu open\n handleMenuClick = (event, menu) => {\n if (isMobile() && menu !== HOVER_MENUS.LOCALIZATION) {\n return;\n }\n\n // Prevent click for tablet to allow tap to open\n if (isTablet()) {\n event.preventDefault();\n }\n // Force focus so touch devices can get a blur event\n event.target.focus();\n this.setState(state => ({\n activeHoverMenu: state.activeHoverMenu === menu ? false : menu\n }));\n };\n\n // Event handler for non-linked menu button that always open a menu\n handleAlwaysOpenMenuClick = (event, menu) => {\n event.preventDefault();\n event.target.focus();\n this.setState(state => ({\n activeHoverMenu: state.activeHoverMenu === menu ? false : menu\n }));\n };\n\n handleMenuBlur = () => {\n this.setState({\n activeHoverMenu: false\n });\n };\n\n handleRegisterClick = () => {\n const { isLoggedIn } = this.props;\n\n if (!isLoggedIn) {\n const cookieName = 'signup_referral_path';\n const expireDate = new Date();\n const value = window.location.href;\n expireDate.setTime(expireDate.getTime() + 10 * 60 * 1000);\n cookieUtil.createCookie(cookieName, value, expireDate);\n }\n };\n\n render() {\n const {\n cartItems,\n cartSum,\n closeMessagingModal,\n closeNotificationOptinModal,\n currentBreakpoint,\n featureSwitches,\n inSPA,\n isForeignVisitor,\n isLoggedIn,\n messagingModal,\n messagingThreads,\n notificationOptinModal,\n pageName,\n showSearch,\n showCurrencySelection,\n showHeaderSearch,\n shouldDisplayLanguageSelectionInHeader,\n toLocalizedUrl\n } = this.props;\n const { sticky } = this.state;\n const formattedCartItems = parseInt(cartItems, 10);\n const hasCartItems = formattedCartItems > 0;\n const { threadsUnread } = messagingThreads;\n const stickyEnabledOnPage = !pageName.includes('MyTradera');\n const isMobile =\n currentBreakpoint === BREAKPOINTS.XS ||\n currentBreakpoint === BREAKPOINTS.SM;\n\n const hideElements =\n !showHeaderSearch && pageName.includes('StartPage');\n const transparentHeader = hideElements && !isMobile;\n\n return (\n \n \n \n \n \n \n \n \n \n \n {inSPA ? (\n \n ) : (\n \n )}\n \n \n
      \n
    • \n \n
    • \n {isLoggedIn && (\n \n \n \n )}\n
    • \n {isLoggedIn ? (\n \n ) : (\n \n )}\n
    • \n {isLoggedIn && (\n
    • \n \n
    • \n )}\n {isLoggedIn && (\n
    • \n \n
    • \n )}\n {(showCurrencySelection ||\n shouldDisplayLanguageSelectionInHeader) && (\n \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 categoryPath: state.page.categoryPath,\n currentCategoryId: state.page.currentCategoryId,\n featureSwitches: state.environment.featureSwitches,\n hasSearch: state.ui.hasSearch,\n isLoggedIn: state.member.isLoggedIn,\n messagingModal: state.ui.messagingModal,\n messagingThreads: state.ui.badges.messaging,\n notificationOptinModal: state.ui.notificationOptinModal,\n pageName: state.page.type,\n isForeignVisitor:\n !selectIsSwedishVisitor(state) ||\n selectIsForeignLanguageActivated(state),\n searchParams: state.discover.searchParams,\n searchUrl: state.discover.searchUrl,\n shouldDisplayLanguageSelectionInHeader: selectShouldDisplayInHeader(\n state\n ),\n showCurrencySelection: selectShowCurrencySelection(state),\n showHeaderSearch: state.ui.showHeaderSearch,\n showSearch: state.ui.showSearchForm,\n systemMessageCount: state.ui.badges.system,\n systemMessages: state.ui.systemMessages\n };\n};\n\nconst mapDispatchToProps = {\n closeCategoryDropdownMenu: uiActions.closeCategoryDropdownMenu,\n closeMessagingModal: uiActions.closeMessagingModal,\n closeNotificationOptinModal: uiActions.closeNotificationOptinModal,\n closeSearchForm: uiActions.closeSearchForm,\n fetchMessagingNotifications: uiActions.fetchMessagingNotifications,\n getGeolocation: memberStateActions.getGeolocation,\n openSearchForm: uiActions.openSearchForm\n};\n\nexport default compose(\n withBreakpoint,\n withUrlLocalizer,\n connect(mapStateToProps, mapDispatchToProps)\n)(SiteHeader);\nexport { SiteHeader };\n","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\n\nexport default history;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslator } from 'tradera-lang';\nimport { formatDuration } from 'tradera-utils/format';\nimport { useTicker } from '../hooks';\n\nconst AnimatedTimeLeftLabel = ({\n className,\n countdownSecondsLimit,\n countdownWarningLimit,\n tagName: TagName,\n endDate,\n timeLeft\n}) => {\n const { t } = useTranslator();\n const timeLeftSeconds = useMemo(\n () => Math.floor((new Date(endDate) - new Date()) / 1000),\n [endDate]\n );\n const [countdown, setCountdown] = useState(timeLeftSeconds);\n const stopCountdown = useTicker(1000, () => {\n if (countdown > 0) {\n setCountdown(countdown - 1);\n } else {\n stopCountdown();\n }\n });\n if (isNaN(countdown)) {\n return null;\n }\n return (\n \n {countdown <= 0 ? (\n {t('itemCard_ended')}\n ) : (\n \n {formatDuration(countdown, countdownSecondsLimit) || (\n // eslint-disable-next-line\n \n )}\n \n )}\n \n );\n};\nAnimatedTimeLeftLabel.propTypes = {\n className: PropTypes.string,\n countdownSecondsLimit: PropTypes.number,\n countdownWarningLimit: PropTypes.number,\n tagName: PropTypes.string,\n endDate: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n timeLeft: PropTypes.string\n};\nAnimatedTimeLeftLabel.defaultProps = {\n className: '',\n // Show detailed countdown at this number of seconds left\n countdownSecondsLimit: 120,\n // Show warning countdown at this number of seconds\n countdownWarningLimit: 60,\n tagName: 'span'\n};\n\nexport default AnimatedTimeLeftLabel;\n","export const actionTypes = {\n SET: 'COOKIES_SET'\n};\n\nexport const setCookie = (name, value) => ({\n type: actionTypes.SET,\n payload: {\n name: name,\n value: value\n }\n});\n\nexport default {\n actionTypes,\n setCookie\n};\n","import React from 'react';\n\nconst DiscountBadge = ({ className, discountRate }) => {\n return (\n \n -{discountRate}%\n \n );\n};\n\nexport default DiscountBadge;\n","import ENDPOINTS from 'tradera-constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n handleError,\n logError\n} from 'tradera-utils/api';\n\nexport const getStartPageConfig = languageCodeIso2 => {\n return axiosWithTokenRefresh()\n .get(`${ENDPOINTS.CMS_API}/api/pages/start?locale=${languageCodeIso2}`)\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 .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 getTrendingSearches = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.CMS_API + '/api/trending/searches')\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 getWishListItems = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.WISHLIST + '?filter=active&itemsPerPage=8')\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data.items || []);\n};\n\nexport const getFavouriteSellers = () => {\n return axiosWithTokenRefresh()\n .get(ENDPOINTS.FAVOURITE_SELLERS)\n .catch(handleError())\n .catch(logError)\n .then(response => response?.data || {});\n};\n","import {\n getStartPageConfig,\n getTrendingBrands,\n getTrendingSearches,\n getWishListItems,\n getFavouriteSellers\n} from './api';\nimport {\n setStartPageConfigAction,\n setStartPageConfigStatusAction,\n setTrendingBrandsAction,\n setTrendingBrandsStatusAction,\n setTrendingSearchesAction,\n setTrendingSearchesStatusAction,\n setWishListAction,\n setWishListStatusAction,\n setFavouriteSellersAction,\n setFavouriteSellersStatusAction\n} from './reducer';\nimport { selectPreferredLanguage } from 'tradera-state/language';\nimport itemActions from 'tradera-state/items/actions';\n\nconst defaultStartPageConfig = {\n header: {\n alternativeText: '',\n backgroundImage: null,\n isCampaignMode: false,\n webpageUrl: ''\n },\n content: [\n {\n type: 'lastChance'\n },\n {\n type: 'recentlyViewed'\n }\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 if (status !== 'NOT_FETCHED') return;\n\n dispatch(setTrendingSearchesStatusAction({ status: 'LOADING' }));\n\n const searchesResult = await getTrendingSearches();\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\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 dispatch(setFavouriteSellersStatusAction({ status: 'LOADING' }));\n\n const {\n favouriteSellers = [],\n items = [],\n totalItems = 0\n } = await getFavouriteSellers();\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","import {\n useBreakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\n\nconst useIsDesktop = () =>\n [BREAKPOINTS.LG, BREAKPOINTS.XL].includes(useBreakpoint());\n\nexport default useIsDesktop;\n","import { useSelector } from 'react-redux';\n\nconst useIsLoggedIn = () => useSelector(state => state.member?.isLoggedIn);\n\nexport default useIsLoggedIn;\n","import React from 'react';\nimport { CAROUSEL, HEADER } from './content-types';\n\nexport const getImageSizes = (\n imageCount,\n image,\n containerType,\n format = 'jpg&fl=progressive'\n) => {\n if (!image) {\n return {};\n }\n const { baseUrl } = image;\n\n const imageUrl = baseUrl + '?fm=' + format;\n\n if (containerType === HEADER) {\n return {\n srcSet: `${imageUrl}&w=1920 1920w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes: '(max-width: 425px) 425px, (max-width: 768px) 768px, 1920px'\n };\n }\n\n if (containerType === CAROUSEL) {\n return {\n srcSet: `${imageUrl}&w=1250 1250w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes: '(max-width: 425px) 425px, (max-width: 768px) 768px, 1250px'\n };\n }\n\n let imageSizes;\n switch (imageCount) {\n case 1:\n imageSizes = {\n srcSet: `${imageUrl}&w=1230 1230w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 768px, 1230px'\n };\n break;\n case 2:\n imageSizes = {\n srcSet: `${imageUrl}&w=605 605w, ${imageUrl}&w=397 397w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 397px, 605px'\n };\n break;\n case 3:\n imageSizes = {\n srcSet: `${imageUrl}&w=605 605w, ${imageUrl}&w=397 397w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 397px, 605px'\n };\n break;\n default:\n imageSizes = {\n srcSet: `${imageUrl}&w=1250 1250w, ${imageUrl}&w=768 768w, ${imageUrl}&w=425 425w`,\n sizes:\n '(max-width: 425px) 425px, (max-width: 768px) 768px, 1250px'\n };\n break;\n }\n return imageSizes;\n};\n\nexport const getWebpImage = (imageCount, image, containerType) => {\n if (!image) {\n return {};\n }\n\n const imageSizes = getImageSizes(imageCount, image, containerType, 'webp');\n\n const { srcSet, sizes } = imageSizes;\n\n return ;\n};\n","import{useState as e,useEffect as n}from\"react\";function t(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function o(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:null:!0===navigator.connection.saveData}};if(c=!(\"undefined\"!=typeof navigator&&\"deviceMemory\"in navigator))u={unsupported:c};else{var v=\"memory\"in performance?performance.memory:null;u={unsupported:c,deviceMemory:navigator.deviceMemory,totalJSHeapSize:v?v.totalJSHeapSize:null,usedJSHeapSize:v?v.usedJSHeapSize:null,jsHeapSizeLimit:v?v.jsHeapSizeLimit:null}}var l,y=function(e){return c&&e?o({},u,{},e):o({},u)};l=\"undefined\"!=typeof navigator&&\"hardwareConcurrency\"in navigator?{unsupported:!1,numberOfLogicalProcessors:navigator.hardwareConcurrency}:{unsupported:!0};var s=function(){return o({},l)};export{f as useNetworkStatus,p as useSaveData,y as useMemoryStatus,s as useHardwareConcurrency};\n//# sourceMappingURL=index.module.js.map\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNetworkStatus } from 'react-adaptive-hooks';\nimport './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 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 video.play();\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 \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