@sunrise-upc/mobile-prod-card 11.12.2 → 11.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import o from"js-cookie";import{TV_SERVICE_OPTION as l,RATEPLAN as i,DEFAULT_MOBILEPOSTPAID_BUNDLE as n,VCTYPE as e,DEFAULT_WIRELINE_BUNDLE as d,ONE_ECOMMERCE_SUMMARY as u,ONE_ECOMMERCE_INTERNET_SUMMARY as t}from"../../utils/constants.js";import{fetchShogunOfferData as v,createCartV2 as r}from"../../services/LineTableService.js";import{getElementMaximumHeight as c,getLocalStorageWithExpiry as a,checkLinkWithLang as s}from"../../utils/utils.js";import{trackNewDatalayerEvent as p}from"../../utils/AnalyticsUtils.js";import{LINETABLEPRODUCT as m,ADDTOCART as f,LINETABLE as y,LINETABLEDEVICE as h,COMBINEDEVICE as g,GAEVENT as I}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as b,getEcomCartInfo as T}from"../../models/Analytics/items.js";import{calculateDateTime as w}from"./StaticLineTabelTimer/util.js";const P=(o,l)=>{try{const i=new Date,n=w(new Date(o.replace(/-/g,"/"))),e=w(new Date(l.replace(/-/g,"/")));return!Number.isNaN(n.getTime())&&!Number.isNaN(e.getTime())&&(i>=n&&i<e)}catch(o){return!1}},D=(o,l)=>{try{const i=w(new Date(o.replace(/-/g,"/"))),n=w(new Date(l.replace(/-/g,"/")));if(Number.isNaN(i.getTime())||Number.isNaN(n.getTime()))return 0;const e=(new Date).getTime(),d=i.getTime(),u=n.getTime();return e<d?Math.max(0,d-e):e>=d&&e<u?Math.max(0,u-e):0}catch(o){return 0}},N=(o,l,i,e,d)=>{null==o||o.map(o=>{var e,u,t,v,r,c,a,s,p,m,f,y,h,g,I,b,T,w,D,N,C,S,_,x,O;const L={id:"",promoIds:[]},A=null===(r=null===(v=null===(t=null===(u=null===(e=null==o?void 0:o.products)||void 0===e?void 0:e[0])||void 0===u?void 0:u.reference)||void 0===t?void 0:t.content)||void 0===v?void 0:v.product)||void 0===r?void 0:r[0],E=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==E||E.promotionId,L.id=null==A?void 0:A.productId;const B=null===(f=null==o?void 0:o.timer)||void 0===f?void 0:f[0],k=!!B&&P(B.startTime,B.endTime),M=null===(T=null===(b=null===(I=null===(g=null===(h=null===(y=null==B?void 0:B.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,$=d&&!0===d&&""===(null==E?void 0:E.promotionId)?n:null==E?void 0:E.promotionId;if(k&&M?null===(w=null==L?void 0:L.promoIds)||void 0===w||w.push(M):null===(D=null==L?void 0:L.promoIds)||void 0===D||D.push($),i){const l=null===(x=null===(_=null===(S=null===(C=null===(N=null==o?void 0:o.mobilePromotion)||void 0===N?void 0:N[0])||void 0===C?void 0:C.reference)||void 0===S?void 0:S.content)||void 0===_?void 0:_.promoDescription)||void 0===x?void 0:x[0];null===(O=null==L?void 0:L.promoIds)||void 0===O||O.push(null==l?void 0:l.promotionId)}null==l||l.push(L)})},C=(o,l,i)=>{var n,e,d;const u=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!=u?u:""},{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)}]}},S=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}},_=(l,i,t,v,c,p,h,g,I,T,w,P,D,N,C,S,_,x,O,L)=>{var A,E,B;if(h){l(!0);const d=a(e);0!==(null===(A=Object.keys(v))||void 0===A?void 0:A.length)&&r(v,"",(null==p?void 0:p.promoID)?null==p?void 0:p.promoID:n,i,"mobile",t,N,C,null===(B=null===(E=null==c?void 0:c.productContainer)||void 0===E?void 0:E[0])||void 0===B?void 0:B.isQoQaFlow,null==d?void 0:d.voucher,null,null,x,O,L).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==p?void 0:p.id,{path:"/"}),b(f,v,"",m),window.location.href=null===(i=null==c?void 0:c.summaryPageUrl)||void 0===i?void 0:i.cached_url}).catch(o=>{console.log(o),l(!1)}).finally(()=>{l(!1)})}else{const n="undefined"!=typeof window&&o.get("one-commerce-linecheckcorrelationid");I&&T&&n?(l(!0),0!==v.length&&r(v,g,(null==p?void 0:p.promoID)?null==p?void 0:p.promoID:d,i,"fixnet",t,"","",!1,"","",_,void 0,void 0,L).then(l=>{var i,n,e,d,t,r,a,m,h,g,I;"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==p?void 0:p.id,{path:"/"}),"undefined"!=typeof window&&o.remove("landline"),b(f,v,"",y);const T=s(null===(i=null==S?void 0:S.productBasedCheckoutUrl)||void 0===i?void 0:i.cached_url);let w=!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)&&(w=null==o?void 0:o.recommendAccessory),"mobile"!==(null===(n=null==o?void 0:o.productType)||void 0===n?void 0:n.toLowerCase())||(w=!1)}):(null===(t=null==v?void 0:v[0])||void 0===t?void 0:t.recommendAccessory)&&(w=null===(r=null==v?void 0:v[0])||void 0===r?void 0:r.recommendAccessory),w){const o={flow:"WIN"};sessionStorage.setItem(u,JSON.stringify(o))}const P=T||((null==S?void 0:S.enableTVStreamingOptionsStepper)&&(null===(a=null==c?void 0:c.vasStepperURL)||void 0===a?void 0:a.cached_url)?null===(m=null==c?void 0:c.vasStepperURL)||void 0===m?void 0:m.cached_url:w&&(null===(h=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===h?void 0:h.cached_url)?null===(g=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===g?void 0:g.cached_url:null===(I=null==c?void 0:c.summaryPageUrl)||void 0===I?void 0:I.cached_url);window.location.href=P}).catch(o=>{console.log(o)}).finally(()=>{l(!1)})):(null==c?void 0:c.enableLinecheckOverlay)?w(!P):D()}},x=(o,l)=>{c(`headingV3${o}`,l),c(`descriptionV3${o}`,l),c(`titleV3${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`})})(),c(`detailsectionv3${o}`,l),c(`product-configv3${o}`,l),c(`gift-section${o}`,l),c(`benefits-section${o}`,l),c(`order-section${o}`,l),c(`price-section${o}`,l),c(`benefits-price-section${o}`,l),c(`contract-section${o}`,l),c(`exclusive-benefits-section${o}`,l),c(`discountedpricetoggle-section${o}`,l)},O=(o,l,i,e,d,u)=>{var t,v,r,c,a,s,m;const y={msisdn:null!==(t=null==e?void 0:e.msisdn)&&void 0!==t?t:"",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:""},w=(null==o?void 0:o.promoID)?null==o?void 0:o.promoID:n;let P="";P=`?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${null!=w?w:""}&productCode=${null!==(c=null==o?void 0:o.id)&&void 0!==c?c:""}`,window.location.href=(null===(m=null===(s=null===(a=null==l?void 0:l.addSmartPhone)||void 0===a?void 0:a[0])||void 0===s?void 0:s.buttonLink)||void 0===m?void 0:m.cached_url)+P,((o,l,i,n,e,d)=>{var u,t,v,r,c,a,s,p,m,f,y,h,g,I,b,T,w,P,D,N,C,S,_,x,O;const L=l,A=null!==(r=null===(v=null===(t=null===(u=null==L?void 0:L[0])||void 0===u?void 0:u.prices)||void 0===t?void 0:t[0])||void 0===v?void 0:v.value)&&void 0!==r?r:0,E=null!==(p=null===(s=null===(a=null===(c=null==L?void 0:L[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,B=null!==(h=null===(y=null===(f=null===(m=null==L?void 0:L[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,k=null!==(T=null===(b=null===(I=null===(g=null==L?void 0:L[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,M=null!=i?i:"",$=d&&(null===(D=null===(P=null===(w=null==l?void 0:l[0])||void 0===w?void 0:w.promotionInfo)||void 0===P?void 0:P[0])||void 0===D?void 0:D.id),U=d&&(null===(S=null===(C=null===(N=null==l?void 0:l[0])||void 0===N?void 0:N.promotionInfo)||void 0===C?void 0:C[0])||void 0===S?void 0:S.version),F=d?{discountRef:$,discountType:"DISCOUNT"}:null,R=[];null==R||R.push({author:"offerType",text:"ATL"}),null==R||R.push({author:"externalPromotionName",text:$}),null==R||R.push({author:"offerVersion",text:U});const V=d?R:null,j=new URLSearchParams(window.location.search).get("flow"),J={mobileSubscription:null!==(x=null===(_=null==L?void 0:L[0])||void 0===_?void 0:_.id)&&void 0!==x?x:"",mobileSubscriptionPrice:E>0?E:A,mobileSubscriptionPromo:o,subGroup:"MOBILE",duration:Number(k>0?k:B),basePrice:A,withoutPromo:!1,pretopostvalue:M,upBenefit:"MULTIMOBILE"==n.mob_benefit_category||"FMC"==n.mob_benefit_category,ultimateBundlePromo:null!==(O=null==e?void 0:e.ultimateBundlePromotion)&&void 0!==O?O:"",clientDiscountInfo:F,extraNotes:V,isOttFlow:"ott"===j};void 0!==typeof window&&sessionStorage.setItem("one-ecommerce-mobileSummary",JSON.stringify(J))})(w,i,e&&y,o,d,u),p(I,g,T(i,"",h)),b(f,i,"",h)},L=(o,l,i,e,d,u)=>{((o,l,i,n,e,d,u)=>{var v,r,c,a,s,p,m,f,y,h,g,I,b,T,w,P,D,N,C,S,_,x,O,L,A,E;const B=l,k=null!==(a=null===(c=null===(r=null===(v=null==B?void 0:B[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,M=null!==(f=null===(m=null===(p=null===(s=null==B?void 0:B[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,$=null!==(b=null!==(I=null===(g=null===(h=null===(y=null==B?void 0:B[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!==(D=null===(P=null===(w=null===(T=null==B?void 0:B[0])||void 0===T?void 0:T.promotionInfo)||void 0===w?void 0:w[0])||void 0===P?void 0:P.campaignDuration)&&void 0!==D?D:0,F=e&&(null===(S=null===(C=null===(N=null==l?void 0:l[0])||void 0===N?void 0:N.promotionInfo)||void 0===C?void 0:C[0])||void 0===S?void 0:S.id),R=e&&(null===(O=null===(x=null===(_=null==l?void 0:l[0])||void 0===_?void 0:_.promotionInfo)||void 0===x?void 0:x[0])||void 0===O?void 0:O.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:R});const J=e?j:null,G={internetSubscription:null!=d?d:"",internetSubscriptionId:null!==(A=null===(L=null==B?void 0:B[0])||void 0===L?void 0:L.id)&&void 0!==A?A:"",internetSubscriptionPrice:M>0?M:k,internetSubscriptionPromo:o,subGroup:"INTERNET",duration:Number(U>0?U:$),basePrice:k,withPromo:M>0,upBenefit:"MULTIMOBILE"==i.mob_benefit_category||"FMC"==i.mob_benefit_category,ultimateBundlePromo:null!==(E=null==n?void 0:n.ultimateBundlePromotion)&&void 0!==E?E:"",clientDiscountInfo:V,extraNotes:J,productType:"subscription",recommendAccessory:u};void 0!==typeof window&&sessionStorage.setItem(t,JSON.stringify(G))})((null==o?void 0:o.promoID)?null==o?void 0:o.promoID:n,l,o,i,e,d,u),p(I,g,T(l,"",h)),b(f,l,"",h)},A=(o,l)=>{let i;return l||(i=(o||[]).filter(o=>!0===(null==o?void 0:o.enableTV))),i},E=(o,l,i,n,e,d)=>{var u,t,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,u,t,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===(u=null==l?void 0:l.derivedPrice)||void 0===u||u.map(l=>{var i,n,u,t,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===(u=null==l?void 0:l.cycle)||void 0===u?void 0:u.cycleStart,s.cycleEnd=d&&!(null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.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===(t=null==l?void 0:l.promotionInfo)||void 0===t?void 0:t[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===(t=null===(u=null==o?void 0:o[0])||void 0===u?void 0:u.bundledOffers)||void 0===t||t.forEach(o=>{var l,i,n,e,u;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)&&"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===(u=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===u?void 0:u.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)&&"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},B=(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 u=[],t=[],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?u.push(o):1===i?t.push(o):v.push(o));else for(let l=0;l<3;l++)Number(null==o?void 0:o.productIndex)===l&&(0===l?u.push(o):1===l?t.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)?t:u},k=o=>{var n;return null===(n=(null==o?void 0:o.products)||[])||void 0===n?void 0:n.map(o=>{var n,e,d;return{itemType:null!==(n=null==o?void 0:o.type)&&void 0!==n?n:"",promotionId:null!==(e=null==o?void 0:o.promo)&&void 0!==e?e:"",items:[{itemType:(null==o?void 0:o.type)===l?l:i,id:null!==(d=null==o?void 0:o.id)&&void 0!==d?d:""}]}})};let M=null;const $=o=>(null==M?void 0:M.gloxTokenId)===o&&null!==M.results,U=(o,l,i)=>{if($(o))return Promise.resolve(M.results);if((null==M?void 0:M.gloxTokenId)===o&&null!==M.promise)return M.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==M?void 0:M.gloxTokenId)===o&&(M.results=e,M.promise=null),e}).catch(l=>{throw(null==M?void 0:M.gloxTokenId)===o&&(M=null),l});return M={gloxTokenId:o,results:null,promise:n},n},F=(o,l)=>{const i=o.filter(o=>{var i,n,e,d,u,t;const v=null===(t=null===(u=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===u?void 0:u[0])||void 0===t?void 0:t.productId;return l.includes(v)});return i.sort((o,i)=>{var n,e,d,u,t,v,r,c,a,s,p,m;const f=null===(v=null===(t=null===(u=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===u?void 0:u.product)||void 0===t?void 0:t[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{S as checkGiftOrCashback,O as combineWithSmartPhone,L as combineWithVasOptions,B as fetchFilteredProducts,k as fetchOttItems,C as fetchPegaProducts,E as fetchPrice,A as fetchServiceOptions,N as fetchStaticProductIds,F as filterShogunProducts,x as findHeight,U as getShogunSharedOffer,D as getTimeUntilNextTimerEvent,$ as isShogunOfferResolved,P as isTimerActive,_ as staticCreateCart};
1
+ import o from"js-cookie";import{TV_SERVICE_OPTION as l,RATEPLAN as i,DEFAULT_MOBILEPOSTPAID_BUNDLE as n,VCTYPE as e,DEFAULT_WIRELINE_BUNDLE as d,ONE_ECOMMERCE_SUMMARY as u,ONE_ECOMMERCE_INTERNET_SUMMARY as t}from"../../utils/constants.js";import{fetchShogunOfferData as v,createCartV2 as r}from"../../services/LineTableService.js";import{getElementMaximumHeight as c,getLocalStorageWithExpiry as a,checkLinkWithLang as s}from"../../utils/utils.js";import{trackNewDatalayerEvent as p}from"../../utils/AnalyticsUtils.js";import{LINETABLEPRODUCT as m,ADDTOCART as f,LINETABLE as y,LINETABLEDEVICE as h,COMBINEDEVICE as g,GAEVENT as I}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as b,getEcomCartInfo as T}from"../../models/Analytics/items.js";import{calculateDateTime as w}from"./StaticLineTabelTimer/util.js";const D=(o,l)=>{try{const i=new Date,n=w(new Date(o.replace(/-/g,"/"))),e=w(new Date(l.replace(/-/g,"/")));return!Number.isNaN(n.getTime())&&!Number.isNaN(e.getTime())&&(i>=n&&i<e)}catch(o){return!1}},P=(o,l)=>{try{const i=w(new Date(o.replace(/-/g,"/"))),n=w(new Date(l.replace(/-/g,"/")));if(Number.isNaN(i.getTime())||Number.isNaN(n.getTime()))return 0;const e=(new Date).getTime(),d=i.getTime(),u=n.getTime();return e<d?Math.max(0,d-e):e>=d&&e<u?Math.max(0,u-e):0}catch(o){return 0}},C=(o,l,i,e,d)=>{null==o||o.map(o=>{var e,u,t,v,r,c,a,s,p,m,f,y,h,g,I,b,T,w,P,C,N,S,_,x,L;const O={id:"",promoIds:[]},E=null===(r=null===(v=null===(t=null===(u=null===(e=null==o?void 0:o.products)||void 0===e?void 0:e[0])||void 0===u?void 0:u.reference)||void 0===t?void 0:t.content)||void 0===v?void 0:v.product)||void 0===r?void 0:r[0],A=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==A||A.promotionId,O.id=null==E?void 0:E.productId;const B=null===(f=null==o?void 0:o.timer)||void 0===f?void 0:f[0],M=!!B&&D(B.startTime,B.endTime),k=null===(T=null===(b=null===(I=null===(g=null===(h=null===(y=null==B?void 0:B.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==A?void 0:A.promotionId)?n:null==A?void 0:A.promotionId;if(M&&k?null===(w=null==O?void 0:O.promoIds)||void 0===w||w.push(k):null===(P=null==O?void 0:O.promoIds)||void 0===P||P.push(U),i){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==l||l.push(O)})},N=(o,l,i)=>{var n,e,d;const u=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!=u?u:""},{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)}]}},S=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}},_=(l,i,t,v,c,p,h,g,I,T,w,D,P,C,N,S,_,x,L,O)=>{var E,A,B;if(h){l(!0);const d=a(e);0!==(null===(E=Object.keys(v))||void 0===E?void 0:E.length)&&r(v,"",(null==p?void 0:p.promoID)?null==p?void 0:p.promoID:n,i,"mobile",t,C,N,null===(B=null===(A=null==c?void 0:c.productContainer)||void 0===A?void 0:A[0])||void 0===B?void 0:B.isQoQaFlow,null==d?void 0:d.voucher,null,null,x,L,O).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==p?void 0:p.id,{path:"/"}),b(f,v,"",m),window.location.href=null===(i=null==c?void 0:c.summaryPageUrl)||void 0===i?void 0:i.cached_url}).catch(o=>{console.log(o),l(!1)}).finally(()=>{l(!1)})}else{const n="undefined"!=typeof window&&o.get("one-commerce-linecheckcorrelationid");I&&T&&n?(l(!0),0!==v.length&&r(v,g,(null==p?void 0:p.promoID)?null==p?void 0:p.promoID:d,i,"fixnet",t,"","",!1,"","",_,void 0,void 0,O).then(l=>{var i,n,e,d,t,r,a,m,h,g,I;"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==p?void 0:p.id,{path:"/"}),"undefined"!=typeof window&&o.remove("landline"),b(f,v,"",y);const T=s(null===(i=null==S?void 0:S.productBasedCheckoutUrl)||void 0===i?void 0:i.cached_url);let w=!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)&&(w=null==o?void 0:o.recommendAccessory),"mobile"!==(null===(n=null==o?void 0:o.productType)||void 0===n?void 0:n.toLowerCase())||(w=!1)}):(null===(t=null==v?void 0:v[0])||void 0===t?void 0:t.recommendAccessory)&&(w=null===(r=null==v?void 0:v[0])||void 0===r?void 0:r.recommendAccessory),w){const o={flow:"WIN"};sessionStorage.setItem(u,JSON.stringify(o))}const D=T||((null==S?void 0:S.enableTVStreamingOptionsStepper)&&(null===(a=null==c?void 0:c.vasStepperURL)||void 0===a?void 0:a.cached_url)?null===(m=null==c?void 0:c.vasStepperURL)||void 0===m?void 0:m.cached_url:w&&(null===(h=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===h?void 0:h.cached_url)?null===(g=null==c?void 0:c.multiItemPageRedirectionUrl)||void 0===g?void 0:g.cached_url:null===(I=null==c?void 0:c.summaryPageUrl)||void 0===I?void 0:I.cached_url);window.location.href=D}).catch(o=>{console.log(o)}).finally(()=>{l(!1)})):(null==c?void 0:c.enableLinecheckOverlay)?w(!D):P()}},x=(o,l)=>{c(`headingV3${o}`,l),c(`descriptionV3${o}`,l),c(`titleV3${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`})})(),c(`detailsectionv3${o}`,l),c(`product-configv3${o}`,l),c(`gift-section${o}`,l),c(`benefits-section${o}`,l),c(`order-section${o}`,l),c(`price-section${o}`,l),c(`benefits-price-section${o}`,l),c(`contract-section${o}`,l),c(`exclusive-benefits-section${o}`,l),c(`discountedpricetoggle-section${o}`,l)},L=(o,l,i,e,d,u)=>{var t,v,r,c,a,s,m;const y={msisdn:null!==(t=null==e?void 0:e.msisdn)&&void 0!==t?t:"",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:""},w=(null==o?void 0:o.promoID)?null==o?void 0:o.promoID:n;let D="";D=`?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${null!=w?w:""}&productCode=${null!==(c=null==o?void 0:o.id)&&void 0!==c?c:""}`,window.location.href=(null===(m=null===(s=null===(a=null==l?void 0:l.addSmartPhone)||void 0===a?void 0:a[0])||void 0===s?void 0:s.buttonLink)||void 0===m?void 0:m.cached_url)+D,((o,l,i,n,e,d)=>{var u,t,v,r,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!==(r=null===(v=null===(t=null===(u=null==O?void 0:O[0])||void 0===u?void 0:u.prices)||void 0===t?void 0:t[0])||void 0===v?void 0:v.value)&&void 0!==r?r:0,A=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,B=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,M=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===(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),R=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),$=d?{discountRef:U,discountType:"DISCOUNT"}:null,F=[];null==F||F.push({author:"offerType",text:"ATL"}),null==F||F.push({author:"externalPromotionName",text:U}),null==F||F.push({author:"offerVersion",text:R});const V=d?F: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:A>0?A:E,mobileSubscriptionPromo:o,subGroup:"MOBILE",duration:Number(M>0?M:B),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:$,extraNotes:V,isOttFlow:"ott"===j};void 0!==typeof window&&sessionStorage.setItem("one-ecommerce-mobileSummary",JSON.stringify(J))})(w,i,e&&y,o,d,u),p(I,g,T(i,"",h)),b(f,i,"",h)},O=(o,l,i,e,d,u)=>{((o,l,i,n,e,d,u)=>{var v,r,c,a,s,p,m,f,y,h,g,I,b,T,w,D,P,C,N,S,_,x,L,O,E,A;const B=l,M=null!==(a=null===(c=null===(r=null===(v=null==B?void 0:B[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==B?void 0:B[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==B?void 0:B[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!==(P=null===(D=null===(w=null===(T=null==B?void 0:B[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,$=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),F=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:$,discountType:"DISCOUNT"}:null,j=[];null==j||j.push({author:"offerType",text:"ATL"}),null==j||j.push({author:"externalPromotionName",text:$}),null==j||j.push({author:"offerVersion",text:F});const J=e?j:null,G={internetSubscription:null!=d?d:"",internetSubscriptionId:null!==(E=null===(O=null==B?void 0:B[0])||void 0===O?void 0:O.id)&&void 0!==E?E:"",internetSubscriptionPrice:k>0?k:M,internetSubscriptionPromo:o,subGroup:"INTERNET",duration:Number(R>0?R:U),basePrice:M,withPromo:k>0,upBenefit:"MULTIMOBILE"==i.mob_benefit_category||"FMC"==i.mob_benefit_category,ultimateBundlePromo:null!==(A=null==n?void 0:n.ultimateBundlePromotion)&&void 0!==A?A:"",clientDiscountInfo:V,extraNotes:J,productType:"subscription",recommendAccessory:u};void 0!==typeof window&&sessionStorage.setItem(t,JSON.stringify(G))})((null==o?void 0:o.promoID)?null==o?void 0:o.promoID:n,l,o,i,e,d,u),p(I,g,T(l,"",h)),b(f,l,"",h)},E=(o,l)=>{let i;return l||(i=(o||[]).filter(o=>!0===(null==o?void 0:o.enableTV))),i},A=(o,l,i,n,e,d)=>{var u,t,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,u,t,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===(u=null==l?void 0:l.derivedPrice)||void 0===u||u.map(l=>{var i,n,u,t,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===(u=null==l?void 0:l.cycle)||void 0===u?void 0:u.cycleStart,s.cycleEnd=d&&!(null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.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===(t=null==l?void 0:l.promotionInfo)||void 0===t?void 0:t[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===(t=null===(u=null==o?void 0:o[0])||void 0===u?void 0:u.bundledOffers)||void 0===t||t.forEach(o=>{var l,i,n,e,u;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===(u=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===u?void 0:u.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},B=(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 u=[],t=[],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?u.push(o):1===i?t.push(o):v.push(o));else for(let l=0;l<3;l++)Number(null==o?void 0:o.productIndex)===l&&(0===l?u.push(o):1===l?t.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)?t:u},M=o=>{var n;return null===(n=(null==o?void 0:o.products)||[])||void 0===n?void 0:n.map(o=>{var n,e,d;return{itemType:null!==(n=null==o?void 0:o.type)&&void 0!==n?n:"",promotionId:null!==(e=null==o?void 0:o.promo)&&void 0!==e?e:"",items:[{itemType:(null==o?void 0:o.type)===l?l:i,id:null!==(d=null==o?void 0:o.id)&&void 0!==d?d:""}]}})};let k=null;const U=o=>(null==k?void 0:k.gloxTokenId)===o&&null!==k.results,R=(o,l,i)=>{if(U(o))return Promise.resolve(k.results);if((null==k?void 0:k.gloxTokenId)===o&&null!==k.promise)return k.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==k?void 0:k.gloxTokenId)===o&&(k.results=e,k.promise=null),e}).catch(l=>{throw(null==k?void 0:k.gloxTokenId)===o&&(k=null),l});return k={gloxTokenId:o,results:null,promise:n},n},$=(o,l)=>{const i=o.filter(o=>{var i,n,e,d,u,t;const v=null===(t=null===(u=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===u?void 0:u[0])||void 0===t?void 0:t.productId;return l.includes(v)});return i.sort((o,i)=>{var n,e,d,u,t,v,r,c,a,s,p,m;const f=null===(v=null===(t=null===(u=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===u?void 0:u.product)||void 0===t?void 0:t[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{S as checkGiftOrCashback,L as combineWithSmartPhone,O as combineWithVasOptions,B as fetchFilteredProducts,M as fetchOttItems,N as fetchPegaProducts,A as fetchPrice,E as fetchServiceOptions,C as fetchStaticProductIds,$ as filterShogunProducts,x as findHeight,R as getShogunSharedOffer,P as getTimeUntilNextTimerEvent,U as isShogunOfferResolved,D as isTimerActive,_ 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';\r\nimport { SetStateAction } from 'react';\r\nimport {\r\n DEFAULT_MOBILEPOSTPAID_BUNDLE,\r\n DEFAULT_WIRELINE_BUNDLE,\r\n ONE_ECOMMERCE_INTERNET_SUMMARY,\r\n ONE_ECOMMERCE_SUMMARY,\r\n RATEPLAN,\r\n TV_SERVICE_OPTION,\r\n VCTYPE\r\n} from '../../utils/constants';\r\nimport { createCartV2, fetchShogunOfferData } from '../../services/LineTableService';\r\nimport {\r\n checkLinkWithLang,\r\n getElementMaximumHeight,\r\n getLocalStorageWithExpiry,\r\n returnPriceByType\r\n} from '../../utils/utils';\r\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\r\nimport {\r\n ADDTOCART,\r\n COMBINEDEVICE,\r\n GAEVENT,\r\n LINETABLE,\r\n LINETABLEDEVICE,\r\n LINETABLEPRODUCT\r\n} from '../../Analytics/AnalyticsConstants';\r\nimport { getEcomCartInfo, trackEligibleItem } from '../../models/Analytics/items';\r\nimport { AtlOffer, OfferValidation, PegaProductRequestBase } from '../lineTable/lineTable.types';\r\nimport { calculateDateTime } from './StaticLineTabelTimer/util';\r\n\r\nexport const isTimerActive = (startTime: string, endTime: string): boolean => {\r\n try {\r\n const now = new Date();\r\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\r\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\r\n\r\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\r\n return false;\r\n }\r\n\r\n return now >= start && now < end;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nexport const getTimeUntilNextTimerEvent = (startTime: string, endTime: string): number => {\r\n try {\r\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\r\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\r\n\r\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\r\n return 0;\r\n }\r\n\r\n const now = new Date().getTime();\r\n const startTimeMs = start.getTime();\r\n const endTimeMs = end.getTime();\r\n\r\n // Next transition is start when timer is upcoming, otherwise end when active.\r\n if (now < startTimeMs) {\r\n return Math.max(0, startTimeMs - now);\r\n }\r\n if (now >= startTimeMs && now < endTimeMs) {\r\n return Math.max(0, endTimeMs - now);\r\n }\r\n\r\n return 0;\r\n } catch {\r\n return 0;\r\n }\r\n};\r\n\r\nexport const fetchStaticProductIds = (\r\n productList: any,\r\n productId: any,\r\n bundle4PProduct?: boolean,\r\n tvOptionIds?: any,\r\n //US_31295\r\n pricesToggleState?: any\r\n): any => {\r\n let enableStream = false;\r\n let promotionId = '';\r\n productList?.map((data: any) => {\r\n const productRequest: any = {\r\n id: '',\r\n promoIds: []\r\n };\r\n\r\n const productData = data?.products?.[0]?.reference?.content?.product?.[0];\r\n const promotionData = data?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\r\n promotionId = promotionData?.promotionId;\r\n productRequest['id'] = productData?.productId;\r\n const timer = data?.timer?.[0];\r\n const timerIsActive = timer ? isTimerActive(timer.startTime, timer.endTime) : false;\r\n const timerPromotionId =\r\n timer?.promotion?.[0]?.reference?.content?.promoDescription?.[0]?.promotionId;\r\n const defaultPromotionId =\r\n pricesToggleState && pricesToggleState === true && promotionData?.promotionId === ''\r\n ? DEFAULT_MOBILEPOSTPAID_BUNDLE\r\n : promotionData?.promotionId;\r\n\r\n //US_31295 - add default promo only when timer is not active and timer has no promo\r\n if (timerIsActive && timerPromotionId) {\r\n productRequest?.promoIds?.push(timerPromotionId);\r\n } else {\r\n productRequest?.promoIds?.push(defaultPromotionId);\r\n }\r\n\r\n //for 4P product\r\n if (bundle4PProduct) {\r\n const mobilePromotionData =\r\n data?.mobilePromotion?.[0]?.reference?.content?.promoDescription?.[0];\r\n productRequest?.promoIds?.push(mobilePromotionData?.promotionId);\r\n }\r\n\r\n productId?.push(productRequest);\r\n });\r\n if (enableStream) {\r\n tvOptionIds?.map((option: any) => {\r\n const tvOptionObj: any = {\r\n id: '',\r\n promoIds: []\r\n };\r\n tvOptionObj['id'] = option?.text;\r\n tvOptionObj?.promoIds?.push(promotionId);\r\n\r\n productId?.push(tvOptionObj);\r\n });\r\n }\r\n};\r\n\r\nexport const fetchPegaProducts = (\r\n content: any,\r\n pegaCustomerInterest?: string,\r\n placements?: string\r\n): PegaProductRequestBase => {\r\n // const url = window?.location?.pathname?.split('/') ?? [];\r\n // const pathname = url[url.length - 1];\r\n //set customerInterest as content?.tabCaption capitalize inital letter and after space and then remove spaces - from Other plans into OtherPlans\r\n const customerInterest = content?.tabCaption\r\n ?.replace(/\\b\\w/g, (l: string) => l.toUpperCase())\r\n .replace(/\\s+/g, '');\r\n\r\n const offerValidations = [\r\n {\r\n key: 'Segment',\r\n type: 'CustomerType',\r\n value: 'Residential'\r\n },\r\n {\r\n key: 'OrderType',\r\n type: 'CustomerInterest',\r\n value: 'New'\r\n },\r\n {\r\n key: 'CurrentPage',\r\n type: 'Context',\r\n value: 'mobile-subscription' //pathname ?? ''\r\n },\r\n {\r\n key: 'Category',\r\n type: 'CustomerInterest',\r\n value: customerInterest ?? ''\r\n },\r\n {\r\n key: 'RequestedOfferCount',\r\n type: 'Context',\r\n value: content?.pegaRequestOfferCount?.toString() ?? '3'\r\n },\r\n pegaCustomerInterest\r\n ? {\r\n key: 'Tag',\r\n type: 'CustomerInterest',\r\n value: pegaCustomerInterest\r\n }\r\n : null\r\n ].filter(Boolean) as OfferValidation[];\r\n\r\n const atlOffers: AtlOffer = {\r\n placements,\r\n offerValidations\r\n };\r\n\r\n const pegaProducts: PegaProductRequestBase = {\r\n atlOffers: [atlOffers]\r\n };\r\n\r\n return pegaProducts;\r\n};\r\n\r\nexport const checkGiftOrCashback = (data: any): any => {\r\n let showGift = false;\r\n let cashbackAvailable = false;\r\n data?.map((product: any) => {\r\n product?.promotionInfo?.map((offer: any) => {\r\n if (offer?.hardwareGift) showGift = true;\r\n if (offer?.cashBack) cashbackAvailable = true;\r\n });\r\n });\r\n return { showGift, cashbackAvailable };\r\n};\r\n\r\nexport const staticCreateCart = (\r\n setShowLoader: { (value: SetStateAction<boolean>): void; (arg0: boolean): void },\r\n cartEndPoint: string,\r\n giftItem: any,\r\n uniqueProductData: any,\r\n mainContent: any,\r\n showPrice: any,\r\n isMobileFlow: boolean,\r\n radioValue: any,\r\n eligibleBundle: any,\r\n address: any,\r\n setShowLinecheck: any,\r\n showLinecheck: any,\r\n lineCheckCallBack: any,\r\n enableP2P: any,\r\n P2PData: any,\r\n content: any,\r\n tvOptions?: any,\r\n discountRef?: string,\r\n discountVersion?: string,\r\n // Shogun/rewards (loyalty) flow — forwarded verbatim to createCartV2 so it\r\n // can append the pointsBurnt note to the primary cartItem.\r\n rewardsInfo?: { pointsBurnt?: string | number }\r\n): any => {\r\n if (isMobileFlow) {\r\n setShowLoader(true);\r\n const vcType: { voucher: string; voucherType: string } = getLocalStorageWithExpiry(VCTYPE);\r\n Object.keys(uniqueProductData)?.length !== 0 &&\r\n createCartV2(\r\n uniqueProductData,\r\n '',\r\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE,\r\n cartEndPoint,\r\n 'mobile',\r\n giftItem,\r\n enableP2P,\r\n P2PData,\r\n mainContent?.productContainer?.[0]?.isQoQaFlow,\r\n vcType?.voucher,\r\n null,\r\n null,\r\n discountRef,\r\n discountVersion,\r\n rewardsInfo\r\n )\r\n .then((res: any) => {\r\n Cookies.remove('one-commerce-cartId', { path: '/' });\r\n // saving newly created cartid in the cookies.\r\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\r\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEPRODUCT);\r\n window.location.href = mainContent?.summaryPageUrl?.cached_url;\r\n })\r\n .catch((err) => {\r\n // eslint-disable-next-line no-console\r\n console.log(err);\r\n setShowLoader(false);\r\n })\r\n .finally(() => {\r\n setShowLoader(false);\r\n });\r\n } else {\r\n const linecheckId: any =\r\n typeof window !== 'undefined' && Cookies.get('one-commerce-linecheckcorrelationid');\r\n if (!eligibleBundle || !address || !linecheckId) {\r\n mainContent?.enableLinecheckOverlay ? setShowLinecheck(!showLinecheck) : lineCheckCallBack();\r\n } else {\r\n setShowLoader(true);\r\n uniqueProductData.length !== 0 &&\r\n createCartV2(\r\n uniqueProductData,\r\n radioValue,\r\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_WIRELINE_BUNDLE,\r\n cartEndPoint,\r\n 'fixnet',\r\n giftItem,\r\n '',\r\n '',\r\n false,\r\n '',\r\n '',\r\n tvOptions,\r\n undefined,\r\n undefined,\r\n rewardsInfo\r\n )\r\n .then((res: any) => {\r\n typeof window !== 'undefined' && Cookies.remove('one-commerce-cartId', { path: '/' });\r\n // saving newly created cartid in the cookies.\r\n typeof window !== 'undefined' &&\r\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\r\n typeof window !== 'undefined' &&\r\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\r\n typeof window !== 'undefined' && Cookies.remove('landline');\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLE);\r\n const productUrl = checkLinkWithLang(content?.productBasedCheckoutUrl?.cached_url);\r\n let recommendAccessory = false;\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (uniqueProductData[0]?.isBundle) {\r\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\r\n if (\r\n item?.productType?.toLowerCase() === 'internet' ||\r\n item?.productType?.toLowerCase() == 'tv'\r\n ) {\r\n if (item?.recommendAccessory) {\r\n recommendAccessory = item?.recommendAccessory;\r\n }\r\n }\r\n // setting to false incase of Mobile product Type as it is currently out of scope\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n recommendAccessory = false;\r\n return;\r\n }\r\n });\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n if (uniqueProductData?.[0]?.recommendAccessory) {\r\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\r\n }\r\n }\r\n //setting the session to identify internet flow for mia for win\r\n if (recommendAccessory) {\r\n const sessionObj = { flow: 'WIN' };\r\n sessionStorage.setItem(ONE_ECOMMERCE_SUMMARY, JSON.stringify(sessionObj));\r\n }\r\n\r\n const finalURL = productUrl\r\n ? productUrl\r\n : content?.enableTVStreamingOptionsStepper && mainContent?.vasStepperURL?.cached_url\r\n ? mainContent?.vasStepperURL?.cached_url\r\n : recommendAccessory && mainContent?.multiItemPageRedirectionUrl?.cached_url\r\n ? mainContent?.multiItemPageRedirectionUrl?.cached_url\r\n : mainContent?.summaryPageUrl?.cached_url;\r\n\r\n window.location.href = finalURL;\r\n })\r\n .catch((err: any) => {\r\n // eslint-disable-next-line no-console\r\n console.log(err);\r\n })\r\n .finally(() => {\r\n setShowLoader(false);\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const findHeight = (tabIndex: number, cardsLength: number) => {\r\n const setTimerSectionHeight = () => {\r\n let maxActiveTimerHeight = 0;\r\n const timerSections: HTMLElement[] = [];\r\n\r\n [...Array(cardsLength)].forEach((_, index) => {\r\n const timerSection = document.getElementById(`timer-section${tabIndex}${index}`);\r\n if (timerSection) {\r\n timerSections.push(timerSection);\r\n const isTimerActive = timerSection.dataset.timerActive === 'true';\r\n if (isTimerActive) {\r\n const spacer = timerSection.firstElementChild as HTMLElement | null;\r\n // Read the inline style target height instead of clientHeight so that\r\n // an in-progress CSS transition does not yield an intermediate value.\r\n const targetHeight = parseFloat(spacer?.style.height || '0') || 0;\r\n maxActiveTimerHeight = Math.max(maxActiveTimerHeight, targetHeight);\r\n }\r\n }\r\n });\r\n\r\n timerSections.forEach((timerSection) => {\r\n const isTimerActive = timerSection.dataset.timerActive === 'true';\r\n timerSection.style.transition = 'height 0.3s ease';\r\n timerSection.style.height = isTimerActive ? '0px' : `${maxActiveTimerHeight}px`;\r\n });\r\n };\r\n\r\n getElementMaximumHeight('headingV3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('descriptionV3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('titleV3' + `${tabIndex}`, cardsLength);\r\n setTimerSectionHeight();\r\n getElementMaximumHeight('detailsectionv3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('product-configv3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('gift-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('benefits-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('order-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('price-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('benefits-price-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('contract-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('exclusive-benefits-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('discountedpricetoggle-section' + `${tabIndex}`, cardsLength);\r\n};\r\n\r\nconst setMobileSummarySession = (\r\n promoId: string,\r\n uniqueProductData: any,\r\n pretopostvalues?: any,\r\n showPrice?: any,\r\n product?: any,\r\n pegaIntegration?: any\r\n) => {\r\n const productPrice = uniqueProductData;\r\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\r\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\r\n const contractDuration = productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? 0;\r\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\r\n const pretopostvalue = pretopostvalues ?? '';\r\n //PEGA Integration\r\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\r\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\r\n const clientDiscountInfo = pegaIntegration\r\n ? {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n : null;\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n\r\n const extraNotes = pegaIntegration ? note : null;\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const flow = urlParams.get('flow');\r\n const sessionObj: any = {\r\n mobileSubscription: productPrice?.[0]?.id ?? '',\r\n mobileSubscriptionPrice: discount > 0 ? discount : base,\r\n mobileSubscriptionPromo: promoId,\r\n subGroup: 'MOBILE',\r\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\r\n basePrice: base,\r\n withoutPromo: false,\r\n pretopostvalue: pretopostvalue,\r\n upBenefit:\r\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\r\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\r\n clientDiscountInfo: clientDiscountInfo,\r\n extraNotes: extraNotes,\r\n isOttFlow: flow === 'ott' ? true : false\r\n };\r\n\r\n typeof window !== undefined &&\r\n sessionStorage.setItem('one-ecommerce-mobileSummary', JSON.stringify(sessionObj));\r\n};\r\n\r\nexport const combineWithSmartPhone = (\r\n showPrice: any,\r\n storyContent: any,\r\n uniqueProductData: any,\r\n responseData?: any,\r\n product?: any,\r\n pegaIntegration?: boolean\r\n) => {\r\n const pretopostvalues = {\r\n msisdn: responseData?.msisdn ?? '',\r\n ratePlan: responseData?.ratePlan ?? '',\r\n ratePlanType: responseData?.ratePlanType ?? '',\r\n productId: responseData ? showPrice?.id : ''\r\n };\r\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\r\n let Params = '';\r\n Params = `?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${\r\n promoId ?? ''\r\n }&productCode=${showPrice?.id ?? ''}`;\r\n window.location.href = storyContent?.addSmartPhone?.[0]?.buttonLink?.cached_url + Params;\r\n setMobileSummarySession(\r\n promoId,\r\n uniqueProductData,\r\n responseData && pretopostvalues,\r\n showPrice,\r\n product,\r\n pegaIntegration\r\n );\r\n trackNewDatalayerEvent(\r\n GAEVENT,\r\n COMBINEDEVICE,\r\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\r\n );\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\r\n};\r\n\r\nconst setFixnetSummarySession = (\r\n promoId: string,\r\n uniqueProductData: any,\r\n showPrice?: any,\r\n product?: any,\r\n pegaIntegration?: any,\r\n productName?: string,\r\n recommendAccessory?: boolean | undefined\r\n) => {\r\n const productPrice = uniqueProductData;\r\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\r\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\r\n const contractDuration =\r\n productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? showPrice?.contractDuration ?? 0;\r\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\r\n\r\n //PEGA Integration\r\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\r\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\r\n const clientDiscountInfo = pegaIntegration\r\n ? {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n : null;\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n\r\n const extraNotes = pegaIntegration ? note : null;\r\n\r\n const sessionObj: any = {\r\n internetSubscription: productName ?? '',\r\n internetSubscriptionId: productPrice?.[0]?.id ?? '',\r\n internetSubscriptionPrice: discount > 0 ? discount : base,\r\n internetSubscriptionPromo: promoId,\r\n subGroup: 'INTERNET',\r\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\r\n basePrice: base,\r\n withPromo: discount > 0 ? true : false,\r\n upBenefit:\r\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\r\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\r\n clientDiscountInfo: clientDiscountInfo,\r\n extraNotes: extraNotes,\r\n productType: 'subscription',\r\n recommendAccessory: recommendAccessory\r\n };\r\n\r\n typeof window !== undefined &&\r\n sessionStorage.setItem(ONE_ECOMMERCE_INTERNET_SUMMARY, JSON.stringify(sessionObj));\r\n};\r\nexport const combineWithVasOptions = (\r\n showPrice: any,\r\n uniqueProductData: any,\r\n product?: any,\r\n pegaIntegration?: boolean,\r\n productName?: string,\r\n recommendAccessory?: boolean\r\n) => {\r\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\r\n\r\n setFixnetSummarySession(\r\n promoId,\r\n uniqueProductData,\r\n showPrice,\r\n product,\r\n pegaIntegration,\r\n productName,\r\n recommendAccessory\r\n );\r\n trackNewDatalayerEvent(\r\n GAEVENT,\r\n COMBINEDEVICE,\r\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\r\n );\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\r\n};\r\n\r\nexport const fetchServiceOptions = (entitlement: any, isMobileFlow: boolean) => {\r\n let service: any;\r\n if (!isMobileFlow) {\r\n service = (entitlement || []).filter((product: any) => product?.enableTV === true);\r\n }\r\n return service;\r\n};\r\n\r\nexport const fetchPrice = (\r\n product: any,\r\n isMobileFlow: boolean,\r\n pageType?: string,\r\n isConfigurator?: boolean,\r\n tvOptions?: any[],\r\n pegaIntegration?: boolean\r\n): any => {\r\n const showPrice: any = {\r\n base: '',\r\n onetimePrice: '',\r\n discount: [],\r\n contractDuration: '',\r\n int_fmc: 0,\r\n mob_fmc: 0,\r\n mob_benefit_category: '',\r\n id: '',\r\n promoID: '',\r\n loyaltyPrice: ''\r\n };\r\n let tvOptionsBasePrice = 0;\r\n let tvOptionsDiscountPrice = 0;\r\n let tvOptionsBaseToDiscount = 0;\r\n\r\n Array.isArray(product) &&\r\n product?.map((item: any) => {\r\n showPrice['id'] = item?.id ?? '';\r\n item?.prices?.map((basePrice: any) => {\r\n if (basePrice?.priceType?.toLowerCase() === 'recurring') {\r\n if (tvOptions && tvOptions?.length > 0) {\r\n tvOptions?.forEach((opt: any) => {\r\n if (opt?.beneficiaryPrice > 0) {\r\n tvOptionsDiscountPrice += parseFloat(opt?.beneficiaryPrice);\r\n } else if (opt?.derivedPrice > 0) {\r\n tvOptionsDiscountPrice += parseFloat(opt?.derivedPrice);\r\n } else {\r\n tvOptionsBaseToDiscount += parseFloat(opt?.recurringPrice);\r\n }\r\n if (opt?.recurringPrice > 0) {\r\n tvOptionsBasePrice += parseFloat(opt?.recurringPrice);\r\n }\r\n });\r\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\r\n if (tvOptionsDiscountPrice > 0) {\r\n tvOptionsDiscountPrice += tvOptionsBaseToDiscount;\r\n }\r\n showPrice['base'] = JSON.stringify(\r\n parseFloat(basePrice?.value) +\r\n (tvOptionsDiscountPrice > 0 ? tvOptionsDiscountPrice : tvOptionsBasePrice)\r\n );\r\n } else {\r\n showPrice['base'] = basePrice?.value;\r\n }\r\n } else if (basePrice?.priceType?.toLowerCase() === 'one time')\r\n showPrice['onetimePrice'] = basePrice?.value;\r\n });\r\n item?.derivedPrice?.map((discountPrice: any) => {\r\n const cycle = { cycleStart: '', cycleEnd: '', value: '' };\r\n cycle['cycleStart'] =\r\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n ? 1\r\n : discountPrice?.cycle?.cycleStart;\r\n cycle['cycleEnd'] =\r\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n ? pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n : discountPrice?.cycle?.cycleEnd;\r\n cycle['value'] = discountPrice?.value;\r\n if (tvOptions && tvOptions?.length > 0) {\r\n if (tvOptionsDiscountPrice > 0) {\r\n cycle['value'] = JSON.stringify(\r\n parseFloat(discountPrice?.value) + tvOptionsDiscountPrice\r\n );\r\n } else {\r\n cycle['value'] = JSON.stringify(parseFloat(discountPrice?.value) + tvOptionsBasePrice);\r\n }\r\n }\r\n showPrice['discount'].push(cycle);\r\n });\r\n // Calculating loyalty price introduced with DC portfolio\r\n if (item?.promotionInfo?.[0]?.relatedPromo?.length > 0) {\r\n item?.promotionInfo?.[0]?.relatedPromo?.map((promo: any) => {\r\n if (promo?.type === 'LOYALTY_DISCOUNT') {\r\n showPrice['loyaltyPrice'] = promo?.discount;\r\n }\r\n });\r\n }\r\n });\r\n\r\n product?.[0]?.bundledOffers?.forEach((item: any) => {\r\n item?.prices?.forEach((productDetails: any) => {\r\n if (productDetails?.priceAlteration?.length > 0) {\r\n productDetails?.priceAlteration?.forEach((price: any) => {\r\n if (price?.priceCategory == 'INTERNET_FMC') {\r\n showPrice['int_fmc'] += Number(price?.value);\r\n } else if (price?.priceCategory == 'MULTIMOBILE' || price?.priceCategory == 'FMC') {\r\n showPrice['mob_fmc'] += Number(price?.value);\r\n showPrice['mob_benefit_category'] = price?.priceCategory;\r\n }\r\n });\r\n }\r\n });\r\n if (item?.contractDuration) {\r\n showPrice['contractDuration'] = item?.contractDuration; // for bundled products contract duration is taken from bundled offers\r\n }\r\n if (item?.promotionInfo?.[0]?.id && !pegaIntegration) {\r\n showPrice['promoID'] = item?.promotionInfo?.[0]?.id;\r\n }\r\n });\r\n if (!product?.[0]?.isBundle) {\r\n showPrice['contractDuration'] = product?.[0]?.contractDuration; // for other products\r\n if (!pegaIntegration) {\r\n showPrice['promoID'] = product?.[0]?.promotionInfo?.[0]?.id;\r\n }\r\n }\r\n let int_fmc = 0;\r\n product?.[0]?.prices?.map((productDetails: any) => {\r\n if (productDetails?.priceAlteration?.length > 0) {\r\n productDetails?.priceAlteration?.map((price: any) => {\r\n if (price?.priceCategory == 'INTERNET_FMC') {\r\n int_fmc += Number(price?.value);\r\n } else if (price?.priceCategory == 'MULTIMOBILE' || price?.priceCategory == 'FMC') {\r\n showPrice['mob_fmc'] += Number(price?.value);\r\n showPrice['mob_benefit_category'] = price?.priceCategory;\r\n }\r\n });\r\n }\r\n });\r\n if (!showPrice?.contractDuration && !isMobileFlow) {\r\n showPrice['contractDuration'] = '12';\r\n }\r\n {\r\n showPrice['int_fmc'] = isConfigurator ? int_fmc : showPrice['int_fmc'];\r\n }\r\n if (pageType == '4P') {\r\n let bundleContractDuration = '0';\r\n product?.[0]?.bundledOffers?.map((offerData: any) => {\r\n if (offerData?.contractDuration) {\r\n bundleContractDuration =\r\n Number(bundleContractDuration) > Number(offerData?.contractDuration)\r\n ? bundleContractDuration\r\n : offerData?.contractDuration;\r\n }\r\n });\r\n showPrice['contractDuration'] = bundleContractDuration;\r\n }\r\n return showPrice;\r\n};\r\n\r\n//function for creating different array for 3 selections\r\nexport const fetchFilteredProducts = (productList: any, toggleState: any) => {\r\n //need to centralize for comman solution\r\n // Filter productList based on gigaSpeed toggle - US #363853\r\n let filteredList = productList;\r\n\r\n filteredList = productList.filter((item: any) => {\r\n const gigaSpeedValue = item?.gigaSpeed?.toLowerCase();\r\n if (toggleState?.gigaSpeed) {\r\n return gigaSpeedValue != 'hide';\r\n } else {\r\n return gigaSpeedValue != 'show';\r\n }\r\n });\r\n\r\n let mainArray = filteredList;\r\n const numberOfArray = 3;\r\n let res1 = [];\r\n let res2 = [];\r\n let res3 = [];\r\n for (let item of mainArray) {\r\n const multiIndex = item?.productIndex?.includes(',');\r\n const updatedMultiIndex = multiIndex && item?.productIndex?.split(',');\r\n if (multiIndex) {\r\n for (let mIndex of updatedMultiIndex) {\r\n for (let i = 0; i < numberOfArray; i++) {\r\n if (Number(mIndex) === i) {\r\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < numberOfArray; i++) {\r\n if (Number(item?.productIndex) === i) {\r\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\r\n }\r\n }\r\n }\r\n }\r\n const displayContent =\r\n toggleState?.TV && toggleState?.Netflix ? res3 : toggleState?.TV ? res2 : res1;\r\n return displayContent;\r\n};\r\nexport const fetchOttItems = (ottCartData: any) => {\r\n return (ottCartData?.products || [])?.map((products: any) => ({\r\n itemType: products?.type ?? '',\r\n promotionId: products?.promo ?? '',\r\n items: [\r\n {\r\n itemType: products?.type === TV_SERVICE_OPTION ? TV_SERVICE_OPTION : RATEPLAN,\r\n id: products?.id ?? ''\r\n }\r\n ]\r\n }));\r\n};\r\n\r\n// ─── Shogun shared-offer cache ────────────────────────────────────────────────\r\n\r\ninterface ShogunOfferCacheEntry {\r\n gloxTokenId: string;\r\n results: any[] | null;\r\n promise: Promise<any[]> | null;\r\n}\r\n\r\nlet shogunOfferSharedCache: ShogunOfferCacheEntry | null = null;\r\n\r\n/**\r\n * Returns true when the shared cache already holds resolved results for the\r\n * given token. Callers can use this to skip triggering a loading state.\r\n */\r\nexport const isShogunOfferResolved = (gloxTokenId: string): boolean =>\r\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\r\n shogunOfferSharedCache.results !== null;\r\n\r\n/**\r\n * Shared-promise manager for the Shogun offer API.\r\n *\r\n * Because the Shogun flow sends no product payload (only gloxTokenId) the\r\n * response is identical for every StaticProductContainer on the page.\r\n * This function ensures exactly one network request is made:\r\n * - If results are already resolved → returns Promise.resolve(results)\r\n * - If a fetch is in-flight → returns the same promise\r\n * - First caller → creates the fetch and stores the promise\r\n *\r\n * On failure the promise rejects — the caller is responsible for surfacing\r\n * the error (e.g. showing the telesales/error popup). The failure is NOT\r\n * cached, so a retry (e.g. tab switch) will trigger a fresh request.\r\n */\r\nexport const getShogunSharedOffer = (\r\n gloxTokenId: string,\r\n uniqueId: string,\r\n offerEndpoint: string\r\n): Promise<any[]> => {\r\n // Already resolved\r\n if (isShogunOfferResolved(gloxTokenId)) {\r\n return Promise.resolve(shogunOfferSharedCache!.results!);\r\n }\r\n\r\n // In-flight\r\n if (\r\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\r\n shogunOfferSharedCache.promise !== null\r\n ) {\r\n return shogunOfferSharedCache.promise;\r\n }\r\n\r\n // First caller — start the real fetch\r\n const fetchPromise: Promise<any[]> = fetchShogunOfferData(gloxTokenId, uniqueId, offerEndpoint)\r\n .then((resp: any) => {\r\n const results: any[] = resp?.[uniqueId] ?? [];\r\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\r\n shogunOfferSharedCache.results = results;\r\n shogunOfferSharedCache.promise = null;\r\n }\r\n return results;\r\n })\r\n .catch((err: any) => {\r\n // Clear the cache entry so the next call retries the API.\r\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\r\n shogunOfferSharedCache = null;\r\n }\r\n throw err;\r\n });\r\n\r\n shogunOfferSharedCache = { gloxTokenId, results: null, promise: fetchPromise };\r\n return fetchPromise;\r\n};\r\n\r\n\r\n/**\r\n * Filters and sorts the Storyblok product list to match only the products\r\n * returned by the Shogun offer API, preserving the API response order.\r\n */\r\nexport const filterShogunProducts = (\r\n availableProducts: any[],\r\n shogunProductIds: string[]\r\n): any[] => {\r\n const filtered = availableProducts.filter((product: any) => {\r\n const productId = product?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n return shogunProductIds.includes(productId);\r\n });\r\n\r\n filtered.sort((a: any, b: any) => {\r\n const aId = a?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n const bId = b?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n return shogunProductIds.indexOf(aId) - shogunProductIds.indexOf(bId);\r\n });\r\n\r\n return filtered;\r\n};\r\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","vcType","getLocalStorageWithExpiry","VCTYPE","Object","keys","length","createCartV2","promoID","productContainer","isQoQaFlow","voucher","then","res","Cookies","remove","path","set","trackEligibleItem","ADDTOCART","LINETABLEPRODUCT","window","location","href","summaryPageUrl","cached_url","catch","err","console","log","finally","linecheckId","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","findHeight","tabIndex","cardsLength","getElementMaximumHeight","maxActiveTimerHeight","timerSections","Array","forEach","_","index","timerSection","document","getElementById","dataset","timerActive","spacer","firstElementChild","targetHeight","parseFloat","style","height","transition","setTimerSectionHeight","combineWithSmartPhone","storyContent","responseData","pegaIntegration","pretopostvalues","msisdn","ratePlan","ratePlanType","promoId","Params","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';\r\nimport { SetStateAction } from 'react';\r\nimport {\r\n DEFAULT_MOBILEPOSTPAID_BUNDLE,\r\n DEFAULT_WIRELINE_BUNDLE,\r\n ONE_ECOMMERCE_INTERNET_SUMMARY,\r\n ONE_ECOMMERCE_SUMMARY,\r\n RATEPLAN,\r\n TV_SERVICE_OPTION,\r\n VCTYPE\r\n} from '../../utils/constants';\r\nimport { createCartV2, fetchShogunOfferData } from '../../services/LineTableService';\r\nimport {\r\n checkLinkWithLang,\r\n getElementMaximumHeight,\r\n getLocalStorageWithExpiry,\r\n returnPriceByType\r\n} from '../../utils/utils';\r\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\r\nimport {\r\n ADDTOCART,\r\n COMBINEDEVICE,\r\n GAEVENT,\r\n LINETABLE,\r\n LINETABLEDEVICE,\r\n LINETABLEPRODUCT\r\n} from '../../Analytics/AnalyticsConstants';\r\nimport { getEcomCartInfo, trackEligibleItem } from '../../models/Analytics/items';\r\nimport { AtlOffer, OfferValidation, PegaProductRequestBase } from '../lineTable/lineTable.types';\r\nimport { calculateDateTime } from './StaticLineTabelTimer/util';\r\n\r\nexport const isTimerActive = (startTime: string, endTime: string): boolean => {\r\n try {\r\n const now = new Date();\r\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\r\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\r\n\r\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\r\n return false;\r\n }\r\n\r\n return now >= start && now < end;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nexport const getTimeUntilNextTimerEvent = (startTime: string, endTime: string): number => {\r\n try {\r\n const start = calculateDateTime(new Date(startTime.replace(/-/g, '/')));\r\n const end = calculateDateTime(new Date(endTime.replace(/-/g, '/')));\r\n\r\n if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {\r\n return 0;\r\n }\r\n\r\n const now = new Date().getTime();\r\n const startTimeMs = start.getTime();\r\n const endTimeMs = end.getTime();\r\n\r\n // Next transition is start when timer is upcoming, otherwise end when active.\r\n if (now < startTimeMs) {\r\n return Math.max(0, startTimeMs - now);\r\n }\r\n if (now >= startTimeMs && now < endTimeMs) {\r\n return Math.max(0, endTimeMs - now);\r\n }\r\n\r\n return 0;\r\n } catch {\r\n return 0;\r\n }\r\n};\r\n\r\nexport const fetchStaticProductIds = (\r\n productList: any,\r\n productId: any,\r\n bundle4PProduct?: boolean,\r\n tvOptionIds?: any,\r\n //US_31295\r\n pricesToggleState?: any\r\n): any => {\r\n let enableStream = false;\r\n let promotionId = '';\r\n productList?.map((data: any) => {\r\n const productRequest: any = {\r\n id: '',\r\n promoIds: []\r\n };\r\n\r\n const productData = data?.products?.[0]?.reference?.content?.product?.[0];\r\n const promotionData = data?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\r\n promotionId = promotionData?.promotionId;\r\n productRequest['id'] = productData?.productId;\r\n const timer = data?.timer?.[0];\r\n const timerIsActive = timer ? isTimerActive(timer.startTime, timer.endTime) : false;\r\n const timerPromotionId =\r\n timer?.promotion?.[0]?.reference?.content?.promoDescription?.[0]?.promotionId;\r\n const defaultPromotionId =\r\n pricesToggleState && pricesToggleState === true && promotionData?.promotionId === ''\r\n ? DEFAULT_MOBILEPOSTPAID_BUNDLE\r\n : promotionData?.promotionId;\r\n\r\n //US_31295 - add default promo only when timer is not active and timer has no promo\r\n if (timerIsActive && timerPromotionId) {\r\n productRequest?.promoIds?.push(timerPromotionId);\r\n } else {\r\n productRequest?.promoIds?.push(defaultPromotionId);\r\n }\r\n\r\n //for 4P product\r\n if (bundle4PProduct) {\r\n const mobilePromotionData =\r\n data?.mobilePromotion?.[0]?.reference?.content?.promoDescription?.[0];\r\n productRequest?.promoIds?.push(mobilePromotionData?.promotionId);\r\n }\r\n\r\n productId?.push(productRequest);\r\n });\r\n if (enableStream) {\r\n tvOptionIds?.map((option: any) => {\r\n const tvOptionObj: any = {\r\n id: '',\r\n promoIds: []\r\n };\r\n tvOptionObj['id'] = option?.text;\r\n tvOptionObj?.promoIds?.push(promotionId);\r\n\r\n productId?.push(tvOptionObj);\r\n });\r\n }\r\n};\r\n\r\nexport const fetchPegaProducts = (\r\n content: any,\r\n pegaCustomerInterest?: string,\r\n placements?: string\r\n): PegaProductRequestBase => {\r\n // const url = window?.location?.pathname?.split('/') ?? [];\r\n // const pathname = url[url.length - 1];\r\n //set customerInterest as content?.tabCaption capitalize inital letter and after space and then remove spaces - from Other plans into OtherPlans\r\n const customerInterest = content?.tabCaption\r\n ?.replace(/\\b\\w/g, (l: string) => l.toUpperCase())\r\n .replace(/\\s+/g, '');\r\n\r\n const offerValidations = [\r\n {\r\n key: 'Segment',\r\n type: 'CustomerType',\r\n value: 'Residential'\r\n },\r\n {\r\n key: 'OrderType',\r\n type: 'CustomerInterest',\r\n value: 'New'\r\n },\r\n {\r\n key: 'CurrentPage',\r\n type: 'Context',\r\n value: 'mobile-subscription' //pathname ?? ''\r\n },\r\n {\r\n key: 'Category',\r\n type: 'CustomerInterest',\r\n value: customerInterest ?? ''\r\n },\r\n {\r\n key: 'RequestedOfferCount',\r\n type: 'Context',\r\n value: content?.pegaRequestOfferCount?.toString() ?? '3'\r\n },\r\n pegaCustomerInterest\r\n ? {\r\n key: 'Tag',\r\n type: 'CustomerInterest',\r\n value: pegaCustomerInterest\r\n }\r\n : null\r\n ].filter(Boolean) as OfferValidation[];\r\n\r\n const atlOffers: AtlOffer = {\r\n placements,\r\n offerValidations\r\n };\r\n\r\n const pegaProducts: PegaProductRequestBase = {\r\n atlOffers: [atlOffers]\r\n };\r\n\r\n return pegaProducts;\r\n};\r\n\r\nexport const checkGiftOrCashback = (data: any): any => {\r\n let showGift = false;\r\n let cashbackAvailable = false;\r\n data?.map((product: any) => {\r\n product?.promotionInfo?.map((offer: any) => {\r\n if (offer?.hardwareGift) showGift = true;\r\n if (offer?.cashBack) cashbackAvailable = true;\r\n });\r\n });\r\n return { showGift, cashbackAvailable };\r\n};\r\n\r\nexport const staticCreateCart = (\r\n setShowLoader: { (value: SetStateAction<boolean>): void; (arg0: boolean): void },\r\n cartEndPoint: string,\r\n giftItem: any,\r\n uniqueProductData: any,\r\n mainContent: any,\r\n showPrice: any,\r\n isMobileFlow: boolean,\r\n radioValue: any,\r\n eligibleBundle: any,\r\n address: any,\r\n setShowLinecheck: any,\r\n showLinecheck: any,\r\n lineCheckCallBack: any,\r\n enableP2P: any,\r\n P2PData: any,\r\n content: any,\r\n tvOptions?: any,\r\n discountRef?: string,\r\n discountVersion?: string,\r\n // Shogun/rewards (loyalty) flow — forwarded verbatim to createCartV2 so it\r\n // can append the pointsBurnt note at the item level (RATEPLAN for MOBILE,\r\n // internet item for FIXNET).\r\n rewardsInfo?: { pointsBurnt?: string | number }\r\n): any => {\r\n if (isMobileFlow) {\r\n setShowLoader(true);\r\n const vcType: { voucher: string; voucherType: string } = getLocalStorageWithExpiry(VCTYPE);\r\n Object.keys(uniqueProductData)?.length !== 0 &&\r\n createCartV2(\r\n uniqueProductData,\r\n '',\r\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE,\r\n cartEndPoint,\r\n 'mobile',\r\n giftItem,\r\n enableP2P,\r\n P2PData,\r\n mainContent?.productContainer?.[0]?.isQoQaFlow,\r\n vcType?.voucher,\r\n null,\r\n null,\r\n discountRef,\r\n discountVersion,\r\n rewardsInfo\r\n )\r\n .then((res: any) => {\r\n Cookies.remove('one-commerce-cartId', { path: '/' });\r\n // saving newly created cartid in the cookies.\r\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\r\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEPRODUCT);\r\n window.location.href = mainContent?.summaryPageUrl?.cached_url;\r\n })\r\n .catch((err) => {\r\n // eslint-disable-next-line no-console\r\n console.log(err);\r\n setShowLoader(false);\r\n })\r\n .finally(() => {\r\n setShowLoader(false);\r\n });\r\n } else {\r\n const linecheckId: any =\r\n typeof window !== 'undefined' && Cookies.get('one-commerce-linecheckcorrelationid');\r\n if (!eligibleBundle || !address || !linecheckId) {\r\n mainContent?.enableLinecheckOverlay ? setShowLinecheck(!showLinecheck) : lineCheckCallBack();\r\n } else {\r\n setShowLoader(true);\r\n uniqueProductData.length !== 0 &&\r\n createCartV2(\r\n uniqueProductData,\r\n radioValue,\r\n showPrice?.promoID ? showPrice?.promoID : DEFAULT_WIRELINE_BUNDLE,\r\n cartEndPoint,\r\n 'fixnet',\r\n giftItem,\r\n '',\r\n '',\r\n false,\r\n '',\r\n '',\r\n tvOptions,\r\n undefined,\r\n undefined,\r\n rewardsInfo\r\n )\r\n .then((res: any) => {\r\n typeof window !== 'undefined' && Cookies.remove('one-commerce-cartId', { path: '/' });\r\n // saving newly created cartid in the cookies.\r\n typeof window !== 'undefined' &&\r\n Cookies.set('one-commerce-cartId', res?.id, { path: '/' });\r\n typeof window !== 'undefined' &&\r\n Cookies.set('cartProduct', showPrice?.id, { path: '/' });\r\n typeof window !== 'undefined' && Cookies.remove('landline');\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLE);\r\n const productUrl = checkLinkWithLang(content?.productBasedCheckoutUrl?.cached_url);\r\n let recommendAccessory = false;\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (uniqueProductData[0]?.isBundle) {\r\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\r\n if (\r\n item?.productType?.toLowerCase() === 'internet' ||\r\n item?.productType?.toLowerCase() == 'tv'\r\n ) {\r\n if (item?.recommendAccessory) {\r\n recommendAccessory = item?.recommendAccessory;\r\n }\r\n }\r\n // setting to false incase of Mobile product Type as it is currently out of scope\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n recommendAccessory = false;\r\n return;\r\n }\r\n });\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n if (uniqueProductData?.[0]?.recommendAccessory) {\r\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\r\n }\r\n }\r\n //setting the session to identify internet flow for mia for win\r\n if (recommendAccessory) {\r\n const sessionObj = { flow: 'WIN' };\r\n sessionStorage.setItem(ONE_ECOMMERCE_SUMMARY, JSON.stringify(sessionObj));\r\n }\r\n\r\n const finalURL = productUrl\r\n ? productUrl\r\n : content?.enableTVStreamingOptionsStepper && mainContent?.vasStepperURL?.cached_url\r\n ? mainContent?.vasStepperURL?.cached_url\r\n : recommendAccessory && mainContent?.multiItemPageRedirectionUrl?.cached_url\r\n ? mainContent?.multiItemPageRedirectionUrl?.cached_url\r\n : mainContent?.summaryPageUrl?.cached_url;\r\n\r\n window.location.href = finalURL;\r\n })\r\n .catch((err: any) => {\r\n // eslint-disable-next-line no-console\r\n console.log(err);\r\n })\r\n .finally(() => {\r\n setShowLoader(false);\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const findHeight = (tabIndex: number, cardsLength: number) => {\r\n const setTimerSectionHeight = () => {\r\n let maxActiveTimerHeight = 0;\r\n const timerSections: HTMLElement[] = [];\r\n\r\n [...Array(cardsLength)].forEach((_, index) => {\r\n const timerSection = document.getElementById(`timer-section${tabIndex}${index}`);\r\n if (timerSection) {\r\n timerSections.push(timerSection);\r\n const isTimerActive = timerSection.dataset.timerActive === 'true';\r\n if (isTimerActive) {\r\n const spacer = timerSection.firstElementChild as HTMLElement | null;\r\n // Read the inline style target height instead of clientHeight so that\r\n // an in-progress CSS transition does not yield an intermediate value.\r\n const targetHeight = parseFloat(spacer?.style.height || '0') || 0;\r\n maxActiveTimerHeight = Math.max(maxActiveTimerHeight, targetHeight);\r\n }\r\n }\r\n });\r\n\r\n timerSections.forEach((timerSection) => {\r\n const isTimerActive = timerSection.dataset.timerActive === 'true';\r\n timerSection.style.transition = 'height 0.3s ease';\r\n timerSection.style.height = isTimerActive ? '0px' : `${maxActiveTimerHeight}px`;\r\n });\r\n };\r\n\r\n getElementMaximumHeight('headingV3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('descriptionV3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('titleV3' + `${tabIndex}`, cardsLength);\r\n setTimerSectionHeight();\r\n getElementMaximumHeight('detailsectionv3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('product-configv3' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('gift-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('benefits-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('order-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('price-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('benefits-price-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('contract-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('exclusive-benefits-section' + `${tabIndex}`, cardsLength);\r\n getElementMaximumHeight('discountedpricetoggle-section' + `${tabIndex}`, cardsLength);\r\n};\r\n\r\nconst setMobileSummarySession = (\r\n promoId: string,\r\n uniqueProductData: any,\r\n pretopostvalues?: any,\r\n showPrice?: any,\r\n product?: any,\r\n pegaIntegration?: any\r\n) => {\r\n const productPrice = uniqueProductData;\r\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\r\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\r\n const contractDuration = productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? 0;\r\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\r\n const pretopostvalue = pretopostvalues ?? '';\r\n //PEGA Integration\r\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\r\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\r\n const clientDiscountInfo = pegaIntegration\r\n ? {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n : null;\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n\r\n const extraNotes = pegaIntegration ? note : null;\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const flow = urlParams.get('flow');\r\n const sessionObj: any = {\r\n mobileSubscription: productPrice?.[0]?.id ?? '',\r\n mobileSubscriptionPrice: discount > 0 ? discount : base,\r\n mobileSubscriptionPromo: promoId,\r\n subGroup: 'MOBILE',\r\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\r\n basePrice: base,\r\n withoutPromo: false,\r\n pretopostvalue: pretopostvalue,\r\n upBenefit:\r\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\r\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\r\n clientDiscountInfo: clientDiscountInfo,\r\n extraNotes: extraNotes,\r\n isOttFlow: flow === 'ott' ? true : false\r\n };\r\n\r\n typeof window !== undefined &&\r\n sessionStorage.setItem('one-ecommerce-mobileSummary', JSON.stringify(sessionObj));\r\n};\r\n\r\nexport const combineWithSmartPhone = (\r\n showPrice: any,\r\n storyContent: any,\r\n uniqueProductData: any,\r\n responseData?: any,\r\n product?: any,\r\n pegaIntegration?: boolean\r\n) => {\r\n const pretopostvalues = {\r\n msisdn: responseData?.msisdn ?? '',\r\n ratePlan: responseData?.ratePlan ?? '',\r\n ratePlanType: responseData?.ratePlanType ?? '',\r\n productId: responseData ? showPrice?.id : ''\r\n };\r\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\r\n let Params = '';\r\n Params = `?componentCode=&productType=subscription&segmentCode=RC&prefPromo=${\r\n promoId ?? ''\r\n }&productCode=${showPrice?.id ?? ''}`;\r\n window.location.href = storyContent?.addSmartPhone?.[0]?.buttonLink?.cached_url + Params;\r\n setMobileSummarySession(\r\n promoId,\r\n uniqueProductData,\r\n responseData && pretopostvalues,\r\n showPrice,\r\n product,\r\n pegaIntegration\r\n );\r\n trackNewDatalayerEvent(\r\n GAEVENT,\r\n COMBINEDEVICE,\r\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\r\n );\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\r\n};\r\n\r\nconst setFixnetSummarySession = (\r\n promoId: string,\r\n uniqueProductData: any,\r\n showPrice?: any,\r\n product?: any,\r\n pegaIntegration?: any,\r\n productName?: string,\r\n recommendAccessory?: boolean | undefined\r\n) => {\r\n const productPrice = uniqueProductData;\r\n const base: number = productPrice?.[0]?.prices?.[0]?.value ?? 0;\r\n const discount = productPrice?.[0]?.derivedPrice?.[0]?.value ?? 0;\r\n const contractDuration =\r\n productPrice?.[0]?.promotionInfo?.[0]?.contractDuration ?? showPrice?.contractDuration ?? 0;\r\n const campaignDuration = productPrice?.[0]?.promotionInfo?.[0]?.campaignDuration ?? 0;\r\n\r\n //PEGA Integration\r\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\r\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\r\n const clientDiscountInfo = pegaIntegration\r\n ? {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n : null;\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n\r\n const extraNotes = pegaIntegration ? note : null;\r\n\r\n const sessionObj: any = {\r\n internetSubscription: productName ?? '',\r\n internetSubscriptionId: productPrice?.[0]?.id ?? '',\r\n internetSubscriptionPrice: discount > 0 ? discount : base,\r\n internetSubscriptionPromo: promoId,\r\n subGroup: 'INTERNET',\r\n duration: Number(campaignDuration > 0 ? campaignDuration : contractDuration),\r\n basePrice: base,\r\n withPromo: discount > 0 ? true : false,\r\n upBenefit:\r\n showPrice.mob_benefit_category == 'MULTIMOBILE' || showPrice.mob_benefit_category == 'FMC',\r\n ultimateBundlePromo: product?.ultimateBundlePromotion ?? '',\r\n clientDiscountInfo: clientDiscountInfo,\r\n extraNotes: extraNotes,\r\n productType: 'subscription',\r\n recommendAccessory: recommendAccessory\r\n };\r\n\r\n typeof window !== undefined &&\r\n sessionStorage.setItem(ONE_ECOMMERCE_INTERNET_SUMMARY, JSON.stringify(sessionObj));\r\n};\r\nexport const combineWithVasOptions = (\r\n showPrice: any,\r\n uniqueProductData: any,\r\n product?: any,\r\n pegaIntegration?: boolean,\r\n productName?: string,\r\n recommendAccessory?: boolean\r\n) => {\r\n const promoId = showPrice?.promoID ? showPrice?.promoID : DEFAULT_MOBILEPOSTPAID_BUNDLE;\r\n\r\n setFixnetSummarySession(\r\n promoId,\r\n uniqueProductData,\r\n showPrice,\r\n product,\r\n pegaIntegration,\r\n productName,\r\n recommendAccessory\r\n );\r\n trackNewDatalayerEvent(\r\n GAEVENT,\r\n COMBINEDEVICE,\r\n getEcomCartInfo(uniqueProductData, '', LINETABLEDEVICE)\r\n );\r\n trackEligibleItem(ADDTOCART, uniqueProductData, '', LINETABLEDEVICE);\r\n};\r\n\r\nexport const fetchServiceOptions = (entitlement: any, isMobileFlow: boolean) => {\r\n let service: any;\r\n if (!isMobileFlow) {\r\n service = (entitlement || []).filter((product: any) => product?.enableTV === true);\r\n }\r\n return service;\r\n};\r\n\r\nexport const fetchPrice = (\r\n product: any,\r\n isMobileFlow: boolean,\r\n pageType?: string,\r\n isConfigurator?: boolean,\r\n tvOptions?: any[],\r\n pegaIntegration?: boolean\r\n): any => {\r\n const showPrice: any = {\r\n base: '',\r\n onetimePrice: '',\r\n discount: [],\r\n contractDuration: '',\r\n int_fmc: 0,\r\n mob_fmc: 0,\r\n mob_benefit_category: '',\r\n id: '',\r\n promoID: '',\r\n loyaltyPrice: ''\r\n };\r\n let tvOptionsBasePrice = 0;\r\n let tvOptionsDiscountPrice = 0;\r\n let tvOptionsBaseToDiscount = 0;\r\n\r\n Array.isArray(product) &&\r\n product?.map((item: any) => {\r\n showPrice['id'] = item?.id ?? '';\r\n item?.prices?.map((basePrice: any) => {\r\n if (basePrice?.priceType?.toLowerCase() === 'recurring') {\r\n if (tvOptions && tvOptions?.length > 0) {\r\n tvOptions?.forEach((opt: any) => {\r\n if (opt?.beneficiaryPrice > 0) {\r\n tvOptionsDiscountPrice += parseFloat(opt?.beneficiaryPrice);\r\n } else if (opt?.derivedPrice > 0) {\r\n tvOptionsDiscountPrice += parseFloat(opt?.derivedPrice);\r\n } else {\r\n tvOptionsBaseToDiscount += parseFloat(opt?.recurringPrice);\r\n }\r\n if (opt?.recurringPrice > 0) {\r\n tvOptionsBasePrice += parseFloat(opt?.recurringPrice);\r\n }\r\n });\r\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\r\n if (tvOptionsDiscountPrice > 0) {\r\n tvOptionsDiscountPrice += tvOptionsBaseToDiscount;\r\n }\r\n showPrice['base'] = JSON.stringify(\r\n parseFloat(basePrice?.value) +\r\n (tvOptionsDiscountPrice > 0 ? tvOptionsDiscountPrice : tvOptionsBasePrice)\r\n );\r\n } else {\r\n showPrice['base'] = basePrice?.value;\r\n }\r\n } else if (basePrice?.priceType?.toLowerCase() === 'one time')\r\n showPrice['onetimePrice'] = basePrice?.value;\r\n });\r\n item?.derivedPrice?.map((discountPrice: any) => {\r\n const cycle = { cycleStart: '', cycleEnd: '', value: '' };\r\n cycle['cycleStart'] =\r\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n ? 1\r\n : discountPrice?.cycle?.cycleStart;\r\n cycle['cycleEnd'] =\r\n pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n ? pegaIntegration && !product?.[0]?.isBundle && product?.[0]?.contractDuration\r\n : discountPrice?.cycle?.cycleEnd;\r\n cycle['value'] = discountPrice?.value;\r\n if (tvOptions && tvOptions?.length > 0) {\r\n if (tvOptionsDiscountPrice > 0) {\r\n cycle['value'] = JSON.stringify(\r\n parseFloat(discountPrice?.value) + tvOptionsDiscountPrice\r\n );\r\n } else {\r\n cycle['value'] = JSON.stringify(parseFloat(discountPrice?.value) + tvOptionsBasePrice);\r\n }\r\n }\r\n showPrice['discount'].push(cycle);\r\n });\r\n // Calculating loyalty price introduced with DC portfolio\r\n if (item?.promotionInfo?.[0]?.relatedPromo?.length > 0) {\r\n item?.promotionInfo?.[0]?.relatedPromo?.map((promo: any) => {\r\n if (promo?.type === 'LOYALTY_DISCOUNT') {\r\n showPrice['loyaltyPrice'] = promo?.discount;\r\n }\r\n });\r\n }\r\n });\r\n\r\n product?.[0]?.bundledOffers?.forEach((item: any) => {\r\n item?.prices?.forEach((productDetails: any) => {\r\n if (productDetails?.priceAlteration?.length > 0) {\r\n productDetails?.priceAlteration?.forEach((price: any) => {\r\n if (price?.priceCategory == 'INTERNET_FMC') {\r\n showPrice['int_fmc'] += Number(price?.value);\r\n } else if (\r\n price?.priceCategory == 'MULTIMOBILE' ||\r\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\r\n price?.priceCategory == 'FMC'\r\n ) {\r\n showPrice['mob_fmc'] += Number(price?.value);\r\n showPrice['mob_benefit_category'] = price?.priceCategory;\r\n }\r\n });\r\n }\r\n });\r\n if (item?.contractDuration) {\r\n showPrice['contractDuration'] = item?.contractDuration; // for bundled products contract duration is taken from bundled offers\r\n }\r\n if (item?.promotionInfo?.[0]?.id && !pegaIntegration) {\r\n showPrice['promoID'] = item?.promotionInfo?.[0]?.id;\r\n }\r\n });\r\n if (!product?.[0]?.isBundle) {\r\n showPrice['contractDuration'] = product?.[0]?.contractDuration; // for other products\r\n if (!pegaIntegration) {\r\n showPrice['promoID'] = product?.[0]?.promotionInfo?.[0]?.id;\r\n }\r\n }\r\n let int_fmc = 0;\r\n product?.[0]?.prices?.map((productDetails: any) => {\r\n if (productDetails?.priceAlteration?.length > 0) {\r\n productDetails?.priceAlteration?.map((price: any) => {\r\n if (price?.priceCategory == 'INTERNET_FMC') {\r\n int_fmc += Number(price?.value);\r\n } else if (\r\n price?.priceCategory == 'MULTIMOBILE' ||\r\n price?.priceCategory == 'MULTIMOBILE_REWARD' ||\r\n price?.priceCategory == 'FMC'\r\n ) {\r\n showPrice['mob_fmc'] += Number(price?.value);\r\n showPrice['mob_benefit_category'] = price?.priceCategory;\r\n }\r\n });\r\n }\r\n });\r\n if (!showPrice?.contractDuration && !isMobileFlow) {\r\n showPrice['contractDuration'] = '12';\r\n }\r\n {\r\n showPrice['int_fmc'] = isConfigurator ? int_fmc : showPrice['int_fmc'];\r\n }\r\n if (pageType == '4P') {\r\n let bundleContractDuration = '0';\r\n product?.[0]?.bundledOffers?.map((offerData: any) => {\r\n if (offerData?.contractDuration) {\r\n bundleContractDuration =\r\n Number(bundleContractDuration) > Number(offerData?.contractDuration)\r\n ? bundleContractDuration\r\n : offerData?.contractDuration;\r\n }\r\n });\r\n showPrice['contractDuration'] = bundleContractDuration;\r\n }\r\n return showPrice;\r\n};\r\n\r\n//function for creating different array for 3 selections\r\nexport const fetchFilteredProducts = (productList: any, toggleState: any) => {\r\n //need to centralize for comman solution\r\n // Filter productList based on gigaSpeed toggle - US #363853\r\n let filteredList = productList;\r\n\r\n filteredList = productList.filter((item: any) => {\r\n const gigaSpeedValue = item?.gigaSpeed?.toLowerCase();\r\n if (toggleState?.gigaSpeed) {\r\n return gigaSpeedValue != 'hide';\r\n } else {\r\n return gigaSpeedValue != 'show';\r\n }\r\n });\r\n\r\n let mainArray = filteredList;\r\n const numberOfArray = 3;\r\n let res1 = [];\r\n let res2 = [];\r\n let res3 = [];\r\n for (let item of mainArray) {\r\n const multiIndex = item?.productIndex?.includes(',');\r\n const updatedMultiIndex = multiIndex && item?.productIndex?.split(',');\r\n if (multiIndex) {\r\n for (let mIndex of updatedMultiIndex) {\r\n for (let i = 0; i < numberOfArray; i++) {\r\n if (Number(mIndex) === i) {\r\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < numberOfArray; i++) {\r\n if (Number(item?.productIndex) === i) {\r\n i === 0 ? res1.push(item) : i === 1 ? res2.push(item) : res3.push(item);\r\n }\r\n }\r\n }\r\n }\r\n const displayContent =\r\n toggleState?.TV && toggleState?.Netflix ? res3 : toggleState?.TV ? res2 : res1;\r\n return displayContent;\r\n};\r\nexport const fetchOttItems = (ottCartData: any) => {\r\n return (ottCartData?.products || [])?.map((products: any) => ({\r\n itemType: products?.type ?? '',\r\n promotionId: products?.promo ?? '',\r\n items: [\r\n {\r\n itemType: products?.type === TV_SERVICE_OPTION ? TV_SERVICE_OPTION : RATEPLAN,\r\n id: products?.id ?? ''\r\n }\r\n ]\r\n }));\r\n};\r\n\r\n// ─── Shogun shared-offer cache ────────────────────────────────────────────────\r\n\r\ninterface ShogunOfferCacheEntry {\r\n gloxTokenId: string;\r\n results: any[] | null;\r\n promise: Promise<any[]> | null;\r\n}\r\n\r\nlet shogunOfferSharedCache: ShogunOfferCacheEntry | null = null;\r\n\r\n/**\r\n * Returns true when the shared cache already holds resolved results for the\r\n * given token. Callers can use this to skip triggering a loading state.\r\n */\r\nexport const isShogunOfferResolved = (gloxTokenId: string): boolean =>\r\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\r\n shogunOfferSharedCache.results !== null;\r\n\r\n/**\r\n * Shared-promise manager for the Shogun offer API.\r\n *\r\n * Because the Shogun flow sends no product payload (only gloxTokenId) the\r\n * response is identical for every StaticProductContainer on the page.\r\n * This function ensures exactly one network request is made:\r\n * - If results are already resolved → returns Promise.resolve(results)\r\n * - If a fetch is in-flight → returns the same promise\r\n * - First caller → creates the fetch and stores the promise\r\n *\r\n * On failure the promise rejects — the caller is responsible for surfacing\r\n * the error (e.g. showing the telesales/error popup). The failure is NOT\r\n * cached, so a retry (e.g. tab switch) will trigger a fresh request.\r\n */\r\nexport const getShogunSharedOffer = (\r\n gloxTokenId: string,\r\n uniqueId: string,\r\n offerEndpoint: string\r\n): Promise<any[]> => {\r\n // Already resolved\r\n if (isShogunOfferResolved(gloxTokenId)) {\r\n return Promise.resolve(shogunOfferSharedCache!.results!);\r\n }\r\n\r\n // In-flight\r\n if (\r\n shogunOfferSharedCache?.gloxTokenId === gloxTokenId &&\r\n shogunOfferSharedCache.promise !== null\r\n ) {\r\n return shogunOfferSharedCache.promise;\r\n }\r\n\r\n // First caller — start the real fetch\r\n const fetchPromise: Promise<any[]> = fetchShogunOfferData(gloxTokenId, uniqueId, offerEndpoint)\r\n .then((resp: any) => {\r\n const results: any[] = resp?.[uniqueId] ?? [];\r\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\r\n shogunOfferSharedCache.results = results;\r\n shogunOfferSharedCache.promise = null;\r\n }\r\n return results;\r\n })\r\n .catch((err: any) => {\r\n // Clear the cache entry so the next call retries the API.\r\n if (shogunOfferSharedCache?.gloxTokenId === gloxTokenId) {\r\n shogunOfferSharedCache = null;\r\n }\r\n throw err;\r\n });\r\n\r\n shogunOfferSharedCache = { gloxTokenId, results: null, promise: fetchPromise };\r\n return fetchPromise;\r\n};\r\n\r\n\r\n/**\r\n * Filters and sorts the Storyblok product list to match only the products\r\n * returned by the Shogun offer API, preserving the API response order.\r\n */\r\nexport const filterShogunProducts = (\r\n availableProducts: any[],\r\n shogunProductIds: string[]\r\n): any[] => {\r\n const filtered = availableProducts.filter((product: any) => {\r\n const productId = product?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n return shogunProductIds.includes(productId);\r\n });\r\n\r\n filtered.sort((a: any, b: any) => {\r\n const aId = a?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n const bId = b?.products?.[0]?.reference?.content?.product?.[0]?.productId;\r\n return shogunProductIds.indexOf(aId) - shogunProductIds.indexOf(bId);\r\n });\r\n\r\n return filtered;\r\n};\r\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","vcType","getLocalStorageWithExpiry","VCTYPE","Object","keys","length","createCartV2","promoID","productContainer","isQoQaFlow","voucher","then","res","Cookies","remove","path","set","trackEligibleItem","ADDTOCART","LINETABLEPRODUCT","window","location","href","summaryPageUrl","cached_url","catch","err","console","log","finally","linecheckId","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","findHeight","tabIndex","cardsLength","getElementMaximumHeight","maxActiveTimerHeight","timerSections","Array","forEach","_","index","timerSection","document","getElementById","dataset","timerActive","spacer","firstElementChild","targetHeight","parseFloat","style","height","transition","setTimerSectionHeight","combineWithSmartPhone","storyContent","responseData","pegaIntegration","pretopostvalues","msisdn","ratePlan","ratePlanType","promoId","Params","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,2 +1,2 @@
1
- import{__awaiter as o}from"../_virtual/_tslib.js";import{ApiServiceV2 as i,CMSStoryblokServiceV2 as l}from"@sunrise-upc/ajax-lib";import{getCookies as e,getSessionStorage as n,removeLocalStorage as d,getLocalStorageWithExpiry as t,setLocalStoreWithExpiry as v}from"../utils/utils.js";import{APIResourceConstants as u,API_BASE_BASEPOINT as r}from"./api-constants.js";import s from"js-cookie";import{v4 as a}from"uuid";import{ONE_ECOMMERCE_OTT as c,FIXNET as p,TV_SERVICE_OPTION as m,MOBILE as h,PRE_TO_POST as I,P2PSUBSCRIBEDPLAN as f,QOQA as y,VOUCHERTYPE as T,VOUCHERCODE as g,HARDWARE as A,DEVICE_INSURANCE as S}from"../utils/constants.js";import{getAccessDataFromLineCheck as C}from"../components/lineTable/LineTableV3.utils.js";import{LineTableBasicPropConfig as E}from"./LineTableBasicPropConfig.js";import{errorTrackingDataLayer as _}from"../utils/AnalyticsUtils.js";import{apiResConstants as L}from"../components/LineCheckV3/APIResourceConstants.js";import{getDeviceNotes as x}from"../components/UltimateBundleLinetable/DpTableUtils.js";import{fetchOttItems as P}from"../components/StaticLineTable/Product.utils.js";let N=void 0!==typeof window&&s.get("sunriseAuth");N=N&&JSON.parse(N);const b=(i,e,n,d)=>o(void 0,void 0,void 0,function*(){var o;const u=t(`${i}_${e}_countryData`);if(u)return u;try{const t={language:e,type:"B2C"},u=null===(o=(yield l.get(n,t)).data)||void 0===o?void 0:o.stories;return u&&u.length>0&&v(`${i}_${e}_countryData`,u,d),u}catch(o){return console.error(o),o}}),O=(l,e,n)=>o(void 0,void 0,void 0,function*(){var o,d,t;try{localStorage.removeItem("entertainment");const o={headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL},params:{}};n&&(o.params={returnPromo:!0});const d=e+u.LINE_TABLEV2,t=yield i.getApiServiceInstance().post(d,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(t.error)return t.error;{const o=[];return null==t||t.forEach(i=>{o[i.id]=i}),o}}catch(i){((null===(d=null===(o=null==i?void 0:i.response)||void 0===o?void 0:o.data)||void 0===d?void 0:d.code)||504===(null===(t=null==i?void 0:i.response)||void 0===t?void 0:t.status))&&_(null==i?void 0:i.response),console.log("error---\x3e",i)}}),w=(l,t,v,r,E,L,N,b,O,...w)=>o(void 0,[l,t,v,r,E,L,N,b,O,...w],void 0,function*(o,l,t,v,r,E,L,N,b,O="",w,U,R,B,H){var j,V,D,G,k,M,$,F,X,J,W,K,q,z,Q,Y,Z,oo,io,lo,eo,no,to,vo,uo,ro,so,ao,co,po,mo,ho,Io,fo,yo,To,go,Ao,So,Co,Eo,_o,Lo,xo,Po,No,bo,Oo,wo,Uo,Ro,Bo,Ho,jo,Vo,Do,Go;let ko={};const Mo=n(c);if(r===p){let i="",n="";const d=null!==(j=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==j?j:"",v=C(null===(V=null==o?void 0:o[0])||void 0===V?void 0:V.id);ko={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:t,items:[],note:[{author:"linecheckCorrelationId",text:d}]}]};const u={itemType:"MOBILE",promotionId:t,items:[]};if(null===(D=o[0])||void 0===D?void 0:D.isBundle)null===(k=null===(G=o[0])||void 0===G?void 0:G.bundledOffers)||void 0===k||k.map(o=>{var e,d,t,v,r,s,a,c,p,m,h,I,f,y,T,g,A,S,C;if(null===(d=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===d?void 0:d.id){const l=1==(null===(a=null===(s=null===(r=null===(v=null===(t=null==o?void 0:o.promotionInfo)||void 0===t?void 0:t[0])||void 0===v?void 0:v.hardwareGift)||void 0===r?void 0:r[0])||void 0===s?void 0:s.ids)||void 0===a?void 0:a.length)?null===(I=null===(h=null===(m=null===(p=null===(c=null==o?void 0:o.promotionInfo)||void 0===c?void 0:c[0])||void 0===p?void 0:p.hardwareGift)||void 0===m?void 0:m[0])||void 0===h?void 0:h.ids)||void 0===I?void 0:I[0]:"";"mobile"===(null===(f=null==o?void 0:o.productType)||void 0===f?void 0:f.toLowerCase())?(u.promotionId=null===(T=null===(y=null==o?void 0:o.promotionInfo)||void 0===y?void 0:y[0])||void 0===T?void 0:T.id,i=l):(ko.cartItem[0].promotionId=null===(A=null===(g=null==o?void 0:o.promotionInfo)||void 0===g?void 0:g[0])||void 0===A?void 0:A.id,n=l)}"tv"==(null===(S=null==o?void 0:o.productType)||void 0===S?void 0:S.toLowerCase())&&l?ko.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:l}):"mobile"===(null===(C=null==o?void 0:o.productType)||void 0===C?void 0:C.toLowerCase())?u.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):ko.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id})}),n&&(null===(M=ko.cartItem[0].items)||void 0===M||M.push({itemType:"GIFT",id:n})),i&&u.items.push({itemType:"GIFT",id:i}),(null===($=null==u?void 0:u.items)||void 0===$?void 0:$.length)>0&&(null===(F=null==ko?void 0:ko.cartItem)||void 0===F||F.push(u)),(null==U?void 0:U.length)>0&&(null==U||U.forEach(o=>{ko.cartItem[0].items.push({itemType:m,id:null==o?void 0:o.id})}));else{const i=1==(null===(z=null===(q=null===(K=null===(W=null===(J=null===(X=null==o?void 0:o[0])||void 0===X?void 0:X.promotionInfo)||void 0===J?void 0:J[0])||void 0===W?void 0:W.hardwareGift)||void 0===K?void 0:K[0])||void 0===q?void 0:q.ids)||void 0===z?void 0:z.length)?null===(lo=null===(io=null===(oo=null===(Z=null===(Y=null===(Q=null==o?void 0:o[0])||void 0===Q?void 0:Q.promotionInfo)||void 0===Y?void 0:Y[0])||void 0===Z?void 0:Z.hardwareGift)||void 0===oo?void 0:oo[0])||void 0===io?void 0:io.ids)||void 0===lo?void 0:lo[0]:"";ko.cartItem[0].items.push({itemType:null===(eo=null==o?void 0:o[0])||void 0===eo?void 0:eo.productType,id:null===(no=null==o?void 0:o[0])||void 0===no?void 0:no.id}),i&&(null===(to=ko.cartItem[0].items)||void 0===to||to.push({itemType:"GIFT",id:i}))}E&&(null==E?void 0:E.length)>0&&(null==E||E.map(o=>{var i,l,e,n;"HOME"===(null==o?void 0:o.parentPoType)?null===(e=null===(l=null===(i=null==ko?void 0:ko.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId}):null===(n=u.items)||void 0===n||n.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId})})),(null==v?void 0:v.accessType)&&(null===(ro=null===(uo=null===(vo=null==ko?void 0:ko.cartItem)||void 0===vo?void 0:vo[0])||void 0===uo?void 0:uo.note)||void 0===ro||ro.push({author:"lineCheckaccessType",text:null==v?void 0:v.accessType})),(null==v?void 0:v.timeSlot)&&(null===(co=null===(ao=null===(so=null==ko?void 0:ko.cartItem)||void 0===so?void 0:so[0])||void 0===ao?void 0:ao.note)||void 0===co||co.push({author:"lineCheckEarliestActivationDate",text:null===(po=null==v?void 0:v.timeSlot)||void 0===po?void 0:po.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(mo=null==o?void 0:o.selectedAdd)||void 0===mo?void 0:mo.city,street1:null===(ho=null==o?void 0:o.selectedAdd)||void 0===ho?void 0:ho.street,postCode:null===(Io=null==o?void 0:o.selectedAdd)||void 0===Io?void 0:Io.postCode,street2:null===(fo=null==o?void 0:o.selectedAdd)||void 0===fo?void 0:fo.houseNumber}}];ko.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}}else if(r===h){ko=L?{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:t,items:[{itemType:"RATEPLAN",id:(null===(yo=null==o?void 0:o[0])||void 0===yo?void 0:yo.id)?null===(To=null==o?void 0:o[0])||void 0===To?void 0:To.id:o,subscribedInfo:{installedPlan:f,id:N}}],processType:{id:I}}]}:{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:t,items:[{itemType:"RATEPLAN",id:(null===(go=null==o?void 0:o[0])||void 0===go?void 0:go.id)?null===(Ao=null==o?void 0:o[0])||void 0===Ao?void 0:Ao.id:o,clientDiscountInfo:R?[{discountRef:R,discountType:"DISCOUNT"}]:void 0}]}]};const i=1==(null===(xo=null===(Lo=null===(_o=null===(Eo=null===(Co=null===(So=null==o?void 0:o[0])||void 0===So?void 0:So.promotionInfo)||void 0===Co?void 0:Co[0])||void 0===Eo?void 0:Eo.hardwareGift)||void 0===_o?void 0:_o[0])||void 0===Lo?void 0:Lo.ids)||void 0===xo?void 0:xo.length)?null===(Uo=null===(wo=null===(Oo=null===(bo=null===(No=null===(Po=null==o?void 0:o[0])||void 0===Po?void 0:Po.promotionInfo)||void 0===No?void 0:No[0])||void 0===bo?void 0:bo.hardwareGift)||void 0===Oo?void 0:Oo[0])||void 0===wo?void 0:wo.ids)||void 0===Uo?void 0:Uo[0]:"";i&&(null===(Ro=ko.cartItem[0].items)||void 0===Ro||Ro.push({itemType:"GIFT",id:i})),E&&(null==E?void 0:E.length)>0&&(null==E||E.map(o=>{var i,l,e;"HOME"!==(null==o?void 0:o.parentPoType)&&(null===(e=null===(l=null===(i=null==ko?void 0:ko.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId}))}))}if(b){const o=[];o.push({author:T,text:y}),""!==O&&(o.push({author:g,text:O}),d("vctype")),ko.cartItem[0].note=o}else if(R&&B){const o=[];null==o||o.push({author:"offerType",text:"ATL"}),null==o||o.push({author:"externalPromotionName",text:R}),null==o||o.push({author:"offerVersion",text:B}),ko.cartItem[0].note=o}if(H&&(null===(Bo=null==ko?void 0:ko.cartItem)||void 0===Bo?void 0:Bo[0])){const{pointsBurnt:o}=H;null!=o&&""!=`${o}`&&(ko.cartItem[0].note=[...ko.cartItem[0].note||[],{author:"pointsBurnt",text:`${o}`}])}if(w){const o=(o=>{var i,l,e,n,d,t,v,u,r,s,a,c,p,m,h,I;let f=[];const y=null!==(n=null===(e=null===(l=null===(i=null==o?void 0:o.selectedVarientDetails)||void 0===i?void 0:i.hardwarePrices)||void 0===l?void 0:l.smartUpgradeInstallments)||void 0===e?void 0:e.duration)&&void 0!==n?n:0,T=null!==(r=null===(u=null===(v=null===(t=null===(d=null==o?void 0:o.selectedVarientDetails)||void 0===d?void 0:d.hardwarePrices)||void 0===t?void 0:t.smartUpgradeInstallments)||void 0===v?void 0:v.upFrontPayment)||void 0===u?void 0:u.value)&&void 0!==r?r:0,g=null!==(m=null===(p=null===(c=null===(a=null===(s=null==o?void 0:o.selectedVarientDetails)||void 0===s?void 0:s.hardwarePrices)||void 0===a?void 0:a.smartUpgradeInstallments)||void 0===c?void 0:c.insurance)||void 0===p?void 0:p.value)&&void 0!==m?m:0,C={itemType:A,id:null!==(I=null===(h=null==o?void 0:o.selectedVarientDetails)||void 0===h?void 0:h.id)&&void 0!==I?I:"",contractTerm:y,note:x(o,T)};if(C&&(null==f||f.push(C)),g){const i={itemType:S,id:null==o?void 0:o.insuranceName};null==f||f.push(i)}return(null==f?void 0:f.length)>0?f:null})(w);o&&(null===(Vo=null===(jo=null===(Ho=null==ko?void 0:ko.cartItem)||void 0===Ho?void 0:Ho[0])||void 0===jo?void 0:jo.items)||void 0===Vo||Vo.push(...o))}let $o=null;if("undefined"!=typeof window){$o=new URLSearchParams(window.location.search).get("flow")}if(Mo&&"ott"===$o){const o=P(Mo);if((null==o?void 0:o.length)>0){const i={},l=null===(Do=null==ko?void 0:ko.cartItem)||void 0===Do?void 0:Do.find(o=>"HOME"===(null==o?void 0:o.itemType));o.forEach(o=>{var e;const n=null==o?void 0:o.itemType;if("OTT"===n){const l=(null===(e=null==o?void 0:o.promotionId)||void 0===e?void 0:e.trim())||"defaultOttBundle",d=`OTT_${l}`;i[d]||(i[d]={itemType:n,promotionId:l,items:[]}),i[d].items.push(...(null==o?void 0:o.items)||[])}else l&&l.items&&(null==o?void 0:o.items)&&l.items.push(...o.items)}),Object.keys(i).forEach(o=>{const l=i[o];null==ko||ko.cartItem.push({itemType:l.itemType,promotionId:l.promotionId,items:l.items})})}}const Fo={headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},Xo=v+u.CREATE_CARTV3;if((null===(Go=Object.keys(ko))||void 0===Go?void 0:Go.length)>0){const o=yield i.getApiServiceInstance().post(Xo,ko,Fo).then(o=>{if(d("isB2BCustomer"),200==o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});if(o.error)throw o.error;return o}}),U=(i,e)=>o(void 0,void 0,void 0,function*(){try{return yield l.get(i,e).then(o=>{var i,l,e,n;const d=null===(e=null===(l=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.story)||void 0===l?void 0:l.content)||void 0===e?void 0:e.body;for(const o of d){if("productTableV2"==o.component||"productTableWithOutLC"===o.component||"prodConfigContainer"===o.component)return o;if("roamingProductTable"==o.component)return null===(n=null==o?void 0:o.productTable)||void 0===n?void 0:n[0]}}).catch(o=>{throw o})}catch(o){return o}}),R=(o="en",i)=>{try{return l.get(i,{dimension:o,per_page:1e3,type:"B2C"}).then(o=>{var i;const l={};((null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.datasource_entries)||[]).map(o=>{l[o.name]=null!=o.dimension_value?o.dimension_value:o.value});try{localStorage.removeItem("sbstaticcontent"),localStorage.setItem("sbstaticcontent",JSON.stringify(l))}catch(o){}return l}).catch(o=>o)}catch(o){throw Error("Promise failed")}},B=(l,e,n,d,t,v,r,s,c)=>o(void 0,void 0,void 0,function*(){let o;localStorage.removeItem("entertainment"),o={headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},v&&(o.params={returnPromo:!0}),r&&(o.params={journey:"P2P"}),c&&(o.params=Object.assign(Object.assign({},o.params),{journey:"FPB"}));let p=n+u.LINE_TABLEV2;s&&localStorage.getItem("prospectId")&&(o.headers["x-sunrise-prospect-id"]=localStorage.getItem("prospectId"),p=n+u.LINE_TABLEV3);const m=t?p+u.SUBSCRIPTION+t:p,h=d||t?m:p,I=yield i.getApiServiceInstance().post(h,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});return I.error?I.error:{[e]:I}}),H=(l,e,n)=>o(void 0,void 0,void 0,function*(){const o={params:{gloxTokenId:l},headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},d=n+u.LINE_TABLEV2,t=yield i.getApiServiceInstance().post(d,[],o).then(o=>{if(200===o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});if(!t||t.error)throw new Error("Shogun offer API failed");return{[e]:t}}),j=(l,e)=>o(void 0,void 0,void 0,function*(){let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},o.params={category:l};const n=e,d=yield i.getApiServiceInstance().get(n,o).then(o=>200==o.status?null==o?void 0:o.data:null==o?void 0:o.status).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});return(null==d?void 0:d.error)?null==d?void 0:d.error:{subscriptionData:d}}),V=(l,e)=>o(void 0,void 0,void 0,function*(){var o;try{const n={headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL},params:{offerIds:l,voucherCode:e}},d=(null===(o=null==E?void 0:E.getInstance())||void 0===o?void 0:o.getBaseUrl())+`${u.VOUCHER_PROMOTIONS}`;yield i.getApiServiceInstance().get(d,n).then(o=>{if(200==o.status)return null==o?void 0:o.data})}catch(o){}}),D=(l,e)=>o(void 0,void 0,void 0,function*(){let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},o.params={msisdn:l};const n=e;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i;return"OK"==(null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.preToPostConversionStatus)}).catch(o=>{var i,l,e;return((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response),console.log("err",o),!1})}),G=(l,e)=>o(void 0,void 0,void 0,function*(){try{let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}};const n=e+u.HARDWARES+`baseProduct__${l}`;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i;return 200===(null==o?void 0:o.status)&&(null===(i=Object.keys(null==o?void 0:o.data))||void 0===i?void 0:i.length)>0?null==o?void 0:o.data:null})}catch(o){return console.log("err",o),null}}),k=(l,e)=>o(void 0,void 0,void 0,function*(){try{let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}};const n=e+u.HARDWARE_DEVICES+`manufacturerName__${l}`;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i,l;return 200===(null==o?void 0:o.status)&&(null===(l=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.hardwares)||void 0===l?void 0:l.length)>0?null==o?void 0:o.data:null})}catch(o){return console.log("err",o),null}}),M=(l,...e)=>o(void 0,[l,...e],void 0,function*(o,l={},e){let n;n={headers:{"x-correlation-id":a(),"x-sunrise-channel":L.X_SUN_CHAL,"x-sunrise-prospect-id":e}};let d=o+(null==u?void 0:u.CUSTOMER_EVENTS);yield i.getApiServiceInstance().post(d,l,n).then(o=>{if(200==o.status)return console.log("trackPegaEvents result.data",o.data),null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)})}),$=(l,n,d,t,v)=>o(void 0,void 0,void 0,function*(){var o,t,c,p,m,h,I,f,y,T,g,A,S,_,L,x,P,N,b,O,w,U,R,B,H;let j={},V="",D="";const G=null!==(o=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==o?o:"",k=C(null===(t=null==l?void 0:l[0])||void 0===t?void 0:t.id);j={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:d,items:[],note:[{author:"linecheckCorrelationId",text:G}]}]};const M={itemType:"MOBILE",promotionId:d,items:[]};(null===(c=null==l?void 0:l[0])||void 0===c?void 0:c.isBundle)?(null===(m=null===(p=null==l?void 0:l[0])||void 0===p?void 0:p.bundledOffers)||void 0===m||m.map(o=>{var i,l,e,d,t,v,u,r,s,a,c,p,m,h,I,f,y,T,g;if(null===(l=null===(i=null==o?void 0:o.promotionInfo)||void 0===i?void 0:i[0])||void 0===l?void 0:l.id){const i=1==(null===(u=null===(v=null===(t=null===(d=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===d?void 0:d.hardwareGift)||void 0===t?void 0:t[0])||void 0===v?void 0:v.ids)||void 0===u?void 0:u.length)?null===(p=null===(c=null===(a=null===(s=null===(r=null==o?void 0:o.promotionInfo)||void 0===r?void 0:r[0])||void 0===s?void 0:s.hardwareGift)||void 0===a?void 0:a[0])||void 0===c?void 0:c.ids)||void 0===p?void 0:p[0]:"";"mobile"===(null===(m=null==o?void 0:o.productType)||void 0===m?void 0:m.toLowerCase())?(M.promotionId=null===(I=null===(h=null==o?void 0:o.promotionInfo)||void 0===h?void 0:h[0])||void 0===I?void 0:I.id,V=i):(j.cartItem[0].promotionId=null===(y=null===(f=null==o?void 0:o.promotionInfo)||void 0===f?void 0:f[0])||void 0===y?void 0:y.id,D=i)}"tv"==(null===(T=null==o?void 0:o.productType)||void 0===T?void 0:T.toLowerCase())&&n||("mobile"===(null===(g=null==o?void 0:o.productType)||void 0===g?void 0:g.toLowerCase())?M.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):j.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id}))}),D&&(null===(I=null===(h=null==j?void 0:j.cartItem)||void 0===h?void 0:h[0].items)||void 0===I||I.push({itemType:"GIFT",id:D})),V&&(null===(f=null==M?void 0:M.items)||void 0===f||f.push({itemType:"GIFT",id:V})),(null===(y=null==M?void 0:M.items)||void 0===y?void 0:y.length)>0&&(null===(T=null==j?void 0:j.cartItem)||void 0===T||T.push(M)),v&&(null==v?void 0:v.length)>0&&(null==v||v.map(o=>{var i,l,e;null===(e=null===(l=null===(i=null==j?void 0:j.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId})}))):j.cartItem[0].items.push({itemType:null===(g=null==l?void 0:l[0])||void 0===g?void 0:g.productType,id:null===(A=null==l?void 0:l[0])||void 0===A?void 0:A.id}),(null==k?void 0:k.accessType)&&(null===(L=null===(_=null===(S=null==j?void 0:j.cartItem)||void 0===S?void 0:S[0])||void 0===_?void 0:_.note)||void 0===L||L.push({author:"lineCheckaccessType",text:null==k?void 0:k.accessType})),(null==k?void 0:k.timeSlot)&&(null===(N=null===(P=null===(x=null==j?void 0:j.cartItem)||void 0===x?void 0:x[0])||void 0===P?void 0:P.note)||void 0===N||N.push({author:"lineCheckEarliestActivationDate",text:null===(b=null==k?void 0:k.timeSlot)||void 0===b?void 0:b.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(O=null==o?void 0:o.selectedAdd)||void 0===O?void 0:O.city,street1:null===(w=null==o?void 0:o.selectedAdd)||void 0===w?void 0:w.street,postCode:null===(U=null==o?void 0:o.selectedAdd)||void 0===U?void 0:U.postCode,street2:null===(R=null==o?void 0:o.selectedAdd)||void 0===R?void 0:R.houseNumber}}];j.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}const $={headers:{"x-correlation-id":a(),"x-sunrise-channel":u.X_SUN_CHAL}},F=`${null===(B=null==E?void 0:E.getInstance())||void 0===B?void 0:B.getBaseUrl()}${r.CART_MGMT}/${u.CREATE_CARTV2}`;if((null===(H=Object.keys(j))||void 0===H?void 0:H.length)>0){const o=yield i.getApiServiceInstance().post(F,j,$).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(o.error)throw o.error;return o}}),F=()=>o(void 0,void 0,void 0,function*(){var o;const l=`${null===(o=null==E?void 0:E.getInstance())||void 0===o?void 0:o.getBaseUrl()}${u.TV_SERVICE_OPTIONS_V2}`,e={params:{},headers:{"x-sunrise-channel":u.X_SUN_CHAL,"x-correlation-id":a()}};try{const o=yield i.getApiServiceInstance().get(l,e).then(o=>{var i;return(null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.length)>0?null==o?void 0:o.data:[]});return o}catch(o){console.log(o)}});export{w as createCartV2,$ as createCartWinV2,b as fetchCountryList,U as fetchLinetableContent,B as fetchOfferingDataLineTableV2,O as fetchOfferingDataV2,F as fetchOttServiceOptions,H as fetchShogunOfferData,j as fetchSubscriptionData,G as getDeviceDetails,k as getDeviceModelsList,R as getStaticContent,V as getVocherPromotion,M as trackPegaEvents,D as validateP2P};
1
+ import{__awaiter as o}from"../_virtual/_tslib.js";import{ApiServiceV2 as i,CMSStoryblokServiceV2 as l}from"@sunrise-upc/ajax-lib";import{getCookies as e,getSessionStorage as n,removeLocalStorage as d,getLocalStorageWithExpiry as t,setLocalStoreWithExpiry as v}from"../utils/utils.js";import{APIResourceConstants as r,API_BASE_BASEPOINT as u}from"./api-constants.js";import s from"js-cookie";import{v4 as a}from"uuid";import{ONE_ECOMMERCE_OTT as c,FIXNET as p,TV_SERVICE_OPTION as m,MOBILE as h,PRE_TO_POST as I,P2PSUBSCRIBEDPLAN as f,QOQA as y,VOUCHERTYPE as T,VOUCHERCODE as g,HARDWARE as A,DEVICE_INSURANCE as E}from"../utils/constants.js";import{getAccessDataFromLineCheck as S}from"../components/lineTable/LineTableV3.utils.js";import{LineTableBasicPropConfig as C}from"./LineTableBasicPropConfig.js";import{errorTrackingDataLayer as _}from"../utils/AnalyticsUtils.js";import{apiResConstants as L}from"../components/LineCheckV3/APIResourceConstants.js";import{getDeviceNotes as x}from"../components/UltimateBundleLinetable/DpTableUtils.js";import{fetchOttItems as N}from"../components/StaticLineTable/Product.utils.js";let P=void 0!==typeof window&&s.get("sunriseAuth");P=P&&JSON.parse(P);const b=(i,e,n,d)=>o(void 0,void 0,void 0,function*(){var o;const r=t(`${i}_${e}_countryData`);if(r)return r;try{const t={language:e,type:"B2C"},r=null===(o=(yield l.get(n,t)).data)||void 0===o?void 0:o.stories;return r&&r.length>0&&v(`${i}_${e}_countryData`,r,d),r}catch(o){return console.error(o),o}}),O=(l,e,n)=>o(void 0,void 0,void 0,function*(){var o,d,t;try{localStorage.removeItem("entertainment");const o={headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL},params:{}};n&&(o.params={returnPromo:!0});const d=e+r.LINE_TABLEV2,t=yield i.getApiServiceInstance().post(d,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(t.error)return t.error;{const o=[];return null==t||t.forEach(i=>{o[i.id]=i}),o}}catch(i){((null===(d=null===(o=null==i?void 0:i.response)||void 0===o?void 0:o.data)||void 0===d?void 0:d.code)||504===(null===(t=null==i?void 0:i.response)||void 0===t?void 0:t.status))&&_(null==i?void 0:i.response),console.log("error---\x3e",i)}}),w=(l,t,v,u,C,L,P,b,O,...w)=>o(void 0,[l,t,v,u,C,L,P,b,O,...w],void 0,function*(o,l,t,v,u,C,L,P,b,O="",w,R,U,B,H){var j,V,D,G,k,$,M,F,X,J,W,K,q,z,Q,Y,Z,oo,io,lo,eo,no,to,vo,ro,uo,so,ao,co,po,mo,ho,Io,fo,yo,To,go,Ao,Eo,So,Co,_o,Lo,xo,No,Po,bo,Oo,wo,Ro,Uo,Bo,Ho,jo,Vo,Do,Go,ko;let $o={};const Mo=n(c);if(u===p){let i="",n="";const d=null!==(j=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==j?j:"",v=S(null===(V=null==o?void 0:o[0])||void 0===V?void 0:V.id);$o={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:t,items:[],note:[{author:"linecheckCorrelationId",text:d}]}]};const r={itemType:"MOBILE",promotionId:t,items:[]};if(null===(D=o[0])||void 0===D?void 0:D.isBundle)null===(k=null===(G=o[0])||void 0===G?void 0:G.bundledOffers)||void 0===k||k.map(o=>{var e,d,t,v,u,s,a,c,p,m,h,I,f,y,T,g,A,E,S;if(null===(d=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===d?void 0:d.id){const l=1==(null===(a=null===(s=null===(u=null===(v=null===(t=null==o?void 0:o.promotionInfo)||void 0===t?void 0:t[0])||void 0===v?void 0:v.hardwareGift)||void 0===u?void 0:u[0])||void 0===s?void 0:s.ids)||void 0===a?void 0:a.length)?null===(I=null===(h=null===(m=null===(p=null===(c=null==o?void 0:o.promotionInfo)||void 0===c?void 0:c[0])||void 0===p?void 0:p.hardwareGift)||void 0===m?void 0:m[0])||void 0===h?void 0:h.ids)||void 0===I?void 0:I[0]:"";"mobile"===(null===(f=null==o?void 0:o.productType)||void 0===f?void 0:f.toLowerCase())?(r.promotionId=null===(T=null===(y=null==o?void 0:o.promotionInfo)||void 0===y?void 0:y[0])||void 0===T?void 0:T.id,i=l):($o.cartItem[0].promotionId=null===(A=null===(g=null==o?void 0:o.promotionInfo)||void 0===g?void 0:g[0])||void 0===A?void 0:A.id,n=l)}"tv"==(null===(E=null==o?void 0:o.productType)||void 0===E?void 0:E.toLowerCase())&&l?$o.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:l}):"mobile"===(null===(S=null==o?void 0:o.productType)||void 0===S?void 0:S.toLowerCase())?r.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):$o.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id})}),n&&(null===($=$o.cartItem[0].items)||void 0===$||$.push({itemType:"GIFT",id:n})),i&&r.items.push({itemType:"GIFT",id:i}),(null===(M=null==r?void 0:r.items)||void 0===M?void 0:M.length)>0&&(null===(F=null==$o?void 0:$o.cartItem)||void 0===F||F.push(r)),(null==R?void 0:R.length)>0&&(null==R||R.forEach(o=>{$o.cartItem[0].items.push({itemType:m,id:null==o?void 0:o.id})}));else{const i=1==(null===(z=null===(q=null===(K=null===(W=null===(J=null===(X=null==o?void 0:o[0])||void 0===X?void 0:X.promotionInfo)||void 0===J?void 0:J[0])||void 0===W?void 0:W.hardwareGift)||void 0===K?void 0:K[0])||void 0===q?void 0:q.ids)||void 0===z?void 0:z.length)?null===(lo=null===(io=null===(oo=null===(Z=null===(Y=null===(Q=null==o?void 0:o[0])||void 0===Q?void 0:Q.promotionInfo)||void 0===Y?void 0:Y[0])||void 0===Z?void 0:Z.hardwareGift)||void 0===oo?void 0:oo[0])||void 0===io?void 0:io.ids)||void 0===lo?void 0:lo[0]:"";$o.cartItem[0].items.push({itemType:null===(eo=null==o?void 0:o[0])||void 0===eo?void 0:eo.productType,id:null===(no=null==o?void 0:o[0])||void 0===no?void 0:no.id}),i&&(null===(to=$o.cartItem[0].items)||void 0===to||to.push({itemType:"GIFT",id:i}))}C&&(null==C?void 0:C.length)>0&&(null==C||C.map(o=>{var i,l,e,n;"HOME"===(null==o?void 0:o.parentPoType)?null===(e=null===(l=null===(i=null==$o?void 0:$o.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId}):null===(n=r.items)||void 0===n||n.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId})})),(null==v?void 0:v.accessType)&&(null===(uo=null===(ro=null===(vo=null==$o?void 0:$o.cartItem)||void 0===vo?void 0:vo[0])||void 0===ro?void 0:ro.note)||void 0===uo||uo.push({author:"lineCheckaccessType",text:null==v?void 0:v.accessType})),(null==v?void 0:v.timeSlot)&&(null===(co=null===(ao=null===(so=null==$o?void 0:$o.cartItem)||void 0===so?void 0:so[0])||void 0===ao?void 0:ao.note)||void 0===co||co.push({author:"lineCheckEarliestActivationDate",text:null===(po=null==v?void 0:v.timeSlot)||void 0===po?void 0:po.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(mo=null==o?void 0:o.selectedAdd)||void 0===mo?void 0:mo.city,street1:null===(ho=null==o?void 0:o.selectedAdd)||void 0===ho?void 0:ho.street,postCode:null===(Io=null==o?void 0:o.selectedAdd)||void 0===Io?void 0:Io.postCode,street2:null===(fo=null==o?void 0:o.selectedAdd)||void 0===fo?void 0:fo.houseNumber}}];$o.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}}else if(u===h){$o=L?{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:t,items:[{itemType:"RATEPLAN",id:(null===(yo=null==o?void 0:o[0])||void 0===yo?void 0:yo.id)?null===(To=null==o?void 0:o[0])||void 0===To?void 0:To.id:o,subscribedInfo:{installedPlan:f,id:P}}],processType:{id:I}}]}:{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:t,items:[{itemType:"RATEPLAN",id:(null===(go=null==o?void 0:o[0])||void 0===go?void 0:go.id)?null===(Ao=null==o?void 0:o[0])||void 0===Ao?void 0:Ao.id:o,clientDiscountInfo:U?[{discountRef:U,discountType:"DISCOUNT"}]:void 0}]}]};const i=1==(null===(xo=null===(Lo=null===(_o=null===(Co=null===(So=null===(Eo=null==o?void 0:o[0])||void 0===Eo?void 0:Eo.promotionInfo)||void 0===So?void 0:So[0])||void 0===Co?void 0:Co.hardwareGift)||void 0===_o?void 0:_o[0])||void 0===Lo?void 0:Lo.ids)||void 0===xo?void 0:xo.length)?null===(Ro=null===(wo=null===(Oo=null===(bo=null===(Po=null===(No=null==o?void 0:o[0])||void 0===No?void 0:No.promotionInfo)||void 0===Po?void 0:Po[0])||void 0===bo?void 0:bo.hardwareGift)||void 0===Oo?void 0:Oo[0])||void 0===wo?void 0:wo.ids)||void 0===Ro?void 0:Ro[0]:"";i&&(null===(Uo=$o.cartItem[0].items)||void 0===Uo||Uo.push({itemType:"GIFT",id:i})),C&&(null==C?void 0:C.length)>0&&(null==C||C.map(o=>{var i,l,e;"HOME"!==(null==o?void 0:o.parentPoType)&&(null===(e=null===(l=null===(i=null==$o?void 0:$o.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId}))}))}if(b){const o=[];o.push({author:T,text:y}),""!==O&&(o.push({author:g,text:O}),d("vctype")),$o.cartItem[0].note=o}else if(U&&B){const o=[];null==o||o.push({author:"offerType",text:"ATL"}),null==o||o.push({author:"externalPromotionName",text:U}),null==o||o.push({author:"offerVersion",text:B}),$o.cartItem[0].note=o}if(H&&(null===(Bo=null==$o?void 0:$o.cartItem)||void 0===Bo?void 0:Bo[0])){const{pointsBurnt:o}=H;if(null!=o&&""!=`${o}`){const i={author:"pointsBurnt",text:`${o}`};null===(Ho=null==$o?void 0:$o.cartItem)||void 0===Ho||Ho.forEach(o=>{Array.isArray(null==o?void 0:o.items)&&o.items.forEach(o=>{const l=`${(null==o?void 0:o.itemType)||""}`.toUpperCase();"RATEPLAN"!==l&&"INTERNET"!==l||(o.note=[...o.note||[],i])})})}}if(w){const o=(o=>{var i,l,e,n,d,t,v,r,u,s,a,c,p,m,h,I;let f=[];const y=null!==(n=null===(e=null===(l=null===(i=null==o?void 0:o.selectedVarientDetails)||void 0===i?void 0:i.hardwarePrices)||void 0===l?void 0:l.smartUpgradeInstallments)||void 0===e?void 0:e.duration)&&void 0!==n?n:0,T=null!==(u=null===(r=null===(v=null===(t=null===(d=null==o?void 0:o.selectedVarientDetails)||void 0===d?void 0:d.hardwarePrices)||void 0===t?void 0:t.smartUpgradeInstallments)||void 0===v?void 0:v.upFrontPayment)||void 0===r?void 0:r.value)&&void 0!==u?u:0,g=null!==(m=null===(p=null===(c=null===(a=null===(s=null==o?void 0:o.selectedVarientDetails)||void 0===s?void 0:s.hardwarePrices)||void 0===a?void 0:a.smartUpgradeInstallments)||void 0===c?void 0:c.insurance)||void 0===p?void 0:p.value)&&void 0!==m?m:0,S={itemType:A,id:null!==(I=null===(h=null==o?void 0:o.selectedVarientDetails)||void 0===h?void 0:h.id)&&void 0!==I?I:"",contractTerm:y,note:x(o,T)};if(S&&(null==f||f.push(S)),g){const i={itemType:E,id:null==o?void 0:o.insuranceName};null==f||f.push(i)}return(null==f?void 0:f.length)>0?f:null})(w);o&&(null===(Do=null===(Vo=null===(jo=null==$o?void 0:$o.cartItem)||void 0===jo?void 0:jo[0])||void 0===Vo?void 0:Vo.items)||void 0===Do||Do.push(...o))}let Fo=null;if("undefined"!=typeof window){Fo=new URLSearchParams(window.location.search).get("flow")}if(Mo&&"ott"===Fo){const o=N(Mo);if((null==o?void 0:o.length)>0){const i={},l=null===(Go=null==$o?void 0:$o.cartItem)||void 0===Go?void 0:Go.find(o=>"HOME"===(null==o?void 0:o.itemType));o.forEach(o=>{var e;const n=null==o?void 0:o.itemType;if("OTT"===n){const l=(null===(e=null==o?void 0:o.promotionId)||void 0===e?void 0:e.trim())||"defaultOttBundle",d=`OTT_${l}`;i[d]||(i[d]={itemType:n,promotionId:l,items:[]}),i[d].items.push(...(null==o?void 0:o.items)||[])}else l&&l.items&&(null==o?void 0:o.items)&&l.items.push(...o.items)}),Object.keys(i).forEach(o=>{const l=i[o];null==$o||$o.cartItem.push({itemType:l.itemType,promotionId:l.promotionId,items:l.items})})}}const Xo={headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},Jo=v+r.CREATE_CARTV3;if((null===(ko=Object.keys($o))||void 0===ko?void 0:ko.length)>0){const o=yield i.getApiServiceInstance().post(Jo,$o,Xo).then(o=>{if(d("isB2BCustomer"),200==o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});if(o.error)throw o.error;return o}}),R=(i,e)=>o(void 0,void 0,void 0,function*(){try{return yield l.get(i,e).then(o=>{var i,l,e,n;const d=null===(e=null===(l=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.story)||void 0===l?void 0:l.content)||void 0===e?void 0:e.body;for(const o of d){if("productTableV2"==o.component||"productTableWithOutLC"===o.component||"prodConfigContainer"===o.component)return o;if("roamingProductTable"==o.component)return null===(n=null==o?void 0:o.productTable)||void 0===n?void 0:n[0]}}).catch(o=>{throw o})}catch(o){return o}}),U=(o="en",i)=>{try{return l.get(i,{dimension:o,per_page:1e3,type:"B2C"}).then(o=>{var i;const l={};((null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.datasource_entries)||[]).map(o=>{l[o.name]=null!=o.dimension_value?o.dimension_value:o.value});try{localStorage.removeItem("sbstaticcontent"),localStorage.setItem("sbstaticcontent",JSON.stringify(l))}catch(o){}return l}).catch(o=>o)}catch(o){throw Error("Promise failed")}},B=(l,e,n,d,t,v,u,s,c)=>o(void 0,void 0,void 0,function*(){let o;localStorage.removeItem("entertainment"),o={headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},v&&(o.params={returnPromo:!0}),u&&(o.params={journey:"P2P"}),c&&(o.params=Object.assign(Object.assign({},o.params),{journey:"FPB"}));let p=n+r.LINE_TABLEV2;s&&localStorage.getItem("prospectId")&&(o.headers["x-sunrise-prospect-id"]=localStorage.getItem("prospectId"),p=n+r.LINE_TABLEV3);const m=t?p+r.SUBSCRIPTION+t:p,h=d||t?m:p,I=yield i.getApiServiceInstance().post(h,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});return I.error?I.error:{[e]:I}}),H=(l,e,n)=>o(void 0,void 0,void 0,function*(){const o={params:{gloxTokenId:l},headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},d=n+r.LINE_TABLEV2,t=yield i.getApiServiceInstance().post(d,[],o).then(o=>{if(200===o.status)return null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});if(!t||t.error)throw new Error("Shogun offer API failed");return{[e]:t}}),j=(l,e)=>o(void 0,void 0,void 0,function*(){let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},o.params={category:l};const n=e,d=yield i.getApiServiceInstance().get(n,o).then(o=>200==o.status?null==o?void 0:o.data:null==o?void 0:o.status).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)});return(null==d?void 0:d.error)?null==d?void 0:d.error:{subscriptionData:d}}),V=(l,e)=>o(void 0,void 0,void 0,function*(){var o;try{const n={headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL},params:{offerIds:l,voucherCode:e}},d=(null===(o=null==C?void 0:C.getInstance())||void 0===o?void 0:o.getBaseUrl())+`${r.VOUCHER_PROMOTIONS}`;yield i.getApiServiceInstance().get(d,n).then(o=>{if(200==o.status)return null==o?void 0:o.data})}catch(o){}}),D=(l,e)=>o(void 0,void 0,void 0,function*(){let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},o.params={msisdn:l};const n=e;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i;return"OK"==(null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.preToPostConversionStatus)}).catch(o=>{var i,l,e;return((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response),console.log("err",o),!1})}),G=(l,e)=>o(void 0,void 0,void 0,function*(){try{let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}};const n=e+r.HARDWARES+`baseProduct__${l}`;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i;return 200===(null==o?void 0:o.status)&&(null===(i=Object.keys(null==o?void 0:o.data))||void 0===i?void 0:i.length)>0?null==o?void 0:o.data:null})}catch(o){return console.log("err",o),null}}),k=(l,e)=>o(void 0,void 0,void 0,function*(){try{let o;o={params:{},headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}};const n=e+r.HARDWARE_DEVICES+`manufacturerName__${l}`;return yield i.getApiServiceInstance().get(n,o).then(o=>{var i,l;return 200===(null==o?void 0:o.status)&&(null===(l=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.hardwares)||void 0===l?void 0:l.length)>0?null==o?void 0:o.data:null})}catch(o){return console.log("err",o),null}}),$=(l,...e)=>o(void 0,[l,...e],void 0,function*(o,l={},e){let n;n={headers:{"x-correlation-id":a(),"x-sunrise-channel":L.X_SUN_CHAL,"x-sunrise-prospect-id":e}};let d=o+(null==r?void 0:r.CUSTOMER_EVENTS);yield i.getApiServiceInstance().post(d,l,n).then(o=>{if(200==o.status)return console.log("trackPegaEvents result.data",o.data),null==o?void 0:o.data}).catch(o=>{var i,l,e;((null===(l=null===(i=null==o?void 0:o.response)||void 0===i?void 0:i.data)||void 0===l?void 0:l.code)||504===(null===(e=null==o?void 0:o.response)||void 0===e?void 0:e.status))&&_(null==o?void 0:o.response)})}),M=(l,n,d,t,v)=>o(void 0,void 0,void 0,function*(){var o,t,c,p,m,h,I,f,y,T,g,A,E,_,L,x,N,P,b,O,w,R,U,B,H;let j={},V="",D="";const G=null!==(o=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==o?o:"",k=S(null===(t=null==l?void 0:l[0])||void 0===t?void 0:t.id);j={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:d,items:[],note:[{author:"linecheckCorrelationId",text:G}]}]};const $={itemType:"MOBILE",promotionId:d,items:[]};(null===(c=null==l?void 0:l[0])||void 0===c?void 0:c.isBundle)?(null===(m=null===(p=null==l?void 0:l[0])||void 0===p?void 0:p.bundledOffers)||void 0===m||m.map(o=>{var i,l,e,d,t,v,r,u,s,a,c,p,m,h,I,f,y,T,g;if(null===(l=null===(i=null==o?void 0:o.promotionInfo)||void 0===i?void 0:i[0])||void 0===l?void 0:l.id){const i=1==(null===(r=null===(v=null===(t=null===(d=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===d?void 0:d.hardwareGift)||void 0===t?void 0:t[0])||void 0===v?void 0:v.ids)||void 0===r?void 0:r.length)?null===(p=null===(c=null===(a=null===(s=null===(u=null==o?void 0:o.promotionInfo)||void 0===u?void 0:u[0])||void 0===s?void 0:s.hardwareGift)||void 0===a?void 0:a[0])||void 0===c?void 0:c.ids)||void 0===p?void 0:p[0]:"";"mobile"===(null===(m=null==o?void 0:o.productType)||void 0===m?void 0:m.toLowerCase())?($.promotionId=null===(I=null===(h=null==o?void 0:o.promotionInfo)||void 0===h?void 0:h[0])||void 0===I?void 0:I.id,V=i):(j.cartItem[0].promotionId=null===(y=null===(f=null==o?void 0:o.promotionInfo)||void 0===f?void 0:f[0])||void 0===y?void 0:y.id,D=i)}"tv"==(null===(T=null==o?void 0:o.productType)||void 0===T?void 0:T.toLowerCase())&&n||("mobile"===(null===(g=null==o?void 0:o.productType)||void 0===g?void 0:g.toLowerCase())?$.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):j.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id}))}),D&&(null===(I=null===(h=null==j?void 0:j.cartItem)||void 0===h?void 0:h[0].items)||void 0===I||I.push({itemType:"GIFT",id:D})),V&&(null===(f=null==$?void 0:$.items)||void 0===f||f.push({itemType:"GIFT",id:V})),(null===(y=null==$?void 0:$.items)||void 0===y?void 0:y.length)>0&&(null===(T=null==j?void 0:j.cartItem)||void 0===T||T.push($)),v&&(null==v?void 0:v.length)>0&&(null==v||v.map(o=>{var i,l,e;null===(e=null===(l=null===(i=null==j?void 0:j.cartItem)||void 0===i?void 0:i[0])||void 0===l?void 0:l.items)||void 0===e||e.push({itemType:"GIFT",id:null==o?void 0:o.tuaProdId})}))):j.cartItem[0].items.push({itemType:null===(g=null==l?void 0:l[0])||void 0===g?void 0:g.productType,id:null===(A=null==l?void 0:l[0])||void 0===A?void 0:A.id}),(null==k?void 0:k.accessType)&&(null===(L=null===(_=null===(E=null==j?void 0:j.cartItem)||void 0===E?void 0:E[0])||void 0===_?void 0:_.note)||void 0===L||L.push({author:"lineCheckaccessType",text:null==k?void 0:k.accessType})),(null==k?void 0:k.timeSlot)&&(null===(P=null===(N=null===(x=null==j?void 0:j.cartItem)||void 0===x?void 0:x[0])||void 0===N?void 0:N.note)||void 0===P||P.push({author:"lineCheckEarliestActivationDate",text:null===(b=null==k?void 0:k.timeSlot)||void 0===b?void 0:b.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(O=null==o?void 0:o.selectedAdd)||void 0===O?void 0:O.city,street1:null===(w=null==o?void 0:o.selectedAdd)||void 0===w?void 0:w.street,postCode:null===(R=null==o?void 0:o.selectedAdd)||void 0===R?void 0:R.postCode,street2:null===(U=null==o?void 0:o.selectedAdd)||void 0===U?void 0:U.houseNumber}}];j.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}const M={headers:{"x-correlation-id":a(),"x-sunrise-channel":r.X_SUN_CHAL}},F=`${null===(B=null==C?void 0:C.getInstance())||void 0===B?void 0:B.getBaseUrl()}${u.CART_MGMT}/${r.CREATE_CARTV2}`;if((null===(H=Object.keys(j))||void 0===H?void 0:H.length)>0){const o=yield i.getApiServiceInstance().post(F,j,M).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(o.error)throw o.error;return o}}),F=()=>o(void 0,void 0,void 0,function*(){var o;const l=`${null===(o=null==C?void 0:C.getInstance())||void 0===o?void 0:o.getBaseUrl()}${r.TV_SERVICE_OPTIONS_V2}`,e={params:{},headers:{"x-sunrise-channel":r.X_SUN_CHAL,"x-correlation-id":a()}};try{const o=yield i.getApiServiceInstance().get(l,e).then(o=>{var i;return(null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.length)>0?null==o?void 0:o.data:[]});return o}catch(o){console.log(o)}});export{w as createCartV2,M as createCartWinV2,b as fetchCountryList,R as fetchLinetableContent,B as fetchOfferingDataLineTableV2,O as fetchOfferingDataV2,F as fetchOttServiceOptions,H as fetchShogunOfferData,j as fetchSubscriptionData,G as getDeviceDetails,k as getDeviceModelsList,U as getStaticContent,V as getVocherPromotion,$ as trackPegaEvents,D as validateP2P};
2
2
  //# sourceMappingURL=LineTableService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineTableService.js","sources":["../../../src/services/LineTableService.ts"],"sourcesContent":["import { ApiServiceV2, CMSStoryblokServiceV2 } from '@sunrise-upc/ajax-lib';\r\nimport {\r\n getCookies,\r\n getLocalStorageWithExpiry,\r\n getSessionStorage,\r\n removeLocalStorage,\r\n setLocalStoreWithExpiry\r\n} from '../utils/utils';\r\nimport { API_BASE_BASEPOINT, APIResourceConstants } from './api-constants';\r\nimport Cookies from 'js-cookie';\r\nimport { v4 as generateUID } from 'uuid';\r\nimport {\r\n DEVICE_INSURANCE,\r\n FIXNET,\r\n HARDWARE,\r\n MOBILE,\r\n ONE_ECOMMERCE_OTT,\r\n P2PSUBSCRIBEDPLAN,\r\n PRE_TO_POST,\r\n QOQA,\r\n TV_SERVICE_OPTION,\r\n VOUCHERCODE,\r\n VOUCHERTYPE\r\n} from '../utils/constants';\r\nimport { getAccessDataFromLineCheck } from '../components/lineTable/LineTableV3.utils';\r\nimport { LineTableBasicPropConfig } from './LineTableBasicPropConfig';\r\nimport { errorTrackingDataLayer } from '../utils/AnalyticsUtils';\r\nimport { apiResConstants } from '../components/LineCheckV3/APIResourceConstants';\r\nimport { getDeviceNotes } from '../components/UltimateBundleLinetable/DpTableUtils';\r\nimport {fetchOttItems} from '../components/StaticLineTable/Product.utils'\r\n\r\n// Device cart utility functions moved here to avoid circular dependency\r\nconst getDeviceCartNotes = (deviceDetails: any, upFrontValue: string) => {\r\n let note = '';\r\n const smartUpgradeInstallments =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments;\r\n const installments = deviceDetails?.selectedVarientDetails?.hardwarePrices?.installments;\r\n const basePrice = deviceDetails?.selectedVarientDetails?.hardwarePrices?.basePrice;\r\n\r\n if (smartUpgradeInstallments) {\r\n note = `${smartUpgradeInstallments?.duration} months, CHF ${upFrontValue} upfront, CHF ${smartUpgradeInstallments?.monthlyPayment?.value}/month`;\r\n } else if (installments) {\r\n note = `${installments?.duration} months, CHF ${installments?.monthlyPayment?.value}/month`;\r\n } else if (basePrice) {\r\n note = `CHF ${basePrice?.value} one-time payment`;\r\n }\r\n return note;\r\n};\r\n\r\nconst getDeviceCartItem = (deviceDetails: any) => {\r\n let items = [];\r\n const contractDuration =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.duration ?? 0;\r\n const upFrontValue =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.upFrontPayment\r\n ?.value ?? 0;\r\n const insuranceValue =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.insurance\r\n ?.value ?? 0;\r\n const deviceItem = {\r\n itemType: HARDWARE,\r\n id: deviceDetails?.selectedVarientDetails?.id ?? '',\r\n contractTerm: contractDuration,\r\n note: getDeviceNotes(deviceDetails, upFrontValue)\r\n };\r\n deviceItem && items?.push(deviceItem);\r\n\r\n if (insuranceValue) {\r\n const flexItem = {\r\n itemType: DEVICE_INSURANCE,\r\n id: deviceDetails?.insuranceName\r\n };\r\n items?.push(flexItem);\r\n }\r\n return items?.length > 0 ? items : null;\r\n};\r\n\r\nlet AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\r\nAuthData = AuthData && JSON.parse(AuthData);\r\n\r\nexport const fetchCountryList = async (name: string, lang: string, url: string, TTL: number) => {\r\n const getCountryData = getLocalStorageWithExpiry(`${name}_${lang}_countryData`);\r\n if (getCountryData) {\r\n return getCountryData;\r\n } else {\r\n try {\r\n const sbParams = {\r\n language: lang,\r\n type: 'B2C'\r\n };\r\n const res = await CMSStoryblokServiceV2.get(url, sbParams);\r\n const stories = res.data?.stories;\r\n if (stories && stories.length > 0)\r\n setLocalStoreWithExpiry(`${name}_${lang}_countryData`, stories, TTL);\r\n return stories;\r\n } catch (e: any) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n return e;\r\n }\r\n }\r\n};\r\n\r\nexport const fetchOfferingDataV2 = async (\r\n requestBody: any,\r\n url: any,\r\n returnPromo?: boolean\r\n): Promise<any> => {\r\n try {\r\n localStorage.removeItem('entertainment');\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n },\r\n params: {}\r\n };\r\n if (returnPromo) {\r\n options.params = {\r\n returnPromo: true\r\n };\r\n }\r\n const URL = url + APIResourceConstants.LINE_TABLEV2;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, requestBody, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n if (productDynamicData.error) {\r\n return productDynamicData.error;\r\n } else {\r\n const response: any[] = [];\r\n productDynamicData?.forEach((data: any) => {\r\n response[data.id] = data;\r\n });\r\n return response;\r\n }\r\n } catch (error: any) {\r\n if (error?.response?.data?.code || error?.response?.status === 504) {\r\n errorTrackingDataLayer(error?.response);\r\n }\r\n // eslint-disable-next-line no-console\r\n console.log('error--->', error);\r\n }\r\n};\r\n\r\nexport const createCartV2 = async (\r\n productData: any,\r\n radioValue: string,\r\n defaultPromo: string,\r\n cartUrl: string,\r\n productType: string,\r\n chooseGift?: any,\r\n enabledP2P?: any,\r\n P2PData?: any,\r\n isQoqaFlow?: boolean,\r\n qVoucher: any = '',\r\n deviceDetails?: any,\r\n tvOptions?: any,\r\n discountRef?: string,\r\n discountVersion?: string,\r\n // Shogun/rewards (loyalty) flow: when the user redeems loyalty points we must\r\n // attach a `pointsBurnt` note to the primary cartItem so the backend can\r\n // apply the burn. See StaticProduct.tsx (isShogunFlow branch).\r\n rewardsInfo?: { pointsBurnt?: string | number }\r\n): Promise<any> => {\r\n let cartData: any = {};\r\n /**WIN FLows*/\r\n \r\n // Get OTT data from session storage\r\n const ottCartData = getSessionStorage(ONE_ECOMMERCE_OTT);\r\n \r\n if (productType === FIXNET) {\r\n let mobGiftId = '';\r\n let mandatoryGift = '';\r\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\r\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\r\n cartData = {\r\n relatedParty: [\r\n {\r\n id: 'anonymous',\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'HOME',\r\n promotionId: defaultPromo,\r\n items: [],\r\n note: [\r\n {\r\n author: 'linecheckCorrelationId',\r\n text: getCoorelationIdFromCookie\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n /**for 4P bundles*/\r\n const mobileItem: any = {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: []\r\n };\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (productData[0]?.isBundle) {\r\n productData[0]?.bundledOffers?.map((item: any) => {\r\n if (item?.promotionInfo?.[0]?.id) {\r\n const giftId =\r\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mobGiftId = giftId;\r\n } else {\r\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mandatoryGift = giftId;\r\n }\r\n }\r\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\r\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\r\n } else if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\r\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\r\n });\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n mobGiftId && mobileItem.items.push({ itemType: 'GIFT', id: mobGiftId });\r\n if (mobileItem?.items?.length > 0) {\r\n cartData?.cartItem?.push(mobileItem);\r\n }\r\n\r\n //If product has tv options\r\n if (tvOptions?.length > 0) {\r\n tvOptions?.forEach((option: any) => {\r\n cartData.cartItem[0].items.push({ itemType: TV_SERVICE_OPTION, id: option?.id });\r\n });\r\n }\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n const mandatoryGift =\r\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n cartData.cartItem[0].items.push({\r\n itemType: productData?.[0]?.productType,\r\n id: productData?.[0]?.id\r\n });\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n }\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n giftItem?.parentPoType === 'HOME'\r\n ? cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\r\n : mobileItem.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\r\n });\r\n }\r\n /**\r\n * changes added for new internet activation section\r\n */\r\n if (lineCheckData?.accessType) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckaccessType',\r\n text: lineCheckData?.accessType\r\n });\r\n }\r\n if (lineCheckData?.timeSlot) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckEarliestActivationDate',\r\n text: lineCheckData?.timeSlot?.start\r\n });\r\n }\r\n /**\r\n * Adding line check address while cart creation\r\n * As part of DEX abandon basket use case\r\n */\r\n try {\r\n const address: any = getCookies('chAddressJson');\r\n const contactMedium: any = [\r\n {\r\n characteristic: {\r\n installationAddress: true,\r\n country: 'CH',\r\n city: address?.selectedAdd?.city,\r\n street1: address?.selectedAdd?.street,\r\n postCode: address?.selectedAdd?.postCode,\r\n street2: address?.selectedAdd?.houseNumber\r\n }\r\n }\r\n ];\r\n cartData.contactMedium = contactMedium;\r\n } catch (error: any) {\r\n // eslint-disable-next-line no-console\r\n console.log('issue at line check address addition in create cart ==>', error);\r\n }\r\n } else if (productType === MOBILE) {\r\n /**Mobile*/\r\n if (enabledP2P) {\r\n cartData = {\r\n relatedParty: [\r\n {\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: [\r\n {\r\n itemType: 'RATEPLAN',\r\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\r\n subscribedInfo: {\r\n installedPlan: P2PSUBSCRIBEDPLAN,\r\n id: P2PData\r\n }\r\n }\r\n ],\r\n processType: {\r\n id: PRE_TO_POST\r\n }\r\n }\r\n ]\r\n };\r\n } else {\r\n cartData = {\r\n relatedParty: [\r\n {\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: [\r\n {\r\n itemType: 'RATEPLAN',\r\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\r\n clientDiscountInfo: discountRef\r\n ? [\r\n {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n ]\r\n : undefined\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n const mandatoryGift =\r\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n giftItem?.parentPoType !== 'HOME' &&\r\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\r\n });\r\n }\r\n }\r\n\r\n if (isQoqaFlow) {\r\n const note = [];\r\n note.push({\r\n author: VOUCHERTYPE,\r\n text: QOQA\r\n });\r\n if (qVoucher !== '') {\r\n note.push({\r\n author: VOUCHERCODE,\r\n text: qVoucher\r\n });\r\n removeLocalStorage('vctype');\r\n }\r\n cartData.cartItem[0]['note'] = note;\r\n } else if (discountRef && discountVersion) {\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n cartData.cartItem[0]['note'] = note;\r\n }\r\n\r\n // Shogun / rewards (loyalty) flow — append a pointsBurnt note to the\r\n // primary cartItem. We only push the note when it has a value so the\r\n // backend does not receive an empty string.\r\n if (rewardsInfo && cartData?.cartItem?.[0]) {\r\n const { pointsBurnt } = rewardsInfo;\r\n if (pointsBurnt !== undefined && pointsBurnt !== null && `${pointsBurnt}` !== '') {\r\n cartData.cartItem[0].note = [\r\n ...(cartData.cartItem[0].note || []),\r\n { author: 'pointsBurnt', text: `${pointsBurnt}` }\r\n ];\r\n }\r\n }\r\n\r\n //To add hardware item while creating cart\r\n if (deviceDetails) {\r\n const deviceCartItem = getDeviceCartItem(deviceDetails);\r\n deviceCartItem && cartData?.cartItem?.[0]?.items?.push(...deviceCartItem);\r\n }\r\n // Get flow parameter from URL query string if in browser\r\n let flow: string | null = null;\r\n if (typeof window !== 'undefined') {\r\n const params = new URLSearchParams(window.location.search);\r\n flow = params.get('flow');\r\n }\r\n \r\n // Add OTT items to cart if session storage exists and flow is 'ott'\r\n const shouldAddOttItems = ottCartData && flow === 'ott';\r\n if (shouldAddOttItems) {\r\n const ottItems = fetchOttItems(ottCartData);\r\n if (ottItems?.length > 0) {\r\n const groupedByTypeAndPromo: {\r\n [key: string]: { itemType: string; promotionId: string; items: any[] };\r\n } = {};\r\n const homeCartItem = cartData?.cartItem?.find((item: any) => item?.itemType === 'HOME');\r\n ottItems.forEach((ottItem: any) => {\r\n const itemType = ottItem?.itemType;\r\n \r\n // Only group OTT items, add others directly\r\n if (itemType === 'OTT') {\r\n const promoId = ottItem?.promotionId?.trim() || 'defaultOttBundle';\r\n const groupKey = `${'OTT'}_${promoId}`;\r\n\r\n if (!groupedByTypeAndPromo[groupKey]) {\r\n groupedByTypeAndPromo[groupKey] = {\r\n itemType: itemType,\r\n promotionId: promoId,\r\n items: []\r\n };\r\n }\r\n groupedByTypeAndPromo[groupKey].items.push(...(ottItem?.items || []));\r\n } else {\r\n // Add non-OTT items to HOME cartItem's items array\r\n \r\n if (homeCartItem && homeCartItem.items && ottItem?.items) {\r\n homeCartItem.items.push(...ottItem.items);\r\n }\r\n }\r\n });\r\n\r\n // Add each grouped OTT item as a separate cart item list\r\n Object.keys(groupedByTypeAndPromo).forEach((groupKey) => {\r\n const group = groupedByTypeAndPromo[groupKey];\r\n cartData?.cartItem.push({\r\n itemType: group.itemType,\r\n promotionId: group.promotionId,\r\n items: group.items\r\n });\r\n });\r\n }\r\n }\r\n\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n\r\n const URL = cartUrl + APIResourceConstants.CREATE_CARTV3;\r\n if (Object.keys(cartData)?.length > 0) {\r\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, cartData, options)\r\n .then((res: any) => {\r\n removeLocalStorage('isB2BCustomer');\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((error) => {\r\n if (error?.response?.data?.code || error?.response?.status === 504) {\r\n errorTrackingDataLayer(error?.response);\r\n }\r\n });\r\n if (createCartV2Resp.error) {\r\n throw createCartV2Resp.error;\r\n } else {\r\n return createCartV2Resp;\r\n }\r\n }\r\n};\r\n\r\nexport const fetchLinetableContent = async (slugurl: string, params: any): Promise<any> => {\r\n try {\r\n const resp = await CMSStoryblokServiceV2.get(slugurl, params)\r\n .then((response: any) => {\r\n const contentTable = response?.data?.story?.content?.body;\r\n // return comp;\r\n for (const comp of contentTable) {\r\n if (\r\n comp.component == 'productTableV2' ||\r\n comp.component === 'productTableWithOutLC' ||\r\n comp.component === 'prodConfigContainer'\r\n ) {\r\n return comp;\r\n } else if (comp.component == 'roamingProductTable') {\r\n return comp?.productTable?.[0];\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n throw err;\r\n });\r\n return resp;\r\n } catch (error) {\r\n return error;\r\n }\r\n};\r\n\r\nexport const getStaticContent = (language: any = 'en', endPoints: any) => {\r\n try {\r\n return CMSStoryblokServiceV2.get(endPoints, {\r\n dimension: language,\r\n per_page: 1000,\r\n type: 'B2C'\r\n })\r\n .then((res: any) => {\r\n const response: any = {};\r\n (res?.data?.datasource_entries || []).map((entry: any) => {\r\n response[entry.name] =\r\n entry.dimension_value != null ? entry.dimension_value : entry.value;\r\n });\r\n try {\r\n localStorage.removeItem('sbstaticcontent');\r\n localStorage.setItem('sbstaticcontent', JSON.stringify(response));\r\n } catch {\r\n //\r\n }\r\n return response;\r\n })\r\n .catch((err) => {\r\n return err;\r\n });\r\n } catch {\r\n throw Error('Promise failed');\r\n }\r\n};\r\n\r\nexport const fetchOfferingDataLineTableV2 = async (\r\n params: any,\r\n uniqueId: any,\r\n endpoint: any,\r\n existingCustomer?: boolean,\r\n subscriptionType?: string,\r\n enableReturnPromo?: boolean,\r\n P2PEnabled?: boolean,\r\n pegaIntegration?: boolean,\r\n deviceUltimateBundle?:boolean,\r\n): Promise<any> => {\r\n localStorage.removeItem('entertainment');\r\n let options: any;\r\n options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n if (enableReturnPromo) {\r\n options.params = {\r\n returnPromo: true\r\n };\r\n }\r\n if (P2PEnabled) {\r\n options.params = {\r\n journey: 'P2P'\r\n };\r\n }\r\n if(deviceUltimateBundle){\r\n options.params = {\r\n ...options.params,\r\n journey: 'FPB',\r\n }\r\n }\r\n\r\n let URL = endpoint + APIResourceConstants.LINE_TABLEV2;\r\n if (pegaIntegration && localStorage.getItem('prospectId')) {\r\n options.headers['x-sunrise-prospect-id'] = localStorage.getItem('prospectId');\r\n URL = endpoint + APIResourceConstants.LINE_TABLEV3;\r\n }\r\n const subscriptionUrl = subscriptionType\r\n ? URL + APIResourceConstants.SUBSCRIPTION + subscriptionType\r\n : URL;\r\n //US_31295\r\n const finalUrl = existingCustomer || subscriptionType? subscriptionUrl : URL;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(finalUrl, params, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (productDynamicData.error) {\r\n return productDynamicData.error;\r\n } else {\r\n return { [uniqueId]: productDynamicData };\r\n }\r\n};\r\n\r\n/**\r\n * Shogun xSell (rewards/loyalty) flow: fetches offer data using `gloxtoken`\r\n * as a query parameter. The offer endpoint expects a POST request, so we\r\n * send an empty JSON body `{}` — the backend resolves eligible products\r\n * from the token only.\r\n */\r\nexport const fetchShogunOfferData = async (\r\n gloxTokenId: string,\r\n uniqueId: string,\r\n endpoint: string\r\n): Promise<any> => {\r\n const options: any = {\r\n params: { gloxTokenId: gloxTokenId },\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.LINE_TABLEV2;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, [], options)\r\n .then((res: any): any => {\r\n if (res.status === 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((err: any) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (!productDynamicData || productDynamicData.error) {\r\n throw new Error('Shogun offer API failed');\r\n }\r\n return { [uniqueId]: productDynamicData };\r\n};\r\n\r\nexport const fetchSubscriptionData = async (category: any, endpoint: any): Promise<any> => {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n options.params = {\r\n category: category\r\n };\r\n const URL = endpoint;\r\n const subscriptionData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n } else {\r\n return res?.status;\r\n }\r\n })\r\n .catch((err: any) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (subscriptionData?.error) {\r\n return subscriptionData?.error;\r\n } else {\r\n return { subscriptionData };\r\n }\r\n};\r\n\r\nexport const getVocherPromotion = async (productID: string, voucher: string) => {\r\n try {\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n },\r\n params: {\r\n offerIds: productID,\r\n voucherCode: voucher\r\n }\r\n };\r\n\r\n const URL =\r\n LineTableBasicPropConfig?.getInstance()?.getBaseUrl() +\r\n `${APIResourceConstants.VOUCHER_PROMOTIONS}`;\r\n await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n } catch (error) {}\r\n};\r\n\r\nexport const validateP2P = async (msisdn: any, endpoint: any): Promise<any> => {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n options.params = {\r\n msisdn: msisdn\r\n };\r\n const URL = endpoint;\r\n return await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res?.data?.preToPostConversionStatus == 'OK') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n console.log('err', err);\r\n return false;\r\n });\r\n};\r\n\r\nexport const getDeviceDetails = async (deviceID: any, endpoint: any): Promise<any> => {\r\n try {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.HARDWARES + `baseProduct__${deviceID}`;\r\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res: any) => {\r\n if (res?.status === 200 && Object.keys(res?.data)?.length > 0) {\r\n return res?.data;\r\n } else {\r\n return null;\r\n }\r\n });\r\n return deviceData;\r\n } catch (err) {\r\n // eslint-disable-next-line no-console\r\n console.log('err', err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getDeviceModelsList = async (brandId: any, endpoint: any): Promise<any> => {\r\n try {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.HARDWARE_DEVICES + `manufacturerName__${brandId}`;\r\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res: any) => {\r\n if (res?.status === 200 && res?.data?.hardwares?.length > 0) {\r\n return res?.data;\r\n } else {\r\n return null;\r\n }\r\n });\r\n return deviceData;\r\n } catch (err) {\r\n // eslint-disable-next-line no-console\r\n console.log('err', err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const trackPegaEvents = async (\r\n endpoint: any,\r\n payload = {},\r\n prospectId: string\r\n): Promise<any> => {\r\n let options: any;\r\n options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': apiResConstants.X_SUN_CHAL,\r\n 'x-sunrise-prospect-id': prospectId\r\n }\r\n };\r\n\r\n let URL = endpoint + APIResourceConstants?.CUSTOMER_EVENTS;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, payload, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n // eslint-disable-next-line no-console\r\n console.log('trackPegaEvents result.data', res.data);\r\n return res?.data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n};\r\n\r\nexport const createCartWinV2 = async (\r\n productData: any,\r\n radioValue: string,\r\n defaultPromo: string,\r\n cartUrl: string,\r\n chooseGift:any\r\n): Promise<any> => {\r\n let cartData: any = {};\r\n /**WIN FLows*/\r\n let mobGiftId = '';\r\n let mandatoryGift = '';\r\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\r\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\r\n cartData = {\r\n relatedParty: [\r\n {\r\n id: 'anonymous',\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'HOME',\r\n promotionId: defaultPromo,\r\n items: [],\r\n note: [\r\n {\r\n author: 'linecheckCorrelationId',\r\n text: getCoorelationIdFromCookie\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n /**for 4P bundles*/\r\n const mobileItem: any = {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: []\r\n };\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (productData?.[0]?.isBundle) {\r\n productData?.[0]?.bundledOffers?.map((item: any) => {\r\n if (item?.promotionInfo?.[0]?.id) {\r\n const giftId =\r\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mobGiftId = giftId;\r\n } else {\r\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mandatoryGift = giftId;\r\n }\r\n }\r\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\r\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\r\n } else if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\r\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\r\n });\r\n mandatoryGift && cartData?.cartItem?.[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n mobGiftId && mobileItem?.items?.push({ itemType: 'GIFT', id: mobGiftId });\r\n\r\n if (mobileItem?.items?.length > 0) {\r\n cartData?.cartItem?.push(mobileItem);\r\n }\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\r\n })\r\n }\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n cartData.cartItem[0].items.push({\r\n itemType: productData?.[0]?.productType,\r\n id: productData?.[0]?.id\r\n });\r\n }\r\n /**\r\n * changes added for new internet activation section\r\n */\r\n if (lineCheckData?.accessType) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckaccessType',\r\n text: lineCheckData?.accessType,\r\n });\r\n }\r\n if (lineCheckData?.timeSlot) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckEarliestActivationDate',\r\n text: lineCheckData?.timeSlot?.start,\r\n });\r\n }\r\n /**\r\n * Adding line check address while cart creation\r\n * As part of DEX abandon basket use case\r\n */\r\n try {\r\n const address: any = getCookies('chAddressJson');\r\n const contactMedium: any = [\r\n {\r\n characteristic: {\r\n installationAddress: true,\r\n country: 'CH',\r\n city: address?.selectedAdd?.city,\r\n street1: address?.selectedAdd?.street,\r\n postCode: address?.selectedAdd?.postCode,\r\n street2: address?.selectedAdd?.houseNumber\r\n }\r\n }\r\n ];\r\n cartData.contactMedium = contactMedium;\r\n } catch (error: any) {\r\n // eslint-disable-next-line no-console\r\n console.log('issue at line check address addition in create cart ==>', error);\r\n }\r\n\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n\r\n const URL = `${endPoint}${API_BASE_BASEPOINT.CART_MGMT}/${APIResourceConstants.CREATE_CARTV2}`;\r\n if (Object.keys(cartData)?.length > 0) {\r\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, cartData, options)\r\n .then((res: any) => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n if (createCartV2Resp.error) {\r\n throw createCartV2Resp.error;\r\n } else {\r\n return createCartV2Resp;\r\n }\r\n }\r\n}\r\n\r\nexport const fetchOttServiceOptions = async (): Promise<any> => {\r\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n const url = `${endPoint}${APIResourceConstants.TV_SERVICE_OPTIONS_V2}`;\r\n const options = {\r\n params: {},\r\n headers: {\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL,\r\n 'x-correlation-id': generateUID()\r\n }\r\n };\r\n try {\r\n const optionsData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(url, options)\r\n .then((res) => {\r\n return res?.data?.length > 0 ? res?.data : [];\r\n });\r\n return optionsData;\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.log(error);\r\n }\r\n};\r\n"],"names":["AuthData","undefined","window","Cookies","get","JSON","parse","fetchCountryList","name","lang","url","TTL","__awaiter","getCountryData","getLocalStorageWithExpiry","sbParams","language","type","stories","_a","CMSStoryblokServiceV2","data","length","setLocalStoreWithExpiry","e","console","error","fetchOfferingDataV2","requestBody","returnPromo","localStorage","removeItem","options","headers","generateUID","APIResourceConstants","X_SUN_CHAL","params","URL","LINE_TABLEV2","productDynamicData","ApiServiceV2","getApiServiceInstance","post","then","res","status","response","forEach","id","_b","code","_c","errorTrackingDataLayer","log","createCartV2","productData_1","radioValue_1","defaultPromo_1","cartUrl_1","productType_1","chooseGift_1","enabledP2P_1","P2PData_1","isQoqaFlow_1","args_1","productData","radioValue","defaultPromo","cartUrl","productType","chooseGift","enabledP2P","P2PData","isQoqaFlow","qVoucher","deviceDetails","tvOptions","discountRef","discountVersion","rewardsInfo","cartData","ottCartData","getSessionStorage","ONE_ECOMMERCE_OTT","FIXNET","mobGiftId","mandatoryGift","getCoorelationIdFromCookie","lineCheckData","getAccessDataFromLineCheck","relatedParty","segment","cartItem","itemType","promotionId","items","note","author","text","mobileItem","isBundle","_e","_d","bundledOffers","map","item","promotionInfo","giftId","_g","_f","hardwareGift","ids","_m","_l","_k","_j","_h","_o","toLowerCase","_q","_p","_s","_r","_t","push","_u","option","TV_SERVICE_OPTION","_v","_w","_x","_y","giftItem","parentPoType","tuaProdId","accessType","_1","_z","_0","timeSlot","_4","_2","_3","_5","start","address","getCookies","contactMedium","characteristic","installationAddress","country","city","_6","selectedAdd","street1","_7","street","postCode","_8","street2","_9","houseNumber","MOBILE","_10","_11","subscribedInfo","installedPlan","P2PSUBSCRIBEDPLAN","processType","PRE_TO_POST","_12","_13","clientDiscountInfo","discountType","_19","_17","_16","_15","_14","_18","_25","_24","_23","_22","_21","_20","_26","VOUCHERTYPE","QOQA","VOUCHERCODE","removeLocalStorage","_27","pointsBurnt","deviceCartItem","contractDuration","selectedVarientDetails","hardwarePrices","smartUpgradeInstallments","duration","upFrontValue","upFrontPayment","value","insuranceValue","insurance","deviceItem","HARDWARE","contractTerm","getDeviceNotes","flexItem","DEVICE_INSURANCE","insuranceName","getDeviceCartItem","_29","_28","_30","flow","URLSearchParams","location","search","ottItems","fetchOttItems","groupedByTypeAndPromo","homeCartItem","_31","find","ottItem","promoId","trim","groupKey","Object","keys","group","CREATE_CARTV3","_32","createCartV2Resp","catch","fetchLinetableContent","slugurl","contentTable","story","content","body","comp","component","productTable","err","getStaticContent","endPoints","dimension","per_page","datasource_entries","entry","dimension_value","setItem","stringify","Error","fetchOfferingDataLineTableV2","uniqueId","endpoint","existingCustomer","subscriptionType","enableReturnPromo","P2PEnabled","pegaIntegration","deviceUltimateBundle","journey","assign","getItem","LINE_TABLEV3","subscriptionUrl","SUBSCRIPTION","finalUrl","fetchShogunOfferData","gloxTokenId","fetchSubscriptionData","category","subscriptionData","getVocherPromotion","productID","voucher","offerIds","voucherCode","LineTableBasicPropConfig","getInstance","getBaseUrl","VOUCHER_PROMOTIONS","validateP2P","msisdn","preToPostConversionStatus","getDeviceDetails","deviceID","HARDWARES","getDeviceModelsList","brandId","HARDWARE_DEVICES","hardwares","trackPegaEvents","endpoint_1","payload","prospectId","apiResConstants","CUSTOMER_EVENTS","createCartWinV2","API_BASE_BASEPOINT","CART_MGMT","CREATE_CARTV2","fetchOttServiceOptions","TV_SERVICE_OPTIONS_V2","optionsData"],"mappings":"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"}
