@sunrise-upc/mobile-prod-card 12.3.0 → 12.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/README.md +62 -62
  2. package/dist/esm/Analytics/AnalyticsConstants.js.map +1 -1
  3. package/dist/esm/Analytics/items.js.map +1 -1
  4. package/dist/esm/components/Accessories/Accessory-card/AccessoryCard.js +1 -1
  5. package/dist/esm/components/Accessories/Accessory-card/AccessoryCard.js.map +1 -1
  6. package/dist/esm/components/Accessories/Accessory-card/AccessoryModal.js.map +1 -1
  7. package/dist/esm/components/Accessories/AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js.map +1 -1
  8. package/dist/esm/components/Accessories/AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody.js.map +1 -1
  9. package/dist/esm/components/Accessories/DeviceCarouselComponent.js.map +1 -1
  10. package/dist/esm/components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js +1 -1
  11. package/dist/esm/components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js.map +1 -1
  12. package/dist/esm/components/Accessories/PaymentTypeTabs/PaymentTypeTabs.js.map +1 -1
  13. package/dist/esm/components/Accessories/ProgressionBar/progressionBar.js.map +1 -1
  14. package/dist/esm/components/Accessories/multiItemAccessoryStore/MultiAccessoryProvider.js.map +1 -1
  15. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryActions.js.map +1 -1
  16. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryContext.js.map +1 -1
  17. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js +1 -1
  18. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js.map +1 -1
  19. package/dist/esm/components/BenefitWrapper/BenefitValidate.js.map +1 -1
  20. package/dist/esm/components/BenefitWrapper/BenefitWrapper.js.map +1 -1
  21. package/dist/esm/components/BenefitWrapper/Benefits.js.map +1 -1
  22. package/dist/esm/components/BenefitWrapper/BenefitsValidateWrapper.js.map +1 -1
  23. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  24. package/dist/esm/components/Breadcrumb/useScrollCheck.js.map +1 -1
  25. package/dist/esm/components/CardComp/Card.js.map +1 -1
  26. package/dist/esm/components/CardEntitlement/CardEntitlement.js.map +1 -1
  27. package/dist/esm/components/CountryOverlays/CountryOverlays.js.map +1 -1
  28. package/dist/esm/components/CountryOverlays/OverlayModal.js.map +1 -1
  29. package/dist/esm/components/DeviceCardWrapper/DeviceCards/DeviceCards.js.map +1 -1
  30. package/dist/esm/components/DeviceCardWrapper/DevicePrice/DevicePrice.js.map +1 -1
  31. package/dist/esm/components/DeviceCardWrapper/DevicePriceWrapper/DevicePriceWrapper.js.map +1 -1
  32. package/dist/esm/components/Dotloader/Dotloader.js.map +1 -1
  33. package/dist/esm/components/DynamicPriceComp/DynamicPrice.js.map +1 -1
  34. package/dist/esm/components/FalconAccordionList/FalconAccordion.js.map +1 -1
  35. package/dist/esm/components/FalconAccordionList/FalconAccordionList.js.map +1 -1
  36. package/dist/esm/components/FalconButtonV2/FalconButtonV2.js.map +1 -1
  37. package/dist/esm/components/FalconDescription/FalconDescription.js.map +1 -1
  38. package/dist/esm/components/FalconMessage/FalconMessage.js.map +1 -1
  39. package/dist/esm/components/FalconTitle/FalconTitle.js.map +1 -1
  40. package/dist/esm/components/GenericMessage/GenericMessage.js.map +1 -1
  41. package/dist/esm/components/GenericPopup/GenericPopup.js.map +1 -1
  42. package/dist/esm/components/Gift/ChooseGiftV2.js.map +1 -1
  43. package/dist/esm/components/Gift/GiftConfigV2.js.map +1 -1
  44. package/dist/esm/components/GlobalDotLoader/GlobalDotLoader.css +1 -0
  45. package/dist/esm/components/GlobalDotLoader/GlobalDotLoader.js +2 -0
  46. package/dist/esm/components/GlobalDotLoader/GlobalDotLoader.js.map +1 -0
  47. package/dist/esm/components/GlobalDotLoader/GlobalDotLoader.module.scss.js +3 -0
  48. package/dist/esm/components/GlobalDotLoader/GlobalDotLoader.module.scss.js.map +1 -0
  49. package/dist/esm/components/HeroLogin/HeroLogin.css +1 -1
  50. package/dist/esm/components/HeroLogin/HeroLogin.js.map +1 -1
  51. package/dist/esm/components/LineCheckV3/APIResourceConstants.js.map +1 -1
  52. package/dist/esm/components/LineCheckV3/AutoComplete.js.map +1 -1
  53. package/dist/esm/components/LineCheckV3/GenericModal.js.map +1 -1
  54. package/dist/esm/components/LineCheckV3/IndividualLineCheck.js.map +1 -1
  55. package/dist/esm/components/LineCheckV3/LineCheckInput.js.map +1 -1
  56. package/dist/esm/components/LineCheckV3/LineCheckOverlay.js.map +1 -1
  57. package/dist/esm/components/LineCheckV3/LineCheckV3.js.map +1 -1
  58. package/dist/esm/components/LineCheckV3/LinecheckModal.js.map +1 -1
  59. package/dist/esm/components/LineCheckV3/LinecheckService.js.map +1 -1
  60. package/dist/esm/components/LineCheckV3/Success.js.map +1 -1
  61. package/dist/esm/components/LineCheckV3/api-constants.js.map +1 -1
  62. package/dist/esm/components/NewLineCheck/AdvanceSearch.js.map +1 -1
  63. package/dist/esm/components/NewLineCheck/CheckCoverage.js.map +1 -1
  64. package/dist/esm/components/NewLineCheck/CoverCheckWrapper.js.map +1 -1
  65. package/dist/esm/components/NewLineCheck/CoverageCheckModal.js.map +1 -1
  66. package/dist/esm/components/NewLineCheck/CoverageCheckUtils.js.map +1 -1
  67. package/dist/esm/components/NewLineCheck/GenericModal.js.map +1 -1
  68. package/dist/esm/components/NewLineCheck/LocationFinder.js.map +1 -1
  69. package/dist/esm/components/NewLineCheck/NewLCInput.js.map +1 -1
  70. package/dist/esm/components/NewLineCheck/SuccessCoverage.js.map +1 -1
  71. package/dist/esm/components/NotificationToast/NotificationToast.js.map +1 -1
  72. package/dist/esm/components/OttMiniSummaryCard/OttMiniSummaryCard.js.map +1 -1
  73. package/dist/esm/components/PretoPost/PreToPostSubsPopup.js.map +1 -1
  74. package/dist/esm/components/ProductDetailsComp/ProductDetails.js.map +1 -1
  75. package/dist/esm/components/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  76. package/dist/esm/components/ProductDetailsV3/BenefitsSectionV3.js.map +1 -1
  77. package/dist/esm/components/ProductDetailsV3/CashBackV2/CashbackV2.js.map +1 -1
  78. package/dist/esm/components/ProductDetailsV3/ChooseGiftV2.js.map +1 -1
  79. package/dist/esm/components/ProductDetailsV3/GiftConfigV2.js.map +1 -1
  80. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  81. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsV2.js.map +1 -1
  82. package/dist/esm/components/ProductDetailsV3/ProductEntitlement.js.map +1 -1
  83. package/dist/esm/components/ProductDetailsV3/ProductPriceV3.js.map +1 -1
  84. package/dist/esm/components/ProductDetailsV3/ReactInputSelectV2/ReactInputSelectV2.js.map +1 -1
  85. package/dist/esm/components/ProductDetailsV3/tv/EntertainmentOptionsV2/EntertainmentOptionsV2.js.map +1 -1
  86. package/dist/esm/components/ProductDetailsV3/tv/TVChannelOfferV2.js.map +1 -1
  87. package/dist/esm/components/ProductTeaser/ProductTeaser.js.map +1 -1
  88. package/dist/esm/components/ProductTeaser/ProductTeaserSlides.js.map +1 -1
  89. package/dist/esm/components/ProgressionBar/ProgressionBar.js.map +1 -1
  90. package/dist/esm/components/ReactInputSelect/ReactInputSelect.js.map +1 -1
  91. package/dist/esm/components/RecommendedOptions/RecommendedOptions.js.map +1 -1
  92. package/dist/esm/components/RecommendedOptions/RecommendedOptionsUtils.js.map +1 -1
  93. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ItemsCounter.js.map +1 -1
  94. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceDetailSection.js.map +1 -1
  95. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceOptionCard.js.map +1 -1
  96. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionLoader.js.map +1 -1
  97. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionPrice/ServiceOptionPrice.js.map +1 -1
  98. package/dist/esm/components/ResponsiveRow/row.js.map +1 -1
  99. package/dist/esm/components/SkeletonLoader/SkeletonLoader.js.map +1 -1
  100. package/dist/esm/components/Spacer/Spacer.js.map +1 -1
  101. package/dist/esm/components/StaticLineTable/CheckoutButton.js.map +1 -1
  102. package/dist/esm/components/StaticLineTable/DynamicPriceSection.js.map +1 -1
  103. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionCards.js.map +1 -1
  104. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionModal.js.map +1 -1
  105. package/dist/esm/components/StaticLineTable/LineTableCarousel.js.map +1 -1
  106. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsLoader/OttServiceOptionsLoader.js.map +1 -1
  107. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsModal.js.map +1 -1
  108. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsPopup.js.map +1 -1
  109. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js.map +1 -1
  110. package/dist/esm/components/StaticLineTable/Product.utils.js +1 -1
  111. package/dist/esm/components/StaticLineTable/Product.utils.js.map +1 -1
  112. package/dist/esm/components/StaticLineTable/ProductCardBadgeProvider.js.map +1 -1
  113. package/dist/esm/components/StaticLineTable/StaticBenefit.js.map +1 -1
  114. package/dist/esm/components/StaticLineTable/StaticExclusiveBenefit.js.map +1 -1
  115. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js.map +1 -1
  116. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/util.js.map +1 -1
  117. package/dist/esm/components/StaticLineTable/StaticLineTable.js.map +1 -1
  118. package/dist/esm/components/StaticLineTable/StaticLineTableStore/StaticLineTableProvider.js.map +1 -1
  119. package/dist/esm/components/StaticLineTable/StaticProduct.js +1 -1
  120. package/dist/esm/components/StaticLineTable/StaticProduct.js.map +1 -1
  121. package/dist/esm/components/StaticLineTable/StaticProductCashback.js.map +1 -1
  122. package/dist/esm/components/StaticLineTable/StaticProductContainer.js.map +1 -1
  123. package/dist/esm/components/StaticLineTable/StaticProductDetails.js.map +1 -1
  124. package/dist/esm/components/StaticLineTable/StaticProductDetailsModal.js.map +1 -1
  125. package/dist/esm/components/StaticLineTable/StaticProductEntitlement.js.map +1 -1
  126. package/dist/esm/components/StaticLineTable/TVChannelModal.js.map +1 -1
  127. package/dist/esm/components/StaticLineTable/TvOptionsContainer.js.map +1 -1
  128. package/dist/esm/components/StaticLineTable/WorldPassPopup.js.map +1 -1
  129. package/dist/esm/components/StaticPriceComp/StaticPriceComp.js.map +1 -1
  130. package/dist/esm/components/StickyBottomSheet/StickyBottomSheet.js.map +1 -1
  131. package/dist/esm/components/StickyProductAnchor/StickyProductAnchor.js.map +1 -1
  132. package/dist/esm/components/Table/table.js.map +1 -1
  133. package/dist/esm/components/ToolTip/ToolTip.js.map +1 -1
  134. package/dist/esm/components/UltimateBundleLinetable/DpDetailsModal/DpDetailsModal.js.map +1 -1
  135. package/dist/esm/components/UltimateBundleLinetable/DpLinetableContainer.js.map +1 -1
  136. package/dist/esm/components/UltimateBundleLinetable/DpProduct.js.map +1 -1
  137. package/dist/esm/components/UltimateBundleLinetable/DpTabContainer.js.map +1 -1
  138. package/dist/esm/components/UltimateBundleLinetable/DpTableDeviceSection/DpTableDeviceSection.js.map +1 -1
  139. package/dist/esm/components/UltimateBundleLinetable/DpTableFlexSection/DpTableFlexSection.js.map +1 -1
  140. package/dist/esm/components/UltimateBundleLinetable/DpTableMobileSection/DpTableMobileSection.js.map +1 -1
  141. package/dist/esm/components/UltimateBundleLinetable/DpTableUtils.js.map +1 -1
  142. package/dist/esm/components/UltimateBundleLinetable/checkoutRedirectionPopup/checkoutRedirectionPopup.js.map +1 -1
  143. package/dist/esm/components/UserLoggedPricesToggle/UserLoggedPricesToggle.js.map +1 -1
  144. package/dist/esm/components/button/Button.js.map +1 -1
  145. package/dist/esm/components/freshProductBanner/FreshProductDetails.js.map +1 -1
  146. package/dist/esm/components/freshProductBanner/ProductDetailsModal.js.map +1 -1
  147. package/dist/esm/components/freshProductBanner/Timer/ExpiredTimer.js.map +1 -1
  148. package/dist/esm/components/freshProductBanner/Timer/Timer.js.map +1 -1
  149. package/dist/esm/components/freshProductBanner/Timer/util.js.map +1 -1
  150. package/dist/esm/components/freshProductBanner/freshProductBanner.js.map +1 -1
  151. package/dist/esm/components/index.js +1 -1
  152. package/dist/esm/components/lineTable/BundleProductsV3.js.map +1 -1
  153. package/dist/esm/components/lineTable/LineTableV3.utils.js.map +1 -1
  154. package/dist/esm/components/lineTable/OrderButton.js.map +1 -1
  155. package/dist/esm/components/lineTable/ProductContainerV3.js.map +1 -1
  156. package/dist/esm/components/lineTable/ProductTableV3.js.map +1 -1
  157. package/dist/esm/components/lineTable/ProductV3.js.map +1 -1
  158. package/dist/esm/components/login/LoginModalV2.js.map +1 -1
  159. package/dist/esm/components/login/LoginV2.js.map +1 -1
  160. package/dist/esm/components/login/MfaPhase2/DepricatingChannels.js.map +1 -1
  161. package/dist/esm/components/login/MfaPhase2/NewNumber.js.map +1 -1
  162. package/dist/esm/components/login/MfaPhase2/OtpValidation.js.map +1 -1
  163. package/dist/esm/components/login/MfaPhase2/ResetPwdModal.js.map +1 -1
  164. package/dist/esm/components/login/ReusableLogin.css +1 -1
  165. package/dist/esm/components/richtext.js.map +1 -1
  166. package/dist/esm/components/sharedCarousel/CarouselComponent.js.map +1 -1
  167. package/dist/esm/index.js +1 -1
  168. package/dist/esm/models/Analytics/items.js.map +1 -1
  169. package/dist/esm/services/DevicePropConfig.js.map +1 -1
  170. package/dist/esm/services/DeviceService.js.map +1 -1
  171. package/dist/esm/services/LineTableBasicPropConfig.js.map +1 -1
  172. package/dist/esm/services/LineTableService.js.map +1 -1
  173. package/dist/esm/services/LinecheckBasicPropConfig.js.map +1 -1
  174. package/dist/esm/services/LoginBasicPropConfig.js.map +1 -1
  175. package/dist/esm/services/LoginServiceV2.js.map +1 -1
  176. package/dist/esm/services/MultiItemAccessories/multiItemAccessoryService.js.map +1 -1
  177. package/dist/esm/services/MultiItemAccessories/multiitemAccessoriesUpdateCartService.js.map +1 -1
  178. package/dist/esm/services/MultiItemAccessories/storyBlokService.js.map +1 -1
  179. package/dist/esm/services/ProductTeaserPropsConfig.js.map +1 -1
  180. package/dist/esm/services/ServiceOptionsPropConfig.js.map +1 -1
  181. package/dist/esm/services/StickyBottomSheetConfig.js.map +1 -1
  182. package/dist/esm/services/api-constants.js.map +1 -1
  183. package/dist/esm/utils/AnalyticsUtils.js.map +1 -1
  184. package/dist/esm/utils/DeviceUtils.js.map +1 -1
  185. package/dist/esm/utils/constants.js.map +1 -1
  186. package/dist/esm/utils/global.js.map +1 -1
  187. package/dist/esm/utils/store/card-context.js.map +1 -1
  188. package/dist/esm/utils/utils.js +1 -1
  189. package/dist/esm/utils/utils.js.map +1 -1
  190. package/dist/index.d.ts +17 -1
  191. package/package.json +88 -88
  192. package/dist/esm/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.css +0 -1
  193. package/dist/esm/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js +0 -3
  194. package/dist/esm/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\nimport React, {JSX, useEffect, useState } from 'react';\nimport Styles from './AccessoryCard.module.scss';\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\nimport Row from '../../ResponsiveRow/row';\n// import GenericImage from '../../GenericImage/GenericImage';\nimport { getCompressedImage } from '../../../utils/utils';\nimport { getCookie } from 'cookies-next';\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\nimport AccessoryModal from './AccessoryModal';\nimport RichText from '../../richtext';\nimport { viewport } from '../../../utils/utils';\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\nimport { AssetPathPropConfig } from '../../../services';\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\n\ntype AccessoryCardProps = {\n content: MultiItemAccessoriesSchema;\n tabIndex: number;\n checkingviewPort: any;\n isSubscriptionFlow: boolean;\n setAccessoriesSelected?: (accessories: any[]) => void;\n};\n\n// eslint-disable-next-line max-lines-per-function\nconst AccessoryCard = ({\n content,\n tabIndex,\n isSubscriptionFlow,\n setAccessoriesSelected\n}: AccessoryCardProps): JSX.Element => {\n const cartId = getCookie('one-commerce-cartId');\n const [show, setShow] = useState(false);\n const viewPort = viewport();\n const [showCartLimitError, setShowCartLimitError] = useState(false);\n const [pendingItem, setPendingItem] = useState<any>(null);\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\n const { store, dispatch } = useMultiAccessoryContext();\n const actions = useMultiAccessoryActions(dispatch);\n const cartActions = useMultiAccessoryUpdateCartActions();\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\n //for multiAccessory recommendation api state\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\n //check for WIN/rateplan flow\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\n const accessoriesLimit: any = {\n [ACCESSORY]: isSubscriptionFlow\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\n : +content?.accessoriesLimit,\n WATCHES: 1,\n TABLETS: 1,\n };\n const setShowMiniCart = (value: boolean) => {\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\n component: FORM,\n click_text: value ? OPEN : CLOSE\n });\n actions.setShowMiniCart(value);\n }\n\n const limitWarningText = JSON.parse(\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\n accessoriesLimit?.[store.selectedTab].toString()\n ])\n );\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\n\n // Helper function to get selection popup content based on tab type\n const getSelectionPopupContent = () => {\n return store?.selectedTab === WATCHES \n ? content?.watchesSelectionPopup?.[0] \n : content?.tabletsSelectionPopup?.[0];\n };\n\n // Helper to fire immediate per-item cart API call\n const fireImmediateCartUpdate = (item: any, action: string) => {\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\n if (cartItems.length > 0) {\n cartActions.multiItemAccessorycreateCartRequest({\n id: cartId,\n redirectUrl: '',\n skipRedirect: true,\n previousTab: store?.selectedTab,\n cartItems,\n });\n }\n };\n\n // for handling add and remove accessories from cart\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\n e.preventDefault();\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n // Item is in cart — remove it\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\n fireImmediateCartUpdate(item, REMOVE);\n } else {\n // Item not in cart — add it\n if (checkCartLimit(item, index)) {\n return;\n }\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\n fireImmediateCartUpdate(item, ADD);\n }\n };\n\n // Track analytics for CTA buttons\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\n trackViewItem(event, eventName, {\n displayName: item?.recomApiResponse?.name,\n productId: item?.recomApiResponse?.id,\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\n index: index,\n variant: item?.recomApiResponse?.variantCategory?.color,\n storage: item?.recomApiResponse?.variantCategory?.storage,\n hardwareCategory: store?.selectedTab,\n });\n }\n // create cart function call — with real-time updates, just redirect\n const multiItemAccesoryCreatecart = (e: any) => {\n e.preventDefault();\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\n if (isRetry) {\n setShow(false);\n cartActions.setupdateAccessoryCartFailure({});\n return;\n }\n\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\n component: LINK,\n click_text: CONTINUE\n });\n window.location.href = redirectUrl;\n }\n\n // close the error popup when close/cancel button is clicked\n const onCloseClick = () => {\n setShow((prevState) => !prevState);\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\n cartActions.setupdateAccessoryCartFailure({});\n }\n };\n // open the error popup when updated cart fails\n useEffect(() => {\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\n setShow((prevState) => !prevState);\n }\n }, [updateAccessoryCartFailure]);\n\n // close the cartLimit popup when close/cancel button is clicked\n const onCloseClickCartLimitPopup = () => {\n setShowCartLimitError(false);\n setPendingItem(null);\n setPendingItemIndex(0);\n };\n\n // Handle \"ClosePopup\" - just close the modal without any changes\n const handleClosePopup = (modalContent?: any) => {\n // Track close popup event\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\n component: POPUP,\n message_title: REPLACESELECTION,\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\n message_type: INFO,\n });\n onCloseClickCartLimitPopup();\n };\n // Handle \"Keep previous\" - just close the modal without any changes\n const handleKeepPrevious = () => {\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\n component: LINK,\n click_text: KEEPPREVIOUS\n });\n onCloseClickCartLimitPopup();\n };\n\n // Handle \"Replace\" - replace existing selection with new item via API\n const handleReplaceSelection = () => {\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\n component: LINK,\n click_text: REPLACE\n });\n if (!pendingItem) {\n onCloseClickCartLimitPopup();\n return;\n }\n\n // Find the first item currently in cart for this tab and remove it, then add the new one\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\n const existingCartItem = cartItems.find((item: any) => \n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\n );\n \n if (existingCartItem) {\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\n fireImmediateCartUpdate(existingCartItem, REMOVE);\n }\n\n // Add the new pending item\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\n fireImmediateCartUpdate(pendingItem, ADD);\n\n // Close the modal and clear pending item\n onCloseClickCartLimitPopup();\n };\n\n //show popup if cart limit reached\n const checkCartLimit = (item?: any, index?: number) => {\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\n setShowCartLimitError(true);\n setPendingItem(item || null);\n setPendingItemIndex(index || 0);\n return true;\n }\n return false;\n }\n //TODO: Remove checkingviewPort passing from multi-item\n\n // Handle delete from mini cart summary\n const handleDeleteFromMiniCart = async (item: any) => {\n const tabKey = item?.tabKey;\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\n // Call API directly to remove it from cart\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\n await cartActions.removeItemFromCart(cartId, item);\n }\n\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\n };\n\n // Helper function to calculate selected count for a tab\n const getTabSelectedCount = (tabKey: string) => {\n return Object.keys(cartData?.[tabKey] || {}).length;\n };\n const inTabSelected: Record<string, number> = {};\n const summaryIcons: Record<string, string> = {};\n const summaryLabels: Record<string, string> = {};\n\n (content?.recommendationType || []).map((tabKey: string) => {\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\n });\n\n /**\n * Extract name and prices from from cartData.\n * Used as fallback when the item is not present in multiItemAccessoriessList.\n */\n const getCartItemDisplayInfo = (cartItems: any[]) => {\n if (!cartItems?.length) return null;\n\n const toNumberOrZero = (value: any) => {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : 0;\n };\n\n const getCycleMonths = (cycle: any) => {\n const start = Number(cycle?.cycleStart);\n const end = Number(cycle?.cycleEnd);\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\n return (end - start) + 1;\n }\n return 1;\n };\n\n let name = '';\n let monthlyInstallment = 0;\n let oneTimePrice = 0;\n\n for (const item of cartItems) {\n if (!name) {\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\n }\n\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\n const originalInstallment = monthlyPrices\n .flatMap((p: any) => p?.additionalDetails || [])\n .find((d: any) => d?.id === 'originalInstallment')?.value;\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\n\n // Flat update-cart payloads expose prices under `item.prices`.\n const flatPrices = item?.prices || [];\n\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\n\n // Fallback for watch/tablet when recommendation response is absent:\n // compute total financed amount = recurring installments across cycles + one-time fee.\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\n }, 0) + flatPrices\n .filter((p: any) => p?.priceType === 'ONETIME')\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\n\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\n }\n\n return {\n name,\n monthlyInstallment,\n oneTimePrice,\n };\n };\n\n // Get all selected items across all tabs as a flat array with cumulative prices\n const getAllSelectedItems = () => {\n let totalOneTimePrice = 0;\n let totalMonthlyPrice = 0;\n\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\n\n // Items from recommendation list that are in cart\n const recomItems = Object.values(recomList)\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\n .map((item: any) => {\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\n return { ...item, tabKey };\n });\n\n // Cart-only items not in recommendation list\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\n .filter((id) => !recomIds.has(id))\n .map((id) => {\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\n if (!info) return null;\n totalOneTimePrice += info.oneTimePrice;\n totalMonthlyPrice += info.monthlyInstallment;\n return {\n tabKey,\n isCartOnly: true,\n recomApiResponse: {\n id,\n name: info.name,\n oneTimePrice: { base: info.oneTimePrice },\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\n },\n };\n })\n .filter(Boolean);\n\n return [...recomItems, ...cartOnlyItems];\n });\n\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\n for (const tabKey of [WATCHES, TABLETS]) {\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\n if (hasItemsInTab) {\n const rpRawPrice =\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\n 0;\n const rpParsedPrice = Number(rpRawPrice);\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\n totalMonthlyPrice += rpPrice;\n }\n }\n\n return { items, totalOneTimePrice, totalMonthlyPrice };\n };\n\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\n return (\n <>\n <Row>\n <div className={Styles.mainPage}>\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\n <DeviceCarouselComponent key={store?.selectedTab}>\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\n return (\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\n </div>}\n \n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\n <div className={Styles.esimBadge}>\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\n </div>\n )}\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\n </div>\n </div>\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\n {selectedPaymentType === CONTRACT ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\n <span className={Styles.strikedMonthlyPrice}>\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\n </span>\n )}\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\n </div>\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\n </div> :\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\n {item?.recomApiResponse?.oneTimePrice?.market && (\n <span className={Styles.strikedMonthlyPrice}>\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\n </span>\n )}\n </div>\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\n </div>\n }\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\n <><FalconButtonV2\n content={content?.removefromcartButton?.[0]}\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\n wafIdentifier={basicConfigUrl}\n disabled={loading}\n />\n </> :\n <FalconButtonV2\n content={content?.addtocartButton?.[0]}\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\n wafIdentifier={basicConfigUrl}\n disabled={loading}\n />\n }\n </div>\n )}\n </div>\n </div>\n )\n })}\n </DeviceCarouselComponent>\n\n <div className={Styles.miaFooter}>\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\n * contract/monthly flow (not one-time pay), and new subscriptions\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\n && Object.keys(recommendedAccessories || {}).length > 1\n && selectedPaymentType === CONTRACT\n && <div className={Styles.miniSummary}>\n <div className={Styles.titleRow}>\n {/**1*/}\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\n {/**2*/}\n <span className={Styles.titleIcons}>\n {(content?.recommendationType || []).map((tabKey: string) => {\n return (\n inTabSelected[tabKey] > 0 && (\n <>\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\n </>\n )\n )\n })}\n </span>\n {/**3*/}\n <div className={`fw-bold ${Styles.cartPrice}`}>\n {selectedPaymentType === CONTRACT\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\n : countZero(totalOneTimePrice)\n }\n </div>\n {/**4*/}\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\n </div>\n {showMiniCart && (\n <>\n {/* DividerComponent */}\n <div className={Styles.miniCartDivider} />\n {allSelectedItems\n .map((item: any) => (\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\n <div className={Styles.itemLine}>\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\n <div className={Styles.cartPrice}>\n {selectedPaymentType === CONTRACT\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\n }\n </div>\n <img\n className={Styles.cartDelete}\n loading='lazy'\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\n alt='delete_icon'\n onClick={() => handleDeleteFromMiniCart(item)}\n width={20}\n height={20}\n />\n </div>\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\n <div className={Styles.rpPrice}>\n {countZero(Number.isFinite(Number(\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\n 0\n ))\n ? Number(\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\n 0\n )\n : 0)}{content?.monthlyText}\n </div>\n </div>}\n {/* DividerComponent */}\n <hr className={Styles.itemDivider} />\n </div>\n ))\n }\n </>\n )\n }\n\n </div>}\n <div className={`${Styles.checkoutBtn}`}>\n {content?.proceedtocheckoutButton?.length > 0 && (\n <FalconButtonV2\n content={content.proceedtocheckoutButton[0]}\n eventAction={''}\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\n wafIdentifier={basicConfigUrl}\n disabled={loading}\n />\n )}\n </div>\n </div>\n </div>\n </Row>\n {show && <AccessoryModal\n modalState={show}\n handler={() => { onCloseClick() }}\n showFooter={false}\n height={'auto'}\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\n noCloseButton={false}\n backDrop={true}\n > <div className={`${Styles.accessoryErrorUpdate}`}>\n <RichText content={content?.errorModal?.[0]?.heading} />\n <RichText content={content?.errorModal?.[0]?.description} />\n <div className={`${Styles.accessoryErrorButtons}`}>\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\n <FalconButtonV2\n content={content?.retryButton?.[0]}\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\n metadata={undefined}\n wafIdentifier={basicConfigUrl}\n />\n </div>\n </div>\n </AccessoryModal>\n }\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\n modalState={showCartLimitError}\n handler={() => { onCloseClickCartLimitPopup() }}\n showFooter={false}\n height={'auto'}\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\n noCloseButton={false}\n backDrop={true}>\n <div className={`${Styles.accessoryErrorUpdate}`}>\n <RichText content={JSON.parse(\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\n accessoriesLimit?.[store.selectedTab].toString()\n ])\n )} />\n <RichText content={JSON.parse(\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\n accessoriesLimit?.[store.selectedTab].toString()\n ])\n )} />\n <div className={`${Styles.accessoryErrorButtons}`}>\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\n </div>\n </div>\n </AccessoryModal>}\n \n {/* Selection Limit Modal for Watches and Tablets */}\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\n const selectionContent = getSelectionPopupContent();\n // Track popup open event, limit description to 100 chars max\n // const desc = typeof selectionContent?.description === 'string'\n // ? selectionContent.description\n // : JSON.stringify(selectionContent?.description ?? '');\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\n component: POPUP,\n message_title: REPLACESELECTION,\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\n message_type: INFO\n });\n return (\n <AccessoryModal\n modalState={showCartLimitError}\n handler={() => handleClosePopup(selectionContent) }\n showFooter={false}\n height={'auto'}\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\n noCloseButton={false}\n backDrop={true}\n >\n <>\n {selectionContent?.heading && (\n <div className={Styles.modalHeading}>\n <RichText content={selectionContent.heading} />\n </div>\n )}\n \n {selectionContent?.description && (\n <div className={Styles.modalDescription}>\n <RichText content={selectionContent.description} />\n </div>\n )}\n \n <div className={Styles.modalButtons}>\n {selectionContent?.link && (\n <a \n className={Styles.factSheetLink}\n onClick={() => handleKeepPrevious()}\n >\n {selectionContent.linkText}\n </a>\n )}\n \n {selectionContent?.button?.length > 0 && (\n <FalconButtonV2\n content={selectionContent.button[0]}\n onClick={() => handleReplaceSelection()}\n metadata={undefined}\n wafIdentifier={''}\n />\n )}\n </div>\n </>\n </AccessoryModal>\n );\n })()}\n </>\n );\n}\n\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","ratePlanFlow","_b","_a","MOBILERATEPLAN","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_f","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","handleClickAddRemoveCartBtn","e","index","preventDefault","recomApiResponse","trackCTAButton","REMOVEFROMCART","REMOVE","checkCartLimit","ADD_TO_CART","ADD","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","_h","_g","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","window","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","_j","hardwareOneTimeTotal","reduce","sum","price","_m","_l","_k","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","CONTRACT","card","selectedCard","detailSection","sbStoryItem","body","displayText","heading","_o","_p","_r","_q","_t","_s","optionalText","accessoriesColorLabel","_v","_u","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","priceContainer","style","_4","_3","marketMonthlyInstallment","countZero","_5","_6","_7","_8","strikedMonthlyPrice","_9","_11","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_14","_13","strikedtotalMonthlyPrice","visibility","_15","_16","market","_18","_17","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_19","includedOptions","_20","FLEX_UPGRADE","freeFUText","flexUpgradeText","_22","_21","_24","_23","_25","_28","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_29","_30","FalconButtonV2","_31","onClick","wafIdentifier","disabled","_32","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_12","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
