@sunrise-upc/mobile-prod-card 12.3.0-beta.3 → 12.3.0-beta.5

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{createPortal as n}from"react-dom";import t from"./AccessoryCard.module.scss.js";import d from"../DeviceCarouselComponent.js";import v from"../../ResponsiveRow/row.js";import{viewport as a,replacePlaceholder as r,getCompressedImage as c,countZero as s}from"../../../utils/utils.js";import{getCookie as u}from"cookies-next";import m from"../../FalconButtonV2/FalconButtonV2.js";import p from"./AccessoryModal.js";import y from"../../richtext.js";import{INFO as g,REPLACESELECTION as b,POPUP as h,OPENPOPUP as f,GAEVENT as E,OPEN as T,CLOSE as P,FORM as N,ACCORDIONCLICK as A,CONTINUE as I,LINK as k,TABCLICK as C,CLOSEPOPUP as S,REMOVEFROMCART as R,ADD_TO_CART as x,KEEPPREVIOUS as $,CTABUTTONCLICK as w,REPLACE as j}from"../../../Analytics/AnalyticsConstants.js";import{trackNewDatalayerEvent as L,trackViewItem as B}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as D,ACCESSORY as F,WATCHES as O,TABLETS as M,CONTRACT as _,FLEX_UPGRADE as K,HARDWARE as U,REMOVE as z,ADD as J}from"../../../utils/constants.js";import{useMultiAccessoryContext as V}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as H}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as W,buildSingleItemCartPayload as G}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";import Q from"../../GlobalDotLoader/GlobalDotLoader.js";const X=({content:X,tabIndex:Y,isSubscriptionFlow:Z,setAccessoriesSelected:ee})=>{var le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge,be,he,fe,Ee,Te,Pe,Ne,Ae,Ie,ke,Ce,Se,Re,xe,$e;const we=u("one-commerce-cartId"),[je,Le]=i(!1),Be=a(),[De,Fe]=i(!1),[Oe,Me]=i(null),[_e,Ke]=i(0),{store:Ue,dispatch:ze}=V(),Je=H(ze),Ve=W(),{updateAccessoryCartFailure:He}=Ue,{multiItemAccessoriessList:We,deviceSessionValues:Ge,selectedPaymentType:qe,recommendedAccessories:Qe,cartData:Xe,loading:Ye,showMiniCart:Ze}=Ue,[el,ll]=i(!1),il=(null===(te=null===(ne=null===(oe=null===(ie=null===(le=null==X?void 0:X.globalDotLoader)||void 0===le?void 0:le[0])||void 0===ie?void 0:ie.reference)||void 0===oe?void 0:oe.content)||void 0===ne?void 0:ne.body)||void 0===te?void 0:te[0])?null===(ce=null===(re=null===(ae=null===(ve=null===(de=null==X?void 0:X.globalDotLoader)||void 0===de?void 0:de[0])||void 0===ve?void 0:ve.reference)||void 0===ae?void 0:ae.content)||void 0===re?void 0:re.body)||void 0===ce?void 0:ce[0]:null===(se=null==X?void 0:X.globalDotLoader)||void 0===se?void 0:se[0],ol="undefined"!=typeof window&&document.getElementById("multi-accessory-card"),nl=!!(null===(me=null===(ue=[D])||void 0===ue?void 0:ue.includes)||void 0===me?void 0:me.call(ue,null===(ge=null===(ye=null===(pe=null==Qe?void 0:Qe[null==Ue?void 0:Ue.selectedTab])||void 0===pe?void 0:pe.hardware)||void 0===ye?void 0:ye[0])||void 0===ge?void 0:ge.recommendationProcessingType))||!(null==Ge?void 0:Ge.hardwareVariant),tl={[F]:Z?nl?+(null==X?void 0:X.ratePlanAccessoriesLimit):+(null==X?void 0:X.winAccessoriesLimit):+(null==X?void 0:X.accessoriesLimit),WATCHES:1,TABLETS:1},dl=e=>{L(E,A,{component:N,click_text:e?T:P}),Je.setShowMiniCart(e)},vl=JSON.parse(r(JSON.stringify(null==X?void 0:X.cartLimitWarningText),[null==tl?void 0:tl[Ue.selectedTab].toString()])),al=null===(be=null==q?void 0:q.getInstance())||void 0===be?void 0:be.getAssetPath(),rl=(e,l)=>{var i;const o=G(e,l,null==Ue?void 0:Ue.selectedTab,Ue);o.length>0&&Ve.multiItemAccessorycreateCartRequest({id:we,redirectUrl:"",skipRedirect:!0,previousTab:null==Ue?void 0:Ue.selectedTab,cartItems:o,successLoaderData:{duration:null!==(i=null==il?void 0:il.successMsgDuration)&&void 0!==i?i:"0",successLoaderCallback:ll}})},cl=(e,l,i)=>{var o,n;if(e.preventDefault(),null===(o=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])sl(E,R,l,i),rl(l,z);else{if(yl(l,i))return;sl(x,x,l,i),rl(l,J)}},sl=(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==Ue?void 0:Ue.selectedTab})},ul=e=>{var l,i,o;e.preventDefault();if((null===(l=Object.keys(He))||void 0===l?void 0:l.length)>0)return Le(!1),void Ve.setupdateAccessoryCartFailure({});const n=Z?null===(i=null==X?void 0:X.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(o=null==X?void 0:X.multiItemCheckoutUrl)||void 0===o?void 0:o.url;L(E,C,{component:k,click_text:I}),window.location.href=n},ml=()=>{var e;Le(e=>!e),(null===(e=Object.keys(He))||void 0===e?void 0:e.length)>0&&Ve.setupdateAccessoryCartFailure({})};o(()=>{var e;(null===(e=Object.keys(He))||void 0===e?void 0:e.length)>0&&Le(e=>!e)},[He]);const pl=()=>{Fe(!1),Me(null),Ke(0)},yl=(e,l)=>Object.keys((null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||{}).length>=(null==tl?void 0:tl[Ue.selectedTab])&&(Fe(!0),Me(e||null),Ke(l||0),!0),gl={},bl={},hl={};((null==X?void 0:X.recommendationType)||[]).map(e=>{var l;gl[e]=(e=>Object.keys((null==Xe?void 0:Xe[e])||{}).length)(e),bl[`${e}_icon`]=null===(l=null==X?void 0:X[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,hl[`${e}_title`]=null==X?void 0:X[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:fl,totalOneTimePrice:El,totalMonthlyPrice:Tl}=(()=>{var e,l,i,o,n,t,d,v,a,r,c,s;let u=0,m=0;const p=((null==X?void 0:X.recommendationType)||[]).flatMap(e=>{const l=(null==We?void 0:We[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==Xe?void 0:Xe[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==Xe?void 0:Xe[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)||[],f=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),E=null===(t=f.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(E||(null===(u=null===(s=null===(c=null==f?void 0:f[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)===U?C:0))}return{name:y,monthlyInstallment:g,oneTimePrice:b}})(Xe[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[O,M]){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==Qe?void 0:Qe[u])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.derivedPrice)&&void 0!==i?i:null===(n=null===(o=null==Qe?void 0:Qe[u])||void 0===o?void 0:o.ratePlan)||void 0===n?void 0:n.listPrice)&&void 0!==t?t:null===(v=null===(d=null==Xe?void 0:Xe.ratePlanInfo)||void 0===d?void 0:d[u])||void 0===v?void 0:v.derivedPrice)&&void 0!==a?a:null===(c=null===(r=null==Xe?void 0:Xe.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}})(),Pl=Object.values(gl).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,(Ye||el)&&ol&&n(l.createElement(Q,{content:il,isSuccess:el}),ol),l.createElement(v,null,l.createElement("div",{className:t.mainPage},Object.keys((null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[]).length>=(null==tl?void 0:tl[Ue.selectedTab])&&(null==Ue?void 0:Ue.selectedTab)===F&&l.createElement("div",{className:t.cartLimitTxt},l.createElement(y,{content:vl})),((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&l.createElement("div",{className:t.extraSimHeading},(null==Ue?void 0:Ue.selectedTab)===O?null==X?void 0:X.watchesHeading:null==X?void 0:X.tabletsHeading),l.createElement(d,{key:null==Ue?void 0:Ue.selectedTab},null===(fe=null===(he=(null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[])||void 0===he?void 0:he.filter(e=>{var l,i;return qe===_?(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===fe?void 0:fe.map((e,i)=>{var o,n,d,v,a,r,u,p,y,g,b,h,f,E,T,P,N,A,I,k,C,S,R,x,$,w,j,L,B,D,U,z,J,V,H,W,G,q,Q,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:`${t.card} ${(null===(o=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===o?void 0:o[null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.id])?t.selectedCard:""}`},l.createElement("div",{className:t.detailSection,id:`detailsectionv3${Y}${i}`},(null!==(u=null===(r=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===r?void 0:r.displayText)&&void 0!==u?u:null===(p=null==e?void 0:e.sbStoryItem)||void 0===p?void 0:p.displayText)&&l.createElement("div",{className:t.heading,id:`headingV3${Y}${i}`},null!==(f=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!==f?f:null===(E=null==e?void 0:e.sbStoryItem)||void 0===E?void 0:E.displayText,(null==Ue?void 0:Ue.selectedTab)===F&&(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:t.optionalText},null==X?void 0:X.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:t.accImage,id:`image${Y}${i}`},((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&(null===(C=null==X?void 0:X.esimIcon)||void 0===C?void 0:C.filename)&&l.createElement("div",{className:t.esimBadge},(null===(R=null===(S=null==e?void 0:e.sbStoryItem)||void 0===S?void 0:S.energyIcon)||void 0===R?void 0:R.filename)&&l.createElement("img",{loading:"lazy",src:c(al,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==X?void 0:X.esimIcon)||void 0===w?void 0:w.filename,alt:"eSIM",className:t.esimIcon})),l.createElement("img",{loading:"lazy",src:c(al,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:t.mainPriceContainer,id:`main-price-section${Y}${i}`},qe===_?l.createElement("div",{className:t.priceContainer,id:`price-detail-section${Y}${i}`},l.createElement("div",{className:t.price,id:`price${Y}${i}`},l.createElement("span",{style:{color:(null===(B=null===(L=null==e?void 0:e.recomApiResponse)||void 0===L?void 0:L.recurringPrice)||void 0===B?void 0:B.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},s(null===(U=null===(D=null==e?void 0:e.recomApiResponse)||void 0===D?void 0:D.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:t.strikedMonthlyPrice},s(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===(G=null===(W=null==e?void 0:e.recomApiResponse)||void 0===W?void 0:W.recurringPrice)||void 0===G?void 0:G.marketMonthlyInstallment)?null==t?void 0:t.monthlyStrikethroughText:t.monthlyText},null==X?void 0:X.monthlyText)),l.createElement("div",{className:t.totalPrice},null==X?void 0:X.totalText," ",s(null===(Q=null===(q=null==e?void 0:e.recomApiResponse)||void 0===q?void 0:q.oneTimePrice)||void 0===Q?void 0:Q.base)," ",l.createElement("span",{className:t.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"}},s(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:t.priceDescription},null==X?void 0:X.monthlyPaymentLabel,l.createElement("br",null),null==X?void 0:X.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(K))&&(null==X?void 0:X.freeFUText)&&l.createElement("div",{className:t.flexUpgradeText},null==X?void 0:X.freeFUText)):l.createElement("div",{className:t.priceContainer,id:`price-detail-section${Y}${i}`},l.createElement("div",{className:t.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${Y}${i}`},l.createElement("span",{className:t.oneTimePrice},s(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:t.strikedMonthlyPrice},s(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:t.priceDescription},null==X?void 0:X.oneTimePaymentLabel)),(null==X?void 0:X.addtocartButton.length)>0&&(null==X?void 0:X.removefromcartButton.length)>0&&l.createElement("div",{className:`${t.cartBtn}`,id:`add-crt-btn${Y}${i}`},(null===(me=null==Xe?void 0:Xe[null==Ue?void 0:Ue.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(m,{content:null===(ye=null==X?void 0:X.removefromcartButton)||void 0===ye?void 0:ye[0],onClick:l=>cl(l,e,i),wafIdentifier:al,disabled:Ye})):l.createElement(m,{content:null===(ge=null==X?void 0:X.addtocartButton)||void 0===ge?void 0:ge[0],onClick:l=>cl(l,e,i),wafIdentifier:al,disabled:Ye}))))})),l.createElement("div",{className:t.miaFooter},Pl>0&&(null==X?void 0:X.enableSelectionSummary)&&Object.keys(Qe||{}).length>1&&qe===_&&l.createElement("div",{className:t.miniSummary},l.createElement("div",{className:t.titleRow},l.createElement("span",{className:`fw-bold ${t.titleLabel}`},null==X?void 0:X.yourSelectionTitle),l.createElement("span",{className:t.titleIcons},((null==X?void 0:X.recommendationType)||[]).map(e=>{var i;return gl[e]>0&&l.createElement(l.Fragment,null,(e===O&&gl[F]>0||e===M&&(gl[F]>0||gl[O]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(al,null===(i=null==X?void 0:X.selectionSummaryPlusIcon)||void 0===i?void 0:i.filename),alt:"add_icon",width:16,height:16})),l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(al,null==bl?void 0:bl[`${e}_icon`]),alt:`${e}_icon`})," ",gl[e],"x ",null==hl?void 0:hl[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${t.cartPrice}`},qe===_?l.createElement(l.Fragment,null,s(Tl),null==X?void 0:X.monthlyText):s(El)),Ze?l.createElement("img",{className:t.cartToggle,onClick:()=>dl(!Ze),loading:"lazy",src:c(al,null===(Te=null==X?void 0:X.selectionSummaryCollapseIcon)||void 0===Te?void 0:Te.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:t.cartToggle,onClick:()=>dl(!Ze),loading:"lazy",src:c(al,null===(Ee=null==X?void 0:X.selectionSummaryExpandIcon)||void 0===Ee?void 0:Ee.filename),alt:"expand_icon",width:24,height:24})),Ze&&l.createElement(l.Fragment,null,l.createElement("div",{className:t.miniCartDivider}),fl.map(i=>{var o,n,d,v,a,r,u,m,p,y,g,b,h,f,T,P,N,A,I,k,C,S,x,$,w,j,L,B,D,F,K,U,z,J,V,H,W,G,q;return l.createElement("div",{className:t.itemRow,key:null===(o=null==i?void 0:i.recomApiResponse)||void 0===o?void 0:o.id},l.createElement("div",{className:t.itemLine},l.createElement("span",{className:t.itemName},null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name),l.createElement("div",{className:t.cartPrice},qe===_?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:t.oneTime},"(",s(null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.oneTimePrice)||void 0===r?void 0:r.base),")"),s(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==X?void 0:X.monthlyText):s(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:t.cartDelete,loading:"lazy",src:c(al,null===(g=null==X?void 0:X.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==Xe?void 0:Xe[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==Xe?void 0:Xe[t])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&(yield Ve.removeItemFromCart(we,l)),sl(E,R,l,0)}))(i),width:20,height:20})),[O,M].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:t.itemLine},l.createElement("span",{className:`${t.itemName} ${t.rpName}`},(null===(h=null===(b=null==Qe?void 0:Qe[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==Xe?void 0:Xe.ratePlanInfo)||void 0===f?void 0:f[null==i?void 0:i.tabKey])||void 0===T?void 0:T.name)),l.createElement("div",{className:t.rpPrice},s(Number.isFinite(Number(null!==(L=null!==($=null!==(C=null!==(A=null===(N=null===(P=null==Qe?void 0:Qe[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==Qe?void 0:Qe[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==Xe?void 0:Xe.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==Xe?void 0:Xe.ratePlanInfo)||void 0===w?void 0:w[null==i?void 0:i.tabKey])||void 0===j?void 0:j.monthlyPrice)&&void 0!==L?L:0))?Number(null!==(q=null!==(H=null!==(z=null!==(F=null===(D=null===(B=null==Qe?void 0:Qe[null==i?void 0:i.tabKey])||void 0===B?void 0:B.ratePlan)||void 0===D?void 0:D.derivedPrice)&&void 0!==F?F:null===(U=null===(K=null==Qe?void 0:Qe[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==Xe?void 0:Xe.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===(G=null===(W=null==Xe?void 0:Xe.ratePlanInfo)||void 0===W?void 0:W[null==i?void 0:i.tabKey])||void 0===G?void 0:G.monthlyPrice)&&void 0!==q?q:0):0),null==X?void 0:X.monthlyText)),l.createElement("hr",{className:t.itemDivider}))}))),l.createElement("div",{className:`${t.checkoutBtn}`},(null===(Pe=null==X?void 0:X.proceedtocheckoutButton)||void 0===Pe?void 0:Pe.length)>0&&l.createElement(m,{content:X.proceedtocheckoutButton[0],eventAction:"",onClick:e=>ul(e),wafIdentifier:al,disabled:Ye}))))),je&&l.createElement(p,{modalState:je,handler:()=>{ml()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"460px":"",noCloseButton:!1,backDrop:!0}," ",l.createElement("div",{className:`${t.accessoryErrorUpdate}`},l.createElement(y,{content:null===(Ae=null===(Ne=null==X?void 0:X.errorModal)||void 0===Ne?void 0:Ne[0])||void 0===Ae?void 0:Ae.heading}),l.createElement(y,{content:null===(ke=null===(Ie=null==X?void 0:X.errorModal)||void 0===Ie?void 0:Ie[0])||void 0===ke?void 0:ke.description}),l.createElement("div",{className:`${t.accessoryErrorButtons}`},l.createElement("div",{className:`${t.cancelButton}`,onClick:()=>{ml()}},null==X?void 0:X.cancelButtonLinkText),l.createElement(m,{content:null===(Ce=null==X?void 0:X.retryButton)||void 0===Ce?void 0:Ce[0],onClick:e=>ul(e),metadata:void 0,wafIdentifier:al})))),De&&(null==Ue?void 0:Ue.selectedTab)===F&&l.createElement(p,{modalState:De,handler:()=>{pl()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement("div",{className:`${t.accessoryErrorUpdate}`},l.createElement(y,{content:JSON.parse(r(JSON.stringify(null===(Re=null===(Se=null==X?void 0:X.cartLimitModal)||void 0===Se?void 0:Se[0])||void 0===Re?void 0:Re.heading),[null==tl?void 0:tl[Ue.selectedTab].toString()]))}),l.createElement(y,{content:JSON.parse(r(JSON.stringify(null===($e=null===(xe=null==X?void 0:X.cartLimitModal)||void 0===xe?void 0:xe[0])||void 0===$e?void 0:$e.description),[null==tl?void 0:tl[Ue.selectedTab].toString()]))}),l.createElement("div",{className:`${t.accessoryErrorButtons}`},l.createElement("div",{className:`${t.cancelButton}`,onClick:()=>{pl()}},null==X?void 0:X.cartLimitBtnText)))),De&&((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&(()=>{var e,i,o,n,d,v,a;const r=(()=>{var e,l;return(null==Ue?void 0:Ue.selectedTab)===O?null===(e=null==X?void 0:X.watchesSelectionPopup)||void 0===e?void 0:e[0]:null===(l=null==X?void 0:X.tabletsSelectionPopup)||void 0===l?void 0:l[0]})();return L(E,f,{component:h,message_title:b,message_description:null===(v=null===(d=null===(n=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===n?void 0:n[0])||void 0===d?void 0:d.text)||void 0===v?void 0:v.slice(0,100),message_type:g}),l.createElement(p,{modalState:De,handler:()=>(e=>{var l,i,o,n,t,d;(null==e?void 0:e.description)&&L(E,S,{component:h,message_title:b,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:g}),pl()})(r),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==r?void 0:r.heading)&&l.createElement("div",{className:t.modalHeading},l.createElement(y,{content:r.heading})),(null==r?void 0:r.description)&&l.createElement("div",{className:t.modalDescription},l.createElement(y,{content:r.description})),l.createElement("div",{className:t.modalButtons},(null==r?void 0:r.link)&&l.createElement("a",{className:t.factSheetLink,onClick:()=>(L(E,w,{component:k,click_text:$}),void pl())},r.linkText),(null===(a=null==r?void 0:r.button)||void 0===a?void 0:a.length)>0&&l.createElement(m,{content:r.button[0],onClick:()=>(()=>{if(L(E,w,{component:k,click_text:j}),!Oe)return void pl();const e=((null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[]).find(e=>{var l,i;return null===(l=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]});e&&(sl(E,R,e,0),rl(e,z)),sl(x,x,Oe,_e),rl(Oe,J),pl()})(),metadata:void 0,wafIdentifier:""}))))})())};export{X as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import l,{useState as i,useEffect as o}from"react";import{createPortal as n}from"react-dom";import t from"./AccessoryCard.module.scss.js";import d from"../DeviceCarouselComponent.js";import v from"../../ResponsiveRow/row.js";import{viewport as a,replacePlaceholder as r,getCompressedImage as c,countZero as s}from"../../../utils/utils.js";import{getCookie as u}from"cookies-next";import m from"../../FalconButtonV2/FalconButtonV2.js";import p from"./AccessoryModal.js";import y from"../../richtext.js";import{INFO as g,REPLACESELECTION as b,POPUP as h,OPENPOPUP as f,GAEVENT as E,OPEN as T,CLOSE as P,FORM as N,ACCORDIONCLICK as A,CONTINUE as I,LINK as k,TABCLICK as C,CLOSEPOPUP as S,REMOVEFROMCART as R,ADD_TO_CART as x,KEEPPREVIOUS as $,CTABUTTONCLICK as w,REPLACE as j}from"../../../Analytics/AnalyticsConstants.js";import{trackNewDatalayerEvent as L,trackViewItem as B}from"../../../utils/AnalyticsUtils.js";import{MOBILERATEPLAN as D,ACCESSORY as F,WATCHES as O,TABLETS as M,CONTRACT as _,FLEX_UPGRADE as K,HARDWARE as U,ADD as z,REMOVE as J}from"../../../utils/constants.js";import{useMultiAccessoryContext as V}from"../multiItemAccessoryStore/useMultiAccessoryContext.js";import{useMultiAccessoryActions as H}from"../multiItemAccessoryStore/useMultiAccessoryActions.js";import{useMultiAccessoryUpdateCartActions as W,buildSingleItemCartPayload as G}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";import Q from"../../GlobalDotLoader/GlobalDotLoader.js";const X=({content:X,tabIndex:Y,isSubscriptionFlow:Z,setAccessoriesSelected:ee})=>{var le,ie,oe,ne,te,de,ve,ae,re,ce,se,ue,me,pe,ye,ge,be,he,fe,Ee,Te,Pe,Ne,Ae,Ie,ke,Ce,Se,Re,xe,$e;const we=u("one-commerce-cartId"),[je,Le]=i(!1),Be=a(),[De,Fe]=i(!1),[Oe,Me]=i(null),[_e,Ke]=i(0),{store:Ue,dispatch:ze}=V(),Je=H(ze),Ve=W(),{updateAccessoryCartFailure:He}=Ue,{multiItemAccessoriessList:We,deviceSessionValues:Ge,selectedPaymentType:qe,recommendedAccessories:Qe,cartData:Xe,loading:Ye,showMiniCart:Ze}=Ue,[el,ll]=i(!1),il=(null===(te=null===(ne=null===(oe=null===(ie=null===(le=null==X?void 0:X.globalDotLoader)||void 0===le?void 0:le[0])||void 0===ie?void 0:ie.reference)||void 0===oe?void 0:oe.content)||void 0===ne?void 0:ne.body)||void 0===te?void 0:te[0])?null===(ce=null===(re=null===(ae=null===(ve=null===(de=null==X?void 0:X.globalDotLoader)||void 0===de?void 0:de[0])||void 0===ve?void 0:ve.reference)||void 0===ae?void 0:ae.content)||void 0===re?void 0:re.body)||void 0===ce?void 0:ce[0]:null===(se=null==X?void 0:X.globalDotLoader)||void 0===se?void 0:se[0],ol="undefined"!=typeof window&&document.getElementById("multi-accessory-card"),nl=!!(null===(me=null===(ue=[D])||void 0===ue?void 0:ue.includes)||void 0===me?void 0:me.call(ue,null===(ge=null===(ye=null===(pe=null==Qe?void 0:Qe[null==Ue?void 0:Ue.selectedTab])||void 0===pe?void 0:pe.hardware)||void 0===ye?void 0:ye[0])||void 0===ge?void 0:ge.recommendationProcessingType))||!(null==Ge?void 0:Ge.hardwareVariant),tl={[F]:Z?nl?+(null==X?void 0:X.ratePlanAccessoriesLimit):+(null==X?void 0:X.winAccessoriesLimit):+(null==X?void 0:X.accessoriesLimit),WATCHES:1,TABLETS:1},dl=e=>{L(E,A,{component:N,click_text:e?T:P}),Je.setShowMiniCart(e)},vl=JSON.parse(r(JSON.stringify(null==X?void 0:X.cartLimitWarningText),[null==tl?void 0:tl[Ue.selectedTab].toString()])),al=null===(be=null==q?void 0:q.getInstance())||void 0===be?void 0:be.getAssetPath(),rl=(e,l)=>{var i;const o=G(e,l,null==Ue?void 0:Ue.selectedTab,Ue);o.length>0&&Ve.multiItemAccessorycreateCartRequest({id:we,redirectUrl:"",skipRedirect:!0,previousTab:null==Ue?void 0:Ue.selectedTab,cartItems:o,successLoaderData:{duration:l===z&&null!==(i=null==il?void 0:il.successMsgDuration)&&void 0!==i?i:"0",successLoaderCallback:ll}})},cl=(e,l,i)=>{var o,n;if(e.preventDefault(),null===(o=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])sl(E,R,l,i),rl(l,J);else{if(yl(l,i))return;sl(x,x,l,i),rl(l,z)}},sl=(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==Ue?void 0:Ue.selectedTab})},ul=e=>{var l,i,o;e.preventDefault();if((null===(l=Object.keys(He))||void 0===l?void 0:l.length)>0)return Le(!1),void Ve.setupdateAccessoryCartFailure({});const n=Z?null===(i=null==X?void 0:X.winCheckoutUrl)||void 0===i?void 0:i.cached_url:null===(o=null==X?void 0:X.multiItemCheckoutUrl)||void 0===o?void 0:o.url;L(E,C,{component:k,click_text:I}),window.location.href=n},ml=()=>{var e;Le(e=>!e),(null===(e=Object.keys(He))||void 0===e?void 0:e.length)>0&&Ve.setupdateAccessoryCartFailure({})};o(()=>{var e;(null===(e=Object.keys(He))||void 0===e?void 0:e.length)>0&&Le(e=>!e)},[He]);const pl=()=>{Fe(!1),Me(null),Ke(0)},yl=(e,l)=>Object.keys((null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||{}).length>=(null==tl?void 0:tl[Ue.selectedTab])&&(Fe(!0),Me(e||null),Ke(l||0),!0),gl={},bl={},hl={};((null==X?void 0:X.recommendationType)||[]).map(e=>{var l;gl[e]=(e=>Object.keys((null==Xe?void 0:Xe[e])||{}).length)(e),bl[`${e}_icon`]=null===(l=null==X?void 0:X[`${e.toLowerCase()}Icon`])||void 0===l?void 0:l.filename,hl[`${e}_title`]=null==X?void 0:X[`selectionSummary${e[0]}${e.slice(1).toLowerCase()}Title`]});const{items:fl,totalOneTimePrice:El,totalMonthlyPrice:Tl}=(()=>{var e,l,i,o,n,t,d,v,a,r,c,s;let u=0,m=0;const p=((null==X?void 0:X.recommendationType)||[]).flatMap(e=>{const l=(null==We?void 0:We[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==Xe?void 0:Xe[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==Xe?void 0:Xe[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)||[],f=e.filter(e=>"monthly"===(null==e?void 0:e.recurringChargePeriod)),E=null===(t=f.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(E||(null===(u=null===(s=null===(c=null==f?void 0:f[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)===U?C:0))}return{name:y,monthlyInstallment:g,oneTimePrice:b}})(Xe[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[O,M]){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==Qe?void 0:Qe[u])||void 0===e?void 0:e.ratePlan)||void 0===l?void 0:l.derivedPrice)&&void 0!==i?i:null===(n=null===(o=null==Qe?void 0:Qe[u])||void 0===o?void 0:o.ratePlan)||void 0===n?void 0:n.listPrice)&&void 0!==t?t:null===(v=null===(d=null==Xe?void 0:Xe.ratePlanInfo)||void 0===d?void 0:d[u])||void 0===v?void 0:v.derivedPrice)&&void 0!==a?a:null===(c=null===(r=null==Xe?void 0:Xe.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}})(),Pl=Object.values(gl).reduce((e,l)=>e+l,0);return l.createElement(l.Fragment,null,(Ye||el)&&ol&&n(l.createElement(Q,{content:il,isSuccess:el}),ol),l.createElement(v,null,l.createElement("div",{className:t.mainPage},Object.keys((null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[]).length>=(null==tl?void 0:tl[Ue.selectedTab])&&(null==Ue?void 0:Ue.selectedTab)===F&&l.createElement("div",{className:t.cartLimitTxt},l.createElement(y,{content:vl})),((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&l.createElement("div",{className:t.extraSimHeading},(null==Ue?void 0:Ue.selectedTab)===O?null==X?void 0:X.watchesHeading:null==X?void 0:X.tabletsHeading),l.createElement(d,{key:null==Ue?void 0:Ue.selectedTab},null===(fe=null===(he=(null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[])||void 0===he?void 0:he.filter(e=>{var l,i;return qe===_?(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===fe?void 0:fe.map((e,i)=>{var o,n,d,v,a,r,u,p,y,g,b,h,f,E,T,P,N,A,I,k,C,S,R,x,$,w,j,L,B,D,U,z,J,V,H,W,G,q,Q,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:`${t.card} ${(null===(o=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===o?void 0:o[null===(n=null==e?void 0:e.recomApiResponse)||void 0===n?void 0:n.id])?t.selectedCard:""}`},l.createElement("div",{className:t.detailSection,id:`detailsectionv3${Y}${i}`},(null!==(u=null===(r=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===r?void 0:r.displayText)&&void 0!==u?u:null===(p=null==e?void 0:e.sbStoryItem)||void 0===p?void 0:p.displayText)&&l.createElement("div",{className:t.heading,id:`headingV3${Y}${i}`},null!==(f=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!==f?f:null===(E=null==e?void 0:e.sbStoryItem)||void 0===E?void 0:E.displayText,(null==Ue?void 0:Ue.selectedTab)===F&&(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:t.optionalText},null==X?void 0:X.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:t.accImage,id:`image${Y}${i}`},((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&(null===(C=null==X?void 0:X.esimIcon)||void 0===C?void 0:C.filename)&&l.createElement("div",{className:t.esimBadge},(null===(R=null===(S=null==e?void 0:e.sbStoryItem)||void 0===S?void 0:S.energyIcon)||void 0===R?void 0:R.filename)&&l.createElement("img",{loading:"lazy",src:c(al,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==X?void 0:X.esimIcon)||void 0===w?void 0:w.filename,alt:"eSIM",className:t.esimIcon})),l.createElement("img",{loading:"lazy",src:c(al,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:t.mainPriceContainer,id:`main-price-section${Y}${i}`},qe===_?l.createElement("div",{className:t.priceContainer,id:`price-detail-section${Y}${i}`},l.createElement("div",{className:t.price,id:`price${Y}${i}`},l.createElement("span",{style:{color:(null===(B=null===(L=null==e?void 0:e.recomApiResponse)||void 0===L?void 0:L.recurringPrice)||void 0===B?void 0:B.marketMonthlyInstallment)?"#5E94CF":"#3D3935"}},s(null===(U=null===(D=null==e?void 0:e.recomApiResponse)||void 0===D?void 0:D.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:t.strikedMonthlyPrice},s(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===(G=null===(W=null==e?void 0:e.recomApiResponse)||void 0===W?void 0:W.recurringPrice)||void 0===G?void 0:G.marketMonthlyInstallment)?null==t?void 0:t.monthlyStrikethroughText:t.monthlyText},null==X?void 0:X.monthlyText)),l.createElement("div",{className:t.totalPrice},null==X?void 0:X.totalText," ",s(null===(Q=null===(q=null==e?void 0:e.recomApiResponse)||void 0===q?void 0:q.oneTimePrice)||void 0===Q?void 0:Q.base)," ",l.createElement("span",{className:t.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"}},s(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:t.priceDescription},null==X?void 0:X.monthlyPaymentLabel,l.createElement("br",null),null==X?void 0:X.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(K))&&(null==X?void 0:X.freeFUText)&&l.createElement("div",{className:t.flexUpgradeText},null==X?void 0:X.freeFUText)):l.createElement("div",{className:t.priceContainer,id:`price-detail-section${Y}${i}`},l.createElement("div",{className:t.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${Y}${i}`},l.createElement("span",{className:t.oneTimePrice},s(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:t.strikedMonthlyPrice},s(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:t.priceDescription},null==X?void 0:X.oneTimePaymentLabel)),(null==X?void 0:X.addtocartButton.length)>0&&(null==X?void 0:X.removefromcartButton.length)>0&&l.createElement("div",{className:`${t.cartBtn}`,id:`add-crt-btn${Y}${i}`},(null===(me=null==Xe?void 0:Xe[null==Ue?void 0:Ue.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(m,{content:null===(ye=null==X?void 0:X.removefromcartButton)||void 0===ye?void 0:ye[0],onClick:l=>cl(l,e,i),wafIdentifier:al,disabled:Ye})):l.createElement(m,{content:null===(ge=null==X?void 0:X.addtocartButton)||void 0===ge?void 0:ge[0],onClick:l=>cl(l,e,i),wafIdentifier:al,disabled:Ye}))))})),l.createElement("div",{className:t.miaFooter},Pl>0&&(null==X?void 0:X.enableSelectionSummary)&&Object.keys(Qe||{}).length>1&&qe===_&&l.createElement("div",{className:t.miniSummary},l.createElement("div",{className:t.titleRow},l.createElement("span",{className:`fw-bold ${t.titleLabel}`},null==X?void 0:X.yourSelectionTitle),l.createElement("span",{className:t.titleIcons},((null==X?void 0:X.recommendationType)||[]).map(e=>{var i;return gl[e]>0&&l.createElement(l.Fragment,null,(e===O&&gl[F]>0||e===M&&(gl[F]>0||gl[O]>0))&&l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(al,null===(i=null==X?void 0:X.selectionSummaryPlusIcon)||void 0===i?void 0:i.filename),alt:"add_icon",width:16,height:16})),l.createElement("span",null,l.createElement("img",{loading:"lazy",src:c(al,null==bl?void 0:bl[`${e}_icon`]),alt:`${e}_icon`})," ",gl[e],"x ",null==hl?void 0:hl[`${e}_title`]))})),l.createElement("div",{className:`fw-bold ${t.cartPrice}`},qe===_?l.createElement(l.Fragment,null,s(Tl),null==X?void 0:X.monthlyText):s(El)),Ze?l.createElement("img",{className:t.cartToggle,onClick:()=>dl(!Ze),loading:"lazy",src:c(al,null===(Te=null==X?void 0:X.selectionSummaryCollapseIcon)||void 0===Te?void 0:Te.filename),alt:"expand_icon",width:24,height:24}):l.createElement("img",{className:t.cartToggle,onClick:()=>dl(!Ze),loading:"lazy",src:c(al,null===(Ee=null==X?void 0:X.selectionSummaryExpandIcon)||void 0===Ee?void 0:Ee.filename),alt:"expand_icon",width:24,height:24})),Ze&&l.createElement(l.Fragment,null,l.createElement("div",{className:t.miniCartDivider}),fl.map(i=>{var o,n,d,v,a,r,u,m,p,y,g,b,h,f,T,P,N,A,I,k,C,S,x,$,w,j,L,B,D,F,K,U,z,J,V,H,W,G,q;return l.createElement("div",{className:t.itemRow,key:null===(o=null==i?void 0:i.recomApiResponse)||void 0===o?void 0:o.id},l.createElement("div",{className:t.itemLine},l.createElement("span",{className:t.itemName},null===(n=null==i?void 0:i.recomApiResponse)||void 0===n?void 0:n.name),l.createElement("div",{className:t.cartPrice},qe===_?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:t.oneTime},"(",s(null===(r=null===(a=null==i?void 0:i.recomApiResponse)||void 0===a?void 0:a.oneTimePrice)||void 0===r?void 0:r.base),")"),s(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==X?void 0:X.monthlyText):s(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:t.cartDelete,loading:"lazy",src:c(al,null===(g=null==X?void 0:X.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==Xe?void 0:Xe[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==Xe?void 0:Xe[t])||void 0===o?void 0:o[null===(n=null==l?void 0:l.recomApiResponse)||void 0===n?void 0:n.id])&&(yield Ve.removeItemFromCart(we,l)),sl(E,R,l,0)}))(i),width:20,height:20})),[O,M].includes(null==i?void 0:i.tabKey)&&l.createElement("div",{className:t.itemLine},l.createElement("span",{className:`${t.itemName} ${t.rpName}`},(null===(h=null===(b=null==Qe?void 0:Qe[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==Xe?void 0:Xe.ratePlanInfo)||void 0===f?void 0:f[null==i?void 0:i.tabKey])||void 0===T?void 0:T.name)),l.createElement("div",{className:t.rpPrice},s(Number.isFinite(Number(null!==(L=null!==($=null!==(C=null!==(A=null===(N=null===(P=null==Qe?void 0:Qe[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==Qe?void 0:Qe[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==Xe?void 0:Xe.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==Xe?void 0:Xe.ratePlanInfo)||void 0===w?void 0:w[null==i?void 0:i.tabKey])||void 0===j?void 0:j.monthlyPrice)&&void 0!==L?L:0))?Number(null!==(q=null!==(H=null!==(z=null!==(F=null===(D=null===(B=null==Qe?void 0:Qe[null==i?void 0:i.tabKey])||void 0===B?void 0:B.ratePlan)||void 0===D?void 0:D.derivedPrice)&&void 0!==F?F:null===(U=null===(K=null==Qe?void 0:Qe[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==Xe?void 0:Xe.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===(G=null===(W=null==Xe?void 0:Xe.ratePlanInfo)||void 0===W?void 0:W[null==i?void 0:i.tabKey])||void 0===G?void 0:G.monthlyPrice)&&void 0!==q?q:0):0),null==X?void 0:X.monthlyText)),l.createElement("hr",{className:t.itemDivider}))}))),l.createElement("div",{className:`${t.checkoutBtn}`},(null===(Pe=null==X?void 0:X.proceedtocheckoutButton)||void 0===Pe?void 0:Pe.length)>0&&l.createElement(m,{content:X.proceedtocheckoutButton[0],eventAction:"",onClick:e=>ul(e),wafIdentifier:al,disabled:Ye}))))),je&&l.createElement(p,{modalState:je,handler:()=>{ml()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"460px":"",noCloseButton:!1,backDrop:!0}," ",l.createElement("div",{className:`${t.accessoryErrorUpdate}`},l.createElement(y,{content:null===(Ae=null===(Ne=null==X?void 0:X.errorModal)||void 0===Ne?void 0:Ne[0])||void 0===Ae?void 0:Ae.heading}),l.createElement(y,{content:null===(ke=null===(Ie=null==X?void 0:X.errorModal)||void 0===Ie?void 0:Ie[0])||void 0===ke?void 0:ke.description}),l.createElement("div",{className:`${t.accessoryErrorButtons}`},l.createElement("div",{className:`${t.cancelButton}`,onClick:()=>{ml()}},null==X?void 0:X.cancelButtonLinkText),l.createElement(m,{content:null===(Ce=null==X?void 0:X.retryButton)||void 0===Ce?void 0:Ce[0],onClick:e=>ul(e),metadata:void 0,wafIdentifier:al})))),De&&(null==Ue?void 0:Ue.selectedTab)===F&&l.createElement(p,{modalState:De,handler:()=>{pl()},showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement("div",{className:`${t.accessoryErrorUpdate}`},l.createElement(y,{content:JSON.parse(r(JSON.stringify(null===(Re=null===(Se=null==X?void 0:X.cartLimitModal)||void 0===Se?void 0:Se[0])||void 0===Re?void 0:Re.heading),[null==tl?void 0:tl[Ue.selectedTab].toString()]))}),l.createElement(y,{content:JSON.parse(r(JSON.stringify(null===($e=null===(xe=null==X?void 0:X.cartLimitModal)||void 0===xe?void 0:xe[0])||void 0===$e?void 0:$e.description),[null==tl?void 0:tl[Ue.selectedTab].toString()]))}),l.createElement("div",{className:`${t.accessoryErrorButtons}`},l.createElement("div",{className:`${t.cancelButton}`,onClick:()=>{pl()}},null==X?void 0:X.cartLimitBtnText)))),De&&((null==Ue?void 0:Ue.selectedTab)===O||(null==Ue?void 0:Ue.selectedTab)===M)&&(()=>{var e,i,o,n,d,v,a;const r=(()=>{var e,l;return(null==Ue?void 0:Ue.selectedTab)===O?null===(e=null==X?void 0:X.watchesSelectionPopup)||void 0===e?void 0:e[0]:null===(l=null==X?void 0:X.tabletsSelectionPopup)||void 0===l?void 0:l[0]})();return L(E,f,{component:h,message_title:b,message_description:null===(v=null===(d=null===(n=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===n?void 0:n[0])||void 0===d?void 0:d.text)||void 0===v?void 0:v.slice(0,100),message_type:g}),l.createElement(p,{modalState:De,handler:()=>(e=>{var l,i,o,n,t,d;(null==e?void 0:e.description)&&L(E,S,{component:h,message_title:b,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:g}),pl()})(r),showFooter:!1,height:"auto",fixedWidth:"large-desktop"===Be||"desktop"===Be||"tablet"===Be?"624px":"",noCloseButton:!1,backDrop:!0},l.createElement(l.Fragment,null,(null==r?void 0:r.heading)&&l.createElement("div",{className:t.modalHeading},l.createElement(y,{content:r.heading})),(null==r?void 0:r.description)&&l.createElement("div",{className:t.modalDescription},l.createElement(y,{content:r.description})),l.createElement("div",{className:t.modalButtons},(null==r?void 0:r.link)&&l.createElement("a",{className:t.factSheetLink,onClick:()=>(L(E,w,{component:k,click_text:$}),void pl())},r.linkText),(null===(a=null==r?void 0:r.button)||void 0===a?void 0:a.length)>0&&l.createElement(m,{content:r.button[0],onClick:()=>(()=>{if(L(E,w,{component:k,click_text:j}),!Oe)return void pl();const e=((null==We?void 0:We[null==Ue?void 0:Ue.selectedTab])||[]).find(e=>{var l,i;return null===(l=null==Xe?void 0:Xe[null==Ue?void 0:Ue.selectedTab])||void 0===l?void 0:l[null===(i=null==e?void 0:e.recomApiResponse)||void 0===i?void 0:i.id]});e&&(sl(E,R,e,0),rl(e,J)),sl(x,x,Oe,_e),rl(Oe,z),pl()})(),metadata:void 0,wafIdentifier:""}))))})())};export{X 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 { createPortal } from 'react-dom';\r\nimport Styles from './AccessoryCard.module.scss';\r\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\r\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\r\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\r\nimport Row from '../../ResponsiveRow/row';\r\n// import GenericImage from '../../GenericImage/GenericImage';\r\nimport { getCompressedImage } from '../../../utils/utils';\r\nimport { getCookie } from 'cookies-next';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\r\nimport AccessoryModal from './AccessoryModal';\r\nimport RichText from '../../richtext';\r\nimport { viewport } from '../../../utils/utils';\r\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\r\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\nimport GlobalDotLoader from '../../GlobalDotLoader/GlobalDotLoader';\r\n\r\ntype AccessoryCardProps = {\r\n content: MultiItemAccessoriesSchema;\r\n tabIndex: number;\r\n checkingviewPort: any;\r\n isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\r\n const [successLoader, setSuccessLoader] = useState<boolean>(false);\r\n const dotLoaderData = content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n ? content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n : content?.globalDotLoader?.[0];\r\n /*the portal position for the the dotloader*/\r\n const portalPosition: any =\r\n typeof window !== 'undefined' && document.getElementById('multi-accessory-card');\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // Helper to fire immediate per-item cart API call\r\n const fireImmediateCartUpdate = (item: any, action: string) => {\r\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\r\n if (cartItems.length > 0) {\r\n cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n skipRedirect: true,\r\n previousTab: store?.selectedTab,\r\n cartItems,\r\n successLoaderData: {\r\n duration: dotLoaderData?.successMsgDuration ?? '0',\r\n successLoaderCallback: setSuccessLoader\r\n }\r\n });\r\n }\r\n };\r\n\r\n // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n // Item is in cart — remove it\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n fireImmediateCartUpdate(item, REMOVE);\r\n } else {\r\n // Item not in cart — add it\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n fireImmediateCartUpdate(item, ADD);\r\n }\r\n };\r\n\r\n // Track analytics for CTA buttons\r\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\r\n trackViewItem(event, eventName, {\r\n displayName: item?.recomApiResponse?.name,\r\n productId: item?.recomApiResponse?.id,\r\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\r\n index: index,\r\n variant: item?.recomApiResponse?.variantCategory?.color,\r\n storage: item?.recomApiResponse?.variantCategory?.storage,\r\n hardwareCategory: store?.selectedTab,\r\n });\r\n }\r\n // create cart function call — with real-time updates, just redirect\r\n const multiItemAccesoryCreatecart = (e: any) => {\r\n e.preventDefault();\r\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\r\n if (isRetry) {\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n return;\r\n }\r\n\r\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n window.location.href = redirectUrl;\r\n }\r\n\r\n // close the error popup when close/cancel button is clicked\r\n const onCloseClick = () => {\r\n setShow((prevState) => !prevState);\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n };\r\n // open the error popup when updated cart fails\r\n useEffect(() => {\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n setShow((prevState) => !prevState);\r\n }\r\n }, [updateAccessoryCartFailure]);\r\n\r\n // close the cartLimit popup when close/cancel button is clicked\r\n const onCloseClickCartLimitPopup = () => {\r\n setShowCartLimitError(false);\r\n setPendingItem(null);\r\n setPendingItemIndex(0);\r\n };\r\n\r\n // Handle \"ClosePopup\" - just close the modal without any changes\r\n const handleClosePopup = (modalContent?: any) => {\r\n // Track close popup event\r\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO,\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n // Handle \"Keep previous\" - just close the modal without any changes\r\n const handleKeepPrevious = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: KEEPPREVIOUS\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n // Handle \"Replace\" - replace existing selection with new item via API\r\n const handleReplaceSelection = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: REPLACE\r\n });\r\n if (!pendingItem) {\r\n onCloseClickCartLimitPopup();\r\n return;\r\n }\r\n\r\n // Find the first item currently in cart for this tab and remove it, then add the new one\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n const existingCartItem = cartItems.find((item: any) => \r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\r\n );\r\n \r\n if (existingCartItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\r\n fireImmediateCartUpdate(existingCartItem, REMOVE);\r\n }\r\n\r\n // Add the new pending item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\r\n fireImmediateCartUpdate(pendingItem, ADD);\r\n\r\n // Close the modal and clear pending item\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n //show popup if cart limit reached\r\n const checkCartLimit = (item?: any, index?: number) => {\r\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\r\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\r\n setShowCartLimitError(true);\r\n setPendingItem(item || null);\r\n setPendingItemIndex(index || 0);\r\n return true;\r\n }\r\n return false;\r\n }\r\n //TODO: Remove checkingviewPort passing from multi-item\r\n\r\n // Handle delete from mini cart summary\r\n const handleDeleteFromMiniCart = async (item: any) => {\r\n const tabKey = item?.tabKey;\r\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n // Call API directly to remove it from cart\r\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n };\r\n\r\n // Helper function to calculate selected count for a tab\r\n const getTabSelectedCount = (tabKey: string) => {\r\n return Object.keys(cartData?.[tabKey] || {}).length;\r\n };\r\n const inTabSelected: Record<string, number> = {};\r\n const summaryIcons: Record<string, string> = {};\r\n const summaryLabels: Record<string, string> = {};\r\n\r\n (content?.recommendationType || []).map((tabKey: string) => {\r\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\r\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\r\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\r\n });\r\n\r\n /**\r\n * Extract name and prices from from cartData.\r\n * Used as fallback when the item is not present in multiItemAccessoriessList.\r\n */\r\n const getCartItemDisplayInfo = (cartItems: any[]) => {\r\n if (!cartItems?.length) return null;\r\n\r\n const toNumberOrZero = (value: any) => {\r\n const parsed = Number(value);\r\n return Number.isFinite(parsed) ? parsed : 0;\r\n };\r\n\r\n const getCycleMonths = (cycle: any) => {\r\n const start = Number(cycle?.cycleStart);\r\n const end = Number(cycle?.cycleEnd);\r\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\r\n return (end - start) + 1;\r\n }\r\n return 1;\r\n };\r\n\r\n let name = '';\r\n let monthlyInstallment = 0;\r\n let oneTimePrice = 0;\r\n\r\n for (const item of cartItems) {\r\n if (!name) {\r\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\r\n }\r\n\r\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\r\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\r\n const originalInstallment = monthlyPrices\r\n .flatMap((p: any) => p?.additionalDetails || [])\r\n .find((d: any) => d?.id === 'originalInstallment')?.value;\r\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\r\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\r\n\r\n // Flat update-cart payloads expose prices under `item.prices`.\r\n const flatPrices = item?.prices || [];\r\n\r\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\r\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\r\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\r\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\r\n\r\n // Fallback for watch/tablet when recommendation response is absent:\r\n // compute total financed amount = recurring installments across cycles + one-time fee.\r\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\r\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\r\n }, 0) + flatPrices\r\n .filter((p: any) => p?.priceType === 'ONETIME')\r\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\r\n\r\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\r\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\r\n }\r\n\r\n return {\r\n name,\r\n monthlyInstallment,\r\n oneTimePrice,\r\n };\r\n };\r\n\r\n // Get all selected items across all tabs as a flat array with cumulative prices\r\n const getAllSelectedItems = () => {\r\n let totalOneTimePrice = 0;\r\n let totalMonthlyPrice = 0;\r\n\r\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\r\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\r\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\r\n\r\n // Items from recommendation list that are in cart\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n .map((item: any) => {\r\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\r\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\r\n return { ...item, tabKey };\r\n });\r\n\r\n // Cart-only items not in recommendation list\r\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\r\n .filter((id) => !recomIds.has(id))\r\n .map((id) => {\r\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\r\n if (!info) return null;\r\n totalOneTimePrice += info.oneTimePrice;\r\n totalMonthlyPrice += info.monthlyInstallment;\r\n return {\r\n tabKey,\r\n isCartOnly: true,\r\n recomApiResponse: {\r\n id,\r\n name: info.name,\r\n oneTimePrice: { base: info.oneTimePrice },\r\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\r\n },\r\n };\r\n })\r\n .filter(Boolean);\r\n\r\n return [...recomItems, ...cartOnlyItems];\r\n });\r\n\r\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\r\n for (const tabKey of [WATCHES, TABLETS]) {\r\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\r\n if (hasItemsInTab) {\r\n const rpRawPrice =\r\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\r\n 0;\r\n const rpParsedPrice = Number(rpRawPrice);\r\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\r\n totalMonthlyPrice += rpPrice;\r\n }\r\n }\r\n\r\n return { items, totalOneTimePrice, totalMonthlyPrice };\r\n };\r\n\r\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\r\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\r\n return (\r\n <>\r\n {(loading || successLoader) &&\r\n portalPosition &&\r\n createPortal(\r\n <GlobalDotLoader content={dotLoaderData} isSuccess={successLoader} />,\r\n portalPosition\r\n )}\r\n <Row>\r\n <div className={Styles.mainPage}>\r\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\r\n <DeviceCarouselComponent key={store?.selectedTab}>\r\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\r\n return (\r\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\r\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\r\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\r\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\r\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\r\n </div>}\r\n \r\n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\r\n <div className={Styles.esimBadge}>\r\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\r\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\r\n </div>\r\n )}\r\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\r\n </div>\r\n </div>\r\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\r\n {selectedPaymentType === CONTRACT ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\r\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\r\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\r\n </span>\r\n )}\r\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\r\n </div>\r\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\r\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\r\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\r\n <><FalconButtonV2\r\n content={content?.removefromcartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n </> :\r\n <FalconButtonV2\r\n content={content?.addtocartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </DeviceCarouselComponent>\r\n\r\n <div className={Styles.miaFooter}>\r\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\r\n * contract/monthly flow (not one-time pay), and new subscriptions\r\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\r\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\r\n && Object.keys(recommendedAccessories || {}).length > 1\r\n && selectedPaymentType === CONTRACT\r\n && <div className={Styles.miniSummary}>\r\n <div className={Styles.titleRow}>\r\n {/**1*/}\r\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\r\n {/**2*/}\r\n <span className={Styles.titleIcons}>\r\n {(content?.recommendationType || []).map((tabKey: string) => {\r\n return (\r\n inTabSelected[tabKey] > 0 && (\r\n <>\r\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\r\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\r\n </>\r\n )\r\n )\r\n })}\r\n </span>\r\n {/**3*/}\r\n <div className={`fw-bold ${Styles.cartPrice}`}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\r\n : countZero(totalOneTimePrice)\r\n }\r\n </div>\r\n {/**4*/}\r\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\r\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\r\n </div>\r\n {showMiniCart && (\r\n <>\r\n {/* DividerComponent */}\r\n <div className={Styles.miniCartDivider} />\r\n {allSelectedItems\r\n .map((item: any) => (\r\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\r\n <div className={Styles.itemLine}>\r\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\r\n <div className={Styles.cartPrice}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\r\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\r\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\r\n }\r\n </div>\r\n <img\r\n className={Styles.cartDelete}\r\n loading='lazy'\r\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\r\n alt='delete_icon'\r\n onClick={() => handleDeleteFromMiniCart(item)}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\r\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\r\n <div className={Styles.rpPrice}>\r\n {countZero(Number.isFinite(Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n ))\r\n ? Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n )\r\n : 0)}{content?.monthlyText}\r\n </div>\r\n </div>}\r\n {/* DividerComponent */}\r\n <hr className={Styles.itemDivider} />\r\n </div>\r\n ))\r\n }\r\n </>\r\n )\r\n }\r\n\r\n </div>}\r\n <div className={`${Styles.checkoutBtn}`}>\r\n {content?.proceedtocheckoutButton?.length > 0 && (\r\n <FalconButtonV2\r\n content={content.proceedtocheckoutButton[0]}\r\n eventAction={''}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </Row>\r\n {show && <AccessoryModal\r\n modalState={show}\r\n handler={() => { onCloseClick() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n > <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={content?.errorModal?.[0]?.heading} />\r\n <RichText content={content?.errorModal?.[0]?.description} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\r\n <FalconButtonV2\r\n content={content?.retryButton?.[0]}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n metadata={undefined}\r\n wafIdentifier={basicConfigUrl}\r\n />\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n }\r\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => { onCloseClickCartLimitPopup() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}>\r\n <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\r\n </div>\r\n </div>\r\n </AccessoryModal>}\r\n \r\n {/* Selection Limit Modal for Watches and Tablets */}\r\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\r\n const selectionContent = getSelectionPopupContent();\r\n // Track popup open event, limit description to 100 chars max\r\n // const desc = typeof selectionContent?.description === 'string'\r\n // ? selectionContent.description\r\n // : JSON.stringify(selectionContent?.description ?? '');\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO\r\n });\r\n return (\r\n <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => handleClosePopup(selectionContent) }\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <>\r\n {selectionContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={selectionContent.heading} />\r\n </div>\r\n )}\r\n \r\n {selectionContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={selectionContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {selectionContent?.link && (\r\n <a \r\n className={Styles.factSheetLink}\r\n onClick={() => handleKeepPrevious()}\r\n >\r\n {selectionContent.linkText}\r\n </a>\r\n )}\r\n \r\n {selectionContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={selectionContent.button[0]}\r\n onClick={() => handleReplaceSelection()}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","successLoader","setSuccessLoader","dotLoaderData","_e","_d","_c","_b","_a","globalDotLoader","reference","body","_k","_j","_h","_g","_f","_l","portalPosition","window","document","getElementById","ratePlanFlow","_o","_m","MOBILERATEPLAN","includes","call","_r","_q","_p","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_s","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","successLoaderData","duration","successMsgDuration","successLoaderCallback","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","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","hardwareOneTimeTotal","reduce","sum","price","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","createPortal","GlobalDotLoader","isSuccess","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","_u","_t","CONTRACT","card","selectedCard","detailSection","sbStoryItem","displayText","heading","optionalText","accessoriesColorLabel","_v","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","priceContainer","style","_4","_3","marketMonthlyInstallment","countZero","_5","_6","_7","_8","strikedMonthlyPrice","_9","_11","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_14","_13","strikedtotalMonthlyPrice","visibility","_15","_16","market","_18","_17","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_19","includedOptions","_20","FLEX_UPGRADE","freeFUText","flexUpgradeText","_22","_21","_24","_23","_25","_28","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_29","_30","FalconButtonV2","_31","onClick","wafIdentifier","disabled","_32","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_12","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
1
+ {"version":3,"file":"AccessoryCard.js","sources":["../../../../../src/components/Accessories/Accessory-card/AccessoryCard.tsx"],"sourcesContent":["/* eslint-disable max-lines-per-function */\r\nimport React, {JSX, useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport Styles from './AccessoryCard.module.scss';\r\n// import FalconButton from '@/components/shared/FalconButton/falconButton';\r\nimport { MultiItemAccessoriesSchema } from '../MultiItemAccessories/MultiItemAccessoriesSchema';\r\nimport DeviceCarouselComponent from '../DeviceCarouselComponent';\r\nimport Row from '../../ResponsiveRow/row';\r\n// import GenericImage from '../../GenericImage/GenericImage';\r\nimport { getCompressedImage } from '../../../utils/utils';\r\nimport { getCookie } from 'cookies-next';\r\nimport FalconButtonV2 from '../../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder } from '../../../utils/utils';\r\nimport AccessoryModal from './AccessoryModal';\r\nimport RichText from '../../richtext';\r\nimport { viewport } from '../../../utils/utils';\r\nimport { ACCORDIONCLICK, ADD_TO_CART, CLOSE, CLOSEPOPUP, CONTINUE, CTABUTTONCLICK, FORM, GAEVENT, INFO, KEEPPREVIOUS, LINK, OPEN, OPENPOPUP, POPUP, REMOVEFROMCART, REPLACE, REPLACESELECTION, TABCLICK } from '../../../Analytics/AnalyticsConstants';\r\nimport { trackViewItem } from '../../../utils/AnalyticsUtils';\r\nimport { MONTHLY, ONETIME, CONTRACT, MOBILERATEPLAN, TV, INTERNETFLOW, ACCESSORY, WATCHES, TABLETS, HARDWARE, ADD, REMOVE, FLEX_UPGRADE } from '../../../utils/constants';\r\nimport { useMultiAccessoryContext } from '../multiItemAccessoryStore/useMultiAccessoryContext';\r\nimport { useMultiAccessoryActions } from '../multiItemAccessoryStore/useMultiAccessoryActions';\r\nimport { buildSingleItemCartPayload, useMultiAccessoryUpdateCartActions } from '../multiItemAccessoryStore/useMultiAccessoryUpdateCartActions';\r\nimport { AssetPathPropConfig } from '../../../services';\r\nimport { trackNewDatalayerEvent } from '../../../utils/AnalyticsUtils';\r\nimport GlobalDotLoader from '../../GlobalDotLoader/GlobalDotLoader';\r\n\r\ntype AccessoryCardProps = {\r\n content: MultiItemAccessoriesSchema;\r\n tabIndex: number;\r\n checkingviewPort: any;\r\n isSubscriptionFlow: boolean;\r\n setAccessoriesSelected?: (accessories: any[]) => void;\r\n};\r\n\r\n// eslint-disable-next-line max-lines-per-function\r\nconst AccessoryCard = ({\r\n content,\r\n tabIndex,\r\n isSubscriptionFlow,\r\n setAccessoriesSelected\r\n}: AccessoryCardProps): JSX.Element => {\r\n const cartId = getCookie('one-commerce-cartId');\r\n const [show, setShow] = useState(false);\r\n const viewPort = viewport();\r\n const [showCartLimitError, setShowCartLimitError] = useState(false);\r\n const [pendingItem, setPendingItem] = useState<any>(null);\r\n const [pendingItemIndex, setPendingItemIndex] = useState<number>(0);\r\n const { store, dispatch } = useMultiAccessoryContext();\r\n const actions = useMultiAccessoryActions(dispatch);\r\n const cartActions = useMultiAccessoryUpdateCartActions();\r\n const { updateAccessoryCartFailure } = store; // for MultiAccessoryUpdateCart state\r\n //for multiAccessory recommendation api state\r\n const { multiItemAccessoriessList, deviceSessionValues, selectedPaymentType, recommendedAccessories, cartData, loading, showMiniCart } = store;\r\n const [successLoader, setSuccessLoader] = useState<boolean>(false);\r\n const dotLoaderData = content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n ? content?.globalDotLoader?.[0]?.reference?.content?.body?.[0]\r\n : content?.globalDotLoader?.[0];\r\n /*the portal position for the the dotloader*/\r\n const portalPosition: any =\r\n typeof window !== 'undefined' && document.getElementById('multi-accessory-card');\r\n //check for WIN/rateplan flow\r\n const ratePlanFlow = [MOBILERATEPLAN ]?.includes?.(recommendedAccessories?.[store?.selectedTab]?.hardware?.[0]?.recommendationProcessingType) ? true : (deviceSessionValues?.hardwareVariant ? false : true);\r\n const accessoriesLimit: any = {\r\n [ACCESSORY]: isSubscriptionFlow\r\n ? (ratePlanFlow ? +content?.ratePlanAccessoriesLimit : +content?.winAccessoriesLimit)\r\n : +content?.accessoriesLimit,\r\n WATCHES: 1,\r\n TABLETS: 1,\r\n };\r\n const setShowMiniCart = (value: boolean) => {\r\n trackNewDatalayerEvent(GAEVENT, ACCORDIONCLICK, {\r\n component: FORM,\r\n click_text: value ? OPEN : CLOSE\r\n });\r\n actions.setShowMiniCart(value);\r\n }\r\n\r\n const limitWarningText = JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitWarningText), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n );\r\n const basicConfigUrl = AssetPathPropConfig?.getInstance()?.getAssetPath();\r\n\r\n // Helper function to get selection popup content based on tab type\r\n const getSelectionPopupContent = () => {\r\n return store?.selectedTab === WATCHES \r\n ? content?.watchesSelectionPopup?.[0] \r\n : content?.tabletsSelectionPopup?.[0];\r\n };\r\n\r\n // Helper to fire immediate per-item cart API call\r\n const fireImmediateCartUpdate = (item: any, action: string) => {\r\n const cartItems = buildSingleItemCartPayload(item, action, store?.selectedTab, store);\r\n if (cartItems.length > 0) {\r\n cartActions.multiItemAccessorycreateCartRequest({\r\n id: cartId,\r\n redirectUrl: '',\r\n skipRedirect: true,\r\n previousTab: store?.selectedTab,\r\n cartItems,\r\n successLoaderData: {\r\n duration: action === ADD ? dotLoaderData?.successMsgDuration ?? '0' : '0',\r\n successLoaderCallback: setSuccessLoader\r\n }\r\n });\r\n }\r\n };\r\n\r\n // for handling add and remove accessories from cart\r\n const handleClickAddRemoveCartBtn = (e: any, item: any, index: number) => {\r\n e.preventDefault();\r\n if (cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]) {\r\n // Item is in cart — remove it\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, index);\r\n fireImmediateCartUpdate(item, REMOVE);\r\n } else {\r\n // Item not in cart — add it\r\n if (checkCartLimit(item, index)) {\r\n return;\r\n }\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, item, index);\r\n fireImmediateCartUpdate(item, ADD);\r\n }\r\n };\r\n\r\n // Track analytics for CTA buttons\r\n const trackCTAButton = (event: string, eventName: string, item: any, index: number): void => {\r\n trackViewItem(event, eventName, {\r\n displayName: item?.recomApiResponse?.name,\r\n productId: item?.recomApiResponse?.id,\r\n priceValue: item?.recomApiResponse?.oneTimePrice?.base,\r\n index: index,\r\n variant: item?.recomApiResponse?.variantCategory?.color,\r\n storage: item?.recomApiResponse?.variantCategory?.storage,\r\n hardwareCategory: store?.selectedTab,\r\n });\r\n }\r\n // create cart function call — with real-time updates, just redirect\r\n const multiItemAccesoryCreatecart = (e: any) => {\r\n e.preventDefault();\r\n const isRetry = Object.keys(updateAccessoryCartFailure)?.length > 0;\r\n if (isRetry) {\r\n setShow(false);\r\n cartActions.setupdateAccessoryCartFailure({});\r\n return;\r\n }\r\n\r\n const redirectUrl = isSubscriptionFlow ? content?.winCheckoutUrl?.cached_url : content?.multiItemCheckoutUrl?.url;\r\n trackNewDatalayerEvent(GAEVENT, TABCLICK, {\r\n component: LINK,\r\n click_text: CONTINUE\r\n });\r\n window.location.href = redirectUrl;\r\n }\r\n\r\n // close the error popup when close/cancel button is clicked\r\n const onCloseClick = () => {\r\n setShow((prevState) => !prevState);\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n cartActions.setupdateAccessoryCartFailure({});\r\n }\r\n };\r\n // open the error popup when updated cart fails\r\n useEffect(() => {\r\n if (Object.keys(updateAccessoryCartFailure)?.length > 0) {\r\n setShow((prevState) => !prevState);\r\n }\r\n }, [updateAccessoryCartFailure]);\r\n\r\n // close the cartLimit popup when close/cancel button is clicked\r\n const onCloseClickCartLimitPopup = () => {\r\n setShowCartLimitError(false);\r\n setPendingItem(null);\r\n setPendingItemIndex(0);\r\n };\r\n\r\n // Handle \"ClosePopup\" - just close the modal without any changes\r\n const handleClosePopup = (modalContent?: any) => {\r\n // Track close popup event\r\n modalContent?.description && trackNewDatalayerEvent(GAEVENT, CLOSEPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: modalContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO,\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n // Handle \"Keep previous\" - just close the modal without any changes\r\n const handleKeepPrevious = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: KEEPPREVIOUS\r\n });\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n // Handle \"Replace\" - replace existing selection with new item via API\r\n const handleReplaceSelection = () => {\r\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\r\n component: LINK,\r\n click_text: REPLACE\r\n });\r\n if (!pendingItem) {\r\n onCloseClickCartLimitPopup();\r\n return;\r\n }\r\n\r\n // Find the first item currently in cart for this tab and remove it, then add the new one\r\n const cartItems = multiItemAccessoriessList?.[store?.selectedTab] || [];\r\n const existingCartItem = cartItems.find((item: any) => \r\n cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id]\r\n );\r\n \r\n if (existingCartItem) {\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, existingCartItem, 0);\r\n fireImmediateCartUpdate(existingCartItem, REMOVE);\r\n }\r\n\r\n // Add the new pending item\r\n trackCTAButton(ADD_TO_CART, ADD_TO_CART, pendingItem, pendingItemIndex);\r\n fireImmediateCartUpdate(pendingItem, ADD);\r\n\r\n // Close the modal and clear pending item\r\n onCloseClickCartLimitPopup();\r\n };\r\n\r\n //show popup if cart limit reached\r\n const checkCartLimit = (item?: any, index?: number) => {\r\n const selectedAccCount = Object.keys(cartData?.[store?.selectedTab] || {}).length;\r\n if (selectedAccCount >= accessoriesLimit?.[store.selectedTab]) {\r\n setShowCartLimitError(true);\r\n setPendingItem(item || null);\r\n setPendingItemIndex(index || 0);\r\n return true;\r\n }\r\n return false;\r\n }\r\n //TODO: Remove checkingviewPort passing from multi-item\r\n\r\n // Handle delete from mini cart summary\r\n const handleDeleteFromMiniCart = async (item: any) => {\r\n const tabKey = item?.tabKey;\r\nconsole.log('first', cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n // Call API directly to remove it from cart\r\n if (cartData?.[tabKey]?.[item?.recomApiResponse?.id]) {\r\n await cartActions.removeItemFromCart(cartId, item);\r\n }\r\n\r\n trackCTAButton(GAEVENT, REMOVEFROMCART, item, 0);\r\n };\r\n\r\n // Helper function to calculate selected count for a tab\r\n const getTabSelectedCount = (tabKey: string) => {\r\n return Object.keys(cartData?.[tabKey] || {}).length;\r\n };\r\n const inTabSelected: Record<string, number> = {};\r\n const summaryIcons: Record<string, string> = {};\r\n const summaryLabels: Record<string, string> = {};\r\n\r\n (content?.recommendationType || []).map((tabKey: string) => {\r\n inTabSelected[tabKey] = getTabSelectedCount(tabKey);\r\n summaryIcons[`${tabKey}_icon`] = (content as any)?.[`${tabKey.toLowerCase()}Icon`]?.filename;\r\n summaryLabels[`${tabKey}_title`] = (content as any)?.[`selectionSummary${tabKey[0]}${tabKey.slice(1).toLowerCase()}Title`];\r\n });\r\n\r\n /**\r\n * Extract name and prices from from cartData.\r\n * Used as fallback when the item is not present in multiItemAccessoriessList.\r\n */\r\n const getCartItemDisplayInfo = (cartItems: any[]) => {\r\n if (!cartItems?.length) return null;\r\n\r\n const toNumberOrZero = (value: any) => {\r\n const parsed = Number(value);\r\n return Number.isFinite(parsed) ? parsed : 0;\r\n };\r\n\r\n const getCycleMonths = (cycle: any) => {\r\n const start = Number(cycle?.cycleStart);\r\n const end = Number(cycle?.cycleEnd);\r\n if (Number.isFinite(start) && Number.isFinite(end) && end >= start) {\r\n return (end - start) + 1;\r\n }\r\n return 1;\r\n };\r\n\r\n let name = '';\r\n let monthlyInstallment = 0;\r\n let oneTimePrice = 0;\r\n\r\n for (const item of cartItems) {\r\n if (!name) {\r\n name = item?.name || item?.productOffering?.name || item?.productOffering?.id || item?.id || '';\r\n }\r\n\r\n const prices = item?.itemPrice?.[0]?.cartPrice || [];\r\n const monthlyPrices = prices.filter((p: any) => p?.recurringChargePeriod === 'monthly');\r\n const originalInstallment = monthlyPrices\r\n .flatMap((p: any) => p?.additionalDetails || [])\r\n .find((d: any) => d?.id === 'originalInstallment')?.value;\r\n const paynowPrice = prices.find((p: any) => p?.recurringChargePeriod === 'paynow');\r\n const streetPrice = paynowPrice?.additionalDetails?.find((d: any) => d?.id === 'streetPrice')?.value;\r\n\r\n // Flat update-cart payloads expose prices under `item.prices`.\r\n const flatPrices = item?.prices || [];\r\n\r\n // Prefer cycleStart:1 recurring (monthly installment) over last-cycle recurring.\r\n const flatRecurringPrices = flatPrices.filter((p: any) => p?.priceType === 'RECURRING');\r\n const flatMonthly = (flatRecurringPrices.find((p: any) => p?.cycle?.cycleStart === 1) || flatRecurringPrices[0])?.value;\r\n const flatStreet = flatPrices.find((p: any) => p?.priceType === 'STREET_PRICE')?.value;\r\n\r\n // Fallback for watch/tablet when recommendation response is absent:\r\n // compute total financed amount = recurring installments across cycles + one-time fee.\r\n const hardwareOneTimeTotal = flatRecurringPrices.reduce((sum: number, price: any) => {\r\n return sum + (toNumberOrZero(price?.value) * getCycleMonths(price?.cycle));\r\n }, 0) + flatPrices\r\n .filter((p: any) => p?.priceType === 'ONETIME')\r\n .reduce((sum: number, price: any) => sum + toNumberOrZero(price?.value), 0);\r\n\r\n monthlyInstallment += toNumberOrZero(originalInstallment || monthlyPrices?.[0]?.price?.taxIncludedAmount?.value || flatMonthly);\r\n oneTimePrice += toNumberOrZero(streetPrice || flatStreet || (item?.itemType === HARDWARE ? hardwareOneTimeTotal : 0));\r\n }\r\n\r\n return {\r\n name,\r\n monthlyInstallment,\r\n oneTimePrice,\r\n };\r\n };\r\n\r\n // Get all selected items across all tabs as a flat array with cumulative prices\r\n const getAllSelectedItems = () => {\r\n let totalOneTimePrice = 0;\r\n let totalMonthlyPrice = 0;\r\n\r\n const items = (content?.recommendationType || []).flatMap((tabKey: string) => {\r\n const recomList = multiItemAccessoriessList?.[tabKey] || {};\r\n const recomIds = new Set(Object.values(recomList).map((item: any) => item?.recomApiResponse?.id));\r\n\r\n // Items from recommendation list that are in cart\r\n const recomItems = Object.values(recomList)\r\n .filter((item: any) => cartData?.[tabKey]?.[item?.recomApiResponse?.id])\r\n .map((item: any) => {\r\n totalOneTimePrice += +(item?.recomApiResponse?.oneTimePrice?.base || 0);\r\n totalMonthlyPrice += +(item?.recomApiResponse?.recurringPrice?.monthlyInstallment || 0);\r\n return { ...item, tabKey };\r\n });\r\n\r\n // Cart-only items not in recommendation list\r\n const cartOnlyItems = Object.keys(cartData?.[tabKey] || {})\r\n .filter((id) => !recomIds.has(id))\r\n .map((id) => {\r\n const info = getCartItemDisplayInfo(cartData[tabKey][id]);\r\n if (!info) return null;\r\n totalOneTimePrice += info.oneTimePrice;\r\n totalMonthlyPrice += info.monthlyInstallment;\r\n return {\r\n tabKey,\r\n isCartOnly: true,\r\n recomApiResponse: {\r\n id,\r\n name: info.name,\r\n oneTimePrice: { base: info.oneTimePrice },\r\n recurringPrice: { monthlyInstallment: info.monthlyInstallment },\r\n },\r\n };\r\n })\r\n .filter(Boolean);\r\n\r\n return [...recomItems, ...cartOnlyItems];\r\n });\r\n\r\n // Add rateplan monthly cost once per WATCHES/TABLETS tab that has selected items\r\n for (const tabKey of [WATCHES, TABLETS]) {\r\n const hasItemsInTab = items.some((item: any) => item?.tabKey === tabKey);\r\n if (hasItemsInTab) {\r\n const rpRawPrice =\r\n recommendedAccessories?.[tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[tabKey]?.monthlyPrice ??\r\n 0;\r\n const rpParsedPrice = Number(rpRawPrice);\r\n const rpPrice = Number.isFinite(rpParsedPrice) ? rpParsedPrice : 0;\r\n totalMonthlyPrice += rpPrice;\r\n }\r\n }\r\n\r\n return { items, totalOneTimePrice, totalMonthlyPrice };\r\n };\r\n\r\n const { items: allSelectedItems, totalOneTimePrice, totalMonthlyPrice } = getAllSelectedItems();\r\n const allTabSelectedCount = Object.values(inTabSelected).reduce((total, count) => total + count, 0);\r\n return (\r\n <>\r\n {(loading || successLoader) &&\r\n portalPosition &&\r\n createPortal(\r\n <GlobalDotLoader content={dotLoaderData} isSuccess={successLoader} />,\r\n portalPosition\r\n )}\r\n <Row>\r\n <div className={Styles.mainPage}>\r\n {((Object.keys(multiItemAccessoriessList?.[store?.selectedTab] || []).length >= accessoriesLimit?.[store.selectedTab]) && store?.selectedTab === ACCESSORY ) && <div className={Styles.cartLimitTxt}><RichText content={limitWarningText} /></div>}\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && <div className={Styles.extraSimHeading}>{store?.selectedTab === WATCHES ? content?.watchesHeading : content?.tabletsHeading}</div>}\r\n <DeviceCarouselComponent key={store?.selectedTab}>\r\n {(multiItemAccessoriessList?.[store?.selectedTab] || [])?.filter((item: any) => selectedPaymentType === CONTRACT ? item?.recomApiResponse?.recurringPrice?.monthlyInstallment > 0 : item)?.map((item: any, index: number) => {\r\n return (\r\n <div key={index} className={`${Styles.card} ${cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ? Styles.selectedCard : ''}`}>\r\n <div className={Styles.detailSection} id={`detailsectionv3${tabIndex}${index}`}>\r\n {(item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText) && <div className={Styles.heading} id={`headingV3${tabIndex}${index}`}>\r\n {item?.sbStoryItem?.content?.body?.[0]?.displayText ?? item?.sbStoryItem?.displayText}\r\n {store?.selectedTab === ACCESSORY && item?.recomApiResponse?.variantCategory?.color && item?.recomApiResponse?.variantCategory?.color !== 'None' && <div className={Styles.optionalText}>{content?.accessoriesColorLabel} {item?.recomApiResponse?.variantCategory?.color}</div>}\r\n </div>}\r\n \r\n <div className={Styles.accImage} id={`image${tabIndex}${index}`}>\r\n {(store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && content?.esimIcon?.filename && (\r\n <div className={Styles.esimBadge}>\r\n {item?.sbStoryItem?.energyIcon?.filename && <img loading='lazy' src={getCompressedImage(basicConfigUrl, item?.sbStoryItem?.energyIcon?.filename)} alt='energy_Icon' width={37} height={20} />}\r\n <img src={content?.esimIcon?.filename} alt=\"eSIM\" className={Styles.esimIcon} />\r\n </div>\r\n )}\r\n <img loading='lazy' src={getCompressedImage(basicConfigUrl,item?.imageData?.image)} alt='acessories_device' width={210} height={210} />\r\n </div>\r\n </div>\r\n <div className={Styles.mainPriceContainer} id={`main-price-section${tabIndex}${index}`}>\r\n {selectedPaymentType === CONTRACT ? <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} id={`price${tabIndex}${index}`}>\r\n <span style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }}>{countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}</span>\r\n {item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment)}\r\n </span>\r\n )}\r\n <span className={item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? Styles?.monthlyStrikethroughText : Styles.monthlyText}>{content?.monthlyText}</span>\r\n </div>\r\n <div className={Styles.totalPrice}>{content?.totalText} {countZero(item?.recomApiResponse?.oneTimePrice?.base)} <span className={Styles.strikedtotalMonthlyPrice} style={{ visibility: item?.recomApiResponse?.oneTimePrice?.market ? 'visible' : 'hidden' }}>{countZero(item?.recomApiResponse?.oneTimePrice?.market)}</span></div>\r\n <div className={Styles.priceDescription}>{content?.monthlyPaymentLabel}<br />{content?.monthlyDownPaymentLabel}</div>\r\n {(item?.recomApiResponse?.includedOptions?.includes(FLEX_UPGRADE) && content?.freeFUText) && <div className={Styles.flexUpgradeText}>{content?.freeFUText}</div>}\r\n </div> :\r\n <div className={Styles.priceContainer} id={`price-detail-section${tabIndex}${index}`}>\r\n <div className={Styles.price} style={{ color: item?.recomApiResponse?.recurringPrice?.marketMonthlyInstallment ? '#5E94CF' : '#3D3935' }} id={`price${tabIndex}${index}`}>\r\n <span className={Styles.oneTimePrice}>{countZero(item?.recomApiResponse?.oneTimePrice?.base)}</span>\r\n {item?.recomApiResponse?.oneTimePrice?.market && (\r\n <span className={Styles.strikedMonthlyPrice}>\r\n {countZero(item?.recomApiResponse?.oneTimePrice?.market)}\r\n </span>\r\n )}\r\n </div>\r\n <div className={Styles.priceDescription}>{content?.oneTimePaymentLabel}</div>\r\n </div>\r\n }\r\n {content?.addtocartButton.length > 0 && content?.removefromcartButton.length > 0 && (\r\n <div className={`${Styles.cartBtn}`} id={`add-crt-btn${tabIndex}${index}`}>\r\n {cartData?.[store?.selectedTab]?.[item?.recomApiResponse?.id] ?\r\n <><FalconButtonV2\r\n content={content?.removefromcartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n </> :\r\n <FalconButtonV2\r\n content={content?.addtocartButton?.[0]}\r\n onClick={(e: any) => handleClickAddRemoveCartBtn(e, item, index)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </DeviceCarouselComponent>\r\n\r\n <div className={Styles.miaFooter}>\r\n {/** Selection summary is shown only for multi-tab MIA (not old single-tab UI),\r\n * contract/monthly flow (not one-time pay), and new subscriptions\r\n * (existing subscription flow is blocked unless enableExistingSubscription is true (already handled in MultiItemAccessoriesPage)) */}\r\n {allTabSelectedCount > 0 && content?.enableSelectionSummary\r\n && Object.keys(recommendedAccessories || {}).length > 1\r\n && selectedPaymentType === CONTRACT\r\n && <div className={Styles.miniSummary}>\r\n <div className={Styles.titleRow}>\r\n {/**1*/}\r\n <span className={`fw-bold ${Styles.titleLabel}`}>{content?.yourSelectionTitle}</span>\r\n {/**2*/}\r\n <span className={Styles.titleIcons}>\r\n {(content?.recommendationType || []).map((tabKey: string) => {\r\n return (\r\n inTabSelected[tabKey] > 0 && (\r\n <>\r\n {((tabKey=== WATCHES && inTabSelected[ACCESSORY] > 0) ||(tabKey === TABLETS && (inTabSelected[ACCESSORY] > 0 || inTabSelected[WATCHES] > 0))) && <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryPlusIcon?.filename)} alt='add_icon' width={16} height={16}/></span>}\r\n <span><img loading='lazy' src={getCompressedImage(basicConfigUrl,summaryIcons?.[`${tabKey}_icon`])} alt={`${tabKey}_icon`} /> {inTabSelected[tabKey]}x {summaryLabels?.[`${tabKey}_title`]}</span>\r\n </>\r\n )\r\n )\r\n })}\r\n </span>\r\n {/**3*/}\r\n <div className={`fw-bold ${Styles.cartPrice}`}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{countZero(totalMonthlyPrice)}{content?.monthlyText}</>\r\n : countZero(totalOneTimePrice)\r\n }\r\n </div>\r\n {/**4*/}\r\n {!showMiniCart ? <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryExpandIcon?.filename)} alt='expand_icon' width={24} height={24}/>\r\n : <img className={Styles.cartToggle} onClick={() => setShowMiniCart(!showMiniCart)} loading='lazy' src={getCompressedImage(basicConfigUrl,content?.selectionSummaryCollapseIcon?.filename)} alt='expand_icon' width={24} height={24}/>}\r\n </div>\r\n {showMiniCart && (\r\n <>\r\n {/* DividerComponent */}\r\n <div className={Styles.miniCartDivider} />\r\n {allSelectedItems\r\n .map((item: any) => (\r\n <div className={Styles.itemRow} key={item?.recomApiResponse?.id}>\r\n <div className={Styles.itemLine}>\r\n <span className={Styles.itemName}>{item?.recomApiResponse?.name}</span>\r\n <div className={Styles.cartPrice}>\r\n {selectedPaymentType === CONTRACT\r\n ? <>{item?.recomApiResponse?.oneTimePrice?.base > 0 && <span className={Styles.oneTime}>({countZero(item?.recomApiResponse?.oneTimePrice?.base)})</span>}\r\n {countZero(item?.recomApiResponse?.recurringPrice?.monthlyInstallment)}{content?.monthlyText}</>\r\n : countZero(item?.recomApiResponse?.oneTimePrice?.base)\r\n }\r\n </div>\r\n <img\r\n className={Styles.cartDelete}\r\n loading='lazy'\r\n src={getCompressedImage(basicConfigUrl, content?.selectionSummaryDeleteIcon?.filename)}\r\n alt='delete_icon'\r\n onClick={() => handleDeleteFromMiniCart(item)}\r\n width={20}\r\n height={20}\r\n />\r\n </div>\r\n {[WATCHES, TABLETS].includes(item?.tabKey) &&<div className={Styles.itemLine}>\r\n <span className={`${Styles.itemName} ${Styles.rpName}`}>{recommendedAccessories?.[item?.tabKey]?.ratePlan?.id || cartData?.ratePlanInfo?.[item?.tabKey]?.name}</span>\r\n <div className={Styles.rpPrice}>\r\n {countZero(Number.isFinite(Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n ))\r\n ? Number(\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.derivedPrice ??\r\n recommendedAccessories?.[item?.tabKey]?.ratePlan?.listPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.derivedPrice ??\r\n cartData?.ratePlanInfo?.[item?.tabKey]?.monthlyPrice ??\r\n 0\r\n )\r\n : 0)}{content?.monthlyText}\r\n </div>\r\n </div>}\r\n {/* DividerComponent */}\r\n <hr className={Styles.itemDivider} />\r\n </div>\r\n ))\r\n }\r\n </>\r\n )\r\n }\r\n\r\n </div>}\r\n <div className={`${Styles.checkoutBtn}`}>\r\n {content?.proceedtocheckoutButton?.length > 0 && (\r\n <FalconButtonV2\r\n content={content.proceedtocheckoutButton[0]}\r\n eventAction={''}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n wafIdentifier={basicConfigUrl}\r\n disabled={loading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </Row>\r\n {show && <AccessoryModal\r\n modalState={show}\r\n handler={() => { onCloseClick() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '460px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n > <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={content?.errorModal?.[0]?.heading} />\r\n <RichText content={content?.errorModal?.[0]?.description} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClick() }}>{content?.cancelButtonLinkText}</div>\r\n <FalconButtonV2\r\n content={content?.retryButton?.[0]}\r\n onClick={(e: any) => multiItemAccesoryCreatecart(e)}\r\n metadata={undefined}\r\n wafIdentifier={basicConfigUrl}\r\n />\r\n </div>\r\n </div>\r\n </AccessoryModal>\r\n }\r\n {showCartLimitError && store?.selectedTab === ACCESSORY && <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => { onCloseClickCartLimitPopup() }}\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}>\r\n <div className={`${Styles.accessoryErrorUpdate}`}>\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.heading), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <RichText content={JSON.parse(\r\n replacePlaceholder(JSON.stringify(content?.cartLimitModal?.[0]?.description), [\r\n accessoriesLimit?.[store.selectedTab].toString()\r\n ])\r\n )} />\r\n <div className={`${Styles.accessoryErrorButtons}`}>\r\n <div className={`${Styles.cancelButton}`} onClick={() => { onCloseClickCartLimitPopup() }}>{content?.cartLimitBtnText}</div>\r\n </div>\r\n </div>\r\n </AccessoryModal>}\r\n \r\n {/* Selection Limit Modal for Watches and Tablets */}\r\n {showCartLimitError && (store?.selectedTab === WATCHES || store?.selectedTab === TABLETS) && (() => {\r\n const selectionContent = getSelectionPopupContent();\r\n // Track popup open event, limit description to 100 chars max\r\n // const desc = typeof selectionContent?.description === 'string'\r\n // ? selectionContent.description\r\n // : JSON.stringify(selectionContent?.description ?? '');\r\n trackNewDatalayerEvent(GAEVENT, OPENPOPUP, {\r\n component: POPUP,\r\n message_title: REPLACESELECTION,\r\n message_description: selectionContent?.description?.content?.[0]?.content?.[0]?.text?.slice(0, 100),\r\n message_type: INFO\r\n });\r\n return (\r\n <AccessoryModal\r\n modalState={showCartLimitError}\r\n handler={() => handleClosePopup(selectionContent) }\r\n showFooter={false}\r\n height={'auto'}\r\n fixedWidth={(viewPort === 'large-desktop' || viewPort === 'desktop' || viewPort === 'tablet') ? '624px' : ''}\r\n noCloseButton={false}\r\n backDrop={true}\r\n >\r\n <>\r\n {selectionContent?.heading && (\r\n <div className={Styles.modalHeading}>\r\n <RichText content={selectionContent.heading} />\r\n </div>\r\n )}\r\n \r\n {selectionContent?.description && (\r\n <div className={Styles.modalDescription}>\r\n <RichText content={selectionContent.description} />\r\n </div>\r\n )}\r\n \r\n <div className={Styles.modalButtons}>\r\n {selectionContent?.link && (\r\n <a \r\n className={Styles.factSheetLink}\r\n onClick={() => handleKeepPrevious()}\r\n >\r\n {selectionContent.linkText}\r\n </a>\r\n )}\r\n \r\n {selectionContent?.button?.length > 0 && (\r\n <FalconButtonV2\r\n content={selectionContent.button[0]}\r\n onClick={() => handleReplaceSelection()}\r\n metadata={undefined}\r\n wafIdentifier={''}\r\n />\r\n )}\r\n </div>\r\n </>\r\n </AccessoryModal>\r\n );\r\n })()}\r\n </>\r\n );\r\n}\r\n\r\nexport default AccessoryCard;"],"names":["AccessoryCard","content","tabIndex","isSubscriptionFlow","setAccessoriesSelected","cartId","getCookie","show","setShow","useState","viewPort","viewport","showCartLimitError","setShowCartLimitError","pendingItem","setPendingItem","pendingItemIndex","setPendingItemIndex","store","dispatch","useMultiAccessoryContext","actions","useMultiAccessoryActions","cartActions","useMultiAccessoryUpdateCartActions","updateAccessoryCartFailure","multiItemAccessoriessList","deviceSessionValues","selectedPaymentType","recommendedAccessories","cartData","loading","showMiniCart","successLoader","setSuccessLoader","dotLoaderData","_e","_d","_c","_b","_a","globalDotLoader","reference","body","_k","_j","_h","_g","_f","_l","portalPosition","window","document","getElementById","ratePlanFlow","_o","_m","MOBILERATEPLAN","includes","call","_r","_q","_p","selectedTab","hardware","recommendationProcessingType","hardwareVariant","accessoriesLimit","ACCESSORY","ratePlanAccessoriesLimit","winAccessoriesLimit","WATCHES","TABLETS","setShowMiniCart","value","trackNewDatalayerEvent","GAEVENT","ACCORDIONCLICK","component","FORM","click_text","OPEN","CLOSE","limitWarningText","JSON","parse","replacePlaceholder","stringify","cartLimitWarningText","toString","basicConfigUrl","_s","AssetPathPropConfig","getInstance","getAssetPath","fireImmediateCartUpdate","item","action","cartItems","buildSingleItemCartPayload","length","multiItemAccessorycreateCartRequest","id","redirectUrl","skipRedirect","previousTab","successLoaderData","duration","ADD","successMsgDuration","successLoaderCallback","handleClickAddRemoveCartBtn","e","index","preventDefault","recomApiResponse","trackCTAButton","REMOVEFROMCART","REMOVE","checkCartLimit","ADD_TO_CART","event","eventName","trackViewItem","displayName","name","productId","priceValue","oneTimePrice","base","variant","variantCategory","color","storage","hardwareCategory","multiItemAccesoryCreatecart","Object","keys","setupdateAccessoryCartFailure","winCheckoutUrl","cached_url","multiItemCheckoutUrl","url","TABCLICK","LINK","CONTINUE","location","href","onCloseClick","prevState","useEffect","onCloseClickCartLimitPopup","inTabSelected","summaryIcons","summaryLabels","recommendationType","map","tabKey","getTabSelectedCount","toLowerCase","filename","slice","items","allSelectedItems","totalOneTimePrice","totalMonthlyPrice","flatMap","recomList","recomIds","Set","values","recomItems","filter","recurringPrice","monthlyInstallment","assign","cartOnlyItems","has","info","toNumberOrZero","parsed","Number","isFinite","getCycleMonths","cycle","start","cycleStart","end","cycleEnd","productOffering","prices","itemPrice","cartPrice","monthlyPrices","p","recurringChargePeriod","originalInstallment","additionalDetails","find","d","paynowPrice","streetPrice","flatPrices","flatRecurringPrices","priceType","flatMonthly","flatStreet","hardwareOneTimeTotal","reduce","sum","price","taxIncludedAmount","itemType","HARDWARE","getCartItemDisplayInfo","isCartOnly","Boolean","some","rpRawPrice","ratePlan","derivedPrice","listPrice","ratePlanInfo","monthlyPrice","rpParsedPrice","rpPrice","getAllSelectedItems","allTabSelectedCount","total","count","React","createElement","Fragment","createPortal","GlobalDotLoader","isSuccess","Row","className","Styles","mainPage","cartLimitTxt","RichText","extraSimHeading","watchesHeading","tabletsHeading","DeviceCarouselComponent","key","_u","_t","CONTRACT","card","selectedCard","detailSection","sbStoryItem","displayText","heading","optionalText","accessoriesColorLabel","_v","accImage","_w","esimIcon","esimBadge","_y","_x","energyIcon","src","getCompressedImage","_z","_0","alt","width","height","_1","_2","imageData","image","mainPriceContainer","priceContainer","style","_4","_3","marketMonthlyInstallment","countZero","_5","_6","_7","_8","strikedMonthlyPrice","_9","_11","monthlyStrikethroughText","monthlyText","totalPrice","totalText","_14","_13","strikedtotalMonthlyPrice","visibility","_15","_16","market","_18","_17","priceDescription","monthlyPaymentLabel","monthlyDownPaymentLabel","_19","includedOptions","_20","FLEX_UPGRADE","freeFUText","flexUpgradeText","_22","_21","_24","_23","_25","_28","oneTimePaymentLabel","addtocartButton","removefromcartButton","cartBtn","_29","_30","FalconButtonV2","_31","onClick","wafIdentifier","disabled","_32","miaFooter","enableSelectionSummary","miniSummary","titleRow","titleLabel","yourSelectionTitle","titleIcons","selectionSummaryPlusIcon","cartToggle","selectionSummaryCollapseIcon","selectionSummaryExpandIcon","miniCartDivider","itemRow","itemLine","itemName","oneTime","cartDelete","selectionSummaryDeleteIcon","__awaiter","console","log","removeItemFromCart","handleDeleteFromMiniCart","rpName","_12","itemDivider","checkoutBtn","proceedtocheckoutButton","eventAction","AccessoryModal","modalState","handler","showFooter","fixedWidth","noCloseButton","backDrop","accessoryErrorUpdate","errorModal","description","accessoryErrorButtons","cancelButton","cancelButtonLinkText","retryButton","metadata","undefined","cartLimitModal","cartLimitBtnText","selectionContent","watchesSelectionPopup","tabletsSelectionPopup","getSelectionPopupContent","OPENPOPUP","POPUP","message_title","REPLACESELECTION","message_description","text","message_type","INFO","modalContent","CLOSEPOPUP","handleClosePopup","modalHeading","modalDescription","modalButtons","link","factSheetLink","CTABUTTONCLICK","KEEPPREVIOUS","linkText","button","REPLACE","existingCartItem","handleReplaceSelection"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e,{useState as r,Children as i,useEffect as n}from"react";import{Swiper as s,SwiperSlide as o}from"swiper/react";import{A11y as l,Pagination as t}from"swiper/modules";import"swiper/css";import"swiper/css/pagination";import a from"./StaticLineTable.module.scss.js";const d=({children:d,activeIndex:c,mobileArrows:p=!1})=>{const[w,m]=r(null),[b,u]=r({locked:!0,beginning:!0,end:!1}),g=i.toArray(d),v=void 0!==c,A=e=>{e.destroyed||u({locked:e.isLocked,beginning:e.isBeginning,end:e.isEnd})};return n(()=>{w&&!w.destroyed&&void 0!==c&&(w.slideTo(c,0),A(w))},[w,c]),e.createElement("div",{className:`${a.swiperCardsWrapper} ${p?a.mobileArrows:""}`},e.createElement(s,{className:v?a.swiperTabs:a.swiperCards,modules:[l,t],onSwiper:e=>{m(e),A(e)},onSlideChange:A,onResize:A,onUpdate:A,initialSlide:null!=c?c:0,slidesPerView:v||g.length<2?1:"auto",allowTouchMove:!v,nested:!v,watchOverflow:!0,observer:!0,observeParents:!0,pagination:!v&&{clickable:!0,enabled:g.length>1},breakpoints:v?void 0:{768:{slidesPerView:2},1024:{slidesPerView:3,pagination:{enabled:g.length>3}},1440:{slidesPerView:4,pagination:{enabled:g.length>4}}}},g.map((r,i)=>{var n;return e.createElement(o,{key:e.isValidElement(r)&&null!==(n=r.key)&&void 0!==n?n:i},r)})),!v&&g.length>1&&!b.locked&&e.createElement(e.Fragment,null,e.createElement("button",{type:"button",className:`${a.swiperArrow} ${a.swiperArrowPrev}`,"aria-label":"Previous products",disabled:b.beginning,onClick:()=>null==w?void 0:w.slidePrev()},e.createElement("span",{className:`${a.swiperArrowIcon} ${a.swiperArrowIconPrev}`})),e.createElement("button",{type:"button",className:`${a.swiperArrow} ${a.swiperArrowNext}`,"aria-label":"Next products",disabled:b.end,onClick:()=>null==w?void 0:w.slideNext()},e.createElement("span",{className:`${a.swiperArrowIcon} ${a.swiperArrowIconNext}`}))))};export{d as default};
1
+ import e,{useState as r,Children as i,useEffect as n}from"react";import{Swiper as s,SwiperSlide as t}from"swiper/react";import{A11y as a,Pagination as l}from"swiper/modules";import"swiper/css";import"swiper/css/pagination";import o from"./StaticLineTable.module.scss.js";const d=({children:d,activeIndex:c,mobileArrows:p=!1,animateTabs:m=!1})=>{const[w,b]=r(null),[u,g]=r({locked:!0,beginning:!0,end:!1}),v=i.toArray(d),A=void 0!==c,$=e=>{e.destroyed||g({locked:e.isLocked,beginning:e.isBeginning,end:e.isEnd})};return n(()=>{w&&!w.destroyed&&void 0!==c&&(w.slideTo(c,0),$(w))},[w,c]),e.createElement("div",{className:`${o.swiperCardsWrapper} ${p?o.mobileArrows:""}`},e.createElement(s,{className:A?`${o.swiperTabs} ${m?o.swiperTabsAnimated:""}`:o.swiperCards,modules:[a,l],onSwiper:e=>{b(e),$(e)},onSlideChange:$,onResize:$,onUpdate:$,initialSlide:null!=c?c:0,slidesPerView:A||v.length<2?1:"auto",centerInsufficientSlides:!A,allowTouchMove:!A,nested:!A,watchOverflow:!0,observer:!0,observeParents:!0,pagination:!A&&{clickable:!0,enabled:v.length>1},breakpoints:A?void 0:{768:{slidesPerView:2},1024:{slidesPerView:3,pagination:{enabled:v.length>3}},1440:{slidesPerView:4,pagination:{enabled:v.length>4}}}},v.map((r,i)=>{var n;return e.createElement(t,{key:e.isValidElement(r)&&null!==(n=r.key)&&void 0!==n?n:i},r)})),!A&&v.length>1&&!u.locked&&e.createElement(e.Fragment,null,e.createElement("button",{type:"button",className:`${o.swiperArrow} ${o.swiperArrowPrev}`,"aria-label":"Previous products",disabled:u.beginning,onClick:()=>null==w?void 0:w.slidePrev()},e.createElement("span",{className:`${o.swiperArrowIcon} ${o.swiperArrowIconPrev}`})),e.createElement("button",{type:"button",className:`${o.swiperArrow} ${o.swiperArrowNext}`,"aria-label":"Next products",disabled:u.end,onClick:()=>null==w?void 0:w.slideNext()},e.createElement("span",{className:`${o.swiperArrowIcon} ${o.swiperArrowIconNext}`}))))};export{d as default};
2
2
  //# sourceMappingURL=LineTableCarousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineTableCarousel.js","sources":["../../../../src/components/StaticLineTable/LineTableCarousel.tsx"],"sourcesContent":["import React, { Children, ReactNode, useEffect, useState } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { A11y, Pagination } from 'swiper/modules';\r\nimport type { Swiper as SwiperInstance } from 'swiper';\r\nimport 'swiper/css';\r\nimport 'swiper/css/pagination';\r\nimport Styles from './StaticLineTable.module.scss';\r\n\r\ninterface LineTableCarouselProps {\r\n children: ReactNode;\r\n activeIndex?: number;\r\n mobileArrows?: boolean;\r\n}\r\n\r\nconst LineTableCarousel = ({ children, activeIndex, mobileArrows = false }: LineTableCarouselProps) => {\r\n const [swiper, setSwiper] = useState<SwiperInstance | null>(null);\r\n const [navigationState, setNavigationState] = useState({ locked: true, beginning: true, end: false });\r\n const slides = Children.toArray(children);\r\n const isTabPanel = activeIndex !== undefined;\r\n const syncNavigationState = (instance: SwiperInstance) => {\r\n if (!instance.destroyed) {\r\n setNavigationState({\r\n locked: instance.isLocked,\r\n beginning: instance.isBeginning,\r\n end: instance.isEnd\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (swiper && !swiper.destroyed && activeIndex !== undefined) {\r\n swiper.slideTo(activeIndex, 0);\r\n syncNavigationState(swiper);\r\n }\r\n }, [swiper, activeIndex]);\r\n\r\n return (\r\n <div className={`${Styles.swiperCardsWrapper} ${mobileArrows ? Styles.mobileArrows : ''}`}>\r\n <Swiper\r\n className={isTabPanel ? Styles.swiperTabs : Styles.swiperCards}\r\n modules={[A11y, Pagination]}\r\n onSwiper={(instance) => {\r\n setSwiper(instance);\r\n syncNavigationState(instance);\r\n }}\r\n onSlideChange={syncNavigationState}\r\n onResize={syncNavigationState}\r\n onUpdate={syncNavigationState}\r\n initialSlide={activeIndex ?? 0}\r\n slidesPerView={isTabPanel || slides.length < 2 ? 1 : 'auto'}\r\n allowTouchMove={!isTabPanel}\r\n nested={!isTabPanel}\r\n watchOverflow\r\n observer\r\n observeParents\r\n pagination={isTabPanel ? false : { clickable: true, enabled: slides.length > 1 }}\r\n breakpoints={isTabPanel ? undefined : {\r\n 768: { slidesPerView: 2 },\r\n 1024: { slidesPerView: 3, pagination: { enabled: slides.length > 3 } },\r\n 1440: { slidesPerView: 4, pagination: { enabled: slides.length > 4 } }\r\n }}\r\n >\r\n {slides.map((slide, slideIndex) => (\r\n <SwiperSlide key={React.isValidElement(slide) ? slide.key ?? slideIndex : slideIndex}>\r\n {slide}\r\n </SwiperSlide>\r\n ))}\r\n </Swiper>\r\n {!isTabPanel && slides.length > 1 && !navigationState.locked && (\r\n <>\r\n <button\r\n type='button'\r\n className={`${Styles.swiperArrow} ${Styles.swiperArrowPrev}`}\r\n aria-label='Previous products'\r\n disabled={navigationState.beginning}\r\n onClick={() => swiper?.slidePrev()}\r\n >\r\n <span className={`${Styles.swiperArrowIcon} ${Styles.swiperArrowIconPrev}`} />\r\n </button>\r\n <button\r\n type='button'\r\n className={`${Styles.swiperArrow} ${Styles.swiperArrowNext}`}\r\n aria-label='Next products'\r\n disabled={navigationState.end}\r\n onClick={() => swiper?.slideNext()}\r\n >\r\n <span className={`${Styles.swiperArrowIcon} ${Styles.swiperArrowIconNext}`} />\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default LineTableCarousel;"],"names":["LineTableCarousel","children","activeIndex","mobileArrows","swiper","setSwiper","useState","navigationState","setNavigationState","locked","beginning","end","slides","Children","toArray","isTabPanel","undefined","syncNavigationState","instance","destroyed","isLocked","isBeginning","isEnd","useEffect","slideTo","React","className","Styles","swiperCardsWrapper","createElement","Swiper","swiperTabs","swiperCards","modules","A11y","Pagination","onSwiper","onSlideChange","onResize","onUpdate","initialSlide","slidesPerView","length","allowTouchMove","nested","watchOverflow","observer","observeParents","pagination","clickable","enabled","breakpoints","map","slide","slideIndex","SwiperSlide","key","isValidElement","_a","Fragment","type","swiperArrow","swiperArrowPrev","disabled","onClick","slidePrev","swiperArrowIcon","swiperArrowIconPrev","swiperArrowNext","slideNext","swiperArrowIconNext"],"mappings":"+QAcA,MAAMA,EAAoB,EAAGC,WAAUC,cAAaC,gBAAe,MACjE,MAAOC,EAAQC,GAAaC,EAAgC,OACrDC,EAAiBC,GAAsBF,EAAS,CAAEG,QAAQ,EAAMC,WAAW,EAAMC,KAAK,IACvFC,EAASC,EAASC,QAAQb,GAC1Bc,OAA6BC,IAAhBd,EACbe,EAAuBC,IACtBA,EAASC,WACZX,EAAmB,CACjBC,OAAQS,EAASE,SACjBV,UAAWQ,EAASG,YACpBV,IAAKO,EAASI,SAYpB,OAPAC,EAAU,KACJnB,IAAWA,EAAOe,gBAA6BH,IAAhBd,IACjCE,EAAOoB,QAAQtB,EAAa,GAC5Be,EAAoBb,KAErB,CAACA,EAAQF,IAGVuB,uBAAKC,UAAW,GAAGC,EAAOC,sBAAsBzB,EAAewB,EAAOxB,aAAe,MACnFsB,EAAAI,cAACC,EAAM,CACLJ,UAAWX,EAAaY,EAAOI,WAAaJ,EAAOK,YACnDC,QAAS,CAACC,EAAMC,GAChBC,SAAWlB,IACTb,EAAUa,GACVD,EAAoBC,IAEtBmB,cAAepB,EACfqB,SAAUrB,EACVsB,SAAUtB,EACVuB,aAActC,QAAAA,EAAe,EAC7BuC,cAAe1B,GAAcH,EAAO8B,OAAS,EAAI,EAAI,OACrDC,gBAAiB5B,EACjB6B,QAAS7B,EACT8B,eAAa,EACbC,UAAQ,EACRC,kBACAC,YAAYjC,GAAqB,CAAEkC,WAAW,EAAMC,QAAStC,EAAO8B,OAAS,GAC7ES,YAAapC,OAAaC,EAAY,CACpC,IAAK,CAAEyB,cAAe,GACtB,KAAM,CAAEA,cAAe,EAAGO,WAAY,CAAEE,QAAStC,EAAO8B,OAAS,IACjE,KAAM,CAAED,cAAe,EAAGO,WAAY,CAAEE,QAAStC,EAAO8B,OAAS,MAGlE9B,EAAOwC,IAAI,CAACC,EAAOC,WAAe,OACjC7B,EAAAI,cAAC0B,EAAW,CAACC,IAAK/B,EAAMgC,eAAeJ,IAAkB,QAATK,EAAAL,EAAMG,WAAG,IAAAE,EAAAA,EAAiBJ,GACvED,OAILtC,GAAcH,EAAO8B,OAAS,IAAMnC,EAAgBE,QACpDgB,EAAAI,cAAAJ,EAAAkC,SAAA,KACElC,EAAAI,cAAA,SAAA,CACE+B,KAAK,SACLlC,UAAW,GAAGC,EAAOkC,eAAelC,EAAOmC,+BAChC,oBACXC,SAAUxD,EAAgBG,UAC1BsD,QAAS,IAAM5D,aAAM,EAANA,EAAQ6D,aAEvBxC,EAAAI,cAAA,OAAA,CAAMH,UAAW,GAAGC,EAAOuC,mBAAmBvC,EAAOwC,yBAEvD1C,EAAAI,cAAA,SAAA,CACE+B,KAAK,SACLlC,UAAW,GAAGC,EAAOkC,eAAelC,EAAOyC,+BAChC,gBACXL,SAAUxD,EAAgBI,IAC1BqD,QAAS,IAAM5D,aAAM,EAANA,EAAQiE,aAEvB5C,EAAAI,cAAA,OAAA,CAAMH,UAAW,GAAGC,EAAOuC,mBAAmBvC,EAAO2C"}
1
+ {"version":3,"file":"LineTableCarousel.js","sources":["../../../../src/components/StaticLineTable/LineTableCarousel.tsx"],"sourcesContent":["import React, { Children, ReactNode, useEffect, useState } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { A11y, Pagination } from 'swiper/modules';\r\nimport type { Swiper as SwiperInstance } from 'swiper';\r\nimport 'swiper/css';\r\nimport 'swiper/css/pagination';\r\nimport Styles from './StaticLineTable.module.scss';\r\n\r\ninterface LineTableCarouselProps {\r\n children: ReactNode;\r\n activeIndex?: number;\r\n mobileArrows?: boolean;\r\n animateTabs?: boolean;\r\n}\r\n\r\nconst LineTableCarousel = ({\r\n children,\r\n activeIndex,\r\n mobileArrows = false,\r\n animateTabs = false\r\n}: LineTableCarouselProps) => {\r\n const [swiper, setSwiper] = useState<SwiperInstance | null>(null);\r\n const [navigationState, setNavigationState] = useState({ locked: true, beginning: true, end: false });\r\n const slides = Children.toArray(children);\r\n const isTabPanel = activeIndex !== undefined;\r\n const syncNavigationState = (instance: SwiperInstance) => {\r\n if (!instance.destroyed) {\r\n setNavigationState({\r\n locked: instance.isLocked,\r\n beginning: instance.isBeginning,\r\n end: instance.isEnd\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (swiper && !swiper.destroyed && activeIndex !== undefined) {\r\n swiper.slideTo(activeIndex, 0);\r\n syncNavigationState(swiper);\r\n }\r\n }, [swiper, activeIndex]);\r\n\r\n return (\r\n <div className={`${Styles.swiperCardsWrapper} ${mobileArrows ? Styles.mobileArrows : ''}`}>\r\n <Swiper\r\n className={\r\n isTabPanel\r\n ? `${Styles.swiperTabs} ${animateTabs ? Styles.swiperTabsAnimated : ''}`\r\n : Styles.swiperCards\r\n }\r\n modules={[A11y, Pagination]}\r\n onSwiper={(instance) => {\r\n setSwiper(instance);\r\n syncNavigationState(instance);\r\n }}\r\n onSlideChange={syncNavigationState}\r\n onResize={syncNavigationState}\r\n onUpdate={syncNavigationState}\r\n initialSlide={activeIndex ?? 0}\r\n slidesPerView={isTabPanel || slides.length < 2 ? 1 : 'auto'}\r\n centerInsufficientSlides={!isTabPanel}\r\n allowTouchMove={!isTabPanel}\r\n nested={!isTabPanel}\r\n watchOverflow\r\n observer\r\n observeParents\r\n pagination={isTabPanel ? false : { clickable: true, enabled: slides.length > 1 }}\r\n breakpoints={isTabPanel ? undefined : {\r\n 768: { slidesPerView: 2 },\r\n 1024: { slidesPerView: 3, pagination: { enabled: slides.length > 3 } },\r\n 1440: { slidesPerView: 4, pagination: { enabled: slides.length > 4 } }\r\n }}\r\n >\r\n {slides.map((slide, slideIndex) => (\r\n <SwiperSlide key={React.isValidElement(slide) ? slide.key ?? slideIndex : slideIndex}>\r\n {slide}\r\n </SwiperSlide>\r\n ))}\r\n </Swiper>\r\n {!isTabPanel && slides.length > 1 && !navigationState.locked && (\r\n <>\r\n <button\r\n type='button'\r\n className={`${Styles.swiperArrow} ${Styles.swiperArrowPrev}`}\r\n aria-label='Previous products'\r\n disabled={navigationState.beginning}\r\n onClick={() => swiper?.slidePrev()}\r\n >\r\n <span className={`${Styles.swiperArrowIcon} ${Styles.swiperArrowIconPrev}`} />\r\n </button>\r\n <button\r\n type='button'\r\n className={`${Styles.swiperArrow} ${Styles.swiperArrowNext}`}\r\n aria-label='Next products'\r\n disabled={navigationState.end}\r\n onClick={() => swiper?.slideNext()}\r\n >\r\n <span className={`${Styles.swiperArrowIcon} ${Styles.swiperArrowIconNext}`} />\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default LineTableCarousel;"],"names":["LineTableCarousel","children","activeIndex","mobileArrows","animateTabs","swiper","setSwiper","useState","navigationState","setNavigationState","locked","beginning","end","slides","Children","toArray","isTabPanel","undefined","syncNavigationState","instance","destroyed","isLocked","isBeginning","isEnd","useEffect","slideTo","React","className","Styles","swiperCardsWrapper","createElement","Swiper","swiperTabs","swiperTabsAnimated","swiperCards","modules","A11y","Pagination","onSwiper","onSlideChange","onResize","onUpdate","initialSlide","slidesPerView","length","centerInsufficientSlides","allowTouchMove","nested","watchOverflow","observer","observeParents","pagination","clickable","enabled","breakpoints","map","slide","slideIndex","SwiperSlide","key","isValidElement","_a","Fragment","type","swiperArrow","swiperArrowPrev","disabled","onClick","slidePrev","swiperArrowIcon","swiperArrowIconPrev","swiperArrowNext","slideNext","swiperArrowIconNext"],"mappings":"+QAeA,MAAMA,EAAoB,EACxBC,WACAC,cACAC,gBAAe,EACfC,eAAc,MAEd,MAAOC,EAAQC,GAAaC,EAAgC,OACrDC,EAAiBC,GAAsBF,EAAS,CAAEG,QAAQ,EAAMC,WAAW,EAAMC,KAAK,IACvFC,EAASC,EAASC,QAAQd,GAC1Be,OAA6BC,IAAhBf,EACbgB,EAAuBC,IACtBA,EAASC,WACZX,EAAmB,CACjBC,OAAQS,EAASE,SACjBV,UAAWQ,EAASG,YACpBV,IAAKO,EAASI,SAYpB,OAPAC,EAAU,KACJnB,IAAWA,EAAOe,gBAA6BH,IAAhBf,IACjCG,EAAOoB,QAAQvB,EAAa,GAC5BgB,EAAoBb,KAErB,CAACA,EAAQH,IAGVwB,uBAAKC,UAAW,GAAGC,EAAOC,sBAAsB1B,EAAeyB,EAAOzB,aAAe,MACnFuB,EAAAI,cAACC,EAAM,CACLJ,UACEX,EACI,GAAGY,EAAOI,cAAc5B,EAAcwB,EAAOK,mBAAqB,KAClEL,EAAOM,YAEbC,QAAS,CAACC,EAAMC,GAChBC,SAAWnB,IACTb,EAAUa,GACVD,EAAoBC,IAEtBoB,cAAerB,EACfsB,SAAUtB,EACVuB,SAAUvB,EACVwB,aAAcxC,QAAAA,EAAe,EAC7ByC,cAAe3B,GAAcH,EAAO+B,OAAS,EAAI,EAAI,OACrDC,0BAA2B7B,EAC3B8B,gBAAiB9B,EACjB+B,QAAS/B,EACTgC,eAAa,EACbC,YACAC,gBAAc,EACdC,YAAYnC,GAAqB,CAAEoC,WAAW,EAAMC,QAASxC,EAAO+B,OAAS,GAC7EU,YAAatC,OAAaC,EAAY,CACpC,IAAK,CAAE0B,cAAe,GACtB,KAAM,CAAEA,cAAe,EAAGQ,WAAY,CAAEE,QAASxC,EAAO+B,OAAS,IACjE,KAAM,CAAED,cAAe,EAAGQ,WAAY,CAAEE,QAASxC,EAAO+B,OAAS,MAGlE/B,EAAO0C,IAAI,CAACC,EAAOC,WAAe,OACjC/B,EAAAI,cAAC4B,EAAW,CAACC,IAAKjC,EAAMkC,eAAeJ,IAAkB,QAATK,EAAAL,EAAMG,WAAG,IAAAE,EAAAA,EAAiBJ,GACvED,OAILxC,GAAcH,EAAO+B,OAAS,IAAMpC,EAAgBE,QACpDgB,EAAAI,cAAAJ,EAAAoC,SAAA,KACEpC,EAAAI,cAAA,SAAA,CACEiC,KAAK,SACLpC,UAAW,GAAGC,EAAOoC,eAAepC,EAAOqC,+BAChC,oBACXC,SAAU1D,EAAgBG,UAC1BwD,QAAS,IAAM9D,aAAM,EAANA,EAAQ+D,aAEvB1C,EAAAI,cAAA,OAAA,CAAMH,UAAW,GAAGC,EAAOyC,mBAAmBzC,EAAO0C,yBAEvD5C,EAAAI,cAAA,SAAA,CACEiC,KAAK,SACLpC,UAAW,GAAGC,EAAOoC,eAAepC,EAAO2C,+BAChC,gBACXL,SAAU1D,EAAgBI,IAC1BuD,QAAS,IAAM9D,aAAM,EAANA,EAAQmE,aAEvB9C,EAAAI,cAAA,OAAA,CAAMH,UAAW,GAAGC,EAAOyC,mBAAmBzC,EAAO6C"}