@sunrise-upc/mobile-prod-card 12.0.2 → 12.1.0-beta.0

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 (180) hide show
  1. package/README.md +41 -41
  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.map +1 -1
  5. package/dist/esm/components/Accessories/Accessory-card/AccessoryModal.js.map +1 -1
  6. package/dist/esm/components/Accessories/AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js.map +1 -1
  7. package/dist/esm/components/Accessories/AccessoryPreviewCardSkeletonBody/AccessoryPreviewCardSkeletonBody.js.map +1 -1
  8. package/dist/esm/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js.map +1 -1
  9. package/dist/esm/components/Accessories/DeviceCarouselComponent.js.map +1 -1
  10. package/dist/esm/components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js.map +1 -1
  11. package/dist/esm/components/Accessories/PaymentTypeTabs/PaymentTypeTabs.js.map +1 -1
  12. package/dist/esm/components/Accessories/ProgressionBar/progressionBar.js.map +1 -1
  13. package/dist/esm/components/Accessories/multiItemAccessoryStore/MultiAccessoryProvider.js.map +1 -1
  14. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryActions.js.map +1 -1
  15. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryContext.js.map +1 -1
  16. package/dist/esm/components/Accessories/multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js.map +1 -1
  17. package/dist/esm/components/BenefitWrapper/BenefitValidate.js.map +1 -1
  18. package/dist/esm/components/BenefitWrapper/BenefitWrapper.js.map +1 -1
  19. package/dist/esm/components/BenefitWrapper/Benefits.js.map +1 -1
  20. package/dist/esm/components/BenefitWrapper/BenefitsValidateWrapper.js.map +1 -1
  21. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/esm/components/Breadcrumb/useScrollCheck.js.map +1 -1
  23. package/dist/esm/components/CardComp/Card.js.map +1 -1
  24. package/dist/esm/components/CardEntitlement/CardEntitlement.js.map +1 -1
  25. package/dist/esm/components/CountryOverlays/CountryOverlays.js.map +1 -1
  26. package/dist/esm/components/CountryOverlays/OverlayModal.js.map +1 -1
  27. package/dist/esm/components/DeviceCardWrapper/DeviceCards/DeviceCards.js.map +1 -1
  28. package/dist/esm/components/DeviceCardWrapper/DevicePrice/DevicePrice.js.map +1 -1
  29. package/dist/esm/components/DeviceCardWrapper/DevicePriceWrapper/DevicePriceWrapper.js.map +1 -1
  30. package/dist/esm/components/Dotloader/Dotloader.js.map +1 -1
  31. package/dist/esm/components/DynamicPriceComp/DynamicPrice.js.map +1 -1
  32. package/dist/esm/components/FalconAccordionList/FalconAccordion.js.map +1 -1
  33. package/dist/esm/components/FalconAccordionList/FalconAccordionList.js.map +1 -1
  34. package/dist/esm/components/FalconButtonV2/FalconButtonV2.js.map +1 -1
  35. package/dist/esm/components/FalconDescription/FalconDescription.js.map +1 -1
  36. package/dist/esm/components/FalconMessage/FalconMessage.js.map +1 -1
  37. package/dist/esm/components/FalconTitle/FalconTitle.js.map +1 -1
  38. package/dist/esm/components/GenericMessage/GenericMessage.js.map +1 -1
  39. package/dist/esm/components/Gift/ChooseGiftV2.js.map +1 -1
  40. package/dist/esm/components/Gift/GiftConfigV2.js.map +1 -1
  41. package/dist/esm/components/HeroLogin/HeroLogin.js.map +1 -1
  42. package/dist/esm/components/LineCheckV3/APIResourceConstants.js.map +1 -1
  43. package/dist/esm/components/LineCheckV3/AutoComplete.js.map +1 -1
  44. package/dist/esm/components/LineCheckV3/GenericModal.js.map +1 -1
  45. package/dist/esm/components/LineCheckV3/IndividualLineCheck.js.map +1 -1
  46. package/dist/esm/components/LineCheckV3/LineCheckInput.js.map +1 -1
  47. package/dist/esm/components/LineCheckV3/LineCheckOverlay.js.map +1 -1
  48. package/dist/esm/components/LineCheckV3/LineCheckV3.js.map +1 -1
  49. package/dist/esm/components/LineCheckV3/LinecheckModal.js.map +1 -1
  50. package/dist/esm/components/LineCheckV3/LinecheckService.js.map +1 -1
  51. package/dist/esm/components/LineCheckV3/Success.js.map +1 -1
  52. package/dist/esm/components/LineCheckV3/api-constants.js.map +1 -1
  53. package/dist/esm/components/NewLineCheck/AdvanceSearch.js.map +1 -1
  54. package/dist/esm/components/NewLineCheck/CheckCoverage.js.map +1 -1
  55. package/dist/esm/components/NewLineCheck/CoverCheckWrapper.js.map +1 -1
  56. package/dist/esm/components/NewLineCheck/CoverageCheckModal.js.map +1 -1
  57. package/dist/esm/components/NewLineCheck/CoverageCheckUtils.js.map +1 -1
  58. package/dist/esm/components/NewLineCheck/GenericModal.js.map +1 -1
  59. package/dist/esm/components/NewLineCheck/LocationFinder.js.map +1 -1
  60. package/dist/esm/components/NewLineCheck/NewLCInput.js.map +1 -1
  61. package/dist/esm/components/NewLineCheck/SuccessCoverage.js.map +1 -1
  62. package/dist/esm/components/NotificationToast/NotificationToast.js.map +1 -1
  63. package/dist/esm/components/OttMiniSummaryCard/OttMiniSummaryCard.js.map +1 -1
  64. package/dist/esm/components/PretoPost/PreToPostSubsPopup.js.map +1 -1
  65. package/dist/esm/components/ProductDetailsComp/ProductDetails.js.map +1 -1
  66. package/dist/esm/components/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  67. package/dist/esm/components/ProductDetailsV3/BenefitsSectionV3.js.map +1 -1
  68. package/dist/esm/components/ProductDetailsV3/CashBackV2/CashbackV2.js.map +1 -1
  69. package/dist/esm/components/ProductDetailsV3/ChooseGiftV2.js.map +1 -1
  70. package/dist/esm/components/ProductDetailsV3/GiftConfigV2.js.map +1 -1
  71. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  72. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsV2.js.map +1 -1
  73. package/dist/esm/components/ProductDetailsV3/ProductEntitlement.js.map +1 -1
  74. package/dist/esm/components/ProductDetailsV3/ProductPriceV3.js.map +1 -1
  75. package/dist/esm/components/ProductDetailsV3/ReactInputSelectV2/ReactInputSelectV2.js.map +1 -1
  76. package/dist/esm/components/ProductDetailsV3/tv/EntertainmentOptionsV2/EntertainmentOptionsV2.js.map +1 -1
  77. package/dist/esm/components/ProductDetailsV3/tv/TVChannelOfferV2.js.map +1 -1
  78. package/dist/esm/components/ProductTeaser/ProductTeaser.js.map +1 -1
  79. package/dist/esm/components/ProductTeaser/ProductTeaserSlides.js.map +1 -1
  80. package/dist/esm/components/ProgressionBar/ProgressionBar.js.map +1 -1
  81. package/dist/esm/components/ReactInputSelect/ReactInputSelect.js.map +1 -1
  82. package/dist/esm/components/RecommendedOptions/RecommendedOptions.js.map +1 -1
  83. package/dist/esm/components/RecommendedOptions/RecommendedOptionsUtils.js.map +1 -1
  84. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ItemsCounter.js.map +1 -1
  85. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceDetailSection.js.map +1 -1
  86. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceOptionCard.js.map +1 -1
  87. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionLoader.js.map +1 -1
  88. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionPrice/ServiceOptionPrice.js.map +1 -1
  89. package/dist/esm/components/ResponsiveRow/row.js.map +1 -1
  90. package/dist/esm/components/SkeletonLoader/SkeletonLoader.js.map +1 -1
  91. package/dist/esm/components/Spacer/Spacer.js.map +1 -1
  92. package/dist/esm/components/StaticLineTable/CheckoutButton.js.map +1 -1
  93. package/dist/esm/components/StaticLineTable/DynamicPriceSection.js.map +1 -1
  94. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionCards.js.map +1 -1
  95. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionModal.js.map +1 -1
  96. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsLoader/OttServiceOptionsLoader.js.map +1 -1
  97. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsModal.js.map +1 -1
  98. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsPopup.js.map +1 -1
  99. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js.map +1 -1
  100. package/dist/esm/components/StaticLineTable/Product.utils.js.map +1 -1
  101. package/dist/esm/components/StaticLineTable/StaticBenefit.js.map +1 -1
  102. package/dist/esm/components/StaticLineTable/StaticExclusiveBenefit.js.map +1 -1
  103. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js.map +1 -1
  104. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/util.js.map +1 -1
  105. package/dist/esm/components/StaticLineTable/StaticLineTable.css +1 -1
  106. package/dist/esm/components/StaticLineTable/StaticLineTable.js +1 -1
  107. package/dist/esm/components/StaticLineTable/StaticLineTable.js.map +1 -1
  108. package/dist/esm/components/StaticLineTable/StaticLineTable.module.scss.js +1 -1
  109. package/dist/esm/components/StaticLineTable/StaticLineTableStore/StaticLineTableProvider.js.map +1 -1
  110. package/dist/esm/components/StaticLineTable/StaticProduct.js +1 -1
  111. package/dist/esm/components/StaticLineTable/StaticProduct.js.map +1 -1
  112. package/dist/esm/components/StaticLineTable/StaticProductCashback.js.map +1 -1
  113. package/dist/esm/components/StaticLineTable/StaticProductContainer.js +1 -1
  114. package/dist/esm/components/StaticLineTable/StaticProductContainer.js.map +1 -1
  115. package/dist/esm/components/StaticLineTable/StaticProductDetails.js.map +1 -1
  116. package/dist/esm/components/StaticLineTable/StaticProductDetailsModal.js.map +1 -1
  117. package/dist/esm/components/StaticLineTable/StaticProductEntitlement.js.map +1 -1
  118. package/dist/esm/components/StaticLineTable/TVChannelModal.js.map +1 -1
  119. package/dist/esm/components/StaticLineTable/TvOptionsContainer.js.map +1 -1
  120. package/dist/esm/components/StaticLineTable/WorldPassPopup.js.map +1 -1
  121. package/dist/esm/components/StaticPriceComp/StaticPriceComp.js.map +1 -1
  122. package/dist/esm/components/StickyBottomSheet/StickyBottomSheet.js.map +1 -1
  123. package/dist/esm/components/StickyProductAnchor/StickyProductAnchor.js.map +1 -1
  124. package/dist/esm/components/Table/table.js.map +1 -1
  125. package/dist/esm/components/ToolTip/ToolTip.js.map +1 -1
  126. package/dist/esm/components/UltimateBundleLinetable/DpDetailsModal/DpDetailsModal.js.map +1 -1
  127. package/dist/esm/components/UltimateBundleLinetable/DpLinetableContainer.js.map +1 -1
  128. package/dist/esm/components/UltimateBundleLinetable/DpProduct.js.map +1 -1
  129. package/dist/esm/components/UltimateBundleLinetable/DpTabContainer.js.map +1 -1
  130. package/dist/esm/components/UltimateBundleLinetable/DpTableDeviceSection/DpTableDeviceSection.js.map +1 -1
  131. package/dist/esm/components/UltimateBundleLinetable/DpTableFlexSection/DpTableFlexSection.js.map +1 -1
  132. package/dist/esm/components/UltimateBundleLinetable/DpTableMobileSection/DpTableMobileSection.js.map +1 -1
  133. package/dist/esm/components/UltimateBundleLinetable/DpTableUtils.js.map +1 -1
  134. package/dist/esm/components/UltimateBundleLinetable/checkoutRedirectionPopup/checkoutRedirectionPopup.js.map +1 -1
  135. package/dist/esm/components/UserLoggedPricesToggle/UserLoggedPricesToggle.js.map +1 -1
  136. package/dist/esm/components/button/Button.js.map +1 -1
  137. package/dist/esm/components/freshProductBanner/FreshProductDetails.js.map +1 -1
  138. package/dist/esm/components/freshProductBanner/ProductDetailsModal.js.map +1 -1
  139. package/dist/esm/components/freshProductBanner/Timer/ExpiredTimer.js.map +1 -1
  140. package/dist/esm/components/freshProductBanner/Timer/Timer.js.map +1 -1
  141. package/dist/esm/components/freshProductBanner/Timer/util.js.map +1 -1
  142. package/dist/esm/components/freshProductBanner/freshProductBanner.js.map +1 -1
  143. package/dist/esm/components/lineTable/BundleProductsV3.js.map +1 -1
  144. package/dist/esm/components/lineTable/LineTableV3.utils.js.map +1 -1
  145. package/dist/esm/components/lineTable/OrderButton.js.map +1 -1
  146. package/dist/esm/components/lineTable/ProductContainerV3.js.map +1 -1
  147. package/dist/esm/components/lineTable/ProductTableV3.js.map +1 -1
  148. package/dist/esm/components/lineTable/ProductV3.js.map +1 -1
  149. package/dist/esm/components/login/LoginModalV2.js.map +1 -1
  150. package/dist/esm/components/login/LoginV2.js.map +1 -1
  151. package/dist/esm/components/login/MfaPhase2/DepricatingChannels.js.map +1 -1
  152. package/dist/esm/components/login/MfaPhase2/NewNumber.js.map +1 -1
  153. package/dist/esm/components/login/MfaPhase2/OtpValidation.js.map +1 -1
  154. package/dist/esm/components/login/MfaPhase2/ResetPwdModal.js.map +1 -1
  155. package/dist/esm/components/richtext.js.map +1 -1
  156. package/dist/esm/components/sharedCarousel/CarouselComponent.js.map +1 -1
  157. package/dist/esm/models/Analytics/items.js.map +1 -1
  158. package/dist/esm/services/DevicePropConfig.js.map +1 -1
  159. package/dist/esm/services/DeviceService.js.map +1 -1
  160. package/dist/esm/services/LineTableBasicPropConfig.js.map +1 -1
  161. package/dist/esm/services/LineTableService.js +1 -1
  162. package/dist/esm/services/LineTableService.js.map +1 -1
  163. package/dist/esm/services/LinecheckBasicPropConfig.js.map +1 -1
  164. package/dist/esm/services/LoginBasicPropConfig.js.map +1 -1
  165. package/dist/esm/services/LoginServiceV2.js +1 -1
  166. package/dist/esm/services/LoginServiceV2.js.map +1 -1
  167. package/dist/esm/services/MultiItemAccessories/multiItemAccessoryService.js.map +1 -1
  168. package/dist/esm/services/MultiItemAccessories/multiitemAccessoriesUpdateCartService.js.map +1 -1
  169. package/dist/esm/services/MultiItemAccessories/storyBlokService.js.map +1 -1
  170. package/dist/esm/services/ProductTeaserPropsConfig.js.map +1 -1
  171. package/dist/esm/services/ServiceOptionsPropConfig.js.map +1 -1
  172. package/dist/esm/services/StickyBottomSheetConfig.js.map +1 -1
  173. package/dist/esm/services/api-constants.js.map +1 -1
  174. package/dist/esm/utils/AnalyticsUtils.js.map +1 -1
  175. package/dist/esm/utils/DeviceUtils.js.map +1 -1
  176. package/dist/esm/utils/constants.js.map +1 -1
  177. package/dist/esm/utils/global.js.map +1 -1
  178. package/dist/esm/utils/store/card-context.js.map +1 -1
  179. package/dist/esm/utils/utils.js.map +1 -1
  180. package/package.json +87 -85
