@sunrise-upc/mobile-prod-card 11.10.0 → 11.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) 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.css +1 -1
  42. package/dist/esm/components/HeroLogin/HeroLogin.js +1 -1
  43. package/dist/esm/components/HeroLogin/HeroLogin.js.map +1 -1
  44. package/dist/esm/components/HeroLogin/HeroLogin.module.scss.js +1 -1
  45. package/dist/esm/components/LineCheckV3/APIResourceConstants.js.map +1 -1
  46. package/dist/esm/components/LineCheckV3/AutoComplete.js.map +1 -1
  47. package/dist/esm/components/LineCheckV3/GenericModal.js.map +1 -1
  48. package/dist/esm/components/LineCheckV3/IndividualLineCheck.js.map +1 -1
  49. package/dist/esm/components/LineCheckV3/LineCheckInput.js.map +1 -1
  50. package/dist/esm/components/LineCheckV3/LineCheckOverlay.js.map +1 -1
  51. package/dist/esm/components/LineCheckV3/LineCheckV3.js.map +1 -1
  52. package/dist/esm/components/LineCheckV3/LinecheckModal.js.map +1 -1
  53. package/dist/esm/components/LineCheckV3/LinecheckService.js.map +1 -1
  54. package/dist/esm/components/LineCheckV3/Success.js.map +1 -1
  55. package/dist/esm/components/LineCheckV3/api-constants.js.map +1 -1
  56. package/dist/esm/components/NewLineCheck/AdvanceSearch.js.map +1 -1
  57. package/dist/esm/components/NewLineCheck/CheckCoverage.js.map +1 -1
  58. package/dist/esm/components/NewLineCheck/CoverCheckWrapper.js.map +1 -1
  59. package/dist/esm/components/NewLineCheck/CoverageCheckModal.js.map +1 -1
  60. package/dist/esm/components/NewLineCheck/CoverageCheckUtils.js.map +1 -1
  61. package/dist/esm/components/NewLineCheck/GenericModal.js.map +1 -1
  62. package/dist/esm/components/NewLineCheck/LocationFinder.js.map +1 -1
  63. package/dist/esm/components/NewLineCheck/NewLCInput.js.map +1 -1
  64. package/dist/esm/components/NewLineCheck/SuccessCoverage.js.map +1 -1
  65. package/dist/esm/components/NotificationToast/NotificationToast.js.map +1 -1
  66. package/dist/esm/components/OttMiniSummaryCard/OttMiniSummaryCard.js.map +1 -1
  67. package/dist/esm/components/PretoPost/PreToPostSubsPopup.js.map +1 -1
  68. package/dist/esm/components/ProductDetailsComp/ProductDetails.js.map +1 -1
  69. package/dist/esm/components/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  70. package/dist/esm/components/ProductDetailsV3/BenefitsSectionV3.js.map +1 -1
  71. package/dist/esm/components/ProductDetailsV3/CashBackV2/CashbackV2.js.map +1 -1
  72. package/dist/esm/components/ProductDetailsV3/ChooseGiftV2.js.map +1 -1
  73. package/dist/esm/components/ProductDetailsV3/GiftConfigV2.js.map +1 -1
  74. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsModal.js.map +1 -1
  75. package/dist/esm/components/ProductDetailsV3/ProductDetailsModal/ProductDetailsV2.js.map +1 -1
  76. package/dist/esm/components/ProductDetailsV3/ProductEntitlement.js.map +1 -1
  77. package/dist/esm/components/ProductDetailsV3/ProductPriceV3.js.map +1 -1
  78. package/dist/esm/components/ProductDetailsV3/ReactInputSelectV2/ReactInputSelectV2.js.map +1 -1
  79. package/dist/esm/components/ProductDetailsV3/tv/EntertainmentOptionsV2/EntertainmentOptionsV2.js.map +1 -1
  80. package/dist/esm/components/ProductDetailsV3/tv/TVChannelOfferV2.js.map +1 -1
  81. package/dist/esm/components/ProductTeaser/ProductTeaser.js.map +1 -1
  82. package/dist/esm/components/ProductTeaser/ProductTeaserSlides.js.map +1 -1
  83. package/dist/esm/components/ProgressionBar/ProgressionBar.js.map +1 -1
  84. package/dist/esm/components/ReactInputSelect/ReactInputSelect.js.map +1 -1
  85. package/dist/esm/components/RecommendedOptions/RecommendedOptions.js.map +1 -1
  86. package/dist/esm/components/RecommendedOptions/RecommendedOptionsUtils.js.map +1 -1
  87. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ItemsCounter.js.map +1 -1
  88. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceDetailSection.js.map +1 -1
  89. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionCard/ServiceOptionCard.js.map +1 -1
  90. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionLoader.js.map +1 -1
  91. package/dist/esm/components/RecommendedOptions/ServiceOption/ServiceOptionPrice/ServiceOptionPrice.js.map +1 -1
  92. package/dist/esm/components/ResponsiveRow/row.js.map +1 -1
  93. package/dist/esm/components/SkeletonLoader/SkeletonLoader.js.map +1 -1
  94. package/dist/esm/components/Spacer/Spacer.js.map +1 -1
  95. package/dist/esm/components/StaticLineTable/CheckoutButton.js.map +1 -1
  96. package/dist/esm/components/StaticLineTable/DynamicPriceSection.js.map +1 -1
  97. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionCards.js.map +1 -1
  98. package/dist/esm/components/StaticLineTable/ExsistingSubscriptionModal.js.map +1 -1
  99. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsLoader/OttServiceOptionsLoader.js.map +1 -1
  100. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsModal.js.map +1 -1
  101. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsPopup.js.map +1 -1
  102. package/dist/esm/components/StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js.map +1 -1
  103. package/dist/esm/components/StaticLineTable/Product.utils.js.map +1 -1
  104. package/dist/esm/components/StaticLineTable/StaticBenefit.js.map +1 -1
  105. package/dist/esm/components/StaticLineTable/StaticExclusiveBenefit.js.map +1 -1
  106. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js.map +1 -1
  107. package/dist/esm/components/StaticLineTable/StaticLineTabelTimer/util.js.map +1 -1
  108. package/dist/esm/components/StaticLineTable/StaticLineTable.js.map +1 -1
  109. package/dist/esm/components/StaticLineTable/StaticLineTableStore/StaticLineTableProvider.js.map +1 -1
  110. package/dist/esm/components/StaticLineTable/StaticProduct.js.map +1 -1
  111. package/dist/esm/components/StaticLineTable/StaticProductContainer.js.map +1 -1
  112. package/dist/esm/components/StaticLineTable/StaticProductDetails.js.map +1 -1
  113. package/dist/esm/components/StaticLineTable/StaticProductDetailsModal.js.map +1 -1
  114. package/dist/esm/components/StaticLineTable/StaticProductEntitlement.js.map +1 -1
  115. package/dist/esm/components/StaticLineTable/TVChannelModal.js.map +1 -1
  116. package/dist/esm/components/StaticLineTable/TvOptionsContainer.js.map +1 -1
  117. package/dist/esm/components/StaticLineTable/WorldPassPopup.js.map +1 -1
  118. package/dist/esm/components/StaticPriceComp/StaticPriceComp.js.map +1 -1
  119. package/dist/esm/components/StickyBottomSheet/StickyBottomSheet.js.map +1 -1
  120. package/dist/esm/components/StickyProductAnchor/StickyProductAnchor.js.map +1 -1
  121. package/dist/esm/components/Table/table.js.map +1 -1
  122. package/dist/esm/components/ToolTip/ToolTip.js.map +1 -1
  123. package/dist/esm/components/UltimateBundleLinetable/DpDetailsModal/DpDetailsModal.js.map +1 -1
  124. package/dist/esm/components/UltimateBundleLinetable/DpLinetableContainer.js.map +1 -1
  125. package/dist/esm/components/UltimateBundleLinetable/DpProduct.js.map +1 -1
  126. package/dist/esm/components/UltimateBundleLinetable/DpTabContainer.js.map +1 -1
  127. package/dist/esm/components/UltimateBundleLinetable/DpTableDeviceSection/DpTableDeviceSection.js.map +1 -1
  128. package/dist/esm/components/UltimateBundleLinetable/DpTableFlexSection/DpTableFlexSection.js.map +1 -1
  129. package/dist/esm/components/UltimateBundleLinetable/DpTableMobileSection/DpTableMobileSection.js.map +1 -1
  130. package/dist/esm/components/UltimateBundleLinetable/DpTableUtils.js.map +1 -1
  131. package/dist/esm/components/UltimateBundleLinetable/checkoutRedirectionPopup/checkoutRedirectionPopup.js.map +1 -1
  132. package/dist/esm/components/UserLoggedPricesToggle/UserLoggedPricesToggle.js.map +1 -1
  133. package/dist/esm/components/button/Button.js.map +1 -1
  134. package/dist/esm/components/freshProductBanner/FreshProductDetails.js.map +1 -1
  135. package/dist/esm/components/freshProductBanner/ProductDetailsModal.js.map +1 -1
  136. package/dist/esm/components/freshProductBanner/Timer/ExpiredTimer.js.map +1 -1
  137. package/dist/esm/components/freshProductBanner/Timer/Timer.js.map +1 -1
  138. package/dist/esm/components/freshProductBanner/Timer/util.js.map +1 -1
  139. package/dist/esm/components/freshProductBanner/freshProductBanner.js.map +1 -1
  140. package/dist/esm/components/lineTable/BundleProductsV3.js.map +1 -1
  141. package/dist/esm/components/lineTable/LineTableV3.utils.js.map +1 -1
  142. package/dist/esm/components/lineTable/OrderButton.js.map +1 -1
  143. package/dist/esm/components/lineTable/ProductContainerV3.js.map +1 -1
  144. package/dist/esm/components/lineTable/ProductTableV3.js.map +1 -1
  145. package/dist/esm/components/lineTable/ProductV3.js.map +1 -1
  146. package/dist/esm/components/login/LoginModalV2.js.map +1 -1
  147. package/dist/esm/components/login/LoginV2.js.map +1 -1
  148. package/dist/esm/components/login/MfaPhase2/DepricatingChannels.js.map +1 -1
  149. package/dist/esm/components/login/MfaPhase2/NewNumber.js.map +1 -1
  150. package/dist/esm/components/login/MfaPhase2/OtpValidation.js.map +1 -1
  151. package/dist/esm/components/login/MfaPhase2/ResetPwdModal.js.map +1 -1
  152. package/dist/esm/components/richtext.js.map +1 -1
  153. package/dist/esm/components/sharedCarousel/CarouselComponent.js.map +1 -1
  154. package/dist/esm/models/Analytics/items.js.map +1 -1
  155. package/dist/esm/services/DevicePropConfig.js.map +1 -1
  156. package/dist/esm/services/DeviceService.js.map +1 -1
  157. package/dist/esm/services/LineTableBasicPropConfig.js.map +1 -1
  158. package/dist/esm/services/LineTableService.js.map +1 -1
  159. package/dist/esm/services/LinecheckBasicPropConfig.js.map +1 -1
  160. package/dist/esm/services/LoginBasicPropConfig.js.map +1 -1
  161. package/dist/esm/services/LoginServiceV2.js +1 -1
  162. package/dist/esm/services/LoginServiceV2.js.map +1 -1
  163. package/dist/esm/services/MultiItemAccessories/multiItemAccessoryService.js.map +1 -1
  164. package/dist/esm/services/MultiItemAccessories/multiitemAccessoriesUpdateCartService.js.map +1 -1
  165. package/dist/esm/services/MultiItemAccessories/storyBlokService.js.map +1 -1
  166. package/dist/esm/services/ProductTeaserPropsConfig.js.map +1 -1
  167. package/dist/esm/services/ServiceOptionsPropConfig.js.map +1 -1
  168. package/dist/esm/services/StickyBottomSheetConfig.js.map +1 -1
  169. package/dist/esm/services/api-constants.js.map +1 -1
  170. package/dist/esm/utils/AnalyticsUtils.js.map +1 -1
  171. package/dist/esm/utils/DeviceUtils.js.map +1 -1
  172. package/dist/esm/utils/constants.js.map +1 -1
  173. package/dist/esm/utils/global.js.map +1 -1
  174. package/dist/esm/utils/store/card-context.js.map +1 -1
  175. package/dist/esm/utils/utils.js.map +1 -1
  176. package/package.json +85 -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';\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
