@sunrise-upc/mobile-prod-card 12.3.0-beta.7 → 12.3.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import o from"js-cookie";import{DEFAULT_MOBILEPOSTPAID_BUNDLE as l,TV_SERVICE_OPTION as i,RATEPLAN as n,VCTYPE as e,DEFAULT_WIRELINE_BUNDLE as d,ONE_ECOMMERCE_SUMMARY as t,ONE_ECOMMERCE_INTERNET_SUMMARY as u}from"../../utils/constants.js";import{fetchShogunOfferData as v,createCartV2 as r}from"../../services/LineTableService.js";import{getElementMaximumHeight as c,getLocalStorageWithExpiry as a,redirectWithSuccess as s,checkLinkWithLang as p}from"../../utils/utils.js";import{trackNewDatalayerEvent as m}from"../../utils/AnalyticsUtils.js";import{COMBINEDEVICE as f,GAEVENT as y,LINETABLEPRODUCT as h,ADDTOCART as g,LINETABLE as I,LINETABLEDEVICE as b}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as T,getEcomCartInfo as D}from"../../models/Analytics/items.js";import{calculateDateTime as P}from"./StaticLineTabelTimer/util.js";const C=(o,l)=>{try{const i=new Date,n=P(new Date(o.replace(/-/g,"/"))),e=P(new Date(l.replace(/-/g,"/")));return!Number.isNaN(n.getTime())&&!Number.isNaN(e.getTime())&&(i>=n&&i<e)}catch(o){return!1}},w=(o,l)=>{try{const i=P(new Date(o.replace(/-/g,"/"))),n=P(new Date(l.replace(/-/g,"/")));if(Number.isNaN(i.getTime())||Number.isNaN(n.getTime()))return 0;const e=(new Date).getTime(),d=i.getTime(),t=n.getTime();return e<d?Math.max(0,d-e):e>=d&&e<t?Math.max(0,t-e):0}catch(o){return 0}},N=(o,i,n,e,d)=>{null==o||o.map(o=>{var e,t,u,v,r,c,a,s,p,m,f,y,h,g,I,b,T,D,P,w,N,S,_,x,L;const O={id:"",promoIds:[]},E=null===(r=null===(v=null===(u=null===(t=null===(e=null==o?void 0:o.products)||void 0===e?void 0:e[0])||void 0===t?void 0:t.reference)||void 0===u?void 0:u.content)||void 0===v?void 0:v.product)||void 0===r?void 0:r[0],M=null===(m=null===(p=null===(s=null===(a=null===(c=null==o?void 0:o.promotion)||void 0===c?void 0:c[0])||void 0===a?void 0:a.reference)||void 0===s?void 0:s.content)||void 0===p?void 0:p.promoDescription)||void 0===m?void 0:m[0];null==M||M.promotionId,O.id=null==E?void 0:E.productId;const A=null===(f=null==o?void 0:o.timer)||void 0===f?void 0:f[0],B=!!A&&C(A.startTime,A.endTime),k=null===(T=null===(b=null===(I=null===(g=null===(h=null===(y=null==A?void 0:A.promotion)||void 0===y?void 0:y[0])||void 0===h?void 0:h.reference)||void 0===g?void 0:g.content)||void 0===I?void 0:I.promoDescription)||void 0===b?void 0:b[0])||void 0===T?void 0:T.promotionId,U=d&&!0===d&&""===(null==M?void 0:M.promotionId)?l:null==M?void 0:M.promotionId;if(B&&k?null===(D=null==O?void 0:O.promoIds)||void 0===D||D.push(k):null===(P=null==O?void 0:O.promoIds)||void 0===P||P.push(U),n){const l=null===(x=null===(_=null===(S=null===(N=null===(w=null==o?void 0:o.mobilePromotion)||void 0===w?void 0:w[0])||void 0===N?void 0:N.reference)||void 0===S?void 0:S.content)||void 0===_?void 0:_.promoDescription)||void 0===x?void 0:x[0];null===(L=null==O?void 0:O.promoIds)||void 0===L||L.push(null==l?void 0:l.promotionId)}null==i||i.push(O)})},S=(o,l,i)=>{var n,e,d;const t=null===(n=null==o?void 0:o.tabCaption)||void 0===n?void 0:n.replace(/\b\w/g,o=>o.toUpperCase()).replace(/\s+/g,"");return{atlOffers:[{placements:i,offerValidations:[{key:"Segment",type:"CustomerType",value:"Residential"},{key:"OrderType",type:"CustomerInterest",value:"New"},{key:"CurrentPage",type:"Context",value:"mobile-subscription"},{key:"Category",type:"CustomerInterest",value:null!=t?t:""},{key:"RequestedOfferCount",type:"Context",value:null!==(d=null===(e=null==o?void 0:o.pegaRequestOfferCount)||void 0===e?void 0:e.toString())&&void 0!==d?d:"3"},l?{key:"Tag",type:"CustomerInterest",value:l}:null].filter(Boolean)}]}},_=o=>{let l=!1,i=!1;return null==o||o.map(o=>{var n;null===(n=null==o?void 0:o.promotionInfo)||void 0===n||n.map(o=>{(null==o?void 0:o.hardwareGift)&&(l=!0),(null==o?void 0:o.cashBack)&&(i=!0)})}),{showGift:l,cashbackAvailable:i}},x=(i,n,u,v,c,m,f,y,b,D,P,C,w,N,S,_,x,L,O,E,M)=>{var A,B,k;if(f){i(!0);const d=a(e);0!==(null===(A=Object.keys(v))||void 0===A?void 0:A.length)&&r(v,"",(null==m?void 0:m.promoID)?null==m?void 0:m.promoID:l,n,"mobile",u,N,S,null===(k=null===(B=null==c?void 0:c.productContainer)||void 0===B?void 0:B[0])||void 0===k?void 0:k.isQoQaFlow,null==d?void 0:d.voucher,null,null,L,O,E).then(l=>{var i;o.remove("one-commerce-cartId",{path:"/"}),o.set("one-commerce-cartId",null==l?void 0:l.id,{path:"/"}),o.set("cartProduct",null==m?void 0:m.id,{path:"/"}),T(g,v,"",h),s(null===(i=null==c?void 0:c.summaryPageUrl)||void 0===i?void 0:i.cached_url,M)}).catch(o=>{console.log(o),i(!1)}).finally(()=>{i(!1)})}else{const l="undefined"!=typeof window&&o.get("one-commerce-linecheckcorrelationid");b&&D&&l?(i(!0),0!==v.length&&r(v,y,(null==m?void 0:m.promoID)?null==m?void 0:m.promoID:d,n,"fixnet",u,"","",!1,"","",x,void 0,void 0,E).then(l=>{var i,n,e,d,u,r,a,f,y,h,b;"undefined"!=typeof window&&o.remove("one-commerce-cartId",{path:"/"}),"undefined"!=typeof window&&o.set("one-commerce-cartId",null==l?void 0:l.id,{path:"/"}),"undefined"!=typeof window&&o.set("cartProduct",null==m?void 0:m.id,{path:"/"}),"undefined"!=typeof window&&o.remove("landline"),T(g,v,"",I);const D=p(null===(i=null==_?void 0:_.productBasedCheckoutUrl)||void 0===i?void 0:i.cached_url);let P=!1;if((null===(n=v[0])||void 0===n?void 0:n.isBundle)?null===(d=null===(e=v[0])||void 0===e?void 0:e.bundledOffers)||void 0===d||d.map(o=>{var l,i,n;"internet"!==(null===(l=null==o?void 0:o.productType)||void 0===l?void 0:l.toLowerCase())&&"tv"!=(null===(i=null==o?void 0:o.productType)||void 0===i?void 0:i.toLowerCase())||(null==o?void 0:o.recommendAccessory)&&(P=null==o?void 0:o.recommendAccessory),"mobile"!==(null===(n=null==o?void 0:o.productType)||void 0===n?void 0:n.toLowerCase())||(P=!1)}):(null===(u=null==v?void 0:v[0])||void 0===u?void 0:u.recommendAccessory)&&(P=null===(r=null==v?void 0:v[0])||void 0===r?void 0:r.recommendAccessory),P){const o={flow:"WIN"};sessionStorage.setItem(t,JSON.stringify(o))}const C=D||((null==_?void 0:_.enableTVStreamingOptionsStepper)&&(null===(a=null==c?void 0:c.vasStepperURL)||void 0===a?void 0:a.cached_url)?null===(f=null==c?void 0:c.vasStepperURL)||void 0===f?void 0:f.cached_url:P&&(null===(y=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===y?void 0:y.cached_url)?null===(h=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===h?void 0:h.cached_url:null===(b=null==c?void 0:c.summaryPageUrl)||void 0===b?void 0:b.cached_url);s(C,M)}).catch(o=>{console.log(o)}).finally(()=>{i(!1)})):(null==c?void 0:c.enableLinecheckOverlay)?P(!C):w()}},L=new Map,O=(o,l,i)=>{const n=[];for(const e of o){const o=`${e}${l}`,d=[];for(let l=0;l<i;l++){const i=document.getElementById(`${o}${l}`);i&&d.push(i)}d.length>0&&n.push(d)}if(0===n.length)return;for(const o of n)for(const l of o)l.style.height="unset";const e=n.map(o=>Math.max(...o.map(o=>o.clientHeight)));n.forEach((o,l)=>{const i=`${e[l]}px`;for(const l of o)l.style.height=i})},E=(o,l,i=0)=>{const n=L.get(o);if(n)if("boolean"!=typeof n)clearTimeout(n);else if(i<=0)return;if(i<=0&&"function"==typeof queueMicrotask)return L.set(o,!0),void queueMicrotask(()=>{L.delete(o),M(o,l)});L.set(o,setTimeout(()=>{L.delete(o),M(o,l)},i))},M=(o,l)=>{(()=>{let i=0;const n=[];[...Array(l)].forEach((l,e)=>{const d=document.getElementById(`timer-section${o}${e}`);if(d){n.push(d);if("true"===d.dataset.timerActive){const o=d.firstElementChild,l=parseFloat((null==o?void 0:o.style.height)||"0")||0;i=Math.max(i,l)}}}),n.forEach(o=>{const l="true"===o.dataset.timerActive;o.style.transition="height 0.3s ease",o.style.height=l?"0px":`${i}px`})})(),O(["headingV3","descriptionV3","titleV3","product-configv3","cashback-section","exclusive-benefits-section","benefits-section","price-section","discountedpricetoggle-section","contract-section"],o,l),O(["detailsectionv3","gift-section","order-section"],o,l),c(`benefits-price-section${o}`,l)},A=(o,i,n,e,d,t)=>{var u,v,r,c,a,s,p;const h={msisdn:null!==(u=null==e?void 0:e.msisdn)&&void 0!==u?u:"",ratePlan:null!==(v=null==e?void 0:e.ratePlan)&&void 0!==v?v:"",ratePlanType:null!==(r=null==e?void 0:e.ratePlanType)&&void 0!==r?r:"",productId:e?null==o?void 0:o.id:""},I=(null==o?void 0:o.promoID)?null==o?void 0:o.promoID:l;let P="";P=`?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${null!=I?I:""}&productCode=${null!==(c=null==o?void 0:o.id)&&void 0!==c?c:""}`,window.location.href=(null===(p=null===(s=null===(a=null==i?void 0:i.addSmartPhone)||void 0===a?void 0:a[0])||void 0===s?void 0:s.buttonLink)||void 0===p?void 0:p.cached_url)+P,((o,l,i,n,e,d)=>{var t,u,v,r,c,a,s,p,m,f,y,h,g,I,b,T,D,P,C,w,N,S,_,x,L;const O=l,E=null!==(r=null===(v=null===(u=null===(t=null==O?void 0:O[0])||void 0===t?void 0:t.prices)||void 0===u?void 0:u[0])||void 0===v?void 0:v.value)&&void 0!==r?r:0,M=null!==(p=null===(s=null===(a=null===(c=null==O?void 0:O[0])||void 0===c?void 0:c.derivedPrice)||void 0===a?void 0:a[0])||void 0===s?void 0:s.value)&&void 0!==p?p:0,A=null!==(h=null===(y=null===(f=null===(m=null==O?void 0:O[0])||void 0===m?void 0:m.promotionInfo)||void 0===f?void 0:f[0])||void 0===y?void 0:y.contractDuration)&&void 0!==h?h:0,B=null!==(T=null===(b=null===(I=null===(g=null==O?void 0:O[0])||void 0===g?void 0:g.promotionInfo)||void 0===I?void 0:I[0])||void 0===b?void 0:b.campaignDuration)&&void 0!==T?T:0,k=null!=i?i:"",U=d&&(null===(C=null===(P=null===(D=null==l?void 0:l[0])||void 0===D?void 0:D.promotionInfo)||void 0===P?void 0:P[0])||void 0===C?void 0:C.id),R=d&&(null===(S=null===(N=null===(w=null==l?void 0:l[0])||void 0===w?void 0:w.promotionInfo)||void 0===N?void 0:N[0])||void 0===S?void 0:S.version),F=d?{discountRef:U,discountType:"DISCOUNT"}:null,$=[];null==$||$.push({author:"offerType",text:"ATL"}),null==$||$.push({author:"externalPromotionName",text:U}),null==$||$.push({author:"offerVersion",text:R});const V=d?$:null,j=new URLSearchParams(window.location.search).get("flow"),J={mobileSubscription:null!==(x=null===(_=null==O?void 0:O[0])||void 0===_?void 0:_.id)&&void 0!==x?x:"",mobileSubscriptionPrice:M>0?M:E,mobileSubscriptionPromo:o,subGroup:"MOBILE",duration:Number(B>0?B:A),basePrice:E,withoutPromo:!1,pretopostvalue:k,upBenefit:"MULTIMOBILE"==n.mob_benefit_category||"FMC"==n.mob_benefit_category,ultimateBundlePromo:null!==(L=null==e?void 0:e.ultimateBundlePromotion)&&void 0!==L?L:"",clientDiscountInfo:F,extraNotes:V,isOttFlow:"ott"===j};void 0!==typeof window&&sessionStorage.setItem("one-ecommerce-mobileSummary",JSON.stringify(J))})(I,n,e&&h,o,d,t),m(y,f,D(n,"",b)),T(g,n,"",b)},B=(o,i,n,e,d,t)=>{((o,l,i,n,e,d,t)=>{var v,r,c,a,s,p,m,f,y,h,g,I,b,T,D,P,C,w,N,S,_,x,L,O,E,M;const A=l,B=null!==(a=null===(c=null===(r=null===(v=null==A?void 0:A[0])||void 0===v?void 0:v.prices)||void 0===r?void 0:r[0])||void 0===c?void 0:c.value)&&void 0!==a?a:0,k=null!==(f=null===(m=null===(p=null===(s=null==A?void 0:A[0])||void 0===s?void 0:s.derivedPrice)||void 0===p?void 0:p[0])||void 0===m?void 0:m.value)&&void 0!==f?f:0,U=null!==(b=null!==(I=null===(g=null===(h=null===(y=null==A?void 0:A[0])||void 0===y?void 0:y.promotionInfo)||void 0===h?void 0:h[0])||void 0===g?void 0:g.contractDuration)&&void 0!==I?I:null==i?void 0:i.contractDuration)&&void 0!==b?b:0,R=null!==(C=null===(P=null===(D=null===(T=null==A?void 0:A[0])||void 0===T?void 0:T.promotionInfo)||void 0===D?void 0:D[0])||void 0===P?void 0:P.campaignDuration)&&void 0!==C?C:0,F=e&&(null===(S=null===(N=null===(w=null==l?void 0:l[0])||void 0===w?void 0:w.promotionInfo)||void 0===N?void 0:N[0])||void 0===S?void 0:S.id),$=e&&(null===(L=null===(x=null===(_=null==l?void 0:l[0])||void 0===_?void 0:_.promotionInfo)||void 0===x?void 0:x[0])||void 0===L?void 0:L.version),V=e?{discountRef:F,discountType:"DISCOUNT"}:null,j=[];null==j||j.push({author:"offerType",text:"ATL"}),null==j||j.push({author:"externalPromotionName",text:F}),null==j||j.push({author:"offerVersion",text:$});const J=e?j:null,q={internetSubscription:null!=d?d:"",internetSubscriptionId:null!==(E=null===(O=null==A?void 0:A[0])||void 0===O?void 0:O.id)&&void 0!==E?E:"",internetSubscriptionPrice:k>0?k:B,internetSubscriptionPromo:o,subGroup:"INTERNET",duration:Number(R>0?R:U),basePrice:B,withPromo:k>0,upBenefit:"MULTIMOBILE"==i.mob_benefit_category||"FMC"==i.mob_benefit_category,ultimateBundlePromo:null!==(M=null==n?void 0:n.ultimateBundlePromotion)&&void 0!==M?M:"",clientDiscountInfo:V,extraNotes:J,productType:"subscription",recommendAccessory:t};void 0!==typeof window&&sessionStorage.setItem(u,JSON.stringify(q))})((null==o?void 0:o.promoID)?null==o?void 0:o.promoID:l,i,o,n,e,d,t),m(y,f,D(i,"",b)),T(g,i,"",b)},k=(o,l)=>{let i;return l||(i=(o||[]).filter(o=>!0===(null==o?void 0:o.enableTV))),i},U=(o,l,i,n,e,d)=>{var t,u,v,r,c,a,s,p,m,f,y;const h={base:"",onetimePrice:"",discount:[],contractDuration:"",int_fmc:0,mob_fmc:0,mob_benefit_category:"",id:"",promoID:"",loyaltyPrice:""};let g=0,I=0,b=0;Array.isArray(o)&&(null==o||o.map(l=>{var i,n,t,u,v,r,c,a,s;h.id=null!==(i=null==l?void 0:l.id)&&void 0!==i?i:"",null===(n=null==l?void 0:l.prices)||void 0===n||n.map(o=>{var l,i;"recurring"===(null===(l=null==o?void 0:o.priceType)||void 0===l?void 0:l.toLowerCase())?e&&(null==e?void 0:e.length)>0?(null==e||e.forEach(o=>{(null==o?void 0:o.beneficiaryPrice)>0?I+=parseFloat(null==o?void 0:o.beneficiaryPrice):(null==o?void 0:o.derivedPrice)>0?I+=parseFloat(null==o?void 0:o.derivedPrice):b+=parseFloat(null==o?void 0:o.recurringPrice),(null==o?void 0:o.recurringPrice)>0&&(g+=parseFloat(null==o?void 0:o.recurringPrice))}),I>0&&(I+=b),h.base=JSON.stringify(parseFloat(null==o?void 0:o.value)+(I>0?I:g))):h.base=null==o?void 0:o.value:"one time"===(null===(i=null==o?void 0:o.priceType)||void 0===i?void 0:i.toLowerCase())&&(h.onetimePrice=null==o?void 0:o.value)}),null===(t=null==l?void 0:l.derivedPrice)||void 0===t||t.map(l=>{var i,n,t,u,v,r,c,a;const s={cycleStart:"",cycleEnd:"",value:""};s.cycleStart=d&&!(null===(i=null==o?void 0:o[0])||void 0===i?void 0:i.isBundle)&&(null===(n=null==o?void 0:o[0])||void 0===n?void 0:n.contractDuration)?1:null===(t=null==l?void 0:l.cycle)||void 0===t?void 0:t.cycleStart,s.cycleEnd=d&&!(null===(u=null==o?void 0:o[0])||void 0===u?void 0:u.isBundle)&&(null===(v=null==o?void 0:o[0])||void 0===v?void 0:v.contractDuration)?d&&!(null===(r=null==o?void 0:o[0])||void 0===r?void 0:r.isBundle)&&(null===(c=null==o?void 0:o[0])||void 0===c?void 0:c.contractDuration):null===(a=null==l?void 0:l.cycle)||void 0===a?void 0:a.cycleEnd,s.value=null==l?void 0:l.value,e&&(null==e?void 0:e.length)>0&&(s.value=I>0?JSON.stringify(parseFloat(null==l?void 0:l.value)+I):JSON.stringify(parseFloat(null==l?void 0:l.value)+g)),h.discount.push(s)}),(null===(r=null===(v=null===(u=null==l?void 0:l.promotionInfo)||void 0===u?void 0:u[0])||void 0===v?void 0:v.relatedPromo)||void 0===r?void 0:r.length)>0&&(null===(s=null===(a=null===(c=null==l?void 0:l.promotionInfo)||void 0===c?void 0:c[0])||void 0===a?void 0:a.relatedPromo)||void 0===s||s.map(o=>{"LOYALTY_DISCOUNT"===(null==o?void 0:o.type)&&(h.loyaltyPrice=null==o?void 0:o.discount)}))})),null===(u=null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.bundledOffers)||void 0===u||u.forEach(o=>{var l,i,n,e,t;null===(l=null==o?void 0:o.prices)||void 0===l||l.forEach(o=>{var l,i;(null===(l=null==o?void 0:o.priceAlteration)||void 0===l?void 0:l.length)>0&&(null===(i=null==o?void 0:o.priceAlteration)||void 0===i||i.forEach(o=>{"INTERNET_FMC"==(null==o?void 0:o.priceCategory)?h.int_fmc+=Number(null==o?void 0:o.value):"MULTIMOBILE"!=(null==o?void 0:o.priceCategory)&&"MULTIMOBILE_REWARD"!=(null==o?void 0:o.priceCategory)&&"FMC"!=(null==o?void 0:o.priceCategory)||(h.mob_fmc+=Number(null==o?void 0:o.value),h.mob_benefit_category=null==o?void 0:o.priceCategory)}))}),(null==o?void 0:o.contractDuration)&&(h.contractDuration=null==o?void 0:o.contractDuration),(null===(n=null===(i=null==o?void 0:o.promotionInfo)||void 0===i?void 0:i[0])||void 0===n?void 0:n.id)&&!d&&(h.promoID=null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.id)}),(null===(v=null==o?void 0:o[0])||void 0===v?void 0:v.isBundle)||(h.contractDuration=null===(r=null==o?void 0:o[0])||void 0===r?void 0:r.contractDuration,d||(h.promoID=null===(s=null===(a=null===(c=null==o?void 0:o[0])||void 0===c?void 0:c.promotionInfo)||void 0===a?void 0:a[0])||void 0===s?void 0:s.id));let T=0;if(null===(m=null===(p=null==o?void 0:o[0])||void 0===p?void 0:p.prices)||void 0===m||m.map(o=>{var l,i;(null===(l=null==o?void 0:o.priceAlteration)||void 0===l?void 0:l.length)>0&&(null===(i=null==o?void 0:o.priceAlteration)||void 0===i||i.map(o=>{"INTERNET_FMC"==(null==o?void 0:o.priceCategory)?T+=Number(null==o?void 0:o.value):"MULTIMOBILE"!=(null==o?void 0:o.priceCategory)&&"MULTIMOBILE_REWARD"!=(null==o?void 0:o.priceCategory)&&"FMC"!=(null==o?void 0:o.priceCategory)||(h.mob_fmc+=Number(null==o?void 0:o.value),h.mob_benefit_category=null==o?void 0:o.priceCategory)}))}),(null==h?void 0:h.contractDuration)||l||(h.contractDuration="12"),h.int_fmc=h.int_fmc,"4P"==i){let l="0";null===(y=null===(f=null==o?void 0:o[0])||void 0===f?void 0:f.bundledOffers)||void 0===y||y.map(o=>{(null==o?void 0:o.contractDuration)&&(l=Number(l)>Number(null==o?void 0:o.contractDuration)?l:null==o?void 0:o.contractDuration)}),h.contractDuration=l}return h},R=(o,l)=>{var i,n;let e=o;e=o.filter(o=>{var i;const n=null===(i=null==o?void 0:o.gigaSpeed)||void 0===i?void 0:i.toLowerCase();return(null==l?void 0:l.gigaSpeed)?"hide"!=n:"show"!=n});let d=e;let t=[],u=[],v=[];for(let o of d){const l=null===(i=null==o?void 0:o.productIndex)||void 0===i?void 0:i.includes(","),e=l&&(null===(n=null==o?void 0:o.productIndex)||void 0===n?void 0:n.split(","));if(l)for(let l of e)for(let i=0;i<3;i++)Number(l)===i&&(0===i?t.push(o):1===i?u.push(o):v.push(o));else for(let l=0;l<3;l++)Number(null==o?void 0:o.productIndex)===l&&(0===l?t.push(o):1===l?u.push(o):v.push(o))}return(null==l?void 0:l.TV)&&(null==l?void 0:l.Netflix)?v:(null==l?void 0:l.TV)?u:t},F=o=>{var l;return null===(l=(null==o?void 0:o.products)||[])||void 0===l?void 0:l.map(o=>{var l,e,d;return{itemType:null!==(l=null==o?void 0:o.type)&&void 0!==l?l:"",promotionId:null!==(e=null==o?void 0:o.promo)&&void 0!==e?e:"",items:[{itemType:(null==o?void 0:o.type)===i?i:n,id:null!==(d=null==o?void 0:o.id)&&void 0!==d?d:""}]}})};let $=null;const V=o=>(null==$?void 0:$.gloxTokenId)===o&&null!==$.results,j=(o,l,i)=>{if(V(o))return Promise.resolve($.results);if((null==$?void 0:$.gloxTokenId)===o&&null!==$.promise)return $.promise;const n=v(o,l,i).then(i=>{var n;const e=null!==(n=null==i?void 0:i[l])&&void 0!==n?n:[];return(null==$?void 0:$.gloxTokenId)===o&&($.results=e,$.promise=null),e}).catch(l=>{throw(null==$?void 0:$.gloxTokenId)===o&&($=null),l});return $={gloxTokenId:o,results:null,promise:n},n},J=(o,l)=>{const i=o.filter(o=>{var i,n,e,d,t,u;const v=null===(u=null===(t=null===(d=null===(e=null===(n=null===(i=null==o?void 0:o.products)||void 0===i?void 0:i[0])||void 0===n?void 0:n.reference)||void 0===e?void 0:e.content)||void 0===d?void 0:d.product)||void 0===t?void 0:t[0])||void 0===u?void 0:u.productId;return l.includes(v)});return i.sort((o,i)=>{var n,e,d,t,u,v,r,c,a,s,p,m;const f=null===(v=null===(u=null===(t=null===(d=null===(e=null===(n=null==o?void 0:o.products)||void 0===n?void 0:n[0])||void 0===e?void 0:e.reference)||void 0===d?void 0:d.content)||void 0===t?void 0:t.product)||void 0===u?void 0:u[0])||void 0===v?void 0:v.productId,y=null===(m=null===(p=null===(s=null===(a=null===(c=null===(r=null==i?void 0:i.products)||void 0===r?void 0:r[0])||void 0===c?void 0:c.reference)||void 0===a?void 0:a.content)||void 0===s?void 0:s.product)||void 0===p?void 0:p[0])||void 0===m?void 0:m.productId;return l.indexOf(f)-l.indexOf(y)}),i};export{_ as checkGiftOrCashback,A as combineWithSmartPhone,B as combineWithVasOptions,R as fetchFilteredProducts,F as fetchOttItems,S as fetchPegaProducts,U as fetchPrice,k as fetchServiceOptions,N as fetchStaticProductIds,J as filterShogunProducts,M as findHeight,j as getShogunSharedOffer,w as getTimeUntilNextTimerEvent,V as isShogunOfferResolved,C as isTimerActive,E as scheduleFindHeight,x as staticCreateCart};
1
+ import o from"js-cookie";import{DEFAULT_MOBILEPOSTPAID_BUNDLE as l,TV_SERVICE_OPTION as i,RATEPLAN as n,VCTYPE as e,DEFAULT_WIRELINE_BUNDLE as d,ONE_ECOMMERCE_SUMMARY as t,ONE_ECOMMERCE_INTERNET_SUMMARY as u}from"../../utils/constants.js";import{fetchShogunOfferData as r,createCartV2 as v}from"../../services/LineTableService.js";import{getElementMaximumHeight as c,getLocalStorageWithExpiry as a,redirectWithSuccess as s,checkLinkWithLang as p}from"../../utils/utils.js";import{trackNewDatalayerEvent as m}from"../../utils/AnalyticsUtils.js";import{COMBINEDEVICE as f,GAEVENT as y,LINETABLEPRODUCT as h,ADDTOCART as g,LINETABLE as I,LINETABLEDEVICE as b}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as T,getEcomCartInfo as w}from"../../models/Analytics/items.js";import{calculateDateTime as D}from"./StaticLineTabelTimer/util.js";const P=(o,l)=>{try{const i=new Date,n=D(new Date(o.replace(/-/g,"/"))),e=D(new Date(l.replace(/-/g,"/")));return!Number.isNaN(n.getTime())&&!Number.isNaN(e.getTime())&&(i>=n&&i<e)}catch(o){return!1}},C=(o,l)=>{try{const i=D(new Date(o.replace(/-/g,"/"))),n=D(new Date(l.replace(/-/g,"/")));if(Number.isNaN(i.getTime())||Number.isNaN(n.getTime()))return 0;const e=(new Date).getTime(),d=i.getTime(),t=n.getTime();return e<d?Math.max(0,d-e):e>=d&&e<t?Math.max(0,t-e):0}catch(o){return 0}},N=(o,i,n,e,d)=>{null==o||o.map(o=>{var e,t,u,r,v,c,a,s,p,m,f,y,h,g,I,b,T,w,D,C,N,S,_,x,L;const O={id:"",promoIds:[]},E=null===(v=null===(r=null===(u=null===(t=null===(e=null==o?void 0:o.products)||void 0===e?void 0:e[0])||void 0===t?void 0:t.reference)||void 0===u?void 0:u.content)||void 0===r?void 0:r.product)||void 0===v?void 0:v[0],M=null===(m=null===(p=null===(s=null===(a=null===(c=null==o?void 0:o.promotion)||void 0===c?void 0:c[0])||void 0===a?void 0:a.reference)||void 0===s?void 0:s.content)||void 0===p?void 0:p.promoDescription)||void 0===m?void 0:m[0];null==M||M.promotionId,O.id=null==E?void 0:E.productId;const A=null===(f=null==o?void 0:o.timer)||void 0===f?void 0:f[0],B=!!A&&P(A.startTime,A.endTime),k=null===(T=null===(b=null===(I=null===(g=null===(h=null===(y=null==A?void 0:A.promotion)||void 0===y?void 0:y[0])||void 0===h?void 0:h.reference)||void 0===g?void 0:g.content)||void 0===I?void 0:I.promoDescription)||void 0===b?void 0:b[0])||void 0===T?void 0:T.promotionId,R=d&&!0===d&&""===(null==M?void 0:M.promotionId)?l:null==M?void 0:M.promotionId;if(B&&k?null===(w=null==O?void 0:O.promoIds)||void 0===w||w.push(k):null===(D=null==O?void 0:O.promoIds)||void 0===D||D.push(R),n){const l=null===(x=null===(_=null===(S=null===(N=null===(C=null==o?void 0:o.mobilePromotion)||void 0===C?void 0:C[0])||void 0===N?void 0:N.reference)||void 0===S?void 0:S.content)||void 0===_?void 0:_.promoDescription)||void 0===x?void 0:x[0];null===(L=null==O?void 0:O.promoIds)||void 0===L||L.push(null==l?void 0:l.promotionId)}null==i||i.push(O)})},S=(o,l,i)=>{var n,e,d;const t=null===(n=null==o?void 0:o.tabCaption)||void 0===n?void 0:n.replace(/\b\w/g,o=>o.toUpperCase()).replace(/\s+/g,"");return{atlOffers:[{placements:i,offerValidations:[{key:"Segment",type:"CustomerType",value:"Residential"},{key:"OrderType",type:"CustomerInterest",value:"New"},{key:"CurrentPage",type:"Context",value:"mobile-subscription"},{key:"Category",type:"CustomerInterest",value:null!=t?t:""},{key:"RequestedOfferCount",type:"Context",value:null!==(d=null===(e=null==o?void 0:o.pegaRequestOfferCount)||void 0===e?void 0:e.toString())&&void 0!==d?d:"3"},l?{key:"Tag",type:"CustomerInterest",value:l}:null].filter(Boolean)}]}},_=o=>{let l=!1,i=!1;return null==o||o.map(o=>{var n;null===(n=null==o?void 0:o.promotionInfo)||void 0===n||n.map(o=>{(null==o?void 0:o.hardwareGift)&&(l=!0),(null==o?void 0:o.cashBack)&&(i=!0)})}),{showGift:l,cashbackAvailable:i}},x=(i,n,u,r,c,m,f,y,b,w,D,P,C,N,S,_,x,L,O,E,M)=>{var A,B,k;if(f){i(!0);const d=a(e);0!==(null===(A=Object.keys(r))||void 0===A?void 0:A.length)&&v(r,"",(null==m?void 0:m.promoID)?null==m?void 0:m.promoID:l,n,"mobile",u,N,S,null===(k=null===(B=null==c?void 0:c.productContainer)||void 0===B?void 0:B[0])||void 0===k?void 0:k.isQoQaFlow,null==d?void 0:d.voucher,null,null,L,O,E).then(l=>{var i;o.remove("one-commerce-cartId",{path:"/"}),o.set("one-commerce-cartId",null==l?void 0:l.id,{path:"/"}),o.set("cartProduct",null==m?void 0:m.id,{path:"/"}),T(g,r,"",h),s(null===(i=null==c?void 0:c.summaryPageUrl)||void 0===i?void 0:i.cached_url,M)}).catch(o=>{console.log(o),i(!1)}).finally(()=>{i(!1)})}else{const l="undefined"!=typeof window&&o.get("one-commerce-linecheckcorrelationid");b&&w&&l?(i(!0),0!==r.length&&v(r,y,(null==m?void 0:m.promoID)?null==m?void 0:m.promoID:d,n,"fixnet",u,"","",!1,"","",x,void 0,void 0,E).then(l=>{var i,n,e,d,u,v,a,f,y,h,b;"undefined"!=typeof window&&o.remove("one-commerce-cartId",{path:"/"}),"undefined"!=typeof window&&o.set("one-commerce-cartId",null==l?void 0:l.id,{path:"/"}),"undefined"!=typeof window&&o.set("cartProduct",null==m?void 0:m.id,{path:"/"}),"undefined"!=typeof window&&o.remove("landline"),T(g,r,"",I);const w=p(null===(i=null==_?void 0:_.productBasedCheckoutUrl)||void 0===i?void 0:i.cached_url);let D=!1;if((null===(n=r[0])||void 0===n?void 0:n.isBundle)?null===(d=null===(e=r[0])||void 0===e?void 0:e.bundledOffers)||void 0===d||d.map(o=>{var l,i,n;"internet"!==(null===(l=null==o?void 0:o.productType)||void 0===l?void 0:l.toLowerCase())&&"tv"!=(null===(i=null==o?void 0:o.productType)||void 0===i?void 0:i.toLowerCase())||(null==o?void 0:o.recommendAccessory)&&(D=null==o?void 0:o.recommendAccessory),"mobile"!==(null===(n=null==o?void 0:o.productType)||void 0===n?void 0:n.toLowerCase())||(D=!1)}):(null===(u=null==r?void 0:r[0])||void 0===u?void 0:u.recommendAccessory)&&(D=null===(v=null==r?void 0:r[0])||void 0===v?void 0:v.recommendAccessory),D){const o={flow:"WIN"};sessionStorage.setItem(t,JSON.stringify(o))}const P=w||((null==_?void 0:_.enableTVStreamingOptionsStepper)&&(null===(a=null==c?void 0:c.vasStepperURL)||void 0===a?void 0:a.cached_url)?null===(f=null==c?void 0:c.vasStepperURL)||void 0===f?void 0:f.cached_url:D&&(null===(y=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===y?void 0:y.cached_url)?null===(h=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===h?void 0:h.cached_url:null===(b=null==c?void 0:c.summaryPageUrl)||void 0===b?void 0:b.cached_url);s(P,M)}).catch(o=>{console.log(o)}).finally(()=>{i(!1)})):(null==c?void 0:c.enableLinecheckOverlay)?D(!P):C()}},L=new Map,O=(o,l,i)=>{const n=[];for(const e of o){const o=`${e}${l}`,d=[];for(let l=0;l<i;l++){const i=document.getElementById(`${o}${l}`);i&&d.push(i)}d.length>0&&n.push(d)}if(0===n.length)return;for(const o of n)for(const l of o)l.style.height="unset";const e=n.map(o=>Math.max(...o.map(o=>o.clientHeight)));n.forEach((o,l)=>{const i=`${e[l]}px`;for(const l of o)l.style.height=i})},E=(o,l,i=0)=>{const n=L.get(o);if(n)if("boolean"!=typeof n)clearTimeout(n);else if(i<=0)return;if(i<=0&&"function"==typeof queueMicrotask)return L.set(o,!0),void queueMicrotask(()=>{L.delete(o),M(o,l)});L.set(o,setTimeout(()=>{L.delete(o),M(o,l)},i))},M=(o,l)=>{(()=>{let i=0;const n=[];[...Array(l)].forEach((l,e)=>{const d=document.getElementById(`timer-section${o}${e}`);if(d){n.push(d);if("true"===d.dataset.timerActive){const o=d.firstElementChild,l=parseFloat((null==o?void 0:o.style.height)||"0")||0;i=Math.max(i,l)}}}),n.forEach(o=>{const l="true"===o.dataset.timerActive;o.style.transition="height 0.3s ease",o.style.height=l?"0px":`${i}px`})})();const i=new Set;document.querySelectorAll(`[data-entitlement-tab="${o}"]`).forEach(o=>{i.add(`entitlement-row-${o.dataset.entitlementRow}-`)}),O([...i],o,l),O(["headingV3","descriptionV3","titleV3","product-configv3","cashback-section","exclusive-benefits-section","benefits-section","price-section","discountedpricetoggle-section","contract-section"],o,l),O(["detailsectionv3","gift-section","order-section"],o,l),c(`benefits-price-section${o}`,l)},A=(o,i,n,e,d,t)=>{var u,r,v,c,a,s,p;const h={msisdn:null!==(u=null==e?void 0:e.msisdn)&&void 0!==u?u:"",ratePlan:null!==(r=null==e?void 0:e.ratePlan)&&void 0!==r?r:"",ratePlanType:null!==(v=null==e?void 0:e.ratePlanType)&&void 0!==v?v:"",productId:e?null==o?void 0:o.id:""},I=(null==o?void 0:o.promoID)?null==o?void 0:o.promoID:l;let D="";D=`?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${null!=I?I:""}&productCode=${null!==(c=null==o?void 0:o.id)&&void 0!==c?c:""}`,window.location.href=(null===(p=null===(s=null===(a=null==i?void 0:i.addSmartPhone)||void 0===a?void 0:a[0])||void 0===s?void 0:s.buttonLink)||void 0===p?void 0:p.cached_url)+D,((o,l,i,n,e,d)=>{var t,u,r,v,c,a,s,p,m,f,y,h,g,I,b,T,w,D,P,C,N,S,_,x,L;const O=l,E=null!==(v=null===(r=null===(u=null===(t=null==O?void 0:O[0])||void 0===t?void 0:t.prices)||void 0===u?void 0:u[0])||void 0===r?void 0:r.value)&&void 0!==v?v:0,M=null!==(p=null===(s=null===(a=null===(c=null==O?void 0:O[0])||void 0===c?void 0:c.derivedPrice)||void 0===a?void 0:a[0])||void 0===s?void 0:s.value)&&void 0!==p?p:0,A=null!==(h=null===(y=null===(f=null===(m=null==O?void 0:O[0])||void 0===m?void 0:m.promotionInfo)||void 0===f?void 0:f[0])||void 0===y?void 0:y.contractDuration)&&void 0!==h?h:0,B=null!==(T=null===(b=null===(I=null===(g=null==O?void 0:O[0])||void 0===g?void 0:g.promotionInfo)||void 0===I?void 0:I[0])||void 0===b?void 0:b.campaignDuration)&&void 0!==T?T:0,k=null!=i?i:"",R=d&&(null===(P=null===(D=null===(w=null==l?void 0:l[0])||void 0===w?void 0:w.promotionInfo)||void 0===D?void 0:D[0])||void 0===P?void 0:P.id),U=d&&(null===(S=null===(N=null===(C=null==l?void 0:l[0])||void 0===C?void 0:C.promotionInfo)||void 0===N?void 0:N[0])||void 0===S?void 0:S.version),F=d?{discountRef:R,discountType:"DISCOUNT"}:null,$=[];null==$||$.push({author:"offerType",text:"ATL"}),null==$||$.push({author:"externalPromotionName",text:R}),null==$||$.push({author:"offerVersion",text:U});const V=d?$:null,j=new URLSearchParams(window.location.search).get("flow"),J={mobileSubscription:null!==(x=null===(_=null==O?void 0:O[0])||void 0===_?void 0:_.id)&&void 0!==x?x:"",mobileSubscriptionPrice:M>0?M:E,mobileSubscriptionPromo:o,subGroup:"MOBILE",duration:Number(B>0?B:A),basePrice:E,withoutPromo:!1,pretopostvalue:k,upBenefit:"MULTIMOBILE"==n.mob_benefit_category||"FMC"==n.mob_benefit_category,ultimateBundlePromo:null!==(L=null==e?void 0:e.ultimateBundlePromotion)&&void 0!==L?L:"",clientDiscountInfo:F,extraNotes:V,isOttFlow:"ott"===j};void 0!==typeof window&&sessionStorage.setItem("one-ecommerce-mobileSummary",JSON.stringify(J))})(I,n,e&&h,o,d,t),m(y,f,w(n,"",b)),T(g,n,"",b)},B=(o,i,n,e,d,t)=>{((o,l,i,n,e,d,t)=>{var r,v,c,a,s,p,m,f,y,h,g,I,b,T,w,D,P,C,N,S,_,x,L,O,E,M;const A=l,B=null!==(a=null===(c=null===(v=null===(r=null==A?void 0:A[0])||void 0===r?void 0:r.prices)||void 0===v?void 0:v[0])||void 0===c?void 0:c.value)&&void 0!==a?a:0,k=null!==(f=null===(m=null===(p=null===(s=null==A?void 0:A[0])||void 0===s?void 0:s.derivedPrice)||void 0===p?void 0:p[0])||void 0===m?void 0:m.value)&&void 0!==f?f:0,R=null!==(b=null!==(I=null===(g=null===(h=null===(y=null==A?void 0:A[0])||void 0===y?void 0:y.promotionInfo)||void 0===h?void 0:h[0])||void 0===g?void 0:g.contractDuration)&&void 0!==I?I:null==i?void 0:i.contractDuration)&&void 0!==b?b:0,U=null!==(P=null===(D=null===(w=null===(T=null==A?void 0:A[0])||void 0===T?void 0:T.promotionInfo)||void 0===w?void 0:w[0])||void 0===D?void 0:D.campaignDuration)&&void 0!==P?P:0,F=e&&(null===(S=null===(N=null===(C=null==l?void 0:l[0])||void 0===C?void 0:C.promotionInfo)||void 0===N?void 0:N[0])||void 0===S?void 0:S.id),$=e&&(null===(L=null===(x=null===(_=null==l?void 0:l[0])||void 0===_?void 0:_.promotionInfo)||void 0===x?void 0:x[0])||void 0===L?void 0:L.version),V=e?{discountRef:F,discountType:"DISCOUNT"}:null,j=[];null==j||j.push({author:"offerType",text:"ATL"}),null==j||j.push({author:"externalPromotionName",text:F}),null==j||j.push({author:"offerVersion",text:$});const J=e?j:null,q={internetSubscription:null!=d?d:"",internetSubscriptionId:null!==(E=null===(O=null==A?void 0:A[0])||void 0===O?void 0:O.id)&&void 0!==E?E:"",internetSubscriptionPrice:k>0?k:B,internetSubscriptionPromo:o,subGroup:"INTERNET",duration:Number(U>0?U:R),basePrice:B,withPromo:k>0,upBenefit:"MULTIMOBILE"==i.mob_benefit_category||"FMC"==i.mob_benefit_category,ultimateBundlePromo:null!==(M=null==n?void 0:n.ultimateBundlePromotion)&&void 0!==M?M:"",clientDiscountInfo:V,extraNotes:J,productType:"subscription",recommendAccessory:t};void 0!==typeof window&&sessionStorage.setItem(u,JSON.stringify(q))})((null==o?void 0:o.promoID)?null==o?void 0:o.promoID:l,i,o,n,e,d,t),m(y,f,w(i,"",b)),T(g,i,"",b)},k=(o,l)=>{let i;return l||(i=(o||[]).filter(o=>!0===(null==o?void 0:o.enableTV))),i},R=(o,l,i,n,e,d)=>{var t,u,r,v,c,a,s,p,m,f,y;const h={base:"",onetimePrice:"",discount:[],contractDuration:"",int_fmc:0,mob_fmc:0,mob_benefit_category:"",id:"",promoID:"",loyaltyPrice:""};let g=0,I=0,b=0;Array.isArray(o)&&(null==o||o.map(l=>{var i,n,t,u,r,v,c,a,s;h.id=null!==(i=null==l?void 0:l.id)&&void 0!==i?i:"",null===(n=null==l?void 0:l.prices)||void 0===n||n.map(o=>{var l,i;"recurring"===(null===(l=null==o?void 0:o.priceType)||void 0===l?void 0:l.toLowerCase())?e&&(null==e?void 0:e.length)>0?(null==e||e.forEach(o=>{(null==o?void 0:o.beneficiaryPrice)>0?I+=parseFloat(null==o?void 0:o.beneficiaryPrice):(null==o?void 0:o.derivedPrice)>0?I+=parseFloat(null==o?void 0:o.derivedPrice):b+=parseFloat(null==o?void 0:o.recurringPrice),(null==o?void 0:o.recurringPrice)>0&&(g+=parseFloat(null==o?void 0:o.recurringPrice))}),I>0&&(I+=b),h.base=JSON.stringify(parseFloat(null==o?void 0:o.value)+(I>0?I:g))):h.base=null==o?void 0:o.value:"one time"===(null===(i=null==o?void 0:o.priceType)||void 0===i?void 0:i.toLowerCase())&&(h.onetimePrice=null==o?void 0:o.value)}),null===(t=null==l?void 0:l.derivedPrice)||void 0===t||t.map(l=>{var i,n,t,u,r,v,c,a;const s={cycleStart:"",cycleEnd:"",value:""};s.cycleStart=d&&!(null===(i=null==o?void 0:o[0])||void 0===i?void 0:i.isBundle)&&(null===(n=null==o?void 0:o[0])||void 0===n?void 0:n.contractDuration)?1:null===(t=null==l?void 0:l.cycle)||void 0===t?void 0:t.cycleStart,s.cycleEnd=d&&!(null===(u=null==o?void 0:o[0])||void 0===u?void 0:u.isBundle)&&(null===(r=null==o?void 0:o[0])||void 0===r?void 0:r.contractDuration)?d&&!(null===(v=null==o?void 0:o[0])||void 0===v?void 0:v.isBundle)&&(null===(c=null==o?void 0:o[0])||void 0===c?void 0:c.contractDuration):null===(a=null==l?void 0:l.cycle)||void 0===a?void 0:a.cycleEnd,s.value=null==l?void 0:l.value,e&&(null==e?void 0:e.length)>0&&(s.value=I>0?JSON.stringify(parseFloat(null==l?void 0:l.value)+I):JSON.stringify(parseFloat(null==l?void 0:l.value)+g)),h.discount.push(s)}),(null===(v=null===(r=null===(u=null==l?void 0:l.promotionInfo)||void 0===u?void 0:u[0])||void 0===r?void 0:r.relatedPromo)||void 0===v?void 0:v.length)>0&&(null===(s=null===(a=null===(c=null==l?void 0:l.promotionInfo)||void 0===c?void 0:c[0])||void 0===a?void 0:a.relatedPromo)||void 0===s||s.map(o=>{"LOYALTY_DISCOUNT"===(null==o?void 0:o.type)&&(h.loyaltyPrice=null==o?void 0:o.discount)}))})),null===(u=null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.bundledOffers)||void 0===u||u.forEach(o=>{var l,i,n,e,t;null===(l=null==o?void 0:o.prices)||void 0===l||l.forEach(o=>{var l,i;(null===(l=null==o?void 0:o.priceAlteration)||void 0===l?void 0:l.length)>0&&(null===(i=null==o?void 0:o.priceAlteration)||void 0===i||i.forEach(o=>{"INTERNET_FMC"==(null==o?void 0:o.priceCategory)?h.int_fmc+=Number(null==o?void 0:o.value):"MULTIMOBILE"!=(null==o?void 0:o.priceCategory)&&"MULTIMOBILE_REWARD"!=(null==o?void 0:o.priceCategory)&&"FMC"!=(null==o?void 0:o.priceCategory)||(h.mob_fmc+=Number(null==o?void 0:o.value),h.mob_benefit_category=null==o?void 0:o.priceCategory)}))}),(null==o?void 0:o.contractDuration)&&(h.contractDuration=null==o?void 0:o.contractDuration),(null===(n=null===(i=null==o?void 0:o.promotionInfo)||void 0===i?void 0:i[0])||void 0===n?void 0:n.id)&&!d&&(h.promoID=null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.id)}),(null===(r=null==o?void 0:o[0])||void 0===r?void 0:r.isBundle)||(h.contractDuration=null===(v=null==o?void 0:o[0])||void 0===v?void 0:v.contractDuration,d||(h.promoID=null===(s=null===(a=null===(c=null==o?void 0:o[0])||void 0===c?void 0:c.promotionInfo)||void 0===a?void 0:a[0])||void 0===s?void 0:s.id));let T=0;if(null===(m=null===(p=null==o?void 0:o[0])||void 0===p?void 0:p.prices)||void 0===m||m.map(o=>{var l,i;(null===(l=null==o?void 0:o.priceAlteration)||void 0===l?void 0:l.length)>0&&(null===(i=null==o?void 0:o.priceAlteration)||void 0===i||i.map(o=>{"INTERNET_FMC"==(null==o?void 0:o.priceCategory)?T+=Number(null==o?void 0:o.value):"MULTIMOBILE"!=(null==o?void 0:o.priceCategory)&&"MULTIMOBILE_REWARD"!=(null==o?void 0:o.priceCategory)&&"FMC"!=(null==o?void 0:o.priceCategory)||(h.mob_fmc+=Number(null==o?void 0:o.value),h.mob_benefit_category=null==o?void 0:o.priceCategory)}))}),(null==h?void 0:h.contractDuration)||l||(h.contractDuration="12"),h.int_fmc=h.int_fmc,"4P"==i){let l="0";null===(y=null===(f=null==o?void 0:o[0])||void 0===f?void 0:f.bundledOffers)||void 0===y||y.map(o=>{(null==o?void 0:o.contractDuration)&&(l=Number(l)>Number(null==o?void 0:o.contractDuration)?l:null==o?void 0:o.contractDuration)}),h.contractDuration=l}return h},U=(o,l)=>{var i,n;let e=o;e=o.filter(o=>{var i;const n=null===(i=null==o?void 0:o.gigaSpeed)||void 0===i?void 0:i.toLowerCase();return(null==l?void 0:l.gigaSpeed)?"hide"!=n:"show"!=n});let d=e;let t=[],u=[],r=[];for(let o of d){const l=null===(i=null==o?void 0:o.productIndex)||void 0===i?void 0:i.includes(","),e=l&&(null===(n=null==o?void 0:o.productIndex)||void 0===n?void 0:n.split(","));if(l)for(let l of e)for(let i=0;i<3;i++)Number(l)===i&&(0===i?t.push(o):1===i?u.push(o):r.push(o));else for(let l=0;l<3;l++)Number(null==o?void 0:o.productIndex)===l&&(0===l?t.push(o):1===l?u.push(o):r.push(o))}return(null==l?void 0:l.TV)&&(null==l?void 0:l.Netflix)?r:(null==l?void 0:l.TV)?u:t},F=o=>{var l;return null===(l=(null==o?void 0:o.products)||[])||void 0===l?void 0:l.map(o=>{var l,e,d;return{itemType:null!==(l=null==o?void 0:o.type)&&void 0!==l?l:"",promotionId:null!==(e=null==o?void 0:o.promo)&&void 0!==e?e:"",items:[{itemType:(null==o?void 0:o.type)===i?i:n,id:null!==(d=null==o?void 0:o.id)&&void 0!==d?d:""}]}})};let $=null;const V=o=>(null==$?void 0:$.gloxTokenId)===o&&null!==$.results,j=(o,l,i)=>{if(V(o))return Promise.resolve($.results);if((null==$?void 0:$.gloxTokenId)===o&&null!==$.promise)return $.promise;const n=r(o,l,i).then(i=>{var n;const e=null!==(n=null==i?void 0:i[l])&&void 0!==n?n:[];return(null==$?void 0:$.gloxTokenId)===o&&($.results=e,$.promise=null),e}).catch(l=>{throw(null==$?void 0:$.gloxTokenId)===o&&($=null),l});return $={gloxTokenId:o,results:null,promise:n},n},J=(o,l)=>{const i=o.filter(o=>{var i,n,e,d,t,u;const r=null===(u=null===(t=null===(d=null===(e=null===(n=null===(i=null==o?void 0:o.products)||void 0===i?void 0:i[0])||void 0===n?void 0:n.reference)||void 0===e?void 0:e.content)||void 0===d?void 0:d.product)||void 0===t?void 0:t[0])||void 0===u?void 0:u.productId;return l.includes(r)});return i.sort((o,i)=>{var n,e,d,t,u,r,v,c,a,s,p,m;const f=null===(r=null===(u=null===(t=null===(d=null===(e=null===(n=null==o?void 0:o.products)||void 0===n?void 0:n[0])||void 0===e?void 0:e.reference)||void 0===d?void 0:d.content)||void 0===t?void 0:t.product)||void 0===u?void 0:u[0])||void 0===r?void 0:r.productId,y=null===(m=null===(p=null===(s=null===(a=null===(c=null===(v=null==i?void 0:i.products)||void 0===v?void 0:v[0])||void 0===c?void 0:c.reference)||void 0===a?void 0:a.content)||void 0===s?void 0:s.product)||void 0===p?void 0:p[0])||void 0===m?void 0:m.productId;return l.indexOf(f)-l.indexOf(y)}),i};export{_ as checkGiftOrCashback,A as combineWithSmartPhone,B as combineWithVasOptions,U as fetchFilteredProducts,F as fetchOttItems,S as fetchPegaProducts,R as fetchPrice,k as fetchServiceOptions,N as fetchStaticProductIds,J as filterShogunProducts,M as findHeight,j as getShogunSharedOffer,C as getTimeUntilNextTimerEvent,V as isShogunOfferResolved,P as isTimerActive,E as scheduleFindHeight,x as staticCreateCart};
2
2
  //# sourceMappingURL=Product.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Product.utils.js","sources":["../../../../src/components/StaticLineTable/Product.utils.ts"],"sourcesContent":["import Cookies from 'js-cookie';\nimport { SetStateAction } from 'react';\nimport {\n DEFAULT_MOBILEPOSTPAID_BUNDLE,\n DEFAULT_WIRELINE_BUNDLE,\n ONE_ECOMMERCE_INTERNET_SUMMARY,\n ONE_ECOMMERCE_SUMMARY,\n RATEPLAN,\n TV_SERVICE_OPTION,\n VCTYPE\n} from '../../utils/constants';\nimport { createCartV2, fetchShogunOfferData } from '../../services/LineTableService';\nimport {\n checkLinkWithLang,\n getElementMaximumHeight,\n getLocalStorageWithExpiry,\n redirectWithSuccess,\n SuccessLoaderData\n} from '../../utils/utils';\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\nimport {\n ADDTOCART,\n COMBINEDEVICE,\n GAEVENT,\n LINETABLE,\n LINETABLEDEVICE,\n LINETABLEPRODUCT\n} from '../../Analytics/AnalyticsConstants';\nimport { getEcomCartInfo, trackEligibleItem } from '../../models/Analytics/items';\nimport { AtlOffer, OfferValidation, PegaProductRequestBase } from '../lineTable/lineTable.types';\nimport { calculateDateTime } from './StaticLineTabelTimer/util';\n\nexport const isTimerActive = (startTime: string, endTime: string): boolean => {\n try {\n const now = new Date();\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\n\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\n return false;\n }\n\n return now >= start && now < end;\n } catch {\n return false;\n }\n};\n\nexport const getTimeUntilNextTimerEvent = (startTime: string, endTime: string): number => {\n try {\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\n\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\n return 0;\n }\n\n const now = new Date().getTime();\n const startTimeMs = start.getTime();\n const endTimeMs = end.getTime();\n\n // Next transition is start when timer is upcoming, otherwise end when active.\n if (now < startTimeMs) {\n return Math.max(0, startTimeMs - now);\n }\n if (now >= startTimeMs && now < endTimeMs) {\n return Math.max(0, endTimeMs - now);\n }\n\n return 0;\n } catch {\n return 0;\n }\n};\n\nexport const fetchStaticProductIds = (\n productList: any,\n productId: any,\n bundle4PProduct?: boolean,\n tvOptionIds?: any,\n //US_31295\n pricesToggleState?: any\n): any => {\n let enableStream = false;\n let promotionId = '';\n productList?.map((data: any) => {\n const productRequest: any = {\n id: '',\n promoIds: []\n };\n\n const productData = data?.products?.[0]?.reference?.content?.product?.[0];\n const promotionData = data?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\n promotionId = promotionData?.promotionId;\n productRequest['id'] = productData?.productId;\n const timer = data?.timer?.[0];\n const timerIsActive = timer ? isTimerActive(timer.startTime, timer.endTime) : false;\n const timerPromotionId =\n timer?.promotion?.[0]?.reference?.content?.promoDescription?.[0]?.promotionId;\n const defaultPromotionId =\n pricesToggleState && pricesToggleState === true && promotionData?.promotionId === ''\n ? DEFAULT_MOBILEPOSTPAID_BUNDLE\n : promotionData?.promotionId;\n\n //US_31295 - add default promo only when timer is not active and timer has no promo\n if (timerIsActive && timerPromotionId) {\n productRequest?.promoIds?.push(timerPromotionId);\n } else {\n productRequest?.promoIds?.push(defaultPromotionId);\n }\n\n //for 4P product\n if (bundle4PProduct) {\n const mobilePromotionData =\n data?.mobilePromotion?.[0]?.reference?.content?.promoDescription?.[0];\n productRequest?.promoIds?.push(mobilePromotionData?.promotionId);\n }\n\n productId?.push(productRequest);\n });\n if (enableStream) {\n tvOptionIds?.map((option: any) => {\n const tvOptionObj: any = {\n id: '',\n promoIds: []\n };\n tvOptionObj['id'] = option?.text;\n tvOptionObj?.promoIds?.push(promotionId);\n\n productId?.push(tvOptionObj);\n });\n }\n};\n\nexport const fetchPegaProducts = (\n content: any,\n pegaCustomerInterest?: string,\n placements?: string\n): PegaProductRequestBase => {\n // const url = window?.location?.pathname?.split('/') ?? [];\n // const pathname = url[url.length - 1];\n //set customerInterest as content?.tabCaption capitalize inital letter and after space and then remove spaces - from Other plans into OtherPlans\n const customerInterest = content?.tabCaption\n ?.replace(/\\b\\w/g, (l: string) => l.toUpperCase())\n .replace(/\\s+/g, '');\n\n const offerValidations = [\n {\n key: 'Segment',\n type: 'CustomerType',\n value: 'Residential'\n },\n {\n key: 'OrderType',\n type: 'CustomerInterest',\n value: 'New'\n },\n {\n key: 'CurrentPage',\n type: 'Context',\n value: 'mobile-subscription' //pathname ?? ''\n },\n {\n key: 'Category',\n type: 'CustomerInterest',\n value: customerInterest ?? ''\n },\n {\n key: 'RequestedOfferCount',\n type: 'Context',\n value: content?.pegaRequestOfferCount?.toString() ?? '3'\n },\n pegaCustomerInterest\n ? {\n key: 'Tag',\n type: 'CustomerInterest',\n value: pegaCustomerInterest\n }\n : null\n ].filter(Boolean) as OfferValidation[];\n\n const atlOffers: AtlOffer = {\n placements,\n offerValidations\n };\n\n const pegaProducts: PegaProductRequestBase = {\n atlOffers: [atlOffers]\n };\n\n return pegaProducts;\n};\n\nexport const checkGiftOrCashback = (data: any): any => {\n let showGift = false;\n let cashbackAvailable = false;\n data?.map((product: any) => {\n product?.promotionInfo?.map((offer: any) => {\n if (offer?.hardwareGift) showGift = true;\n if (offer?.cashBack) cashbackAvailable = true;\n });\n });\n return { showGift, cashbackAvailable };\n};\n\nexport const staticCreateCart = (\n setShowLoader: { (value: SetStateAction<boolean>): void; (arg0: boolean): void },\n cartEndPoint: string,\n giftItem: any,\n uniqueProductData: any,\n mainContent: any,\n showPrice: any,\n isMobileFlow: boolean,\n radioValue: any,\n eligibleBundle: any,\n address: any,\n setShowLinecheck: any,\n showLinecheck: any,\n lineCheckCallBack: any,\n enableP2P: any,\n P2PData: any,\n content: any,\n tvOptions?: any,\n discountRef?: string,\n discountVersion?: string,\n // Shogun/rewards (loyalty) flow — forwarded verbatim to createCartV2 so it\n // can append the pointsBurnt note at the item level (RATEPLAN for MOBILE,\n // internet item for FIXNET).\n rewardsInfo?: {\n pointsBurnt?: string | number;\n rewardOfferId?: string | number;\n gloxTokenId?: string | null;\n },\n successLoaderData?: SuccessLoaderData\n): any => {\n if (isMobileFlow) {\n setShowLoader(true);\n const vcType: { voucher: string; voucherType: string } = getLocalStorageWithExpiry(VCTYPE);\n Object.keys(uniqueProductData)?.length !== 0 &&\n createCartV2(\n uniqueProductData,\n '',\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE,\n cartEndPoint,\n 'mobile',\n giftItem,\n enableP2P,\n P2PData,\n mainContent?.productContainer?.[0]?.isQoQaFlow,\n vcType?.voucher,\n null,\n null,\n discountRef,\n discountVersion,\n rewardsInfo\n )\n .then((res: any) => {\n Cookies.remove('one-commerce-cartId', { path: '/' });\n // saving newly created cartid in the cookies.\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEPRODUCT);\n\n redirectWithSuccess(mainContent?.summaryPageUrl?.cached_url, successLoaderData);\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.log(err);\n setShowLoader(false);\n })\n .finally(() => {\n setShowLoader(false);\n });\n } else {\n const linecheckId: any =\n typeof window !== 'undefined' && Cookies.get('one-commerce-linecheckcorrelationid');\n if (!eligibleBundle || !address || !linecheckId) {\n mainContent?.enableLinecheckOverlay ? setShowLinecheck(!showLinecheck) : lineCheckCallBack();\n } else {\n setShowLoader(true);\n uniqueProductData.length !== 0 &&\n createCartV2(\n uniqueProductData,\n radioValue,\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_WIRELINE_BUNDLE,\n cartEndPoint,\n 'fixnet',\n giftItem,\n '',\n '',\n false,\n '',\n '',\n tvOptions,\n undefined,\n undefined,\n rewardsInfo\n )\n .then((res: any) => {\n typeof window !== 'undefined' && Cookies.remove('one-commerce-cartId', { path: '/' });\n // saving newly created cartid in the cookies.\n typeof window !== 'undefined' &&\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\n typeof window !== 'undefined' &&\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\n typeof window !== 'undefined' && Cookies.remove('landline');\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLE);\n const productUrl = checkLinkWithLang(content?.productBasedCheckoutUrl?.cached_url);\n let recommendAccessory = false;\n /**Check if bundle or Internet and add it to cart request*/\n if (uniqueProductData[0]?.isBundle) {\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\n if (\n item?.productType?.toLowerCase() === 'internet' ||\n item?.productType?.toLowerCase() == 'tv'\n ) {\n if (item?.recommendAccessory) {\n recommendAccessory = item?.recommendAccessory;\n }\n }\n // setting to false incase of Mobile product Type as it is currently out of scope\n if (item?.productType?.toLowerCase() === 'mobile') {\n recommendAccessory = false;\n return;\n }\n });\n } else {\n /**Add standlone product such as internet to cart request*/\n if (uniqueProductData?.[0]?.recommendAccessory) {\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\n }\n }\n //setting the session to identify internet flow for mia for win\n if (recommendAccessory) {\n const sessionObj = { flow: 'WIN' };\n sessionStorage.setItem(ONE_ECOMMERCE_SUMMARY, JSON.stringify(sessionObj));\n }\n\n const finalURL = productUrl\n ? productUrl\n : content?.enableTVStreamingOptionsStepper && mainContent?.vasStepperURL?.cached_url\n ? mainContent?.vasStepperURL?.cached_url\n : recommendAccessory && mainContent?.multiItemPageRedirectionUrl?.cached_url\n ? mainContent?.multiItemPageRedirectionUrl?.cached_url\n : mainContent?.summaryPageUrl?.cached_url;\n\n redirectWithSuccess(finalURL, successLoaderData);\n })\n .catch((err: any) => {\n // eslint-disable-next-line no-console\n console.log(err);\n })\n .finally(() => {\n setShowLoader(false);\n });\n }\n }\n};\n\nconst pendingHeightPasses = new Map<number, ReturnType<typeof setTimeout> | boolean>();\n\nconst equalizeSectionGroup = (prefixes: string[], tabIndex: number, cardsLength: number) => {\n const groups: HTMLElement[][] = [];\n\n for (const prefix of prefixes) {\n const idPrefix = `${prefix}${tabIndex}`;\n const elements: HTMLElement[] = [];\n for (let item = 0; item < cardsLength; item++) {\n const element = document.getElementById(`${idPrefix}${item}`);\n if (element) {\n elements.push(element);\n }\n }\n if (elements.length > 0) {\n groups.push(elements);\n }\n }\n\n if (groups.length === 0) {\n return;\n }\n\n // Phase 1: Batch all DOM writes (reset heights)\n for (const elements of groups) {\n for (const element of elements) {\n element.style.height = 'unset';\n }\n }\n\n // Phase 2: Batch all DOM reads (single layout reflow for the entire level)\n const maxHeights = groups.map((elements) =>\n Math.max(...elements.map((element) => element.clientHeight))\n );\n\n // Phase 3: Batch all DOM writes (apply equalized heights)\n groups.forEach((elements, index) => {\n const maxHeight = `${maxHeights[index]}px`;\n for (const element of elements) {\n element.style.height = maxHeight;\n }\n });\n};\n\n// Every card in a tab requests the same pass; run it once per tab before paint when delay is 0.\nexport const scheduleFindHeight = (tabIndex: number, cardsLength: number, delay = 0) => {\n const pending = pendingHeightPasses.get(tabIndex);\n if (pending) {\n if (typeof pending !== 'boolean') {\n clearTimeout(pending);\n } else if (delay <= 0) {\n return;\n }\n }\n\n if (delay <= 0 && typeof queueMicrotask === 'function') {\n pendingHeightPasses.set(tabIndex, true);\n queueMicrotask(() => {\n pendingHeightPasses.delete(tabIndex);\n findHeight(tabIndex, cardsLength);\n });\n return;\n }\n\n pendingHeightPasses.set(\n tabIndex,\n setTimeout(() => {\n pendingHeightPasses.delete(tabIndex);\n findHeight(tabIndex, cardsLength);\n }, delay)\n );\n};\n\nexport const findHeight = (tabIndex: number, cardsLength: number) => {\n const setTimerSectionHeight = () => {\n let maxActiveTimerHeight = 0;\n const timerSections: HTMLElement[] = [];\n\n [...Array(cardsLength)].forEach((_, index) => {\n const timerSection = document.getElementById(`timer-section${tabIndex}${index}`);\n if (timerSection) {\n timerSections.push(timerSection);\n const isTimerActive = timerSection.dataset.timerActive === 'true';\n if (isTimerActive) {\n const spacer = timerSection.firstElementChild as HTMLElement | null;\n // Read the inline style target height instead of clientHeight so that\n // an in-progress CSS transition does not yield an intermediate value.\n const targetHeight = parseFloat(spacer?.style.height || '0') || 0;\n maxActiveTimerHeight = Math.max(maxActiveTimerHeight, targetHeight);\n }\n }\n });\n\n timerSections.forEach((timerSection) => {\n const isTimerActive = timerSection.dataset.timerActive === 'true';\n timerSection.style.transition = 'height 0.3s ease';\n timerSection.style.height = isTimerActive ? '0px' : `${maxActiveTimerHeight}px`;\n });\n };\n\n setTimerSectionHeight();\n\n // Level 1: Equalize independent leaf sections in a single layout pass\n equalizeSectionGroup(\n [\n 'headingV3',\n 'descriptionV3',\n 'titleV3',\n 'product-configv3',\n 'cashback-section',\n 'exclusive-benefits-section',\n 'benefits-section',\n 'price-section',\n 'discountedpricetoggle-section',\n 'contract-section'\n ],\n tabIndex,\n cardsLength\n );\n\n // Level 2: Equalize mid-level parent sections after their children are sized\n equalizeSectionGroup(['detailsectionv3', 'gift-section', 'order-section'], tabIndex, cardsLength);\n\n // Level 3: Equalize outer bottom container after its children are sized\n getElementMaximumHeight('benefits-price-section' + `${tabIndex}`, cardsLength);\n};\n\nconst setMobileSummarySession = (\n promoId: string,\n uniqueProductData: any,\n pretopostvalues?: any,\n showPrice?: any,\n product?: any,\n pegaIntegration?: any\n) => {\n const productPrice = uniqueProductData;\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\n const contractDuration = productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? 0;\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\n const pretopostvalue = pretopostvalues ?? '';\n //PEGA Integration\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n const clientDiscountInfo = pegaIntegration\n ? {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n : null;\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n\n const extraNotes = pegaIntegration ? note : null;\n const urlParams = new URLSearchParams(window.location.search);\n const flow = urlParams.get('flow');\n const sessionObj: any = {\n mobileSubscription: productPrice?.[0]?.id ?? '',\n mobileSubscriptionPrice: discount > 0 ? discount : base,\n mobileSubscriptionPromo: promoId,\n subGroup: 'MOBILE',\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\n basePrice: base,\n withoutPromo: false,\n pretopostvalue: pretopostvalue,\n upBenefit:\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\n clientDiscountInfo: clientDiscountInfo,\n extraNotes: extraNotes,\n isOttFlow: flow === 'ott' ? true : false\n };\n\n typeof window !== undefined &&\n sessionStorage.setItem('one-ecommerce-mobileSummary', JSON.stringify(sessionObj));\n};\n\nexport const combineWithSmartPhone = (\n showPrice: any,\n storyContent: any,\n uniqueProductData: any,\n responseData?: any,\n product?: any,\n pegaIntegration?: boolean\n) => {\n const pretopostvalues = {\n msisdn: responseData?.msisdn ?? '',\n ratePlan: responseData?.ratePlan ?? '',\n ratePlanType: responseData?.ratePlanType ?? '',\n productId: responseData ? showPrice?.id : ''\n };\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\n let Params = '';\n Params = `?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${\n promoId ?? ''\n }&productCode=${showPrice?.id ?? ''}`;\n window.location.href = storyContent?.addSmartPhone?.[0]?.buttonLink?.cached_url + Params;\n setMobileSummarySession(\n promoId,\n uniqueProductData,\n responseData && pretopostvalues,\n showPrice,\n product,\n pegaIntegration\n );\n trackNewDatalayerEvent(\n GAEVENT,\n COMBINEDEVICE,\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\n );\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\n};\n\nconst setFixnetSummarySession = (\n promoId: string,\n uniqueProductData: any,\n showPrice?: any,\n product?: any,\n pegaIntegration?: any,\n productName?: string,\n recommendAccessory?: boolean | undefined\n) => {\n const productPrice = uniqueProductData;\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\n const contractDuration =\n productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? showPrice?.contractDuration ?? 0;\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\n\n //PEGA Integration\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n const clientDiscountInfo = pegaIntegration\n ? {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n : null;\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n\n const extraNotes = pegaIntegration ? note : null;\n\n const sessionObj: any = {\n internetSubscription: productName ?? '',\n internetSubscriptionId: productPrice?.[0]?.id ?? '',\n internetSubscriptionPrice: discount > 0 ? discount : base,\n internetSubscriptionPromo: promoId,\n subGroup: 'INTERNET',\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\n basePrice: base,\n withPromo: discount > 0 ? true : false,\n upBenefit:\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\n clientDiscountInfo: clientDiscountInfo,\n extraNotes: extraNotes,\n productType: 'subscription',\n recommendAccessory: recommendAccessory\n };\n\n typeof window !== undefined &&\n sessionStorage.setItem(ONE_ECOMMERCE_INTERNET_SUMMARY, JSON.stringify(sessionObj));\n};\nexport const combineWithVasOptions = (\n showPrice: any,\n uniqueProductData: any,\n product?: any,\n pegaIntegration?: boolean,\n productName?: string,\n recommendAccessory?: boolean\n) => {\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\n\n setFixnetSummarySession(\n promoId,\n uniqueProductData,\n showPrice,\n product,\n pegaIntegration,\n productName,\n recommendAccessory\n );\n trackNewDatalayerEvent(\n GAEVENT,\n COMBINEDEVICE,\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\n );\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\n};\n\nexport const fetchServiceOptions = (entitlement: any, isMobileFlow: boolean) => {\n let service: any;\n if (!isMobileFlow) {\n service = (entitlement || []).filter((product: any) => product?.enableTV === true);\n }\n return service;\n};\n\nexport const fetchPrice = (\n product: any,\n isMobileFlow: boolean,\n pageType?: string,\n isConfigurator?: boolean,\n tvOptions?: any[],\n pegaIntegration?: boolean\n): any => {\n const showPrice: any = {\n base: '',\n onetimePrice: '',\n discount: [],\n contractDuration: '',\n int_fmc: 0,\n mob_fmc: 0,\n mob_benefit_category: '',\n id: '',\n promoID: '',\n loyaltyPrice: ''\n };\n let tvOptionsBasePrice = 0;\n let tvOptionsDiscountPrice = 0;\n let tvOptionsBaseToDiscount = 0;\n\n Array.isArray(product) &&\n product?.map((item: any) => {\n showPrice['id'] = item?.id ?? '';\n item?.prices?.map((basePrice: any) => {\n if (basePrice?.priceType?.toLowerCase() === 'recurring') {\n if (tvOptions && tvOptions?.length > 0) {\n tvOptions?.forEach((opt: any) => {\n if (opt?.beneficiaryPrice > 0) {\n tvOptionsDiscountPrice += parseFloat(opt?.beneficiaryPrice);\n } else if (opt?.derivedPrice > 0) {\n tvOptionsDiscountPrice += parseFloat(opt?.derivedPrice);\n } else {\n tvOptionsBaseToDiscount += parseFloat(opt?.recurringPrice);\n }\n if (opt?.recurringPrice > 0) {\n tvOptionsBasePrice += parseFloat(opt?.recurringPrice);\n }\n });\n //If one of the options in the list has a discount, other options base price is stored to sum it up in the end\n if (tvOptionsDiscountPrice > 0) {\n tvOptionsDiscountPrice += tvOptionsBaseToDiscount;\n }\n showPrice['base'] = JSON.stringify(\n parseFloat(basePrice?.value) +\n (tvOptionsDiscountPrice > 0 ? tvOptionsDiscountPrice : tvOptionsBasePrice)\n );\n } else {\n showPrice['base'] = basePrice?.value;\n }\n } else if (basePrice?.priceType?.toLowerCase() === 'one time')\n showPrice['onetimePrice'] = basePrice?.value;\n });\n item?.derivedPrice?.map((discountPrice: any) => {\n const cycle = { cycleStart: '', cycleEnd: '', value: '' };\n cycle['cycleStart'] =\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n ? 1\n : discountPrice?.cycle?.cycleStart;\n cycle['cycleEnd'] =\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n ? pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n : discountPrice?.cycle?.cycleEnd;\n cycle['value'] = discountPrice?.value;\n if (tvOptions && tvOptions?.length > 0) {\n if (tvOptionsDiscountPrice > 0) {\n cycle['value'] = JSON.stringify(\n parseFloat(discountPrice?.value) + tvOptionsDiscountPrice\n );\n } else {\n cycle['value'] = JSON.stringify(parseFloat(discountPrice?.value) + tvOptionsBasePrice);\n }\n }\n showPrice['discount'].push(cycle);\n });\n // Calculating loyalty price introduced with DC portfolio\n if (item?.promotionInfo?.[0]?.relatedPromo?.length > 0) {\n item?.promotionInfo?.[0]?.relatedPromo?.map((promo: any) => {\n if (promo?.type === 'LOYALTY_DISCOUNT') {\n showPrice['loyaltyPrice'] = promo?.discount;\n }\n });\n }\n });\n\n product?.[0]?.bundledOffers?.forEach((item: any) => {\n item?.prices?.forEach((productDetails: any) => {\n if (productDetails?.priceAlteration?.length > 0) {\n productDetails?.priceAlteration?.forEach((price: any) => {\n if (price?.priceCategory == 'INTERNET_FMC') {\n showPrice['int_fmc'] += Number(price?.value);\n } else if (\n price?.priceCategory == 'MULTIMOBILE' ||\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\n price?.priceCategory == 'FMC'\n ) {\n showPrice['mob_fmc'] += Number(price?.value);\n showPrice['mob_benefit_category'] = price?.priceCategory;\n }\n });\n }\n });\n if (item?.contractDuration) {\n showPrice['contractDuration'] = item?.contractDuration; // for bundled products contract duration is taken from bundled offers\n }\n if (item?.promotionInfo?.[0]?.id && !pegaIntegration) {\n showPrice['promoID'] = item?.promotionInfo?.[0]?.id;\n }\n });\n if (!product?.[0]?.isBundle) {\n showPrice['contractDuration'] = product?.[0]?.contractDuration; // for other products\n if (!pegaIntegration) {\n showPrice['promoID'] = product?.[0]?.promotionInfo?.[0]?.id;\n }\n }\n let int_fmc = 0;\n product?.[0]?.prices?.map((productDetails: any) => {\n if (productDetails?.priceAlteration?.length > 0) {\n productDetails?.priceAlteration?.map((price: any) => {\n if (price?.priceCategory == 'INTERNET_FMC') {\n int_fmc += Number(price?.value);\n } else if (\n price?.priceCategory == 'MULTIMOBILE' ||\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\n price?.priceCategory == 'FMC'\n ) {\n showPrice['mob_fmc'] += Number(price?.value);\n showPrice['mob_benefit_category'] = price?.priceCategory;\n }\n });\n }\n });\n if (!showPrice?.contractDuration && !isMobileFlow) {\n showPrice['contractDuration'] = '12';\n }\n {\n showPrice['int_fmc'] = isConfigurator ? int_fmc : showPrice['int_fmc'];\n }\n if (pageType == '4P') {\n let bundleContractDuration = '0';\n product?.[0]?.bundledOffers?.map((offerData: any) => {\n if (offerData?.contractDuration) {\n bundleContractDuration =\n Number(bundleContractDuration) > Number(offerData?.contractDuration)\n ? bundleContractDuration\n : offerData?.contractDuration;\n }\n });\n showPrice['contractDuration'] = bundleContractDuration;\n }\n return showPrice;\n};\n\n//function for creating different array for 3 selections\nexport const fetchFilteredProducts = (productList: any, toggleState: any) => {\n //need to centralize for comman solution\n // Filter productList based on gigaSpeed toggle - US #363853\n let filteredList = productList;\n\n filteredList = productList.filter((item: any) => {\n const gigaSpeedValue = item?.gigaSpeed?.toLowerCase();\n if (toggleState?.gigaSpeed) {\n return gigaSpeedValue != 'hide';\n } else {\n return gigaSpeedValue != 'show';\n }\n });\n\n let mainArray = filteredList;\n const numberOfArray = 3;\n let res1 = [];\n let res2 = [];\n let res3 = [];\n for (let item of mainArray) {\n const multiIndex = item?.productIndex?.includes(',');\n const updatedMultiIndex = multiIndex && item?.productIndex?.split(',');\n if (multiIndex) {\n for (let mIndex of updatedMultiIndex) {\n for (let i = 0; i < numberOfArray; i++) {\n if (Number(mIndex) === i) {\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\n }\n }\n }\n } else {\n for (let i = 0; i < numberOfArray; i++) {\n if (Number(item?.productIndex) === i) {\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\n }\n }\n }\n }\n const displayContent =\n toggleState?.TV && toggleState?.Netflix ? res3 : toggleState?.TV ? res2 : res1;\n return displayContent;\n};\nexport const fetchOttItems = (ottCartData: any) => {\n return (ottCartData?.products || [])?.map((products: any) => ({\n itemType: products?.type ?? '',\n promotionId: products?.promo ?? '',\n items: [\n {\n itemType: products?.type === TV_SERVICE_OPTION ? TV_SERVICE_OPTION : RATEPLAN,\n id: products?.id ?? ''\n }\n ]\n }));\n};\n\n// ─── Shogun shared-offer cache ────────────────────────────────────────────────\n\ninterface ShogunOfferCacheEntry {\n gloxTokenId: string;\n results: any[] | null;\n promise: Promise<any[]> | null;\n}\n\nlet shogunOfferSharedCache: ShogunOfferCacheEntry | null = null;\n\n/**\n * Returns true when the shared cache already holds resolved results for the\n * given token. Callers can use this to skip triggering a loading state.\n */\nexport const isShogunOfferResolved = (gloxTokenId: string): boolean =>\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId && shogunOfferSharedCache.results !== null;\n\n/**\n * Shared-promise manager for the Shogun offer API.\n *\n * Because the Shogun flow sends no product payload (only gloxTokenId) the\n * response is identical for every StaticProductContainer on the page.\n * This function ensures exactly one network request is made:\n * - If results are already resolved → returns Promise.resolve(results)\n * - If a fetch is in-flight → returns the same promise\n * - First caller → creates the fetch and stores the promise\n *\n * On failure the promise rejects — the caller is responsible for surfacing\n * the error (e.g. showing the telesales/error popup). The failure is NOT\n * cached, so a retry (e.g. tab switch) will trigger a fresh request.\n */\nexport const getShogunSharedOffer = (\n gloxTokenId: string,\n uniqueId: string,\n offerEndpoint: string\n): Promise<any[]> => {\n // Already resolved\n if (isShogunOfferResolved(gloxTokenId)) {\n return Promise.resolve(shogunOfferSharedCache!.results!);\n }\n\n // In-flight\n if (\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\n shogunOfferSharedCache.promise !== null\n ) {\n return shogunOfferSharedCache.promise;\n }\n\n // First caller — start the real fetch\n const fetchPromise: Promise<any[]> = fetchShogunOfferData(gloxTokenId, uniqueId, offerEndpoint)\n .then((resp: any) => {\n const results: any[] = resp?.[uniqueId] ?? [];\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\n shogunOfferSharedCache.results = results;\n shogunOfferSharedCache.promise = null;\n }\n return results;\n })\n .catch((err: any) => {\n // Clear the cache entry so the next call retries the API.\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\n shogunOfferSharedCache = null;\n }\n throw err;\n });\n\n shogunOfferSharedCache = { gloxTokenId, results: null, promise: fetchPromise };\n return fetchPromise;\n};\n\n/**\n * Filters and sorts the Storyblok product list to match only the products\n * returned by the Shogun offer API, preserving the API response order.\n */\nexport const filterShogunProducts = (\n availableProducts: any[],\n shogunProductIds: string[]\n): any[] => {\n const filtered = availableProducts.filter((product: any) => {\n const productId = product?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n return shogunProductIds.includes(productId);\n });\n\n filtered.sort((a: any, b: any) => {\n const aId = a?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n const bId = b?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n return shogunProductIds.indexOf(aId) - shogunProductIds.indexOf(bId);\n });\n\n return filtered;\n};\n"],"names":["isTimerActive","startTime","endTime","now","Date","start","calculateDateTime","replace","end","Number","isNaN","getTime","_a","getTimeUntilNextTimerEvent","startTimeMs","endTimeMs","Math","max","fetchStaticProductIds","productList","productId","bundle4PProduct","tvOptionIds","pricesToggleState","map","data","productRequest","id","promoIds","productData","_e","_d","_c","_b","products","reference","content","product","promotionData","_k","_j","_h","_g","_f","promotion","promoDescription","promotionId","timer","_l","timerIsActive","timerPromotionId","_s","_r","_q","_p","_o","_m","defaultPromotionId","DEFAULT_MOBILEPOSTPAID_BUNDLE","_t","push","_u","mobilePromotionData","_z","_y","_x","_w","_v","mobilePromotion","_0","fetchPegaProducts","pegaCustomerInterest","placements","customerInterest","tabCaption","l","toUpperCase","atlOffers","offerValidations","key","type","value","pegaRequestOfferCount","toString","filter","Boolean","checkGiftOrCashback","showGift","cashbackAvailable","promotionInfo","offer","hardwareGift","cashBack","staticCreateCart","setShowLoader","cartEndPoint","giftItem","uniqueProductData","mainContent","showPrice","isMobileFlow","radioValue","eligibleBundle","address","setShowLinecheck","showLinecheck","lineCheckCallBack","enableP2P","P2PData","tvOptions","discountRef","discountVersion","rewardsInfo","successLoaderData","vcType","getLocalStorageWithExpiry","VCTYPE","Object","keys","length","createCartV2","promoID","productContainer","isQoQaFlow","voucher","then","res","Cookies","remove","path","set","trackEligibleItem","ADDTOCART","LINETABLEPRODUCT","redirectWithSuccess","summaryPageUrl","cached_url","catch","err","console","log","finally","linecheckId","window","get","DEFAULT_WIRELINE_BUNDLE","undefined","LINETABLE","productUrl","checkLinkWithLang","productBasedCheckoutUrl","recommendAccessory","isBundle","bundledOffers","item","productType","toLowerCase","sessionObj","flow","sessionStorage","setItem","ONE_ECOMMERCE_SUMMARY","JSON","stringify","finalURL","enableTVStreamingOptionsStepper","vasStepperURL","multiItemPageRedirectionUrl","enableLinecheckOverlay","pendingHeightPasses","Map","equalizeSectionGroup","prefixes","tabIndex","cardsLength","groups","prefix","idPrefix","elements","element","document","getElementById","style","height","maxHeights","clientHeight","forEach","index","maxHeight","scheduleFindHeight","delay","pending","clearTimeout","queueMicrotask","delete","findHeight","setTimeout","maxActiveTimerHeight","timerSections","Array","_","timerSection","dataset","timerActive","spacer","firstElementChild","targetHeight","parseFloat","transition","setTimerSectionHeight","getElementMaximumHeight","combineWithSmartPhone","storyContent","responseData","pegaIntegration","pretopostvalues","msisdn","ratePlan","ratePlanType","promoId","Params","location","href","addSmartPhone","buttonLink","productPrice","base","prices","discount","derivedPrice","contractDuration","campaignDuration","pretopostvalue","version","clientDiscountInfo","discountType","note","author","text","extraNotes","URLSearchParams","search","mobileSubscription","mobileSubscriptionPrice","mobileSubscriptionPromo","subGroup","duration","basePrice","withoutPromo","upBenefit","mob_benefit_category","ultimateBundlePromo","ultimateBundlePromotion","isOttFlow","setMobileSummarySession","trackNewDatalayerEvent","GAEVENT","COMBINEDEVICE","getEcomCartInfo","LINETABLEDEVICE","combineWithVasOptions","productName","internetSubscription","internetSubscriptionId","internetSubscriptionPrice","internetSubscriptionPromo","withPromo","_1","ONE_ECOMMERCE_INTERNET_SUMMARY","setFixnetSummarySession","fetchServiceOptions","entitlement","service","enableTV","fetchPrice","pageType","isConfigurator","onetimePrice","int_fmc","mob_fmc","loyaltyPrice","tvOptionsBasePrice","tvOptionsDiscountPrice","tvOptionsBaseToDiscount","isArray","priceType","opt","beneficiaryPrice","recurringPrice","discountPrice","cycle","cycleStart","cycleEnd","relatedPromo","promo","productDetails","priceAlteration","price","priceCategory","bundleContractDuration","offerData","fetchFilteredProducts","toggleState","filteredList","gigaSpeedValue","gigaSpeed","mainArray","res1","res2","res3","multiIndex","productIndex","includes","updatedMultiIndex","split","mIndex","i","TV","Netflix","fetchOttItems","ottCartData","itemType","items","TV_SERVICE_OPTION","RATEPLAN","shogunOfferSharedCache","isShogunOfferResolved","gloxTokenId","results","getShogunSharedOffer","uniqueId","offerEndpoint","Promise","resolve","promise","fetchPromise","fetchShogunOfferData","resp","filterShogunProducts","availableProducts","shogunProductIds","filtered","sort","a","b","aId","bId","indexOf"],"mappings":"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"}
1
+ {"version":3,"file":"Product.utils.js","sources":["../../../../src/components/StaticLineTable/Product.utils.ts"],"sourcesContent":["import Cookies from 'js-cookie';\nimport { SetStateAction } from 'react';\nimport {\n DEFAULT_MOBILEPOSTPAID_BUNDLE,\n DEFAULT_WIRELINE_BUNDLE,\n ONE_ECOMMERCE_INTERNET_SUMMARY,\n ONE_ECOMMERCE_SUMMARY,\n RATEPLAN,\n TV_SERVICE_OPTION,\n VCTYPE\n} from '../../utils/constants';\nimport { createCartV2, fetchShogunOfferData } from '../../services/LineTableService';\nimport {\n checkLinkWithLang,\n getElementMaximumHeight,\n getLocalStorageWithExpiry,\n redirectWithSuccess,\n SuccessLoaderData\n} from '../../utils/utils';\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\nimport {\n ADDTOCART,\n COMBINEDEVICE,\n GAEVENT,\n LINETABLE,\n LINETABLEDEVICE,\n LINETABLEPRODUCT\n} from '../../Analytics/AnalyticsConstants';\nimport { getEcomCartInfo, trackEligibleItem } from '../../models/Analytics/items';\nimport { AtlOffer, OfferValidation, PegaProductRequestBase } from '../lineTable/lineTable.types';\nimport { calculateDateTime } from './StaticLineTabelTimer/util';\n\nexport const isTimerActive = (startTime: string, endTime: string): boolean => {\n try {\n const now = new Date();\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\n\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\n return false;\n }\n\n return now >= start && now < end;\n } catch {\n return false;\n }\n};\n\nexport const getTimeUntilNextTimerEvent = (startTime: string, endTime: string): number => {\n try {\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\n\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\n return 0;\n }\n\n const now = new Date().getTime();\n const startTimeMs = start.getTime();\n const endTimeMs = end.getTime();\n\n // Next transition is start when timer is upcoming, otherwise end when active.\n if (now < startTimeMs) {\n return Math.max(0, startTimeMs - now);\n }\n if (now >= startTimeMs && now < endTimeMs) {\n return Math.max(0, endTimeMs - now);\n }\n\n return 0;\n } catch {\n return 0;\n }\n};\n\nexport const fetchStaticProductIds = (\n productList: any,\n productId: any,\n bundle4PProduct?: boolean,\n tvOptionIds?: any,\n //US_31295\n pricesToggleState?: any\n): any => {\n let enableStream = false;\n let promotionId = '';\n productList?.map((data: any) => {\n const productRequest: any = {\n id: '',\n promoIds: []\n };\n\n const productData = data?.products?.[0]?.reference?.content?.product?.[0];\n const promotionData = data?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\n promotionId = promotionData?.promotionId;\n productRequest['id'] = productData?.productId;\n const timer = data?.timer?.[0];\n const timerIsActive = timer ? isTimerActive(timer.startTime, timer.endTime) : false;\n const timerPromotionId =\n timer?.promotion?.[0]?.reference?.content?.promoDescription?.[0]?.promotionId;\n const defaultPromotionId =\n pricesToggleState && pricesToggleState === true && promotionData?.promotionId === ''\n ? DEFAULT_MOBILEPOSTPAID_BUNDLE\n : promotionData?.promotionId;\n\n //US_31295 - add default promo only when timer is not active and timer has no promo\n if (timerIsActive && timerPromotionId) {\n productRequest?.promoIds?.push(timerPromotionId);\n } else {\n productRequest?.promoIds?.push(defaultPromotionId);\n }\n\n //for 4P product\n if (bundle4PProduct) {\n const mobilePromotionData =\n data?.mobilePromotion?.[0]?.reference?.content?.promoDescription?.[0];\n productRequest?.promoIds?.push(mobilePromotionData?.promotionId);\n }\n\n productId?.push(productRequest);\n });\n if (enableStream) {\n tvOptionIds?.map((option: any) => {\n const tvOptionObj: any = {\n id: '',\n promoIds: []\n };\n tvOptionObj['id'] = option?.text;\n tvOptionObj?.promoIds?.push(promotionId);\n\n productId?.push(tvOptionObj);\n });\n }\n};\n\nexport const fetchPegaProducts = (\n content: any,\n pegaCustomerInterest?: string,\n placements?: string\n): PegaProductRequestBase => {\n // const url = window?.location?.pathname?.split('/') ?? [];\n // const pathname = url[url.length - 1];\n //set customerInterest as content?.tabCaption capitalize inital letter and after space and then remove spaces - from Other plans into OtherPlans\n const customerInterest = content?.tabCaption\n ?.replace(/\\b\\w/g, (l: string) => l.toUpperCase())\n .replace(/\\s+/g, '');\n\n const offerValidations = [\n {\n key: 'Segment',\n type: 'CustomerType',\n value: 'Residential'\n },\n {\n key: 'OrderType',\n type: 'CustomerInterest',\n value: 'New'\n },\n {\n key: 'CurrentPage',\n type: 'Context',\n value: 'mobile-subscription' //pathname ?? ''\n },\n {\n key: 'Category',\n type: 'CustomerInterest',\n value: customerInterest ?? ''\n },\n {\n key: 'RequestedOfferCount',\n type: 'Context',\n value: content?.pegaRequestOfferCount?.toString() ?? '3'\n },\n pegaCustomerInterest\n ? {\n key: 'Tag',\n type: 'CustomerInterest',\n value: pegaCustomerInterest\n }\n : null\n ].filter(Boolean) as OfferValidation[];\n\n const atlOffers: AtlOffer = {\n placements,\n offerValidations\n };\n\n const pegaProducts: PegaProductRequestBase = {\n atlOffers: [atlOffers]\n };\n\n return pegaProducts;\n};\n\nexport const checkGiftOrCashback = (data: any): any => {\n let showGift = false;\n let cashbackAvailable = false;\n data?.map((product: any) => {\n product?.promotionInfo?.map((offer: any) => {\n if (offer?.hardwareGift) showGift = true;\n if (offer?.cashBack) cashbackAvailable = true;\n });\n });\n return { showGift, cashbackAvailable };\n};\n\nexport const staticCreateCart = (\n setShowLoader: { (value: SetStateAction<boolean>): void; (arg0: boolean): void },\n cartEndPoint: string,\n giftItem: any,\n uniqueProductData: any,\n mainContent: any,\n showPrice: any,\n isMobileFlow: boolean,\n radioValue: any,\n eligibleBundle: any,\n address: any,\n setShowLinecheck: any,\n showLinecheck: any,\n lineCheckCallBack: any,\n enableP2P: any,\n P2PData: any,\n content: any,\n tvOptions?: any,\n discountRef?: string,\n discountVersion?: string,\n // Shogun/rewards (loyalty) flow — forwarded verbatim to createCartV2 so it\n // can append the pointsBurnt note at the item level (RATEPLAN for MOBILE,\n // internet item for FIXNET).\n rewardsInfo?: {\n pointsBurnt?: string | number;\n rewardOfferId?: string | number;\n gloxTokenId?: string | null;\n },\n successLoaderData?: SuccessLoaderData\n): any => {\n if (isMobileFlow) {\n setShowLoader(true);\n const vcType: { voucher: string; voucherType: string } = getLocalStorageWithExpiry(VCTYPE);\n Object.keys(uniqueProductData)?.length !== 0 &&\n createCartV2(\n uniqueProductData,\n '',\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE,\n cartEndPoint,\n 'mobile',\n giftItem,\n enableP2P,\n P2PData,\n mainContent?.productContainer?.[0]?.isQoQaFlow,\n vcType?.voucher,\n null,\n null,\n discountRef,\n discountVersion,\n rewardsInfo\n )\n .then((res: any) => {\n Cookies.remove('one-commerce-cartId', { path: '/' });\n // saving newly created cartid in the cookies.\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEPRODUCT);\n\n redirectWithSuccess(mainContent?.summaryPageUrl?.cached_url, successLoaderData);\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.log(err);\n setShowLoader(false);\n })\n .finally(() => {\n setShowLoader(false);\n });\n } else {\n const linecheckId: any =\n typeof window !== 'undefined' && Cookies.get('one-commerce-linecheckcorrelationid');\n if (!eligibleBundle || !address || !linecheckId) {\n mainContent?.enableLinecheckOverlay ? setShowLinecheck(!showLinecheck) : lineCheckCallBack();\n } else {\n setShowLoader(true);\n uniqueProductData.length !== 0 &&\n createCartV2(\n uniqueProductData,\n radioValue,\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_WIRELINE_BUNDLE,\n cartEndPoint,\n 'fixnet',\n giftItem,\n '',\n '',\n false,\n '',\n '',\n tvOptions,\n undefined,\n undefined,\n rewardsInfo\n )\n .then((res: any) => {\n typeof window !== 'undefined' && Cookies.remove('one-commerce-cartId', { path: '/' });\n // saving newly created cartid in the cookies.\n typeof window !== 'undefined' &&\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\n typeof window !== 'undefined' &&\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\n typeof window !== 'undefined' && Cookies.remove('landline');\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLE);\n const productUrl = checkLinkWithLang(content?.productBasedCheckoutUrl?.cached_url);\n let recommendAccessory = false;\n /**Check if bundle or Internet and add it to cart request*/\n if (uniqueProductData[0]?.isBundle) {\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\n if (\n item?.productType?.toLowerCase() === 'internet' ||\n item?.productType?.toLowerCase() == 'tv'\n ) {\n if (item?.recommendAccessory) {\n recommendAccessory = item?.recommendAccessory;\n }\n }\n // setting to false incase of Mobile product Type as it is currently out of scope\n if (item?.productType?.toLowerCase() === 'mobile') {\n recommendAccessory = false;\n return;\n }\n });\n } else {\n /**Add standlone product such as internet to cart request*/\n if (uniqueProductData?.[0]?.recommendAccessory) {\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\n }\n }\n //setting the session to identify internet flow for mia for win\n if (recommendAccessory) {\n const sessionObj = { flow: 'WIN' };\n sessionStorage.setItem(ONE_ECOMMERCE_SUMMARY, JSON.stringify(sessionObj));\n }\n\n const finalURL = productUrl\n ? productUrl\n : content?.enableTVStreamingOptionsStepper && mainContent?.vasStepperURL?.cached_url\n ? mainContent?.vasStepperURL?.cached_url\n : recommendAccessory && mainContent?.multiItemPageRedirectionUrl?.cached_url\n ? mainContent?.multiItemPageRedirectionUrl?.cached_url\n : mainContent?.summaryPageUrl?.cached_url;\n\n redirectWithSuccess(finalURL, successLoaderData);\n })\n .catch((err: any) => {\n // eslint-disable-next-line no-console\n console.log(err);\n })\n .finally(() => {\n setShowLoader(false);\n });\n }\n }\n};\n\nconst pendingHeightPasses = new Map<number, ReturnType<typeof setTimeout> | boolean>();\n\nconst equalizeSectionGroup = (prefixes: string[], tabIndex: number, cardsLength: number) => {\n const groups: HTMLElement[][] = [];\n\n for (const prefix of prefixes) {\n const idPrefix = `${prefix}${tabIndex}`;\n const elements: HTMLElement[] = [];\n for (let item = 0; item < cardsLength; item++) {\n const element = document.getElementById(`${idPrefix}${item}`);\n if (element) {\n elements.push(element);\n }\n }\n if (elements.length > 0) {\n groups.push(elements);\n }\n }\n\n if (groups.length === 0) {\n return;\n }\n\n // Phase 1: Batch all DOM writes (reset heights)\n for (const elements of groups) {\n for (const element of elements) {\n element.style.height = 'unset';\n }\n }\n\n // Phase 2: Batch all DOM reads (single layout reflow for the entire level)\n const maxHeights = groups.map((elements) =>\n Math.max(...elements.map((element) => element.clientHeight))\n );\n\n // Phase 3: Batch all DOM writes (apply equalized heights)\n groups.forEach((elements, index) => {\n const maxHeight = `${maxHeights[index]}px`;\n for (const element of elements) {\n element.style.height = maxHeight;\n }\n });\n};\n\n// Every card in a tab requests the same pass; run it once per tab before paint when delay is 0.\nexport const scheduleFindHeight = (tabIndex: number, cardsLength: number, delay = 0) => {\n const pending = pendingHeightPasses.get(tabIndex);\n if (pending) {\n if (typeof pending !== 'boolean') {\n clearTimeout(pending);\n } else if (delay <= 0) {\n return;\n }\n }\n\n if (delay <= 0 && typeof queueMicrotask === 'function') {\n pendingHeightPasses.set(tabIndex, true);\n queueMicrotask(() => {\n pendingHeightPasses.delete(tabIndex);\n findHeight(tabIndex, cardsLength);\n });\n return;\n }\n\n pendingHeightPasses.set(\n tabIndex,\n setTimeout(() => {\n pendingHeightPasses.delete(tabIndex);\n findHeight(tabIndex, cardsLength);\n }, delay)\n );\n};\n\nexport const findHeight = (tabIndex: number, cardsLength: number) => {\n const setTimerSectionHeight = () => {\n let maxActiveTimerHeight = 0;\n const timerSections: HTMLElement[] = [];\n\n [...Array(cardsLength)].forEach((_, index) => {\n const timerSection = document.getElementById(`timer-section${tabIndex}${index}`);\n if (timerSection) {\n timerSections.push(timerSection);\n const isTimerActive = timerSection.dataset.timerActive === 'true';\n if (isTimerActive) {\n const spacer = timerSection.firstElementChild as HTMLElement | null;\n // Read the inline style target height instead of clientHeight so that\n // an in-progress CSS transition does not yield an intermediate value.\n const targetHeight = parseFloat(spacer?.style.height || '0') || 0;\n maxActiveTimerHeight = Math.max(maxActiveTimerHeight, targetHeight);\n }\n }\n });\n\n timerSections.forEach((timerSection) => {\n const isTimerActive = timerSection.dataset.timerActive === 'true';\n timerSection.style.transition = 'height 0.3s ease';\n timerSection.style.height = isTimerActive ? '0px' : `${maxActiveTimerHeight}px`;\n });\n };\n\n setTimerSectionHeight();\n\n const entitlementPrefixes = new Set<string>();\n document.querySelectorAll<HTMLElement>(`[data-entitlement-tab=\"${tabIndex}\"]`).forEach((element) => {\n entitlementPrefixes.add(`entitlement-row-${element.dataset.entitlementRow}-`);\n });\n equalizeSectionGroup([...entitlementPrefixes], tabIndex, cardsLength);\n\n // Level 1: Equalize independent leaf sections in a single layout pass\n equalizeSectionGroup(\n [\n 'headingV3',\n 'descriptionV3',\n 'titleV3',\n 'product-configv3',\n 'cashback-section',\n 'exclusive-benefits-section',\n 'benefits-section',\n 'price-section',\n 'discountedpricetoggle-section',\n 'contract-section'\n ],\n tabIndex,\n cardsLength\n );\n\n // Level 2: Equalize mid-level parent sections after their children are sized\n equalizeSectionGroup(['detailsectionv3', 'gift-section', 'order-section'], tabIndex, cardsLength);\n\n // Level 3: Equalize outer bottom container after its children are sized\n getElementMaximumHeight('benefits-price-section' + `${tabIndex}`, cardsLength);\n};\n\nconst setMobileSummarySession = (\n promoId: string,\n uniqueProductData: any,\n pretopostvalues?: any,\n showPrice?: any,\n product?: any,\n pegaIntegration?: any\n) => {\n const productPrice = uniqueProductData;\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\n const contractDuration = productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? 0;\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\n const pretopostvalue = pretopostvalues ?? '';\n //PEGA Integration\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n const clientDiscountInfo = pegaIntegration\n ? {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n : null;\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n\n const extraNotes = pegaIntegration ? note : null;\n const urlParams = new URLSearchParams(window.location.search);\n const flow = urlParams.get('flow');\n const sessionObj: any = {\n mobileSubscription: productPrice?.[0]?.id ?? '',\n mobileSubscriptionPrice: discount > 0 ? discount : base,\n mobileSubscriptionPromo: promoId,\n subGroup: 'MOBILE',\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\n basePrice: base,\n withoutPromo: false,\n pretopostvalue: pretopostvalue,\n upBenefit:\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\n clientDiscountInfo: clientDiscountInfo,\n extraNotes: extraNotes,\n isOttFlow: flow === 'ott' ? true : false\n };\n\n typeof window !== undefined &&\n sessionStorage.setItem('one-ecommerce-mobileSummary', JSON.stringify(sessionObj));\n};\n\nexport const combineWithSmartPhone = (\n showPrice: any,\n storyContent: any,\n uniqueProductData: any,\n responseData?: any,\n product?: any,\n pegaIntegration?: boolean\n) => {\n const pretopostvalues = {\n msisdn: responseData?.msisdn ?? '',\n ratePlan: responseData?.ratePlan ?? '',\n ratePlanType: responseData?.ratePlanType ?? '',\n productId: responseData ? showPrice?.id : ''\n };\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\n let Params = '';\n Params = `?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${\n promoId ?? ''\n }&productCode=${showPrice?.id ?? ''}`;\n window.location.href = storyContent?.addSmartPhone?.[0]?.buttonLink?.cached_url + Params;\n setMobileSummarySession(\n promoId,\n uniqueProductData,\n responseData && pretopostvalues,\n showPrice,\n product,\n pegaIntegration\n );\n trackNewDatalayerEvent(\n GAEVENT,\n COMBINEDEVICE,\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\n );\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\n};\n\nconst setFixnetSummarySession = (\n promoId: string,\n uniqueProductData: any,\n showPrice?: any,\n product?: any,\n pegaIntegration?: any,\n productName?: string,\n recommendAccessory?: boolean | undefined\n) => {\n const productPrice = uniqueProductData;\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\n const contractDuration =\n productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? showPrice?.contractDuration ?? 0;\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\n\n //PEGA Integration\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n const clientDiscountInfo = pegaIntegration\n ? {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n : null;\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n\n const extraNotes = pegaIntegration ? note : null;\n\n const sessionObj: any = {\n internetSubscription: productName ?? '',\n internetSubscriptionId: productPrice?.[0]?.id ?? '',\n internetSubscriptionPrice: discount > 0 ? discount : base,\n internetSubscriptionPromo: promoId,\n subGroup: 'INTERNET',\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\n basePrice: base,\n withPromo: discount > 0 ? true : false,\n upBenefit:\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\n clientDiscountInfo: clientDiscountInfo,\n extraNotes: extraNotes,\n productType: 'subscription',\n recommendAccessory: recommendAccessory\n };\n\n typeof window !== undefined &&\n sessionStorage.setItem(ONE_ECOMMERCE_INTERNET_SUMMARY, JSON.stringify(sessionObj));\n};\nexport const combineWithVasOptions = (\n showPrice: any,\n uniqueProductData: any,\n product?: any,\n pegaIntegration?: boolean,\n productName?: string,\n recommendAccessory?: boolean\n) => {\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\n\n setFixnetSummarySession(\n promoId,\n uniqueProductData,\n showPrice,\n product,\n pegaIntegration,\n productName,\n recommendAccessory\n );\n trackNewDatalayerEvent(\n GAEVENT,\n COMBINEDEVICE,\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\n );\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\n};\n\nexport const fetchServiceOptions = (entitlement: any, isMobileFlow: boolean) => {\n let service: any;\n if (!isMobileFlow) {\n service = (entitlement || []).filter((product: any) => product?.enableTV === true);\n }\n return service;\n};\n\nexport const fetchPrice = (\n product: any,\n isMobileFlow: boolean,\n pageType?: string,\n isConfigurator?: boolean,\n tvOptions?: any[],\n pegaIntegration?: boolean\n): any => {\n const showPrice: any = {\n base: '',\n onetimePrice: '',\n discount: [],\n contractDuration: '',\n int_fmc: 0,\n mob_fmc: 0,\n mob_benefit_category: '',\n id: '',\n promoID: '',\n loyaltyPrice: ''\n };\n let tvOptionsBasePrice = 0;\n let tvOptionsDiscountPrice = 0;\n let tvOptionsBaseToDiscount = 0;\n\n Array.isArray(product) &&\n product?.map((item: any) => {\n showPrice['id'] = item?.id ?? '';\n item?.prices?.map((basePrice: any) => {\n if (basePrice?.priceType?.toLowerCase() === 'recurring') {\n if (tvOptions && tvOptions?.length > 0) {\n tvOptions?.forEach((opt: any) => {\n if (opt?.beneficiaryPrice > 0) {\n tvOptionsDiscountPrice += parseFloat(opt?.beneficiaryPrice);\n } else if (opt?.derivedPrice > 0) {\n tvOptionsDiscountPrice += parseFloat(opt?.derivedPrice);\n } else {\n tvOptionsBaseToDiscount += parseFloat(opt?.recurringPrice);\n }\n if (opt?.recurringPrice > 0) {\n tvOptionsBasePrice += parseFloat(opt?.recurringPrice);\n }\n });\n //If one of the options in the list has a discount, other options base price is stored to sum it up in the end\n if (tvOptionsDiscountPrice > 0) {\n tvOptionsDiscountPrice += tvOptionsBaseToDiscount;\n }\n showPrice['base'] = JSON.stringify(\n parseFloat(basePrice?.value) +\n (tvOptionsDiscountPrice > 0 ? tvOptionsDiscountPrice : tvOptionsBasePrice)\n );\n } else {\n showPrice['base'] = basePrice?.value;\n }\n } else if (basePrice?.priceType?.toLowerCase() === 'one time')\n showPrice['onetimePrice'] = basePrice?.value;\n });\n item?.derivedPrice?.map((discountPrice: any) => {\n const cycle = { cycleStart: '', cycleEnd: '', value: '' };\n cycle['cycleStart'] =\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n ? 1\n : discountPrice?.cycle?.cycleStart;\n cycle['cycleEnd'] =\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n ? pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\n : discountPrice?.cycle?.cycleEnd;\n cycle['value'] = discountPrice?.value;\n if (tvOptions && tvOptions?.length > 0) {\n if (tvOptionsDiscountPrice > 0) {\n cycle['value'] = JSON.stringify(\n parseFloat(discountPrice?.value) + tvOptionsDiscountPrice\n );\n } else {\n cycle['value'] = JSON.stringify(parseFloat(discountPrice?.value) + tvOptionsBasePrice);\n }\n }\n showPrice['discount'].push(cycle);\n });\n // Calculating loyalty price introduced with DC portfolio\n if (item?.promotionInfo?.[0]?.relatedPromo?.length > 0) {\n item?.promotionInfo?.[0]?.relatedPromo?.map((promo: any) => {\n if (promo?.type === 'LOYALTY_DISCOUNT') {\n showPrice['loyaltyPrice'] = promo?.discount;\n }\n });\n }\n });\n\n product?.[0]?.bundledOffers?.forEach((item: any) => {\n item?.prices?.forEach((productDetails: any) => {\n if (productDetails?.priceAlteration?.length > 0) {\n productDetails?.priceAlteration?.forEach((price: any) => {\n if (price?.priceCategory == 'INTERNET_FMC') {\n showPrice['int_fmc'] += Number(price?.value);\n } else if (\n price?.priceCategory == 'MULTIMOBILE' ||\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\n price?.priceCategory == 'FMC'\n ) {\n showPrice['mob_fmc'] += Number(price?.value);\n showPrice['mob_benefit_category'] = price?.priceCategory;\n }\n });\n }\n });\n if (item?.contractDuration) {\n showPrice['contractDuration'] = item?.contractDuration; // for bundled products contract duration is taken from bundled offers\n }\n if (item?.promotionInfo?.[0]?.id && !pegaIntegration) {\n showPrice['promoID'] = item?.promotionInfo?.[0]?.id;\n }\n });\n if (!product?.[0]?.isBundle) {\n showPrice['contractDuration'] = product?.[0]?.contractDuration; // for other products\n if (!pegaIntegration) {\n showPrice['promoID'] = product?.[0]?.promotionInfo?.[0]?.id;\n }\n }\n let int_fmc = 0;\n product?.[0]?.prices?.map((productDetails: any) => {\n if (productDetails?.priceAlteration?.length > 0) {\n productDetails?.priceAlteration?.map((price: any) => {\n if (price?.priceCategory == 'INTERNET_FMC') {\n int_fmc += Number(price?.value);\n } else if (\n price?.priceCategory == 'MULTIMOBILE' ||\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\n price?.priceCategory == 'FMC'\n ) {\n showPrice['mob_fmc'] += Number(price?.value);\n showPrice['mob_benefit_category'] = price?.priceCategory;\n }\n });\n }\n });\n if (!showPrice?.contractDuration && !isMobileFlow) {\n showPrice['contractDuration'] = '12';\n }\n {\n showPrice['int_fmc'] = isConfigurator ? int_fmc : showPrice['int_fmc'];\n }\n if (pageType == '4P') {\n let bundleContractDuration = '0';\n product?.[0]?.bundledOffers?.map((offerData: any) => {\n if (offerData?.contractDuration) {\n bundleContractDuration =\n Number(bundleContractDuration) > Number(offerData?.contractDuration)\n ? bundleContractDuration\n : offerData?.contractDuration;\n }\n });\n showPrice['contractDuration'] = bundleContractDuration;\n }\n return showPrice;\n};\n\n//function for creating different array for 3 selections\nexport const fetchFilteredProducts = (productList: any, toggleState: any) => {\n //need to centralize for comman solution\n // Filter productList based on gigaSpeed toggle - US #363853\n let filteredList = productList;\n\n filteredList = productList.filter((item: any) => {\n const gigaSpeedValue = item?.gigaSpeed?.toLowerCase();\n if (toggleState?.gigaSpeed) {\n return gigaSpeedValue != 'hide';\n } else {\n return gigaSpeedValue != 'show';\n }\n });\n\n let mainArray = filteredList;\n const numberOfArray = 3;\n let res1 = [];\n let res2 = [];\n let res3 = [];\n for (let item of mainArray) {\n const multiIndex = item?.productIndex?.includes(',');\n const updatedMultiIndex = multiIndex && item?.productIndex?.split(',');\n if (multiIndex) {\n for (let mIndex of updatedMultiIndex) {\n for (let i = 0; i < numberOfArray; i++) {\n if (Number(mIndex) === i) {\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\n }\n }\n }\n } else {\n for (let i = 0; i < numberOfArray; i++) {\n if (Number(item?.productIndex) === i) {\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\n }\n }\n }\n }\n const displayContent =\n toggleState?.TV && toggleState?.Netflix ? res3 : toggleState?.TV ? res2 : res1;\n return displayContent;\n};\nexport const fetchOttItems = (ottCartData: any) => {\n return (ottCartData?.products || [])?.map((products: any) => ({\n itemType: products?.type ?? '',\n promotionId: products?.promo ?? '',\n items: [\n {\n itemType: products?.type === TV_SERVICE_OPTION ? TV_SERVICE_OPTION : RATEPLAN,\n id: products?.id ?? ''\n }\n ]\n }));\n};\n\n// ─── Shogun shared-offer cache ────────────────────────────────────────────────\n\ninterface ShogunOfferCacheEntry {\n gloxTokenId: string;\n results: any[] | null;\n promise: Promise<any[]> | null;\n}\n\nlet shogunOfferSharedCache: ShogunOfferCacheEntry | null = null;\n\n/**\n * Returns true when the shared cache already holds resolved results for the\n * given token. Callers can use this to skip triggering a loading state.\n */\nexport const isShogunOfferResolved = (gloxTokenId: string): boolean =>\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId && shogunOfferSharedCache.results !== null;\n\n/**\n * Shared-promise manager for the Shogun offer API.\n *\n * Because the Shogun flow sends no product payload (only gloxTokenId) the\n * response is identical for every StaticProductContainer on the page.\n * This function ensures exactly one network request is made:\n * - If results are already resolved → returns Promise.resolve(results)\n * - If a fetch is in-flight → returns the same promise\n * - First caller → creates the fetch and stores the promise\n *\n * On failure the promise rejects — the caller is responsible for surfacing\n * the error (e.g. showing the telesales/error popup). The failure is NOT\n * cached, so a retry (e.g. tab switch) will trigger a fresh request.\n */\nexport const getShogunSharedOffer = (\n gloxTokenId: string,\n uniqueId: string,\n offerEndpoint: string\n): Promise<any[]> => {\n // Already resolved\n if (isShogunOfferResolved(gloxTokenId)) {\n return Promise.resolve(shogunOfferSharedCache!.results!);\n }\n\n // In-flight\n if (\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\n shogunOfferSharedCache.promise !== null\n ) {\n return shogunOfferSharedCache.promise;\n }\n\n // First caller — start the real fetch\n const fetchPromise: Promise<any[]> = fetchShogunOfferData(gloxTokenId, uniqueId, offerEndpoint)\n .then((resp: any) => {\n const results: any[] = resp?.[uniqueId] ?? [];\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\n shogunOfferSharedCache.results = results;\n shogunOfferSharedCache.promise = null;\n }\n return results;\n })\n .catch((err: any) => {\n // Clear the cache entry so the next call retries the API.\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\n shogunOfferSharedCache = null;\n }\n throw err;\n });\n\n shogunOfferSharedCache = { gloxTokenId, results: null, promise: fetchPromise };\n return fetchPromise;\n};\n\n/**\n * Filters and sorts the Storyblok product list to match only the products\n * returned by the Shogun offer API, preserving the API response order.\n */\nexport const filterShogunProducts = (\n availableProducts: any[],\n shogunProductIds: string[]\n): any[] => {\n const filtered = availableProducts.filter((product: any) => {\n const productId = product?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n return shogunProductIds.includes(productId);\n });\n\n filtered.sort((a: any, b: any) => {\n const aId = a?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n const bId = b?.products?.[0]?.reference?.content?.product?.[0]?.productId;\n return shogunProductIds.indexOf(aId) - shogunProductIds.indexOf(bId);\n });\n\n return filtered;\n};\n"],"names":["isTimerActive","startTime","endTime","now","Date","start","calculateDateTime","replace","end","Number","isNaN","getTime","_a","getTimeUntilNextTimerEvent","startTimeMs","endTimeMs","Math","max","fetchStaticProductIds","productList","productId","bundle4PProduct","tvOptionIds","pricesToggleState","map","data","productRequest","id","promoIds","productData","_e","_d","_c","_b","products","reference","content","product","promotionData","_k","_j","_h","_g","_f","promotion","promoDescription","promotionId","timer","_l","timerIsActive","timerPromotionId","_s","_r","_q","_p","_o","_m","defaultPromotionId","DEFAULT_MOBILEPOSTPAID_BUNDLE","_t","push","_u","mobilePromotionData","_z","_y","_x","_w","_v","mobilePromotion","_0","fetchPegaProducts","pegaCustomerInterest","placements","customerInterest","tabCaption","l","toUpperCase","atlOffers","offerValidations","key","type","value","pegaRequestOfferCount","toString","filter","Boolean","checkGiftOrCashback","showGift","cashbackAvailable","promotionInfo","offer","hardwareGift","cashBack","staticCreateCart","setShowLoader","cartEndPoint","giftItem","uniqueProductData","mainContent","showPrice","isMobileFlow","radioValue","eligibleBundle","address","setShowLinecheck","showLinecheck","lineCheckCallBack","enableP2P","P2PData","tvOptions","discountRef","discountVersion","rewardsInfo","successLoaderData","vcType","getLocalStorageWithExpiry","VCTYPE","Object","keys","length","createCartV2","promoID","productContainer","isQoQaFlow","voucher","then","res","Cookies","remove","path","set","trackEligibleItem","ADDTOCART","LINETABLEPRODUCT","redirectWithSuccess","summaryPageUrl","cached_url","catch","err","console","log","finally","linecheckId","window","get","DEFAULT_WIRELINE_BUNDLE","undefined","LINETABLE","productUrl","checkLinkWithLang","productBasedCheckoutUrl","recommendAccessory","isBundle","bundledOffers","item","productType","toLowerCase","sessionObj","flow","sessionStorage","setItem","ONE_ECOMMERCE_SUMMARY","JSON","stringify","finalURL","enableTVStreamingOptionsStepper","vasStepperURL","multiItemPageRedirectionUrl","enableLinecheckOverlay","pendingHeightPasses","Map","equalizeSectionGroup","prefixes","tabIndex","cardsLength","groups","prefix","idPrefix","elements","element","document","getElementById","style","height","maxHeights","clientHeight","forEach","index","maxHeight","scheduleFindHeight","delay","pending","clearTimeout","queueMicrotask","delete","findHeight","setTimeout","maxActiveTimerHeight","timerSections","Array","_","timerSection","dataset","timerActive","spacer","firstElementChild","targetHeight","parseFloat","transition","setTimerSectionHeight","entitlementPrefixes","Set","querySelectorAll","add","entitlementRow","getElementMaximumHeight","combineWithSmartPhone","storyContent","responseData","pegaIntegration","pretopostvalues","msisdn","ratePlan","ratePlanType","promoId","Params","location","href","addSmartPhone","buttonLink","productPrice","base","prices","discount","derivedPrice","contractDuration","campaignDuration","pretopostvalue","version","clientDiscountInfo","discountType","note","author","text","extraNotes","URLSearchParams","search","mobileSubscription","mobileSubscriptionPrice","mobileSubscriptionPromo","subGroup","duration","basePrice","withoutPromo","upBenefit","mob_benefit_category","ultimateBundlePromo","ultimateBundlePromotion","isOttFlow","setMobileSummarySession","trackNewDatalayerEvent","GAEVENT","COMBINEDEVICE","getEcomCartInfo","LINETABLEDEVICE","combineWithVasOptions","productName","internetSubscription","internetSubscriptionId","internetSubscriptionPrice","internetSubscriptionPromo","withPromo","_1","ONE_ECOMMERCE_INTERNET_SUMMARY","setFixnetSummarySession","fetchServiceOptions","entitlement","service","enableTV","fetchPrice","pageType","isConfigurator","onetimePrice","int_fmc","mob_fmc","loyaltyPrice","tvOptionsBasePrice","tvOptionsDiscountPrice","tvOptionsBaseToDiscount","isArray","priceType","opt","beneficiaryPrice","recurringPrice","discountPrice","cycle","cycleStart","cycleEnd","relatedPromo","promo","productDetails","priceAlteration","price","priceCategory","bundleContractDuration","offerData","fetchFilteredProducts","toggleState","filteredList","gigaSpeedValue","gigaSpeed","mainArray","res1","res2","res3","multiIndex","productIndex","includes","updatedMultiIndex","split","mIndex","i","TV","Netflix","fetchOttItems","ottCartData","itemType","items","TV_SERVICE_OPTION","RATEPLAN","shogunOfferSharedCache","isShogunOfferResolved","gloxTokenId","results","getShogunSharedOffer","uniqueId","offerEndpoint","Promise","resolve","promise","fetchPromise","fetchShogunOfferData","resp","filterShogunProducts","availableProducts","shogunProductIds","filtered","sort","a","b","aId","bId","indexOf"],"mappings":"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"}
@@ -1 +1 @@
1
- .card_sIWek.sr-card_nSaJ3{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}.card_sIWek.border-top_zgR4a{border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -2px 20px 0 rgba(61,57,53,.2);border:none}@media (min-width:768px){.sr-desk-card_QQ6H7{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (max-width:767px){.sr-mob-card_xJXnd{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (min-width:1024px){.sr-md-card_JNBjc{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}.tabblock_OXDQd .tabcontainer_BvX7d{border:1px solid #3d3935;border-radius:32px;display:flex;margin-bottom:0;width:auto;padding:4px}@media (max-width:767px){.tabblock_OXDQd .tabcontainer_BvX7d{border-radius:8px}}.tabblock_OXDQd .tabcontent_8qSfh{align-items:center;border-radius:35px;cursor:pointer;display:flex;font-size:16px;font-weight:700;justify-content:center;line-height:24px;padding:8px 12px}@media (max-width:767px){.tabblock_OXDQd .tabcontent_8qSfh{border-radius:8px}}.tabblock_OXDQd .tabcontentactive_0VWZG{background-color:#da291c;border-radius:35px;color:#fff!important}.tabblock_OXDQd .tabcontentactive_0VWZG:hover{background-color:#961c13}@media (max-width:767px){.tabblock_OXDQd .tabcontentactive_0VWZG{border-radius:8px}}.tabblock_OXDQd .tabcontentinactive_lMaGs:hover{color:#961c13}.tabblock_OXDQd input[type=radio]{display:none}.carouselWrapper_9xI2j{min-height:420px}@media (max-width:767px){.carouselWrapper_9xI2j{min-height:320px}}.swiperTabs_fC3QD{min-width:0;overflow-x:clip!important;overflow-y:visible!important;padding-left:24px;padding-right:24px}.swiperTabs_fC3QD>.swiper-wrapper{align-items:flex-start}.swiperTabs_fC3QD>.swiper-wrapper>.swiper-slide:not(.swiper-slide-active){height:0;overflow:hidden;visibility:hidden}@keyframes lineTableCardIn_cMsQ5{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide>*{animation:lineTableCardIn_cMsQ5 .36s cubic-bezier(.22,1,.36,1) both}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(2)>*{animation-delay:50ms}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(n+3)>*{animation-delay:.1s}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(n+4)>*{animation-delay:.15s}@media (prefers-reduced-motion:reduce){.swiperTabsAnimated_1DlF- .swiper-slide>*{animation:none!important}}.swiperCards_qdnn9{min-width:0;overflow-x:clip!important;overflow-y:visible!important;padding-top:35px;padding-bottom:32px;--swiper-navigation-color:#da291c;--swiper-pagination-color:#e6003c}.swiperCards_qdnn9>.swiper-wrapper{align-items:stretch}.swiperCards_qdnn9>.swiper-wrapper>.swiper-slide{height:auto}.swiperCards_qdnn9 .swiper-pagination{bottom:auto;margin-top:16px;position:relative;top:auto}.swiperCards_qdnn9 .swiper-pagination-bullet{background:#3d3935;height:10px;margin:0 4px!important;opacity:.25;width:10px}.swiperCards_qdnn9 .swiper-pagination-bullet-active{background:#da291c;opacity:1}@media (max-width:767px){.swiperCards_qdnn9>.swiper-wrapper>.swiper-slide{min-width:360px;width:360px}}.swiperCardsWrapper_ICCQV{position:relative}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb{align-items:center;background:#fff;border:0;border-radius:24px;box-shadow:0 2px 4px rgba(87,84,82,.2);cursor:pointer;display:flex;height:44px;justify-content:center;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:44px;z-index:2}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:hover{box-shadow:0 4px 12px rgba(87,84,82,.2)}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:disabled{background:#f1efee;cursor:default}.swiperCardsWrapper_ICCQV .swiperArrowPrev_q-dda{left:-22px}.swiperCardsWrapper_ICCQV .swiperArrowNext_nullB{right:-22px}.swiperCardsWrapper_ICCQV .swiperArrowIcon_pgcyv{border-right:1.5px solid #da291c;border-top:1.5px solid #da291c;height:8px;width:8px}.swiperCardsWrapper_ICCQV .swiperArrowIconPrev_Ot--i{transform:rotate(-135deg)}.swiperCardsWrapper_ICCQV .swiperArrowIconNext_qN-LZ{transform:rotate(45deg)}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:disabled .swiperArrowIcon_pgcyv{border-color:#b3aeaa}@media (max-width:767px){.swiperCardsWrapper_ICCQV:not(.mobileArrows_XEkzc) .swiperArrow_I2eNb{display:none}}.titlecontainer_vhfov .title_S5CC7{font-size:24px;font-weight:700;line-height:30px;padding-top:20px;text-align:center}.titlecontainer_vhfov .description_IoWLP{font-size:16px;font-weight:24px;text-align:center}.selected_RMX1r{align-items:center;color:#606060;display:inline-flex;font-size:16px;font-weight:500;line-height:24px;margin-bottom:12px;margin-right:50px;margin-top:4px}.selected_RMX1r .activeicon_DwS4K,.selected_RMX1r .inactiveicon_ek-0-{height:24px;margin-right:12px;width:24px}.productcenter_scRU7{text-align:center}.bundleproductcard_KYHf7,.productcenter_scRU7{align-items:center;flex-direction:column;height:100%;margin-left:10px;margin-right:10px}.bundleproductcard_KYHf7{text-align:left}@media (max-width:767px){.bundleproductcard_KYHf7{margin-left:8px;margin-right:8px}}.flexgrid_uuyAX{display:flex}.productcontainer_CA-5u{background-color:#fff;border:0;border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);justify-content:space-between;padding:0;position:relative}.productcontainerHasBadge_Q3AtO{margin-top:20px}.productcontainer_CA-5u>:not(.highlightText_z2WSp):not(.promocontainer_Ub07A):not(.timerContainer_N67wz):not(.imageFullWidthSection_WSroa){padding-left:16px;padding-right:16px}.productcontainer_CA-5u>.timerContainer_N67wz,.timerContainer_N67wz{padding-left:0;padding-right:0}.highlightBorder_dEWeh{border-radius:8px;border-style:solid;border-width:4px}.highlightText_z2WSp{align-items:center;background-color:#587467;border-radius:8px;color:#fff;display:flex;flex-direction:row;font-size:14px;font-weight:700;justify-content:center;left:28px;line-height:20px;min-height:24px;padding:4px 8px;position:absolute;top:-18px;width:fit-content}.headersection_ed21u{padding-bottom:8px}.titlesection_DMlAo{align-items:flex-start;display:flex;justify-content:space-between}.productheader_Z2vjX{font-size:28px;font-weight:700;line-height:36px;margin-bottom:8px;padding-top:16px}.productdescription_VdyCK{color:#1f1f1f;font-size:16px;font-weight:400;line-height:24px;margin-top:-7px}.images_Go1Hf{display:flex;justify-content:center;margin-top:30px;width:100%}.imagespace_Dy1x3{display:block;height:auto;max-width:100%;overflow:hidden;width:100%;margin:0}.borderimage_2x-l3{margin:-4px}.imageFullWidthSection_WSroa{padding-left:0;padding-right:0}.imageFullWidthSection_WSroa>.headersection_ed21u>.productdescription_VdyCK,.imageFullWidthSection_WSroa>.headersection_ed21u>.titlesection_DMlAo,.imageFullWidthSection_WSroa>.productconfig_oBL4Y{padding-left:16px;padding-right:16px}.ordersection_04k-y{border-top:1px solid #e6e3df;margin-top:15px;padding:8px;text-align:center}.pricesection_U7U-s{justify-content:center}.productcontractduration_dzt25{font-size:12px;font-weight:400;line-height:16px}.productdetailslink_Dzs8e{color:#da291c;cursor:pointer;font-size:16px;line-height:24px;text-decoration:underline}.benefitssection_7J8jk{padding-top:16px}.overlay_pa3Q8{cursor:default;display:block;opacity:.4;pointer-events:none}.addsmartphone_12--5 img{margin-right:10px;vertical-align:bottom}.discountedpricetoggleSection_QYGam{margin-top:18px}.promocontainer_Ub07A{align-items:center;background:#2e6199;border-radius:4px;color:#fff;display:flex;flex-direction:row;font-size:14px;font-weight:700;justify-content:center;left:16px;line-height:20px;min-height:24px;padding:4px 8px;position:absolute;top:-18px;width:fit-content}.disabled_97Dzp{background-color:#eee!important;border-color:#eee!important;color:#858585!important;cursor:not-allowed;display:inline-block;margin-right:6px}.disabled_97Dzp .buttontext_CAfOt{color:#858585!important;font-weight:500}.buttontext_CAfOt{font-size:16px;line-height:24px;color:#fff;font-weight:700;text-align:center}.swapButton_2SyEm{display:flex;flex-direction:column-reverse}.longterm_9o3ba{padding-top:4px;font-size:14px;line-height:20px}.disabledInfo_Xceta{margin-left:10px;margin-right:10px}
1
+ .card_sIWek.sr-card_nSaJ3{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}.card_sIWek.border-top_zgR4a{border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -2px 20px 0 rgba(61,57,53,.2);border:none}@media (min-width:768px){.sr-desk-card_QQ6H7{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (max-width:767px){.sr-mob-card_xJXnd{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}@media (min-width:1024px){.sr-md-card_JNBjc{border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);border:none;background-color:#fff;position:relative;display:flex;flex-direction:column}}.tabblock_OXDQd .tabcontainer_BvX7d{border:1px solid #3d3935;border-radius:32px;display:flex;margin-bottom:0;width:auto;padding:4px}@media (max-width:767px){.tabblock_OXDQd .tabcontainer_BvX7d{border-radius:8px}}.tabblock_OXDQd .tabcontent_8qSfh{align-items:center;border-radius:35px;cursor:pointer;display:flex;font-size:16px;font-weight:700;justify-content:center;line-height:24px;padding:8px 12px}@media (max-width:767px){.tabblock_OXDQd .tabcontent_8qSfh{border-radius:8px}}.tabblock_OXDQd .tabcontentactive_0VWZG{background-color:#da291c;border-radius:35px;color:#fff!important}.tabblock_OXDQd .tabcontentactive_0VWZG:hover{background-color:#961c13}@media (max-width:767px){.tabblock_OXDQd .tabcontentactive_0VWZG{border-radius:8px}}.tabblock_OXDQd .tabcontentinactive_lMaGs:hover{color:#961c13}.tabblock_OXDQd input[type=radio]{display:none}.carouselWrapper_9xI2j{min-height:420px}@media (max-width:767px){.carouselWrapper_9xI2j{min-height:320px}}.swiperTabs_fC3QD{min-width:0;overflow-x:clip!important;overflow-y:visible!important;padding-left:24px;padding-right:24px}.swiperTabs_fC3QD>.swiper-wrapper{align-items:flex-start}.swiperTabs_fC3QD>.swiper-wrapper>.swiper-slide:not(.swiper-slide-active){height:0;overflow:hidden;visibility:hidden}@keyframes lineTableCardIn_cMsQ5{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide>*{animation:lineTableCardIn_cMsQ5 .36s cubic-bezier(.22,1,.36,1) both}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(2)>*{animation-delay:50ms}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(n+3)>*{animation-delay:.1s}.swiperTabsAnimated_1DlF->.swiper-wrapper>.swiper-slide-active .swiperCards_qdnn9>.swiper-wrapper>.swiper-slide:nth-child(n+4)>*{animation-delay:.15s}@media (prefers-reduced-motion:reduce){.swiperTabsAnimated_1DlF- .swiper-slide>*{animation:none!important}}.swiperCards_qdnn9{min-width:0;overflow-x:clip!important;overflow-y:visible!important;padding-top:35px;padding-bottom:32px;--swiper-navigation-color:#da291c;--swiper-pagination-color:#e6003c}.swiperCards_qdnn9>.swiper-wrapper{align-items:stretch}.swiperCards_qdnn9>.swiper-wrapper>.swiper-slide{height:auto}.swiperCards_qdnn9 .swiper-pagination{bottom:auto;margin-top:16px;position:relative;top:auto}.swiperCards_qdnn9 .swiper-pagination-bullet{background:#3d3935;height:10px;margin:0 4px!important;opacity:.25;width:10px}.swiperCards_qdnn9 .swiper-pagination-bullet-active{background:#da291c;opacity:1}@media (max-width:767px){.swiperCards_qdnn9>.swiper-wrapper>.swiper-slide{min-width:360px;width:360px}}.swiperCardsWrapper_ICCQV{position:relative}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb{align-items:center;background:#fff;border:0;border-radius:24px;box-shadow:0 2px 4px rgba(87,84,82,.2);cursor:pointer;display:flex;height:44px;justify-content:center;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:44px;z-index:2}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:hover{box-shadow:0 4px 12px rgba(87,84,82,.2)}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:disabled{background:#f1efee;cursor:default}.swiperCardsWrapper_ICCQV .swiperArrowPrev_q-dda{left:-22px}.swiperCardsWrapper_ICCQV .swiperArrowNext_nullB{right:-22px}.swiperCardsWrapper_ICCQV .swiperArrowIcon_pgcyv{border-right:1.5px solid #da291c;border-top:1.5px solid #da291c;height:8px;width:8px}.swiperCardsWrapper_ICCQV .swiperArrowIconPrev_Ot--i{transform:rotate(-135deg)}.swiperCardsWrapper_ICCQV .swiperArrowIconNext_qN-LZ{transform:rotate(45deg)}.swiperCardsWrapper_ICCQV .swiperArrow_I2eNb:disabled .swiperArrowIcon_pgcyv{border-color:#b3aeaa}@media (max-width:767px){.swiperCardsWrapper_ICCQV:not(.mobileArrows_XEkzc) .swiperArrow_I2eNb{display:none}}.titlecontainer_vhfov .title_S5CC7{font-size:24px;font-weight:700;line-height:30px;padding-top:20px;text-align:center}.titlecontainer_vhfov .description_IoWLP{font-size:16px;font-weight:24px;text-align:center}.selected_RMX1r{align-items:center;color:#606060;display:inline-flex;font-size:16px;font-weight:500;line-height:24px;margin-bottom:12px;margin-right:50px;margin-top:4px}.selected_RMX1r .activeicon_DwS4K,.selected_RMX1r .inactiveicon_ek-0-{height:24px;margin-right:12px;width:24px}.productcenter_scRU7{text-align:center}.bundleproductcard_KYHf7,.productcenter_scRU7{align-items:center;flex-direction:column;height:100%;margin-left:10px;margin-right:10px}.bundleproductcard_KYHf7{text-align:left}@media (max-width:767px){.bundleproductcard_KYHf7{margin-left:8px;margin-right:8px}}.flexgrid_uuyAX{display:flex}.productcontainer_CA-5u{background-color:#fff;border:0;border-radius:8px;box-shadow:0 2px 4px 0 rgba(87,84,82,.2);justify-content:space-between;padding:0;position:relative}.productcontainerHasBadge_Q3AtO{margin-top:20px}.productcontainer_CA-5u>:not(.highlightText_z2WSp):not(.promocontainer_Ub07A):not(.timerContainer_N67wz):not(.imageFullWidthSection_WSroa){padding-left:16px;padding-right:16px}.productcontainer_CA-5u>.timerContainer_N67wz,.timerContainer_N67wz{padding-left:0;padding-right:0}.highlightBorder_dEWeh{border-radius:8px;border-style:solid;border-width:4px}.highlightText_z2WSp{align-items:center;background-color:#587467;border-radius:8px;color:#fff;display:flex;flex-direction:row;font-size:14px;font-weight:700;justify-content:center;left:28px;line-height:20px;min-height:24px;padding:4px 8px;position:absolute;top:-18px;width:fit-content}.headersection_ed21u{padding-bottom:8px}.headerWithoutImage_x9M97{padding-bottom:16px}.headerWithoutImage_x9M97 .productdescription_VdyCK p:last-child{margin-bottom:0}.entitlementList_cV4cS{border-top:1px solid #e6e3df}.titlesection_DMlAo{align-items:flex-start;display:flex;justify-content:space-between}.productheader_Z2vjX{font-size:28px;font-weight:700;line-height:36px;margin-bottom:8px;padding-top:16px}.productdescription_VdyCK{color:#1f1f1f;font-size:16px;font-weight:400;line-height:24px;margin-top:-7px}.images_Go1Hf{display:flex;justify-content:center;margin-top:30px;width:100%}.imagespace_Dy1x3{display:block;height:auto;max-width:100%;overflow:hidden;width:100%;margin:0}.borderimage_2x-l3{margin:-4px}.imageFullWidthSection_WSroa{padding-left:0;padding-right:0}.imageFullWidthSection_WSroa>.headersection_ed21u>.productdescription_VdyCK,.imageFullWidthSection_WSroa>.headersection_ed21u>.titlesection_DMlAo,.imageFullWidthSection_WSroa>.productconfig_oBL4Y{padding-left:16px;padding-right:16px}.ordersection_04k-y{border-top:1px solid #e6e3df;margin-top:15px;padding:8px;text-align:center}.orderWithoutBenefits_zpKMm{border-top:0;margin-top:40px}.pricesection_U7U-s{justify-content:center}.productcontractduration_dzt25{padding-top:8px;font-size:12px;font-weight:400;line-height:16px}.productdetailslink_Dzs8e{color:#da291c;cursor:pointer;font-size:16px;line-height:24px;text-decoration:underline}.benefitssection_7J8jk{padding-top:16px}.benefitssection_7J8jk:empty{padding-top:0}.overlay_pa3Q8{cursor:default;display:block;opacity:.4;pointer-events:none}.addsmartphone_12--5 img{margin-right:10px;vertical-align:bottom}.discountedpricetoggleSection_QYGam{margin-top:0}.linetableV3:has(.discountedpricetoggleSection_QYGam form) .discountedpricetoggleSection_QYGam{margin-top:18px}.promocontainer_Ub07A{align-items:center;background:#2e6199;border-radius:4px;color:#fff;display:flex;flex-direction:row;font-size:14px;font-weight:700;justify-content:center;left:16px;line-height:20px;min-height:24px;padding:4px 8px;position:absolute;top:-18px;width:fit-content}.disabled_97Dzp{background-color:#eee!important;border-color:#eee!important;color:#858585!important;cursor:not-allowed;display:inline-block;margin-right:6px}.disabled_97Dzp .buttontext_CAfOt{color:#858585!important;font-weight:500}.buttontext_CAfOt{font-size:16px;line-height:24px;color:#fff;font-weight:700;text-align:center}.swapButton_2SyEm{display:flex;flex-direction:column-reverse}.longterm_9o3ba{padding-top:4px;font-size:14px;line-height:20px}.disabledInfo_Xceta{margin-left:10px;margin-right:10px}
@@ -1,3 +1,3 @@
1
1
  import './StaticLineTable.css';
2
- var e={tabblock:"tabblock_OXDQd",tabcontainer:"tabcontainer_BvX7d",tabcontent:"tabcontent_8qSfh",tabcontentactive:"tabcontentactive_0VWZG",tabcontentinactive:"tabcontentinactive_lMaGs",carouselWrapper:"carouselWrapper_9xI2j",swiperTabs:"swiperTabs_fC3QD",swiperTabsAnimated:"swiperTabsAnimated_1DlF-",swiperCards:"swiperCards_qdnn9",swiperCardsWrapper:"swiperCardsWrapper_ICCQV",swiperArrow:"swiperArrow_I2eNb",swiperArrowPrev:"swiperArrowPrev_q-dda",swiperArrowNext:"swiperArrowNext_nullB",swiperArrowIcon:"swiperArrowIcon_pgcyv",swiperArrowIconPrev:"swiperArrowIconPrev_Ot--i",swiperArrowIconNext:"swiperArrowIconNext_qN-LZ",mobileArrows:"mobileArrows_XEkzc",titlecontainer:"titlecontainer_vhfov",title:"title_S5CC7",description:"description_IoWLP",selected:"selected_RMX1r",inactiveicon:"inactiveicon_ek-0-",activeicon:"activeicon_DwS4K",bundleproductcard:"bundleproductcard_KYHf7",productcontainer:"productcontainer_CA-5u",productcontainerHasBadge:"productcontainerHasBadge_Q3AtO",highlightText:"highlightText_z2WSp",promocontainer:"promocontainer_Ub07A",timerContainer:"timerContainer_N67wz",imageFullWidthSection:"imageFullWidthSection_WSroa",headersection:"headersection_ed21u",titlesection:"titlesection_DMlAo",productheader:"productheader_Z2vjX",productdescription:"productdescription_VdyCK",images:"images_Go1Hf",imagespace:"imagespace_Dy1x3",borderimage:"borderimage_2x-l3",productconfig:"productconfig_oBL4Y",ordersection:"ordersection_04k-y",productcontractduration:"productcontractduration_dzt25",productdetailslink:"productdetailslink_Dzs8e",benefitssection:"benefitssection_7J8jk",overlay:"overlay_pa3Q8",discountedpricetoggleSection:"discountedpricetoggleSection_QYGam",disabled:"disabled_97Dzp",buttontext:"buttontext_CAfOt",swapButton:"swapButton_2SyEm",longterm:"longterm_9o3ba",disabledInfo:"disabledInfo_Xceta"};export{e as default};
2
+ var e={tabblock:"tabblock_OXDQd",tabcontainer:"tabcontainer_BvX7d",tabcontent:"tabcontent_8qSfh",tabcontentactive:"tabcontentactive_0VWZG",tabcontentinactive:"tabcontentinactive_lMaGs",carouselWrapper:"carouselWrapper_9xI2j",swiperTabs:"swiperTabs_fC3QD",swiperTabsAnimated:"swiperTabsAnimated_1DlF-",swiperCards:"swiperCards_qdnn9",swiperCardsWrapper:"swiperCardsWrapper_ICCQV",swiperArrow:"swiperArrow_I2eNb",swiperArrowPrev:"swiperArrowPrev_q-dda",swiperArrowNext:"swiperArrowNext_nullB",swiperArrowIcon:"swiperArrowIcon_pgcyv",swiperArrowIconPrev:"swiperArrowIconPrev_Ot--i",swiperArrowIconNext:"swiperArrowIconNext_qN-LZ",mobileArrows:"mobileArrows_XEkzc",titlecontainer:"titlecontainer_vhfov",title:"title_S5CC7",description:"description_IoWLP",selected:"selected_RMX1r",inactiveicon:"inactiveicon_ek-0-",activeicon:"activeicon_DwS4K",bundleproductcard:"bundleproductcard_KYHf7",productcontainer:"productcontainer_CA-5u",productcontainerHasBadge:"productcontainerHasBadge_Q3AtO",highlightText:"highlightText_z2WSp",promocontainer:"promocontainer_Ub07A",timerContainer:"timerContainer_N67wz",imageFullWidthSection:"imageFullWidthSection_WSroa",headersection:"headersection_ed21u",headerWithoutImage:"headerWithoutImage_x9M97",productdescription:"productdescription_VdyCK",entitlementList:"entitlementList_cV4cS",titlesection:"titlesection_DMlAo",productheader:"productheader_Z2vjX",images:"images_Go1Hf",imagespace:"imagespace_Dy1x3",borderimage:"borderimage_2x-l3",productconfig:"productconfig_oBL4Y",ordersection:"ordersection_04k-y",orderWithoutBenefits:"orderWithoutBenefits_zpKMm",productcontractduration:"productcontractduration_dzt25",productdetailslink:"productdetailslink_Dzs8e",benefitssection:"benefitssection_7J8jk",overlay:"overlay_pa3Q8",discountedpricetoggleSection:"discountedpricetoggleSection_QYGam",disabled:"disabled_97Dzp",buttontext:"buttontext_CAfOt",swapButton:"swapButton_2SyEm",longterm:"longterm_9o3ba",disabledInfo:"disabledInfo_Xceta"};export{e as default};
3
3
  //# sourceMappingURL=StaticLineTable.module.scss.js.map