package/README.md CHANGED
@@ -1,42 +1,42 @@
1
- # README #
2
- # Reusable Func Component
3
-
4
- Starter code base to create a reusable functional react component for the sunrise b2c digital development team.
5
-
6
- ### What is this repository for? ###
7
-
8
- * Summary
9
- * Typescript & Rollup are used to create and bundle the reusable components.
10
- * Version
11
- * v1.0.0
12
-
13
- ### How do I get set up? ###
14
-
15
- * Summary of set up for new
16
- * Clone the code from this repo and remove this project references from files like package.json and rollup.config.mjs
17
- * __package.json__
18
- * Please change the name and dependency details based on the your requirment
19
- * add the peerDependency based on the your requirment
20
- * __rollup.config.mjs__
21
- * change the name in output configuration
22
- ```
23
- output:[
24
- {
25
- file:'dist/cjs/index.js',
26
- format:'cjs',
27
- sourcemap:true,
28
- name:'sunrise-fun-comp-lib'
29
- },
30
- {
31
- file:"dist/esm/index.js",
32
- format:'esm',
33
- sourcemap:true
34
- }
35
- ]
36
- ```
37
-
38
-
39
- ### Upload into private NPM package ###
40
-
41
- * before upload the package into NPM repo. Please connect with Leads
1
+ # README #
2
+ # Reusable Func Component
3
+
4
+ Starter code base to create a reusable functional react component for the sunrise b2c digital development team.
5
+
6
+ ### What is this repository for? ###
7
+
8
+ * Summary
9
+ * Typescript & Rollup are used to create and bundle the reusable components.
10
+ * Version
11
+ * v1.0.0
12
+
13
+ ### How do I get set up? ###
14
+
15
+ * Summary of set up for new
16
+ * Clone the code from this repo and remove this project references from files like package.json and rollup.config.mjs
17
+ * __package.json__
18
+ * Please change the name and dependency details based on the your requirment
19
+ * add the peerDependency based on the your requirment
20
+ * __rollup.config.mjs__
21
+ * change the name in output configuration
22
+ ```
23
+ output:[
24
+ {
25
+ file:'dist/cjs/index.js',
26
+ format:'cjs',
27
+ sourcemap:true,
28
+ name:'sunrise-fun-comp-lib'
29
+ },
30
+ {
31
+ file:"dist/esm/index.js",
32
+ format:'esm',
33
+ sourcemap:true
34
+ }
35
+ ]
36
+ ```
37
+
38
+
39
+ ### Upload into private NPM package ###
40
+
41
+ * before upload the package into NPM repo. Please connect with Leads
42
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsConstants.js","sources":["../../../src/Analytics/AnalyticsConstants.ts"],"sourcesContent":["export const ADDTOCART = 'addtocart';\r\nexport const BRAND = 'Sunrise';\r\nexport const CURRENCY = 'CHF';\r\nexport const STICKYLINETABLE = 'Sticky Line Table';\r\nexport const SELECTPROMOTION = 'select_promotion';\r\nexport const VIEWPROMOTION = 'view_promotion';\r\nexport const VIEWOPTIONPOPUP = 'view_option_popup';\r\nexport const CLOSEOPTIONPOPUP = 'close_option_popup';\r\nexport const CTABUTTONCLICK = 'cta_button_click';\r\nexport const CTATEXTCLICK = 'cta_text_click';\r\nexport const DOWNLOADPRODUCT = 'download_product_details';\r\nexport const ADDOPTIONTOCART = 'add_option_to_cart';\r\nexport const BUNDLEPRODUCT = 'BUNDLE';\r\nexport const GAEVENT = 'gaEvent';\r\nexport const STAGETEASER = 'Stage Teaser';\r\nexport const LINETABLE = 'Line Table';\r\nexport const LINETABLEPRODUCT = 'Line Table - Product';\r\nexport const LINETABLEDEVICE = 'Line Table - Device';\r\nexport const COMBINEDEVICE = 'combine_with_device';\r\nexport const TABCLICK = 'tab_click';\r\nexport const TOGGLE_ON_CONFIGURATOR = 'toggle_on_configurator';\r\nexport const TOGGLE_OFF_CONFIGURATOR = 'toggle_off_configurator';\r\nexport const MOBILEORDER = 'MOBILE_ORDER';\r\nexport const HOMEORDER = 'HOME_ORDER';\r\nexport const MOBILESUBSCRIPTION = 'Mobile Subscription Only';\r\nexport const INTERNETSUBSCRIPTION = 'Internet Subscription Only';\r\nexport const CMS = 'CMS';\r\nexport const ALL = 'All';\r\nexport const POPUPPROMO = 'promotion_popup';\r\n\r\nexport const TYPE = 'click';\r\nexport const SBLINECHECKSTART = 'line_check_start';\r\nexport const SBLINECHECKRESULT = 'line_check_results';\r\nexport const SBLINECHECKCHANGE = 'line_check_change';\r\nexport const SBLINECHECKEXIT = 'line_check_exit';\r\nexport const LINETABLERESULT = 'lineCheckResult';\r\nexport const VIEW = 'view';\r\nexport const LINECHECKSTART = 'lineCheckStart';\r\nexport const CHECKADDRESS = 'Check address';\r\nexport const LINEADDRESS = 'lineTableView Address';\r\nexport const CHANGE = 'Change';\r\nexport const ERRORMESSAGE = 'Missing or Invalid Error';\r\nexport const ERRORTYPE = 'error';\r\nexport const FIXNET = 'fixnet';\r\nexport const AUTHCOOKIE = 'sunriseAuth';\r\nexport const ERROR = 'error';\r\nexport const LOGIN = 'login';\r\nexport const LOGINSUCCESSFUL = 'loginSuccessful';\r\nexport const PASSWORD = 'Password';\r\nexport const PASSWORDSUCCESSFUL = 'success via password';\r\nexport const REMMSELECTED = 'Remember me | Selected';\r\nexport const REMMNOTSELECTED = 'Remember me | not selected';\r\nexport const PASSWORDUNSUCCESSFUL = 'unSuccess via password';\r\nexport const LOGINERROR = 'LoginError';\r\nexport const SUCCESSFULL = 'successful';\r\nexport const LOGINUNSUCCESSFUL = 'loginUnSuccessful';\r\nexport const FAILED = 'failed';\r\nexport const GETTEMPCODE = 'get_temporary_code';\r\nexport const LOGINUSERVERIFIED = 'userVerified';\r\nexport const SUCCESSFUL = 'success';\r\nexport const LOGINUSERNOTVERIFIED = 'userNotVerified';\r\nexport const UNSUCCESSFUL = 'unSuccess';\r\nexport const OTP = 'Enter the temporary code';\r\nexport const CHANNELSELECTION = 'Get a temporary code via SMS/Email';\r\nexport const VIA = 'via';\r\nexport const SENDOTP = 'send_otp';\r\nexport const OTPLOGINSUCCESS = 'otp_login_success';\r\nexport const OTPLOGINFAIL = 'otp_login_fail';\r\nexport const VEIW = 'view';\r\nexport const MTAN = 'MTAN';\r\nexport const LOGINNEXT = 'Next';\r\nexport const TEMPCODENEXT = 'Login Get a temporary code';\r\n\r\nexport const EXISTINGCUSTOMER = 'existing-customer';\r\nexport const NEWCUSTOMER = 'new-customer';\r\nexport const DEFAULT = 'default';\r\nexport const SUNRISEINTERNET = 'Internet';\r\nexport const SUNRISEMOBILE = 'Mobile';\r\nexport const SUNRISEBOTHSUBSCRIPTION = 'Mobile,Internet';\r\nexport const POSTPAID = 'POSTPAID';\r\nexport const CAPSINTERNET = 'INTERNET';\r\n//herobanner\r\nexport const HEROBANNER = 'HeroBanner';\r\nexport const STICKYBOTTOMSHEET = 'StickyBottomSheet';\r\n\r\n//US_31295\r\nexport const TOGGLECLICK = 'toggle_click';\r\n\r\n//US 349849\r\nexport const ACCESSORYCATEGORY = 'Accessory';\r\nexport const ACCESSORYLISTNAME = 'Device Accessories';\r\nexport const VIEWITEM = 'view_item_list';\r\nexport const REMOVEOPTIONFROMCART = 'remove_option_from_cart';\r\nexport const VIEWEACHITEM = 'view_item';\r\nexport const REMOVEFROMCART = 'remove_from_cart';\r\nexport const ADD_TO_CART = 'add_to_cart';\r\nexport const APPLYFILTER = 'apply_filter';\r\nexport const CONTENT = 'content';\r\nexport const TEXT = 'text';\r\nexport const TABLE = 'Table';\r\nexport const GENERATELEAD = 'generate_lead';\r\nexport const HARDWARE = 'Hardware';\r\nexport const LINK = 'Link';\r\nexport const CONTINUE = 'Continue';\r\nexport const LEARNMORE = 'Learn more';\r\nexport const CLOSEPOPUP ='close_popup';\r\nexport const POPUP = 'popup';\r\nexport const INFO = 'Info';\r\nexport const REPLACE = 'Replace';\r\nexport const KEEPPREVIOUS = 'Keep previous';\r\nexport const REPLACESELECTION = 'Replace selection';\r\nexport const OPENPOPUP = 'open_popup';\r\nexport const ACCORDIONCLICK = 'accordion_click';\r\nexport const FORM = 'form';\r\nexport const OPEN = 'open';\r\nexport const CLOSE = 'close';\r\n"],"names":["ADDTOCART","BRAND","CURRENCY","STICKYLINETABLE","SELECTPROMOTION","VIEWPROMOTION","VIEWOPTIONPOPUP","CTABUTTONCLICK","CTATEXTCLICK","DOWNLOADPRODUCT","ADDOPTIONTOCART","BUNDLEPRODUCT","GAEVENT","STAGETEASER","LINETABLE","LINETABLEPRODUCT","LINETABLEDEVICE","COMBINEDEVICE","TABCLICK","TOGGLE_ON_CONFIGURATOR","TOGGLE_OFF_CONFIGURATOR","CMS","ALL","POPUPPROMO","TYPE","SBLINECHECKSTART","SBLINECHECKRESULT","SBLINECHECKCHANGE","SBLINECHECKEXIT","LINETABLERESULT","VIEW","LINECHECKSTART","CHECKADDRESS","LINEADDRESS","CHANGE","ERRORMESSAGE","ERRORTYPE","FIXNET","AUTHCOOKIE","ERROR","LOGIN","LOGINSUCCESSFUL","PASSWORD","PASSWORDSUCCESSFUL","REMMSELECTED","REMMNOTSELECTED","PASSWORDUNSUCCESSFUL","LOGINERROR","SUCCESSFULL","LOGINUNSUCCESSFUL","FAILED","GETTEMPCODE","EXISTINGCUSTOMER","SUNRISEINTERNET","SUNRISEMOBILE","POSTPAID","CAPSINTERNET","HEROBANNER","STICKYBOTTOMSHEET","TOGGLECLICK","ACCESSORYCATEGORY","ACCESSORYLISTNAME","VIEWITEM","REMOVEOPTIONFROMCART","VIEWEACHITEM","REMOVEFROMCART","ADD_TO_CART","APPLYFILTER","CONTENT","TEXT","TABLE","HARDWARE","LINK","CONTINUE","LEARNMORE","CLOSEPOPUP","POPUP","INFO","REPLACE","KEEPPREVIOUS","REPLACESELECTION","OPENPOPUP","ACCORDIONCLICK","FORM","OPEN","CLOSE"],"mappings":"AAAO,MAAMA,EAAY,YACZC,EAAQ,UACRC,EAAW,MACXC,EAAkB,oBAClBC,EAAkB,mBAClBC,EAAgB,iBAChBC,EAAkB,oBAElBC,EAAiB,mBACjBC,EAAe,iBACfC,EAAkB,2BAClBC,EAAkB,qBAClBC,EAAgB,SAChBC,EAAU,UACVC,EAAc,eACdC,EAAY,aACZC,EAAmB,uBACnBC,EAAkB,sBAClBC,EAAgB,sBAChBC,EAAW,YACXC,EAAyB,yBACzBC,EAA0B,0BAK1BC,EAAM,MACNC,EAAM,MACNC,EAAa,kBAEbC,EAAO,QACPC,EAAmB,mBACnBC,EAAoB,qBACpBC,EAAoB,oBACpBC,EAAkB,kBAClBC,EAAkB,kBAClBC,EAAO,OACPC,EAAiB,iBACjBC,EAAe,gBACfC,EAAc,wBACdC,EAAS,SACTC,EAAe,2BACfC,EAAY,QACZC,EAAS,SACTC,EAAa,cACbC,EAAQ,QACRC,EAAQ,QACRC,EAAkB,kBAClBC,EAAW,WACXC,EAAqB,uBACrBC,EAAe,yBACfC,EAAkB,6BAClBC,EAAuB,yBACvBC,EAAa,aACbC,EAAc,aACdC,EAAoB,oBACpBC,EAAS,SACTC,EAAc,qBAgBdC,EAAmB,oBAGnBC,EAAkB,WAClBC,GAAgB,SAEhBC,GAAW,WACXC,GAAe,WAEfC,GAAa,aACbC,GAAoB,oBAGpBC,GAAc,eAGdC,GAAoB,YACpBC,GAAoB,qBACpBC,GAAW,iBACXC,GAAuB,0BACvBC,GAAe,YACfC,GAAiB,mBACjBC,GAAc,cACdC,GAAc,eACdC,GAAU,UACVC,GAAO,OACPC,GAAQ,QAERC,GAAW,WACXC,GAAO,OACPC,GAAW,WACXC,GAAY,aACZC,GAAY,cACZC,GAAQ,QACRC,GAAO,OACPC,GAAU,UACVC,GAAe,gBACfC,GAAmB,oBACnBC,GAAY,aACZC,GAAiB,kBACjBC,GAAO,OACPC,GAAO,OACPC,GAAQ"}
1
+ {"version":3,"file":"AnalyticsConstants.js","sources":["../../../src/Analytics/AnalyticsConstants.ts"],"sourcesContent":["export const ADDTOCART = 'addtocart';\nexport const BRAND = 'Sunrise';\nexport const CURRENCY = 'CHF';\nexport const STICKYLINETABLE = 'Sticky Line Table';\nexport const SELECTPROMOTION = 'select_promotion';\nexport const VIEWPROMOTION = 'view_promotion';\nexport const VIEWOPTIONPOPUP = 'view_option_popup';\nexport const CLOSEOPTIONPOPUP = 'close_option_popup';\nexport const CTABUTTONCLICK = 'cta_button_click';\nexport const CTATEXTCLICK = 'cta_text_click';\nexport const DOWNLOADPRODUCT = 'download_product_details';\nexport const ADDOPTIONTOCART = 'add_option_to_cart';\nexport const BUNDLEPRODUCT = 'BUNDLE';\nexport const GAEVENT = 'gaEvent';\nexport const STAGETEASER = 'Stage Teaser';\nexport const LINETABLE = 'Line Table';\nexport const LINETABLEPRODUCT = 'Line Table - Product';\nexport const LINETABLEDEVICE = 'Line Table - Device';\nexport const COMBINEDEVICE = 'combine_with_device';\nexport const TABCLICK = 'tab_click';\nexport const TOGGLE_ON_CONFIGURATOR = 'toggle_on_configurator';\nexport const TOGGLE_OFF_CONFIGURATOR = 'toggle_off_configurator';\nexport const MOBILEORDER = 'MOBILE_ORDER';\nexport const HOMEORDER = 'HOME_ORDER';\nexport const MOBILESUBSCRIPTION = 'Mobile Subscription Only';\nexport const INTERNETSUBSCRIPTION = 'Internet Subscription Only';\nexport const CMS = 'CMS';\nexport const ALL = 'All';\nexport const POPUPPROMO = 'promotion_popup';\n\nexport const TYPE = 'click';\nexport const SBLINECHECKSTART = 'line_check_start';\nexport const SBLINECHECKRESULT = 'line_check_results';\nexport const SBLINECHECKCHANGE = 'line_check_change';\nexport const SBLINECHECKEXIT = 'line_check_exit';\nexport const LINETABLERESULT = 'lineCheckResult';\nexport const VIEW = 'view';\nexport const LINECHECKSTART = 'lineCheckStart';\nexport const CHECKADDRESS = 'Check address';\nexport const LINEADDRESS = 'lineTableView Address';\nexport const CHANGE = 'Change';\nexport const ERRORMESSAGE = 'Missing or Invalid Error';\nexport const ERRORTYPE = 'error';\nexport const FIXNET = 'fixnet';\nexport const AUTHCOOKIE = 'sunriseAuth';\nexport const ERROR = 'error';\nexport const LOGIN = 'login';\nexport const LOGINSUCCESSFUL = 'loginSuccessful';\nexport const PASSWORD = 'Password';\nexport const PASSWORDSUCCESSFUL = 'success via password';\nexport const REMMSELECTED = 'Remember me | Selected';\nexport const REMMNOTSELECTED = 'Remember me | not selected';\nexport const PASSWORDUNSUCCESSFUL = 'unSuccess via password';\nexport const LOGINERROR = 'LoginError';\nexport const SUCCESSFULL = 'successful';\nexport const LOGINUNSUCCESSFUL = 'loginUnSuccessful';\nexport const FAILED = 'failed';\nexport const GETTEMPCODE = 'get_temporary_code';\nexport const LOGINUSERVERIFIED = 'userVerified';\nexport const SUCCESSFUL = 'success';\nexport const LOGINUSERNOTVERIFIED = 'userNotVerified';\nexport const UNSUCCESSFUL = 'unSuccess';\nexport const OTP = 'Enter the temporary code';\nexport const CHANNELSELECTION = 'Get a temporary code via SMS/Email';\nexport const VIA = 'via';\nexport const SENDOTP = 'send_otp';\nexport const OTPLOGINSUCCESS = 'otp_login_success';\nexport const OTPLOGINFAIL = 'otp_login_fail';\nexport const VEIW = 'view';\nexport const MTAN = 'MTAN';\nexport const LOGINNEXT = 'Next';\nexport const TEMPCODENEXT = 'Login Get a temporary code';\n\nexport const EXISTINGCUSTOMER = 'existing-customer';\nexport const NEWCUSTOMER = 'new-customer';\nexport const DEFAULT = 'default';\nexport const SUNRISEINTERNET = 'Internet';\nexport const SUNRISEMOBILE = 'Mobile';\nexport const SUNRISEBOTHSUBSCRIPTION = 'Mobile,Internet';\nexport const POSTPAID = 'POSTPAID';\nexport const CAPSINTERNET = 'INTERNET';\n//herobanner\nexport const HEROBANNER = 'HeroBanner';\nexport const STICKYBOTTOMSHEET = 'StickyBottomSheet';\n\n//US_31295\nexport const TOGGLECLICK = 'toggle_click';\n\n//US 349849\nexport const ACCESSORYCATEGORY = 'Accessory';\nexport const ACCESSORYLISTNAME = 'Device Accessories';\nexport const VIEWITEM = 'view_item_list';\nexport const REMOVEOPTIONFROMCART = 'remove_option_from_cart';\nexport const VIEWEACHITEM = 'view_item';\nexport const REMOVEFROMCART = 'remove_from_cart';\nexport const ADD_TO_CART = 'add_to_cart';\nexport const APPLYFILTER = 'apply_filter';\nexport const CONTENT = 'content';\nexport const TEXT = 'text';\nexport const TABLE = 'Table';\nexport const GENERATELEAD = 'generate_lead';\nexport const HARDWARE = 'Hardware';\nexport const LINK = 'Link';\nexport const CONTINUE = 'Continue';\nexport const LEARNMORE = 'Learn more';\nexport const CLOSEPOPUP ='close_popup';\nexport const POPUP = 'popup';\nexport const INFO = 'Info';\nexport const REPLACE = 'Replace';\nexport const KEEPPREVIOUS = 'Keep previous';\nexport const REPLACESELECTION = 'Replace selection';\nexport const OPENPOPUP = 'open_popup';\nexport const ACCORDIONCLICK = 'accordion_click';\nexport const FORM = 'form';\nexport const OPEN = 'open';\nexport const CLOSE = 'close';\n"],"names":["ADDTOCART","BRAND","CURRENCY","STICKYLINETABLE","SELECTPROMOTION","VIEWPROMOTION","VIEWOPTIONPOPUP","CTABUTTONCLICK","CTATEXTCLICK","DOWNLOADPRODUCT","ADDOPTIONTOCART","BUNDLEPRODUCT","GAEVENT","STAGETEASER","LINETABLE","LINETABLEPRODUCT","LINETABLEDEVICE","COMBINEDEVICE","TABCLICK","TOGGLE_ON_CONFIGURATOR","TOGGLE_OFF_CONFIGURATOR","CMS","ALL","POPUPPROMO","TYPE","SBLINECHECKSTART","SBLINECHECKRESULT","SBLINECHECKCHANGE","SBLINECHECKEXIT","LINETABLERESULT","VIEW","LINECHECKSTART","CHECKADDRESS","LINEADDRESS","CHANGE","ERRORMESSAGE","ERRORTYPE","FIXNET","AUTHCOOKIE","ERROR","LOGIN","LOGINSUCCESSFUL","PASSWORD","PASSWORDSUCCESSFUL","REMMSELECTED","REMMNOTSELECTED","PASSWORDUNSUCCESSFUL","LOGINERROR","SUCCESSFULL","LOGINUNSUCCESSFUL","FAILED","GETTEMPCODE","EXISTINGCUSTOMER","SUNRISEINTERNET","SUNRISEMOBILE","POSTPAID","CAPSINTERNET","HEROBANNER","STICKYBOTTOMSHEET","TOGGLECLICK","ACCESSORYCATEGORY","ACCESSORYLISTNAME","VIEWITEM","REMOVEOPTIONFROMCART","VIEWEACHITEM","REMOVEFROMCART","ADD_TO_CART","APPLYFILTER","CONTENT","TEXT","TABLE","HARDWARE","LINK","CONTINUE","LEARNMORE","CLOSEPOPUP","POPUP","INFO","REPLACE","KEEPPREVIOUS","REPLACESELECTION","OPENPOPUP","ACCORDIONCLICK","FORM","OPEN","CLOSE"],"mappings":"AAAO,MAAMA,EAAY,YACZC,EAAQ,UACRC,EAAW,MACXC,EAAkB,oBAClBC,EAAkB,mBAClBC,EAAgB,iBAChBC,EAAkB,oBAElBC,EAAiB,mBACjBC,EAAe,iBACfC,EAAkB,2BAClBC,EAAkB,qBAClBC,EAAgB,SAChBC,EAAU,UACVC,EAAc,eACdC,EAAY,aACZC,EAAmB,uBACnBC,EAAkB,sBAClBC,EAAgB,sBAChBC,EAAW,YACXC,EAAyB,yBACzBC,EAA0B,0BAK1BC,EAAM,MACNC,EAAM,MACNC,EAAa,kBAEbC,EAAO,QACPC,EAAmB,mBACnBC,EAAoB,qBACpBC,EAAoB,oBACpBC,EAAkB,kBAClBC,EAAkB,kBAClBC,EAAO,OACPC,EAAiB,iBACjBC,EAAe,gBACfC,EAAc,wBACdC,EAAS,SACTC,EAAe,2BACfC,EAAY,QACZC,EAAS,SACTC,EAAa,cACbC,EAAQ,QACRC,EAAQ,QACRC,EAAkB,kBAClBC,EAAW,WACXC,EAAqB,uBACrBC,EAAe,yBACfC,EAAkB,6BAClBC,EAAuB,yBACvBC,EAAa,aACbC,EAAc,aACdC,EAAoB,oBACpBC,EAAS,SACTC,EAAc,qBAgBdC,EAAmB,oBAGnBC,EAAkB,WAClBC,GAAgB,SAEhBC,GAAW,WACXC,GAAe,WAEfC,GAAa,aACbC,GAAoB,oBAGpBC,GAAc,eAGdC,GAAoB,YACpBC,GAAoB,qBACpBC,GAAW,iBACXC,GAAuB,0BACvBC,GAAe,YACfC,GAAiB,mBACjBC,GAAc,cACdC,GAAc,eACdC,GAAU,UACVC,GAAO,OACPC,GAAQ,QAERC,GAAW,WACXC,GAAO,OACPC,GAAW,WACXC,GAAY,aACZC,GAAY,cACZC,GAAQ,QACRC,GAAO,OACPC,GAAU,UACVC,GAAe,gBACfC,GAAmB,oBACnBC,GAAY,aACZC,GAAiB,kBACjBC,GAAO,OACPC,GAAO,OACPC,GAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sources":["../../../src/Analytics/items.tsx"],"sourcesContent":["import { BRAND, CURRENCY, GAEVENT } from './AnalyticsConstants';\r\n\r\nexport interface itemInfoEvent {\r\n item_id: string;\r\n item_name: string;\r\n affiliation: string | number;\r\n coupon: string | number;\r\n discount: number;\r\n index: number;\r\n item_brand: string;\r\n item_category: string;\r\n item_category2: string;\r\n item_category3: string;\r\n item_category4: string;\r\n item_category5: string;\r\n item_list_id: string;\r\n item_list_name: string;\r\n item_variant: string;\r\n location_id: string | number;\r\n price: number;\r\n quantity: number;\r\n promotion_id: string;\r\n}\r\n\r\nexport interface ecomAddCartInfo {\r\n currency: string;\r\n value: string | number;\r\n items: itemInfoEvent[];\r\n}\r\n\r\nexport const getItemData = (item: any, data?: any): itemInfoEvent => {\r\n const { itemCategory, location } = data;\r\n const discount = item?.prices?.[0]?.priceAlteration?.[0]?.value ?? 0;\r\n const basePrice = item?.prices?.[0]?.value ?? 0;\r\n const itemData: itemInfoEvent = {\r\n item_id: item?.id ?? '',\r\n item_name: item?.id ?? '',\r\n affiliation: item?.promotionInfo?.[0]?.campaignId ?? '',\r\n coupon: '',\r\n discount: discount && Number(discount),\r\n index: 0,\r\n item_brand: BRAND,\r\n item_category: itemCategory?.productName ?? itemCategory?.id ?? 'MOBILE',\r\n item_category2: itemCategory ? 'BUNDLE' : 'MOBILE',\r\n item_category3: '',\r\n item_category4: '',\r\n item_category5: '',\r\n item_list_id: itemCategory ? 'Fixnet' : 'Mobile',\r\n item_list_name: itemCategory ? 'Fixnet' : 'Mobile',\r\n item_variant: itemCategory?.productName ?? itemCategory?.id ?? item?.id,\r\n location_id: location,\r\n price: basePrice && Number(basePrice),\r\n quantity: 1,\r\n promotion_id: item?.promotionInfo?.[0]?.campaignId ?? ''\r\n };\r\n return itemData;\r\n};\r\n\r\nexport const getEcomInfo = (items: any, category?: any, location?: any) => {\r\n const itemData: any = [];\r\n items?.map((item: any) => {\r\n if (item?.bundledOffers) {\r\n item?.bundledOffers?.map((cart: any) => {\r\n const itemCategory = category == '' ? item : category;\r\n itemData.push(getItemData(cart, { itemCategory, location }));\r\n });\r\n } else {\r\n itemData.push(getItemData(item, { location }));\r\n }\r\n });\r\n return itemData;\r\n};\r\n\r\nexport const getEcomCartInfo = (items: any, category: any, location: any): ecomAddCartInfo => {\r\n const discontedPrice = items?.[0]?.derivedPrice?.[0]?.value;\r\n const ecomViewData: ecomAddCartInfo = {\r\n currency: CURRENCY,\r\n value: (discontedPrice && Number(discontedPrice)) ?? 0,\r\n items: getEcomInfo(items, category, location)\r\n };\r\n return ecomViewData;\r\n};\r\n\r\nexport const trackEligibleItem = (\r\n type: string,\r\n prodData?: any,\r\n category?: any,\r\n location?: any\r\n): void => {\r\n if (type === 'addtocart') {\r\n window.dataLayer.push({\r\n event: 'add_to_cart',\r\n event_name: 'add_to_cart',\r\n ecommerce: getEcomCartInfo(prodData, category, location),\r\n transaction_type: prodData?.[0]?.isBundle ? 'BUNDLE' : 'MOBILE_ORDER'\r\n });\r\n }\r\n};\r\n\r\n//Function to track click event\r\nexport const clickEvent = (eventName: string, text: string) => {\r\n window.dataLayer.push({\r\n event: GAEVENT,\r\n event_name: eventName,\r\n click_text: text\r\n });\r\n};\r\n\r\n//Function to track toggle click\r\nexport const toggleEvent = (eventName: string, headline: string, selection: string) => {\r\n window.dataLayer.push({\r\n event: GAEVENT,\r\n event_name: eventName,\r\n headline: headline,\r\n selection: selection\r\n });\r\n};\r\n"],"names":["getItemData","item","data","itemCategory","location","discount","_e","_d","_c","_b","_a","prices","priceAlteration","value","basePrice","_h","_f","item_id","_j","id","item_name","_k","affiliation","_o","_m","_l","promotionInfo","campaignId","coupon","Number","index","item_brand","BRAND","item_category","_q","_p","productName","item_category2","item_category3","item_category4","item_category5","item_list_id","item_list_name","item_variant","_s","_r","location_id","price","quantity","promotion_id","_v","_u","_t","getEcomInfo","items","category","itemData","map","bundledOffers","cart","push","getEcomCartInfo","discontedPrice","derivedPrice","currency","CURRENCY","trackEligibleItem","type","prodData","window","dataLayer","event","event_name","ecommerce","transaction_type","isBundle","clickEvent","eventName","text","GAEVENT","click_text","toggleEvent","headline","selection"],"mappings":"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"}
1
+ {"version":3,"file":"items.js","sources":["../../../src/Analytics/items.tsx"],"sourcesContent":["import { BRAND, CURRENCY, GAEVENT } from './AnalyticsConstants';\n\nexport interface itemInfoEvent {\n item_id: string;\n item_name: string;\n affiliation: string | number;\n coupon: string | number;\n discount: number;\n index: number;\n item_brand: string;\n item_category: string;\n item_category2: string;\n item_category3: string;\n item_category4: string;\n item_category5: string;\n item_list_id: string;\n item_list_name: string;\n item_variant: string;\n location_id: string | number;\n price: number;\n quantity: number;\n promotion_id: string;\n}\n\nexport interface ecomAddCartInfo {\n currency: string;\n value: string | number;\n items: itemInfoEvent[];\n}\n\nexport const getItemData = (item: any, data?: any): itemInfoEvent => {\n const { itemCategory, location } = data;\n const discount = item?.prices?.[0]?.priceAlteration?.[0]?.value ?? 0;\n const basePrice = item?.prices?.[0]?.value ?? 0;\n const itemData: itemInfoEvent = {\n item_id: item?.id ?? '',\n item_name: item?.id ?? '',\n affiliation: item?.promotionInfo?.[0]?.campaignId ?? '',\n coupon: '',\n discount: discount && Number(discount),\n index: 0,\n item_brand: BRAND,\n item_category: itemCategory?.productName ?? itemCategory?.id ?? 'MOBILE',\n item_category2: itemCategory ? 'BUNDLE' : 'MOBILE',\n item_category3: '',\n item_category4: '',\n item_category5: '',\n item_list_id: itemCategory ? 'Fixnet' : 'Mobile',\n item_list_name: itemCategory ? 'Fixnet' : 'Mobile',\n item_variant: itemCategory?.productName ?? itemCategory?.id ?? item?.id,\n location_id: location,\n price: basePrice && Number(basePrice),\n quantity: 1,\n promotion_id: item?.promotionInfo?.[0]?.campaignId ?? ''\n };\n return itemData;\n};\n\nexport const getEcomInfo = (items: any, category?: any, location?: any) => {\n const itemData: any = [];\n items?.map((item: any) => {\n if (item?.bundledOffers) {\n item?.bundledOffers?.map((cart: any) => {\n const itemCategory = category == '' ? item : category;\n itemData.push(getItemData(cart, { itemCategory, location }));\n });\n } else {\n itemData.push(getItemData(item, { location }));\n }\n });\n return itemData;\n};\n\nexport const getEcomCartInfo = (items: any, category: any, location: any): ecomAddCartInfo => {\n const discontedPrice = items?.[0]?.derivedPrice?.[0]?.value;\n const ecomViewData: ecomAddCartInfo = {\n currency: CURRENCY,\n value: (discontedPrice && Number(discontedPrice)) ?? 0,\n items: getEcomInfo(items, category, location)\n };\n return ecomViewData;\n};\n\nexport const trackEligibleItem = (\n type: string,\n prodData?: any,\n category?: any,\n location?: any\n): void => {\n if (type === 'addtocart') {\n window.dataLayer.push({\n event: 'add_to_cart',\n event_name: 'add_to_cart',\n ecommerce: getEcomCartInfo(prodData, category, location),\n transaction_type: prodData?.[0]?.isBundle ? 'BUNDLE' : 'MOBILE_ORDER'\n });\n }\n};\n\n//Function to track click event\nexport const clickEvent = (eventName: string, text: string) => {\n window.dataLayer.push({\n event: GAEVENT,\n event_name: eventName,\n click_text: text\n });\n};\n\n//Function to track toggle click\nexport const toggleEvent = (eventName: string, headline: string, selection: string) => {\n window.dataLayer.push({\n event: GAEVENT,\n event_name: eventName,\n headline: headline,\n selection: selection\n });\n};\n"],"names":["getItemData","item","data","itemCategory","location","discount","_e","_d","_c","_b","_a","prices","priceAlteration","value","basePrice","_h","_f","item_id","_j","id","item_name","_k","affiliation","_o","_m","_l","promotionInfo","campaignId","coupon","Number","index","item_brand","BRAND","item_category","_q","_p","productName","item_category2","item_category3","item_category4","item_category5","item_list_id","item_list_name","item_variant","_s","_r","location_id","price","quantity","promotion_id","_v","_u","_t","getEcomInfo","items","category","itemData","map","bundledOffers","cart","push","getEcomCartInfo","discontedPrice","derivedPrice","currency","CURRENCY","trackEligibleItem","type","prodData","window","dataLayer","event","event_name","ecommerce","transaction_type","isBundle","clickEvent","eventName","text","GAEVENT","click_text","toggleEvent","headline","selection"],"mappings":"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"}
@@ -1 +1 @@
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 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\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 //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 });\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 <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 {(deviceSessionValues?.hardwareVariant?.selectedContractType === CONTRACT || 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","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","_3","selectedContractType","priceContainer","style","_5","_4","marketMonthlyInstallment","countZero","_6","_7","_8","_9","strikedMonthlyPrice","_10","_12","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_15","_14","strikedtotalMonthlyPrice","visibility","_16","_17","market","_19","_18","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_20","includedOptions","_21","FLEX_UPGRADE","freeFUText","flexUpgradeText","_23","_22","_25","_24","_26","_29","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_30","_31","FalconButtonV2","_32","onClick","wafIdentifier","disabled","_33","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_11","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 */\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 {(deviceSessionValues?.hardwareVariant?.selectedContractType === CONTRACT || 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","_3","selectedContractType","priceContainer","style","_5","_4","marketMonthlyInstallment","countZero","_6","_7","_8","_9","strikedMonthlyPrice","_10","_12","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_15","_14","strikedtotalMonthlyPrice","visibility","_16","_17","market","_19","_18","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_20","includedOptions","_21","FLEX_UPGRADE","freeFUText","flexUpgradeText","_23","_22","_25","_24","_26","_29","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_30","_31","FalconButtonV2","_32","onClick","wafIdentifier","disabled","_33","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_11","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';\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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
1
- {"version":3,"file":"AccessoryUpdateCartDotloader.js","sources":["../../../../../src/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.tsx"],"sourcesContent":["import React, { useEffect, useState, FC } from \"react\";\r\nimport \"./AccessoryUpdateCartDotloader.css\";\r\nimport { SBCONSTANT } from \"../../../utils/constants\";\r\nimport { getLocalStorageWithExpiry } from \"../../../utils/utils\";\r\nimport { MultiItemAccessoriesSchema } from \"../MultiItemAccessories/MultiItemAccessoriesSchema\";\r\n\r\ninterface DotLoaderSchema {\r\n content: MultiItemAccessoriesSchema;\r\n keyParams?: string;\r\n}\r\nconst AccessoryUpdateCartDotloader: FC<DotLoaderSchema> = ({ content, keyParams }) => {\r\n const [index, setIndex] = useState<number>(0);\r\n const [constKeys, setConstKeys] = useState<Record<string, string>>({});\r\n const loaderValues: any = {\r\n checkout: [\r\n content?.updatingCartBundling\r\n ],\r\n loading: [constKeys?.loading],\r\n };\r\n const contentArray = keyParams\r\n ? loaderValues[`${keyParams}`]\r\n : loaderValues[\"checkout\"];\r\n\r\n useEffect(() => {\r\n setConstKeys(getLocalStorageWithExpiry(SBCONSTANT));\r\n }, []);\r\n\r\n useEffect(() => {\r\n let i = contentArray.length - 1;\r\n setIndex(i);\r\n const timerInterval = setInterval(() => {\r\n setIndex(i--);\r\n if (i < 0) {\r\n i = contentArray.length - 1;\r\n }\r\n }, 2000);\r\n return () => {\r\n clearTimeout(timerInterval);\r\n };\r\n }, []);\r\n return (\r\n <div\r\n className={`d-flex align-items-center justify-content-center linetable-dotLoader-loaderParent`}\r\n >\r\n <div className=\"linetable-dotLoader-dotClass\">\r\n <div className=\"linetable-dotLoader-dots\"></div>\r\n <div className=\"linetable-dotLoader-dots\"></div>\r\n <div className=\"linetable-dotLoader-dots\"></div>\r\n <div className=\"linetable-dotLoader-dots\"></div>\r\n </div>\r\n <div>\r\n <h4 className=\"linetable-dotLoader-dotContent\">{contentArray[index]} </h4>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default AccessoryUpdateCartDotloader;\r\n"],"names":["AccessoryUpdateCartDotloader","content","keyParams","index","setIndex","useState","constKeys","setConstKeys","loaderValues","checkout","updatingCartBundling","loading","contentArray","useEffect","getLocalStorageWithExpiry","SBCONSTANT","i","length","timerInterval","setInterval","clearTimeout","React","createElement","className"],"mappings":"gLAUA,MAAMA,EAAoD,EAAGC,UAASC,gBACpE,MAAOC,EAAOC,GAAYC,EAAiB,IACpCC,EAAWC,GAAgBF,EAAiC,CAAA,GAC7DG,EAAoB,CACxBC,SAAU,CACRR,aAAO,EAAPA,EAASS,sBAEXC,QAAS,CAACL,aAAS,EAATA,EAAWK,UAEjBC,EAAeV,EACjBM,EAAa,GAAGN,KAChBM,EAAuB,SAmB3B,OAjBAK,EAAU,KACRN,EAAaO,EAA0BC,KACtC,IAEHF,EAAU,KACR,IAAIG,EAAIJ,EAAaK,OAAS,EAC9Bb,EAASY,GACT,MAAME,EAAgBC,YAAY,KAChCf,EAASY,KACLA,EAAI,IACNA,EAAIJ,EAAaK,OAAS,IAE3B,KACH,MAAO,KACLG,aAAaF,KAEd,IAEDG,EAAAC,cAAA,MAAA,CACEC,UAAW,qFAEXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,8BAEjBF,EAAAC,cAAA,MAAA,KACED,EAAAC,cAAA,KAAA,CAAIC,UAAU,kCAAkCX,EAAaT"}
1
+ {"version":3,"file":"AccessoryUpdateCartDotloader.js","sources":["../../../../../src/components/Accessories/AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.tsx"],"sourcesContent":["import React, { useEffect, useState, FC } from \"react\";\nimport \"./AccessoryUpdateCartDotloader.css\";\nimport { SBCONSTANT } from \"../../../utils/constants\";\nimport { getLocalStorageWithExpiry } from \"../../../utils/utils\";\nimport { MultiItemAccessoriesSchema } from \"../MultiItemAccessories/MultiItemAccessoriesSchema\";\n\ninterface DotLoaderSchema {\n content: MultiItemAccessoriesSchema;\n keyParams?: string;\n}\nconst AccessoryUpdateCartDotloader: FC<DotLoaderSchema> = ({ content, keyParams }) => {\n const [index, setIndex] = useState<number>(0);\n const [constKeys, setConstKeys] = useState<Record<string, string>>({});\n const loaderValues: any = {\n checkout: [\n content?.updatingCartBundling\n ],\n loading: [constKeys?.loading],\n };\n const contentArray = keyParams\n ? loaderValues[`${keyParams}`]\n : loaderValues[\"checkout\"];\n\n useEffect(() => {\n setConstKeys(getLocalStorageWithExpiry(SBCONSTANT));\n }, []);\n\n useEffect(() => {\n let i = contentArray.length - 1;\n setIndex(i);\n const timerInterval = setInterval(() => {\n setIndex(i--);\n if (i < 0) {\n i = contentArray.length - 1;\n }\n }, 2000);\n return () => {\n clearTimeout(timerInterval);\n };\n }, []);\n return (\n <div\n className={`d-flex align-items-center justify-content-center linetable-dotLoader-loaderParent`}\n >\n <div className=\"linetable-dotLoader-dotClass\">\n <div className=\"linetable-dotLoader-dots\"></div>\n <div className=\"linetable-dotLoader-dots\"></div>\n <div className=\"linetable-dotLoader-dots\"></div>\n <div className=\"linetable-dotLoader-dots\"></div>\n </div>\n <div>\n <h4 className=\"linetable-dotLoader-dotContent\">{contentArray[index]} </h4>\n </div>\n </div>\n );\n};\nexport default AccessoryUpdateCartDotloader;\n"],"names":["AccessoryUpdateCartDotloader","content","keyParams","index","setIndex","useState","constKeys","setConstKeys","loaderValues","checkout","updatingCartBundling","loading","contentArray","useEffect","getLocalStorageWithExpiry","SBCONSTANT","i","length","timerInterval","setInterval","clearTimeout","React","createElement","className"],"mappings":"gLAUA,MAAMA,EAAoD,EAAGC,UAASC,gBACpE,MAAOC,EAAOC,GAAYC,EAAiB,IACpCC,EAAWC,GAAgBF,EAAiC,CAAA,GAC7DG,EAAoB,CACxBC,SAAU,CACRR,aAAO,EAAPA,EAASS,sBAEXC,QAAS,CAACL,aAAS,EAATA,EAAWK,UAEjBC,EAAeV,EACjBM,EAAa,GAAGN,KAChBM,EAAuB,SAmB3B,OAjBAK,EAAU,KACRN,EAAaO,EAA0BC,KACtC,IAEHF,EAAU,KACR,IAAIG,EAAIJ,EAAaK,OAAS,EAC9Bb,EAASY,GACT,MAAME,EAAgBC,YAAY,KAChCf,EAASY,KACLA,EAAI,IACNA,EAAIJ,EAAaK,OAAS,IAE3B,KACH,MAAO,KACLG,aAAaF,KAEd,IAEDG,EAAAC,cAAA,MAAA,CACEC,UAAW,qFAEXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,gCACbF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,6BACfF,EAAAC,cAAA,MAAA,CAAKC,UAAU,8BAEjBF,EAAAC,cAAA,MAAA,KACED,EAAAC,cAAA,KAAA,CAAIC,UAAU,kCAAkCX,EAAaT"}