1
+ {"version":3,"file":"LineTableService.js","sources":["../../../src/services/LineTableService.ts"],"sourcesContent":["import { ApiServiceV2, CMSStoryblokServiceV2 } from '@sunrise-upc/ajax-lib';\r\nimport {\r\n getCookies,\r\n getLocalStorageWithExpiry,\r\n getSessionStorage,\r\n removeLocalStorage,\r\n setLocalStoreWithExpiry\r\n} from '../utils/utils';\r\nimport { API_BASE_BASEPOINT, APIResourceConstants } from './api-constants';\r\nimport Cookies from 'js-cookie';\r\nimport { v4 as generateUID } from 'uuid';\r\nimport {\r\n DEVICE_INSURANCE,\r\n FIXNET,\r\n HARDWARE,\r\n MOBILE,\r\n ONE_ECOMMERCE_OTT,\r\n P2PSUBSCRIBEDPLAN,\r\n PRE_TO_POST,\r\n QOQA,\r\n TV_SERVICE_OPTION,\r\n VOUCHERCODE,\r\n VOUCHERTYPE\r\n} from '../utils/constants';\r\nimport { getAccessDataFromLineCheck } from '../components/lineTable/LineTableV3.utils';\r\nimport { LineTableBasicPropConfig } from './LineTableBasicPropConfig';\r\nimport { errorTrackingDataLayer } from '../utils/AnalyticsUtils';\r\nimport { apiResConstants } from '../components/LineCheckV3/APIResourceConstants';\r\nimport { getDeviceNotes } from '../components/UltimateBundleLinetable/DpTableUtils';\r\nimport {fetchOttItems} from '../components/StaticLineTable/Product.utils'\r\n\r\n// Device cart utility functions moved here to avoid circular dependency\r\nconst getDeviceCartNotes = (deviceDetails: any, upFrontValue: string) => {\r\n let note = '';\r\n const smartUpgradeInstallments =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments;\r\n const installments = deviceDetails?.selectedVarientDetails?.hardwarePrices?.installments;\r\n const basePrice = deviceDetails?.selectedVarientDetails?.hardwarePrices?.basePrice;\r\n\r\n if (smartUpgradeInstallments) {\r\n note = `${smartUpgradeInstallments?.duration} months, CHF ${upFrontValue} upfront, CHF ${smartUpgradeInstallments?.monthlyPayment?.value}/month`;\r\n } else if (installments) {\r\n note = `${installments?.duration} months, CHF ${installments?.monthlyPayment?.value}/month`;\r\n } else if (basePrice) {\r\n note = `CHF ${basePrice?.value} one-time payment`;\r\n }\r\n return note;\r\n};\r\n\r\nconst getDeviceCartItem = (deviceDetails: any) => {\r\n let items = [];\r\n const contractDuration =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.duration ?? 0;\r\n const upFrontValue =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.upFrontPayment\r\n ?.value ?? 0;\r\n const insuranceValue =\r\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.insurance\r\n ?.value ?? 0;\r\n const deviceItem = {\r\n itemType: HARDWARE,\r\n id: deviceDetails?.selectedVarientDetails?.id ?? '',\r\n contractTerm: contractDuration,\r\n note: getDeviceNotes(deviceDetails, upFrontValue)\r\n };\r\n deviceItem && items?.push(deviceItem);\r\n\r\n if (insuranceValue) {\r\n const flexItem = {\r\n itemType: DEVICE_INSURANCE,\r\n id: deviceDetails?.insuranceName\r\n };\r\n items?.push(flexItem);\r\n }\r\n return items?.length > 0 ? items : null;\r\n};\r\n\r\nlet AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\r\nAuthData = AuthData && JSON.parse(AuthData);\r\n\r\nexport const fetchCountryList = async (name: string, lang: string, url: string, TTL: number) => {\r\n const getCountryData = getLocalStorageWithExpiry(`${name}_${lang}_countryData`);\r\n if (getCountryData) {\r\n return getCountryData;\r\n } else {\r\n try {\r\n const sbParams = {\r\n language: lang,\r\n type: 'B2C'\r\n };\r\n const res = await CMSStoryblokServiceV2.get(url, sbParams);\r\n const stories = res.data?.stories;\r\n if (stories && stories.length > 0)\r\n setLocalStoreWithExpiry(`${name}_${lang}_countryData`, stories, TTL);\r\n return stories;\r\n } catch (e: any) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n return e;\r\n }\r\n }\r\n};\r\n\r\nexport const fetchOfferingDataV2 = async (\r\n requestBody: any,\r\n url: any,\r\n returnPromo?: boolean\r\n): Promise<any> => {\r\n try {\r\n localStorage.removeItem('entertainment');\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n },\r\n params: {}\r\n };\r\n if (returnPromo) {\r\n options.params = {\r\n returnPromo: true\r\n };\r\n }\r\n const URL = url + APIResourceConstants.LINE_TABLEV2;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, requestBody, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n if (productDynamicData.error) {\r\n return productDynamicData.error;\r\n } else {\r\n const response: any[] = [];\r\n productDynamicData?.forEach((data: any) => {\r\n response[data.id] = data;\r\n });\r\n return response;\r\n }\r\n } catch (error: any) {\r\n if (error?.response?.data?.code || error?.response?.status === 504) {\r\n errorTrackingDataLayer(error?.response);\r\n }\r\n // eslint-disable-next-line no-console\r\n console.log('error--->', error);\r\n }\r\n};\r\n\r\nexport const createCartV2 = async (\r\n productData: any,\r\n radioValue: string,\r\n defaultPromo: string,\r\n cartUrl: string,\r\n productType: string,\r\n chooseGift?: any,\r\n enabledP2P?: any,\r\n P2PData?: any,\r\n isQoqaFlow?: boolean,\r\n qVoucher: any = '',\r\n deviceDetails?: any,\r\n tvOptions?: any,\r\n discountRef?: string,\r\n discountVersion?: string,\r\n // Shogun/rewards (loyalty) flow: when the user redeems loyalty points we must\r\n // attach a `pointsBurnt` note at the item level — the RATEPLAN item for\r\n // MOBILE and the internet item for FIXNET — so the backend can apply the\r\n // burn. See StaticProduct.tsx (isShogunFlow branch).\r\n rewardsInfo?: { pointsBurnt?: string | number }\r\n): Promise<any> => {\r\n let cartData: any = {};\r\n /**WIN FLows*/\r\n \r\n // Get OTT data from session storage\r\n const ottCartData = getSessionStorage(ONE_ECOMMERCE_OTT);\r\n \r\n if (productType === FIXNET) {\r\n let mobGiftId = '';\r\n let mandatoryGift = '';\r\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\r\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\r\n cartData = {\r\n relatedParty: [\r\n {\r\n id: 'anonymous',\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'HOME',\r\n promotionId: defaultPromo,\r\n items: [],\r\n note: [\r\n {\r\n author: 'linecheckCorrelationId',\r\n text: getCoorelationIdFromCookie\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n /**for 4P bundles*/\r\n const mobileItem: any = {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: []\r\n };\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (productData[0]?.isBundle) {\r\n productData[0]?.bundledOffers?.map((item: any) => {\r\n if (item?.promotionInfo?.[0]?.id) {\r\n const giftId =\r\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mobGiftId = giftId;\r\n } else {\r\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mandatoryGift = giftId;\r\n }\r\n }\r\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\r\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\r\n } else if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\r\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\r\n });\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n mobGiftId && mobileItem.items.push({ itemType: 'GIFT', id: mobGiftId });\r\n if (mobileItem?.items?.length > 0) {\r\n cartData?.cartItem?.push(mobileItem);\r\n }\r\n\r\n //If product has tv options\r\n if (tvOptions?.length > 0) {\r\n tvOptions?.forEach((option: any) => {\r\n cartData.cartItem[0].items.push({ itemType: TV_SERVICE_OPTION, id: option?.id });\r\n });\r\n }\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n const mandatoryGift =\r\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n cartData.cartItem[0].items.push({\r\n itemType: productData?.[0]?.productType,\r\n id: productData?.[0]?.id\r\n });\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n }\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n giftItem?.parentPoType === 'HOME'\r\n ? cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\r\n : mobileItem.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\r\n });\r\n }\r\n /**\r\n * changes added for new internet activation section\r\n */\r\n if (lineCheckData?.accessType) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckaccessType',\r\n text: lineCheckData?.accessType\r\n });\r\n }\r\n if (lineCheckData?.timeSlot) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckEarliestActivationDate',\r\n text: lineCheckData?.timeSlot?.start\r\n });\r\n }\r\n /**\r\n * Adding line check address while cart creation\r\n * As part of DEX abandon basket use case\r\n */\r\n try {\r\n const address: any = getCookies('chAddressJson');\r\n const contactMedium: any = [\r\n {\r\n characteristic: {\r\n installationAddress: true,\r\n country: 'CH',\r\n city: address?.selectedAdd?.city,\r\n street1: address?.selectedAdd?.street,\r\n postCode: address?.selectedAdd?.postCode,\r\n street2: address?.selectedAdd?.houseNumber\r\n }\r\n }\r\n ];\r\n cartData.contactMedium = contactMedium;\r\n } catch (error: any) {\r\n // eslint-disable-next-line no-console\r\n console.log('issue at line check address addition in create cart ==>', error);\r\n }\r\n } else if (productType === MOBILE) {\r\n /**Mobile*/\r\n if (enabledP2P) {\r\n cartData = {\r\n relatedParty: [\r\n {\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: [\r\n {\r\n itemType: 'RATEPLAN',\r\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\r\n subscribedInfo: {\r\n installedPlan: P2PSUBSCRIBEDPLAN,\r\n id: P2PData\r\n }\r\n }\r\n ],\r\n processType: {\r\n id: PRE_TO_POST\r\n }\r\n }\r\n ]\r\n };\r\n } else {\r\n cartData = {\r\n relatedParty: [\r\n {\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: [\r\n {\r\n itemType: 'RATEPLAN',\r\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\r\n clientDiscountInfo: discountRef\r\n ? [\r\n {\r\n discountRef: discountRef,\r\n discountType: 'DISCOUNT'\r\n }\r\n ]\r\n : undefined\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n }\r\n const mandatoryGift =\r\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n giftItem?.parentPoType !== 'HOME' &&\r\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\r\n });\r\n }\r\n }\r\n\r\n if (isQoqaFlow) {\r\n const note = [];\r\n note.push({\r\n author: VOUCHERTYPE,\r\n text: QOQA\r\n });\r\n if (qVoucher !== '') {\r\n note.push({\r\n author: VOUCHERCODE,\r\n text: qVoucher\r\n });\r\n removeLocalStorage('vctype');\r\n }\r\n cartData.cartItem[0]['note'] = note;\r\n } else if (discountRef && discountVersion) {\r\n const note = [];\r\n note?.push({\r\n author: 'offerType',\r\n text: 'ATL'\r\n });\r\n note?.push({\r\n author: 'externalPromotionName',\r\n text: discountRef\r\n });\r\n note?.push({\r\n author: 'offerVersion',\r\n text: discountVersion\r\n });\r\n cartData.cartItem[0]['note'] = note;\r\n }\r\n\r\n // Shogun / rewards (loyalty) flow — append a pointsBurnt note at the\r\n // item level (not the cartItem level). For MOBILE this attaches to the\r\n // RATEPLAN item; for Internet (FIXNET) it attaches to the internet item\r\n // inside the cartItem's items array. We only push the note when it has\r\n // a value so the backend does not receive an empty string.\r\n if (rewardsInfo && cartData?.cartItem?.[0]) {\r\n const { pointsBurnt } = rewardsInfo;\r\n if (pointsBurnt !== undefined && pointsBurnt !== null && `${pointsBurnt}` !== '') {\r\n const pointsBurntNote = { author: 'pointsBurnt', text: `${pointsBurnt}` };\r\n cartData?.cartItem?.forEach((ci: any) => {\r\n if (!Array.isArray(ci?.items)) return;\r\n ci.items.forEach((it: any) => {\r\n const itType = `${it?.itemType || ''}`.toUpperCase();\r\n if (itType === 'RATEPLAN' || itType === 'INTERNET') {\r\n it.note = [...(it.note || []), pointsBurntNote];\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n //To add hardware item while creating cart\r\n if (deviceDetails) {\r\n const deviceCartItem = getDeviceCartItem(deviceDetails);\r\n deviceCartItem && cartData?.cartItem?.[0]?.items?.push(...deviceCartItem);\r\n }\r\n // Get flow parameter from URL query string if in browser\r\n let flow: string | null = null;\r\n if (typeof window !== 'undefined') {\r\n const params = new URLSearchParams(window.location.search);\r\n flow = params.get('flow');\r\n }\r\n \r\n // Add OTT items to cart if session storage exists and flow is 'ott'\r\n const shouldAddOttItems = ottCartData && flow === 'ott';\r\n if (shouldAddOttItems) {\r\n const ottItems = fetchOttItems(ottCartData);\r\n if (ottItems?.length > 0) {\r\n const groupedByTypeAndPromo: {\r\n [key: string]: { itemType: string; promotionId: string; items: any[] };\r\n } = {};\r\n const homeCartItem = cartData?.cartItem?.find((item: any) => item?.itemType === 'HOME');\r\n ottItems.forEach((ottItem: any) => {\r\n const itemType = ottItem?.itemType;\r\n \r\n // Only group OTT items, add others directly\r\n if (itemType === 'OTT') {\r\n const promoId = ottItem?.promotionId?.trim() || 'defaultOttBundle';\r\n const groupKey = `${'OTT'}_${promoId}`;\r\n\r\n if (!groupedByTypeAndPromo[groupKey]) {\r\n groupedByTypeAndPromo[groupKey] = {\r\n itemType: itemType,\r\n promotionId: promoId,\r\n items: []\r\n };\r\n }\r\n groupedByTypeAndPromo[groupKey].items.push(...(ottItem?.items || []));\r\n } else {\r\n // Add non-OTT items to HOME cartItem's items array\r\n \r\n if (homeCartItem && homeCartItem.items && ottItem?.items) {\r\n homeCartItem.items.push(...ottItem.items);\r\n }\r\n }\r\n });\r\n\r\n // Add each grouped OTT item as a separate cart item list\r\n Object.keys(groupedByTypeAndPromo).forEach((groupKey) => {\r\n const group = groupedByTypeAndPromo[groupKey];\r\n cartData?.cartItem.push({\r\n itemType: group.itemType,\r\n promotionId: group.promotionId,\r\n items: group.items\r\n });\r\n });\r\n }\r\n }\r\n\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n\r\n const URL = cartUrl + APIResourceConstants.CREATE_CARTV3;\r\n if (Object.keys(cartData)?.length > 0) {\r\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, cartData, options)\r\n .then((res: any) => {\r\n removeLocalStorage('isB2BCustomer');\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((error) => {\r\n if (error?.response?.data?.code || error?.response?.status === 504) {\r\n errorTrackingDataLayer(error?.response);\r\n }\r\n });\r\n if (createCartV2Resp.error) {\r\n throw createCartV2Resp.error;\r\n } else {\r\n return createCartV2Resp;\r\n }\r\n }\r\n};\r\n\r\nexport const fetchLinetableContent = async (slugurl: string, params: any): Promise<any> => {\r\n try {\r\n const resp = await CMSStoryblokServiceV2.get(slugurl, params)\r\n .then((response: any) => {\r\n const contentTable = response?.data?.story?.content?.body;\r\n // return comp;\r\n for (const comp of contentTable) {\r\n if (\r\n comp.component == 'productTableV2' ||\r\n comp.component === 'productTableWithOutLC' ||\r\n comp.component === 'prodConfigContainer'\r\n ) {\r\n return comp;\r\n } else if (comp.component == 'roamingProductTable') {\r\n return comp?.productTable?.[0];\r\n }\r\n }\r\n })\r\n .catch((err: any) => {\r\n throw err;\r\n });\r\n return resp;\r\n } catch (error) {\r\n return error;\r\n }\r\n};\r\n\r\nexport const getStaticContent = (language: any = 'en', endPoints: any) => {\r\n try {\r\n return CMSStoryblokServiceV2.get(endPoints, {\r\n dimension: language,\r\n per_page: 1000,\r\n type: 'B2C'\r\n })\r\n .then((res: any) => {\r\n const response: any = {};\r\n (res?.data?.datasource_entries || []).map((entry: any) => {\r\n response[entry.name] =\r\n entry.dimension_value != null ? entry.dimension_value : entry.value;\r\n });\r\n try {\r\n localStorage.removeItem('sbstaticcontent');\r\n localStorage.setItem('sbstaticcontent', JSON.stringify(response));\r\n } catch {\r\n //\r\n }\r\n return response;\r\n })\r\n .catch((err) => {\r\n return err;\r\n });\r\n } catch {\r\n throw Error('Promise failed');\r\n }\r\n};\r\n\r\nexport const fetchOfferingDataLineTableV2 = async (\r\n params: any,\r\n uniqueId: any,\r\n endpoint: any,\r\n existingCustomer?: boolean,\r\n subscriptionType?: string,\r\n enableReturnPromo?: boolean,\r\n P2PEnabled?: boolean,\r\n pegaIntegration?: boolean,\r\n deviceUltimateBundle?:boolean,\r\n): Promise<any> => {\r\n localStorage.removeItem('entertainment');\r\n let options: any;\r\n options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n if (enableReturnPromo) {\r\n options.params = {\r\n returnPromo: true\r\n };\r\n }\r\n if (P2PEnabled) {\r\n options.params = {\r\n journey: 'P2P'\r\n };\r\n }\r\n if(deviceUltimateBundle){\r\n options.params = {\r\n ...options.params,\r\n journey: 'FPB',\r\n }\r\n }\r\n\r\n let URL = endpoint + APIResourceConstants.LINE_TABLEV2;\r\n if (pegaIntegration && localStorage.getItem('prospectId')) {\r\n options.headers['x-sunrise-prospect-id'] = localStorage.getItem('prospectId');\r\n URL = endpoint + APIResourceConstants.LINE_TABLEV3;\r\n }\r\n const subscriptionUrl = subscriptionType\r\n ? URL + APIResourceConstants.SUBSCRIPTION + subscriptionType\r\n : URL;\r\n //US_31295\r\n const finalUrl = existingCustomer || subscriptionType? subscriptionUrl : URL;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(finalUrl, params, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (productDynamicData.error) {\r\n return productDynamicData.error;\r\n } else {\r\n return { [uniqueId]: productDynamicData };\r\n }\r\n};\r\n\r\n/**\r\n * Shogun xSell (rewards/loyalty) flow: fetches offer data using `gloxtoken`\r\n * as a query parameter. The offer endpoint expects a POST request, so we\r\n * send an empty JSON body `{}` — the backend resolves eligible products\r\n * from the token only.\r\n */\r\nexport const fetchShogunOfferData = async (\r\n gloxTokenId: string,\r\n uniqueId: string,\r\n endpoint: string\r\n): Promise<any> => {\r\n const options: any = {\r\n params: { gloxTokenId: gloxTokenId },\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.LINE_TABLEV2;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, [], options)\r\n .then((res: any): any => {\r\n if (res.status === 200) {\r\n return res?.data;\r\n }\r\n })\r\n .catch((err: any) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (!productDynamicData || productDynamicData.error) {\r\n throw new Error('Shogun offer API failed');\r\n }\r\n return { [uniqueId]: productDynamicData };\r\n};\r\n\r\nexport const fetchSubscriptionData = async (category: any, endpoint: any): Promise<any> => {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n options.params = {\r\n category: category\r\n };\r\n const URL = endpoint;\r\n const subscriptionData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n } else {\r\n return res?.status;\r\n }\r\n })\r\n .catch((err: any) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n if (subscriptionData?.error) {\r\n return subscriptionData?.error;\r\n } else {\r\n return { subscriptionData };\r\n }\r\n};\r\n\r\nexport const getVocherPromotion = async (productID: string, voucher: string) => {\r\n try {\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n },\r\n params: {\r\n offerIds: productID,\r\n voucherCode: voucher\r\n }\r\n };\r\n\r\n const URL =\r\n LineTableBasicPropConfig?.getInstance()?.getBaseUrl() +\r\n `${APIResourceConstants.VOUCHER_PROMOTIONS}`;\r\n await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n } catch (error) {}\r\n};\r\n\r\nexport const validateP2P = async (msisdn: any, endpoint: any): Promise<any> => {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n options.params = {\r\n msisdn: msisdn\r\n };\r\n const URL = endpoint;\r\n return await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res): any => {\r\n if (res?.data?.preToPostConversionStatus == 'OK') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n console.log('err', err);\r\n return false;\r\n });\r\n};\r\n\r\nexport const getDeviceDetails = async (deviceID: any, endpoint: any): Promise<any> => {\r\n try {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.HARDWARES + `baseProduct__${deviceID}`;\r\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res: any) => {\r\n if (res?.status === 200 && Object.keys(res?.data)?.length > 0) {\r\n return res?.data;\r\n } else {\r\n return null;\r\n }\r\n });\r\n return deviceData;\r\n } catch (err) {\r\n // eslint-disable-next-line no-console\r\n console.log('err', err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getDeviceModelsList = async (brandId: any, endpoint: any): Promise<any> => {\r\n try {\r\n let options: any;\r\n options = {\r\n params: {},\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const URL = endpoint + APIResourceConstants.HARDWARE_DEVICES + `manufacturerName__${brandId}`;\r\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(URL, options)\r\n .then((res: any) => {\r\n if (res?.status === 200 && res?.data?.hardwares?.length > 0) {\r\n return res?.data;\r\n } else {\r\n return null;\r\n }\r\n });\r\n return deviceData;\r\n } catch (err) {\r\n // eslint-disable-next-line no-console\r\n console.log('err', err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const trackPegaEvents = async (\r\n endpoint: any,\r\n payload = {},\r\n prospectId: string\r\n): Promise<any> => {\r\n let options: any;\r\n options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': apiResConstants.X_SUN_CHAL,\r\n 'x-sunrise-prospect-id': prospectId\r\n }\r\n };\r\n\r\n let URL = endpoint + APIResourceConstants?.CUSTOMER_EVENTS;\r\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, payload, options)\r\n .then((res): any => {\r\n if (res.status == 200) {\r\n // eslint-disable-next-line no-console\r\n console.log('trackPegaEvents result.data', res.data);\r\n return res?.data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.data?.code || err?.response?.status === 504) {\r\n errorTrackingDataLayer(err?.response);\r\n }\r\n });\r\n};\r\n\r\nexport const createCartWinV2 = async (\r\n productData: any,\r\n radioValue: string,\r\n defaultPromo: string,\r\n cartUrl: string,\r\n chooseGift:any\r\n): Promise<any> => {\r\n let cartData: any = {};\r\n /**WIN FLows*/\r\n let mobGiftId = '';\r\n let mandatoryGift = '';\r\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\r\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\r\n cartData = {\r\n relatedParty: [\r\n {\r\n id: 'anonymous',\r\n segment: 'RESIDENTIAL'\r\n }\r\n ],\r\n cartItem: [\r\n {\r\n itemType: 'HOME',\r\n promotionId: defaultPromo,\r\n items: [],\r\n note: [\r\n {\r\n author: 'linecheckCorrelationId',\r\n text: getCoorelationIdFromCookie\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n /**for 4P bundles*/\r\n const mobileItem: any = {\r\n itemType: 'MOBILE',\r\n promotionId: defaultPromo,\r\n items: []\r\n };\r\n /**Check if bundle or Internet and add it to cart request*/\r\n if (productData?.[0]?.isBundle) {\r\n productData?.[0]?.bundledOffers?.map((item: any) => {\r\n if (item?.promotionInfo?.[0]?.id) {\r\n const giftId =\r\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\r\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\r\n : '';\r\n if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mobGiftId = giftId;\r\n } else {\r\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\r\n mandatoryGift = giftId;\r\n }\r\n }\r\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\r\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\r\n } else if (item?.productType?.toLowerCase() === 'mobile') {\r\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\r\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\r\n });\r\n mandatoryGift && cartData?.cartItem?.[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\r\n mobGiftId && mobileItem?.items?.push({ itemType: 'GIFT', id: mobGiftId });\r\n\r\n if (mobileItem?.items?.length > 0) {\r\n cartData?.cartItem?.push(mobileItem);\r\n }\r\n if (chooseGift && chooseGift?.length > 0) {\r\n chooseGift?.map((giftItem: any) => {\r\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\r\n })\r\n }\r\n } else {\r\n /**Add standlone product such as internet to cart request*/\r\n cartData.cartItem[0].items.push({\r\n itemType: productData?.[0]?.productType,\r\n id: productData?.[0]?.id\r\n });\r\n }\r\n /**\r\n * changes added for new internet activation section\r\n */\r\n if (lineCheckData?.accessType) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckaccessType',\r\n text: lineCheckData?.accessType,\r\n });\r\n }\r\n if (lineCheckData?.timeSlot) {\r\n cartData?.cartItem?.[0]?.note?.push({\r\n author: 'lineCheckEarliestActivationDate',\r\n text: lineCheckData?.timeSlot?.start,\r\n });\r\n }\r\n /**\r\n * Adding line check address while cart creation\r\n * As part of DEX abandon basket use case\r\n */\r\n try {\r\n const address: any = getCookies('chAddressJson');\r\n const contactMedium: any = [\r\n {\r\n characteristic: {\r\n installationAddress: true,\r\n country: 'CH',\r\n city: address?.selectedAdd?.city,\r\n street1: address?.selectedAdd?.street,\r\n postCode: address?.selectedAdd?.postCode,\r\n street2: address?.selectedAdd?.houseNumber\r\n }\r\n }\r\n ];\r\n cartData.contactMedium = contactMedium;\r\n } catch (error: any) {\r\n // eslint-disable-next-line no-console\r\n console.log('issue at line check address addition in create cart ==>', error);\r\n }\r\n\r\n const options = {\r\n headers: {\r\n 'x-correlation-id': generateUID(),\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\r\n }\r\n };\r\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n\r\n const URL = `${endPoint}${API_BASE_BASEPOINT.CART_MGMT}/${APIResourceConstants.CREATE_CARTV2}`;\r\n if (Object.keys(cartData)?.length > 0) {\r\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\r\n .post(URL, cartData, options)\r\n .then((res: any) => {\r\n if (res.status == 200) {\r\n return res?.data;\r\n }\r\n });\r\n if (createCartV2Resp.error) {\r\n throw createCartV2Resp.error;\r\n } else {\r\n return createCartV2Resp;\r\n }\r\n }\r\n}\r\n\r\nexport const fetchOttServiceOptions = async (): Promise<any> => {\r\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\r\n const url = `${endPoint}${APIResourceConstants.TV_SERVICE_OPTIONS_V2}`;\r\n const options = {\r\n params: {},\r\n headers: {\r\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL,\r\n 'x-correlation-id': generateUID()\r\n }\r\n };\r\n try {\r\n const optionsData: any = await ApiServiceV2.getApiServiceInstance()\r\n .get(url, options)\r\n .then((res) => {\r\n return res?.data?.length > 0 ? res?.data : [];\r\n });\r\n return optionsData;\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.log(error);\r\n }\r\n};\r\n"],"names":["AuthData","undefined","window","Cookies","get","JSON","parse","fetchCountryList","name","lang","url","TTL","__awaiter","getCountryData","getLocalStorageWithExpiry","sbParams","language","type","stories","_a","CMSStoryblokServiceV2","data","length","setLocalStoreWithExpiry","e","console","error","fetchOfferingDataV2","requestBody","returnPromo","localStorage","removeItem","options","headers","generateUID","APIResourceConstants","X_SUN_CHAL","params","URL","LINE_TABLEV2","productDynamicData","ApiServiceV2","getApiServiceInstance","post","then","res","status","response","forEach","id","_b","code","_c","errorTrackingDataLayer","log","createCartV2","productData_1","radioValue_1","defaultPromo_1","cartUrl_1","productType_1","chooseGift_1","enabledP2P_1","P2PData_1","isQoqaFlow_1","args_1","productData","radioValue","defaultPromo","cartUrl","productType","chooseGift","enabledP2P","P2PData","isQoqaFlow","qVoucher","deviceDetails","tvOptions","discountRef","discountVersion","rewardsInfo","cartData","ottCartData","getSessionStorage","ONE_ECOMMERCE_OTT","FIXNET","mobGiftId","mandatoryGift","getCoorelationIdFromCookie","lineCheckData","getAccessDataFromLineCheck","relatedParty","segment","cartItem","itemType","promotionId","items","note","author","text","mobileItem","isBundle","_e","_d","bundledOffers","map","item","promotionInfo","giftId","_g","_f","hardwareGift","ids","_m","_l","_k","_j","_h","_o","toLowerCase","_q","_p","_s","_r","_t","push","_u","option","TV_SERVICE_OPTION","_v","_w","_x","_y","giftItem","parentPoType","tuaProdId","accessType","_1","_z","_0","timeSlot","_4","_2","_3","_5","start","address","getCookies","contactMedium","characteristic","installationAddress","country","city","_6","selectedAdd","street1","_7","street","postCode","_8","street2","_9","houseNumber","MOBILE","_10","_11","subscribedInfo","installedPlan","P2PSUBSCRIBEDPLAN","processType","PRE_TO_POST","_12","_13","clientDiscountInfo","discountType","_19","_17","_16","_15","_14","_18","_25","_24","_23","_22","_21","_20","_26","VOUCHERTYPE","QOQA","VOUCHERCODE","removeLocalStorage","_27","pointsBurnt","pointsBurntNote","_28","ci","Array","isArray","it","itType","toUpperCase","deviceCartItem","contractDuration","selectedVarientDetails","hardwarePrices","smartUpgradeInstallments","duration","upFrontValue","upFrontPayment","value","insuranceValue","insurance","deviceItem","HARDWARE","contractTerm","getDeviceNotes","flexItem","DEVICE_INSURANCE","insuranceName","getDeviceCartItem","_30","_29","_31","flow","URLSearchParams","location","search","ottItems","fetchOttItems","groupedByTypeAndPromo","homeCartItem","_32","find","ottItem","promoId","trim","groupKey","Object","keys","group","CREATE_CARTV3","_33","createCartV2Resp","catch","fetchLinetableContent","slugurl","contentTable","story","content","body","comp","component","productTable","err","getStaticContent","endPoints","dimension","per_page","datasource_entries","entry","dimension_value","setItem","stringify","Error","fetchOfferingDataLineTableV2","uniqueId","endpoint","existingCustomer","subscriptionType","enableReturnPromo","P2PEnabled","pegaIntegration","deviceUltimateBundle","journey","assign","getItem","LINE_TABLEV3","subscriptionUrl","SUBSCRIPTION","finalUrl","fetchShogunOfferData","gloxTokenId","fetchSubscriptionData","category","subscriptionData","getVocherPromotion","productID","voucher","offerIds","voucherCode","LineTableBasicPropConfig","getInstance","getBaseUrl","VOUCHER_PROMOTIONS","validateP2P","msisdn","preToPostConversionStatus","getDeviceDetails","deviceID","HARDWARES","getDeviceModelsList","brandId","HARDWARE_DEVICES","hardwares","trackPegaEvents","endpoint_1","payload","prospectId","apiResConstants","CUSTOMER_EVENTS","createCartWinV2","API_BASE_BASEPOINT","CART_MGMT","CREATE_CARTV2","fetchOttServiceOptions","TV_SERVICE_OPTIONS_V2","optionsData"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunrise-upc/mobile-prod-card",
3
- "version": "11.12.2",
3
+ "version": "11.12.4",
4
4
  "description": "Starter project to create reusable functional component",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",