{"version":3,"file":"valantic-spartacus-mock.mjs","sources":["../../../projects/spartacus-mock/src/lib/occ-config/occ-cart-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-checkout-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-order-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-saved-cart-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-store-finder-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-user-config.ts","../../../projects/spartacus-mock/src/lib/defaultRoutes.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/countries.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/currencies.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/pagination.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/regions.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/sort.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/titles.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/addresses.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/customer-coupons.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/notification-preferences.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/payments.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/price.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/delivery-mode.ts","../../../projects/spartacus-mock/src/lib/mock-data/media/image.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/promotion.ts","../../../projects/spartacus-mock/src/lib/types/types.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/voucher.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-stock.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-base-option.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-categories.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-classification.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-references.ts","../../../projects/spartacus-mock/src/lib/mock-data/languages/languages.ts","../../../projects/spartacus-mock/src/lib/mock-data/auth/user.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-reviews.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/product-interests.ts","../../../projects/spartacus-mock/src/lib/mock-data/auth/auth.ts","../../../projects/spartacus-mock/src/lib/mock-data/order/order.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/saved-cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/base-sites/base-sites.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-link.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/flex-type-component.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-paragraph.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/components.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/content-slot.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/media.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/simple-banner.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/simple-responsive-banner.ts","../../../projects/spartacus-mock/src/lib/mock-data/consent-templates/consent-templates.ts","../../../projects/spartacus-mock/src/lib/mock-data/order/order-history.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-address-book-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-close-account-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-consents-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-coupons-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-my-interests-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-notification-preference-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-order-history-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-order-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-payment-details-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-personal-details-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-quick-order-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-saved-cart-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-saved-carts-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-update-email-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-update-password-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-wish-list-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cart-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-default-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-delivery-address-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-delivery-mode-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-login-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-payment-details-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-review-order-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cms-page-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cms-page-content-slots-not-found.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/example-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/order-confirmation-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/search-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/store-finder-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/pages.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/page.service.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/breadcrumb.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/navigation-node.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/footer-navigation.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/profile-script.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/footer-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/category-navigation.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/mini-cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/search-box.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/site-context.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/header-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/product-carousel.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/home-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-tab-paragraph.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/product-references.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/product-detail-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/page-factory.service.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/facet.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/search.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/breadcrumb.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/search-suggestions.ts","../../../projects/spartacus-mock/src/lib/mock-data/store-finder/store-finder.ts","../../../projects/spartacus-mock/src/lib/mock-data/translations/translations.ts","../../../projects/spartacus-mock/src/lib/utils/request-params.ts","../../../projects/spartacus-mock/src/lib/utils/redirect.ts","../../../projects/spartacus-mock/src/lib/handlers/account-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/base-handler.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/checkout.ts","../../../projects/spartacus-mock/src/lib/handlers/cart-handler.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/payment-sop.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/payment-sop-response.ts","../../../projects/spartacus-mock/src/lib/handlers/checkout-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/cms-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/order-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/product-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/search-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/store-finder-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/translation-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/user-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/handler.service.ts","../../../projects/spartacus-mock/src/lib/local-storage/local-storage.service.ts","../../../projects/spartacus-mock/src/lib/pass-through/pass-through-requests.ts","../../../projects/spartacus-mock/src/lib/pass-through/pass-through.service.ts","../../../projects/spartacus-mock/src/lib/index.ts","../../../projects/spartacus-mock/src/public-api.ts","../../../projects/spartacus-mock/src/valantic-spartacus-mock.ts"],"sourcesContent":["import { CartOccEndpoints } from '@spartacus/cart/base/occ';\nimport { OccConfig } from '@spartacus/core';\n\n// needed to have a working typing\ninterface CartOccConfig extends OccConfig {\n  backend: {\n    occ: {\n      endpoints: CartOccEndpoints;\n    };\n  };\n}\n\nexport const occCartConfig: CartOccConfig = {\n  backend: {\n    occ: {\n      // cannot extend from defaultOccCartConfig as it is not exported\n      endpoints: {\n        carts:\n          'users/${userId}/carts?fields=carts(DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user,saveTime,name,description)',\n        cart: 'users/${userId}/carts/${cartId}?fields=DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user,saveTime,name,description',\n        createCart:\n          'users/${userId}/carts?fields=DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user',\n        addEntries: 'users/${userId}/carts/${cartId}/entries',\n        updateEntries: 'users/${userId}/carts/${cartId}/entries/${entryNumber}',\n        removeEntries: 'users/${userId}/carts/${cartId}/entries/${entryNumber}',\n        addEmail: 'users/${userId}/carts/${cartId}/email',\n        deleteCart: 'users/${userId}/carts/${cartId}',\n        cartVoucher: 'users/${userId}/carts/${cartId}/vouchers',\n        saveCart:\n          '/users/${userId}/carts/${cartId}/save?saveCartName=${saveCartName}&saveCartDescription=${saveCartDescription}',\n        validate: 'users/${userId}/carts/${cartId}/validate?fields=DEFAULT',\n      },\n    },\n  },\n};\n","import { CheckoutOccEndpoints } from '@spartacus/checkout/base/occ';\nimport { OccConfig } from '@spartacus/core';\n\n// needed to have a working typing\ninterface CheckoutOccConfig extends OccConfig {\n  backend: {\n    occ: {\n      endpoints: CheckoutOccEndpoints;\n    };\n  };\n}\n\nexport const occCheckoutConfig: CheckoutOccConfig = {\n  backend: {\n    occ: {\n      // cannot extend from defaultOccCheckoutConfig as it is not exported\n      endpoints: {\n        setDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n        cardTypes: 'cardtypes',\n        createDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n        removeDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n        deliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n        setDeliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n        clearDeliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n        deliveryModes: 'users/${userId}/carts/${cartId}/deliverymodes',\n        setCartPaymentDetails: 'users/${userId}/carts/${cartId}/paymentdetails',\n        paymentProviderSubInfo: 'users/${userId}/carts/${cartId}/payment/sop/request?responseUrl=sampleUrl',\n        createPaymentDetails: 'users/${userId}/carts/${cartId}/payment/sop/response',\n        getCheckoutDetails:\n          'users/${userId}/carts/${cartId}?fields=deliveryAddress(FULL),deliveryMode(FULL),paymentInfo(FULL)',\n      },\n    },\n  },\n};\n","import { OccConfig } from '@spartacus/core';\nimport { OrderOccEndpoints } from '@spartacus/order/occ';\n\n// needed to have a working typing\ninterface OrderOccConfig extends OccConfig {\n  backend: {\n    occ: {\n      endpoints: OrderOccEndpoints;\n    };\n  };\n}\n\nexport const occOrderConfig: OrderOccConfig = {\n  backend: {\n    occ: {\n      // cannot extend from defaultOccCartConfig as it is not exported\n      endpoints: {\n        orderHistory: 'users/${userId}/orders',\n        orderDetail: 'users/${userId}/orders/${orderId}?fields=FULL',\n        consignmentTracking: 'users/${userId}/orders/${orderCode}/consignments/${consignmentCode}/tracking',\n        cancelOrder: 'users/${userId}/orders/${orderId}/cancellation',\n        returnOrder:\n          'users/${userId}/orderReturns?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',\n        orderReturns: 'users/${userId}/orderReturns?fields=BASIC',\n        orderReturnDetail:\n          'users/${userId}/orderReturns/${returnRequestCode}?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',\n        cancelReturn: 'users/${userId}/orderReturns/${returnRequestCode}',\n        /* eslint-enable */\n\n        /** scheduled replenishment endpoints start */\n        replenishmentOrderDetails:\n          'users/${userId}/replenishmentOrders/${replenishmentOrderCode}?fields=FULL,costCenter(FULL),purchaseOrderNumber,paymentType,user',\n        replenishmentOrderDetailsHistory: 'users/${userId}/replenishmentOrders/${replenishmentOrderCode}/orders',\n        cancelReplenishmentOrder:\n          'users/${userId}/replenishmentOrders/${replenishmentOrderCode}?fields=FULL,costCenter(FULL),purchaseOrderNumber,paymentType,user',\n        replenishmentOrderHistory:\n          'users/${userId}/replenishmentOrders?fields=FULL,replenishmentOrders(FULL, purchaseOrderNumber)',\n        /** scheduled replenishment endpoints end */\n\n        /** placing an order endpoints start **/\n        placeOrder: 'users/${userId}/orders?fields=FULL',\n        /** placing an order endpoints end **/\n      },\n    },\n  },\n};\n","interface SavedCartEndpoints {\n  savedCarts?: string;\n  savedCart?: string;\n  restoreSavedCart?: string;\n  cloneSavedCart?: string;\n}\n\ninterface SavedCartConfig {\n  backend: {\n    occ: {\n      endpoints: SavedCartEndpoints;\n    };\n  };\n}\n\nexport const occSavedCartConfig: SavedCartConfig = {\n  backend: {\n    occ: {\n      endpoints: {\n        savedCarts:\n          'users/${userId}/carts?savedCartsOnly=true&fields=carts(DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),saveTime,user,name,description)',\n        savedCart: 'users/${userId}/carts/${cartId}/savedcart',\n        restoreSavedCart: 'users/${userId}/carts/${cartId}/restoresavedcart',\n        cloneSavedCart: 'users/${userId}/carts/${cartId}/clonesavedcart?name=${saveCartName}',\n      },\n    },\n  },\n};\n","import { OccConfig, OccEndpoints } from '@spartacus/core';\n\ninterface StoreFinderOccEndpoints extends OccEndpoints {\n  store: string;\n  stores: string;\n  storescounts: string;\n}\n\n// needed to have a working typing\ninterface StoreFinderOccConfig extends OccConfig {\n  backend: {\n    occ: {\n      endpoints: StoreFinderOccEndpoints;\n    };\n  };\n}\n\nexport const occStoreFinderConfig: StoreFinderOccConfig = {\n  backend: {\n    occ: {\n      endpoints: {\n        store: 'stores/${storeId}?fields=FULL',\n        stores:\n          'stores?fields=stores(name,displayName,formattedDistance,openingHours(weekDayOpeningList(FULL),specialDayOpeningList(FULL)),geoPoint(latitude,longitude),address(line1,line2,town,region(FULL),postalCode,phone,country,email), features),pagination(DEFAULT),sorts(DEFAULT)',\n        storescounts: 'stores/storescounts',\n      },\n    },\n  },\n};\n","import { OccConfig, OccEndpoints } from '@spartacus/core';\n\n// needed to have a working typing\ninterface UserOccConfig extends OccConfig {\n  backend: {\n    occ: {\n      endpoints: OccEndpoints;\n    };\n  };\n}\n\nexport const occUserConfig: UserOccConfig = {\n  backend: {\n    occ: {\n      // cannot extend from defaultOccCartConfig as it is not exported\n      endpoints: {\n        paymentDetailsAll: 'users/${userId}/paymentdetails',\n        paymentDetail: 'users/${userId}/paymentdetails/${paymentDetailId}',\n        anonymousConsentTemplates: 'users/anonymous/consenttemplates',\n        consentTemplates: 'users/${userId}/consenttemplates',\n        consents: 'users/${userId}/consents',\n        consentDetail: 'users/${userId}/consents/${consentId}',\n        addresses: 'users/${userId}/addresses',\n        addressDetail: 'users/${userId}/addresses/${addressId}',\n        addressVerification: 'users/${userId}/addresses/verification',\n        customerCoupons: 'users/${userId}/customercoupons',\n        claimCoupon: 'users/${userId}/customercoupons/${couponCode}/claim',\n        couponNotification: 'users/${userId}/customercoupons/${couponCode}/notification',\n        notificationPreference: 'users/${userId}/notificationpreferences',\n        productInterests: 'users/${userId}/productinterests',\n        getProductInterests:\n          'users/${userId}/productinterests?fields=sorts,pagination,results(productInterestEntry,product(code))',\n      },\n    },\n  },\n};\n","import { defaultOccUserProfileConfig } from '@spartacus/user/profile/occ';\nimport { occCartConfig } from './occ-config/occ-cart-config';\nimport { occCheckoutConfig } from './occ-config/occ-checkout-config';\nimport { occOrderConfig } from './occ-config/occ-order-config';\nimport { occSavedCartConfig } from './occ-config/occ-saved-cart-config';\nimport { occStoreFinderConfig } from './occ-config/occ-store-finder-config';\nimport { occUserConfig } from './occ-config/occ-user-config';\nimport { Environment } from './types';\n\n/**\n * TODO use endpoints from default configs after SAP exports them, see https://github.com/SAP/spartacus/issues/17442\n *\n * defaultOccCartConfig\n * defaultOccCheckoutConfig\n * defaultOccOrderConfig\n * defaultOccAccountSummaryConfig\n * defaultOccStoreFinderConfig\n * defaultOccUserAccountConfig\n * defaultOccUserProfileConfig\n * defaultOccProductConfig\n * defaultOccSiteContextConfig\n * defaultOccUserConfig\n */\n\nconst i18nEndpoint = 'i18n/${language}/${namespace}';\n\nconst cartEndpoints = occCartConfig.backend.occ.endpoints;\nconst checkoutEndpoints = occCheckoutConfig.backend.occ.endpoints;\nconst orderEndpoints = occOrderConfig.backend.occ.endpoints;\nconst savedCartEndpoints = occSavedCartConfig.backend?.occ?.endpoints;\nconst userEndpoints = occUserConfig.backend?.occ?.endpoints;\nconst userProfileEndpoints = defaultOccUserProfileConfig.backend?.occ?.endpoints;\nconst storeFinderEndpoints = occStoreFinderConfig.backend.occ.endpoints;\n\n/**\n * Returns the default routes for Spartacus Mock Server\n * @param environment\n */\nexport function getDefaultRoutes(environment: Environment) {\n  const occEndpoint = `${environment.backend.occ?.baseUrl}${environment.backend.occ?.prefix}`;\n\n  // TODO Take all endpoints from the defaultXxx configs above\n  return {\n    /**\n     * General Calls ***************************************************************************************************\n     */\n\n    /**\n     * Route for the baseSites call being done by spartacus on application startup\n     */\n    baseSites: `${occEndpoint}basesites`,\n\n    /**\n     * Route for the languages call being done by spartacus on application startup\n     */\n    languages: `${occEndpoint}:baseSiteId/languages`,\n\n    /**\n     * Route for the currencies call being done by spartacus on application startup\n     */\n    currencies: `${occEndpoint}:baseSiteId/currencies`,\n\n    /**\n     * Route for the titles call being done by spartacus when showing the address form\n     */\n    titles: `${occEndpoint}:baseSiteId/titles`,\n\n    /**\n     * Route for the countries call being done by spartacus when showing the address form\n     */\n    countries: `${occEndpoint}:baseSiteId/countries`,\n\n    /**\n     * Route for the regions call being done by spartacus when showing the address form\n     */\n    regions: `${occEndpoint}:baseSiteId/countries/:isocode/regions`,\n\n    /**\n     *  Route for the i18n call to load the translations from the backend when having i18n lazy loading activated\n     *  Url is defined as <occ-base-url>/<occ-prefix>/i18n/${language}/${namespace} and can be overridden via\n     *  option i18nEndpoint of the spartacus-mock options\n     */\n    i18n: `${occEndpoint}:baseSiteId/${i18nEndpoint\n      .split('?')[0]\n      .replace('${language}', ':language')\n      .replace('${namespace}', ':namespace')}`,\n\n    /**\n     * User related calls **********************************************************************************************\n     */\n\n    /**\n     * Route for the login call to the authorizationserver\n     */\n    authLogin: '*/authorizationserver/oauth/token',\n\n    /**\n     * Route for the logout call to the authorizationserver\n     */\n    authRevoke: '*/authorizationserver/oauth/revoke',\n\n    /**\n     * Route for the users call to create a new user during registration\n     */\n    users: `${occEndpoint}:baseSiteId/users`,\n\n    /**\n     * Route for the user call to get the user details after login\n     */\n    user: `${occEndpoint}:baseSiteId/users/:user`,\n\n    /**\n     * Route for the call to get the user details\n     * call somehow needed and done without baseSite sometimes\n     */\n    userTemp: `${occEndpoint}users/:user`,\n\n    /**\n     * Route for the call to get the consent templates for the current user\n     */\n    consentTemplates: `${occEndpoint}:baseSiteId/users/:user/consenttemplates`,\n\n    /**\n     * Route for the call to get the consent templates for the current user\n     */\n    anonymousConsentTemplates: `${occEndpoint}:baseSiteId/users/:user/consenttemplates`,\n\n    /**\n     * Route for the call to get the notification preferences for the current user\n     */\n    notificationPreferences: `${occEndpoint}:baseSiteId/users/:user/notificationpreferences`,\n\n    /**\n     * Route for the call to get the product interests for the current user\n     */\n    productInterests: `${occEndpoint}:baseSiteId/users/:user/productinterests`,\n\n    /**\n     * Route for the call to get the customer coupons for the current user\n     */\n    customerCoupons: `${occEndpoint}:baseSiteId/users/:user/customercoupons`,\n\n    /**\n     * Route for the call to get the addresses for the current user\n     */\n    addresses: `${occEndpoint}:baseSiteId/users/:user/addresses`,\n\n    /**\n     * Route for the call to get the payment details for the current user\n     */\n    payments: `${occEndpoint}:baseSiteId/users/:user/paymentDetails`,\n\n    /**\n     * Route for the call to get execute the address verification for the current user\n     */\n    addressVerification: `${occEndpoint}:baseSiteId/users/:user/addresses/verification`,\n\n    /**\n     * CMS Calls *******************************************************************************************************\n     */\n\n    /**\n     * Route for the call to get the page data (basic page data & slots with components) for the current page\n     */\n    pages: `${occEndpoint}:baseSiteId/cms/pages`,\n\n    /**\n     * Route for the call to get the component data (spartacus does this call with aggregated component Uid's)\n     */\n    components: `${occEndpoint}:baseSiteId/cms/components`,\n\n    /**\n     * Product Calls ***************************************************************************************************\n     */\n\n    /**\n     * Route for the call to get the product references for the current product (works on product detail page)\n     */\n    productReferences: `${occEndpoint}:baseSiteId/products/:productCode/references`,\n\n    /**\n     * Route for the call to get the product references for the current product (works on product detail page)\n     */\n    productReviews: `${occEndpoint}:baseSiteId/products/:productCode/reviews`,\n\n    /**\n     * Route for the call to search for products and return a productSearchPage Object\n     */\n    productSearch: `${occEndpoint}:baseSiteId/products/search`,\n\n    /**\n     * Route for the call to search for text based product suggestions\n     */\n    searchSuggestions: `${occEndpoint}:baseSiteId/products/suggestions`,\n\n    /**\n     * Route for the call to load the product details\n     */\n    product: `${occEndpoint}:baseSiteId/products/:productCode`,\n\n    /**\n     * Cart Calls ******************************************************************************************************\n     */\n    /**\n     * Route for the call to load the carts for a user. The returned array can contain multiple (normal, wishlist, selective) carts.\n     */\n    carts: `${occEndpoint}:baseSiteId/${(cartEndpoints.carts as string).split('?')[0]}`.replace('${userId}', ':userId'),\n\n    /**\n     * Route for the call to load the cart data for a certain cartId\n     */\n    cart: `${occEndpoint}:baseSiteId/${(cartEndpoints.cart as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to add an entry to cart\n     */\n    addEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.addEntries as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to update an entry in the cart\n     */\n    updateEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.updateEntries as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId')\n      .replace('${entryNumber}', ':entryNumber'),\n\n    /**\n     * Route for the call to remove an entry from the cart\n     */\n    removeEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.removeEntries as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId')\n      .replace('${entryNumber}', ':entryNumber'),\n\n    /**\n     * Route for the call to delete a cart\n     */\n    deleteCart: `${occEndpoint}:baseSiteId/${(cartEndpoints.deleteCart as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to set an email on the cart (needed for guest checkout)\n     */\n    addEmail: `${occEndpoint}:baseSiteId/${(cartEndpoints.addEmail as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to add a voucher on the cart\n     */\n    cartVoucher: `${occEndpoint}:baseSiteId/${(cartEndpoints.cartVoucher as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to remove a voucher from the cart\n     */\n    cartVoucherRemove: `${occEndpoint}:baseSiteId/${(cartEndpoints.cartVoucher as string).split('?')[0]}/:voucherCode`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to validate the cart\n     */\n    validate: `${occEndpoint}:baseSiteId/${(cartEndpoints.validate as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to save a cart as wishlist cart for user logging in and not having a wishlist cart yet\n     */\n    saveCart: `${occEndpoint}:baseSiteId${(cartEndpoints.saveCart as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'), // Note: The saveCart endpoint from the Spartacus Core starts with a \"/\"\n\n    /**\n     * Checkout Calls **************************************************************************************************\n     */\n\n    /**\n     * Route for the call to set a delivery address on the cart during checkout\n     */\n    setDeliveryAddress: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.setDeliveryAddress as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to create a new delivery address on the cart during checkout\n     */\n    createDeliveryAddress: `${occEndpoint}:baseSiteId/${\n      (checkoutEndpoints.createDeliveryAddress as string).split('?')[0]\n    }`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to remove a delivery address on the cart during checkout\n     */\n    removeDeliveryAddress: `${occEndpoint}:baseSiteId/${\n      (checkoutEndpoints.removeDeliveryAddress as string).split('?')[0]\n    }`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to set a delivery mode on the cart during checkout\n     */\n    deliveryMode: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.deliveryMode as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to get all available delivery modes\n     */\n    deliveryModes: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.deliveryModes as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to get all available card types for payment\n     */\n    cardTypes: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.cardTypes as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to get the payment provider sub info when using an integrated payment provider (default spartacus)\n     */\n    paymentProviderSubInfo: `${occEndpoint}:baseSiteId/${\n      (checkoutEndpoints.paymentProviderSubInfo as string).split('?')[0]\n    }`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to create a new payment method\n     */\n    createPaymentDetails: `${occEndpoint}:baseSiteId/${\n      (checkoutEndpoints.createPaymentDetails as string).split('?')[0]\n    }`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to set an existing payment method on the cart\n     */\n    setCartPaymentDetails: `${occEndpoint}:baseSiteId/${\n      (checkoutEndpoints.setCartPaymentDetails as string).split('?')[0]\n    }`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to get the mock sop payment response (html page)\n     */\n    sopMockProcess: `${environment.backend.occ?.baseUrl}/acceleratorservices/sop-mock/process`,\n\n    /**\n     * Order Calls *****************************************************************************************************\n     */\n\n    /**\n     * Route for the call to place the order\n     */\n    placeOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.placeOrder as string).split('?')[0]}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Route for the call to load the orders for a user\n     */\n    orderHistory: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderHistory as string).split('?')[0]}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Route for the call to load the order details for an order\n     */\n    orderDetail: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderDetail as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${orderId}', ':orderId'),\n\n    /**\n     * Route for the call to cancel an order\n     */\n    cancelOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.cancelOrder as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${orderId}', ':orderId'),\n\n    /**\n     * Route for the call to return an order\n     */\n    returnOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.returnOrder as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${orderId}', ':orderId'),\n\n    /**\n     * Route for the call to load the order returns\n     */\n    orderReturns: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderReturns as string).split('?')[0]}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Route for the call to load the the order return details\n     */\n    orderReturnDetail: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderReturnDetail as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${returnRequestCode}', ':returnRequestCode'),\n\n    /**\n     * Route for the call to cancel an order return\n     */\n    cancelReturn: `${occEndpoint}:baseSiteId/${(orderEndpoints.cancelReturn as string).split('?')[0]}`\n      .replace('${userId}', ':userId')\n      .replace('${returnRequestCode}', ':returnRequestCode'),\n\n    /**\n     * Account Calls ***************************************************************************************************\n     */\n\n    /**\n     * Route for the call to restore a saved cart\n     */\n    restoreSavedCart: `${occEndpoint}:baseSideId/${savedCartEndpoints?.restoreSavedCart}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to clone a saved cart\n     */\n    cloneSavedCart: `${occEndpoint}:baseSideId/${(savedCartEndpoints?.cloneSavedCart as string).split('?')}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to get a saved cart\n     */\n    savedCart: `${occEndpoint}:baseSideId/${savedCartEndpoints?.savedCart}`\n      .replace('${userId}', ':userId')\n      .replace('${cartId}', ':cartId'),\n\n    /**\n     * Route for the call to change / delete an address\n     */\n    addressDetail: `${occEndpoint}:baseSideId/${userEndpoints?.addressDetail}`\n      .replace('${userId}', ':userId')\n      .replace('${addressId}', ':addressId'),\n\n    /**\n     * Route for the call to delete an payment type\n     */\n    paymentDetail: `${occEndpoint}:baseSiteId/${userEndpoints?.paymentDetail}`\n      .replace('${userId}', ':userId')\n      .replace('${paymentDetailId}', ':paymentDetailId'),\n\n    /**\n     * Route for the call to update the user password\n     */\n    userUpdatePassword: `${occEndpoint}:baseSiteId/${userProfileEndpoints?.userUpdatePassword}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Route for the call to update the user id (email)\n     */\n    userUpdateLoginId: `${occEndpoint}:baseSiteId/${userProfileEndpoints?.userUpdateLoginId}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Route for the call to delete a previously given consent\n     */\n    consentDetail: `${occEndpoint}:baseSiteId/${userEndpoints?.consentDetail}`\n      .replace('${userId}', ':userId')\n      .replace('${consentId}', ':consentId'),\n\n    /**\n     * Route for the call to get all consents of a user\n     */\n    consents: `${occEndpoint}:baseSiteId/${userEndpoints?.consents}`.replace('${userId}', ':userId'),\n\n    /**\n     * Route for the call to get all consents of a user\n     */\n    anonymousConsents: `${occEndpoint}:baseSiteId/${\n      (userEndpoints?.anonymousConsentTemplates as string).split('?')[0]\n    }}`,\n\n    /**\n     * Route for the call to get the notification preferences of a user\n     */\n    notificationPreference: `${occEndpoint}:baseSiteId/${userEndpoints?.notificationPreference}`.replace(\n      '${userId}',\n      ':userId'\n    ),\n\n    /**\n     * Store Finder ****************************************************************************************************\n     */\n\n    /**\n     * Route for the call to get the number of stores\n     */\n    storescounts: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.storescounts as string).split('?')[0]}`,\n\n    /**\n     * Route for the call to get the stores\n     */\n    stores: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.stores as string).split('?')[0]}`,\n\n    /**\n     * Route for the call to get the store details\n     */\n    store: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.store as string).split('?')[0]}`.replace(\n      '${storeId}',\n      ':storeId'\n    ),\n  };\n}\n","import { Occ } from '@spartacus/core';\n\nexport const createCountry = (additionalData?: Occ.Country): Occ.Country => {\n  return {\n    isocode: 'CH',\n    name: 'Schweiz',\n    ...additionalData,\n  };\n};\n\nexport const countryList = (): Occ.CountryList => {\n  return {\n    countries: [\n      createCountry({\n        isocode: 'CH',\n        name: 'Switzerland',\n      }),\n      createCountry({\n        isocode: 'DE',\n        name: 'Germany',\n      }),\n      createCountry({\n        isocode: 'FR',\n        name: 'France',\n      }),\n      createCountry({\n        isocode: 'IT',\n        name: 'Italy',\n      }),\n    ],\n  };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createCurrency = (additionalData?: Occ.Currency): Occ.Currency => {\n  return {\n    active: true,\n    isocode: 'USD',\n    name: 'US Dollar',\n    symbol: '$',\n    ...additionalData,\n  };\n};\n\nexport const currencyList = (): Occ.CurrencyList => {\n  return {\n    currencies: [\n      createCurrency(),\n      createCurrency({\n        isocode: 'EUR',\n        name: 'Euro',\n        symbol: '€',\n      }),\n      createCurrency({\n        isocode: 'CHF',\n        name: 'Schweizer Franken',\n        symbol: 'CHF',\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createPagination = (additionalData?: Occ.Pagination): Occ.Pagination => {\n  return {\n    count: 10,\n    page: 1,\n    totalCount: 10,\n    totalPages: 1,\n    ...additionalData,\n  };\n};\n\nexport const createPaginationModel = (additionalData?: Occ.PaginationModel): Occ.PaginationModel => {\n  const totalResults = faker.number.int({ min: 1, max: 999 });\n  const pageSize = 12;\n\n  return {\n    currentPage: 1,\n    pageSize,\n    sort: '',\n    totalPages: totalResults / pageSize + 1,\n    totalResults,\n    ...additionalData,\n  };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createRegion = (additionalData?: Occ.Region): Occ.Region => {\n  return {\n    countryIso: 'CH',\n    isocode: 'SG',\n    isocodeShort: 'SG',\n    name: 'St. Gallen',\n    ...additionalData,\n  };\n};\n\nexport const regionList = (): Occ.RegionList => {\n  return {\n    regions: [\n      createRegion(),\n      createRegion({\n        isocode: 'ZH',\n        isocodeShort: 'ZH',\n        name: 'Zürich',\n      }),\n      createRegion({\n        isocode: 'BE',\n        isocodeShort: 'BE',\n        name: 'Bern',\n      }),\n      createRegion({\n        isocode: 'TG',\n        isocodeShort: 'TG',\n        name: 'Thurgau',\n      }),\n    ],\n  };\n};\n","import { Occ, SortModel } from '@spartacus/core';\n\nexport const createSort = (additionalData?: Occ.Sort): Occ.Sort => {\n  return {\n    asc: true,\n    code: 'name',\n    ...additionalData,\n  };\n};\n\nexport const createSortModel = (additionalData?: SortModel): Occ.SortModel => {\n  return {\n    code: 'name',\n    name: 'Name',\n    selected: false,\n    ...additionalData,\n  };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createTitle = (additionalData?: Occ.Title): Occ.Title => {\n  return {\n    code: 'mr',\n    name: 'Mr',\n    ...additionalData,\n  };\n};\n\nexport const titleList = (): Occ.TitleList => {\n  return {\n    titles: [\n      createTitle({\n        code: 'mr',\n        name: 'Mr.',\n      }),\n      createTitle({\n        code: 'mrs',\n        name: 'Mrs.',\n      }),\n      createTitle({\n        code: 'div',\n        name: 'Divers',\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createCountry, createRegion } from '../general';\n\nexport const createAddress = (additionalData?: Occ.Address): Occ.Address => {\n  const firstName = faker.person.firstName();\n  const lastName = faker.person.lastName();\n\n  return {\n    id: faker.string.uuid(),\n    title: 'Mr.',\n    titleCode: 'mr',\n    email: faker.internet.email({ firstName, lastName }),\n    firstName,\n    lastName,\n    companyName: faker.company.name(),\n    line1: faker.location.streetAddress(),\n    line2: '',\n    postalCode: faker.location.zipCode('####'),\n    town: faker.location.city(),\n    country: createCountry(),\n    region: createRegion(),\n    cellphone: faker.phone.number(),\n    defaultAddress: false,\n    shippingAddress: true,\n    formattedAddress: '',\n    phone: faker.phone.number(),\n    visibleInAddressBook: true,\n    ...additionalData,\n  };\n};\n\nexport const addressList = (): Occ.AddressList => {\n  return {\n    addresses: [\n      createAddress({\n        shippingAddress: true,\n      }),\n      createAddress({\n        shippingAddress: false,\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPagination } from '../general/pagination';\nimport { createSort } from '../general/sort';\n\nexport const createCustomerCoupon = (additionalData?: Occ.CustomerCoupon): Occ.CustomerCoupon => {\n  return {\n    couponId: faker.string.numeric(6),\n    name: 'Free Delivery Coupon',\n    startDate: faker.date.past().toDateString(),\n    endDate: faker.date.future().toDateString(),\n    status: 'Effective',\n    description: faker.lorem.sentences(2),\n    notificationOn: false,\n    allProductsApplicable: true,\n    ...additionalData,\n  };\n};\n\nexport const customerCouponSearchResult = (\n  additionalData?: Occ.CustomerCouponSearchResult\n): Occ.CustomerCouponSearchResult => {\n  return {\n    coupons: [createCustomerCoupon()],\n    pagination: createPagination(),\n    sorts: [\n      createSort({\n        code: 'startdata',\n      }),\n    ],\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { NotificationPreference, NotificationPreferenceList } from '@spartacus/core';\n\nexport const createNotificationPreference = (additionalData?: NotificationPreference): NotificationPreference => {\n  return {\n    channel: 'EMAIL',\n    enabled: true,\n    value: faker.internet.email(),\n    visible: true,\n    ...additionalData,\n  };\n};\n\nexport const notificationPreferenceList = (): NotificationPreferenceList => {\n  return {\n    preferences: [\n      createNotificationPreference(),\n      createNotificationPreference({\n        channel: 'SITE_MESSAGE',\n        enabled: false,\n        visible: true,\n        value: '',\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createAddress } from './addresses';\n\nexport const DEFAULT_PAYMENT_ID: string = '8796126183466';\n\nexport const createCardType = (additionalData?: Occ.CardType): Occ.CardType => {\n  return {\n    code: 'maestro',\n    name: 'Maestro',\n    ...additionalData,\n  };\n};\n\nexport const createPaymentDetails = (additionalData?: Occ.PaymentDetails): Occ.PaymentDetails => {\n  return {\n    accountHolderName: faker.person.fullName(),\n    billingAddress: createAddress({ shippingAddress: false }),\n    cardNumber: `************${faker.string.numeric(4)}`,\n    cardType: createCardType(),\n    defaultPayment: false,\n    expiryMonth: faker.number.int({ min: 1, max: 12 }).toString(),\n    expiryYear: faker.number.int({ min: 2030, max: 2050 }).toString(),\n    id: faker.string.numeric(9),\n    saved: true,\n    subscriptionId: faker.string.uuid(),\n    ...additionalData,\n  };\n};\n\nexport const paymentDetailsList = (): Occ.PaymentDetailsList => {\n  return {\n    payments: [\n      createPaymentDetails({\n        defaultPayment: true,\n        id: DEFAULT_PAYMENT_ID,\n      }),\n      createPaymentDetails({\n        cardType: createCardType({\n          code: 'visa',\n          name: 'Visa',\n        }),\n      }),\n      createPaymentDetails({\n        cardType: createCardType({\n          code: 'amex',\n          name: 'American Express',\n        }),\n      }),\n      createPaymentDetails({\n        cardType: createCardType({\n          code: 'diners',\n          name: \"Diner's Club\",\n        }),\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { PriceModifier } from '../../types';\n\nexport const createPrice = (additionalData?: Occ.Price, modifier?: PriceModifier): Occ.Price => {\n  const valueMin = Number.isInteger(modifier?.valueMin) ? modifier?.valueMin : faker.number.int({ min: 1, max: 9999 });\n  const valueMax = Number.isInteger(modifier?.valueMax)\n    ? modifier?.valueMax\n    : faker.number.int({ min: valueMin, max: 9999 });\n  const value = faker.number.int({ min: valueMin, max: valueMax });\n\n  return {\n    currencyIso: 'CHF',\n    formattedValue: faker.commerce.price({ min: valueMin, max: valueMax, dec: 2, symbol: 'CHF' }),\n    maxQuantity: undefined,\n    minQuantity: undefined,\n    priceType: Occ.PriceType.BUY,\n    value,\n    ...additionalData,\n  };\n};\n\nexport const createPriceRange = (additionalData?: Occ.PriceRange): Occ.PriceRange => {\n  const minPrice = faker.number.int({ min: 1, max: 999 });\n  const maxPrice = faker.number.int({ min: minPrice, max: 9999 });\n\n  return {\n    minPrice: createPrice({\n      value: minPrice,\n      formattedValue: faker.commerce.price({ min: minPrice, max: minPrice, dec: 2, symbol: 'CHF' }),\n    }),\n    maxPrice: createPrice({\n      value: maxPrice,\n      formattedValue: faker.commerce.price({ min: maxPrice, max: maxPrice, dec: 2, symbol: 'CHF' }),\n    }),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPrice } from './price';\n\nexport const createDeliveryMode = (additionalData?: Occ.DeliveryMode): Occ.DeliveryMode => {\n  return {\n    code: faker.string.uuid(),\n    name: faker.lorem.words(3),\n    description: faker.lorem.sentences(1),\n    deliveryCost: createPrice(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { ImageModifier } from '../../types';\n\nexport const image = (additionalData?: Occ.Image, modifier?: ImageModifier): Occ.Image => {\n  return {\n    altText: faker.lorem.words(5),\n    format: 'picture',\n    galleryIndex: undefined,\n    imageType: Occ.ImageType.PRIMARY,\n    url: `https://picsum.photos/${modifier?.width || 1200}/${modifier?.height || 1200}.webp?random=${faker.number.int(\n      999\n    )}`,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { image } from '../media/image';\n\nexport const createPromotionOrderEntryConsumed = (\n  additionalData?: Occ.PromotionOrderEntryConsumed\n): Occ.PromotionOrderEntryConsumed => {\n  return {\n    adjustedUnitPrice: faker.number.int({ min: 1, max: 50 }),\n    code: faker.string.numeric(6),\n    orderEntryNumber: 1,\n    quantity: 1,\n    ...additionalData,\n  };\n};\n\nexport const createPromotionResult = (additionalData?: Occ.PromotionResult): Occ.PromotionResult => {\n  return {\n    consumedEntries: [createPromotionOrderEntryConsumed()],\n    description: faker.lorem.words(4),\n    promotion: createPromotion(),\n    ...additionalData,\n  };\n};\n\nexport const createPromotionRestriction = (additionalData?: Occ.PromotionRestriction): Occ.PromotionRestriction => {\n  return {\n    description: faker.lorem.sentences(3),\n    restrictionType: '',\n    ...additionalData,\n  };\n};\n\nexport const createPromotion = (additionalData?: Occ.Promotion): Occ.Promotion => {\n  return {\n    code: faker.string.uuid(),\n    couldFireMessages: [],\n    description: faker.lorem.sentences(3),\n    enabled: true,\n    endDate: faker.date.future(),\n    firedMessages: [],\n    priority: 1,\n    productBanner: image(),\n    promotionGroup: '',\n    promotionType: '',\n    restrictions: [createPromotionRestriction()],\n    startDate: faker.date.past(),\n    title: faker.lorem.words(5),\n    ...additionalData,\n  };\n};\n","import { HttpHandler } from 'msw';\nimport { Voucher } from '@spartacus/cart/base/root';\nimport { BackendConfig, Occ, OccConfig, Page as SpartacusPage } from '@spartacus/core';\nimport { TranslationResources } from '@spartacus/core/src/i18n/translation-resources';\n\ndeclare module '@spartacus/core' {\n  namespace Occ {\n    interface Component {\n      uuid?: string;\n      linkName?: string;\n      url?: string;\n      target?: string;\n      external?: boolean;\n      contentPage?: string;\n      contentPageLabelOrId?: string;\n      [key: string]: string | boolean | object | undefined;\n    }\n\n    interface ContentSlot {\n      slotUuid?: string;\n    }\n  }\n}\n\nexport interface Pages {\n  [key: string]: Occ.CMSPage;\n}\n\nexport interface ActiveCartEntry {\n  code: string;\n  quantity: number;\n}\n\nexport interface LocalStorageMockData {\n  activeCartEntries: ActiveCartEntry[];\n  activeVouchers: Voucher[];\n  isGuestCheckout: boolean;\n}\n\nexport const LOCAL_STORAGE_KEY = 'spartacus⚿⚿mock-data';\n\nexport interface Page extends SpartacusPage {\n  uid?: string;\n  uuid?: string;\n}\n\nexport interface ContentSlot extends Occ.ContentSlot {\n  slotId?: string;\n  slotUuid?: string;\n}\n\nexport interface Component extends Occ.Component {\n  uuid: string;\n  [key: string]: string | boolean | object | undefined;\n}\n\nexport interface CmsComponentAdditionalData {\n  [key: string]: string | boolean | object | undefined;\n}\n\nexport interface ContentPages {\n  [key: string]: Page;\n}\n\nexport interface Environment extends OccConfig {\n  backend: BackendConfig;\n}\n\nexport interface MockRequest {\n  url: string;\n  requestFunction: 'get' | 'post' | 'put' | 'delete' | 'head';\n}\n\nexport interface MockConfig {\n  enableWorker: boolean;\n  environment: Environment;\n  enableDefaultData?: boolean;\n  passThroughRequests?: MockRequest[];\n  handlers?: HttpHandler[];\n  contentPages?: ContentPages;\n  productDetailPage?: Page;\n  productCategoryPage?: Page;\n  homePage?: Page;\n  customSlots?: Occ.ContentSlot[];\n  translations?: TranslationResources;\n  inclusionMode?: boolean;\n  mockedRequests?: MockRequest[];\n  mockedPageIds?: string[];\n  quiet?: boolean;\n  debug?: boolean;\n\n  // TODO Components Call Handler Options\n}\n\nexport interface ProductSearchPageModifier {\n  query?: string;\n  pageSize?: number;\n  sort?: string;\n  currentPage?: number;\n}\n\nexport interface SearchStateModifier {\n  query?: string;\n  activeSort?: string;\n}\n\nexport interface FacetValueModifier extends SearchStateModifier {}\n\nexport interface ProductReferenceListModifier {\n  referenceType?: string;\n}\n\nexport interface ImageModifier {\n  width?: number;\n  height?: number;\n}\n\nexport interface PriceModifier {\n  valueMin?: number;\n  valueMax?: number;\n}\n\nexport interface TranslationChunks {\n  address?: object;\n  common?: object;\n  myAccount?: object;\n  payment?: object;\n  product?: object;\n  pwa?: object;\n  user?: object;\n  video?: object;\n  pdf?: object;\n\n  cart?: object;\n  importExport?: object;\n  quickOrder?: object;\n  savedCart?: object;\n  wishlist?: object;\n  checkout?: object;\n  order?: object;\n  bulkPricing?: object;\n  productImageZoom?: object;\n  storeFinder?: object;\n  userAccount?: object;\n  userProfile?: object;\n}\n","import { faker } from '@faker-js/faker';\nimport { Voucher } from '@spartacus/cart/base/root';\nimport { Occ } from '@spartacus/core';\nimport { LOCAL_STORAGE_KEY, LocalStorageMockData } from '../../types';\nimport { createCurrency } from '../general';\n\nexport const createVoucher = (additionalData?: Occ.Voucher): Occ.Voucher => {\n  return {\n    code: faker.string.uuid(),\n    currency: createCurrency(),\n    description: faker.lorem.paragraphs(1),\n    freeShipping: faker.datatype.boolean(),\n    name: faker.lorem.words(4),\n    value: 0,\n    valueFormatted: 'USD 0.00',\n    valueString: '0',\n    voucherCode: faker.string.numeric(10),\n    ...additionalData,\n  };\n};\n\nexport const addVoucher = (voucherId: string) => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  mockData.activeVouchers.push({\n    code: voucherId,\n    voucherCode: voucherId,\n  });\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n};\n\nexport const deleteVoucher = (voucherCode: string) => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  mockData = {\n    ...mockData,\n    activeVouchers: mockData.activeVouchers.filter((voucher: Voucher) => {\n      return voucher.code !== voucherCode;\n    }),\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createProductStock = (additionalData?: Occ.Stock): Occ.Stock => {\n  return {\n    stockLevel: faker.number.int({ min: 1, max: 9999 }),\n    stockLevelStatus: 'inStock',\n    ...additionalData,\n  };\n};\n\nexport const createFutureStock = (additionalData?: Occ.FutureStock): Occ.FutureStock => {\n  const date = faker.date.future();\n\n  return {\n    date,\n    formattedDate: date.toDateString(),\n    stock: createProductStock(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPrice } from '../commerce';\nimport { createProductStock } from './product-stock';\n\nexport const createVariantOptionQualifier = (): Occ.VariantOptionQualifier => {\n  return {\n    image: undefined,\n    name: `${faker.commerce.productName()} - ${faker.commerce.productMaterial()}`,\n    qualifier: faker.commerce.productMaterial(),\n    value: faker.commerce.productMaterial(),\n  };\n};\n\nexport const createVariantOption = (additionalData?: Occ.VariantOption): Occ.VariantOption => {\n  return {\n    code: `VAR_${faker.string.numeric(6)}`,\n    priceData: createPrice(),\n    stock: createProductStock(),\n    url: faker.internet.url(),\n    variantOptionQualifiers: [\n      createVariantOptionQualifier(),\n      createVariantOptionQualifier(),\n      createVariantOptionQualifier(),\n    ],\n    ...additionalData,\n  };\n};\n\nexport const createBaseOption = (additionalData?: Occ.BaseOption): Occ.BaseOption => {\n  return {\n    options: [createVariantOption()],\n    selected: createVariantOption(),\n    variantType: '',\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createProductCategory = (additionalData?: Occ.Category): Occ.Category => {\n  return {\n    code: faker.string.uuid(),\n    name: faker.commerce.department(),\n    image: undefined,\n    url: faker.internet.url(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createFeatureValue = (): Occ.FeatureValue => {\n  return {\n    value: faker.string.numeric(2),\n  };\n};\n\nexport const createFeatureUnit = (additionalData?: Occ.FeatureUnit): Occ.FeatureUnit => {\n  return {\n    name: faker.science.unit().name,\n    symbol: faker.science.unit().symbol,\n    unitType: faker.string.numeric(2),\n    ...additionalData,\n  };\n};\n\nexport const createFeature = (additionalData?: Occ.Feature): Occ.Feature => {\n  return {\n    code: faker.string.numeric(4),\n    comparable: true,\n    featureUnit: createFeatureUnit(),\n    featureValues: [createFeatureValue()],\n    name: faker.science.unit().name,\n    range: false,\n    ...additionalData,\n  };\n};\n\nexport const createProductClassification = (additionalData?: Occ.Classification): Occ.Classification => {\n  return {\n    code: faker.string.numeric(4),\n    features: new Array(faker.number.int(10)).fill(null).map(() => createFeature()),\n    name: faker.commerce.productName(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { ProductReferenceListModifier } from '../../types';\nimport { createBaseProduct } from './product';\n\nexport const createProductReference = (additionalData?: Occ.ProductReference): Occ.ProductReference => {\n  return {\n    description: faker.commerce.productDescription(),\n    preselected: false,\n    quantity: faker.number.int({ min: 1, max: 99 }),\n    referenceType: 'ACCESSORIES',\n    target: createBaseProduct(),\n    ...additionalData,\n  };\n};\n\nexport const productReferenceList = (modifier?: ProductReferenceListModifier): Occ.ProductReferenceList => {\n  return {\n    references: [\n      createProductReference({ referenceType: modifier?.referenceType || 'ACCESSORIES' }),\n      createProductReference({ referenceType: modifier?.referenceType || 'ACCESSORIES' }),\n      createProductReference({ referenceType: modifier?.referenceType || 'ACCESSORIES' }),\n    ],\n  };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createLanguage = (additionalData?: Occ.Language): Occ.Language => {\n  return {\n    active: true,\n    isocode: 'en',\n    name: 'English',\n    nativeName: 'English',\n    ...additionalData,\n  };\n};\n\nexport const languageList = (): Occ.LanguageList => {\n  return {\n    languages: [\n      createLanguage(),\n      createLanguage({\n        isocode: 'de',\n        name: 'German',\n        nativeName: 'Deutsch',\n      }),\n      createLanguage({\n        isocode: 'it',\n        name: 'Italian',\n        nativeName: 'Italiano',\n      }),\n      createLanguage({\n        isocode: 'fr',\n        name: 'French',\n        nativeName: 'Francais',\n      }),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createAddress } from '../account';\nimport { createCurrency } from '../general';\nimport { createLanguage } from '../languages';\n\nexport const createUser = (additionalData?: Occ.User): Occ.User => {\n  const firstName = faker.person.firstName();\n  const lastName = faker.person.lastName();\n\n  return {\n    currency: createCurrency(),\n    customerId: faker.string.numeric(6),\n    deactivationDate: faker.date.future(),\n    defaultAddress: createAddress(),\n    displayUid: faker.internet.email({ firstName, lastName }),\n    firstName,\n    language: createLanguage(),\n    lastName,\n    name: faker.person.fullName({ firstName, lastName }),\n    title: 'Mr.',\n    titleCode: 'mr',\n    uid: faker.string.uuid(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createUser } from '../auth/user';\n\nexport const createReview = (additionalData?: Occ.Review): Occ.Review => {\n  return {\n    alias: faker.person.fullName(),\n    comment: faker.lorem.paragraphs(faker.number.int({ min: 1, max: 5 })),\n    date: faker.date.past(),\n    headline: faker.lorem.words(faker.number.int({ min: 2, max: 5 })),\n    id: faker.string.numeric(10),\n    principal: createUser(),\n    rating: faker.number.int({ min: 1, max: 5 }),\n    ...additionalData,\n  };\n};\n\nexport const reviewList = (): Occ.ReviewList => {\n  return {\n    reviews: new Array(faker.number.int({ min: 1, max: 10 })).fill(null).map(() => createReview()),\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPrice, createPriceRange, createPromotion } from '../commerce';\nimport { image } from '../media';\nimport { createBaseOption, createVariantOption } from './product-base-option';\nimport { createProductCategory } from './product-categories';\nimport { createProductClassification } from './product-classification';\nimport { createProductReference } from './product-references';\nimport { reviewList } from './product-reviews';\nimport { createFutureStock, createProductStock } from './product-stock';\n\nexport const activeTabItems = [\n  'ProductDetailsTabComponent',\n  'ProductSpecsTabComponent',\n  'ProductReviewsTabComponent',\n  'deliveryTab',\n];\n\n/**\n * Gets a Base Set of Product Data\n */\nexport const createBaseProduct = (additionalData?: Occ.Product): Occ.Product => {\n  return {\n    code: faker.string.numeric(6),\n    name: faker.commerce.productName(),\n    images: [\n      // PRIMARY\n      image({ format: 'hires' }, { width: 3500, height: 3500 }),\n      image({ format: 'product' }, { width: 675, height: 675 }),\n      image({ format: 'thumbnail' }, { width: 180, height: 180 }),\n      image({ format: 'cartIcon' }, { width: 180, height: 180 }),\n\n      // GALLERY\n      image(\n        { format: 'zoom', imageType: Occ.ImageType.GALLERY, galleryIndex: 1 },\n        {\n          width: 1200,\n          height: 1200,\n        }\n      ),\n      image(\n        { format: 'product', imageType: Occ.ImageType.GALLERY, galleryIndex: 1 },\n        {\n          width: 480,\n          height: 480,\n        }\n      ),\n      image(\n        { format: 'thumbnail', imageType: Occ.ImageType.GALLERY, galleryIndex: 1 },\n        {\n          width: 180,\n          height: 180,\n        }\n      ),\n\n      image(\n        { format: 'zoom', imageType: Occ.ImageType.GALLERY, galleryIndex: 2 },\n        {\n          width: 1200,\n          height: 1200,\n        }\n      ),\n      image(\n        { format: 'product', imageType: Occ.ImageType.GALLERY, galleryIndex: 2 },\n        {\n          width: 480,\n          height: 480,\n        }\n      ),\n      image(\n        { format: 'thumbnail', imageType: Occ.ImageType.GALLERY, galleryIndex: 2 },\n        {\n          width: 180,\n          height: 180,\n        }\n      ),\n\n      image(\n        { format: 'zoom', imageType: Occ.ImageType.GALLERY, galleryIndex: 3 },\n        {\n          width: 1200,\n          height: 1200,\n        }\n      ),\n      image(\n        { format: 'product', imageType: Occ.ImageType.GALLERY, galleryIndex: 3 },\n        {\n          width: 480,\n          height: 480,\n        }\n      ),\n      image(\n        { format: 'thumbnail', imageType: Occ.ImageType.GALLERY, galleryIndex: 3 },\n        {\n          width: 180,\n          height: 180,\n        }\n      ),\n    ],\n    baseProduct: `BASE_${faker.string.numeric(6)}`,\n    price: createPrice(),\n    purchasable: true,\n    url: faker.internet.url(),\n    stock: createProductStock(),\n    ...additionalData,\n  };\n};\n\n/**\n * Gets a Full Set of Product Data\n */\nexport const createFullProduct = (additionalData?: Occ.Product): Occ.Product => {\n  return {\n    ...createBaseProduct(),\n    availableForPickup: true,\n    averageRating: faker.number.float({ min: 1, max: 5, multipleOf: 0.1 }),\n    baseOptions: [createBaseOption()],\n    categories: [createProductCategory(), createProductCategory(), createProductCategory()],\n    classifications: [createProductClassification(), createProductClassification(), createProductClassification()],\n    description: faker.commerce.productDescription(),\n    futureStocks: [createFutureStock()],\n    manufacturer: faker.company.name(),\n    multidimensional: false,\n    numberOfReviews: faker.number.int({ min: 0, max: 999 }),\n    potentialPromotions: [createPromotion()],\n    priceRange: createPriceRange(),\n    productReferences: [\n      createProductReference({ referenceType: 'ACCESSORIES' }),\n      createProductReference({ referenceType: 'SIMILAR' }),\n    ],\n    reviews: reviewList().reviews,\n    summary: faker.lorem.sentences(5),\n    variantMatrix: [],\n    variantOptions: [createVariantOption(), createVariantOption(), createVariantOption()],\n    variantType: '',\n    volumePrices: [\n      createPrice({ minQuantity: 10 }),\n      createPrice({ minQuantity: 100 }),\n      createPrice({ minQuantity: 1000 }),\n    ],\n    volumePricesFlag: false,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPagination, createSort } from '../general';\nimport { createFullProduct } from '../products';\n\nexport const createProductInterestEntry = (additionalData?: Occ.ProductInterestEntry): Occ.ProductInterestEntry => {\n  return {\n    interestType: Occ.NotificationType.BACK_IN_STOCK,\n    dateAdded: faker.date.past().toDateString(),\n    expirationDate: faker.date.future().toDateString(),\n    ...additionalData,\n  };\n};\n\nexport const createProductInterestEntryRelation = (\n  additionalData?: Occ.ProductInterestEntryRelation\n): Occ.ProductInterestEntryRelation => {\n  return {\n    product: createFullProduct(),\n    productInterestEntry: [createProductInterestEntry()],\n    ...additionalData,\n  };\n};\n\nexport const productInterestSearchResult = (\n  additionalData?: Occ.ProductInterestSearchResult\n): Occ.ProductInterestSearchResult => {\n  return {\n    pagination: createPagination(),\n    results: [createProductInterestEntryRelation()],\n    sorts: [createSort()],\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { AuthToken } from '@spartacus/core';\n\nexport const createAuthToken = (): AuthToken => {\n  return {\n    access_token: faker.string.uuid(),\n    refresh_token: faker.string.uuid(),\n    expires_at: faker.date.future().toTimeString(),\n    granted_scopes: ['basic', 'openid'],\n    access_token_stored_at: '',\n    token_type: 'bearer',\n  };\n};\n\nexport const authRevoke = () => {\n  return {};\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { LOCAL_STORAGE_KEY, LocalStorageMockData } from '../../types';\nimport { createAddress } from '../account';\nimport { DEFAULT_PAYMENT_ID, createPaymentDetails } from '../account';\nimport { createDeliveryMode } from '../commerce';\nimport { createVoucher } from '../commerce';\nimport { createPromotionResult } from '../commerce';\nimport { createPrice } from '../commerce';\nimport { getUserForCart } from '../commerce/cart';\nimport { createFullProduct } from '../products';\n\nconst orderStatusDisplayOptions = [\n  'cancelled',\n  'cancelling',\n  'completed',\n  'created',\n  'error',\n  'processing',\n  'open',\n  'approved',\n];\n\nconst orderStatusOptions = [\n  'IN_TRANSIT',\n  'READY_FOR_PICKUP',\n  'READY_FOR_SHIPPING',\n  'WAITING',\n  'DELIVERING',\n  'PICKPACK',\n  'PICKUP_COMPLETE',\n  'DELIVERY_COMPLETED',\n  'PAYMENT_NOT_CAPTURED',\n  'READY',\n  'DELIVERY_REJECTED',\n  'DELIVERY_REJECTED',\n  'SHIPPED',\n  'TAX_NOT_COMMITTED',\n  'CANCELLED',\n];\n\nexport const createOrderEntry = (additionalData?: Occ.OrderEntry): Occ.OrderEntry => {\n  return {\n    basePrice: createPrice(),\n    deliveryMode: createDeliveryMode({ code: 'standard', name: 'Standard Delivery' }),\n    deliveryPointOfService: undefined,\n    entryNumber: faker.number.int({ min: 100000, max: 999999 }),\n    product: createFullProduct(),\n    quantity: faker.number.int({ min: 1, max: 20 }),\n    totalPrice: createPrice(),\n    updateable: false,\n    statusSummaryList: [],\n    configurationInfos: [],\n    ...additionalData,\n  };\n};\n\nexport const createConsignmentEntry = (additionalData?: Occ.ConsignmentEntry): Occ.ConsignmentEntry => {\n  return {\n    orderEntry: createOrderEntry(),\n    quantity: 1,\n    ...additionalData,\n  };\n};\n\nexport const createConsignment = (additionalData?: Occ.Consignment): Occ.Consignment => {\n  return {\n    code: 'cons' + faker.string.uuid(),\n    deliveryPointOfService: undefined,\n    entries: new Array(faker.number.int({ min: 1, max: 10 }))\n      .fill(null)\n      .map((_entry, index) => createConsignmentEntry()),\n    shippingAddress: createAddress(),\n    status: faker.helpers.arrayElement(orderStatusOptions),\n    statusDate: faker.date.past(),\n    trackingID: faker.string.numeric(10),\n    ...additionalData,\n  };\n};\n\nexport const createOrderHistory = (additionalData?: Occ.OrderHistory): Occ.OrderHistory => {\n  return {\n    code: faker.string.numeric(6),\n    guid: faker.string.uuid(),\n    placed: faker.date.past(),\n    status: faker.helpers.arrayElement(orderStatusOptions),\n    statusDisplay: faker.helpers.arrayElement(orderStatusDisplayOptions),\n    total: createPrice(),\n    ...additionalData,\n  };\n};\n\nexport const createOrder = (additionalData?: Occ.Order): Occ.Order => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  const totalItems = mockData.activeCartEntries.length || faker.number.int({ min: 3, max: 10 });\n  const genericEntries = new Array(totalItems).fill(null).map((_entry, index) => createOrderEntry());\n\n  return {\n    code: faker.string.numeric(6),\n    calculated: true,\n    guid: faker.string.uuid(),\n    entries: genericEntries,\n    consignments: new Array(faker.number.int({ min: 1, max: 3 })).fill(null).map(() => createConsignment()),\n    appliedOrderPromotions: new Array(faker.number.int({ min: 0, max: 3 }))\n      .fill(null)\n      .map(() => createPromotionResult()),\n    appliedProductPromotions: new Array(faker.number.int({ min: 0, max: 3 }))\n      .fill(null)\n      .map(() => createPromotionResult()),\n    appliedVouchers: new Array(faker.number.int({ min: 0, max: 3 })).fill(null).map(() => createVoucher()),\n    deliveryAddress: createAddress(),\n    deliveryCost: createPrice(),\n    deliveryItemsQuantity: 1,\n    deliveryMode: createDeliveryMode({ code: 'standard', name: 'Standard Delivery' }),\n    paymentInfo: createPaymentDetails({ defaultPayment: true, id: DEFAULT_PAYMENT_ID }),\n    totalItems,\n    totalDiscounts: createPrice(),\n    subTotal: createPrice(),\n    totalPrice: createPrice(),\n    totalPriceWithTax: createPrice(),\n    totalTax: createPrice(),\n    user: getUserForCart(),\n    created: faker.date.past(),\n    status: faker.helpers.arrayElement(orderStatusOptions),\n    statusDisplay: faker.helpers.arrayElement(orderStatusDisplayOptions),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ, Stock } from '@spartacus/core';\nimport { ActiveCartEntry, LOCAL_STORAGE_KEY, LocalStorageMockData } from '../../types';\nimport { createUser } from '../auth';\nimport { image } from '../media/image';\nimport { createOrderEntry } from '../order/order';\nimport { createFullProduct } from '../products/product';\nimport { createPrice } from './price';\n\nexport enum CartUserType {\n  OCC_USER_ID_ANONYMOUS = 'anonymous',\n  OCC_USER_ID_GUEST = 'guest',\n  OCC_USER_ID_CURRENT = 'current',\n}\n\ninterface ProductAddToCart {\n  code: string;\n}\n\nconst emptyCartData = (cartUserType: CartUserType): Occ.Cart => {\n  return {\n    // @ts-ignore\n    type: 'cartWsDTO',\n    appliedOrderPromotions: [],\n    appliedProductPromotions: [],\n    appliedVouchers: [],\n    code: '0030424022',\n    deliveryCost: {\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    deliveryItemsQuantity: 0,\n    entries: [],\n    guid: '473f8628-3467-4742-8dd7-043bb01ec91d',\n    net: false,\n    pickupItemsQuantity: 0,\n    productDiscounts: {\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    subTotal: {\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    totalDiscounts: {\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    totalItems: 0,\n    totalPrice: {\n      currencyIso: 'USD',\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    totalPriceWithTax: {\n      currencyIso: 'USD',\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    totalTax: {\n      formattedValue: '$0,00',\n      value: 0,\n    },\n    user: getUserForCart(cartUserType),\n    potentialOrderPromotions: [],\n    potentialProductPromotions: [],\n  };\n};\n\nconst wishlistCartData = (userType: CartUserType): Occ.Cart => {\n  return {\n    appliedOrderPromotions: [],\n    appliedVouchers: [],\n    code: '0010032010',\n    deliveryItemsQuantity: 0,\n    entries: [\n      {\n        basePrice: {\n          formattedValue: '$1,066.18',\n          value: 1066.18,\n        },\n        entryNumber: 0,\n        product: {\n          availableForPickup: true,\n          baseOptions: [],\n          code: 'product', // needs to match product ID for mock product /de/products/product\n          images: [\n            image({ format: 'product-zoom' }, { width: 900, height: 900 }),\n            image({ format: 'product-Summary' }, { width: 440, height: 440 }),\n            image({ format: 'product-main' }, { width: 240, height: 240 }),\n            image({ format: 'product-thumbnail' }, { width: 150, height: 150 }),\n            image({ format: 'product-icon' }, { width: 80, height: 80 }),\n          ],\n          manufacturer: 'Canon',\n          name: 'Product 1',\n          purchasable: true,\n          stock: {\n            isValueRounded: false,\n            stockLevel: 671,\n            stockLevelStatus: 'noStock',\n            availableDate: new Date('2021-01-18T18:02:27+0000'),\n          } as Stock,\n          url: '/products/product',\n        },\n        quantity: 1,\n        statusSummaryList: [],\n        totalPrice: {\n          currencyIso: 'USD',\n          formattedValue: '$1,066.18',\n          value: 1066.18,\n        },\n        updateable: true,\n      },\n    ],\n    guid: '22579b1a-9bb8-4c34-82fa-c71bb402a4d5',\n    net: false,\n    pickupItemsQuantity: 0,\n    productDiscounts: createPrice(),\n    subTotal: createPrice(),\n    totalDiscounts: createPrice(),\n    totalItems: 0,\n    totalPrice: createPrice(),\n    totalPriceWithTax: createPrice(),\n    totalTax: createPrice(),\n    user: getUserForCart(userType),\n    description: 'undefined',\n    // name consists out of 'wishlist' and user id and must match user id from user.ts\n    name: 'wishlist85c9e5b9-8924-474d-8f44-ec15b14c5888',\n    potentialOrderPromotions: [],\n    potentialProductPromotions: [],\n    saveTime: new Date('2023-03-27T10:59:18+0000'),\n  };\n};\n\nconst savedCartData = (userType: CartUserType): Occ.Cart => {\n  return {\n    appliedOrderPromotions: [],\n    appliedVouchers: [],\n    code: '0010032010',\n    deliveryItemsQuantity: 0,\n    entries: [\n      {\n        basePrice: {\n          formattedValue: '$1,066.18',\n          value: 1066.18,\n        },\n        entryNumber: 0,\n        product: {\n          availableForPickup: true,\n          baseOptions: [],\n          code: 'product', // needs to match product ID for mock product /de/products/product\n          images: [\n            image({ format: 'product-zoom' }, { width: 900, height: 900 }),\n            image({ format: 'product-Summary' }, { width: 440, height: 440 }),\n            image({ format: 'product-main' }, { width: 240, height: 240 }),\n            image({ format: 'product-thumbnail' }, { width: 150, height: 150 }),\n            image({ format: 'product-icon' }, { width: 80, height: 80 }),\n          ],\n          manufacturer: 'Canon',\n          name: 'Product 1',\n          purchasable: true,\n          stock: {\n            isValueRounded: false,\n            stockLevel: 671,\n            stockLevelStatus: 'noStock',\n            availableDate: new Date('2021-01-18T18:02:27+0000'),\n          } as Stock,\n          url: '/products/product',\n        },\n        quantity: 1,\n        statusSummaryList: [],\n        totalPrice: createPrice(),\n        updateable: true,\n      },\n    ],\n    guid: '22579b1a-9bb8-4c34-82fa-c71bb402a4d5',\n    net: false,\n    pickupItemsQuantity: 0,\n    productDiscounts: createPrice(),\n    subTotal: createPrice(),\n    totalDiscounts: createPrice(),\n    totalItems: 0,\n    totalPrice: createPrice(),\n    totalPriceWithTax: createPrice(),\n    totalTax: createPrice(),\n    user: getUserForCart(userType),\n    description: 'undefined',\n    // name consists out of 'wishlist' and user id and must match user id from user.ts\n    name: 'saved1234',\n    potentialOrderPromotions: [],\n    potentialProductPromotions: [],\n    saveTime: new Date('2023-03-27T10:59:18+0000'),\n    totalUnitCount: faker.number.int({ min: 1, max: 99 }),\n  };\n};\n\nconst fullCartData = (cartGuid: string, userType: CartUserType, forceEntries?: boolean): Occ.Cart => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n  const activeCartEntries = forceEntries ? [{ code: 'entry1', quantity: 1 }] : mockData.activeCartEntries;\n  const totalQuantity = activeCartEntries.reduce((acc, entry) => {\n    return acc + entry.quantity;\n  }, 0);\n\n  return {\n    appliedOrderPromotions: [],\n    appliedProductPromotions: [],\n    appliedVouchers: mockData.activeVouchers,\n    code: '0030424022',\n    deliveryItemsQuantity: totalQuantity,\n    entries: activeCartEntries.map((entry, index) =>\n      createOrderEntry({\n        entryNumber: index,\n        product: createFullProduct({ code: entry.code }),\n        quantity: entry.quantity,\n      })\n    ),\n    guid: cartGuid,\n    net: false,\n    pickupItemsQuantity: 0,\n    productDiscounts: {\n      formattedValue: '$0.00',\n    },\n    subTotal: createPrice(),\n    totalDiscounts: createPrice(),\n    totalItems: totalQuantity,\n    totalPrice: createPrice(),\n    totalPriceWithTax: createPrice(),\n    totalTax: createPrice(),\n    user: getUserForCart(userType),\n    potentialOrderPromotions: [],\n    potentialProductPromotions: [],\n    totalUnitCount: totalQuantity,\n  };\n};\n\nexport const getCart = (cartGuid: string, cartUserType: CartUserType, forceEntries?: boolean): Occ.Cart => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  if (cartGuid !== '' && (mockData.activeCartEntries.length > 0 || forceEntries)) {\n    return fullCartData(cartGuid, cartUserType, forceEntries);\n  } else {\n    return emptyCartData(cartUserType);\n  }\n};\n\nexport const getCarts = (cartUserType: CartUserType): Occ.CartList => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n  const cartsArray = [];\n\n  if (mockData.activeCartEntries.length > 0) {\n    cartsArray.push(fullCartData('', cartUserType));\n  } else {\n    cartsArray.push(emptyCartData(cartUserType));\n  }\n\n  if (cartUserType === CartUserType.OCC_USER_ID_CURRENT) {\n    cartsArray.push(wishlistCartData(cartUserType));\n    cartsArray.push(savedCartData(cartUserType));\n  }\n\n  return { carts: cartsArray };\n};\n\nexport const addToCart = (product: ProductAddToCart, quantity: number): Occ.CartModification => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n  let activeCartEntries = mockData.activeCartEntries;\n  let activeCartEntry = activeCartEntries.find((entry: ActiveCartEntry) => entry.code === product.code);\n\n  if (activeCartEntry) {\n    activeCartEntry.quantity += quantity;\n\n    activeCartEntries = activeCartEntries.filter((activeCartEntry: ActiveCartEntry) => {\n      return activeCartEntry.code !== product.code;\n    });\n  } else {\n    activeCartEntry = { code: product.code, quantity: quantity };\n  }\n\n  mockData = {\n    ...mockData,\n    activeCartEntries: [...activeCartEntries, activeCartEntry],\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n\n  return {\n    entry: createOrderEntry({\n      entryNumber: 0,\n      product: createFullProduct({ code: product.code }),\n      quantity: activeCartEntry.quantity,\n    }),\n    quantity: quantity,\n    quantityAdded: quantity,\n    statusCode: 'success',\n  };\n};\n\nexport const updateEntries = (_cartId: string, entryNumber: number, quantity: number): Occ.CartModification => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n  let activeCartEntries = mockData.activeCartEntries;\n  let activeCartEntry = activeCartEntries[entryNumber];\n\n  let quantityAdded = 0;\n  if (activeCartEntry.quantity < quantity) {\n    quantityAdded = 1;\n  } else if (activeCartEntry.quantity > quantity) {\n    quantityAdded = -1;\n  }\n\n  activeCartEntry.quantity += quantityAdded;\n\n  mockData = {\n    ...mockData,\n    activeCartEntries: [...activeCartEntries],\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n\n  return {\n    entry: createOrderEntry({\n      entryNumber: 0,\n      product: createFullProduct({ code: activeCartEntry.code }),\n      quantity: activeCartEntry.quantity,\n    }),\n    quantity: activeCartEntry.quantity,\n    quantityAdded,\n    statusCode: 'success',\n  };\n};\n\nexport const removeEntries = (_cartId: string, entryNumber: number): void => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n  let activeCartEntries = mockData.activeCartEntries;\n  let activeCartEntry = activeCartEntries[entryNumber];\n  const productCode = activeCartEntry.code;\n\n  activeCartEntries = activeCartEntries.filter((activeCartEntry: ActiveCartEntry) => {\n    return activeCartEntry.code !== productCode;\n  });\n\n  mockData = {\n    ...mockData,\n    activeCartEntries,\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n};\n\nexport const deleteCart = (): void => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  mockData = {\n    ...mockData,\n    activeCartEntries: [],\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n};\n\nexport const setGuestCheckout = (newState: boolean): void => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  mockData = {\n    ...mockData,\n    isGuestCheckout: newState,\n  };\n\n  window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n};\n\nexport const getUserForCart = (userType?: CartUserType): Occ.User => {\n  let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n  if (mockData.isGuestCheckout) {\n    userType = CartUserType.OCC_USER_ID_GUEST;\n  }\n\n  switch (userType) {\n    case CartUserType.OCC_USER_ID_GUEST:\n      return createUser({\n        name: userType,\n        uid: '780da81b-f797-4274-b2a7-aa879808e6a7|' + faker.internet.email(),\n      });\n    case CartUserType.OCC_USER_ID_CURRENT:\n      return createUser({\n        name: 'Hans Muster',\n        uid: 'hans.muster@gmail.com',\n      });\n    default:\n      return createUser({\n        name: CartUserType.OCC_USER_ID_ANONYMOUS,\n        uid: CartUserType.OCC_USER_ID_ANONYMOUS,\n      });\n  }\n};\n\nexport const getUserTypeById = (userId: string): CartUserType => {\n  switch (userId) {\n    case CartUserType.OCC_USER_ID_GUEST:\n      return CartUserType.OCC_USER_ID_GUEST;\n    case CartUserType.OCC_USER_ID_CURRENT:\n      return CartUserType.OCC_USER_ID_CURRENT;\n    default:\n      return CartUserType.OCC_USER_ID_ANONYMOUS;\n  }\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { getCart, getUserTypeById } from '../commerce/cart';\n\nexport const savedCartResult = (\n  cartId: string,\n  userId: string,\n  name?: string,\n  description?: string\n): Occ.SaveCartResult => {\n  return {\n    savedCartData: {\n      ...getCart(cartId, getUserTypeById(userId), true),\n      name: name ?? faker.commerce.department(),\n      description: description ?? faker.lorem.sentences(2),\n    },\n  };\n};\n","import { Occ } from '@spartacus/core';\nimport { createCurrency, currencyList } from '../general';\nimport { createLanguage, languageList } from '../languages';\n\nexport const createBaseStore = (additionalData?: Occ.BaseStore): Occ.BaseStore => {\n  return {\n    currencies: currencyList().currencies,\n    defaultCurrency: createCurrency(),\n    languages: languageList().languages,\n    defaultLanguage: createLanguage(),\n    ...additionalData,\n  };\n};\n\nexport const createBaseSite = (additionalData?: Occ.BaseSite): Occ.BaseSite => {\n  return {\n    channel: '',\n    defaultLanguage: createLanguage(),\n    defaultPreviewCatalogId: '',\n    defaultPreviewCategoryCode: '',\n    defaultPreviewProductCode: '',\n    locale: '',\n    name: '',\n    theme: '',\n    uid: 'electronics-spa',\n    stores: [createBaseStore()],\n    urlPatterns: [\n      '(?i)^https?://[^/]+(/[^?]*)?\\\\?(.*\\\\&)?(site=electronics-spa)(|\\\\&.*)$',\n      '(?i)^https?://electronics-spa\\\\.[^/]+(|/.*|\\\\?.*)$',\n      '(?i)^https?://api\\\\.hybrisdev\\\\.com(:[\\\\d]+)?/rest/.*$',\n      '(?i)^https?://localhost(:[\\\\d]+)?/rest/.*$',\n      '(?i)^https?://localhost(:[\\\\d]+)?(|/.*|\\\\?.*)$',\n      '(?i)^https?://[^/]+/electronics-spa(|/.|\\\\?.)$',\n      '(?i)^https?://[^/]+/electronics-spa(|/.*|\\\\?.*)$',\n    ],\n    urlEncodingAttributes: ['storefront', 'language', 'currency'],\n    requiresAuthentication: false,\n    ...additionalData,\n  };\n};\n\nexport const baseSites = (): Occ.BaseSites => {\n  return {\n    baseSites: [createBaseSite()],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const cmsLinkComponent = (additionalData?: Occ.Component): Occ.Component => {\n  return {\n    uuid: faker.string.uuid(),\n    uid: faker.string.uuid(),\n    modifiedtime: faker.date.past(),\n    name: faker.lorem.words(3),\n    otherProperties: undefined,\n    typeCode: 'CMSLinkComponent',\n    linkName: faker.lorem.words(3),\n    url: '/',\n    target: '_self',\n    external: false,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { CmsComponentAdditionalData, Component } from '../../types';\n\nexport const flexTypeComponent = (\n  typeCode: string,\n  flexType?: string,\n  additionalData?: CmsComponentAdditionalData\n): Component => {\n  const component = {\n    uid: `${typeCode}-${faker.string.uuid()}`,\n    uuid: faker.string.uuid(),\n    typeCode,\n    modifiedtime: '2021-01-18T18:14:58.899Z',\n    name: [typeCode, flexType].join('-'),\n    container: 'false',\n  };\n\n  if (typeCode === 'CMSFlexComponent') {\n    return {\n      ...component,\n      flexType,\n    };\n  }\n\n  return {\n    ...component,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const richTextExampleContent = `<h2>This is an Example Content page, ${faker.lorem.words(\n  3\n)}</h2><h3>and this a h3 title, ${faker.lorem.words(\n  3\n)}</h3><p>This is a link <a href=\"https://www.google.ch\">Text</a>. Some&nbsp;<strong>bold text</strong> and also some <em>italic text</em>.</p><p>In addition some Superscript like <sup>text</sup>. And some <sub>Subscript</sub>.</p><p>Also we have som special chars&nbsp;©™®&nbsp;¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶¶·¸¹º»¼½¾¿–—×÷<br/></p><p>${faker.lorem.lines(\n  10\n)}</p><p>And another link &nbsp;<a href=\"http://www.google.ch/\">with a target</a>&nbsp;blank</p><p>As, rich single shot dark kopi-luwak percolator black extra. Grounds, single origin black milk cinnamon grinder turkish instant.</p><p>Now we see some unordered and ordered lists:</p><ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul><ol><li>Item</li><li>Item</li><li>Item</li></ol><p>Paragraph after UL / OL</p><h3>Heading H3</h3><p>Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo.</p><h2>Heading H2, ${faker.lorem.words(\n  3\n)}</h2><p>${faker.lorem.lines(10)}</p>`;\n\nexport const cmsParagraphComponent = (content?: string): Component => {\n  return flexTypeComponent('CMSParagraphComponent', undefined, {\n    content: content ?? richTextExampleContent,\n  });\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { cmsLinkComponent } from './cms-link';\nimport { cmsParagraphComponent } from './cms-paragraph';\nimport { flexTypeComponent } from './flex-type-component';\n\n/*\n * This function is used to render additional data for components being loaded within the pages calls\n * For new mock pages, you need enhance the logic of the components route in the index.ts of the mock server\n */\nexport const components = (componentIds: string[]): Occ.ComponentList => {\n  const componentData: Occ.ComponentList = {\n    component: [],\n  };\n\n  for (const componentId of componentIds) {\n    if (componentId.endsWith('Link')) {\n      const componentLinkText = faker.lorem.words(2);\n      let componentCategoryCode = '';\n\n      if (componentId.endsWith('CategoryLink')) {\n        componentCategoryCode = faker.number.int(999).toString();\n\n        componentData.component?.push(\n          cmsLinkComponent({\n            uid: componentId,\n            linkName: componentLinkText,\n            url: `/mock/category/${componentLinkText.replace(' ', '-')}/c/${componentCategoryCode}`,\n          })\n        );\n      } else {\n        componentData.component?.push(\n          cmsLinkComponent({\n            uid: componentId,\n            linkName: componentLinkText,\n            url: `/example-content/${faker.lorem.word()}`,\n          })\n        );\n      }\n    }\n  }\n\n  return componentData;\n};\n\nexport const navMainLinkComponents = (componentIds: string[]): Occ.ComponentList => {\n  const componentData: Occ.ComponentList = {\n    component: [],\n  };\n\n  for (const componentId of componentIds) {\n    const componentLinkText = faker.lorem.words(2);\n\n    componentData.component?.push(\n      cmsLinkComponent({\n        uid: componentId,\n        linkName: componentLinkText,\n        url: `/${componentId.split('_').join('/')}`,\n      })\n    );\n  }\n\n  return componentData;\n};\n\nexport const myAccountLinkComponents = (componentIds: string[]): Occ.ComponentList => {\n  const componentData: Occ.ComponentList = {\n    component: [],\n  };\n\n  for (const componentId of componentIds) {\n    // link target is derived from componentId besides if it's the logout link\n    let linkUrl = `my-account/${componentId\n      .replace('Link', '')\n      .replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase())}`;\n\n    if (componentId === 'SignOutLink') {\n      // signout link needs to use the route \"logout\" to keep the CdcLogoutGuard working\n      linkUrl = 'logout';\n    }\n\n    if (componentId === 'PersonalDetailsLink') {\n      linkUrl = 'my-account/update-profile';\n    }\n\n    if (componentId === 'ConsentManagementLink') {\n      linkUrl = 'my-account/consents';\n    }\n\n    if (componentId === 'MyCouponsLink') {\n      linkUrl = 'my-account/coupons';\n    }\n\n    componentData.component?.push(\n      cmsLinkComponent({\n        uid: componentId,\n        linkName: componentId.replace(/([^A-Z])([A-Z])/g, '$1 $2').substring(0, componentId.length - 3),\n        url: linkUrl,\n      })\n    );\n  }\n\n  return componentData;\n};\n\nexport const footerLinkComponents = (componentIds: string[]): Occ.ComponentList => {\n  const componentData: Occ.ComponentList = {\n    component: [],\n  };\n\n  for (const componentId of componentIds) {\n    const componentLinkText = faker.lorem.words(2);\n\n    const url = componentId.startsWith('footer_social')\n      ? 'https://www.google.ch'\n      : `/${componentId.split('_').join('/')}`;\n\n    componentData.component?.push(\n      cmsLinkComponent({\n        uid: componentId,\n        linkName: componentLinkText,\n        url,\n        external: componentId.startsWith('footer_social'),\n        target: componentId.startsWith('footer_social') ? '_blank' : '_self',\n      })\n    );\n  }\n\n  return componentData;\n};\n\nexport const productDetailTabComponents = (componentIds: string[]): Occ.ComponentList => {\n  const componentData: Occ.ComponentList = {\n    component: [],\n  };\n  const tabUidMap: any = {\n    ProductDetailsTabComponent: 'ProductDetailsTabComponent',\n    ProductSpecsTabComponent: 'ProductSpecsTabComponent',\n    ProductReviewsTabComponent: 'ProductReviewsTabComponent',\n    deliveryTab: 'deliveryTab',\n  };\n\n  componentIds.forEach((id) => {\n    if (id) {\n      if (id === 'deliveryTab') {\n        componentData.component?.push(\n          cmsParagraphComponent(\n            '<div class=\\\\\"tab-delivery\\\\\">Lorem ipsum dolor sit amet, dolor sed, ut nam ut. Senectus mauris egestas a massa, enim placeat wisi congue purus fermentum. Ut aptent mauris dapibus congue in sit. Sed dolor varius amet feugiat volutpat dignissim, pede a rhoncus sodales aliquam adipiscing, dapibus massa fusce. Dui egestas ornare urna nibh facilisi, cras posuere. Lorem aliquam accumsan eleifend sem libero lorem, aliquam sequi sed urna nec. Eget dolor quisque dolor, amet suspendisse ullamcorper minus elit lectus nunc, est mattis dui id eu et facilisis, conubia sit tristique. Ac fusce gravida condimentum iaculis neque, a platea curabitur accumsan porttitor vel justo. Amet potenti ac, eget amet ducimus sit nulla, ac porttitor rhoncus, justo proin tortor integer turpis nulla vitae. Egestas mollis litora nunc platea dui, eu semper mauris diam, erat quam, porta maecenas fusce libero non aliquet. Amet tellus taciti ligula sed sollicitudin, nonummy cursus enim, hendrerit nec, sed lacus sed at sit quis, semper a arcu mollis sapien nec pretium. Ante mauris eros nec, nonummy mauris, nulla lacinia vel. Volutpat luctus velit eu.</div>'\n          )\n        );\n      } else {\n        componentData.component?.push(flexTypeComponent(tabUidMap[id]));\n      }\n    }\n  });\n\n  return componentData;\n};\n","import { faker } from '@faker-js/faker';\nimport { Component, ContentSlot } from '../../types';\n\nexport const contentSlot = (slotPosition: string, components: Component[]): ContentSlot => {\n  return {\n    slotId: `${slotPosition}-${faker.string.uuid()}`,\n    slotUuid: faker.string.uuid(),\n    position: slotPosition,\n    name: `Slot-${slotPosition}`,\n    slotShared: true,\n    components: {\n      component: components,\n    },\n  };\n};\n","import { CmsBannerComponentMedia, CmsResponsiveBannerComponentMedia } from '@spartacus/core';\n\nexport interface ResponsiveMediaRendition {\n  key: string;\n  width: number;\n  height: number;\n}\n\nexport interface ResponsiveMediaInput {\n  code: string;\n  altText: string;\n  renditions: ResponsiveMediaRendition[];\n}\n\nexport const media = (mediaInput: ResponsiveMediaInput) => {\n  const mediaObject: CmsResponsiveBannerComponentMedia = {};\n\n  for (const rendition of mediaInput.renditions) {\n    // @ts-ignore\n    mediaObject[rendition.key] = {\n      code: `${mediaInput.code}-${rendition.width}x${rendition.height}`,\n      mime: 'image/jpeg',\n      altText: mediaInput.altText,\n      url: `https://picsum.photos/${rendition.width}/${rendition.height}.webp?random=${Math.round(\n        Math.random() * 1000\n      )}`,\n    } as CmsBannerComponentMedia;\n  }\n\n  return mediaObject;\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const simpleBannerComponent = (urlLink: string): Component => {\n  return flexTypeComponent('SimpleBannerComponent', undefined, {\n    external: 'false',\n    media: {\n      code: 'Simple_Banner_Media',\n      mime: 'image/png',\n      altText: 'SAP Commerce',\n      url: `https://picsum.photos/360/240.webp?random=${Math.round(Math.random() * 1000)}`,\n    },\n    urlLink,\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\nimport { ResponsiveMediaInput, media } from './media';\n\nexport const simpleResponsiveBanner = (urlLink: string, mediaInput: ResponsiveMediaInput): Component => {\n  return flexTypeComponent('SimpleResponsiveBannerComponent', undefined, {\n    media: media(mediaInput),\n    urlLink,\n  });\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const anonymousConsents = [\n  { templateCode: 'MARKETING_NEWSLETTER', templateVersion: 0, consentState: 'GIVEN' },\n  { templateCode: 'PROFILE', templateVersion: 0, consentState: 'GIVEN' },\n  { templateCode: 'STORE_USER_INFORMATION', templateVersion: 0, consentState: 'GIVEN' },\n];\n\nexport const consentTemplatesOptions = () => {\n  return {\n    status: 200,\n    headers: {\n      Date: 'Fri, 05 Jan 2024 10:40:24 GMT',\n      'Content-Length': '0',\n      Connection: 'keep-alive',\n      'X-Frame-Options': 'SAMEORIGIN',\n      // @ts-ignore\n      Vary: 'Origin',\n      // @ts-ignore\n      Vary: 'Access-Control-Request-Method',\n      // @ts-ignore\n      Vary: 'Access-Control-Request-Headers',\n      'Access-Control-Allow-Origin': '*',\n      'Access-Control-Allow-Methods': 'GET,HEAD,OPTIONS,PATCH,PUT,POST,DELETE',\n      'Access-Control-Allow-Headers': 'x-anonymous-consents',\n      'Access-Control-Expose-Headers': 'x-anonymous-consents',\n    },\n  };\n};\n\nexport const consentTemplatesHead = () => {\n  return {\n    status: 200,\n    headers: {\n      'Content-Type': 'application/json;charset=UTF-8',\n      Connection: 'keep-alive',\n      'X-OneAgent-JS-Injection': 'true',\n      'Timing-Allow-Origin': '*',\n      'Server-Timing': 'dtRpid;desc=\"-1426008374\", dtTao;desc=\"1\", dtSInfo;desc=\"0\"',\n      'X-Frame-Options': 'SAMEORIGIN',\n      // @ts-ignore\n      Vary: 'Origin',\n      // @ts-ignore\n      Vary: 'Access-Control-Request-Method',\n      // @ts-ignore\n      Vary: 'Access-Control-Request-Headers',\n      'Access-Control-Allow-Origin': '*',\n      'Access-Control-Expose-Headers': 'x-anonymous-consents',\n      'X-Anonymous-Consents': encodeURI(JSON.stringify(anonymousConsents)),\n      'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',\n      Pragma: 'no-cache',\n      Expires: '0',\n      'Strict-Transport-Security': 'max-age=16070400 ; includeSubDomains',\n      'X-XSS-Protection': '1; mode=block',\n      'X-Content-Type-Options': 'nosniff',\n    },\n  };\n};\n\nexport const createConsentTemplate = (\n  userId: string,\n  consentId: string,\n  additionalData?: Occ.ConsentTemplate\n): Occ.ConsentTemplate => {\n  const consent = {\n    description: faker.lorem.sentences(faker.number.int({ min: 1, max: 5 })),\n    id: consentId,\n    name: `I approve to this sample ${faker.commerce.department()} consent`,\n    version: 0,\n    ...additionalData,\n  };\n\n  if (userId === 'current') {\n    consent.currentConsent = {\n      code: faker.string.uuid(),\n      // @ts-ignore\n      consentGivenDate: faker.date.past().toDateString(),\n    };\n  }\n\n  return consent;\n};\n\nexport const consentTemplateList = (userId: string): Occ.ConsentTemplateList => {\n  return {\n    consentTemplates: [\n      createConsentTemplate(userId, 'MARKETING_NEWSLETTER'),\n      createConsentTemplate(userId, 'PROFILE'),\n      createConsentTemplate(userId, 'STORE_USER_INFORMATION'),\n    ],\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { CartUserType, getUserForCart } from '../commerce/cart';\nimport { createPaginationModel } from '../general';\nimport { createSortModel } from '../general';\nimport { createOrder, createOrderHistory } from './order';\n\nexport const getOrders = (additionalData?: Occ.OrderHistoryList): Occ.OrderHistoryList => {\n  const amount = faker.number.int({ min: 1, max: 10 });\n\n  return {\n    orders: new Array(amount).fill(null).map(() => createOrderHistory()),\n    pagination: createPaginationModel({\n      sort: 'date',\n      totalResults: amount,\n    }),\n    sorts: ['Date', 'Code', 'Status', 'Total'].map((code) => createSortModel({ code: code.toLowerCase(), name: code })),\n    ...additionalData,\n  };\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountAddressBookSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('AccountAddressBookComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { cmsParagraphComponent } from '../components';\n\nexport const accountCloseAccountSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      cmsParagraphComponent(\n        'When you close your account, your profile information will be kept for the retention period mandated by the laws and regulations of your country. Customer Support will be able to assist you with any order history or proof of purchase needs during this time.<br/><br/>At the end of the retention period, the following profile information will be deleted and will no longer be accessible to you or anyone else:<br/><br/><ul><li>email addresses</li><li>contact information</li><li>shipping details</li><li>delivery preferences</li><li>consent management settings</li><li>account history</li><li>payment details</li><li>order history</li></ul>'\n      ),\n      flexTypeComponent('CloseAccountComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountConsentsSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('ConsentManagementComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountCouponsSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('MyCouponsComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountMyInterestsSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('MyInterestsComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountNotificationPreferenceSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('NotificationPreferenceComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountOrderHistorySlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('AccountOrderHistoryComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountOrderSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      flexTypeComponent('AccountOrderDetailsOverviewComponent'),\n      flexTypeComponent('AccountOrderDetailsShippingComponent'),\n      flexTypeComponent('AccountOrderDetailsItemsComponent'),\n      flexTypeComponent('ExportOrderEntriesComponent'),\n      flexTypeComponent('AccountOrderDetailsTotalsComponent'),\n      flexTypeComponent('AccountOrderDetailsShippingComponent'),\n      flexTypeComponent('AccountOrderDetailsActionsComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountPaymentDetailsSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('AccountPaymentDetailsComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountPersonalDetailsSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('UpdateProfileComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountQuickOrderSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      flexTypeComponent('QuickOrderComponent'),\n      flexTypeComponent('ImportExportOrderEntriesComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountSavedCartSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      flexTypeComponent('SavedCartDetailsOverviewComponent'),\n      flexTypeComponent('SavedCartDetailsItemsComponent'),\n      flexTypeComponent('ImportExportOrderEntriesComponent'),\n      flexTypeComponent('SavedCartDetailsActionComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountSavedCartsSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      flexTypeComponent('AccountSavedCartHistoryComponent'),\n      flexTypeComponent('ImportOrderEntriesComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountUpdateEmailSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('UpdateEmailComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountUpdatePasswordSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('UpdatePasswordComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const accountWishListSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('BodyContent', [flexTypeComponent('WishListComponent')])];\n};\n","import { ContentSlot } from '../../types';\nimport { cmsParagraphComponent } from '../components';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const cmsCartContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('EmptyCartMiddleContent', [\n      cmsParagraphComponent(\n        `<h2>Your shopping cart is empty</h2><p>Suggestions</p><ul><li>Browse our products by selecting a category above</li></ul>`\n      ),\n      flexTypeComponent('ImportOrderEntriesComponent'),\n    ]),\n    contentSlot('CenterLeftContentSlot', [\n      flexTypeComponent('PromotionsComponent'),\n      flexTypeComponent('PotentialPromotionsComponent'),\n    ]),\n    contentSlot('CenterRightContentSlot', [\n      flexTypeComponent('CartTotalsComponent'),\n      flexTypeComponent('CartApplyCouponComponent'),\n      flexTypeComponent('CartQuickOrderFormComponent'),\n      flexTypeComponent('CartProceedToCheckoutComponent'),\n    ]),\n    contentSlot('BottomContentSlot', [\n      flexTypeComponent('CheckoutComponent'),\n      flexTypeComponent('CartSuggestions', undefined, {\n        displayProductPrices: 'true',\n        productReferenceTypes: 'ACCESSORIES SIMILAR',\n        maximumNumberProducts: '20',\n        displayProductTitles: 'true',\n        synchronizationBlocked: 'false',\n        filterPurchased: 'true',\n        title: 'You may also like...',\n      }),\n    ]),\n    contentSlot('TopContent', [\n      flexTypeComponent('AddToSavedCartsComponent'),\n      flexTypeComponent('CartComponent'),\n      flexTypeComponent('ClearCartComponent'),\n      flexTypeComponent('SaveForLaterComponent'),\n      flexTypeComponent('ImportExportOrderEntriesComponent'),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { cmsParagraphComponent } from '../components';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const checkoutDefaultContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('TopContent', []),\n\n    contentSlot('PlaceholderContentSlot', [flexTypeComponent('ProfileTagScriptComponent')]),\n\n    contentSlot('BottomContent', [\n      cmsParagraphComponent(\n        '<strong>Need Help with your checkout process?</strong> <span>Contact Us or Call phone number.</span>'\n      ),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [flexTypeComponent('CheckoutOrchestrator')]),\n\n    contentSlot('SideContent', [flexTypeComponent('CheckoutOrderSummary')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutDeliveryAddressContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [\n      flexTypeComponent('CheckoutProgress'),\n      flexTypeComponent('CheckoutProgressMobileTop'),\n      flexTypeComponent('CheckoutDeliveryAddress'),\n      flexTypeComponent('CheckoutProgressMobileBottom'),\n    ]),\n\n    contentSlot('SideContent', [flexTypeComponent('CheckoutOrderSummary')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutDeliveryModeContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [\n      flexTypeComponent('CheckoutProgress'),\n      flexTypeComponent('CheckoutProgressMobileTop'),\n      flexTypeComponent('CheckoutDeliveryMode'),\n      flexTypeComponent('CheckoutProgressMobileBottom'),\n    ]),\n\n    contentSlot('SideContent', [flexTypeComponent('CheckoutOrderSummary')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutLoginContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [flexTypeComponent('ReturningCustomerCheckoutLoginComponent')]),\n\n    contentSlot('SideContent', [flexTypeComponent('GuestCheckoutLoginComponent')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutPaymentDetailsContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [\n      flexTypeComponent('CheckoutProgress'),\n      flexTypeComponent('CheckoutProgressMobileTop'),\n      flexTypeComponent('CheckoutPaymentDetails'),\n      flexTypeComponent('CheckoutProgressMobileBottom'),\n    ]),\n\n    contentSlot('SideContent', [flexTypeComponent('CheckoutOrderSummary')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { checkoutDefaultContentSlots } from './checkout-default-content-slots';\n\nexport const checkoutReviewOrderContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    ...checkoutDefaultContentSlots(),\n\n    contentSlot('BodyContent', [\n      flexTypeComponent('CheckoutProgress'),\n      flexTypeComponent('CheckoutProgressMobileTop'),\n      flexTypeComponent('CheckoutReviewOrder'),\n      flexTypeComponent('ExportOrderEntriesComponent'),\n      flexTypeComponent('CheckoutProgressMobileBottom'),\n    ]),\n\n    contentSlot('SideContent', [flexTypeComponent('CheckoutOrderSummary'), flexTypeComponent('CheckoutPlaceOrder')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { cmsParagraphComponent, richTextExampleContent } from '../components';\nimport { contentSlot } from '../components';\nimport { ResponsiveMediaRendition } from '../components';\nimport { simpleResponsiveBanner } from '../components';\n\nexport const cmsPageContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('Section3', [\n      simpleResponsiveBanner('/example-content', {\n        code: 'Elec_HomeSpeed_EN_01',\n        altText: 'Save Big On Select SLR & DSLR Cameras',\n        renditions: [\n          {\n            key: 'mobile',\n            code: 'Banner Homepage',\n            width: 480,\n            height: 240,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            code: 'Banner Homepage',\n            width: 770,\n            height: 385,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            code: 'Banner Homepage',\n            width: 960,\n            height: 480,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            code: 'Banner Homepage',\n            width: 1400,\n            height: 700,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n\n    contentSlot('Section3', [cmsParagraphComponent()]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { cmsParagraphComponent } from '../components';\nimport { contentSlot } from '../components';\n\nexport const cmsPageContentSlotsNotFound = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('Section3', [cmsParagraphComponent('The page you have requested was not found.')])];\n};\n","import { ContentSlot } from '../../types';\nimport { cmsParagraphComponent } from '../components';\nimport { contentSlot } from '../components';\nimport { ResponsiveMediaRendition } from '../components';\nimport { simpleResponsiveBanner } from '../components';\n\nexport const exampleContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('Section2A', [\n      cmsParagraphComponent(),\n      simpleResponsiveBanner('/example-content', {\n        code: 'image-code',\n        altText: 'Image Alt Text',\n        renditions: [\n          {\n            key: 'mobile',\n            code: 'Banner Homepage',\n            width: 480,\n            height: 240,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            code: 'Banner Homepage',\n            width: 770,\n            height: 385,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            code: 'Banner Homepage',\n            width: 960,\n            height: 480,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            code: 'Banner Homepage',\n            width: 1400,\n            height: 700,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const orderConfirmationContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('BodyContent', [\n      flexTypeComponent('OrderConfirmationThankMessageComponent'),\n      flexTypeComponent('OrderConfirmationOverviewComponent'),\n      flexTypeComponent('OrderConfirmationItemsComponent'),\n      flexTypeComponent('ExportOrderEntriesComponent'),\n      flexTypeComponent('OrderConfirmationShippingComponent'),\n      flexTypeComponent('OrderConfirmationTotalsComponent'),\n      flexTypeComponent('OrderConfirmationContinueButtonComponent'),\n    ]),\n\n    contentSlot('SideContent', []),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const cmsSearchContentSlots = (listSlotName: string, listFlexTypeCode: string): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot(listSlotName, [flexTypeComponent(listFlexTypeCode)]),\n    contentSlot('ProductLeftRefinements', [flexTypeComponent('ProductRefinementComponent')]),\n  ];\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\n\nexport const storeFinderOrderSlots = (): ContentSlot[] => {\n  // content slots\n  return [contentSlot('MiddleContent', [flexTypeComponent('StoreFinderComponent')])];\n};\n","import { Pages } from '../../types';\nimport { accountAddressBookSlots } from '../slots/account-address-book-slots';\nimport { accountCloseAccountSlots } from '../slots/account-close-account-slots';\nimport { accountConsentsSlots } from '../slots/account-consents-slots';\nimport { accountCouponsSlots } from '../slots/account-coupons-slots';\nimport { accountMyInterestsSlots } from '../slots/account-my-interests-slots';\nimport { accountNotificationPreferenceSlots } from '../slots/account-notification-preference-slots';\nimport { accountOrderHistorySlots } from '../slots/account-order-history-slots';\nimport { accountOrderSlots } from '../slots/account-order-slots';\nimport { accountPaymentDetailsSlots } from '../slots/account-payment-details-slots';\nimport { accountPersonalDetailsSlots } from '../slots/account-personal-details-slots';\nimport { accountQuickOrderSlots } from '../slots/account-quick-order-slots';\nimport { accountSavedCartSlots } from '../slots/account-saved-cart-slots';\nimport { accountSavedCartsSlots } from '../slots/account-saved-carts-slots';\nimport { accountUpdateEmailSlots } from '../slots/account-update-email-slots';\nimport { accountUpdatePasswordSlots } from '../slots/account-update-password-slots';\nimport { accountWishListSlots } from '../slots/account-wish-list-slots';\nimport { cmsCartContentSlots } from '../slots/cart-content-slots';\nimport { checkoutContentSlots } from '../slots/checkout-content-slots';\nimport { checkoutDeliveryAddressContentSlots } from '../slots/checkout-delivery-address-content-slots';\nimport { checkoutDeliveryModeContentSlots } from '../slots/checkout-delivery-mode-content-slots';\nimport { checkoutLoginContentSlots } from '../slots/checkout-login-content-slots';\nimport { checkoutPaymentDetailsContentSlots } from '../slots/checkout-payment-details-content-slots';\nimport { checkoutReviewOrderContentSlots } from '../slots/checkout-review-order-content-slots';\nimport { cmsPageContentSlots } from '../slots/cms-page-content-slots';\nimport { cmsPageContentSlotsNotFound } from '../slots/cms-page-content-slots-not-found';\nimport { exampleContentSlots } from '../slots/example-content-slots';\nimport { orderConfirmationContentSlots } from '../slots/order-confirmation-content-slots';\nimport { cmsSearchContentSlots } from '../slots/search-content-slots';\nimport { storeFinderOrderSlots } from '../slots/store-finder-slots';\nimport { PageFactoryService } from './page-factory.service';\n\n/**\n * !!! Please note: !!!\n *\n * The mock server compares the routes by using startsWith(), therefore, routes starting with the same word\n * need to be in the correct order!!!\n *\n */\nexport const defaultPages = (pageFactoryService: PageFactoryService): Pages => {\n  return {\n    'example-content': pageFactoryService.createContentPage(\n      '/example-content',\n      'Example Content Page',\n      exampleContentSlots()\n    ),\n    'login/register': pageFactoryService.createRegisterPage(),\n    login: pageFactoryService.createLoginPage(),\n    logout: pageFactoryService.createContentPage('/logout', 'Logout', cmsPageContentSlots()),\n    search: pageFactoryService.createContentPage(\n      '/search',\n      'Search',\n      cmsSearchContentSlots('SearchResultsListSlot', 'SearchResultsListComponent'),\n      'SearchResultsListPageTemplate'\n    ),\n    'not-found': pageFactoryService.createContentPage('/not-found', 'Page not found', cmsPageContentSlotsNotFound()),\n    cart: pageFactoryService.createContentPage(\n      '/cart',\n      'Your shopping cart',\n      cmsCartContentSlots(),\n      'CartPageTemplate'\n    ),\n    'checkout-login': pageFactoryService.createContentPage(\n      '/checkout-login',\n      'Checkout Login',\n      checkoutLoginContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    'checkout/delivery-address': pageFactoryService.createContentPage(\n      '/checkout/delivery-address',\n      'Checkout Delivery Address',\n      checkoutDeliveryAddressContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    'checkout/delivery-mode': pageFactoryService.createContentPage(\n      '/checkout/delivery-mode',\n      'Checkout Delivery Mode',\n      checkoutDeliveryModeContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    'checkout/payment-details': pageFactoryService.createContentPage(\n      '/checkout/payment-details',\n      'Checkout Payment Details',\n      checkoutPaymentDetailsContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    'checkout/review-order': pageFactoryService.createContentPage(\n      '/checkout/review-order',\n      'Checkout Review Order',\n      checkoutReviewOrderContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    checkout: pageFactoryService.createContentPage(\n      'contentPage.createContentPage',\n      '/checkout',\n      checkoutContentSlots(),\n      'MultiStepCheckoutSummaryPageTemplate'\n    ),\n    'order-confirmation': pageFactoryService.createContentPage(\n      '/order-confirmation',\n      'Order Confirmation',\n      orderConfirmationContentSlots(),\n      'OrderConfirmationPageTemplate'\n    ),\n    'my-account/orders': pageFactoryService.createContentPage(\n      '/my-account/orders',\n      'Order History',\n      accountOrderHistorySlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/order': pageFactoryService.createContentPage(\n      '/my-account/order',\n      'Order Details',\n      accountOrderSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/wish-list': pageFactoryService.createContentPage(\n      '/my-account/wish-list',\n      'Wishlist',\n      accountWishListSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/saved-carts': pageFactoryService.createContentPage(\n      '/my-account/saved-carts',\n      'Saved Carts',\n      accountSavedCartsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/saved-cart': pageFactoryService.createContentPage(\n      '/my-account/saved-cart',\n      'Saved Cart',\n      accountSavedCartSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/address-book': pageFactoryService.createContentPage(\n      '/my-account/address-book',\n      'Address Book',\n      accountAddressBookSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/payment-details': pageFactoryService.createContentPage(\n      '/my-account/payment-details',\n      'Payment Details',\n      accountPaymentDetailsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/update-profile': pageFactoryService.createContentPage(\n      '/my-account/update-profile',\n      'Update Personal Details',\n      accountPersonalDetailsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/update-password': pageFactoryService.createContentPage(\n      '/my-account/update-password',\n      'Update Password',\n      accountUpdatePasswordSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/update-email': pageFactoryService.createContentPage(\n      '/my-account/update-email',\n      'Update E-Mail',\n      accountUpdateEmailSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/consents': pageFactoryService.createContentPage(\n      '/my-account/consents',\n      'Consent Management',\n      accountConsentsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/close-account': pageFactoryService.createContentPage(\n      '/my-account/close-account',\n      'Close Account',\n      accountCloseAccountSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/my-interests': pageFactoryService.createContentPage(\n      '/my-account/my-interests',\n      'My Interests',\n      accountMyInterestsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/notification-preference': pageFactoryService.createContentPage(\n      '/my-account/notification-preference',\n      'Notification Preference',\n      accountNotificationPreferenceSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/coupons': pageFactoryService.createContentPage(\n      '/my-account/coupons',\n      'My Coupons',\n      accountCouponsSlots(),\n      'AccountPageTemplate'\n    ),\n    'my-account/quick-order': pageFactoryService.createContentPage(\n      '/my-account/quick-order',\n      'Quick Order',\n      accountQuickOrderSlots(),\n      'AccountPageTemplate'\n    ),\n    'store-finder': pageFactoryService.createContentPage(\n      '/store-finder',\n      'Find a store',\n      storeFinderOrderSlots(),\n      'StoreFinderPageTemplate'\n    ),\n  };\n};\n","import { Occ } from '@spartacus/core';\nimport { ContentPages, MockConfig, Page, Pages } from '../../types';\nimport { PageFactoryService } from './page-factory.service';\nimport { defaultPages } from './pages';\n\n/**\n * The PageService takes the custom Pages provided from the MockConfig and merges them with the default pages\n */\nexport class PageService {\n  customContentPages?: ContentPages;\n  customHomePage?: Page;\n  customProductDetailPage?: Page;\n  customProductCategoryPage?: Page;\n\n  constructor(\n    private config: MockConfig,\n    private pageFactoryService: PageFactoryService\n  ) {\n    if (config.contentPages) {\n      this.customContentPages = config.contentPages;\n    }\n\n    if (config.productDetailPage) {\n      this.customProductDetailPage = config.productDetailPage;\n    }\n\n    if (config.productCategoryPage) {\n      this.customProductCategoryPage = config.productCategoryPage;\n    }\n\n    if (config.homePage) {\n      this.customHomePage = config.homePage;\n    }\n  }\n\n  getMockPage(pageType?: string, pageLabelOrId?: string, productCode?: string): Occ.CMSPage | null {\n    const pages: Pages = {\n      ...defaultPages(this.pageFactoryService),\n      ...this.customContentPages,\n    };\n\n    if (!pageType && !pageLabelOrId) {\n      return this.customHomePage || this.pageFactoryService.createHomePage();\n    }\n\n    switch (pageType) {\n      case 'ContentPage':\n        if (!pageLabelOrId) break;\n\n        const pageLabelOrIdSanitized = this.getSanitizedPageLabelOrId(pageLabelOrId);\n\n        const lookupPageKey =\n          Object.keys(pages).find((mockPageLabelOrId) => pageLabelOrIdSanitized.startsWith(mockPageLabelOrId)) || '';\n\n        if (lookupPageKey) {\n          return pages[lookupPageKey];\n        }\n        break;\n\n      case 'CategoryPage':\n        return this.customProductCategoryPage || this.pageFactoryService.createProductCategoryPage();\n\n      case 'ProductPage':\n        return this.customProductDetailPage || this.pageFactoryService.createProductDetailPage(productCode || '');\n    }\n\n    return null;\n  }\n\n  getSanitizedPageLabelOrId(pageLabelOrId: string): string {\n    return pageLabelOrId.startsWith('/') ? pageLabelOrId.slice(1, pageLabelOrId.length) : pageLabelOrId;\n  }\n}\n","import { flexTypeComponent } from './flex-type-component';\n\nexport const breadcrumbComponent = () => {\n  return flexTypeComponent('BreadcrumbComponent');\n};\n","import { faker } from '@faker-js/faker';\nimport { CmsNavigationEntry, CmsNavigationNode } from '@spartacus/core';\n\nconst getNavigationNode = (\n  uid: string,\n  entries: CmsNavigationEntry[],\n  children: CmsNavigationNode[],\n  title?: string\n): CmsNavigationNode => {\n  const navigationNode = {\n    uid,\n    uuid: faker.string.uuid(),\n    entries,\n    children: [],\n  } as CmsNavigationNode;\n\n  if (title) {\n    navigationNode.title = title;\n  }\n\n  for (const child of children) {\n    navigationNode.children?.push(\n      getNavigationNode(child.uid || '', child.entries || [], child.children || [], child.title)\n    );\n  }\n\n  return navigationNode;\n};\n\nexport const navigationNodeComponent = (\n  uid: string,\n  entries: CmsNavigationEntry[],\n  children: CmsNavigationNode[],\n  title?: string\n): CmsNavigationNode => {\n  return getNavigationNode(uid, entries, children, title);\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\nimport { navigationNodeComponent } from './navigation-node';\n\nexport const footerNavigationComponent = (): Component => {\n  return flexTypeComponent('FooterNavigationComponent', undefined, {\n    showLanguageCurrency: 'true',\n    wrapAfter: '4',\n    notice: 'Copyright © 2021 SAP SE or an SAP affiliate company. All rights reserved.',\n    navigationNode: navigationNodeComponent(\n      'FooterNavNode',\n      [],\n      [\n        {\n          uid: 'SAPCommerceNavNode',\n          entries: [],\n          children: [\n            {\n              uid: 'AboutSAPCommerceNavNode',\n              entries: [\n                {\n                  itemId: 'AboutSAPCommerceLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'FAQNavNode',\n              entries: [\n                {\n                  itemId: 'FAQLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n          ],\n          title: 'Footer Title 1',\n        },\n        {\n          uid: 'SAPCustomerExperienceNavNode',\n          entries: [],\n          children: [\n            {\n              uid: 'AboutSAPCustomerExperienceNavNode',\n              entries: [\n                {\n                  itemId: 'VisitSAPLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'ContactUsNavNode',\n              entries: [\n                {\n                  itemId: 'ContactUsLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n          ],\n          title: 'Footer Title 2',\n        },\n        {\n          uid: 'FollowUsNavNode',\n          entries: [],\n          children: [\n            {\n              uid: 'AgileCommerceBlogNavNode',\n              entries: [\n                {\n                  itemId: 'AgileCommerceBlogLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'LinkedInNavNode',\n              entries: [\n                {\n                  itemId: 'LinkedInLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'FacebookNavNode',\n              entries: [\n                {\n                  itemId: 'FacebookLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'TwitterNavNode',\n              entries: [\n                {\n                  itemId: 'TwitterLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n          ],\n          title: 'Footer Title 3',\n        },\n      ]\n    ),\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const profileScriptComponent = (): Component => {\n  return flexTypeComponent('ProfileTagScriptComponent');\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { ContentSlot } from '../../types';\nimport { cmsParagraphComponent } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { footerNavigationComponent } from '../components/footer-navigation';\nimport { profileScriptComponent } from '../components/profile-script';\n\nexport const placeholderContentSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'PlaceholderContentSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'PlaceholderContentSlot',\n    name: 'Placeholder Content Slot',\n    slotShared: true,\n    components: {\n      component: [profileScriptComponent()],\n    },\n  };\n};\n\nexport const footerSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'FooterSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'Footer',\n    name: 'Footer Slot',\n    slotShared: true,\n    components: {\n      component: [\n        footerNavigationComponent(),\n        flexTypeComponent('AnonymousConsentOpenDialogComponent'),\n        cmsParagraphComponent(\n          '<div class=\"cx-notice\">Copyright © 2020 SAP SE or an SAP affiliate company. All rights reserved.</div>'\n        ),\n        flexTypeComponent('AnonymousConsentManagementBannerComponent'),\n      ],\n    },\n  };\n};\n\nexport const footerSlots = (): ContentSlot[] => {\n  // shared footer slots\n  return [placeholderContentSlot(), footerSlot()];\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\nimport { navigationNodeComponent } from './navigation-node';\n\nexport const categoryNavigationComponent = (): Component => {\n  return flexTypeComponent('CategoryNavigationComponent', undefined, {\n    wrapAfter: '10',\n    navigationNode: navigationNodeComponent(\n      'ElectronicsCategoryNavComponent',\n      [],\n      [\n        {\n          uid: 'BrandsNavNode',\n          entries: [\n            {\n              itemId: 'AllBrandsCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [\n            {\n              uid: 'BrandLinksNavNode',\n              entries: [],\n              title: 'Cameras',\n            },\n            {\n              uid: 'AccessoryBrandLinksNavNode',\n              entries: [],\n              title: 'Accessories',\n            },\n          ],\n          title: 'Brands',\n        },\n        {\n          uid: 'DigitalCamerasNavNode',\n          entries: [\n            {\n              itemId: 'DigitalCamerasCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [\n            {\n              uid: 'DigitalCompactsNavNode',\n              entries: [\n                {\n                  itemId: 'DigitalCompactsCategoryLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n            {\n              uid: 'DigitalSLRNavNode',\n              entries: [\n                {\n                  itemId: 'DigitalSLRCategoryLink',\n                  itemSuperType: 'AbstractCMSComponent',\n                  itemType: 'CMSLinkComponent',\n                },\n              ],\n              children: [],\n            },\n          ],\n          title: 'Digital Cameras',\n        },\n        {\n          uid: 'FilmCamerasNavNode',\n          entries: [\n            {\n              itemId: 'FilmCamerasCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [],\n          title: 'Film Cameras',\n        },\n        {\n          uid: 'HandheldCamcordersNavNode',\n          entries: [\n            {\n              itemId: 'HandheldCamcordersCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [],\n          title: 'Camcorders',\n        },\n        {\n          uid: 'WebcamsNavNode',\n          entries: [\n            {\n              itemId: 'WebcamsCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [],\n          title: 'Webcams',\n        },\n        {\n          uid: 'CameraAccessoriesNavNode',\n          entries: [\n            {\n              itemId: 'CameraAccessoriesCategoryLink',\n              itemSuperType: 'AbstractCMSComponent',\n              itemType: 'CMSLinkComponent',\n            },\n          ],\n          children: [\n            {\n              uid: 'AccessoriesNavNode',\n              entries: [],\n              children: [\n                {\n                  uid: 'CamerasFlashesNavNode',\n                  entries: [\n                    {\n                      itemId: 'CamerasFlashesCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n                {\n                  uid: 'TripodsNavNode',\n                  entries: [\n                    {\n                      itemId: 'TripodsCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n                {\n                  uid: 'CameraLensesNavNode',\n                  entries: [\n                    {\n                      itemId: 'CameraLensesCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n                {\n                  uid: 'FlashMemoryNavNode',\n                  entries: [\n                    {\n                      itemId: 'FlashMemoryCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                  title: 'Flash Memory',\n                },\n                {\n                  uid: 'PowerSuppliesNavNode',\n                  entries: [\n                    {\n                      itemId: 'PowerSuppliesCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                  title: 'Power Supplies',\n                },\n              ],\n              title: 'Gear',\n            },\n            {\n              uid: 'SuppliesNavNode',\n              entries: [],\n              children: [\n                {\n                  uid: 'ColourFilmsNavNode',\n                  entries: [\n                    {\n                      itemId: 'ColourFilmsCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n                {\n                  uid: 'BlackAndWhiteFilmsNavNode',\n                  entries: [\n                    {\n                      itemId: 'BlackAndWhiteFilmsCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n                {\n                  uid: 'BlankVideotapesNavNode',\n                  entries: [\n                    {\n                      itemId: 'BlankVideotapesCategoryLink',\n                      itemSuperType: 'AbstractCMSComponent',\n                      itemType: 'CMSLinkComponent',\n                    },\n                  ],\n                  children: [],\n                },\n              ],\n              title: 'Supplies',\n            },\n          ],\n          title: 'Accessories',\n        },\n      ]\n    ),\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const miniCartComponent = (): Component => {\n  return flexTypeComponent('MiniCartComponent', undefined, {\n    totalDisplay: 'SUBTOTAL',\n    title: 'YOUR SHOPPING CART',\n    shownProductCount: '3',\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const searchBoxComponent = (): Component => {\n  return flexTypeComponent('SearchBoxComponent', undefined, {\n    maxSuggestions: '5',\n    maxProducts: '5',\n    displaySuggestions: 'true',\n    displayProducts: 'true',\n    displayProductImages: 'true',\n    waitTimeBeforeRequest: '0',\n    minCharactersBeforeRequest: '0',\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const siteContextComponent = (context: string): Component => {\n  return flexTypeComponent('CMSSiteContextComponent', undefined, {\n    context,\n  });\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { Component, ContentSlot } from '../../types';\nimport { cmsLinkComponent, flexTypeComponent, simpleBannerComponent } from '../components';\nimport { categoryNavigationComponent } from '../components/category-navigation';\nimport { miniCartComponent } from '../components/mini-cart';\nimport { searchBoxComponent } from '../components/search-box';\nimport { siteContextComponent } from '../components/site-context';\n\nexport const siteLogoSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'siteLogoSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'SiteLogo',\n    name: 'Site Logo Slot',\n    slotShared: true,\n    components: {\n      component: [simpleBannerComponent('/')],\n    },\n  };\n};\n\nexport const miniCartSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'MiniCartSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'MiniCart',\n    name: 'Mini Cart Slot',\n    slotShared: true,\n    components: {\n      component: [miniCartComponent()],\n    },\n  };\n};\n\nexport const homepageNavLinkSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'homepageNavLinkSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'HomepageNavLink',\n    name: 'Homepage Nav Link Slot',\n    slotShared: true,\n    components: {\n      component: [\n        cmsLinkComponent({\n          linkName: 'Home',\n          url: '/',\n          contentPage: 'homepage',\n          contentPageLabelOrId: 'homepage',\n        }),\n      ],\n    },\n  };\n};\n\nexport const headerLinksSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'HeaderLinksSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'HeaderLinks',\n    name: 'Header Links Slot',\n    slotShared: true,\n    components: {\n      component: [\n        flexTypeComponent('NavigationComponent', undefined, {\n          styleClass: 'accNavComponent',\n          navigationNode: {\n            uid: 'MyAccountNavNode',\n            uuid: 'eyJpdGVtSWQiOiJNeUFjY291bnROYXZOb2RlIiwiY2F0YWxvZ0lkIjoiZWxlY3Ryb25pY3Mtc3BhQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9',\n            // @ts-ignore\n            entries: [],\n            children: [\n              {\n                uid: 'OrderHistoryNavNode',\n                uuid: 'eyJpdGVtSWQiOiJPcmRlckhpc3RvcnlOYXZOb2RlIiwiY2F0YWxvZ0lkIjoiZWxlY3Ryb25pY3Mtc3BhQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9',\n                entries: [\n                  {\n                    itemId: 'OrdersLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                // @ts-ignore\n                children: [],\n              },\n              {\n                uid: 'WishListNavNode',\n                uuid: 'eyJpdGVtSWQiOiJXaXNoTGlzdE5hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'WishListLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'SavedCartsNavNode',\n                uuid: 'eyJpdGVtSWQiOiJTYXZlZENhcnRzTmF2Tm9kZSIsImNhdGFsb2dJZCI6ImVsZWN0cm9uaWNzLXNwYUNvbnRlbnRDYXRhbG9nIiwiY2F0YWxvZ1ZlcnNpb24iOiJPbmxpbmUifQ==',\n                entries: [\n                  {\n                    itemId: 'SavedCartsLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'AddressBookNavNode',\n                uuid: 'eyJpdGVtSWQiOiJBZGRyZXNzQm9va05hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'AddressBookLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'PaymentDetailsNavNode',\n                uuid: 'eyJpdGVtSWQiOiJQYXltZW50RGV0YWlsc05hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'PaymentDetailsLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'PersonalDetailsNavNode',\n                uuid: 'eyJpdGVtSWQiOiJQZXJzb25hbERldGFpbHNOYXZOb2RlIiwiY2F0YWxvZ0lkIjoiZWxlY3Ryb25pY3Mtc3BhQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9',\n                entries: [\n                  {\n                    itemId: 'PersonalDetailsLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'ChangePasswordNavNode',\n                uuid: 'eyJpdGVtSWQiOiJDaGFuZ2VQYXNzd29yZE5hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'UpdatePasswordLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'UpdateEmailNavNode',\n                uuid: 'eyJpdGVtSWQiOiJVcGRhdGVFbWFpbE5hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'UpdateEmailLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'ConsentManagementNavNode',\n                uuid: 'eyJpdGVtSWQiOiJDb25zZW50TWFuYWdlbWVudE5hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'ConsentManagementLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'CloseAccountNavNode',\n                uuid: 'eyJpdGVtSWQiOiJDbG9zZUFjY291bnROYXZOb2RlIiwiY2F0YWxvZ0lkIjoiZWxlY3Ryb25pY3Mtc3BhQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9',\n                entries: [\n                  {\n                    itemId: 'CloseAccountLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'MyInterestsNavNode',\n                uuid: 'eyJpdGVtSWQiOiJNeUludGVyZXN0c05hdk5vZGUiLCJjYXRhbG9nSWQiOiJlbGVjdHJvbmljcy1zcGFDb250ZW50Q2F0YWxvZyIsImNhdGFsb2dWZXJzaW9uIjoiT25saW5lIn0=',\n                entries: [\n                  {\n                    itemId: 'MyInterestsLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'NotificationPreferenceNavNode',\n                uuid: 'eyJpdGVtSWQiOiJOb3RpZmljYXRpb25QcmVmZXJlbmNlTmF2Tm9kZSIsImNhdGFsb2dJZCI6ImVsZWN0cm9uaWNzLXNwYUNvbnRlbnRDYXRhbG9nIiwiY2F0YWxvZ1ZlcnNpb24iOiJPbmxpbmUifQ==',\n                entries: [\n                  {\n                    itemId: 'NotificationPreferenceLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'MyCouponsNavNode',\n                uuid: 'eyJpdGVtSWQiOiJNeUNvdXBvbnNOYXZOb2RlIiwiY2F0YWxvZ0lkIjoiZWxlY3Ryb25pY3Mtc3BhQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9',\n                entries: [\n                  {\n                    itemId: 'MyCouponsLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'QuickOrderNavNode',\n                uuid: 'eyJpdGVtSWQiOiJRdWlja09yZGVyTmF2Tm9kZSIsImNhdGFsb2dJZCI6ImVsZWN0cm9uaWNzLXNwYUNvbnRlbnRDYXRhbG9nIiwiY2F0YWxvZ1ZlcnNpb24iOiJPbmxpbmUifQ==',\n                entries: [\n                  {\n                    itemId: 'QuickOrderLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n              {\n                uid: 'SignOutNavNode',\n                uuid: 'eyJpdGVtSWQiOiJTaWduT3V0TmF2Tm9kZSIsImNhdGFsb2dJZCI6ImVsZWN0cm9uaWNzLXNwYUNvbnRlbnRDYXRhbG9nIiwiY2F0YWxvZ1ZlcnNpb24iOiJPbmxpbmUifQ==',\n                entries: [\n                  {\n                    itemId: 'SignOutLink',\n                    itemSuperType: 'AbstractCMSComponent',\n                    itemType: 'CMSLinkComponent',\n                  },\n                ],\n                children: [],\n              },\n            ],\n            title: 'My Account',\n          },\n        }),\n      ],\n    },\n  };\n};\n\nexport const searchBoxSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'SearchBoxSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'SearchBox',\n    name: 'Search Box Slot',\n    slotShared: true,\n    components: {\n      component: [searchBoxComponent()],\n    },\n  };\n};\n\nexport const topHeaderSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'TopHeaderSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'TopHeaderSlot',\n    name: 'Top Header SLot',\n    slotShared: true,\n    components: {\n      component: [],\n    },\n  };\n};\n\n// containing language / currency selector\nexport const siteContextSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'SiteContextSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'SiteContext',\n    name: 'Site Context Slot',\n    slotShared: true,\n    components: {\n      component: [siteContextComponent('LANGUAGE'), siteContextComponent('CURRENCY')],\n    },\n  };\n};\n\n// containg storefinder / contact us / help meta nav links\nexport const siteLinksSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'SiteLinksSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'SiteLinks',\n    name: 'Site Links Slot',\n    slotShared: true,\n    components: {\n      component: [\n        cmsLinkComponent({\n          linkName: 'Quick Order',\n          url: '/my-account/quick-order',\n        }),\n        cmsLinkComponent({\n          linkName: 'Find a Store',\n          url: '/store-finder',\n          contentPage: 'storefinderPage',\n          contentPageLabelOrId: '/store-finder',\n        }),\n        cmsLinkComponent({\n          linkName: 'Contact Us',\n          url: '/contact',\n        }),\n        cmsLinkComponent({\n          linkName: 'Help',\n          url: '/help',\n        }),\n      ],\n    },\n  };\n};\n\nexport const navigationBarSlot = (): Occ.ContentSlot => {\n  return {\n    slotId: 'NavigationBarSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'NavigationBar',\n    name: 'Navigation Bar Slot',\n    slotShared: true,\n    components: {\n      component: [categoryNavigationComponent()],\n    },\n  };\n};\n\nexport const bottomHeaderSlot = (additionalComponents: Component[] = []): Occ.ContentSlot => {\n  return {\n    slotId: 'BottomHeaderSlot',\n    slotUuid: faker.string.uuid(),\n    position: 'BottomHeaderSlot',\n    name: 'Bottom Header Slot',\n    slotShared: true,\n    components: {\n      component: additionalComponents,\n    },\n  };\n};\n\nexport const headerSlots = (additionalSlots: ContentSlot[] = []): ContentSlot[] => {\n  // shared header slots\n  return [\n    siteLogoSlot(),\n    miniCartSlot(),\n    homepageNavLinkSlot(),\n    headerLinksSlot(),\n    searchBoxSlot(),\n    topHeaderSlot(),\n    siteContextSlot(),\n    siteLinksSlot(),\n    navigationBarSlot(),\n    bottomHeaderSlot(),\n    ...additionalSlots,\n  ];\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const productCarousel = (productCodes: string[], title: string): Component => {\n  return flexTypeComponent('ProductCarouselComponent', undefined, {\n    popup: 'false',\n    scroll: 'ALLVISIBLE',\n    productCodes: productCodes.join(' '),\n    title,\n  });\n};\n","import { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { ResponsiveMediaRendition } from '../components';\nimport { simpleResponsiveBanner } from '../components';\nimport { productCarousel } from '../components/product-carousel';\n\nexport const homeContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('Section1', [\n      simpleResponsiveBanner('/OpenCatalogue/Cameras/Digital-Cameras/Digital-SLR/c/578', {\n        code: 'Elec_HomeSpeed_EN_01',\n        altText: 'Save Big On Select SLR & DSLR Cameras',\n        renditions: [\n          {\n            key: 'mobile',\n            code: 'Banner Homepage',\n            width: 480,\n            height: 240,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            code: 'Banner Homepage',\n            width: 770,\n            height: 385,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            code: 'Banner Homepage',\n            width: 960,\n            height: 480,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            code: 'Banner Homepage',\n            width: 1400,\n            height: 700,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n\n    contentSlot('Section2A', [\n      simpleResponsiveBanner('/Open-Catalogue/Cameras/DigitalCameras/Digital-Compacts/c/576', {\n        code: 'Elec_HomeFam_EN_01',\n        altText: 'Compact Cameras',\n        renditions: [\n          {\n            key: 'mobile',\n            code: 'Banner Homepage',\n            width: 576,\n            height: 432,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            code: 'Banner Homepage',\n            width: 495,\n            height: 372,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            code: 'Banner Homepage',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            code: 'Banner Homepage',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n      simpleResponsiveBanner('/Open-Catalogue/Cameras/CameraAccessories-%26-Supplies/CameraLenses/c/588', {\n        code: 'Elec_HomeFam_EN_01',\n        altText: 'Camera Lenses',\n        renditions: [\n          {\n            key: 'mobile',\n            width: 576,\n            height: 432,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            width: 495,\n            height: 372,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n\n    contentSlot('Section2B', [\n      simpleResponsiveBanner('/Open-Catalogue/Cameras/Hand-held-Camcorders/c/584', {\n        code: 'Elec_HomeCaptureFirst_EN_01',\n        altText: 'Camcorders',\n        renditions: [\n          {\n            key: 'mobile',\n            width: 576,\n            height: 432,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            width: 495,\n            height: 372,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n      simpleResponsiveBanner('/Open-Catalogue/Cameras/Hand-held-Camcorders/c/816', {\n        code: 'Elec_HomeCaptureFirst_EN_01',\n        altText: 'Power Supplies',\n        renditions: [\n          {\n            key: 'mobile',\n            width: 576,\n            height: 432,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            width: 495,\n            height: 372,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            width: 570,\n            height: 428,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n\n    contentSlot('Section2C', []),\n\n    contentSlot('Section3', [\n      productCarousel(\n        [\n          '300938',\n          '358639',\n          '553637',\n          '816802',\n          '1934793',\n          '1382080',\n          '1981415',\n          '816780',\n          '1934406',\n          '1986316',\n          '592506',\n        ],\n        'Our Bestselling Products'\n      ),\n      productCarousel(['932577', '1776948', '1641905', '1981415', '1934796', '2278102', '1992693'], \"What's New\"),\n    ]),\n\n    contentSlot('Section4', [\n      simpleResponsiveBanner('/example-content', {\n        code: 'Elec_HomeSpeed_EN_01',\n        altText: 'Save Big On Select SLR & DSLR Cameras',\n        renditions: [\n          {\n            key: 'mobile',\n            code: 'Banner Homepage',\n            width: 480,\n            height: 240,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'tablet',\n            code: 'Banner Homepage',\n            width: 770,\n            height: 385,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'desktop',\n            code: 'Banner Homepage',\n            width: 960,\n            height: 480,\n          } as ResponsiveMediaRendition,\n          {\n            key: 'widescreen',\n            code: 'Banner Homepage',\n            width: 1400,\n            height: 700,\n          } as ResponsiveMediaRendition,\n        ],\n      }),\n    ]),\n\n    contentSlot('Section5', []),\n  ];\n};\n","import { flexTypeComponent } from './flex-type-component';\n\nexport const cmsTabParagraphContainerComponent = (components: string[]) => {\n  return flexTypeComponent('CMSTabParagraphContainer', undefined, {\n    components: components.join(' '),\n  });\n};\n","import { Component } from '../../types';\nimport { flexTypeComponent } from './flex-type-component';\n\nexport const productReferencesComponent = (referenceType: string, title: string): Component => {\n  return flexTypeComponent('ProductReferencesComponent', undefined, {\n    productReferenceTypes: referenceType,\n    displayProductPrices: 'true',\n    maximumNumberProducts: '5',\n    displayProductTitles: 'true',\n    title,\n  });\n};\n","import { faker } from '@faker-js/faker';\nimport { ContentSlot } from '../../types';\nimport { contentSlot } from '../components';\nimport { flexTypeComponent } from '../components';\nimport { cmsTabParagraphContainerComponent } from '../components/cms-tab-paragraph';\nimport { productReferencesComponent } from '../components/product-references';\n\nexport const productDetailContentSlots = (): ContentSlot[] => {\n  // content slots\n  return [\n    contentSlot('Summary', [\n      {\n        uid: 'ProductImagesComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.097Z',\n        name: 'ProductImagesComponent',\n        container: 'false',\n        flexType: 'ProductImagesComponent',\n      },\n      {\n        uid: 'ProductIntroComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.107Z',\n        name: 'ProductIntroComponent',\n        container: 'false',\n        flexType: 'ProductIntroComponent',\n      },\n      {\n        uid: 'ProductSummaryComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.116Z',\n        name: 'ProductSummaryComponent',\n        container: 'false',\n        flexType: 'ProductSummaryComponent',\n      },\n      {\n        uid: 'VariantSelector',\n        uuid: faker.string.uuid(),\n        typeCode: 'ProductVariantSelectorComponent',\n        modifiedtime: '2021-01-18T18:15:02.182Z',\n        name: 'Product Variant Selector',\n        container: 'false',\n      },\n      {\n        uid: 'AddToCart',\n        uuid: faker.string.uuid(),\n        typeCode: 'ProductAddToCartComponent',\n        modifiedtime: '2021-01-18T18:15:02.149Z',\n        name: 'Product Add To Cart',\n        container: 'false',\n      },\n      {\n        uid: 'ConfigureProductComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.159Z',\n        name: 'Configure Product Component',\n        container: 'false',\n        flexType: 'ConfigureProductComponent',\n      },\n      {\n        uid: 'AddToWishListComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.17Z',\n        name: 'AddToWishListComponent',\n        container: 'false',\n        flexType: 'AddToWishListComponent',\n      },\n      {\n        uid: 'StockNotificationComponent',\n        uuid: faker.string.uuid(),\n        typeCode: 'CMSFlexComponent',\n        modifiedtime: '2021-01-18T18:15:02.18Z',\n        name: 'StockNotificationComponent',\n        container: 'false',\n        flexType: 'StockNotificationComponent',\n      },\n    ]),\n\n    contentSlot('Tabs', [\n      cmsTabParagraphContainerComponent([\n        'ProductDetailsTabComponent',\n        'ProductSpecsTabComponent',\n        'ProductReviewsTabComponent',\n        'deliveryTab',\n      ]),\n    ]),\n\n    contentSlot('UpSelling', [productReferencesComponent('SIMILAR', 'You may also like..')]),\n\n    contentSlot('CrossSelling', [productReferencesComponent('ACCESSORIES', 'The best accessories..')]),\n\n    contentSlot('PlaceholderContentSlot', [flexTypeComponent('ProfileTagScriptComponent')]),\n\n    contentSlot('Section3', [flexTypeComponent('BundleCarouselComponent')]),\n  ];\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { contentSlot, flexTypeComponent } from '../components';\nimport { breadcrumbComponent } from '../components/breadcrumb';\nimport { footerSlots } from '../slots/footer-slots';\nimport { bottomHeaderSlot, headerSlots } from '../slots/header-slots';\nimport { homeContentSlots } from '../slots/home-content-slots';\nimport { productDetailContentSlots } from '../slots/product-detail-content-slots';\nimport { cmsSearchContentSlots } from '../slots/search-content-slots';\nimport { ContentSlot } from '../../types';\n\nexport class PageFactoryService {\n  private _customSlots: Occ.ContentSlot[] = [];\n  private _headerSlotsWithBreadCrumb: ContentSlot[] = [];\n  private _headerSlots: ContentSlot[] = [];\n  private _footerSlots: ContentSlot[] = [];\n\n  constructor(protected customSlots?: Occ.ContentSlot[]) {\n    if (customSlots?.length) {\n      this._customSlots = customSlots;\n    }\n    this._headerSlotsWithBreadCrumb = headerSlots([bottomHeaderSlot([breadcrumbComponent()])]);\n    this._headerSlots = headerSlots();\n    this._footerSlots = footerSlots();\n  }\n\n  private _getGlobalSlots(defaultSlots: Occ.ContentSlot[]): Occ.ContentSlot[] {\n    if (!this._customSlots?.length) {\n      return defaultSlots;\n    }\n\n    return [\n      ...defaultSlots.filter((slot) => !this._customSlots.some((customSlot) => customSlot.slotId === slot.slotId)),\n      ...this._customSlots,\n    ];\n  }\n\n  public createContentPage(\n    label: string,\n    title: string,\n    contentSlots: Occ.ContentSlot[],\n    template?: string\n  ): Occ.CMSPage {\n    return {\n      label,\n      uid: `contentPage${faker.string.uuid()}`,\n      title,\n      template: template ?? 'ContentPage1Template',\n      typeCode: 'ContentPage',\n      name: title ?? 'dummy title',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [\n          ...this._getGlobalSlots([...this._headerSlotsWithBreadCrumb, ...this._footerSlots]),\n          ...contentSlots,\n        ],\n      },\n    };\n  }\n\n  public createProductCategoryPage(): Occ.CMSPage {\n    return {\n      uid: `categoryPage-${faker.string.uuid()}`,\n      title: 'Product List',\n      template: 'ProductListPageTemplate',\n      typeCode: 'CategoryPage',\n      name: 'Product List',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [\n          ...this._getGlobalSlots([...this._headerSlotsWithBreadCrumb, ...this._footerSlots]),\n          ...cmsSearchContentSlots('ProductListSlot', 'CMSProductListComponent'),\n        ],\n      },\n    };\n  }\n\n  public createHomePage(): Occ.CMSPage {\n    return {\n      label: 'homepage',\n      uid: 'homepage',\n      title: 'Homepage',\n      template: 'LandingPage2Template',\n      typeCode: 'ContentPage',\n      name: 'Homepage',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [...this._getGlobalSlots([...this._headerSlots, ...this._footerSlots]), ...homeContentSlots()],\n      },\n    };\n  }\n\n  public createProductDetailPage(code: string): Occ.CMSPage {\n    return {\n      uid: `productDetailPage${code}`,\n      title: `Product with Code ${code}`,\n      template: 'ProductDetailsPageTemplate',\n      typeCode: 'ProductPage',\n      name: 'Product Detail Page',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [\n          ...this._getGlobalSlots([...this._headerSlots, ...this._footerSlots]),\n          ...productDetailContentSlots(),\n        ],\n      },\n    };\n  }\n\n  public createLoginPage(): Occ.CMSPage {\n    return {\n      label: '/login',\n      uid: `loginPage${faker.number.int(1000)}`,\n      title: `Login Page`,\n      template: 'LoginPageTemplate',\n      typeCode: 'ContentPage',\n      name: 'Content Page',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [\n          ...this._getGlobalSlots([...this._headerSlotsWithBreadCrumb, ...this._footerSlots, ...footerSlots()]),\n          contentSlot('LeftContentSlot', [\n            flexTypeComponent('ReturningCustomerLoginComponent'),\n            flexTypeComponent('ReturningCustomerRegisterComponent'),\n          ]),\n        ],\n      },\n    };\n  }\n\n  public createRegisterPage(): Occ.CMSPage {\n    return {\n      label: '/login/register',\n      uid: `loginPage${faker.number.int(1000)}`,\n      title: `Register Page`,\n      template: 'AccountPageTemplate',\n      typeCode: 'ContentPage',\n      name: 'Register Page',\n      robotTag: Occ.PageRobots.INDEX_FOLLOW,\n      contentSlots: {\n        contentSlot: [\n          ...this._getGlobalSlots([...this._headerSlotsWithBreadCrumb, ...this._footerSlots, ...footerSlots()]),\n          contentSlot('BodyContent', [flexTypeComponent('RegisterCustomerComponent')]),\n        ],\n      },\n    };\n  }\n}\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { FacetValueModifier } from '../../types';\nimport { createSearchState } from './search';\n\nexport const createFacetValue = (additionalData?: Occ.FacetValue, modifier?: FacetValueModifier): Occ.FacetValue => {\n  return {\n    count: faker.number.int({ min: 1, max: 999 }),\n    name: faker.commerce.productMaterial(),\n    query: createSearchState(undefined, modifier ?? undefined),\n    selected: false,\n    ...additionalData,\n  };\n};\n\nexport const createFacet = (additionalData?: Occ.Facet, modifier?: FacetValueModifier): Occ.Facet => {\n  return {\n    category: false,\n    multiSelect: false,\n    name: faker.lorem.words(1),\n    priority: 1,\n    topValues: [],\n    values: new Array(faker.number.int({ min: 3, max: 20 }))\n      .fill(null)\n      .map(() => createFacetValue(undefined, modifier)),\n    visible: true,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { ProductSearchPageModifier, SearchStateModifier } from '../../types';\nimport { createSortModel } from '../general';\nimport { createPaginationModel } from '../general';\nimport { createFullProduct } from '../products';\nimport { createBreadcrumb } from './breadcrumb';\nimport { createFacet } from './facet';\n\nconst DEFAULT_SORT: string = 'relevance';\nconst CATEGORY_QUERY: string = ':allCategories:';\n\nexport const createSearchQuery = (): Occ.SearchQuery => {\n  return {\n    value: faker.commerce.productMaterial(),\n  };\n};\n\nexport const createSearchState = (\n  additionalData?: Occ.SearchState,\n  modifier?: SearchStateModifier\n): Occ.SearchState => {\n  return {\n    query: modifier ? { value: `${modifier.query}:${modifier.activeSort}` } : createSearchQuery(),\n    url: modifier ? `/search?q=${modifier.query}%3A${modifier.activeSort}` : faker.internet.url(),\n    ...additionalData,\n  };\n};\n\nexport const createSpellingSuggestion = (additionalData?: Occ.SpellingSuggestion): Occ.SpellingSuggestion => {\n  return {\n    query: faker.lorem.words(3),\n    suggestion: faker.commerce.productMaterial(),\n    ...additionalData,\n  };\n};\n\nexport const productSearchPage = (\n  additionalData?: Occ.ProductSearchPage,\n  modifier?: ProductSearchPageModifier\n): Occ.ProductSearchPage => {\n  const numberOfResults = faker.number.int({ min: 1, max: 50 });\n  const numberOfPages = Math.ceil(numberOfResults / (modifier?.pageSize || 1));\n\n  const result: Occ.ProductSearchPage = {\n    breadcrumbs: [createBreadcrumb(), createBreadcrumb(), createBreadcrumb()],\n    categoryCode: faker.commerce.department(),\n    currentQuery: createSearchState(\n      undefined,\n      modifier ? { query: modifier.query, activeSort: modifier?.sort || DEFAULT_SORT } : undefined\n    ),\n    facets: [createFacet(), createFacet({ multiSelect: true }), createFacet()],\n    freeTextSearch: modifier?.query || '',\n    keywordRedirectUrl: faker.internet.url(),\n    pagination: createPaginationModel(\n      modifier\n        ? {\n            currentPage: modifier.currentPage,\n            pageSize: modifier.pageSize,\n            sort: modifier.sort,\n            totalPages: numberOfPages,\n            totalResults: numberOfResults,\n          }\n        : undefined\n    ),\n    products: new Array(numberOfResults).fill(null).map(() => createFullProduct()),\n    sorts: [\n      createSortModel({ code: 'relevance', name: 'Relevance', selected: modifier?.sort === 'relevance' }),\n      createSortModel({ code: 'topRated', name: 'Top Rated', selected: modifier?.sort === 'topRated' }),\n      createSortModel({ code: 'name-asc', name: 'Name (ascending)', selected: modifier?.sort === 'name-asc' }),\n      createSortModel({ code: 'name-desc', name: 'Name (descending)', selected: modifier?.sort === 'name-desc' }),\n      createSortModel({ code: 'price-asc', name: 'Price (lowest first)', selected: modifier?.sort === 'price-asc' }),\n      createSortModel({ code: 'price-desc', name: 'Price (highest first)', selected: modifier?.sort === 'price-desc' }),\n    ],\n    spellingSuggestion: createSpellingSuggestion(),\n  };\n\n  // Category Page Modifier\n  if (modifier?.query?.includes(CATEGORY_QUERY)) {\n    const categoryCode: string = modifier?.query.split(CATEGORY_QUERY)[1];\n    const categoryName: string = faker.commerce.productName();\n\n    result.freeTextSearch = '';\n\n    result.currentQuery = createSearchState({\n      query: {\n        value: `:${modifier?.sort}:allCategories:${categoryCode}`,\n      },\n      url: `/search?q=%3A${modifier?.sort}%3AallCategories%3A${categoryCode}`,\n    });\n\n    result.breadcrumbs = [\n      createBreadcrumb({\n        facetCode: 'allCategories',\n        facetName: 'allCategories',\n        facetValueCode: categoryCode,\n        facetValueName: categoryName,\n        removeQuery: {\n          query: {\n            value: `:${modifier?.sort}`,\n          },\n          url: `/search?q=%3A${modifier?.sort}`,\n        },\n      }),\n    ];\n  }\n\n  return {\n    ...result,\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createSearchState } from './search';\n\nexport const createBreadcrumb = (additionalData?: Occ.Breadcrumb): Occ.Breadcrumb => {\n  return {\n    facetCode: faker.string.uuid(),\n    facetName: faker.commerce.department(),\n    facetValueCode: faker.string.uuid(),\n    facetValueName: `${faker.string.numeric(3)} ${faker.science.unit()}`,\n    removeQuery: createSearchState(),\n    truncateQuery: createSearchState(),\n    ...additionalData,\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createSuggestion = (): Occ.Suggestion => {\n  return {\n    value: faker.commerce.productName(),\n  };\n};\n\nexport const suggestionList = (): Occ.SuggestionList => {\n  return {\n    suggestions: new Array(faker.number.int(10)).fill(null).map(() => createSuggestion()),\n  };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createAddress } from '../account';\nimport { countryList, createCountry } from '../general';\nimport { image } from '../media';\n\nexport const createStoreCount = (additionalData?: Occ.StoreCount): Occ.StoreCount => {\n  return {\n    count: faker.number.int({ min: 1, max: 15 }),\n    isoCode: faker.location.countryCode(),\n    name: faker.location.country(),\n    type: 'COUNTRY',\n    ...additionalData,\n  };\n};\n\nexport const storesAndRegionsStoreCount = (): Occ.StoreCountList => {\n  return {\n    countriesAndRegionsStoreCount: countryList().countries?.map((country) =>\n      createStoreCount({ isoCode: country.isocode, name: country.name })\n    ),\n  };\n};\n\nexport const createTime = (additionalData?: Occ.Time): Occ.Time => {\n  const date = faker.date.future();\n\n  return {\n    formattedHour: `${date.getHours()}:${date.getMinutes()} Uhr`,\n    hour: date.getHours(),\n    minute: date.getMinutes(),\n    ...additionalData,\n  };\n};\n\nexport const createSpecialOpeningDay = (additionalData?: Occ.SpecialOpeningDay): Occ.SpecialOpeningDay => {\n  const date = faker.date.future();\n\n  return {\n    closed: faker.datatype.boolean(),\n    closingTime: createTime(),\n    comment: faker.lorem.sentences(2),\n    date,\n    formattedDate: date.toDateString(),\n    name: faker.lorem.words(3),\n    openingTime: createTime(),\n    ...additionalData,\n  };\n};\n\nexport const createWeekdayOpeningDay = (additionalData?: Occ.WeekdayOpeningDay): Occ.WeekdayOpeningDay => {\n  return {\n    closed: faker.datatype.boolean(),\n    closingTime: createTime(),\n    openingTime: createTime(),\n    weekDay: faker.date.weekday(),\n    ...additionalData,\n  };\n};\n\nexport const createOpeningSchedule = (additionalData?: Occ.OpeningSchedule): Occ.OpeningSchedule => {\n  return {\n    code: faker.string.uuid(),\n    name: faker.lorem.words(3),\n    specialDayOpeningList: [createSpecialOpeningDay(), createSpecialOpeningDay()],\n    weekDayOpeningList: [\n      createWeekdayOpeningDay({ weekDay: 'Mo' }),\n      createWeekdayOpeningDay({ weekDay: 'Di' }),\n      createWeekdayOpeningDay({ weekDay: 'Mi' }),\n      createWeekdayOpeningDay({ weekDay: 'Do' }),\n      createWeekdayOpeningDay({ weekDay: 'Fr' }),\n      createWeekdayOpeningDay({ weekDay: 'Sa', closed: true }),\n      createWeekdayOpeningDay({ weekDay: 'So', closed: true }),\n    ],\n    ...additionalData,\n  };\n};\n\nexport const createPointOfService = (additionalData?: Occ.PointOfService): Occ.PointOfService => {\n  const distanceKm = faker.number.int({ min: 1, max: 9999 });\n\n  return {\n    address: createAddress(),\n    description: faker.lorem.sentences(3),\n    displayName: faker.company.name(),\n    distanceKm,\n    features: undefined,\n    formattedDistance: `${distanceKm}km`,\n    geoPoint: {\n      latitude: faker.location.latitude(),\n      longitude: faker.location.longitude(),\n    },\n    mapIcon: image(),\n    name: faker.company.name(),\n    openingHours: createOpeningSchedule(),\n    storeContent: '',\n    storeImages: [image(), image(), image()],\n    url: faker.internet.url(),\n    ...additionalData,\n  };\n};\n\nexport const storeFinderSearchPage = (additionalData?: Occ.StoreFinderSearchPage): Occ.StoreFinderSearchPage => {\n  const storesCount = storesAndRegionsStoreCount().countriesAndRegionsStoreCount;\n  const stores: Occ.PointOfService[] = [];\n\n  storesCount?.forEach((storeCount) => {\n    const pointOfServicesForCountry = new Array(storeCount.count).fill(null).map(() => {\n      return createPointOfService({\n        address: createAddress({ country: createCountry({ isocode: storeCount.isoCode, name: storeCount.name }) }),\n      });\n    });\n\n    stores.push(...pointOfServicesForCountry);\n  });\n\n  return {\n    pagination: {\n      currentPage: 0,\n      pageSize: -1,\n      sort: 'asc',\n      totalPages: -88,\n      totalResults: 88,\n    },\n    stores,\n    ...additionalData,\n  };\n};\n","import { TranslationResources } from '@spartacus/core';\nimport { MockConfig } from '../../types';\n\nconst translationResources = (config: MockConfig): TranslationResources => {\n  return {\n    // apply custom translations potentially provided by the developer\n    ...config.translations,\n\n    // apply english custom translations\n    en: {\n      ...((config.translations && config.translations['en']) || {}),\n    },\n  };\n};\n\nexport const translationsForNamespace = (language: string, namespace: string, config: MockConfig) => {\n  // return the requested namespace for the requested language, or the requested namespace for the default language\n  return (\n    (translationResources(config)[language] && translationResources(config)[language][namespace]) ??\n    translationResources(config)['en'][namespace]\n  );\n};\n\n/**\n * Shows if the given item is of type object.\n */\nfunction isObject(item: any): boolean {\n  return item && typeof item === 'object' && !Array.isArray(item);\n}\n\n/**\n * Deep merges the translation chunks that allows to only overwrite certain translation keys.\n *\n * @param defaultChunk Default Core Translation Chunk\n * @param customChunk Custom Translations (All Chunks)\n */\nexport function mergeDeep(defaultChunk: object, customChunk: object): object {\n  let output: { [key: string]: any } = Object.assign({}, defaultChunk);\n\n  if (isObject(defaultChunk) && isObject(customChunk)) {\n    Object.keys(customChunk).forEach((key: string) => {\n      if (isObject(customChunk[key as keyof typeof customChunk])) {\n        if (key in defaultChunk) {\n          output[key] = mergeDeep(\n            defaultChunk[key as keyof typeof defaultChunk],\n            customChunk[key as keyof typeof customChunk]\n          );\n        }\n      } else {\n        Object.assign(output, { [key]: customChunk[key as keyof typeof customChunk] });\n      }\n    });\n  }\n\n  return output;\n}\n","import { PathParams } from 'msw';\n\nexport const readUrlParams = (params: PathParams<string>, paramName: string): string => {\n  return (params[paramName] as string) || '';\n};\n\nexport const readSearchParams = (request: Request, param: string): string | undefined => {\n  // Construct a URL instance out of the intercepted request.\n  const url = new URL(request.url);\n\n  // Read the \"param\" URL query parameter using the \"URLSearchParams\" API.\n  return url.searchParams.get(param) || undefined;\n};\n","import { HttpResponse } from 'msw';\n\nexport function redirect(destination: string, statusCode: number) {\n  return new HttpResponse(null, {\n    status: statusCode,\n    headers: {\n      Location: destination,\n    },\n  });\n}\n","import { http, HttpHandler, HttpResponse } from 'msw';\nimport {\n  consentTemplateList,\n  consentTemplatesHead,\n  consentTemplatesOptions,\n  createAddress,\n  createConsentTemplate,\n  createUser,\n  savedCartResult,\n} from '../mock-data';\nimport { readSearchParams, readUrlParams } from '../utils';\n\nexport const getAccountHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.patch(routes.restoreSavedCart, ({ params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const userId = readUrlParams(params, 'userId');\n\n      return HttpResponse.json(savedCartResult(cartId, userId));\n    }),\n    http.post(routes.cloneSavedCart, ({ request, params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const userId = readUrlParams(params, 'userId');\n      const name = readSearchParams(request, 'name');\n\n      return HttpResponse.json(savedCartResult(cartId, userId, name));\n    }),\n    http.get(routes.savedCart, ({ params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const userId = readUrlParams(params, 'userId');\n\n      return HttpResponse.json(savedCartResult(cartId, userId));\n    }),\n    http.patch(routes.addressDetail, () => {\n      return HttpResponse.json({});\n    }),\n    http.delete(routes.addressDetail, () => {\n      return HttpResponse.json({});\n    }),\n    http.post(routes.addresses, () => {\n      return HttpResponse.json(createAddress(), { status: 201 });\n    }),\n    http.delete(routes.paymentDetail, () => {\n      return HttpResponse.json({});\n    }),\n    http.patch(routes.users, () => {\n      return HttpResponse.json(createUser());\n    }),\n    http.put(routes.userUpdatePassword, () => {\n      return HttpResponse.json({});\n    }),\n    http.put(routes.userUpdateLoginId, () => {\n      return HttpResponse.json({});\n    }),\n    http.delete(routes.consentDetail, () => {\n      return HttpResponse.json({});\n    }),\n    http.post<{}, { consentTemplateId: string }>(routes.consents, async ({ request, params }) => {\n      const user = readUrlParams(params, 'user');\n\n      const { consentTemplateId } = await request.json();\n\n      return HttpResponse.json(createConsentTemplate(user, consentTemplateId));\n    }),\n    http.options(routes.anonymousConsentTemplates, () => {\n      // eslint-disable-next-line  no-console\n      console.log('options call for anonymous consent templates');\n      return new Response(null, consentTemplatesOptions());\n    }),\n    http.head(routes.anonymousConsentTemplates, () => {\n      // eslint-disable-next-line  no-console\n      console.log('head call for anonymous consent templates');\n      return new Response(null, consentTemplatesHead());\n    }),\n    http.get(routes.anonymousConsentTemplates, () => {\n      return HttpResponse.json(consentTemplateList('anonymous'));\n    }),\n    http.delete(routes.users, () => {\n      return HttpResponse.json({});\n    }),\n    http.patch(routes.notificationPreference, () => {\n      return HttpResponse.json({});\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport {\n  baseSites,\n  consentTemplateList,\n  countryList,\n  currencyList,\n  languageList,\n  regionList,\n  titleList,\n  translationsForNamespace,\n} from '../mock-data';\nimport { MockConfig } from '../types';\nimport { readUrlParams } from '../utils';\n\nexport const getBaseHandlers = (routes: any, config: MockConfig): HttpHandler[] => {\n  return [\n    http.get(routes.baseSites, () => {\n      return HttpResponse.json(baseSites());\n    }),\n\n    http.get(routes.languages, () => {\n      return HttpResponse.json(languageList());\n    }),\n\n    http.get(routes.currencies, () => {\n      return HttpResponse.json(currencyList());\n    }),\n\n    http.get(routes.titles, () => {\n      return HttpResponse.json(titleList());\n    }),\n\n    http.get(routes.countries, () => {\n      return HttpResponse.json(countryList());\n    }),\n\n    http.get(routes.regions, () => {\n      return HttpResponse.json(regionList());\n    }),\n\n    http.get(routes.consentTemplates, ({ params }) => {\n      const user = readUrlParams(params, 'user');\n      return HttpResponse.json(consentTemplateList(user));\n    }),\n\n    // custom call to return the translation files\n    http.get(routes.i18n, ({ params }) => {\n      const language = readUrlParams(params, 'language');\n      const namespace = readUrlParams(params, 'namespace');\n\n      return HttpResponse.json(translationsForNamespace(language, namespace, config));\n    }),\n  ];\n};\n","import { Occ } from '@spartacus/core';\nimport { createAddress } from '../account';\nimport { DEFAULT_PAYMENT_ID, createPaymentDetails } from '../account';\nimport { createDeliveryMode } from './delivery-mode';\n\nexport const getCheckoutDetails = (additionalData?: Occ.Cart): Occ.Cart => {\n  return {\n    deliveryAddress: createAddress(),\n    deliveryMode: createDeliveryMode({\n      code: 'standard-gross',\n      description: '3-5 business days',\n      name: 'Standard Delivery',\n    }),\n    paymentInfo: createPaymentDetails({\n      defaultPayment: true,\n      id: DEFAULT_PAYMENT_ID,\n    }),\n    ...additionalData,\n  };\n};\n\nexport const getDeliveryModes = (): Occ.DeliveryModeList => {\n  return {\n    deliveryModes: [\n      createDeliveryMode({ code: 'standard', name: 'Standard Delivery' }),\n      createDeliveryMode({ code: 'premium', name: 'Premium Delivery' }),\n      createDeliveryMode({ code: 'express', name: 'Express Delivery' }),\n    ],\n  };\n};\n\nexport const getCardTypes = (): Occ.CardTypeList => {\n  return {\n    cardTypes: [\n      {\n        code: 'amex',\n        name: 'American Express',\n      },\n      {\n        code: 'maestro',\n        name: 'Maestro',\n      },\n      {\n        code: 'switch',\n        name: 'Switch',\n      },\n      {\n        code: 'visa',\n        name: 'Visa',\n      },\n      {\n        code: 'master',\n        name: 'Mastercard',\n      },\n      {\n        code: 'mastercard_eurocard',\n        name: 'Mastercard/Eurocard',\n      },\n      {\n        code: 'diners',\n        name: \"Diner's Club\",\n      },\n    ],\n  };\n};\n","import { http, HttpHandler, HttpResponse } from 'msw';\nimport { LocalStorageService } from '../local-storage';\nimport { addVoucher, deleteVoucher } from '../mock-data';\nimport {\n  addToCart,\n  CartUserType,\n  deleteCart,\n  getCart,\n  getCarts,\n  getUserTypeById,\n  removeEntries,\n  setGuestCheckout,\n  updateEntries,\n} from '../mock-data/commerce/cart';\nimport { getCheckoutDetails } from '../mock-data/commerce/checkout';\nimport { readSearchParams, readUrlParams } from '../utils';\n\nexport const getCartHandlers = (routes: any, localStorageService: LocalStorageService): HttpHandler[] => {\n  return [\n    // cart call to return the cart details for a cart containing products\n    http.get(routes.cart, ({ request, params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const userId = readUrlParams(params, 'userId');\n      const requestFields = readSearchParams(request, 'fields');\n\n      if (requestFields && requestFields.indexOf('deliveryAddress') > -1) {\n        return HttpResponse.json(getCheckoutDetails(), { status: 201 });\n      } else {\n        return HttpResponse.json(getCart(cartId, getUserTypeById(userId)), { status: 201 });\n      }\n    }),\n\n    // cart call to return multiple carts for normal cart, wishlist and saved cart\n    http.get(routes.carts, ({ params }) => {\n      const userId = readUrlParams(params, 'userId');\n\n      return HttpResponse.json(getCarts(getUserTypeById(userId)));\n    }),\n\n    // post call to get either cart data for the different scopes\n    http.post(routes.carts, ({ request, params }) => {\n      const userId = readUrlParams(params, 'userId');\n      let cartId = '';\n\n      // oldCartId is only present if the call is done after login to merge the anonymous cart with the user cart\n      const oldCartId = readSearchParams(request, 'oldCartId');\n\n      if (oldCartId) {\n        cartId = '8e2cb9e8-406e-4746-a398-f663a88730f3';\n      }\n\n      return HttpResponse.json(getCart(cartId, getUserTypeById(userId)), { status: 201 });\n    }),\n\n    // patch call to save a cart\n    http.patch(routes.cart, ({ params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const userId = readUrlParams(params, 'userId');\n\n      return HttpResponse.json({ savedCartData: getCart(cartId, getUserTypeById(userId)) });\n    }),\n\n    // cart post call to add entries to the cart\n    http.post<{}, { quantity: number; product: { code: string } }>(routes.addEntries, async ({ request }) => {\n      const { quantity, product } = await request.json();\n\n      return HttpResponse.json(addToCart(product, quantity), { status: 201 });\n    }),\n\n    // cart patch call to update entries in the cart\n    http.patch<{}, { quantity: number }>(routes.updateEntries, async ({ request, params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const entryNumber = parseInt(readUrlParams(params, 'entryNumber'));\n      const { quantity } = await request.json();\n\n      return HttpResponse.json(updateEntries(cartId, entryNumber, quantity));\n    }),\n\n    // cart delete call to update entries in the cart\n    http.delete(routes.removeEntries, ({ params }) => {\n      const cartId = readUrlParams(params, 'cartId');\n      const entryNumber = parseInt(readUrlParams(params, 'entryNumber'));\n\n      removeEntries(cartId, entryNumber);\n      return HttpResponse.json({});\n    }),\n\n    http.delete(routes.deleteCart, async () => {\n      deleteCart();\n\n      return HttpResponse.json({}, { status: 201 });\n    }),\n\n    http.put(routes.addEmail, () => {\n      setGuestCheckout(true);\n\n      return HttpResponse.json({});\n    }),\n\n    // cart save call which is done, if the currently loggedIn user does not have a wishlist cart\n    http.patch(routes.saveCart, ({ request }) => {\n      const name = readSearchParams(request, 'saveCartName');\n      const description = readSearchParams(request, 'saveCartDescription');\n\n      // Clears the active cart\n      setTimeout(() => localStorageService.updateLocalStorage('activeCartEntries', []));\n\n      return HttpResponse.json(\n        {\n          savedCartData: {\n            ...getCart('', CartUserType.OCC_USER_ID_CURRENT),\n            name,\n            description,\n          },\n        },\n        { status: 201 }\n      );\n    }),\n\n    http.post(routes.cartVoucher, ({ request }) => {\n      const voucherId = readSearchParams(request, 'voucherId');\n\n      addVoucher(voucherId || '');\n      return HttpResponse.json({});\n    }),\n\n    http.delete(routes.cartVoucherRemove, ({ params }) => {\n      const voucherCode = readUrlParams(params, 'voucherCode');\n\n      deleteVoucher(voucherCode);\n      return HttpResponse.json({});\n    }),\n\n    http.post(routes.validate, () => {\n      return HttpResponse.json({\n        cartModifications: [],\n      });\n    }),\n  ];\n};\n","import { Occ } from '@spartacus/core';\nimport { createUser } from '../auth';\nimport { getDeliveryModes } from './checkout';\n\nimport User = Occ.User;\n\nexport const getPaymentSopRequest = (): object => {\n  const userData: User = createUser();\n\n  return {\n    mappingLabels: {\n      entry: [\n        {\n          key: 'hybris_billTo_country',\n          value: 'billTo_country',\n        },\n        {\n          key: 'hybris_card_expiration_year',\n          value: 'card_expirationYear',\n        },\n        {\n          key: 'hybris_combined_expiry_date',\n          value: 'false',\n        },\n        {\n          key: 'hybris_sop_decision',\n          value: 'decision',\n        },\n        {\n          key: 'hybris_card_expiry_date',\n          value: 'card_expirationDate',\n        },\n        {\n          key: 'hybris_card_expiration_month',\n          value: 'card_expirationMonth',\n        },\n        {\n          key: 'hybris_billTo_street1',\n          value: 'billTo_street1',\n        },\n        {\n          key: 'hybris_sop_card_number',\n          value: 'card_accountNumber',\n        },\n        {\n          key: 'hybris_sop_uses_public_signature',\n          value: 'true',\n        },\n        {\n          key: 'hybris_card_cvn',\n          value: 'card_cvNumber',\n        },\n        {\n          key: 'hybris_billTo_lastname',\n          value: 'billTo_lastName',\n        },\n        {\n          key: 'hybris_sop_subscriptionID',\n          value: 'paySubscriptionCreateReply_subscriptionID',\n        },\n        {\n          key: 'hybris_billTo_firstname',\n          value: 'billTo_firstName',\n        },\n        {\n          key: 'hybris_sop_amount',\n          value: 'amount',\n        },\n        {\n          key: 'hybris_sop_currency',\n          value: '',\n        },\n        {\n          key: 'hybris_card_type',\n          value: 'card_cardType',\n        },\n        {\n          key: 'hybris_sop_reason_code',\n          value: 'reasonCode',\n        },\n        {\n          key: 'hybris_sop_public_signature',\n          value: 'paySubscriptionCreateReply_subscriptionIDPublicSignature',\n        },\n        {\n          key: 'hybris_separator_expiry_date',\n          value: '',\n        },\n        {\n          key: 'hybris_account_holder_name',\n          value: 'card_nameOnCard',\n        },\n        {\n          key: 'hybris_card_number',\n          value: 'card_accountNumber',\n        },\n        {\n          key: 'hybris_billTo_phone_number',\n          value: 'billTo_phoneNumber',\n        },\n        {\n          key: 'hybris_billTo_city',\n          value: 'billTo_city',\n        },\n        {\n          key: 'hybris_billTo_region',\n          value: 'billTo_state',\n        },\n        {\n          key: 'hybris_billTo_postalcode',\n          value: 'billTo_postalCode',\n        },\n      ],\n    },\n    parameters: {\n      entry: [\n        {\n          key: 'billTo_city',\n          value: userData.defaultAddress?.town,\n        },\n        {\n          key: 'billTo_email',\n          value: userData.uid,\n        },\n        {\n          key: 'shipTo_lastName',\n          value: userData.lastName,\n        },\n        {\n          key: 'recurringSubscriptionInfo_automaticRenew',\n          value: 'false',\n        },\n        {\n          key: 'billTo_country',\n          value: userData.defaultAddress?.country?.isocode,\n        },\n        {\n          key: 'billTo_lastName',\n          value: userData.lastName,\n        },\n        {\n          key: 'billTo_street2',\n          value: userData.defaultAddress?.line2,\n        },\n        {\n          key: 'billTo_street1',\n          value: userData.defaultAddress?.line1,\n        },\n        {\n          key: 'shipTo_shippingMethod',\n          // @ts-ignore\n          value: getDeliveryModes().deliveryModes ? getDeliveryModes().deliveryModes[0].code : '',\n        },\n        {\n          key: 'orderPage_transactionType',\n          value: 'subscription',\n        },\n        {\n          key: 'orderPage_declineResponseURL',\n          value: 'sampleUrl',\n        },\n        {\n          key: 'orderPage_merchantURLPostAddress',\n          value: 'https://localhost:9002/occ/v2/electronics-spa/integration/merchant_callback',\n        },\n        {\n          key: 'shipTo_city',\n          value: userData.defaultAddress?.town,\n        },\n        {\n          key: 'recurringSubscriptionInfo_startDate',\n          value: '20230420',\n        },\n        {\n          key: 'shipTo_street1',\n          value: userData.defaultAddress?.line1,\n        },\n        {\n          key: 'shipTo_street2',\n          value: userData.defaultAddress?.line2,\n        },\n        {\n          key: 'recurringSubscriptionInfo_frequency',\n          value: 'on-demand',\n        },\n        {\n          key: 'shipTo_postalCode',\n          value: userData.defaultAddress?.postalCode,\n        },\n        {\n          key: 'currency',\n          value: userData.currency?.isocode,\n        },\n        {\n          key: 'orderPage_signaturePublic',\n          value: 'xabk2WIJBlmTHs2aHXo2DkFPwqs=',\n        },\n        {\n          key: 'shipTo_country',\n          value: userData.defaultAddress?.country?.isocode,\n        },\n        {\n          key: 'orderPage_serialNumber',\n          value: 'your_serial_number',\n        },\n        {\n          key: 'recurringSubscriptionInfo_signaturePublic',\n          value: 'oRyPUpeJAQXNr0NI72nBLgrTvYY=',\n        },\n        {\n          key: 'amount',\n          value: '0',\n        },\n        {\n          key: 'recurringSubscriptionInfo_numberOfPayments',\n          value: '0',\n        },\n        {\n          key: 'shipTo_firstName',\n          value: userData.firstName,\n        },\n        {\n          key: 'orderPage_colorScheme',\n          value: 'blue',\n        },\n        {\n          key: 'orderPage_receiptResponseURL',\n          value: 'sampleUrl',\n        },\n        {\n          key: 'billTo_postalCode',\n          value: userData.defaultAddress?.postalCode,\n        },\n        {\n          key: 'shipTo_phoneNumber',\n          value: '435345345',\n        },\n        {\n          key: 'orderPage_version',\n          value: '7',\n        },\n        {\n          key: 'billTo_firstName',\n          value: userData.firstName,\n        },\n        {\n          key: 'orderPage_timestamp',\n          value: '1682004248861',\n        },\n        {\n          key: 'orderPage_ignoreCVN',\n          value: 'true',\n        },\n        {\n          key: 'recurringSubscriptionInfo_amount',\n          value: '0',\n        },\n        {\n          key: 'merchantID',\n          value: 'your_merchant_id',\n        },\n        {\n          key: 'orderPage_cancelResponseURL',\n          value: 'sampleUrl',\n        },\n        {\n          key: 'billTo_phoneNumber',\n          value: '435345345',\n        },\n        {\n          key: 'orderPage_ignoreAVS',\n          value: 'true',\n        },\n      ],\n    },\n    postUrl: 'https://spartacus-demo.eastus.cloudapp.azure.com:8443/acceleratorservices/sop-mock/process',\n  };\n};\n","export const getPaymentSopResponse = (): string => {\n  return `<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">\n<head>\n  <title>Mocked Silent Order Post Page</title>\n  <script type=\"text/javascript\" src=\"/acceleratorservices/ruxitagentjs_ICA27NVfgqrtux_10259230120101641.js\"\n          data-dtconfig=\"uam=1|app=ea7c4b59f27d43eb|coo=1|featureHash=ICA27NVfgqrtux|vcv=2|rdnt=1|uxrgce=1|bp=3|cuc=v4dqk9v4|mel=100000|dpvc=1|ssv=4|lastModification=1682307295881|dtVersion=10259230120101641|tp=500,50,0,1|uxdcw=1500|agentUri=/acceleratorservices/ruxitagentjs_ICA27NVfgqrtux_10259230120101641.js|reportUrl=/acceleratorservices/rb_e40d9fff-34a6-4838-bd6f-5bc4d6171fbc|rid=RID_590245385|rpid=1919382042|domain=azure.com\"></script>\n  <link rel=\"shortcut icon\" href=\"/acceleratorservices/_ui/hop-mock/images/favicon.ico\" type=\"image/x-icon\" />\n  <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/acceleratorservices/_ui/hop-mock/css/common.css\" />\n</head>\n<body onload=\"document.silentOrderPostForm.submit()\">\n<div id=\"mockwrapper\">\n  <div id=\"mockpage\">\n    <div id=\"mockHeader\">\n      <div class=\"logo\">\n        <img alt=\"logo\" src=\"/acceleratorservices/_ui/hop-mock/images/logo.png\" />\n      </div>\n    </div>\n    <div style=\"clear: both;\"></div>\n    <div id=\"item_container_holder\">\n      <div class=\"item_container\">\n        <div id=\"debugWelcome\">\n          <h3>\n            <img src=\"/acceleratorservices/_ui/hop-mock/images/spinner.gif\" alt=\"image spinner\" />&nbsp;\n            Please wait while we transfer you</h3>\n        </div>\n      </div>\n      <div class=\"item_container\">\n        <form id=\"silentOrderPostForm\" name=\"silentOrderPostForm\" action=\"javascript:false;\" method=\"post\">\n          <div id=\"postFormItems\">\n            <dl>\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_automaticRenew\"\n                     name=\"recurringSubscriptionInfo_automaticRenew\" value=\"false\" />\n              <input type=\"hidden\" id=\"billTo_lastName\" name=\"billTo_lastName\" value=\"Muster\" />\n              <input type=\"hidden\" id=\"billTo_street2\" name=\"billTo_street2\" value=\"1\" />\n              <input type=\"hidden\" id=\"ccAuthReply_cvCode\" name=\"ccAuthReply_cvCode\" value=\"M\" />\n              <input type=\"hidden\" id=\"billTo_street1\" name=\"billTo_street1\" value=\"Musterstrasse 1\" />\n              <input type=\"hidden\" id=\"shipTo_shippingMethod\" name=\"shipTo_shippingMethod\" value=\"standard\" />\n              <input type=\"hidden\" id=\"orderPage_declineResponseURL\" name=\"orderPage_declineResponseURL\"\n                     value=\"sampleUrl\" />\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_startDate\" name=\"recurringSubscriptionInfo_startDate\"\n                     value=\"20230420\" />\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_frequency\" name=\"recurringSubscriptionInfo_frequency\"\n                     value=\"on-demand\" />\n              <input type=\"hidden\" id=\"shipTo_postalCode\" name=\"shipTo_postalCode\" value=\"1234\" />\n              <input type=\"hidden\" id=\"orderPage_signaturePublic\" name=\"orderPage_signaturePublic\"\n                     value=\"xabk2WIJBlmTHs2aHXo2DkFPwqs=\" />\n              <input type=\"hidden\" id=\"shipTo_country\" name=\"shipTo_country\" value=\"CH\" />\n              <input type=\"hidden\" id=\"card_accountNumber\" name=\"card_accountNumber\" value=\"************1111\" />\n              <input type=\"hidden\" id=\"orderPage_serialNumber\" name=\"orderPage_serialNumber\"\n                     value=\"your_serial_number\" />\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_signaturePublic\"\n                     name=\"recurringSubscriptionInfo_signaturePublic\" value=\"oRyPUpeJAQXNr0NI72nBLgrTvYY=\" />\n              <input type=\"hidden\" id=\"card_nameOnCard\" name=\"card_nameOnCard\" value=\"Hans Muster\" />\n              <input type=\"hidden\" id=\"shipTo_phoneNumber\" name=\"shipTo_phoneNumber\" value=\"435345345\" />\n              <input type=\"hidden\" id=\"orderPage_ignoreCVN\" name=\"orderPage_ignoreCVN\" value=\"true\" />\n              <input type=\"hidden\" id=\"card_expirationMonth\" name=\"card_expirationMonth\" value=\"04\" />\n              <input type=\"hidden\" id=\"orderPage_cancelResponseURL\" name=\"orderPage_cancelResponseURL\"\n                     value=\"sampleUrl\" />\n              <input type=\"hidden\" id=\"orderPage_ignoreAVS\" name=\"orderPage_ignoreAVS\" value=\"true\" />\n              <input type=\"hidden\" id=\"billTo_city\" name=\"billTo_city\" value=\"Musterstadt\" />\n              <input type=\"hidden\" id=\"billTo_email\" name=\"billTo_email\" value=\"hans.muster@gmail.com\" />\n              <input type=\"hidden\" id=\"shipTo_lastName\" name=\"shipTo_lastName\" value=\"Muster\" />\n              <input type=\"hidden\" id=\"decision_publicSignature\" name=\"decision_publicSignature\"\n                     value=\"mEhlMRLCsuPimhp50ElrY94zFyc=\" />\n              <input type=\"hidden\" id=\"billTo_country\" name=\"billTo_country\" value=\"CH\" />\n              <input type=\"hidden\" id=\"orderPage_transactionType\" name=\"orderPage_transactionType\"\n                     value=\"subscription\" />\n              <input type=\"hidden\" id=\"orderPage_merchantURLPostAddress\" name=\"orderPage_merchantURLPostAddress\"\n                     value=\"https://localhost:9002/occ/v2/electronics-spa/integration/merchant_callback\" />\n              <input type=\"hidden\" id=\"card_cardType\" name=\"card_cardType\" value=\"visa\" />\n              <input type=\"hidden\" id=\"shipTo_city\" name=\"shipTo_city\" value=\"Musterstadt\" />\n              <input type=\"hidden\" id=\"shipTo_street1\" name=\"shipTo_street1\" value=\"Musterstrasse\" />\n              <input type=\"hidden\" id=\"shipTo_street2\" name=\"shipTo_street2\" value=\"1\" />\n              <input type=\"hidden\" id=\"currency\" name=\"currency\" value=\"USD\" />\n              <input type=\"hidden\" id=\"reasonCode\" name=\"reasonCode\" value=\"100\" />\n              <input type=\"hidden\" id=\"paySubscriptionCreateReply_subscriptionID\"\n                     name=\"paySubscriptionCreateReply_subscriptionID\" value=\"d7be486f-7d9d-461f-903c-70441e80ffa2\" />\n              <input type=\"hidden\" id=\"amount\" name=\"amount\" value=\"0\" />\n              <input type=\"hidden\" id=\"decision\" name=\"decision\" value=\"ACCEPT\" />\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_numberOfPayments\"\n                     name=\"recurringSubscriptionInfo_numberOfPayments\" value=\"0\" />\n              <input type=\"hidden\" id=\"shipTo_firstName\" name=\"shipTo_firstName\" value=\"Hans\" />\n              <input type=\"hidden\" id=\"orderPage_colorScheme\" name=\"orderPage_colorScheme\" value=\"blue\" />\n              <input type=\"hidden\" id=\"orderPage_receiptResponseURL\" name=\"orderPage_receiptResponseURL\"\n                     value=\"sampleUrl\" />\n              <input type=\"hidden\" id=\"billTo_postalCode\" name=\"billTo_postalCode\" value=\"1234\" />\n              <input type=\"hidden\" id=\"orderPage_version\" name=\"orderPage_version\" value=\"7\" />\n              <input type=\"hidden\" id=\"billTo_firstName\" name=\"billTo_firstName\" value=\"Hans\" />\n              <input type=\"hidden\" id=\"orderPage_timestamp\" name=\"orderPage_timestamp\" value=\"1682004248861\" />\n              <input type=\"hidden\" id=\"billTo_state\" name=\"billTo_state\" value=\"\" />\n              <input type=\"hidden\" id=\"recurringSubscriptionInfo_amount\" name=\"recurringSubscriptionInfo_amount\"\n                     value=\"0\" />\n              <input type=\"hidden\" id=\"merchantID\" name=\"merchantID\" value=\"your_merchant_id\" />\n              <input type=\"hidden\" id=\"card_expirationYear\" name=\"card_expirationYear\" value=\"2027\" />\n              <input type=\"hidden\" id=\"billTo_phoneNumber\" name=\"billTo_phoneNumber\" value=\"435345345\" />\n              <input type=\"hidden\" id=\"paySubscriptionCreateReply_subscriptionIDPublicSignature\"\n                     name=\"paySubscriptionCreateReply_subscriptionIDPublicSignature\"\n                     value=\"mjkA+UiBJyPLF0KQZLxzie0yXuc=\" />\n            </dl>\n          </div>\n        </form>\n      </div>\n    </div>\n    <div style=\"clear: both;\"></div>\n    <div id=\"footer\">\n    </div>\n  </div>\n</div>\n</body>\n</html>`;\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport { DEFAULT_PAYMENT_ID, createPaymentDetails } from '../mock-data';\nimport { getCardTypes, getDeliveryModes } from '../mock-data/commerce/checkout';\nimport { getPaymentSopRequest } from '../mock-data/commerce/payment-sop';\nimport { getPaymentSopResponse } from '../mock-data/commerce/payment-sop-response';\n\nexport const getCheckoutHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.put(routes.setDeliveryAddress, async () => {\n      return HttpResponse.json({}, { status: 201 });\n    }),\n\n    http.post(routes.createDeliveryAddress, async ({ request }) => {\n      const body = await request.json();\n      return HttpResponse.json(body, { status: 201 });\n    }),\n\n    http.delete(routes.removeDeliveryAddress, () => {\n      return HttpResponse.json({}, { status: 201 });\n    }),\n\n    http.delete(routes.deliveryMode, () => {\n      return HttpResponse.json({}, { status: 201 });\n    }),\n\n    http.put(routes.deliveryMode, () => {\n      return HttpResponse.json({}, { status: 201 });\n    }),\n\n    http.get(routes.deliveryModes, () => {\n      return HttpResponse.json(getDeliveryModes());\n    }),\n\n    http.get(routes.cardTypes, () => {\n      return HttpResponse.json(getCardTypes());\n    }),\n\n    http.get(routes.paymentProviderSubInfo, () => {\n      return HttpResponse.json(getPaymentSopRequest());\n    }),\n\n    http.post(routes.sopMockProcess, () => {\n      return HttpResponse.json(getPaymentSopResponse());\n    }),\n\n    http.post(routes.createPaymentDetails, () => {\n      return HttpResponse.json(createPaymentDetails({ defaultPayment: true, id: DEFAULT_PAYMENT_ID }));\n    }),\n\n    http.put(routes.setCartPaymentDetails, () => {\n      return HttpResponse.json({});\n    }),\n  ];\n};\n","import { http, HttpHandler, HttpResponse, passthrough } from 'msw';\nimport { Occ } from '@spartacus/core';\nimport {\n  activeTabItems,\n  components,\n  footerLinkComponents,\n  myAccountLinkComponents,\n  navMainLinkComponents,\n  PageFactoryService,\n  PageService,\n  productDetailTabComponents,\n} from '../mock-data';\nimport { MockConfig } from '../types';\nimport { readSearchParams } from '../utils';\n\nexport const getCmsPagesHandler = (\n  routes: any, // TODO change type to be something real after SAP exports the default routes config\n  pageFactoryService: PageFactoryService,\n  pageService: PageService,\n  config: MockConfig\n): HttpHandler[] => {\n  return [\n    http.get(routes.pages, ({ request }) => {\n      const pageType = readSearchParams(request, 'pageType');\n      const pageLabelOrId = readSearchParams(request, 'pageLabelOrId');\n      const productCode = readSearchParams(request, 'productCode');\n\n      // return passThrough answer if inclusionMode is enabled and pageId is not within mockedPageIds\n      if (\n        config.inclusionMode &&\n        !config.mockedPageIds?.includes(pageService.getSanitizedPageLabelOrId(pageLabelOrId || ''))\n      ) {\n        return passthrough();\n      }\n\n      const page: Occ.CMSPage | null = pageService.getMockPage(pageType, pageLabelOrId, productCode);\n\n      if (page) {\n        return HttpResponse.json(page);\n      }\n\n      // eslint-disable-next-line  no-console\n      console.error(\n        `The page with the pageLabelOrId ${pageLabelOrId} and the page type ${pageType} has not been mocked yet`\n      );\n\n      return HttpResponse.json(\n        {\n          errors: [\n            {\n              message: `The page with the pageLabelOrId ${pageLabelOrId} and the page type ${pageType} has not been mocked yet`,\n              type: 'CMSItemNotFoundError',\n            },\n          ],\n        },\n        { status: 404 }\n      );\n    }),\n  ];\n};\n\nexport const getCmsComponentsHandler = (\n  routes: any // TODO change type to be something real after SAP exports the default routes config\n): HttpHandler[] => {\n  return [\n    // additional component data call\n    http.get(routes.components, ({ request }) => {\n      const componentIds = readSearchParams(request, 'componentIds') || '';\n      const componentIdsArray = componentIds.split(',');\n\n      if (activeTabItems.some((tabUid) => componentIds.indexOf(tabUid) > -1)) {\n        return HttpResponse.json(productDetailTabComponents(componentIdsArray || []));\n      } else if (componentIds.indexOf('PersonalDetailsLink') > -1) {\n        // special call to get the MyAccount Dropdown Link components\n        return HttpResponse.json(myAccountLinkComponents(componentIdsArray || []));\n      } else if (componentIds.indexOf('nav_main_') > -1) {\n        // special call to get the Nav Main Link components\n        return HttpResponse.json(navMainLinkComponents(componentIdsArray || []));\n      } else if (componentIds.indexOf('footer_') > -1) {\n        // special call to get the Footer Link components\n        return HttpResponse.json(footerLinkComponents(componentIdsArray || []));\n      } else {\n        // general call to get the Main Navigation Link components\n        return HttpResponse.json(components(componentIdsArray || []));\n      }\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport { createOrder, createOrderHistory } from '../mock-data';\nimport { getOrders } from '../mock-data';\nimport {\n  CartUserType,\n  deleteCart,\n  getCarts,\n  getUserForCart,\n  getUserTypeById,\n  setGuestCheckout,\n} from '../mock-data/commerce/cart';\nimport { readUrlParams } from '../utils';\n\nexport const getOrderHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.post(routes.placeOrder, ({ request, params }) => {\n      const userId = readUrlParams(params, 'userId');\n      const responseData = createOrder({ user: getUserForCart(getUserTypeById(userId)) });\n\n      setGuestCheckout(false);\n      deleteCart();\n\n      return HttpResponse.json(responseData);\n    }),\n\n    http.get(routes.orderHistory, () => {\n      return HttpResponse.json(getOrders());\n    }),\n\n    http.get(routes.orderDetail, () => {\n      return HttpResponse.json(createOrder({ user: getUserForCart(CartUserType.OCC_USER_ID_CURRENT) }));\n    }),\n\n    /*rest.post(routes.orderReturnsSubmit, () => {\n      return HttpResponse.json(getOrderReturn());\n    }),\n\n    rest.get(routes.orderReturns, () => {\n      return HttpResponse.json(getOrderReturn());\n    }),\n\n    rest.get(routes.orderReturnsSubmit, () => {\n      return HttpResponse.json(getReturnRequestList(10));\n    }),\n\n    rest.get(routes.returnListOfOrder, ({ params }) => {\n      const orderId = readUrlParams(params, 'orderId');\n\n      return HttpResponse.json(getReturnRequestList(faker.number.int({ min: 0, max: 5 }), orderId));\n    }),*/\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport {\n  createFullProduct,\n  createReview,\n  getOrders,\n  productReferenceList,\n  productSearchPage,\n  reviewList,\n} from '../mock-data';\nimport { readSearchParams, readUrlParams } from '../utils';\n\nexport const getProductHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.get(routes.productReferences, ({ request }) => {\n      const referenceType = readSearchParams(request, 'referenceType');\n\n      return HttpResponse.json(productReferenceList({ referenceType }));\n    }),\n\n    http.get(routes.productReviews, () => {\n      return HttpResponse.json(reviewList());\n    }),\n\n    http.post(routes.productReviews, () => {\n      return HttpResponse.json(createReview());\n    }),\n\n    http.get(routes.productSearch, ({ request }) => {\n      const query = readSearchParams(request, 'query');\n      const sort = readSearchParams(request, 'sort');\n      const pageSize = parseInt(readSearchParams(request, 'pageSize') || '');\n      const currentPage = parseInt(readSearchParams(request, 'currentPage') || '');\n\n      return HttpResponse.json(\n        productSearchPage(undefined, {\n          query,\n          pageSize,\n          sort,\n          currentPage,\n        })\n      );\n    }),\n\n    // product general data call (used for product call scopes default / list / details)\n    http.get(routes.product, ({ request, params }) => {\n      const productCode = readUrlParams(params, 'productCode');\n\n      return HttpResponse.json(createFullProduct({ code: productCode }));\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport { suggestionList } from '../mock-data';\n\nexport const getSearchHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.get(routes.searchSuggestions, () => {\n      return HttpResponse.json(suggestionList());\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport {\n  createPointOfService,\n  storeFinderSearchPage,\n  storesAndRegionsStoreCount,\n} from '../mock-data/store-finder/store-finder';\n\nexport const getStoreFinderHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.get(routes.storescounts, () => {\n      return HttpResponse.json(storesAndRegionsStoreCount());\n    }),\n\n    http.get(routes.stores, () => {\n      return HttpResponse.json(storeFinderSearchPage());\n    }),\n\n    http.get(routes.store, () => {\n      return HttpResponse.json(createPointOfService());\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport { translationsForNamespace } from '../mock-data';\nimport { MockConfig } from '../types';\nimport { readUrlParams } from '../utils';\n\nexport const getTranslationHandlers = (routes: any, config: MockConfig): HttpHandler[] => {\n  return [\n    // custom call to return the translation files\n    http.get(routes.i18n, ({ params }) => {\n      const language = readUrlParams(params, 'language');\n      const namespace = readUrlParams(params, 'namespace');\n\n      return HttpResponse.json(translationsForNamespace(language, namespace, config));\n    }),\n  ];\n};\n","import { HttpHandler, HttpResponse, http } from 'msw';\nimport {\n  addressList,\n  authRevoke,\n  createAuthToken,\n  createUser,\n  customerCouponSearchResult,\n  notificationPreferenceList,\n  paymentDetailsList,\n  productInterestSearchResult,\n} from '../mock-data';\n\nexport const getUserHandlers = (routes: any): HttpHandler[] => {\n  return [\n    http.get(routes.notificationPreferences, () => {\n      return HttpResponse.json(notificationPreferenceList());\n    }),\n\n    http.get(routes.productInterests, () => {\n      return HttpResponse.json(productInterestSearchResult());\n    }),\n\n    http.get(routes.customerCoupons, () => {\n      return HttpResponse.json(customerCouponSearchResult());\n    }),\n\n    http.get(routes.addresses, () => {\n      return HttpResponse.json(addressList());\n    }),\n\n    http.get(routes.payments, () => {\n      return HttpResponse.json(paymentDetailsList());\n    }),\n\n    http.post(routes.addressVerification, () => {\n      return HttpResponse.json({ decision: 'ACCEPT' });\n    }),\n\n    // authentication call to return the user token\n    http.post(routes.authLogin, () => {\n      return HttpResponse.json(createAuthToken());\n    }),\n\n    // authentication call to revoke the user token\n    http.post(routes.authRevoke, () => {\n      return HttpResponse.json(authRevoke());\n    }),\n\n    // user call to return the user details after login\n    http.get(routes.user, () => {\n      return HttpResponse.json(createUser());\n    }),\n\n    // temp user call to return the user details after login\n    http.get(routes.userTemp, () => {\n      return HttpResponse.json(createUser());\n    }),\n\n    // user call to register a new user\n    http.post(routes.users, () => {\n      return HttpResponse.json(createUser());\n    }),\n  ];\n};\n","import { HttpHandler } from 'msw';\nimport { getDefaultRoutes } from '../defaultRoutes';\nimport { LocalStorageService } from '../local-storage';\nimport { PageFactoryService, PageService } from '../mock-data';\nimport { MockConfig } from '../types';\nimport { getAccountHandlers } from './account-handler';\nimport { getBaseHandlers } from './base-handler';\nimport { getCartHandlers } from './cart-handler';\nimport { getCheckoutHandlers } from './checkout-handler';\nimport { getCmsComponentsHandler, getCmsPagesHandler } from './cms-handler';\nimport { getOrderHandlers } from './order-handler';\nimport { getProductHandlers } from './product-handler';\nimport { getSearchHandlers } from './search-handler';\nimport { getStoreFinderHandlers } from './store-finder-handler';\nimport { getTranslationHandlers } from './translation-handler';\nimport { getUserHandlers } from './user-handler';\n\n/**\n * The HandlerService is responsible for returning all handlers for the Spartacus Mock Server.\n */\nexport class HandlerService {\n  readonly routes;\n\n  constructor(\n    protected config: MockConfig,\n    protected pageFactoryService: PageFactoryService,\n    protected pageService: PageService,\n    protected localStorageService: LocalStorageService\n  ) {\n    this.routes = getDefaultRoutes(config.environment);\n  }\n\n  getAllHandlers(): HttpHandler[] {\n    return [\n      ...getBaseHandlers(this.routes, this.config),\n      ...getUserHandlers(this.routes),\n      ...getCmsPagesHandler(this.routes, this.pageFactoryService, this.pageService, this.config),\n      ...getCmsComponentsHandler(this.routes),\n      ...getSearchHandlers(this.routes),\n      ...getProductHandlers(this.routes),\n      ...getCartHandlers(this.routes, this.localStorageService),\n      ...getCheckoutHandlers(this.routes),\n      ...getOrderHandlers(this.routes),\n      ...getAccountHandlers(this.routes),\n      ...getStoreFinderHandlers(this.routes),\n    ];\n  }\n\n  getTranslationsHandler() {\n    return [...getTranslationHandlers(this.routes, this.config)];\n  }\n\n  getPagesHandler(): HttpHandler[] {\n    return [...getCmsPagesHandler(this.routes, this.pageFactoryService, this.pageService, this.config)];\n  }\n}\n","import { LOCAL_STORAGE_KEY, LocalStorageMockData, MockConfig } from '../types';\n\n/**\n * The LocalStorageService is responsible for creating the local storage entry needed for the Spartacus Mock Server.\n */\nexport class LocalStorageService {\n  constructor(protected config: MockConfig) {\n    this.createLocalstorage(config);\n  }\n\n  /**\n   * Update the local storage entry.\n   * @param key\n   * @param value\n   */\n  public updateLocalStorage(key: string, value: any): void {\n    if (key && value) {\n      let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n      // @ts-ignore\n      mockData[key] = value;\n\n      window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n    }\n  }\n\n  /**\n   * Create the local storage entries if they do not exist yet.\n   * @param _config\n   */\n  private createLocalstorage(_config: MockConfig) {\n    let mockData = JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || '{}') as LocalStorageMockData;\n\n    if (!mockData.activeCartEntries) {\n      mockData.activeCartEntries = [];\n    }\n\n    if (!mockData.activeVouchers) {\n      mockData.activeVouchers = [];\n    }\n\n    if (!mockData.isGuestCheckout) {\n      mockData.isGuestCheckout = false;\n    }\n\n    window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(mockData));\n  }\n}\n","import { MockRequest } from '../types';\n\n/**\n * Defines the default pass through urls\n */\nexport const defaultPassThroughRequests: MockRequest[] = [\n  { url: '/electronics-spa/en/USD', requestFunction: 'get' },\n  { url: '/assets/*', requestFunction: 'get' },\n  { url: '*.woff2', requestFunction: 'get' },\n  { url: '*.woff', requestFunction: 'get' },\n  { url: '*.svg', requestFunction: 'get' },\n  { url: '*.xml', requestFunction: 'get' },\n  { url: '*.html', requestFunction: 'get' },\n  { url: '*.json', requestFunction: 'get' },\n  { url: '*.js', requestFunction: 'get' },\n  { url: '*.css', requestFunction: 'get' },\n  { url: '*.webp', requestFunction: 'get' },\n  { url: '/manifest.webmanifest', requestFunction: 'get' },\n  { url: '/favicon.ico', requestFunction: 'get' },\n  { url: '/common.js', requestFunction: 'get' },\n  { url: '*/users/anonymous/consenttemplates*', requestFunction: 'head' },\n  { url: '*.analytics.google.com/*', requestFunction: 'post' },\n  { url: 'https://www.googletagmanager.com/*', requestFunction: 'get' },\n  { url: 'https://maps.gstatic.com/*', requestFunction: 'get' },\n  { url: 'https://maps.googleapis.com/*', requestFunction: 'get' },\n  { url: 'https://fonts.googleapis.com/*', requestFunction: 'get' },\n];\n","import { MockRequest } from '../types';\nimport { defaultPassThroughRequests } from './pass-through-requests';\n\n/**\n * The PassThroughService is responsible for returning all passThrough Requests for the Spartacus Mock Server.\n */\nexport class PassThroughService {\n  constructor() {}\n\n  getPassThroughRequests(): MockRequest[] {\n    return defaultPassThroughRequests;\n  }\n}\n","import { http, passthrough, RequestHandler } from 'msw';\nimport { SetupWorker, setupWorker } from 'msw/browser';\nimport { HandlerService } from './handlers';\nimport { LocalStorageService } from './local-storage';\nimport { PageFactoryService, PageService } from './mock-data';\nimport { PassThroughService } from './pass-through';\nimport { MockConfig } from './types';\n\nfunction getWorker(config: MockConfig): SetupWorker {\n  const localStorageService = new LocalStorageService(config);\n  const pageFactoryService = new PageFactoryService(config.customSlots || []);\n  const pageService = new PageService(config, pageFactoryService);\n  const passThroughService = new PassThroughService();\n  const handlerService = new HandlerService(config, pageFactoryService, pageService, localStorageService);\n\n  const passThroughRequests = [\n    ...(config.enableDefaultData ? passThroughService.getPassThroughRequests() : []),\n    ...(config.passThroughRequests || []),\n  ];\n\n  const worker = setupWorker(\n    ...passThroughRequests.map((passThroughUrl) => {\n      return http[passThroughUrl.requestFunction](passThroughUrl.url, ({ request }) => {\n        return passthrough();\n      });\n    }),\n\n    // Custom Handlers (overwrite default handlers due to the order of spreading them into the array)\n    ...(config.handlers || []),\n\n    // Default Handlers\n    ...(config.enableDefaultData ? handlerService.getAllHandlers() : []),\n\n    // Translations Handler if custom translations are provided\n    ...(config.translations ? handlerService.getTranslationsHandler() : []),\n\n    // Pages only Handler in inclusionMode to be able to pass through pages requests which are not included in the mockedPages array\n    ...(config.inclusionMode ? handlerService.getPagesHandler() : [])\n  );\n\n  if (config.debug) {\n    worker.listHandlers().forEach((handler) => {\n      // eslint-disable-next-line  no-console\n      console.log((handler as RequestHandler).info.header);\n    });\n  }\n\n  return worker;\n}\n\nexport function prepareMock(config: MockConfig): Promise<ServiceWorkerRegistration | undefined> {\n  if (config.enableWorker) {\n    const worker = getWorker(config);\n\n    return worker.start({\n      ...(config.quiet ? { quiet: true } : {}),\n      ...(config.inclusionMode\n        ? {\n            /**\n             * unhandledRequest handler to only show warnings, if a request is part of the mockedRequests array\n             * This is used for the inclusionMode where all requests are let through per default\n             *\n             * @param request\n             * @param print\n             */\n            onUnhandledRequest(request, print) {\n              const url = new URL(request.url);\n              if (!url.pathname.includes(config.environment.backend.occ?.prefix || '')) {\n                return;\n              }\n\n              const baseSiteId = url.pathname.split('/')[3]; // pathName is /occ/v2/:baseSiteId/...\n\n              const isMockedRequest = config.mockedRequests?.some((mockedRequest) => {\n                const sanitizedUrl = mockedRequest.url.replace(/:baseSiteId/g, baseSiteId);\n                return (\n                  sanitizedUrl.endsWith(url.pathname) && request.method === mockedRequest.requestFunction.toUpperCase()\n                );\n              });\n\n              if (!isMockedRequest) {\n                return;\n              }\n\n              print.warning();\n            },\n          }\n        : {}),\n    });\n  }\n\n  return Promise.resolve(undefined);\n}\n","/*\n * Public API Surface of spartacus-mock\n */\nexport * from './lib/index';\nexport * from './lib/types';\nexport * from './lib/utils';\nexport * from './lib/defaultRoutes';\nexport * from './lib/local-storage';\nexport * from './lib/mock-data';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}