1
+ {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\r\nimport React, {JSX, useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport Styles from './AccessoryCard.module.scss';\r\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\r\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\r\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\r\nimport Row from '../../ResponsiveRow/row';\r\n// import GenericImage from '../../GenericImage/GenericImage';\r\nimport { getCompressedImage } from '../../../utils/utils';\r\nimport { getCookie } from 'cookies-next';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\r\nimport AccessoryModal from './AccessoryModal';\r\nimport RichText from '../../richtext';\r\nimport { viewport } from '../../../utils/utils';\r\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\r\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\nimport GlobalDotLoader from '../../GlobalDotLoader/GlobalDotLoader';\r\n\r\ntype AccessoryCardProps = {\r\n content: MultiItemAccessoriesSchema;\r\n tabIndex: number;\r\n checkingviewPort: any;\r\n isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\r\n const [successLoader, setSuccessLoader] = useState<boolean>(false);\r\n const dotLoaderData = content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n ? content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n : content?.globalDotLoader?.[0];\r\n /*the portal position for the the dotloader*/\r\n const portalPosition: any =\r\n typeof window !== 'undefined' && document.getElementById('multi-accessory-card');\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // Helper to fire immediate per-item cart API call\r\n const fireImmediateCartUpdate = (item: any, action: string) => {\r\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\r\n if (cartItems.length > 0) {\r\n cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n skipRedirect: true,\r\n previousTab: store?.selectedTab,\r\n cartItems,\r\n successLoaderData: {\r\n duration: action === ADD ? dotLoaderData?.successMsgDuration ?? '0' : '0',\r\n successLoaderCallback: setSuccessLoader\r\n }\r\n });\r\n }\r\n };\r\n\r\n // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n // Item is in cart — remove it\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n fireImmediateCartUpdate(item, REMOVE);\r\n } else {\r\n // Item not in cart — add it\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n fireImmediateCartUpdate(item, ADD);\r\n }\r\n };\r\n\r\n // Track analytics for CTA buttons\r\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\r\n trackViewItem(event, eventName, {\r\n displayName: item?.recomApiResponse?.name,\r\n productId: item?.recomApiResponse?.id,\r\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\r\n index: index,\r\n variant: item?.recomApiResponse?.variantCategory?.color,\r\n storage: item?.recomApiResponse?.variantCategory?.storage,\r\n hardwareCategory: store?.selectedTab,\r\n });\r\n }\r\n // create cart function call — with real-time updates, just redirect\r\n const multiItemAccesoryCreatecart = (e: any) => {\r\n e.preventDefault();\r\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\r\n if (isRetry) {\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n return;\r\n }\r\n\r\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n window.location.href = redirectUrl;\r\n }\r\n\r\n // close the error popup when close/cancel button is clicked\r\n const onCloseClick = () => {\r\n setShow((prevState) => !prevState);\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n };\r\n // open the error popup when updated cart fails\r\n useEffect(() => {\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n setShow((prevState) => !prevState);\r\n }\r\n }, [updateAccessoryCartFailure]);\r\n\r\n // close the cartLimit popup when close/cancel button is clicked\r\n const onCloseClickCartLimitPopup = () => {\r\n setShowCartLimitError(false);\r\n setPendingItem(null);\r\n setPendingItemIndex(0);\r\n };\r\n\r\n // Handle \"ClosePopup\" - just close the modal without any changes\r\n const handleClosePopup = (modalContent?: any) => {\r\n // Track close popup event\r\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO,\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n // Handle \"Keep previous\" - just close the modal without any changes\r\n const handleKeepPrevious = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: KEEPPREVIOUS\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n // Handle \"Replace\" - replace existing selection with new item via API\r\n const handleReplaceSelection = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: REPLACE\r\n });\r\n if (!pendingItem) {\r\n onCloseClickCartLimitPopup();\r\n return;\r\n }\r\n\r\n // Find the first item currently in cart for this tab and remove it, then add the new one\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n const existingCartItem = cartItems.find((item: any) => \r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\r\n );\r\n \r\n if (existingCartItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\r\n fireImmediateCartUpdate(existingCartItem, REMOVE);\r\n }\r\n\r\n // Add the new pending item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\r\n fireImmediateCartUpdate(pendingItem, ADD);\r\n\r\n // Close the modal and clear pending item\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n //show popup if cart limit reached\r\n const checkCartLimit = (item?: any, index?: number) => {\r\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\r\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\r\n setShowCartLimitError(true);\r\n setPendingItem(item || null);\r\n setPendingItemIndex(index || 0);\r\n return true;\r\n }\r\n return false;\r\n }\r\n //TODO: Remove checkingviewPort passing from multi-item\r\n\r\n // Handle delete from mini cart summary\r\n const handleDeleteFromMiniCart = async (item: any) => {\r\n const tabKey = item?.tabKey;\r\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n // Call API directly to remove it from cart\r\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n };\r\n\r\n // Helper function to calculate selected count for a tab\r\n const getTabSelectedCount = (tabKey: string) => {\r\n return Object.keys(cartData?.[tabKey] || {}).length;\r\n };\r\n const inTabSelected: Record<string, number> = {};\r\n const summaryIcons: Record<string, string> = {};\r\n const summaryLabels: Record<string, string> = {};\r\n\r\n (content?.recommendationType || []).map((tabKey: string) => {\r\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\r\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\r\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\r\n });\r\n\r\n /**\r\n * Extract name and prices from from cartData.\r\n * Used as fallback when the item is not present in multiItemAccessoriessList.\r\n */\r\n const getCartItemDisplayInfo = (cartItems: any[]) => {\r\n if (!cartItems?.length) return null;\r\n\r\n const toNumberOrZero = (value: any) => {\r\n const parsed = Number(value);\r\n return Number.isFinite(parsed) ? parsed : 0;\r\n };\r\n\r\n const getCycleMonths = (cycle: any) => {\r\n const start = Number(cycle?.cycleStart);\r\n const end = Number(cycle?.cycleEnd);\r\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\r\n return (end - start) + 1;\r\n }\r\n return 1;\r\n };\r\n\r\n let name = '';\r\n let monthlyInstallment = 0;\r\n let oneTimePrice = 0;\r\n\r\n for (const item of cartItems) {\r\n if (!name) {\r\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\r\n }\r\n\r\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\r\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\r\n const originalInstallment = monthlyPrices\r\n .flatMap((p: any) => p?.additionalDetails || [])\r\n .find((d: any) => d?.id === 'originalInstallment')?.value;\r\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\r\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\r\n\r\n // Flat update-cart payloads expose prices under `item.prices`.\r\n const flatPrices = item?.prices || [];\r\n\r\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\r\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\r\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\r\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\r\n\r\n // Fallback for watch/tablet when recommendation response is absent:\r\n // compute total financed amount = recurring installments across cycles + one-time fee.\r\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\r\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\r\n }, 0) + flatPrices\r\n .filter((p: any) => p?.priceType === 'ONETIME')\r\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\r\n\r\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\r\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\r\n }\r\n\r\n return {\r\n name,\r\n monthlyInstallment,\r\n oneTimePrice,\r\n };\r\n };\r\n\r\n // Get all selected items across all tabs as a flat array with cumulative prices\r\n const getAllSelectedItems = () => {\r\n let totalOneTimePrice = 0;\r\n let totalMonthlyPrice = 0;\r\n\r\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\r\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\r\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\r\n\r\n // Items from recommendation list that are in cart\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n .map((item: any) => {\r\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\r\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\r\n return { ...item, tabKey };\r\n });\r\n\r\n // Cart-only items not in recommendation list\r\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\r\n .filter((id) => !recomIds.has(id))\r\n .map((id) => {\r\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\r\n if (!info) return null;\r\n totalOneTimePrice += info.oneTimePrice;\r\n totalMonthlyPrice += info.monthlyInstallment;\r\n return {\r\n tabKey,\r\n isCartOnly: true,\r\n recomApiResponse: {\r\n id,\r\n name: info.name,\r\n oneTimePrice: { base: info.oneTimePrice },\r\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\r\n },\r\n };\r\n })\r\n .filter(Boolean);\r\n\r\n return [...recomItems, ...cartOnlyItems];\r\n });\r\n\r\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\r\n for (const tabKey of [WATCHES, TABLETS]) {\r\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\r\n if (hasItemsInTab) {\r\n const rpRawPrice =\r\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\r\n 0;\r\n const rpParsedPrice = Number(rpRawPrice);\r\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\r\n totalMonthlyPrice += rpPrice;\r\n }\r\n }\r\n\r\n return { items, totalOneTimePrice, totalMonthlyPrice };\r\n };\r\n\r\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\r\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\r\n return (\r\n <>\r\n {(loading || successLoader) &&\r\n portalPosition &&\r\n createPortal(\r\n <GlobalDotLoader content={dotLoaderData} isSuccess={successLoader} />,\r\n portalPosition\r\n )}\r\n <Row>\r\n <div className={Styles.mainPage}>\r\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\r\n <DeviceCarouselComponent key={store?.selectedTab}>\r\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\r\n return (\r\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\r\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\r\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\r\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\r\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\r\n </div>}\r\n \r\n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\r\n <div className={Styles.esimBadge}>\r\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\r\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\r\n </div>\r\n )}\r\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\r\n </div>\r\n </div>\r\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\r\n {selectedPaymentType === CONTRACT ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\r\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\r\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\r\n </span>\r\n )}\r\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\r\n </div>\r\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\r\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\r\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\r\n <><FalconButtonV2\r\n content={content?.removefromcartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n </> :\r\n <FalconButtonV2\r\n content={content?.addtocartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </DeviceCarouselComponent>\r\n\r\n <div className={Styles.miaFooter}>\r\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\r\n * contract/monthly flow (not one-time pay), and new subscriptions\r\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\r\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\r\n && Object.keys(recommendedAccessories || {}).length > 1\r\n && selectedPaymentType === CONTRACT\r\n && <div className={Styles.miniSummary}>\r\n <div className={Styles.titleRow}>\r\n {/**1*/}\r\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\r\n {/**2*/}\r\n <span className={Styles.titleIcons}>\r\n {(content?.recommendationType || []).map((tabKey: string) => {\r\n return (\r\n inTabSelected[tabKey] > 0 && (\r\n <>\r\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\r\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\r\n </>\r\n )\r\n )\r\n })}\r\n </span>\r\n {/**3*/}\r\n <div className={`fw-bold ${Styles.cartPrice}`}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\r\n : countZero(totalOneTimePrice)\r\n }\r\n </div>\r\n {/**4*/}\r\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\r\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\r\n </div>\r\n {showMiniCart && (\r\n <>\r\n {/* DividerComponent */}\r\n <div className={Styles.miniCartDivider} />\r\n {allSelectedItems\r\n .map((item: any) => (\r\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\r\n <div className={Styles.itemLine}>\r\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\r\n <div className={Styles.cartPrice}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\r\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\r\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\r\n }\r\n </div>\r\n <img\r\n className={Styles.cartDelete}\r\n loading='lazy'\r\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\r\n alt='delete_icon'\r\n onClick={() => handleDeleteFromMiniCart(item)}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\r\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\r\n <div className={Styles.rpPrice}>\r\n {countZero(Number.isFinite(Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n ))\r\n ? Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n )\r\n : 0)}{content?.monthlyText}\r\n </div>\r\n </div>}\r\n {/* DividerComponent */}\r\n <hr className={Styles.itemDivider} />\r\n </div>\r\n ))\r\n }\r\n </>\r\n )\r\n }\r\n\r\n </div>}\r\n <div className={`${Styles.checkoutBtn}`}>\r\n {content?.proceedtocheckoutButton?.length > 0 && (\r\n <FalconButtonV2\r\n content={content.proceedtocheckoutButton[0]}\r\n eventAction={''}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </Row>\r\n {show && <AccessoryModal\r\n modalState={show}\r\n handler={() => { onCloseClick() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n > <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={content?.errorModal?.[0]?.heading} />\r\n <RichText content={content?.errorModal?.[0]?.description} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\r\n <FalconButtonV2\r\n content={content?.retryButton?.[0]}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n metadata={undefined}\r\n wafIdentifier={basicConfigUrl}\r\n />\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n }\r\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => { onCloseClickCartLimitPopup() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}>\r\n <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\r\n </div>\r\n </div>\r\n </AccessoryModal>}\r\n \r\n {/* Selection Limit Modal for Watches and Tablets */}\r\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\r\n const selectionContent = getSelectionPopupContent();\r\n // Track popup open event, limit description to 100 chars max\r\n // const desc = typeof selectionContent?.description === 'string'\r\n // ? selectionContent.description\r\n // : JSON.stringify(selectionContent?.description ?? '');\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO\r\n });\r\n return (\r\n <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => handleClosePopup(selectionContent) }\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <>\r\n {selectionContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={selectionContent.heading} />\r\n </div>\r\n )}\r\n \r\n {selectionContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={selectionContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {selectionContent?.link && (\r\n <a \r\n className={Styles.factSheetLink}\r\n onClick={() => handleKeepPrevious()}\r\n >\r\n {selectionContent.linkText}\r\n </a>\r\n )}\r\n \r\n {selectionContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={selectionContent.button[0]}\r\n onClick={() => handleReplaceSelection()}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","successLoader","setSuccessLoader","dotLoaderData","_e","_d","_c","_b","_a","globalDotLoader","reference","body","_k","_j","_h","_g","_f","_l","portalPosition","window","document","getElementById","ratePlanFlow","_o","_m","MOBILERATEPLAN","includes","call","_r","_q","_p","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_s","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","successLoaderData","duration","ADD","successMsgDuration","successLoaderCallback","handleClickAddRemoveCartBtn","e","index","preventDefault","recomApiResponse","trackCTAButton","REMOVEFROMCART","REMOVE","checkCartLimit","ADD_TO_CART","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","hardwareOneTimeTotal","reduce","sum","price","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","createPortal","GlobalDotLoader","isSuccess","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","_u","_t","CONTRACT","card","selectedCard","detailSection","sbStoryItem","displayText","heading","optionalText","accessoriesColorLabel","_v","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","priceContainer","style","_4","_3","marketMonthlyInstallment","countZero","_5","_6","_7","_8","strikedMonthlyPrice","_9","_11","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_14","_13","strikedtotalMonthlyPrice","visibility","_15","_16","market","_18","_17","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_19","includedOptions","_20","FLEX_UPGRADE","freeFUText","flexUpgradeText","_22","_21","_24","_23","_25","_28","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_29","_30","FalconButtonV2","_31","onClick","wafIdentifier","disabled","_32","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_12","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryModal.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryModal.tsx"],"sourcesContent":["import React, {JSX, useEffect } from 'react';\nimport CloseButton from 'react-bootstrap/CloseButton';\nimport Modal from 'react-bootstrap/Modal';\n\ninterface GenericModalSchema {\n modalState: boolean;\n handler: () => void;\n children: React.ReactNode; // modal body\n showFooter: boolean;\n footerNode?: React.ReactNode;\n height?: string;\n width?: string;\n noCloseButton?: boolean;\n backDrop?: boolean;\n fixedWidth?: string;\n bodyPadding?:string;\n id?:string;\n backgroundColor?:string;\n}\n\nconst AccessoryModal = ({\n modalState,\n handler,\n showFooter,\n footerNode,\n children,\n width,\n height,\n noCloseButton,\n backDrop,\n fixedWidth,\n bodyPadding,\n id,\n backgroundColor\n}: GenericModalSchema): JSX.Element => {\n useEffect(() => {\n const elem: any = document && document.querySelector('.modal-dialog');\n\n if (elem) {\n elem.style.maxWidth = width;\n elem.style.width = fixedWidth;\n // For mobile devices, add equal left/right margins\n if (window.innerWidth <= 767) {\n elem.style.margin = '1.75rem auto';\n } else {\n elem.style.padding = '0';\n }\n }\n const elem1: any = document.querySelector('.modal-content');\n if (elem1) {\n elem1.style.minHeight = height;\n elem1.style.backgroundColor=backgroundColor\n }\n\n const elem2: any = document.querySelector('.modal-body');\n if(elem2 && bodyPadding){\n elem2.style.padding =bodyPadding;\n }\n }, [height]);\n return (\n <Modal\n centered\n contentClassName={`${id==='mobile-benefits' ? 'benefits-container':''}`}\n show={modalState}\n onHide={handler}\n backdrop={backDrop ? backDrop : 'static'}\n keyboard={false}\n dialogClassName='sr-custom-modal'\n >\n <Modal.Header>\n <div style={{ display: noCloseButton ? 'none' : '' }}>\n <CloseButton className='sr-modal-close-accessory' onClick={handler} />\n </div>\n </Modal.Header>\n\n <Modal.Body>{children}</Modal.Body>\n\n {showFooter && <Modal.Footer>{footerNode}</Modal.Footer>}\n </Modal>\n );\n};\n\nexport default AccessoryModal;\n"],"names":["AccessoryModal","modalState","handler","showFooter","footerNode","children","width","height","noCloseButton","backDrop","fixedWidth","bodyPadding","id","backgroundColor","useEffect","elem","document","querySelector","style","maxWidth","window","innerWidth","margin","padding","elem1","minHeight","elem2","React","Modal","centered","contentClassName","show","onHide","backdrop","keyboard","dialogClassName","createElement","Header","display","CloseButton","className","onClick","Body","Footer"],"mappings":"qHAoBA,MAAMA,EAAiB,EACrBC,aACAC,UACAC,aACAC,aACAC,WACAC,QACAC,SACAC,gBACAC,WACAC,aACAC,cACAC,KACAC,sBAEAC,EAAU,KACR,MAAMC,EAAYC,UAAYA,SAASC,cAAc,iBAEjDF,IACFA,EAAKG,MAAMC,SAAWb,EACtBS,EAAKG,MAAMZ,MAAQI,EAEfU,OAAOC,YAAc,IACvBN,EAAKG,MAAMI,OAAS,eAEpBP,EAAKG,MAAMK,QAAU,KAGzB,MAAMC,EAAaR,SAASC,cAAc,kBACtCO,IACFA,EAAMN,MAAMO,UAAYlB,EACxBiB,EAAMN,MAAML,gBAAgBA,GAG9B,MAAMa,EAAaV,SAASC,cAAc,eACvCS,GAASf,IACVe,EAAMR,MAAMK,QAASZ,IAEtB,CAACJ,IAEFoB,gBAACC,EAAK,CACJC,UAAQ,EACRC,iBAAkB,IAAQ,oBAALlB,EAAyB,qBAAqB,IACnEmB,KAAM9B,EACN+B,OAAQ9B,EACR+B,SAAUxB,GAAsB,SAChCyB,UAAU,EACVC,gBAAgB,mBAEhBR,EAAAS,cAACR,EAAMS,OAAM,KACXV,EAAAS,cAAA,MAAA,CAAKlB,MAAO,CAAEoB,QAAS9B,EAAgB,OAAS,KAC9CmB,EAAAS,cAACG,EAAW,CAACC,UAAU,2BAA2BC,QAASvC,MAI/DyB,EAAAS,cAACR,EAAMc,KAAI,KAAErC,GAEZF,GAAcwB,EAAAS,cAACR,EAAMe,YAAQvC"}
1
+ {"version":3,"file":"AccessoryModal.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryModal.tsx"],"sourcesContent":["import React, {JSX, useEffect } from 'react';\r\nimport CloseButton from 'react-bootstrap/CloseButton';\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\ninterface GenericModalSchema {\r\n modalState: boolean;\r\n handler: () => void;\r\n children: React.ReactNode; // modal body\r\n showFooter: boolean;\r\n footerNode?: React.ReactNode;\r\n height?: string;\r\n width?: string;\r\n noCloseButton?: boolean;\r\n backDrop?: boolean;\r\n fixedWidth?: string;\r\n bodyPadding?:string;\r\n id?:string;\r\n backgroundColor?:string;\r\n}\r\n\r\nconst AccessoryModal = ({\r\n modalState,\r\n handler,\r\n showFooter,\r\n footerNode,\r\n children,\r\n width,\r\n height,\r\n noCloseButton,\r\n backDrop,\r\n fixedWidth,\r\n bodyPadding,\r\n id,\r\n backgroundColor\r\n}: GenericModalSchema): JSX.Element => {\r\n useEffect(() => {\r\n const elem: any = document && document.querySelector('.modal-dialog');\r\n\r\n if (elem) {\r\n elem.style.maxWidth = width;\r\n elem.style.width = fixedWidth;\r\n // For mobile devices, add equal left/right margins\r\n if (window.innerWidth <= 767) {\r\n elem.style.margin = '1.75rem auto';\r\n } else {\r\n elem.style.padding = '0';\r\n }\r\n }\r\n const elem1: any = document.querySelector('.modal-content');\r\n if (elem1) {\r\n elem1.style.minHeight = height;\r\n elem1.style.backgroundColor=backgroundColor\r\n }\r\n\r\n const elem2: any = document.querySelector('.modal-body');\r\n if(elem2 && bodyPadding){\r\n elem2.style.padding =bodyPadding;\r\n }\r\n }, [height]);\r\n return (\r\n <Modal\r\n centered\r\n contentClassName={`${id==='mobile-benefits' ? 'benefits-container':''}`}\r\n show={modalState}\r\n onHide={handler}\r\n backdrop={backDrop ? backDrop : 'static'}\r\n keyboard={false}\r\n dialogClassName='sr-custom-modal'\r\n >\r\n <Modal.Header>\r\n <div style={{ display: noCloseButton ? 'none' : '' }}>\r\n <CloseButton className='sr-modal-close-accessory' onClick={handler} />\r\n </div>\r\n </Modal.Header>\r\n\r\n <Modal.Body>{children}</Modal.Body>\r\n\r\n {showFooter && <Modal.Footer>{footerNode}</Modal.Footer>}\r\n </Modal>\r\n );\r\n};\r\n\r\nexport default AccessoryModal;\r\n"],"names":["AccessoryModal","modalState","handler","showFooter","footerNode","children","width","height","noCloseButton","backDrop","fixedWidth","bodyPadding","id","backgroundColor","useEffect","elem","document","querySelector","style","maxWidth","window","innerWidth","margin","padding","elem1","minHeight","elem2","React","Modal","centered","contentClassName","show","onHide","backdrop","keyboard","dialogClassName","createElement","Header","display","CloseButton","className","onClick","Body","Footer"],"mappings":"qHAoBA,MAAMA,EAAiB,EACrBC,aACAC,UACAC,aACAC,aACAC,WACAC,QACAC,SACAC,gBACAC,WACAC,aACAC,cACAC,KACAC,sBAEAC,EAAU,KACR,MAAMC,EAAYC,UAAYA,SAASC,cAAc,iBAEjDF,IACFA,EAAKG,MAAMC,SAAWb,EACtBS,EAAKG,MAAMZ,MAAQI,EAEfU,OAAOC,YAAc,IACvBN,EAAKG,MAAMI,OAAS,eAEpBP,EAAKG,MAAMK,QAAU,KAGzB,MAAMC,EAAaR,SAASC,cAAc,kBACtCO,IACFA,EAAMN,MAAMO,UAAYlB,EACxBiB,EAAMN,MAAML,gBAAgBA,GAG9B,MAAMa,EAAaV,SAASC,cAAc,eACvCS,GAASf,IACVe,EAAMR,MAAMK,QAASZ,IAEtB,CAACJ,IAEFoB,gBAACC,EAAK,CACJC,UAAQ,EACRC,iBAAkB,IAAQ,oBAALlB,EAAyB,qBAAqB,IACnEmB,KAAM9B,EACN+B,OAAQ9B,EACR+B,SAAUxB,GAAsB,SAChCyB,UAAU,EACVC,gBAAgB,mBAEhBR,EAAAS,cAACR,EAAMS,OAAM,KACXV,EAAAS,cAAA,MAAA,CAAKlB,MAAO,CAAEoB,QAAS9B,EAAgB,OAAS,KAC9CmB,EAAAS,cAACG,EAAW,CAACC,UAAU,2BAA2BC,QAASvC,MAI/DyB,EAAAS,cAACR,EAAMc,KAAI,KAAErC,GAEZF,GAAcwB,EAAAS,cAACR,EAAMe,YAAQvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryPreviewCardLoader.js","sources":["../../../../../src/components/Accessories/AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.tsx"],"sourcesContent":["import React from 'react'\nimport { Row, Col } from 'react-bootstrap';\nimport Styles from './AccessoryPreviewCardLoader.module.scss'\nimport AccessoryPreviewCardSkeletonBody from '../AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody';\n\nconst AccessoryPreviewCardLoader = ({cards}:any) => {\n return (\n <div>\n <Row className={`justify-content-center ${Styles.cardsPadding}`}>\n {[...Array(cards)].map((index) => (\n <Col\n xl='4'\n lg='4'\n md='6'\n sm='6'\n xs='12'\n className={`${Styles.allCards} ${\n ( index == 0) && Styles.cardsPreview\n }`}\n >\n <AccessoryPreviewCardSkeletonBody />\n </Col>\n ))}\n </Row>\n </div>\n )\n}\n\nexport default AccessoryPreviewCardLoader\n"],"names":["AccessoryPreviewCardLoader","cards","React","createElement","Row","className","Styles","cardsPadding","Array","map","index","Col","xl","lg","md","sm","xs","allCards","cardsPreview","AccessoryPreviewCardSkeletonBody"],"mappings":"sNAKA,MAAMA,EAA6B,EAAEC,WAE7BC,EAAAC,cAAA,MAAA,KACID,EAAAC,cAACC,EAAG,CAACC,UAAW,0BAA0BC,EAAOC,gBAChD,IAAIC,MAAMP,IAAQQ,IAAKC,GACtBR,EAAAC,cAACQ,EAAG,CACFC,GAAG,IACHC,GAAG,IACHC,GAAG,IACHC,GAAG,IACHC,GAAG,KACHX,UAAW,GAAGC,EAAOW,YACR,GAATP,GAAeJ,EAAOY,gBAGxBhB,EAAAC,cAACgB"}
1
+ {"version":3,"file":"AccessoryPreviewCardLoader.js","sources":["../../../../../src/components/Accessories/AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Row, Col } from 'react-bootstrap';\r\nimport Styles from './AccessoryPreviewCardLoader.module.scss'\r\nimport AccessoryPreviewCardSkeletonBody from '../AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody';\r\n\r\nconst AccessoryPreviewCardLoader = ({cards}:any) => {\r\n return (\r\n <div>\r\n <Row className={`justify-content-center ${Styles.cardsPadding}`}>\r\n {[...Array(cards)].map((index) => (\r\n <Col\r\n xl='4'\r\n lg='4'\r\n md='6'\r\n sm='6'\r\n xs='12'\r\n className={`${Styles.allCards} ${\r\n ( index == 0) && Styles.cardsPreview\r\n }`}\r\n >\r\n <AccessoryPreviewCardSkeletonBody />\r\n </Col>\r\n ))}\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default AccessoryPreviewCardLoader\r\n"],"names":["AccessoryPreviewCardLoader","cards","React","createElement","Row","className","Styles","cardsPadding","Array","map","index","Col","xl","lg","md","sm","xs","allCards","cardsPreview","AccessoryPreviewCardSkeletonBody"],"mappings":"sNAKA,MAAMA,EAA6B,EAAEC,WAE7BC,EAAAC,cAAA,MAAA,KACID,EAAAC,cAACC,EAAG,CAACC,UAAW,0BAA0BC,EAAOC,gBAChD,IAAIC,MAAMP,IAAQQ,IAAKC,GACtBR,EAAAC,cAACQ,EAAG,CACFC,GAAG,IACHC,GAAG,IACHC,GAAG,IACHC,GAAG,IACHC,GAAG,KACHX,UAAW,GAAGC,EAAOW,YACR,GAATP,GAAeJ,EAAOY,gBAGxBhB,EAAAC,cAACgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryPreviewCardSkeletonBody.js","sources":["../../../../../src/components/Accessories/AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody.tsx"],"sourcesContent":["import React from 'react';\nimport { Card } from 'react-bootstrap';\nimport Skeleton from 'react-loading-skeleton';\n// import Styles from './DevicePreviewCardLoader.module.scss';\nimport Styles from '../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.module.scss'\n// import 'react-loading-skeleton/dist/skeleton.css';\n\nconst AccessoryPreviewCardSkeletonBody = () => {\n return (\n <div>\n <Card className={Styles.cards}>\n <Card.Body>\n {/* Title */}\n <div className='row justify-content-between'>\n <div className='col-8'>\n <Skeleton height={24} width={'100%'} />\n <Skeleton height={24} width={'60%'} />\n </div>\n <div className='col-2'>\n <Skeleton height={24} width={30} />\n </div>\n </div>\n <hr />\n {/* Image */}\n <div className={`${Styles.SkeletonImage}`}>\n <Skeleton height={312} width={'75%'} />\n </div>\n {/* Price */}\n <div className={Styles.priceSection}>\n <div className={Styles.pricePadding}>\n <div className='row justify-content-between'>\n <div className='col-8'>\n <Skeleton height={40} width={'65%'} />\n <Skeleton height={20} width={'85%'} />\n </div>\n {/* button */}\n <div className={`${Styles.button} col-2`}>\n <Skeleton circle={true} height={48} width={48} />\n </div>\n </div>\n <hr />\n <Skeleton height={24} width={'75%'} />\n </div>\n </div>\n </Card.Body>\n </Card>\n </div>\n );\n};\n\nexport default AccessoryPreviewCardSkeletonBody;\n"],"names":["AccessoryPreviewCardSkeletonBody","React","createElement","Card","className","Styles","cards","Body","Skeleton","height","width","SkeletonImage","priceSection","pricePadding","button","circle"],"mappings":"yLAOA,MAAMA,EAAmC,IAErCC,EAAAC,cAAA,MAAA,KACED,EAAAC,cAACC,EAAI,CAACC,UAAWC,EAAOC,OACtBL,EAAAC,cAACC,EAAKI,KAAI,KAERN,EAAAC,cAAA,MAAA,CAAKE,UAAU,+BACbH,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACbH,EAAAC,cAACM,GAASC,OAAQ,GAAIC,MAAO,SAC7BT,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,SAE/BT,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACXH,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,OAGnCT,EAAAC,cAAA,KAAA,MAEAD,EAAAC,cAAA,MAAA,CAAKE,UAAW,GAAGC,EAAOM,iBACxBV,EAAAC,cAACM,EAAQ,CAACC,OAAQ,IAAKC,MAAO,SAGhCT,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOO,cACrBX,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOQ,cACrBZ,EAAAC,cAAA,MAAA,CAAKE,UAAU,+BACbH,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACbH,EAAAC,cAACM,GAASC,OAAQ,GAAIC,MAAO,QAC7BT,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,SAG/BT,EAAAC,cAAA,MAAA,CAAKE,UAAW,GAAGC,EAAOS,gBACxBb,EAAAC,cAACM,EAAQ,CAACO,QAAQ,EAAMN,OAAQ,GAAIC,MAAO,OAG/CT,EAAAC,cAAA,KAAA,MACAD,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO"}
1
+ {"version":3,"file":"AccessoryPreviewCardSkeletonBody.js","sources":["../../../../../src/components/Accessories/AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Card } from 'react-bootstrap';\r\nimport Skeleton from 'react-loading-skeleton';\r\n// import Styles from './DevicePreviewCardLoader.module.scss';\r\nimport Styles from '../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.module.scss'\r\n// import 'react-loading-skeleton/dist/skeleton.css';\r\n\r\nconst AccessoryPreviewCardSkeletonBody = () => {\r\n return (\r\n <div>\r\n <Card className={Styles.cards}>\r\n <Card.Body>\r\n {/* Title */}\r\n <div className='row justify-content-between'>\r\n <div className='col-8'>\r\n <Skeleton height={24} width={'100%'} />\r\n <Skeleton height={24} width={'60%'} />\r\n </div>\r\n <div className='col-2'>\r\n <Skeleton height={24} width={30} />\r\n </div>\r\n </div>\r\n <hr />\r\n {/* Image */}\r\n <div className={`${Styles.SkeletonImage}`}>\r\n <Skeleton height={312} width={'75%'} />\r\n </div>\r\n {/* Price */}\r\n <div className={Styles.priceSection}>\r\n <div className={Styles.pricePadding}>\r\n <div className='row justify-content-between'>\r\n <div className='col-8'>\r\n <Skeleton height={40} width={'65%'} />\r\n <Skeleton height={20} width={'85%'} />\r\n </div>\r\n {/* button */}\r\n <div className={`${Styles.button} col-2`}>\r\n <Skeleton circle={true} height={48} width={48} />\r\n </div>\r\n </div>\r\n <hr />\r\n <Skeleton height={24} width={'75%'} />\r\n </div>\r\n </div>\r\n </Card.Body>\r\n </Card>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AccessoryPreviewCardSkeletonBody;\r\n"],"names":["AccessoryPreviewCardSkeletonBody","React","createElement","Card","className","Styles","cards","Body","Skeleton","height","width","SkeletonImage","priceSection","pricePadding","button","circle"],"mappings":"yLAOA,MAAMA,EAAmC,IAErCC,EAAAC,cAAA,MAAA,KACED,EAAAC,cAACC,EAAI,CAACC,UAAWC,EAAOC,OACtBL,EAAAC,cAACC,EAAKI,KAAI,KAERN,EAAAC,cAAA,MAAA,CAAKE,UAAU,+BACbH,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACbH,EAAAC,cAACM,GAASC,OAAQ,GAAIC,MAAO,SAC7BT,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,SAE/BT,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACXH,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,OAGnCT,EAAAC,cAAA,KAAA,MAEAD,EAAAC,cAAA,MAAA,CAAKE,UAAW,GAAGC,EAAOM,iBACxBV,EAAAC,cAACM,EAAQ,CAACC,OAAQ,IAAKC,MAAO,SAGhCT,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOO,cACrBX,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOQ,cACrBZ,EAAAC,cAAA,MAAA,CAAKE,UAAU,+BACbH,EAAAC,cAAA,MAAA,CAAKE,UAAU,SACbH,EAAAC,cAACM,GAASC,OAAQ,GAAIC,MAAO,QAC7BT,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO,SAG/BT,EAAAC,cAAA,MAAA,CAAKE,UAAW,GAAGC,EAAOS,gBACxBb,EAAAC,cAACM,EAAQ,CAACO,QAAQ,EAAMN,OAAQ,GAAIC,MAAO,OAG/CT,EAAAC,cAAA,KAAA,MACAD,EAAAC,cAACM,EAAQ,CAACC,OAAQ,GAAIC,MAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceCarouselComponent.js","sources":["../../../../src/components/Accessories/DeviceCarouselComponent.tsx"],"sourcesContent":["import React ,{ JSX, useState, useEffect } from 'react';\nimport { viewportMultiItem } from '../../utils/utils';\nimport Carousel from 'react-multi-carousel';\n// NOTE: The consuming application should import 'react-multi-carousel/lib/styles.css' in their _app.js or global styles\n// Do not import global CSS in library components to avoid Next.js conflicts\n\nconst DeviceCarouselComponent = (props: any): JSX.Element => {\n const responsive: any = {\n desktopLarge: {\n breakpoint: { max: 7000, min: 1440 },\n items: 4,\n slidesToSlide: 3\n },\n desktop: {\n breakpoint: { max: 1439, min: 1024 },\n items: 3,\n slidesToSlide: 3\n },\n tabletMedium: {\n breakpoint: { max: 1023, min: 768 },\n items: 2,\n slidesToSlide: 2\n },\n mobile: {\n breakpoint: { max: 767, min: 0 },\n items: 1,\n partialVisibilityGutter: 40,\n },\n };\n\n // Use isMounted to avoid any SSR/client mismatch for viewport-dependent props\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => { setIsMounted(true); }, []);\n\n const viewPort = viewportMultiItem();\n // Only compute viewport-dependent props after mount (client-only)\n const showDots = isMounted && props?.children?.length > responsive?.[viewPort]?.items;\n const showArrows = isMounted ? viewPort !== 'mobile' : false;\n\n return (\n <Carousel\n responsive={responsive}\n renderButtonGroupOutside={true}\n partialVisible={true}\n swipeable={true}\n autoPlay={false}\n shouldResetAutoplay={false}\n arrows={showArrows}\n showDots={showDots}\n >\n {props.children}\n </Carousel>\n );\n};\n\nexport default DeviceCarouselComponent;\n"],"names":["DeviceCarouselComponent","props","responsive","desktopLarge","breakpoint","max","min","items","slidesToSlide","desktop","tabletMedium","mobile","partialVisibilityGutter","isMounted","setIsMounted","useState","useEffect","viewPort","viewportMultiItem","showDots","_a","children","length","_b","showArrows","React","createElement","Carousel","renderButtonGroupOutside","partialVisible","swipeable","autoPlay","shouldResetAutoplay","arrows"],"mappings":"gJAMA,MAAMA,EAA2BC,YAC/B,MAAMC,EAAkB,CACtBC,aAAc,CACZC,WAAY,CAAEC,IAAK,IAAMC,IAAK,MAC9BC,MAAO,EACPC,cAAe,GAEjBC,QAAS,CACPL,WAAY,CAAEC,IAAK,KAAMC,IAAK,MAC9BC,MAAO,EACPC,cAAe,GAEjBE,aAAc,CACZN,WAAY,CAAEC,IAAK,KAAMC,IAAK,KAC9BC,MAAO,EACPC,cAAe,GAEjBG,OAAQ,CACNP,WAAY,CAAEC,IAAK,IAAKC,IAAK,GAC7BC,MAAO,EACPK,wBAAyB,MAKtBC,EAAWC,GAAgBC,GAAS,GAC3CC,EAAU,KAAQF,GAAa,IAAU,IAEzC,MAAMG,EAAWC,IAEXC,EAAWN,IAA4B,QAAfO,EAAAnB,aAAK,EAALA,EAAOoB,gBAAQ,IAAAD,OAAA,EAAAA,EAAEE,SAA+B,QAAtBC,EAAArB,aAAU,EAAVA,EAAae,UAAS,IAAAM,OAAA,EAAAA,EAAEhB,OAC1EiB,IAAaX,GAAyB,WAAbI,EAE/B,OACEQ,EAAAC,cAACC,GACCzB,WAAYA,EACZ0B,0BAA0B,EAC1BC,gBAAgB,EAChBC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,OAAQT,EACRL,SAAUA,GAETlB,EAAMoB"}
1
+ {"version":3,"file":"DeviceCarouselComponent.js","sources":["../../../../src/components/Accessories/DeviceCarouselComponent.tsx"],"sourcesContent":["import React ,{ JSX, useState, useEffect } from 'react';\r\nimport { viewportMultiItem } from '../../utils/utils';\r\nimport Carousel from 'react-multi-carousel';\r\n// NOTE: The consuming application should import 'react-multi-carousel/lib/styles.css' in their _app.js or global styles\r\n// Do not import global CSS in library components to avoid Next.js conflicts\r\n\r\nconst DeviceCarouselComponent = (props: any): JSX.Element => {\r\n const responsive: any = {\r\n desktopLarge: {\r\n breakpoint: { max: 7000, min: 1440 },\r\n items: 4,\r\n slidesToSlide: 3\r\n },\r\n desktop: {\r\n breakpoint: { max: 1439, min: 1024 },\r\n items: 3,\r\n slidesToSlide: 3\r\n },\r\n tabletMedium: {\r\n breakpoint: { max: 1023, min: 768 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n mobile: {\r\n breakpoint: { max: 767, min: 0 },\r\n items: 1,\r\n partialVisibilityGutter: 40,\r\n },\r\n };\r\n\r\n // Use isMounted to avoid any SSR/client mismatch for viewport-dependent props\r\n const [isMounted, setIsMounted] = useState(false);\r\n useEffect(() => { setIsMounted(true); }, []);\r\n\r\n const viewPort = viewportMultiItem();\r\n // Only compute viewport-dependent props after mount (client-only)\r\n const showDots = isMounted && props?.children?.length > responsive?.[viewPort]?.items;\r\n const showArrows = isMounted ? viewPort !== 'mobile' : false;\r\n\r\n return (\r\n <Carousel\r\n responsive={responsive}\r\n renderButtonGroupOutside={true}\r\n partialVisible={true}\r\n swipeable={true}\r\n autoPlay={false}\r\n shouldResetAutoplay={false}\r\n arrows={showArrows}\r\n showDots={showDots}\r\n >\r\n {props.children}\r\n </Carousel>\r\n );\r\n};\r\n\r\nexport default DeviceCarouselComponent;\r\n"],"names":["DeviceCarouselComponent","props","responsive","desktopLarge","breakpoint","max","min","items","slidesToSlide","desktop","tabletMedium","mobile","partialVisibilityGutter","isMounted","setIsMounted","useState","useEffect","viewPort","viewportMultiItem","showDots","_a","children","length","_b","showArrows","React","createElement","Carousel","renderButtonGroupOutside","partialVisible","swipeable","autoPlay","shouldResetAutoplay","arrows"],"mappings":"gJAMA,MAAMA,EAA2BC,YAC/B,MAAMC,EAAkB,CACtBC,aAAc,CACZC,WAAY,CAAEC,IAAK,IAAMC,IAAK,MAC9BC,MAAO,EACPC,cAAe,GAEjBC,QAAS,CACPL,WAAY,CAAEC,IAAK,KAAMC,IAAK,MAC9BC,MAAO,EACPC,cAAe,GAEjBE,aAAc,CACZN,WAAY,CAAEC,IAAK,KAAMC,IAAK,KAC9BC,MAAO,EACPC,cAAe,GAEjBG,OAAQ,CACNP,WAAY,CAAEC,IAAK,IAAKC,IAAK,GAC7BC,MAAO,EACPK,wBAAyB,MAKtBC,EAAWC,GAAgBC,GAAS,GAC3CC,EAAU,KAAQF,GAAa,IAAU,IAEzC,MAAMG,EAAWC,IAEXC,EAAWN,IAA4B,QAAfO,EAAAnB,aAAK,EAALA,EAAOoB,gBAAQ,IAAAD,OAAA,EAAAA,EAAEE,SAA+B,QAAtBC,EAAArB,aAAU,EAAVA,EAAae,UAAS,IAAAM,OAAA,EAAAA,EAAEhB,OAC1EiB,IAAaX,GAAyB,WAAbI,EAE/B,OACEQ,EAAAC,cAACC,GACCzB,WAAYA,EACZ0B,0BAA0B,EAC1BC,gBAAgB,EAChBC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,OAAQT,EACRL,SAAUA,GAETlB,EAAMoB"}
@@ -1,2 +1,2 @@
1
- import e,{useState as l,useRef as o,useEffect as i}from"react";import n from"../ProgressionBar/progressionBar.js";import t from"./MultiItemAccessoriesPageStyle.module.scss.js";import d from"../../richtext.js";import v from"../Accessory-card/AccessoryCard.js";import a from"../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js";import r from"../PaymentTypeTabs/PaymentTypeTabs.js";import s from"../../../services/MultiItemAccessories/storyBlokService.js";import{getCookie as u}from"cookies-next";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as c,ACCESSORY as m,CONTRACT as p,MOBILERATEPLAN as y,INTERNETFLOW as g,TV as f,WATCHES as b,MOBILEACCESSORIES as h,BASE as T,MONTHLY as A,TABLETS as E}from"../../../utils/constants.js";import C from"../../ResponsiveRow/row.js";import{trackViewItem as I,setMmcItemTracker as w,trackNewDatalayerEvent as k}from"../../../utils/AnalyticsUtils.js";import{VIEWEACHITEM as P,LEARNMORE as j,LINK as S,CTATEXTCLICK as R,GAEVENT as x,INFO as N,POPUP as B,OPENPOPUP as D,CONTENT as L,TABCLICK as O,CONTINUE as _,CTABUTTONCLICK as M}from"../../../Analytics/AnalyticsConstants.js";import{useMultiAccessoryContext as V}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as U}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import F from"../multiItemAccessoryStore/MultiAccessoryProvider.js";import{useMultiAccessoryUpdateCartActions as H}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import W from"../../Dotloader/Dotloader.js";import{rp_lastcartItemWithParentPOType as $,viewport as G,replacePlaceholder as J,countZero as q,getSBAssetUrl as z}from"../../../utils/utils.js";import K from"../Accessory-card/AccessoryModal.js";import Q from"../../FalconButtonV2/FalconButtonV2.js";import{AssetPathPropConfig as X}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";import Y from"../AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js";const Z=({content:F,metadata:Z})=>{var ee,le,oe,ie,ne,te,de,ve,ae,re,se,ue,ce,me;const pe=null==Z?void 0:Z.lang,[ye,ge]=l(!1),[fe,be]=l(!1),[he,Te]=l(null),Ae=u("one-commerce-cartId"),[Ee,Ce]=l(""),[Ie,we]=l(!1),ke=o({}),{store:Pe,dispatch:je}=V(),Se=U(je),Re=H(),{recommendedAccessories:xe,isFetchingRecommendedAccessories:Ne,deviceSessionValues:Be,multiItemAccessoriessList:De,loading:Le,isLoadingCartData:Oe,cartData:_e,previousTab:Me}=Pe,Ve=null===(ee=null==xe?void 0:xe[null==Pe?void 0:Pe.selectedTab])||void 0===ee?void 0:ee.hardware,Ue=null===(le=null==X?void 0:X.getInstance())||void 0===le?void 0:le.getAssetPath(),Fe=null==F?void 0:F.recommendationType,He={};i(()=>{var e,l,o,i;be(!0);const n=null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem(c),t=n?JSON.parse(n):{};ke.current=t;const d=Object.assign(Object.assign({},t),{cartId:Ae});Se.setDeviceSessionValues(d),null==Se||Se.setSelectedTab(null==F?void 0:F.defaultTabSelection),Ce(null===(i=null===(o=null===(l=null===(e=null==t?void 0:t.hardwareVariant)||void 0===e?void 0:e.note)||void 0===l?void 0:l.filter(e=>"hardwareGroupName"===e.author))||void 0===o?void 0:o[0])||void 0===i?void 0:i.text),ge(!0),Ae&&We(void 0,t)},[]);const We=(e,l)=>{var o,i;const n=null!=l?l:ke.current;if(e&&(Se.setPreviousTab(null==Pe?void 0:Pe.selectedTab),Se.setSelectedTab(e)),e){if((null===(i=(null===(o=null==xe?void 0:xe[e])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.length)<=0&&(ge(!0),Se.getRecommendedAccessory({cartId:Ae,recommendationsType:e})),Le)return}else Re.fetchCartData(Ae).then(l=>{var o,i,t,d,v,a,r,s,u,c,y,g,f,b,h;const T=null!==(o=null==l?void 0:l.cartRecommendationsType)&&void 0!==o?o:[null==F?void 0:F.defaultTabSelection],A=null===(i=null==n?void 0:n.hardwareVariant)||void 0===i?void 0:i.selectedContractType,E=$(null!==(t=null==l?void 0:l.cartItem)&&void 0!==t?t:[],{},{},{}),C=!((null===(d=null==E?void 0:E.MOBILE_ORDER)||void 0===d?void 0:d.HARDWARE)||(null==E?void 0:E.STANDALONE_HARDWARE));we(C);const I=(Number.parseFloat(null===(u=null===(s=null===(r=null===(a=null===(v=null==E?void 0:E.MOBILE_ORDER)||void 0===v?void 0:v.HARDWARE)||void 0===a?void 0:a.itemTerm)||void 0===r?void 0:r[0])||void 0===s?void 0:s.duration)||void 0===u?void 0:u.amount)||0)>0&&("DEVICE_RENEWAL"!==(null===(g=null===(y=null===(c=null==l?void 0:l.cartItem)||void 0===c?void 0:c[0])||void 0===y?void 0:y.processType)||void 0===g?void 0:g.id)&&"DEVICE_RP_RENEWAL"!==(null===(h=null===(b=null===(f=null==l?void 0:l.cartItem)||void 0===f?void 0:f[0])||void 0===b?void 0:b.processType)||void 0===h?void 0:h.id)||(null==F?void 0:F.enableExistingSubscription))?null==Fe?void 0:Fe.filter(e=>T.includes(e)):null==Fe?void 0:Fe.filter(e=>e===m&&T.includes(e));null==I||I.forEach(e=>{He[e]=[]}),Se.setRecommendedAccessories(He);const w=A===p?(null==I?void 0:I.includes(null==F?void 0:F.defaultTabSelection))?null==F?void 0:F.defaultTabSelection:I[0]:m;null==Se||Se.setSelectedTab(w),Se.getRecommendedAccessory({cartId:Ae,recommendationsType:e||w})}).catch(()=>{var e,l,o,i,t;const d=!!(null===(l=null===(e=[y,g,f])||void 0===e?void 0:e.includes)||void 0===l?void 0:l.call(e,null===(o=null==Ve?void 0:Ve[0])||void 0===o?void 0:o.recommendationProcessingType))||!(null==n?void 0:n.hardwareVariant);"undefined"!=typeof window&&(window.location.href=d?null===(i=null==F?void 0:F.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(t=null==F?void 0:F.multiItemCheckoutUrl)||void 0===t?void 0:t.url)})};i(()=>{var e,l,o,i,n,t,d,v,a,r,u,c;if((null===(l=null===(e=null==xe?void 0:xe[null==xe?void 0:xe.tabkey])||void 0===e?void 0:e.hardware)||void 0===l?void 0:l.length)>0)if((null==xe?void 0:xe.tabkey)===m)null==s||s.getStoryBlokData(pe,null===(i=null===(o=null==xe?void 0:xe[null==xe?void 0:xe.tabkey])||void 0===o?void 0:o.hardware)||void 0===i?void 0:i.map(e=>null==e?void 0:e.baseProducts),null==F?void 0:F.parentSlugUrl).then(e=>{$e(e,null==xe?void 0:xe.tabkey)});else{const e=(null==xe?void 0:xe.tabkey)===b?null===(d=null===(t=null===(n=null==F?void 0:F.watchMasterList)||void 0===n?void 0:n[0])||void 0===t?void 0:t.reference)||void 0===d?void 0:d.content:null===(r=null===(a=null===(v=null==F?void 0:F.tabletMasterList)||void 0===v?void 0:v[0])||void 0===a?void 0:a.reference)||void 0===r?void 0:r.content;$e(e,null==xe?void 0:xe.tabkey)}else Ne&&Ae||Oe||"undefined"==typeof window||(window.location.href=Ie?null===(u=null==F?void 0:F.winCheckoutUrl)||void 0===u?void 0:u.cached_url:null===(c=null==F?void 0:F.multiItemCheckoutUrl)||void 0===c?void 0:c.url)},[xe]);const $e=(e,l)=>{var o,i,n,t,d,v,a,r;const s=null===(n=null===(i=(null===(o=null==xe?void 0:xe[l])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.filter(e=>{var l,o;return(null===(l=null==Be?void 0:Be.hardwareVariant)||void 0===l?void 0:l.selectedContractType)===p?(null===(o=null==e?void 0:e.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)>0:e}))||void 0===n?void 0:n.reduce((o,i,n)=>{var t,d,v,a,r,s,u,c,p,y,g,f,b,T,A,E,C,w,k,j,S,R,x,N,B,D,L,O,_,M,V,U;const F={image:"",type:h};let H;if(l===m){H=null===(a=null===(v=null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||void 0===v?void 0:v.filter(e=>{var l;return(null==i?void 0:i.baseProducts)===(null===(l=null==e?void 0:e.content)||void 0===l?void 0:l.productId)}))||void 0===a?void 0:a[0];const l=null===(c=null===(u=null===(s=null===(r=null==H?void 0:H.content)||void 0===r?void 0:r.body)||void 0===s?void 0:s[0])||void 0===u?void 0:u.deviceList)||void 0===c?void 0:c.find(e=>(null==e?void 0:e.devicePlanId)===(null==i?void 0:i.id));F.image=(null===(g=null===(y=null===(p=null==l?void 0:l.promoImageGallery)||void 0===p?void 0:p[0])||void 0===y?void 0:y.slideImages)||void 0===g?void 0:g[0])?null===(E=null===(A=null===(T=null===(b=null===(f=null==l?void 0:l.promoImageGallery)||void 0===f?void 0:f[0])||void 0===b?void 0:b.slideImages)||void 0===T?void 0:T[0])||void 0===A?void 0:A.image)||void 0===E?void 0:E.filename:null===(S=null===(j=null===(k=null===(w=null===(C=null==l?void 0:l.imageGallery)||void 0===C?void 0:C[0])||void 0===w?void 0:w.slideImages)||void 0===k?void 0:k[0])||void 0===j?void 0:j.image)||void 0===S?void 0:S.filename,F.type=null!==(x=null===(R=null==i?void 0:i.content)||void 0===R?void 0:R.type)&&void 0!==x?x:h}else H=null===(B=null===(N=null==e?void 0:e.body)||void 0===N?void 0:N.filter(e=>(null==i?void 0:i.baseProducts)===(null==e?void 0:e.m_p_id)))||void 0===B?void 0:B[0],F.image=null===(L=null===(D=null==H?void 0:H.images)||void 0===D?void 0:D[0])||void 0===L?void 0:L.filename,F.type=null!==(_=null===(O=null==i?void 0:i.content)||void 0===O?void 0:O.type)&&void 0!==_?_:h;return H&&(o.push({sbStoryItem:H,imageData:F,recomApiResponse:i}),I(P,P,{displayName:null==i?void 0:i.name,productId:null==i?void 0:i.id,priceValue:null===(M=null==i?void 0:i.oneTimePrice)||void 0===M?void 0:M.base,index:n,variant:null===(V=null==i?void 0:i.variantCategory)||void 0===V?void 0:V.color,storage:null===(U=null==i?void 0:i.variantCategory)||void 0===U?void 0:U.storage})),o},[]);(null==s?void 0:s.length)>0&&(null===(v=(null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||(null==e?void 0:e.body))||void 0===v?void 0:v.length)>0?Se.setMultiItemAccessoriessList(Object.assign(Object.assign({},De),{[l]:s})):window.location.href=Ie?null===(a=null==F?void 0:F.winCheckoutUrl)||void 0===a?void 0:a.cached_url:null===(r=null==F?void 0:F.multiItemCheckoutUrl)||void 0===r?void 0:r.url,ge(!1),Ke(s)};i(()=>{var e;null===(e=(null==De?void 0:De[null==Pe?void 0:Pe.selectedTab])||[])||void 0===e||e.filter(e=>{var l,o,i;(null===(o=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.paymentType)||void 0===o?void 0:o.toLowerCase())&&Se.setSelectedPaymentType((null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.paymentType.toLowerCase())===A?p:T)})},[De]);const Ge=G(),Je="large-desktop"===Ge||"desktop"===Ge?3:"tablet"===Ge?2:"mobile"===Ge?1:0,qe=null===(oe=null==xe?void 0:xe[null==Pe?void 0:Pe.selectedTab])||void 0===oe?void 0:oe.ratePlan,ze=null!==(ne=null!==(ie=null==qe?void 0:qe.derivedPrice)&&void 0!==ie?ie:null==qe?void 0:qe.listPrice)&&void 0!==ne?ne:0,Ke=e=>{const l=null==e?void 0:e.map((e,l)=>{var o,i,n,t,d,v,a,r;return{displayName:null===(o=null==e?void 0:e.recomApiResponse)||void 0===o?void 0:o.name,productId:null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id,priceValue:null===(t=null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.oneTimePrice)||void 0===t?void 0:t.base,index:l,variant:null===(v=null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.variantCategory)||void 0===v?void 0:v.color,storage:null===(r=null===(a=null==e?void 0:e.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.storage}});w(l)};return e.createElement(e.Fragment,null,Le&&((null==Pe?void 0:Pe.selectedTab)===Me?e.createElement(W,null):e.createElement(Y,{content:F})),fe&&F&&((null===(te=null==De?void 0:De[null==Pe?void 0:Pe.selectedTab])||void 0===te?void 0:te.length)>0||ye)&&e.createElement("div",{className:`${t.mainPage}`},(null===(de=null==F?void 0:F.progressionBar)||void 0===de?void 0:de[0])&&e.createElement(n,{content:null===(ve=null==F?void 0:F.progressionBar)||void 0===ve?void 0:ve[0]}),e.createElement(C,null,e.createElement("div",null,e.createElement("div",{className:`${t.title}`},e.createElement(d,{content:null==F?void 0:F.recommendationLabel})),Object.keys(xe||{}).filter(e=>null==Fe?void 0:Fe.includes(e)).length<=1&&!Ie&&e.createElement("div",{className:`${t.deviceText}`},null==F?void 0:F.compatibleText,e.createElement("span",{className:t.deviceName},Ee)))),Object.keys(xe||{}).filter(e=>null==Fe?void 0:Fe.includes(e)).length>1&&e.createElement("div",{className:t.tabsContainer},null===(re=null===(ae=(null==F?void 0:F.recommendationType)||[])||void 0===ae?void 0:ae.filter(e=>null==xe?void 0:xe[e]))||void 0===re?void 0:re.map(l=>{const o=Object.keys((null==_e?void 0:_e[l])||{}).length,i=l===m?null==F?void 0:F.accessoryTitle:l===b?null==F?void 0:F.watchesTitle:l===E?null==F?void 0:F.tabletsTitle:l;return e.createElement("button",{key:l,className:`${t.tabButton} ${Pe.selectedTab===l?t.activeTab:""}`,onClick:()=>{Pe.selectedTab!==l&&((e,l)=>{let o=l;e===m&&(null==F?void 0:F.accessoryAnalyticsTitle)?o=F.accessoryAnalyticsTitle:e===E&&(null==F?void 0:F.tabletsAnalyticsTitle)?o=F.tabletsAnalyticsTitle:e===b&&(null==F?void 0:F.watchesAnalyticsTitle)&&(o=F.watchesAnalyticsTitle),k(x,O,{component:L,click_text:o}),We(e)})(l,i)},disabled:!(null==xe?void 0:xe[l])},i,o>0&&e.createElement("span",{className:t.tabCount},o))})),(Pe.selectedTab===b&&(null==F?void 0:F.watchesInfoBannerText)||Pe.selectedTab===E&&(null==F?void 0:F.tabletsInfoBannerText))&&e.createElement("div",{className:t.infoBanner},e.createElement("div",{className:t.infoBannerContent},e.createElement("img",{className:t.infoIcon,src:null===(se=null==F?void 0:F.esimIcon)||void 0===se?void 0:se.filename}),e.createElement("span",null,e.createElement("span",null,J(Pe.selectedTab===b?null==F?void 0:F.watchesInfoBannerText:null==F?void 0:F.tabletsInfoBannerText,[q(ze)])),e.createElement("span",{className:t.learnMoreText,onClick:()=>{k(x,R,{component:S,click_text:j}),Te(Pe.selectedTab)}},null==F?void 0:F.learnMoreText)))),Ie&&e.createElement(r,{content:{paymentHeadingText:null==F?void 0:F.paymentHeadingText,paymentOptions:null==F?void 0:F.paymentOptions,paymentTypeChngePopup:null===(ue=null==F?void 0:F.paymentTypeChngePopup)||void 0===ue?void 0:ue[0],paymentTypeChngePopupOnetime:null===(ce=null==F?void 0:F.paymentTypeChngePopupOnetime)||void 0===ce?void 0:ce[0]}}),ye&&!(null===(me=null==De?void 0:De[null==Pe?void 0:Pe.selectedTab])||void 0===me?void 0:me.length)?e.createElement(a,{cards:Je}):e.createElement(v,{content:F,tabIndex:1,checkingviewPort:Ge,isSubscriptionFlow:Ie})),he&&(()=>{var l,o,i,n,v,a,r,s,u,c,m,p,y,g,f;const h=(()=>{var e,l;return he===b?null===(e=null==F?void 0:F.watchesPopup)||void 0===e?void 0:e[0]:null===(l=null==F?void 0:F.tabletsPopup)||void 0===l?void 0:l[0]})();return k(x,D,{component:B,message_title:null===(a=null===(v=null===(n=null===(i=null===(o=null===(l=null==h?void 0:h.heading)||void 0===l?void 0:l.content)||void 0===o?void 0:o[0])||void 0===i?void 0:i.content)||void 0===n?void 0:n[0])||void 0===v?void 0:v.text)||void 0===a?void 0:a.slice(0,100),message_description:null===(p=null===(m=null===(c=null===(u=null===(s=null===(r=null==h?void 0:h.description)||void 0===r?void 0:r.content)||void 0===s?void 0:s[0])||void 0===u?void 0:u.content)||void 0===c?void 0:c[0])||void 0===m?void 0:m.text)||void 0===p?void 0:p.slice(0,100),message_type:N}),e.createElement(K,{modalState:!!he,handler:()=>Te(null),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Ge||"desktop"===Ge||"tablet"===Ge?"624px":"",noCloseButton:!1,backDrop:!0},e.createElement("div",{className:t.watchInfoModal},(null==h?void 0:h.heading)&&e.createElement("div",{className:t.modalHeading},e.createElement(d,{content:h.heading})),(null==h?void 0:h.description)&&e.createElement("div",{className:t.modalDescription},e.createElement(d,{content:h.description})),e.createElement("div",{className:t.modalButtons},(null==h?void 0:h.link)&&e.createElement("a",{href:z(Ue,(null===(y=h.link)||void 0===y?void 0:y.cached_url)||(null===(g=h.link)||void 0===g?void 0:g.url)),target:"_blank",rel:"noopener noreferrer",className:t.factSheetLink},h.linkText),(null===(f=null==h?void 0:h.button)||void 0===f?void 0:f.length)>0&&e.createElement(Q,{content:h.button[0],onClick:()=>{k(x,M,{component:S,click_text:_}),Te(null)},metadata:void 0,wafIdentifier:""}))))})())},ee=l=>e.createElement(F,null,e.createElement(Z,Object.assign({},l)));export{ee as default};
1
+ import e,{useState as l,useRef as o,useEffect as i}from"react";import n from"../ProgressionBar/progressionBar.js";import t from"./MultiItemAccessoriesPageStyle.module.scss.js";import d from"../../richtext.js";import v from"../Accessory-card/AccessoryCard.js";import a from"../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js";import s from"../PaymentTypeTabs/PaymentTypeTabs.js";import r from"../../../services/MultiItemAccessories/storyBlokService.js";import{getCookie as u}from"cookies-next";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as c,ACCESSORY as m,CONTRACT as p,MOBILERATEPLAN as y,INTERNETFLOW as g,TV as f,WATCHES as b,MOBILEACCESSORIES as h,BASE as T,MONTHLY as A,TABLETS as E}from"../../../utils/constants.js";import I from"../../ResponsiveRow/row.js";import{trackViewItem as C,setMmcItemTracker as w,trackNewDatalayerEvent as k}from"../../../utils/AnalyticsUtils.js";import{VIEWEACHITEM as P,LEARNMORE as j,LINK as S,CTATEXTCLICK as R,GAEVENT as x,INFO as N,POPUP as B,OPENPOPUP as L,CONTENT as O,TABCLICK as _,CONTINUE as D,CTABUTTONCLICK as M}from"../../../Analytics/AnalyticsConstants.js";import{useMultiAccessoryContext as V}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as U}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import F from"../multiItemAccessoryStore/MultiAccessoryProvider.js";import{useMultiAccessoryUpdateCartActions as H}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import{rp_lastcartItemWithParentPOType as W,viewport as $,replacePlaceholder as G,countZero as J,getSBAssetUrl as q}from"../../../utils/utils.js";import z from"../Accessory-card/AccessoryModal.js";import K from"../../FalconButtonV2/FalconButtonV2.js";import{AssetPathPropConfig as Q}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";const X=({content:F,metadata:X})=>{var Y,Z,ee,le,oe,ie,ne,te,de,ve,ae,se,re,ue;const ce=null==X?void 0:X.lang,[me,pe]=l(!1),[ye,ge]=l(!1),[fe,be]=l(null),he=u("one-commerce-cartId"),[Te,Ae]=l(""),[Ee,Ie]=l(!1),Ce=o({}),{store:we,dispatch:ke}=V(),Pe=U(ke),je=H(),{recommendedAccessories:Se,isFetchingRecommendedAccessories:Re,deviceSessionValues:xe,multiItemAccessoriessList:Ne,loading:Be,isLoadingCartData:Le,cartData:Oe,previousTab:_e}=we,De=null===(Y=null==Se?void 0:Se[null==we?void 0:we.selectedTab])||void 0===Y?void 0:Y.hardware,Me=null===(Z=null==Q?void 0:Q.getInstance())||void 0===Z?void 0:Z.getAssetPath(),Ve=null==F?void 0:F.recommendationType,Ue={};i(()=>{var e,l,o,i;ge(!0);const n=null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem(c),t=n?JSON.parse(n):{};Ce.current=t;const d=Object.assign(Object.assign({},t),{cartId:he});Pe.setDeviceSessionValues(d),null==Pe||Pe.setSelectedTab(null==F?void 0:F.defaultTabSelection),Ae(null===(i=null===(o=null===(l=null===(e=null==t?void 0:t.hardwareVariant)||void 0===e?void 0:e.note)||void 0===l?void 0:l.filter(e=>"hardwareGroupName"===e.author))||void 0===o?void 0:o[0])||void 0===i?void 0:i.text),pe(!0),he&&Fe(void 0,t)},[]);const Fe=(e,l)=>{var o,i;const n=null!=l?l:Ce.current;if(e&&(Pe.setPreviousTab(null==we?void 0:we.selectedTab),Pe.setSelectedTab(e)),e){if((null===(i=(null===(o=null==Se?void 0:Se[e])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.length)<=0&&(pe(!0),Pe.getRecommendedAccessory({cartId:he,recommendationsType:e})),Be)return}else je.fetchCartData(he).then(l=>{var o,i,t,d,v,a,s,r,u,c,y,g,f,b,h;const T=null!==(o=null==l?void 0:l.cartRecommendationsType)&&void 0!==o?o:[null==F?void 0:F.defaultTabSelection],A=null===(i=null==n?void 0:n.hardwareVariant)||void 0===i?void 0:i.selectedContractType,E=W(null!==(t=null==l?void 0:l.cartItem)&&void 0!==t?t:[],{},{},{}),I=!((null===(d=null==E?void 0:E.MOBILE_ORDER)||void 0===d?void 0:d.HARDWARE)||(null==E?void 0:E.STANDALONE_HARDWARE));Ie(I);const C=(Number.parseFloat(null===(u=null===(r=null===(s=null===(a=null===(v=null==E?void 0:E.MOBILE_ORDER)||void 0===v?void 0:v.HARDWARE)||void 0===a?void 0:a.itemTerm)||void 0===s?void 0:s[0])||void 0===r?void 0:r.duration)||void 0===u?void 0:u.amount)||0)>0&&("DEVICE_RENEWAL"!==(null===(g=null===(y=null===(c=null==l?void 0:l.cartItem)||void 0===c?void 0:c[0])||void 0===y?void 0:y.processType)||void 0===g?void 0:g.id)&&"DEVICE_RP_RENEWAL"!==(null===(h=null===(b=null===(f=null==l?void 0:l.cartItem)||void 0===f?void 0:f[0])||void 0===b?void 0:b.processType)||void 0===h?void 0:h.id)||(null==F?void 0:F.enableExistingSubscription))?null==Ve?void 0:Ve.filter(e=>T.includes(e)):null==Ve?void 0:Ve.filter(e=>e===m&&T.includes(e));null==C||C.forEach(e=>{Ue[e]=[]}),Pe.setRecommendedAccessories(Ue);const w=A===p?(null==C?void 0:C.includes(null==F?void 0:F.defaultTabSelection))?null==F?void 0:F.defaultTabSelection:C[0]:m;null==Pe||Pe.setSelectedTab(w),Pe.getRecommendedAccessory({cartId:he,recommendationsType:e||w})}).catch(()=>{var e,l,o,i,t;const d=!!(null===(l=null===(e=[y,g,f])||void 0===e?void 0:e.includes)||void 0===l?void 0:l.call(e,null===(o=null==De?void 0:De[0])||void 0===o?void 0:o.recommendationProcessingType))||!(null==n?void 0:n.hardwareVariant);"undefined"!=typeof window&&(window.location.href=d?null===(i=null==F?void 0:F.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(t=null==F?void 0:F.multiItemCheckoutUrl)||void 0===t?void 0:t.url)})};i(()=>{var e,l,o,i,n,t,d,v,a,s,u,c;if((null===(l=null===(e=null==Se?void 0:Se[null==Se?void 0:Se.tabkey])||void 0===e?void 0:e.hardware)||void 0===l?void 0:l.length)>0)if((null==Se?void 0:Se.tabkey)===m)null==r||r.getStoryBlokData(ce,null===(i=null===(o=null==Se?void 0:Se[null==Se?void 0:Se.tabkey])||void 0===o?void 0:o.hardware)||void 0===i?void 0:i.map(e=>null==e?void 0:e.baseProducts),null==F?void 0:F.parentSlugUrl).then(e=>{He(e,null==Se?void 0:Se.tabkey)});else{const e=(null==Se?void 0:Se.tabkey)===b?null===(d=null===(t=null===(n=null==F?void 0:F.watchMasterList)||void 0===n?void 0:n[0])||void 0===t?void 0:t.reference)||void 0===d?void 0:d.content:null===(s=null===(a=null===(v=null==F?void 0:F.tabletMasterList)||void 0===v?void 0:v[0])||void 0===a?void 0:a.reference)||void 0===s?void 0:s.content;He(e,null==Se?void 0:Se.tabkey)}else Re&&he||Le||"undefined"==typeof window||(window.location.href=Ee?null===(u=null==F?void 0:F.winCheckoutUrl)||void 0===u?void 0:u.cached_url:null===(c=null==F?void 0:F.multiItemCheckoutUrl)||void 0===c?void 0:c.url)},[Se]);const He=(e,l)=>{var o,i,n,t,d,v,a,s;const r=null===(n=null===(i=(null===(o=null==Se?void 0:Se[l])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.filter(e=>{var l,o;return(null===(l=null==xe?void 0:xe.hardwareVariant)||void 0===l?void 0:l.selectedContractType)===p?(null===(o=null==e?void 0:e.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)>0:e}))||void 0===n?void 0:n.reduce((o,i,n)=>{var t,d,v,a,s,r,u,c,p,y,g,f,b,T,A,E,I,w,k,j,S,R,x,N,B,L,O,_,D,M,V,U;const F={image:"",type:h};let H;if(l===m){H=null===(a=null===(v=null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||void 0===v?void 0:v.filter(e=>{var l;return(null==i?void 0:i.baseProducts)===(null===(l=null==e?void 0:e.content)||void 0===l?void 0:l.productId)}))||void 0===a?void 0:a[0];const l=null===(c=null===(u=null===(r=null===(s=null==H?void 0:H.content)||void 0===s?void 0:s.body)||void 0===r?void 0:r[0])||void 0===u?void 0:u.deviceList)||void 0===c?void 0:c.find(e=>(null==e?void 0:e.devicePlanId)===(null==i?void 0:i.id));F.image=(null===(g=null===(y=null===(p=null==l?void 0:l.promoImageGallery)||void 0===p?void 0:p[0])||void 0===y?void 0:y.slideImages)||void 0===g?void 0:g[0])?null===(E=null===(A=null===(T=null===(b=null===(f=null==l?void 0:l.promoImageGallery)||void 0===f?void 0:f[0])||void 0===b?void 0:b.slideImages)||void 0===T?void 0:T[0])||void 0===A?void 0:A.image)||void 0===E?void 0:E.filename:null===(S=null===(j=null===(k=null===(w=null===(I=null==l?void 0:l.imageGallery)||void 0===I?void 0:I[0])||void 0===w?void 0:w.slideImages)||void 0===k?void 0:k[0])||void 0===j?void 0:j.image)||void 0===S?void 0:S.filename,F.type=null!==(x=null===(R=null==i?void 0:i.content)||void 0===R?void 0:R.type)&&void 0!==x?x:h}else H=null===(B=null===(N=null==e?void 0:e.body)||void 0===N?void 0:N.filter(e=>(null==i?void 0:i.baseProducts)===(null==e?void 0:e.m_p_id)))||void 0===B?void 0:B[0],F.image=null===(O=null===(L=null==H?void 0:H.images)||void 0===L?void 0:L[0])||void 0===O?void 0:O.filename,F.type=null!==(D=null===(_=null==i?void 0:i.content)||void 0===_?void 0:_.type)&&void 0!==D?D:h;return H&&(o.push({sbStoryItem:H,imageData:F,recomApiResponse:i}),C(P,P,{displayName:null==i?void 0:i.name,productId:null==i?void 0:i.id,priceValue:null===(M=null==i?void 0:i.oneTimePrice)||void 0===M?void 0:M.base,index:n,variant:null===(V=null==i?void 0:i.variantCategory)||void 0===V?void 0:V.color,storage:null===(U=null==i?void 0:i.variantCategory)||void 0===U?void 0:U.storage})),o},[]);(null==r?void 0:r.length)>0&&(null===(v=(null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||(null==e?void 0:e.body))||void 0===v?void 0:v.length)>0?Pe.setMultiItemAccessoriessList(Object.assign(Object.assign({},Ne),{[l]:r})):window.location.href=Ee?null===(a=null==F?void 0:F.winCheckoutUrl)||void 0===a?void 0:a.cached_url:null===(s=null==F?void 0:F.multiItemCheckoutUrl)||void 0===s?void 0:s.url,pe(!1),qe(r)};i(()=>{var e;null===(e=(null==Ne?void 0:Ne[null==we?void 0:we.selectedTab])||[])||void 0===e||e.filter(e=>{var l,o,i;(null===(o=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.paymentType)||void 0===o?void 0:o.toLowerCase())&&Pe.setSelectedPaymentType((null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.paymentType.toLowerCase())===A?p:T)})},[Ne]);const We=$(),$e="large-desktop"===We||"desktop"===We?3:"tablet"===We?2:"mobile"===We?1:0,Ge=null===(ee=null==Se?void 0:Se[null==we?void 0:we.selectedTab])||void 0===ee?void 0:ee.ratePlan,Je=null!==(oe=null!==(le=null==Ge?void 0:Ge.derivedPrice)&&void 0!==le?le:null==Ge?void 0:Ge.listPrice)&&void 0!==oe?oe:0,qe=e=>{const l=null==e?void 0:e.map((e,l)=>{var o,i,n,t,d,v,a,s;return{displayName:null===(o=null==e?void 0:e.recomApiResponse)||void 0===o?void 0:o.name,productId:null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id,priceValue:null===(t=null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.oneTimePrice)||void 0===t?void 0:t.base,index:l,variant:null===(v=null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.variantCategory)||void 0===v?void 0:v.color,storage:null===(s=null===(a=null==e?void 0:e.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===s?void 0:s.storage}});w(l)};return e.createElement(e.Fragment,null,ye&&F&&((null===(ie=null==Ne?void 0:Ne[null==we?void 0:we.selectedTab])||void 0===ie?void 0:ie.length)>0||me)&&e.createElement("div",{className:`${t.mainPage}`,id:"multi-accessory-card"},(null===(ne=null==F?void 0:F.progressionBar)||void 0===ne?void 0:ne[0])&&e.createElement(n,{content:null===(te=null==F?void 0:F.progressionBar)||void 0===te?void 0:te[0]}),e.createElement(I,null,e.createElement("div",null,e.createElement("div",{className:`${t.title}`},e.createElement(d,{content:null==F?void 0:F.recommendationLabel})),Object.keys(Se||{}).filter(e=>null==Ve?void 0:Ve.includes(e)).length<=1&&!Ee&&e.createElement("div",{className:`${t.deviceText}`},null==F?void 0:F.compatibleText,e.createElement("span",{className:t.deviceName},Te)))),Object.keys(Se||{}).filter(e=>null==Ve?void 0:Ve.includes(e)).length>1&&e.createElement("div",{className:t.tabsContainer},null===(ve=null===(de=(null==F?void 0:F.recommendationType)||[])||void 0===de?void 0:de.filter(e=>null==Se?void 0:Se[e]))||void 0===ve?void 0:ve.map(l=>{const o=Object.keys((null==Oe?void 0:Oe[l])||{}).length,i=l===m?null==F?void 0:F.accessoryTitle:l===b?null==F?void 0:F.watchesTitle:l===E?null==F?void 0:F.tabletsTitle:l;return e.createElement("button",{key:l,className:`${t.tabButton} ${we.selectedTab===l?t.activeTab:""}`,onClick:()=>{we.selectedTab!==l&&((e,l)=>{let o=l;e===m&&(null==F?void 0:F.accessoryAnalyticsTitle)?o=F.accessoryAnalyticsTitle:e===E&&(null==F?void 0:F.tabletsAnalyticsTitle)?o=F.tabletsAnalyticsTitle:e===b&&(null==F?void 0:F.watchesAnalyticsTitle)&&(o=F.watchesAnalyticsTitle),k(x,_,{component:O,click_text:o}),Fe(e)})(l,i)},disabled:!(null==Se?void 0:Se[l])},i,o>0&&e.createElement("span",{className:t.tabCount},o))})),(we.selectedTab===b&&(null==F?void 0:F.watchesInfoBannerText)||we.selectedTab===E&&(null==F?void 0:F.tabletsInfoBannerText))&&e.createElement("div",{className:t.infoBanner},e.createElement("div",{className:t.infoBannerContent},e.createElement("img",{className:t.infoIcon,src:null===(ae=null==F?void 0:F.esimIcon)||void 0===ae?void 0:ae.filename}),e.createElement("span",null,e.createElement("span",null,G(we.selectedTab===b?null==F?void 0:F.watchesInfoBannerText:null==F?void 0:F.tabletsInfoBannerText,[J(Je)])),e.createElement("span",{className:t.learnMoreText,onClick:()=>{k(x,R,{component:S,click_text:j}),be(we.selectedTab)}},null==F?void 0:F.learnMoreText)))),Ee&&e.createElement(s,{content:{paymentHeadingText:null==F?void 0:F.paymentHeadingText,paymentOptions:null==F?void 0:F.paymentOptions,paymentTypeChngePopup:null===(se=null==F?void 0:F.paymentTypeChngePopup)||void 0===se?void 0:se[0],paymentTypeChngePopupOnetime:null===(re=null==F?void 0:F.paymentTypeChngePopupOnetime)||void 0===re?void 0:re[0]}}),me&&!(null===(ue=null==Ne?void 0:Ne[null==we?void 0:we.selectedTab])||void 0===ue?void 0:ue.length)?e.createElement(a,{cards:$e}):e.createElement(v,{content:F,tabIndex:1,checkingviewPort:We,isSubscriptionFlow:Ee})),fe&&(()=>{var l,o,i,n,v,a,s,r,u,c,m,p,y,g,f;const h=(()=>{var e,l;return fe===b?null===(e=null==F?void 0:F.watchesPopup)||void 0===e?void 0:e[0]:null===(l=null==F?void 0:F.tabletsPopup)||void 0===l?void 0:l[0]})();return k(x,L,{component:B,message_title:null===(a=null===(v=null===(n=null===(i=null===(o=null===(l=null==h?void 0:h.heading)||void 0===l?void 0:l.content)||void 0===o?void 0:o[0])||void 0===i?void 0:i.content)||void 0===n?void 0:n[0])||void 0===v?void 0:v.text)||void 0===a?void 0:a.slice(0,100),message_description:null===(p=null===(m=null===(c=null===(u=null===(r=null===(s=null==h?void 0:h.description)||void 0===s?void 0:s.content)||void 0===r?void 0:r[0])||void 0===u?void 0:u.content)||void 0===c?void 0:c[0])||void 0===m?void 0:m.text)||void 0===p?void 0:p.slice(0,100),message_type:N}),e.createElement(z,{modalState:!!fe,handler:()=>be(null),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===We||"desktop"===We||"tablet"===We?"624px":"",noCloseButton:!1,backDrop:!0},e.createElement("div",{className:t.watchInfoModal},(null==h?void 0:h.heading)&&e.createElement("div",{className:t.modalHeading},e.createElement(d,{content:h.heading})),(null==h?void 0:h.description)&&e.createElement("div",{className:t.modalDescription},e.createElement(d,{content:h.description})),e.createElement("div",{className:t.modalButtons},(null==h?void 0:h.link)&&e.createElement("a",{href:q(Me,(null===(y=h.link)||void 0===y?void 0:y.cached_url)||(null===(g=h.link)||void 0===g?void 0:g.url)),target:"_blank",rel:"noopener noreferrer",className:t.factSheetLink},h.linkText),(null===(f=null==h?void 0:h.button)||void 0===f?void 0:f.length)>0&&e.createElement(K,{content:h.button[0],onClick:()=>{k(x,M,{component:S,click_text:D}),be(null)},metadata:void 0,wafIdentifier:""}))))})())},Y=l=>e.createElement(F,null,e.createElement(X,Object.assign({},l)));export{Y as default};
2
2
  //# sourceMappingURL=MultiItemAccessoriesPage.js.map