@sunrise-upc/mobile-prod-card 12.0.2 → 12.0.4

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,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 t from"../DeviceCarouselComponent.js";import d from"../../ResponsiveRow/row.js";import{viewport as v,replacePlaceholder as a,getCompressedImage as r,countZero as c}from"../../../utils/utils.js";import{getCookie as s}from"cookies-next";import u from"../../FalconButtonV2/FalconButtonV2.js";import m from"./AccessoryModal.js";import p from"../../richtext.js";import{INFO as y,REPLACESELECTION as g,POPUP as b,OPENPOPUP as h,GAEVENT as E,OPEN as f,CLOSE as T,FORM as P,ACCORDIONCLICK as N,CONTINUE as A,LINK as I,TABCLICK as k,CLOSEPOPUP as C,REMOVEFROMCART as R,ADD_TO_CART as S,KEEPPREVIOUS as x,CTABUTTONCLICK as $,REPLACE as w}from"../../../Analytics/AnalyticsConstants.js";import{trackNewDatalayerEvent as j,trackViewItem as B}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as F,ACCESSORY as O,WATCHES as _,TABLETS as L,CONTRACT as M,FLEX_UPGRADE as D,HARDWARE as K,REMOVE as U,ADD 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,buildSingleItemCartPayload 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,isSubscriptionFlow:X,setAccessoriesSelected:Y})=>{var Z,ee,le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge,be,he;const Ee=s("one-commerce-cartId"),[fe,Te]=i(!1),Pe=v(),[Ne,Ae]=i(!1),[Ie,ke]=i(null),[Ce,Re]=i(0),{store:Se,dispatch:xe}=V(),$e=J(xe),we=H(),{updateAccessoryCartFailure:je}=Se,{multiItemAccessoriessList:Be,deviceSessionValues:Fe,selectedPaymentType:Oe,recommendedAccessories:_e,cartData:Le,loading:Me,showMiniCart:De}=Se,Ke=!!(null===(ee=null===(Z=[F])||void 0===Z?void 0:Z.includes)||void 0===ee?void 0:ee.call(Z,null===(oe=null===(ie=null===(le=null==_e?void 0:_e[null==Se?void 0:Se.selectedTab])||void 0===le?void 0:le.hardware)||void 0===ie?void 0:ie[0])||void 0===oe?void 0:oe.recommendationProcessingType))||!(null==Fe?void 0:Fe.hardwareVariant),Ue={[O]:X?Ke?+(null==G?void 0:G.ratePlanAccessoriesLimit):+(null==G?void 0:G.winAccessoriesLimit):+(null==G?void 0:G.accessoriesLimit),WATCHES:1,TABLETS:1},ze=e=>{j(E,N,{component:P,click_text:e?f:T}),$e.setShowMiniCart(e)},Ve=JSON.parse(a(JSON.stringify(null==G?void 0:G.cartLimitWarningText),[null==Ue?void 0:Ue[Se.selectedTab].toString()])),Je=null===(ne=null==q?void 0:q.getInstance())||void 0===ne?void 0:ne.getAssetPath(),He=(e,l)=>{const i=W(e,l,null==Se?void 0:Se.selectedTab,Se);i.length>0&&we.multiItemAccessorycreateCartRequest({id:Ee,redirectUrl:"",skipRedirect:!0,previousTab:null==Se?void 0:Se.selectedTab,cartItems:i})},We=(e,l,i)=>{var o,n;if(e.preventDefault(),null===(o=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])qe(E,R,l,i),He(l,U);else{if(Ye(l,i))return;qe(S,S,l,i),He(l,z)}},qe=(e,l,i,o)=>{var n,t,d,v,a,r,c,s;B(e,l,{displayName:null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name,productId:null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.id,priceValue:null===(v=null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.oneTimePrice)||void 0===v?void 0:v.base,index:o,variant:null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.color,storage:null===(s=null===(c=null==i?void 0:i.recomApiResponse)||void 0===c?void 0:c.variantCategory)||void 0===s?void 0:s.storage,hardwareCategory:null==Se?void 0:Se.selectedTab})},Ge=e=>{var l,i,o;e.preventDefault();if((null===(l=Object.keys(je))||void 0===l?void 0:l.length)>0)return Te(!1),void we.setupdateAccessoryCartFailure({});const n=X?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;j(E,k,{component:I,click_text:A}),window.location.href=n},Qe=()=>{var e;Te(e=>!e),(null===(e=Object.keys(je))||void 0===e?void 0:e.length)>0&&we.setupdateAccessoryCartFailure({})};o(()=>{var e;(null===(e=Object.keys(je))||void 0===e?void 0:e.length)>0&&Te(e=>!e)},[je]);const Xe=()=>{Ae(!1),ke(null),Re(0)},Ye=(e,l)=>Object.keys((null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||{}).length>=(null==Ue?void 0:Ue[Se.selectedTab])&&(Ae(!0),ke(e||null),Re(l||0),!0),Ze={},el={},ll={};((null==G?void 0:G.recommendationType)||[]).map(e=>{var l;Ze[e]=(e=>Object.keys((null==Le?void 0:Le[e])||{}).length)(e),el[`${e}_icon`]=null===(l=null==G?void 0:G[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,ll[`${e}_title`]=null==G?void 0:G[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:il,totalOneTimePrice:ol,totalMonthlyPrice:nl}=(()=>{var e,l,i,o,n,t,d,v,a,r,c,s;let u=0,m=0;const p=((null==G?void 0:G.recommendationType)||[]).flatMap(e=>{const l=(null==Be?void 0:Be[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;return null===(i=null==Le?void 0:Le[e])||void 0===i?void 0:i[null===(o=null==l?void 0:l.recomApiResponse)||void 0===o?void 0:o.id]}).map(l=>{var i,o,n,t;return u+=+((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),m+=+((null===(t=null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.recurringPrice)||void 0===t?void 0:t.monthlyInstallment)||0),Object.assign(Object.assign({},l),{tabKey:e})}),n=Object.keys((null==Le?void 0:Le[e])||{}).filter(e=>!i.has(e)).map(l=>{const i=(e=>{var l,i,o,n,t,d,v,a,r,c,s,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 y="",g=0,b=0;for(const h of e){y||(y=(null==h?void 0:h.name)||(null===(l=null==h?void 0:h.productOffering)||void 0===l?void 0:l.name)||(null===(i=null==h?void 0:h.productOffering)||void 0===i?void 0:i.id)||(null==h?void 0:h.id)||"");const e=(null===(n=null===(o=null==h?void 0:h.itemPrice)||void 0===o?void 0:o[0])||void 0===n?void 0:n.cartPrice)||[],E=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),f=null===(t=E.flatMap(e=>(null==e?void 0:e.additionalDetails)||[]).find(e=>"originalInstallment"===(null==e?void 0:e.id)))||void 0===t?void 0:t.value,T=e.find(e=>"paynow"===(null==e?void 0:e.recurringChargePeriod)),P=null===(v=null===(d=null==T?void 0:T.additionalDetails)||void 0===d?void 0:d.find(e=>"streetPrice"===(null==e?void 0:e.id)))||void 0===v?void 0:v.value,N=(null==h?void 0:h.prices)||[],A=N.filter(e=>"RECURRING"===(null==e?void 0:e.priceType)),I=null===(a=A.find(e=>{var l;return 1===(null===(l=null==e?void 0:e.cycle)||void 0===l?void 0:l.cycleStart)})||A[0])||void 0===a?void 0:a.value,k=null===(r=N.find(e=>"STREET_PRICE"===(null==e?void 0:e.priceType)))||void 0===r?void 0:r.value,C=A.reduce((e,l)=>e+m(null==l?void 0:l.value)*p(null==l?void 0:l.cycle),0)+N.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===(s=null===(c=null==E?void 0:E[0])||void 0===c?void 0:c.price)||void 0===s?void 0:s.taxIncludedAmount)||void 0===u?void 0:u.value)||I),b+=m(P||k||((null==h?void 0:h.itemType)===K?C:0))}return{name:y,monthlyInstallment:g,oneTimePrice:b}})(Le[e][l]);return i?(u+=i.oneTimePrice,m+=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 u of[_,L]){if(p.some(e=>(null==e?void 0:e.tabKey)===u)){const p=null!==(s=null!==(a=null!==(t=null!==(i=null===(l=null===(e=null==_e?void 0:_e[u])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.derivedPrice)&&void 0!==i?i:null===(n=null===(o=null==_e?void 0:_e[u])||void 0===o?void 0:o.ratePlan)||void 0===n?void 0:n.listPrice)&&void 0!==t?t:null===(v=null===(d=null==Le?void 0:Le.ratePlanInfo)||void 0===d?void 0:d[u])||void 0===v?void 0:v.derivedPrice)&&void 0!==a?a:null===(c=null===(r=null==Le?void 0:Le.ratePlanInfo)||void 0===r?void 0:r[u])||void 0===c?void 0:c.monthlyPrice)&&void 0!==s?s:0,y=Number(p),g=Number.isFinite(y)?y:0;m+=g}}return{items:p,totalOneTimePrice:u,totalMonthlyPrice:m}})(),tl=Object.values(Ze).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,l.createElement(d,null,l.createElement("div",{className:n.mainPage},Object.keys((null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[]).length>=(null==Ue?void 0:Ue[Se.selectedTab])&&(null==Se?void 0:Se.selectedTab)===O&&l.createElement("div",{className:n.cartLimitTxt},l.createElement(p,{content:Ve})),((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&l.createElement("div",{className:n.extraSimHeading},(null==Se?void 0:Se.selectedTab)===_?null==G?void 0:G.watchesHeading:null==G?void 0:G.tabletsHeading),l.createElement(t,{key:null==Se?void 0:Se.selectedTab},null===(de=null===(te=(null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[])||void 0===te?void 0:te.filter(e=>{var l,i;return Oe===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===de?void 0:de.map((e,i)=>{var o,t,d,v,a,s,m,p,y,g,b,h,E,f,T,P,N,A,I,k,C,R,S,x,$,w,j,B,F,K,U,z,V,J,H,W,q,X,Y,Z,ee,le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge,be;return l.createElement("div",{key:i,className:`${n.card} ${(null===(o=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===o?void 0:o[null===(t=null==e?void 0:e.recomApiResponse)||void 0===t?void 0:t.id])?n.selectedCard:""}`},l.createElement("div",{className:n.detailSection,id:`detailsectionv3${Q}${i}`},(null!==(m=null===(s=null===(a=null===(v=null===(d=null==e?void 0:e.sbStoryItem)||void 0===d?void 0:d.content)||void 0===v?void 0:v.body)||void 0===a?void 0:a[0])||void 0===s?void 0:s.displayText)&&void 0!==m?m:null===(p=null==e?void 0:e.sbStoryItem)||void 0===p?void 0:p.displayText)&&l.createElement("div",{className:n.heading,id:`headingV3${Q}${i}`},null!==(E=null===(h=null===(b=null===(g=null===(y=null==e?void 0:e.sbStoryItem)||void 0===y?void 0:y.content)||void 0===g?void 0:g.body)||void 0===b?void 0:b[0])||void 0===h?void 0:h.displayText)&&void 0!==E?E:null===(f=null==e?void 0:e.sbStoryItem)||void 0===f?void 0:f.displayText,(null==Se?void 0:Se.selectedTab)===O&&(null===(P=null===(T=null==e?void 0:e.recomApiResponse)||void 0===T?void 0:T.variantCategory)||void 0===P?void 0:P.color)&&"None"!==(null===(A=null===(N=null==e?void 0:e.recomApiResponse)||void 0===N?void 0:N.variantCategory)||void 0===A?void 0:A.color)&&l.createElement("div",{className:n.optionalText},null==G?void 0:G.accessoriesColorLabel," ",null===(k=null===(I=null==e?void 0:e.recomApiResponse)||void 0===I?void 0:I.variantCategory)||void 0===k?void 0:k.color)),l.createElement("div",{className:n.accImage,id:`image${Q}${i}`},((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&(null===(C=null==G?void 0:G.esimIcon)||void 0===C?void 0:C.filename)&&l.createElement("div",{className:n.esimBadge},(null===(S=null===(R=null==e?void 0:e.sbStoryItem)||void 0===R?void 0:R.energyIcon)||void 0===S?void 0:S.filename)&&l.createElement("img",{loading:"lazy",src:r(Je,null===($=null===(x=null==e?void 0:e.sbStoryItem)||void 0===x?void 0:x.energyIcon)||void 0===$?void 0:$.filename),alt:"energy_Icon",width:37,height:20}),l.createElement("img",{src:null===(w=null==G?void 0:G.esimIcon)||void 0===w?void 0:w.filename,alt:"eSIM",className:n.esimIcon})),l.createElement("img",{loading:"lazy",src:r(Je,null===(j=null==e?void 0:e.imageData)||void 0===j?void 0:j.image),alt:"acessories_device",width:210,height:210}))),l.createElement("div",{className:n.mainPriceContainer,id:`main-price-section${Q}${i}`},(null===(B=null==Fe?void 0:Fe.hardwareVariant)||void 0===B?void 0:B.selectedContractType)===M||Oe===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===(K=null===(F=null==e?void 0:e.recomApiResponse)||void 0===F?void 0:F.recurringPrice)||void 0===K?void 0:K.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},c(null===(z=null===(U=null==e?void 0:e.recomApiResponse)||void 0===U?void 0:U.recurringPrice)||void 0===z?void 0:z.monthlyInstallment)),(null===(J=null===(V=null==e?void 0:e.recomApiResponse)||void 0===V?void 0:V.recurringPrice)||void 0===J?void 0:J.marketMonthlyInstallment)&&l.createElement("span",{className:n.strikedMonthlyPrice},c(null===(W=null===(H=null==e?void 0:e.recomApiResponse)||void 0===H?void 0:H.recurringPrice)||void 0===W?void 0:W.marketMonthlyInstallment)),l.createElement("span",{className:(null===(X=null===(q=null==e?void 0:e.recomApiResponse)||void 0===q?void 0:q.recurringPrice)||void 0===X?void 0:X.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," ",c(null===(Z=null===(Y=null==e?void 0:e.recomApiResponse)||void 0===Y?void 0:Y.oneTimePrice)||void 0===Z?void 0:Z.base)," ",l.createElement("span",{className:n.strikedtotalMonthlyPrice,style:{visibility:(null===(le=null===(ee=null==e?void 0:e.recomApiResponse)||void 0===ee?void 0:ee.oneTimePrice)||void 0===le?void 0:le.market)?"visible":"hidden"}},c(null===(oe=null===(ie=null==e?void 0:e.recomApiResponse)||void 0===ie?void 0:ie.oneTimePrice)||void 0===oe?void 0:oe.market))),l.createElement("div",{className:n.priceDescription},null==G?void 0:G.monthlyPaymentLabel,l.createElement("br",null),null==G?void 0:G.monthlyDownPaymentLabel),(null===(te=null===(ne=null==e?void 0:e.recomApiResponse)||void 0===ne?void 0:ne.includedOptions)||void 0===te?void 0:te.includes(D))&&(null==G?void 0:G.freeFUText)&&l.createElement("div",{className:n.flexUpgradeText},null==G?void 0:G.freeFUText)):l.createElement("div",{className:n.priceContainer,id:`price-detail-section${Q}${i}`},l.createElement("div",{className:n.price,style:{color:(null===(ve=null===(de=null==e?void 0:e.recomApiResponse)||void 0===de?void 0:de.recurringPrice)||void 0===ve?void 0:ve.marketMonthlyInstallment)?"#5E94CF":"#3D3935"},id:`price${Q}${i}`},l.createElement("span",{className:n.oneTimePrice},c(null===(re=null===(ae=null==e?void 0:e.recomApiResponse)||void 0===ae?void 0:ae.oneTimePrice)||void 0===re?void 0:re.base)),(null===(se=null===(ce=null==e?void 0:e.recomApiResponse)||void 0===ce?void 0:ce.oneTimePrice)||void 0===se?void 0:se.market)&&l.createElement("span",{className:n.strikedMonthlyPrice},c(null===(me=null===(ue=null==e?void 0:e.recomApiResponse)||void 0===ue?void 0:ue.oneTimePrice)||void 0===me?void 0:me.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===(pe=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===pe?void 0:pe[null===(ye=null==e?void 0:e.recomApiResponse)||void 0===ye?void 0:ye.id])?l.createElement(l.Fragment,null,l.createElement(u,{content:null===(ge=null==G?void 0:G.removefromcartButton)||void 0===ge?void 0:ge[0],onClick:l=>We(l,e,i),wafIdentifier:Je,disabled:Me})):l.createElement(u,{content:null===(be=null==G?void 0:G.addtocartButton)||void 0===be?void 0:be[0],onClick:l=>We(l,e,i),wafIdentifier:Je,disabled:Me}))))})),l.createElement("div",{className:n.miaFooter},tl>0&&(null==G?void 0:G.enableSelectionSummary)&&Object.keys(_e||{}).length>1&&Oe===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 Ze[e]>0&&l.createElement(l.Fragment,null,(e===_&&Ze[O]>0||e===L&&(Ze[O]>0||Ze[_]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:r(Je,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:r(Je,null==el?void 0:el[`${e}_icon`]),alt:`${e}_icon`})," ",Ze[e],"x ",null==ll?void 0:ll[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${n.cartPrice}`},Oe===M?l.createElement(l.Fragment,null,c(nl),null==G?void 0:G.monthlyText):c(ol)),De?l.createElement("img",{className:n.cartToggle,onClick:()=>ze(!De),loading:"lazy",src:r(Je,null===(ae=null==G?void 0:G.selectionSummaryCollapseIcon)||void 0===ae?void 0:ae.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:n.cartToggle,onClick:()=>ze(!De),loading:"lazy",src:r(Je,null===(ve=null==G?void 0:G.selectionSummaryExpandIcon)||void 0===ve?void 0:ve.filename),alt:"expand_icon",width:24,height:24})),De&&l.createElement(l.Fragment,null,l.createElement("div",{className:n.miniCartDivider}),il.map(i=>{var o,t,d,v,a,s,u,m,p,y,g,b,h,f,T,P,N,A,I,k,C,S,x,$,w,j,B,F,O,D,K,U,z,V,J,H,W,q,Q;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===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.name),l.createElement("div",{className:n.cartPrice},Oe===M?l.createElement(l.Fragment,null,(null===(v=null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.oneTimePrice)||void 0===v?void 0:v.base)>0&&l.createElement("span",{className:n.oneTime},"(",c(null===(s=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.oneTimePrice)||void 0===s?void 0:s.base),")"),c(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):c(null===(y=null===(p=null==i?void 0:i.recomApiResponse)||void 0===p?void 0:p.oneTimePrice)||void 0===y?void 0:y.base)),l.createElement("img",{className:n.cartDelete,loading:"lazy",src:r(Je,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,n;const t=null==l?void 0:l.tabKey;console.log("first",null===(e=null==Le?void 0:Le[t])||void 0===e?void 0:e[null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id]),(null===(o=null==Le?void 0:Le[t])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&(yield we.removeItemFromCart(Ee,l)),qe(E,R,l,0)}))(i),width:20,height:20})),[_,L].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:n.itemLine},l.createElement("span",{className:`${n.itemName} ${n.rpName}`},(null===(h=null===(b=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===b?void 0:b.ratePlan)||void 0===h?void 0:h.id)||(null===(T=null===(f=null==Le?void 0:Le.ratePlanInfo)||void 0===f?void 0:f[null==i?void 0:i.tabKey])||void 0===T?void 0:T.name)),l.createElement("div",{className:n.rpPrice},c(Number.isFinite(Number(null!==(B=null!==($=null!==(C=null!==(A=null===(N=null===(P=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===P?void 0:P.ratePlan)||void 0===N?void 0:N.derivedPrice)&&void 0!==A?A:null===(k=null===(I=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===I?void 0:I.ratePlan)||void 0===k?void 0:k.listPrice)&&void 0!==C?C:null===(x=null===(S=null==Le?void 0:Le.ratePlanInfo)||void 0===S?void 0:S[null==i?void 0:i.tabKey])||void 0===x?void 0:x.derivedPrice)&&void 0!==$?$:null===(j=null===(w=null==Le?void 0:Le.ratePlanInfo)||void 0===w?void 0:w[null==i?void 0:i.tabKey])||void 0===j?void 0:j.monthlyPrice)&&void 0!==B?B:0))?Number(null!==(Q=null!==(H=null!==(z=null!==(D=null===(O=null===(F=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===F?void 0:F.ratePlan)||void 0===O?void 0:O.derivedPrice)&&void 0!==D?D:null===(U=null===(K=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===K?void 0:K.ratePlan)||void 0===U?void 0:U.listPrice)&&void 0!==z?z:null===(J=null===(V=null==Le?void 0:Le.ratePlanInfo)||void 0===V?void 0:V[null==i?void 0:i.tabKey])||void 0===J?void 0:J.derivedPrice)&&void 0!==H?H:null===(q=null===(W=null==Le?void 0:Le.ratePlanInfo)||void 0===W?void 0:W[null==i?void 0:i.tabKey])||void 0===q?void 0:q.monthlyPrice)&&void 0!==Q?Q:0):0),null==G?void 0:G.monthlyText)),l.createElement("hr",{className:n.itemDivider}))}))),l.createElement("div",{className:`${n.checkoutBtn}`},(null===(re=null==G?void 0:G.proceedtocheckoutButton)||void 0===re?void 0:re.length)>0&&l.createElement(u,{content:G.proceedtocheckoutButton[0],eventAction:"",onClick:e=>Ge(e),wafIdentifier:Je,disabled:Me}))))),fe&&l.createElement(m,{modalState:fe,handler:()=>{Qe()},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===(se=null===(ce=null==G?void 0:G.errorModal)||void 0===ce?void 0:ce[0])||void 0===se?void 0:se.heading}),l.createElement(p,{content:null===(me=null===(ue=null==G?void 0:G.errorModal)||void 0===ue?void 0:ue[0])||void 0===me?void 0:me.description}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Qe()}},null==G?void 0:G.cancelButtonLinkText),l.createElement(u,{content:null===(pe=null==G?void 0:G.retryButton)||void 0===pe?void 0:pe[0],onClick:e=>Ge(e),metadata:void 0,wafIdentifier:Je})))),Ne&&(null==Se?void 0:Se.selectedTab)===O&&l.createElement(m,{modalState:Ne,handler:()=>{Xe()},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(a(JSON.stringify(null===(ge=null===(ye=null==G?void 0:G.cartLimitModal)||void 0===ye?void 0:ye[0])||void 0===ge?void 0:ge.heading),[null==Ue?void 0:Ue[Se.selectedTab].toString()]))}),l.createElement(p,{content:JSON.parse(a(JSON.stringify(null===(he=null===(be=null==G?void 0:G.cartLimitModal)||void 0===be?void 0:be[0])||void 0===he?void 0:he.description),[null==Ue?void 0:Ue[Se.selectedTab].toString()]))}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Xe()}},null==G?void 0:G.cartLimitBtnText)))),Ne&&((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&(()=>{var e,i,o,t,d,v,a;const r=(()=>{var e,l;return(null==Se?void 0:Se.selectedTab)===_?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 j(E,h,{component:b,message_title:g,message_description:null===(v=null===(d=null===(t=null===(o=null===(i=null===(e=null==r?void 0:r.description)||void 0===e?void 0:e.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===t?void 0:t[0])||void 0===d?void 0:d.text)||void 0===v?void 0:v.slice(0,100),message_type:y}),l.createElement(m,{modalState:Ne,handler:()=>(e=>{var l,i,o,n,t,d;(null==e?void 0:e.description)&&j(E,C,{component:b,message_title:g,message_description:null===(d=null===(t=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===t?void 0:t.text)||void 0===d?void 0:d.slice(0,100),message_type:y}),Xe()})(r),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Pe||"desktop"===Pe||"tablet"===Pe?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==r?void 0:r.heading)&&l.createElement("div",{className:n.modalHeading},l.createElement(p,{content:r.heading})),(null==r?void 0:r.description)&&l.createElement("div",{className:n.modalDescription},l.createElement(p,{content:r.description})),l.createElement("div",{className:n.modalButtons},(null==r?void 0:r.link)&&l.createElement("a",{className:n.factSheetLink,onClick:()=>(j(E,$,{component:I,click_text:x}),void Xe())},r.linkText),(null===(a=null==r?void 0:r.button)||void 0===a?void 0:a.length)>0&&l.createElement(u,{content:r.button[0],onClick:()=>(()=>{if(j(E,$,{component:I,click_text:w}),!Ie)return void Xe();const e=((null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[]).find(e=>{var l,i;return null===(l=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]});e&&(qe(E,R,e,0),He(e,U)),qe(S,S,Ie,Ce),He(Ie,z),Xe()})(),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 t from"../DeviceCarouselComponent.js";import d from"../../ResponsiveRow/row.js";import{viewport as v,replacePlaceholder as a,getCompressedImage as r,countZero as c}from"../../../utils/utils.js";import{getCookie as s}from"cookies-next";import u from"../../FalconButtonV2/FalconButtonV2.js";import m from"./AccessoryModal.js";import p from"../../richtext.js";import{INFO as y,REPLACESELECTION as g,POPUP as b,OPENPOPUP as h,GAEVENT as E,OPEN as f,CLOSE as T,FORM as P,ACCORDIONCLICK as N,CONTINUE as A,LINK as I,TABCLICK as k,CLOSEPOPUP as C,REMOVEFROMCART as R,ADD_TO_CART as S,KEEPPREVIOUS as x,CTABUTTONCLICK as $,REPLACE as w}from"../../../Analytics/AnalyticsConstants.js";import{trackNewDatalayerEvent as j,trackViewItem as B}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as F,ACCESSORY as O,WATCHES as _,TABLETS as L,CONTRACT as M,FLEX_UPGRADE as D,HARDWARE as K,REMOVE as U,ADD as z}from"../../../utils/constants.js";import{useMultiAccessoryContext as J}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as V}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as H,buildSingleItemCartPayload 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,isSubscriptionFlow:X,setAccessoriesSelected:Y})=>{var Z,ee,le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge,be,he;const Ee=s("one-commerce-cartId"),[fe,Te]=i(!1),Pe=v(),[Ne,Ae]=i(!1),[Ie,ke]=i(null),[Ce,Re]=i(0),{store:Se,dispatch:xe}=J(),$e=V(xe),we=H(),{updateAccessoryCartFailure:je}=Se,{multiItemAccessoriessList:Be,deviceSessionValues:Fe,selectedPaymentType:Oe,recommendedAccessories:_e,cartData:Le,loading:Me,showMiniCart:De}=Se,Ke=!!(null===(ee=null===(Z=[F])||void 0===Z?void 0:Z.includes)||void 0===ee?void 0:ee.call(Z,null===(oe=null===(ie=null===(le=null==_e?void 0:_e[null==Se?void 0:Se.selectedTab])||void 0===le?void 0:le.hardware)||void 0===ie?void 0:ie[0])||void 0===oe?void 0:oe.recommendationProcessingType))||!(null==Fe?void 0:Fe.hardwareVariant),Ue={[O]:X?Ke?+(null==G?void 0:G.ratePlanAccessoriesLimit):+(null==G?void 0:G.winAccessoriesLimit):+(null==G?void 0:G.accessoriesLimit),WATCHES:1,TABLETS:1},ze=e=>{j(E,N,{component:P,click_text:e?f:T}),$e.setShowMiniCart(e)},Je=JSON.parse(a(JSON.stringify(null==G?void 0:G.cartLimitWarningText),[null==Ue?void 0:Ue[Se.selectedTab].toString()])),Ve=null===(ne=null==q?void 0:q.getInstance())||void 0===ne?void 0:ne.getAssetPath(),He=(e,l)=>{const i=W(e,l,null==Se?void 0:Se.selectedTab,Se);i.length>0&&we.multiItemAccessorycreateCartRequest({id:Ee,redirectUrl:"",skipRedirect:!0,previousTab:null==Se?void 0:Se.selectedTab,cartItems:i})},We=(e,l,i)=>{var o,n;if(e.preventDefault(),null===(o=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])qe(E,R,l,i),He(l,U);else{if(Ye(l,i))return;qe(S,S,l,i),He(l,z)}},qe=(e,l,i,o)=>{var n,t,d,v,a,r,c,s;B(e,l,{displayName:null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name,productId:null===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.id,priceValue:null===(v=null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.oneTimePrice)||void 0===v?void 0:v.base,index:o,variant:null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.variantCategory)||void 0===r?void 0:r.color,storage:null===(s=null===(c=null==i?void 0:i.recomApiResponse)||void 0===c?void 0:c.variantCategory)||void 0===s?void 0:s.storage,hardwareCategory:null==Se?void 0:Se.selectedTab})},Ge=e=>{var l,i,o;e.preventDefault();if((null===(l=Object.keys(je))||void 0===l?void 0:l.length)>0)return Te(!1),void we.setupdateAccessoryCartFailure({});const n=X?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;j(E,k,{component:I,click_text:A}),window.location.href=n},Qe=()=>{var e;Te(e=>!e),(null===(e=Object.keys(je))||void 0===e?void 0:e.length)>0&&we.setupdateAccessoryCartFailure({})};o(()=>{var e;(null===(e=Object.keys(je))||void 0===e?void 0:e.length)>0&&Te(e=>!e)},[je]);const Xe=()=>{Ae(!1),ke(null),Re(0)},Ye=(e,l)=>Object.keys((null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||{}).length>=(null==Ue?void 0:Ue[Se.selectedTab])&&(Ae(!0),ke(e||null),Re(l||0),!0),Ze={},el={},ll={};((null==G?void 0:G.recommendationType)||[]).map(e=>{var l;Ze[e]=(e=>Object.keys((null==Le?void 0:Le[e])||{}).length)(e),el[`${e}_icon`]=null===(l=null==G?void 0:G[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,ll[`${e}_title`]=null==G?void 0:G[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:il,totalOneTimePrice:ol,totalMonthlyPrice:nl}=(()=>{var e,l,i,o,n,t,d,v,a,r,c,s;let u=0,m=0;const p=((null==G?void 0:G.recommendationType)||[]).flatMap(e=>{const l=(null==Be?void 0:Be[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;return null===(i=null==Le?void 0:Le[e])||void 0===i?void 0:i[null===(o=null==l?void 0:l.recomApiResponse)||void 0===o?void 0:o.id]}).map(l=>{var i,o,n,t;return u+=+((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),m+=+((null===(t=null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.recurringPrice)||void 0===t?void 0:t.monthlyInstallment)||0),Object.assign(Object.assign({},l),{tabKey:e})}),n=Object.keys((null==Le?void 0:Le[e])||{}).filter(e=>!i.has(e)).map(l=>{const i=(e=>{var l,i,o,n,t,d,v,a,r,c,s,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 y="",g=0,b=0;for(const h of e){y||(y=(null==h?void 0:h.name)||(null===(l=null==h?void 0:h.productOffering)||void 0===l?void 0:l.name)||(null===(i=null==h?void 0:h.productOffering)||void 0===i?void 0:i.id)||(null==h?void 0:h.id)||"");const e=(null===(n=null===(o=null==h?void 0:h.itemPrice)||void 0===o?void 0:o[0])||void 0===n?void 0:n.cartPrice)||[],E=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),f=null===(t=E.flatMap(e=>(null==e?void 0:e.additionalDetails)||[]).find(e=>"originalInstallment"===(null==e?void 0:e.id)))||void 0===t?void 0:t.value,T=e.find(e=>"paynow"===(null==e?void 0:e.recurringChargePeriod)),P=null===(v=null===(d=null==T?void 0:T.additionalDetails)||void 0===d?void 0:d.find(e=>"streetPrice"===(null==e?void 0:e.id)))||void 0===v?void 0:v.value,N=(null==h?void 0:h.prices)||[],A=N.filter(e=>"RECURRING"===(null==e?void 0:e.priceType)),I=null===(a=A.find(e=>{var l;return 1===(null===(l=null==e?void 0:e.cycle)||void 0===l?void 0:l.cycleStart)})||A[0])||void 0===a?void 0:a.value,k=null===(r=N.find(e=>"STREET_PRICE"===(null==e?void 0:e.priceType)))||void 0===r?void 0:r.value,C=A.reduce((e,l)=>e+m(null==l?void 0:l.value)*p(null==l?void 0:l.cycle),0)+N.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===(s=null===(c=null==E?void 0:E[0])||void 0===c?void 0:c.price)||void 0===s?void 0:s.taxIncludedAmount)||void 0===u?void 0:u.value)||I),b+=m(P||k||((null==h?void 0:h.itemType)===K?C:0))}return{name:y,monthlyInstallment:g,oneTimePrice:b}})(Le[e][l]);return i?(u+=i.oneTimePrice,m+=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 u of[_,L]){if(p.some(e=>(null==e?void 0:e.tabKey)===u)){const p=null!==(s=null!==(a=null!==(t=null!==(i=null===(l=null===(e=null==_e?void 0:_e[u])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.derivedPrice)&&void 0!==i?i:null===(n=null===(o=null==_e?void 0:_e[u])||void 0===o?void 0:o.ratePlan)||void 0===n?void 0:n.listPrice)&&void 0!==t?t:null===(v=null===(d=null==Le?void 0:Le.ratePlanInfo)||void 0===d?void 0:d[u])||void 0===v?void 0:v.derivedPrice)&&void 0!==a?a:null===(c=null===(r=null==Le?void 0:Le.ratePlanInfo)||void 0===r?void 0:r[u])||void 0===c?void 0:c.monthlyPrice)&&void 0!==s?s:0,y=Number(p),g=Number.isFinite(y)?y:0;m+=g}}return{items:p,totalOneTimePrice:u,totalMonthlyPrice:m}})(),tl=Object.values(Ze).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,l.createElement(d,null,l.createElement("div",{className:n.mainPage},Object.keys((null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[]).length>=(null==Ue?void 0:Ue[Se.selectedTab])&&(null==Se?void 0:Se.selectedTab)===O&&l.createElement("div",{className:n.cartLimitTxt},l.createElement(p,{content:Je})),((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&l.createElement("div",{className:n.extraSimHeading},(null==Se?void 0:Se.selectedTab)===_?null==G?void 0:G.watchesHeading:null==G?void 0:G.tabletsHeading),l.createElement(t,{key:null==Se?void 0:Se.selectedTab},null===(de=null===(te=(null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[])||void 0===te?void 0:te.filter(e=>{var l,i;return Oe===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===de?void 0:de.map((e,i)=>{var o,t,d,v,a,s,m,p,y,g,b,h,E,f,T,P,N,A,I,k,C,R,S,x,$,w,j,B,F,K,U,z,J,V,H,W,q,X,Y,Z,ee,le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge;return l.createElement("div",{key:i,className:`${n.card} ${(null===(o=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===o?void 0:o[null===(t=null==e?void 0:e.recomApiResponse)||void 0===t?void 0:t.id])?n.selectedCard:""}`},l.createElement("div",{className:n.detailSection,id:`detailsectionv3${Q}${i}`},(null!==(m=null===(s=null===(a=null===(v=null===(d=null==e?void 0:e.sbStoryItem)||void 0===d?void 0:d.content)||void 0===v?void 0:v.body)||void 0===a?void 0:a[0])||void 0===s?void 0:s.displayText)&&void 0!==m?m:null===(p=null==e?void 0:e.sbStoryItem)||void 0===p?void 0:p.displayText)&&l.createElement("div",{className:n.heading,id:`headingV3${Q}${i}`},null!==(E=null===(h=null===(b=null===(g=null===(y=null==e?void 0:e.sbStoryItem)||void 0===y?void 0:y.content)||void 0===g?void 0:g.body)||void 0===b?void 0:b[0])||void 0===h?void 0:h.displayText)&&void 0!==E?E:null===(f=null==e?void 0:e.sbStoryItem)||void 0===f?void 0:f.displayText,(null==Se?void 0:Se.selectedTab)===O&&(null===(P=null===(T=null==e?void 0:e.recomApiResponse)||void 0===T?void 0:T.variantCategory)||void 0===P?void 0:P.color)&&"None"!==(null===(A=null===(N=null==e?void 0:e.recomApiResponse)||void 0===N?void 0:N.variantCategory)||void 0===A?void 0:A.color)&&l.createElement("div",{className:n.optionalText},null==G?void 0:G.accessoriesColorLabel," ",null===(k=null===(I=null==e?void 0:e.recomApiResponse)||void 0===I?void 0:I.variantCategory)||void 0===k?void 0:k.color)),l.createElement("div",{className:n.accImage,id:`image${Q}${i}`},((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&(null===(C=null==G?void 0:G.esimIcon)||void 0===C?void 0:C.filename)&&l.createElement("div",{className:n.esimBadge},(null===(S=null===(R=null==e?void 0:e.sbStoryItem)||void 0===R?void 0:R.energyIcon)||void 0===S?void 0:S.filename)&&l.createElement("img",{loading:"lazy",src:r(Ve,null===($=null===(x=null==e?void 0:e.sbStoryItem)||void 0===x?void 0:x.energyIcon)||void 0===$?void 0:$.filename),alt:"energy_Icon",width:37,height:20}),l.createElement("img",{src:null===(w=null==G?void 0:G.esimIcon)||void 0===w?void 0:w.filename,alt:"eSIM",className:n.esimIcon})),l.createElement("img",{loading:"lazy",src:r(Ve,null===(j=null==e?void 0:e.imageData)||void 0===j?void 0:j.image),alt:"acessories_device",width:210,height:210}))),l.createElement("div",{className:n.mainPriceContainer,id:`main-price-section${Q}${i}`},Oe===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===(F=null===(B=null==e?void 0:e.recomApiResponse)||void 0===B?void 0:B.recurringPrice)||void 0===F?void 0:F.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},c(null===(U=null===(K=null==e?void 0:e.recomApiResponse)||void 0===K?void 0:K.recurringPrice)||void 0===U?void 0:U.monthlyInstallment)),(null===(J=null===(z=null==e?void 0:e.recomApiResponse)||void 0===z?void 0:z.recurringPrice)||void 0===J?void 0:J.marketMonthlyInstallment)&&l.createElement("span",{className:n.strikedMonthlyPrice},c(null===(H=null===(V=null==e?void 0:e.recomApiResponse)||void 0===V?void 0:V.recurringPrice)||void 0===H?void 0:H.marketMonthlyInstallment)),l.createElement("span",{className:(null===(q=null===(W=null==e?void 0:e.recomApiResponse)||void 0===W?void 0:W.recurringPrice)||void 0===q?void 0:q.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," ",c(null===(Y=null===(X=null==e?void 0:e.recomApiResponse)||void 0===X?void 0:X.oneTimePrice)||void 0===Y?void 0:Y.base)," ",l.createElement("span",{className:n.strikedtotalMonthlyPrice,style:{visibility:(null===(ee=null===(Z=null==e?void 0:e.recomApiResponse)||void 0===Z?void 0:Z.oneTimePrice)||void 0===ee?void 0:ee.market)?"visible":"hidden"}},c(null===(ie=null===(le=null==e?void 0:e.recomApiResponse)||void 0===le?void 0:le.oneTimePrice)||void 0===ie?void 0:ie.market))),l.createElement("div",{className:n.priceDescription},null==G?void 0:G.monthlyPaymentLabel,l.createElement("br",null),null==G?void 0:G.monthlyDownPaymentLabel),(null===(ne=null===(oe=null==e?void 0:e.recomApiResponse)||void 0===oe?void 0:oe.includedOptions)||void 0===ne?void 0:ne.includes(D))&&(null==G?void 0:G.freeFUText)&&l.createElement("div",{className:n.flexUpgradeText},null==G?void 0:G.freeFUText)):l.createElement("div",{className:n.priceContainer,id:`price-detail-section${Q}${i}`},l.createElement("div",{className:n.price,style:{color:(null===(de=null===(te=null==e?void 0:e.recomApiResponse)||void 0===te?void 0:te.recurringPrice)||void 0===de?void 0:de.marketMonthlyInstallment)?"#5E94CF":"#3D3935"},id:`price${Q}${i}`},l.createElement("span",{className:n.oneTimePrice},c(null===(ae=null===(ve=null==e?void 0:e.recomApiResponse)||void 0===ve?void 0:ve.oneTimePrice)||void 0===ae?void 0:ae.base)),(null===(ce=null===(re=null==e?void 0:e.recomApiResponse)||void 0===re?void 0:re.oneTimePrice)||void 0===ce?void 0:ce.market)&&l.createElement("span",{className:n.strikedMonthlyPrice},c(null===(ue=null===(se=null==e?void 0:e.recomApiResponse)||void 0===se?void 0:se.oneTimePrice)||void 0===ue?void 0:ue.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===(me=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===me?void 0:me[null===(pe=null==e?void 0:e.recomApiResponse)||void 0===pe?void 0:pe.id])?l.createElement(l.Fragment,null,l.createElement(u,{content:null===(ye=null==G?void 0:G.removefromcartButton)||void 0===ye?void 0:ye[0],onClick:l=>We(l,e,i),wafIdentifier:Ve,disabled:Me})):l.createElement(u,{content:null===(ge=null==G?void 0:G.addtocartButton)||void 0===ge?void 0:ge[0],onClick:l=>We(l,e,i),wafIdentifier:Ve,disabled:Me}))))})),l.createElement("div",{className:n.miaFooter},tl>0&&(null==G?void 0:G.enableSelectionSummary)&&Object.keys(_e||{}).length>1&&Oe===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 Ze[e]>0&&l.createElement(l.Fragment,null,(e===_&&Ze[O]>0||e===L&&(Ze[O]>0||Ze[_]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:r(Ve,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:r(Ve,null==el?void 0:el[`${e}_icon`]),alt:`${e}_icon`})," ",Ze[e],"x ",null==ll?void 0:ll[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${n.cartPrice}`},Oe===M?l.createElement(l.Fragment,null,c(nl),null==G?void 0:G.monthlyText):c(ol)),De?l.createElement("img",{className:n.cartToggle,onClick:()=>ze(!De),loading:"lazy",src:r(Ve,null===(ae=null==G?void 0:G.selectionSummaryCollapseIcon)||void 0===ae?void 0:ae.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:n.cartToggle,onClick:()=>ze(!De),loading:"lazy",src:r(Ve,null===(ve=null==G?void 0:G.selectionSummaryExpandIcon)||void 0===ve?void 0:ve.filename),alt:"expand_icon",width:24,height:24})),De&&l.createElement(l.Fragment,null,l.createElement("div",{className:n.miniCartDivider}),il.map(i=>{var o,t,d,v,a,s,u,m,p,y,g,b,h,f,T,P,N,A,I,k,C,S,x,$,w,j,B,F,O,D,K,U,z,J,V,H,W,q,Q;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===(t=null==i?void 0:i.recomApiResponse)||void 0===t?void 0:t.name),l.createElement("div",{className:n.cartPrice},Oe===M?l.createElement(l.Fragment,null,(null===(v=null===(d=null==i?void 0:i.recomApiResponse)||void 0===d?void 0:d.oneTimePrice)||void 0===v?void 0:v.base)>0&&l.createElement("span",{className:n.oneTime},"(",c(null===(s=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.oneTimePrice)||void 0===s?void 0:s.base),")"),c(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):c(null===(y=null===(p=null==i?void 0:i.recomApiResponse)||void 0===p?void 0:p.oneTimePrice)||void 0===y?void 0:y.base)),l.createElement("img",{className:n.cartDelete,loading:"lazy",src:r(Ve,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,n;const t=null==l?void 0:l.tabKey;console.log("first",null===(e=null==Le?void 0:Le[t])||void 0===e?void 0:e[null===(i=null==l?void 0:l.recomApiResponse)||void 0===i?void 0:i.id]),(null===(o=null==Le?void 0:Le[t])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&(yield we.removeItemFromCart(Ee,l)),qe(E,R,l,0)}))(i),width:20,height:20})),[_,L].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:n.itemLine},l.createElement("span",{className:`${n.itemName} ${n.rpName}`},(null===(h=null===(b=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===b?void 0:b.ratePlan)||void 0===h?void 0:h.id)||(null===(T=null===(f=null==Le?void 0:Le.ratePlanInfo)||void 0===f?void 0:f[null==i?void 0:i.tabKey])||void 0===T?void 0:T.name)),l.createElement("div",{className:n.rpPrice},c(Number.isFinite(Number(null!==(B=null!==($=null!==(C=null!==(A=null===(N=null===(P=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===P?void 0:P.ratePlan)||void 0===N?void 0:N.derivedPrice)&&void 0!==A?A:null===(k=null===(I=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===I?void 0:I.ratePlan)||void 0===k?void 0:k.listPrice)&&void 0!==C?C:null===(x=null===(S=null==Le?void 0:Le.ratePlanInfo)||void 0===S?void 0:S[null==i?void 0:i.tabKey])||void 0===x?void 0:x.derivedPrice)&&void 0!==$?$:null===(j=null===(w=null==Le?void 0:Le.ratePlanInfo)||void 0===w?void 0:w[null==i?void 0:i.tabKey])||void 0===j?void 0:j.monthlyPrice)&&void 0!==B?B:0))?Number(null!==(Q=null!==(H=null!==(z=null!==(D=null===(O=null===(F=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===F?void 0:F.ratePlan)||void 0===O?void 0:O.derivedPrice)&&void 0!==D?D:null===(U=null===(K=null==_e?void 0:_e[null==i?void 0:i.tabKey])||void 0===K?void 0:K.ratePlan)||void 0===U?void 0:U.listPrice)&&void 0!==z?z:null===(V=null===(J=null==Le?void 0:Le.ratePlanInfo)||void 0===J?void 0:J[null==i?void 0:i.tabKey])||void 0===V?void 0:V.derivedPrice)&&void 0!==H?H:null===(q=null===(W=null==Le?void 0:Le.ratePlanInfo)||void 0===W?void 0:W[null==i?void 0:i.tabKey])||void 0===q?void 0:q.monthlyPrice)&&void 0!==Q?Q:0):0),null==G?void 0:G.monthlyText)),l.createElement("hr",{className:n.itemDivider}))}))),l.createElement("div",{className:`${n.checkoutBtn}`},(null===(re=null==G?void 0:G.proceedtocheckoutButton)||void 0===re?void 0:re.length)>0&&l.createElement(u,{content:G.proceedtocheckoutButton[0],eventAction:"",onClick:e=>Ge(e),wafIdentifier:Ve,disabled:Me}))))),fe&&l.createElement(m,{modalState:fe,handler:()=>{Qe()},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===(se=null===(ce=null==G?void 0:G.errorModal)||void 0===ce?void 0:ce[0])||void 0===se?void 0:se.heading}),l.createElement(p,{content:null===(me=null===(ue=null==G?void 0:G.errorModal)||void 0===ue?void 0:ue[0])||void 0===me?void 0:me.description}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Qe()}},null==G?void 0:G.cancelButtonLinkText),l.createElement(u,{content:null===(pe=null==G?void 0:G.retryButton)||void 0===pe?void 0:pe[0],onClick:e=>Ge(e),metadata:void 0,wafIdentifier:Ve})))),Ne&&(null==Se?void 0:Se.selectedTab)===O&&l.createElement(m,{modalState:Ne,handler:()=>{Xe()},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(a(JSON.stringify(null===(ge=null===(ye=null==G?void 0:G.cartLimitModal)||void 0===ye?void 0:ye[0])||void 0===ge?void 0:ge.heading),[null==Ue?void 0:Ue[Se.selectedTab].toString()]))}),l.createElement(p,{content:JSON.parse(a(JSON.stringify(null===(he=null===(be=null==G?void 0:G.cartLimitModal)||void 0===be?void 0:be[0])||void 0===he?void 0:he.description),[null==Ue?void 0:Ue[Se.selectedTab].toString()]))}),l.createElement("div",{className:`${n.accessoryErrorButtons}`},l.createElement("div",{className:`${n.cancelButton}`,onClick:()=>{Xe()}},null==G?void 0:G.cartLimitBtnText)))),Ne&&((null==Se?void 0:Se.selectedTab)===_||(null==Se?void 0:Se.selectedTab)===L)&&(()=>{var e,i,o,t,d,v,a;const r=(()=>{var e,l;return(null==Se?void 0:Se.selectedTab)===_?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 j(E,h,{component:b,message_title:g,message_description:null===(v=null===(d=null===(t=null===(o=null===(i=null===(e=null==r?void 0:r.description)||void 0===e?void 0:e.content)||void 0===i?void 0:i[0])||void 0===o?void 0:o.content)||void 0===t?void 0:t[0])||void 0===d?void 0:d.text)||void 0===v?void 0:v.slice(0,100),message_type:y}),l.createElement(m,{modalState:Ne,handler:()=>(e=>{var l,i,o,n,t,d;(null==e?void 0:e.description)&&j(E,C,{component:b,message_title:g,message_description:null===(d=null===(t=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===t?void 0:t.text)||void 0===d?void 0:d.slice(0,100),message_type:y}),Xe()})(r),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Pe||"desktop"===Pe||"tablet"===Pe?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==r?void 0:r.heading)&&l.createElement("div",{className:n.modalHeading},l.createElement(p,{content:r.heading})),(null==r?void 0:r.description)&&l.createElement("div",{className:n.modalDescription},l.createElement(p,{content:r.description})),l.createElement("div",{className:n.modalButtons},(null==r?void 0:r.link)&&l.createElement("a",{className:n.factSheetLink,onClick:()=>(j(E,$,{component:I,click_text:x}),void Xe())},r.linkText),(null===(a=null==r?void 0:r.button)||void 0===a?void 0:a.length)>0&&l.createElement(u,{content:r.button[0],onClick:()=>(()=>{if(j(E,$,{component:I,click_text:w}),!Ie)return void Xe();const e=((null==Be?void 0:Be[null==Se?void 0:Se.selectedTab])||[]).find(e=>{var l,i;return null===(l=null==Le?void 0:Le[null==Se?void 0:Se.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]});e&&(qe(E,R,e,0),He(e,U)),qe(S,S,Ie,Ce),He(Ie,z),Xe()})(),metadata:void 0,wafIdentifier:""}))))})())};export{G 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, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\n\r\ntype AccessoryCardProps = {\r\n content: MultiItemAccessoriesSchema;\r\n tabIndex: number;\r\n checkingviewPort: any;\r\n isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // Helper to fire immediate per-item cart API call\r\n const fireImmediateCartUpdate = (item: any, action: string) => {\r\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\r\n if (cartItems.length > 0) {\r\n cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n skipRedirect: true,\r\n previousTab: store?.selectedTab,\r\n cartItems,\r\n });\r\n }\r\n };\r\n\r\n // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n // Item is in cart — remove it\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n fireImmediateCartUpdate(item, REMOVE);\r\n } else {\r\n // Item not in cart — add it\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n fireImmediateCartUpdate(item, ADD);\r\n }\r\n };\r\n\r\n // Track analytics for CTA buttons\r\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\r\n trackViewItem(event, eventName, {\r\n displayName: item?.recomApiResponse?.name,\r\n productId: item?.recomApiResponse?.id,\r\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\r\n index: index,\r\n variant: item?.recomApiResponse?.variantCategory?.color,\r\n storage: item?.recomApiResponse?.variantCategory?.storage,\r\n hardwareCategory: store?.selectedTab,\r\n });\r\n }\r\n // create cart function call — with real-time updates, just redirect\r\n const multiItemAccesoryCreatecart = (e: any) => {\r\n e.preventDefault();\r\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\r\n if (isRetry) {\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n return;\r\n }\r\n\r\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n window.location.href = redirectUrl;\r\n }\r\n\r\n // close the error popup when close/cancel button is clicked\r\n const onCloseClick = () => {\r\n setShow((prevState) => !prevState);\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n };\r\n // open the error popup when updated cart fails\r\n useEffect(() => {\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n setShow((prevState) => !prevState);\r\n }\r\n }, [updateAccessoryCartFailure]);\r\n\r\n // close the cartLimit popup when close/cancel button is clicked\r\n const onCloseClickCartLimitPopup = () => {\r\n setShowCartLimitError(false);\r\n setPendingItem(null);\r\n setPendingItemIndex(0);\r\n };\r\n\r\n // Handle \"ClosePopup\" - just close the modal without any changes\r\n const handleClosePopup = (modalContent?: any) => {\r\n // Track close popup event\r\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO,\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n // Handle \"Keep previous\" - just close the modal without any changes\r\n const handleKeepPrevious = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: KEEPPREVIOUS\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n // Handle \"Replace\" - replace existing selection with new item via API\r\n const handleReplaceSelection = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: REPLACE\r\n });\r\n if (!pendingItem) {\r\n onCloseClickCartLimitPopup();\r\n return;\r\n }\r\n\r\n // Find the first item currently in cart for this tab and remove it, then add the new one\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n const existingCartItem = cartItems.find((item: any) => \r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\r\n );\r\n \r\n if (existingCartItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\r\n fireImmediateCartUpdate(existingCartItem, REMOVE);\r\n }\r\n\r\n // Add the new pending item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\r\n fireImmediateCartUpdate(pendingItem, ADD);\r\n\r\n // Close the modal and clear pending item\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n //show popup if cart limit reached\r\n const checkCartLimit = (item?: any, index?: number) => {\r\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\r\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\r\n setShowCartLimitError(true);\r\n setPendingItem(item || null);\r\n setPendingItemIndex(index || 0);\r\n return true;\r\n }\r\n return false;\r\n }\r\n //TODO: Remove checkingviewPort passing from multi-item\r\n\r\n // Handle delete from mini cart summary\r\n const handleDeleteFromMiniCart = async (item: any) => {\r\n const tabKey = item?.tabKey;\r\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n // Call API directly to remove it from cart\r\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n };\r\n\r\n // Helper function to calculate selected count for a tab\r\n const getTabSelectedCount = (tabKey: string) => {\r\n return Object.keys(cartData?.[tabKey] || {}).length;\r\n };\r\n const inTabSelected: Record<string, number> = {};\r\n const summaryIcons: Record<string, string> = {};\r\n const summaryLabels: Record<string, string> = {};\r\n\r\n (content?.recommendationType || []).map((tabKey: string) => {\r\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\r\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\r\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\r\n });\r\n\r\n /**\r\n * Extract name and prices from from cartData.\r\n * Used as fallback when the item is not present in multiItemAccessoriessList.\r\n */\r\n const getCartItemDisplayInfo = (cartItems: any[]) => {\r\n if (!cartItems?.length) return null;\r\n\r\n const toNumberOrZero = (value: any) => {\r\n const parsed = Number(value);\r\n return Number.isFinite(parsed) ? parsed : 0;\r\n };\r\n\r\n const getCycleMonths = (cycle: any) => {\r\n const start = Number(cycle?.cycleStart);\r\n const end = Number(cycle?.cycleEnd);\r\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\r\n return (end - start) + 1;\r\n }\r\n return 1;\r\n };\r\n\r\n let name = '';\r\n let monthlyInstallment = 0;\r\n let oneTimePrice = 0;\r\n\r\n for (const item of cartItems) {\r\n if (!name) {\r\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\r\n }\r\n\r\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\r\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\r\n const originalInstallment = monthlyPrices\r\n .flatMap((p: any) => p?.additionalDetails || [])\r\n .find((d: any) => d?.id === 'originalInstallment')?.value;\r\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\r\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\r\n\r\n // Flat update-cart payloads expose prices under `item.prices`.\r\n const flatPrices = item?.prices || [];\r\n\r\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\r\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\r\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\r\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\r\n\r\n // Fallback for watch/tablet when recommendation response is absent:\r\n // compute total financed amount = recurring installments across cycles + one-time fee.\r\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\r\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\r\n }, 0) + flatPrices\r\n .filter((p: any) => p?.priceType === 'ONETIME')\r\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\r\n\r\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\r\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\r\n }\r\n\r\n return {\r\n name,\r\n monthlyInstallment,\r\n oneTimePrice,\r\n };\r\n };\r\n\r\n // Get all selected items across all tabs as a flat array with cumulative prices\r\n const getAllSelectedItems = () => {\r\n let totalOneTimePrice = 0;\r\n let totalMonthlyPrice = 0;\r\n\r\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\r\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\r\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\r\n\r\n // Items from recommendation list that are in cart\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n .map((item: any) => {\r\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\r\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\r\n return { ...item, tabKey };\r\n });\r\n\r\n // Cart-only items not in recommendation list\r\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\r\n .filter((id) => !recomIds.has(id))\r\n .map((id) => {\r\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\r\n if (!info) return null;\r\n totalOneTimePrice += info.oneTimePrice;\r\n totalMonthlyPrice += info.monthlyInstallment;\r\n return {\r\n tabKey,\r\n isCartOnly: true,\r\n recomApiResponse: {\r\n id,\r\n name: info.name,\r\n oneTimePrice: { base: info.oneTimePrice },\r\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\r\n },\r\n };\r\n })\r\n .filter(Boolean);\r\n\r\n return [...recomItems, ...cartOnlyItems];\r\n });\r\n\r\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\r\n for (const tabKey of [WATCHES, TABLETS]) {\r\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\r\n if (hasItemsInTab) {\r\n const rpRawPrice =\r\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\r\n 0;\r\n const rpParsedPrice = Number(rpRawPrice);\r\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\r\n totalMonthlyPrice += rpPrice;\r\n }\r\n }\r\n\r\n return { items, totalOneTimePrice, totalMonthlyPrice };\r\n };\r\n\r\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\r\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\r\n return (\r\n <>\r\n <Row>\r\n <div className={Styles.mainPage}>\r\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\r\n <DeviceCarouselComponent key={store?.selectedTab}>\r\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\r\n return (\r\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\r\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\r\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\r\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\r\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\r\n </div>}\r\n \r\n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\r\n <div className={Styles.esimBadge}>\r\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\r\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\r\n </div>\r\n )}\r\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\r\n </div>\r\n </div>\r\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\r\n {(deviceSessionValues?.hardwareVariant?.selectedContractType === CONTRACT || selectedPaymentType === CONTRACT) ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\r\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\r\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\r\n </span>\r\n )}\r\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\r\n </div>\r\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\r\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\r\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\r\n <><FalconButtonV2\r\n content={content?.removefromcartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n </> :\r\n <FalconButtonV2\r\n content={content?.addtocartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </DeviceCarouselComponent>\r\n\r\n <div className={Styles.miaFooter}>\r\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\r\n * contract/monthly flow (not one-time pay), and new subscriptions\r\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\r\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\r\n && Object.keys(recommendedAccessories || {}).length > 1\r\n && selectedPaymentType === CONTRACT\r\n && <div className={Styles.miniSummary}>\r\n <div className={Styles.titleRow}>\r\n {/**1*/}\r\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\r\n {/**2*/}\r\n <span className={Styles.titleIcons}>\r\n {(content?.recommendationType || []).map((tabKey: string) => {\r\n return (\r\n inTabSelected[tabKey] > 0 && (\r\n <>\r\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\r\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\r\n </>\r\n )\r\n )\r\n })}\r\n </span>\r\n {/**3*/}\r\n <div className={`fw-bold ${Styles.cartPrice}`}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\r\n : countZero(totalOneTimePrice)\r\n }\r\n </div>\r\n {/**4*/}\r\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\r\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\r\n </div>\r\n {showMiniCart && (\r\n <>\r\n {/* DividerComponent */}\r\n <div className={Styles.miniCartDivider} />\r\n {allSelectedItems\r\n .map((item: any) => (\r\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\r\n <div className={Styles.itemLine}>\r\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\r\n <div className={Styles.cartPrice}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\r\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\r\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\r\n }\r\n </div>\r\n <img\r\n className={Styles.cartDelete}\r\n loading='lazy'\r\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\r\n alt='delete_icon'\r\n onClick={() => handleDeleteFromMiniCart(item)}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\r\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\r\n <div className={Styles.rpPrice}>\r\n {countZero(Number.isFinite(Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n ))\r\n ? Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n )\r\n : 0)}{content?.monthlyText}\r\n </div>\r\n </div>}\r\n {/* DividerComponent */}\r\n <hr className={Styles.itemDivider} />\r\n </div>\r\n ))\r\n }\r\n </>\r\n )\r\n }\r\n\r\n </div>}\r\n <div className={`${Styles.checkoutBtn}`}>\r\n {content?.proceedtocheckoutButton?.length > 0 && (\r\n <FalconButtonV2\r\n content={content.proceedtocheckoutButton[0]}\r\n eventAction={''}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </Row>\r\n {show && <AccessoryModal\r\n modalState={show}\r\n handler={() => { onCloseClick() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n > <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={content?.errorModal?.[0]?.heading} />\r\n <RichText content={content?.errorModal?.[0]?.description} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\r\n <FalconButtonV2\r\n content={content?.retryButton?.[0]}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n metadata={undefined}\r\n wafIdentifier={basicConfigUrl}\r\n />\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n }\r\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => { onCloseClickCartLimitPopup() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}>\r\n <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\r\n </div>\r\n </div>\r\n </AccessoryModal>}\r\n \r\n {/* Selection Limit Modal for Watches and Tablets */}\r\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\r\n const selectionContent = getSelectionPopupContent();\r\n // Track popup open event, limit description to 100 chars max\r\n // const desc = typeof selectionContent?.description === 'string'\r\n // ? selectionContent.description\r\n // : JSON.stringify(selectionContent?.description ?? '');\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO\r\n });\r\n return (\r\n <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => handleClosePopup(selectionContent) }\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <>\r\n {selectionContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={selectionContent.heading} />\r\n </div>\r\n )}\r\n \r\n {selectionContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={selectionContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {selectionContent?.link && (\r\n <a \r\n className={Styles.factSheetLink}\r\n onClick={() => handleKeepPrevious()}\r\n >\r\n {selectionContent.linkText}\r\n </a>\r\n )}\r\n \r\n {selectionContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={selectionContent.button[0]}\r\n onClick={() => handleReplaceSelection()}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","ratePlanFlow","_b","_a","MOBILERATEPLAN","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_f","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","handleClickAddRemoveCartBtn","e","index","preventDefault","recomApiResponse","trackCTAButton","REMOVEFROMCART","REMOVE","checkCartLimit","ADD_TO_CART","ADD","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","_h","_g","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","window","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","_j","hardwareOneTimeTotal","reduce","sum","price","_m","_l","_k","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","CONTRACT","card","selectedCard","detailSection","sbStoryItem","body","displayText","heading","_o","_p","_r","_q","_t","_s","optionalText","accessoriesColorLabel","_v","_u","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","_3","selectedContractType","priceContainer","style","_5","_4","marketMonthlyInstallment","countZero","_6","_7","_8","_9","strikedMonthlyPrice","_10","_12","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_15","_14","strikedtotalMonthlyPrice","visibility","_16","_17","market","_19","_18","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_20","includedOptions","_21","FLEX_UPGRADE","freeFUText","flexUpgradeText","_23","_22","_25","_24","_26","_29","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_30","_31","FalconButtonV2","_32","onClick","wafIdentifier","disabled","_33","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_11","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
1
+ {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\r\nimport React, {JSX, useEffect, useState } from 'react';\r\nimport Styles from './AccessoryCard.module.scss';\r\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\r\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\r\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\r\nimport Row from '../../ResponsiveRow/row';\r\n// import GenericImage from '../../GenericImage/GenericImage';\r\nimport { getCompressedImage } from '../../../utils/utils';\r\nimport { getCookie } from 'cookies-next';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\r\nimport AccessoryModal from './AccessoryModal';\r\nimport RichText from '../../richtext';\r\nimport { viewport } from '../../../utils/utils';\r\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\r\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\n\r\ntype AccessoryCardProps = {\r\n content: MultiItemAccessoriesSchema;\r\n tabIndex: number;\r\n checkingviewPort: any;\r\n isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // Helper to fire immediate per-item cart API call\r\n const fireImmediateCartUpdate = (item: any, action: string) => {\r\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\r\n if (cartItems.length > 0) {\r\n cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n skipRedirect: true,\r\n previousTab: store?.selectedTab,\r\n cartItems,\r\n });\r\n }\r\n };\r\n\r\n // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n // Item is in cart — remove it\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n fireImmediateCartUpdate(item, REMOVE);\r\n } else {\r\n // Item not in cart — add it\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n fireImmediateCartUpdate(item, ADD);\r\n }\r\n };\r\n\r\n // Track analytics for CTA buttons\r\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\r\n trackViewItem(event, eventName, {\r\n displayName: item?.recomApiResponse?.name,\r\n productId: item?.recomApiResponse?.id,\r\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\r\n index: index,\r\n variant: item?.recomApiResponse?.variantCategory?.color,\r\n storage: item?.recomApiResponse?.variantCategory?.storage,\r\n hardwareCategory: store?.selectedTab,\r\n });\r\n }\r\n // create cart function call — with real-time updates, just redirect\r\n const multiItemAccesoryCreatecart = (e: any) => {\r\n e.preventDefault();\r\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\r\n if (isRetry) {\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n return;\r\n }\r\n\r\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n window.location.href = redirectUrl;\r\n }\r\n\r\n // close the error popup when close/cancel button is clicked\r\n const onCloseClick = () => {\r\n setShow((prevState) => !prevState);\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n };\r\n // open the error popup when updated cart fails\r\n useEffect(() => {\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n setShow((prevState) => !prevState);\r\n }\r\n }, [updateAccessoryCartFailure]);\r\n\r\n // close the cartLimit popup when close/cancel button is clicked\r\n const onCloseClickCartLimitPopup = () => {\r\n setShowCartLimitError(false);\r\n setPendingItem(null);\r\n setPendingItemIndex(0);\r\n };\r\n\r\n // Handle \"ClosePopup\" - just close the modal without any changes\r\n const handleClosePopup = (modalContent?: any) => {\r\n // Track close popup event\r\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO,\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n // Handle \"Keep previous\" - just close the modal without any changes\r\n const handleKeepPrevious = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: KEEPPREVIOUS\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n // Handle \"Replace\" - replace existing selection with new item via API\r\n const handleReplaceSelection = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: REPLACE\r\n });\r\n if (!pendingItem) {\r\n onCloseClickCartLimitPopup();\r\n return;\r\n }\r\n\r\n // Find the first item currently in cart for this tab and remove it, then add the new one\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n const existingCartItem = cartItems.find((item: any) => \r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\r\n );\r\n \r\n if (existingCartItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\r\n fireImmediateCartUpdate(existingCartItem, REMOVE);\r\n }\r\n\r\n // Add the new pending item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\r\n fireImmediateCartUpdate(pendingItem, ADD);\r\n\r\n // Close the modal and clear pending item\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n //show popup if cart limit reached\r\n const checkCartLimit = (item?: any, index?: number) => {\r\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\r\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\r\n setShowCartLimitError(true);\r\n setPendingItem(item || null);\r\n setPendingItemIndex(index || 0);\r\n return true;\r\n }\r\n return false;\r\n }\r\n //TODO: Remove checkingviewPort passing from multi-item\r\n\r\n // Handle delete from mini cart summary\r\n const handleDeleteFromMiniCart = async (item: any) => {\r\n const tabKey = item?.tabKey;\r\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n // Call API directly to remove it from cart\r\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n };\r\n\r\n // Helper function to calculate selected count for a tab\r\n const getTabSelectedCount = (tabKey: string) => {\r\n return Object.keys(cartData?.[tabKey] || {}).length;\r\n };\r\n const inTabSelected: Record<string, number> = {};\r\n const summaryIcons: Record<string, string> = {};\r\n const summaryLabels: Record<string, string> = {};\r\n\r\n (content?.recommendationType || []).map((tabKey: string) => {\r\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\r\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\r\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\r\n });\r\n\r\n /**\r\n * Extract name and prices from from cartData.\r\n * Used as fallback when the item is not present in multiItemAccessoriessList.\r\n */\r\n const getCartItemDisplayInfo = (cartItems: any[]) => {\r\n if (!cartItems?.length) return null;\r\n\r\n const toNumberOrZero = (value: any) => {\r\n const parsed = Number(value);\r\n return Number.isFinite(parsed) ? parsed : 0;\r\n };\r\n\r\n const getCycleMonths = (cycle: any) => {\r\n const start = Number(cycle?.cycleStart);\r\n const end = Number(cycle?.cycleEnd);\r\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\r\n return (end - start) + 1;\r\n }\r\n return 1;\r\n };\r\n\r\n let name = '';\r\n let monthlyInstallment = 0;\r\n let oneTimePrice = 0;\r\n\r\n for (const item of cartItems) {\r\n if (!name) {\r\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\r\n }\r\n\r\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\r\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\r\n const originalInstallment = monthlyPrices\r\n .flatMap((p: any) => p?.additionalDetails || [])\r\n .find((d: any) => d?.id === 'originalInstallment')?.value;\r\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\r\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\r\n\r\n // Flat update-cart payloads expose prices under `item.prices`.\r\n const flatPrices = item?.prices || [];\r\n\r\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\r\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\r\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\r\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\r\n\r\n // Fallback for watch/tablet when recommendation response is absent:\r\n // compute total financed amount = recurring installments across cycles + one-time fee.\r\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\r\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\r\n }, 0) + flatPrices\r\n .filter((p: any) => p?.priceType === 'ONETIME')\r\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\r\n\r\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\r\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\r\n }\r\n\r\n return {\r\n name,\r\n monthlyInstallment,\r\n oneTimePrice,\r\n };\r\n };\r\n\r\n // Get all selected items across all tabs as a flat array with cumulative prices\r\n const getAllSelectedItems = () => {\r\n let totalOneTimePrice = 0;\r\n let totalMonthlyPrice = 0;\r\n\r\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\r\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\r\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\r\n\r\n // Items from recommendation list that are in cart\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n .map((item: any) => {\r\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\r\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\r\n return { ...item, tabKey };\r\n });\r\n\r\n // Cart-only items not in recommendation list\r\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\r\n .filter((id) => !recomIds.has(id))\r\n .map((id) => {\r\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\r\n if (!info) return null;\r\n totalOneTimePrice += info.oneTimePrice;\r\n totalMonthlyPrice += info.monthlyInstallment;\r\n return {\r\n tabKey,\r\n isCartOnly: true,\r\n recomApiResponse: {\r\n id,\r\n name: info.name,\r\n oneTimePrice: { base: info.oneTimePrice },\r\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\r\n },\r\n };\r\n })\r\n .filter(Boolean);\r\n\r\n return [...recomItems, ...cartOnlyItems];\r\n });\r\n\r\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\r\n for (const tabKey of [WATCHES, TABLETS]) {\r\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\r\n if (hasItemsInTab) {\r\n const rpRawPrice =\r\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\r\n 0;\r\n const rpParsedPrice = Number(rpRawPrice);\r\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\r\n totalMonthlyPrice += rpPrice;\r\n }\r\n }\r\n\r\n return { items, totalOneTimePrice, totalMonthlyPrice };\r\n };\r\n\r\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\r\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\r\n return (\r\n <>\r\n <Row>\r\n <div className={Styles.mainPage}>\r\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\r\n <DeviceCarouselComponent key={store?.selectedTab}>\r\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\r\n return (\r\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\r\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\r\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\r\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\r\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\r\n </div>}\r\n \r\n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\r\n <div className={Styles.esimBadge}>\r\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\r\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\r\n </div>\r\n )}\r\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\r\n </div>\r\n </div>\r\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\r\n {selectedPaymentType === CONTRACT ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\r\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\r\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\r\n </span>\r\n )}\r\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\r\n </div>\r\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\r\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\r\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\r\n <><FalconButtonV2\r\n content={content?.removefromcartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n </> :\r\n <FalconButtonV2\r\n content={content?.addtocartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </DeviceCarouselComponent>\r\n\r\n <div className={Styles.miaFooter}>\r\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\r\n * contract/monthly flow (not one-time pay), and new subscriptions\r\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\r\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\r\n && Object.keys(recommendedAccessories || {}).length > 1\r\n && selectedPaymentType === CONTRACT\r\n && <div className={Styles.miniSummary}>\r\n <div className={Styles.titleRow}>\r\n {/**1*/}\r\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\r\n {/**2*/}\r\n <span className={Styles.titleIcons}>\r\n {(content?.recommendationType || []).map((tabKey: string) => {\r\n return (\r\n inTabSelected[tabKey] > 0 && (\r\n <>\r\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\r\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\r\n </>\r\n )\r\n )\r\n })}\r\n </span>\r\n {/**3*/}\r\n <div className={`fw-bold ${Styles.cartPrice}`}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\r\n : countZero(totalOneTimePrice)\r\n }\r\n </div>\r\n {/**4*/}\r\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\r\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\r\n </div>\r\n {showMiniCart && (\r\n <>\r\n {/* DividerComponent */}\r\n <div className={Styles.miniCartDivider} />\r\n {allSelectedItems\r\n .map((item: any) => (\r\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\r\n <div className={Styles.itemLine}>\r\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\r\n <div className={Styles.cartPrice}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\r\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\r\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\r\n }\r\n </div>\r\n <img\r\n className={Styles.cartDelete}\r\n loading='lazy'\r\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\r\n alt='delete_icon'\r\n onClick={() => handleDeleteFromMiniCart(item)}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\r\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\r\n <div className={Styles.rpPrice}>\r\n {countZero(Number.isFinite(Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n ))\r\n ? Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n )\r\n : 0)}{content?.monthlyText}\r\n </div>\r\n </div>}\r\n {/* DividerComponent */}\r\n <hr className={Styles.itemDivider} />\r\n </div>\r\n ))\r\n }\r\n </>\r\n )\r\n }\r\n\r\n </div>}\r\n <div className={`${Styles.checkoutBtn}`}>\r\n {content?.proceedtocheckoutButton?.length > 0 && (\r\n <FalconButtonV2\r\n content={content.proceedtocheckoutButton[0]}\r\n eventAction={''}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </Row>\r\n {show && <AccessoryModal\r\n modalState={show}\r\n handler={() => { onCloseClick() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n > <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={content?.errorModal?.[0]?.heading} />\r\n <RichText content={content?.errorModal?.[0]?.description} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\r\n <FalconButtonV2\r\n content={content?.retryButton?.[0]}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n metadata={undefined}\r\n wafIdentifier={basicConfigUrl}\r\n />\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n }\r\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => { onCloseClickCartLimitPopup() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}>\r\n <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\r\n </div>\r\n </div>\r\n </AccessoryModal>}\r\n \r\n {/* Selection Limit Modal for Watches and Tablets */}\r\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\r\n const selectionContent = getSelectionPopupContent();\r\n // Track popup open event, limit description to 100 chars max\r\n // const desc = typeof selectionContent?.description === 'string'\r\n // ? selectionContent.description\r\n // : JSON.stringify(selectionContent?.description ?? '');\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO\r\n });\r\n return (\r\n <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => handleClosePopup(selectionContent) }\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <>\r\n {selectionContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={selectionContent.heading} />\r\n </div>\r\n )}\r\n \r\n {selectionContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={selectionContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {selectionContent?.link && (\r\n <a \r\n className={Styles.factSheetLink}\r\n onClick={() => handleKeepPrevious()}\r\n >\r\n {selectionContent.linkText}\r\n </a>\r\n )}\r\n \r\n {selectionContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={selectionContent.button[0]}\r\n onClick={() => handleReplaceSelection()}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","ratePlanFlow","_b","_a","MOBILERATEPLAN","includes","call","_e","_d","_c","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_f","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","handleClickAddRemoveCartBtn","e","index","preventDefault","recomApiResponse","trackCTAButton","REMOVEFROMCART","REMOVE","checkCartLimit","ADD_TO_CART","ADD","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","_h","_g","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","window","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","_j","hardwareOneTimeTotal","reduce","sum","price","_m","_l","_k","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","CONTRACT","card","selectedCard","detailSection","sbStoryItem","body","displayText","heading","_o","_p","_r","_q","_t","_s","optionalText","accessoriesColorLabel","_v","_u","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","priceContainer","style","_4","_3","marketMonthlyInstallment","countZero","_5","_6","_7","_8","strikedMonthlyPrice","_9","_11","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_14","_13","strikedtotalMonthlyPrice","visibility","_15","_16","market","_18","_17","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_19","includedOptions","_20","FLEX_UPGRADE","freeFUText","flexUpgradeText","_22","_21","_24","_23","_25","_28","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_29","_30","FalconButtonV2","_31","onClick","wafIdentifier","disabled","_32","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_12","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import t,{useState as n,useEffect as o}from"react";import l from"./PaymentTypeTabs.module.scss.js";import i from"../../ResponsiveRow/row.js";import{useMultiAccessoryContext as a}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as m}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as s}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import{trackNewDatalayerEvent as c}from"../../../utils/AnalyticsUtils.js";import{TABCLICK as r,GAEVENT as d,CONTENT as p}from"../../../Analytics/AnalyticsConstants.js";import{INTERNETFLOW as u,TV as v,MOBILERATEPLAN as y,BASE as f,ACCESSORY as T}from"../../../utils/constants.js";import{getCookie as x}from"cookies-next";import{viewport as h}from"../../../utils/utils.js";import E from"../../richtext.js";import b from"../../FalconButtonV2/FalconButtonV2.js";import g from"../../NewLineCheck/GenericModal.js";const j=({content:j})=>{var P,A,C,N,k,S,O,w,I;const{store:B,dispatch:F}=a(),M=m(F),R=s(),$=x("one-commerce-cartId"),{selectedPaymentType:_,recommendedAccessories:D,cartData:U}=B,H=!!(null===(A=null===(P=[u,v])||void 0===P?void 0:P.includes)||void 0===A?void 0:A.call(P,null===(C=null==D?void 0:D[0])||void 0===C?void 0:C.recommendationProcessingType)),V=!!(null===(k=null===(N=[y])||void 0===N?void 0:N.includes)||void 0===k?void 0:k.call(N,null===(S=null==D?void 0:D[0])||void 0===S?void 0:S.recommendationProcessingType)),[q,G]=n(!1),L=h(),Q=_===f?null==j?void 0:j.paymentTypeChngePopupOnetime:null==j?void 0:j.paymentTypeChngePopup;o(()=>{var e,t;if(_&&(null===(e=null==j?void 0:j.paymentOptions)||void 0===e?void 0:e.length)>0){const e=null===(t=null==j?void 0:j.paymentOptions)||void 0===t?void 0:t.find(e=>e.type===_);e&&c(d,r,{click_text:null==e?void 0:e.paymentText,headline:H?u:V?y:""})}},[_,null==j?void 0:j.paymentOptions,H,V]);return t.createElement(t.Fragment,null,(null===(O=null==j?void 0:j.paymentOptions)||void 0===O?void 0:O.length)>1&&t.createElement(i,null,t.createElement("div",{className:l.paymentTypeContainer},t.createElement("div",{className:l.paymentQuestion},j.paymentHeadingText),t.createElement("div",{className:l.tabsContainer},((null==j?void 0:j.paymentOptions)||[]).map(n=>t.createElement("button",{className:`${l.tabButton} ${_===(null==n?void 0:n.type)?l.activeTab:""}`,onClick:()=>{return t=n,e(void 0,void 0,void 0,function*(){if(t.type===_)return;c(d,r,{component:p,click_text:null==t?void 0:t.paymentText});const e=_;M.setSelectedPaymentType(t.type);const n=Object.keys((null==U?void 0:U[T])||{}).length>0;$&&n&&(G(!0),(yield R.multiItemAccessorycreateCartRequest({id:$,redirectUrl:"",paymentTermOnly:!0,skipRedirect:!0,newPaymentType:t.type}))||(G(!1),M.setSelectedPaymentType(e)))});var t}},t.createElement("span",{className:`${l.paymentText}`},null==n?void 0:n.paymentText)," ",t.createElement("span",{className:`${l.paymentSubText}`},(null==n?void 0:n.paymentSubText)&&(null==n?void 0:n.paymentSubText)))),q&&t.createElement(g,{modalState:q,handler:()=>G(!1),showFooter:!1,width:"624px",height:"auto",noCloseButton:!1,backDrop:!0,bodyPadding:"mobile"===L?"16px":"24px"},t.createElement("div",{className:l.paymentPopupContent},t.createElement("div",{className:l.paymentPopupHeading},t.createElement(E,{content:null==Q?void 0:Q.heading})),t.createElement("div",{className:l.paymentPopupDescription},t.createElement(E,{content:null==Q?void 0:Q.description})),(null===(w=null==Q?void 0:Q.button)||void 0===w?void 0:w.length)>0&&t.createElement("div",{className:l.paymentPopupButton},t.createElement(b,{content:null===(I=null==Q?void 0:Q.button)||void 0===I?void 0:I[0],onClick:()=>{G(!1)},metadata:void 0,wafIdentifier:""}))))))))};export{j as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import t,{useState as n,useEffect as o}from"react";import l from"./PaymentTypeTabs.module.scss.js";import i from"../../ResponsiveRow/row.js";import{useMultiAccessoryContext as a}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as m}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as s}from"../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions.js";import{trackNewDatalayerEvent as c}from"../../../utils/AnalyticsUtils.js";import{TABCLICK as r,GAEVENT as d,CONTENT as p}from"../../../Analytics/AnalyticsConstants.js";import{INTERNETFLOW as u,TV as v,MOBILERATEPLAN as y,BASE as f,ACCESSORY as T}from"../../../utils/constants.js";import{getCookie as x}from"cookies-next";import{viewport as h}from"../../../utils/utils.js";import E from"../../richtext.js";import b from"../../FalconButtonV2/FalconButtonV2.js";import g from"../../NewLineCheck/GenericModal.js";const j=({content:j})=>{var P,A,C,N,k,S,O,w,I;const{store:B,dispatch:F}=a(),M=m(F),R=s(),$=x("one-commerce-cartId"),{selectedPaymentType:_,recommendedAccessories:D,cartData:U}=B,H=!!(null===(A=null===(P=[u,v])||void 0===P?void 0:P.includes)||void 0===A?void 0:A.call(P,null===(C=null==D?void 0:D[0])||void 0===C?void 0:C.recommendationProcessingType)),V=!!(null===(k=null===(N=[y])||void 0===N?void 0:N.includes)||void 0===k?void 0:k.call(N,null===(S=null==D?void 0:D[0])||void 0===S?void 0:S.recommendationProcessingType)),[q,G]=n(!1),L=h(),Q=_===f?null==j?void 0:j.paymentTypeChngePopupOnetime:null==j?void 0:j.paymentTypeChngePopup;o(()=>{var e,t;if(_&&(null===(e=null==j?void 0:j.paymentOptions)||void 0===e?void 0:e.length)>0){const e=null===(t=null==j?void 0:j.paymentOptions)||void 0===t?void 0:t.find(e=>e.type===_);e&&c(d,r,{click_text:null==e?void 0:e.paymentText,headline:H?u:V?y:""})}},[_,null==j?void 0:j.paymentOptions,H,V]);return t.createElement(t.Fragment,null,(null===(O=null==j?void 0:j.paymentOptions)||void 0===O?void 0:O.length)>1&&t.createElement(i,null,t.createElement("div",{className:l.paymentTypeContainer},t.createElement("div",{className:l.paymentQuestion},j.paymentHeadingText),t.createElement("div",{className:l.tabsContainer},((null==j?void 0:j.paymentOptions)||[]).map(n=>t.createElement("button",{className:`${l.tabButton} ${_===(null==n?void 0:n.type)?l.activeTab:""}`,onClick:()=>{return t=n,e(void 0,void 0,void 0,function*(){if(t.type===_)return;c(d,r,{component:p,click_text:null==t?void 0:t.paymentText});const e=_;M.setSelectedPaymentType(t.type);const n=Object.keys((null==U?void 0:U[T])||{}).length>0;$&&n&&((yield R.multiItemAccessorycreateCartRequest({id:$,redirectUrl:"",paymentTermOnly:!0,skipRedirect:!0,newPaymentType:t.type}))?G(!0):M.setSelectedPaymentType(e))});var t}},t.createElement("span",{className:`${l.paymentText}`},null==n?void 0:n.paymentText)," ",t.createElement("span",{className:`${l.paymentSubText}`},(null==n?void 0:n.paymentSubText)&&(null==n?void 0:n.paymentSubText)))),q&&t.createElement(g,{modalState:q,handler:()=>G(!1),showFooter:!1,width:"624px",height:"auto",noCloseButton:!1,backDrop:!0,bodyPadding:"mobile"===L?"16px":"24px"},t.createElement("div",{className:l.paymentPopupContent},t.createElement("div",{className:l.paymentPopupHeading},t.createElement(E,{content:null==Q?void 0:Q.heading})),t.createElement("div",{className:l.paymentPopupDescription},t.createElement(E,{content:null==Q?void 0:Q.description})),(null===(w=null==Q?void 0:Q.button)||void 0===w?void 0:w.length)>0&&t.createElement("div",{className:l.paymentPopupButton},t.createElement(b,{content:null===(I=null==Q?void 0:Q.button)||void 0===I?void 0:I[0],onClick:()=>{G(!1)},metadata:void 0,wafIdentifier:""}))))))))};export{j as default};
2
2
  //# sourceMappingURL=PaymentTypeTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentTypeTabs.js","sources":["../../../../../src/components/Accessories/PaymentTypeTabs/PaymentTypeTabs.tsx"],"sourcesContent":["import React, { useEffect, JSX, useState }from 'react';\r\nimport Styles from './PaymentTypeTabs.module.scss';\r\nimport Row from '../../ResponsiveRow/row';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\nimport { CONTENT, GAEVENT, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { ACCESSORY, BASE, INTERNETFLOW, MOBILERATEPLAN, TV } from '../../../utils/constants';\r\nimport { getCookie } from 'cookies-next';\r\nimport { viewport } from '../../../utils/utils';\r\nimport RichText from '../../richtext';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport GenericModal from '../../NewLineCheck/GenericModal';\r\n\r\nexport interface paymentOptionSchema {\r\n paymentSubText: string;\r\n paymentText: string;\r\n type: string;\r\n}\r\ninterface PaymentTypeTabsProps {\r\n content: {\r\n paymentHeadingText: string;\r\n paymentOptions: paymentOptionSchema[];\r\n paymentTypeChngePopup: any;\r\n paymentTypeChngePopupOnetime: any;\r\n };\r\n}\r\n\r\nconst PaymentTypeTabs = ({ content }: PaymentTypeTabsProps): JSX.Element => {\r\n const {store, dispatch} = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const cartId = getCookie('one-commerce-cartId');\r\n const { selectedPaymentType, recommendedAccessories, cartData } = store;\r\n const internetFlow = [INTERNETFLOW, TV ]?.includes?.(recommendedAccessories?.[0]?.recommendationProcessingType) ? true : false;\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[0]?.recommendationProcessingType) ? true : false;\r\n const [showInfoModal, setShowInfoModal] = useState(false);\r\n const checkingviewPort = viewport()\r\n // Popup content depends on the currently selected payment type:\r\n // BASE (one-time) → paymentTypeChngePopupOnetime, CONTRACT (monthly) → paymentTypeChngePopup\r\n const activePaymentPopupContent = selectedPaymentType === BASE\r\n ? content?.paymentTypeChngePopupOnetime\r\n : content?.paymentTypeChngePopup;\r\n\r\n // Track default selection when component mounts or when selectedPaymentType is set for event Tracking\r\n useEffect(() => {\r\n if (selectedPaymentType && content?.paymentOptions?.length > 0) {\r\n const selectedOption = content?.paymentOptions?.find(option => option.type === selectedPaymentType);\r\n if (selectedOption) {\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n click_text: selectedOption?.paymentText,\r\n headline: internetFlow ? INTERNETFLOW : ratePlanFlow ? MOBILERATEPLAN : '',\r\n });\r\n }\r\n }\r\n }, [selectedPaymentType, content?.paymentOptions, internetFlow, ratePlanFlow]);\r\n\r\n const handleTabClick = async (selectedOption: paymentOptionSchema) => {\r\n // Do nothing if the tab is already selected\r\n if (selectedOption.type === selectedPaymentType) return;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: CONTENT,\r\n click_text: selectedOption?.paymentText\r\n });\r\n const previousPaymentType = selectedPaymentType;\r\n actions.setSelectedPaymentType(selectedOption.type);\r\n // Call cart API with payment term change only if there are items in the cart.\r\n // Pass newPaymentType explicitly to avoid stale storeRef (state hasn't committed yet).\r\n const hasItemsInCart = Object.keys(cartData?.[ACCESSORY] || {}).length > 0;\r\n\r\n if (cartId && hasItemsInCart) {\r\n setShowInfoModal(true); // show the payment change modal while the API call is in progress\r\n const response = await cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n paymentTermOnly: true,\r\n skipRedirect: true,\r\n newPaymentType: selectedOption.type,\r\n });\r\n // Revert tab selection if the API call failed\r\n if (!response) {\r\n setShowInfoModal(false);\r\n actions.setSelectedPaymentType(previousPaymentType);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {content?.paymentOptions?.length > 1 && <Row>\r\n <div className={Styles.paymentTypeContainer}>\r\n <div className={Styles.paymentQuestion}>\r\n {content.paymentHeadingText}\r\n </div>\r\n <div className={Styles.tabsContainer}>\r\n {(content?.paymentOptions || []).map((item) => {\r\n return (\r\n <button\r\n className={`${Styles.tabButton} ${selectedPaymentType === item?.type ? Styles.activeTab : ''}`}\r\n onClick={() => handleTabClick(item)}\r\n >\r\n <span className={`${Styles.paymentText}`} >{item?.paymentText}</span> <span className={`${Styles.paymentSubText}`}>{item?.paymentSubText && item?.paymentSubText}</span>\r\n </button>\r\n )\r\n })}\r\n\r\n {/* Modal whn the payment type is changed */}\r\n {showInfoModal && (\r\n <GenericModal\r\n modalState={showInfoModal}\r\n handler={() => setShowInfoModal(false)}\r\n showFooter={false}\r\n width={'624px'}\r\n height='auto'\r\n noCloseButton={false}\r\n backDrop={true}\r\n bodyPadding={checkingviewPort === 'mobile' ? '16px' : '24px'}\r\n >\r\n <div className={Styles.paymentPopupContent}>\r\n <div className={Styles.paymentPopupHeading}>\r\n <RichText content={activePaymentPopupContent?.heading} />\r\n </div>\r\n <div className={Styles.paymentPopupDescription}>\r\n <RichText content={activePaymentPopupContent?.description} />\r\n </div>\r\n {activePaymentPopupContent?.button?.length > 0 && (\r\n <div className={Styles.paymentPopupButton}>\r\n <FalconButtonV2\r\n content={activePaymentPopupContent?.button?.[0]}\r\n onClick={() => {\r\n setShowInfoModal(false);\r\n }}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </GenericModal>\r\n )}\r\n </div>\r\n </div>\r\n </Row>}\r\n </>\r\n );\r\n};\r\n\r\nexport default PaymentTypeTabs;"],"names":["PaymentTypeTabs","content","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","cartId","getCookie","selectedPaymentType","recommendedAccessories","cartData","internetFlow","_b","INTERNETFLOW","TV","_a","includes","call","recommendationProcessingType","ratePlanFlow","_e","_d","MOBILERATEPLAN","_f","showInfoModal","setShowInfoModal","useState","checkingviewPort","viewport","activePaymentPopupContent","BASE","paymentTypeChngePopupOnetime","paymentTypeChngePopup","useEffect","paymentOptions","length","selectedOption","find","option","type","trackNewDatalayerEvent","GAEVENT","TABCLICK","click_text","paymentText","headline","React","createElement","Fragment","_g","Row","className","Styles","paymentTypeContainer","paymentQuestion","paymentHeadingText","tabsContainer","map","item","tabButton","activeTab","onClick","handleTabClick","__awaiter","component","CONTENT","previousPaymentType","setSelectedPaymentType","hasItemsInCart","Object","keys","ACCESSORY","multiItemAccessorycreateCartRequest","id","redirectUrl","paymentTermOnly","skipRedirect","newPaymentType","paymentSubText","GenericModal","modalState","handler","showFooter","width","height","noCloseButton","backDrop","bodyPadding","paymentPopupContent","paymentPopupHeading","RichText","heading","paymentPopupDescription","description","button","_h","paymentPopupButton","FalconButtonV2","_j","metadata","undefined","wafIdentifier"],"mappings":"4/BA6BA,MAAMA,EAAkB,EAAGC,oCACzB,MAAMC,MAACA,EAAKC,SAAEA,GAAYC,IACpBC,EAAUC,EAAyBH,GACnCI,EAAcC,IACdC,EAASC,EAAU,wBACnBC,oBAAEA,EAAmBC,uBAAEA,EAAsBC,SAAEA,GAAaX,EAC5DY,KAA4C,QAA7BC,EAAmB,UAAnB,CAACC,EAAcC,UAAI,IAAAC,OAAA,EAAAA,EAAEC,gBAAQ,IAAAJ,OAAA,EAAAA,EAAAK,KAAAF,YAAGN,aAAsB,EAAtBA,EAAyB,yBAAIS,+BAC5EC,KAA0C,QAA3BC,EAAiB,QAAjBC,EAAA,CAACC,UAAgB,IAAAD,OAAA,EAAAA,EAAEL,gBAAQ,IAAAI,OAAA,EAAAA,EAAAH,KAAAI,EAA8B,QAA3BE,EAAAd,aAAsB,EAAtBA,EAAyB,UAAE,IAAAc,OAAA,EAAAA,EAAEL,gCACzEM,EAAeC,GAAoBC,GAAS,GAC7CC,EAAmBC,IAGnBC,EAA4BrB,IAAwBsB,EACtDhC,aAAO,EAAPA,EAASiC,6BACTjC,eAAAA,EAASkC,sBAGbC,EAAU,aACR,GAAIzB,IAA8C,QAAvBO,EAAAjB,aAAO,EAAPA,EAASoC,sBAAc,IAAAnB,OAAA,EAAAA,EAAEoB,QAAS,EAAG,CAC9D,MAAMC,EAAwC,QAAvBxB,EAAAd,aAAO,EAAPA,EAASoC,sBAAc,IAAAtB,OAAA,EAAAA,EAAEyB,KAAKC,GAAUA,EAAOC,OAAS/B,GAC3E4B,GACFI,EAAuBC,EAASC,EAAU,CACxCC,WAAYP,aAAc,EAAdA,EAAgBQ,YAC5BC,SAAUlC,EAAeE,EAAeM,EAAeG,EAAiB,IAG9E,GACC,CAACd,EAAqBV,aAAO,EAAPA,EAASoC,eAAgBvB,EAAcQ,IAgChE,OACE2B,EAAAC,cAAAD,EAAAE,SAAA,MACwB,QAAvBC,EAAAnD,aAAO,EAAPA,EAASoC,sBAAc,IAAAe,OAAA,EAAAA,EAAEd,QAAS,GAAKW,gBAACI,EAAG,KAC1CJ,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOC,sBACrBP,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOE,iBACpBxD,EAAQyD,oBAEXT,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOI,iBACnB1D,aAAO,EAAPA,EAASoC,iBAAkB,IAAIuB,IAAKC,GAElCZ,EAAAC,cAAA,SAAA,CACEI,UAAW,GAAGC,EAAOO,aAAanD,KAAwBkD,aAAI,EAAJA,EAAMnB,MAAOa,EAAOQ,UAAY,KAC1FC,QAAS,KAAMC,OA1CC1B,EA0CcsB,EA1CyBK,OAAA,OAAA,OAAA,EAAA,YAEnE,GAAI3B,EAAeG,OAAS/B,EAAqB,OACjDgC,EAAuBC,EAASC,EAAU,CACxCsB,UAAWC,EACXtB,WAAYP,aAAc,EAAdA,EAAgBQ,cAE9B,MAAMsB,EAAsB1D,EAC5BN,EAAQiE,uBAAuB/B,EAAeG,MAG9C,MAAM6B,EAAiBC,OAAOC,MAAK5D,aAAQ,EAARA,EAAW6D,KAAc,CAAA,GAAIpC,OAAS,EAErE7B,GAAU8D,IACZ3C,GAAiB,UACMrB,EAAYoE,oCAAoC,CACrEC,GAAInE,EACJoE,YAAa,GACbC,iBAAiB,EACjBC,cAAc,EACdC,eAAgBzC,EAAeG,UAI/Bd,GAAiB,GACjBvB,EAAQiE,uBAAuBD,IAGrC,GA5BuB,IAAO9B,IA4CjBU,EAAAC,cAAA,OAAA,CAAMI,UAAW,GAAGC,EAAOR,eAAiBc,aAAI,EAAJA,EAAMd,iBAAoBE,EAAAC,cAAA,OAAA,CAAOI,UAAW,GAAGC,EAAO0B,mBAAmBpB,aAAI,EAAJA,EAAMoB,kBAAkBpB,aAAI,EAAJA,EAAMoB,mBAMvJtD,GACKsB,EAAAC,cAACgC,GACCC,WAAYxD,EACZyD,QAAS,IAAMxD,GAAiB,GAChCyD,YAAY,EACZC,MAAO,QACPC,OAAO,OACPC,eAAe,EACfC,UAAU,EACVC,YAAkC,WAArB5D,EAAgC,OAAS,QAEtDmB,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOoC,qBACrB1C,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOqC,qBACrB3C,EAAAC,cAAC2C,EAAQ,CAAC5F,QAAS+B,aAAyB,EAAzBA,EAA2B8D,WAEhD7C,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAOwC,yBACrB9C,EAAAC,cAAC2C,EAAQ,CAAC5F,QAAS+B,aAAyB,EAAzBA,EAA2BgE,gBAEd,UAAjChE,aAAyB,EAAzBA,EAA2BiE,cAAM,IAAAC,OAAA,EAAAA,EAAE5D,QAAS,GAC3CW,EAAAC,cAAA,MAAA,CAAKI,UAAWC,EAAO4C,oBACrBlD,EAAAC,cAACkD,EAAc,CACbnG,gBAASoG,EAAArE,aAAyB,EAAzBA,EAA2BiE,6BAAS,GAC7CjC,QAAS,KACPpC,GAAiB,IAEnB0E,cAAUC,EACVC,cAAe"}
1
+ {"version":3,"file":"PaymentTypeTabs.js","sources":["../../../../../src/components/Accessories/PaymentTypeTabs/PaymentTypeTabs.tsx"],"sourcesContent":["import React, { useEffect, JSX, useState }from 'react';\r\nimport Styles from './PaymentTypeTabs.module.scss';\r\nimport Row from '../../ResponsiveRow/row';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\nimport { CONTENT, GAEVENT, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { ACCESSORY, BASE, INTERNETFLOW, MOBILERATEPLAN, TV } from '../../../utils/constants';\r\nimport { getCookie } from 'cookies-next';\r\nimport { viewport } from '../../../utils/utils';\r\nimport RichText from '../../richtext';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport GenericModal from '../../NewLineCheck/GenericModal';\r\n\r\nexport interface paymentOptionSchema {\r\n paymentSubText: string;\r\n paymentText: string;\r\n type: string;\r\n}\r\ninterface PaymentTypeTabsProps {\r\n content: {\r\n paymentHeadingText: string;\r\n paymentOptions: paymentOptionSchema[];\r\n paymentTypeChngePopup: any;\r\n paymentTypeChngePopupOnetime: any;\r\n };\r\n}\r\n\r\nconst PaymentTypeTabs = ({ content }: PaymentTypeTabsProps): JSX.Element => {\r\n const {store, dispatch} = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const cartId = getCookie('one-commerce-cartId');\r\n const { selectedPaymentType, recommendedAccessories, cartData } = store;\r\n const internetFlow = [INTERNETFLOW, TV ]?.includes?.(recommendedAccessories?.[0]?.recommendationProcessingType) ? true : false;\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[0]?.recommendationProcessingType) ? true : false;\r\n const [showInfoModal, setShowInfoModal] = useState(false);\r\n const checkingviewPort = viewport()\r\n // Popup content depends on the currently selected payment type:\r\n // BASE (one-time) → paymentTypeChngePopupOnetime, CONTRACT (monthly) → paymentTypeChngePopup\r\n const activePaymentPopupContent = selectedPaymentType === BASE\r\n ? content?.paymentTypeChngePopupOnetime\r\n : content?.paymentTypeChngePopup;\r\n\r\n // Track default selection when component mounts or when selectedPaymentType is set for event Tracking\r\n useEffect(() => {\r\n if (selectedPaymentType && content?.paymentOptions?.length > 0) {\r\n const selectedOption = content?.paymentOptions?.find(option => option.type === selectedPaymentType);\r\n if (selectedOption) {\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n click_text: selectedOption?.paymentText,\r\n headline: internetFlow ? INTERNETFLOW : ratePlanFlow ? MOBILERATEPLAN : '',\r\n });\r\n }\r\n }\r\n }, [selectedPaymentType, content?.paymentOptions, internetFlow, ratePlanFlow]);\r\n\r\n const handleTabClick = async (selectedOption: paymentOptionSchema) => {\r\n // Do nothing if the tab is already selected\r\n if (selectedOption.type === selectedPaymentType) return;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: CONTENT,\r\n click_text: selectedOption?.paymentText\r\n });\r\n const previousPaymentType = selectedPaymentType;\r\n actions.setSelectedPaymentType(selectedOption.type);\r\n // Call cart API with payment term change only if there are items in the cart.\r\n // Pass newPaymentType explicitly to avoid stale storeRef (state hasn't committed yet).\r\n const hasItemsInCart = Object.keys(cartData?.[ACCESSORY] || {}).length > 0;\r\n\r\n if (cartId && hasItemsInCart) {\r\n const response = await cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n paymentTermOnly: true,\r\n skipRedirect: true,\r\n newPaymentType: selectedOption.type,\r\n });\r\n if (response) {\r\n // Show the payment change modal only when the API call succeeded\r\n setShowInfoModal(true);\r\n } else {\r\n // Revert tab selection if the API call failed\r\n actions.setSelectedPaymentType(previousPaymentType);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {content?.paymentOptions?.length > 1 && <Row>\r\n <div className={Styles.paymentTypeContainer}>\r\n <div className={Styles.paymentQuestion}>\r\n {content.paymentHeadingText}\r\n </div>\r\n <div className={Styles.tabsContainer}>\r\n {(content?.paymentOptions || []).map((item) => {\r\n return (\r\n <button\r\n className={`${Styles.tabButton} ${selectedPaymentType === item?.type ? Styles.activeTab : ''}`}\r\n onClick={() => handleTabClick(item)}\r\n >\r\n <span className={`${Styles.paymentText}`} >{item?.paymentText}</span> <span className={`${Styles.paymentSubText}`}>{item?.paymentSubText && item?.paymentSubText}</span>\r\n </button>\r\n )\r\n })}\r\n\r\n {/* Modal whn the payment type is changed */}\r\n {showInfoModal && (\r\n <GenericModal\r\n modalState={showInfoModal}\r\n handler={() => setShowInfoModal(false)}\r\n showFooter={false}\r\n width={'624px'}\r\n height='auto'\r\n noCloseButton={false}\r\n backDrop={true}\r\n bodyPadding={checkingviewPort === 'mobile' ? '16px' : '24px'}\r\n >\r\n <div className={Styles.paymentPopupContent}>\r\n <div className={Styles.paymentPopupHeading}>\r\n <RichText content={activePaymentPopupContent?.heading} />\r\n </div>\r\n <div className={Styles.paymentPopupDescription}>\r\n <RichText content={activePaymentPopupContent?.description} />\r\n </div>\r\n {activePaymentPopupContent?.button?.length > 0 && (\r\n <div className={Styles.paymentPopupButton}>\r\n <FalconButtonV2\r\n content={activePaymentPopupContent?.button?.[0]}\r\n onClick={() => {\r\n setShowInfoModal(false);\r\n }}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </GenericModal>\r\n )}\r\n </div>\r\n </div>\r\n </Row>}\r\n </>\r\n );\r\n};\r\n\r\nexport default PaymentTypeTabs;"],"names":["PaymentTypeTabs","content","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","cartId","getCookie","selectedPaymentType","recommendedAccessories","cartData","internetFlow","_b","INTERNETFLOW","TV","_a","includes","call","recommendationProcessingType","ratePlanFlow","_e","_d","MOBILERATEPLAN","_f","showInfoModal","setShowInfoModal","useState","checkingviewPort","viewport","activePaymentPopupContent","BASE","paymentTypeChngePopupOnetime","paymentTypeChngePopup","useEffect","paymentOptions","length","selectedOption","find","option","type","trackNewDatalayerEvent","GAEVENT","TABCLICK","click_text","paymentText","headline","React","createElement","Fragment","_g","Row","className","Styles","paymentTypeContainer","paymentQuestion","paymentHeadingText","tabsContainer","map","item","tabButton","activeTab","onClick","handleTabClick","__awaiter","component","CONTENT","previousPaymentType","setSelectedPaymentType","hasItemsInCart","Object","keys","ACCESSORY","multiItemAccessorycreateCartRequest","id","redirectUrl","paymentTermOnly","skipRedirect","newPaymentType","paymentSubText","GenericModal","modalState","handler","showFooter","width","height","noCloseButton","backDrop","bodyPadding","paymentPopupContent","paymentPopupHeading","RichText","heading","paymentPopupDescription","description","button","_h","paymentPopupButton","FalconButtonV2","_j","metadata","undefined","wafIdentifier"],"mappings":"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"}
@@ -1 +1 @@
1
- .card_TBosU.sr-card_Eo691{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_TBosU.border-top_18q7h{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_fmqWp{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_cE7mi{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_nwsBG{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}}.container_c8st7{order:-1}.stickyStyleUp_39Ybs,.stickyStyle_JW7TL{position:fixed;z-index:8;width:100%}.stickyStyle_JW7TL{margin-top:-55px}@media (max-width:1023px){.stickyStyle_JW7TL{margin-top:auto}}.animations_wbW76,.wrapper_x0eeF{min-height:60px;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:16px;padding:0 16px;position:relative}@media (max-width:767px){.animations_wbW76,.wrapper_x0eeF{min-height:76px;padding:8px 56px 8px 6px!important}}.animations_wbW76 .iconStyle_ftxQx,.wrapper_x0eeF .iconStyle_ftxQx{cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%)}@media (min-width:768px) and (max-width:1023px){.animations_wbW76 .iconStyle_ftxQx,.wrapper_x0eeF .iconStyle_ftxQx{right:30px}}.animations_wbW76 .textStyle_LyRjq,.wrapper_x0eeF .textStyle_LyRjq{font-size:18px;line-height:24px;font-weight:700;display:inline;color:#3d3935}@media (max-width:767px){.animations_wbW76 .textStyle_LyRjq,.wrapper_x0eeF .textStyle_LyRjq{font-size:14px;line-height:20px}}.animations_wbW76 .descriptionColorWhite_Y5SPq,.wrapper_x0eeF .descriptionColorWhite_Y5SPq{color:#fff}.animations_wbW76 .descriptionColorBlack_9AYnW,.wrapper_x0eeF .descriptionColorBlack_9AYnW{color:#000}.animations_wbW76 .btnStyleBlack_J3qnm,.animations_wbW76 .btnStyleIceWhite_dtMgV,.animations_wbW76 .btnStyle_oc2fd,.animations_wbW76 .btnanimations_-xgbH,.wrapper_x0eeF .btnStyleBlack_J3qnm,.wrapper_x0eeF .btnStyleIceWhite_dtMgV,.wrapper_x0eeF .btnStyle_oc2fd,.wrapper_x0eeF .btnanimations_-xgbH{min-width:fit-content;text-decoration:none;border-radius:25px;background-color:#da291c;color:#fff;font-size:16px;line-height:24px;font-weight:700;border:none;padding:10px 24px}.animations_wbW76 .btnStyleIceWhite_dtMgV,.wrapper_x0eeF .btnStyleIceWhite_dtMgV{background-color:transparent;color:#fff;border:2px solid #fff}.animations_wbW76 .btnStyleBlack_J3qnm,.wrapper_x0eeF .btnStyleBlack_J3qnm{background-color:#fff;color:#3d3935;border:none}@media (max-width:767px){.container_c8st7{order:-1}.stickyStyle_JW7TL{position:fixed;z-index:1;width:100%}}.close_gz0j1{display:none}.animations_wbW76{animation-name:anime_PLkrN;animation-duration:5s;animation-fill-mode:forwards;background-color:#da291c}.btnanimations_-xgbH{animation-name:btnAnime_amQr7;animation-duration:5s;animation-fill-mode:forwards}@keyframes btnAnime_amQr7{0%{background-color:#fff;color:#da291c}to{background-color:#da291c;color:#fff}}@keyframes anime_PLkrN{0%{background-color:#da291c;color:#fff}to{background-color:#f4d4dd;color:#000}}
1
+ .card_TBosU.sr-card_Eo691{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_TBosU.border-top_18q7h{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_fmqWp{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_cE7mi{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_nwsBG{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}}.container_c8st7{order:-1}.stickyStyleUp_39Ybs,.stickyStyle_JW7TL{position:fixed;z-index:8;width:100%}.stickyStyle_JW7TL{margin-top:-55px}@media (max-width:1023px){.stickyStyle_JW7TL{margin-top:auto}}.animations_wbW76,.wrapper_x0eeF{min-height:60px;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:16px;padding:0 16px;position:relative}@media (max-width:767px){.animations_wbW76,.wrapper_x0eeF{min-height:76px;padding:8px 56px 8px 6px!important}}.animations_wbW76 .iconStyle_ftxQx,.wrapper_x0eeF .iconStyle_ftxQx{cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%)}@media (min-width:768px) and (max-width:1023px){.animations_wbW76 .iconStyle_ftxQx,.wrapper_x0eeF .iconStyle_ftxQx{right:30px}}.animations_wbW76 .textStyle_LyRjq,.wrapper_x0eeF .textStyle_LyRjq{font-size:18px;line-height:24px;font-weight:700;display:inline;color:#3d3935}@media (max-width:767px){.animations_wbW76 .textStyle_LyRjq,.wrapper_x0eeF .textStyle_LyRjq{font-size:14px;line-height:20px}}.animations_wbW76 .descriptionColorWhite_Y5SPq,.wrapper_x0eeF .descriptionColorWhite_Y5SPq{color:#fff}.animations_wbW76 .descriptionColorBlack_9AYnW,.wrapper_x0eeF .descriptionColorBlack_9AYnW{color:#000}.animations_wbW76 .btnStyleBlack_J3qnm,.animations_wbW76 .btnStyleIceWhite_dtMgV,.animations_wbW76 .btnStyle_oc2fd,.animations_wbW76 .btnanimations_-xgbH,.wrapper_x0eeF .btnStyleBlack_J3qnm,.wrapper_x0eeF .btnStyleIceWhite_dtMgV,.wrapper_x0eeF .btnStyle_oc2fd,.wrapper_x0eeF .btnanimations_-xgbH{min-width:fit-content;text-decoration:none;border-radius:25px;background-color:#da291c;color:#fff;font-size:16px;line-height:24px;font-weight:700;border:none;padding:10px 24px}.animations_wbW76 .btnStyleIceWhite_dtMgV,.wrapper_x0eeF .btnStyleIceWhite_dtMgV{background-color:transparent;color:#fff;border:2px solid #fff}.animations_wbW76 .btnStyleBlack_J3qnm,.wrapper_x0eeF .btnStyleBlack_J3qnm{background-color:#fff;color:#3d3935;border:none}@media (max-width:767px){.container_c8st7{order:-1}.stickyStyle_JW7TL{position:fixed;z-index:1;width:100%}}.close_gz0j1{display:none}.animations_wbW76{animation-name:anime_PLkrN;background-color:#da291c}.animations_wbW76,.btnanimations_-xgbH{animation-duration:5s;animation-fill-mode:forwards}.btnanimations_-xgbH{animation-name:btnAnime_amQr7}@keyframes btnAnime_amQr7{0%{background-color:#fff;color:#da291c}to{background-color:#da291c;color:#fff}}@keyframes anime_PLkrN{0%{background-color:#da291c;color:#fff}to{background-color:#f4d4dd;color:#000}}
@@ -1,2 +1,2 @@
1
- import e,{useState as l,useContext as o,useRef as n,useEffect as i}from"react";import t from"./StaticLineTable.module.scss.js";import d from"../sharedCarousel/CarouselComponent.js";import{viewport as r,getElementMaximumHeight as u,setLocalStoreWithExpiry as s}from"../../utils/utils.js";import v from"./StaticProduct.js";import{getVocherPromotion as a,fetchOttServiceOptions as c,fetchOfferingDataLineTableV2 as p}from"../../services/LineTableService.js";import{LineTableBasicPropConfig as g}from"../../services/LineTableBasicPropConfig.js";import{filterShogunProducts as m,getTimeUntilNextTimerEvent as f,fetchStaticProductIds as w,fetchFilteredProducts as h,isShogunOfferResolved as b,getShogunSharedOffer as L,fetchPegaProducts as C}from"./Product.utils.js";import y from"js-cookie";import{LINETABLE as P}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as T}from"../../models/Analytics/items.js";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as S,VOUCHER as O,VCTYPE as I,NEW as k}from"../../utils/constants.js";import{AppContext as E,actionTypes as B}from"./StaticLineTableStore/StaticLineTableProvider.js";const j=({content:j,setGenericErrorModalDetails:x,metadata:A,tabIndex:F,constants:D,loginSuccess:U,activeIndex:N,mainContent:V,address:$,eligibleBundle:R,linecheckSuccessCallBack:J,selectedOption:q,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,lineCheckCallBack:G,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,ubRatePlanObj:Y,lineCheckOnClear:Z,pegaIntegration:ee,pegaCustomerInterest:le,useStoryblokOrder:oe,isFetching:ne,setIsFetching:ie,isProdEnv:te,toggleContent:de,localCacheDuration:re})=>{var ue,se;const ve=r(),ae=null==j?void 0:j._uid,[ce,pe]=l(),[ge,me]=l(),[fe,we]=l(),he=null===(ue=null==g?void 0:g.getInstance())||void 0===ue?void 0:ue.getBaseUrl();let be=void 0!==typeof window&&y.get("sunriseAuth");be=be&&JSON.parse(be);const Le=o(E),Ce="MOBILE"===(null==j?void 0:j.pageType),ye=(()=>{var e;if("undefined"==typeof window)return null;const l=new URLSearchParams(null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.search);return null==l?void 0:l.get("gloxtoken")})(),Pe=Boolean(null==V?void 0:V.isRewardsFlow)&&Boolean(ye),[Te,Se]=l(()=>{var e;if(!de||!de.enableLoggedInPrice)return null;const l=localStorage.getItem("userLoggedPricesToggle");if("true"===l)return!0;if("false"===l)return!1;const o=(null===(e=null==de?void 0:de.customers)||void 0===e?void 0:e.toLowerCase())===k;return!(!o||!(null==de?void 0:de.newUserToggleEnabled))||(!(o||!(null==de?void 0:de.loggedUserToggleEnabled))||null)}),[Oe,Ie]=l(!0),ke=n(null),Ee=n(""),Be=n({});i(()=>(setTimeout(()=>{je()},100),null===window||void 0===window||window.addEventListener("resize",je),null===window||void 0===window||window.addEventListener("load",je),()=>{window.removeEventListener("resize",je),window.removeEventListener("load",je)}),[null==j?void 0:j.productList,ge,fe]);const je=()=>{var e;if(Q){const e=[null==H?void 0:H.TV,null==H?void 0:H.Netflix,null==H?void 0:H.gigaSpeed].filter(Boolean).length,l=null==H?void 0:H.TV,o=null==H?void 0:H.Netflix,n=null==H?void 0:H.gigaSpeed;u(`productCardV3${l&&o&&n?3:l&&o||e>=2&&(!n||l||o)?2:1===e||2===e?1:0}`,null==ge?void 0:ge.length)}else u(`productCardV3${N}`,null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e.length)},xe=sessionStorage.getItem(S),Ae=xe&&JSON.parse(xe),Fe=null==j?void 0:j.enableFPB;console.log("inside deviceUltimateBundle",Fe,null==j?void 0:j.enableFPB,Ae),i(()=>{var e,l,o,n,i,t,d,r,u;if(ce&&(null===(e=Object.keys(ce))||void 0===e?void 0:e.length)>0&&T("view",ce[ae],"",P,null,ee),ee&&ce&&(null===(l=Object.keys(ce))||void 0===l?void 0:l.length)>0){const e=(null===(o=null==j?void 0:j.productList)||void 0===o?void 0:o.length)&&(null==j?void 0:j.productList)||new Array((null===(n=null==j?void 0:j.productList)||void 0===n?void 0:n.length)||3).fill(1),l=null===(i=ce[ae])||void 0===i?void 0:i.map(e=>null==e?void 0:e.id),t=e.filter(e=>null==l?void 0:l.includes(e.products[0].reference.name));oe?t.sort((l,o)=>e.indexOf(l)-e.indexOf(o)):t.sort((e,o)=>l.indexOf(e.products[0].reference.name)-l.indexOf(o.products[0].reference.name)),we(t),ie(!1)}if(Pe&&ce&&(null===(t=Object.keys(ce))||void 0===t?void 0:t.length)>0){const e=(null!==(d=ce[ae])&&void 0!==d?d:[]).map(e=>null==e?void 0:e.id),l=(null===(r=null==j?void 0:j.productList)||void 0===r?void 0:r.length)&&(null==j?void 0:j.productList)||new Array((null===(u=null==j?void 0:j.productList)||void 0===u?void 0:u.length)||3).fill(1);we(m(l,e)),ie(!1)}},[ce]),i(()=>{var e;ce&&(null===(e=Object.keys(ce))||void 0===e?void 0:e.length)>0&&!Ce&&(null==R?void 0:R.eligibleBundle)&&T("available",ce[ae],"",P,null==R?void 0:R.eligibleBundle,ee)},[R,ce]),i(()=>{if("undefined"==typeof window)return;const e=e=>{Se(e.detail.value)};return window.addEventListener("user-logged-prices-toggle-all",e),()=>{window.removeEventListener("user-logged-prices-toggle-all",e)}},[]);const De=(e=!1)=>{var l,o;const n=[];let i={atlOffers:[]},t=null==V?void 0:V.enableExistingCustomer,d=null==V?void 0:V.subscriptionType,r="4P"==(null==V?void 0:V.pageType);const u=null==j?void 0:j.isReturnPromo,s=(null==z?void 0:z.length)>0,v=null==z?void 0:z.join(",");d=t||Te?d:v,t=(t||s)&&be||Te||!de,(null==be?void 0:be.siteId)&&(null==de?void 0:de.enableLoggedInPrice)&&de.customers!==k&&(0==Te?d="none":!0===Te&&(d=void 0)),(null==de?void 0:de.enableLoggedInPrice)&&!1===Te&&(t=!1);const a=!!(null==j?void 0:j.enableP2P),c=`tab-${F}`;if(e||!((e,l)=>{const o=Be.current[e];return!!o&&(0!==l&&(void 0===l||(l<0||(Date.now()-o.timestamp)/6e4<l)))})(c,null!=re?re:1)){if(Pe){const e=ye;if(e)return b(e)||ie(!0),void L(e,ae,he).then(e=>{Be.current[c]={results:e,timestamp:Date.now()},pe({[ae]:e}),x({showPopup:!1})}).catch(()=>{var e;x({showPopup:!0,content:null===(e=null==V?void 0:V.telesalesBlok)||void 0===e?void 0:e[0]})}).finally(()=>{ie(!1)})}if(ie(!0),ee)i=C(j,le,"LineItem");else{w(null==j?void 0:j.productList,n,r,null==V?void 0:V.optionId,Te);const e=JSON.stringify(n.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})));Ee.current=e}if(e||F===N&&!(null==ce?void 0:ce[ae])||F===N&&U||z)try{null===(l=p(ee?i:n,null==j?void 0:j._uid,he,t,d,u,a,ee,Fe))||void 0===l||l.then(e=>{var l;const o=null!==(l=null==e?void 0:e[ae])&&void 0!==l?l:[];Be.current[c]={results:o,timestamp:Date.now()},pe(e),x({showPopup:!1})}).catch(e=>{var l;x({showPopup:!0,content:null===(l=null==V?void 0:V.telesalesBlok)||void 0===l?void 0:l[0]})}).finally(()=>{ie(!1)})}catch(e){x({showPopup:!0,content:null===(o=null==V?void 0:V.telesalesBlok)||void 0===o?void 0:o[0]})}else ce&&ie(!1)}else pe({[ae]:Be.current[c].results})};i(()=>{ke.current&&(clearTimeout(ke.current),ke.current=null);if(!(N===F||null==N))return;const e=((null==j?void 0:j.productList)||[]).reduce((e,l)=>{var o;const n=null===(o=null==l?void 0:l.timer)||void 0===o?void 0:o[0];if(!(null==n?void 0:n.enableCounter)||!(null==n?void 0:n.startTime)||!(null==n?void 0:n.endTime))return e;const i=f(n.startTime,n.endTime);return i<=0?e:0===e||i<e?i:e},0);return e<=0?void 0:(ke.current=setTimeout(()=>{const e=[];w(null==j?void 0:j.productList,e,"4P"==(null==V?void 0:V.pageType),null==V?void 0:V.optionId,Te);if(JSON.stringify(e.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})))===Ee.current)return;const l=`tab-${F}`;delete Be.current[l],pe(e=>e&&"object"==typeof e?Object.assign(Object.assign({},e),{[ae]:null}):e),De(!0)},e),()=>{ke.current&&(clearTimeout(ke.current),ke.current=null)})},[N,F,null==j?void 0:j.productList,ae,ce]),i(()=>{Ie(!0),N!=F&&null!=N||(void 0!==Te&&(null==ce?void 0:ce[ae])&&(ce[ae]=null),console.log("inside fetchOfferData",F,null==ce?void 0:ce[ae]),De(),Ie(!1))},[N]),i(()=>{if((null==be?void 0:be.siteId)&&U){const e=`tab-${F}`;delete Be.current[e],De(),sessionStorage.removeItem("vasPopUp")}},[U]),i(()=>{if(null!=q&&null!=z){const e=`tab-${F}`;delete Be.current[e],De()}},[q,z]),i(()=>{if(void 0===Te||Oe)return;const e=`tab-${F}`;delete Be.current[e],(null==ce?void 0:ce[ae])&&(ce[ae]=null),De()},[Te]),i(()=>{var e,l,o,n,i,t,d,r,u,v,p,g,m,f,w,h,b,L,C;const y=window&&new URLSearchParams(null===window||void 0===window?void 0:window.location.search),P=null==y?void 0:y.get(O);if(P&&(null===(r=null===(d=null===(t=null===(i=null===(n=null===(o=null===(l=null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e[0])||void 0===l?void 0:l.products)||void 0===o?void 0:o[0])||void 0===n?void 0:n.reference)||void 0===i?void 0:i.content)||void 0===t?void 0:t.product)||void 0===d?void 0:d[0])||void 0===r?void 0:r.productId))try{a(null===(h=null===(w=null===(f=null===(m=null===(g=null===(p=null===(v=null===(u=null==j?void 0:j.productList)||void 0===u?void 0:u[0])||void 0===v?void 0:v.products)||void 0===p?void 0:p[0])||void 0===g?void 0:g.reference)||void 0===m?void 0:m.content)||void 0===f?void 0:f.product)||void 0===w?void 0:w[0])||void 0===h?void 0:h.productId,P).then(e=>{e&&s(I,{voucher:P,voucherType:"qoqa"})})}catch(e){}if(Le&&F===N){const{store:e,dispatch:l}=Le;let o=!1,n=!1;null===(b=(null==j?void 0:j.productList)||[])||void 0===b||b.forEach(e=>{(null==e?void 0:e.enableTVStreamingOptionsPopUp)&&(n=!0),(null==e?void 0:e.enableTVStreamingOptions)&&(o=!0)}),0===(null===(L=null==e?void 0:e.ottOptionsApi)||void 0===L?void 0:L.length)&&(o||n)&&(null===(C=c())||void 0===C||C.then(e=>{(null==e?void 0:e.length)>0&&l({type:null==B?void 0:B.ottOptionsApi,payload:e})}).catch(()=>{}))}},[]);let Ue=[];return i(()=>{Q&&(Ue=h(null==j?void 0:j.productList,H),me(Ue))},[H]),i(()=>{(null==W?void 0:W.isDeviceFlow)&&ce&&(null==W||W.prodcardcallbackOfferApiData(ce))},[ce]),i(()=>{var e,l;Q&&!(null==W?void 0:W.isDeviceFlow)?we(ge):we((null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e.length)&&(null==j?void 0:j.productList)||new Array((null===(l=null==j?void 0:j.productList)||void 0===l?void 0:l.length)||3).fill(1))},[ge]),e.createElement("div",null,e.createElement("div",{className:t.titlecontainer},(null==j?void 0:j.title)&&e.createElement("div",{className:t.title},null==j?void 0:j.title),(null==j?void 0:j.subTitle)&&e.createElement("div",{className:t.description},null==j?void 0:j.subTitle)),e.createElement("div",{className:"linetableV3"},ve&&fe&&(null==fe?void 0:fe.length)>0&&e.createElement(d,{carouselIndex:0,key:N,arrow:null==V?void 0:V.enableMobileArrows},fe&&(null==fe?void 0:fe.length)>0&&(null===(se=fe||[])||void 0===se?void 0:se.map((l,o)=>{var n;return e.createElement("div",{id:`productCardV3${N}`,style:{textAlign:"center"},key:o},e.createElement(v,{content:ee&&ne&&!ce?{}:l,offeringData:ce,uniqueId:ae,storyContent:j,metadata:A,tabIndex:F,cardsLength:null===(n=null==j?void 0:j.productList)||void 0===n?void 0:n.length,indexKey:o,constants:D,mainContent:V,linecheckSuccessCallBack:J,lineCheckCallBack:G,address:$,eligibleBundle:R,selectedOption:q,fetchOfferData:De,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,enableP2P:null==j?void 0:j.enableP2P,loginSuccess:U,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,selectedRP:null==Y?void 0:Y.selectedRP,continueCart:null==Y?void 0:Y.continueCart,lineCheckOnClear:Z,pegaIntegration:ee,isProdEnv:te,deviceUltimateBundle:Fe,toggleContent:de,pricesToggleState:Te,isShogunFlow:Pe,shogunToken:ye}))})))))};export{j as default};
1
+ import e,{useState as l,useContext as o,useRef as n,useEffect as i}from"react";import t from"./StaticLineTable.module.scss.js";import d from"../sharedCarousel/CarouselComponent.js";import{viewport as r,getElementMaximumHeight as u,setLocalStoreWithExpiry as s}from"../../utils/utils.js";import v from"./StaticProduct.js";import{getVocherPromotion as a,fetchOttServiceOptions as c,fetchOfferingDataLineTableV2 as p}from"../../services/LineTableService.js";import{LineTableBasicPropConfig as g}from"../../services/LineTableBasicPropConfig.js";import{filterShogunProducts as m,getTimeUntilNextTimerEvent as f,fetchStaticProductIds as w,fetchFilteredProducts as h,isShogunOfferResolved as b,getShogunSharedOffer as L,fetchPegaProducts as C}from"./Product.utils.js";import y from"js-cookie";import{LINETABLE as T}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as P}from"../../models/Analytics/items.js";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as S,VOUCHER as O,VCTYPE as I,NEW as k}from"../../utils/constants.js";import{AppContext as E,actionTypes as j}from"./StaticLineTableStore/StaticLineTableProvider.js";const B=({content:B,setGenericErrorModalDetails:x,metadata:A,tabIndex:F,constants:D,loginSuccess:N,activeIndex:U,mainContent:V,address:$,eligibleBundle:R,linecheckSuccessCallBack:J,selectedOption:q,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,lineCheckCallBack:G,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,ubRatePlanObj:Y,lineCheckOnClear:Z,pegaIntegration:ee,pegaCustomerInterest:le,useStoryblokOrder:oe,isFetching:ne,setIsFetching:ie,isProdEnv:te,toggleContent:de,localCacheDuration:re})=>{var ue,se;const ve=r(),ae=null==B?void 0:B._uid,[ce,pe]=l(),[ge,me]=l(),[fe,we]=l(),he=null===(ue=null==g?void 0:g.getInstance())||void 0===ue?void 0:ue.getBaseUrl();let be=void 0!==typeof window&&y.get("sunriseAuth");be=be&&JSON.parse(be);const Le=o(E),Ce="MOBILE"===(null==B?void 0:B.pageType),ye=(()=>{var e;if("undefined"==typeof window)return null;const l=new URLSearchParams(null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.search);return null==l?void 0:l.get("gloxtoken")})(),Te=Boolean(null==V?void 0:V.isRewardsFlow)&&Boolean(ye),[Pe,Se]=l(()=>{var e;if(!de||!de.enableLoggedInPrice)return null;const l=localStorage.getItem("userLoggedPricesToggle");if("true"===l)return!0;if("false"===l)return!1;const o=(null===(e=null==de?void 0:de.customers)||void 0===e?void 0:e.toLowerCase())===k;return!(!o||!(null==de?void 0:de.newUserToggleEnabled))||(!(o||!(null==de?void 0:de.loggedUserToggleEnabled))||null)}),[Oe,Ie]=l(!0),ke=n(null),Ee=n(""),je=n({});i(()=>(setTimeout(()=>{Be()},100),null===window||void 0===window||window.addEventListener("resize",Be),null===window||void 0===window||window.addEventListener("load",Be),()=>{window.removeEventListener("resize",Be),window.removeEventListener("load",Be)}),[null==B?void 0:B.productList,ge,fe]);const Be=()=>{var e;if(Q){const e=[null==H?void 0:H.TV,null==H?void 0:H.Netflix,null==H?void 0:H.gigaSpeed].filter(Boolean).length,l=null==H?void 0:H.TV,o=null==H?void 0:H.Netflix,n=null==H?void 0:H.gigaSpeed;u(`productCardV3${l&&o&&n?3:l&&o||e>=2&&(!n||l||o)?2:1===e||2===e?1:0}`,null==ge?void 0:ge.length)}else u(`productCardV3${U}`,null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e.length)},xe=sessionStorage.getItem(S);xe&&JSON.parse(xe);const Ae=null==B?void 0:B.enableFPB;i(()=>{var e,l,o,n,i,t,d,r,u;if(ce&&(null===(e=Object.keys(ce))||void 0===e?void 0:e.length)>0&&P("view",ce[ae],"",T,null,ee),ee&&ce&&(null===(l=Object.keys(ce))||void 0===l?void 0:l.length)>0){const e=(null===(o=null==B?void 0:B.productList)||void 0===o?void 0:o.length)&&(null==B?void 0:B.productList)||new Array((null===(n=null==B?void 0:B.productList)||void 0===n?void 0:n.length)||3).fill(1),l=null===(i=ce[ae])||void 0===i?void 0:i.map(e=>null==e?void 0:e.id),t=e.filter(e=>null==l?void 0:l.includes(e.products[0].reference.name));oe?t.sort((l,o)=>e.indexOf(l)-e.indexOf(o)):t.sort((e,o)=>l.indexOf(e.products[0].reference.name)-l.indexOf(o.products[0].reference.name)),we(t),ie(!1)}if(Te&&ce&&(null===(t=Object.keys(ce))||void 0===t?void 0:t.length)>0){const e=(null!==(d=ce[ae])&&void 0!==d?d:[]).map(e=>null==e?void 0:e.id),l=(null===(r=null==B?void 0:B.productList)||void 0===r?void 0:r.length)&&(null==B?void 0:B.productList)||new Array((null===(u=null==B?void 0:B.productList)||void 0===u?void 0:u.length)||3).fill(1);we(m(l,e)),ie(!1)}},[ce]),i(()=>{var e;ce&&(null===(e=Object.keys(ce))||void 0===e?void 0:e.length)>0&&!Ce&&(null==R?void 0:R.eligibleBundle)&&P("available",ce[ae],"",T,null==R?void 0:R.eligibleBundle,ee)},[R,ce]),i(()=>{if("undefined"==typeof window)return;const e=e=>{Se(e.detail.value)};return window.addEventListener("user-logged-prices-toggle-all",e),()=>{window.removeEventListener("user-logged-prices-toggle-all",e)}},[]);const Fe=(e=!1)=>{var l,o;const n=[];let i={atlOffers:[]},t=null==V?void 0:V.enableExistingCustomer,d=null==V?void 0:V.subscriptionType,r="4P"==(null==V?void 0:V.pageType);const u=null==B?void 0:B.isReturnPromo,s=(null==z?void 0:z.length)>0,v=null==z?void 0:z.join(",");d=t||Pe?d:v,t=(t||s)&&be||Pe||!de,(null==be?void 0:be.siteId)&&(null==de?void 0:de.enableLoggedInPrice)&&de.customers!==k&&(0==Pe?d="none":!0===Pe&&(d=void 0)),(null==de?void 0:de.enableLoggedInPrice)&&!1===Pe&&(t=!1);const a=!!(null==B?void 0:B.enableP2P),c=`tab-${F}`;if(e||!((e,l)=>{const o=je.current[e];return!!o&&(0!==l&&(void 0===l||(l<0||(Date.now()-o.timestamp)/6e4<l)))})(c,null!=re?re:1)){if(Te){const e=ye;if(e)return b(e)||ie(!0),void L(e,ae,he).then(e=>{je.current[c]={results:e,timestamp:Date.now()},pe({[ae]:e}),x({showPopup:!1})}).catch(()=>{var e;x({showPopup:!0,content:null===(e=null==V?void 0:V.telesalesBlok)||void 0===e?void 0:e[0]})}).finally(()=>{ie(!1)})}if(ie(!0),ee)i=C(B,le,"LineItem");else{w(null==B?void 0:B.productList,n,r,null==V?void 0:V.optionId,Pe);const e=JSON.stringify(n.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})));Ee.current=e}if(e||F===U&&!(null==ce?void 0:ce[ae])||F===U&&N||z)try{null===(l=p(ee?i:n,null==B?void 0:B._uid,he,t,d,u,a,ee,Ae))||void 0===l||l.then(e=>{var l;const o=null!==(l=null==e?void 0:e[ae])&&void 0!==l?l:[];je.current[c]={results:o,timestamp:Date.now()},pe(e),x({showPopup:!1})}).catch(e=>{var l;x({showPopup:!0,content:null===(l=null==V?void 0:V.telesalesBlok)||void 0===l?void 0:l[0]})}).finally(()=>{ie(!1)})}catch(e){x({showPopup:!0,content:null===(o=null==V?void 0:V.telesalesBlok)||void 0===o?void 0:o[0]})}else ce&&ie(!1)}else pe({[ae]:je.current[c].results})};i(()=>{ke.current&&(clearTimeout(ke.current),ke.current=null);if(!(U===F||null==U))return;const e=((null==B?void 0:B.productList)||[]).reduce((e,l)=>{var o;const n=null===(o=null==l?void 0:l.timer)||void 0===o?void 0:o[0];if(!(null==n?void 0:n.enableCounter)||!(null==n?void 0:n.startTime)||!(null==n?void 0:n.endTime))return e;const i=f(n.startTime,n.endTime);return i<=0?e:0===e||i<e?i:e},0);return e<=0?void 0:(ke.current=setTimeout(()=>{const e=[];w(null==B?void 0:B.productList,e,"4P"==(null==V?void 0:V.pageType),null==V?void 0:V.optionId,Pe);if(JSON.stringify(e.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})))===Ee.current)return;const l=`tab-${F}`;delete je.current[l],pe(e=>e&&"object"==typeof e?Object.assign(Object.assign({},e),{[ae]:null}):e),Fe(!0)},e),()=>{ke.current&&(clearTimeout(ke.current),ke.current=null)})},[U,F,null==B?void 0:B.productList,ae,ce]),i(()=>{Ie(!0),U!=F&&null!=U||(void 0!==Pe&&(null==ce?void 0:ce[ae])&&(ce[ae]=null),Fe(),Ie(!1))},[U]),i(()=>{if((null==be?void 0:be.siteId)&&N){const e=`tab-${F}`;delete je.current[e],Fe(),sessionStorage.removeItem("vasPopUp")}},[N]),i(()=>{if(null!=q&&null!=z){const e=`tab-${F}`;delete je.current[e],Fe()}},[q,z]),i(()=>{if(void 0===Pe||Oe)return;const e=`tab-${F}`;delete je.current[e],(null==ce?void 0:ce[ae])&&(ce[ae]=null),Fe()},[Pe]),i(()=>{var e,l,o,n,i,t,d,r,u,v,p,g,m,f,w,h,b,L,C;const y=window&&new URLSearchParams(null===window||void 0===window?void 0:window.location.search),T=null==y?void 0:y.get(O);if(T&&(null===(r=null===(d=null===(t=null===(i=null===(n=null===(o=null===(l=null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e[0])||void 0===l?void 0:l.products)||void 0===o?void 0:o[0])||void 0===n?void 0:n.reference)||void 0===i?void 0:i.content)||void 0===t?void 0:t.product)||void 0===d?void 0:d[0])||void 0===r?void 0:r.productId))try{a(null===(h=null===(w=null===(f=null===(m=null===(g=null===(p=null===(v=null===(u=null==B?void 0:B.productList)||void 0===u?void 0:u[0])||void 0===v?void 0:v.products)||void 0===p?void 0:p[0])||void 0===g?void 0:g.reference)||void 0===m?void 0:m.content)||void 0===f?void 0:f.product)||void 0===w?void 0:w[0])||void 0===h?void 0:h.productId,T).then(e=>{e&&s(I,{voucher:T,voucherType:"qoqa"})})}catch(e){}if(Le&&F===U){const{store:e,dispatch:l}=Le;let o=!1,n=!1;null===(b=(null==B?void 0:B.productList)||[])||void 0===b||b.forEach(e=>{(null==e?void 0:e.enableTVStreamingOptionsPopUp)&&(n=!0),(null==e?void 0:e.enableTVStreamingOptions)&&(o=!0)}),0===(null===(L=null==e?void 0:e.ottOptionsApi)||void 0===L?void 0:L.length)&&(o||n)&&(null===(C=c())||void 0===C||C.then(e=>{(null==e?void 0:e.length)>0&&l({type:null==j?void 0:j.ottOptionsApi,payload:e})}).catch(()=>{}))}},[]);let De=[];return i(()=>{Q&&(De=h(null==B?void 0:B.productList,H),me(De))},[H]),i(()=>{(null==W?void 0:W.isDeviceFlow)&&ce&&(null==W||W.prodcardcallbackOfferApiData(ce))},[ce]),i(()=>{var e,l;Q&&!(null==W?void 0:W.isDeviceFlow)?we(ge):we((null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e.length)&&(null==B?void 0:B.productList)||new Array((null===(l=null==B?void 0:B.productList)||void 0===l?void 0:l.length)||3).fill(1))},[ge]),e.createElement("div",null,e.createElement("div",{className:t.titlecontainer},(null==B?void 0:B.title)&&e.createElement("div",{className:t.title},null==B?void 0:B.title),(null==B?void 0:B.subTitle)&&e.createElement("div",{className:t.description},null==B?void 0:B.subTitle)),e.createElement("div",{className:"linetableV3"},ve&&fe&&(null==fe?void 0:fe.length)>0&&e.createElement(d,{carouselIndex:0,key:U,arrow:null==V?void 0:V.enableMobileArrows},fe&&(null==fe?void 0:fe.length)>0&&(null===(se=fe||[])||void 0===se?void 0:se.map((l,o)=>{var n;return e.createElement("div",{id:`productCardV3${U}`,style:{textAlign:"center"},key:o},e.createElement(v,{content:ee&&ne&&!ce?{}:l,offeringData:ce,uniqueId:ae,storyContent:B,metadata:A,tabIndex:F,cardsLength:null===(n=null==B?void 0:B.productList)||void 0===n?void 0:n.length,indexKey:o,constants:D,mainContent:V,linecheckSuccessCallBack:J,lineCheckCallBack:G,address:$,eligibleBundle:R,selectedOption:q,fetchOfferData:Fe,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,enableP2P:null==B?void 0:B.enableP2P,loginSuccess:N,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,selectedRP:null==Y?void 0:Y.selectedRP,continueCart:null==Y?void 0:Y.continueCart,lineCheckOnClear:Z,pegaIntegration:ee,isProdEnv:te,deviceUltimateBundle:Ae,toggleContent:de,pricesToggleState:Pe,isShogunFlow:Te,shogunToken:ye}))})))))};export{B as default};
2
2
  //# sourceMappingURL=StaticProductContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticProductContainer.js","sources":["../../../../src/components/StaticLineTable/StaticProductContainer.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\r\nimport Styles from './StaticLineTable.module.scss';\r\nimport CarouselComponent from '../sharedCarousel/CarouselComponent';\r\nimport {\r\n getElementMaximumHeight,\r\n getNoteValues,\r\n setLocalStoreWithExpiry,\r\n viewport\r\n} from '../../utils/utils';\r\nimport StaticProduct from './StaticProduct';\r\nimport { PegaProductRequestBase, ProductRequestBase } from '../lineTable/lineTable.types';\r\nimport {\r\n fetchOfferingDataLineTableV2,\r\n fetchOttServiceOptions,\r\n getVocherPromotion\r\n} from '../../services/LineTableService';\r\nimport { LineTableBasicPropConfig } from '../../services/LineTableBasicPropConfig';\r\nimport {\r\n fetchFilteredProducts,\r\n fetchPegaProducts,\r\n fetchStaticProductIds,\r\n filterShogunProducts,\r\n getShogunSharedOffer,\r\n getTimeUntilNextTimerEvent,\r\n isShogunOfferResolved\r\n} from './Product.utils';\r\nimport { StaticProductContainerSchema, StaticProductSchema } from './StaticProductDatatypes';\r\nimport Cookies from 'js-cookie';\r\nimport { LINETABLE } from '../../Analytics/AnalyticsConstants';\r\nimport { trackEligibleItem } from '../../models/Analytics/items';\r\nimport {\r\n NEW,\r\n ONE_ECOMMERCE_HARDWARE_SUMMARY,\r\n ULTIMATEBUNDLE,\r\n VCTYPE,\r\n VOUCHER\r\n} from '../../utils/constants';\r\nimport { actionTypes, AppContext } from './StaticLineTableStore/StaticLineTableProvider';\r\n\r\n/**\r\n * Query-string parameter name used to trigger the Shogun/rewards (loyalty) flow.\r\n * The value is passed to the real offer API.\r\n */\r\nconst SHOGUN_QUERY_PARAM = 'gloxtoken';\r\n\r\n/**\r\n * Reads the Shogun/rewards token from the URL query-string. Returns null when\r\n * running outside the browser or when the parameter is not present.\r\n */\r\nconst getShogunTokenFromUrl = (): string | null => {\r\n if (typeof window === 'undefined') return null;\r\n const params = new URLSearchParams(window?.location?.search);\r\n return params?.get(SHOGUN_QUERY_PARAM);\r\n};\r\n\r\nconst StaticProductContainer: FC<StaticProductContainerSchema> = ({\r\n content,\r\n setGenericErrorModalDetails,\r\n metadata,\r\n tabIndex,\r\n constants,\r\n loginSuccess,\r\n activeIndex,\r\n mainContent,\r\n address,\r\n eligibleBundle,\r\n linecheckSuccessCallBack,\r\n selectedOption,\r\n basicConfigUrl,\r\n selectedExistingOption,\r\n setLoginSuccess,\r\n lineCheckCallBack,\r\n setToggleState,\r\n toggleState,\r\n noTabs,\r\n deviceFlow,\r\n deviceFlowCallBack,\r\n ubRatePlanObj,\r\n lineCheckOnClear,\r\n pegaIntegration,\r\n pegaCustomerInterest,\r\n useStoryblokOrder,\r\n isFetching,\r\n setIsFetching,\r\n isProdEnv,\r\n //US_31295\r\n toggleContent,\r\n localCacheDuration\r\n}) => {\r\n const viewPort = viewport();\r\n const uniqueId: keyof typeof offeringData = content?._uid;\r\n const [offeringData, setOfferingData] = useState<any>();\r\n const [filteredProducts, setFilteredProducts] = useState<any>();\r\n const [newDisplayContent, setNewDisplayContent] = useState<any>();\r\n const offerEndpoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\r\n AuthData = AuthData && JSON.parse(AuthData);\r\n const storeContext = useContext(AppContext);\r\n const isMobileFlow = content?.pageType === 'MOBILE';\r\n /**\r\n * Loyalty (Shogun) flow is active only when BOTH conditions are met:\r\n * 1. The Storyblok parent-level attribute `isRewardsFlow` is enabled.\r\n * 2. The URL query-string carries a non-empty `gloxtoken` parameter.\r\n * Any other combination falls back to the standard offer flow.\r\n */\r\n const shogunTokenFromUrl = getShogunTokenFromUrl();\r\n const isShogunFlow = Boolean(mainContent?.isRewardsFlow) && Boolean(shogunTokenFromUrl);\r\n //US_31295\r\n const getPriceToggle = () => {\r\n if (!toggleContent || !toggleContent.enableLoggedInPrice) return null;\r\n const stored = localStorage.getItem('userLoggedPricesToggle');\r\n if (stored === 'true') return true;\r\n if (stored === 'false') return false;\r\n const isNewCustomer = toggleContent?.customers?.toLowerCase() === NEW;\r\n if (isNewCustomer && toggleContent?.newUserToggleEnabled) {\r\n return true;\r\n }\r\n if (!isNewCustomer && toggleContent?.loggedUserToggleEnabled) {\r\n return true;\r\n }\r\n return null;\r\n };\r\n const [pricesToggleState, setPricesToggleState] = useState<any>(getPriceToggle);\r\n const [runOnLoad, setRunOnLoad] = useState<boolean>(true);\r\n const timerRefreshTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const promoPayloadSignatureRef = useRef<string>('');\r\n const offerDataCacheRef = useRef<Record<string, { results: any[]; timestamp: number }>>({});\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n findHeight();\r\n }, 100);\r\n window?.addEventListener('resize', findHeight);\r\n window?.addEventListener('load', findHeight);\r\n return () => {\r\n window.removeEventListener('resize', findHeight);\r\n window.removeEventListener('load', findHeight);\r\n };\r\n }, [content?.productList, filteredProducts, newDisplayContent]);\r\n\r\n const findHeight = () => {\r\n if (noTabs) {\r\n const activeToggles = [toggleState?.TV, toggleState?.Netflix, toggleState?.gigaSpeed].filter(\r\n Boolean\r\n ).length;\r\n const hasTV = toggleState?.TV;\r\n const hasNetflix = toggleState?.Netflix;\r\n const hasGigaSpeed = toggleState?.gigaSpeed;\r\n\r\n const tabbIndex =\r\n hasTV && hasNetflix && hasGigaSpeed\r\n ? 3\r\n : (hasTV && hasNetflix) ||\r\n (activeToggles >= 2 && !(hasGigaSpeed && !hasTV && !hasNetflix))\r\n ? 2\r\n : activeToggles === 1 || activeToggles === 2\r\n ? 1\r\n : 0;\r\n\r\n getElementMaximumHeight('productCardV3' + `${tabbIndex}`, filteredProducts?.length);\r\n } else {\r\n getElementMaximumHeight('productCardV3' + `${activeIndex}`, content?.productList?.length);\r\n }\r\n };\r\n\r\n const hardwareSessionObj = sessionStorage.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\r\n const sessionData = hardwareSessionObj && JSON.parse(hardwareSessionObj);\r\n const deviceUltimateBundle = content?.enableFPB;\r\n\r\n console.log('inside deviceUltimateBundle', deviceUltimateBundle, content?.enableFPB, sessionData);\r\n useEffect(() => {\r\n if (offeringData && Object.keys(offeringData)?.length > 0) {\r\n trackEligibleItem('view', offeringData[uniqueId], '', LINETABLE, null, pegaIntegration);\r\n }\r\n //filter products by pega response\r\n if (pegaIntegration && offeringData && Object.keys(offeringData)?.length > 0) {\r\n const availableProducts =\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1);\r\n\r\n const pegaProductsIds = offeringData[uniqueId]?.map((item: any) => item?.id);\r\n\r\n const onlyPegaProducts = availableProducts.filter((product: any) =>\r\n pegaProductsIds?.includes(product.products[0].reference.name)\r\n );\r\n\r\n //sort products by storyblok vs pega\r\n if (useStoryblokOrder) {\r\n onlyPegaProducts.sort((a: any, b: any) => {\r\n return availableProducts.indexOf(a) - availableProducts.indexOf(b);\r\n });\r\n } else {\r\n onlyPegaProducts.sort((a: any, b: any) => {\r\n return (\r\n pegaProductsIds.indexOf(a.products[0].reference.name) -\r\n pegaProductsIds.indexOf(b.products[0].reference.name)\r\n );\r\n });\r\n }\r\n\r\n setNewDisplayContent(onlyPegaProducts);\r\n setIsFetching(false);\r\n }\r\n\r\n // Shogun flow: filter storyblok product list to only the products returned by the\r\n // Shogun offer API (matched by productId). Logic lives in filterShogunProducts (Product.utils).\r\n if (isShogunFlow && offeringData && Object.keys(offeringData)?.length > 0) {\r\n const shogunProductIds = (offeringData[uniqueId] ?? []).map((item: any) => item?.id);\r\n const availableProducts =\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1);\r\n\r\n setNewDisplayContent(filterShogunProducts(availableProducts, shogunProductIds));\r\n setIsFetching(false);\r\n }\r\n }, [offeringData]);\r\n\r\n useEffect(() => {\r\n if (\r\n offeringData &&\r\n Object.keys(offeringData)?.length > 0 &&\r\n !isMobileFlow &&\r\n eligibleBundle?.eligibleBundle\r\n ) {\r\n trackEligibleItem(\r\n 'available',\r\n offeringData[uniqueId],\r\n '',\r\n LINETABLE,\r\n eligibleBundle?.eligibleBundle,\r\n pegaIntegration\r\n );\r\n }\r\n }, [eligibleBundle, offeringData]);\r\n\r\n //US_31295\r\n useEffect(() => {\r\n if (typeof window === 'undefined') return;\r\n // window.dispatchEvent(\r\n // new CustomEvent('user-logged-prices-toggle-all', {\r\n // detail: {\r\n // auth: AuthData?.siteId ? true : false },\r\n // })\r\n // );\r\n const handleGlobalToggle = (e: any) => {\r\n setPricesToggleState(e.detail.value);\r\n };\r\n window.addEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\r\n return () => {\r\n window.removeEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\r\n };\r\n }, []);\r\n\r\n /**\r\n * Check if cached offer data is still valid based on localCacheDuration\r\n */\r\n const isCacheValid = (cacheKey: string, durationMinutes: number | undefined): boolean => {\r\n const cached = offerDataCacheRef.current[cacheKey];\r\n if (!cached) return false;\r\n\r\n // A duration of 0 explicitly disables cache reads and always forces a fresh request.\r\n if (durationMinutes === 0) return false;\r\n\r\n // If no duration is specified, cache never expires (until manually cleared).\r\n if (durationMinutes === undefined) return true;\r\n\r\n if (durationMinutes < 0) return true;\r\n\r\n const elapsedMinutes = (Date.now() - cached.timestamp) / (1000 * 60);\r\n return elapsedMinutes < durationMinutes;\r\n };\r\n\r\n /**\r\n * fetching offer response\r\n */\r\n const fetchOfferData = (forceRefresh: boolean = false) => {\r\n const ProductIds: ProductRequestBase[] = [];\r\n let pegaPayload: PegaProductRequestBase = { atlOffers: [] };\r\n // for getting product offer api call request and promo id list\r\n //existingCustomerBenefit without login\r\n let existingCustomer = mainContent?.enableExistingCustomer;\r\n let subscriptionType = mainContent?.subscriptionType;\r\n let bundle4PProduct = mainContent?.pageType == '4P' ? true : false;\r\n const enableReturnPromo = content?.isReturnPromo;\r\n const benefitExistingCustomer = selectedExistingOption?.length > 0 ? true : false;\r\n const benefitSubscriptionType = selectedExistingOption?.join(',');\r\n //US_31295\r\n subscriptionType =\r\n existingCustomer || pricesToggleState ? subscriptionType : benefitSubscriptionType;\r\n existingCustomer =\r\n ((existingCustomer || benefitExistingCustomer) && AuthData) ||\r\n pricesToggleState ||\r\n !toggleContent;\r\n\r\n if (AuthData?.siteId && toggleContent?.enableLoggedInPrice && toggleContent.customers !== NEW) {\r\n if (pricesToggleState == false) {\r\n subscriptionType = 'none';\r\n } else if (pricesToggleState === true) {\r\n subscriptionType = undefined;\r\n }\r\n }\r\n\r\n if (toggleContent?.enableLoggedInPrice && pricesToggleState === false) {\r\n existingCustomer = false;\r\n }\r\n const P2PEnabled = content?.enableP2P ? true : false;\r\n const cacheDuration = localCacheDuration ?? 1;\r\n const cacheKey = `tab-${tabIndex}`;\r\n\r\n // Serve from cache without triggering loading state\r\n if (!forceRefresh && isCacheValid(cacheKey, cacheDuration)) {\r\n setOfferingData({ [uniqueId]: offerDataCacheRef.current[cacheKey].results });\r\n return;\r\n }\r\n\r\n // Shogun flow: triggered when `gloxtoken` is present in the URL AND the\r\n // storyblok parent-level `isRewardsFlow` flag is enabled (see isShogunFlow).\r\n // All containers share a single API call via getShogunSharedOffer (Product.utils).\r\n if (isShogunFlow) {\r\n const gloxTokenId = shogunTokenFromUrl;\r\n\r\n if (gloxTokenId) {\r\n // Skip loading state when results are already in the shared cache.\r\n if (!isShogunOfferResolved(gloxTokenId)) {\r\n setIsFetching(true);\r\n }\r\n\r\n getShogunSharedOffer(gloxTokenId, uniqueId as string, offerEndpoint)\r\n .then((shogunResults: any[]) => {\r\n offerDataCacheRef.current[cacheKey] = { results: shogunResults, timestamp: Date.now() };\r\n setOfferingData({ [uniqueId]: shogunResults });\r\n setGenericErrorModalDetails({ showPopup: false });\r\n })\r\n .catch(() => {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n })\r\n .finally(() => {\r\n setIsFetching(false);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n setIsFetching(true);\r\n\r\n if (pegaIntegration) {\r\n pegaPayload = fetchPegaProducts(content, pegaCustomerInterest, 'LineItem');\r\n } else {\r\n fetchStaticProductIds(\r\n content?.productList,\r\n ProductIds,\r\n bundle4PProduct,\r\n mainContent?.optionId,\r\n //US_31295\r\n pricesToggleState\r\n );\r\n const newSignature = JSON.stringify(\r\n ProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\r\n );\r\n promoPayloadSignatureRef.current = newSignature;\r\n }\r\n\r\n if (\r\n forceRefresh ||\r\n (tabIndex === activeIndex && !offeringData?.[uniqueId]) ||\r\n (tabIndex === activeIndex && loginSuccess) ||\r\n selectedExistingOption\r\n ) {\r\n try {\r\n fetchOfferingDataLineTableV2(\r\n pegaIntegration ? pegaPayload : ProductIds,\r\n content?._uid,\r\n offerEndpoint,\r\n existingCustomer,\r\n subscriptionType,\r\n enableReturnPromo,\r\n P2PEnabled,\r\n pegaIntegration,\r\n deviceUltimateBundle\r\n )\r\n ?.then((resp: any) => {\r\n const results = resp?.[uniqueId as string] ?? [];\r\n offerDataCacheRef.current[cacheKey] = { results, timestamp: Date.now() };\r\n setOfferingData(resp);\r\n setGenericErrorModalDetails({ showPopup: false });\r\n })\r\n .catch((error: any) => {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n })\r\n .finally(() => {\r\n setIsFetching(false);\r\n });\r\n } catch (err: any) {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n }\r\n } else if (offeringData) {\r\n setIsFetching(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (timerRefreshTimeoutRef.current) {\r\n clearTimeout(timerRefreshTimeoutRef.current);\r\n timerRefreshTimeoutRef.current = null;\r\n }\r\n\r\n const isCurrentTab =\r\n activeIndex === tabIndex || activeIndex === undefined || activeIndex === null;\r\n\r\n if (!isCurrentTab) {\r\n return;\r\n }\r\n\r\n const nextTimerEventDelay = (content?.productList || []).reduce(\r\n (minimumDelay: number, product: any) => {\r\n const timer = product?.timer?.[0];\r\n const isCounterEnabled = timer?.enableCounter;\r\n\r\n if (!isCounterEnabled || !timer?.startTime || !timer?.endTime) {\r\n return minimumDelay;\r\n }\r\n\r\n const delay = getTimeUntilNextTimerEvent(timer.startTime, timer.endTime);\r\n\r\n if (delay <= 0) {\r\n return minimumDelay;\r\n }\r\n\r\n if (minimumDelay === 0 || delay < minimumDelay) {\r\n return delay;\r\n }\r\n\r\n return minimumDelay;\r\n },\r\n 0\r\n );\r\n\r\n if (nextTimerEventDelay <= 0) {\r\n return;\r\n }\r\n timerRefreshTimeoutRef.current = setTimeout(() => {\r\n const refreshProductIds: ProductRequestBase[] = [];\r\n fetchStaticProductIds(\r\n content?.productList,\r\n refreshProductIds,\r\n mainContent?.pageType == '4P',\r\n mainContent?.optionId,\r\n pricesToggleState\r\n );\r\n const nextSignature = JSON.stringify(\r\n refreshProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\r\n );\r\n\r\n if (nextSignature === promoPayloadSignatureRef.current) {\r\n return;\r\n }\r\n\r\n // Clear cache before forcing refresh on timer expiry\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n\r\n setOfferingData((prev: any) => {\r\n if (!prev || typeof prev !== 'object') {\r\n return prev;\r\n }\r\n\r\n return {\r\n ...prev,\r\n [uniqueId]: null\r\n };\r\n });\r\n fetchOfferData(true);\r\n }, nextTimerEventDelay);\r\n\r\n return () => {\r\n if (timerRefreshTimeoutRef.current) {\r\n clearTimeout(timerRefreshTimeoutRef.current);\r\n timerRefreshTimeoutRef.current = null;\r\n }\r\n };\r\n }, [activeIndex, tabIndex, content?.productList, uniqueId, offeringData]);\r\n\r\n /**\r\n * triggering offer api based for the selected tab\r\n */\r\n useEffect(() => {\r\n setRunOnLoad(true);\r\n if (activeIndex == tabIndex || activeIndex == null) {\r\n if (pricesToggleState !== undefined && offeringData?.[uniqueId]) {\r\n offeringData[uniqueId] = null;\r\n }\r\n console.log('inside fetchOfferData', tabIndex, offeringData?.[uniqueId]);\r\n fetchOfferData();\r\n setRunOnLoad(false);\r\n }\r\n }, [activeIndex]);\r\n\r\n useEffect(() => {\r\n if (AuthData?.siteId && loginSuccess) {\r\n // Clear cache on login to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n fetchOfferData();\r\n sessionStorage.removeItem('vasPopUp');\r\n }\r\n }, [loginSuccess]);\r\n\r\n useEffect(() => {\r\n if (selectedOption != undefined && selectedExistingOption != undefined) {\r\n // Clear cache when selection options change to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n fetchOfferData();\r\n }\r\n }, [selectedOption, selectedExistingOption]);\r\n\r\n //US_31295\r\n useEffect(() => {\r\n if (pricesToggleState === undefined || runOnLoad) return;\r\n // Clear cache when price toggle changes to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n if (offeringData?.[uniqueId]) {\r\n offeringData[uniqueId] = null;\r\n }\r\n fetchOfferData();\r\n }, [pricesToggleState]);\r\n\r\n useEffect(() => {\r\n //For QoQa flow\r\n const queryParams = window && new URLSearchParams(window?.location.search);\r\n const voucher: string | null = queryParams?.get(VOUCHER);\r\n if (\r\n voucher &&\r\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId\r\n ) {\r\n try {\r\n getVocherPromotion(\r\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId,\r\n voucher\r\n ).then((res: any) => {\r\n res && setLocalStoreWithExpiry(VCTYPE, { voucher: voucher, voucherType: 'qoqa' });\r\n });\r\n } catch (err: any) {}\r\n }\r\n\r\n //To trigger serviceOptions APi by category and updating it in context\r\n if (storeContext && tabIndex === activeIndex) {\r\n const { store, dispatch } = storeContext;\r\n let enableTvOptions = false;\r\n let enableTvOptionsPopUp = false;\r\n (content?.productList || [])?.forEach((prod: any) => {\r\n if (prod?.enableTVStreamingOptionsPopUp) {\r\n enableTvOptionsPopUp = true;\r\n }\r\n if (prod?.enableTVStreamingOptions) {\r\n enableTvOptions = true;\r\n }\r\n });\r\n if (store?.ottOptionsApi?.length === 0 && (enableTvOptions || enableTvOptionsPopUp)) {\r\n fetchOttServiceOptions()\r\n ?.then((res: any) => {\r\n if (res?.length > 0) {\r\n dispatch({ type: actionTypes?.ottOptionsApi, payload: res });\r\n }\r\n })\r\n .catch(() => {});\r\n }\r\n }\r\n }, []);\r\n\r\n //No Tabs content set\r\n let displayContent: any = [];\r\n useEffect(() => {\r\n if (noTabs) {\r\n displayContent = fetchFilteredProducts(content?.productList, toggleState);\r\n setFilteredProducts(displayContent);\r\n }\r\n }, [toggleState]);\r\n\r\n // sending offer api data as callback in device Flow to identify Multimobile/fmc\r\n useEffect(() => {\r\n if (deviceFlow?.isDeviceFlow && offeringData) {\r\n deviceFlow?.prodcardcallbackOfferApiData(offeringData);\r\n }\r\n }, [offeringData]);\r\n\r\n const getProductId = (content: any) => {\r\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\r\n return productData?.productId;\r\n };\r\n\r\n useEffect(() => {\r\n if (noTabs && !deviceFlow?.isDeviceFlow) {\r\n setNewDisplayContent(filteredProducts);\r\n } else {\r\n setNewDisplayContent(\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1)\r\n );\r\n }\r\n }, [filteredProducts]);\r\n\r\n return (\r\n <div>\r\n <div className={Styles['titlecontainer']}>\r\n {content?.title && <div className={Styles['title']}>{content?.title}</div>}\r\n {content?.subTitle && <div className={Styles['description']}>{content?.subTitle}</div>}\r\n </div>\r\n <div className={`linetableV3`}>\r\n {viewPort && newDisplayContent && newDisplayContent?.length > 0 && (\r\n <CarouselComponent\r\n carouselIndex={0}\r\n key={activeIndex}\r\n arrow={mainContent?.enableMobileArrows}\r\n >\r\n {newDisplayContent &&\r\n newDisplayContent?.length > 0 &&\r\n (newDisplayContent || [])?.map((data: StaticProductSchema, indexx: number) => {\r\n return (\r\n <div\r\n id={`productCardV3${activeIndex}`}\r\n style={{ textAlign: 'center' }}\r\n key={indexx}\r\n >\r\n <StaticProduct\r\n content={pegaIntegration && isFetching && !offeringData ? {} : data}\r\n offeringData={offeringData}\r\n uniqueId={uniqueId}\r\n storyContent={content}\r\n metadata={metadata}\r\n tabIndex={tabIndex}\r\n cardsLength={content?.productList?.length}\r\n indexKey={indexx}\r\n constants={constants}\r\n mainContent={mainContent}\r\n linecheckSuccessCallBack={linecheckSuccessCallBack}\r\n lineCheckCallBack={lineCheckCallBack}\r\n address={address}\r\n eligibleBundle={eligibleBundle}\r\n selectedOption={selectedOption}\r\n fetchOfferData={fetchOfferData}\r\n basicConfigUrl={basicConfigUrl}\r\n selectedExistingOption={selectedExistingOption}\r\n setLoginSuccess={setLoginSuccess}\r\n enableP2P={content?.enableP2P}\r\n loginSuccess={loginSuccess}\r\n setToggleState={setToggleState}\r\n toggleState={toggleState}\r\n noTabs={noTabs}\r\n deviceFlow={deviceFlow}\r\n deviceFlowCallBack={deviceFlowCallBack}\r\n selectedRP={ubRatePlanObj?.selectedRP}\r\n continueCart={ubRatePlanObj?.continueCart}\r\n lineCheckOnClear={lineCheckOnClear}\r\n pegaIntegration={pegaIntegration}\r\n isProdEnv={isProdEnv}\r\n deviceUltimateBundle={deviceUltimateBundle}\r\n //US_31295\r\n toggleContent={toggleContent}\r\n pricesToggleState={pricesToggleState}\r\n isShogunFlow={isShogunFlow}\r\n shogunToken={shogunTokenFromUrl}\r\n />\r\n </div>\r\n );\r\n })}\r\n </CarouselComponent>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StaticProductContainer;\r\n"],"names":["StaticProductContainer","content","setGenericErrorModalDetails","metadata","tabIndex","constants","loginSuccess","activeIndex","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","basicConfigUrl","selectedExistingOption","setLoginSuccess","lineCheckCallBack","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","ubRatePlanObj","lineCheckOnClear","pegaIntegration","pegaCustomerInterest","useStoryblokOrder","isFetching","setIsFetching","isProdEnv","toggleContent","localCacheDuration","viewPort","viewport","uniqueId","_uid","offeringData","setOfferingData","useState","filteredProducts","setFilteredProducts","newDisplayContent","setNewDisplayContent","offerEndpoint","_a","LineTableBasicPropConfig","getInstance","getBaseUrl","AuthData","undefined","window","Cookies","get","JSON","parse","storeContext","useContext","AppContext","isMobileFlow","pageType","shogunTokenFromUrl","params","URLSearchParams","location","search","getShogunTokenFromUrl","isShogunFlow","Boolean","isRewardsFlow","pricesToggleState","setPricesToggleState","enableLoggedInPrice","stored","localStorage","getItem","isNewCustomer","customers","toLowerCase","NEW","newUserToggleEnabled","loggedUserToggleEnabled","runOnLoad","setRunOnLoad","timerRefreshTimeoutRef","useRef","promoPayloadSignatureRef","offerDataCacheRef","useEffect","setTimeout","findHeight","addEventListener","removeEventListener","productList","activeToggles","TV","Netflix","gigaSpeed","filter","length","hasTV","hasNetflix","hasGigaSpeed","getElementMaximumHeight","hardwareSessionObj","sessionStorage","ONE_ECOMMERCE_HARDWARE_SUMMARY","sessionData","deviceUltimateBundle","enableFPB","console","log","Object","keys","trackEligibleItem","LINETABLE","_b","availableProducts","_c","Array","_d","fill","pegaProductsIds","_e","map","item","id","onlyPegaProducts","product","includes","products","reference","name","sort","a","b","indexOf","_f","shogunProductIds","_g","_h","_j","filterShogunProducts","handleGlobalToggle","e","detail","value","fetchOfferData","forceRefresh","ProductIds","pegaPayload","atlOffers","existingCustomer","enableExistingCustomer","subscriptionType","bundle4PProduct","enableReturnPromo","isReturnPromo","benefitExistingCustomer","benefitSubscriptionType","join","siteId","P2PEnabled","enableP2P","cacheKey","durationMinutes","cached","current","Date","now","timestamp","isCacheValid","gloxTokenId","isShogunOfferResolved","getShogunSharedOffer","then","shogunResults","results","showPopup","catch","telesalesBlok","finally","fetchPegaProducts","fetchStaticProductIds","optionId","newSignature","stringify","promoIds","fetchOfferingDataLineTableV2","resp","error","err","clearTimeout","nextTimerEventDelay","reduce","minimumDelay","timer","enableCounter","startTime","endTime","delay","getTimeUntilNextTimerEvent","refreshProductIds","prev","assign","removeItem","queryParams","voucher","VOUCHER","productId","getVocherPromotion","_q","_p","_m","_l","_o","_r","res","setLocalStoreWithExpiry","VCTYPE","voucherType","store","dispatch","enableTvOptions","enableTvOptionsPopUp","_s","forEach","prod","enableTVStreamingOptionsPopUp","enableTVStreamingOptions","ottOptionsApi","_t","_u","fetchOttServiceOptions","type","actionTypes","payload","displayContent","fetchFilteredProducts","isDeviceFlow","prodcardcallbackOfferApiData","React","createElement","className","Styles","title","subTitle","CarouselComponent","carouselIndex","key","arrow","enableMobileArrows","data","indexx","style","textAlign","StaticProduct","storyContent","cardsLength","indexKey","selectedRP","continueCart","shogunToken"],"mappings":"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"}
1
+ {"version":3,"file":"StaticProductContainer.js","sources":["../../../../src/components/StaticLineTable/StaticProductContainer.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\r\nimport Styles from './StaticLineTable.module.scss';\r\nimport CarouselComponent from '../sharedCarousel/CarouselComponent';\r\nimport {\r\n getElementMaximumHeight,\r\n getNoteValues,\r\n setLocalStoreWithExpiry,\r\n viewport\r\n} from '../../utils/utils';\r\nimport StaticProduct from './StaticProduct';\r\nimport { PegaProductRequestBase, ProductRequestBase } from '../lineTable/lineTable.types';\r\nimport {\r\n fetchOfferingDataLineTableV2,\r\n fetchOttServiceOptions,\r\n getVocherPromotion\r\n} from '../../services/LineTableService';\r\nimport { LineTableBasicPropConfig } from '../../services/LineTableBasicPropConfig';\r\nimport {\r\n fetchFilteredProducts,\r\n fetchPegaProducts,\r\n fetchStaticProductIds,\r\n filterShogunProducts,\r\n getShogunSharedOffer,\r\n getTimeUntilNextTimerEvent,\r\n isShogunOfferResolved\r\n} from './Product.utils';\r\nimport { StaticProductContainerSchema, StaticProductSchema } from './StaticProductDatatypes';\r\nimport Cookies from 'js-cookie';\r\nimport { LINETABLE } from '../../Analytics/AnalyticsConstants';\r\nimport { trackEligibleItem } from '../../models/Analytics/items';\r\nimport {\r\n NEW,\r\n ONE_ECOMMERCE_HARDWARE_SUMMARY,\r\n ULTIMATEBUNDLE,\r\n VCTYPE,\r\n VOUCHER\r\n} from '../../utils/constants';\r\nimport { actionTypes, AppContext } from './StaticLineTableStore/StaticLineTableProvider';\r\n\r\n/**\r\n * Query-string parameter name used to trigger the Shogun/rewards (loyalty) flow.\r\n * The value is passed to the real offer API.\r\n */\r\nconst SHOGUN_QUERY_PARAM = 'gloxtoken';\r\n\r\n/**\r\n * Reads the Shogun/rewards token from the URL query-string. Returns null when\r\n * running outside the browser or when the parameter is not present.\r\n */\r\nconst getShogunTokenFromUrl = (): string | null => {\r\n if (typeof window === 'undefined') return null;\r\n const params = new URLSearchParams(window?.location?.search);\r\n return params?.get(SHOGUN_QUERY_PARAM);\r\n};\r\n\r\nconst StaticProductContainer: FC<StaticProductContainerSchema> = ({\r\n content,\r\n setGenericErrorModalDetails,\r\n metadata,\r\n tabIndex,\r\n constants,\r\n loginSuccess,\r\n activeIndex,\r\n mainContent,\r\n address,\r\n eligibleBundle,\r\n linecheckSuccessCallBack,\r\n selectedOption,\r\n basicConfigUrl,\r\n selectedExistingOption,\r\n setLoginSuccess,\r\n lineCheckCallBack,\r\n setToggleState,\r\n toggleState,\r\n noTabs,\r\n deviceFlow,\r\n deviceFlowCallBack,\r\n ubRatePlanObj,\r\n lineCheckOnClear,\r\n pegaIntegration,\r\n pegaCustomerInterest,\r\n useStoryblokOrder,\r\n isFetching,\r\n setIsFetching,\r\n isProdEnv,\r\n //US_31295\r\n toggleContent,\r\n localCacheDuration\r\n}) => {\r\n const viewPort = viewport();\r\n const uniqueId: keyof typeof offeringData = content?._uid;\r\n const [offeringData, setOfferingData] = useState<any>();\r\n const [filteredProducts, setFilteredProducts] = useState<any>();\r\n const [newDisplayContent, setNewDisplayContent] = useState<any>();\r\n const offerEndpoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\r\n AuthData = AuthData && JSON.parse(AuthData);\r\n const storeContext = useContext(AppContext);\r\n const isMobileFlow = content?.pageType === 'MOBILE';\r\n /**\r\n * Loyalty (Shogun) flow is active only when BOTH conditions are met:\r\n * 1. The Storyblok parent-level attribute `isRewardsFlow` is enabled.\r\n * 2. The URL query-string carries a non-empty `gloxtoken` parameter.\r\n * Any other combination falls back to the standard offer flow.\r\n */\r\n const shogunTokenFromUrl = getShogunTokenFromUrl();\r\n const isShogunFlow = Boolean(mainContent?.isRewardsFlow) && Boolean(shogunTokenFromUrl);\r\n //US_31295\r\n const getPriceToggle = () => {\r\n if (!toggleContent || !toggleContent.enableLoggedInPrice) return null;\r\n const stored = localStorage.getItem('userLoggedPricesToggle');\r\n if (stored === 'true') return true;\r\n if (stored === 'false') return false;\r\n const isNewCustomer = toggleContent?.customers?.toLowerCase() === NEW;\r\n if (isNewCustomer && toggleContent?.newUserToggleEnabled) {\r\n return true;\r\n }\r\n if (!isNewCustomer && toggleContent?.loggedUserToggleEnabled) {\r\n return true;\r\n }\r\n return null;\r\n };\r\n const [pricesToggleState, setPricesToggleState] = useState<any>(getPriceToggle);\r\n const [runOnLoad, setRunOnLoad] = useState<boolean>(true);\r\n const timerRefreshTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const promoPayloadSignatureRef = useRef<string>('');\r\n const offerDataCacheRef = useRef<Record<string, { results: any[]; timestamp: number }>>({});\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n findHeight();\r\n }, 100);\r\n window?.addEventListener('resize', findHeight);\r\n window?.addEventListener('load', findHeight);\r\n return () => {\r\n window.removeEventListener('resize', findHeight);\r\n window.removeEventListener('load', findHeight);\r\n };\r\n }, [content?.productList, filteredProducts, newDisplayContent]);\r\n\r\n const findHeight = () => {\r\n if (noTabs) {\r\n const activeToggles = [toggleState?.TV, toggleState?.Netflix, toggleState?.gigaSpeed].filter(\r\n Boolean\r\n ).length;\r\n const hasTV = toggleState?.TV;\r\n const hasNetflix = toggleState?.Netflix;\r\n const hasGigaSpeed = toggleState?.gigaSpeed;\r\n\r\n const tabbIndex =\r\n hasTV && hasNetflix && hasGigaSpeed\r\n ? 3\r\n : (hasTV && hasNetflix) ||\r\n (activeToggles >= 2 && !(hasGigaSpeed && !hasTV && !hasNetflix))\r\n ? 2\r\n : activeToggles === 1 || activeToggles === 2\r\n ? 1\r\n : 0;\r\n\r\n getElementMaximumHeight('productCardV3' + `${tabbIndex}`, filteredProducts?.length);\r\n } else {\r\n getElementMaximumHeight('productCardV3' + `${activeIndex}`, content?.productList?.length);\r\n }\r\n };\r\n\r\n const hardwareSessionObj = sessionStorage.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\r\n const sessionData = hardwareSessionObj && JSON.parse(hardwareSessionObj);\r\n const deviceUltimateBundle = content?.enableFPB;\r\n\r\n useEffect(() => {\r\n if (offeringData && Object.keys(offeringData)?.length > 0) {\r\n trackEligibleItem('view', offeringData[uniqueId], '', LINETABLE, null, pegaIntegration);\r\n }\r\n //filter products by pega response\r\n if (pegaIntegration && offeringData && Object.keys(offeringData)?.length > 0) {\r\n const availableProducts =\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1);\r\n\r\n const pegaProductsIds = offeringData[uniqueId]?.map((item: any) => item?.id);\r\n\r\n const onlyPegaProducts = availableProducts.filter((product: any) =>\r\n pegaProductsIds?.includes(product.products[0].reference.name)\r\n );\r\n\r\n //sort products by storyblok vs pega\r\n if (useStoryblokOrder) {\r\n onlyPegaProducts.sort((a: any, b: any) => {\r\n return availableProducts.indexOf(a) - availableProducts.indexOf(b);\r\n });\r\n } else {\r\n onlyPegaProducts.sort((a: any, b: any) => {\r\n return (\r\n pegaProductsIds.indexOf(a.products[0].reference.name) -\r\n pegaProductsIds.indexOf(b.products[0].reference.name)\r\n );\r\n });\r\n }\r\n\r\n setNewDisplayContent(onlyPegaProducts);\r\n setIsFetching(false);\r\n }\r\n\r\n // Shogun flow: filter storyblok product list to only the products returned by the\r\n // Shogun offer API (matched by productId). Logic lives in filterShogunProducts (Product.utils).\r\n if (isShogunFlow && offeringData && Object.keys(offeringData)?.length > 0) {\r\n const shogunProductIds = (offeringData[uniqueId] ?? []).map((item: any) => item?.id);\r\n const availableProducts =\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1);\r\n\r\n setNewDisplayContent(filterShogunProducts(availableProducts, shogunProductIds));\r\n setIsFetching(false);\r\n }\r\n }, [offeringData]);\r\n\r\n useEffect(() => {\r\n if (\r\n offeringData &&\r\n Object.keys(offeringData)?.length > 0 &&\r\n !isMobileFlow &&\r\n eligibleBundle?.eligibleBundle\r\n ) {\r\n trackEligibleItem(\r\n 'available',\r\n offeringData[uniqueId],\r\n '',\r\n LINETABLE,\r\n eligibleBundle?.eligibleBundle,\r\n pegaIntegration\r\n );\r\n }\r\n }, [eligibleBundle, offeringData]);\r\n\r\n //US_31295\r\n useEffect(() => {\r\n if (typeof window === 'undefined') return;\r\n // window.dispatchEvent(\r\n // new CustomEvent('user-logged-prices-toggle-all', {\r\n // detail: {\r\n // auth: AuthData?.siteId ? true : false },\r\n // })\r\n // );\r\n const handleGlobalToggle = (e: any) => {\r\n setPricesToggleState(e.detail.value);\r\n };\r\n window.addEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\r\n return () => {\r\n window.removeEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\r\n };\r\n }, []);\r\n\r\n /**\r\n * Check if cached offer data is still valid based on localCacheDuration\r\n */\r\n const isCacheValid = (cacheKey: string, durationMinutes: number | undefined): boolean => {\r\n const cached = offerDataCacheRef.current[cacheKey];\r\n if (!cached) return false;\r\n\r\n // A duration of 0 explicitly disables cache reads and always forces a fresh request.\r\n if (durationMinutes === 0) return false;\r\n\r\n // If no duration is specified, cache never expires (until manually cleared).\r\n if (durationMinutes === undefined) return true;\r\n\r\n if (durationMinutes < 0) return true;\r\n\r\n const elapsedMinutes = (Date.now() - cached.timestamp) / (1000 * 60);\r\n return elapsedMinutes < durationMinutes;\r\n };\r\n\r\n /**\r\n * fetching offer response\r\n */\r\n const fetchOfferData = (forceRefresh: boolean = false) => {\r\n const ProductIds: ProductRequestBase[] = [];\r\n let pegaPayload: PegaProductRequestBase = { atlOffers: [] };\r\n // for getting product offer api call request and promo id list\r\n //existingCustomerBenefit without login\r\n let existingCustomer = mainContent?.enableExistingCustomer;\r\n let subscriptionType = mainContent?.subscriptionType;\r\n let bundle4PProduct = mainContent?.pageType == '4P' ? true : false;\r\n const enableReturnPromo = content?.isReturnPromo;\r\n const benefitExistingCustomer = selectedExistingOption?.length > 0 ? true : false;\r\n const benefitSubscriptionType = selectedExistingOption?.join(',');\r\n //US_31295\r\n subscriptionType =\r\n existingCustomer || pricesToggleState ? subscriptionType : benefitSubscriptionType;\r\n existingCustomer =\r\n ((existingCustomer || benefitExistingCustomer) && AuthData) ||\r\n pricesToggleState ||\r\n !toggleContent;\r\n\r\n if (AuthData?.siteId && toggleContent?.enableLoggedInPrice && toggleContent.customers !== NEW) {\r\n if (pricesToggleState == false) {\r\n subscriptionType = 'none';\r\n } else if (pricesToggleState === true) {\r\n subscriptionType = undefined;\r\n }\r\n }\r\n\r\n if (toggleContent?.enableLoggedInPrice && pricesToggleState === false) {\r\n existingCustomer = false;\r\n }\r\n const P2PEnabled = content?.enableP2P ? true : false;\r\n const cacheDuration = localCacheDuration ?? 1;\r\n const cacheKey = `tab-${tabIndex}`;\r\n\r\n // Serve from cache without triggering loading state\r\n if (!forceRefresh && isCacheValid(cacheKey, cacheDuration)) {\r\n setOfferingData({ [uniqueId]: offerDataCacheRef.current[cacheKey].results });\r\n return;\r\n }\r\n\r\n // Shogun flow: triggered when `gloxtoken` is present in the URL AND the\r\n // storyblok parent-level `isRewardsFlow` flag is enabled (see isShogunFlow).\r\n // All containers share a single API call via getShogunSharedOffer (Product.utils).\r\n if (isShogunFlow) {\r\n const gloxTokenId = shogunTokenFromUrl;\r\n\r\n if (gloxTokenId) {\r\n // Skip loading state when results are already in the shared cache.\r\n if (!isShogunOfferResolved(gloxTokenId)) {\r\n setIsFetching(true);\r\n }\r\n\r\n getShogunSharedOffer(gloxTokenId, uniqueId as string, offerEndpoint)\r\n .then((shogunResults: any[]) => {\r\n offerDataCacheRef.current[cacheKey] = { results: shogunResults, timestamp: Date.now() };\r\n setOfferingData({ [uniqueId]: shogunResults });\r\n setGenericErrorModalDetails({ showPopup: false });\r\n })\r\n .catch(() => {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n })\r\n .finally(() => {\r\n setIsFetching(false);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n setIsFetching(true);\r\n\r\n if (pegaIntegration) {\r\n pegaPayload = fetchPegaProducts(content, pegaCustomerInterest, 'LineItem');\r\n } else {\r\n fetchStaticProductIds(\r\n content?.productList,\r\n ProductIds,\r\n bundle4PProduct,\r\n mainContent?.optionId,\r\n //US_31295\r\n pricesToggleState\r\n );\r\n const newSignature = JSON.stringify(\r\n ProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\r\n );\r\n promoPayloadSignatureRef.current = newSignature;\r\n }\r\n\r\n if (\r\n forceRefresh ||\r\n (tabIndex === activeIndex && !offeringData?.[uniqueId]) ||\r\n (tabIndex === activeIndex && loginSuccess) ||\r\n selectedExistingOption\r\n ) {\r\n try {\r\n fetchOfferingDataLineTableV2(\r\n pegaIntegration ? pegaPayload : ProductIds,\r\n content?._uid,\r\n offerEndpoint,\r\n existingCustomer,\r\n subscriptionType,\r\n enableReturnPromo,\r\n P2PEnabled,\r\n pegaIntegration,\r\n deviceUltimateBundle\r\n )\r\n ?.then((resp: any) => {\r\n const results = resp?.[uniqueId as string] ?? [];\r\n offerDataCacheRef.current[cacheKey] = { results, timestamp: Date.now() };\r\n setOfferingData(resp);\r\n setGenericErrorModalDetails({ showPopup: false });\r\n })\r\n .catch((error: any) => {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n })\r\n .finally(() => {\r\n setIsFetching(false);\r\n });\r\n } catch (err: any) {\r\n setGenericErrorModalDetails({\r\n showPopup: true,\r\n content: mainContent?.telesalesBlok?.[0]\r\n });\r\n }\r\n } else if (offeringData) {\r\n setIsFetching(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (timerRefreshTimeoutRef.current) {\r\n clearTimeout(timerRefreshTimeoutRef.current);\r\n timerRefreshTimeoutRef.current = null;\r\n }\r\n\r\n const isCurrentTab =\r\n activeIndex === tabIndex || activeIndex === undefined || activeIndex === null;\r\n\r\n if (!isCurrentTab) {\r\n return;\r\n }\r\n\r\n const nextTimerEventDelay = (content?.productList || []).reduce(\r\n (minimumDelay: number, product: any) => {\r\n const timer = product?.timer?.[0];\r\n const isCounterEnabled = timer?.enableCounter;\r\n\r\n if (!isCounterEnabled || !timer?.startTime || !timer?.endTime) {\r\n return minimumDelay;\r\n }\r\n\r\n const delay = getTimeUntilNextTimerEvent(timer.startTime, timer.endTime);\r\n\r\n if (delay <= 0) {\r\n return minimumDelay;\r\n }\r\n\r\n if (minimumDelay === 0 || delay < minimumDelay) {\r\n return delay;\r\n }\r\n\r\n return minimumDelay;\r\n },\r\n 0\r\n );\r\n\r\n if (nextTimerEventDelay <= 0) {\r\n return;\r\n }\r\n timerRefreshTimeoutRef.current = setTimeout(() => {\r\n const refreshProductIds: ProductRequestBase[] = [];\r\n fetchStaticProductIds(\r\n content?.productList,\r\n refreshProductIds,\r\n mainContent?.pageType == '4P',\r\n mainContent?.optionId,\r\n pricesToggleState\r\n );\r\n const nextSignature = JSON.stringify(\r\n refreshProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\r\n );\r\n\r\n if (nextSignature === promoPayloadSignatureRef.current) {\r\n return;\r\n }\r\n\r\n // Clear cache before forcing refresh on timer expiry\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n\r\n setOfferingData((prev: any) => {\r\n if (!prev || typeof prev !== 'object') {\r\n return prev;\r\n }\r\n\r\n return {\r\n ...prev,\r\n [uniqueId]: null\r\n };\r\n });\r\n fetchOfferData(true);\r\n }, nextTimerEventDelay);\r\n\r\n return () => {\r\n if (timerRefreshTimeoutRef.current) {\r\n clearTimeout(timerRefreshTimeoutRef.current);\r\n timerRefreshTimeoutRef.current = null;\r\n }\r\n };\r\n }, [activeIndex, tabIndex, content?.productList, uniqueId, offeringData]);\r\n\r\n /**\r\n * triggering offer api based for the selected tab\r\n */\r\n useEffect(() => {\r\n setRunOnLoad(true);\r\n if (activeIndex == tabIndex || activeIndex == null) {\r\n if (pricesToggleState !== undefined && offeringData?.[uniqueId]) {\r\n offeringData[uniqueId] = null;\r\n }\r\n fetchOfferData();\r\n setRunOnLoad(false);\r\n }\r\n }, [activeIndex]);\r\n\r\n useEffect(() => {\r\n if (AuthData?.siteId && loginSuccess) {\r\n // Clear cache on login to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n fetchOfferData();\r\n sessionStorage.removeItem('vasPopUp');\r\n }\r\n }, [loginSuccess]);\r\n\r\n useEffect(() => {\r\n if (selectedOption != undefined && selectedExistingOption != undefined) {\r\n // Clear cache when selection options change to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n fetchOfferData();\r\n }\r\n }, [selectedOption, selectedExistingOption]);\r\n\r\n //US_31295\r\n useEffect(() => {\r\n if (pricesToggleState === undefined || runOnLoad) return;\r\n // Clear cache when price toggle changes to fetch fresh data\r\n const cacheKey = `tab-${tabIndex}`;\r\n delete offerDataCacheRef.current[cacheKey];\r\n if (offeringData?.[uniqueId]) {\r\n offeringData[uniqueId] = null;\r\n }\r\n fetchOfferData();\r\n }, [pricesToggleState]);\r\n\r\n useEffect(() => {\r\n //For QoQa flow\r\n const queryParams = window && new URLSearchParams(window?.location.search);\r\n const voucher: string | null = queryParams?.get(VOUCHER);\r\n if (\r\n voucher &&\r\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId\r\n ) {\r\n try {\r\n getVocherPromotion(\r\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId,\r\n voucher\r\n ).then((res: any) => {\r\n res && setLocalStoreWithExpiry(VCTYPE, { voucher: voucher, voucherType: 'qoqa' });\r\n });\r\n } catch (err: any) {}\r\n }\r\n\r\n //To trigger serviceOptions APi by category and updating it in context\r\n if (storeContext && tabIndex === activeIndex) {\r\n const { store, dispatch } = storeContext;\r\n let enableTvOptions = false;\r\n let enableTvOptionsPopUp = false;\r\n (content?.productList || [])?.forEach((prod: any) => {\r\n if (prod?.enableTVStreamingOptionsPopUp) {\r\n enableTvOptionsPopUp = true;\r\n }\r\n if (prod?.enableTVStreamingOptions) {\r\n enableTvOptions = true;\r\n }\r\n });\r\n if (store?.ottOptionsApi?.length === 0 && (enableTvOptions || enableTvOptionsPopUp)) {\r\n fetchOttServiceOptions()\r\n ?.then((res: any) => {\r\n if (res?.length > 0) {\r\n dispatch({ type: actionTypes?.ottOptionsApi, payload: res });\r\n }\r\n })\r\n .catch(() => {});\r\n }\r\n }\r\n }, []);\r\n\r\n //No Tabs content set\r\n let displayContent: any = [];\r\n useEffect(() => {\r\n if (noTabs) {\r\n displayContent = fetchFilteredProducts(content?.productList, toggleState);\r\n setFilteredProducts(displayContent);\r\n }\r\n }, [toggleState]);\r\n\r\n // sending offer api data as callback in device Flow to identify Multimobile/fmc\r\n useEffect(() => {\r\n if (deviceFlow?.isDeviceFlow && offeringData) {\r\n deviceFlow?.prodcardcallbackOfferApiData(offeringData);\r\n }\r\n }, [offeringData]);\r\n\r\n const getProductId = (content: any) => {\r\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\r\n return productData?.productId;\r\n };\r\n\r\n useEffect(() => {\r\n if (noTabs && !deviceFlow?.isDeviceFlow) {\r\n setNewDisplayContent(filteredProducts);\r\n } else {\r\n setNewDisplayContent(\r\n (content?.productList?.length && content?.productList) ||\r\n new Array(content?.productList?.length || 3).fill(1)\r\n );\r\n }\r\n }, [filteredProducts]);\r\n\r\n return (\r\n <div>\r\n <div className={Styles['titlecontainer']}>\r\n {content?.title && <div className={Styles['title']}>{content?.title}</div>}\r\n {content?.subTitle && <div className={Styles['description']}>{content?.subTitle}</div>}\r\n </div>\r\n <div className={`linetableV3`}>\r\n {viewPort && newDisplayContent && newDisplayContent?.length > 0 && (\r\n <CarouselComponent\r\n carouselIndex={0}\r\n key={activeIndex}\r\n arrow={mainContent?.enableMobileArrows}\r\n >\r\n {newDisplayContent &&\r\n newDisplayContent?.length > 0 &&\r\n (newDisplayContent || [])?.map((data: StaticProductSchema, indexx: number) => {\r\n return (\r\n <div\r\n id={`productCardV3${activeIndex}`}\r\n style={{ textAlign: 'center' }}\r\n key={indexx}\r\n >\r\n <StaticProduct\r\n content={pegaIntegration && isFetching && !offeringData ? {} : data}\r\n offeringData={offeringData}\r\n uniqueId={uniqueId}\r\n storyContent={content}\r\n metadata={metadata}\r\n tabIndex={tabIndex}\r\n cardsLength={content?.productList?.length}\r\n indexKey={indexx}\r\n constants={constants}\r\n mainContent={mainContent}\r\n linecheckSuccessCallBack={linecheckSuccessCallBack}\r\n lineCheckCallBack={lineCheckCallBack}\r\n address={address}\r\n eligibleBundle={eligibleBundle}\r\n selectedOption={selectedOption}\r\n fetchOfferData={fetchOfferData}\r\n basicConfigUrl={basicConfigUrl}\r\n selectedExistingOption={selectedExistingOption}\r\n setLoginSuccess={setLoginSuccess}\r\n enableP2P={content?.enableP2P}\r\n loginSuccess={loginSuccess}\r\n setToggleState={setToggleState}\r\n toggleState={toggleState}\r\n noTabs={noTabs}\r\n deviceFlow={deviceFlow}\r\n deviceFlowCallBack={deviceFlowCallBack}\r\n selectedRP={ubRatePlanObj?.selectedRP}\r\n continueCart={ubRatePlanObj?.continueCart}\r\n lineCheckOnClear={lineCheckOnClear}\r\n pegaIntegration={pegaIntegration}\r\n isProdEnv={isProdEnv}\r\n deviceUltimateBundle={deviceUltimateBundle}\r\n //US_31295\r\n toggleContent={toggleContent}\r\n pricesToggleState={pricesToggleState}\r\n isShogunFlow={isShogunFlow}\r\n shogunToken={shogunTokenFromUrl}\r\n />\r\n </div>\r\n );\r\n })}\r\n </CarouselComponent>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StaticProductContainer;\r\n"],"names":["StaticProductContainer","content","setGenericErrorModalDetails","metadata","tabIndex","constants","loginSuccess","activeIndex","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","basicConfigUrl","selectedExistingOption","setLoginSuccess","lineCheckCallBack","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","ubRatePlanObj","lineCheckOnClear","pegaIntegration","pegaCustomerInterest","useStoryblokOrder","isFetching","setIsFetching","isProdEnv","toggleContent","localCacheDuration","viewPort","viewport","uniqueId","_uid","offeringData","setOfferingData","useState","filteredProducts","setFilteredProducts","newDisplayContent","setNewDisplayContent","offerEndpoint","_a","LineTableBasicPropConfig","getInstance","getBaseUrl","AuthData","undefined","window","Cookies","get","JSON","parse","storeContext","useContext","AppContext","isMobileFlow","pageType","shogunTokenFromUrl","params","URLSearchParams","location","search","getShogunTokenFromUrl","isShogunFlow","Boolean","isRewardsFlow","pricesToggleState","setPricesToggleState","enableLoggedInPrice","stored","localStorage","getItem","isNewCustomer","customers","toLowerCase","NEW","newUserToggleEnabled","loggedUserToggleEnabled","runOnLoad","setRunOnLoad","timerRefreshTimeoutRef","useRef","promoPayloadSignatureRef","offerDataCacheRef","useEffect","setTimeout","findHeight","addEventListener","removeEventListener","productList","activeToggles","TV","Netflix","gigaSpeed","filter","length","hasTV","hasNetflix","hasGigaSpeed","getElementMaximumHeight","hardwareSessionObj","sessionStorage","ONE_ECOMMERCE_HARDWARE_SUMMARY","deviceUltimateBundle","enableFPB","Object","keys","trackEligibleItem","LINETABLE","_b","availableProducts","_c","Array","_d","fill","pegaProductsIds","_e","map","item","id","onlyPegaProducts","product","includes","products","reference","name","sort","a","b","indexOf","_f","shogunProductIds","_g","_h","_j","filterShogunProducts","handleGlobalToggle","e","detail","value","fetchOfferData","forceRefresh","ProductIds","pegaPayload","atlOffers","existingCustomer","enableExistingCustomer","subscriptionType","bundle4PProduct","enableReturnPromo","isReturnPromo","benefitExistingCustomer","benefitSubscriptionType","join","siteId","P2PEnabled","enableP2P","cacheKey","durationMinutes","cached","current","Date","now","timestamp","isCacheValid","gloxTokenId","isShogunOfferResolved","getShogunSharedOffer","then","shogunResults","results","showPopup","catch","telesalesBlok","finally","fetchPegaProducts","fetchStaticProductIds","optionId","newSignature","stringify","promoIds","fetchOfferingDataLineTableV2","resp","error","err","clearTimeout","nextTimerEventDelay","reduce","minimumDelay","timer","enableCounter","startTime","endTime","delay","getTimeUntilNextTimerEvent","refreshProductIds","prev","assign","removeItem","queryParams","voucher","VOUCHER","productId","getVocherPromotion","_q","_p","_m","_l","_o","_r","res","setLocalStoreWithExpiry","VCTYPE","voucherType","store","dispatch","enableTvOptions","enableTvOptionsPopUp","_s","forEach","prod","enableTVStreamingOptionsPopUp","enableTVStreamingOptions","ottOptionsApi","_t","_u","fetchOttServiceOptions","type","actionTypes","payload","displayContent","fetchFilteredProducts","isDeviceFlow","prodcardcallbackOfferApiData","React","createElement","className","Styles","title","subTitle","CarouselComponent","carouselIndex","key","arrow","enableMobileArrows","data","indexx","style","textAlign","StaticProduct","storyContent","cardsLength","indexKey","selectedRP","continueCart","shogunToken"],"mappings":"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"}
@@ -1 +1 @@
1
- .card_G6N3b.sr-card_79oCF{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_G6N3b.border-top_V2zp5{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_KSJOc{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_DfJ-i{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_4trTA{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}}.login-container_Ad6KQ{align-items:center;background-color:#fff;box-shadow:-1px 18px 25px 5px rgba(87,84,82,.4);display:flex;flex-direction:column;justify-content:center;max-width:624px;padding:24px 32px;position:absolute;width:100%;border-radius:4px}@media (max-width:767px){.login-container_Ad6KQ{padding:16px}}.login-header_hzlgu{width:100%;margin-bottom:24px;display:flex;justify-content:space-between}.login-header_hzlgu img,.login-header_hzlgu span{cursor:pointer}.icon-container_FGJQU{width:24px;height:24px}.back-text_MKh1u{font-weight:700;font-size:16px;line-height:24px;color:#da291c;padding-left:4px}.channel-selection-title_0iFVE{font-weight:700;line-height:36px;font-size:28px;text-align:center;margin-bottom:24px}.channel-selection-description_MFGOM{font-size:16px;font-weight:400;line-height:24px;text-align:left;color:#333;margin-bottom:24px}.btn-primary_9w79K{background:#d9415c;border:none;border-radius:28px;color:#fff;font-weight:700;overflow:visible;padding:14px 24px}.btn-primary_9w79K:disabled{background-color:#e6e3df;color:#b3aeaa;cursor:default}@media (max-width:767px){.btn-primary_9w79K{padding:10px 24px}}.errorMsg_pDhM4{color:#bf0760;display:flex;font-size:12px;font-weight:400;line-height:16px;margin-bottom:4px}.resend_DQ50C{font-size:16px;font-weight:700;line-height:24px;text-align:center;color:#3d3935}.loginmodal_XhQt-{align-items:center;background-color:rgba(87,84,82,.4);font-size:16px;line-height:24px;color:#333;display:flex;height:100%;justify-content:center;left:0;padding:16px;position:fixed;top:0;transition:opacity 3s;width:100%;z-index:11}.loginmodal_XhQt- input{background:#f7f6f5!important}.loginmodal_XhQt- input:focus{border:2px solid #3d3935!important;border-radius:4px}.loginmodal_XhQt- input:disabled{background:#e6e3df!important}.loginmodal_XhQt- input.inputSuccess_dK7Uz{border-color:#8fd200!important;box-shadow:0 0 0 1px #8fd200!important}.loginmodal_XhQt- input::-webkit-inner-spin-button,.loginmodal_XhQt- input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}.loginmodal_XhQt- input[type=number]{-moz-appearance:textfield!important}.iconcontainer_QpoFB{bottom:14px;position:absolute;right:12.25px}.logintitle_bnFYd{font-size:24px;font-weight:700;line-height:32px;text-align:center;width:100%}.formControl_hBGQP{border:none;padding:14px 0}.formControl_hBGQP::-ms-reveal{display:none}.formControl_hBGQP:focus,.formControl_hBGQP:not(:placeholder-shown){border-color:#000;box-shadow:none}.loginmodalLabel_gakRq{overflow:hidden;right:0;text-overflow:ellipsis;white-space:nowrap}.confirmbtn_woa5L{height:52px;width:150px}.horizontalline_ew-1o{border:1px solid #e5e5e5;margin:25px 0;width:70%}.infotooltip_e3Al0{font-size:12px;line-height:1.33;margin-top:4px}.eyeicon_XTxJn{display:inline-block;height:24px;margin-left:8px;width:24px}.credentialerror_T9TK0{color:#bf0760;display:flex;font-size:12px;font-weight:400;height:32px;line-height:16px;margin-top:4px;position:absolute;top:52px}.tempcode_rzrt5{font-size:16px;font-style:normal;font-weight:700;line-height:24px;padding:16px 0 0}.warningicon_3HIvk{content:"";display:inline-block;height:16px;margin-right:4px;margin-top:2px;width:16px}.blockedcontent_OQn79{background:#f9e7f0;border:1.5px solid #bf0760;border-radius:8px}.blockedcontent_OQn79,.warningcontent_KzTOC{align-items:flex-start;display:flex;flex-direction:column;height:120px;justify-content:center;padding:16px 16px 8px}.warningcontent_KzTOC{background:#fffae6;border:1.5px solid #ffc805;border-radius:8px}.technicalerror_n3C0N{height:90px}.updatedetails_DHwPR{color:#da291c;cursor:pointer;margin:0 5px;text-decoration:underline}.loginmodalrem_GKQDm{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:block;font-weight:700;padding-left:28px;position:relative;text-align:left;user-select:none}.loginmodalrem_GKQDm input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.loginmodalrem_GKQDm input:checked~.checkmark_XKH5n{background-color:#da291c;border:2px solid #da291c}.loginmodalrem_GKQDm input:checked~.checkmark_XKH5n:after{display:block}.loginmodalrem_GKQDm .checkmark_XKH5n{border:2px solid #5f5955;border-radius:4px;height:20px;left:0;position:absolute;top:2px;width:20px}.loginmodalrem_GKQDm .checkmark_XKH5n:after{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);border:solid #fff;border-width:0 3px 3px 0;height:10px;left:5px;top:2px;transform:rotate(45deg);width:5px}
1
+ .card_G6N3b.sr-card_79oCF{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_G6N3b.border-top_V2zp5{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_KSJOc{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_DfJ-i{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_4trTA{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}}.login-container_Ad6KQ{align-items:center;background-color:#fff;box-shadow:-1px 18px 25px 5px rgba(87,84,82,.4);display:flex;flex-direction:column;justify-content:center;max-width:624px;padding:24px 32px;position:absolute;width:100%;border-radius:4px}@media (max-width:767px){.login-container_Ad6KQ{padding:16px}}.login-header_hzlgu{width:100%;margin-bottom:24px;display:flex;justify-content:space-between}.login-header_hzlgu img,.login-header_hzlgu span{cursor:pointer}.icon-container_FGJQU{width:24px;height:24px}.back-text_MKh1u{font-weight:700;font-size:16px;line-height:24px;color:#da291c;padding-left:4px}.channel-selection-title_0iFVE{font-weight:700;line-height:36px;font-size:28px;text-align:center;margin-bottom:24px}.channel-selection-description_MFGOM{font-size:16px;font-weight:400;line-height:24px;text-align:left;color:#333;margin-bottom:24px}.btn-primary_9w79K{background:#d9415c;border:none;border-radius:28px;color:#fff;font-weight:700;overflow:visible;padding:14px 24px}.btn-primary_9w79K:disabled{background-color:#e6e3df;color:#b3aeaa;cursor:default}@media (max-width:767px){.btn-primary_9w79K{padding:10px 24px}}.errorMsg_pDhM4{color:#bf0760;display:flex;font-size:12px;font-weight:400;line-height:16px;margin-bottom:4px}.resend_DQ50C{font-size:16px;font-weight:700;line-height:24px;text-align:center;color:#3d3935}.loginmodal_XhQt-{align-items:center;background-color:rgba(87,84,82,.4);font-size:16px;line-height:24px;color:#333;display:flex;height:100%;justify-content:center;left:0;padding:16px;position:fixed;top:0;transition:opacity 3s;width:100%;z-index:11}.loginmodal_XhQt- input{background:#f7f6f5!important}.loginmodal_XhQt- input:focus{border:2px solid #3d3935!important;border-radius:4px}.loginmodal_XhQt- input:disabled{background:#e6e3df!important}.loginmodal_XhQt- input.inputSuccess_dK7Uz{border-color:#8fd200!important;box-shadow:0 0 0 1px #8fd200!important}.loginmodal_XhQt- input::-webkit-inner-spin-button,.loginmodal_XhQt- input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}.loginmodal_XhQt- input[type=number]{-moz-appearance:textfield!important}.iconcontainer_QpoFB{bottom:14px;position:absolute;right:12.25px}.logintitle_bnFYd{font-size:24px;font-weight:700;line-height:32px;text-align:center;width:100%}.formControl_hBGQP{border:none;padding:14px 0}.formControl_hBGQP::-ms-reveal{display:none}.formControl_hBGQP:focus,.formControl_hBGQP:not(:placeholder-shown){border-color:#000;box-shadow:none}.loginmodalLabel_gakRq{overflow:hidden;right:0;text-overflow:ellipsis;white-space:nowrap}.confirmbtn_woa5L{height:52px;width:150px}.horizontalline_ew-1o{border:1px solid #e5e5e5;margin:25px 0;width:70%}.infotooltip_e3Al0{font-size:12px;line-height:1.33;margin-top:4px}.eyeicon_XTxJn{display:inline-block;height:24px;margin-left:8px;width:24px}.credentialerror_T9TK0{color:#bf0760;display:flex;font-size:12px;font-weight:400;height:32px;line-height:16px;margin-top:4px;position:absolute;top:52px}.tempcode_rzrt5{font-size:16px;font-style:normal;font-weight:700;line-height:24px;padding:16px 0 0}.warningicon_3HIvk{content:"";display:inline-block;height:16px;margin-right:4px;margin-top:2px;width:16px}.blockedcontent_OQn79{background:#f9e7f0;border:1.5px solid #bf0760}.blockedcontent_OQn79,.warningcontent_KzTOC{align-items:flex-start;border-radius:8px;display:flex;flex-direction:column;height:120px;justify-content:center;padding:16px 16px 8px}.warningcontent_KzTOC{background:#fffae6;border:1.5px solid #ffc805}.technicalerror_n3C0N{height:90px}.updatedetails_DHwPR{color:#da291c;cursor:pointer;margin:0 5px;text-decoration:underline}.loginmodalrem_GKQDm{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:block;font-weight:700;padding-left:28px;position:relative;text-align:left;user-select:none}.loginmodalrem_GKQDm input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.loginmodalrem_GKQDm input:checked~.checkmark_XKH5n{background-color:#da291c;border:2px solid #da291c}.loginmodalrem_GKQDm input:checked~.checkmark_XKH5n:after{display:block}.loginmodalrem_GKQDm .checkmark_XKH5n{border:2px solid #5f5955;border-radius:4px;height:20px;left:0;position:absolute;top:2px;width:20px}.loginmodalrem_GKQDm .checkmark_XKH5n:after{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);border:solid #fff;border-width:0 3px 3px 0;height:10px;left:5px;top:2px;transform:rotate(45deg);width:5px}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunrise-upc/mobile-prod-card",
3
- "version": "12.0.2",
3
+ "version": "12.0.4",
4
4
  "description": "Starter project to create reusable functional component",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",