@sunrise-upc/mobile-prod-card 11.10.7 → 11.10.8

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.
@@ -1 +1 @@
1
- .card_Qk2yf.sr-card_7VYIF{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}.card_Qk2yf.border-top_Y1X4s{border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -2px 20px 0 rgba(61,57,53,.2);border:none}@media (min-width:768px){.sr-desk-card_-ZbFV{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (max-width:767px){.sr-mob-card_nvNFW{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (min-width:1024px){.sr-md-card_NJnGu{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}.mainPage_nLgJM .cartLimitTxt_Un2ej,.mainPage_nLgJM .extraSimHeading_iOq-C{font-size:18px;line-height:24px;font-weight:700;color:#3d3935;padding:0 0 16px 12px}.mainPage_nLgJM .strikedMonthlyPrice_T2OaO,.mainPage_nLgJM .strikedtotalMonthlyPrice_XoQsu{padding-left:4px;text-decoration:line-through;text-decoration-color:#da291c}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{display:flex;margin-left:auto;white-space:nowrap;gap:4px;color:#5f5955}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartPrice_VPeCu,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{font-size:12px;line-height:16px;grid-column:1/2;grid-row:2/3;margin-left:0}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemDivider_Ne0w1,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .miniCartDivider_oMv-o{width:100%;height:1px;border:none}.mainPage_nLgJM .react-multi-carousel-list{padding-bottom:36px}@media (max-width:767px){.mainPage_nLgJM .react-multi-carousel-list{margin-right:-4%}}.mainPage_nLgJM .react-multi-carousel-item{display:initial!important}.mainPage_nLgJM .react-multi-carousel-dot:not(.react-multi-carousel-dot--active) button{background-color:#b3aeaa}.mainPage_nLgJM .react-multi-carousel-dot button{border:none}.mainPage_nLgJM .react-multi-carousel-dot--active button{background-color:#da291c;border:none}.mainPage_nLgJM{padding-bottom:24px}.mainPage_nLgJM .card_Qk2yf{background:#fff;padding:16px;margin:0 12px;border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);height:100%;border:4px solid transparent;display:flex;flex-direction:column}.mainPage_nLgJM .card_Qk2yf.selectedCard_fFrRV{border-color:#da291c}@media (max-width:1023px){.mainPage_nLgJM .card_Qk2yf{margin:0 8px}}.mainPage_nLgJM .heading_-FSiS{font-size:16px;line-height:24px;font-weight:700;color:#3d3935}.mainPage_nLgJM .optionalText_bs306{font-size:14px;line-height:20px;font-weight:400;padding-bottom:16px}.mainPage_nLgJM .accImage_8S-3p{text-align:center;margin-top:4px}.mainPage_nLgJM .esimBadge_qdSkq{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-right:16px}.mainPage_nLgJM .esimIcon_ZczPE{width:24px;height:24px;display:block}.mainPage_nLgJM .mainPriceContainer_-fAvT{margin-top:auto}@media (max-width:767px){.mainPage_nLgJM .mainPriceContainer_-fAvT{margin-bottom:4px}}.mainPage_nLgJM .priceContainer_Uz0SN{background:#f7f6f5;border-radius:8px;padding:16px}.mainPage_nLgJM .price_VYiIE{font-size:20px;line-height:28px;font-weight:700;color:#3d3935}.mainPage_nLgJM .totalPrice_aqO1Q{font-size:14px;line-height:20px;font-weight:400;color:#5f5955;padding-bottom:4px}.mainPage_nLgJM .priceDescription_bJkMR{font-size:12px;line-height:16px;font-weight:400;color:#5f5955}.mainPage_nLgJM .monthlyPrice_nHlRH,.mainPage_nLgJM .oneTimePrice_f3f8Q{padding-bottom:4px}.mainPage_nLgJM .monthlyText_8RwlS{font-size:20px;line-height:28px}.mainPage_nLgJM .strikedMonthlyPrice_T2OaO{color:#3d3935;font-size:18px;line-height:24px}.mainPage_nLgJM .strikedtotalMonthlyPrice_XoQsu{font-size:14px;line-height:20px}.mainPage_nLgJM .monthlyStrikethroughText_7E9uK{font-weight:400;font-size:14px;line-height:20px;padding-left:4px}.mainPage_nLgJM .cartBtn_O3b3H{margin:16px 0 4px;align-items:center}.mainPage_nLgJM .cartBtn_O3b3H button{width:100%}@media (max-width:767px){.mainPage_nLgJM .cartBtn_O3b3H{margin:4px 0}}.mainPage_nLgJM .plus-icon_E27Ud{padding-top:5px;padding-right:5px}.mainPage_nLgJM .checkoutBtn_3i9j6{margin:5px auto 0}@media (max-width:767px){.mainPage_nLgJM .checkoutBtn_3i9j6,.mainPage_nLgJM .checkoutBtn_3i9j6 .falcon-primary-button-v1,.mainPage_nLgJM .checkoutBtn_3i9j6 button{width:100%}}.mainPage_nLgJM .miaFooter_9zWMl{display:flex;gap:20px}@media (max-width:1023px){.mainPage_nLgJM .miaFooter_9zWMl{flex-direction:column}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL{font-size:14px;line-height:20px;border-radius:8px;padding:16px;background:#fff;flex:1;min-width:0;color:#3d3935;margin-left:12px}@media (max-width:1023px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL{margin-left:8px;padding:8px}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr{flex-wrap:wrap;column-gap:4px;row-gap:8px;align-items:start}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleLabel_0kEw-{order:1}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM{display:flex;align-items:center;gap:8px}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM span{display:flex;align-items:center;gap:4px;white-space:nowrap}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM{order:3;flex-wrap:wrap;gap:4px;margin-right:4px;max-width:87%}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartPrice_VPeCu{color:#3d3935}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartPrice_VPeCu{order:2;margin-left:unset}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartToggle_5IgiB{order:4;margin-left:auto;align-self:center}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu .oneTime_sDC1m{font-size:12px;line-height:16px;margin-top:3px;margin-bottom:1px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu .oneTime_sDC1m{margin:unset;order:2}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{margin-right:28px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{margin-right:0}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .miniCartDivider_oMv-o{background-color:#b3aeaa;margin:16px 0 0}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemDivider_Ne0w1{margin:4px 0;border-top:1px solid #b3aeaa}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemRow_gQ3sj{display:flex;flex-direction:column;gap:4px;margin-top:4px;flex:1;min-width:0}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG{display:flex;align-items:center;gap:8px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto auto;column-gap:8px;row-gap:0;align-items:center}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .itemName_C-CX1{flex:1;min-width:0}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .itemName_C-CX1{font-weight:700;grid-column:1/2;grid-row:1/2}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartDelete_MoeMR{cursor:pointer}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartDelete_MoeMR{grid-column:3/4;grid-row:1/3;align-self:center}}@media (min-width:1024px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpName_CpQ7v{color:#5f5955}}.accessoryErrorUpdate_smCG3 p{padding-bottom:20px;color:#5f5955}.accessoryErrorButtons_GYhk4{display:flex;justify-content:flex-end;align-items:center;column-gap:20px}.accessoryErrorButtons_GYhk4 .cancelButton_yUZUg{font-weight:700;font-size:16px;line-height:24px;color:#da291c;cursor:pointer}.modalHeading_2vFi4{font-size:18px;line-height:24px;font-weight:700;color:#3d3935;margin-bottom:8px}.modalDescription_BG-oo{font-size:16px;line-height:24px;font-weight:400;color:#5f5955;margin-bottom:8px}.modalButtons_6FOmL{display:flex;justify-content:flex-end;align-items:center;gap:16px}.factSheetLink_SdQHR{font-size:16px;line-height:24px;font-weight:700;color:#da291c;text-decoration:none;cursor:pointer;white-space:nowrap}
1
+ .card_Qk2yf.sr-card_7VYIF{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}.card_Qk2yf.border-top_Y1X4s{border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -2px 20px 0 rgba(61,57,53,.2);border:none}@media (min-width:768px){.sr-desk-card_-ZbFV{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (max-width:767px){.sr-mob-card_nvNFW{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (min-width:1024px){.sr-md-card_NJnGu{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}.mainPage_nLgJM .cartLimitTxt_Un2ej,.mainPage_nLgJM .extraSimHeading_iOq-C{font-size:18px;line-height:24px;font-weight:700;color:#3d3935;padding:0 0 16px 12px}.mainPage_nLgJM .strikedMonthlyPrice_T2OaO,.mainPage_nLgJM .strikedtotalMonthlyPrice_XoQsu{padding-left:4px;text-decoration:line-through;text-decoration-color:#da291c}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{display:flex;margin-left:auto;white-space:nowrap;gap:4px;color:#5f5955}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartPrice_VPeCu,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{font-size:12px;line-height:16px;grid-column:1/2;grid-row:2/3;margin-left:0}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemDivider_Ne0w1,.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .miniCartDivider_oMv-o{width:100%;height:1px;border:none}.mainPage_nLgJM .react-multi-carousel-list{padding-bottom:36px}@media (max-width:767px){.mainPage_nLgJM .react-multi-carousel-list{margin-right:-4%}}.mainPage_nLgJM .react-multi-carousel-item{display:initial!important}.mainPage_nLgJM .react-multi-carousel-dot:not(.react-multi-carousel-dot--active) button{background-color:#b3aeaa}.mainPage_nLgJM .react-multi-carousel-dot button{border:none}.mainPage_nLgJM .react-multi-carousel-dot--active button{background-color:#da291c;border:none}.mainPage_nLgJM{padding-bottom:24px}.mainPage_nLgJM .card_Qk2yf{background:#fff;padding:16px;margin:0 12px;border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);height:100%;border:4px solid transparent;display:flex;flex-direction:column}.mainPage_nLgJM .card_Qk2yf.selectedCard_fFrRV{border-color:#da291c}@media (max-width:1023px){.mainPage_nLgJM .card_Qk2yf{margin:0 8px}}.mainPage_nLgJM .heading_-FSiS{font-size:16px;line-height:24px;font-weight:700;color:#3d3935}.mainPage_nLgJM .optionalText_bs306{font-size:14px;line-height:20px;font-weight:400;padding-bottom:16px}.mainPage_nLgJM .accImage_8S-3p{text-align:center;margin-top:4px}.mainPage_nLgJM .esimBadge_qdSkq{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-right:16px}.mainPage_nLgJM .esimIcon_ZczPE{width:24px;height:24px;display:block}.mainPage_nLgJM .mainPriceContainer_-fAvT{margin-top:auto}@media (max-width:767px){.mainPage_nLgJM .mainPriceContainer_-fAvT{margin-bottom:4px}}.mainPage_nLgJM .priceContainer_Uz0SN{background:#f7f6f5;border-radius:8px;padding:16px}.mainPage_nLgJM .priceContainer_Uz0SN .flexUpgradeText_p-YHt{font-size:12px;line-height:16px;font-weight:400;color:#5e94cf}.mainPage_nLgJM .price_VYiIE{font-size:20px;line-height:28px;font-weight:700;color:#3d3935}.mainPage_nLgJM .totalPrice_aqO1Q{font-size:14px;line-height:20px;font-weight:400;color:#5f5955;padding-bottom:4px}.mainPage_nLgJM .priceDescription_bJkMR{font-size:12px;line-height:16px;font-weight:400;color:#5f5955}.mainPage_nLgJM .monthlyPrice_nHlRH,.mainPage_nLgJM .oneTimePrice_f3f8Q{padding-bottom:4px}.mainPage_nLgJM .monthlyText_8RwlS{font-size:20px;line-height:28px}.mainPage_nLgJM .strikedMonthlyPrice_T2OaO{color:#3d3935;font-size:18px;line-height:24px}.mainPage_nLgJM .strikedtotalMonthlyPrice_XoQsu{font-size:14px;line-height:20px}.mainPage_nLgJM .monthlyStrikethroughText_7E9uK{font-weight:400;font-size:14px;line-height:20px;padding-left:4px}.mainPage_nLgJM .cartBtn_O3b3H{margin:16px 0 4px;align-items:center}.mainPage_nLgJM .cartBtn_O3b3H button{width:100%}@media (max-width:767px){.mainPage_nLgJM .cartBtn_O3b3H{margin:4px 0}}.mainPage_nLgJM .plus-icon_E27Ud{padding-top:5px;padding-right:5px}.mainPage_nLgJM .checkoutBtn_3i9j6{margin:5px auto 0}@media (max-width:767px){.mainPage_nLgJM .checkoutBtn_3i9j6,.mainPage_nLgJM .checkoutBtn_3i9j6 .falcon-primary-button-v1,.mainPage_nLgJM .checkoutBtn_3i9j6 button{width:100%}}.mainPage_nLgJM .miaFooter_9zWMl{display:flex;gap:20px}@media (max-width:1023px){.mainPage_nLgJM .miaFooter_9zWMl{flex-direction:column}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL{font-size:14px;line-height:20px;border-radius:8px;padding:16px;background:#fff;flex:1;min-width:0;color:#3d3935;margin-left:12px}@media (max-width:1023px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL{margin-left:8px;padding:8px}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr{flex-wrap:wrap;column-gap:4px;row-gap:8px;align-items:start}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleLabel_0kEw-{order:1}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM{display:flex;align-items:center;gap:8px}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM span{display:flex;align-items:center;gap:4px;white-space:nowrap}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .titleIcons_m2LrM{order:3;flex-wrap:wrap;gap:4px;margin-right:4px;max-width:87%}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartPrice_VPeCu{color:#3d3935}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartPrice_VPeCu{order:2;margin-left:unset}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .titleRow_eKeAr .cartToggle_5IgiB{order:4;margin-left:auto;align-self:center}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu .oneTime_sDC1m{font-size:12px;line-height:16px;margin-top:3px;margin-bottom:1px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .cartPrice_VPeCu .oneTime_sDC1m{margin:unset;order:2}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{margin-right:28px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpPrice_5I0bo{margin-right:0}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .miniCartDivider_oMv-o{background-color:#b3aeaa;margin:16px 0 0}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemDivider_Ne0w1{margin:4px 0;border-top:1px solid #b3aeaa}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemRow_gQ3sj{display:flex;flex-direction:column;gap:4px;margin-top:4px;flex:1;min-width:0}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG{display:flex;align-items:center;gap:8px}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto auto;column-gap:8px;row-gap:0;align-items:center}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .itemName_C-CX1{flex:1;min-width:0}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .itemName_C-CX1{font-weight:700;grid-column:1/2;grid-row:1/2}}.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartDelete_MoeMR{cursor:pointer}@media (max-width:767px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .itemLine_ysNhG .cartDelete_MoeMR{grid-column:3/4;grid-row:1/3;align-self:center}}@media (min-width:1024px){.mainPage_nLgJM .miaFooter_9zWMl .miniSummary_LRvgL .rpName_CpQ7v{color:#5f5955}}.accessoryErrorUpdate_smCG3 p{padding-bottom:20px;color:#5f5955}.accessoryErrorButtons_GYhk4{display:flex;justify-content:flex-end;align-items:center;column-gap:20px}.accessoryErrorButtons_GYhk4 .cancelButton_yUZUg{font-weight:700;font-size:16px;line-height:24px;color:#da291c;cursor:pointer}.modalHeading_2vFi4{font-size:18px;line-height:24px;font-weight:700;color:#3d3935;margin-bottom:8px}.modalDescription_BG-oo{font-size:16px;line-height:24px;font-weight:400;color:#5f5955;margin-bottom:8px}.modalButtons_6FOmL{display:flex;justify-content:flex-end;align-items:center;gap:16px}.factSheetLink_SdQHR{font-size:16px;line-height:24px;font-weight:700;color:#da291c;text-decoration:none;cursor:pointer;white-space:nowrap}
@@ -1,2 +1,2 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import l,{useState as i,useEffect as o}from"react";import n from"./AccessoryCard.module.scss.js";import d from"../DeviceCarouselComponent.js";import t from"../../ResponsiveRow/row.js";import{viewport as v,replacePlaceholder as s,getCompressedImage as c,countZero as a}from"../../../utils/utils.js";import{getCookie as r}from"cookies-next";import u from"../../FalconButtonV2/FalconButtonV2.js";import m from"./AccessoryModal.js";import p from"../../richtext.js";import{INFO as b,REPLACESELECTION as g,POPUP as y,OPENPOPUP as T,GAEVENT as h,REMOVEFROMCART as f,ADD_TO_CART as A,OPEN as E,CLOSE as j,FORM as O,ACCORDIONCLICK as R,CONTINUE as P,LINK as k,TABCLICK as N,CLOSEPOPUP as C,KEEPPREVIOUS as S,CTABUTTONCLICK as I,REPLACE as w}from"../../../Analytics/AnalyticsConstants.js";import{trackViewItem as x,trackNewDatalayerEvent as $}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as B,INTERNETFLOW as _,TV as L,ACCESSORY as F,CONTRACT as M,WATCHES as D,TABLETS as U,MONTHLY as K,ONETIME as V,HARDWARE as z}from"../../../utils/constants.js";import{useMultiAccessoryContext as J}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as H}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as W}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import{AssetPathPropConfig as q}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";const G=({content:G,tabIndex:Q,setAccessoriesSelected:X})=>{var Y,Z,ee,le,ie,oe,ne,de,te,ve,se,ce,ae,re,ue,me,pe,be,ge,ye,Te,he,fe,Ae,Ee;const je=r("one-commerce-cartId"),[Oe,Re]=i(!1),Pe=v(),[ke,Ne]=i(!1),[Ce,Se]=i(null),[Ie,we]=i(0),{store:xe,dispatch:$e}=J(),Be=H($e),_e=W(),{updateAccessoryCartFailure:Le}=xe,{selectedAccessories:Fe,multiItemAccessoriessList:Me,removeSelectedCartAccessories:De,deviceSessionValues:Ue,selectedPaymentType:Ke,recommendedAccessories:Ve,cartData:ze,previousTab:Je,loading:He,showMiniCart:We}=xe,qe=!!(null===(Z=null===(Y=[B,_,L])||void 0===Y?void 0:Y.includes)||void 0===Z?void 0:Z.call(Y,null===(ie=null===(le=null===(ee=null==Ve?void 0:Ve[null==xe?void 0:xe.selectedTab])||void 0===ee?void 0:ee.hardware)||void 0===le?void 0:le[0])||void 0===ie?void 0:ie.recommendationProcessingType))||!(null==Ue?void 0:Ue.hardwareVariant),Ge=!!(null===(ne=null===(oe=[B])||void 0===oe?void 0:oe.includes)||void 0===ne?void 0:ne.call(oe,null===(ve=null===(te=null===(de=null==Ve?void 0:Ve[null==xe?void 0:xe.selectedTab])||void 0===de?void 0:de.hardware)||void 0===te?void 0:te[0])||void 0===ve?void 0:ve.recommendationProcessingType))||!(null==Ue?void 0:Ue.hardwareVariant),Qe={[F]:qe?Ge?+(null==G?void 0:G.ratePlanAccessoriesLimit):+(null==G?void 0:G.winAccessoriesLimit):+(null==G?void 0:G.accessoriesLimit),WATCHES:1,TABLETS:1},Xe=e=>{$(h,R,{component:O,click_text:e?E:j}),Be.setShowMiniCart(e)},Ye=JSON.parse(s(JSON.stringify(null==G?void 0:G.cartLimitWarningText),[null==Qe?void 0:Qe[xe.selectedTab].toString()])),Ze=null===(se=null==q?void 0:q.getInstance())||void 0===se?void 0:se.getAssetPath(),el=(e,l,i)=>{var o,n,d,t,v,s,c,a,r,u,m,p,b,g,y,T,E,j,O,R,P,k;if(e.preventDefault(),(null===(o=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&!(null===(d=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===d?void 0:d[null===(t=null==l?void 0:l.recomApiResponse)||void 0===t?void 0:t.id])){if(Be.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},De),{[null==xe?void 0:xe.selectedTab]:Object.assign(Object.assign({},(null==De?void 0:De[null==xe?void 0:xe.selectedTab])||{}),{[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id]:l})})),null===(s=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===s?void 0:s[null===(c=null==l?void 0:l.recomApiResponse)||void 0===c?void 0:c.id]){const e=null===(r=null===(a=null==Object?void 0:Object.keys(null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab]))||void 0===a?void 0:a.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===r?void 0:r.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===i?void 0:i[l]})},{});Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:e}))}ll(h,f,l,i)}else if(null===(u=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===u?void 0:u[null===(m=null==l?void 0:l.recomApiResponse)||void 0===m?void 0:m.id]){const e=null===(b=null===(p=null==Object?void 0:Object.keys(null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab]))||void 0===p?void 0:p.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===b?void 0:b.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===i?void 0:i[l]})},{});Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:e})),ll(h,f,l,i)}else{if((null===(g=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===g?void 0:g[null===(y=null==l?void 0:l.recomApiResponse)||void 0===y?void 0:y.id])&&(null===(T=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===T?void 0:T[null===(E=null==l?void 0:l.recomApiResponse)||void 0===E?void 0:E.id])){if(dl(l,i))return;const e=null===(O=null===(j=null==Object?void 0:Object.keys(null==De?void 0:De[null==xe?void 0:xe.selectedTab]))||void 0===j?void 0:j.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===O?void 0:O.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===i?void 0:i[l]})},{});Be.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},De),{[null==xe?void 0:xe.selectedTab]:e}))}if(!(null===(R=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===R?void 0:R[null===(P=null==l?void 0:l.recomApiResponse)||void 0===P?void 0:P.id])){if(dl(l,i))return;Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:Object.assign(Object.assign({},(null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||{}),{[null===(k=null==l?void 0:l.recomApiResponse)||void 0===k?void 0:k.id]:l})}))}ll(A,A,l,i)}};o(()=>{X&&"function"==typeof X&&X(Fe)},[Fe,X]),o(()=>{var e;null===(e=null==Object?void 0:Object.values((null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||[]))||void 0===e||e.map((e,l)=>{var i,o,n,d,t,v,s,c,a;if(Ke===M&&!(null===(o=null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)&&((null===(n=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===n?void 0:n[null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.id])&&Be.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},De),{[null==xe?void 0:xe.selectedTab]:Object.assign(Object.assign({},(null==De?void 0:De[null==xe?void 0:xe.selectedTab])||{}),{[null===(t=null==e?void 0:e.recomApiResponse)||void 0===t?void 0:t.id]:e})})),null===(v=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===v?void 0:v[null===(s=null==e?void 0:e.recomApiResponse)||void 0===s?void 0:s.id])){const i=null===(a=null===(c=null==Object?void 0:Object.keys(null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab]))||void 0===c?void 0:c.filter(l=>{var i;return l!==(null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===a?void 0:a.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===i?void 0:i[l]})},{});Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:i})),ll(h,f,e,l)}})},[Ke]);const ll=(e,l,i,o)=>{var n,d,t,v,s,c,a,r;x(e,l,{displayName:null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name,productId:null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.id,priceValue:null===(v=null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.oneTimePrice)||void 0===v?void 0:v.base,index:o,variant:null===(c=null===(s=null==i?void 0:i.recomApiResponse)||void 0===s?void 0:s.variantCategory)||void 0===c?void 0:c.color,storage:null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.storage,hardwareCategory:null==xe?void 0:xe.selectedTab})},il=e=>{var l,i,o,n,d,t,v,s,c;e.preventDefault();const a=(null===(l=Object.keys(Le))||void 0===l?void 0:l.length)>0;if(a&&(Re(!1),_e.setupdateAccessoryCartFailure({})),a||Be.setPreviousTab(null==xe?void 0:xe.selectedTab),Be.setSelectedTab(null==xe?void 0:xe.selectedTab),Object.keys(Ve||{}).some(e=>0!==Object.keys((null==Fe?void 0:Fe[e])||{}).length||0!==Object.keys((null==De?void 0:De[e])||{}).length)){const e={id:je,redirectUrl:qe?null===(i=null==G?void 0:G.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(o=null==G?void 0:G.multiItemCheckoutUrl)||void 0===o?void 0:o.url};$(h,N,{component:k,click_text:P}),_e.multiItemAccessorycreateCartRequest(e)}else{let e=!0;if(null===(d=null===(n=null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||void 0===n?void 0:n.filter(e=>{var l,i;return null===(l=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]}))||void 0===d||d.filter(l=>{var i,o;e=(null===(o=null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.paymentType)||void 0===o?void 0:o.toLowerCase())===(Ke===M?K:V)}),e||(null==xe?void 0:xe.selectedTab)===D||xe.selectedTab===U)window.location.href=qe?null===(t=null==G?void 0:G.winCheckoutUrl)||void 0===t?void 0:t.cached_url:null===(v=null==G?void 0:G.multiItemCheckoutUrl)||void 0===v?void 0:v.url;else{const e={id:je,redirectUrl:qe?null===(s=null==G?void 0:G.winCheckoutUrl)||void 0===s?void 0:s.cached_url:null===(c=null==G?void 0:G.multiItemCheckoutUrl)||void 0===c?void 0:c.url};_e.multiItemAccessorycreateCartRequest(e)}}},ol=()=>{var e;Re(e=>!e),(null===(e=Object.keys(Le))||void 0===e?void 0:e.length)>0&&(_e.setupdateAccessoryCartFailure({}),Je&&(Be.setSelectedTab(Je),Be.setPreviousTab(Je),Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[Je]:{}})),Be.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},De),{[Je]:{}}))))};o(()=>{var e;(null===(e=Object.keys(Le))||void 0===e?void 0:e.length)>0&&Re(e=>!e)},[Le]);const nl=()=>{Ne(!1),Se(null),we(0)},dl=(e,l)=>{var i;let o=0;return null===(i=(null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||[])||void 0===i||i.map(e=>{var l,i;(null===(l=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id])&&o++}),o+=Object.keys((null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||{}).length,o-=Object.keys((null==De?void 0:De[null==xe?void 0:xe.selectedTab])||{}).length,o>=(null==Qe?void 0:Qe[xe.selectedTab])&&(Ne(!0),Se(e||null),we(l||0),!0)},tl={},vl={},sl={};((null==G?void 0:G.recommendationType)||[]).map(e=>{var l;tl[e]=(e=>Object.keys((null==ze?void 0:ze[e])||{}).length+Object.keys((null==Fe?void 0:Fe[e])||{}).length-Object.keys((null==De?void 0:De[e])||{}).length)(e),vl[`${e}_icon`]=null===(l=null==G?void 0:G[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,sl[`${e}_title`]=null==G?void 0:G[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:cl,totalOneTimePrice:al,totalMonthlyPrice:rl}=(()=>{var e,l,i,o,n;let d=0,t=0;const v=((null==G?void 0:G.recommendationType)||[]).flatMap(e=>{const l=(null==Me?void 0:Me[e])||{},i=new Set(Object.values(l).map(e=>{var l;return null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.id})),o=Object.values(l).filter(l=>{var i,o,n,d,t,v;return((null===(i=null==ze?void 0:ze[e])||void 0===i?void 0:i[null===(o=null==l?void 0:l.recomApiResponse)||void 0===o?void 0:o.id])||(null===(n=null==Fe?void 0:Fe[e])||void 0===n?void 0:n[null===(d=null==l?void 0:l.recomApiResponse)||void 0===d?void 0:d.id]))&&!(null===(t=null==De?void 0:De[e])||void 0===t?void 0:t[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id])}).map(l=>{var i,o,n,v;return d+=+((null===(o=null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.oneTimePrice)||void 0===o?void 0:o.base)||0),t+=+((null===(v=null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.recurringPrice)||void 0===v?void 0:v.monthlyInstallment)||0),Object.assign(Object.assign({},l),{tabKey:e})}),n=Object.keys((null==ze?void 0:ze[e])||{}).filter(l=>{var o;return!i.has(l)&&!(null===(o=null==De?void 0:De[e])||void 0===o?void 0:o[l])}).map(l=>{const i=(e=>{var l,i,o,n,d,t,v,s,c,a,r,u;if(!(null==e?void 0:e.length))return null;const m=e=>{const l=Number(e);return Number.isFinite(l)?l:0},p=e=>{const l=Number(null==e?void 0:e.cycleStart),i=Number(null==e?void 0:e.cycleEnd);return Number.isFinite(l)&&Number.isFinite(i)&&i>=l?i-l+1:1};let b="",g=0,y=0;for(const T of e){b||(b=(null==T?void 0:T.name)||(null===(l=null==T?void 0:T.productOffering)||void 0===l?void 0:l.name)||(null===(i=null==T?void 0:T.productOffering)||void 0===i?void 0:i.id)||(null==T?void 0:T.id)||"");const e=(null===(n=null===(o=null==T?void 0:T.itemPrice)||void 0===o?void 0:o[0])||void 0===n?void 0:n.cartPrice)||[],h=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),f=null===(d=h.flatMap(e=>(null==e?void 0:e.additionalDetails)||[]).find(e=>"originalInstallment"===(null==e?void 0:e.id)))||void 0===d?void 0:d.value,A=e.find(e=>"paynow"===(null==e?void 0:e.recurringChargePeriod)),E=null===(v=null===(t=null==A?void 0:A.additionalDetails)||void 0===t?void 0:t.find(e=>"streetPrice"===(null==e?void 0:e.id)))||void 0===v?void 0:v.value,j=(null==T?void 0:T.prices)||[],O=j.filter(e=>"RECURRING"===(null==e?void 0:e.priceType)),R=null===(s=O.find(e=>{var l;return 1===(null===(l=null==e?void 0:e.cycle)||void 0===l?void 0:l.cycleStart)})||O[0])||void 0===s?void 0:s.value,P=null===(c=j.find(e=>"STREET_PRICE"===(null==e?void 0:e.priceType)))||void 0===c?void 0:c.value,k=O.reduce((e,l)=>e+m(null==l?void 0:l.value)*p(null==l?void 0:l.cycle),0)+j.filter(e=>"ONETIME"===(null==e?void 0:e.priceType)).reduce((e,l)=>e+m(null==l?void 0:l.value),0);g+=m(f||(null===(u=null===(r=null===(a=null==h?void 0:h[0])||void 0===a?void 0:a.price)||void 0===r?void 0:r.taxIncludedAmount)||void 0===u?void 0:u.value)||R),y+=m(E||P||((null==T?void 0:T.itemType)===z?k:0))}return{name:b,monthlyInstallment:g,oneTimePrice:y}})(ze[e][l]);return i?(d+=i.oneTimePrice,t+=i.monthlyInstallment,{tabKey:e,isCartOnly:!0,recomApiResponse:{id:l,name:i.name,oneTimePrice:{base:i.oneTimePrice},recurringPrice:{monthlyInstallment:i.monthlyInstallment}}}):null}).filter(Boolean);return[...o,...n]});for(const d of[D,U]){if(v.some(e=>(null==e?void 0:e.tabKey)===d)){const v=null!==(i=null===(l=null===(e=null==Ve?void 0:Ve[d])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.listPrice)&&void 0!==i?i:null===(n=null===(o=null==ze?void 0:ze.ratePlanInfo)||void 0===o?void 0:o[d])||void 0===n?void 0:n.monthlyPrice,s=Number(v),c=Number.isFinite(s)?s:0;t+=c}}return{items:v,totalOneTimePrice:d,totalMonthlyPrice:t}})(),ul=Object.values(tl).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,l.createElement(t,null,l.createElement("div",{className:n.mainPage},Object.keys((null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||[]).length>=(null==Qe?void 0:Qe[xe.selectedTab])&&(null==xe?void 0:xe.selectedTab)===F&&l.createElement("div",{className:n.cartLimitTxt},l.createElement(p,{content:Ye})),((null==xe?void 0:xe.selectedTab)===D||(null==xe?void 0:xe.selectedTab)===U)&&l.createElement("div",{className:n.extraSimHeading},(null==xe?void 0:xe.selectedTab)===D?null==G?void 0:G.watchesHeading:null==G?void 0:G.tabletsHeading),l.createElement(d,{key:null==xe?void 0:xe.selectedTab},null===(ae=null===(ce=(null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||[])||void 0===ce?void 0:ce.filter(e=>{var l,i;return Ke===M?(null===(i=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.recurringPrice)||void 0===i?void 0:i.monthlyInstallment)>0:e}))||void 0===ae?void 0:ae.map((e,i)=>{var o,d,t,v,s,r,m,p,b,g,y,T,h,f,A,E,j,O,R,P,k,N,C,S,I,w,x,$,B,_,L,K,V,z,J,H,W,q,X,Y,Z,ee,le,ie,oe,ne,de,te,ve,se,ce,ae,re,ue,me,pe,be,ge,ye,Te,he,fe,Ae,Ee;return l.createElement("div",{key:i,className:`${n.card} ${(null===(o=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===o?void 0:o[null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.id])||(null===(t=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===t?void 0:t[null===(v=null==e?void 0:e.recomApiResponse)||void 0===v?void 0:v.id])&&!(null===(s=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===s?void 0:s[null===(r=null==e?void 0:e.recomApiResponse)||void 0===r?void 0:r.id])?n.selectedCard:""}`},l.createElement("div",{className:n.detailSection,id:`detailsectionv3${Q}${i}`},(null!==(y=null===(g=null===(b=null===(p=null===(m=null==e?void 0:e.sbStoryItem)||void 0===m?void 0:m.content)||void 0===p?void 0:p.body)||void 0===b?void 0:b[0])||void 0===g?void 0:g.displayText)&&void 0!==y?y:null===(T=null==e?void 0:e.sbStoryItem)||void 0===T?void 0:T.displayText)&&l.createElement("div",{className:n.heading,id:`headingV3${Q}${i}`},null!==(j=null===(E=null===(A=null===(f=null===(h=null==e?void 0:e.sbStoryItem)||void 0===h?void 0:h.content)||void 0===f?void 0:f.body)||void 0===A?void 0:A[0])||void 0===E?void 0:E.displayText)&&void 0!==j?j:null===(O=null==e?void 0:e.sbStoryItem)||void 0===O?void 0:O.displayText,(null==xe?void 0:xe.selectedTab)===F&&(null===(P=null===(R=null==e?void 0:e.recomApiResponse)||void 0===R?void 0:R.variantCategory)||void 0===P?void 0:P.color)&&"None"!==(null===(N=null===(k=null==e?void 0:e.recomApiResponse)||void 0===k?void 0:k.variantCategory)||void 0===N?void 0:N.color)&&l.createElement("div",{className:n.optionalText},null==G?void 0:G.accessoriesColorLabel," ",null===(S=null===(C=null==e?void 0:e.recomApiResponse)||void 0===C?void 0:C.variantCategory)||void 0===S?void 0:S.color)),l.createElement("div",{className:n.accImage,id:`image${Q}${i}`},((null==xe?void 0:xe.selectedTab)===D||(null==xe?void 0:xe.selectedTab)===U)&&(null===(I=null==G?void 0:G.esimIcon)||void 0===I?void 0:I.filename)&&l.createElement("div",{className:n.esimBadge},(null===(x=null===(w=null==e?void 0:e.sbStoryItem)||void 0===w?void 0:w.energyIcon)||void 0===x?void 0:x.filename)&&l.createElement("img",{loading:"lazy",src:c(Ze,null===(B=null===($=null==e?void 0:e.sbStoryItem)||void 0===$?void 0:$.energyIcon)||void 0===B?void 0:B.filename),alt:"energy_Icon",width:37,height:20}),l.createElement("img",{src:null===(_=null==G?void 0:G.esimIcon)||void 0===_?void 0:_.filename,alt:"eSIM",className:n.esimIcon})),l.createElement("img",{loading:"lazy",src:c(Ze,null===(L=null==e?void 0:e.imageData)||void 0===L?void 0:L.image),alt:"acessories_device",width:210,height:210}))),l.createElement("div",{className:n.mainPriceContainer,id:`main-price-section${Q}${i}`},(null===(K=null==Ue?void 0:Ue.hardwareVariant)||void 0===K?void 0:K.selectedContractType)===M||Ke===M?l.createElement("div",{className:n.priceContainer,id:`price-detail-section${Q}${i}`},l.createElement("div",{className:n.price,id:`price${Q}${i}`},l.createElement("span",{style:{color:(null===(z=null===(V=null==e?void 0:e.recomApiResponse)||void 0===V?void 0:V.recurringPrice)||void 0===z?void 0:z.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},a(null===(H=null===(J=null==e?void 0:e.recomApiResponse)||void 0===J?void 0:J.recurringPrice)||void 0===H?void 0:H.monthlyInstallment)),(null===(q=null===(W=null==e?void 0:e.recomApiResponse)||void 0===W?void 0:W.recurringPrice)||void 0===q?void 0:q.marketMonthlyInstallment)&&l.createElement("span",{className:n.strikedMonthlyPrice},a(null===(Y=null===(X=null==e?void 0:e.recomApiResponse)||void 0===X?void 0:X.recurringPrice)||void 0===Y?void 0:Y.marketMonthlyInstallment)),l.createElement("span",{className:(null===(ee=null===(Z=null==e?void 0:e.recomApiResponse)||void 0===Z?void 0:Z.recurringPrice)||void 0===ee?void 0:ee.marketMonthlyInstallment)?null==n?void 0:n.monthlyStrikethroughText:n.monthlyText},null==G?void 0:G.monthlyText)),l.createElement("div",{className:n.totalPrice},null==G?void 0:G.totalText," ",a(null===(ie=null===(le=null==e?void 0:e.recomApiResponse)||void 0===le?void 0:le.oneTimePrice)||void 0===ie?void 0:ie.base)," ",l.createElement("span",{className:n.strikedtotalMonthlyPrice,style:{visibility:(null===(ne=null===(oe=null==e?void 0:e.recomApiResponse)||void 0===oe?void 0:oe.oneTimePrice)||void 0===ne?void 0:ne.market)?"visible":"hidden"}},a(null===(te=null===(de=null==e?void 0:e.recomApiResponse)||void 0===de?void 0:de.oneTimePrice)||void 0===te?void 0:te.market))),l.createElement("div",{className:n.priceDescription},null==G?void 0:G.monthlyPaymentLabel,l.createElement("br",null),null==G?void 0:G.monthlyDownPaymentLabel)):l.createElement("div",{className:n.priceContainer,id:`price-detail-section${Q}${i}`},l.createElement("div",{className:n.price,style:{color:(null===(se=null===(ve=null==e?void 0:e.recomApiResponse)||void 0===ve?void 0:ve.recurringPrice)||void 0===se?void 0:se.marketMonthlyInstallment)?"#5E94CF":"#3D3935"},id:`price${Q}${i}`},l.createElement("span",{className:n.oneTimePrice},a(null===(ae=null===(ce=null==e?void 0:e.recomApiResponse)||void 0===ce?void 0:ce.oneTimePrice)||void 0===ae?void 0:ae.base)),(null===(ue=null===(re=null==e?void 0:e.recomApiResponse)||void 0===re?void 0:re.oneTimePrice)||void 0===ue?void 0:ue.market)&&l.createElement("span",{className:n.strikedMonthlyPrice},a(null===(pe=null===(me=null==e?void 0:e.recomApiResponse)||void 0===me?void 0:me.oneTimePrice)||void 0===pe?void 0:pe.market))),l.createElement("div",{className:n.priceDescription},null==G?void 0:G.oneTimePaymentLabel)),(null==G?void 0:G.addtocartButton.length)>0&&(null==G?void 0:G.removefromcartButton.length)>0&&l.createElement("div",{className:`${n.cartBtn}`,id:`add-crt-btn${Q}${i}`},(null===(be=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===be?void 0:be[null===(ge=null==e?void 0:e.recomApiResponse)||void 0===ge?void 0:ge.id])||(null===(ye=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===ye?void 0:ye[null===(Te=null==e?void 0:e.recomApiResponse)||void 0===Te?void 0:Te.id])&&!(null===(he=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===he?void 0:he[null===(fe=null==e?void 0:e.recomApiResponse)||void 0===fe?void 0:fe.id])?l.createElement(l.Fragment,null,l.createElement(u,{content:null===(Ae=null==G?void 0:G.removefromcartButton)||void 0===Ae?void 0:Ae[0],onClick:l=>el(l,e,i),wafIdentifier:Ze})):l.createElement(u,{content:null===(Ee=null==G?void 0:G.addtocartButton)||void 0===Ee?void 0:Ee[0],onClick:l=>el(l,e,i),wafIdentifier:Ze}))))})),l.createElement("div",{className:n.miaFooter},ul>0&&(null==G?void 0:G.enableSelectionSummary)&&Object.keys(Ve||{}).length>1&&Ke===M&&l.createElement("div",{className:n.miniSummary},l.createElement("div",{className:n.titleRow},l.createElement("span",{className:`fw-bold ${n.titleLabel}`},null==G?void 0:G.yourSelectionTitle),l.createElement("span",{className:n.titleIcons},((null==G?void 0:G.recommendationType)||[]).map(e=>{var i;return tl[e]>0&&l.createElement(l.Fragment,null,(e===D&&tl[F]>0||e===U&&(tl[F]>0||tl[D]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(Ze,null===(i=null==G?void 0:G.selectionSummaryPlusIcon)||void 0===i?void 0:i.filename),alt:"add_icon",width:16,height:16})),l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(Ze,null==vl?void 0:vl[`${e}_icon`]),alt:`${e}_icon`})," ",tl[e],"x ",null==sl?void 0:sl[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${n.cartPrice}`},Ke===M?l.createElement(l.Fragment,null,a(rl),null==G?void 0:G.monthlyText):a(al)),We?l.createElement("img",{className:n.cartToggle,onClick:()=>Xe(!We),loading:"lazy",src:c(Ze,null===(ue=null==G?void 0:G.selectionSummaryCollapseIcon)||void 0===ue?void 0:ue.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:n.cartToggle,onClick:()=>Xe(!We),loading:"lazy",src:c(Ze,null===(re=null==G?void 0:G.selectionSummaryExpandIcon)||void 0===re?void 0:re.filename),alt:"expand_icon",width:24,height:24})),We&&l.createElement(l.Fragment,null,l.createElement("div",{className:n.miniCartDivider}),cl.map(i=>{var o,d,t,v,s,r,u,m,p,b,g,y,T,A,E,j,O,R,P,k,N,C,S,I,w;return l.createElement("div",{className:n.itemRow,key:null===(o=null==i?void 0:i.recomApiResponse)||void 0===o?void 0:o.id},l.createElement("div",{className:n.itemLine},l.createElement("span",{className:n.itemName},null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.name),l.createElement("div",{className:n.cartPrice},Ke===M?l.createElement(l.Fragment,null,(null===(v=null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.oneTimePrice)||void 0===v?void 0:v.base)>0&&l.createElement("span",{className:n.oneTime},"(",a(null===(r=null===(s=null==i?void 0:i.recomApiResponse)||void 0===s?void 0:s.oneTimePrice)||void 0===r?void 0:r.base),")"),a(null===(m=null===(u=null==i?void 0:i.recomApiResponse)||void 0===u?void 0:u.recurringPrice)||void 0===m?void 0:m.monthlyInstallment),null==G?void 0:G.monthlyText):a(null===(b=null===(p=null==i?void 0:i.recomApiResponse)||void 0===p?void 0:p.oneTimePrice)||void 0===b?void 0:b.base)),l.createElement("img",{className:n.cartDelete,loading:"lazy",src:c(Ze,null===(g=null==G?void 0:G.selectionSummaryDeleteIcon)||void 0===g?void 0:g.filename),alt:"delete_icon",onClick:()=>(l=>e(void 0,void 0,void 0,function*(){var e,i,o;const n=null==l?void 0:l.tabKey,d=null===(e=null==l?void 0:l.recomApiResponse)||void 0===e?void 0:e.id;if((null===(i=null==ze?void 0:ze[n])||void 0===i?void 0:i[d])&&(yield _e.removeItemFromCart(je,l)),null===(o=null==Fe?void 0:Fe[n])||void 0===o?void 0:o[d]){const e=Object.keys(Fe[n]).filter(e=>e!==d).reduce((e,l)=>(e[l]=Fe[n][l],e),{});Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[n]:e}))}ll(h,f,l,0)}))(i),width:20,height:20})),[D,U].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:n.itemLine},l.createElement("span",{className:`${n.itemName} ${n.rpName}`},(null===(T=null===(y=null==Ve?void 0:Ve[null==i?void 0:i.tabKey])||void 0===y?void 0:y.ratePlan)||void 0===T?void 0:T.id)||(null===(E=null===(A=null==ze?void 0:ze.ratePlanInfo)||void 0===A?void 0:A[null==i?void 0:i.tabKey])||void 0===E?void 0:E.name)),l.createElement("div",{className:n.rpPrice},a(Number.isFinite(Number(null!==(R=null===(O=null===(j=null==Ve?void 0:Ve[null==i?void 0:i.tabKey])||void 0===j?void 0:j.ratePlan)||void 0===O?void 0:O.listPrice)&&void 0!==R?R:null===(k=null===(P=null==ze?void 0:ze.ratePlanInfo)||void 0===P?void 0:P[null==i?void 0:i.tabKey])||void 0===k?void 0:k.monthlyPrice))?Number(null!==(S=null===(C=null===(N=null==Ve?void 0:Ve[null==i?void 0:i.tabKey])||void 0===N?void 0:N.ratePlan)||void 0===C?void 0:C.listPrice)&&void 0!==S?S:null===(w=null===(I=null==ze?void 0:ze.ratePlanInfo)||void 0===I?void 0:I[null==i?void 0:i.tabKey])||void 0===w?void 0:w.monthlyPrice):0),null==G?void 0:G.monthlyText)),l.createElement("hr",{className:n.itemDivider}))}))),l.createElement("div",{className:`${n.checkoutBtn}`},(null===(me=null==G?void 0:G.proceedtocheckoutButton)||void 0===me?void 0:me.length)>0&&l.createElement(u,{content:G.proceedtocheckoutButton[0],eventAction:"",onClick:e=>il(e),wafIdentifier:Ze,disabled:He}))))),Oe&&l.createElement(m,{modalState:Oe,handler:()=>{ol()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Pe||"desktop"===Pe||"tablet"===Pe?"460px":"",noCloseButton:!1,backDrop:!0}," ",l.createElement("div",{className:`${n.accessoryErrorUpdate}`},l.createElement(p,{content:null===(be=null===(pe=null==G?void 0:G.errorModal)||void 0===pe?void 0:pe[0])||void 0===be?void 0:be.heading}),l.createElement(p,{content:null===(ye=null===(ge=null==G?void 0:G.errorModal)||void 0===ge?void 0:ge[0])||void 0===ye?void 0:ye.description}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{ol()}},null==G?void 0:G.cancelButtonLinkText),l.createElement(u,{content:null===(Te=null==G?void 0:G.retryButton)||void 0===Te?void 0:Te[0],onClick:e=>il(e),metadata:void 0,wafIdentifier:Ze})))),ke&&(null==xe?void 0:xe.selectedTab)===F&&l.createElement(m,{modalState:ke,handler:()=>{nl()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Pe||"desktop"===Pe||"tablet"===Pe?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement("div",{className:`${n.accessoryErrorUpdate}`},l.createElement(p,{content:JSON.parse(s(JSON.stringify(null===(fe=null===(he=null==G?void 0:G.cartLimitModal)||void 0===he?void 0:he[0])||void 0===fe?void 0:fe.heading),[null==Qe?void 0:Qe[xe.selectedTab].toString()]))}),l.createElement(p,{content:JSON.parse(s(JSON.stringify(null===(Ee=null===(Ae=null==G?void 0:G.cartLimitModal)||void 0===Ae?void 0:Ae[0])||void 0===Ee?void 0:Ee.description),[null==Qe?void 0:Qe[xe.selectedTab].toString()]))}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{nl()}},null==G?void 0:G.cartLimitBtnText)))),ke&&((null==xe?void 0:xe.selectedTab)===D||(null==xe?void 0:xe.selectedTab)===U)&&(()=>{var e,i,o,d,t,v,s;const c=(()=>{var e,l;return(null==xe?void 0:xe.selectedTab)===D?null===(e=null==G?void 0:G.watchesSelectionPopup)||void 0===e?void 0:e[0]:null===(l=null==G?void 0:G.tabletsSelectionPopup)||void 0===l?void 0:l[0]})();return $(h,T,{component:y,message_title:g,message_description:null===(v=null===(t=null===(d=null===(o=null===(i=null===(e=null==c?void 0:c.description)||void 0===e?void 0:e.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===d?void 0:d[0])||void 0===t?void 0:t.text)||void 0===v?void 0:v.slice(0,100),message_type:b}),l.createElement(m,{modalState:ke,handler:()=>(e=>{var l,i,o,n,d,t;(null==e?void 0:e.description)&&$(h,C,{component:y,message_title:g,message_description:null===(t=null===(d=null===(n=null===(o=null===(i=null===(l=null==e?void 0:e.description)||void 0===l?void 0:l.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===n?void 0:n[0])||void 0===d?void 0:d.text)||void 0===t?void 0:t.slice(0,100),message_type:b}),nl()})(c),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Pe||"desktop"===Pe||"tablet"===Pe?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==c?void 0:c.heading)&&l.createElement("div",{className:n.modalHeading},l.createElement(p,{content:c.heading})),(null==c?void 0:c.description)&&l.createElement("div",{className:n.modalDescription},l.createElement(p,{content:c.description})),l.createElement("div",{className:n.modalButtons},(null==c?void 0:c.link)&&l.createElement("a",{className:n.factSheetLink,onClick:()=>($(h,I,{component:k,click_text:S}),void nl())},c.linkText),(null===(s=null==c?void 0:c.button)||void 0===s?void 0:s.length)>0&&l.createElement(u,{content:c.button[0],onClick:()=>(()=>{var e,l,i,o,n,d,t,v,s,c;if($(h,I,{component:k,click_text:w}),!Ce)return void nl();const a=Object.keys((null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||{});if(a.length>0){const n=a[0],d=null===(e=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===e?void 0:e[n],t=null===(i=null===(l=null==Object?void 0:Object.keys(null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab]))||void 0===l?void 0:l.filter(e=>e!==n))||void 0===i?void 0:i.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==Fe?void 0:Fe[null==xe?void 0:xe.selectedTab])||void 0===i?void 0:i[l]})},{});Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:Object.assign(Object.assign({},t),{[null===(o=null==Ce?void 0:Ce.recomApiResponse)||void 0===o?void 0:o.id]:Ce})})),d&&ll(h,f,d,0)}else{const e=(null==Me?void 0:Me[null==xe?void 0:xe.selectedTab])||[];for(const l of e)if((null===(n=null==ze?void 0:ze[null==xe?void 0:xe.selectedTab])||void 0===n?void 0:n[null===(d=null==l?void 0:l.recomApiResponse)||void 0===d?void 0:d.id])&&!(null===(t=null==De?void 0:De[null==xe?void 0:xe.selectedTab])||void 0===t?void 0:t[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id])){Be.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},De),{[null==xe?void 0:xe.selectedTab]:Object.assign(Object.assign({},(null==De?void 0:De[null==xe?void 0:xe.selectedTab])||{}),{[null===(s=null==l?void 0:l.recomApiResponse)||void 0===s?void 0:s.id]:l})})),ll(h,f,l,0);break}Be.setSelectedAccessories(Object.assign(Object.assign({},Fe),{[null==xe?void 0:xe.selectedTab]:{[null===(c=null==Ce?void 0:Ce.recomApiResponse)||void 0===c?void 0:c.id]:Ce}}))}ll(A,A,Ce,Ie),nl()})(),metadata:void 0,wafIdentifier:""}))))})())};export{G as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import l,{useState as i,useEffect as o}from"react";import n from"./AccessoryCard.module.scss.js";import d from"../DeviceCarouselComponent.js";import t from"../../ResponsiveRow/row.js";import{viewport as v,replacePlaceholder as s,getCompressedImage as c,countZero as a}from"../../../utils/utils.js";import{getCookie as r}from"cookies-next";import u from"../../FalconButtonV2/FalconButtonV2.js";import m from"./AccessoryModal.js";import p from"../../richtext.js";import{INFO as b,REPLACESELECTION as g,POPUP as y,OPENPOPUP as T,GAEVENT as h,REMOVEFROMCART as f,ADD_TO_CART as A,OPEN as E,CLOSE as j,FORM as O,ACCORDIONCLICK as R,CONTINUE as N,LINK as P,TABCLICK as k,CLOSEPOPUP as C,KEEPPREVIOUS as S,CTABUTTONCLICK as I,REPLACE as x}from"../../../Analytics/AnalyticsConstants.js";import{trackViewItem as w,trackNewDatalayerEvent as $}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as B,ACCESSORY as F,CONTRACT as _,WATCHES as L,TABLETS as M,FLEX_UPGRADE as D,MONTHLY as U,ONETIME as K,HARDWARE as z}from"../../../utils/constants.js";import{useMultiAccessoryContext as V}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as J}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as H}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import{AssetPathPropConfig as W}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";const q=({content:q,tabIndex:G,isSubscriptionFlow:Q,setAccessoriesSelected:X})=>{var Y,Z,ee,le,ie,oe,ne,de,te,ve,se,ce,ae,re,ue,me,pe,be,ge,ye;const Te=r("one-commerce-cartId"),[he,fe]=i(!1),Ae=v(),[Ee,je]=i(!1),[Oe,Re]=i(null),[Ne,Pe]=i(0),{store:ke,dispatch:Ce}=V(),Se=J(Ce),Ie=H(),{updateAccessoryCartFailure:xe}=ke,{selectedAccessories:we,multiItemAccessoriessList:$e,removeSelectedCartAccessories:Be,deviceSessionValues:Fe,selectedPaymentType:_e,recommendedAccessories:Le,cartData:Me,previousTab:De,loading:Ue,showMiniCart:Ke}=ke,ze=!!(null===(Z=null===(Y=[B])||void 0===Y?void 0:Y.includes)||void 0===Z?void 0:Z.call(Y,null===(ie=null===(le=null===(ee=null==Le?void 0:Le[null==ke?void 0:ke.selectedTab])||void 0===ee?void 0:ee.hardware)||void 0===le?void 0:le[0])||void 0===ie?void 0:ie.recommendationProcessingType))||!(null==Fe?void 0:Fe.hardwareVariant),Ve={[F]:Q?ze?+(null==q?void 0:q.ratePlanAccessoriesLimit):+(null==q?void 0:q.winAccessoriesLimit):+(null==q?void 0:q.accessoriesLimit),WATCHES:1,TABLETS:1},Je=e=>{$(h,R,{component:O,click_text:e?E:j}),Se.setShowMiniCart(e)},He=JSON.parse(s(JSON.stringify(null==q?void 0:q.cartLimitWarningText),[null==Ve?void 0:Ve[ke.selectedTab].toString()])),We=null===(oe=null==W?void 0:W.getInstance())||void 0===oe?void 0:oe.getAssetPath(),qe=(e,l,i)=>{var o,n,d,t,v,s,c,a,r,u,m,p,b,g,y,T,E,j,O,R,N,P;if(e.preventDefault(),(null===(o=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&!(null===(d=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===d?void 0:d[null===(t=null==l?void 0:l.recomApiResponse)||void 0===t?void 0:t.id])){if(Se.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},Be),{[null==ke?void 0:ke.selectedTab]:Object.assign(Object.assign({},(null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||{}),{[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id]:l})})),null===(s=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===s?void 0:s[null===(c=null==l?void 0:l.recomApiResponse)||void 0===c?void 0:c.id]){const e=null===(r=null===(a=null==Object?void 0:Object.keys(null==we?void 0:we[null==ke?void 0:ke.selectedTab]))||void 0===a?void 0:a.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===r?void 0:r.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===i?void 0:i[l]})},{});Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:e}))}Ge(h,f,l,i)}else if(null===(u=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===u?void 0:u[null===(m=null==l?void 0:l.recomApiResponse)||void 0===m?void 0:m.id]){const e=null===(b=null===(p=null==Object?void 0:Object.keys(null==we?void 0:we[null==ke?void 0:ke.selectedTab]))||void 0===p?void 0:p.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===b?void 0:b.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===i?void 0:i[l]})},{});Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:e})),Ge(h,f,l,i)}else{if((null===(g=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===g?void 0:g[null===(y=null==l?void 0:l.recomApiResponse)||void 0===y?void 0:y.id])&&(null===(T=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===T?void 0:T[null===(E=null==l?void 0:l.recomApiResponse)||void 0===E?void 0:E.id])){if(Ze(l,i))return;const e=null===(O=null===(j=null==Object?void 0:Object.keys(null==Be?void 0:Be[null==ke?void 0:ke.selectedTab]))||void 0===j?void 0:j.filter(e=>{var i;return e!==(null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===O?void 0:O.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===i?void 0:i[l]})},{});Se.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},Be),{[null==ke?void 0:ke.selectedTab]:e}))}if(!(null===(R=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===R?void 0:R[null===(N=null==l?void 0:l.recomApiResponse)||void 0===N?void 0:N.id])){if(Ze(l,i))return;Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:Object.assign(Object.assign({},(null==we?void 0:we[null==ke?void 0:ke.selectedTab])||{}),{[null===(P=null==l?void 0:l.recomApiResponse)||void 0===P?void 0:P.id]:l})}))}Ge(A,A,l,i)}};o(()=>{X&&"function"==typeof X&&X(we)},[we,X]),o(()=>{var e;null===(e=null==Object?void 0:Object.values((null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||[]))||void 0===e||e.map((e,l)=>{var i,o,n,d,t,v,s,c,a;if(_e===_&&!(null===(o=null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)&&((null===(n=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===n?void 0:n[null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.id])&&Se.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},Be),{[null==ke?void 0:ke.selectedTab]:Object.assign(Object.assign({},(null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||{}),{[null===(t=null==e?void 0:e.recomApiResponse)||void 0===t?void 0:t.id]:e})})),null===(v=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===v?void 0:v[null===(s=null==e?void 0:e.recomApiResponse)||void 0===s?void 0:s.id])){const i=null===(a=null===(c=null==Object?void 0:Object.keys(null==we?void 0:we[null==ke?void 0:ke.selectedTab]))||void 0===c?void 0:c.filter(l=>{var i;return l!==(null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id)}))||void 0===a?void 0:a.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===i?void 0:i[l]})},{});Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:i})),Ge(h,f,e,l)}})},[_e]);const Ge=(e,l,i,o)=>{var n,d,t,v,s,c,a,r;w(e,l,{displayName:null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name,productId:null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.id,priceValue:null===(v=null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.oneTimePrice)||void 0===v?void 0:v.base,index:o,variant:null===(c=null===(s=null==i?void 0:i.recomApiResponse)||void 0===s?void 0:s.variantCategory)||void 0===c?void 0:c.color,storage:null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.storage,hardwareCategory:null==ke?void 0:ke.selectedTab})},Qe=e=>{var l,i,o,n,d,t,v,s,c;e.preventDefault();const a=(null===(l=Object.keys(xe))||void 0===l?void 0:l.length)>0;if(a&&(fe(!1),Ie.setupdateAccessoryCartFailure({})),a||Se.setPreviousTab(null==ke?void 0:ke.selectedTab),Se.setSelectedTab(null==ke?void 0:ke.selectedTab),Object.keys(Le||{}).some(e=>0!==Object.keys((null==we?void 0:we[e])||{}).length||0!==Object.keys((null==Be?void 0:Be[e])||{}).length)){const e={id:Te,redirectUrl:Q?null===(i=null==q?void 0:q.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(o=null==q?void 0:q.multiItemCheckoutUrl)||void 0===o?void 0:o.url};$(h,k,{component:P,click_text:N}),Ie.multiItemAccessorycreateCartRequest(e)}else{let e=!0;if(null===(d=null===(n=null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||void 0===n?void 0:n.filter(e=>{var l,i;return null===(l=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]}))||void 0===d||d.filter(l=>{var i,o;e=(null===(o=null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.paymentType)||void 0===o?void 0:o.toLowerCase())===(_e===_?U:K)}),e||(null==ke?void 0:ke.selectedTab)===L||ke.selectedTab===M)window.location.href=Q?null===(t=null==q?void 0:q.winCheckoutUrl)||void 0===t?void 0:t.cached_url:null===(v=null==q?void 0:q.multiItemCheckoutUrl)||void 0===v?void 0:v.url;else{const e={id:Te,redirectUrl:Q?null===(s=null==q?void 0:q.winCheckoutUrl)||void 0===s?void 0:s.cached_url:null===(c=null==q?void 0:q.multiItemCheckoutUrl)||void 0===c?void 0:c.url};Ie.multiItemAccessorycreateCartRequest(e)}}},Xe=()=>{var e;fe(e=>!e),(null===(e=Object.keys(xe))||void 0===e?void 0:e.length)>0&&(Ie.setupdateAccessoryCartFailure({}),De&&(Se.setSelectedTab(De),Se.setPreviousTab(De),Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[De]:{}})),Se.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},Be),{[De]:{}}))))};o(()=>{var e;(null===(e=Object.keys(xe))||void 0===e?void 0:e.length)>0&&fe(e=>!e)},[xe]);const Ye=()=>{je(!1),Re(null),Pe(0)},Ze=(e,l)=>{var i;let o=0;return null===(i=(null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||[])||void 0===i||i.map(e=>{var l,i;(null===(l=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id])&&o++}),o+=Object.keys((null==we?void 0:we[null==ke?void 0:ke.selectedTab])||{}).length,o-=Object.keys((null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||{}).length,o>=(null==Ve?void 0:Ve[ke.selectedTab])&&(je(!0),Re(e||null),Pe(l||0),!0)},el={},ll={},il={};((null==q?void 0:q.recommendationType)||[]).map(e=>{var l;el[e]=(e=>Object.keys((null==Me?void 0:Me[e])||{}).length+Object.keys((null==we?void 0:we[e])||{}).length-Object.keys((null==Be?void 0:Be[e])||{}).length)(e),ll[`${e}_icon`]=null===(l=null==q?void 0:q[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,il[`${e}_title`]=null==q?void 0:q[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:ol,totalOneTimePrice:nl,totalMonthlyPrice:dl}=(()=>{var e,l,i,o,n;let d=0,t=0;const v=((null==q?void 0:q.recommendationType)||[]).flatMap(e=>{const l=(null==$e?void 0:$e[e])||{},i=new Set(Object.values(l).map(e=>{var l;return null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.id})),o=Object.values(l).filter(l=>{var i,o,n,d,t,v;return((null===(i=null==Me?void 0:Me[e])||void 0===i?void 0:i[null===(o=null==l?void 0:l.recomApiResponse)||void 0===o?void 0:o.id])||(null===(n=null==we?void 0:we[e])||void 0===n?void 0:n[null===(d=null==l?void 0:l.recomApiResponse)||void 0===d?void 0:d.id]))&&!(null===(t=null==Be?void 0:Be[e])||void 0===t?void 0:t[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id])}).map(l=>{var i,o,n,v;return d+=+((null===(o=null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.oneTimePrice)||void 0===o?void 0:o.base)||0),t+=+((null===(v=null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.recurringPrice)||void 0===v?void 0:v.monthlyInstallment)||0),Object.assign(Object.assign({},l),{tabKey:e})}),n=Object.keys((null==Me?void 0:Me[e])||{}).filter(l=>{var o;return!i.has(l)&&!(null===(o=null==Be?void 0:Be[e])||void 0===o?void 0:o[l])}).map(l=>{const i=(e=>{var l,i,o,n,d,t,v,s,c,a,r,u;if(!(null==e?void 0:e.length))return null;const m=e=>{const l=Number(e);return Number.isFinite(l)?l:0},p=e=>{const l=Number(null==e?void 0:e.cycleStart),i=Number(null==e?void 0:e.cycleEnd);return Number.isFinite(l)&&Number.isFinite(i)&&i>=l?i-l+1:1};let b="",g=0,y=0;for(const T of e){b||(b=(null==T?void 0:T.name)||(null===(l=null==T?void 0:T.productOffering)||void 0===l?void 0:l.name)||(null===(i=null==T?void 0:T.productOffering)||void 0===i?void 0:i.id)||(null==T?void 0:T.id)||"");const e=(null===(n=null===(o=null==T?void 0:T.itemPrice)||void 0===o?void 0:o[0])||void 0===n?void 0:n.cartPrice)||[],h=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),f=null===(d=h.flatMap(e=>(null==e?void 0:e.additionalDetails)||[]).find(e=>"originalInstallment"===(null==e?void 0:e.id)))||void 0===d?void 0:d.value,A=e.find(e=>"paynow"===(null==e?void 0:e.recurringChargePeriod)),E=null===(v=null===(t=null==A?void 0:A.additionalDetails)||void 0===t?void 0:t.find(e=>"streetPrice"===(null==e?void 0:e.id)))||void 0===v?void 0:v.value,j=(null==T?void 0:T.prices)||[],O=j.filter(e=>"RECURRING"===(null==e?void 0:e.priceType)),R=null===(s=O.find(e=>{var l;return 1===(null===(l=null==e?void 0:e.cycle)||void 0===l?void 0:l.cycleStart)})||O[0])||void 0===s?void 0:s.value,N=null===(c=j.find(e=>"STREET_PRICE"===(null==e?void 0:e.priceType)))||void 0===c?void 0:c.value,P=O.reduce((e,l)=>e+m(null==l?void 0:l.value)*p(null==l?void 0:l.cycle),0)+j.filter(e=>"ONETIME"===(null==e?void 0:e.priceType)).reduce((e,l)=>e+m(null==l?void 0:l.value),0);g+=m(f||(null===(u=null===(r=null===(a=null==h?void 0:h[0])||void 0===a?void 0:a.price)||void 0===r?void 0:r.taxIncludedAmount)||void 0===u?void 0:u.value)||R),y+=m(E||N||((null==T?void 0:T.itemType)===z?P:0))}return{name:b,monthlyInstallment:g,oneTimePrice:y}})(Me[e][l]);return i?(d+=i.oneTimePrice,t+=i.monthlyInstallment,{tabKey:e,isCartOnly:!0,recomApiResponse:{id:l,name:i.name,oneTimePrice:{base:i.oneTimePrice},recurringPrice:{monthlyInstallment:i.monthlyInstallment}}}):null}).filter(Boolean);return[...o,...n]});for(const d of[L,M]){if(v.some(e=>(null==e?void 0:e.tabKey)===d)){const v=null!==(i=null===(l=null===(e=null==Le?void 0:Le[d])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.listPrice)&&void 0!==i?i:null===(n=null===(o=null==Me?void 0:Me.ratePlanInfo)||void 0===o?void 0:o[d])||void 0===n?void 0:n.monthlyPrice,s=Number(v),c=Number.isFinite(s)?s:0;t+=c}}return{items:v,totalOneTimePrice:d,totalMonthlyPrice:t}})(),tl=Object.values(el).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,l.createElement(t,null,l.createElement("div",{className:n.mainPage},Object.keys((null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||[]).length>=(null==Ve?void 0:Ve[ke.selectedTab])&&(null==ke?void 0:ke.selectedTab)===F&&l.createElement("div",{className:n.cartLimitTxt},l.createElement(p,{content:He})),((null==ke?void 0:ke.selectedTab)===L||(null==ke?void 0:ke.selectedTab)===M)&&l.createElement("div",{className:n.extraSimHeading},(null==ke?void 0:ke.selectedTab)===L?null==q?void 0:q.watchesHeading:null==q?void 0:q.tabletsHeading),l.createElement(d,{key:null==ke?void 0:ke.selectedTab},null===(de=null===(ne=(null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||[])||void 0===ne?void 0:ne.filter(e=>{var l,i;return _e===_?(null===(i=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.recurringPrice)||void 0===i?void 0:i.monthlyInstallment)>0:e}))||void 0===de?void 0:de.map((e,i)=>{var o,d,t,v,s,r,m,p,b,g,y,T,h,f,A,E,j,O,R,N,P,k,C,S,I,x,w,$,B,U,K,z,V,J,H,W,Q,X,Y,Z,ee,le,ie,oe,ne,de,te,ve,se,ce,ae,re,ue,me,pe,be,ge,ye,Te,he,fe,Ae,Ee,je,Oe,Re;return l.createElement("div",{key:i,className:`${n.card} ${(null===(o=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===o?void 0:o[null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.id])||(null===(t=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===t?void 0:t[null===(v=null==e?void 0:e.recomApiResponse)||void 0===v?void 0:v.id])&&!(null===(s=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===s?void 0:s[null===(r=null==e?void 0:e.recomApiResponse)||void 0===r?void 0:r.id])?n.selectedCard:""}`},l.createElement("div",{className:n.detailSection,id:`detailsectionv3${G}${i}`},(null!==(y=null===(g=null===(b=null===(p=null===(m=null==e?void 0:e.sbStoryItem)||void 0===m?void 0:m.content)||void 0===p?void 0:p.body)||void 0===b?void 0:b[0])||void 0===g?void 0:g.displayText)&&void 0!==y?y:null===(T=null==e?void 0:e.sbStoryItem)||void 0===T?void 0:T.displayText)&&l.createElement("div",{className:n.heading,id:`headingV3${G}${i}`},null!==(j=null===(E=null===(A=null===(f=null===(h=null==e?void 0:e.sbStoryItem)||void 0===h?void 0:h.content)||void 0===f?void 0:f.body)||void 0===A?void 0:A[0])||void 0===E?void 0:E.displayText)&&void 0!==j?j:null===(O=null==e?void 0:e.sbStoryItem)||void 0===O?void 0:O.displayText,(null==ke?void 0:ke.selectedTab)===F&&(null===(N=null===(R=null==e?void 0:e.recomApiResponse)||void 0===R?void 0:R.variantCategory)||void 0===N?void 0:N.color)&&"None"!==(null===(k=null===(P=null==e?void 0:e.recomApiResponse)||void 0===P?void 0:P.variantCategory)||void 0===k?void 0:k.color)&&l.createElement("div",{className:n.optionalText},null==q?void 0:q.accessoriesColorLabel," ",null===(S=null===(C=null==e?void 0:e.recomApiResponse)||void 0===C?void 0:C.variantCategory)||void 0===S?void 0:S.color)),l.createElement("div",{className:n.accImage,id:`image${G}${i}`},((null==ke?void 0:ke.selectedTab)===L||(null==ke?void 0:ke.selectedTab)===M)&&(null===(I=null==q?void 0:q.esimIcon)||void 0===I?void 0:I.filename)&&l.createElement("div",{className:n.esimBadge},(null===(w=null===(x=null==e?void 0:e.sbStoryItem)||void 0===x?void 0:x.energyIcon)||void 0===w?void 0:w.filename)&&l.createElement("img",{loading:"lazy",src:c(We,null===(B=null===($=null==e?void 0:e.sbStoryItem)||void 0===$?void 0:$.energyIcon)||void 0===B?void 0:B.filename),alt:"energy_Icon",width:37,height:20}),l.createElement("img",{src:null===(U=null==q?void 0:q.esimIcon)||void 0===U?void 0:U.filename,alt:"eSIM",className:n.esimIcon})),l.createElement("img",{loading:"lazy",src:c(We,null===(K=null==e?void 0:e.imageData)||void 0===K?void 0:K.image),alt:"acessories_device",width:210,height:210}))),l.createElement("div",{className:n.mainPriceContainer,id:`main-price-section${G}${i}`},(null===(z=null==Fe?void 0:Fe.hardwareVariant)||void 0===z?void 0:z.selectedContractType)===_||_e===_?l.createElement("div",{className:n.priceContainer,id:`price-detail-section${G}${i}`},l.createElement("div",{className:n.price,id:`price${G}${i}`},l.createElement("span",{style:{color:(null===(J=null===(V=null==e?void 0:e.recomApiResponse)||void 0===V?void 0:V.recurringPrice)||void 0===J?void 0:J.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},a(null===(W=null===(H=null==e?void 0:e.recomApiResponse)||void 0===H?void 0:H.recurringPrice)||void 0===W?void 0:W.monthlyInstallment)),(null===(X=null===(Q=null==e?void 0:e.recomApiResponse)||void 0===Q?void 0:Q.recurringPrice)||void 0===X?void 0:X.marketMonthlyInstallment)&&l.createElement("span",{className:n.strikedMonthlyPrice},a(null===(Z=null===(Y=null==e?void 0:e.recomApiResponse)||void 0===Y?void 0:Y.recurringPrice)||void 0===Z?void 0:Z.marketMonthlyInstallment)),l.createElement("span",{className:(null===(le=null===(ee=null==e?void 0:e.recomApiResponse)||void 0===ee?void 0:ee.recurringPrice)||void 0===le?void 0:le.marketMonthlyInstallment)?null==n?void 0:n.monthlyStrikethroughText:n.monthlyText},null==q?void 0:q.monthlyText)),l.createElement("div",{className:n.totalPrice},null==q?void 0:q.totalText," ",a(null===(oe=null===(ie=null==e?void 0:e.recomApiResponse)||void 0===ie?void 0:ie.oneTimePrice)||void 0===oe?void 0:oe.base)," ",l.createElement("span",{className:n.strikedtotalMonthlyPrice,style:{visibility:(null===(de=null===(ne=null==e?void 0:e.recomApiResponse)||void 0===ne?void 0:ne.oneTimePrice)||void 0===de?void 0:de.market)?"visible":"hidden"}},a(null===(ve=null===(te=null==e?void 0:e.recomApiResponse)||void 0===te?void 0:te.oneTimePrice)||void 0===ve?void 0:ve.market))),l.createElement("div",{className:n.priceDescription},null==q?void 0:q.monthlyPaymentLabel,l.createElement("br",null),null==q?void 0:q.monthlyDownPaymentLabel),(null===(ce=null===(se=null==e?void 0:e.recomApiResponse)||void 0===se?void 0:se.includedOptions)||void 0===ce?void 0:ce.includes(D))&&(null==q?void 0:q.freeFUText)&&l.createElement("div",{className:n.flexUpgradeText},null==q?void 0:q.freeFUText)):l.createElement("div",{className:n.priceContainer,id:`price-detail-section${G}${i}`},l.createElement("div",{className:n.price,style:{color:(null===(re=null===(ae=null==e?void 0:e.recomApiResponse)||void 0===ae?void 0:ae.recurringPrice)||void 0===re?void 0:re.marketMonthlyInstallment)?"#5E94CF":"#3D3935"},id:`price${G}${i}`},l.createElement("span",{className:n.oneTimePrice},a(null===(me=null===(ue=null==e?void 0:e.recomApiResponse)||void 0===ue?void 0:ue.oneTimePrice)||void 0===me?void 0:me.base)),(null===(be=null===(pe=null==e?void 0:e.recomApiResponse)||void 0===pe?void 0:pe.oneTimePrice)||void 0===be?void 0:be.market)&&l.createElement("span",{className:n.strikedMonthlyPrice},a(null===(ye=null===(ge=null==e?void 0:e.recomApiResponse)||void 0===ge?void 0:ge.oneTimePrice)||void 0===ye?void 0:ye.market))),l.createElement("div",{className:n.priceDescription},null==q?void 0:q.oneTimePaymentLabel)),(null==q?void 0:q.addtocartButton.length)>0&&(null==q?void 0:q.removefromcartButton.length)>0&&l.createElement("div",{className:`${n.cartBtn}`,id:`add-crt-btn${G}${i}`},(null===(Te=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===Te?void 0:Te[null===(he=null==e?void 0:e.recomApiResponse)||void 0===he?void 0:he.id])||(null===(fe=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===fe?void 0:fe[null===(Ae=null==e?void 0:e.recomApiResponse)||void 0===Ae?void 0:Ae.id])&&!(null===(Ee=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===Ee?void 0:Ee[null===(je=null==e?void 0:e.recomApiResponse)||void 0===je?void 0:je.id])?l.createElement(l.Fragment,null,l.createElement(u,{content:null===(Oe=null==q?void 0:q.removefromcartButton)||void 0===Oe?void 0:Oe[0],onClick:l=>qe(l,e,i),wafIdentifier:We})):l.createElement(u,{content:null===(Re=null==q?void 0:q.addtocartButton)||void 0===Re?void 0:Re[0],onClick:l=>qe(l,e,i),wafIdentifier:We}))))})),l.createElement("div",{className:n.miaFooter},tl>0&&(null==q?void 0:q.enableSelectionSummary)&&Object.keys(Le||{}).length>1&&_e===_&&l.createElement("div",{className:n.miniSummary},l.createElement("div",{className:n.titleRow},l.createElement("span",{className:`fw-bold ${n.titleLabel}`},null==q?void 0:q.yourSelectionTitle),l.createElement("span",{className:n.titleIcons},((null==q?void 0:q.recommendationType)||[]).map(e=>{var i;return el[e]>0&&l.createElement(l.Fragment,null,(e===L&&el[F]>0||e===M&&(el[F]>0||el[L]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(We,null===(i=null==q?void 0:q.selectionSummaryPlusIcon)||void 0===i?void 0:i.filename),alt:"add_icon",width:16,height:16})),l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(We,null==ll?void 0:ll[`${e}_icon`]),alt:`${e}_icon`})," ",el[e],"x ",null==il?void 0:il[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${n.cartPrice}`},_e===_?l.createElement(l.Fragment,null,a(dl),null==q?void 0:q.monthlyText):a(nl)),Ke?l.createElement("img",{className:n.cartToggle,onClick:()=>Je(!Ke),loading:"lazy",src:c(We,null===(ve=null==q?void 0:q.selectionSummaryCollapseIcon)||void 0===ve?void 0:ve.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:n.cartToggle,onClick:()=>Je(!Ke),loading:"lazy",src:c(We,null===(te=null==q?void 0:q.selectionSummaryExpandIcon)||void 0===te?void 0:te.filename),alt:"expand_icon",width:24,height:24})),Ke&&l.createElement(l.Fragment,null,l.createElement("div",{className:n.miniCartDivider}),ol.map(i=>{var o,d,t,v,s,r,u,m,p,b,g,y,T,A,E,j,O,R,N,P,k,C,S,I,x;return l.createElement("div",{className:n.itemRow,key:null===(o=null==i?void 0:i.recomApiResponse)||void 0===o?void 0:o.id},l.createElement("div",{className:n.itemLine},l.createElement("span",{className:n.itemName},null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.name),l.createElement("div",{className:n.cartPrice},_e===_?l.createElement(l.Fragment,null,(null===(v=null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.oneTimePrice)||void 0===v?void 0:v.base)>0&&l.createElement("span",{className:n.oneTime},"(",a(null===(r=null===(s=null==i?void 0:i.recomApiResponse)||void 0===s?void 0:s.oneTimePrice)||void 0===r?void 0:r.base),")"),a(null===(m=null===(u=null==i?void 0:i.recomApiResponse)||void 0===u?void 0:u.recurringPrice)||void 0===m?void 0:m.monthlyInstallment),null==q?void 0:q.monthlyText):a(null===(b=null===(p=null==i?void 0:i.recomApiResponse)||void 0===p?void 0:p.oneTimePrice)||void 0===b?void 0:b.base)),l.createElement("img",{className:n.cartDelete,loading:"lazy",src:c(We,null===(g=null==q?void 0:q.selectionSummaryDeleteIcon)||void 0===g?void 0:g.filename),alt:"delete_icon",onClick:()=>(l=>e(void 0,void 0,void 0,function*(){var e,i,o;const n=null==l?void 0:l.tabKey,d=null===(e=null==l?void 0:l.recomApiResponse)||void 0===e?void 0:e.id;if((null===(i=null==Me?void 0:Me[n])||void 0===i?void 0:i[d])&&(yield Ie.removeItemFromCart(Te,l)),null===(o=null==we?void 0:we[n])||void 0===o?void 0:o[d]){const e=Object.keys(we[n]).filter(e=>e!==d).reduce((e,l)=>(e[l]=we[n][l],e),{});Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[n]:e}))}Ge(h,f,l,0)}))(i),width:20,height:20})),[L,M].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:n.itemLine},l.createElement("span",{className:`${n.itemName} ${n.rpName}`},(null===(T=null===(y=null==Le?void 0:Le[null==i?void 0:i.tabKey])||void 0===y?void 0:y.ratePlan)||void 0===T?void 0:T.id)||(null===(E=null===(A=null==Me?void 0:Me.ratePlanInfo)||void 0===A?void 0:A[null==i?void 0:i.tabKey])||void 0===E?void 0:E.name)),l.createElement("div",{className:n.rpPrice},a(Number.isFinite(Number(null!==(R=null===(O=null===(j=null==Le?void 0:Le[null==i?void 0:i.tabKey])||void 0===j?void 0:j.ratePlan)||void 0===O?void 0:O.listPrice)&&void 0!==R?R:null===(P=null===(N=null==Me?void 0:Me.ratePlanInfo)||void 0===N?void 0:N[null==i?void 0:i.tabKey])||void 0===P?void 0:P.monthlyPrice))?Number(null!==(S=null===(C=null===(k=null==Le?void 0:Le[null==i?void 0:i.tabKey])||void 0===k?void 0:k.ratePlan)||void 0===C?void 0:C.listPrice)&&void 0!==S?S:null===(x=null===(I=null==Me?void 0:Me.ratePlanInfo)||void 0===I?void 0:I[null==i?void 0:i.tabKey])||void 0===x?void 0:x.monthlyPrice):0),null==q?void 0:q.monthlyText)),l.createElement("hr",{className:n.itemDivider}))}))),l.createElement("div",{className:`${n.checkoutBtn}`},(null===(se=null==q?void 0:q.proceedtocheckoutButton)||void 0===se?void 0:se.length)>0&&l.createElement(u,{content:q.proceedtocheckoutButton[0],eventAction:"",onClick:e=>Qe(e),wafIdentifier:We,disabled:Ue}))))),he&&l.createElement(m,{modalState:he,handler:()=>{Xe()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Ae||"desktop"===Ae||"tablet"===Ae?"460px":"",noCloseButton:!1,backDrop:!0}," ",l.createElement("div",{className:`${n.accessoryErrorUpdate}`},l.createElement(p,{content:null===(ae=null===(ce=null==q?void 0:q.errorModal)||void 0===ce?void 0:ce[0])||void 0===ae?void 0:ae.heading}),l.createElement(p,{content:null===(ue=null===(re=null==q?void 0:q.errorModal)||void 0===re?void 0:re[0])||void 0===ue?void 0:ue.description}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Xe()}},null==q?void 0:q.cancelButtonLinkText),l.createElement(u,{content:null===(me=null==q?void 0:q.retryButton)||void 0===me?void 0:me[0],onClick:e=>Qe(e),metadata:void 0,wafIdentifier:We})))),Ee&&(null==ke?void 0:ke.selectedTab)===F&&l.createElement(m,{modalState:Ee,handler:()=>{Ye()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Ae||"desktop"===Ae||"tablet"===Ae?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement("div",{className:`${n.accessoryErrorUpdate}`},l.createElement(p,{content:JSON.parse(s(JSON.stringify(null===(be=null===(pe=null==q?void 0:q.cartLimitModal)||void 0===pe?void 0:pe[0])||void 0===be?void 0:be.heading),[null==Ve?void 0:Ve[ke.selectedTab].toString()]))}),l.createElement(p,{content:JSON.parse(s(JSON.stringify(null===(ye=null===(ge=null==q?void 0:q.cartLimitModal)||void 0===ge?void 0:ge[0])||void 0===ye?void 0:ye.description),[null==Ve?void 0:Ve[ke.selectedTab].toString()]))}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Ye()}},null==q?void 0:q.cartLimitBtnText)))),Ee&&((null==ke?void 0:ke.selectedTab)===L||(null==ke?void 0:ke.selectedTab)===M)&&(()=>{var e,i,o,d,t,v,s;const c=(()=>{var e,l;return(null==ke?void 0:ke.selectedTab)===L?null===(e=null==q?void 0:q.watchesSelectionPopup)||void 0===e?void 0:e[0]:null===(l=null==q?void 0:q.tabletsSelectionPopup)||void 0===l?void 0:l[0]})();return $(h,T,{component:y,message_title:g,message_description:null===(v=null===(t=null===(d=null===(o=null===(i=null===(e=null==c?void 0:c.description)||void 0===e?void 0:e.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===d?void 0:d[0])||void 0===t?void 0:t.text)||void 0===v?void 0:v.slice(0,100),message_type:b}),l.createElement(m,{modalState:Ee,handler:()=>(e=>{var l,i,o,n,d,t;(null==e?void 0:e.description)&&$(h,C,{component:y,message_title:g,message_description:null===(t=null===(d=null===(n=null===(o=null===(i=null===(l=null==e?void 0:e.description)||void 0===l?void 0:l.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===n?void 0:n[0])||void 0===d?void 0:d.text)||void 0===t?void 0:t.slice(0,100),message_type:b}),Ye()})(c),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Ae||"desktop"===Ae||"tablet"===Ae?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==c?void 0:c.heading)&&l.createElement("div",{className:n.modalHeading},l.createElement(p,{content:c.heading})),(null==c?void 0:c.description)&&l.createElement("div",{className:n.modalDescription},l.createElement(p,{content:c.description})),l.createElement("div",{className:n.modalButtons},(null==c?void 0:c.link)&&l.createElement("a",{className:n.factSheetLink,onClick:()=>($(h,I,{component:P,click_text:S}),void Ye())},c.linkText),(null===(s=null==c?void 0:c.button)||void 0===s?void 0:s.length)>0&&l.createElement(u,{content:c.button[0],onClick:()=>(()=>{var e,l,i,o,n,d,t,v,s,c;if($(h,I,{component:P,click_text:x}),!Oe)return void Ye();const a=Object.keys((null==we?void 0:we[null==ke?void 0:ke.selectedTab])||{});if(a.length>0){const n=a[0],d=null===(e=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===e?void 0:e[n],t=null===(i=null===(l=null==Object?void 0:Object.keys(null==we?void 0:we[null==ke?void 0:ke.selectedTab]))||void 0===l?void 0:l.filter(e=>e!==n))||void 0===i?void 0:i.reduce((e,l)=>{var i;return Object.assign(Object.assign({},e),{[l]:null===(i=null==we?void 0:we[null==ke?void 0:ke.selectedTab])||void 0===i?void 0:i[l]})},{});Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:Object.assign(Object.assign({},t),{[null===(o=null==Oe?void 0:Oe.recomApiResponse)||void 0===o?void 0:o.id]:Oe})})),d&&Ge(h,f,d,0)}else{const e=(null==$e?void 0:$e[null==ke?void 0:ke.selectedTab])||[];for(const l of e)if((null===(n=null==Me?void 0:Me[null==ke?void 0:ke.selectedTab])||void 0===n?void 0:n[null===(d=null==l?void 0:l.recomApiResponse)||void 0===d?void 0:d.id])&&!(null===(t=null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||void 0===t?void 0:t[null===(v=null==l?void 0:l.recomApiResponse)||void 0===v?void 0:v.id])){Se.setRemoveSelectedCartAccessories(Object.assign(Object.assign({},Be),{[null==ke?void 0:ke.selectedTab]:Object.assign(Object.assign({},(null==Be?void 0:Be[null==ke?void 0:ke.selectedTab])||{}),{[null===(s=null==l?void 0:l.recomApiResponse)||void 0===s?void 0:s.id]:l})})),Ge(h,f,l,0);break}Se.setSelectedAccessories(Object.assign(Object.assign({},we),{[null==ke?void 0:ke.selectedTab]:{[null===(c=null==Oe?void 0:Oe.recomApiResponse)||void 0===c?void 0:c.id]:Oe}}))}Ge(A,A,Oe,Ne),Ye()})(),metadata:void 0,wafIdentifier:""}))))})())};export{q as default};
2
2
  //# sourceMappingURL=AccessoryCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\r\nimport React, {JSX, useEffect, useState } from 'react';\r\nimport Styles from './AccessoryCard.module.scss';\r\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\r\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\r\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\r\nimport Row from '../../ResponsiveRow/row';\r\n// import GenericImage from '../../GenericImage/GenericImage';\r\nimport { getCompressedImage } from '../../../utils/utils';\r\nimport { getCookie } from 'cookies-next';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\r\nimport AccessoryModal from './AccessoryModal';\r\nimport RichText from '../../richtext';\r\nimport { viewport } from '../../../utils/utils';\r\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\r\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE } 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":"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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, FLEX_UPGRADE } 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 isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { selectedAccessories, multiItemAccessoriessList, removeSelectedCartAccessories, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData , previousTab, loading, showMiniCart } = store;\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // 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 {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {(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","isSubscriptionFlow","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","ratePlanFlow","_b","_a","MOBILERATEPLAN","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_f","AssetPathPropConfig","getInstance","getAssetPath","handleClickAddRemoveCartBtn","e","item","index","preventDefault","recomApiResponse","id","setRemoveSelectedCartAccessories","Object","assign","_g","updateAccessoryList","_j","_h","keys","filter","val","reduce","obj","key","setSelectedAccessories","trackCTAButton","REMOVEFROMCART","_k","_l","_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","_24","includedOptions","_25","FLEX_UPGRADE","freeFUText","flexUpgradeText","_27","_26","_29","_28","_30","_33","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_34","_35","_36","_37","_38","_39","FalconButtonV2","_40","onClick","wafIdentifier","_41","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,3 +1,3 @@
1
1
  import './AccessoryCard.css';
2
- var e={card:"card_Qk2yf",mainPage:"mainPage_nLgJM",extraSimHeading:"extraSimHeading_iOq-C",cartLimitTxt:"cartLimitTxt_Un2ej",strikedtotalMonthlyPrice:"strikedtotalMonthlyPrice_XoQsu",strikedMonthlyPrice:"strikedMonthlyPrice_T2OaO",miaFooter:"miaFooter_9zWMl",miniSummary:"miniSummary_LRvgL",rpPrice:"rpPrice_5I0bo",cartPrice:"cartPrice_VPeCu",itemLine:"itemLine_ysNhG",itemDivider:"itemDivider_Ne0w1",miniCartDivider:"miniCartDivider_oMv-o",selectedCard:"selectedCard_fFrRV",heading:"heading_-FSiS",optionalText:"optionalText_bs306",accImage:"accImage_8S-3p",esimBadge:"esimBadge_qdSkq",esimIcon:"esimIcon_ZczPE",mainPriceContainer:"mainPriceContainer_-fAvT",priceContainer:"priceContainer_Uz0SN",price:"price_VYiIE",totalPrice:"totalPrice_aqO1Q",priceDescription:"priceDescription_bJkMR",oneTimePrice:"oneTimePrice_f3f8Q",monthlyText:"monthlyText_8RwlS",monthlyStrikethroughText:"monthlyStrikethroughText_7E9uK",cartBtn:"cartBtn_O3b3H",checkoutBtn:"checkoutBtn_3i9j6",titleRow:"titleRow_eKeAr",titleLabel:"titleLabel_0kEw-",titleIcons:"titleIcons_m2LrM",cartToggle:"cartToggle_5IgiB",oneTime:"oneTime_sDC1m",itemRow:"itemRow_gQ3sj",itemName:"itemName_C-CX1",cartDelete:"cartDelete_MoeMR",rpName:"rpName_CpQ7v",accessoryErrorUpdate:"accessoryErrorUpdate_smCG3",accessoryErrorButtons:"accessoryErrorButtons_GYhk4",cancelButton:"cancelButton_yUZUg",modalHeading:"modalHeading_2vFi4",modalDescription:"modalDescription_BG-oo",modalButtons:"modalButtons_6FOmL",factSheetLink:"factSheetLink_SdQHR"};export{e as default};
2
+ var e={card:"card_Qk2yf",mainPage:"mainPage_nLgJM",extraSimHeading:"extraSimHeading_iOq-C",cartLimitTxt:"cartLimitTxt_Un2ej",strikedtotalMonthlyPrice:"strikedtotalMonthlyPrice_XoQsu",strikedMonthlyPrice:"strikedMonthlyPrice_T2OaO",miaFooter:"miaFooter_9zWMl",miniSummary:"miniSummary_LRvgL",rpPrice:"rpPrice_5I0bo",cartPrice:"cartPrice_VPeCu",itemLine:"itemLine_ysNhG",itemDivider:"itemDivider_Ne0w1",miniCartDivider:"miniCartDivider_oMv-o",selectedCard:"selectedCard_fFrRV",heading:"heading_-FSiS",optionalText:"optionalText_bs306",accImage:"accImage_8S-3p",esimBadge:"esimBadge_qdSkq",esimIcon:"esimIcon_ZczPE",mainPriceContainer:"mainPriceContainer_-fAvT",priceContainer:"priceContainer_Uz0SN",flexUpgradeText:"flexUpgradeText_p-YHt",price:"price_VYiIE",totalPrice:"totalPrice_aqO1Q",priceDescription:"priceDescription_bJkMR",oneTimePrice:"oneTimePrice_f3f8Q",monthlyText:"monthlyText_8RwlS",monthlyStrikethroughText:"monthlyStrikethroughText_7E9uK",cartBtn:"cartBtn_O3b3H",checkoutBtn:"checkoutBtn_3i9j6",titleRow:"titleRow_eKeAr",titleLabel:"titleLabel_0kEw-",titleIcons:"titleIcons_m2LrM",cartToggle:"cartToggle_5IgiB",oneTime:"oneTime_sDC1m",itemRow:"itemRow_gQ3sj",itemName:"itemName_C-CX1",cartDelete:"cartDelete_MoeMR",rpName:"rpName_CpQ7v",accessoryErrorUpdate:"accessoryErrorUpdate_smCG3",accessoryErrorButtons:"accessoryErrorButtons_GYhk4",cancelButton:"cancelButton_yUZUg",modalHeading:"modalHeading_2vFi4",modalDescription:"modalDescription_BG-oo",modalButtons:"modalButtons_6FOmL",factSheetLink:"factSheetLink_SdQHR"};export{e as default};
3
3
  //# sourceMappingURL=AccessoryCard.module.scss.js.map
@@ -1,2 +1,2 @@
1
- import e,{useState as l,useRef as o,useEffect as i}from"react";import n from"../ProgressionBar/progressionBar.js";import t from"./MultiItemAccessoriesPageStyle.module.scss.js";import d from"../../richtext.js";import v from"../Accessory-card/AccessoryCard.js";import a from"../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js";import r from"../PaymentTypeTabs/PaymentTypeTabs.js";import s from"../../../services/MultiItemAccessories/storyBlokService.js";import{getCookie as c}from"cookies-next";import{MOBILERATEPLAN as u,INTERNETFLOW as m,TV as p,ONE_ECOMMERCE_HARDWARE_SUMMARY as y,CONTRACT as g,ACCESSORY as b,WATCHES as f,MOBILEACCESSORIES as h,BASE as T,MONTHLY as A,TABLETS as C}from"../../../utils/constants.js";import k from"../../ResponsiveRow/row.js";import{trackViewItem as E,setMmcItemTracker as I,trackNewDatalayerEvent as w}from"../../../utils/AnalyticsUtils.js";import{VIEWEACHITEM as j,LEARNMORE as P,LINK as S,CTATEXTCLICK as x,GAEVENT as N,INFO as B,POPUP as R,OPENPOPUP as L,CONTENT as _,TABCLICK as O,CONTINUE as D,CTABUTTONCLICK as M}from"../../../Analytics/AnalyticsConstants.js";import{useMultiAccessoryContext as U}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as V}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import F from"../multiItemAccessoryStore/MultiAccessoryProvider.js";import{useMultiAccessoryUpdateCartActions as $}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import G from"../../Dotloader/Dotloader.js";import{viewport as H,replacePlaceholder as W,getSBAssetUrl as q}from"../../../utils/utils.js";import J from"../Accessory-card/AccessoryModal.js";import z from"../../FalconButtonV2/FalconButtonV2.js";import{AssetPathPropConfig as K}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";import Q from"../AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js";const X=({content:F,metadata:X})=>{var Y,Z,ee,le,oe,ie,ne,te,de,ve,ae,re,se,ce,ue;const me=null==X?void 0:X.lang,[pe,ye]=l(!1),[ge,be]=l(!1),[fe,he]=l(null),Te=c("one-commerce-cartId"),[Ae,Ce]=l(""),ke=o({}),{store:Ee,dispatch:Ie}=U(),we=V(Ie),je=$(),{recommendedAccessories:Pe,isFetchingRecommendedAccessories:Se,deviceSessionValues:xe,multiItemAccessoriessList:Ne,selectedAccessories:Be,removeSelectedCartAccessories:Re,loading:Le,isLoadingCartData:_e,cartData:Oe,previousTab:De}=Ee,Me=null===(Y=null==Pe?void 0:Pe[null==Ee?void 0:Ee.selectedTab])||void 0===Y?void 0:Y.hardware,Ue=null===(Z=null==K?void 0:K.getInstance())||void 0===Z?void 0:Z.getAssetPath(),Ve=!!(null===(le=null===(ee=[u,m,p])||void 0===ee?void 0:ee.includes)||void 0===le?void 0:le.call(ee,null===(oe=null==Me?void 0:Me[0])||void 0===oe?void 0:oe.recommendationProcessingType))||!(null===(ie=ke.current)||void 0===ie?void 0:ie.hardwareVariant),Fe=null==F?void 0:F.recommendationType,$e={};i(()=>{var e,l,o,i;be(!0);const n=null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem(y),t=n?JSON.parse(n):{};ke.current=t;const d=Object.assign(Object.assign({},t),{cartId:Te});we.setDeviceSessionValues(d),null==we||we.setSelectedTab(null==F?void 0:F.defaultTabSelection),Ce(null===(i=null===(o=null===(l=null===(e=null==t?void 0:t.hardwareVariant)||void 0===e?void 0:e.note)||void 0===l?void 0:l.filter(e=>"hardwareGroupName"===e.author))||void 0===o?void 0:o[0])||void 0===i?void 0:i.text),ye(!0),Te&&Ge(void 0,t)},[]);const Ge=(e,l)=>{var o,i,n,t;const d=null!=l?l:ke.current;if(e&&(we.setPreviousTab(null==Ee?void 0:Ee.selectedTab),we.setSelectedTab(e)),e){if((null===(i=(null===(o=null==Pe?void 0:Pe[e])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.length)<=0&&(ye(!0),we.getRecommendedAccessory({cartId:Te,recommendationsType:e})),Le)return;if((0!==Object.keys((null==Be?void 0:Be[null==Ee?void 0:Ee.selectedTab])||{}).length||0!==Object.keys((null==Re?void 0:Re[null==Ee?void 0:Ee.selectedTab])||{}).length)&&!(null==F?void 0:F.continueButtonCartCreation)){const e={id:Te,redirectUrl:Ve?null===(n=null==F?void 0:F.winCheckoutUrl)||void 0===n?void 0:n.cached_url:null===(t=null==F?void 0:F.multiItemCheckoutUrl)||void 0===t?void 0:t.url,previousTab:null==Ee?void 0:Ee.selectedTab};je.multiItemAccessorycreateCartRequest(e)}}else je.fetchCartData(Te).then(l=>{var o,i,n,t,v,a,r,s;const c=null!==(o=null==l?void 0:l.cartRecommendationsType)&&void 0!==o?o:[null==F?void 0:F.defaultTabSelection],u=null===(i=null==d?void 0:d.hardwareVariant)||void 0===i?void 0:i.selectedContractType,m=u===g&&("DEVICE_RENEWAL"!==(null===(v=null===(t=null===(n=null==l?void 0:l.cartItem)||void 0===n?void 0:n[0])||void 0===t?void 0:t.processType)||void 0===v?void 0:v.id)&&"DEVICE_RP_RENEWAL"!==(null===(s=null===(r=null===(a=null==l?void 0:l.cartItem)||void 0===a?void 0:a[0])||void 0===r?void 0:r.processType)||void 0===s?void 0:s.id)||(null==F?void 0:F.enableExistingSubscription))?null==Fe?void 0:Fe.filter(e=>c.includes(e)):null==Fe?void 0:Fe.filter(e=>e===b&&c.includes(e));null==m||m.forEach(e=>{$e[e]=[]}),we.setRecommendedAccessories($e);const p=u===g?(null==m?void 0:m.includes(null==F?void 0:F.defaultTabSelection))?null==F?void 0:F.defaultTabSelection:m[0]:b;null==we||we.setSelectedTab(p),we.getRecommendedAccessory({cartId:Te,recommendationsType:e||p})}).catch(()=>{var e,l,o,i,n;const t=!!(null===(l=null===(e=[u,m,p])||void 0===e?void 0:e.includes)||void 0===l?void 0:l.call(e,null===(o=null==Me?void 0:Me[0])||void 0===o?void 0:o.recommendationProcessingType))||!(null==d?void 0:d.hardwareVariant);"undefined"!=typeof window&&(window.location.href=t?null===(i=null==F?void 0:F.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(n=null==F?void 0:F.multiItemCheckoutUrl)||void 0===n?void 0:n.url)})};i(()=>{var e,l,o,i,n,t,d,v,a,r,c,u;if((null===(l=null===(e=null==Pe?void 0:Pe[null==Pe?void 0:Pe.tabkey])||void 0===e?void 0:e.hardware)||void 0===l?void 0:l.length)>0)if((null==Pe?void 0:Pe.tabkey)===b)null==s||s.getStoryBlokData(me,null===(i=null===(o=null==Pe?void 0:Pe[null==Pe?void 0:Pe.tabkey])||void 0===o?void 0:o.hardware)||void 0===i?void 0:i.map(e=>null==e?void 0:e.baseProducts),null==F?void 0:F.parentSlugUrl).then(e=>{He(e,null==Pe?void 0:Pe.tabkey)});else{const e=(null==Pe?void 0:Pe.tabkey)===f?null===(d=null===(t=null===(n=null==F?void 0:F.watchMasterList)||void 0===n?void 0:n[0])||void 0===t?void 0:t.reference)||void 0===d?void 0:d.content:null===(r=null===(a=null===(v=null==F?void 0:F.tabletMasterList)||void 0===v?void 0:v[0])||void 0===a?void 0:a.reference)||void 0===r?void 0:r.content;He(e,null==Pe?void 0:Pe.tabkey)}else Se&&Te||_e||"undefined"==typeof window||(window.location.href=Ve?null===(c=null==F?void 0:F.winCheckoutUrl)||void 0===c?void 0:c.cached_url:null===(u=null==F?void 0:F.multiItemCheckoutUrl)||void 0===u?void 0:u.url)},[Pe]);const He=(e,l)=>{var o,i,n,t,d,v,a,r;const s=null===(n=null===(i=(null===(o=null==Pe?void 0:Pe[l])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.filter(e=>{var l,o;return(null===(l=null==xe?void 0:xe.hardwareVariant)||void 0===l?void 0:l.selectedContractType)===g?(null===(o=null==e?void 0:e.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)>0:e}))||void 0===n?void 0:n.reduce((o,i,n)=>{var t,d,v,a,r,s,c,u,m,p,y,g,f,T,A,C,k,I,w,P,S,x,N,B,R,L,_,O,D,M,U,V;const F={image:"",type:h};let $;if(l===b){$=null===(a=null===(v=null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||void 0===v?void 0:v.filter(e=>{var l;return(null==i?void 0:i.baseProducts)===(null===(l=null==e?void 0:e.content)||void 0===l?void 0:l.productId)}))||void 0===a?void 0:a[0];const l=null===(u=null===(c=null===(s=null===(r=null==$?void 0:$.content)||void 0===r?void 0:r.body)||void 0===s?void 0:s[0])||void 0===c?void 0:c.deviceList)||void 0===u?void 0:u.find(e=>(null==e?void 0:e.devicePlanId)===(null==i?void 0:i.id));F.image=(null===(y=null===(p=null===(m=null==l?void 0:l.promoImageGallery)||void 0===m?void 0:m[0])||void 0===p?void 0:p.slideImages)||void 0===y?void 0:y[0])?null===(C=null===(A=null===(T=null===(f=null===(g=null==l?void 0:l.promoImageGallery)||void 0===g?void 0:g[0])||void 0===f?void 0:f.slideImages)||void 0===T?void 0:T[0])||void 0===A?void 0:A.image)||void 0===C?void 0:C.filename:null===(S=null===(P=null===(w=null===(I=null===(k=null==l?void 0:l.imageGallery)||void 0===k?void 0:k[0])||void 0===I?void 0:I.slideImages)||void 0===w?void 0:w[0])||void 0===P?void 0:P.image)||void 0===S?void 0:S.filename,F.type=null!==(N=null===(x=null==i?void 0:i.content)||void 0===x?void 0:x.type)&&void 0!==N?N:h}else $=null===(R=null===(B=null==e?void 0:e.body)||void 0===B?void 0:B.filter(e=>(null==i?void 0:i.baseProducts)===(null==e?void 0:e.m_p_id)))||void 0===R?void 0:R[0],F.image=null===(_=null===(L=null==$?void 0:$.images)||void 0===L?void 0:L[0])||void 0===_?void 0:_.filename,F.type=null!==(D=null===(O=null==i?void 0:i.content)||void 0===O?void 0:O.type)&&void 0!==D?D:h;return $&&(o.push({sbStoryItem:$,imageData:F,recomApiResponse:i}),E(j,j,{displayName:null==i?void 0:i.name,productId:null==i?void 0:i.id,priceValue:null===(M=null==i?void 0:i.oneTimePrice)||void 0===M?void 0:M.base,index:n,variant:null===(U=null==i?void 0:i.variantCategory)||void 0===U?void 0:U.color,storage:null===(V=null==i?void 0:i.variantCategory)||void 0===V?void 0:V.storage})),o},[]);(null==s?void 0:s.length)>0&&(null===(v=(null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||(null==e?void 0:e.body))||void 0===v?void 0:v.length)>0?we.setMultiItemAccessoriessList(Object.assign(Object.assign({},Ne),{[l]:s})):window.location.href=Ve?null===(a=null==F?void 0:F.winCheckoutUrl)||void 0===a?void 0:a.cached_url:null===(r=null==F?void 0:F.multiItemCheckoutUrl)||void 0===r?void 0:r.url,ye(!1),Je(s)};i(()=>{var e;null===(e=(null==Ne?void 0:Ne[null==Ee?void 0:Ee.selectedTab])||[])||void 0===e||e.filter(e=>{var l,o,i;(null===(o=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.paymentType)||void 0===o?void 0:o.toLowerCase())&&we.setSelectedPaymentType((null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.paymentType.toLowerCase())===A?g:T)})},[Ne]);const We=H(),qe="large-desktop"===We||"desktop"===We?3:"tablet"===We?2:"mobile"===We?1:0,Je=e=>{const l=null==e?void 0:e.map((e,l)=>{var o,i,n,t,d,v,a,r;return{displayName:null===(o=null==e?void 0:e.recomApiResponse)||void 0===o?void 0:o.name,productId:null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id,priceValue:null===(t=null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.oneTimePrice)||void 0===t?void 0:t.base,index:l,variant:null===(v=null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.variantCategory)||void 0===v?void 0:v.color,storage:null===(r=null===(a=null==e?void 0:e.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.storage}});I(l)};return e.createElement(e.Fragment,null,Le&&((null==Ee?void 0:Ee.selectedTab)===De?e.createElement(G,null):e.createElement(Q,{content:F})),ge&&F&&((null===(ne=null==Ne?void 0:Ne[null==Ee?void 0:Ee.selectedTab])||void 0===ne?void 0:ne.length)>0||pe)&&e.createElement("div",{className:`${t.mainPage}`},(null===(te=null==F?void 0:F.progressionBar)||void 0===te?void 0:te[0])&&e.createElement(n,{content:null===(de=null==F?void 0:F.progressionBar)||void 0===de?void 0:de[0]}),e.createElement(k,null,e.createElement("div",null,e.createElement("div",{className:`${t.title}`},e.createElement(d,{content:null==F?void 0:F.recommendationLabel})),Object.keys(Pe||{}).filter(e=>null==Fe?void 0:Fe.includes(e)).length<=1&&!Ve&&e.createElement("div",{className:`${t.deviceText}`},null==F?void 0:F.compatibleText,e.createElement("span",{className:t.deviceName},Ae)))),Object.keys(Pe||{}).filter(e=>null==Fe?void 0:Fe.includes(e)).length>1&&e.createElement("div",{className:t.tabsContainer},null===(ae=null===(ve=(null==F?void 0:F.recommendationType)||[])||void 0===ve?void 0:ve.filter(e=>null==Pe?void 0:Pe[e]))||void 0===ae?void 0:ae.map(l=>{var o;const i=(null===(o=Object.keys((null==Oe?void 0:Oe[l])||{}))||void 0===o?void 0:o.length)||0,n=Object.keys((null==Be?void 0:Be[l])||{}).length||0,d=Object.keys((null==Re?void 0:Re[l])||{}).length||0,v=Math.max(i+n-d,0),a=l===b?null==F?void 0:F.accessoryTitle:l===f?null==F?void 0:F.watchesTitle:l===C?null==F?void 0:F.tabletsTitle:l;return e.createElement("button",{key:l,className:`${t.tabButton} ${Ee.selectedTab===l?t.activeTab:""}`,onClick:()=>{Ee.selectedTab!==l&&((e,l)=>{let o=l;e===b&&(null==F?void 0:F.accessoryAnalyticsTitle)?o=F.accessoryAnalyticsTitle:e===C&&(null==F?void 0:F.tabletsAnalyticsTitle)?o=F.tabletsAnalyticsTitle:e===f&&(null==F?void 0:F.watchesAnalyticsTitle)&&(o=F.watchesAnalyticsTitle),w(N,O,{component:_,click_text:o}),Ge(e)})(l,a)},disabled:!(null==Pe?void 0:Pe[l])},a,v>0&&e.createElement("span",{className:t.tabCount},v))})),(Ee.selectedTab===f&&(null==F?void 0:F.watchesInfoBannerText)||Ee.selectedTab===C&&(null==F?void 0:F.tabletsInfoBannerText))&&e.createElement("div",{className:t.infoBanner},e.createElement("div",{className:t.infoBannerContent},e.createElement("img",{className:t.infoIcon,src:null===(re=null==F?void 0:F.esimIcon)||void 0===re?void 0:re.filename}),e.createElement("span",null,e.createElement("span",null,W(Ee.selectedTab===f?null==F?void 0:F.watchesInfoBannerText:null==F?void 0:F.tabletsInfoBannerText,[null===(ce=null===(se=null==Pe?void 0:Pe[null==Ee?void 0:Ee.selectedTab])||void 0===se?void 0:se.ratePlan)||void 0===ce?void 0:ce.listPrice.toString()])),e.createElement("span",{className:t.learnMoreText,onClick:()=>{w(N,x,{component:S,click_text:P}),he(Ee.selectedTab)}},null==F?void 0:F.learnMoreText)))),Ve&&e.createElement(r,{content:{paymentHeadingText:null==F?void 0:F.paymentHeadingText,paymentOptions:null==F?void 0:F.paymentOptions}}),pe&&!(null===(ue=null==Ne?void 0:Ne[null==Ee?void 0:Ee.selectedTab])||void 0===ue?void 0:ue.length)?e.createElement(a,{cards:qe}):e.createElement(v,{content:F,tabIndex:1,checkingviewPort:We})),fe&&(()=>{var l,o,i,n,v,a,r,s,c,u,m,p,y,g,b;const h=(()=>{var e,l;return fe===f?null===(e=null==F?void 0:F.watchesPopup)||void 0===e?void 0:e[0]:null===(l=null==F?void 0:F.tabletsPopup)||void 0===l?void 0:l[0]})();return w(N,L,{component:R,message_title:null===(a=null===(v=null===(n=null===(i=null===(o=null===(l=null==h?void 0:h.heading)||void 0===l?void 0:l.content)||void 0===o?void 0:o[0])||void 0===i?void 0:i.content)||void 0===n?void 0:n[0])||void 0===v?void 0:v.text)||void 0===a?void 0:a.slice(0,100),message_description:null===(p=null===(m=null===(u=null===(c=null===(s=null===(r=null==h?void 0:h.description)||void 0===r?void 0:r.content)||void 0===s?void 0:s[0])||void 0===c?void 0:c.content)||void 0===u?void 0:u[0])||void 0===m?void 0:m.text)||void 0===p?void 0:p.slice(0,100),message_type:B}),e.createElement(J,{modalState:!!fe,handler:()=>he(null),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===We||"desktop"===We||"tablet"===We?"624px":"",noCloseButton:!1,backDrop:!0},e.createElement("div",{className:t.watchInfoModal},(null==h?void 0:h.heading)&&e.createElement("div",{className:t.modalHeading},e.createElement(d,{content:h.heading})),(null==h?void 0:h.description)&&e.createElement("div",{className:t.modalDescription},e.createElement(d,{content:h.description})),e.createElement("div",{className:t.modalButtons},(null==h?void 0:h.link)&&e.createElement("a",{href:q(Ue,(null===(y=h.link)||void 0===y?void 0:y.cached_url)||(null===(g=h.link)||void 0===g?void 0:g.url)),target:"_blank",rel:"noopener noreferrer",className:t.factSheetLink},h.linkText),(null===(b=null==h?void 0:h.button)||void 0===b?void 0:b.length)>0&&e.createElement(z,{content:h.button[0],onClick:()=>{w(N,M,{component:S,click_text:D}),he(null)},metadata:void 0,wafIdentifier:""}))))})())},Y=l=>e.createElement(F,null,e.createElement(X,Object.assign({},l)));export{Y as default};
1
+ import e,{useState as l,useRef as o,useEffect as i}from"react";import n from"../ProgressionBar/progressionBar.js";import t from"./MultiItemAccessoriesPageStyle.module.scss.js";import d from"../../richtext.js";import v from"../Accessory-card/AccessoryCard.js";import a from"../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader.js";import r from"../PaymentTypeTabs/PaymentTypeTabs.js";import s from"../../../services/MultiItemAccessories/storyBlokService.js";import{getCookie as u}from"cookies-next";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as c,ACCESSORY as m,CONTRACT as p,MOBILERATEPLAN as y,INTERNETFLOW as g,TV as b,WATCHES as f,MOBILEACCESSORIES as h,BASE as T,MONTHLY as A,TABLETS as E}from"../../../utils/constants.js";import C from"../../ResponsiveRow/row.js";import{trackViewItem as I,setMmcItemTracker as k,trackNewDatalayerEvent as w}from"../../../utils/AnalyticsUtils.js";import{VIEWEACHITEM as j,LEARNMORE as P,LINK as S,CTATEXTCLICK as R,GAEVENT as x,INFO as N,POPUP as B,OPENPOPUP as D,CONTENT as O,TABCLICK as L,CONTINUE as _,CTABUTTONCLICK as M}from"../../../Analytics/AnalyticsConstants.js";import{useMultiAccessoryContext as U}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as V}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import F from"../multiItemAccessoryStore/MultiAccessoryProvider.js";import{useMultiAccessoryUpdateCartActions as H}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import W from"../../Dotloader/Dotloader.js";import{rp_lastcartItemWithParentPOType as $,viewport as G,replacePlaceholder as q,countZero as J,getSBAssetUrl as z}from"../../../utils/utils.js";import K from"../Accessory-card/AccessoryModal.js";import Q from"../../FalconButtonV2/FalconButtonV2.js";import{AssetPathPropConfig as X}from"../../../services/LineTableBasicPropConfig.js";import"../../../services/ProductTeaserPropsConfig.js";import"../../../services/LinecheckBasicPropConfig.js";import"../../../services/LoginBasicPropConfig.js";import"../../../services/DevicePropConfig.js";import"../../../services/StickyBottomSheetConfig.js";import"../../../services/ServiceOptionsPropConfig.js";import Y from"../AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader.js";const Z=({content:F,metadata:Z})=>{var ee,le,oe,ie,ne,te,de,ve,ae,re,se,ue,ce,me;const pe=null==Z?void 0:Z.lang,[ye,ge]=l(!1),[be,fe]=l(!1),[he,Te]=l(null),Ae=u("one-commerce-cartId"),[Ee,Ce]=l(""),[Ie,ke]=l(!1),we=o({}),{store:je,dispatch:Pe}=U(),Se=V(Pe),Re=H(),{recommendedAccessories:xe,isFetchingRecommendedAccessories:Ne,deviceSessionValues:Be,multiItemAccessoriessList:De,selectedAccessories:Oe,removeSelectedCartAccessories:Le,loading:_e,isLoadingCartData:Me,cartData:Ue,previousTab:Ve}=je,Fe=null===(ee=null==xe?void 0:xe[null==je?void 0:je.selectedTab])||void 0===ee?void 0:ee.hardware,He=null===(le=null==X?void 0:X.getInstance())||void 0===le?void 0:le.getAssetPath(),We=null==F?void 0:F.recommendationType,$e={};i(()=>{var e,l,o,i;fe(!0);const n=null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem(c),t=n?JSON.parse(n):{};we.current=t;const d=Object.assign(Object.assign({},t),{cartId:Ae});Se.setDeviceSessionValues(d),null==Se||Se.setSelectedTab(null==F?void 0:F.defaultTabSelection),Ce(null===(i=null===(o=null===(l=null===(e=null==t?void 0:t.hardwareVariant)||void 0===e?void 0:e.note)||void 0===l?void 0:l.filter(e=>"hardwareGroupName"===e.author))||void 0===o?void 0:o[0])||void 0===i?void 0:i.text),ge(!0),Ae&&Ge(void 0,t)},[]);const Ge=(e,l)=>{var o,i,n,t;const d=null!=l?l:we.current;if(e&&(Se.setPreviousTab(null==je?void 0:je.selectedTab),Se.setSelectedTab(e)),e){if((null===(i=(null===(o=null==xe?void 0:xe[e])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.length)<=0&&(ge(!0),Se.getRecommendedAccessory({cartId:Ae,recommendationsType:e})),_e)return;if((0!==Object.keys((null==Oe?void 0:Oe[null==je?void 0:je.selectedTab])||{}).length||0!==Object.keys((null==Le?void 0:Le[null==je?void 0:je.selectedTab])||{}).length)&&!(null==F?void 0:F.continueButtonCartCreation)){const e={id:Ae,redirectUrl:Ie?null===(n=null==F?void 0:F.winCheckoutUrl)||void 0===n?void 0:n.cached_url:null===(t=null==F?void 0:F.multiItemCheckoutUrl)||void 0===t?void 0:t.url,previousTab:null==je?void 0:je.selectedTab};Re.multiItemAccessorycreateCartRequest(e)}}else Re.fetchCartData(Ae).then(l=>{var o,i,n,t,v,a,r,s,u,c,y,g,b,f,h;const T=null!==(o=null==l?void 0:l.cartRecommendationsType)&&void 0!==o?o:[null==F?void 0:F.defaultTabSelection],A=null===(i=null==d?void 0:d.hardwareVariant)||void 0===i?void 0:i.selectedContractType,E=$(null!==(n=null==l?void 0:l.cartItem)&&void 0!==n?n:[],{},{},{}),C=!((null===(t=null==E?void 0:E.MOBILE_ORDER)||void 0===t?void 0:t.HARDWARE)||(null==E?void 0:E.STANDALONE_HARDWARE));ke(C);const I=(Number.parseFloat(null===(u=null===(s=null===(r=null===(a=null===(v=null==E?void 0:E.MOBILE_ORDER)||void 0===v?void 0:v.HARDWARE)||void 0===a?void 0:a.itemTerm)||void 0===r?void 0:r[0])||void 0===s?void 0:s.duration)||void 0===u?void 0:u.amount)||0)>0&&("DEVICE_RENEWAL"!==(null===(g=null===(y=null===(c=null==l?void 0:l.cartItem)||void 0===c?void 0:c[0])||void 0===y?void 0:y.processType)||void 0===g?void 0:g.id)&&"DEVICE_RP_RENEWAL"!==(null===(h=null===(f=null===(b=null==l?void 0:l.cartItem)||void 0===b?void 0:b[0])||void 0===f?void 0:f.processType)||void 0===h?void 0:h.id)||(null==F?void 0:F.enableExistingSubscription))?null==We?void 0:We.filter(e=>T.includes(e)):null==We?void 0:We.filter(e=>e===m&&T.includes(e));null==I||I.forEach(e=>{$e[e]=[]}),Se.setRecommendedAccessories($e);const k=A===p?(null==I?void 0:I.includes(null==F?void 0:F.defaultTabSelection))?null==F?void 0:F.defaultTabSelection:I[0]:m;null==Se||Se.setSelectedTab(k),Se.getRecommendedAccessory({cartId:Ae,recommendationsType:e||k})}).catch(()=>{var e,l,o,i,n;const t=!!(null===(l=null===(e=[y,g,b])||void 0===e?void 0:e.includes)||void 0===l?void 0:l.call(e,null===(o=null==Fe?void 0:Fe[0])||void 0===o?void 0:o.recommendationProcessingType))||!(null==d?void 0:d.hardwareVariant);"undefined"!=typeof window&&(window.location.href=t?null===(i=null==F?void 0:F.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(n=null==F?void 0:F.multiItemCheckoutUrl)||void 0===n?void 0:n.url)})};i(()=>{var e,l,o,i,n,t,d,v,a,r,u,c;if((null===(l=null===(e=null==xe?void 0:xe[null==xe?void 0:xe.tabkey])||void 0===e?void 0:e.hardware)||void 0===l?void 0:l.length)>0)if((null==xe?void 0:xe.tabkey)===m)null==s||s.getStoryBlokData(pe,null===(i=null===(o=null==xe?void 0:xe[null==xe?void 0:xe.tabkey])||void 0===o?void 0:o.hardware)||void 0===i?void 0:i.map(e=>null==e?void 0:e.baseProducts),null==F?void 0:F.parentSlugUrl).then(e=>{qe(e,null==xe?void 0:xe.tabkey)});else{const e=(null==xe?void 0:xe.tabkey)===f?null===(d=null===(t=null===(n=null==F?void 0:F.watchMasterList)||void 0===n?void 0:n[0])||void 0===t?void 0:t.reference)||void 0===d?void 0:d.content:null===(r=null===(a=null===(v=null==F?void 0:F.tabletMasterList)||void 0===v?void 0:v[0])||void 0===a?void 0:a.reference)||void 0===r?void 0:r.content;qe(e,null==xe?void 0:xe.tabkey)}else Ne&&Ae||Me||"undefined"==typeof window||(window.location.href=Ie?null===(u=null==F?void 0:F.winCheckoutUrl)||void 0===u?void 0:u.cached_url:null===(c=null==F?void 0:F.multiItemCheckoutUrl)||void 0===c?void 0:c.url)},[xe]);const qe=(e,l)=>{var o,i,n,t,d,v,a,r;const s=null===(n=null===(i=(null===(o=null==xe?void 0:xe[l])||void 0===o?void 0:o.hardware)||[])||void 0===i?void 0:i.filter(e=>{var l,o;return(null===(l=null==Be?void 0:Be.hardwareVariant)||void 0===l?void 0:l.selectedContractType)===p?(null===(o=null==e?void 0:e.recurringPrice)||void 0===o?void 0:o.monthlyInstallment)>0:e}))||void 0===n?void 0:n.reduce((o,i,n)=>{var t,d,v,a,r,s,u,c,p,y,g,b,f,T,A,E,C,k,w,P,S,R,x,N,B,D,O,L,_,M,U,V;const F={image:"",type:h};let H;if(l===m){H=null===(a=null===(v=null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||void 0===v?void 0:v.filter(e=>{var l;return(null==i?void 0:i.baseProducts)===(null===(l=null==e?void 0:e.content)||void 0===l?void 0:l.productId)}))||void 0===a?void 0:a[0];const l=null===(c=null===(u=null===(s=null===(r=null==H?void 0:H.content)||void 0===r?void 0:r.body)||void 0===s?void 0:s[0])||void 0===u?void 0:u.deviceList)||void 0===c?void 0:c.find(e=>(null==e?void 0:e.devicePlanId)===(null==i?void 0:i.id));F.image=(null===(g=null===(y=null===(p=null==l?void 0:l.promoImageGallery)||void 0===p?void 0:p[0])||void 0===y?void 0:y.slideImages)||void 0===g?void 0:g[0])?null===(E=null===(A=null===(T=null===(f=null===(b=null==l?void 0:l.promoImageGallery)||void 0===b?void 0:b[0])||void 0===f?void 0:f.slideImages)||void 0===T?void 0:T[0])||void 0===A?void 0:A.image)||void 0===E?void 0:E.filename:null===(S=null===(P=null===(w=null===(k=null===(C=null==l?void 0:l.imageGallery)||void 0===C?void 0:C[0])||void 0===k?void 0:k.slideImages)||void 0===w?void 0:w[0])||void 0===P?void 0:P.image)||void 0===S?void 0:S.filename,F.type=null!==(x=null===(R=null==i?void 0:i.content)||void 0===R?void 0:R.type)&&void 0!==x?x:h}else H=null===(B=null===(N=null==e?void 0:e.body)||void 0===N?void 0:N.filter(e=>(null==i?void 0:i.baseProducts)===(null==e?void 0:e.m_p_id)))||void 0===B?void 0:B[0],F.image=null===(O=null===(D=null==H?void 0:H.images)||void 0===D?void 0:D[0])||void 0===O?void 0:O.filename,F.type=null!==(_=null===(L=null==i?void 0:i.content)||void 0===L?void 0:L.type)&&void 0!==_?_:h;return H&&(o.push({sbStoryItem:H,imageData:F,recomApiResponse:i}),I(j,j,{displayName:null==i?void 0:i.name,productId:null==i?void 0:i.id,priceValue:null===(M=null==i?void 0:i.oneTimePrice)||void 0===M?void 0:M.base,index:n,variant:null===(U=null==i?void 0:i.variantCategory)||void 0===U?void 0:U.color,storage:null===(V=null==i?void 0:i.variantCategory)||void 0===V?void 0:V.storage})),o},[]);(null==s?void 0:s.length)>0&&(null===(v=(null===(d=null===(t=null==e?void 0:e.sbStory)||void 0===t?void 0:t.data)||void 0===d?void 0:d.stories)||(null==e?void 0:e.body))||void 0===v?void 0:v.length)>0?Se.setMultiItemAccessoriessList(Object.assign(Object.assign({},De),{[l]:s})):window.location.href=Ie?null===(a=null==F?void 0:F.winCheckoutUrl)||void 0===a?void 0:a.cached_url:null===(r=null==F?void 0:F.multiItemCheckoutUrl)||void 0===r?void 0:r.url,ge(!1),Ke(s)};i(()=>{var e;null===(e=(null==De?void 0:De[null==je?void 0:je.selectedTab])||[])||void 0===e||e.filter(e=>{var l,o,i;(null===(o=null===(l=null==e?void 0:e.recomApiResponse)||void 0===l?void 0:l.paymentType)||void 0===o?void 0:o.toLowerCase())&&Se.setSelectedPaymentType((null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.paymentType.toLowerCase())===A?p:T)})},[De]);const Je=G(),ze="large-desktop"===Je||"desktop"===Je?3:"tablet"===Je?2:"mobile"===Je?1:0,Ke=e=>{const l=null==e?void 0:e.map((e,l)=>{var o,i,n,t,d,v,a,r;return{displayName:null===(o=null==e?void 0:e.recomApiResponse)||void 0===o?void 0:o.name,productId:null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id,priceValue:null===(t=null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.oneTimePrice)||void 0===t?void 0:t.base,index:l,variant:null===(v=null===(d=null==e?void 0:e.recomApiResponse)||void 0===d?void 0:d.variantCategory)||void 0===v?void 0:v.color,storage:null===(r=null===(a=null==e?void 0:e.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.storage}});k(l)};return e.createElement(e.Fragment,null,_e&&((null==je?void 0:je.selectedTab)===Ve?e.createElement(W,null):e.createElement(Y,{content:F})),be&&F&&((null===(oe=null==De?void 0:De[null==je?void 0:je.selectedTab])||void 0===oe?void 0:oe.length)>0||ye)&&e.createElement("div",{className:`${t.mainPage}`},(null===(ie=null==F?void 0:F.progressionBar)||void 0===ie?void 0:ie[0])&&e.createElement(n,{content:null===(ne=null==F?void 0:F.progressionBar)||void 0===ne?void 0:ne[0]}),e.createElement(C,null,e.createElement("div",null,e.createElement("div",{className:`${t.title}`},e.createElement(d,{content:null==F?void 0:F.recommendationLabel})),Object.keys(xe||{}).filter(e=>null==We?void 0:We.includes(e)).length<=1&&!Ie&&e.createElement("div",{className:`${t.deviceText}`},null==F?void 0:F.compatibleText,e.createElement("span",{className:t.deviceName},Ee)))),Object.keys(xe||{}).filter(e=>null==We?void 0:We.includes(e)).length>1&&e.createElement("div",{className:t.tabsContainer},null===(de=null===(te=(null==F?void 0:F.recommendationType)||[])||void 0===te?void 0:te.filter(e=>null==xe?void 0:xe[e]))||void 0===de?void 0:de.map(l=>{var o;const i=(null===(o=Object.keys((null==Ue?void 0:Ue[l])||{}))||void 0===o?void 0:o.length)||0,n=Object.keys((null==Oe?void 0:Oe[l])||{}).length||0,d=Object.keys((null==Le?void 0:Le[l])||{}).length||0,v=Math.max(i+n-d,0),a=l===m?null==F?void 0:F.accessoryTitle:l===f?null==F?void 0:F.watchesTitle:l===E?null==F?void 0:F.tabletsTitle:l;return e.createElement("button",{key:l,className:`${t.tabButton} ${je.selectedTab===l?t.activeTab:""}`,onClick:()=>{je.selectedTab!==l&&((e,l)=>{let o=l;e===m&&(null==F?void 0:F.accessoryAnalyticsTitle)?o=F.accessoryAnalyticsTitle:e===E&&(null==F?void 0:F.tabletsAnalyticsTitle)?o=F.tabletsAnalyticsTitle:e===f&&(null==F?void 0:F.watchesAnalyticsTitle)&&(o=F.watchesAnalyticsTitle),w(x,L,{component:O,click_text:o}),Ge(e)})(l,a)},disabled:!(null==xe?void 0:xe[l])},a,v>0&&e.createElement("span",{className:t.tabCount},v))})),(je.selectedTab===f&&(null==F?void 0:F.watchesInfoBannerText)||je.selectedTab===E&&(null==F?void 0:F.tabletsInfoBannerText))&&e.createElement("div",{className:t.infoBanner},e.createElement("div",{className:t.infoBannerContent},e.createElement("img",{className:t.infoIcon,src:null===(ve=null==F?void 0:F.esimIcon)||void 0===ve?void 0:ve.filename}),e.createElement("span",null,e.createElement("span",null,q(je.selectedTab===f?null==F?void 0:F.watchesInfoBannerText:null==F?void 0:F.tabletsInfoBannerText,[null!==(se=J(null===(re=null===(ae=null==xe?void 0:xe[null==je?void 0:je.selectedTab])||void 0===ae?void 0:ae.ratePlan)||void 0===re?void 0:re.derivedPrice))&&void 0!==se?se:J(null===(ce=null===(ue=null==xe?void 0:xe[null==je?void 0:je.selectedTab])||void 0===ue?void 0:ue.ratePlan)||void 0===ce?void 0:ce.listPrice)])),e.createElement("span",{className:t.learnMoreText,onClick:()=>{w(x,R,{component:S,click_text:P}),Te(je.selectedTab)}},null==F?void 0:F.learnMoreText)))),Ie&&e.createElement(r,{content:{paymentHeadingText:null==F?void 0:F.paymentHeadingText,paymentOptions:null==F?void 0:F.paymentOptions}}),ye&&!(null===(me=null==De?void 0:De[null==je?void 0:je.selectedTab])||void 0===me?void 0:me.length)?e.createElement(a,{cards:ze}):e.createElement(v,{content:F,tabIndex:1,checkingviewPort:Je,isSubscriptionFlow:Ie})),he&&(()=>{var l,o,i,n,v,a,r,s,u,c,m,p,y,g,b;const h=(()=>{var e,l;return he===f?null===(e=null==F?void 0:F.watchesPopup)||void 0===e?void 0:e[0]:null===(l=null==F?void 0:F.tabletsPopup)||void 0===l?void 0:l[0]})();return w(x,D,{component:B,message_title:null===(a=null===(v=null===(n=null===(i=null===(o=null===(l=null==h?void 0:h.heading)||void 0===l?void 0:l.content)||void 0===o?void 0:o[0])||void 0===i?void 0:i.content)||void 0===n?void 0:n[0])||void 0===v?void 0:v.text)||void 0===a?void 0:a.slice(0,100),message_description:null===(p=null===(m=null===(c=null===(u=null===(s=null===(r=null==h?void 0:h.description)||void 0===r?void 0:r.content)||void 0===s?void 0:s[0])||void 0===u?void 0:u.content)||void 0===c?void 0:c[0])||void 0===m?void 0:m.text)||void 0===p?void 0:p.slice(0,100),message_type:N}),e.createElement(K,{modalState:!!he,handler:()=>Te(null),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Je||"desktop"===Je||"tablet"===Je?"624px":"",noCloseButton:!1,backDrop:!0},e.createElement("div",{className:t.watchInfoModal},(null==h?void 0:h.heading)&&e.createElement("div",{className:t.modalHeading},e.createElement(d,{content:h.heading})),(null==h?void 0:h.description)&&e.createElement("div",{className:t.modalDescription},e.createElement(d,{content:h.description})),e.createElement("div",{className:t.modalButtons},(null==h?void 0:h.link)&&e.createElement("a",{href:z(He,(null===(y=h.link)||void 0===y?void 0:y.cached_url)||(null===(g=h.link)||void 0===g?void 0:g.url)),target:"_blank",rel:"noopener noreferrer",className:t.factSheetLink},h.linkText),(null===(b=null==h?void 0:h.button)||void 0===b?void 0:b.length)>0&&e.createElement(Q,{content:h.button[0],onClick:()=>{w(x,M,{component:S,click_text:_}),Te(null)},metadata:void 0,wafIdentifier:""}))))})())},ee=l=>e.createElement(F,null,e.createElement(Z,Object.assign({},l)));export{ee as default};
2
2
  //# sourceMappingURL=MultiItemAccessoriesPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiItemAccessoriesPage.js","sources":["../../../../../src/components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.tsx"],"sourcesContent":["import React , { JSX } from 'react';\r\nimport ProgressionBar from '../ProgressionBar/progressionBar';\r\nimport { ComponentWithContentProps } from '../../types';\r\nimport Styles from './MultiItemAccessoriesPageStyle.module.scss';\r\nimport RichText from '../../richtext';\r\nimport { useEffect, useState, useRef } from 'react';\r\nimport AccessoryCard from '../Accessory-card/AccessoryCard';\r\nimport AccessoryPreviewCardLoader from '../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader';\r\nimport PaymentTypeTabs from '../PaymentTypeTabs/PaymentTypeTabs';\r\nimport storyBlokService from '../../../services/MultiItemAccessories/storyBlokService';\r\nimport { getCookie } from 'cookies-next';\r\nimport { ACCESSORY, BASE, CONTRACT, INTERNETFLOW, MOBILERATEPLAN, ONE_ECOMMERCE_HARDWARE_SUMMARY, TABLETS, TV, WATCHES } from '../../../utils/constants';\r\nimport Row from '../../ResponsiveRow/row';\r\nimport { MOBILEACCESSORIES, MONTHLY } from '../../../utils/constants';\r\nimport { setMmcItemTracker, trackNewDatalayerEvent, trackViewItem } from '../../..//utils/AnalyticsUtils';\r\nimport { CONTENT, CONTINUE, CTABUTTONCLICK, CTATEXTCLICK, GAEVENT, INFO, LEARNMORE, LINK, OPENPOPUP, POPUP, TABCLICK, VIEWEACHITEM } from '../../../Analytics/AnalyticsConstants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport MultiAccessoryProvider from '../multiItemAccessoryStore/MultiAccessoryProvider';\r\nimport { MultiItemAccessoriesSchema } from './MultiItemAccessoriesSchema';\r\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { updateCreatecartItemData } from '../multiItemAccessoryStore/types';\r\nimport Dotloader from '../../Dotloader/Dotloader';\r\nimport { getSBAssetUrl, replacePlaceholder, viewport } from '../../../utils/utils';\r\nimport AccessoryModal from '../Accessory-card/AccessoryModal';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport AccessoryUpdateCartDotloader from '../AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader';\r\n\r\n// Export the schema for backward compatibility\r\n// export type { MultiItemAccessoriesSchema } from './MultiItemAccessoriesSchema';\r\n\r\n// Extended props interface to include setAccessoriesSelected as a separate prop\r\nexport interface MultiItemAccessoriesProps extends ComponentWithContentProps<MultiItemAccessoriesSchema> {\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n}\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst MultiItemAccessories = ({ content, metadata }: MultiItemAccessoriesProps): JSX.Element => {\r\n const activelocaleId: string | undefined = metadata?.lang;\r\n const [deviceLoader, setDeviceLoader] = useState<boolean>(false);\r\n const [isMounted, setIsMounted] = useState<boolean>(false);\r\n const [showInfoModal, setShowInfoModal] = useState<string | null>(null); // 'WATCHES' or 'TABLETS' or null\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [hardwareName, setHardwareName] = useState('');\r\n // useRef: read sessionStorage once client-side — synchronously available everywhere,\r\n // avoids SSR hydration mismatch and async state-update timing issues\r\n const hardwareSessionObjRef = useRef<any>({});\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { recommendedAccessories, isFetchingRecommendedAccessories, deviceSessionValues, multiItemAccessoriessList, selectedAccessories , removeSelectedCartAccessories, loading, isLoadingCartData , cartData, previousTab } = store;\r\n // Todo Get the correct data based on selected tab - for ACCESSORY use direct data, for others use hardwares property\r\n const selectedTabData = recommendedAccessories?.[store?.selectedTab]?.hardware;\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n // Helper function to get modal popup content based on tab type\r\n const getModalContent = () => {\r\n return showInfoModal === WATCHES ? content?.watchesPopup?.[0] : content?.tabletsPopup?.[0];\r\n };\r\n //check for WIN/rateplan flow\r\n const isSubscriptionFlow = [MOBILERATEPLAN, INTERNETFLOW, TV]?.includes?.(selectedTabData?.[0]?.recommendationProcessingType)\r\n ? true\r\n : (hardwareSessionObjRef.current?.hardwareVariant ? false : true);\r\n // based on storyblok config tabs will be shown\r\n const sbRecommendations: any[] = content?.recommendationType;\r\n // Create recommendationType object based on filteredSbRecommendations\r\n const recommendationType: any = {};\r\n \r\n // Single effect: read sessionStorage first, then kick off all init logic\r\nuseEffect(() => {\r\n setIsMounted(true);\r\n // Read sessionStorage client-side only to avoid SSR/hydration mismatch\r\n const sessionStr = sessionStorage?.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\r\n const sessionObj = sessionStr ? JSON.parse(sessionStr) : {};\r\n // Store in ref for synchronous access throughout the component lifecycle\r\n hardwareSessionObjRef.current = sessionObj;\r\n const deviceSessionValue = { ...sessionObj, cartId: cartId };\r\n actions.setDeviceSessionValues(deviceSessionValue);\r\n actions?.setSelectedTab(content?.defaultTabSelection);\r\n setHardwareName(sessionObj?.hardwareVariant?.note?.filter((item: any) => item.author === 'hardwareGroupName')?.[0]?.text);\r\n // Kick off TUA data load after session is ready\r\n setDeviceLoader(true);\r\n if (cartId) {\r\n fetchandSetRecommendations(undefined, sessionObj);\r\n }\r\n}, []);\r\n\r\n const fetchandSetRecommendations = (tabKey?: any, sessionObj?: any) => {\r\n // Use passed sessionObj (on initial load) or fall back to ref (on tab switch)\r\n const currentSessionObj = sessionObj ?? hardwareSessionObjRef.current;\r\n if (tabKey) {\r\n actions.setPreviousTab(store?.selectedTab); // Update previousTab in store before changing tab\r\n actions.setSelectedTab(tabKey);\r\n }\r\n if (tabKey) {\r\n if((recommendedAccessories?.[tabKey]?.hardware || [])?.length <= 0)\r\n {\r\n setDeviceLoader(true);\r\n actions.getRecommendedAccessory({ cartId, recommendationsType: tabKey });\r\n }\r\n if (loading) return; // Prevent new API calls if one is already running\r\n\r\n // updating cart if there is add/remove in the accessories\r\n if (((Object.keys(selectedAccessories?.[store?.selectedTab] || {}).length !== 0) || (Object.keys(removeSelectedCartAccessories?.[store?.selectedTab] || {}).length !== 0)) && !content?.continueButtonCartCreation) {\r\n const updateCreatecartItemData: updateCreatecartItemData = {\r\n id: cartId,\r\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\r\n previousTab: store?.selectedTab\r\n }\r\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\r\n }\r\n } else {\r\n cartActions.fetchCartData(cartId).then((res: any) => {\r\n const cartRecommendationsType = res?.cartRecommendationsType ?? [content?.defaultTabSelection];\r\n const selectedContractType = currentSessionObj?.hardwareVariant?.selectedContractType;\r\n // Filter sbRecommendations based on contract type(only for monthly) and for new subcriptions\r\n const filteredSbRecommendations = (selectedContractType === CONTRACT && ((res?.cartItem?.[0]?.processType?.id === \"DEVICE_RENEWAL\" || res?.cartItem?.[0]?.processType?.id === \"DEVICE_RP_RENEWAL\") ? content?.enableExistingSubscription : true))\r\n ? sbRecommendations?.filter((item: string) => cartRecommendationsType.includes(item))\r\n : sbRecommendations?.filter((item: string) => item === ACCESSORY && cartRecommendationsType.includes(item));\r\n \r\n filteredSbRecommendations?.forEach((type: string) => {\r\n recommendationType[type] = [];\r\n });\r\n // Store recommendationType in state or ref if needed elsewhere\r\n actions.setRecommendedAccessories(recommendationType);\r\n const defaultTab = \r\n selectedContractType === CONTRACT ? filteredSbRecommendations?.includes(content?.defaultTabSelection) \r\n ? content?.defaultTabSelection \r\n : filteredSbRecommendations[0] : ACCESSORY;\r\n actions?.setSelectedTab(defaultTab);\r\n actions.getRecommendedAccessory({ cartId, recommendationsType: tabKey ? tabKey : defaultTab});\r\n }).catch(() => {\r\n // Redirect to summary page if getCart fails, same as recommendations failure\r\n const localIsSubscriptionFlow = [MOBILERATEPLAN, INTERNETFLOW, TV]?.includes?.(selectedTabData?.[0]?.recommendationProcessingType) ? true : (currentSessionObj?.hardwareVariant ? false : true);\r\n if (typeof window !== \"undefined\") {\r\n window.location.href = localIsSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n }\r\n });\r\n }\r\n }\r\n // to map storyblok and api data in store\r\n useEffect(() => {\r\n if ((recommendedAccessories?.[recommendedAccessories?.tabkey]?.hardware?.length) > 0) {\r\n if (recommendedAccessories?.tabkey === ACCESSORY) {\r\n // mapping of accessories according to recommendation api response\r\n storyBlokService?.getStoryBlokData(\r\n activelocaleId,\r\n recommendedAccessories?.[recommendedAccessories?.tabkey]?.hardware?.map((value: any) => value?.baseProducts),\r\n content?.parentSlugUrl\r\n ).then((res: any) => {\r\n sbRecommendationMapping(res,recommendedAccessories?.tabkey);\r\n });\r\n } else {\r\n const masterlst = recommendedAccessories?.tabkey === WATCHES ? content?.watchMasterList?.[0]?.reference?.content :\r\n content?.tabletMasterList?.[0]?.reference?.content\r\n sbRecommendationMapping(masterlst,recommendedAccessories?.tabkey);\r\n }\r\n } else {\r\n // redirect to summary page if no accessories are returned from backend\r\n if ((!isFetchingRecommendedAccessories || !cartId) && !isLoadingCartData && typeof window !== \"undefined\") {\r\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n }\r\n }\r\n }, [recommendedAccessories])\r\n\r\n const sbRecommendationMapping = (response: any,tabKey: any) => {\r\n const accessoryList = (recommendedAccessories?.[tabKey]?.hardware || [])\r\n ?.filter((item: any) =>\r\n deviceSessionValues?.hardwareVariant?.selectedContractType === CONTRACT\r\n ? item?.recurringPrice?.monthlyInstallment > 0\r\n : item\r\n )\r\n ?.reduce((acc: any, value: any, currentIndex: number) => {\r\n const deviceDetails = {\r\n image: '',\r\n type: MOBILEACCESSORIES\r\n };\r\n let accessoryMappingSb;\r\n if(tabKey === ACCESSORY)\r\n {\r\n accessoryMappingSb = \r\n response?.sbStory?.data?.stories?.filter((val: any) => value?.baseProducts === val?.content?.productId)?.[0];\r\n const requestedVariant = accessoryMappingSb?.content?.body?.[0]?.deviceList?.find((deviceVariant: any) => deviceVariant?.devicePlanId === value?.id);\r\n deviceDetails.image = requestedVariant?.promoImageGallery?.[0]?.slideImages?.[0]\r\n ? requestedVariant?.promoImageGallery?.[0]?.slideImages?.[0]?.image?.filename\r\n : requestedVariant?.imageGallery?.[0]?.slideImages?.[0]?.image?.filename;\r\n deviceDetails.type = value?.content?.type ?? MOBILEACCESSORIES;\r\n }\r\n else{\r\n accessoryMappingSb = response?.body?.filter((val: any) => value?.baseProducts === val?.m_p_id)?.[0];\r\n deviceDetails.image = accessoryMappingSb?.images?.[0]?.filename\r\n deviceDetails.type = value?.content?.type ?? MOBILEACCESSORIES;\r\n }\r\n if (accessoryMappingSb) {\r\n acc.push({ sbStoryItem: accessoryMappingSb, imageData: deviceDetails, recomApiResponse: value });\r\n trackViewItem(VIEWEACHITEM, VIEWEACHITEM, {\r\n displayName: value?.name,\r\n productId: value?.id,\r\n priceValue: value?.oneTimePrice?.base,\r\n index: currentIndex,\r\n variant: value?.variantCategory?.color,\r\n storage: value?.variantCategory?.storage,\r\n });\r\n }\r\n return acc;\r\n }, []);\r\n if (accessoryList?.length > 0 && (response?.sbStory?.data?.stories || response?.body)?.length > 0) {\r\n actions.setMultiItemAccessoriessList({...multiItemAccessoriessList, [tabKey]: accessoryList });\r\n } else {\r\n // redirect to summary page if no accessories is eligbile\r\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url\r\n }\r\n setDeviceLoader(false);\r\n trackViewItemList(accessoryList);\r\n }\r\n\r\n //select first payment option as default initially unless provided in recommendation api\r\n useEffect(() => {\r\n (multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => {\r\n if (item?.recomApiResponse?.paymentType?.toLowerCase()) {\r\n actions.setSelectedPaymentType(item?.recomApiResponse?.paymentType.toLowerCase() === MONTHLY ? CONTRACT : BASE);\r\n }\r\n }\r\n )\r\n }, [multiItemAccessoriessList]);\r\n\r\n const checkingviewPort = viewport();\r\n const findView = () => {\r\n //function to return no of cards in a row based on view\r\n if (checkingviewPort === 'large-desktop') {\r\n return 3;\r\n } else if (checkingviewPort === 'desktop') {\r\n return 3;\r\n } else if (checkingviewPort === 'tablet') {\r\n return 2;\r\n } else if (checkingviewPort === 'mobile') {\r\n return 1;\r\n }\r\n return 0;\r\n };\r\n const view: any = findView();\r\n\r\n // this is for structuring the event tracking data\r\n const trackViewItemList = (accessoryList: any) => {\r\n const itemList = accessoryList?.map((item: any, index: number) => {\r\n return ({\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 })\r\n })\r\n setMmcItemTracker(itemList);\r\n }\r\n\r\n // Todod tab title should always be in english\r\n const handleTabClick = (tabKey: string, tabTitle: string) => {\r\n // Determine analytics tab title based on selection and Storyblok content\r\n let analyticsTabTitle = tabTitle;\r\n if (tabKey === ACCESSORY && content?.accessoryAnalyticsTitle) {\r\n analyticsTabTitle = content.accessoryAnalyticsTitle;\r\n } else if (tabKey === TABLETS && content?.tabletsAnalyticsTitle) {\r\n analyticsTabTitle = content.tabletsAnalyticsTitle;\r\n } else if (tabKey === WATCHES && content?.watchesAnalyticsTitle) {\r\n analyticsTabTitle = content.watchesAnalyticsTitle;\r\n } \r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: CONTENT,\r\n click_text: analyticsTabTitle\r\n });\r\n fetchandSetRecommendations(tabKey);\r\n };\r\n\r\n return (\r\n <>\r\n {loading && (store?.selectedTab === previousTab ? <Dotloader /> : <AccessoryUpdateCartDotloader content={content} />)}\r\n {/* Only render the main page container when mounted client-side and data is loading/ready */}\r\n {(isMounted && content && (multiItemAccessoriessList?.[store?.selectedTab]?.length > 0 || deviceLoader)) && (\r\n <div className={`${Styles.mainPage}`}>\r\n {content?.progressionBar?.[0] && (\r\n <ProgressionBar\r\n content={content?.progressionBar?.[0]}\r\n />\r\n )}\r\n <Row>\r\n <div>\r\n <div className={`${Styles.title}`}>\r\n <RichText content={content?.recommendationLabel} />\r\n </div>\r\n {Object.keys(recommendedAccessories || {}).filter((key: string) => sbRecommendations?.includes(key)).length <= 1 && !isSubscriptionFlow && (\r\n <div className={`${Styles.deviceText}`}>\r\n {content?.compatibleText}\r\n <span className={Styles.deviceName}>{hardwareName}</span>\r\n </div>\r\n )}\r\n </div>\r\n </Row>\r\n {/* Tabs based on recommendedAccessories, ordered by recommendationType from Storyblok */}\r\n {(Object.keys(recommendedAccessories || {}).filter((key: string) => sbRecommendations?.includes(key)).length > 1) && (\r\n <div className={Styles.tabsContainer}>\r\n {(content?.recommendationType || [])\r\n ?.filter((tabKey: string) => recommendedAccessories?.[tabKey])\r\n ?.map((tabKey: string) => {\r\n // Calculate count: inCart + selected - removed\r\n const inCartCount =\r\n ((Object.keys(cartData?.[tabKey] || {} ))?.length || 0);\r\n const selectedCount =\r\n Object.keys(selectedAccessories?.[tabKey] || {}).length || 0;\r\n const removedCount =\r\n Object.keys(removeSelectedCartAccessories?.[tabKey] || {}).length || 0;\r\n const totalCount = Math.max(inCartCount + selectedCount - removedCount, 0);\r\n\r\n // Get tab title from Storyblok content\r\n const tabTitle = tabKey === ACCESSORY ? content?.accessoryTitle\r\n : tabKey === WATCHES ? content?.watchesTitle\r\n : tabKey === TABLETS ? content?.tabletsTitle\r\n : tabKey;\r\n return (\r\n <button\r\n key={tabKey}\r\n className={`${Styles.tabButton} ${store.selectedTab === tabKey ? Styles.activeTab : ''}`}\r\n onClick={() => {\r\n if (store.selectedTab !== tabKey) {\r\n handleTabClick(tabKey, tabTitle);\r\n }\r\n }}\r\n disabled={!recommendedAccessories?.[tabKey]}\r\n >\r\n {tabTitle}\r\n {totalCount > 0 && (\r\n <span className={Styles.tabCount}>\r\n {totalCount}\r\n </span>\r\n )}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {/* Information banner below tabs - for Smartwatches and Tablets */}\r\n {((store.selectedTab === WATCHES && content?.watchesInfoBannerText) || \r\n (store.selectedTab === TABLETS && content?.tabletsInfoBannerText)) && (\r\n <div className={Styles.infoBanner}>\r\n <div className={Styles.infoBannerContent}>\r\n <img className={Styles.infoIcon} src={content?.esimIcon?.filename} />\r\n <span>\r\n <span>\r\n {replacePlaceholder(\r\n store.selectedTab === WATCHES ? content?.watchesInfoBannerText : content?.tabletsInfoBannerText,\r\n [recommendedAccessories?.[store?.selectedTab]?.ratePlan?.listPrice.toString()]\r\n )}\r\n </span>\r\n <span className={Styles.learnMoreText} onClick={() => {\r\n trackNewDatalayerEvent(GAEVENT, CTATEXTCLICK, {\r\n component: LINK,\r\n click_text: LEARNMORE\r\n });\r\n setShowInfoModal(store.selectedTab);\r\n }}>\r\n {content?.learnMoreText}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n\r\n {isSubscriptionFlow && (\r\n <PaymentTypeTabs\r\n content={{\r\n paymentHeadingText: content?.paymentHeadingText,\r\n paymentOptions: content?.paymentOptions,\r\n }}\r\n />\r\n )}\r\n {(deviceLoader && !multiItemAccessoriessList?.[store?.selectedTab]?.length) ? (\r\n <AccessoryPreviewCardLoader cards={view} />\r\n ) : (\r\n <AccessoryCard\r\n content={content}\r\n tabIndex={1}\r\n checkingviewPort={checkingviewPort}\r\n />\r\n )}\r\n </div>\r\n )}\r\n \r\n {/* Info Modal for Watches and Tablets */}\r\n {showInfoModal && (() => {\r\n const modalContent = getModalContent();\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: modalContent?.heading?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_description: modalContent?.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={!!showInfoModal}\r\n handler={() => setShowInfoModal(null)}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(checkingviewPort === 'large-desktop' || checkingviewPort === 'desktop' || checkingviewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <div className={Styles.watchInfoModal}>\r\n {modalContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={modalContent.heading} />\r\n </div>\r\n )}\r\n \r\n {modalContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={modalContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {modalContent?.link && (\r\n <a \r\n href={getSBAssetUrl(basicConfigUrl, modalContent.link?.cached_url || modalContent.link?.url)} \r\n target=\"_blank\" \r\n rel=\"noopener noreferrer\"\r\n className={Styles.factSheetLink}\r\n >\r\n {modalContent.linkText}\r\n </a>\r\n )}\r\n \r\n {modalContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={modalContent.button[0]}\r\n onClick={() => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n setShowInfoModal(null)\r\n }}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\n// HOC Pattern: Wrap the component with provider at export\r\nconst MultiItemAccessoriesWithProvider = (props: MultiItemAccessoriesProps) => (\r\n <MultiAccessoryProvider>\r\n <MultiItemAccessories {...props} />\r\n </MultiAccessoryProvider>\r\n);\r\n\r\nexport default MultiItemAccessoriesWithProvider;"],"names":["MultiItemAccessories","content","metadata","activelocaleId","lang","deviceLoader","setDeviceLoader","useState","isMounted","setIsMounted","showInfoModal","setShowInfoModal","cartId","getCookie","hardwareName","setHardwareName","hardwareSessionObjRef","useRef","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","recommendedAccessories","isFetchingRecommendedAccessories","deviceSessionValues","multiItemAccessoriessList","selectedAccessories","removeSelectedCartAccessories","loading","isLoadingCartData","cartData","previousTab","selectedTabData","_a","selectedTab","hardware","basicConfigUrl","_b","AssetPathPropConfig","getInstance","getAssetPath","isSubscriptionFlow","_d","_c","MOBILERATEPLAN","INTERNETFLOW","TV","includes","call","_e","recommendationProcessingType","current","_f","hardwareVariant","sbRecommendations","recommendationType","useEffect","sessionStr","sessionStorage","getItem","ONE_ECOMMERCE_HARDWARE_SUMMARY","sessionObj","JSON","parse","deviceSessionValue","setDeviceSessionValues","setSelectedTab","defaultTabSelection","note","filter","item","author","text","fetchandSetRecommendations","undefined","tabKey","currentSessionObj","setPreviousTab","length","getRecommendedAccessory","recommendationsType","Object","keys","continueButtonCartCreation","updateCreatecartItemData","id","redirectUrl","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","multiItemAccessorycreateCartRequest","fetchCartData","then","res","cartRecommendationsType","selectedContractType","filteredSbRecommendations","CONTRACT","cartItem","processType","_h","_g","enableExistingSubscription","ACCESSORY","forEach","type","setRecommendedAccessories","defaultTab","catch","localIsSubscriptionFlow","window","location","href","tabkey","storyBlokService","getStoryBlokData","map","value","baseProducts","parentSlugUrl","sbRecommendationMapping","masterlst","WATCHES","watchMasterList","reference","_k","tabletMasterList","_j","_l","_m","response","accessoryList","recurringPrice","monthlyInstallment","reduce","acc","currentIndex","deviceDetails","image","MOBILEACCESSORIES","accessoryMappingSb","sbStory","data","stories","val","productId","requestedVariant","body","deviceList","find","deviceVariant","devicePlanId","promoImageGallery","slideImages","_r","_q","_p","_o","filename","_w","_v","_u","_t","imageGallery","_s","_y","_x","_0","_z","m_p_id","_2","_1","images","_4","_3","push","sbStoryItem","imageData","recomApiResponse","trackViewItem","VIEWEACHITEM","displayName","name","priceValue","_5","oneTimePrice","base","index","variant","_6","variantCategory","color","storage","_7","setMultiItemAccessoriessList","assign","trackViewItemList","paymentType","toLowerCase","setSelectedPaymentType","MONTHLY","BASE","checkingviewPort","viewport","view","itemList","setMmcItemTracker","React","createElement","Fragment","Dotloader","AccessoryUpdateCartDotloader","className","Styles","mainPage","progressionBar","ProgressionBar","Row","title","RichText","recommendationLabel","key","deviceText","compatibleText","deviceName","tabsContainer","inCartCount","selectedCount","removedCount","totalCount","Math","max","tabTitle","accessoryTitle","watchesTitle","TABLETS","tabletsTitle","tabButton","activeTab","onClick","analyticsTabTitle","accessoryAnalyticsTitle","tabletsAnalyticsTitle","watchesAnalyticsTitle","trackNewDatalayerEvent","GAEVENT","TABCLICK","component","CONTENT","click_text","handleTabClick","disabled","tabCount","watchesInfoBannerText","tabletsInfoBannerText","infoBanner","infoBannerContent","infoIcon","src","esimIcon","replacePlaceholder","ratePlan","listPrice","toString","learnMoreText","CTATEXTCLICK","LINK","LEARNMORE","PaymentTypeTabs","paymentHeadingText","paymentOptions","AccessoryPreviewCardLoader","cards","AccessoryCard","tabIndex","modalContent","watchesPopup","tabletsPopup","getModalContent","OPENPOPUP","POPUP","message_title","heading","slice","message_description","description","message_type","INFO","AccessoryModal","modalState","handler","showFooter","height","fixedWidth","noCloseButton","backDrop","watchInfoModal","modalHeading","modalDescription","modalButtons","link","getSBAssetUrl","target","rel","factSheetLink","linkText","button","FalconButtonV2","CTABUTTONCLICK","CONTINUE","wafIdentifier","MultiItemAccessoriesWithProvider","props","MultiAccessoryProvider"],"mappings":"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"}
1
+ {"version":3,"file":"MultiItemAccessoriesPage.js","sources":["../../../../../src/components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.tsx"],"sourcesContent":["import React , { JSX } from 'react';\r\nimport ProgressionBar from '../ProgressionBar/progressionBar';\r\nimport { ComponentWithContentProps } from '../../types';\r\nimport Styles from './MultiItemAccessoriesPageStyle.module.scss';\r\nimport RichText from '../../richtext';\r\nimport { useEffect, useState, useRef } from 'react';\r\nimport AccessoryCard from '../Accessory-card/AccessoryCard';\r\nimport AccessoryPreviewCardLoader from '../AccessoryPreviewCardLoader/AccessoryPreviewCardLoader';\r\nimport PaymentTypeTabs from '../PaymentTypeTabs/PaymentTypeTabs';\r\nimport storyBlokService from '../../../services/MultiItemAccessories/storyBlokService';\r\nimport { getCookie } from 'cookies-next';\r\nimport { ACCESSORY, BASE, CONTRACT, HARDWARE, INTERNETFLOW, MOBILERATEPLAN, ONE_ECOMMERCE_HARDWARE_SUMMARY, TABLETS, TV, WATCHES } from '../../../utils/constants';\r\nimport Row from '../../ResponsiveRow/row';\r\nimport { MOBILEACCESSORIES, MONTHLY } from '../../../utils/constants';\r\nimport { setMmcItemTracker, trackNewDatalayerEvent, trackViewItem } from '../../..//utils/AnalyticsUtils';\r\nimport { CONTENT, CONTINUE, CTABUTTONCLICK, CTATEXTCLICK, GAEVENT, INFO, LEARNMORE, LINK, OPENPOPUP, POPUP, TABCLICK, VIEWEACHITEM } from '../../../Analytics/AnalyticsConstants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport MultiAccessoryProvider from '../multiItemAccessoryStore/MultiAccessoryProvider';\r\nimport { MultiItemAccessoriesSchema } from './MultiItemAccessoriesSchema';\r\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { updateCreatecartItemData } from '../multiItemAccessoryStore/types';\r\nimport Dotloader from '../../Dotloader/Dotloader';\r\nimport { countZero, getSBAssetUrl, replacePlaceholder, rp_lastcartItemWithParentPOType, viewport } from '../../../utils/utils';\r\nimport AccessoryModal from '../Accessory-card/AccessoryModal';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport AccessoryUpdateCartDotloader from '../AccessoryUpdateCartDotloader/AccessoryUpdateCartDotloader';\r\n\r\n// Export the schema for backward compatibility\r\n// export type { MultiItemAccessoriesSchema } from './MultiItemAccessoriesSchema';\r\n\r\n// Extended props interface to include setAccessoriesSelected as a separate prop\r\nexport interface MultiItemAccessoriesProps extends ComponentWithContentProps<MultiItemAccessoriesSchema> {\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n}\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst MultiItemAccessories = ({ content, metadata }: MultiItemAccessoriesProps): JSX.Element => {\r\n const activelocaleId: string | undefined = metadata?.lang;\r\n const [deviceLoader, setDeviceLoader] = useState<boolean>(false);\r\n const [isMounted, setIsMounted] = useState<boolean>(false);\r\n const [showInfoModal, setShowInfoModal] = useState<string | null>(null); // 'WATCHES' or 'TABLETS' or null\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [hardwareName, setHardwareName] = useState('');\r\n const [isSubscriptionFlow, setIsSubscriptionFlow] = useState<boolean>(false);\r\n // useRef: read sessionStorage once client-side — synchronously available everywhere,\r\n // avoids SSR hydration mismatch and async state-update timing issues\r\n const hardwareSessionObjRef = useRef<any>({});\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { recommendedAccessories, isFetchingRecommendedAccessories, deviceSessionValues, multiItemAccessoriessList, selectedAccessories , removeSelectedCartAccessories, loading, isLoadingCartData , cartData, previousTab } = store;\r\n // Todo Get the correct data based on selected tab - for ACCESSORY use direct data, for others use hardwares property\r\n const selectedTabData = recommendedAccessories?.[store?.selectedTab]?.hardware;\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n // Helper function to get modal popup content based on tab type\r\n const getModalContent = () => {\r\n return showInfoModal === WATCHES ? content?.watchesPopup?.[0] : content?.tabletsPopup?.[0];\r\n };\r\n \r\n const sbRecommendations: any[] = content?.recommendationType;\r\n // Create recommendationType object based on filteredSbRecommendations\r\n const recommendationType: any = {};\r\n \r\n // Single effect: read sessionStorage first, then kick off all init logic\r\nuseEffect(() => {\r\n setIsMounted(true);\r\n // Read sessionStorage client-side only to avoid SSR/hydration mismatch\r\n const sessionStr = sessionStorage?.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\r\n const sessionObj = sessionStr ? JSON.parse(sessionStr) : {};\r\n // Store in ref for synchronous access throughout the component lifecycle\r\n hardwareSessionObjRef.current = sessionObj;\r\n const deviceSessionValue = { ...sessionObj, cartId: cartId };\r\n actions.setDeviceSessionValues(deviceSessionValue);\r\n actions?.setSelectedTab(content?.defaultTabSelection);\r\n setHardwareName(sessionObj?.hardwareVariant?.note?.filter((item: any) => item.author === 'hardwareGroupName')?.[0]?.text);\r\n // Kick off TUA data load after session is ready\r\n setDeviceLoader(true);\r\n if (cartId) {\r\n fetchandSetRecommendations(undefined, sessionObj);\r\n }\r\n}, []);\r\n\r\n const fetchandSetRecommendations = (tabKey?: any, sessionObj?: any) => {\r\n // Use passed sessionObj (on initial load) or fall back to ref (on tab switch)\r\n const currentSessionObj = sessionObj ?? hardwareSessionObjRef.current;\r\n if (tabKey) {\r\n actions.setPreviousTab(store?.selectedTab); // Update previousTab in store before changing tab\r\n actions.setSelectedTab(tabKey);\r\n }\r\n if (tabKey) {\r\n if((recommendedAccessories?.[tabKey]?.hardware || [])?.length <= 0)\r\n {\r\n setDeviceLoader(true);\r\n actions.getRecommendedAccessory({ cartId, recommendationsType: tabKey });\r\n }\r\n if (loading) return; // Prevent new API calls if one is already running\r\n\r\n // updating cart if there is add/remove in the accessories\r\n if (((Object.keys(selectedAccessories?.[store?.selectedTab] || {}).length !== 0) || (Object.keys(removeSelectedCartAccessories?.[store?.selectedTab] || {}).length !== 0)) && !content?.continueButtonCartCreation) {\r\n const updateCreatecartItemData: updateCreatecartItemData = {\r\n id: cartId,\r\n redirectUrl: isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url,\r\n previousTab: store?.selectedTab\r\n }\r\n cartActions.multiItemAccessorycreateCartRequest(updateCreatecartItemData);\r\n }\r\n } else {\r\n cartActions.fetchCartData(cartId).then((res: any) => {\r\n const cartRecommendationsType = res?.cartRecommendationsType ?? [content?.defaultTabSelection];\r\n const selectedContractType = currentSessionObj?.hardwareVariant?.selectedContractType;\r\n const structuredCartData = rp_lastcartItemWithParentPOType(res?.cartItem ?? [],{},{},{});\r\n const subscriptionFlow = !(structuredCartData?.MOBILE_ORDER?.HARDWARE || structuredCartData?.STANDALONE_HARDWARE);\r\n setIsSubscriptionFlow(subscriptionFlow)\r\n const contractTerm = Number.parseFloat(structuredCartData?.MOBILE_ORDER?.HARDWARE?.itemTerm?.[0]?.duration?.amount) || 0\r\n // Filter sbRecommendations based on contract type(only for monthly) and for new subcriptions\r\n const filteredSbRecommendations = (\r\n // selectedContractType === CONTRACT\r\n contractTerm > 0\r\n && ((res?.cartItem?.[0]?.processType?.id === \"DEVICE_RENEWAL\" || res?.cartItem?.[0]?.processType?.id === \"DEVICE_RP_RENEWAL\") ? content?.enableExistingSubscription : true))\r\n ? sbRecommendations?.filter((item: string) => cartRecommendationsType.includes(item))\r\n : sbRecommendations?.filter((item: string) => item === ACCESSORY && cartRecommendationsType.includes(item));\r\n filteredSbRecommendations?.forEach((type: string) => {\r\n recommendationType[type] = [];\r\n });\r\n // Store recommendationType in state or ref if needed elsewhere\r\n actions.setRecommendedAccessories(recommendationType);\r\n const defaultTab = \r\n selectedContractType === CONTRACT ? filteredSbRecommendations?.includes(content?.defaultTabSelection) \r\n ? content?.defaultTabSelection \r\n : filteredSbRecommendations[0] : ACCESSORY;\r\n actions?.setSelectedTab(defaultTab);\r\n actions.getRecommendedAccessory({ cartId, recommendationsType: tabKey ? tabKey : defaultTab});\r\n }).catch(() => {\r\n // Redirect to summary page if getCart fails, same as recommendations failure\r\n const localIsSubscriptionFlow = [MOBILERATEPLAN, INTERNETFLOW, TV]?.includes?.(selectedTabData?.[0]?.recommendationProcessingType) ? true : (currentSessionObj?.hardwareVariant ? false : true);\r\n if (typeof window !== \"undefined\") {\r\n window.location.href = localIsSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n }\r\n });\r\n }\r\n }\r\n // to map storyblok and api data in store\r\n useEffect(() => {\r\n if ((recommendedAccessories?.[recommendedAccessories?.tabkey]?.hardware?.length) > 0) {\r\n if (recommendedAccessories?.tabkey === ACCESSORY) {\r\n // mapping of accessories according to recommendation api response\r\n storyBlokService?.getStoryBlokData(\r\n activelocaleId,\r\n recommendedAccessories?.[recommendedAccessories?.tabkey]?.hardware?.map((value: any) => value?.baseProducts),\r\n content?.parentSlugUrl\r\n ).then((res: any) => {\r\n sbRecommendationMapping(res,recommendedAccessories?.tabkey);\r\n });\r\n } else {\r\n const masterlst = recommendedAccessories?.tabkey === WATCHES ? content?.watchMasterList?.[0]?.reference?.content :\r\n content?.tabletMasterList?.[0]?.reference?.content\r\n sbRecommendationMapping(masterlst,recommendedAccessories?.tabkey);\r\n }\r\n } else {\r\n // redirect to summary page if no accessories are returned from backend\r\n if ((!isFetchingRecommendedAccessories || !cartId) && !isLoadingCartData && typeof window !== \"undefined\") {\r\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n }\r\n }\r\n }, [recommendedAccessories])\r\n\r\n const sbRecommendationMapping = (response: any,tabKey: any) => {\r\n const accessoryList = (recommendedAccessories?.[tabKey]?.hardware || [])\r\n ?.filter((item: any) =>\r\n deviceSessionValues?.hardwareVariant?.selectedContractType === CONTRACT\r\n ? item?.recurringPrice?.monthlyInstallment > 0\r\n : item\r\n )\r\n ?.reduce((acc: any, value: any, currentIndex: number) => {\r\n const deviceDetails = {\r\n image: '',\r\n type: MOBILEACCESSORIES\r\n };\r\n let accessoryMappingSb;\r\n if(tabKey === ACCESSORY)\r\n {\r\n accessoryMappingSb = \r\n response?.sbStory?.data?.stories?.filter((val: any) => value?.baseProducts === val?.content?.productId)?.[0];\r\n const requestedVariant = accessoryMappingSb?.content?.body?.[0]?.deviceList?.find((deviceVariant: any) => deviceVariant?.devicePlanId === value?.id);\r\n deviceDetails.image = requestedVariant?.promoImageGallery?.[0]?.slideImages?.[0]\r\n ? requestedVariant?.promoImageGallery?.[0]?.slideImages?.[0]?.image?.filename\r\n : requestedVariant?.imageGallery?.[0]?.slideImages?.[0]?.image?.filename;\r\n deviceDetails.type = value?.content?.type ?? MOBILEACCESSORIES;\r\n }\r\n else{\r\n accessoryMappingSb = response?.body?.filter((val: any) => value?.baseProducts === val?.m_p_id)?.[0];\r\n deviceDetails.image = accessoryMappingSb?.images?.[0]?.filename\r\n deviceDetails.type = value?.content?.type ?? MOBILEACCESSORIES;\r\n }\r\n if (accessoryMappingSb) {\r\n acc.push({ sbStoryItem: accessoryMappingSb, imageData: deviceDetails, recomApiResponse: value });\r\n trackViewItem(VIEWEACHITEM, VIEWEACHITEM, {\r\n displayName: value?.name,\r\n productId: value?.id,\r\n priceValue: value?.oneTimePrice?.base,\r\n index: currentIndex,\r\n variant: value?.variantCategory?.color,\r\n storage: value?.variantCategory?.storage,\r\n });\r\n }\r\n return acc;\r\n }, []);\r\n if (accessoryList?.length > 0 && (response?.sbStory?.data?.stories || response?.body)?.length > 0) {\r\n actions.setMultiItemAccessoriessList({...multiItemAccessoriessList, [tabKey]: accessoryList });\r\n } else {\r\n // redirect to summary page if no accessories is eligbile\r\n window.location.href = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url\r\n }\r\n setDeviceLoader(false);\r\n trackViewItemList(accessoryList);\r\n }\r\n\r\n //select first payment option as default initially unless provided in recommendation api\r\n useEffect(() => {\r\n (multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => {\r\n if (item?.recomApiResponse?.paymentType?.toLowerCase()) {\r\n actions.setSelectedPaymentType(item?.recomApiResponse?.paymentType.toLowerCase() === MONTHLY ? CONTRACT : BASE);\r\n }\r\n }\r\n )\r\n }, [multiItemAccessoriessList]);\r\n\r\n const checkingviewPort = viewport();\r\n const findView = () => {\r\n //function to return no of cards in a row based on view\r\n if (checkingviewPort === 'large-desktop') {\r\n return 3;\r\n } else if (checkingviewPort === 'desktop') {\r\n return 3;\r\n } else if (checkingviewPort === 'tablet') {\r\n return 2;\r\n } else if (checkingviewPort === 'mobile') {\r\n return 1;\r\n }\r\n return 0;\r\n };\r\n const view: any = findView();\r\n\r\n // this is for structuring the event tracking data\r\n const trackViewItemList = (accessoryList: any) => {\r\n const itemList = accessoryList?.map((item: any, index: number) => {\r\n return ({\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 })\r\n })\r\n setMmcItemTracker(itemList);\r\n }\r\n\r\n // Todod tab title should always be in english\r\n const handleTabClick = (tabKey: string, tabTitle: string) => {\r\n // Determine analytics tab title based on selection and Storyblok content\r\n let analyticsTabTitle = tabTitle;\r\n if (tabKey === ACCESSORY && content?.accessoryAnalyticsTitle) {\r\n analyticsTabTitle = content.accessoryAnalyticsTitle;\r\n } else if (tabKey === TABLETS && content?.tabletsAnalyticsTitle) {\r\n analyticsTabTitle = content.tabletsAnalyticsTitle;\r\n } else if (tabKey === WATCHES && content?.watchesAnalyticsTitle) {\r\n analyticsTabTitle = content.watchesAnalyticsTitle;\r\n } \r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: CONTENT,\r\n click_text: analyticsTabTitle\r\n });\r\n fetchandSetRecommendations(tabKey);\r\n };\r\n\r\n return (\r\n <>\r\n {loading && (store?.selectedTab === previousTab ? <Dotloader /> : <AccessoryUpdateCartDotloader content={content} />)}\r\n {/* Only render the main page container when mounted client-side and data is loading/ready */}\r\n {(isMounted && content && (multiItemAccessoriessList?.[store?.selectedTab]?.length > 0 || deviceLoader)) && (\r\n <div className={`${Styles.mainPage}`}>\r\n {content?.progressionBar?.[0] && (\r\n <ProgressionBar\r\n content={content?.progressionBar?.[0]}\r\n />\r\n )}\r\n <Row>\r\n <div>\r\n <div className={`${Styles.title}`}>\r\n <RichText content={content?.recommendationLabel} />\r\n </div>\r\n {Object.keys(recommendedAccessories || {}).filter((key: string) => sbRecommendations?.includes(key)).length <= 1 && !isSubscriptionFlow && (\r\n <div className={`${Styles.deviceText}`}>\r\n {content?.compatibleText}\r\n <span className={Styles.deviceName}>{hardwareName}</span>\r\n </div>\r\n )}\r\n </div>\r\n </Row>\r\n {/* Tabs based on recommendedAccessories, ordered by recommendationType from Storyblok */}\r\n {(Object.keys(recommendedAccessories || {}).filter((key: string) => sbRecommendations?.includes(key)).length > 1) && (\r\n <div className={Styles.tabsContainer}>\r\n {(content?.recommendationType || [])\r\n ?.filter((tabKey: string) => recommendedAccessories?.[tabKey])\r\n ?.map((tabKey: string) => {\r\n // Calculate count: inCart + selected - removed\r\n const inCartCount =\r\n ((Object.keys(cartData?.[tabKey] || {} ))?.length || 0);\r\n const selectedCount =\r\n Object.keys(selectedAccessories?.[tabKey] || {}).length || 0;\r\n const removedCount =\r\n Object.keys(removeSelectedCartAccessories?.[tabKey] || {}).length || 0;\r\n const totalCount = Math.max(inCartCount + selectedCount - removedCount, 0);\r\n\r\n // Get tab title from Storyblok content\r\n const tabTitle = tabKey === ACCESSORY ? content?.accessoryTitle\r\n : tabKey === WATCHES ? content?.watchesTitle\r\n : tabKey === TABLETS ? content?.tabletsTitle\r\n : tabKey;\r\n return (\r\n <button\r\n key={tabKey}\r\n className={`${Styles.tabButton} ${store.selectedTab === tabKey ? Styles.activeTab : ''}`}\r\n onClick={() => {\r\n if (store.selectedTab !== tabKey) {\r\n handleTabClick(tabKey, tabTitle);\r\n }\r\n }}\r\n disabled={!recommendedAccessories?.[tabKey]}\r\n >\r\n {tabTitle}\r\n {totalCount > 0 && (\r\n <span className={Styles.tabCount}>\r\n {totalCount}\r\n </span>\r\n )}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {/* Information banner below tabs - for Smartwatches and Tablets */}\r\n {((store.selectedTab === WATCHES && content?.watchesInfoBannerText) || \r\n (store.selectedTab === TABLETS && content?.tabletsInfoBannerText)) && (\r\n <div className={Styles.infoBanner}>\r\n <div className={Styles.infoBannerContent}>\r\n <img className={Styles.infoIcon} src={content?.esimIcon?.filename} />\r\n <span>\r\n <span>\r\n {replacePlaceholder(\r\n store.selectedTab === WATCHES ? content?.watchesInfoBannerText : content?.tabletsInfoBannerText,\r\n [countZero(recommendedAccessories?.[store?.selectedTab]?.ratePlan?.derivedPrice) ?? countZero(recommendedAccessories?.[store?.selectedTab]?.ratePlan?.listPrice)]\r\n )}\r\n </span>\r\n <span className={Styles.learnMoreText} onClick={() => {\r\n trackNewDatalayerEvent(GAEVENT, CTATEXTCLICK, {\r\n component: LINK,\r\n click_text: LEARNMORE\r\n });\r\n setShowInfoModal(store.selectedTab);\r\n }}>\r\n {content?.learnMoreText}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n\r\n {isSubscriptionFlow && (\r\n <PaymentTypeTabs\r\n content={{\r\n paymentHeadingText: content?.paymentHeadingText,\r\n paymentOptions: content?.paymentOptions,\r\n }}\r\n />\r\n )}\r\n {(deviceLoader && !multiItemAccessoriessList?.[store?.selectedTab]?.length) ? (\r\n <AccessoryPreviewCardLoader cards={view} />\r\n ) : (\r\n <AccessoryCard\r\n content={content}\r\n tabIndex={1}\r\n checkingviewPort={checkingviewPort}\r\n\t\t\t\t isSubscriptionFlow={isSubscriptionFlow}\r\n />\r\n )}\r\n </div>\r\n )}\r\n \r\n {/* Info Modal for Watches and Tablets */}\r\n {showInfoModal && (() => {\r\n const modalContent = getModalContent();\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: modalContent?.heading?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_description: modalContent?.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={!!showInfoModal}\r\n handler={() => setShowInfoModal(null)}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(checkingviewPort === 'large-desktop' || checkingviewPort === 'desktop' || checkingviewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <div className={Styles.watchInfoModal}>\r\n {modalContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={modalContent.heading} />\r\n </div>\r\n )}\r\n \r\n {modalContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={modalContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {modalContent?.link && (\r\n <a \r\n href={getSBAssetUrl(basicConfigUrl, modalContent.link?.cached_url || modalContent.link?.url)} \r\n target=\"_blank\" \r\n rel=\"noopener noreferrer\"\r\n className={Styles.factSheetLink}\r\n >\r\n {modalContent.linkText}\r\n </a>\r\n )}\r\n \r\n {modalContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={modalContent.button[0]}\r\n onClick={() => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n setShowInfoModal(null)\r\n }}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\n// HOC Pattern: Wrap the component with provider at export\r\nconst MultiItemAccessoriesWithProvider = (props: MultiItemAccessoriesProps) => (\r\n <MultiAccessoryProvider>\r\n <MultiItemAccessories {...props} />\r\n </MultiAccessoryProvider>\r\n);\r\n\r\nexport default MultiItemAccessoriesWithProvider;"],"names":["MultiItemAccessories","content","metadata","activelocaleId","lang","deviceLoader","setDeviceLoader","useState","isMounted","setIsMounted","showInfoModal","setShowInfoModal","cartId","getCookie","hardwareName","setHardwareName","isSubscriptionFlow","setIsSubscriptionFlow","hardwareSessionObjRef","useRef","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","recommendedAccessories","isFetchingRecommendedAccessories","deviceSessionValues","multiItemAccessoriessList","selectedAccessories","removeSelectedCartAccessories","loading","isLoadingCartData","cartData","previousTab","selectedTabData","_a","selectedTab","hardware","basicConfigUrl","_b","AssetPathPropConfig","getInstance","getAssetPath","sbRecommendations","recommendationType","useEffect","sessionStr","sessionStorage","getItem","ONE_ECOMMERCE_HARDWARE_SUMMARY","sessionObj","JSON","parse","current","deviceSessionValue","setDeviceSessionValues","setSelectedTab","defaultTabSelection","_d","_c","hardwareVariant","note","filter","item","author","text","fetchandSetRecommendations","undefined","tabKey","currentSessionObj","setPreviousTab","length","getRecommendedAccessory","recommendationsType","Object","keys","continueButtonCartCreation","updateCreatecartItemData","id","redirectUrl","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","multiItemAccessorycreateCartRequest","fetchCartData","then","res","cartRecommendationsType","selectedContractType","structuredCartData","rp_lastcartItemWithParentPOType","cartItem","subscriptionFlow","MOBILE_ORDER","HARDWARE","STANDALONE_HARDWARE","filteredSbRecommendations","Number","parseFloat","_j","_h","_g","_f","_e","itemTerm","duration","amount","_m","_l","_k","processType","_q","_p","_o","enableExistingSubscription","includes","ACCESSORY","forEach","type","setRecommendedAccessories","defaultTab","CONTRACT","catch","localIsSubscriptionFlow","MOBILERATEPLAN","INTERNETFLOW","TV","call","recommendationProcessingType","window","location","href","tabkey","storyBlokService","getStoryBlokData","map","value","baseProducts","parentSlugUrl","sbRecommendationMapping","masterlst","WATCHES","watchMasterList","reference","tabletMasterList","response","accessoryList","recurringPrice","monthlyInstallment","reduce","acc","currentIndex","deviceDetails","image","MOBILEACCESSORIES","accessoryMappingSb","sbStory","data","stories","val","productId","requestedVariant","body","deviceList","find","deviceVariant","devicePlanId","promoImageGallery","slideImages","_r","filename","_w","_v","_u","_t","imageGallery","_s","_y","_x","_0","_z","m_p_id","_2","_1","images","_4","_3","push","sbStoryItem","imageData","recomApiResponse","trackViewItem","VIEWEACHITEM","displayName","name","priceValue","_5","oneTimePrice","base","index","variant","_6","variantCategory","color","storage","_7","setMultiItemAccessoriessList","assign","trackViewItemList","paymentType","toLowerCase","setSelectedPaymentType","MONTHLY","BASE","checkingviewPort","viewport","view","itemList","setMmcItemTracker","React","createElement","Fragment","Dotloader","AccessoryUpdateCartDotloader","className","Styles","mainPage","progressionBar","ProgressionBar","Row","title","RichText","recommendationLabel","key","deviceText","compatibleText","deviceName","tabsContainer","inCartCount","selectedCount","removedCount","totalCount","Math","max","tabTitle","accessoryTitle","watchesTitle","TABLETS","tabletsTitle","tabButton","activeTab","onClick","analyticsTabTitle","accessoryAnalyticsTitle","tabletsAnalyticsTitle","watchesAnalyticsTitle","trackNewDatalayerEvent","GAEVENT","TABCLICK","component","CONTENT","click_text","handleTabClick","disabled","tabCount","watchesInfoBannerText","tabletsInfoBannerText","infoBanner","infoBannerContent","infoIcon","src","esimIcon","replacePlaceholder","countZero","ratePlan","derivedPrice","listPrice","learnMoreText","CTATEXTCLICK","LINK","LEARNMORE","PaymentTypeTabs","paymentHeadingText","paymentOptions","AccessoryPreviewCardLoader","cards","AccessoryCard","tabIndex","modalContent","watchesPopup","tabletsPopup","getModalContent","OPENPOPUP","POPUP","message_title","heading","slice","message_description","description","message_type","INFO","AccessoryModal","modalState","handler","showFooter","height","fixedWidth","noCloseButton","backDrop","watchInfoModal","modalHeading","modalDescription","modalButtons","link","getSBAssetUrl","target","rel","factSheetLink","linkText","button","FalconButtonV2","CTABUTTONCLICK","CONTINUE","wafIdentifier","MultiItemAccessoriesWithProvider","props","MultiAccessoryProvider"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useState as e,useEffect as n}from"react";import{TV_SERVICE_OPTION as t}from"./constants.js";const r=e=>{switch(e){case"grey-600":return"falcon-grey-600";case"grey-500":return"falcon-grey-500";case"grey-100":return"falcon-grey-100";case"grey-400":return"falcon-grey-400";case"ice-white":return"falcon-ice-white";default:return""}},a=(e,n)=>{const t=[];let r,a,i=0;[...Array(n)].forEach(()=>{a=document.getElementById(`${e}${i}`),null!=a&&(a.style.height="unset",t.push(null==a?void 0:a.clientHeight),i++)}),r=Math.max(...t),i=0,[...Array(n)].forEach(()=>{a=document.getElementById(`${e}${i}`),null!=a&&(a.style.height=`${r}px`),i++})},i=e=>{switch(e){case"grey-100":return"falcon-background-grey-100";case"ice-white":return"falcon-background-ice-white";case"transparent":return"falcon-background-transparent";default:return""}},o=e=>{switch(e){case"rubyglow-diagonal":return"falcon-gradient-rubyglow-diagonal";case"rubyglow-inverted-diagonal":return"falcon-gradient-rubyglow-inverted-diagonal";case"rubyglow-vertical":return"falcon-gradient-rubyglow-vertical";case"pinksky-diagonal":return"falcon-gradient-pinksky-diagonal";case"pinksky-inverted-diagonal":return"falcon-gradient-pinksky-inverted-diagonal";case"pinksky-vertical":return"falcon-gradient-pinksky-vertical";case"bluehaze-diagonal":return"falcon-gradient-bluehaze-diagonal";case"bluehaze-vertical":return"falcon-gradient-bluehaze-vertical";case"greencloud-diagonal":return"falcon-gradient-greencloud-diagonal";case"greencloud-inverted-diagonal":return"falcon-gradient-greencloud-inverted-diagonal";case"greencloud-vertical":return"falcon-gradient-greencloud-vertical";case"peachfog-diagonal":return"falcon-gradient-peachfog-diagonal";case"peachfog-inverted-diagonal":return"falcon-gradient-peachfog-inverted-diagonal";case"peachfog-vertical":return"falcon-gradient-peachfog-vertical";case"darkblue-haze":return"falcon-gradient-dark-blue-haze";case"skyfuel-diagonal":return"falcon-gradient-skyfuel-diagonal";case"skyfuel-vertical":return"falcon-gradient-skyfuel-vertical";case"skyfuel-inverted-diagonal":return"falcon-gradient-skyfuel-inverted-diagonal";default:return""}},l=e=>{e=Number(e);let n=0;return n=new RegExp("^[0-9][^.]*$").test(e.toString())?e+".-":e.toFixed(2).replace(/\.00$/,""),n},c=(e,n,t)=>{let r=null;const a=new Date;r={value:n,expiry:t?a.getTime()+t:null},localStorage.setItem(e,JSON.stringify(r))},s=e=>{const n="undefined"!=typeof window&&localStorage.getItem(e),t=new Date;if(!n)return null;let r={};try{if(r=JSON.parse(n),r.expiry&&t.getTime()>r.expiry)return d(e),null}catch(e){return n}return null==r?void 0:r.value},d=e=>{localStorage.removeItem(e)},u=()=>{const[t,r]=e(()=>"undefined"!=typeof window?window.innerWidth:0);return n(()=>{const e=()=>{r(window.innerWidth)};return window.addEventListener("resize",e),e(),()=>window.removeEventListener("resize",e)},[]),t>=1440?"large-desktop":t<1440&&t>=1024?"desktop":t<1024&&t>=768?"tablet":t<768&&t>0?"mobile":""},g=e=>{const n=e+"=";let t;return document.cookie.split(";").some(e=>{for(;" "===e.charAt(0);)e=e.substring(1);return 0===e.indexOf(n)&&(t=JSON.parse(decodeURIComponent(e.substring(n.length,e.length))),!0)}),t},f=()=>{const[t,r]=e(!1),a=()=>{const e=window.matchMedia("(pointer:coarse)");r(e.matches)};return n(()=>(a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)),[]),t},w=(e,n)=>null==e?void 0:e.replace(/{\w+}/g,e=>n[e.substring(1,e.length-1)]||e),p=e=>{switch(e){case"success":return"/icons/checksuccess.svg";case"error":return"/icons/error.svg";case"info":case"infoWhite":return"/icons/info.svg";case"warning":return"/icons/alert.svg";case"tip":return"/icons/tip.svg";default:return""}},y=e=>"undefined"!=typeof window?e=="/"+window.document.documentElement.getAttribute("lang")+"/"?void 0:e:"#",h=(e,n)=>{const[t]=["https://a.storyblok.com/f/113473/"],[r]=[e+"asset/"];return n&&"string"==typeof n?n.replace(t,`${r}`):n||""},v=(e,n)=>{let t="";return t+=h(e,n),t+="/m/",t},m=e=>{let n=0;return n=(e=Number(e)).toFixed(2),n},k=()=>{const[t,r]=e(()=>"undefined"!=typeof window?window.innerWidth:0);return n(()=>{const e=()=>{r(window.innerWidth)};return window.addEventListener("resize",e),e(),()=>window.removeEventListener("resize",e)},[]),t>=1440&&t<7e3?"desktop":t>=1024&&t<1440?"tabletLarge":t<1024&&t>=768?"tabletMedium":t<768&&t>0?"mobile":""},b=e=>{if("undefined"==typeof window)return null;{const n=sessionStorage.getItem(e);return n?JSON.parse(n):null}},S=e=>e.some(e=>e.type===t),$=()=>{const e=new Date;return`${e.getUTCFullYear()}${String(e.getUTCMonth()+1).padStart(2,"0")}${String(e.getUTCDate()).padStart(2,"0")}T${String(e.getUTCHours()).padStart(2,"0")}${String(e.getUTCMinutes()).padStart(2,"0")}${String(e.getUTCSeconds()).padStart(2,"0")}.${String(e.getUTCMilliseconds()).padStart(3,"0")} GMT`};export{y as checkLinkWithLang,l as countZero,m as countZeros,v as getCompressedImage,g as getCookies,a as getElementMaximumHeight,i as getFalconBackgroundColorClass,r as getFalconColorsClass,o as getFalconGradientClass,s as getLocalStorageWithExpiry,h as getSBAssetUrl,b as getSessionStorage,$ as getUtcTimestamp,p as iconHandler,S as isStandaloneOption,f as isTouchScreen,d as removeLocalStorage,w as replacePlaceholder,c as setLocalStoreWithExpiry,u as viewport,k as viewportMultiItem};
1
+ import{useState as e,useEffect as n}from"react";import{TV_SERVICE_OPTION as t}from"./constants.js";const r=e=>{switch(e){case"grey-600":return"falcon-grey-600";case"grey-500":return"falcon-grey-500";case"grey-100":return"falcon-grey-100";case"grey-400":return"falcon-grey-400";case"ice-white":return"falcon-ice-white";default:return""}},i=(e,n)=>{const t=[];let r,i,a=0;[...Array(n)].forEach(()=>{i=document.getElementById(`${e}${a}`),null!=i&&(i.style.height="unset",t.push(null==i?void 0:i.clientHeight),a++)}),r=Math.max(...t),a=0,[...Array(n)].forEach(()=>{i=document.getElementById(`${e}${a}`),null!=i&&(i.style.height=`${r}px`),a++})},a=e=>{switch(e){case"grey-100":return"falcon-background-grey-100";case"ice-white":return"falcon-background-ice-white";case"transparent":return"falcon-background-transparent";default:return""}},o=e=>{switch(e){case"rubyglow-diagonal":return"falcon-gradient-rubyglow-diagonal";case"rubyglow-inverted-diagonal":return"falcon-gradient-rubyglow-inverted-diagonal";case"rubyglow-vertical":return"falcon-gradient-rubyglow-vertical";case"pinksky-diagonal":return"falcon-gradient-pinksky-diagonal";case"pinksky-inverted-diagonal":return"falcon-gradient-pinksky-inverted-diagonal";case"pinksky-vertical":return"falcon-gradient-pinksky-vertical";case"bluehaze-diagonal":return"falcon-gradient-bluehaze-diagonal";case"bluehaze-vertical":return"falcon-gradient-bluehaze-vertical";case"greencloud-diagonal":return"falcon-gradient-greencloud-diagonal";case"greencloud-inverted-diagonal":return"falcon-gradient-greencloud-inverted-diagonal";case"greencloud-vertical":return"falcon-gradient-greencloud-vertical";case"peachfog-diagonal":return"falcon-gradient-peachfog-diagonal";case"peachfog-inverted-diagonal":return"falcon-gradient-peachfog-inverted-diagonal";case"peachfog-vertical":return"falcon-gradient-peachfog-vertical";case"darkblue-haze":return"falcon-gradient-dark-blue-haze";case"skyfuel-diagonal":return"falcon-gradient-skyfuel-diagonal";case"skyfuel-vertical":return"falcon-gradient-skyfuel-vertical";case"skyfuel-inverted-diagonal":return"falcon-gradient-skyfuel-inverted-diagonal";default:return""}},l=e=>{e=Number(e);let n=0;return n=new RegExp("^[0-9][^.]*$").test(e.toString())?e+".-":e.toFixed(2).replace(/\.00$/,""),n},s=(e,n,t)=>{let r=null;const i=new Date;r={value:n,expiry:t?i.getTime()+t:null},localStorage.setItem(e,JSON.stringify(r))},c=e=>{const n="undefined"!=typeof window&&localStorage.getItem(e),t=new Date;if(!n)return null;let r={};try{if(r=JSON.parse(n),r.expiry&&t.getTime()>r.expiry)return d(e),null}catch(e){return n}return null==r?void 0:r.value},d=e=>{localStorage.removeItem(e)},u=()=>{const[t,r]=e(()=>"undefined"!=typeof window?window.innerWidth:0);return n(()=>{const e=()=>{r(window.innerWidth)};return window.addEventListener("resize",e),e(),()=>window.removeEventListener("resize",e)},[]),t>=1440?"large-desktop":t<1440&&t>=1024?"desktop":t<1024&&t>=768?"tablet":t<768&&t>0?"mobile":""},g=e=>{const n=e+"=";let t;return document.cookie.split(";").some(e=>{for(;" "===e.charAt(0);)e=e.substring(1);return 0===e.indexOf(n)&&(t=JSON.parse(decodeURIComponent(e.substring(n.length,e.length))),!0)}),t},f=()=>{const[t,r]=e(!1),i=()=>{const e=window.matchMedia("(pointer:coarse)");r(e.matches)};return n(()=>(i(),window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)),[]),t},p=(e,n)=>null==e?void 0:e.replace(/{\w+}/g,e=>n[e.substring(1,e.length-1)]||e),v=e=>{switch(e){case"success":return"/icons/checksuccess.svg";case"error":return"/icons/error.svg";case"info":case"infoWhite":return"/icons/info.svg";case"warning":return"/icons/alert.svg";case"tip":return"/icons/tip.svg";default:return""}},y=e=>"undefined"!=typeof window?e=="/"+window.document.documentElement.getAttribute("lang")+"/"?void 0:e:"#",O=(e,n)=>{const[t]=["https://a.storyblok.com/f/113473/"],[r]=[e+"asset/"];return n&&"string"==typeof n?n.replace(t,`${r}`):n||""},E=(e,n)=>{let t="";return t+=O(e,n),t+="/m/",t},w=e=>{let n=0;return n=(e=Number(e)).toFixed(2),n},T=()=>{const[t,r]=e(()=>"undefined"!=typeof window?window.innerWidth:0);return n(()=>{const e=()=>{r(window.innerWidth)};return window.addEventListener("resize",e),e(),()=>window.removeEventListener("resize",e)},[]),t>=1440&&t<7e3?"desktop":t>=1024&&t<1440?"tabletLarge":t<1024&&t>=768?"tabletMedium":t<768&&t>0?"mobile":""},h=e=>{if("undefined"==typeof window)return null;{const n=sessionStorage.getItem(e);return n?JSON.parse(n):null}},b=(e,n,t,r)=>(Array.isArray(e)&&e.forEach(e=>{var i,a,o,l,s,c;const d=void 0!==(null==e?void 0:e.itemType),u=void 0!==(null==e?void 0:e.productOffering);let g,f;d?(g=null==e?void 0:e.itemType,f=null==e?void 0:e.items):u&&(g=null===(i=null==e?void 0:e.productOffering)||void 0===i?void 0:i.poType,f=null==e?void 0:e.cartItem);let p=r;if(g&&["MOBILE_ORDER","HOME_ORDER","STANDALONE_TV_ORDER","MOBILE_INTERNET_ORDER","EXTRASIM_RATEPLAN","ACCESSORY","STANDALONE_HARDWARE"].includes(g)&&(p=d?e:null==e?void 0:e.productOffering),f&&0!==f.length)b(f,n,e,p);else if(e&&p){let r=g;if(!r&&u&&(null===(a=null==t?void 0:t.productOffering)||void 0===a?void 0:a.poType)&&(r=t.productOffering.poType),!r)return;const i=d?null==p?void 0:p.itemType:null==p?void 0:p.poType;if(!i)return;if(null===(o=Object.prototype)||void 0===o?void 0:o.hasOwnProperty.call(n,i))if(null===(l=Object.prototype)||void 0===l?void 0:l.hasOwnProperty.call(n[i],r)){let t=null!==(c=null===(s=n[i])||void 0===s?void 0:s[r])&&void 0!==c?c:[];Array.isArray(t)||(t=[t]),t.push(e),n[i]=Object.assign(Object.assign({},n[i]),{[r]:Object.assign(Object.assign({},t),{itemType:r})})}else{["TV_SERVICE_OPTION","INTERNET_SERVICE_OPTION","MOBILEPOSTPAID_SERVICE_OPTION","MOBILEPREPAID_SERVICE_OPTION"].includes(r)?n[i]=Object.assign(Object.assign({},n[i]),{[r]:[Object.assign(Object.assign({},e),{itemType:r})]}):n[i]=Object.assign(Object.assign({},n[i]),{[r]:Object.assign(Object.assign({},e),{itemType:r})})}else{["TV_SERVICE_OPTION","INTERNET_SERVICE_OPTION","MOBILEPOSTPAID_SERVICE_OPTION","MOBILEPREPAID_SERVICE_OPTION"].includes(r)?n[i]={[r]:[Object.assign(Object.assign({},e),{itemType:r})],PARENT_ITEM:p}:n[i]={[r]:Object.assign(Object.assign({},e),{itemType:r}),PARENT_ITEM:p}}}}),n),m=e=>e.some(e=>e.type===t),I=()=>{const e=new Date;return`${e.getUTCFullYear()}${String(e.getUTCMonth()+1).padStart(2,"0")}${String(e.getUTCDate()).padStart(2,"0")}T${String(e.getUTCHours()).padStart(2,"0")}${String(e.getUTCMinutes()).padStart(2,"0")}${String(e.getUTCSeconds()).padStart(2,"0")}.${String(e.getUTCMilliseconds()).padStart(3,"0")} GMT`};export{y as checkLinkWithLang,l as countZero,w as countZeros,E as getCompressedImage,g as getCookies,i as getElementMaximumHeight,a as getFalconBackgroundColorClass,r as getFalconColorsClass,o as getFalconGradientClass,c as getLocalStorageWithExpiry,O as getSBAssetUrl,h as getSessionStorage,I as getUtcTimestamp,v as iconHandler,m as isStandaloneOption,f as isTouchScreen,d as removeLocalStorage,p as replacePlaceholder,b as rp_lastcartItemWithParentPOType,s as setLocalStoreWithExpiry,u as viewport,T as viewportMultiItem};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/utils/utils.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\nimport { TV_SERVICE_OPTION } from \"./constants\";\r\n\r\nexport const getFalconColorsClass = (type: string): string => {\r\n switch (type) {\r\n case \"grey-600\":\r\n return \"falcon-grey-600\";\r\n\r\n case \"grey-500\":\r\n return \"falcon-grey-500\";\r\n\r\n case \"grey-100\":\r\n return \"falcon-grey-100\";\r\n\r\n case \"grey-400\":\r\n return \"falcon-grey-400\";\r\n\r\n case \"ice-white\":\r\n return \"falcon-ice-white\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const getElementMaximumHeight = (\r\n idPrefix: string,\r\n totalCards: number\r\n): void => {\r\n const heightArray: any[] = [];\r\n let maxValue: number;\r\n let item = 0;\r\n let val: HTMLElement | null;\r\n //push height of the elements into an array to find maximum value\r\n\r\n [...Array(totalCards)].forEach(() => {\r\n val = document.getElementById(`${idPrefix}${item}`);\r\n if (val != null) {\r\n val.style.height = \"unset\";\r\n heightArray.push(val?.clientHeight);\r\n item++;\r\n }\r\n });\r\n maxValue = Math.max(...heightArray);\r\n item = 0;\r\n //sets the maximum value obtained as minHeight to that element of each card\r\n [...Array(totalCards)].forEach(() => {\r\n val = document.getElementById(`${idPrefix}${item}`);\r\n if (val != null) {\r\n val.style.height = `${maxValue}px`;\r\n }\r\n item++;\r\n });\r\n};\r\n\r\nexport const getFalconBackgroundColorClass = (type: string): string => {\r\n switch (type) {\r\n case 'grey-100':\r\n return 'falcon-background-grey-100';\r\n case 'ice-white':\r\n return 'falcon-background-ice-white';\r\n case 'transparent':\r\n return 'falcon-background-transparent';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nexport const getFalconGradientClass = (type: string): string => {\r\n switch (type) {\r\n case 'rubyglow-diagonal':\r\n return 'falcon-gradient-rubyglow-diagonal';\r\n\r\n case 'rubyglow-inverted-diagonal':\r\n return 'falcon-gradient-rubyglow-inverted-diagonal';\r\n\r\n case 'rubyglow-vertical':\r\n return 'falcon-gradient-rubyglow-vertical';\r\n\r\n case 'pinksky-diagonal':\r\n return 'falcon-gradient-pinksky-diagonal';\r\n \r\n case 'pinksky-inverted-diagonal':\r\n return 'falcon-gradient-pinksky-inverted-diagonal';\r\n\r\n case 'pinksky-vertical':\r\n return 'falcon-gradient-pinksky-vertical';\r\n\r\n case 'bluehaze-diagonal':\r\n return 'falcon-gradient-bluehaze-diagonal';\r\n\r\n case 'bluehaze-vertical':\r\n return 'falcon-gradient-bluehaze-vertical';\r\n\r\n case 'greencloud-diagonal':\r\n return 'falcon-gradient-greencloud-diagonal';\r\n\r\n case 'greencloud-inverted-diagonal':\r\n return 'falcon-gradient-greencloud-inverted-diagonal';\r\n\r\n case 'greencloud-vertical':\r\n return 'falcon-gradient-greencloud-vertical';\r\n\r\n case 'peachfog-diagonal':\r\n return 'falcon-gradient-peachfog-diagonal';\r\n \r\n case 'peachfog-inverted-diagonal':\r\n return 'falcon-gradient-peachfog-inverted-diagonal';\r\n\r\n case 'peachfog-vertical':\r\n return 'falcon-gradient-peachfog-vertical';\r\n\r\n case 'darkblue-haze':\r\n return 'falcon-gradient-dark-blue-haze';\r\n\r\n case 'skyfuel-diagonal':\r\n return 'falcon-gradient-skyfuel-diagonal';\r\n\r\n case 'skyfuel-vertical':\r\n return 'falcon-gradient-skyfuel-vertical';\r\n\r\n case 'skyfuel-inverted-diagonal':\r\n return 'falcon-gradient-skyfuel-inverted-diagonal';\r\n\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nexport const countZero = (value: any) => {\r\n value = Number(value);\r\n let price: any = 0;\r\n const reg = '^[0-9][^.]*$';\r\n const isNumericPrice = new RegExp(reg).test(value.toString());\r\n if (isNumericPrice) {\r\n price = value + '.-';\r\n } else {\r\n price = value.toFixed(2).replace(/\\.00$/, '');\r\n }\r\n return price;\r\n};\r\n\r\nexport const setLocalStoreWithExpiry = (key: string, value: any, ttl?: any): void => {\r\n let item: any = null;\r\n const now: any = new Date();\r\n // `item` is an object which contains the original value\r\n // as well as the time when it's supposed to expire\r\n item = {\r\n value: value,\r\n expiry: ttl ? now.getTime() + ttl : null\r\n };\r\n localStorage.setItem(key, JSON.stringify(item));\r\n};\r\n\r\nexport const getLocalStorageWithExpiry = (key: string): any => {\r\n const itemStr = typeof window !== 'undefined' && localStorage.getItem(key);\r\n // if the item doesn't exist, return null\r\n const now: Date = new Date();\r\n if (!itemStr) {\r\n return null;\r\n }\r\n let item: any = {};\r\n try {\r\n item = JSON.parse(itemStr);\r\n if (item.expiry && now.getTime() > item.expiry) {\r\n removeLocalStorage(key);\r\n return null;\r\n }\r\n } catch (error) {\r\n return itemStr;\r\n }\r\n return item?.value;\r\n};\r\n\r\nexport const removeLocalStorage = (key: string): void => {\r\n localStorage.removeItem(key);\r\n};\r\n\r\nexport const viewport = (): string => {\r\n const [width, setWidth] = useState<number>(() =>\r\n typeof window !== 'undefined' ? window.innerWidth : 0\r\n );\r\n useEffect(() => {\r\n const updateSize = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n window.addEventListener('resize', updateSize);\r\n // Sync once on mount in case value drifted between SSR and hydration\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, []);\r\n if (width >= 1440) {\r\n return 'large-desktop';\r\n } else if (width < 1440 && width >= 1024) {\r\n return 'desktop';\r\n } else if (width < 1024 && width >= 768) {\r\n return 'tablet';\r\n } else if (width < 768 && width > 0) {\r\n return 'mobile';\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\nexport const getCookies = (cname: string): any => {\r\n const name = cname + '=';\r\n const cookies = document.cookie.split(';');\r\n let cookieData: any;\r\n cookies.some((cookie) => {\r\n while (cookie.charAt(0) === ' ') {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n cookieData = JSON.parse(decodeURIComponent(cookie.substring(name.length, cookie.length)));\r\n return true;\r\n }\r\n return false;\r\n });\r\n return cookieData;\r\n};\r\n\r\nexport const isTouchScreen = (): boolean => {\r\n const [touchScreen, setTouchScreen] = useState<boolean>(false);\r\n const onResize = () => {\r\n const mediaQuery = window.matchMedia('(pointer:coarse)');\r\n setTouchScreen(mediaQuery.matches);\r\n };\r\n useEffect(() => {\r\n onResize();\r\n window.addEventListener('resize', onResize);\r\n return () => window.removeEventListener('resize', onResize);\r\n }, []);\r\n return touchScreen;\r\n};\r\n\r\n// get price value based on type\r\nexport const returnPriceByType = (priceList: any, type: string) => {\r\n const price = (priceList || [])?.filter((val: any) => val?.priceType?.toLowerCase() === type);\r\n if (price?.length > 0) {\r\n return price?.[0]?.value;\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\n//replace storyblok content{0} with dynamic value\r\nexport const replacePlaceholder = (source: string, params: any): string => {\r\n const text: string = source?.replace(\r\n /{\\w+}/g,\r\n (placeholder: any) => params[placeholder.substring(1, placeholder.length - 1)] || placeholder\r\n );\r\n return text;\r\n};\r\n\r\nexport const isModemPresent = () => {\r\n if (document) {\r\n if (document.getElementById('no-modem')) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const iconHandler = (type: string): string => {\r\n switch (type) {\r\n case 'success':\r\n return '/icons/checksuccess.svg';\r\n case 'error':\r\n return '/icons/error.svg';\r\n case 'info':\r\n return '/icons/info.svg';\r\n case 'warning':\r\n return '/icons/alert.svg';\r\n case 'tip':\r\n return '/icons/tip.svg';\r\n case 'infoWhite':\r\n return '/icons/info.svg';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\n// checks if the url is like \"/lang/\" and replaces it with '#'. Or returns the configured url\r\nexport const checkLinkWithLang = (url: string) => {\r\n if (typeof window !== 'undefined') {\r\n if (url == '/' + window.document.documentElement.getAttribute('lang') + '/') {\r\n return undefined;\r\n } else {\r\n return url;\r\n }\r\n } else {\r\n return '#';\r\n }\r\n};\r\n\r\nexport const getSBAssetUrl = (wafIdentifier: any, image?: string): string => {\r\n const [defaultImageEndpoint]: [string] = ['https://a.storyblok.com/f/113473/'];\r\n const [s3Endpoint]: [string] = [wafIdentifier + 'asset/'];\r\n if (image && typeof image === 'string') {\r\n return image.replace(defaultImageEndpoint, `${s3Endpoint}`);\r\n }\r\n return image || '';\r\n};\r\n\r\nexport const getCompressedImage = (wafIdentifier: any,imageUrl: string): string => {\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n let extension: string = '';\r\n \r\n // to replace the default storyblok endpoint with sunrise.ch endpoint\r\n extension += getSBAssetUrl(wafIdentifier,imageUrl);\r\n // to add the compression parameters for image compression\r\n extension += '/m/';\r\n\r\n return extension;\r\n};\r\n\r\n//To get notes values\r\nexport const getNoteValues = (hardwareProducts: any, key: string) => {\r\n let value;\r\n if (hardwareProducts?.note) {\r\n (hardwareProducts?.note || []).forEach((data: any) => {\r\n data?.author === key && (value = data?.text);\r\n });\r\n }\r\n return value;\r\n};\r\n\r\n/**US 349849 - MIA migration\r\n * price model\r\n * @param value string | number\r\n * @returns\r\n * 2.0 -> 2.00\r\n * 2.1 -> 2.10\r\n * 2.15 -> 2.15\r\n * 0.0 -> 0.00\r\n * 0.5 -> 0.50\r\n */\r\n\r\nexport const countZeros = (value: any) => {\r\n value = Number(value);\r\n let price: any = 0;\r\n price = value.toFixed(2);\r\n return price;\r\n};\r\nexport const viewportMultiItem = (): string => {\r\n const [width, setWidth] = useState<number>(() =>\r\n typeof window !== 'undefined' ? window.innerWidth : 0\r\n );\r\n useEffect(() => {\r\n const updateSize = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n window.addEventListener('resize', updateSize);\r\n // Sync once on mount in case value drifted between SSR and hydration\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, []);\r\n if (width >= 1440 && width < 7000) {\r\n return 'desktop';\r\n } else if (width >= 1024 && width < 1440) {\r\n return 'tabletLarge';\r\n } else if (width < 1024 && width >= 768) {\r\n return 'tabletMedium';\r\n } else if (width < 768 && width > 0) {\r\n return 'mobile';\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\nexport const setSessionStorage = (sname: string, valueobj: any): any => {\r\n if (sname) sessionStorage.setItem(sname, JSON.stringify(valueobj));\r\n};\r\n\r\nexport const getSessionStorage = (sname: string): any => {\r\n if (typeof window === 'undefined') {\r\n return null;\r\n }\r\n if (sname) {\r\n const sessionData = sessionStorage.getItem(sname);\r\n if (!sessionData) {\r\n return null;\r\n }\r\n return JSON.parse(sessionData);\r\n }\r\n};\r\n\r\nexport const rp_lastcartItemWithParentPOType = (\r\n cart: any[],\r\n lastCartItems: Record<string, any>,\r\n parent: any,\r\n home: any\r\n ): Record<string, any> => {\r\n if (Array.isArray(cart)) {\r\n cart.forEach((cart_rp: any) => {\r\n // Detect which data structure we're working with\r\n const hasItemType = cart_rp?.itemType !== undefined;\r\n const hasProductOffering = cart_rp?.productOffering !== undefined;\r\n // Determine the type and children based on data structure\r\n let currentType: string | undefined;\r\n let children: any[] | undefined;\r\n \r\n if (hasItemType) {\r\n // First data structure: uses itemType and items\r\n currentType = cart_rp?.itemType;\r\n children = cart_rp?.items;\r\n\r\n } else if (hasProductOffering) {\r\n // Second data structure: uses productOffering.poType and cartItem\r\n currentType = cart_rp?.productOffering?.poType;\r\n children = cart_rp?.cartItem;\r\n\r\n }\r\n \r\n // Check if this is a parent order type\r\n const parentOrderTypes = [\r\n 'MOBILE_ORDER',\r\n 'HOME_ORDER',\r\n 'STANDALONE_TV_ORDER',\r\n 'MOBILE_INTERNET_ORDER',\r\n 'EXTRASIM_RATEPLAN',\r\n 'ACCESSORY',\r\n 'STANDALONE_HARDWARE'\r\n ];\r\n \r\n // If this is a parent order, update home for this branch only\r\n let currentHome = home;\r\n if (currentType && parentOrderTypes.includes(currentType)) {\r\n currentHome = hasItemType ? cart_rp : cart_rp?.productOffering;\r\n }\r\n \r\n // If this is a leaf node (no children or empty children array)\r\n if (!children || children.length === 0) {\r\n if (cart_rp && currentHome) {\r\n // Get current item type based on data structure\r\n let itemType: string | undefined = currentType;\r\n \r\n // If itemType is undefined, try to infer from parent\r\n if (!itemType && hasProductOffering && parent?.productOffering?.poType) {\r\n // Use parent's poType as the item type for leaf nodes\r\n itemType = parent.productOffering.poType;\r\n }\r\n \r\n if (!itemType) {\r\n return;\r\n }\r\n \r\n // Get home type key based on data structure\r\n const homeTypeKey = hasItemType ? currentHome?.itemType : currentHome?.poType;\r\n \r\n if (!homeTypeKey) {\r\n return;\r\n }\r\n \r\n // Organize items by home type and item type\r\n if (Object.prototype?.hasOwnProperty.call(lastCartItems, homeTypeKey)) {\r\n if (Object.prototype?.hasOwnProperty.call(lastCartItems[homeTypeKey], itemType)) {\r\n // Item type already exists, push to array\r\n let temp = lastCartItems[homeTypeKey]?.[itemType] ?? [];\r\n if (!Array.isArray(temp)) {\r\n temp = [temp];\r\n }\r\n temp.push(cart_rp);\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: {...temp, itemType: itemType} };\r\n } else {\r\n // First item of this type\r\n const serviceOptionTypes = [\r\n 'TV_SERVICE_OPTION',\r\n 'INTERNET_SERVICE_OPTION',\r\n 'MOBILEPOSTPAID_SERVICE_OPTION',\r\n 'MOBILEPREPAID_SERVICE_OPTION'\r\n ];\r\n \r\n if (serviceOptionTypes.includes(itemType)) {\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: [{...cart_rp, itemType: itemType}]};\r\n } else {\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: {...cart_rp, itemType: itemType}};\r\n }\r\n }\r\n } else {\r\n // First time seeing this home type\r\n const serviceOptionTypes = [\r\n 'TV_SERVICE_OPTION',\r\n 'INTERNET_SERVICE_OPTION',\r\n 'MOBILEPOSTPAID_SERVICE_OPTION',\r\n 'MOBILEPREPAID_SERVICE_OPTION'\r\n ];\r\n if (serviceOptionTypes.includes(itemType)) {\r\n lastCartItems[homeTypeKey] = { \r\n [itemType]: [{...cart_rp, itemType: itemType}], \r\n ['PARENT_ITEM']: currentHome \r\n };\r\n } else {\r\n lastCartItems[homeTypeKey] = { \r\n [itemType]: {...cart_rp, itemType: itemType}, \r\n ['PARENT_ITEM']: currentHome \r\n };\r\n }\r\n }\r\n }\r\n } else {\r\n // Recursively process children with the current home context\r\n rp_lastcartItemWithParentPOType(children, lastCartItems, cart_rp, currentHome);\r\n }\r\n });\r\n }\r\n\r\n return lastCartItems;\r\n};\r\nexport const isStandaloneOption = (product:any) =>{\r\n return product.some((item:any) => item.type === TV_SERVICE_OPTION);\r\n}\r\n\r\n/**\r\n * Returns a UTC timestamp in the format 'YYYYMMDDTHHmmss.SSS GMT'\r\n * Replaces moment().utc().format('YYYYMMDDTHHmmss.SSS') + ' GMT'\r\n */\r\nexport const getUtcTimestamp = (): string => {\r\n const now = new Date();\r\n const year = now.getUTCFullYear();\r\n const month = String(now.getUTCMonth() + 1).padStart(2, '0');\r\n const day = String(now.getUTCDate()).padStart(2, '0');\r\n const hours = String(now.getUTCHours()).padStart(2, '0');\r\n const minutes = String(now.getUTCMinutes()).padStart(2, '0');\r\n const seconds = String(now.getUTCSeconds()).padStart(2, '0');\r\n const ms = String(now.getUTCMilliseconds()).padStart(3, '0');\r\n return `${year}${month}${day}T${hours}${minutes}${seconds}.${ms} GMT`;\r\n};"],"names":["getFalconColorsClass","type","getElementMaximumHeight","idPrefix","totalCards","heightArray","maxValue","val","item","Array","forEach","document","getElementById","style","height","push","clientHeight","Math","max","getFalconBackgroundColorClass","getFalconGradientClass","countZero","value","Number","price","RegExp","test","toString","toFixed","replace","setLocalStoreWithExpiry","key","ttl","now","Date","expiry","getTime","localStorage","setItem","JSON","stringify","getLocalStorageWithExpiry","itemStr","window","getItem","parse","removeLocalStorage","error","removeItem","viewport","width","setWidth","useState","innerWidth","useEffect","updateSize","addEventListener","removeEventListener","getCookies","cname","name","cookieData","cookie","split","some","charAt","substring","indexOf","decodeURIComponent","length","isTouchScreen","touchScreen","setTouchScreen","onResize","mediaQuery","matchMedia","matches","replacePlaceholder","source","params","placeholder","iconHandler","checkLinkWithLang","url","documentElement","getAttribute","getSBAssetUrl","wafIdentifier","image","defaultImageEndpoint","s3Endpoint","getCompressedImage","imageUrl","extension","countZeros","viewportMultiItem","getSessionStorage","sname","sessionData","sessionStorage","isStandaloneOption","product","TV_SERVICE_OPTION","getUtcTimestamp","getUTCFullYear","String","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/utils/utils.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\nimport { TV_SERVICE_OPTION } from \"./constants\";\r\n\r\nexport const getFalconColorsClass = (type: string): string => {\r\n switch (type) {\r\n case \"grey-600\":\r\n return \"falcon-grey-600\";\r\n\r\n case \"grey-500\":\r\n return \"falcon-grey-500\";\r\n\r\n case \"grey-100\":\r\n return \"falcon-grey-100\";\r\n\r\n case \"grey-400\":\r\n return \"falcon-grey-400\";\r\n\r\n case \"ice-white\":\r\n return \"falcon-ice-white\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const getElementMaximumHeight = (\r\n idPrefix: string,\r\n totalCards: number\r\n): void => {\r\n const heightArray: any[] = [];\r\n let maxValue: number;\r\n let item = 0;\r\n let val: HTMLElement | null;\r\n //push height of the elements into an array to find maximum value\r\n\r\n [...Array(totalCards)].forEach(() => {\r\n val = document.getElementById(`${idPrefix}${item}`);\r\n if (val != null) {\r\n val.style.height = \"unset\";\r\n heightArray.push(val?.clientHeight);\r\n item++;\r\n }\r\n });\r\n maxValue = Math.max(...heightArray);\r\n item = 0;\r\n //sets the maximum value obtained as minHeight to that element of each card\r\n [...Array(totalCards)].forEach(() => {\r\n val = document.getElementById(`${idPrefix}${item}`);\r\n if (val != null) {\r\n val.style.height = `${maxValue}px`;\r\n }\r\n item++;\r\n });\r\n};\r\n\r\nexport const getFalconBackgroundColorClass = (type: string): string => {\r\n switch (type) {\r\n case 'grey-100':\r\n return 'falcon-background-grey-100';\r\n case 'ice-white':\r\n return 'falcon-background-ice-white';\r\n case 'transparent':\r\n return 'falcon-background-transparent';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nexport const getFalconGradientClass = (type: string): string => {\r\n switch (type) {\r\n case 'rubyglow-diagonal':\r\n return 'falcon-gradient-rubyglow-diagonal';\r\n\r\n case 'rubyglow-inverted-diagonal':\r\n return 'falcon-gradient-rubyglow-inverted-diagonal';\r\n\r\n case 'rubyglow-vertical':\r\n return 'falcon-gradient-rubyglow-vertical';\r\n\r\n case 'pinksky-diagonal':\r\n return 'falcon-gradient-pinksky-diagonal';\r\n \r\n case 'pinksky-inverted-diagonal':\r\n return 'falcon-gradient-pinksky-inverted-diagonal';\r\n\r\n case 'pinksky-vertical':\r\n return 'falcon-gradient-pinksky-vertical';\r\n\r\n case 'bluehaze-diagonal':\r\n return 'falcon-gradient-bluehaze-diagonal';\r\n\r\n case 'bluehaze-vertical':\r\n return 'falcon-gradient-bluehaze-vertical';\r\n\r\n case 'greencloud-diagonal':\r\n return 'falcon-gradient-greencloud-diagonal';\r\n\r\n case 'greencloud-inverted-diagonal':\r\n return 'falcon-gradient-greencloud-inverted-diagonal';\r\n\r\n case 'greencloud-vertical':\r\n return 'falcon-gradient-greencloud-vertical';\r\n\r\n case 'peachfog-diagonal':\r\n return 'falcon-gradient-peachfog-diagonal';\r\n \r\n case 'peachfog-inverted-diagonal':\r\n return 'falcon-gradient-peachfog-inverted-diagonal';\r\n\r\n case 'peachfog-vertical':\r\n return 'falcon-gradient-peachfog-vertical';\r\n\r\n case 'darkblue-haze':\r\n return 'falcon-gradient-dark-blue-haze';\r\n\r\n case 'skyfuel-diagonal':\r\n return 'falcon-gradient-skyfuel-diagonal';\r\n\r\n case 'skyfuel-vertical':\r\n return 'falcon-gradient-skyfuel-vertical';\r\n\r\n case 'skyfuel-inverted-diagonal':\r\n return 'falcon-gradient-skyfuel-inverted-diagonal';\r\n\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nexport const countZero = (value: any) => {\r\n value = Number(value);\r\n let price: any = 0;\r\n const reg = '^[0-9][^.]*$';\r\n const isNumericPrice = new RegExp(reg).test(value.toString());\r\n if (isNumericPrice) {\r\n price = value + '.-';\r\n } else {\r\n price = value.toFixed(2).replace(/\\.00$/, '');\r\n }\r\n return price;\r\n};\r\n\r\nexport const setLocalStoreWithExpiry = (key: string, value: any, ttl?: any): void => {\r\n let item: any = null;\r\n const now: any = new Date();\r\n // `item` is an object which contains the original value\r\n // as well as the time when it's supposed to expire\r\n item = {\r\n value: value,\r\n expiry: ttl ? now.getTime() + ttl : null\r\n };\r\n localStorage.setItem(key, JSON.stringify(item));\r\n};\r\n\r\nexport const getLocalStorageWithExpiry = (key: string): any => {\r\n const itemStr = typeof window !== 'undefined' && localStorage.getItem(key);\r\n // if the item doesn't exist, return null\r\n const now: Date = new Date();\r\n if (!itemStr) {\r\n return null;\r\n }\r\n let item: any = {};\r\n try {\r\n item = JSON.parse(itemStr);\r\n if (item.expiry && now.getTime() > item.expiry) {\r\n removeLocalStorage(key);\r\n return null;\r\n }\r\n } catch (error) {\r\n return itemStr;\r\n }\r\n return item?.value;\r\n};\r\n\r\nexport const removeLocalStorage = (key: string): void => {\r\n localStorage.removeItem(key);\r\n};\r\n\r\nexport const viewport = (): string => {\r\n const [width, setWidth] = useState<number>(() =>\r\n typeof window !== 'undefined' ? window.innerWidth : 0\r\n );\r\n useEffect(() => {\r\n const updateSize = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n window.addEventListener('resize', updateSize);\r\n // Sync once on mount in case value drifted between SSR and hydration\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, []);\r\n if (width >= 1440) {\r\n return 'large-desktop';\r\n } else if (width < 1440 && width >= 1024) {\r\n return 'desktop';\r\n } else if (width < 1024 && width >= 768) {\r\n return 'tablet';\r\n } else if (width < 768 && width > 0) {\r\n return 'mobile';\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\nexport const getCookies = (cname: string): any => {\r\n const name = cname + '=';\r\n const cookies = document.cookie.split(';');\r\n let cookieData: any;\r\n cookies.some((cookie) => {\r\n while (cookie.charAt(0) === ' ') {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n cookieData = JSON.parse(decodeURIComponent(cookie.substring(name.length, cookie.length)));\r\n return true;\r\n }\r\n return false;\r\n });\r\n return cookieData;\r\n};\r\n\r\nexport const isTouchScreen = (): boolean => {\r\n const [touchScreen, setTouchScreen] = useState<boolean>(false);\r\n const onResize = () => {\r\n const mediaQuery = window.matchMedia('(pointer:coarse)');\r\n setTouchScreen(mediaQuery.matches);\r\n };\r\n useEffect(() => {\r\n onResize();\r\n window.addEventListener('resize', onResize);\r\n return () => window.removeEventListener('resize', onResize);\r\n }, []);\r\n return touchScreen;\r\n};\r\n\r\n// get price value based on type\r\nexport const returnPriceByType = (priceList: any, type: string) => {\r\n const price = (priceList || [])?.filter((val: any) => val?.priceType?.toLowerCase() === type);\r\n if (price?.length > 0) {\r\n return price?.[0]?.value;\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\n//replace storyblok content{0} with dynamic value\r\nexport const replacePlaceholder = (source: string, params: any): string => {\r\n const text: string = source?.replace(\r\n /{\\w+}/g,\r\n (placeholder: any) => params[placeholder.substring(1, placeholder.length - 1)] || placeholder\r\n );\r\n return text;\r\n};\r\n\r\nexport const isModemPresent = () => {\r\n if (document) {\r\n if (document.getElementById('no-modem')) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const iconHandler = (type: string): string => {\r\n switch (type) {\r\n case 'success':\r\n return '/icons/checksuccess.svg';\r\n case 'error':\r\n return '/icons/error.svg';\r\n case 'info':\r\n return '/icons/info.svg';\r\n case 'warning':\r\n return '/icons/alert.svg';\r\n case 'tip':\r\n return '/icons/tip.svg';\r\n case 'infoWhite':\r\n return '/icons/info.svg';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\n// checks if the url is like \"/lang/\" and replaces it with '#'. Or returns the configured url\r\nexport const checkLinkWithLang = (url: string) => {\r\n if (typeof window !== 'undefined') {\r\n if (url == '/' + window.document.documentElement.getAttribute('lang') + '/') {\r\n return undefined;\r\n } else {\r\n return url;\r\n }\r\n } else {\r\n return '#';\r\n }\r\n};\r\n\r\nexport const getSBAssetUrl = (wafIdentifier: any, image?: string): string => {\r\n const [defaultImageEndpoint]: [string] = ['https://a.storyblok.com/f/113473/'];\r\n const [s3Endpoint]: [string] = [wafIdentifier + 'asset/'];\r\n if (image && typeof image === 'string') {\r\n return image.replace(defaultImageEndpoint, `${s3Endpoint}`);\r\n }\r\n return image || '';\r\n};\r\n\r\nexport const getCompressedImage = (wafIdentifier: any,imageUrl: string): string => {\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n let extension: string = '';\r\n \r\n // to replace the default storyblok endpoint with sunrise.ch endpoint\r\n extension += getSBAssetUrl(wafIdentifier,imageUrl);\r\n // to add the compression parameters for image compression\r\n extension += '/m/';\r\n\r\n return extension;\r\n};\r\n\r\n//To get notes values\r\nexport const getNoteValues = (hardwareProducts: any, key: string) => {\r\n let value;\r\n if (hardwareProducts?.note) {\r\n (hardwareProducts?.note || []).forEach((data: any) => {\r\n data?.author === key && (value = data?.text);\r\n });\r\n }\r\n return value;\r\n};\r\n\r\n/**US 349849 - MIA migration\r\n * price model\r\n * @param value string | number\r\n * @returns\r\n * 2.0 -> 2.00\r\n * 2.1 -> 2.10\r\n * 2.15 -> 2.15\r\n * 0.0 -> 0.00\r\n * 0.5 -> 0.50\r\n */\r\n\r\nexport const countZeros = (value: any) => {\r\n value = Number(value);\r\n let price: any = 0;\r\n price = value.toFixed(2);\r\n return price;\r\n};\r\nexport const viewportMultiItem = (): string => {\r\n const [width, setWidth] = useState<number>(() =>\r\n typeof window !== 'undefined' ? window.innerWidth : 0\r\n );\r\n useEffect(() => {\r\n const updateSize = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n window.addEventListener('resize', updateSize);\r\n // Sync once on mount in case value drifted between SSR and hydration\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, []);\r\n if (width >= 1440 && width < 7000) {\r\n return 'desktop';\r\n } else if (width >= 1024 && width < 1440) {\r\n return 'tabletLarge';\r\n } else if (width < 1024 && width >= 768) {\r\n return 'tabletMedium';\r\n } else if (width < 768 && width > 0) {\r\n return 'mobile';\r\n } else {\r\n return '';\r\n }\r\n};\r\n\r\nexport const setSessionStorage = (sname: string, valueobj: any): any => {\r\n if (sname) sessionStorage.setItem(sname, JSON.stringify(valueobj));\r\n};\r\n\r\nexport const getSessionStorage = (sname: string): any => {\r\n if (typeof window === 'undefined') {\r\n return null;\r\n }\r\n if (sname) {\r\n const sessionData = sessionStorage.getItem(sname);\r\n if (!sessionData) {\r\n return null;\r\n }\r\n return JSON.parse(sessionData);\r\n }\r\n};\r\n\r\nexport const rp_lastcartItemWithParentPOType = (\r\n cart: any[],\r\n lastCartItems: Record<string, any>,\r\n parent: any,\r\n home: any\r\n ): Record<string, any> => {\r\n if (Array.isArray(cart)) {\r\n cart.forEach((cart_rp: any) => {\r\n // Detect which data structure we're working with\r\n const hasItemType = cart_rp?.itemType !== undefined;\r\n const hasProductOffering = cart_rp?.productOffering !== undefined;\r\n // Determine the type and children based on data structure\r\n let currentType: string | undefined;\r\n let children: any[] | undefined;\r\n \r\n if (hasItemType) {\r\n // First data structure: uses itemType and items\r\n currentType = cart_rp?.itemType;\r\n children = cart_rp?.items;\r\n\r\n } else if (hasProductOffering) {\r\n // Second data structure: uses productOffering.poType and cartItem\r\n currentType = cart_rp?.productOffering?.poType;\r\n children = cart_rp?.cartItem;\r\n\r\n }\r\n \r\n // Check if this is a parent order type\r\n const parentOrderTypes = [\r\n 'MOBILE_ORDER',\r\n 'HOME_ORDER',\r\n 'STANDALONE_TV_ORDER',\r\n 'MOBILE_INTERNET_ORDER',\r\n 'EXTRASIM_RATEPLAN',\r\n 'ACCESSORY',\r\n 'STANDALONE_HARDWARE'\r\n ];\r\n \r\n // If this is a parent order, update home for this branch only\r\n let currentHome = home;\r\n if (currentType && parentOrderTypes.includes(currentType)) {\r\n currentHome = hasItemType ? cart_rp : cart_rp?.productOffering;\r\n }\r\n \r\n // If this is a leaf node (no children or empty children array)\r\n if (!children || children.length === 0) {\r\n if (cart_rp && currentHome) {\r\n // Get current item type based on data structure\r\n let itemType: string | undefined = currentType;\r\n \r\n // If itemType is undefined, try to infer from parent\r\n if (!itemType && hasProductOffering && parent?.productOffering?.poType) {\r\n // Use parent's poType as the item type for leaf nodes\r\n itemType = parent.productOffering.poType;\r\n }\r\n \r\n if (!itemType) {\r\n return;\r\n }\r\n \r\n // Get home type key based on data structure\r\n const homeTypeKey = hasItemType ? currentHome?.itemType : currentHome?.poType;\r\n \r\n if (!homeTypeKey) {\r\n return;\r\n }\r\n \r\n // Organize items by home type and item type\r\n if (Object.prototype?.hasOwnProperty.call(lastCartItems, homeTypeKey)) {\r\n if (Object.prototype?.hasOwnProperty.call(lastCartItems[homeTypeKey], itemType)) {\r\n // Item type already exists, push to array\r\n let temp = lastCartItems[homeTypeKey]?.[itemType] ?? [];\r\n if (!Array.isArray(temp)) {\r\n temp = [temp];\r\n }\r\n temp.push(cart_rp);\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: {...temp, itemType: itemType} };\r\n } else {\r\n // First item of this type\r\n const serviceOptionTypes = [\r\n 'TV_SERVICE_OPTION',\r\n 'INTERNET_SERVICE_OPTION',\r\n 'MOBILEPOSTPAID_SERVICE_OPTION',\r\n 'MOBILEPREPAID_SERVICE_OPTION'\r\n ];\r\n \r\n if (serviceOptionTypes.includes(itemType)) {\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: [{...cart_rp, itemType: itemType}]};\r\n } else {\r\n lastCartItems[homeTypeKey] = { ...lastCartItems[homeTypeKey], [itemType]: {...cart_rp, itemType: itemType}};\r\n }\r\n }\r\n } else {\r\n // First time seeing this home type\r\n const serviceOptionTypes = [\r\n 'TV_SERVICE_OPTION',\r\n 'INTERNET_SERVICE_OPTION',\r\n 'MOBILEPOSTPAID_SERVICE_OPTION',\r\n 'MOBILEPREPAID_SERVICE_OPTION'\r\n ];\r\n if (serviceOptionTypes.includes(itemType)) {\r\n lastCartItems[homeTypeKey] = { \r\n [itemType]: [{...cart_rp, itemType: itemType}], \r\n ['PARENT_ITEM']: currentHome \r\n };\r\n } else {\r\n lastCartItems[homeTypeKey] = { \r\n [itemType]: {...cart_rp, itemType: itemType}, \r\n ['PARENT_ITEM']: currentHome \r\n };\r\n }\r\n }\r\n }\r\n } else {\r\n // Recursively process children with the current home context\r\n rp_lastcartItemWithParentPOType(children, lastCartItems, cart_rp, currentHome);\r\n }\r\n });\r\n }\r\n\r\n return lastCartItems;\r\n};\r\nexport const isStandaloneOption = (product:any) =>{\r\n return product.some((item:any) => item.type === TV_SERVICE_OPTION);\r\n}\r\n\r\n/**\r\n * Returns a UTC timestamp in the format 'YYYYMMDDTHHmmss.SSS GMT'\r\n * Replaces moment().utc().format('YYYYMMDDTHHmmss.SSS') + ' GMT'\r\n */\r\nexport const getUtcTimestamp = (): string => {\r\n const now = new Date();\r\n const year = now.getUTCFullYear();\r\n const month = String(now.getUTCMonth() + 1).padStart(2, '0');\r\n const day = String(now.getUTCDate()).padStart(2, '0');\r\n const hours = String(now.getUTCHours()).padStart(2, '0');\r\n const minutes = String(now.getUTCMinutes()).padStart(2, '0');\r\n const seconds = String(now.getUTCSeconds()).padStart(2, '0');\r\n const ms = String(now.getUTCMilliseconds()).padStart(3, '0');\r\n return `${year}${month}${day}T${hours}${minutes}${seconds}.${ms} GMT`;\r\n};"],"names":["getFalconColorsClass","type","getElementMaximumHeight","idPrefix","totalCards","heightArray","maxValue","val","item","Array","forEach","document","getElementById","style","height","push","clientHeight","Math","max","getFalconBackgroundColorClass","getFalconGradientClass","countZero","value","Number","price","RegExp","test","toString","toFixed","replace","setLocalStoreWithExpiry","key","ttl","now","Date","expiry","getTime","localStorage","setItem","JSON","stringify","getLocalStorageWithExpiry","itemStr","window","getItem","parse","removeLocalStorage","error","removeItem","viewport","width","setWidth","useState","innerWidth","useEffect","updateSize","addEventListener","removeEventListener","getCookies","cname","name","cookieData","cookie","split","some","charAt","substring","indexOf","decodeURIComponent","length","isTouchScreen","touchScreen","setTouchScreen","onResize","mediaQuery","matchMedia","matches","replacePlaceholder","source","params","placeholder","iconHandler","checkLinkWithLang","url","documentElement","getAttribute","getSBAssetUrl","wafIdentifier","image","defaultImageEndpoint","s3Endpoint","getCompressedImage","imageUrl","extension","countZeros","viewportMultiItem","getSessionStorage","sname","sessionData","sessionStorage","rp_lastcartItemWithParentPOType","cart","lastCartItems","parent","home","isArray","cart_rp","hasItemType","undefined","itemType","hasProductOffering","productOffering","currentType","children","items","_a","poType","cartItem","currentHome","includes","homeTypeKey","_c","Object","prototype","hasOwnProperty","call","_d","temp","_f","_e","assign","PARENT_ITEM","isStandaloneOption","product","TV_SERVICE_OPTION","getUtcTimestamp","getUTCFullYear","String","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds"],"mappings":"mGAGO,MAAMA,EAAwBC,IACnC,OAAQA,GACN,IAAK,WACH,MAAO,kBAET,IAAK,WACH,MAAO,kBAET,IAAK,WACH,MAAO,kBAET,IAAK,WACH,MAAO,kBAET,IAAK,YACH,MAAO,mBAET,QACE,MAAO,KAIAC,EAA0B,CACrCC,EACAC,KAEA,MAAMC,EAAqB,GAC3B,IAAIC,EAEAC,EADAC,EAAO,EAIX,IAAIC,MAAML,IAAaM,QAAQ,KAC7BH,EAAMI,SAASC,eAAe,GAAGT,IAAWK,KACjC,MAAPD,IACFA,EAAIM,MAAMC,OAAS,QACnBT,EAAYU,KAAKR,aAAG,EAAHA,EAAKS,cACtBR,OAGJF,EAAWW,KAAKC,OAAOb,GACvBG,EAAO,EAEP,IAAIC,MAAML,IAAaM,QAAQ,KAC7BH,EAAMI,SAASC,eAAe,GAAGT,IAAWK,KACjC,MAAPD,IACFA,EAAIM,MAAMC,OAAS,GAAGR,OAExBE,OAISW,EAAiClB,IAC5C,OAAQA,GACN,IAAK,WACH,MAAO,6BACT,IAAK,YACH,MAAO,8BACT,IAAK,cACH,MAAO,gCACT,QACE,MAAO,KAIAmB,EAA0BnB,IACrC,OAAQA,GACN,IAAK,oBACH,MAAO,oCAET,IAAK,6BACH,MAAO,6CAET,IAAK,oBACH,MAAO,oCAET,IAAK,mBACH,MAAO,mCAET,IAAK,4BACH,MAAO,4CAET,IAAK,mBACH,MAAO,mCAET,IAAK,oBACH,MAAO,oCAET,IAAK,oBACH,MAAO,oCAET,IAAK,sBACH,MAAO,sCAET,IAAK,+BACH,MAAO,+CAET,IAAK,sBACH,MAAO,sCAET,IAAK,oBACH,MAAO,oCAET,IAAK,6BACH,MAAO,6CAET,IAAK,oBACH,MAAO,oCAET,IAAK,gBACH,MAAO,iCAET,IAAK,mBACH,MAAO,mCAET,IAAK,mBACH,MAAO,mCAET,IAAK,4BACH,MAAO,4CAET,QACE,MAAO,KAIAoB,EAAaC,IACxBA,EAAQC,OAAOD,GACf,IAAIE,EAAa,EAQjB,OAJEA,EAFqB,IAAIC,OADf,gBAC2BC,KAAKJ,EAAMK,YAExCL,EAAQ,KAERA,EAAMM,QAAQ,GAAGC,QAAQ,QAAS,IAErCL,GAGIM,EAA0B,CAACC,EAAaT,EAAYU,KAC/D,IAAIxB,EAAY,KAChB,MAAMyB,EAAW,IAAIC,KAGrB1B,EAAO,CACLc,MAAOA,EACPa,OAAQH,EAAMC,EAAIG,UAAYJ,EAAM,MAEtCK,aAAaC,QAAQP,EAAKQ,KAAKC,UAAUhC,KAG9BiC,EAA6BV,IACxC,MAAMW,EAA4B,oBAAXC,QAA0BN,aAAaO,QAAQb,GAEhEE,EAAY,IAAIC,KACtB,IAAKQ,EACH,OAAO,KAET,IAAIlC,EAAY,CAAA,EAChB,IAEE,GADAA,EAAO+B,KAAKM,MAAMH,GACdlC,EAAK2B,QAAUF,EAAIG,UAAY5B,EAAK2B,OAEtC,OADAW,EAAmBf,GACZ,IAEX,CAAE,MAAOgB,GACP,OAAOL,CACT,CACA,OAAOlC,eAAAA,EAAMc,OAGFwB,EAAsBf,IACjCM,aAAaW,WAAWjB,IAGbkB,EAAW,KACtB,MAAOC,EAAOC,GAAYC,EAAiB,IACvB,oBAAXT,OAAyBA,OAAOU,WAAa,GAWtD,OATAC,EAAU,KACR,MAAMC,EAAa,KACjBJ,EAASR,OAAOU,aAKlB,OAHAV,OAAOa,iBAAiB,SAAUD,GAElCA,IACO,IAAMZ,OAAOc,oBAAoB,SAAUF,IACjD,IACCL,GAAS,KACJ,gBACEA,EAAQ,MAAQA,GAAS,KAC3B,UACEA,EAAQ,MAAQA,GAAS,IAC3B,SACEA,EAAQ,KAAOA,EAAQ,EACzB,SAEA,IAIEQ,EAAcC,IACzB,MAAMC,EAAOD,EAAQ,IAErB,IAAIE,EAWJ,OAZgBlD,SAASmD,OAAOC,MAAM,KAE9BC,KAAMF,IACZ,KAA4B,MAArBA,EAAOG,OAAO,IACnBH,EAASA,EAAOI,UAAU,GAE5B,OAA6B,IAAzBJ,EAAOK,QAAQP,KACjBC,EAAatB,KAAKM,MAAMuB,mBAAmBN,EAAOI,UAAUN,EAAKS,OAAQP,EAAOO,WACzE,KAIJR,GAGIS,EAAgB,KAC3B,MAAOC,EAAaC,GAAkBpB,GAAkB,GAClDqB,EAAW,KACf,MAAMC,EAAa/B,OAAOgC,WAAW,oBACrCH,EAAeE,EAAWE,UAO5B,OALAtB,EAAU,KACRmB,IACA9B,OAAOa,iBAAiB,SAAUiB,GAC3B,IAAM9B,OAAOc,oBAAoB,SAAUgB,IACjD,IACIF,GAcIM,EAAqB,CAACC,EAAgBC,IAC5BD,aAAM,EAANA,EAAQjD,QAC3B,SACCmD,GAAqBD,EAAOC,EAAYd,UAAU,EAAGc,EAAYX,OAAS,KAAOW,GAgBzEC,EAAehF,IAC1B,OAAQA,GACN,IAAK,UACH,MAAO,0BACT,IAAK,QACH,MAAO,mBACT,IAAK,OAML,IAAK,YACH,MAAO,kBALT,IAAK,UACH,MAAO,mBACT,IAAK,MACH,MAAO,iBAGT,QACE,MAAO,KAKAiF,EAAqBC,GACV,oBAAXxC,OACLwC,GAAO,IAAMxC,OAAOhC,SAASyE,gBAAgBC,aAAa,QAAU,SACtE,EAEOF,EAGF,IAIEG,EAAgB,CAACC,EAAoBC,KAChD,MAAOC,GAAkC,CAAC,sCACnCC,GAAwB,CAACH,EAAgB,UAChD,OAAIC,GAA0B,iBAAVA,EACXA,EAAM3D,QAAQ4D,EAAsB,GAAGC,KAEzCF,GAAS,IAGLG,EAAqB,CAACJ,EAAmBK,KAElD,IAAIC,EAAoB,GAOxB,OAJAA,GAAaP,EAAcC,EAAcK,GAEzCC,GAAa,MAENA,GAyBEC,EAAcxE,IAEzB,IAAIE,EAAa,EAEjB,OADAA,GAFAF,EAAQC,OAAOD,IAEDM,QAAQ,GACfJ,GAEIuE,EAAoB,KAC/B,MAAO7C,EAAOC,GAAYC,EAAiB,IACvB,oBAAXT,OAAyBA,OAAOU,WAAa,GAWtD,OATAC,EAAU,KACR,MAAMC,EAAa,KACjBJ,EAASR,OAAOU,aAKlB,OAHAV,OAAOa,iBAAiB,SAAUD,GAElCA,IACO,IAAMZ,OAAOc,oBAAoB,SAAUF,IACjD,IACCL,GAAS,MAAQA,EAAQ,IACpB,UACEA,GAAS,MAAQA,EAAQ,KAC3B,cACEA,EAAQ,MAAQA,GAAS,IAC3B,eACEA,EAAQ,KAAOA,EAAQ,EACzB,SAEA,IAQE8C,EAAqBC,IAChC,GAAsB,oBAAXtD,OACT,OAAO,KAEE,CACT,MAAMuD,EAAcC,eAAevD,QAAQqD,GAC3C,OAAKC,EAGE3D,KAAKM,MAAMqD,GAFT,IAGX,GAGWE,EAAkC,CAC3CC,EACAC,EACAC,EACAC,KAEI/F,MAAMgG,QAAQJ,IAChBA,EAAK3F,QAASgG,oBAEZ,MAAMC,OAAoCC,KAAtBF,aAAO,EAAPA,EAASG,UACvBC,OAAkDF,KAA7BF,aAAO,EAAPA,EAASK,iBAEpC,IAAIC,EACAC,EAEAN,GAEFK,EAAcN,eAAAA,EAASG,SACvBI,EAAWP,eAAAA,EAASQ,OAEXJ,IAETE,EAAsC,QAAxBG,EAAAT,aAAO,EAAPA,EAASK,uBAAe,IAAAI,OAAA,EAAAA,EAAEC,OACxCH,EAAWP,eAAAA,EAASW,UAgBtB,IAAIC,EAAcd,EAMlB,GALIQ,GAZqB,CACvB,eACA,aACA,sBACA,wBACA,oBACA,YACA,uBAKkCO,SAASP,KAC3CM,EAAcX,EAAcD,EAAUA,aAAO,EAAPA,EAASK,iBAI5CE,GAAgC,IAApBA,EAAS5C,OAsExB+B,EAAgCa,EAAUX,EAAeI,EAASY,QArElE,GAAIZ,GAAWY,EAAa,CAE1B,IAAIT,EAA+BG,EAQnC,IALKH,GAAYC,cAAsBP,aAAM,EAANA,EAAQQ,sCAAiBK,UAE9DP,EAAWN,EAAOQ,gBAAgBK,SAG/BP,EACH,OAIF,MAAMW,EAAcb,EAAcW,aAAW,EAAXA,EAAaT,SAAWS,aAAW,EAAXA,EAAaF,OAEvE,IAAKI,EACH,OAIF,WAAIC,EAAAC,OAAOC,gCAAWC,eAAeC,KAAKvB,EAAekB,GACvD,GAAoB,UAAhBE,OAAOC,iBAAS,IAAAG,OAAA,EAAAA,EAAEF,eAAeC,KAAKvB,EAAckB,GAAcX,GAAW,CAE/E,IAAIkB,EAA6C,QAAtCC,EAA0B,QAA1BC,EAAA3B,EAAckB,UAAY,IAAAS,OAAA,EAAAA,EAAGpB,UAAS,IAAAmB,EAAAA,EAAI,GAChDvH,MAAMgG,QAAQsB,KACjBA,EAAO,CAACA,IAEVA,EAAKhH,KAAK2F,GACVJ,EAAckB,kCAAoBlB,EAAckB,IAAY,CAAEX,CAACA,kCAAekB,GAAI,CAAElB,SAAUA,KAChG,KAAO,CAEsB,CACzB,oBACA,0BACA,gCACA,gCAGqBU,SAASV,GAC9BP,EAAckB,GAAYE,OAAAQ,OAAAR,OAAAQ,OAAA,GAAQ5B,EAAckB,IAAY,CAAEX,CAACA,GAAW,gCAAKH,GAAO,CAAEG,SAAUA,OAElGP,EAAckB,kCAAoBlB,EAAckB,IAAY,CAAEX,CAACA,kCAAeH,GAAO,CAAEG,SAAUA,KAErG,KACK,CAEsB,CACzB,oBACA,0BACA,gCACA,gCAEqBU,SAASV,GAC9BP,EAAckB,GAAe,CAC3BX,CAACA,GAAW,CAAAa,OAAAQ,OAAAR,OAAAQ,OAAA,CAAA,EAAKxB,GAAO,CAAEG,SAAUA,KACpCsB,YAAiBb,GAGnBhB,EAAckB,GAAe,CAC3BX,CAACA,GAASa,OAAAQ,OAAAR,OAAAQ,OAAA,CAAA,EAAMxB,IAASG,SAAUA,IACnCsB,YAAiBb,EAGvB,CACF,IAQDhB,GAEI8B,EAAsBC,GAC1BA,EAAQrE,KAAMxD,GAAaA,EAAKP,OAASqI,GAOrCC,EAAkB,KAC7B,MAAMtG,EAAM,IAAIC,KAQhB,MAAO,GAPMD,EAAIuG,mBACHC,OAAOxG,EAAIyG,cAAgB,GAAGC,SAAS,EAAG,OAC5CF,OAAOxG,EAAI2G,cAAcD,SAAS,EAAG,QACnCF,OAAOxG,EAAI4G,eAAeF,SAAS,EAAG,OACpCF,OAAOxG,EAAI6G,iBAAiBH,SAAS,EAAG,OACxCF,OAAOxG,EAAI8G,iBAAiBJ,SAAS,EAAG,QAC7CF,OAAOxG,EAAI+G,sBAAsBL,SAAS,EAAG"}
package/dist/index.d.ts CHANGED
@@ -384,6 +384,7 @@ interface MultiItemAccessoriesSchema extends GenericSBProps {
384
384
  watchesAnalyticsTitle: string;
385
385
  tabletsAnalyticsTitle: string;
386
386
  enableExistingSubscription: boolean;
387
+ freeFUText?: string;
387
388
  }
388
389
 
389
390
  interface MultiItemAccessoriesProps extends ComponentWithContentProps<MultiItemAccessoriesSchema> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunrise-upc/mobile-prod-card",
3
- "version": "11.10.7",
3
+ "version": "11.10.8",
4
4
  "description": "Starter project to create reusable functional component",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",