+ {"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 +1 @@
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
+ {"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 +1 @@
1
- {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\nimport React, {JSX, useEffect, useState } from 'react';\nimport Styles from './AccessoryCard.module.scss';\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\nimport Row from '../../ResponsiveRow/row';\n// import GenericImage from '../../GenericImage/GenericImage';\nimport { getCompressedImage } from '../../../utils/utils';\nimport { getCookie } from 'cookies-next';\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\nimport AccessoryModal from './AccessoryModal';\nimport RichText from '../../richtext';\nimport { viewport } from '../../../utils/utils';\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE } from '../../../utils/constants';\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\nimport { updateCreatecartItemData } from '../multiItemAccessoryStore/types';\nimport { AssetPathPropConfig } from '../../../services';\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\n\ntype AccessoryCardProps = {\n content: MultiItemAccessoriesSchema;\n tabIndex: number;\n checkingviewPort: any;\n setAccessoriesSelected?: (accessories: any[]) => void;\n};\n\n// eslint-disable-next-line max-lines-per-function\nconst AccessoryCard = ({\n content,\n tabIndex,\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 { selectedAccessories, multiItemAccessoriessList, removeSelectedCartAccessories, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData , previousTab, loading, showMiniCart } = store;\n //check for WIN/rateplan flow\n const isSubscriptionFlow = [MOBILERATEPLAN, INTERNETFLOW, TV ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\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 // for handling add and remove accessories from cart\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\n e.preventDefault();\n // added a condition to check if accessories was added to cart if so then add to the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n actions.setRemoveSelectedCartAccessories({\n // preserve other tabs\n ...removeSelectedCartAccessories,\n [store?.selectedTab]: {\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\n [item?.recomApiResponse?.id]: item,\n },\n });\n // to remove selected accessories from the redux store\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\n return {\n ...obj,\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\n };\n }, {});\n actions.setSelectedAccessories({\n // preserve other tabs\n ...selectedAccessories,\n [store?.selectedTab]: updateAccessoryList,\n });\n }\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\n }\n else {\n // to remove selected accessories from the redux store\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\n return {\n ...obj,\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\n };\n }, {});\n actions.setSelectedAccessories({\n // preserve other tabs\n ...selectedAccessories,\n [store?.selectedTab]: updateAccessoryList,\n });\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\n } else {\n // added a condition to check if accessories was added to cart if so then remove from the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n if (checkCartLimit(item, index)) {\n return;\n }\n const updateSelectedCartAccessories = Object?.keys(removeSelectedCartAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\n return {\n ...obj,\n [key]: removeSelectedCartAccessories?.[store?.selectedTab]?.[key]\n };\n }, {});\n actions.setRemoveSelectedCartAccessories({\n // preserve other tabs\n ...removeSelectedCartAccessories,\n [store?.selectedTab]: updateSelectedCartAccessories,\n });\n }\n // if not added incart already then add the selected accessories\n if (!cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n if (checkCartLimit(item, index)) {\n return;\n }\n actions.setSelectedAccessories({\n // preserve other tabs\n ...selectedAccessories,\n [store?.selectedTab]: {\n ...(selectedAccessories?.[store?.selectedTab] || {}),\n [item?.recomApiResponse?.id]: item,\n },\n });\n }\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\n }\n }\n };\n\n useEffect(()=>{\n if (setAccessoriesSelected && typeof setAccessoriesSelected === 'function') {\n setAccessoriesSelected(selectedAccessories);\n }\n },[selectedAccessories,setAccessoriesSelected])\n\n //remove accessories if payment type not mathces when switching\n useEffect(() => {\n\n Object?.values(multiItemAccessoriessList?.[store?.selectedTab] || [])?.map((item: any, index: any) =>\n // added a condition to check if accessories was added to cart if so then add to the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\n {\n if (selectedPaymentType === CONTRACT && !item?.recomApiResponse?.recurringPrice?.monthlyInstallment) {\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && actions.setRemoveSelectedCartAccessories({\n // preserve other tabs\n ...removeSelectedCartAccessories,\n [store?.selectedTab]: {\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\n [item?.recomApiResponse?.id]: item,\n },\n })\n // to remove selected accessories from the redux store\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\n return {\n ...obj,\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\n };\n }, {});\n actions.setSelectedAccessories({\n // preserve other tabs\n ...selectedAccessories,\n [store?.selectedTab]: updateAccessoryList,\n });\n\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\n }\n }\n })\n }, [selectedPaymentType])\n\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\n const multiItemAccesoryCreatecart = (e: any) => {\n e.preventDefault();\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\n if (isRetry) {\n // On retry, only close the popup and clear error — don't revert tab/selections\n setShow(false);\n cartActions.setupdateAccessoryCartFailure({});\n }\n if (!isRetry) {\n actions.setPreviousTab(store?.selectedTab); // Update previousTab in store before changing tab\n }\n actions.setSelectedTab(store?.selectedTab);\n\n // updating cart if there is add/remove in the accessories\n if (Object.keys(recommendedAccessories || {}).some(tab => \n (Object.keys(selectedAccessories?.[tab] || {}).length !== 0) || \n (Object.keys(removeSelectedCartAccessories?.[tab] || {}).length !== 0)\n )) {\n\n const updateCreatecartItemData: updateCreatecartItemData = {\n id: cartId,\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\n }\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\n component: LINK,\n click_text: CONTINUE\n });\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\n }\n else {\n let paymentTypeCheck = true;\n multiItemAccessoriessList?.[store?.selectedTab]?.filter((item: any) => cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id])?.filter((item: any) => {\n paymentTypeCheck = item?.recomApiResponse?.paymentType?.toLowerCase() === (selectedPaymentType === CONTRACT ? MONTHLY : ONETIME);\n })\n\n // to check whether payment type has been changed \n if (paymentTypeCheck || store?.selectedTab === WATCHES || store.selectedTab === TABLETS) {\n // redirect to summary page if no update cart is required\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\n }\n else {\n const updateCreatecartItemData: updateCreatecartItemData = {\n id: cartId,\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\n }\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\n }\n }\n }\n\n // close the error popup when close/cancel button is clicked\n const onCloseClick = () => {\n setShow((prevState) => !prevState);\n // empty the update cart failure response when popup is closed\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\n cartActions.setupdateAccessoryCartFailure({});\n // Revert to previous tab and clear updated selections on cancel\n if (previousTab) {\n actions.setSelectedTab(previousTab);\n actions.setPreviousTab(previousTab);\n actions.setSelectedAccessories({ ...selectedAccessories, [previousTab]: {} });\n actions.setRemoveSelectedCartAccessories({ ...removeSelectedCartAccessories, [previousTab]: {} });\n }\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\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 // First, check for items in selectedAccessories\n const selectedKeys = Object.keys(selectedAccessories?.[store?.selectedTab] || {});\n if (selectedKeys.length > 0) {\n // Remove the first selected accessory and add the new one in a single update\n const firstKey = selectedKeys[0];\n const removedItem = selectedAccessories?.[store?.selectedTab]?.[firstKey];\n \n // Build new selectedAccessories without the old item but with the new item\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])\n ?.filter((val) => val !== firstKey)\n ?.reduce((obj, key) => {\n return {\n ...obj,\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\n };\n }, {});\n \n // Add the new pending item in the same update\n actions.setSelectedAccessories({\n ...selectedAccessories,\n [store?.selectedTab]: {\n ...updateAccessoryList,\n [pendingItem?.recomApiResponse?.id]: pendingItem,\n },\n });\n \n // Track analytics for removed item\n if (removedItem) {\n trackCTAButton(GAEVENT, REMOVEFROMCART, removedItem, 0);\n }\n } \n // If no items in selectedAccessories, check for items in cart (not in removeList)\n else {\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\n for (const item of cartItems) {\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && \n !removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) { \n // Add to removeSelectedCartAccessories\n actions.setRemoveSelectedCartAccessories({\n ...removeSelectedCartAccessories,\n [store?.selectedTab]: {\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\n [item?.recomApiResponse?.id]: item,\n },\n });\n \n // Track analytics for removed item\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\n break; // Only remove the first one\n }\n }\n \n // Add the new pending item to selectedAccessories\n actions.setSelectedAccessories({\n ...selectedAccessories,\n [store?.selectedTab]: {\n [pendingItem?.recomApiResponse?.id]: pendingItem,\n },\n });\n }\n\n // Track analytics for the new item\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\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 let selectedAccCount = 0;\n (multiItemAccessoriessList?.[store?.selectedTab] || [])?.map((item: any) => {\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? selectedAccCount++ : '';\n })\n selectedAccCount += Object.keys(selectedAccessories?.[store?.selectedTab] || {}).length;\n selectedAccCount -= Object.keys(removeSelectedCartAccessories?.[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;\n const itemId = item?.recomApiResponse?.id;\n\n // If item is already in cart, call API directly to remove it\n if (cartData?.[tabKey]?.[itemId]) {\n await cartActions.removeItemFromCart(cartId, item);\n }\n\n // If item is in selectedAccessories, remove it locally\n if (selectedAccessories?.[tabKey]?.[itemId]) {\n const updatedList = Object.keys(selectedAccessories[tabKey])\n .filter((key) => key !== itemId)\n .reduce((obj: any, key: string) => {\n obj[key] = selectedAccessories[tabKey][key];\n return obj;\n }, {});\n actions.setSelectedAccessories({\n ...selectedAccessories,\n [tabKey]: updatedList,\n });\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 (\n Object.keys(cartData?.[tabKey] || {}).length +\n Object.keys(selectedAccessories?.[tabKey] || {}).length -\n Object.keys(removeSelectedCartAccessories?.[tabKey] || {}).length\n );\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\n const recomItems = Object.values(recomList)\n .filter((item: any) =>\n (cartData?.[tabKey]?.[item?.recomApiResponse?.id] || selectedAccessories?.[tabKey]?.[item?.recomApiResponse?.id]) &&\n !removeSelectedCartAccessories?.[tabKey]?.[item?.recomApiResponse?.id]\n )\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) && !removeSelectedCartAccessories?.[tabKey]?.[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 = recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice;\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} ${(selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id] || (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[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 </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 {(selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id] || (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id])) ?\n <><FalconButtonV2\n content={content?.removefromcartButton?.[0]}\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\n wafIdentifier={basicConfigUrl}\n />\n </> :\n <FalconButtonV2\n content={content?.addtocartButton?.[0]}\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\n wafIdentifier={basicConfigUrl}\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(recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice))\n ? Number(recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice)\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","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","selectedAccessories","multiItemAccessoriessList","removeSelectedCartAccessories","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","previousTab","loading","showMiniCart","isSubscriptionFlow","_b","_a","MOBILERATEPLAN","INTERNETFLOW","TV","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","ratePlanFlow","_g","_f","_k","_j","_h","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","_l","AssetPathPropConfig","getInstance","getAssetPath","handleClickAddRemoveCartBtn","e","item","index","preventDefault","recomApiResponse","id","setRemoveSelectedCartAccessories","Object","assign","updateAccessoryList","keys","filter","val","reduce","obj","key","setSelectedAccessories","trackCTAButton","REMOVEFROMCART","_o","_m","_p","_q","_r","_s","checkCartLimit","updateSelectedCartAccessories","_u","_t","_v","_w","_x","ADD_TO_CART","useEffect","values","map","CONTRACT","recurringPrice","monthlyInstallment","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","hardwareCategory","multiItemAccesoryCreatecart","isRetry","length","setupdateAccessoryCartFailure","setPreviousTab","setSelectedTab","some","tab","updateCreatecartItemData","redirectUrl","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","multiItemAccessorycreateCartRequest","paymentTypeCheck","paymentType","toLowerCase","MONTHLY","ONETIME","window","location","href","onCloseClick","prevState","onCloseClickCartLimitPopup","selectedAccCount","inTabSelected","summaryIcons","summaryLabels","recommendationType","tabKey","getTabSelectedCount","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","recomItems","cartOnlyItems","has","info","cartItems","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","hardwareOneTimeTotal","sum","price","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","rpRawPrice","ratePlan","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","card","selectedCard","detailSection","sbStoryItem","body","displayText","heading","optionalText","accessoriesColorLabel","_z","_y","accImage","_0","esimIcon","esimBadge","_2","_1","energyIcon","src","getCompressedImage","_3","_4","alt","width","height","_5","_6","imageData","image","mainPriceContainer","_7","selectedContractType","priceContainer","style","_9","_8","marketMonthlyInstallment","countZero","_10","_11","_12","_13","strikedMonthlyPrice","_14","_16","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_19","_18","strikedtotalMonthlyPrice","visibility","_20","_21","market","_23","_22","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_25","_24","_27","_26","_28","_31","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_32","_33","_34","_35","_36","_37","FalconButtonV2","_38","onClick","wafIdentifier","_39","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","itemId","removeItemFromCart","updatedList","handleDeleteFromMiniCart","rpName","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","disabled","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","selectedKeys","firstKey","removedItem","handleReplaceSelection"],"mappings":"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"}
1
+ {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\r\nimport React, {JSX, useEffect, useState } from 'react';\r\nimport 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 } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { updateCreatecartItemData } from '../multiItemAccessoryStore/types';\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 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 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 { selectedAccessories, multiItemAccessoriessList, removeSelectedCartAccessories, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData , previousTab, loading, showMiniCart } = store;\r\n //check for WIN/rateplan flow\r\n const isSubscriptionFlow = [MOBILERATEPLAN, INTERNETFLOW, TV ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\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 // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n // added a condition to check if accessories was added to cart if so then add to the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n actions.setRemoveSelectedCartAccessories({\r\n // preserve other tabs\r\n ...removeSelectedCartAccessories,\r\n [store?.selectedTab]: {\r\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\r\n [item?.recomApiResponse?.id]: item,\r\n },\r\n });\r\n // to remove selected accessories from the redux store\r\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\r\n return {\r\n ...obj,\r\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\r\n };\r\n }, {});\r\n actions.setSelectedAccessories({\r\n // preserve other tabs\r\n ...selectedAccessories,\r\n [store?.selectedTab]: updateAccessoryList,\r\n });\r\n }\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n }\r\n else {\r\n // to remove selected accessories from the redux store\r\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\r\n return {\r\n ...obj,\r\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\r\n };\r\n }, {});\r\n actions.setSelectedAccessories({\r\n // preserve other tabs\r\n ...selectedAccessories,\r\n [store?.selectedTab]: updateAccessoryList,\r\n });\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n } else {\r\n // added a condition to check if accessories was added to cart if so then remove from the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n const updateSelectedCartAccessories = Object?.keys(removeSelectedCartAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\r\n return {\r\n ...obj,\r\n [key]: removeSelectedCartAccessories?.[store?.selectedTab]?.[key]\r\n };\r\n }, {});\r\n actions.setRemoveSelectedCartAccessories({\r\n // preserve other tabs\r\n ...removeSelectedCartAccessories,\r\n [store?.selectedTab]: updateSelectedCartAccessories,\r\n });\r\n }\r\n // if not added incart already then add the selected accessories\r\n if (!cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n actions.setSelectedAccessories({\r\n // preserve other tabs\r\n ...selectedAccessories,\r\n [store?.selectedTab]: {\r\n ...(selectedAccessories?.[store?.selectedTab] || {}),\r\n [item?.recomApiResponse?.id]: item,\r\n },\r\n });\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n }\r\n }\r\n };\r\n\r\n useEffect(()=>{\r\n if (setAccessoriesSelected && typeof setAccessoriesSelected === 'function') {\r\n setAccessoriesSelected(selectedAccessories);\r\n }\r\n },[selectedAccessories,setAccessoriesSelected])\r\n\r\n //remove accessories if payment type not mathces when switching\r\n useEffect(() => {\r\n\r\n Object?.values(multiItemAccessoriessList?.[store?.selectedTab] || [])?.map((item: any, index: any) =>\r\n // added a condition to check if accessories was added to cart if so then add to the redux store (removeSelectedCartAccessories?.[store?.selectedTab])\r\n {\r\n if (selectedPaymentType === CONTRACT && !item?.recomApiResponse?.recurringPrice?.monthlyInstallment) {\r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && actions.setRemoveSelectedCartAccessories({\r\n // preserve other tabs\r\n ...removeSelectedCartAccessories,\r\n [store?.selectedTab]: {\r\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\r\n [item?.recomApiResponse?.id]: item,\r\n },\r\n })\r\n // to remove selected accessories from the redux store\r\n if (selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])?.filter((val) => val !== item?.recomApiResponse?.id)?.reduce((obj, key) => {\r\n return {\r\n ...obj,\r\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\r\n };\r\n }, {});\r\n actions.setSelectedAccessories({\r\n // preserve other tabs\r\n ...selectedAccessories,\r\n [store?.selectedTab]: updateAccessoryList,\r\n });\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n }\r\n }\r\n })\r\n }, [selectedPaymentType])\r\n\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\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 // On retry, only close the popup and clear error — don't revert tab/selections\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n if (!isRetry) {\r\n actions.setPreviousTab(store?.selectedTab); // Update previousTab in store before changing tab\r\n }\r\n actions.setSelectedTab(store?.selectedTab);\r\n\r\n // updating cart if there is add/remove in the accessories\r\n if (Object.keys(recommendedAccessories || {}).some(tab => \r\n (Object.keys(selectedAccessories?.[tab] || {}).length !== 0) || \r\n (Object.keys(removeSelectedCartAccessories?.[tab] || {}).length !== 0)\r\n )) {\r\n\r\n const updateCreatecartItemData: updateCreatecartItemData = {\r\n id: cartId,\r\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\r\n }\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\r\n }\r\n else {\r\n let paymentTypeCheck = true;\r\n multiItemAccessoriessList?.[store?.selectedTab]?.filter((item: any) => cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id])?.filter((item: any) => {\r\n paymentTypeCheck = item?.recomApiResponse?.paymentType?.toLowerCase() === (selectedPaymentType === CONTRACT ? MONTHLY : ONETIME);\r\n })\r\n\r\n // to check whether payment type has been changed \r\n if (paymentTypeCheck || store?.selectedTab === WATCHES || store.selectedTab === TABLETS) {\r\n // redirect to summary page if no update cart is required\r\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n }\r\n else {\r\n const updateCreatecartItemData: updateCreatecartItemData = {\r\n id: cartId,\r\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\r\n }\r\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\r\n }\r\n }\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 // empty the update cart failure response when popup is closed\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n // Revert to previous tab and clear updated selections on cancel\r\n if (previousTab) {\r\n actions.setSelectedTab(previousTab);\r\n actions.setPreviousTab(previousTab);\r\n actions.setSelectedAccessories({ ...selectedAccessories, [previousTab]: {} });\r\n actions.setRemoveSelectedCartAccessories({ ...removeSelectedCartAccessories, [previousTab]: {} });\r\n }\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\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 // First, check for items in selectedAccessories\r\n const selectedKeys = Object.keys(selectedAccessories?.[store?.selectedTab] || {});\r\n if (selectedKeys.length > 0) {\r\n // Remove the first selected accessory and add the new one in a single update\r\n const firstKey = selectedKeys[0];\r\n const removedItem = selectedAccessories?.[store?.selectedTab]?.[firstKey];\r\n \r\n // Build new selectedAccessories without the old item but with the new item\r\n const updateAccessoryList = Object?.keys(selectedAccessories?.[store?.selectedTab])\r\n ?.filter((val) => val !== firstKey)\r\n ?.reduce((obj, key) => {\r\n return {\r\n ...obj,\r\n [key]: selectedAccessories?.[store?.selectedTab]?.[key]\r\n };\r\n }, {});\r\n \r\n // Add the new pending item in the same update\r\n actions.setSelectedAccessories({\r\n ...selectedAccessories,\r\n [store?.selectedTab]: {\r\n ...updateAccessoryList,\r\n [pendingItem?.recomApiResponse?.id]: pendingItem,\r\n },\r\n });\r\n \r\n // Track analytics for removed item\r\n if (removedItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, removedItem, 0);\r\n }\r\n } \r\n // If no items in selectedAccessories, check for items in cart (not in removeList)\r\n else {\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n for (const item of cartItems) {\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && \r\n !removeSelectedCartAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) { \r\n // Add to removeSelectedCartAccessories\r\n actions.setRemoveSelectedCartAccessories({\r\n ...removeSelectedCartAccessories,\r\n [store?.selectedTab]: {\r\n ...(removeSelectedCartAccessories?.[store?.selectedTab] || {}),\r\n [item?.recomApiResponse?.id]: item,\r\n },\r\n });\r\n \r\n // Track analytics for removed item\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n break; // Only remove the first one\r\n }\r\n }\r\n \r\n // Add the new pending item to selectedAccessories\r\n actions.setSelectedAccessories({\r\n ...selectedAccessories,\r\n [store?.selectedTab]: {\r\n [pendingItem?.recomApiResponse?.id]: pendingItem,\r\n },\r\n });\r\n }\r\n\r\n // Track analytics for the new item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\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 let selectedAccCount = 0;\r\n (multiItemAccessoriessList?.[store?.selectedTab] || [])?.map((item: any) => {\r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? selectedAccCount++ : '';\r\n })\r\n selectedAccCount += Object.keys(selectedAccessories?.[store?.selectedTab] || {}).length;\r\n selectedAccCount -= Object.keys(removeSelectedCartAccessories?.[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\n const itemId = item?.recomApiResponse?.id;\r\n\r\n // If item is already in cart, call API directly to remove it\r\n if (cartData?.[tabKey]?.[itemId]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n // If item is in selectedAccessories, remove it locally\r\n if (selectedAccessories?.[tabKey]?.[itemId]) {\r\n const updatedList = Object.keys(selectedAccessories[tabKey])\r\n .filter((key) => key !== itemId)\r\n .reduce((obj: any, key: string) => {\r\n obj[key] = selectedAccessories[tabKey][key];\r\n return obj;\r\n }, {});\r\n actions.setSelectedAccessories({\r\n ...selectedAccessories,\r\n [tabKey]: updatedList,\r\n });\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 (\r\n Object.keys(cartData?.[tabKey] || {}).length +\r\n Object.keys(selectedAccessories?.[tabKey] || {}).length -\r\n Object.keys(removeSelectedCartAccessories?.[tabKey] || {}).length\r\n );\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\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) =>\r\n (cartData?.[tabKey]?.[item?.recomApiResponse?.id] || selectedAccessories?.[tabKey]?.[item?.recomApiResponse?.id]) &&\r\n !removeSelectedCartAccessories?.[tabKey]?.[item?.recomApiResponse?.id]\r\n )\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) && !removeSelectedCartAccessories?.[tabKey]?.[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 = recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice;\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} ${(selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id] || (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[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 </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 {(selectedAccessories?.[store?.selectedTab]?.[item?.recomApiResponse?.id] || (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] && !removeSelectedCartAccessories?.[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 />\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 />\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(recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice))\r\n ? Number(recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ?? cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice)\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","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","selectedAccessories","multiItemAccessoriessList","removeSelectedCartAccessories","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","previousTab","loading","showMiniCart","isSubscriptionFlow","_b","_a","MOBILERATEPLAN","INTERNETFLOW","TV","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","ratePlanFlow","_g","_f","_k","_j","_h","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","_l","AssetPathPropConfig","getInstance","getAssetPath","handleClickAddRemoveCartBtn","e","item","index","preventDefault","recomApiResponse","id","setRemoveSelectedCartAccessories","Object","assign","updateAccessoryList","keys","filter","val","reduce","obj","key","setSelectedAccessories","trackCTAButton","REMOVEFROMCART","_o","_m","_p","_q","_r","_s","checkCartLimit","updateSelectedCartAccessories","_u","_t","_v","_w","_x","ADD_TO_CART","useEffect","values","map","CONTRACT","recurringPrice","monthlyInstallment","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","hardwareCategory","multiItemAccesoryCreatecart","isRetry","length","setupdateAccessoryCartFailure","setPreviousTab","setSelectedTab","some","tab","updateCreatecartItemData","redirectUrl","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","multiItemAccessorycreateCartRequest","paymentTypeCheck","paymentType","toLowerCase","MONTHLY","ONETIME","window","location","href","onCloseClick","prevState","onCloseClickCartLimitPopup","selectedAccCount","inTabSelected","summaryIcons","summaryLabels","recommendationType","tabKey","getTabSelectedCount","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","recomItems","cartOnlyItems","has","info","cartItems","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","hardwareOneTimeTotal","sum","price","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","rpRawPrice","ratePlan","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","card","selectedCard","detailSection","sbStoryItem","body","displayText","heading","optionalText","accessoriesColorLabel","_z","_y","accImage","_0","esimIcon","esimBadge","_2","_1","energyIcon","src","getCompressedImage","_3","_4","alt","width","height","_5","_6","imageData","image","mainPriceContainer","_7","selectedContractType","priceContainer","style","_9","_8","marketMonthlyInstallment","countZero","_10","_11","_12","_13","strikedMonthlyPrice","_14","_16","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_19","_18","strikedtotalMonthlyPrice","visibility","_20","_21","market","_23","_22","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_25","_24","_27","_26","_28","_31","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_32","_33","_34","_35","_36","_37","FalconButtonV2","_38","onClick","wafIdentifier","_39","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","itemId","removeItemFromCart","updatedList","handleDeleteFromMiniCart","rpName","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","disabled","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","selectedKeys","firstKey","removedItem","handleReplaceSelection"],"mappings":"2xDAiCA,MAAMA,EAAgB,EACpBC,UACAC,WACAC,0GAEA,MAAMC,GAASC,EAAU,wBAClBC,GAAMC,IAAWC,GAAS,GAC3BC,GAAWC,KACVC,GAAoBC,IAAyBJ,GAAS,IACtDK,GAAaC,IAAkBN,EAAc,OAC7CO,GAAkBC,IAAuBR,EAAiB,IAC3DS,MAAEA,GAAKC,SAAEA,IAAaC,IACtBC,GAAUC,EAAyBH,IACnCI,GAAcC,KACdC,2BAAEA,IAA+BP,IAEjCQ,oBAAEA,GAAmBC,0BAAEA,GAAyBC,8BAAEA,GAA6BC,oBAAEA,GAAmBC,oBAAEA,GAAmBC,uBAAEA,GAAsBC,SAAEA,GAAQC,YAAGA,GAAWC,QAAEA,GAAOC,aAAEA,IAAiBjB,GAErMkB,MAAkE,QAA7CC,UAAAC,EAAA,CAACC,EAAgBC,EAAcC,yBAAMC,gBAAQ,IAAAL,OAAA,EAAAA,EAAAM,KAAAL,EAA8D,QAA3DM,GAAsD,QAAtDC,GAA4C,QAA5CC,GAAAf,cAAsB,EAAtBA,GAAyBb,cAAK,EAALA,GAAO6B,oBAAY,IAAAD,QAAA,EAAAA,GAAEE,gBAAQ,IAAAH,QAAA,EAAAA,GAAG,UAAE,IAAAD,QAAA,EAAAA,GAAEK,kCAAwCpB,cAAmB,EAAnBA,GAAqBqB,iBAC/LC,MAA0C,QAA3BC,GAAiB,QAAjBC,GAAA,CAACd,UAAgB,IAAAc,QAAA,EAAAA,GAAEX,gBAAQ,IAAAU,QAAA,EAAAA,GAAAT,KAAAU,GAA8D,QAA3DC,GAAsD,QAAtDC,GAA4C,QAA5CC,GAAAzB,cAAsB,EAAtBA,GAAyBb,cAAK,EAALA,GAAO6B,oBAAY,IAAAS,QAAA,EAAAA,GAAER,gBAAQ,IAAAO,QAAA,EAAAA,GAAG,UAAE,IAAAD,QAAA,EAAAA,GAAEL,kCAAwCpB,cAAmB,EAAnBA,GAAqBqB,iBACvKO,GAAwB,CAC5BC,CAACA,GAAYtB,GACRe,KAAgBjD,aAAO,EAAPA,EAASyD,4BAA4BzD,aAAO,EAAPA,EAAS0D,uBAC9D1D,aAAO,EAAPA,EAASuD,kBACdI,QAAS,EACTC,QAAS,GAELC,GAAmBC,IACvBC,EAAuBC,EAASC,EAAgB,CAC9CC,UAAWC,EACXC,WAAYN,EAAQO,EAAOC,IAE7BnD,GAAQ0C,gBAAgBC,IAGpBS,GAAmBC,KAAKC,MAC5BC,EAAmBF,KAAKG,UAAU3E,aAAO,EAAPA,EAAS4E,sBAAuB,CAChErB,cAAgB,EAAhBA,GAAmBvC,GAAM6B,aAAagC,cAGpCC,GAAmD,QAAlCC,GAAAC,aAAmB,EAAnBA,EAAqBC,qBAAa,IAAAF,QAAA,EAAAA,GAAEG,eAUrDC,GAA8B,CAACC,EAAQC,EAAWC,qDAGtD,GAFAF,EAAEG,kBAEgC,QAA9BnD,EAAAN,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAyB,QAAtBD,EAAAkD,aAAI,EAAJA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,QAA2D,QAAnD7C,EAAAlB,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAAD,OAAA,EAAAA,EAAyB,QAAtBD,EAAA0C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA7C,OAAA,EAAAA,EAAE8C,KAAK,CAUtJ,GATAtE,GAAQuE,iCAAgCC,OAAAC,OAAAD,OAAAC,OAAA,GAEnClE,KACH,CAACV,cAAK,EAALA,GAAO6B,aAAY8C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,GACdlE,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAG,CAC9D,CAAuB,QAAtBH,EAAA2C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA9C,OAAA,EAAAA,EAAE+C,IAAKJ,OAIW,QAAzClC,EAAA3B,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAM,OAAA,EAAAA,EAAyB,QAAtBD,EAAAmC,aAAI,EAAJA,EAAMG,wBAAgB,IAAAtC,OAAA,EAAAA,EAAEuC,IAAK,CAC3E,MAAMI,EAAkI,QAA5GxC,EAAuD,QAAvDC,EAAAqC,kBAAM,EAANA,OAAQG,KAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,qBAAa,IAAAS,OAAA,EAAAA,EAAEyC,OAAQC,IAAO,IAAA5D,EAAC,OAAA4D,KAA8B,QAAtB5D,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqD,aAAG,IAAApC,OAAA,EAAAA,EAAE4C,OAAO,CAACC,EAAKC,WACrJ,OAAAR,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GAAG,CACNC,CAACA,GAA+C,QAAzC/D,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAG+D,MAEpD,CAAA,GACHhF,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAEzBpE,IAAmB,CACtB,CAACR,cAAK,EAALA,GAAO6B,aAAcgD,IAE1B,CACAQ,GAAerC,EAASsC,EAAgBjB,EAAMC,EAChD,MAGE,GAA6C,QAAzClC,EAAA5B,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAO,OAAA,EAAAA,EAAyB,QAAtB2B,EAAAM,aAAI,EAAJA,EAAMG,wBAAgB,IAAAT,OAAA,EAAAA,EAAEU,IAAK,CAC3E,MAAMI,EAAkI,QAA5GU,EAAuD,QAAvDC,EAAAb,kBAAM,EAANA,OAAQG,KAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,qBAAa,IAAA2D,OAAA,EAAAA,EAAET,OAAQC,IAAO,IAAA5D,EAAC,OAAA4D,KAA8B,QAAtB5D,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqD,aAAG,IAAAc,OAAA,EAAAA,EAAEN,OAAO,CAACC,EAAKC,WACrJ,OAAAR,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GAAG,CACNC,CAACA,GAA+C,QAAzC/D,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAG+D,MAEpD,CAAA,GACHhF,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAEzBpE,IAAmB,CACtB,CAACR,cAAK,EAALA,GAAO6B,aAAcgD,KAExBQ,GAAerC,EAASsC,EAAgBjB,EAAMC,EAChD,KAAO,CAEL,IAAkC,QAA9BmB,EAAA3E,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAA4D,OAAA,EAAAA,EAAyB,QAAtBC,EAAArB,aAAI,EAAJA,EAAMG,wBAAgB,IAAAkB,OAAA,EAAAA,EAAEjB,OAA0D,UAAnD/D,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAA8D,OAAA,EAAAA,EAAyB,QAAtBC,EAAAvB,aAAI,EAAJA,EAAMG,wBAAgB,IAAAoB,OAAA,EAAAA,EAAEnB,KAAK,CACrJ,GAAIoB,GAAexB,EAAMC,GACvB,OAEF,MAAMwB,EAAsJ,QAAtHC,EAAiE,QAAjEC,EAAArB,kBAAM,EAANA,OAAQG,KAAKpE,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,qBAAa,IAAAmE,OAAA,EAAAA,EAAEjB,OAAQC,IAAO,IAAA5D,EAAC,OAAA4D,KAA8B,QAAtB5D,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqD,aAAG,IAAAsB,OAAA,EAAAA,EAAEd,OAAO,CAACC,EAAKC,WACzK,OAAAR,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GAAG,CACNC,CAACA,GAAyD,QAAnD/D,EAAAV,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAG+D,MAE9D,CAAA,GACHhF,GAAQuE,iCAAgCC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAEnClE,IAA6B,CAChC,CAACV,cAAK,EAALA,GAAO6B,aAAciE,IAE1B,CAEA,KAAmC,QAA9BG,EAAAnF,cAAQ,EAARA,GAAWd,gBAAAA,GAAO6B,oBAAY,IAAAoE,OAAA,EAAAA,EAAyB,QAAtBC,EAAA7B,aAAI,EAAJA,EAAMG,wBAAgB,IAAA0B,OAAA,EAAAA,EAAEzB,KAAK,CACjE,GAAIoB,GAAexB,EAAMC,GACvB,OAEFnE,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,GAEzBpE,KACH,CAACR,cAAK,EAALA,GAAO6B,aAAY8C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,GACdpE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAG,CACpD,CAAuB,QAAtBsE,EAAA9B,aAAI,EAAJA,EAAMG,wBAAgB,IAAA2B,OAAA,EAAAA,EAAE1B,IAAKJ,MAGpC,CACAgB,GAAee,EAAaA,EAAa/B,EAAMC,EACjD,GAIJ+B,EAAU,KACHnH,GAA4D,mBAA3BA,GACtCA,EAAuBsB,KAEvB,CAACA,GAAoBtB,IAGvBmH,EAAU,WAE6D,QAArEjF,EAAAuD,kBAAM,EAANA,OAAQ2B,QAAO7F,cAAyB,EAAzBA,GAA4BT,cAAK,EAALA,GAAO6B,eAAgB,WAAG,IAAAT,GAAAA,EAAEmF,IAAI,CAAClC,EAAWC,2BAGrF,GAAI1D,KAAwB4F,KAAmD,QAAtCrF,EAAsB,UAAtBkD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqF,sBAAc,IAAAtF,OAAA,EAAAA,EAAEuF,iCAC/E5F,cAAQ,EAARA,GAAWd,gBAAAA,GAAO6B,mCAAqC,QAAtBF,EAAA0C,eAAAA,EAAMG,wBAAgB,IAAA7C,OAAA,EAAAA,EAAE8C,MAAOtE,GAAQuE,iCAAgCC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAEnGlE,KACH,CAACV,cAAK,EAALA,GAAO6B,aAAY8C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,GACdlE,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAG,CAC9D,CAAuB,QAAtBH,EAAA2C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA9C,OAAA,EAAAA,EAAE+C,IAAKJ,OAIW,QAAzClC,EAAA3B,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAM,OAAA,EAAAA,EAAyB,QAAtBD,EAAAmC,aAAI,EAAJA,EAAMG,wBAAgB,IAAAtC,OAAA,EAAAA,EAAEuC,KAAK,CAC3E,MAAMI,EAAkI,QAA5GxC,EAAuD,QAAvDC,EAAAqC,kBAAM,EAANA,OAAQG,KAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,qBAAa,IAAAS,OAAA,EAAAA,EAAEyC,OAAQC,IAAO,IAAA5D,EAAC,OAAA4D,KAA8B,QAAtB5D,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqD,aAAG,IAAApC,OAAA,EAAAA,EAAE4C,OAAO,CAACC,EAAKC,WACrJ,OAAAR,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GAAG,CACNC,CAACA,GAA+C,QAAzC/D,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAG+D,MAEpD,CAAA,GACHhF,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAEzBpE,IAAmB,CACtB,CAACR,cAAK,EAALA,GAAO6B,aAAcgD,KAGxBQ,GAAerC,EAASsC,EAAgBjB,EAAMC,EAChD,KAGH,CAAC1D,KAEJ,MAAMyE,GAAiB,CAACsB,EAAeC,EAAmBvC,EAAWC,yBACnEuC,EAAcF,EAAOC,EAAW,CAC9BE,YAAmC,QAAtB1F,EAAAiD,eAAAA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAE2F,KACrCC,UAAiC,QAAtB7F,EAAAkD,eAAAA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,GACnCwC,mBAAYtF,EAAsB,QAAtBC,EAAAyC,aAAI,EAAJA,EAAMG,wBAAgB,IAAA5C,OAAA,EAAAA,EAAEsF,mCAAcC,KAClD7C,MAAOA,EACP8C,gBAASjF,EAAsB,QAAtBT,EAAA2C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA9C,OAAA,EAAAA,EAAE2F,sCAAiBC,MAClDC,gBAASjF,EAAsB,QAAtBJ,EAAAmC,aAAI,EAAJA,EAAMG,wBAAgB,IAAAtC,OAAA,EAAAA,EAAEmF,sCAAiBE,QAClDC,iBAAkBxH,cAAK,EAALA,GAAO6B,eAIvB4F,GAA+BrD,0BACnCA,EAAEG,iBACF,MAAMmD,GAAiD,QAAvCtG,EAAAuD,OAAOG,KAAKvE,WAA2B,IAAAa,OAAA,EAAAA,EAAEuG,QAAS,EAYlE,GAXID,IAEFpI,IAAQ,GACRe,GAAYuH,8BAA8B,KAEvCF,GACHvH,GAAQ0H,eAAe7H,cAAK,EAALA,GAAO6B,aAEhC1B,GAAQ2H,eAAe9H,cAAK,EAALA,GAAO6B,aAG1B8C,OAAOG,KAAKjE,IAA0B,CAAA,GAAIkH,KAAKC,GACS,IAAzDrD,OAAOG,MAAKtE,cAAmB,EAAnBA,GAAsBwH,KAAQ,CAAA,GAAIL,QACqB,IAAnEhD,OAAOG,MAAKpE,cAA6B,EAA7BA,GAAgCsH,KAAQ,CAAA,GAAIL,QACxD,CAED,MAAMM,EAAqD,CACzDxD,GAAItF,GACJ+I,YAAahH,GAA4C,QAAvBC,EAAAnC,aAAO,EAAPA,EAASmJ,sBAAc,IAAAhH,OAAA,EAAAA,EAAEiH,WAA0C,QAA7BxG,EAAA5C,aAAO,EAAPA,EAASqJ,4BAAoB,IAAAzG,OAAA,EAAAA,EAAE0G,KAEzGvF,EAAuBC,EAASuF,EAAU,CACxCrF,UAAWsF,EACXpF,WAAYqF,IAEdpI,GAAYqI,oCAAoCT,EAClD,KACK,CACH,IAAIU,GAAmB,EAMvB,GALoI,QAApIjH,EAA+C,QAA/CC,EAAAlB,cAAyB,EAAzBA,GAA4BT,cAAK,EAALA,GAAO6B,oBAAY,IAAAF,OAAA,EAAAA,EAAEoD,OAAQV,IAAa,IAAAjD,EAAAD,EAAC,OAA8B,QAA9BC,EAAAN,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAyB,QAAtBD,EAAAkD,aAAI,EAAJA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,aAAI,IAAA/C,GAAAA,EAAEqD,OAAQV,YAC5IsE,GAAsD,QAAnCxH,EAAsB,QAAtBC,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEwH,mBAAW,IAAAzH,OAAA,EAAAA,EAAE0H,kBAAmBjI,KAAwB4F,EAAWsC,EAAUC,KAItHJ,IAAoB3I,gBAAAA,GAAO6B,eAAgBc,GAAW3C,GAAM6B,cAAgBe,EAE9EoG,OAAOC,SAASC,KAAOhI,GAA4C,QAAvBiB,EAAAnD,eAAAA,EAASmJ,sBAAc,IAAAhG,OAAA,EAAAA,EAAEiG,WAA0C,UAA7BpJ,aAAO,EAAPA,EAASqJ,4BAAoB,IAAAnG,OAAA,EAAAA,EAAEoG,QAE9G,CACH,MAAML,EAAqD,CACzDxD,GAAItF,GACJ+I,YAAahH,GAA4C,QAAvBoB,EAAAtD,aAAO,EAAPA,EAASmJ,sBAAc,IAAA7F,OAAA,EAAAA,EAAE8F,WAA0C,QAA7B/F,EAAArD,aAAO,EAAPA,EAASqJ,4BAAoB,IAAAhG,OAAA,EAAAA,EAAEiG,KAEzGjI,GAAYqI,oCAAoCT,EAClD,CACF,GAIIkB,GAAe,WACnB7J,GAAS8J,IAAeA,IAEmB,QAAvChI,EAAAuD,OAAOG,KAAKvE,WAA2B,IAAAa,OAAA,EAAAA,EAAEuG,QAAS,IACpDtH,GAAYuH,8BAA8B,IAEtC7G,KACFZ,GAAQ2H,eAAe/G,IACvBZ,GAAQ0H,eAAe9G,IACvBZ,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,GAAMpE,IAAmB,CAAEO,CAACA,IAAc,CAAA,KACxEZ,GAAQuE,iCAAgCC,OAAAC,OAAAD,OAAAC,OAAA,GAAMlE,IAA6B,CAAEK,CAACA,IAAc,CAAA,QAKlGsF,EAAU,YACmC,QAAvCjF,EAAAuD,OAAOG,KAAKvE,WAA2B,IAAAa,OAAA,EAAAA,EAAEuG,QAAS,GACpDrI,GAAS8J,IAAeA,IAEzB,CAAC7I,KAGJ,MAAM8I,GAA6B,KACjC1J,IAAsB,GACtBE,GAAe,MACfE,GAAoB,IAuGhB8F,GAAiB,CAACxB,EAAYC,WAClC,IAAIgF,EAAmB,EAMvB,OALuD,QAAvDlI,GAACX,gBAAAA,GAA4BT,cAAK,EAALA,GAAO6B,eAAgB,UAAG,IAAAT,GAAAA,EAAEmF,IAAKlC,uBAC5DvD,cAAQ,EAARA,GAAWd,gBAAAA,GAAO6B,mCAAqC,QAAtBV,EAAAkD,eAAAA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,MAAM6E,MAEjEA,GAAoB3E,OAAOG,MAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAI8F,OACjF2B,GAAoB3E,OAAOG,MAAKpE,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAI8F,OACvF2B,IAAoB/G,cAAgB,EAAhBA,GAAmBvC,GAAM6B,gBAC/ClC,IAAsB,GACtBE,GAAewE,GAAQ,MACvBtE,GAAoBuE,GAAS,IACtB,IAyCLiF,GAAwC,CAAA,EACxCC,GAAuC,CAAA,EACvCC,GAAwC,CAAA,IAE7CzK,aAAO,EAAPA,EAAS0K,qBAAsB,IAAInD,IAAKoD,UACvCJ,GAAcI,GAZY,CAACA,GAEzBhF,OAAOG,MAAKhE,cAAQ,EAARA,GAAW6I,KAAW,CAAA,GAAIhC,OACtChD,OAAOG,MAAKtE,cAAmB,EAAnBA,GAAsBmJ,KAAW,CAAA,GAAIhC,OACjDhD,OAAOG,MAAKpE,cAA6B,EAA7BA,GAAgCiJ,KAAW,CAAA,GAAIhC,OAQrCiC,CAAoBD,GAC5CH,GAAa,GAAGG,UAAkE,QAAjDvI,EAACpC,aAAO,EAAPA,EAAkB,GAAG2K,EAAOd,4BAAoB,IAAAzH,OAAA,EAAAA,EAAEyI,SACpFJ,GAAc,GAAGE,WAAmB3K,aAAO,EAAPA,EAAkB,mBAAmB2K,EAAO,KAAKA,EAAOG,MAAM,GAAGjB,wBAOvG,MAwHQkB,MAAOC,GAAgBC,kBAAEA,GAAiBC,kBAAEA,IA1DxB,oBAC1B,IAAID,EAAoB,EACpBC,EAAoB,EAExB,MAAMH,IAAS/K,eAAAA,EAAS0K,qBAAsB,IAAIS,QAASR,IACzD,MAAMS,GAAY3J,cAAyB,EAAzBA,GAA4BkJ,KAAW,CAAA,EACnDU,EAAW,IAAIC,IAAI3F,OAAO2B,OAAO8D,GAAW7D,IAAKlC,IAAa,IAAAjD,EAAC,eAAAA,EAAAiD,aAAI,EAAJA,EAAMG,uCAAkBC,MAGvF8F,EAAa5F,OAAO2B,OAAO8D,GAC9BrF,OAAQV,oBACP,QAAmB,QAAlBjD,EAAAN,cAAQ,EAARA,GAAW6I,UAAO,IAAAvI,OAAA,EAAAA,EAAyB,QAAtBD,EAAAkD,eAAAA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,OAAoC,QAA7B7C,EAAApB,cAAmB,EAAnBA,GAAsBmJ,UAAO,IAAA/H,OAAA,EAAAA,EAAyB,QAAtBD,EAAA0C,eAAAA,EAAMG,wBAAgB,IAAA7C,OAAA,EAAAA,EAAE8C,SACrE,UAAvC/D,cAA6B,EAA7BA,GAAgCiJ,UAAO,IAAAjI,OAAA,EAAAA,EAAyB,UAAtB2C,aAAI,EAAJA,EAAMG,wBAAgB,IAAArC,OAAA,EAAAA,EAAEsC,OAEpE8B,IAAKlC,gBAGJ,OAFA4F,MAA2D,kBAApC7I,EAAAiD,aAAI,EAAJA,EAAMG,uCAAkB0C,oBAAY,IAAA/F,OAAA,EAAAA,EAAEgG,OAAQ,GACrE+C,MAA6D,kBAAtCtI,EAAAyC,aAAI,EAAJA,EAAMG,uCAAkBiC,sBAAc,IAAA9E,OAAA,EAAAA,EAAE+E,qBAAsB,GACrF/B,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAYP,GAAI,CAAEsF,aAIhBa,EAAgB7F,OAAOG,MAAKhE,gBAAAA,GAAW6I,KAAW,CAAA,GACrD5E,OAAQN,IAAM,IAAArD,EAAC,OAACiJ,EAASI,IAAIhG,MAA+C,QAAvCrD,EAAAV,cAA6B,EAA7BA,GAAgCiJ,UAAO,IAAAvI,OAAA,EAAAA,EAAGqD,MAC/E8B,IAAK9B,IACJ,MAAMiG,EAtFiB,CAACC,gCAC9B,KAAKA,aAAS,EAATA,EAAWhD,QAAQ,OAAO,KAE/B,MAAMiD,EAAkB9H,IACtB,MAAM+H,EAASC,OAAOhI,GACtB,OAAOgI,OAAOC,SAASF,GAAUA,EAAS,GAGtCG,EAAkBC,IACtB,MAAMC,EAAQJ,OAAOG,aAAK,EAALA,EAAOE,YACtBC,EAAMN,OAAOG,aAAK,EAALA,EAAOI,UAC1B,OAAIP,OAAOC,SAASG,IAAUJ,OAAOC,SAASK,IAAQA,GAAOF,EACnDE,EAAMF,EAAS,EAElB,GAGT,IAAInE,EAAO,GACPL,EAAqB,EACrBQ,EAAe,EAEnB,IAAK,MAAM7C,KAAQsG,EAAW,CACvB5D,IACHA,GAAO1C,aAAI,EAAJA,EAAM0C,QAA6B,UAArB1C,aAAI,EAAJA,EAAMiH,uBAAe,IAAAlK,OAAA,EAAAA,EAAE2F,QAA6B,UAArB1C,aAAI,EAAJA,EAAMiH,uBAAe,IAAAnK,OAAA,EAAAA,EAAEsD,MAAMJ,eAAAA,EAAMI,KAAM,IAG/F,MAAM8G,qBAAS3J,EAAAyC,aAAI,EAAJA,EAAMmH,gCAAY,yBAAIC,YAAa,GAC5CC,EAAgBH,EAAOxG,OAAQ4G,GAAwC,aAA7BA,aAAC,EAADA,EAAGC,wBAC7CC,EAE8C,QAFxBnK,EAAAgK,EACzBvB,QAASwB,IAAWA,eAAAA,EAAGG,oBAAqB,IAC5CC,KAAMC,GAAqB,yBAAVA,aAAC,EAADA,EAAGvH,YAA6B,IAAA/C,OAAA,EAAAA,EAAEoB,MAChDmJ,EAAcV,EAAOQ,KAAMJ,GAAwC,YAA7BA,aAAC,EAADA,EAAGC,wBACzCM,EAAuF,QAAzEhK,EAA8B,QAA9BC,EAAA8J,aAAW,EAAXA,EAAaH,yBAAiB,IAAA3J,OAAA,EAAAA,EAAE4J,KAAMC,GAAqB,iBAAVA,aAAC,EAADA,EAAGvH,YAAqB,IAAAvC,OAAA,EAAAA,EAAEY,MAGzFqJ,GAAa9H,aAAI,EAAJA,EAAMkH,SAAU,GAG7Ba,EAAsBD,EAAWpH,OAAQ4G,GAA4B,eAAjBA,aAAC,EAADA,EAAGU,YACvDC,EAA0G,QAA5FhK,EAAC8J,EAAoBL,KAAMJ,IAAU,IAAAvK,EAAC,OAAyB,KAAjB,QAARA,EAAAuK,aAAC,EAADA,EAAGV,aAAK,IAAA7J,OAAA,EAAAA,EAAE+J,eAAqBiB,EAAoB,UAAG,IAAA9J,OAAA,EAAAA,EAAEQ,MAC5GyJ,EAAyE,QAA5DlK,EAAA8J,EAAWJ,KAAMJ,GAA4B,kBAAjBA,aAAC,EAADA,EAAGU,mBAA6B,IAAAhK,OAAA,EAAAA,EAAES,MAI3E0J,EAAuBJ,EAAoBnH,OAAO,CAACwH,EAAaC,IAC7DD,EAAO7B,EAAe8B,aAAK,EAALA,EAAO5J,OAASkI,EAAe0B,aAAK,EAALA,EAAOzB,OAClE,GAAKkB,EACLpH,OAAQ4G,GAA4B,aAAjBA,eAAAA,EAAGU,YACtBpH,OAAO,CAACwH,EAAaC,IAAeD,EAAM7B,EAAe8B,aAAK,EAALA,EAAO5J,OAAQ,GAE3E4D,GAAsBkE,EAAeiB,IAAmE,QAA5CrG,EAAyB,QAAzBzB,EAAkB,QAAlB3B,EAAAsJ,aAAa,EAAbA,EAAgB,UAAE,IAAAtJ,OAAA,EAAAA,EAAEsK,aAAK,IAAA3I,OAAA,EAAAA,EAAE4I,yBAAiB,IAAAnH,OAAA,EAAAA,EAAE1C,QAASwJ,GACnHpF,GAAgB0D,EAAesB,GAAeK,KAAelI,aAAI,EAAJA,EAAMuI,YAAaC,EAAWL,EAAuB,GACpH,CAEA,MAAO,CACLzF,OACAL,qBACAQ,iBA6BiB4F,CAAuBhM,GAAS6I,GAAQlF,IACrD,OAAKiG,GACLT,GAAqBS,EAAKxD,aAC1BgD,GAAqBQ,EAAKhE,mBACnB,CACLiD,SACAoD,YAAY,EACZvI,iBAAkB,CAChBC,KACAsC,KAAM2D,EAAK3D,KACXG,aAAc,CAAEC,KAAMuD,EAAKxD,cAC3BT,eAAgB,CAAEC,mBAAoBgE,EAAKhE,uBAV7B,OAcnB3B,OAAOiI,SAEV,MAAO,IAAIzC,KAAeC,KAI5B,IAAK,MAAMb,IAAU,CAAChH,EAASC,GAAU,CAEvC,GADsBmH,EAAMhC,KAAM1D,IAAcA,aAAI,EAAJA,EAAMsF,UAAWA,GAC9C,CACjB,MAAMsD,EAAkE,QAArDrL,EAA0C,QAA1CT,YAAAN,cAAsB,EAAtBA,GAAyB8I,yBAASuD,gBAAQ,IAAA/L,OAAA,EAAAA,EAAEgM,iBAAS,IAAAvL,EAAAA,EAAoC,QAAhCF,EAAsB,QAAtBC,EAAAb,cAAQ,EAARA,GAAUsM,oBAAY,IAAAzL,OAAA,EAAAA,EAAGgI,UAAO,IAAAjI,OAAA,EAAAA,EAAE2L,aACxGC,EAAgBxC,OAAOmC,GACvBM,EAAUzC,OAAOC,SAASuC,GAAiBA,EAAgB,EACjEpD,GAAqBqD,CACvB,CACF,CAEA,MAAO,CAAExD,QAAOE,oBAAmBC,sBAGqCsD,GACpEC,GAAsB9I,OAAO2B,OAAOiD,IAAetE,OAAO,CAACyI,EAAOC,IAAUD,EAAQC,EAAO,GACjG,OACEC,EAAAC,cAAAD,EAAAE,SAAA,KACEF,EAAAC,cAACE,EAAG,KACJH,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOC,UAClBvJ,OAAOG,MAAKrE,cAAyB,EAAzBA,GAA4BT,cAAK,EAALA,GAAO6B,eAAgB,IAAI8F,SAAUpF,cAAgB,EAAhBA,GAAmBvC,GAAM6B,gBAAiB7B,gBAAAA,GAAO6B,eAAgBW,GAAeoL,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOE,cAAcP,EAAAC,cAACO,EAAQ,CAACpP,QAASuE,QACtNvD,cAAK,EAALA,GAAO6B,eAAgBc,IAAW3C,cAAK,EAALA,GAAO6B,eAAgBe,IAAYgL,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOI,kBAAkBrO,cAAK,EAALA,GAAO6B,eAAgBc,EAAU3D,aAAO,EAAPA,EAASsP,eAAiBtP,aAAO,EAAPA,EAASuP,gBACpLX,EAAAC,cAACW,EAAuB,CAACrJ,IAAKnF,cAAK,EAALA,GAAO6B,aACoJ,QAAxL0D,WAAAC,IAAC/E,cAAyB,EAAzBA,GAA4BT,gBAAAA,GAAO6B,eAAgB,2BAAKkD,OAAQV,IAAa,IAAAjD,EAAAD,EAAC,OAAAP,KAAwB4F,GAAiD,QAAtCrF,EAAsB,QAAtBC,EAAAiD,eAAAA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqF,sBAAc,IAAAtF,OAAA,EAAAA,EAAEuF,oBAAqB,EAAIrC,WAAK,IAAAkB,QAAA,EAAAA,GAAEgB,IAAI,CAAClC,EAAWC,gKACzM,OACAsJ,EAAAC,cAAA,MAAA,CAAK1I,IAAKb,EAAO0J,UAAW,GAAGC,EAAOQ,SAAkD,QAAzCrN,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAyB,QAAtBD,EAAAkD,aAAI,EAAJA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAEsD,OAAsC,QAA9B7C,EAAAd,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAAD,OAAA,EAAAA,EAAyB,QAAtBD,EAAA0C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA7C,OAAA,EAAAA,EAAE8C,QAA2D,QAAnD/C,EAAAhB,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAAH,OAAA,EAAAA,EAAyB,QAAtBS,EAAAkC,aAAI,EAAJA,EAAMG,wBAAgB,IAAArC,OAAA,EAAAA,EAAEsC,KAAQwJ,EAAOS,aAAe,MACtSd,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOU,cAAelK,GAAI,kBAAkBxF,IAAWqF,gBAChC,QAArClC,UAAAC,EAA0B,QAA1BC,EAAiB,QAAjBJ,EAAAmC,aAAI,EAAJA,EAAMuK,mBAAW,IAAA1M,OAAA,EAAAA,EAAElD,eAAO,IAAAsD,OAAA,EAAAA,EAAEuM,2BAAO,UAAE,IAAAzM,OAAA,EAAAA,EAAE0M,2BAAgC,QAAjBtJ,EAAAnB,eAAAA,EAAMuK,mBAAW,IAAApJ,OAAA,EAAAA,EAAEsJ,cAAgBlB,uBAAKI,UAAWC,EAAOc,QAAStK,GAAI,YAAYxF,IAAWqF,KACjG,QAAlDsB,UAAAD,EAAgC,QAAhCD,YAAiB,QAAjBH,EAAAlB,aAAI,EAAJA,EAAMuK,mBAAW,IAAArJ,OAAA,EAAAA,EAAEvG,8BAAS6P,YAAI,IAAAnJ,OAAA,EAAAA,EAAG,yBAAIoJ,mBAAW,IAAAlJ,EAAAA,UAAII,EAAA3B,aAAI,EAAJA,EAAMuK,kCAAaE,aACzE9O,cAAK,EAALA,GAAO6B,eAAgBW,IAAoD,QAAvCyD,EAAsB,UAAtB5B,aAAI,EAAJA,EAAMG,wBAAgB,IAAAuB,OAAA,EAAAA,EAAEsB,uBAAe,IAAApB,OAAA,EAAAA,EAAEqB,QAA4D,UAAZ,QAAvCnB,EAAsB,QAAtBD,EAAA7B,aAAI,EAAJA,EAAMG,wBAAgB,IAAA0B,OAAA,EAAAA,EAAEmB,uBAAe,IAAAlB,OAAA,EAAAA,EAAEmB,QAAoBsG,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOe,cAAehQ,aAAO,EAAPA,EAASiQ,0BAA+D,QAAvCC,EAAsB,QAAtBC,EAAA9K,eAAAA,EAAMG,wBAAgB,IAAA2K,OAAA,EAAAA,EAAE9H,uBAAe,IAAA6H,OAAA,EAAEA,EAAA5H,QAGtQsG,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOmB,SAAU3K,GAAI,QAAQxF,IAAWqF,OACpDtE,cAAK,EAALA,GAAO6B,eAAgBc,IAAW3C,cAAK,EAALA,GAAO6B,eAAgBe,aAAYyM,EAAArQ,aAAO,EAAPA,EAASsQ,+BAAUzF,WAC1F+D,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOsB,oBACpBC,EAAiB,UAAjBnL,aAAI,EAAJA,EAAMuK,mBAAW,IAAAa,OAAA,EAAAA,EAAEC,iCAAY7F,WAAY+D,EAAAC,cAAA,MAAA,CAAK7M,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAA6C,UAAZ,QAAjB+L,EAAAxL,aAAI,EAAJA,EAAMuK,mBAAW,IAAAiB,OAAA,EAAAA,EAAEH,kBAAU,IAAAI,OAAA,EAAAA,EAAEjG,UAAWkG,IAAI,cAAcC,MAAO,GAAIC,OAAQ,KACvLrC,EAAAC,cAAA,MAAA,CAAK8B,IAAsB,QAAjBO,EAAAlR,aAAO,EAAPA,EAASsQ,gBAAQ,IAAAY,OAAA,EAAAA,EAAErG,SAAUkG,IAAI,OAAO/B,UAAWC,EAAOqB,YAGtE1B,EAAAC,cAAA,MAAA,CAAM7M,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAA8B,QAAfqM,EAAA9L,eAAAA,EAAM+L,iBAAS,IAAAD,OAAA,EAAAA,EAAEE,OAAQN,IAAI,oBAAoBC,MAAO,IAAKC,OAAQ,QAGnIrC,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOqC,mBAAoB7L,GAAI,qBAAqBxF,IAAWqF,cAC7EiM,EAAA5P,cAAmB,EAAnBA,GAAqBqB,sCAAiBwO,wBAAyBhK,GAAY5F,KAAwB4F,EAAYoH,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOwC,eAAgBhM,GAAI,uBAAuBxF,IAAWqF,KAC5LsJ,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOvB,MAAOjI,GAAI,QAAQxF,IAAWqF,KACrDsJ,EAAAC,cAAA,OAAA,CAAM6C,MAAO,CAAEpJ,OAA6C,QAAtCqJ,EAAsB,UAAtBtM,aAAI,EAAJA,EAAMG,wBAAgB,IAAAoM,OAAA,EAAAA,EAAEnK,sBAAc,IAAAkK,OAAA,EAAAA,EAAEE,0BAA2B,UAAY,YAAcC,EAAgD,kBAAtCC,EAAA1M,aAAI,EAAJA,EAAMG,uCAAkBiC,sBAAc,IAAAuK,OAAA,EAAAA,EAAEtK,sBAC9H,UAAhB,QAAtBuK,EAAA5M,eAAAA,EAAMG,wBAAgB,IAAAyM,OAAA,EAAAA,EAAExK,sBAAc,IAAAyK,OAAA,EAAAA,EAAEL,2BACvCjD,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAOkD,qBACvBL,YAAgC,QAAtBM,EAAA/M,aAAI,EAAJA,EAAMG,wBAAgB,IAAA4M,OAAA,EAAAA,EAAE3K,qCAAgBoK,2BAGrDjD,EAAAC,cAAA,OAAA,CAAMG,sBAAiC,QAAtBqD,EAAAhN,aAAI,EAAJA,EAAMG,wBAAgB,IAAA6M,OAAA,EAAAA,EAAE5K,uCAAgBoK,0BAA2B5C,eAAAA,EAAQqD,yBAA2BrD,EAAOsD,aAAcvS,aAAO,EAAPA,EAASuS,cAErJ3D,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOuD,YAAaxS,aAAO,EAAPA,EAASyS,cAAYX,EAA8C,QAApCY,GAAsB,QAAtBC,GAAAtN,aAAI,EAAJA,EAAMG,wBAAgB,IAAAmN,QAAA,EAAAA,GAAEzK,oBAAY,IAAAwK,QAAA,EAAAA,GAAEvK,UAAOyG,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAO2D,yBAA0BlB,MAAO,CAAEmB,YAAgD,WAAd,QAAtBC,GAAAzN,aAAI,EAAJA,EAAMG,wBAAgB,IAAAsN,QAAA,EAAAA,GAAE5K,oBAAY,IAAA6K,QAAA,EAAAA,GAAEC,QAAS,UAAY,WAAalB,EAA8C,QAApCmB,GAAsB,QAAtBC,GAAA7N,aAAI,EAAJA,EAAMG,wBAAgB,IAAA0N,QAAA,EAAAA,GAAEhL,oBAAY,IAAA+K,QAAA,EAAAA,GAAED,UAC/SpE,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOkE,kBAAmBnT,aAAO,EAAPA,EAASoT,oBAAoBxE,EAAAC,cAAA,KAAA,MAAO7O,aAAO,EAAPA,EAASqT,0BAEvFzE,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOwC,eAAgBhM,GAAI,uBAAuBxF,IAAWqF,KAC7EsJ,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOvB,MAAOgE,MAAO,CAAEpJ,OAA6C,QAAtCgL,GAAsB,QAAtBC,GAAAlO,eAAAA,EAAMG,wBAAgB,IAAA+N,QAAA,EAAAA,GAAE9L,sBAAc,IAAA6L,QAAA,EAAAA,GAAEzB,0BAA2B,UAAY,WAAapM,GAAI,QAAQxF,IAAWqF,KAC/JsJ,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAO/G,cAAe4J,EAA8C,QAApC0B,WAAAC,GAAApO,aAAI,EAAJA,EAAMG,yCAAkB0C,oBAAY,IAAAsL,QAAA,EAAAA,GAAErL,mBAChE,QAAtBuL,GAAArO,aAAI,EAAJA,EAAMG,wBAAgB,IAAAkO,QAAA,EAAAA,GAAExL,qCAAc8K,SACvCpE,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAOkD,qBACrBL,EAA8C,QAApC6B,cAAAtO,aAAI,EAAJA,EAAMG,yCAAkB0C,oBAAY,IAAAyL,QAAA,EAAAA,GAAEX,UAIrDpE,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOkE,kBAAmBnT,aAAO,EAAPA,EAAS4T,uBAGpD5T,aAAO,EAAPA,EAAS6T,gBAAgBlL,QAAS,IAAK3I,aAAO,EAAPA,EAAS8T,qBAAqBnL,QAAS,GAC7EiG,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAO8E,UAAWtO,GAAI,cAAcxF,IAAWqF,MACvB,QAAzC0O,GAAAxS,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAmR,QAAA,EAAAA,GAAyB,QAAtBC,GAAA5O,eAAAA,EAAMG,wBAAgB,IAAAyO,QAAA,EAAAA,GAAExO,OAAsC,QAA9ByO,GAAApS,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAAqR,QAAA,EAAAA,GAAyB,WAAtB7O,aAAI,EAAJA,EAAMG,wBAAgB,IAAA2O,QAAA,EAAAA,GAAE1O,QAA2D,QAAnD2O,GAAA1S,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAAuR,QAAA,EAAAA,GAAyB,QAAtBC,GAAAhP,aAAI,EAAJA,EAAMG,wBAAgB,IAAA6O,QAAA,EAAAA,GAAE5O,KAC3NmJ,EAAAC,cAAAD,EAAAE,SAAA,KAAEF,EAAAC,cAACyF,EAAc,CACjBtU,QAAsC,QAA7BuU,GAAAvU,aAAO,EAAPA,EAAS8T,4BAAoB,IAAAS,QAAA,EAAAA,GAAG,GACzCC,QAAUpP,GAAWD,GAA4BC,EAAGC,EAAMC,GAC1DmP,cAAe3P,MAGf8J,EAAAC,cAACyF,EAAc,CACftU,QAAiC,QAAxB0U,GAAA1U,aAAO,EAAPA,EAAS6T,uBAAe,IAAAa,QAAA,EAAAA,GAAG,GACpCF,QAAUpP,GAAWD,GAA4BC,EAAGC,EAAMC,GAC1DmP,cAAe3P,WAWvB8J,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAO0F,WAIpBlG,GAAsB,IAAKzO,aAAO,EAAPA,EAAS4U,yBAChCjP,OAAOG,KAAKjE,IAA0B,CAAA,GAAI8G,OAAS,GACnD/G,KAAwB4F,GACxBoH,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAO4F,aAC1BjG,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAO6F,UAErBlG,EAAAC,cAAA,OAAA,CAAMG,UAAW,WAAWC,EAAO8F,cAAe/U,aAAO,EAAPA,EAASgV,oBAE3DpG,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAOgG,cACpBjV,aAAO,EAAPA,EAAS0K,qBAAsB,IAAInD,IAAKoD,UACxC,OACEJ,GAAcI,GAAU,GACtBiE,EAAAC,cAAAD,EAAAE,SAAA,MACKnE,IAAUhH,GAAW4G,GAAc/G,GAAa,GAAMmH,IAAW/G,IAAY2G,GAAc/G,GAAa,GAAK+G,GAAc5G,GAAW,KAAQiL,EAAAC,cAAA,OAAA,KAAMD,EAAAC,cAAA,MAAA,CAAK7M,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAAgD,QAAjC1C,EAAApC,eAAAA,EAASkV,gCAAwB,IAAA9S,OAAA,EAAAA,EAAEyI,UAAWkG,IAAI,WAAWC,MAAO,GAAIC,OAAQ,MAClSrC,EAAAC,cAAA,OAAA,KAAMD,EAAAC,cAAA,MAAA,CAAK7M,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAAe0F,cAAY,EAAZA,GAAe,GAAGG,WAAiBoG,IAAK,GAAGpG,eAAmBJ,GAAcI,GAAW,KAAAF,cAAa,EAAbA,GAAgB,GAAGE,gBAOrLiE,EAAAC,cAAA,MAAA,CAAKG,UAAW,WAAWC,EAAOxC,aAC/B7K,KAAwB4F,EACrBoH,EAAAC,cAAAD,EAAAE,SAAA,KAAGgD,EAAU5G,IAAoBlL,aAAO,EAAPA,EAASuS,aAC1CT,EAAU7G,KAIdhJ,GACE2M,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOkG,WAAYX,QAAS,IAAM3Q,IAAiB5B,IAAeD,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAAoD,QAArC4B,GAAA1G,eAAAA,EAASoV,oCAA4B,IAAA1O,QAAA,EAAAA,GAAEmE,UAAWkG,IAAI,cAAcC,MAAO,GAAIC,OAAQ,KADlNrC,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOkG,WAAYX,QAAS,IAAM3Q,IAAiB5B,IAAeD,QAAQ,OAAO2O,IAAKC,EAAmB9L,GAAkD,QAAnC2B,GAAAzG,aAAO,EAAPA,EAASqV,kCAA0B,IAAA5O,QAAA,EAAAA,GAAEoE,UAAWkG,IAAI,cAAcC,MAAO,GAAIC,OAAQ,MAG/OhP,IACC2M,EAAAC,cAAAD,EAAAE,SAAA,KAEAF,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOqG,kBACtBtK,GACIzD,IAAKlC,0DAAc,OAClBuJ,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOsG,QAASpP,YAAK/D,EAAAiD,aAAI,EAAJA,EAAMG,uCAAkBC,IAC3DmJ,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOuG,UACrB5G,EAAAC,cAAA,OAAA,CAAMG,UAAWC,EAAOwG,UAAiC,QAAtBtT,EAAAkD,eAAAA,EAAMG,wBAAgB,IAAArD,OAAA,EAAAA,EAAE4F,MAC3D6G,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOxC,WACpB7K,KAAwB4F,EACrBoH,EAAAC,cAAAD,EAAAE,SAAA,MAAuC,QAApCnM,EAAsB,UAAtB0C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA5C,OAAA,EAAAA,EAAEsF,oBAAY,IAAAvF,OAAA,EAAAA,EAAEwF,MAAO,GAAKyG,wBAAMI,UAAWC,EAAOyG,aAAW5D,EAA8C,QAApC3O,EAAsB,QAAtBT,EAAA2C,aAAI,EAAJA,EAAMG,wBAAgB,IAAA9C,OAAA,EAAAA,EAAEwF,oBAAY,IAAA/E,OAAA,EAAAA,EAAEgF,MAAc,KACrJ2J,EAAgD,QAAtCxO,EAAsB,QAAtBJ,EAAAmC,eAAAA,EAAMG,wBAAgB,IAAAtC,OAAA,EAAAA,EAAEuE,sBAAc,IAAAnE,OAAA,EAAAA,EAAEoE,oBAAqB1H,aAAO,EAAPA,EAASuS,aACjFT,EAA8C,QAApC1O,EAAsB,QAAtBC,EAAAgC,aAAI,EAAJA,EAAMG,wBAAgB,IAAAnC,OAAA,EAAAA,EAAE6E,oBAAY,IAAA9E,OAAA,EAAAA,EAAE+E,OAGtDyG,EAAAC,cAAA,MAAA,CACEG,UAAWC,EAAO0G,WAClB3T,QAAQ,OACR2O,IAAKC,EAAmB9L,GAAmD,QAAnCC,EAAA/E,aAAO,EAAPA,EAAS4V,kCAA0B,IAAA7Q,OAAA,EAAAA,EAAE8F,UAC7EkG,IAAI,cACJyD,QAAS,IA7SA,CAAOnP,GAAawQ,OAAA,OAAA,OAAA,EAAA,sBACnD,MAAMlL,EAAStF,aAAI,EAAJA,EAAMsF,OACfmL,EAA+B,QAAtB1T,EAAAiD,aAAI,EAAJA,EAAMG,wBAAgB,IAAApD,OAAA,EAAAA,EAAEqD,GAQvC,IALsB,QAAlBtD,EAAAL,cAAQ,EAARA,GAAW6I,UAAO,IAAAxI,OAAA,EAAAA,EAAG2T,YACjBzU,GAAY0U,mBAAmB5V,GAAQkF,IAId,QAA7BzC,EAAApB,cAAmB,EAAnBA,GAAsBmJ,UAAO,IAAA/H,OAAA,EAAAA,EAAGkT,GAAS,CAC3C,MAAME,EAAcrQ,OAAOG,KAAKtE,GAAoBmJ,IACjD5E,OAAQI,GAAQA,IAAQ2P,GACxB7P,OAAO,CAACC,EAAUC,KACjBD,EAAIC,GAAO3E,GAAoBmJ,GAAQxE,GAChCD,GACN,CAAA,GACL/E,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,GACzBpE,IAAmB,CACtBmJ,CAACA,GAASqL,IAEd,CAEA3P,GAAerC,EAASsC,EAAgBjB,EAAM,EAChD,GAqRuC4Q,CAAyB5Q,GACxC2L,MAAO,GACPC,OAAQ,MAGX,CAACtN,EAASC,GAASpB,SAAS6C,eAAAA,EAAMsF,SAAUiE,uBAAKI,UAAWC,EAAOuG,UAClE5G,EAAAC,cAAA,OAAA,CAAMG,UAAW,GAAGC,EAAOwG,YAAYxG,EAAOiH,WAA2D,QAAhD3P,EAAsC,QAAtCC,EAAA3E,cAAsB,EAAtBA,GAAyBwD,aAAI,EAAJA,EAAMsF,eAAO,IAAAnE,OAAA,EAAAA,EAAE0H,gBAAQ,IAAA3H,OAAA,EAAAA,EAAEd,MAA4C,QAAtCiB,EAAsB,QAAtBD,EAAA3E,cAAQ,EAARA,GAAUsM,oBAAY,IAAA3H,OAAA,EAAAA,EAAGpB,aAAI,EAAJA,EAAMsF,eAAO,IAAAjE,OAAA,EAAAA,EAAEqB,OACzJ6G,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOV,SACpBuD,EAAUhG,OAAOC,SAASD,eAAO9E,EAAgD,QAAhDJ,EAAsC,QAAtCD,EAAA9E,cAAsB,EAAtBA,GAAyBwD,aAAI,EAAJA,EAAMsF,eAAO,IAAAhE,OAAA,EAAAA,EAAEuH,gBAAQ,IAAAtH,OAAA,EAAAA,EAAEuH,yBAAmD,QAAtClH,UAAAF,EAAAjF,cAAQ,EAARA,GAAUsM,mCAAe/I,aAAI,EAAJA,EAAMsF,eAAO,IAAA1D,OAAA,EAAAA,EAAEoH,eACrIvC,OAAkE,QAA3DqE,YAAsC,QAAtCjJ,EAAArF,cAAsB,EAAtBA,GAAyBwD,aAAI,EAAJA,EAAMsF,eAAO,IAAAzD,OAAA,EAAAA,EAAEgH,+BAAUC,iBAAS,IAAAgC,EAAAA,EAA0C,kBAAtCD,EAAApO,cAAQ,EAARA,GAAUsM,mCAAe/I,aAAI,EAAJA,EAAMsF,eAAO,IAAA0F,OAAA,EAAAA,EAAEhC,cAC9G,GAAIrO,aAAO,EAAPA,EAASuS,cAIrB3D,EAAAC,cAAA,KAAA,CAAIG,UAAWC,EAAOkH,mBASlCvH,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAOmH,gBACS,QAAhCzP,GAAA3G,aAAO,EAAPA,EAASqW,+BAAuB,IAAA1P,QAAA,EAAAA,GAAEgC,QAAS,GAC1CiG,EAAAC,cAACyF,EAAc,CACftU,QAASA,EAAQqW,wBAAwB,GACzCC,YAAa,GACb9B,QAAUpP,GAAWqD,GAA4BrD,GACjDqP,cAAe3P,GACfyR,SAAUvU,SAOjB3B,IAAQuO,EAAAC,cAAC2H,EAAc,CACxBC,WAAYpW,GACZqW,QAAS,KAAQvM,MACjBwM,YAAY,EACZ1F,OAAQ,OACR2F,WAA0B,kBAAbpW,IAA6C,YAAbA,IAAuC,WAAbA,GAAyB,QAAU,GAC1GqW,eAAe,EACfC,UAAU,OACRlI,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAO8H,wBAC1BnI,EAAAC,cAACO,EAAQ,CAACpP,QAAiC,QAAxBgH,GAAmB,QAAnBJ,GAAA5G,aAAO,EAAPA,EAASgX,kBAAU,IAAApQ,QAAA,EAAAA,GAAG,UAAE,IAAAI,QAAA,EAAAA,GAAE+I,UAC7CnB,EAAAC,cAACO,EAAQ,CAACpP,QAAiC,QAAxBiH,GAAmB,QAAnBF,GAAA/G,aAAO,EAAPA,EAASgX,kBAAU,IAAAjQ,QAAA,EAAAA,GAAG,UAAE,IAAAE,QAAA,EAAAA,GAAEgQ,cAC7CrI,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAOiI,yBAC1BtI,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAOkI,eAAgB3C,QAAS,KAAQrK,OAAmBnK,aAAO,EAAPA,EAASoX,sBACvFxI,EAAAC,cAACyF,EAAc,CACbtU,QAA6B,QAApBkH,GAAAlH,aAAO,EAAPA,EAASqX,mBAAW,IAAAnQ,QAAA,EAAAA,GAAG,GAChCsN,QAAUpP,GAAWqD,GAA4BrD,GACjDkS,cAAUC,EACV9C,cAAe3P,QAMlBpE,KAAsBM,cAAK,EAALA,GAAO6B,eAAgBW,GAAaoL,EAAAC,cAAC2H,EAAc,CAC1EC,WAAY/V,GACZgW,QAAS,KAAQrM,MACjBsM,YAAY,EACZ1F,OAAQ,OACR2F,WAA0B,kBAAbpW,IAA6C,YAAbA,IAAuC,WAAbA,GAAyB,QAAU,GAC1GqW,eAAe,EACfC,UAAU,GACVlI,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAO8H,wBACxBnI,EAAAC,cAACO,EAAQ,CAACpP,QAASwE,KAAKC,MACxBC,EAAmBF,KAAKG,UAAsC,QAA5BwL,GAAuB,QAAvBhJ,GAAAnH,aAAO,EAAPA,EAASwX,sBAAc,IAAArQ,QAAA,EAAAA,GAAG,UAAE,IAAAgJ,QAAA,EAAAA,GAAEJ,SAAU,CACxExM,cAAgB,EAAhBA,GAAmBvC,GAAM6B,aAAagC,gBAGxC+J,EAAAC,cAACO,EAAQ,CAACpP,QAASwE,KAAKC,MACxBC,EAAmBF,KAAKG,UAAsC,QAA5B0L,GAAuB,QAAvBH,GAAAlQ,aAAO,EAAPA,EAASwX,sBAAc,IAAAtH,QAAA,EAAAA,GAAG,UAAE,IAAAG,QAAA,EAAAA,GAAE4G,aAAc,CAC5E1T,cAAgB,EAAhBA,GAAmBvC,GAAM6B,aAAagC,gBAGxC+J,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAOiI,yBAC1BtI,EAAAC,cAAA,MAAA,CAAKG,UAAW,GAAGC,EAAOkI,eAAgB3C,QAAS,KAAQnK,OAAiCrK,aAAO,EAAPA,EAASyX,qBAMtG/W,MAAuBM,cAAK,EAALA,GAAO6B,eAAgBc,IAAW3C,cAAK,EAALA,GAAO6B,eAAgBe,IAAY,wBAC3F,MAAM8T,EArtBqB,cAC/B,OAAO1W,gBAAAA,GAAO6B,eAAgBc,EACI,QAA9BvB,EAAApC,aAAO,EAAPA,EAAS2X,6BAAqB,IAAAvV,OAAA,EAAAA,EAAG,GACH,QAA9BD,EAAAnC,aAAO,EAAPA,EAAS4X,6BAAqB,IAAAzV,OAAA,EAAAA,EAAG,IAktBR0V,GAWzB,OANA9T,EAAuBC,EAAS8T,EAAW,CACzC5T,UAAW6T,EACXC,cAAeC,EACfC,oBAAoF,QAA/D/U,EAAyD,QAAzDT,EAAoD,QAApDC,EAA2C,UAAL,QAAtCR,EAA6B,QAA7BC,EAAAsV,aAAgB,EAAhBA,EAAkBT,mBAAW,IAAA7U,OAAA,EAAAA,EAAEpC,eAAO,IAAAmC,OAAA,EAAAA,EAAG,UAAE,IAAAS,OAAA,EAAAA,EAAE5C,eAAO,IAAA2C,OAAA,EAAAA,EAAG,UAAE,IAAAD,OAAA,EAAAA,EAAEyV,YAAI,IAAAhV,OAAA,EAAAA,EAAE2H,MAAM,EAAG,KAC/FsN,aAAcC,IAGdzJ,EAAAC,cAAC2H,EAAc,CACbC,WAAY/V,GACZgW,QAAS,IAvgBM,CAAC4B,qBAExBA,aAAY,EAAZA,EAAcrB,cAAelT,EAAuBC,EAASuU,EAAY,CACvErU,UAAW6T,EACXC,cAAeC,EACfC,oBAAgF,QAA3D/U,EAAqD,QAArDT,EAAgD,QAAhDC,EAAuC,UAAL,QAAlCR,EAAyB,QAAzBC,EAAAkW,aAAY,EAAZA,EAAcrB,mBAAW,IAAA7U,OAAA,EAAAA,EAAEpC,eAAO,IAAAmC,OAAA,EAAAA,EAAG,UAAE,IAAAS,OAAA,EAAAA,EAAE5C,eAAO,IAAA2C,OAAA,EAAAA,EAAG,UAAE,IAAAD,OAAA,EAAAA,EAAEyV,YAAI,IAAAhV,OAAA,EAAAA,EAAE2H,MAAM,EAAG,KAC3FsN,aAAcC,IAEhBhO,MA+fuBmO,CAAiBd,GAChCf,YAAY,EACZ1F,OAAQ,OACR2F,WAA0B,kBAAbpW,IAA6C,YAAbA,IAAuC,WAAbA,GAAyB,QAAU,GAC1GqW,eAAe,EACfC,UAAU,GAEVlI,EAAAC,cAAAD,EAAAE,SAAA,MACG4I,aAAgB,EAAhBA,EAAkB3H,UACjBnB,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOwJ,cACrB7J,EAAAC,cAACO,GAASpP,QAAS0X,EAAiB3H,YAIvC2H,aAAgB,EAAhBA,EAAkBT,cACjBrI,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAOyJ,kBACrB9J,EAAAC,cAACO,GAASpP,QAAS0X,EAAiBT,eAIxCrI,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAO0J,eACpBjB,aAAgB,EAAhBA,EAAkBkB,OACjBhK,EAAAC,cAAA,IAAA,CACEG,UAAWC,EAAO4J,cAClBrE,QAAS,KAnhBzBzQ,EAAuBC,EAAS8U,EAAgB,CAC9C5U,UAAWsF,EACXpF,WAAY2U,SAEd1O,OAihBiBqN,EAAiBsB,WAIG,QAAxB9V,EAAAwU,eAAAA,EAAkBuB,cAAM,IAAA/V,OAAA,EAAAA,EAAEyF,QAAS,GAClCiG,EAAAC,cAACyF,GACCtU,QAAS0X,EAAiBuB,OAAO,GACjCzE,QAAS,IAphBI,8BAK7B,GAJAzQ,EAAuBC,EAAS8U,EAAgB,CAC9C5U,UAAWsF,EACXpF,WAAY8U,KAETtY,GAEH,YADAyJ,KAKF,MAAM8O,EAAexT,OAAOG,MAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,eAAgB,IAC9E,GAAIsW,EAAaxQ,OAAS,EAAG,CAE3B,MAAMyQ,EAAWD,EAAa,GACxBE,EAAuD,QAAzCjX,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAGgX,GAG1DvT,UAAsBjD,EAAuD,QAAvDT,EAAAwD,oBAAAA,OAAQG,KAAKtE,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,qBAAa,IAAAV,OAAA,EAAAA,EAC/E4D,OAAQC,GAAQA,IAAQoT,yBACxBnT,OAAO,CAACC,EAAKC,WACb,OAAAR,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GAAG,CACNC,CAACA,GAA+C,QAAzC/D,EAAAZ,cAAmB,EAAnBA,GAAsBR,cAAK,EAALA,GAAO6B,oBAAY,IAAAT,OAAA,EAAAA,EAAG+D,MAEpD,CAAA,GAGLhF,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACzBpE,KACH,CAACR,cAAK,EAALA,GAAO6B,aAAY8C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACfC,GAAmB,CACtB,CAA8B,QAA7BlD,EAAA/B,gBAAAA,GAAa4E,wBAAgB,IAAA7C,OAAA,EAAAA,EAAE8C,IAAK7E,QAKrCyY,GACFhT,GAAerC,EAASsC,EAAgB+S,EAAa,EAEzD,KAEK,CACH,MAAM1N,GAAYlK,gBAAAA,GAA4BT,gBAAAA,GAAO6B,eAAgB,GACrE,IAAK,MAAMwC,KAAQsG,EACjB,IAAkC,QAA9BjJ,EAAAZ,cAAQ,EAARA,GAAWd,cAAK,EAALA,GAAO6B,oBAAY,IAAAH,OAAA,EAAAA,EAAyB,QAAtBS,EAAAkC,aAAI,EAAJA,EAAMG,wBAAgB,IAAArC,OAAA,EAAAA,EAAEsC,QACL,QAAnDvC,EAAAxB,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,oBAAY,IAAAK,OAAA,EAAAA,EAAyB,QAAtBI,EAAA+B,aAAI,EAAJA,EAAMG,wBAAgB,IAAAlC,OAAA,EAAAA,EAAEmC,KAAK,CAEtFtE,GAAQuE,iCAAgCC,OAAAC,OAAAD,OAAAC,OAAA,GACnClE,KACH,CAACV,cAAK,EAALA,GAAO6B,aAAY8C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,GACdlE,cAA6B,EAA7BA,GAAgCV,cAAK,EAALA,GAAO6B,eAAgB,CAAA,GAAG,CAC9D,CAAuB,QAAtBQ,EAAAgC,aAAI,EAAJA,EAAMG,wBAAgB,IAAAnC,OAAA,EAAAA,EAAEoC,IAAKJ,OAKlCgB,GAAerC,EAASsC,EAAgBjB,EAAM,GAC9C,KACF,CAIFlE,GAAQiF,uBAAsBT,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACzBpE,KACH,CAACR,cAAK,EAALA,GAAO6B,aAAc,CACpB,CAA8B,QAA7BO,EAAAxC,cAAW,EAAXA,GAAa4E,wBAAgB,IAAApC,OAAA,EAAAA,EAAEqC,IAAK7E,MAG3C,CAGAyF,GAAee,EAAaA,EAAaxG,GAAaE,IAGtDuJ,MAyc+BiP,GACfhC,cAAUC,EACV9C,cAAe,OAO5B,EAzD4F"}