@sunrise-upc/mobile-prod-card 12.2.0 → 12.2.2

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 e,{useState as l,useContext as o,useRef as n,useEffect as i}from"react";import t from"./StaticLineTable.module.scss.js";import d from"../sharedCarousel/CarouselComponent.js";import{viewport as r,getElementMaximumHeight as u,setLocalStoreWithExpiry as s}from"../../utils/utils.js";import v from"./StaticProduct.js";import{getVocherPromotion as a,fetchOttServiceOptions as c,fetchOfferingDataLineTableV2 as p}from"../../services/LineTableService.js";import{LineTableBasicPropConfig as g}from"../../services/LineTableBasicPropConfig.js";import{filterShogunProducts as m,getTimeUntilNextTimerEvent as f,fetchStaticProductIds as w,fetchFilteredProducts as h,isShogunOfferResolved as b,getShogunSharedOffer as L,fetchPegaProducts as C}from"./Product.utils.js";import y from"js-cookie";import{LINETABLE as T}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as P}from"../../models/Analytics/items.js";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as S,VOUCHER as O,VCTYPE as I,NEW as k}from"../../utils/constants.js";import{AppContext as E,actionTypes as j}from"./StaticLineTableStore/StaticLineTableProvider.js";const B=({content:B,setGenericErrorModalDetails:x,metadata:A,tabIndex:F,constants:D,loginSuccess:N,activeIndex:U,mainContent:V,address:$,eligibleBundle:R,linecheckSuccessCallBack:J,selectedOption:q,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,lineCheckCallBack:G,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,ubRatePlanObj:Y,lineCheckOnClear:Z,pegaIntegration:ee,pegaCustomerInterest:le,useStoryblokOrder:oe,isFetching:ne,setIsFetching:ie,isProdEnv:te,toggleContent:de,localCacheDuration:re,apiCache:ue})=>{var se,ve;const ae=r(),ce=null==B?void 0:B._uid,[pe,ge]=l(),[me,fe]=l(),[we,he]=l(),be=null===(se=null==g?void 0:g.getInstance())||void 0===se?void 0:se.getBaseUrl();let Le=void 0!==typeof window&&y.get("sunriseAuth");Le=Le&&JSON.parse(Le);const Ce=o(E),ye="MOBILE"===(null==B?void 0:B.pageType),Te=(()=>{var e;if("undefined"==typeof window)return null;const l=new URLSearchParams(null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.search);return null==l?void 0:l.get("gloxtoken")})(),Pe=Boolean(null==V?void 0:V.isRewardsFlow)&&Boolean(Te),Se=void 0!==ue&&ue,[Oe,Ie]=l(()=>{var e;if(!de||!de.enableLoggedInPrice)return null;const l=localStorage.getItem("userLoggedPricesToggle");if("true"===l)return!0;if("false"===l)return!1;const o=(null===(e=null==de?void 0:de.customers)||void 0===e?void 0:e.toLowerCase())===k;return!(!o||!(null==de?void 0:de.newUserToggleEnabled))||(!(o||!(null==de?void 0:de.loggedUserToggleEnabled))||null)}),[ke,Ee]=l(!0),je=n(null),Be=n(""),xe=n({});i(()=>(setTimeout(()=>{Ae()},100),null===window||void 0===window||window.addEventListener("resize",Ae),null===window||void 0===window||window.addEventListener("load",Ae),()=>{window.removeEventListener("resize",Ae),window.removeEventListener("load",Ae)}),[null==B?void 0:B.productList,me,we]);const Ae=()=>{var e;if(Q){const e=[null==H?void 0:H.TV,null==H?void 0:H.Netflix,null==H?void 0:H.gigaSpeed].filter(Boolean).length,l=null==H?void 0:H.TV,o=null==H?void 0:H.Netflix,n=null==H?void 0:H.gigaSpeed;u(`productCardV3${l&&o&&n?3:l&&o||e>=2&&(!n||l||o)?2:1===e||2===e?1:0}`,null==me?void 0:me.length)}else u(`productCardV3${U}`,null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e.length)},Fe=sessionStorage.getItem(S);Fe&&JSON.parse(Fe);const De=null==B?void 0:B.enableFPB;i(()=>{var e,l,o,n,i,t,d,r,u;if(pe&&(null===(e=Object.keys(pe))||void 0===e?void 0:e.length)>0&&P("view",pe[ce],"",T,null,ee),ee&&pe&&(null===(l=Object.keys(pe))||void 0===l?void 0:l.length)>0){const e=(null===(o=null==B?void 0:B.productList)||void 0===o?void 0:o.length)&&(null==B?void 0:B.productList)||new Array((null===(n=null==B?void 0:B.productList)||void 0===n?void 0:n.length)||3).fill(1),l=null===(i=pe[ce])||void 0===i?void 0:i.map(e=>null==e?void 0:e.id),t=e.filter(e=>null==l?void 0:l.includes(e.products[0].reference.name));oe?t.sort((l,o)=>e.indexOf(l)-e.indexOf(o)):t.sort((e,o)=>l.indexOf(e.products[0].reference.name)-l.indexOf(o.products[0].reference.name)),he(t),ie(!1)}if(Pe&&pe&&(null===(t=Object.keys(pe))||void 0===t?void 0:t.length)>0){const e=(null!==(d=pe[ce])&&void 0!==d?d:[]).map(e=>null==e?void 0:e.id),l=(null===(r=null==B?void 0:B.productList)||void 0===r?void 0:r.length)&&(null==B?void 0:B.productList)||new Array((null===(u=null==B?void 0:B.productList)||void 0===u?void 0:u.length)||3).fill(1);he(m(l,e)),ie(!1)}},[pe]),i(()=>{var e;pe&&(null===(e=Object.keys(pe))||void 0===e?void 0:e.length)>0&&!ye&&(null==R?void 0:R.eligibleBundle)&&P("available",pe[ce],"",T,null==R?void 0:R.eligibleBundle,ee)},[R,pe]),i(()=>{if("undefined"==typeof window)return;const e=e=>{Ie(e.detail.value)};return window.addEventListener("user-logged-prices-toggle-all",e),()=>{window.removeEventListener("user-logged-prices-toggle-all",e)}},[]);const Ne=(e=!1)=>{var l,o;const n=[];let i={atlOffers:[]},t=null==V?void 0:V.enableExistingCustomer,d=null==V?void 0:V.subscriptionType,r="4P"==(null==V?void 0:V.pageType);const u=null==B?void 0:B.isReturnPromo,s=(null==z?void 0:z.length)>0,v=null==z?void 0:z.join(",");d=t||Oe?d:v,t=(t||s)&&Le||Oe||!de,(null==Le?void 0:Le.siteId)&&(null==de?void 0:de.enableLoggedInPrice)&&de.customers!==k&&(0==Oe?d="none":!0===Oe&&(d=void 0)),(null==de?void 0:de.enableLoggedInPrice)&&!1===Oe&&(t=!1);const a=!!(null==B?void 0:B.enableP2P),c=`tab-${F}`;if(e||!((e,l)=>{const o=xe.current[e];return!!o&&(0!==l&&(void 0===l||(l<0||(Date.now()-o.timestamp)/6e4<l)))})(c,null!=re?re:1)){if(Pe){const e=Te;if(e)return b(e)||ie(!0),void L(e,ce,be).then(e=>{xe.current[c]={results:e,timestamp:Date.now()},ge({[ce]:e}),x({showPopup:!1})}).catch(()=>{var e;x({showPopup:!0,content:null===(e=null==V?void 0:V.telesalesBlok)||void 0===e?void 0:e[0]})}).finally(()=>{ie(!1)})}if(ie(!0),ee)i=C(B,le,"LineItem");else{w(null==B?void 0:B.productList,n,r,null==V?void 0:V.optionId,Oe);const e=JSON.stringify(n.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})));Be.current=e}if(e||F===U&&!(null==pe?void 0:pe[ce])||F===U&&N||z)try{null===(l=p(ee?i:n,null==B?void 0:B._uid,be,t,d,u,a,ee,Se,De))||void 0===l||l.then(e=>{var l;const o=null!==(l=null==e?void 0:e[ce])&&void 0!==l?l:[];xe.current[c]={results:o,timestamp:Date.now()},ge(e),x({showPopup:!1})}).catch(e=>{var l;x({showPopup:!0,content:null===(l=null==V?void 0:V.telesalesBlok)||void 0===l?void 0:l[0]})}).finally(()=>{ie(!1)})}catch(e){x({showPopup:!0,content:null===(o=null==V?void 0:V.telesalesBlok)||void 0===o?void 0:o[0]})}else pe&&ie(!1)}else ge({[ce]:xe.current[c].results})};i(()=>{je.current&&(clearTimeout(je.current),je.current=null);if(!(U===F||null==U))return;const e=((null==B?void 0:B.productList)||[]).reduce((e,l)=>{var o;const n=null===(o=null==l?void 0:l.timer)||void 0===o?void 0:o[0];if(!(null==n?void 0:n.enableCounter)||!(null==n?void 0:n.startTime)||!(null==n?void 0:n.endTime))return e;const i=f(n.startTime,n.endTime);return i<=0?e:0===e||i<e?i:e},0);return e<=0?void 0:(je.current=setTimeout(()=>{const e=[];w(null==B?void 0:B.productList,e,"4P"==(null==V?void 0:V.pageType),null==V?void 0:V.optionId,Oe);if(JSON.stringify(e.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})))===Be.current)return;const l=`tab-${F}`;delete xe.current[l],ge(e=>e&&"object"==typeof e?Object.assign(Object.assign({},e),{[ce]:null}):e),Ne(!0)},e),()=>{je.current&&(clearTimeout(je.current),je.current=null)})},[U,F,null==B?void 0:B.productList,ce,pe]),i(()=>{Ee(!0),U!=F&&null!=U||(void 0!==Oe&&(null==pe?void 0:pe[ce])&&(pe[ce]=null),Ne(),Ee(!1))},[U]),i(()=>{if((null==Le?void 0:Le.siteId)&&N){const e=`tab-${F}`;delete xe.current[e],Ne(),sessionStorage.removeItem("vasPopUp")}},[N]),i(()=>{if(null!=q&&null!=z){const e=`tab-${F}`;delete xe.current[e],Ne()}},[q,z]),i(()=>{if(void 0===Oe||ke)return;const e=`tab-${F}`;delete xe.current[e],(null==pe?void 0:pe[ce])&&(pe[ce]=null),Ne()},[Oe]),i(()=>{var e,l,o,n,i,t,d,r,u,v,p,g,m,f,w,h,b,L,C;const y=window&&new URLSearchParams(null===window||void 0===window?void 0:window.location.search),T=null==y?void 0:y.get(O);if(T&&(null===(r=null===(d=null===(t=null===(i=null===(n=null===(o=null===(l=null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e[0])||void 0===l?void 0:l.products)||void 0===o?void 0:o[0])||void 0===n?void 0:n.reference)||void 0===i?void 0:i.content)||void 0===t?void 0:t.product)||void 0===d?void 0:d[0])||void 0===r?void 0:r.productId))try{a(null===(h=null===(w=null===(f=null===(m=null===(g=null===(p=null===(v=null===(u=null==B?void 0:B.productList)||void 0===u?void 0:u[0])||void 0===v?void 0:v.products)||void 0===p?void 0:p[0])||void 0===g?void 0:g.reference)||void 0===m?void 0:m.content)||void 0===f?void 0:f.product)||void 0===w?void 0:w[0])||void 0===h?void 0:h.productId,T).then(e=>{e&&s(I,{voucher:T,voucherType:"qoqa"})})}catch(e){}if(Ce&&F===U){const{store:e,dispatch:l}=Ce;let o=!1,n=!1;null===(b=(null==B?void 0:B.productList)||[])||void 0===b||b.forEach(e=>{(null==e?void 0:e.enableTVStreamingOptionsPopUp)&&(n=!0),(null==e?void 0:e.enableTVStreamingOptions)&&(o=!0)}),0===(null===(L=null==e?void 0:e.ottOptionsApi)||void 0===L?void 0:L.length)&&(o||n)&&(null===(C=c())||void 0===C||C.then(e=>{(null==e?void 0:e.length)>0&&l({type:null==j?void 0:j.ottOptionsApi,payload:e})}).catch(()=>{}))}},[]);let Ue=[];return i(()=>{Q&&(Ue=h(null==B?void 0:B.productList,H),fe(Ue))},[H]),i(()=>{(null==W?void 0:W.isDeviceFlow)&&pe&&(null==W||W.prodcardcallbackOfferApiData(pe))},[pe]),i(()=>{var e,l;Q&&!(null==W?void 0:W.isDeviceFlow)?he(me):he((null===(e=null==B?void 0:B.productList)||void 0===e?void 0:e.length)&&(null==B?void 0:B.productList)||new Array((null===(l=null==B?void 0:B.productList)||void 0===l?void 0:l.length)||3).fill(1))},[me]),e.createElement("div",null,e.createElement("div",{className:t.titlecontainer},(null==B?void 0:B.title)&&e.createElement("div",{className:t.title},null==B?void 0:B.title),(null==B?void 0:B.subTitle)&&e.createElement("div",{className:t.description},null==B?void 0:B.subTitle)),e.createElement("div",{className:"linetableV3"},ae&&we&&(null==we?void 0:we.length)>0&&e.createElement(d,{carouselIndex:0,key:U,arrow:null==V?void 0:V.enableMobileArrows},we&&(null==we?void 0:we.length)>0&&(null===(ve=we||[])||void 0===ve?void 0:ve.map((l,o)=>{var n;return e.createElement("div",{id:`productCardV3${U}`,style:{textAlign:"center"},key:o},e.createElement(v,{content:ee&&ne&&!pe?{}:l,offeringData:pe,uniqueId:ce,storyContent:B,metadata:A,tabIndex:F,cardsLength:null===(n=null==B?void 0:B.productList)||void 0===n?void 0:n.length,indexKey:o,constants:D,mainContent:V,linecheckSuccessCallBack:J,lineCheckCallBack:G,address:$,eligibleBundle:R,selectedOption:q,fetchOfferData:Ne,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,enableP2P:null==B?void 0:B.enableP2P,loginSuccess:N,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,selectedRP:null==Y?void 0:Y.selectedRP,continueCart:null==Y?void 0:Y.continueCart,lineCheckOnClear:Z,pegaIntegration:ee,isProdEnv:te,deviceUltimateBundle:De,toggleContent:de,pricesToggleState:Oe,isShogunFlow:Pe,shogunToken:Te}))})))))};export{B as default};
1
+ import e,{useState as l,useContext as o,useRef as n,useEffect as i}from"react";import t from"./StaticLineTable.module.scss.js";import d from"../sharedCarousel/CarouselComponent.js";import{viewport as r,getElementMaximumHeight as u,setLocalStoreWithExpiry as s}from"../../utils/utils.js";import v from"./StaticProduct.js";import{getVocherPromotion as a,fetchOttServiceOptions as c,fetchOfferingDataLineTableV2 as p}from"../../services/LineTableService.js";import{LineTableBasicPropConfig as g}from"../../services/LineTableBasicPropConfig.js";import{filterShogunProducts as m,getTimeUntilNextTimerEvent as f,fetchStaticProductIds as w,fetchFilteredProducts as h,isShogunOfferResolved as b,getShogunSharedOffer as L,fetchPegaProducts as C}from"./Product.utils.js";import y from"js-cookie";import{LINETABLE as T}from"../../Analytics/AnalyticsConstants.js";import{trackEligibleItem as P}from"../../models/Analytics/items.js";import{ONE_ECOMMERCE_HARDWARE_SUMMARY as S,VOUCHER as O,VCTYPE as I,NEW as k}from"../../utils/constants.js";import{AppContext as E,actionTypes as B}from"./StaticLineTableStore/StaticLineTableProvider.js";const j=({content:j,setGenericErrorModalDetails:x,metadata:A,tabIndex:F,constants:D,loginSuccess:N,activeIndex:U,mainContent:V,address:$,eligibleBundle:R,linecheckSuccessCallBack:J,selectedOption:q,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,lineCheckCallBack:G,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,ubRatePlanObj:Y,lineCheckOnClear:Z,pegaIntegration:ee,pegaCustomerInterest:le,useStoryblokOrder:oe,isFetching:ne,setIsFetching:ie,isProdEnv:te,toggleContent:de,localCacheDuration:re,apiCache:ue})=>{var se,ve;const ae=r(),ce=null==j?void 0:j._uid,[pe,ge]=l(),[me,fe]=l(),[we,he]=l(),be=null===(se=null==g?void 0:g.getInstance())||void 0===se?void 0:se.getBaseUrl();let Le=void 0!==typeof window&&y.get("sunriseAuth");Le=Le&&JSON.parse(Le);const Ce=o(E),ye="MOBILE"===(null==j?void 0:j.pageType),Te=(()=>{var e;if("undefined"==typeof window)return null;const l=new URLSearchParams(null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.search);return null==l?void 0:l.get("gloxtoken")})(),Pe=Boolean(null==V?void 0:V.isRewardsFlow)&&Boolean(Te),Se=void 0!==ue&&ue,[Oe,Ie]=l(()=>{var e;if(!de||!de.enableLoggedInPrice)return null;const l=localStorage.getItem("userLoggedPricesToggle");if("true"===l)return!0;if("false"===l)return!1;const o=(null===(e=null==de?void 0:de.customers)||void 0===e?void 0:e.toLowerCase())===k;return!(!o||!(null==de?void 0:de.newUserToggleEnabled))||(!(o||!(null==de?void 0:de.loggedUserToggleEnabled))||null)}),[ke,Ee]=l(!0),Be=n(null),je=n(""),xe=n({});i(()=>(setTimeout(()=>{Ae()},100),null===window||void 0===window||window.addEventListener("resize",Ae),null===window||void 0===window||window.addEventListener("load",Ae),()=>{window.removeEventListener("resize",Ae),window.removeEventListener("load",Ae)}),[null==j?void 0:j.productList,me,we]);const Ae=()=>{var e;if(Q){const e=[null==H?void 0:H.TV,null==H?void 0:H.Netflix,null==H?void 0:H.gigaSpeed].filter(Boolean).length,l=null==H?void 0:H.TV,o=null==H?void 0:H.Netflix,n=null==H?void 0:H.gigaSpeed;u(`productCardV3${l&&o&&n?3:l&&o||e>=2&&(!n||l||o)?2:1===e||2===e?1:0}`,null==me?void 0:me.length)}else u(`productCardV3${U}`,null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e.length)},Fe=sessionStorage.getItem(S);Fe&&JSON.parse(Fe);const De=null==j?void 0:j.enableFPB;i(()=>{var e,l,o,n,i,t,d,r,u;if(pe&&(null===(e=Object.keys(pe))||void 0===e?void 0:e.length)>0&&P("view",pe[ce],"",T,null,ee),ee&&pe&&(null===(l=Object.keys(pe))||void 0===l?void 0:l.length)>0){const e=(null===(o=null==j?void 0:j.productList)||void 0===o?void 0:o.length)&&(null==j?void 0:j.productList)||new Array((null===(n=null==j?void 0:j.productList)||void 0===n?void 0:n.length)||3).fill(1),l=null===(i=pe[ce])||void 0===i?void 0:i.map(e=>null==e?void 0:e.id),t=e.filter(e=>null==l?void 0:l.includes(e.products[0].reference.name));oe?t.sort((l,o)=>e.indexOf(l)-e.indexOf(o)):t.sort((e,o)=>l.indexOf(e.products[0].reference.name)-l.indexOf(o.products[0].reference.name)),he(t),ie(!1)}if(Pe&&pe&&(null===(t=Object.keys(pe))||void 0===t?void 0:t.length)>0){const e=(null!==(d=pe[ce])&&void 0!==d?d:[]).map(e=>null==e?void 0:e.id),l=(null===(r=null==j?void 0:j.productList)||void 0===r?void 0:r.length)&&(null==j?void 0:j.productList)||new Array((null===(u=null==j?void 0:j.productList)||void 0===u?void 0:u.length)||3).fill(1);he(m(l,e)),ie(!1)}},[pe]),i(()=>{var e;pe&&(null===(e=Object.keys(pe))||void 0===e?void 0:e.length)>0&&!ye&&(null==R?void 0:R.eligibleBundle)&&P("available",pe[ce],"",T,null==R?void 0:R.eligibleBundle,ee)},[R,pe]),i(()=>{if("undefined"==typeof window)return;const e=e=>{Ie(e.detail.value)};return window.addEventListener("user-logged-prices-toggle-all",e),()=>{window.removeEventListener("user-logged-prices-toggle-all",e)}},[]);const Ne=(e=!1)=>{var l,o;const n=[];let i={atlOffers:[]},t=null==V?void 0:V.enableExistingCustomer,d=null==V?void 0:V.subscriptionType,r="4P"==(null==V?void 0:V.pageType);const u=null==j?void 0:j.isReturnPromo,s=(null==z?void 0:z.length)>0,v=null==z?void 0:z.join(",");d=t||Oe?d:v,t=Boolean((t||s)&&Le||Oe),(null==Le?void 0:Le.siteId)&&(null==de?void 0:de.enableLoggedInPrice)&&de.customers!==k&&(0==Oe?d="none":!0===Oe&&(d=void 0)),(null==de?void 0:de.enableLoggedInPrice)&&!1===Oe&&(t=!1);const a=!!(null==j?void 0:j.enableP2P),c=`tab-${F}`;if(e||!((e,l)=>{const o=xe.current[e];return!!o&&(0!==l&&(void 0===l||(l<0||(Date.now()-o.timestamp)/6e4<l)))})(c,null!=re?re:1)){if(Pe){const e=Te;if(e)return b(e)||ie(!0),void L(e,ce,be).then(e=>{xe.current[c]={results:e,timestamp:Date.now()},ge({[ce]:e}),x({showPopup:!1})}).catch(()=>{var e;x({showPopup:!0,content:null===(e=null==V?void 0:V.telesalesBlok)||void 0===e?void 0:e[0]})}).finally(()=>{ie(!1)})}if(ie(!0),ee)i=C(j,le,"LineItem");else{w(null==j?void 0:j.productList,n,r,null==V?void 0:V.optionId,Oe);const e=JSON.stringify(n.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})));je.current=e}if(e||F===U&&!(null==pe?void 0:pe[ce])||F===U&&N||z)try{null===(l=p(ee?i:n,null==j?void 0:j._uid,be,t,d,u,a,ee,Se,De))||void 0===l||l.then(e=>{var l;const o=null!==(l=null==e?void 0:e[ce])&&void 0!==l?l:[];xe.current[c]={results:o,timestamp:Date.now()},ge(e),x({showPopup:!1})}).catch(e=>{var l;x({showPopup:!0,content:null===(l=null==V?void 0:V.telesalesBlok)||void 0===l?void 0:l[0]})}).finally(()=>{ie(!1)})}catch(e){x({showPopup:!0,content:null===(o=null==V?void 0:V.telesalesBlok)||void 0===o?void 0:o[0]})}else pe&&ie(!1)}else ge({[ce]:xe.current[c].results})};i(()=>{Be.current&&(clearTimeout(Be.current),Be.current=null);if(!(U===F||null==U))return;const e=((null==j?void 0:j.productList)||[]).reduce((e,l)=>{var o;const n=null===(o=null==l?void 0:l.timer)||void 0===o?void 0:o[0];if(!(null==n?void 0:n.enableCounter)||!(null==n?void 0:n.startTime)||!(null==n?void 0:n.endTime))return e;const i=f(n.startTime,n.endTime);return i<=0?e:0===e||i<e?i:e},0);return e<=0?void 0:(Be.current=setTimeout(()=>{const e=[];w(null==j?void 0:j.productList,e,"4P"==(null==V?void 0:V.pageType),null==V?void 0:V.optionId,Oe);if(JSON.stringify(e.map(e=>({id:null==e?void 0:e.id,promoIds:(null==e?void 0:e.promoIds)||[]})))===je.current)return;const l=`tab-${F}`;delete xe.current[l],ge(e=>e&&"object"==typeof e?Object.assign(Object.assign({},e),{[ce]:null}):e),Ne(!0)},e),()=>{Be.current&&(clearTimeout(Be.current),Be.current=null)})},[U,F,null==j?void 0:j.productList,ce,pe]),i(()=>{Ee(!0),U!=F&&null!=U||(void 0!==Oe&&(null==pe?void 0:pe[ce])&&(pe[ce]=null),Ne(),Ee(!1))},[U]),i(()=>{if((null==Le?void 0:Le.siteId)&&N){const e=`tab-${F}`;delete xe.current[e],Ne(),sessionStorage.removeItem("vasPopUp")}},[N]),i(()=>{if(null!=q&&null!=z){const e=`tab-${F}`;delete xe.current[e],Ne()}},[q,z]),i(()=>{if(void 0===Oe||ke)return;const e=`tab-${F}`;delete xe.current[e],(null==pe?void 0:pe[ce])&&(pe[ce]=null),Ne()},[Oe]),i(()=>{var e,l,o,n,i,t,d,r,u,v,p,g,m,f,w,h,b,L,C;const y=window&&new URLSearchParams(null===window||void 0===window?void 0:window.location.search),T=null==y?void 0:y.get(O);if(T&&(null===(r=null===(d=null===(t=null===(i=null===(n=null===(o=null===(l=null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e[0])||void 0===l?void 0:l.products)||void 0===o?void 0:o[0])||void 0===n?void 0:n.reference)||void 0===i?void 0:i.content)||void 0===t?void 0:t.product)||void 0===d?void 0:d[0])||void 0===r?void 0:r.productId))try{a(null===(h=null===(w=null===(f=null===(m=null===(g=null===(p=null===(v=null===(u=null==j?void 0:j.productList)||void 0===u?void 0:u[0])||void 0===v?void 0:v.products)||void 0===p?void 0:p[0])||void 0===g?void 0:g.reference)||void 0===m?void 0:m.content)||void 0===f?void 0:f.product)||void 0===w?void 0:w[0])||void 0===h?void 0:h.productId,T).then(e=>{e&&s(I,{voucher:T,voucherType:"qoqa"})})}catch(e){}if(Ce&&F===U){const{store:e,dispatch:l}=Ce;let o=!1,n=!1;null===(b=(null==j?void 0:j.productList)||[])||void 0===b||b.forEach(e=>{(null==e?void 0:e.enableTVStreamingOptionsPopUp)&&(n=!0),(null==e?void 0:e.enableTVStreamingOptions)&&(o=!0)}),0===(null===(L=null==e?void 0:e.ottOptionsApi)||void 0===L?void 0:L.length)&&(o||n)&&(null===(C=c())||void 0===C||C.then(e=>{(null==e?void 0:e.length)>0&&l({type:null==B?void 0:B.ottOptionsApi,payload:e})}).catch(()=>{}))}},[]);let Ue=[];return i(()=>{Q&&(Ue=h(null==j?void 0:j.productList,H),fe(Ue))},[H]),i(()=>{(null==W?void 0:W.isDeviceFlow)&&pe&&(null==W||W.prodcardcallbackOfferApiData(pe))},[pe]),i(()=>{var e,l;Q&&!(null==W?void 0:W.isDeviceFlow)?he(me):he((null===(e=null==j?void 0:j.productList)||void 0===e?void 0:e.length)&&(null==j?void 0:j.productList)||new Array((null===(l=null==j?void 0:j.productList)||void 0===l?void 0:l.length)||3).fill(1))},[me]),e.createElement("div",null,e.createElement("div",{className:t.titlecontainer},(null==j?void 0:j.title)&&e.createElement("div",{className:t.title},null==j?void 0:j.title),(null==j?void 0:j.subTitle)&&e.createElement("div",{className:t.description},null==j?void 0:j.subTitle)),e.createElement("div",{className:"linetableV3"},ae&&we&&(null==we?void 0:we.length)>0&&e.createElement(d,{carouselIndex:0,key:U,arrow:null==V?void 0:V.enableMobileArrows},we&&(null==we?void 0:we.length)>0&&(null===(ve=we||[])||void 0===ve?void 0:ve.map((l,o)=>{var n;return e.createElement("div",{id:`productCardV3${U}`,style:{textAlign:"center"},key:o},e.createElement(v,{content:ee&&ne&&!pe?{}:l,offeringData:pe,uniqueId:ce,storyContent:j,metadata:A,tabIndex:F,cardsLength:null===(n=null==j?void 0:j.productList)||void 0===n?void 0:n.length,indexKey:o,constants:D,mainContent:V,linecheckSuccessCallBack:J,lineCheckCallBack:G,address:$,eligibleBundle:R,selectedOption:q,fetchOfferData:Ne,basicConfigUrl:M,selectedExistingOption:z,setLoginSuccess:_,enableP2P:null==j?void 0:j.enableP2P,loginSuccess:N,setToggleState:K,toggleState:H,noTabs:Q,deviceFlow:W,deviceFlowCallBack:X,selectedRP:null==Y?void 0:Y.selectedRP,continueCart:null==Y?void 0:Y.continueCart,lineCheckOnClear:Z,pegaIntegration:ee,isProdEnv:te,deviceUltimateBundle:De,toggleContent:de,pricesToggleState:Oe,isShogunFlow:Pe,shogunToken:Te}))})))))};export{j as default};
2
2
  //# sourceMappingURL=StaticProductContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticProductContainer.js","sources":["../../../../src/components/StaticLineTable/StaticProductContainer.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\nimport Styles from './StaticLineTable.module.scss';\nimport CarouselComponent from '../sharedCarousel/CarouselComponent';\nimport {\n getElementMaximumHeight,\n getNoteValues,\n setLocalStoreWithExpiry,\n viewport\n} from '../../utils/utils';\nimport StaticProduct from './StaticProduct';\nimport { PegaProductRequestBase, ProductRequestBase } from '../lineTable/lineTable.types';\nimport {\n fetchOfferingDataLineTableV2,\n fetchOttServiceOptions,\n getVocherPromotion\n} from '../../services/LineTableService';\nimport { LineTableBasicPropConfig } from '../../services/LineTableBasicPropConfig';\nimport {\n fetchFilteredProducts,\n fetchPegaProducts,\n fetchStaticProductIds,\n filterShogunProducts,\n getShogunSharedOffer,\n getTimeUntilNextTimerEvent,\n isShogunOfferResolved\n} from './Product.utils';\nimport { StaticProductContainerSchema, StaticProductSchema } from './StaticProductDatatypes';\nimport Cookies from 'js-cookie';\nimport { LINETABLE } from '../../Analytics/AnalyticsConstants';\nimport { trackEligibleItem } from '../../models/Analytics/items';\nimport {\n NEW,\n ONE_ECOMMERCE_HARDWARE_SUMMARY,\n ULTIMATEBUNDLE,\n VCTYPE,\n VOUCHER\n} from '../../utils/constants';\nimport { actionTypes, AppContext } from './StaticLineTableStore/StaticLineTableProvider';\n\n/**\n * Query-string parameter name used to trigger the Shogun/rewards (loyalty) flow.\n * The value is passed to the real offer API.\n */\nconst SHOGUN_QUERY_PARAM = 'gloxtoken';\n\n/**\n * Reads the Shogun/rewards token from the URL query-string. Returns null when\n * running outside the browser or when the parameter is not present.\n */\nconst getShogunTokenFromUrl = (): string | null => {\n if (typeof window === 'undefined') return null;\n const params = new URLSearchParams(window?.location?.search);\n return params?.get(SHOGUN_QUERY_PARAM);\n};\n\nconst StaticProductContainer: FC<StaticProductContainerSchema> = ({\n content,\n setGenericErrorModalDetails,\n metadata,\n tabIndex,\n constants,\n loginSuccess,\n activeIndex,\n mainContent,\n address,\n eligibleBundle,\n linecheckSuccessCallBack,\n selectedOption,\n basicConfigUrl,\n selectedExistingOption,\n setLoginSuccess,\n lineCheckCallBack,\n setToggleState,\n toggleState,\n noTabs,\n deviceFlow,\n deviceFlowCallBack,\n ubRatePlanObj,\n lineCheckOnClear,\n pegaIntegration,\n pegaCustomerInterest,\n useStoryblokOrder,\n isFetching,\n setIsFetching,\n isProdEnv,\n //US_31295\n toggleContent,\n localCacheDuration,\n apiCache\n}) => {\n const viewPort = viewport();\n const uniqueId: keyof typeof offeringData = content?._uid;\n const [offeringData, setOfferingData] = useState<any>();\n const [filteredProducts, setFilteredProducts] = useState<any>();\n const [newDisplayContent, setNewDisplayContent] = useState<any>();\n const offerEndpoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n AuthData = AuthData && JSON.parse(AuthData);\n const storeContext = useContext(AppContext);\n const isMobileFlow = content?.pageType === 'MOBILE';\n /**\n * Loyalty (Shogun) flow is active only when BOTH conditions are met:\n * 1. The Storyblok parent-level attribute `isRewardsFlow` is enabled.\n * 2. The URL query-string carries a non-empty `gloxtoken` parameter.\n * Any other combination falls back to the standard offer flow.\n */\n const shogunTokenFromUrl = getShogunTokenFromUrl();\n const isShogunFlow = Boolean(mainContent?.isRewardsFlow) && Boolean(shogunTokenFromUrl);\n // Default apiCache to false if not explicitly set\n const resolvedApiCache = apiCache !== undefined ? apiCache : false;\n //US_31295\n const getPriceToggle = () => {\n if (!toggleContent || !toggleContent.enableLoggedInPrice) return null;\n const stored = localStorage.getItem('userLoggedPricesToggle');\n if (stored === 'true') return true;\n if (stored === 'false') return false;\n const isNewCustomer = toggleContent?.customers?.toLowerCase() === NEW;\n if (isNewCustomer && toggleContent?.newUserToggleEnabled) {\n return true;\n }\n if (!isNewCustomer && toggleContent?.loggedUserToggleEnabled) {\n return true;\n }\n return null;\n };\n const [pricesToggleState, setPricesToggleState] = useState<any>(getPriceToggle);\n const [runOnLoad, setRunOnLoad] = useState<boolean>(true);\n const timerRefreshTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const promoPayloadSignatureRef = useRef<string>('');\n const offerDataCacheRef = useRef<Record<string, { results: any[]; timestamp: number }>>({});\n\n useEffect(() => {\n setTimeout(() => {\n findHeight();\n }, 100);\n window?.addEventListener('resize', findHeight);\n window?.addEventListener('load', findHeight);\n return () => {\n window.removeEventListener('resize', findHeight);\n window.removeEventListener('load', findHeight);\n };\n }, [content?.productList, filteredProducts, newDisplayContent]);\n\n const findHeight = () => {\n if (noTabs) {\n const activeToggles = [toggleState?.TV, toggleState?.Netflix, toggleState?.gigaSpeed].filter(\n Boolean\n ).length;\n const hasTV = toggleState?.TV;\n const hasNetflix = toggleState?.Netflix;\n const hasGigaSpeed = toggleState?.gigaSpeed;\n\n const tabbIndex =\n hasTV && hasNetflix && hasGigaSpeed\n ? 3\n : (hasTV && hasNetflix) ||\n (activeToggles >= 2 && !(hasGigaSpeed && !hasTV && !hasNetflix))\n ? 2\n : activeToggles === 1 || activeToggles === 2\n ? 1\n : 0;\n\n getElementMaximumHeight('productCardV3' + `${tabbIndex}`, filteredProducts?.length);\n } else {\n getElementMaximumHeight('productCardV3' + `${activeIndex}`, content?.productList?.length);\n }\n };\n\n const hardwareSessionObj = sessionStorage.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\n const sessionData = hardwareSessionObj && JSON.parse(hardwareSessionObj);\n const deviceUltimateBundle = content?.enableFPB;\n\n useEffect(() => {\n if (offeringData && Object.keys(offeringData)?.length > 0) {\n trackEligibleItem('view', offeringData[uniqueId], '', LINETABLE, null, pegaIntegration);\n }\n //filter products by pega response\n if (pegaIntegration && offeringData && Object.keys(offeringData)?.length > 0) {\n const availableProducts =\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1);\n\n const pegaProductsIds = offeringData[uniqueId]?.map((item: any) => item?.id);\n\n const onlyPegaProducts = availableProducts.filter((product: any) =>\n pegaProductsIds?.includes(product.products[0].reference.name)\n );\n\n //sort products by storyblok vs pega\n if (useStoryblokOrder) {\n onlyPegaProducts.sort((a: any, b: any) => {\n return availableProducts.indexOf(a) - availableProducts.indexOf(b);\n });\n } else {\n onlyPegaProducts.sort((a: any, b: any) => {\n return (\n pegaProductsIds.indexOf(a.products[0].reference.name) -\n pegaProductsIds.indexOf(b.products[0].reference.name)\n );\n });\n }\n\n setNewDisplayContent(onlyPegaProducts);\n setIsFetching(false);\n }\n\n // Shogun flow: filter storyblok product list to only the products returned by the\n // Shogun offer API (matched by productId). Logic lives in filterShogunProducts (Product.utils).\n if (isShogunFlow && offeringData && Object.keys(offeringData)?.length > 0) {\n const shogunProductIds = (offeringData[uniqueId] ?? []).map((item: any) => item?.id);\n const availableProducts =\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1);\n\n setNewDisplayContent(filterShogunProducts(availableProducts, shogunProductIds));\n setIsFetching(false);\n }\n }, [offeringData]);\n\n useEffect(() => {\n if (\n offeringData &&\n Object.keys(offeringData)?.length > 0 &&\n !isMobileFlow &&\n eligibleBundle?.eligibleBundle\n ) {\n trackEligibleItem(\n 'available',\n offeringData[uniqueId],\n '',\n LINETABLE,\n eligibleBundle?.eligibleBundle,\n pegaIntegration\n );\n }\n }, [eligibleBundle, offeringData]);\n\n //US_31295\n useEffect(() => {\n if (typeof window === 'undefined') return;\n // window.dispatchEvent(\n // new CustomEvent('user-logged-prices-toggle-all', {\n // detail: {\n // auth: AuthData?.siteId ? true : false },\n // })\n // );\n const handleGlobalToggle = (e: any) => {\n setPricesToggleState(e.detail.value);\n };\n window.addEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\n return () => {\n window.removeEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\n };\n }, []);\n\n /**\n * Check if cached offer data is still valid based on localCacheDuration\n */\n const isCacheValid = (cacheKey: string, durationMinutes: number | undefined): boolean => {\n const cached = offerDataCacheRef.current[cacheKey];\n if (!cached) return false;\n\n // A duration of 0 explicitly disables cache reads and always forces a fresh request.\n if (durationMinutes === 0) return false;\n\n // If no duration is specified, cache never expires (until manually cleared).\n if (durationMinutes === undefined) return true;\n\n if (durationMinutes < 0) return true;\n\n const elapsedMinutes = (Date.now() - cached.timestamp) / (1000 * 60);\n return elapsedMinutes < durationMinutes;\n };\n\n /**\n * fetching offer response\n */\n const fetchOfferData = (forceRefresh: boolean = false) => {\n const ProductIds: ProductRequestBase[] = [];\n let pegaPayload: PegaProductRequestBase = { atlOffers: [] };\n // for getting product offer api call request and promo id list\n //existingCustomerBenefit without login\n let existingCustomer = mainContent?.enableExistingCustomer;\n let subscriptionType = mainContent?.subscriptionType;\n let bundle4PProduct = mainContent?.pageType == '4P' ? true : false;\n const enableReturnPromo = content?.isReturnPromo;\n const benefitExistingCustomer = selectedExistingOption?.length > 0 ? true : false;\n const benefitSubscriptionType = selectedExistingOption?.join(',');\n //US_31295\n subscriptionType =\n existingCustomer || pricesToggleState ? subscriptionType : benefitSubscriptionType;\n existingCustomer =\n ((existingCustomer || benefitExistingCustomer) && AuthData) ||\n pricesToggleState ||\n !toggleContent;\n\n if (AuthData?.siteId && toggleContent?.enableLoggedInPrice && toggleContent.customers !== NEW) {\n if (pricesToggleState == false) {\n subscriptionType = 'none';\n } else if (pricesToggleState === true) {\n subscriptionType = undefined;\n }\n }\n\n if (toggleContent?.enableLoggedInPrice && pricesToggleState === false) {\n existingCustomer = false;\n }\n const P2PEnabled = content?.enableP2P ? true : false;\n const cacheDuration = localCacheDuration ?? 1;\n const cacheKey = `tab-${tabIndex}`;\n\n // Serve from cache without triggering loading state\n if (!forceRefresh && isCacheValid(cacheKey, cacheDuration)) {\n setOfferingData({ [uniqueId]: offerDataCacheRef.current[cacheKey].results });\n return;\n }\n\n // Shogun flow: triggered when `gloxtoken` is present in the URL AND the\n // storyblok parent-level `isRewardsFlow` flag is enabled (see isShogunFlow).\n // All containers share a single API call via getShogunSharedOffer (Product.utils).\n if (isShogunFlow) {\n const gloxTokenId = shogunTokenFromUrl;\n\n if (gloxTokenId) {\n // Skip loading state when results are already in the shared cache.\n if (!isShogunOfferResolved(gloxTokenId)) {\n setIsFetching(true);\n }\n\n getShogunSharedOffer(gloxTokenId, uniqueId as string, offerEndpoint)\n .then((shogunResults: any[]) => {\n offerDataCacheRef.current[cacheKey] = { results: shogunResults, timestamp: Date.now() };\n setOfferingData({ [uniqueId]: shogunResults });\n setGenericErrorModalDetails({ showPopup: false });\n })\n .catch(() => {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n })\n .finally(() => {\n setIsFetching(false);\n });\n return;\n }\n }\n\n setIsFetching(true);\n\n if (pegaIntegration) {\n pegaPayload = fetchPegaProducts(content, pegaCustomerInterest, 'LineItem');\n } else {\n fetchStaticProductIds(\n content?.productList,\n ProductIds,\n bundle4PProduct,\n mainContent?.optionId,\n //US_31295\n pricesToggleState\n );\n const newSignature = JSON.stringify(\n ProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\n );\n promoPayloadSignatureRef.current = newSignature;\n }\n if (\n forceRefresh ||\n (tabIndex === activeIndex && !offeringData?.[uniqueId]) ||\n (tabIndex === activeIndex && loginSuccess) ||\n selectedExistingOption\n ) {\n try {\n fetchOfferingDataLineTableV2(\n pegaIntegration ? pegaPayload : ProductIds,\n content?._uid,\n offerEndpoint,\n existingCustomer,\n subscriptionType,\n enableReturnPromo,\n P2PEnabled,\n pegaIntegration,\n resolvedApiCache,\n deviceUltimateBundle,\n )\n ?.then((resp: any) => {\n const results = resp?.[uniqueId as string] ?? [];\n offerDataCacheRef.current[cacheKey] = { results, timestamp: Date.now() };\n setOfferingData(resp);\n setGenericErrorModalDetails({ showPopup: false });\n })\n .catch((error: any) => {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n })\n .finally(() => {\n setIsFetching(false);\n });\n } catch (err: any) {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n }\n } else if (offeringData) {\n setIsFetching(false);\n }\n };\n\n useEffect(() => {\n if (timerRefreshTimeoutRef.current) {\n clearTimeout(timerRefreshTimeoutRef.current);\n timerRefreshTimeoutRef.current = null;\n }\n\n const isCurrentTab =\n activeIndex === tabIndex || activeIndex === undefined || activeIndex === null;\n\n if (!isCurrentTab) {\n return;\n }\n\n const nextTimerEventDelay = (content?.productList || []).reduce(\n (minimumDelay: number, product: any) => {\n const timer = product?.timer?.[0];\n const isCounterEnabled = timer?.enableCounter;\n\n if (!isCounterEnabled || !timer?.startTime || !timer?.endTime) {\n return minimumDelay;\n }\n\n const delay = getTimeUntilNextTimerEvent(timer.startTime, timer.endTime);\n\n if (delay <= 0) {\n return minimumDelay;\n }\n\n if (minimumDelay === 0 || delay < minimumDelay) {\n return delay;\n }\n\n return minimumDelay;\n },\n 0\n );\n\n if (nextTimerEventDelay <= 0) {\n return;\n }\n timerRefreshTimeoutRef.current = setTimeout(() => {\n const refreshProductIds: ProductRequestBase[] = [];\n fetchStaticProductIds(\n content?.productList,\n refreshProductIds,\n mainContent?.pageType == '4P',\n mainContent?.optionId,\n pricesToggleState\n );\n const nextSignature = JSON.stringify(\n refreshProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\n );\n\n if (nextSignature === promoPayloadSignatureRef.current) {\n return;\n }\n\n // Clear cache before forcing refresh on timer expiry\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n\n setOfferingData((prev: any) => {\n if (!prev || typeof prev !== 'object') {\n return prev;\n }\n\n return {\n ...prev,\n [uniqueId]: null\n };\n });\n fetchOfferData(true);\n }, nextTimerEventDelay);\n\n return () => {\n if (timerRefreshTimeoutRef.current) {\n clearTimeout(timerRefreshTimeoutRef.current);\n timerRefreshTimeoutRef.current = null;\n }\n };\n }, [activeIndex, tabIndex, content?.productList, uniqueId, offeringData]);\n\n /**\n * triggering offer api based for the selected tab\n */\n useEffect(() => {\n setRunOnLoad(true);\n if (activeIndex == tabIndex || activeIndex == null) {\n if (pricesToggleState !== undefined && offeringData?.[uniqueId]) {\n offeringData[uniqueId] = null;\n }\n fetchOfferData();\n setRunOnLoad(false);\n }\n }, [activeIndex]);\n\n useEffect(() => {\n if (AuthData?.siteId && loginSuccess) {\n // Clear cache on login to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n fetchOfferData();\n sessionStorage.removeItem('vasPopUp');\n }\n }, [loginSuccess]);\n\n useEffect(() => {\n if (selectedOption != undefined && selectedExistingOption != undefined) {\n // Clear cache when selection options change to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n fetchOfferData();\n }\n }, [selectedOption, selectedExistingOption]);\n\n //US_31295\n useEffect(() => {\n if (pricesToggleState === undefined || runOnLoad) return;\n // Clear cache when price toggle changes to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n if (offeringData?.[uniqueId]) {\n offeringData[uniqueId] = null;\n }\n fetchOfferData();\n }, [pricesToggleState]);\n\n useEffect(() => {\n //For QoQa flow\n const queryParams = window && new URLSearchParams(window?.location.search);\n const voucher: string | null = queryParams?.get(VOUCHER);\n if (\n voucher &&\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId\n ) {\n try {\n getVocherPromotion(\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId,\n voucher\n ).then((res: any) => {\n res && setLocalStoreWithExpiry(VCTYPE, { voucher: voucher, voucherType: 'qoqa' });\n });\n } catch (err: any) {}\n }\n\n //To trigger serviceOptions APi by category and updating it in context\n if (storeContext && tabIndex === activeIndex) {\n const { store, dispatch } = storeContext;\n let enableTvOptions = false;\n let enableTvOptionsPopUp = false;\n (content?.productList || [])?.forEach((prod: any) => {\n if (prod?.enableTVStreamingOptionsPopUp) {\n enableTvOptionsPopUp = true;\n }\n if (prod?.enableTVStreamingOptions) {\n enableTvOptions = true;\n }\n });\n if (store?.ottOptionsApi?.length === 0 && (enableTvOptions || enableTvOptionsPopUp)) {\n fetchOttServiceOptions()\n ?.then((res: any) => {\n if (res?.length > 0) {\n dispatch({ type: actionTypes?.ottOptionsApi, payload: res });\n }\n })\n .catch(() => {});\n }\n }\n }, []);\n\n //No Tabs content set\n let displayContent: any = [];\n useEffect(() => {\n if (noTabs) {\n displayContent = fetchFilteredProducts(content?.productList, toggleState);\n setFilteredProducts(displayContent);\n }\n }, [toggleState]);\n\n // sending offer api data as callback in device Flow to identify Multimobile/fmc\n useEffect(() => {\n if (deviceFlow?.isDeviceFlow && offeringData) {\n deviceFlow?.prodcardcallbackOfferApiData(offeringData);\n }\n }, [offeringData]);\n\n const getProductId = (content: any) => {\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\n return productData?.productId;\n };\n\n useEffect(() => {\n if (noTabs && !deviceFlow?.isDeviceFlow) {\n setNewDisplayContent(filteredProducts);\n } else {\n setNewDisplayContent(\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1)\n );\n }\n }, [filteredProducts]);\n\n return (\n <div>\n <div className={Styles['titlecontainer']}>\n {content?.title && <div className={Styles['title']}>{content?.title}</div>}\n {content?.subTitle && <div className={Styles['description']}>{content?.subTitle}</div>}\n </div>\n <div className={`linetableV3`}>\n {viewPort && newDisplayContent && newDisplayContent?.length > 0 && (\n <CarouselComponent\n carouselIndex={0}\n key={activeIndex}\n arrow={mainContent?.enableMobileArrows}\n >\n {newDisplayContent &&\n newDisplayContent?.length > 0 &&\n (newDisplayContent || [])?.map((data: StaticProductSchema, indexx: number) => {\n return (\n <div\n id={`productCardV3${activeIndex}`}\n style={{ textAlign: 'center' }}\n key={indexx}\n >\n <StaticProduct\n content={pegaIntegration && isFetching && !offeringData ? {} : data}\n offeringData={offeringData}\n uniqueId={uniqueId}\n storyContent={content}\n metadata={metadata}\n tabIndex={tabIndex}\n cardsLength={content?.productList?.length}\n indexKey={indexx}\n constants={constants}\n mainContent={mainContent}\n linecheckSuccessCallBack={linecheckSuccessCallBack}\n lineCheckCallBack={lineCheckCallBack}\n address={address}\n eligibleBundle={eligibleBundle}\n selectedOption={selectedOption}\n fetchOfferData={fetchOfferData}\n basicConfigUrl={basicConfigUrl}\n selectedExistingOption={selectedExistingOption}\n setLoginSuccess={setLoginSuccess}\n enableP2P={content?.enableP2P}\n loginSuccess={loginSuccess}\n setToggleState={setToggleState}\n toggleState={toggleState}\n noTabs={noTabs}\n deviceFlow={deviceFlow}\n deviceFlowCallBack={deviceFlowCallBack}\n selectedRP={ubRatePlanObj?.selectedRP}\n continueCart={ubRatePlanObj?.continueCart}\n lineCheckOnClear={lineCheckOnClear}\n pegaIntegration={pegaIntegration}\n isProdEnv={isProdEnv}\n deviceUltimateBundle={deviceUltimateBundle}\n //US_31295\n toggleContent={toggleContent}\n pricesToggleState={pricesToggleState}\n isShogunFlow={isShogunFlow}\n shogunToken={shogunTokenFromUrl}\n />\n </div>\n );\n })}\n </CarouselComponent>\n )}\n </div>\n </div>\n );\n};\n\nexport default StaticProductContainer;\n"],"names":["StaticProductContainer","content","setGenericErrorModalDetails","metadata","tabIndex","constants","loginSuccess","activeIndex","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","basicConfigUrl","selectedExistingOption","setLoginSuccess","lineCheckCallBack","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","ubRatePlanObj","lineCheckOnClear","pegaIntegration","pegaCustomerInterest","useStoryblokOrder","isFetching","setIsFetching","isProdEnv","toggleContent","localCacheDuration","apiCache","viewPort","viewport","uniqueId","_uid","offeringData","setOfferingData","useState","filteredProducts","setFilteredProducts","newDisplayContent","setNewDisplayContent","offerEndpoint","_a","LineTableBasicPropConfig","getInstance","getBaseUrl","AuthData","undefined","window","Cookies","get","JSON","parse","storeContext","useContext","AppContext","isMobileFlow","pageType","shogunTokenFromUrl","params","URLSearchParams","location","search","getShogunTokenFromUrl","isShogunFlow","Boolean","isRewardsFlow","resolvedApiCache","pricesToggleState","setPricesToggleState","enableLoggedInPrice","stored","localStorage","getItem","isNewCustomer","customers","toLowerCase","NEW","newUserToggleEnabled","loggedUserToggleEnabled","runOnLoad","setRunOnLoad","timerRefreshTimeoutRef","useRef","promoPayloadSignatureRef","offerDataCacheRef","useEffect","setTimeout","findHeight","addEventListener","removeEventListener","productList","activeToggles","TV","Netflix","gigaSpeed","filter","length","hasTV","hasNetflix","hasGigaSpeed","getElementMaximumHeight","hardwareSessionObj","sessionStorage","ONE_ECOMMERCE_HARDWARE_SUMMARY","deviceUltimateBundle","enableFPB","Object","keys","trackEligibleItem","LINETABLE","_b","availableProducts","_c","Array","_d","fill","pegaProductsIds","_e","map","item","id","onlyPegaProducts","product","includes","products","reference","name","sort","a","b","indexOf","_f","shogunProductIds","_g","_h","_j","filterShogunProducts","handleGlobalToggle","e","detail","value","fetchOfferData","forceRefresh","ProductIds","pegaPayload","atlOffers","existingCustomer","enableExistingCustomer","subscriptionType","bundle4PProduct","enableReturnPromo","isReturnPromo","benefitExistingCustomer","benefitSubscriptionType","join","siteId","P2PEnabled","enableP2P","cacheKey","durationMinutes","cached","current","Date","now","timestamp","isCacheValid","gloxTokenId","isShogunOfferResolved","getShogunSharedOffer","then","shogunResults","results","showPopup","catch","telesalesBlok","finally","fetchPegaProducts","fetchStaticProductIds","optionId","newSignature","stringify","promoIds","fetchOfferingDataLineTableV2","resp","error","err","clearTimeout","nextTimerEventDelay","reduce","minimumDelay","timer","enableCounter","startTime","endTime","delay","getTimeUntilNextTimerEvent","refreshProductIds","prev","assign","removeItem","queryParams","voucher","VOUCHER","productId","getVocherPromotion","_q","_p","_m","_l","_o","_r","res","setLocalStoreWithExpiry","VCTYPE","voucherType","store","dispatch","enableTvOptions","enableTvOptionsPopUp","_s","forEach","prod","enableTVStreamingOptionsPopUp","enableTVStreamingOptions","ottOptionsApi","_t","_u","fetchOttServiceOptions","type","actionTypes","payload","displayContent","fetchFilteredProducts","isDeviceFlow","prodcardcallbackOfferApiData","React","createElement","className","Styles","title","subTitle","CarouselComponent","carouselIndex","key","arrow","enableMobileArrows","data","indexx","style","textAlign","StaticProduct","storyContent","cardsLength","indexKey","selectedRP","continueCart","shogunToken"],"mappings":"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"}
1
+ {"version":3,"file":"StaticProductContainer.js","sources":["../../../../src/components/StaticLineTable/StaticProductContainer.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\nimport Styles from './StaticLineTable.module.scss';\nimport CarouselComponent from '../sharedCarousel/CarouselComponent';\nimport {\n getElementMaximumHeight,\n getNoteValues,\n setLocalStoreWithExpiry,\n viewport\n} from '../../utils/utils';\nimport StaticProduct from './StaticProduct';\nimport { PegaProductRequestBase, ProductRequestBase } from '../lineTable/lineTable.types';\nimport {\n fetchOfferingDataLineTableV2,\n fetchOttServiceOptions,\n getVocherPromotion\n} from '../../services/LineTableService';\nimport { LineTableBasicPropConfig } from '../../services/LineTableBasicPropConfig';\nimport {\n fetchFilteredProducts,\n fetchPegaProducts,\n fetchStaticProductIds,\n filterShogunProducts,\n getShogunSharedOffer,\n getTimeUntilNextTimerEvent,\n isShogunOfferResolved\n} from './Product.utils';\nimport { StaticProductContainerSchema, StaticProductSchema } from './StaticProductDatatypes';\nimport Cookies from 'js-cookie';\nimport { LINETABLE } from '../../Analytics/AnalyticsConstants';\nimport { trackEligibleItem } from '../../models/Analytics/items';\nimport {\n NEW,\n ONE_ECOMMERCE_HARDWARE_SUMMARY,\n ULTIMATEBUNDLE,\n VCTYPE,\n VOUCHER\n} from '../../utils/constants';\nimport { actionTypes, AppContext } from './StaticLineTableStore/StaticLineTableProvider';\n\n/**\n * Query-string parameter name used to trigger the Shogun/rewards (loyalty) flow.\n * The value is passed to the real offer API.\n */\nconst SHOGUN_QUERY_PARAM = 'gloxtoken';\n\n/**\n * Reads the Shogun/rewards token from the URL query-string. Returns null when\n * running outside the browser or when the parameter is not present.\n */\nconst getShogunTokenFromUrl = (): string | null => {\n if (typeof window === 'undefined') return null;\n const params = new URLSearchParams(window?.location?.search);\n return params?.get(SHOGUN_QUERY_PARAM);\n};\n\nconst StaticProductContainer: FC<StaticProductContainerSchema> = ({\n content,\n setGenericErrorModalDetails,\n metadata,\n tabIndex,\n constants,\n loginSuccess,\n activeIndex,\n mainContent,\n address,\n eligibleBundle,\n linecheckSuccessCallBack,\n selectedOption,\n basicConfigUrl,\n selectedExistingOption,\n setLoginSuccess,\n lineCheckCallBack,\n setToggleState,\n toggleState,\n noTabs,\n deviceFlow,\n deviceFlowCallBack,\n ubRatePlanObj,\n lineCheckOnClear,\n pegaIntegration,\n pegaCustomerInterest,\n useStoryblokOrder,\n isFetching,\n setIsFetching,\n isProdEnv,\n //US_31295\n toggleContent,\n localCacheDuration,\n apiCache\n}) => {\n const viewPort = viewport();\n const uniqueId: keyof typeof offeringData = content?._uid;\n const [offeringData, setOfferingData] = useState<any>();\n const [filteredProducts, setFilteredProducts] = useState<any>();\n const [newDisplayContent, setNewDisplayContent] = useState<any>();\n const offerEndpoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n AuthData = AuthData && JSON.parse(AuthData);\n const storeContext = useContext(AppContext);\n const isMobileFlow = content?.pageType === 'MOBILE';\n /**\n * Loyalty (Shogun) flow is active only when BOTH conditions are met:\n * 1. The Storyblok parent-level attribute `isRewardsFlow` is enabled.\n * 2. The URL query-string carries a non-empty `gloxtoken` parameter.\n * Any other combination falls back to the standard offer flow.\n */\n const shogunTokenFromUrl = getShogunTokenFromUrl();\n const isShogunFlow = Boolean(mainContent?.isRewardsFlow) && Boolean(shogunTokenFromUrl);\n // Default apiCache to false if not explicitly set\n const resolvedApiCache = apiCache !== undefined ? apiCache : false;\n //US_31295\n const getPriceToggle = () => {\n if (!toggleContent || !toggleContent.enableLoggedInPrice) return null;\n const stored = localStorage.getItem('userLoggedPricesToggle');\n if (stored === 'true') return true;\n if (stored === 'false') return false;\n const isNewCustomer = toggleContent?.customers?.toLowerCase() === NEW;\n if (isNewCustomer && toggleContent?.newUserToggleEnabled) {\n return true;\n }\n if (!isNewCustomer && toggleContent?.loggedUserToggleEnabled) {\n return true;\n }\n return null;\n };\n const [pricesToggleState, setPricesToggleState] = useState<any>(getPriceToggle);\n const [runOnLoad, setRunOnLoad] = useState<boolean>(true);\n const timerRefreshTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const promoPayloadSignatureRef = useRef<string>('');\n const offerDataCacheRef = useRef<Record<string, { results: any[]; timestamp: number }>>({});\n\n useEffect(() => {\n setTimeout(() => {\n findHeight();\n }, 100);\n window?.addEventListener('resize', findHeight);\n window?.addEventListener('load', findHeight);\n return () => {\n window.removeEventListener('resize', findHeight);\n window.removeEventListener('load', findHeight);\n };\n }, [content?.productList, filteredProducts, newDisplayContent]);\n\n const findHeight = () => {\n if (noTabs) {\n const activeToggles = [toggleState?.TV, toggleState?.Netflix, toggleState?.gigaSpeed].filter(\n Boolean\n ).length;\n const hasTV = toggleState?.TV;\n const hasNetflix = toggleState?.Netflix;\n const hasGigaSpeed = toggleState?.gigaSpeed;\n\n const tabbIndex =\n hasTV && hasNetflix && hasGigaSpeed\n ? 3\n : (hasTV && hasNetflix) ||\n (activeToggles >= 2 && !(hasGigaSpeed && !hasTV && !hasNetflix))\n ? 2\n : activeToggles === 1 || activeToggles === 2\n ? 1\n : 0;\n\n getElementMaximumHeight('productCardV3' + `${tabbIndex}`, filteredProducts?.length);\n } else {\n getElementMaximumHeight('productCardV3' + `${activeIndex}`, content?.productList?.length);\n }\n };\n\n const hardwareSessionObj = sessionStorage.getItem(ONE_ECOMMERCE_HARDWARE_SUMMARY);\n const sessionData = hardwareSessionObj && JSON.parse(hardwareSessionObj);\n const deviceUltimateBundle = content?.enableFPB;\n\n useEffect(() => {\n if (offeringData && Object.keys(offeringData)?.length > 0) {\n trackEligibleItem('view', offeringData[uniqueId], '', LINETABLE, null, pegaIntegration);\n }\n //filter products by pega response\n if (pegaIntegration && offeringData && Object.keys(offeringData)?.length > 0) {\n const availableProducts =\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1);\n\n const pegaProductsIds = offeringData[uniqueId]?.map((item: any) => item?.id);\n\n const onlyPegaProducts = availableProducts.filter((product: any) =>\n pegaProductsIds?.includes(product.products[0].reference.name)\n );\n\n //sort products by storyblok vs pega\n if (useStoryblokOrder) {\n onlyPegaProducts.sort((a: any, b: any) => {\n return availableProducts.indexOf(a) - availableProducts.indexOf(b);\n });\n } else {\n onlyPegaProducts.sort((a: any, b: any) => {\n return (\n pegaProductsIds.indexOf(a.products[0].reference.name) -\n pegaProductsIds.indexOf(b.products[0].reference.name)\n );\n });\n }\n\n setNewDisplayContent(onlyPegaProducts);\n setIsFetching(false);\n }\n\n // Shogun flow: filter storyblok product list to only the products returned by the\n // Shogun offer API (matched by productId). Logic lives in filterShogunProducts (Product.utils).\n if (isShogunFlow && offeringData && Object.keys(offeringData)?.length > 0) {\n const shogunProductIds = (offeringData[uniqueId] ?? []).map((item: any) => item?.id);\n const availableProducts =\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1);\n\n setNewDisplayContent(filterShogunProducts(availableProducts, shogunProductIds));\n setIsFetching(false);\n }\n }, [offeringData]);\n\n useEffect(() => {\n if (\n offeringData &&\n Object.keys(offeringData)?.length > 0 &&\n !isMobileFlow &&\n eligibleBundle?.eligibleBundle\n ) {\n trackEligibleItem(\n 'available',\n offeringData[uniqueId],\n '',\n LINETABLE,\n eligibleBundle?.eligibleBundle,\n pegaIntegration\n );\n }\n }, [eligibleBundle, offeringData]);\n\n //US_31295\n useEffect(() => {\n if (typeof window === 'undefined') return;\n // window.dispatchEvent(\n // new CustomEvent('user-logged-prices-toggle-all', {\n // detail: {\n // auth: AuthData?.siteId ? true : false },\n // })\n // );\n const handleGlobalToggle = (e: any) => {\n setPricesToggleState(e.detail.value);\n };\n window.addEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\n return () => {\n window.removeEventListener('user-logged-prices-toggle-all', handleGlobalToggle);\n };\n }, []);\n\n /**\n * Check if cached offer data is still valid based on localCacheDuration\n */\n const isCacheValid = (cacheKey: string, durationMinutes: number | undefined): boolean => {\n const cached = offerDataCacheRef.current[cacheKey];\n if (!cached) return false;\n\n // A duration of 0 explicitly disables cache reads and always forces a fresh request.\n if (durationMinutes === 0) return false;\n\n // If no duration is specified, cache never expires (until manually cleared).\n if (durationMinutes === undefined) return true;\n\n if (durationMinutes < 0) return true;\n\n const elapsedMinutes = (Date.now() - cached.timestamp) / (1000 * 60);\n return elapsedMinutes < durationMinutes;\n };\n\n /**\n * fetching offer response\n */\n const fetchOfferData = (forceRefresh: boolean = false) => {\n const ProductIds: ProductRequestBase[] = [];\n let pegaPayload: PegaProductRequestBase = { atlOffers: [] };\n // for getting product offer api call request and promo id list\n //existingCustomerBenefit without login\n let existingCustomer = mainContent?.enableExistingCustomer;\n let subscriptionType = mainContent?.subscriptionType;\n let bundle4PProduct = mainContent?.pageType == '4P' ? true : false;\n const enableReturnPromo = content?.isReturnPromo;\n const benefitExistingCustomer = selectedExistingOption?.length > 0 ? true : false;\n const benefitSubscriptionType = selectedExistingOption?.join(',');\n //US_31295\n subscriptionType =\n existingCustomer || pricesToggleState ? subscriptionType : benefitSubscriptionType;\n existingCustomer = Boolean(\n ((existingCustomer || benefitExistingCustomer) && AuthData) || pricesToggleState\n );\n\n if (AuthData?.siteId && toggleContent?.enableLoggedInPrice && toggleContent.customers !== NEW) {\n if (pricesToggleState == false) {\n subscriptionType = 'none';\n } else if (pricesToggleState === true) {\n subscriptionType = undefined;\n }\n }\n\n if (toggleContent?.enableLoggedInPrice && pricesToggleState === false) {\n existingCustomer = false;\n }\n const P2PEnabled = content?.enableP2P ? true : false;\n const cacheDuration = localCacheDuration ?? 1;\n const cacheKey = `tab-${tabIndex}`;\n\n // Serve from cache without triggering loading state\n if (!forceRefresh && isCacheValid(cacheKey, cacheDuration)) {\n setOfferingData({ [uniqueId]: offerDataCacheRef.current[cacheKey].results });\n return;\n }\n\n // Shogun flow: triggered when `gloxtoken` is present in the URL AND the\n // storyblok parent-level `isRewardsFlow` flag is enabled (see isShogunFlow).\n // All containers share a single API call via getShogunSharedOffer (Product.utils).\n if (isShogunFlow) {\n const gloxTokenId = shogunTokenFromUrl;\n\n if (gloxTokenId) {\n // Skip loading state when results are already in the shared cache.\n if (!isShogunOfferResolved(gloxTokenId)) {\n setIsFetching(true);\n }\n\n getShogunSharedOffer(gloxTokenId, uniqueId as string, offerEndpoint)\n .then((shogunResults: any[]) => {\n offerDataCacheRef.current[cacheKey] = { results: shogunResults, timestamp: Date.now() };\n setOfferingData({ [uniqueId]: shogunResults });\n setGenericErrorModalDetails({ showPopup: false });\n })\n .catch(() => {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n })\n .finally(() => {\n setIsFetching(false);\n });\n return;\n }\n }\n\n setIsFetching(true);\n\n if (pegaIntegration) {\n pegaPayload = fetchPegaProducts(content, pegaCustomerInterest, 'LineItem');\n } else {\n fetchStaticProductIds(\n content?.productList,\n ProductIds,\n bundle4PProduct,\n mainContent?.optionId,\n //US_31295\n pricesToggleState\n );\n const newSignature = JSON.stringify(\n ProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\n );\n promoPayloadSignatureRef.current = newSignature;\n }\n if (\n forceRefresh ||\n (tabIndex === activeIndex && !offeringData?.[uniqueId]) ||\n (tabIndex === activeIndex && loginSuccess) ||\n selectedExistingOption\n ) {\n try {\n fetchOfferingDataLineTableV2(\n pegaIntegration ? pegaPayload : ProductIds,\n content?._uid,\n offerEndpoint,\n existingCustomer,\n subscriptionType,\n enableReturnPromo,\n P2PEnabled,\n pegaIntegration,\n resolvedApiCache,\n deviceUltimateBundle,\n )\n ?.then((resp: any) => {\n const results = resp?.[uniqueId as string] ?? [];\n offerDataCacheRef.current[cacheKey] = { results, timestamp: Date.now() };\n setOfferingData(resp);\n setGenericErrorModalDetails({ showPopup: false });\n })\n .catch((error: any) => {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n })\n .finally(() => {\n setIsFetching(false);\n });\n } catch (err: any) {\n setGenericErrorModalDetails({\n showPopup: true,\n content: mainContent?.telesalesBlok?.[0]\n });\n }\n } else if (offeringData) {\n setIsFetching(false);\n }\n };\n\n useEffect(() => {\n if (timerRefreshTimeoutRef.current) {\n clearTimeout(timerRefreshTimeoutRef.current);\n timerRefreshTimeoutRef.current = null;\n }\n\n const isCurrentTab =\n activeIndex === tabIndex || activeIndex === undefined || activeIndex === null;\n\n if (!isCurrentTab) {\n return;\n }\n\n const nextTimerEventDelay = (content?.productList || []).reduce(\n (minimumDelay: number, product: any) => {\n const timer = product?.timer?.[0];\n const isCounterEnabled = timer?.enableCounter;\n\n if (!isCounterEnabled || !timer?.startTime || !timer?.endTime) {\n return minimumDelay;\n }\n\n const delay = getTimeUntilNextTimerEvent(timer.startTime, timer.endTime);\n\n if (delay <= 0) {\n return minimumDelay;\n }\n\n if (minimumDelay === 0 || delay < minimumDelay) {\n return delay;\n }\n\n return minimumDelay;\n },\n 0\n );\n\n if (nextTimerEventDelay <= 0) {\n return;\n }\n timerRefreshTimeoutRef.current = setTimeout(() => {\n const refreshProductIds: ProductRequestBase[] = [];\n fetchStaticProductIds(\n content?.productList,\n refreshProductIds,\n mainContent?.pageType == '4P',\n mainContent?.optionId,\n pricesToggleState\n );\n const nextSignature = JSON.stringify(\n refreshProductIds.map((item: any) => ({ id: item?.id, promoIds: item?.promoIds || [] }))\n );\n\n if (nextSignature === promoPayloadSignatureRef.current) {\n return;\n }\n\n // Clear cache before forcing refresh on timer expiry\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n\n setOfferingData((prev: any) => {\n if (!prev || typeof prev !== 'object') {\n return prev;\n }\n\n return {\n ...prev,\n [uniqueId]: null\n };\n });\n fetchOfferData(true);\n }, nextTimerEventDelay);\n\n return () => {\n if (timerRefreshTimeoutRef.current) {\n clearTimeout(timerRefreshTimeoutRef.current);\n timerRefreshTimeoutRef.current = null;\n }\n };\n }, [activeIndex, tabIndex, content?.productList, uniqueId, offeringData]);\n\n /**\n * triggering offer api based for the selected tab\n */\n useEffect(() => {\n setRunOnLoad(true);\n if (activeIndex == tabIndex || activeIndex == null) {\n if (pricesToggleState !== undefined && offeringData?.[uniqueId]) {\n offeringData[uniqueId] = null;\n }\n fetchOfferData();\n setRunOnLoad(false);\n }\n }, [activeIndex]);\n\n useEffect(() => {\n if (AuthData?.siteId && loginSuccess) {\n // Clear cache on login to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n fetchOfferData();\n sessionStorage.removeItem('vasPopUp');\n }\n }, [loginSuccess]);\n\n useEffect(() => {\n if (selectedOption != undefined && selectedExistingOption != undefined) {\n // Clear cache when selection options change to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n fetchOfferData();\n }\n }, [selectedOption, selectedExistingOption]);\n\n //US_31295\n useEffect(() => {\n if (pricesToggleState === undefined || runOnLoad) return;\n // Clear cache when price toggle changes to fetch fresh data\n const cacheKey = `tab-${tabIndex}`;\n delete offerDataCacheRef.current[cacheKey];\n if (offeringData?.[uniqueId]) {\n offeringData[uniqueId] = null;\n }\n fetchOfferData();\n }, [pricesToggleState]);\n\n useEffect(() => {\n //For QoQa flow\n const queryParams = window && new URLSearchParams(window?.location.search);\n const voucher: string | null = queryParams?.get(VOUCHER);\n if (\n voucher &&\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId\n ) {\n try {\n getVocherPromotion(\n content?.productList?.[0]?.products?.[0]?.reference?.content?.product?.[0]?.productId,\n voucher\n ).then((res: any) => {\n res && setLocalStoreWithExpiry(VCTYPE, { voucher: voucher, voucherType: 'qoqa' });\n });\n } catch (err: any) {}\n }\n\n //To trigger serviceOptions APi by category and updating it in context\n if (storeContext && tabIndex === activeIndex) {\n const { store, dispatch } = storeContext;\n let enableTvOptions = false;\n let enableTvOptionsPopUp = false;\n (content?.productList || [])?.forEach((prod: any) => {\n if (prod?.enableTVStreamingOptionsPopUp) {\n enableTvOptionsPopUp = true;\n }\n if (prod?.enableTVStreamingOptions) {\n enableTvOptions = true;\n }\n });\n if (store?.ottOptionsApi?.length === 0 && (enableTvOptions || enableTvOptionsPopUp)) {\n fetchOttServiceOptions()\n ?.then((res: any) => {\n if (res?.length > 0) {\n dispatch({ type: actionTypes?.ottOptionsApi, payload: res });\n }\n })\n .catch(() => {});\n }\n }\n }, []);\n\n //No Tabs content set\n let displayContent: any = [];\n useEffect(() => {\n if (noTabs) {\n displayContent = fetchFilteredProducts(content?.productList, toggleState);\n setFilteredProducts(displayContent);\n }\n }, [toggleState]);\n\n // sending offer api data as callback in device Flow to identify Multimobile/fmc\n useEffect(() => {\n if (deviceFlow?.isDeviceFlow && offeringData) {\n deviceFlow?.prodcardcallbackOfferApiData(offeringData);\n }\n }, [offeringData]);\n\n const getProductId = (content: any) => {\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\n return productData?.productId;\n };\n\n useEffect(() => {\n if (noTabs && !deviceFlow?.isDeviceFlow) {\n setNewDisplayContent(filteredProducts);\n } else {\n setNewDisplayContent(\n (content?.productList?.length && content?.productList) ||\n new Array(content?.productList?.length || 3).fill(1)\n );\n }\n }, [filteredProducts]);\n\n return (\n <div>\n <div className={Styles['titlecontainer']}>\n {content?.title && <div className={Styles['title']}>{content?.title}</div>}\n {content?.subTitle && <div className={Styles['description']}>{content?.subTitle}</div>}\n </div>\n <div className={`linetableV3`}>\n {viewPort && newDisplayContent && newDisplayContent?.length > 0 && (\n <CarouselComponent\n carouselIndex={0}\n key={activeIndex}\n arrow={mainContent?.enableMobileArrows}\n >\n {newDisplayContent &&\n newDisplayContent?.length > 0 &&\n (newDisplayContent || [])?.map((data: StaticProductSchema, indexx: number) => {\n return (\n <div\n id={`productCardV3${activeIndex}`}\n style={{ textAlign: 'center' }}\n key={indexx}\n >\n <StaticProduct\n content={pegaIntegration && isFetching && !offeringData ? {} : data}\n offeringData={offeringData}\n uniqueId={uniqueId}\n storyContent={content}\n metadata={metadata}\n tabIndex={tabIndex}\n cardsLength={content?.productList?.length}\n indexKey={indexx}\n constants={constants}\n mainContent={mainContent}\n linecheckSuccessCallBack={linecheckSuccessCallBack}\n lineCheckCallBack={lineCheckCallBack}\n address={address}\n eligibleBundle={eligibleBundle}\n selectedOption={selectedOption}\n fetchOfferData={fetchOfferData}\n basicConfigUrl={basicConfigUrl}\n selectedExistingOption={selectedExistingOption}\n setLoginSuccess={setLoginSuccess}\n enableP2P={content?.enableP2P}\n loginSuccess={loginSuccess}\n setToggleState={setToggleState}\n toggleState={toggleState}\n noTabs={noTabs}\n deviceFlow={deviceFlow}\n deviceFlowCallBack={deviceFlowCallBack}\n selectedRP={ubRatePlanObj?.selectedRP}\n continueCart={ubRatePlanObj?.continueCart}\n lineCheckOnClear={lineCheckOnClear}\n pegaIntegration={pegaIntegration}\n isProdEnv={isProdEnv}\n deviceUltimateBundle={deviceUltimateBundle}\n //US_31295\n toggleContent={toggleContent}\n pricesToggleState={pricesToggleState}\n isShogunFlow={isShogunFlow}\n shogunToken={shogunTokenFromUrl}\n />\n </div>\n );\n })}\n </CarouselComponent>\n )}\n </div>\n </div>\n );\n};\n\nexport default StaticProductContainer;\n"],"names":["StaticProductContainer","content","setGenericErrorModalDetails","metadata","tabIndex","constants","loginSuccess","activeIndex","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","basicConfigUrl","selectedExistingOption","setLoginSuccess","lineCheckCallBack","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","ubRatePlanObj","lineCheckOnClear","pegaIntegration","pegaCustomerInterest","useStoryblokOrder","isFetching","setIsFetching","isProdEnv","toggleContent","localCacheDuration","apiCache","viewPort","viewport","uniqueId","_uid","offeringData","setOfferingData","useState","filteredProducts","setFilteredProducts","newDisplayContent","setNewDisplayContent","offerEndpoint","_a","LineTableBasicPropConfig","getInstance","getBaseUrl","AuthData","undefined","window","Cookies","get","JSON","parse","storeContext","useContext","AppContext","isMobileFlow","pageType","shogunTokenFromUrl","params","URLSearchParams","location","search","getShogunTokenFromUrl","isShogunFlow","Boolean","isRewardsFlow","resolvedApiCache","pricesToggleState","setPricesToggleState","enableLoggedInPrice","stored","localStorage","getItem","isNewCustomer","customers","toLowerCase","NEW","newUserToggleEnabled","loggedUserToggleEnabled","runOnLoad","setRunOnLoad","timerRefreshTimeoutRef","useRef","promoPayloadSignatureRef","offerDataCacheRef","useEffect","setTimeout","findHeight","addEventListener","removeEventListener","productList","activeToggles","TV","Netflix","gigaSpeed","filter","length","hasTV","hasNetflix","hasGigaSpeed","getElementMaximumHeight","hardwareSessionObj","sessionStorage","ONE_ECOMMERCE_HARDWARE_SUMMARY","deviceUltimateBundle","enableFPB","Object","keys","trackEligibleItem","LINETABLE","_b","availableProducts","_c","Array","_d","fill","pegaProductsIds","_e","map","item","id","onlyPegaProducts","product","includes","products","reference","name","sort","a","b","indexOf","_f","shogunProductIds","_g","_h","_j","filterShogunProducts","handleGlobalToggle","e","detail","value","fetchOfferData","forceRefresh","ProductIds","pegaPayload","atlOffers","existingCustomer","enableExistingCustomer","subscriptionType","bundle4PProduct","enableReturnPromo","isReturnPromo","benefitExistingCustomer","benefitSubscriptionType","join","siteId","P2PEnabled","enableP2P","cacheKey","durationMinutes","cached","current","Date","now","timestamp","isCacheValid","gloxTokenId","isShogunOfferResolved","getShogunSharedOffer","then","shogunResults","results","showPopup","catch","telesalesBlok","finally","fetchPegaProducts","fetchStaticProductIds","optionId","newSignature","stringify","promoIds","fetchOfferingDataLineTableV2","resp","error","err","clearTimeout","nextTimerEventDelay","reduce","minimumDelay","timer","enableCounter","startTime","endTime","delay","getTimeUntilNextTimerEvent","refreshProductIds","prev","assign","removeItem","queryParams","voucher","VOUCHER","productId","getVocherPromotion","_q","_p","_m","_l","_o","_r","res","setLocalStoreWithExpiry","VCTYPE","voucherType","store","dispatch","enableTvOptions","enableTvOptionsPopUp","_s","forEach","prod","enableTVStreamingOptionsPopUp","enableTVStreamingOptions","ottOptionsApi","_t","_u","fetchOttServiceOptions","type","actionTypes","payload","displayContent","fetchFilteredProducts","isDeviceFlow","prodcardcallbackOfferApiData","React","createElement","className","Styles","title","subTitle","CarouselComponent","carouselIndex","key","arrow","enableMobileArrows","data","indexx","style","textAlign","StaticProduct","storyContent","cardsLength","indexKey","selectedRP","continueCart","shogunToken"],"mappings":"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"}
@@ -1,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 t,getLocalStorageWithExpiry as d,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 P}from"../components/StaticLineTable/Product.utils.js";let N=void 0!==typeof window&&s.get("sunriseAuth");N=N&&JSON.parse(N);const w=(i,e,n,t)=>o(void 0,void 0,void 0,function*(){var o;const r=d(`${i}_${e}_countryData`);if(r)return r;try{const d={language:e,type:"B2C"},r=null===(o=(yield l.get(n,d)).data)||void 0===o?void 0:o.stories;return r&&r.length>0&&v(`${i}_${e}_countryData`,r,t),r}catch(o){return console.error(o),o}}),b=(l,e,n)=>o(void 0,void 0,void 0,function*(){var o,t,d;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 t=e+r.LINE_TABLEV2,d=yield i.getApiServiceInstance().post(t,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(d.error)return d.error;{const o=[];return null==d||d.forEach(i=>{o[i.id]=i}),o}}catch(i){((null===(t=null===(o=null==i?void 0:i.response)||void 0===o?void 0:o.data)||void 0===t?void 0:t.code)||504===(null===(d=null==i?void 0:i.response)||void 0===d?void 0:d.status))&&_(null==i?void 0:i.response),console.log("error---\x3e",i)}}),O=(l,d,v,u,C,L,N,w,b,...O)=>o(void 0,[l,d,v,u,C,L,N,w,b,...O],void 0,function*(o,l,d,v,u,C,L,N,w,b="",O,R,U,B,H){var $,j,V,k,D,G,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,Po,No,wo,bo,Oo,Ro,Uo,Bo,Ho,$o,jo,Vo,ko,Do;let Go={};const Mo=n(c);if(u===p){let i="",n="";const t=null!==($=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==$?$:"",v=S(null===(j=null==o?void 0:o[0])||void 0===j?void 0:j.id);Go={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:d,items:[],note:[{author:"linecheckCorrelationId",text:t}]}]};const r={itemType:"MOBILE",promotionId:d,items:[]};if(null===(V=o[0])||void 0===V?void 0:V.isBundle)null===(D=null===(k=o[0])||void 0===k?void 0:k.bundledOffers)||void 0===D||D.map(o=>{var e,t,d,v,u,s,a,c,p,m,h,I,f,y,T,g,A,E,S;if(null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.id){const l=1==(null===(a=null===(s=null===(u=null===(v=null===(d=null==o?void 0:o.promotionInfo)||void 0===d?void 0:d[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):(Go.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?Go.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}):Go.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id})}),n&&(null===(G=Go.cartItem[0].items)||void 0===G||G.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==Go?void 0:Go.cartItem)||void 0===F||F.push(r)),(null==R?void 0:R.length)>0&&(null==R||R.forEach(o=>{Go.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]:"";Go.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=Go.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==Go?void 0:Go.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==Go?void 0:Go.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==Go?void 0:Go.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}}];Go.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}}else if(u===h){Go=L?{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:d,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:d,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===(Oo=null===(bo=null===(wo=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===wo?void 0:wo.hardwareGift)||void 0===bo?void 0:bo[0])||void 0===Oo?void 0:Oo.ids)||void 0===Ro?void 0:Ro[0]:"";i&&(null===(Uo=Go.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==Go?void 0:Go.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(w){const o=[];o.push({author:T,text:y}),""!==b&&(o.push({author:g,text:b}),t("vctype")),Go.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}),Go.cartItem[0].note=o}if(H&&(null===(Bo=null==Go?void 0:Go.cartItem)||void 0===Bo?void 0:Bo[0])){const{pointsBurnt:o,rewardOfferId:i,gloxTokenId:l}=H;l&&(Go.guid=l);const e=[null!=o&&""!=`${o}`&&{author:"pointsBurnt",text:`${o}`},null!=i&&""!=`${i}`&&{author:"rewardOfferId",text:`${i}`}].filter(Boolean);e.length>0&&(null===(Ho=null==Go?void 0:Go.cartItem)||void 0===Ho||Ho.forEach(o=>{Array.isArray(null==o?void 0:o.items)&&o.items.forEach(o=>{const i=`${(null==o?void 0:o.itemType)||""}`.toUpperCase();"RATEPLAN"!==i&&"INTERNET"!==i||(o.note=[...o.note||[],...e])})}))}if(O){const o=(o=>{var i,l,e,n,t,d,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===(d=null===(t=null==o?void 0:o.selectedVarientDetails)||void 0===t?void 0:t.hardwarePrices)||void 0===d?void 0:d.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})(O);o&&(null===(Vo=null===(jo=null===($o=null==Go?void 0:Go.cartItem)||void 0===$o?void 0:$o[0])||void 0===jo?void 0:jo.items)||void 0===Vo||Vo.push(...o))}let Fo=null;if("undefined"!=typeof window){Fo=new URLSearchParams(window.location.search).get("flow")}if(Mo&&"ott"===Fo){const o=P(Mo);if((null==o?void 0:o.length)>0){const i={},l=null===(ko=null==Go?void 0:Go.cartItem)||void 0===ko?void 0:ko.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",t=`OTT_${l}`;i[t]||(i[t]={itemType:n,promotionId:l,items:[]}),i[t].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==Go||Go.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===(Do=Object.keys(Go))||void 0===Do?void 0:Do.length)>0){const o=yield i.getApiServiceInstance().post(Jo,Go,Xo).then(o=>{if(t("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 t=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 t){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,t,d,v,u,s,c,p)=>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"}),p&&(o.params=Object.assign(Object.assign({},o.params),{journey:"FPB"}));let m=n+r.LINE_TABLEV2;s&&localStorage.getItem("prospectId")&&(o.headers["x-sunrise-prospect-id"]=localStorage.getItem("prospectId"),m=n+r.LINE_TABLEV3);const h=new URLSearchParams;d&&h.set("subscriptionType",d),c&&!t&&h.set("pageKey",e);const I=h.toString(),f=I?`${m}${m.includes("?")?"&":"?"}${I}`:m,y=yield i.getApiServiceInstance().post(f,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 y.error?y.error:{[e]:y}}),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}},t=n+r.LINE_TABLEV2,d=yield i.getApiServiceInstance().post(t,[],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(!d||d.error)throw new Error("Shogun offer API failed");return{[e]: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={category:l};const n=e,t=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==t?void 0:t.error)?null==t?void 0:t.error:{subscriptionData:t}}),j=(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}},t=(null===(o=null==C?void 0:C.getInstance())||void 0===o?void 0:o.getBaseUrl())+`${r.VOUCHER_PROMOTIONS}`;yield i.getApiServiceInstance().get(t,n).then(o=>{if(200==o.status)return null==o?void 0:o.data})}catch(o){}}),V=(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})}),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.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}}),D=(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}}),G=(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 t=o+(null==r?void 0:r.CUSTOMER_EVENTS);yield i.getApiServiceInstance().post(t,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,t,d,v)=>o(void 0,void 0,void 0,function*(){var o,d,c,p,m,h,I,f,y,T,g,A,E,_,L,x,P,N,w,b,O,R,U,B,H;let $={},j="",V="";const k=null!==(o=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==o?o:"",D=S(null===(d=null==l?void 0:l[0])||void 0===d?void 0:d.id);$={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:t,items:[],note:[{author:"linecheckCorrelationId",text:k}]}]};const G={itemType:"MOBILE",promotionId:t,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,t,d,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===(d=null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.hardwareGift)||void 0===d?void 0:d[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())?(G.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,j=i):($.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,V=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())?G.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):$.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id}))}),V&&(null===(I=null===(h=null==$?void 0:$.cartItem)||void 0===h?void 0:h[0].items)||void 0===I||I.push({itemType:"GIFT",id:V})),j&&(null===(f=null==G?void 0:G.items)||void 0===f||f.push({itemType:"GIFT",id:j})),(null===(y=null==G?void 0:G.items)||void 0===y?void 0:y.length)>0&&(null===(T=null==$?void 0:$.cartItem)||void 0===T||T.push(G)),v&&(null==v?void 0:v.length)>0&&(null==v||v.map(o=>{var i,l,e;null===(e=null===(l=null===(i=null==$?void 0:$.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})}))):$.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==D?void 0:D.accessType)&&(null===(L=null===(_=null===(E=null==$?void 0:$.cartItem)||void 0===E?void 0:E[0])||void 0===_?void 0:_.note)||void 0===L||L.push({author:"lineCheckaccessType",text:null==D?void 0:D.accessType})),(null==D?void 0:D.timeSlot)&&(null===(N=null===(P=null===(x=null==$?void 0:$.cartItem)||void 0===x?void 0:x[0])||void 0===P?void 0:P.note)||void 0===N||N.push({author:"lineCheckEarliestActivationDate",text:null===(w=null==D?void 0:D.timeSlot)||void 0===w?void 0:w.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(b=null==o?void 0:o.selectedAdd)||void 0===b?void 0:b.city,street1:null===(O=null==o?void 0:o.selectedAdd)||void 0===O?void 0:O.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}}];$.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($))||void 0===H?void 0:H.length)>0){const o=yield i.getApiServiceInstance().post(F,$,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{O as createCartV2,M as createCartWinV2,w as fetchCountryList,R as fetchLinetableContent,B as fetchOfferingDataLineTableV2,b as fetchOfferingDataV2,F as fetchOttServiceOptions,H as fetchShogunOfferData,$ as fetchSubscriptionData,k as getDeviceDetails,D as getDeviceModelsList,U as getStaticContent,j as getVocherPromotion,G as trackPegaEvents,V 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 t,getLocalStorageWithExpiry as d,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 P}from"../components/StaticLineTable/Product.utils.js";let N=void 0!==typeof window&&s.get("sunriseAuth");N=N&&JSON.parse(N);const w=(i,e,n,t)=>o(void 0,void 0,void 0,function*(){var o;const r=d(`${i}_${e}_countryData`);if(r)return r;try{const d={language:e,type:"B2C"},r=null===(o=(yield l.get(n,d)).data)||void 0===o?void 0:o.stories;return r&&r.length>0&&v(`${i}_${e}_countryData`,r,t),r}catch(o){return console.error(o),o}}),b=(l,e,n)=>o(void 0,void 0,void 0,function*(){var o,t,d;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 t=e+r.LINE_TABLEV2,d=yield i.getApiServiceInstance().post(t,l,o).then(o=>{if(200==o.status)return null==o?void 0:o.data});if(d.error)return d.error;{const o=[];return null==d||d.forEach(i=>{o[i.id]=i}),o}}catch(i){((null===(t=null===(o=null==i?void 0:i.response)||void 0===o?void 0:o.data)||void 0===t?void 0:t.code)||504===(null===(d=null==i?void 0:i.response)||void 0===d?void 0:d.status))&&_(null==i?void 0:i.response),console.log("error---\x3e",i)}}),O=(l,d,v,u,C,L,N,w,b,...O)=>o(void 0,[l,d,v,u,C,L,N,w,b,...O],void 0,function*(o,l,d,v,u,C,L,N,w,b="",O,R,U,B,H){var $,j,V,k,D,G,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,Po,No,wo,bo,Oo,Ro,Uo,Bo,Ho,$o,jo,Vo,ko,Do;let Go={};const Mo=n(c);if(u===p){let i="",n="";const t=null!==($=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==$?$:"",v=S(null===(j=null==o?void 0:o[0])||void 0===j?void 0:j.id);Go={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:d,items:[],note:[{author:"linecheckCorrelationId",text:t}]}]};const r={itemType:"MOBILE",promotionId:d,items:[]};if(null===(V=o[0])||void 0===V?void 0:V.isBundle)null===(D=null===(k=o[0])||void 0===k?void 0:k.bundledOffers)||void 0===D||D.map(o=>{var e,t,d,v,u,s,a,c,p,m,h,I,f,y,T,g,A,E,S;if(null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.id){const l=1==(null===(a=null===(s=null===(u=null===(v=null===(d=null==o?void 0:o.promotionInfo)||void 0===d?void 0:d[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):(Go.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?Go.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}):Go.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id})}),n&&(null===(G=Go.cartItem[0].items)||void 0===G||G.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==Go?void 0:Go.cartItem)||void 0===F||F.push(r)),(null==R?void 0:R.length)>0&&(null==R||R.forEach(o=>{Go.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]:"";Go.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=Go.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==Go?void 0:Go.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==Go?void 0:Go.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==Go?void 0:Go.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}}];Go.contactMedium=i}catch(o){console.log("issue at line check address addition in create cart ==>",o)}}else if(u===h){Go=L?{relatedParty:[{segment:"RESIDENTIAL"}],cartItem:[{itemType:"MOBILE",promotionId:d,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:d,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===(Oo=null===(bo=null===(wo=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===wo?void 0:wo.hardwareGift)||void 0===bo?void 0:bo[0])||void 0===Oo?void 0:Oo.ids)||void 0===Ro?void 0:Ro[0]:"";i&&(null===(Uo=Go.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==Go?void 0:Go.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(w){const o=[];o.push({author:T,text:y}),""!==b&&(o.push({author:g,text:b}),t("vctype")),Go.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}),Go.cartItem[0].note=o}if(H&&(null===(Bo=null==Go?void 0:Go.cartItem)||void 0===Bo?void 0:Bo[0])){const{pointsBurnt:o,rewardOfferId:i,gloxTokenId:l}=H;l&&(Go.guid=l);const e=[null!=o&&""!=`${o}`&&{author:"pointsBurnt",text:`${o}`},null!=i&&""!=`${i}`&&{author:"rewardOfferId",text:`${i}`}].filter(Boolean);e.length>0&&(null===(Ho=null==Go?void 0:Go.cartItem)||void 0===Ho||Ho.forEach(o=>{Array.isArray(null==o?void 0:o.items)&&o.items.forEach(o=>{const i=`${(null==o?void 0:o.itemType)||""}`.toUpperCase();"RATEPLAN"!==i&&"INTERNET"!==i||(o.note=[...o.note||[],...e])})}))}if(O){const o=(o=>{var i,l,e,n,t,d,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===(d=null===(t=null==o?void 0:o.selectedVarientDetails)||void 0===t?void 0:t.hardwarePrices)||void 0===d?void 0:d.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})(O);o&&(null===(Vo=null===(jo=null===($o=null==Go?void 0:Go.cartItem)||void 0===$o?void 0:$o[0])||void 0===jo?void 0:jo.items)||void 0===Vo||Vo.push(...o))}let Fo=null;if("undefined"!=typeof window){Fo=new URLSearchParams(window.location.search).get("flow")}if(Mo&&"ott"===Fo){const o=P(Mo);if((null==o?void 0:o.length)>0){const i={},l=null===(ko=null==Go?void 0:Go.cartItem)||void 0===ko?void 0:ko.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",t=`OTT_${l}`;i[t]||(i[t]={itemType:n,promotionId:l,items:[]}),i[t].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==Go||Go.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===(Do=Object.keys(Go))||void 0===Do?void 0:Do.length)>0){const o=yield i.getApiServiceInstance().post(Jo,Go,Xo).then(o=>{if(t("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 t=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 t){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,t,d,v,u,c,p,m)=>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"}),m&&(o.params=Object.assign(Object.assign({},o.params),{journey:"FPB"}));let h=n+r.LINE_TABLEV2;c&&localStorage.getItem("prospectId")&&(o.headers["x-sunrise-prospect-id"]=localStorage.getItem("prospectId"),h=n+r.LINE_TABLEV3);const I=new URLSearchParams;d&&I.set("subscriptionType",d);const f=Boolean(s.get("sunriseAuth"));!p||t||f||I.set("pageKey",e);const y=I.toString(),T=y?`${h}${h.includes("?")?"&":"?"}${y}`:h,g=yield i.getApiServiceInstance().post(T,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 g.error?g.error:{[e]:g}}),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}},t=n+r.LINE_TABLEV2,d=yield i.getApiServiceInstance().post(t,[],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(!d||d.error)throw new Error("Shogun offer API failed");return{[e]: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={category:l};const n=e,t=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==t?void 0:t.error)?null==t?void 0:t.error:{subscriptionData:t}}),j=(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}},t=(null===(o=null==C?void 0:C.getInstance())||void 0===o?void 0:o.getBaseUrl())+`${r.VOUCHER_PROMOTIONS}`;yield i.getApiServiceInstance().get(t,n).then(o=>{if(200==o.status)return null==o?void 0:o.data})}catch(o){}}),V=(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})}),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.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}}),D=(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}}),G=(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 t=o+(null==r?void 0:r.CUSTOMER_EVENTS);yield i.getApiServiceInstance().post(t,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,t,d,v)=>o(void 0,void 0,void 0,function*(){var o,d,c,p,m,h,I,f,y,T,g,A,E,_,L,x,P,N,w,b,O,R,U,B,H;let $={},j="",V="";const k=null!==(o=s.get("one-commerce-linecheckcorrelationid"))&&void 0!==o?o:"",D=S(null===(d=null==l?void 0:l[0])||void 0===d?void 0:d.id);$={relatedParty:[{id:"anonymous",segment:"RESIDENTIAL"}],cartItem:[{itemType:"HOME",promotionId:t,items:[],note:[{author:"linecheckCorrelationId",text:k}]}]};const G={itemType:"MOBILE",promotionId:t,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,t,d,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===(d=null===(t=null===(e=null==o?void 0:o.promotionInfo)||void 0===e?void 0:e[0])||void 0===t?void 0:t.hardwareGift)||void 0===d?void 0:d[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())?(G.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,j=i):($.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,V=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())?G.items.push({itemType:"RATEPLAN",id:null==o?void 0:o.id}):$.cartItem[0].items.push({itemType:null==o?void 0:o.productType,id:null==o?void 0:o.id}))}),V&&(null===(I=null===(h=null==$?void 0:$.cartItem)||void 0===h?void 0:h[0].items)||void 0===I||I.push({itemType:"GIFT",id:V})),j&&(null===(f=null==G?void 0:G.items)||void 0===f||f.push({itemType:"GIFT",id:j})),(null===(y=null==G?void 0:G.items)||void 0===y?void 0:y.length)>0&&(null===(T=null==$?void 0:$.cartItem)||void 0===T||T.push(G)),v&&(null==v?void 0:v.length)>0&&(null==v||v.map(o=>{var i,l,e;null===(e=null===(l=null===(i=null==$?void 0:$.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})}))):$.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==D?void 0:D.accessType)&&(null===(L=null===(_=null===(E=null==$?void 0:$.cartItem)||void 0===E?void 0:E[0])||void 0===_?void 0:_.note)||void 0===L||L.push({author:"lineCheckaccessType",text:null==D?void 0:D.accessType})),(null==D?void 0:D.timeSlot)&&(null===(N=null===(P=null===(x=null==$?void 0:$.cartItem)||void 0===x?void 0:x[0])||void 0===P?void 0:P.note)||void 0===N||N.push({author:"lineCheckEarliestActivationDate",text:null===(w=null==D?void 0:D.timeSlot)||void 0===w?void 0:w.start}));try{const o=e("chAddressJson"),i=[{characteristic:{installationAddress:!0,country:"CH",city:null===(b=null==o?void 0:o.selectedAdd)||void 0===b?void 0:b.city,street1:null===(O=null==o?void 0:o.selectedAdd)||void 0===O?void 0:O.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}}];$.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($))||void 0===H?void 0:H.length)>0){const o=yield i.getApiServiceInstance().post(F,$,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{O as createCartV2,M as createCartWinV2,w as fetchCountryList,R as fetchLinetableContent,B as fetchOfferingDataLineTableV2,b as fetchOfferingDataV2,F as fetchOttServiceOptions,H as fetchShogunOfferData,$ as fetchSubscriptionData,k as getDeviceDetails,D as getDeviceModelsList,U as getStaticContent,j as getVocherPromotion,G as trackPegaEvents,V 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';\nimport {\n getCookies,\n getLocalStorageWithExpiry,\n getSessionStorage,\n removeLocalStorage,\n setLocalStoreWithExpiry\n} from '../utils/utils';\nimport { API_BASE_BASEPOINT, APIResourceConstants } from './api-constants';\nimport Cookies from 'js-cookie';\nimport { v4 as generateUID } from 'uuid';\nimport {\n DEVICE_INSURANCE,\n FIXNET,\n HARDWARE,\n MOBILE,\n ONE_ECOMMERCE_OTT,\n P2PSUBSCRIBEDPLAN,\n PRE_TO_POST,\n QOQA,\n TV_SERVICE_OPTION,\n VOUCHERCODE,\n VOUCHERTYPE\n} from '../utils/constants';\nimport { getAccessDataFromLineCheck } from '../components/lineTable/LineTableV3.utils';\nimport { LineTableBasicPropConfig } from './LineTableBasicPropConfig';\nimport { errorTrackingDataLayer } from '../utils/AnalyticsUtils';\nimport { apiResConstants } from '../components/LineCheckV3/APIResourceConstants';\nimport { getDeviceNotes } from '../components/UltimateBundleLinetable/DpTableUtils';\nimport {fetchOttItems} from '../components/StaticLineTable/Product.utils'\n\n// Device cart utility functions moved here to avoid circular dependency\nconst getDeviceCartNotes = (deviceDetails: any, upFrontValue: string) => {\n let note = '';\n const smartUpgradeInstallments =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments;\n const installments = deviceDetails?.selectedVarientDetails?.hardwarePrices?.installments;\n const basePrice = deviceDetails?.selectedVarientDetails?.hardwarePrices?.basePrice;\n\n if (smartUpgradeInstallments) {\n note = `${smartUpgradeInstallments?.duration} months, CHF ${upFrontValue} upfront, CHF ${smartUpgradeInstallments?.monthlyPayment?.value}/month`;\n } else if (installments) {\n note = `${installments?.duration} months, CHF ${installments?.monthlyPayment?.value}/month`;\n } else if (basePrice) {\n note = `CHF ${basePrice?.value} one-time payment`;\n }\n return note;\n};\n\nconst getDeviceCartItem = (deviceDetails: any) => {\n let items = [];\n const contractDuration =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.duration ?? 0;\n const upFrontValue =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.upFrontPayment\n ?.value ?? 0;\n const insuranceValue =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.insurance\n ?.value ?? 0;\n const deviceItem = {\n itemType: HARDWARE,\n id: deviceDetails?.selectedVarientDetails?.id ?? '',\n contractTerm: contractDuration,\n note: getDeviceNotes(deviceDetails, upFrontValue)\n };\n deviceItem && items?.push(deviceItem);\n\n if (insuranceValue) {\n const flexItem = {\n itemType: DEVICE_INSURANCE,\n id: deviceDetails?.insuranceName\n };\n items?.push(flexItem);\n }\n return items?.length > 0 ? items : null;\n};\n\nlet AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\nAuthData = AuthData && JSON.parse(AuthData);\n\nexport const fetchCountryList = async (name: string, lang: string, url: string, TTL: number) => {\n const getCountryData = getLocalStorageWithExpiry(`${name}_${lang}_countryData`);\n if (getCountryData) {\n return getCountryData;\n } else {\n try {\n const sbParams = {\n language: lang,\n type: 'B2C'\n };\n const res = await CMSStoryblokServiceV2.get(url, sbParams);\n const stories = res.data?.stories;\n if (stories && stories.length > 0)\n setLocalStoreWithExpiry(`${name}_${lang}_countryData`, stories, TTL);\n return stories;\n } catch (e: any) {\n // eslint-disable-next-line no-console\n console.error(e);\n return e;\n }\n }\n};\n\nexport const fetchOfferingDataV2 = async (\n requestBody: any,\n url: any,\n returnPromo?: boolean\n): Promise<any> => {\n try {\n localStorage.removeItem('entertainment');\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n },\n params: {}\n };\n if (returnPromo) {\n options.params = {\n returnPromo: true\n };\n }\n const URL = url + APIResourceConstants.LINE_TABLEV2;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, requestBody, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n if (productDynamicData.error) {\n return productDynamicData.error;\n } else {\n const response: any[] = [];\n productDynamicData?.forEach((data: any) => {\n response[data.id] = data;\n });\n return response;\n }\n } catch (error: any) {\n if (error?.response?.data?.code || error?.response?.status === 504) {\n errorTrackingDataLayer(error?.response);\n }\n // eslint-disable-next-line no-console\n console.log('error--->', error);\n }\n};\n\nexport const createCartV2 = async (\n productData: any,\n radioValue: string,\n defaultPromo: string,\n cartUrl: string,\n productType: string,\n chooseGift?: any,\n enabledP2P?: any,\n P2PData?: any,\n isQoqaFlow?: boolean,\n qVoucher: any = '',\n deviceDetails?: any,\n tvOptions?: any,\n discountRef?: string,\n discountVersion?: string,\n // Shogun/rewards (loyalty) flow: when the user redeems loyalty points we must\n // attach a `pointsBurnt` note at the item level — the RATEPLAN item for\n // MOBILE and the internet item for FIXNET — so the backend can apply the\n // burn. See StaticProduct.tsx (isShogunFlow branch).\n rewardsInfo?: { pointsBurnt?: string | number; rewardOfferId?: string | number; gloxTokenId?: string | null }\n): Promise<any> => {\n let cartData: any = {};\n /**WIN FLows*/\n \n // Get OTT data from session storage\n const ottCartData = getSessionStorage(ONE_ECOMMERCE_OTT);\n \n if (productType === FIXNET) {\n let mobGiftId = '';\n let mandatoryGift = '';\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\n cartData = {\n relatedParty: [\n {\n id: 'anonymous',\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'HOME',\n promotionId: defaultPromo,\n items: [],\n note: [\n {\n author: 'linecheckCorrelationId',\n text: getCoorelationIdFromCookie\n }\n ]\n }\n ]\n };\n /**for 4P bundles*/\n const mobileItem: any = {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: []\n };\n /**Check if bundle or Internet and add it to cart request*/\n if (productData[0]?.isBundle) {\n productData[0]?.bundledOffers?.map((item: any) => {\n if (item?.promotionInfo?.[0]?.id) {\n const giftId =\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\n mobGiftId = giftId;\n } else {\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\n mandatoryGift = giftId;\n }\n }\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\n } else if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\n });\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n mobGiftId && mobileItem.items.push({ itemType: 'GIFT', id: mobGiftId });\n if (mobileItem?.items?.length > 0) {\n cartData?.cartItem?.push(mobileItem);\n }\n\n //If product has tv options\n if (tvOptions?.length > 0) {\n tvOptions?.forEach((option: any) => {\n cartData.cartItem[0].items.push({ itemType: TV_SERVICE_OPTION, id: option?.id });\n });\n }\n } else {\n /**Add standlone product such as internet to cart request*/\n const mandatoryGift =\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n cartData.cartItem[0].items.push({\n itemType: productData?.[0]?.productType,\n id: productData?.[0]?.id\n });\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n }\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n giftItem?.parentPoType === 'HOME'\n ? cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\n : mobileItem.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\n });\n }\n /**\n * changes added for new internet activation section\n */\n if (lineCheckData?.accessType) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckaccessType',\n text: lineCheckData?.accessType\n });\n }\n if (lineCheckData?.timeSlot) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckEarliestActivationDate',\n text: lineCheckData?.timeSlot?.start\n });\n }\n /**\n * Adding line check address while cart creation\n * As part of DEX abandon basket use case\n */\n try {\n const address: any = getCookies('chAddressJson');\n const contactMedium: any = [\n {\n characteristic: {\n installationAddress: true,\n country: 'CH',\n city: address?.selectedAdd?.city,\n street1: address?.selectedAdd?.street,\n postCode: address?.selectedAdd?.postCode,\n street2: address?.selectedAdd?.houseNumber\n }\n }\n ];\n cartData.contactMedium = contactMedium;\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.log('issue at line check address addition in create cart ==>', error);\n }\n } else if (productType === MOBILE) {\n /**Mobile*/\n if (enabledP2P) {\n cartData = {\n relatedParty: [\n {\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: [\n {\n itemType: 'RATEPLAN',\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\n subscribedInfo: {\n installedPlan: P2PSUBSCRIBEDPLAN,\n id: P2PData\n }\n }\n ],\n processType: {\n id: PRE_TO_POST\n }\n }\n ]\n };\n } else {\n cartData = {\n relatedParty: [\n {\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: [\n {\n itemType: 'RATEPLAN',\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\n clientDiscountInfo: discountRef\n ? [\n {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n ]\n : undefined\n }\n ]\n }\n ]\n };\n }\n const mandatoryGift =\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n giftItem?.parentPoType !== 'HOME' &&\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\n });\n }\n }\n\n if (isQoqaFlow) {\n const note = [];\n note.push({\n author: VOUCHERTYPE,\n text: QOQA\n });\n if (qVoucher !== '') {\n note.push({\n author: VOUCHERCODE,\n text: qVoucher\n });\n removeLocalStorage('vctype');\n }\n cartData.cartItem[0]['note'] = note;\n } else if (discountRef && discountVersion) {\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n cartData.cartItem[0]['note'] = note;\n }\n\n // Shogun / rewards (loyalty) flow — append a pointsBurnt note at the\n // item level (not the cartItem level). For MOBILE this attaches to the\n // RATEPLAN item; for Internet (FIXNET) it attaches to the internet item\n // inside the cartItem's items array. We only push the note when it has\n // a value so the backend does not receive an empty string.\n if (rewardsInfo && cartData?.cartItem?.[0]) {\n const { pointsBurnt, rewardOfferId, gloxTokenId } = rewardsInfo;\n if (gloxTokenId) {\n cartData.guid = gloxTokenId;\n }\n const rewardsNotes = [\n pointsBurnt != null && `${pointsBurnt}` !== '' && { author: 'pointsBurnt', text: `${pointsBurnt}` },\n rewardOfferId != null && `${rewardOfferId}` !== '' && { author: 'rewardOfferId', text: `${rewardOfferId}` }\n ].filter(Boolean);\n\n if (rewardsNotes.length > 0) {\n cartData?.cartItem?.forEach((ci: any) => {\n if (!Array.isArray(ci?.items)) return;\n ci.items.forEach((it: any) => {\n const itType = `${it?.itemType || ''}`.toUpperCase();\n if (itType === 'RATEPLAN' || itType === 'INTERNET') {\n it.note = [...(it.note || []), ...rewardsNotes];\n }\n });\n });\n }\n }\n\n //To add hardware item while creating cart\n if (deviceDetails) {\n const deviceCartItem = getDeviceCartItem(deviceDetails);\n deviceCartItem && cartData?.cartItem?.[0]?.items?.push(...deviceCartItem);\n }\n // Get flow parameter from URL query string if in browser\n let flow: string | null = null;\n if (typeof window !== 'undefined') {\n const params = new URLSearchParams(window.location.search);\n flow = params.get('flow');\n }\n \n // Add OTT items to cart if session storage exists and flow is 'ott'\n const shouldAddOttItems = ottCartData && flow === 'ott';\n if (shouldAddOttItems) {\n const ottItems = fetchOttItems(ottCartData);\n if (ottItems?.length > 0) {\n const groupedByTypeAndPromo: {\n [key: string]: { itemType: string; promotionId: string; items: any[] };\n } = {};\n const homeCartItem = cartData?.cartItem?.find((item: any) => item?.itemType === 'HOME');\n ottItems.forEach((ottItem: any) => {\n const itemType = ottItem?.itemType;\n \n // Only group OTT items, add others directly\n if (itemType === 'OTT') {\n const promoId = ottItem?.promotionId?.trim() || 'defaultOttBundle';\n const groupKey = `${'OTT'}_${promoId}`;\n\n if (!groupedByTypeAndPromo[groupKey]) {\n groupedByTypeAndPromo[groupKey] = {\n itemType: itemType,\n promotionId: promoId,\n items: []\n };\n }\n groupedByTypeAndPromo[groupKey].items.push(...(ottItem?.items || []));\n } else {\n // Add non-OTT items to HOME cartItem's items array\n \n if (homeCartItem && homeCartItem.items && ottItem?.items) {\n homeCartItem.items.push(...ottItem.items);\n }\n }\n });\n\n // Add each grouped OTT item as a separate cart item list\n Object.keys(groupedByTypeAndPromo).forEach((groupKey) => {\n const group = groupedByTypeAndPromo[groupKey];\n cartData?.cartItem.push({\n itemType: group.itemType,\n promotionId: group.promotionId,\n items: group.items\n });\n });\n }\n }\n\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n\n const URL = cartUrl + APIResourceConstants.CREATE_CARTV3;\n if (Object.keys(cartData)?.length > 0) {\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, cartData, options)\n .then((res: any) => {\n removeLocalStorage('isB2BCustomer');\n if (res.status == 200) {\n return res?.data;\n }\n })\n .catch((error) => {\n if (error?.response?.data?.code || error?.response?.status === 504) {\n errorTrackingDataLayer(error?.response);\n }\n });\n if (createCartV2Resp.error) {\n throw createCartV2Resp.error;\n } else {\n return createCartV2Resp;\n }\n }\n};\n\nexport const fetchLinetableContent = async (slugurl: string, params: any): Promise<any> => {\n try {\n const resp = await CMSStoryblokServiceV2.get(slugurl, params)\n .then((response: any) => {\n const contentTable = response?.data?.story?.content?.body;\n // return comp;\n for (const comp of contentTable) {\n if (\n comp.component == 'productTableV2' ||\n comp.component === 'productTableWithOutLC' ||\n comp.component === 'prodConfigContainer'\n ) {\n return comp;\n } else if (comp.component == 'roamingProductTable') {\n return comp?.productTable?.[0];\n }\n }\n })\n .catch((err: any) => {\n throw err;\n });\n return resp;\n } catch (error) {\n return error;\n }\n};\n\nexport const getStaticContent = (language: any = 'en', endPoints: any) => {\n try {\n return CMSStoryblokServiceV2.get(endPoints, {\n dimension: language,\n per_page: 1000,\n type: 'B2C'\n })\n .then((res: any) => {\n const response: any = {};\n (res?.data?.datasource_entries || []).map((entry: any) => {\n response[entry.name] =\n entry.dimension_value != null ? entry.dimension_value : entry.value;\n });\n try {\n localStorage.removeItem('sbstaticcontent');\n localStorage.setItem('sbstaticcontent', JSON.stringify(response));\n } catch {\n //\n }\n return response;\n })\n .catch((err) => {\n return err;\n });\n } catch {\n throw Error('Promise failed');\n }\n};\n\nexport const fetchOfferingDataLineTableV2 = async (\n params: any,\n uniqueId: any,\n endpoint: any,\n existingCustomer?: boolean,\n subscriptionType?: string,\n enableReturnPromo?: boolean,\n P2PEnabled?: boolean,\n pegaIntegration?: boolean,\n apiCache?: boolean,\n deviceUltimateBundle?:boolean,\n): Promise<any> => {\n localStorage.removeItem('entertainment');\n let options: any;\n options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n if (enableReturnPromo) {\n options.params = {\n returnPromo: true\n };\n }\n if (P2PEnabled) {\n options.params = {\n journey: 'P2P'\n };\n }\n if(deviceUltimateBundle){\n options.params = {\n ...options.params,\n journey: 'FPB',\n }\n }\n\n let URL = endpoint + APIResourceConstants.LINE_TABLEV2;\n if (pegaIntegration && localStorage.getItem('prospectId')) {\n options.headers['x-sunrise-prospect-id'] = localStorage.getItem('prospectId');\n URL = endpoint + APIResourceConstants.LINE_TABLEV3;\n }\n const queryParams = new URLSearchParams();\n if (subscriptionType) {\n queryParams.set('subscriptionType', subscriptionType);\n }\n // US_31295\n if (apiCache && !existingCustomer) {\n queryParams.set('pageKey', uniqueId);\n }\n const queryString = queryParams.toString();\n const finalUrl = queryString ? `${URL}${URL.includes('?') ? '&' : '?'}${queryString}` : URL;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(finalUrl, params, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (productDynamicData.error) {\n return productDynamicData.error;\n } else {\n return { [uniqueId]: productDynamicData };\n }\n};\n\n/**\n * Shogun xSell (rewards/loyalty) flow: fetches offer data using `gloxtoken`\n * as a query parameter. The offer endpoint expects a POST request, so we\n * send an empty JSON body `{}` — the backend resolves eligible products\n * from the token only.\n */\nexport const fetchShogunOfferData = async (\n gloxTokenId: string,\n uniqueId: string,\n endpoint: string\n): Promise<any> => {\n const options: any = {\n params: { gloxTokenId: gloxTokenId },\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.LINE_TABLEV2;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, [], options)\n .then((res: any): any => {\n if (res.status === 200) {\n return res?.data;\n }\n })\n .catch((err: any) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (!productDynamicData || productDynamicData.error) {\n throw new Error('Shogun offer API failed');\n }\n return { [uniqueId]: productDynamicData };\n};\n\nexport const fetchSubscriptionData = async (category: any, endpoint: any): Promise<any> => {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n options.params = {\n category: category\n };\n const URL = endpoint;\n const subscriptionData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n } else {\n return res?.status;\n }\n })\n .catch((err: any) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (subscriptionData?.error) {\n return subscriptionData?.error;\n } else {\n return { subscriptionData };\n }\n};\n\nexport const getVocherPromotion = async (productID: string, voucher: string) => {\n try {\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n },\n params: {\n offerIds: productID,\n voucherCode: voucher\n }\n };\n\n const URL =\n LineTableBasicPropConfig?.getInstance()?.getBaseUrl() +\n `${APIResourceConstants.VOUCHER_PROMOTIONS}`;\n await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n } catch (error) {}\n};\n\nexport const validateP2P = async (msisdn: any, endpoint: any): Promise<any> => {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n options.params = {\n msisdn: msisdn\n };\n const URL = endpoint;\n return await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res?.data?.preToPostConversionStatus == 'OK') {\n return true;\n } else {\n return false;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n console.log('err', err);\n return false;\n });\n};\n\nexport const getDeviceDetails = async (deviceID: any, endpoint: any): Promise<any> => {\n try {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.HARDWARES + `baseProduct__${deviceID}`;\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res: any) => {\n if (res?.status === 200 && Object.keys(res?.data)?.length > 0) {\n return res?.data;\n } else {\n return null;\n }\n });\n return deviceData;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('err', err);\n return null;\n }\n};\n\nexport const getDeviceModelsList = async (brandId: any, endpoint: any): Promise<any> => {\n try {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.HARDWARE_DEVICES + `manufacturerName__${brandId}`;\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res: any) => {\n if (res?.status === 200 && res?.data?.hardwares?.length > 0) {\n return res?.data;\n } else {\n return null;\n }\n });\n return deviceData;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('err', err);\n return null;\n }\n};\n\nexport const trackPegaEvents = async (\n endpoint: any,\n payload = {},\n prospectId: string\n): Promise<any> => {\n let options: any;\n options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': apiResConstants.X_SUN_CHAL,\n 'x-sunrise-prospect-id': prospectId\n }\n };\n\n let URL = endpoint + APIResourceConstants?.CUSTOMER_EVENTS;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, payload, options)\n .then((res): any => {\n if (res.status == 200) {\n // eslint-disable-next-line no-console\n console.log('trackPegaEvents result.data', res.data);\n return res?.data;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n};\n\nexport const createCartWinV2 = async (\n productData: any,\n radioValue: string,\n defaultPromo: string,\n cartUrl: string,\n chooseGift:any\n): Promise<any> => {\n let cartData: any = {};\n /**WIN FLows*/\n let mobGiftId = '';\n let mandatoryGift = '';\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\n cartData = {\n relatedParty: [\n {\n id: 'anonymous',\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'HOME',\n promotionId: defaultPromo,\n items: [],\n note: [\n {\n author: 'linecheckCorrelationId',\n text: getCoorelationIdFromCookie\n }\n ]\n }\n ]\n };\n /**for 4P bundles*/\n const mobileItem: any = {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: []\n };\n /**Check if bundle or Internet and add it to cart request*/\n if (productData?.[0]?.isBundle) {\n productData?.[0]?.bundledOffers?.map((item: any) => {\n if (item?.promotionInfo?.[0]?.id) {\n const giftId =\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\n mobGiftId = giftId;\n } else {\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\n mandatoryGift = giftId;\n }\n }\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\n } else if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\n });\n mandatoryGift && cartData?.cartItem?.[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n mobGiftId && mobileItem?.items?.push({ itemType: 'GIFT', id: mobGiftId });\n\n if (mobileItem?.items?.length > 0) {\n cartData?.cartItem?.push(mobileItem);\n }\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\n })\n }\n } else {\n /**Add standlone product such as internet to cart request*/\n cartData.cartItem[0].items.push({\n itemType: productData?.[0]?.productType,\n id: productData?.[0]?.id\n });\n }\n /**\n * changes added for new internet activation section\n */\n if (lineCheckData?.accessType) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckaccessType',\n text: lineCheckData?.accessType,\n });\n }\n if (lineCheckData?.timeSlot) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckEarliestActivationDate',\n text: lineCheckData?.timeSlot?.start,\n });\n }\n /**\n * Adding line check address while cart creation\n * As part of DEX abandon basket use case\n */\n try {\n const address: any = getCookies('chAddressJson');\n const contactMedium: any = [\n {\n characteristic: {\n installationAddress: true,\n country: 'CH',\n city: address?.selectedAdd?.city,\n street1: address?.selectedAdd?.street,\n postCode: address?.selectedAdd?.postCode,\n street2: address?.selectedAdd?.houseNumber\n }\n }\n ];\n cartData.contactMedium = contactMedium;\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.log('issue at line check address addition in create cart ==>', error);\n }\n\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n\n const URL = `${endPoint}${API_BASE_BASEPOINT.CART_MGMT}/${APIResourceConstants.CREATE_CARTV2}`;\n if (Object.keys(cartData)?.length > 0) {\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, cartData, options)\n .then((res: any) => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n if (createCartV2Resp.error) {\n throw createCartV2Resp.error;\n } else {\n return createCartV2Resp;\n }\n }\n}\n\nexport const fetchOttServiceOptions = async (): Promise<any> => {\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n const url = `${endPoint}${APIResourceConstants.TV_SERVICE_OPTIONS_V2}`;\n const options = {\n params: {},\n headers: {\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL,\n 'x-correlation-id': generateUID()\n }\n };\n try {\n const optionsData: any = await ApiServiceV2.getApiServiceInstance()\n .get(url, options)\n .then((res) => {\n return res?.data?.length > 0 ? res?.data : [];\n });\n return optionsData;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n};\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","rewardOfferId","gloxTokenId","guid","rewardsNotes","filter","Boolean","_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","apiCache","deviceUltimateBundle","journey","assign","getItem","LINE_TABLEV3","queryParams","set","queryString","toString","finalUrl","includes","fetchShogunOfferData","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';\nimport {\n getCookies,\n getLocalStorageWithExpiry,\n getSessionStorage,\n removeLocalStorage,\n setLocalStoreWithExpiry\n} from '../utils/utils';\nimport { API_BASE_BASEPOINT, APIResourceConstants } from './api-constants';\nimport Cookies from 'js-cookie';\nimport { v4 as generateUID } from 'uuid';\nimport {\n DEVICE_INSURANCE,\n FIXNET,\n HARDWARE,\n MOBILE,\n ONE_ECOMMERCE_OTT,\n P2PSUBSCRIBEDPLAN,\n PRE_TO_POST,\n QOQA,\n TV_SERVICE_OPTION,\n VOUCHERCODE,\n VOUCHERTYPE\n} from '../utils/constants';\nimport { getAccessDataFromLineCheck } from '../components/lineTable/LineTableV3.utils';\nimport { LineTableBasicPropConfig } from './LineTableBasicPropConfig';\nimport { errorTrackingDataLayer } from '../utils/AnalyticsUtils';\nimport { apiResConstants } from '../components/LineCheckV3/APIResourceConstants';\nimport { getDeviceNotes } from '../components/UltimateBundleLinetable/DpTableUtils';\nimport {fetchOttItems} from '../components/StaticLineTable/Product.utils'\n\n// Device cart utility functions moved here to avoid circular dependency\nconst getDeviceCartNotes = (deviceDetails: any, upFrontValue: string) => {\n let note = '';\n const smartUpgradeInstallments =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments;\n const installments = deviceDetails?.selectedVarientDetails?.hardwarePrices?.installments;\n const basePrice = deviceDetails?.selectedVarientDetails?.hardwarePrices?.basePrice;\n\n if (smartUpgradeInstallments) {\n note = `${smartUpgradeInstallments?.duration} months, CHF ${upFrontValue} upfront, CHF ${smartUpgradeInstallments?.monthlyPayment?.value}/month`;\n } else if (installments) {\n note = `${installments?.duration} months, CHF ${installments?.monthlyPayment?.value}/month`;\n } else if (basePrice) {\n note = `CHF ${basePrice?.value} one-time payment`;\n }\n return note;\n};\n\nconst getDeviceCartItem = (deviceDetails: any) => {\n let items = [];\n const contractDuration =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.duration ?? 0;\n const upFrontValue =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.upFrontPayment\n ?.value ?? 0;\n const insuranceValue =\n deviceDetails?.selectedVarientDetails?.hardwarePrices?.smartUpgradeInstallments?.insurance\n ?.value ?? 0;\n const deviceItem = {\n itemType: HARDWARE,\n id: deviceDetails?.selectedVarientDetails?.id ?? '',\n contractTerm: contractDuration,\n note: getDeviceNotes(deviceDetails, upFrontValue)\n };\n deviceItem && items?.push(deviceItem);\n\n if (insuranceValue) {\n const flexItem = {\n itemType: DEVICE_INSURANCE,\n id: deviceDetails?.insuranceName\n };\n items?.push(flexItem);\n }\n return items?.length > 0 ? items : null;\n};\n\nlet AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\nAuthData = AuthData && JSON.parse(AuthData);\n\nexport const fetchCountryList = async (name: string, lang: string, url: string, TTL: number) => {\n const getCountryData = getLocalStorageWithExpiry(`${name}_${lang}_countryData`);\n if (getCountryData) {\n return getCountryData;\n } else {\n try {\n const sbParams = {\n language: lang,\n type: 'B2C'\n };\n const res = await CMSStoryblokServiceV2.get(url, sbParams);\n const stories = res.data?.stories;\n if (stories && stories.length > 0)\n setLocalStoreWithExpiry(`${name}_${lang}_countryData`, stories, TTL);\n return stories;\n } catch (e: any) {\n // eslint-disable-next-line no-console\n console.error(e);\n return e;\n }\n }\n};\n\nexport const fetchOfferingDataV2 = async (\n requestBody: any,\n url: any,\n returnPromo?: boolean\n): Promise<any> => {\n try {\n localStorage.removeItem('entertainment');\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n },\n params: {}\n };\n if (returnPromo) {\n options.params = {\n returnPromo: true\n };\n }\n const URL = url + APIResourceConstants.LINE_TABLEV2;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, requestBody, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n if (productDynamicData.error) {\n return productDynamicData.error;\n } else {\n const response: any[] = [];\n productDynamicData?.forEach((data: any) => {\n response[data.id] = data;\n });\n return response;\n }\n } catch (error: any) {\n if (error?.response?.data?.code || error?.response?.status === 504) {\n errorTrackingDataLayer(error?.response);\n }\n // eslint-disable-next-line no-console\n console.log('error--->', error);\n }\n};\n\nexport const createCartV2 = async (\n productData: any,\n radioValue: string,\n defaultPromo: string,\n cartUrl: string,\n productType: string,\n chooseGift?: any,\n enabledP2P?: any,\n P2PData?: any,\n isQoqaFlow?: boolean,\n qVoucher: any = '',\n deviceDetails?: any,\n tvOptions?: any,\n discountRef?: string,\n discountVersion?: string,\n // Shogun/rewards (loyalty) flow: when the user redeems loyalty points we must\n // attach a `pointsBurnt` note at the item level — the RATEPLAN item for\n // MOBILE and the internet item for FIXNET — so the backend can apply the\n // burn. See StaticProduct.tsx (isShogunFlow branch).\n rewardsInfo?: { pointsBurnt?: string | number; rewardOfferId?: string | number; gloxTokenId?: string | null }\n): Promise<any> => {\n let cartData: any = {};\n /**WIN FLows*/\n \n // Get OTT data from session storage\n const ottCartData = getSessionStorage(ONE_ECOMMERCE_OTT);\n \n if (productType === FIXNET) {\n let mobGiftId = '';\n let mandatoryGift = '';\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\n cartData = {\n relatedParty: [\n {\n id: 'anonymous',\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'HOME',\n promotionId: defaultPromo,\n items: [],\n note: [\n {\n author: 'linecheckCorrelationId',\n text: getCoorelationIdFromCookie\n }\n ]\n }\n ]\n };\n /**for 4P bundles*/\n const mobileItem: any = {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: []\n };\n /**Check if bundle or Internet and add it to cart request*/\n if (productData[0]?.isBundle) {\n productData[0]?.bundledOffers?.map((item: any) => {\n if (item?.promotionInfo?.[0]?.id) {\n const giftId =\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\n mobGiftId = giftId;\n } else {\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\n mandatoryGift = giftId;\n }\n }\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\n } else if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\n });\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n mobGiftId && mobileItem.items.push({ itemType: 'GIFT', id: mobGiftId });\n if (mobileItem?.items?.length > 0) {\n cartData?.cartItem?.push(mobileItem);\n }\n\n //If product has tv options\n if (tvOptions?.length > 0) {\n tvOptions?.forEach((option: any) => {\n cartData.cartItem[0].items.push({ itemType: TV_SERVICE_OPTION, id: option?.id });\n });\n }\n } else {\n /**Add standlone product such as internet to cart request*/\n const mandatoryGift =\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n cartData.cartItem[0].items.push({\n itemType: productData?.[0]?.productType,\n id: productData?.[0]?.id\n });\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n }\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n giftItem?.parentPoType === 'HOME'\n ? cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\n : mobileItem.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\n });\n }\n /**\n * changes added for new internet activation section\n */\n if (lineCheckData?.accessType) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckaccessType',\n text: lineCheckData?.accessType\n });\n }\n if (lineCheckData?.timeSlot) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckEarliestActivationDate',\n text: lineCheckData?.timeSlot?.start\n });\n }\n /**\n * Adding line check address while cart creation\n * As part of DEX abandon basket use case\n */\n try {\n const address: any = getCookies('chAddressJson');\n const contactMedium: any = [\n {\n characteristic: {\n installationAddress: true,\n country: 'CH',\n city: address?.selectedAdd?.city,\n street1: address?.selectedAdd?.street,\n postCode: address?.selectedAdd?.postCode,\n street2: address?.selectedAdd?.houseNumber\n }\n }\n ];\n cartData.contactMedium = contactMedium;\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.log('issue at line check address addition in create cart ==>', error);\n }\n } else if (productType === MOBILE) {\n /**Mobile*/\n if (enabledP2P) {\n cartData = {\n relatedParty: [\n {\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: [\n {\n itemType: 'RATEPLAN',\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\n subscribedInfo: {\n installedPlan: P2PSUBSCRIBEDPLAN,\n id: P2PData\n }\n }\n ],\n processType: {\n id: PRE_TO_POST\n }\n }\n ]\n };\n } else {\n cartData = {\n relatedParty: [\n {\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: [\n {\n itemType: 'RATEPLAN',\n id: productData?.[0]?.id ? productData?.[0]?.id : productData,\n clientDiscountInfo: discountRef\n ? [\n {\n discountRef: discountRef,\n discountType: 'DISCOUNT'\n }\n ]\n : undefined\n }\n ]\n }\n ]\n };\n }\n const mandatoryGift =\n productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? productData?.[0]?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n mandatoryGift && cartData.cartItem[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n giftItem?.parentPoType !== 'HOME' &&\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId });\n });\n }\n }\n\n if (isQoqaFlow) {\n const note = [];\n note.push({\n author: VOUCHERTYPE,\n text: QOQA\n });\n if (qVoucher !== '') {\n note.push({\n author: VOUCHERCODE,\n text: qVoucher\n });\n removeLocalStorage('vctype');\n }\n cartData.cartItem[0]['note'] = note;\n } else if (discountRef && discountVersion) {\n const note = [];\n note?.push({\n author: 'offerType',\n text: 'ATL'\n });\n note?.push({\n author: 'externalPromotionName',\n text: discountRef\n });\n note?.push({\n author: 'offerVersion',\n text: discountVersion\n });\n cartData.cartItem[0]['note'] = note;\n }\n\n // Shogun / rewards (loyalty) flow — append a pointsBurnt note at the\n // item level (not the cartItem level). For MOBILE this attaches to the\n // RATEPLAN item; for Internet (FIXNET) it attaches to the internet item\n // inside the cartItem's items array. We only push the note when it has\n // a value so the backend does not receive an empty string.\n if (rewardsInfo && cartData?.cartItem?.[0]) {\n const { pointsBurnt, rewardOfferId, gloxTokenId } = rewardsInfo;\n if (gloxTokenId) {\n cartData.guid = gloxTokenId;\n }\n const rewardsNotes = [\n pointsBurnt != null && `${pointsBurnt}` !== '' && { author: 'pointsBurnt', text: `${pointsBurnt}` },\n rewardOfferId != null && `${rewardOfferId}` !== '' && { author: 'rewardOfferId', text: `${rewardOfferId}` }\n ].filter(Boolean);\n\n if (rewardsNotes.length > 0) {\n cartData?.cartItem?.forEach((ci: any) => {\n if (!Array.isArray(ci?.items)) return;\n ci.items.forEach((it: any) => {\n const itType = `${it?.itemType || ''}`.toUpperCase();\n if (itType === 'RATEPLAN' || itType === 'INTERNET') {\n it.note = [...(it.note || []), ...rewardsNotes];\n }\n });\n });\n }\n }\n\n //To add hardware item while creating cart\n if (deviceDetails) {\n const deviceCartItem = getDeviceCartItem(deviceDetails);\n deviceCartItem && cartData?.cartItem?.[0]?.items?.push(...deviceCartItem);\n }\n // Get flow parameter from URL query string if in browser\n let flow: string | null = null;\n if (typeof window !== 'undefined') {\n const params = new URLSearchParams(window.location.search);\n flow = params.get('flow');\n }\n \n // Add OTT items to cart if session storage exists and flow is 'ott'\n const shouldAddOttItems = ottCartData && flow === 'ott';\n if (shouldAddOttItems) {\n const ottItems = fetchOttItems(ottCartData);\n if (ottItems?.length > 0) {\n const groupedByTypeAndPromo: {\n [key: string]: { itemType: string; promotionId: string; items: any[] };\n } = {};\n const homeCartItem = cartData?.cartItem?.find((item: any) => item?.itemType === 'HOME');\n ottItems.forEach((ottItem: any) => {\n const itemType = ottItem?.itemType;\n \n // Only group OTT items, add others directly\n if (itemType === 'OTT') {\n const promoId = ottItem?.promotionId?.trim() || 'defaultOttBundle';\n const groupKey = `${'OTT'}_${promoId}`;\n\n if (!groupedByTypeAndPromo[groupKey]) {\n groupedByTypeAndPromo[groupKey] = {\n itemType: itemType,\n promotionId: promoId,\n items: []\n };\n }\n groupedByTypeAndPromo[groupKey].items.push(...(ottItem?.items || []));\n } else {\n // Add non-OTT items to HOME cartItem's items array\n \n if (homeCartItem && homeCartItem.items && ottItem?.items) {\n homeCartItem.items.push(...ottItem.items);\n }\n }\n });\n\n // Add each grouped OTT item as a separate cart item list\n Object.keys(groupedByTypeAndPromo).forEach((groupKey) => {\n const group = groupedByTypeAndPromo[groupKey];\n cartData?.cartItem.push({\n itemType: group.itemType,\n promotionId: group.promotionId,\n items: group.items\n });\n });\n }\n }\n\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n\n const URL = cartUrl + APIResourceConstants.CREATE_CARTV3;\n if (Object.keys(cartData)?.length > 0) {\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, cartData, options)\n .then((res: any) => {\n removeLocalStorage('isB2BCustomer');\n if (res.status == 200) {\n return res?.data;\n }\n })\n .catch((error) => {\n if (error?.response?.data?.code || error?.response?.status === 504) {\n errorTrackingDataLayer(error?.response);\n }\n });\n if (createCartV2Resp.error) {\n throw createCartV2Resp.error;\n } else {\n return createCartV2Resp;\n }\n }\n};\n\nexport const fetchLinetableContent = async (slugurl: string, params: any): Promise<any> => {\n try {\n const resp = await CMSStoryblokServiceV2.get(slugurl, params)\n .then((response: any) => {\n const contentTable = response?.data?.story?.content?.body;\n // return comp;\n for (const comp of contentTable) {\n if (\n comp.component == 'productTableV2' ||\n comp.component === 'productTableWithOutLC' ||\n comp.component === 'prodConfigContainer'\n ) {\n return comp;\n } else if (comp.component == 'roamingProductTable') {\n return comp?.productTable?.[0];\n }\n }\n })\n .catch((err: any) => {\n throw err;\n });\n return resp;\n } catch (error) {\n return error;\n }\n};\n\nexport const getStaticContent = (language: any = 'en', endPoints: any) => {\n try {\n return CMSStoryblokServiceV2.get(endPoints, {\n dimension: language,\n per_page: 1000,\n type: 'B2C'\n })\n .then((res: any) => {\n const response: any = {};\n (res?.data?.datasource_entries || []).map((entry: any) => {\n response[entry.name] =\n entry.dimension_value != null ? entry.dimension_value : entry.value;\n });\n try {\n localStorage.removeItem('sbstaticcontent');\n localStorage.setItem('sbstaticcontent', JSON.stringify(response));\n } catch {\n //\n }\n return response;\n })\n .catch((err) => {\n return err;\n });\n } catch {\n throw Error('Promise failed');\n }\n};\n\nexport const fetchOfferingDataLineTableV2 = async (\n params: any,\n uniqueId: any,\n endpoint: any,\n existingCustomer?: boolean,\n subscriptionType?: string,\n enableReturnPromo?: boolean,\n P2PEnabled?: boolean,\n pegaIntegration?: boolean,\n apiCache?: boolean,\n deviceUltimateBundle?:boolean,\n): Promise<any> => {\n localStorage.removeItem('entertainment');\n let options: any;\n options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n if (enableReturnPromo) {\n options.params = {\n returnPromo: true\n };\n }\n if (P2PEnabled) {\n options.params = {\n journey: 'P2P'\n };\n }\n if(deviceUltimateBundle){\n options.params = {\n ...options.params,\n journey: 'FPB',\n }\n }\n\n let URL = endpoint + APIResourceConstants.LINE_TABLEV2;\n if (pegaIntegration && localStorage.getItem('prospectId')) {\n options.headers['x-sunrise-prospect-id'] = localStorage.getItem('prospectId');\n URL = endpoint + APIResourceConstants.LINE_TABLEV3;\n }\n const queryParams = new URLSearchParams();\n if (subscriptionType) {\n queryParams.set('subscriptionType', subscriptionType);\n }\n // US_31295\n const isAuthenticated = Boolean(Cookies.get('sunriseAuth'));\n if (apiCache && !existingCustomer && !isAuthenticated) {\n queryParams.set('pageKey', uniqueId);\n }\n const queryString = queryParams.toString();\n const finalUrl = queryString ? `${URL}${URL.includes('?') ? '&' : '?'}${queryString}` : URL;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(finalUrl, params, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (productDynamicData.error) {\n return productDynamicData.error;\n } else {\n return { [uniqueId]: productDynamicData };\n }\n};\n\n/**\n * Shogun xSell (rewards/loyalty) flow: fetches offer data using `gloxtoken`\n * as a query parameter. The offer endpoint expects a POST request, so we\n * send an empty JSON body `{}` — the backend resolves eligible products\n * from the token only.\n */\nexport const fetchShogunOfferData = async (\n gloxTokenId: string,\n uniqueId: string,\n endpoint: string\n): Promise<any> => {\n const options: any = {\n params: { gloxTokenId: gloxTokenId },\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.LINE_TABLEV2;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, [], options)\n .then((res: any): any => {\n if (res.status === 200) {\n return res?.data;\n }\n })\n .catch((err: any) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (!productDynamicData || productDynamicData.error) {\n throw new Error('Shogun offer API failed');\n }\n return { [uniqueId]: productDynamicData };\n};\n\nexport const fetchSubscriptionData = async (category: any, endpoint: any): Promise<any> => {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n options.params = {\n category: category\n };\n const URL = endpoint;\n const subscriptionData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n } else {\n return res?.status;\n }\n })\n .catch((err: any) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n if (subscriptionData?.error) {\n return subscriptionData?.error;\n } else {\n return { subscriptionData };\n }\n};\n\nexport const getVocherPromotion = async (productID: string, voucher: string) => {\n try {\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n },\n params: {\n offerIds: productID,\n voucherCode: voucher\n }\n };\n\n const URL =\n LineTableBasicPropConfig?.getInstance()?.getBaseUrl() +\n `${APIResourceConstants.VOUCHER_PROMOTIONS}`;\n await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n } catch (error) {}\n};\n\nexport const validateP2P = async (msisdn: any, endpoint: any): Promise<any> => {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n options.params = {\n msisdn: msisdn\n };\n const URL = endpoint;\n return await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res): any => {\n if (res?.data?.preToPostConversionStatus == 'OK') {\n return true;\n } else {\n return false;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n console.log('err', err);\n return false;\n });\n};\n\nexport const getDeviceDetails = async (deviceID: any, endpoint: any): Promise<any> => {\n try {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.HARDWARES + `baseProduct__${deviceID}`;\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res: any) => {\n if (res?.status === 200 && Object.keys(res?.data)?.length > 0) {\n return res?.data;\n } else {\n return null;\n }\n });\n return deviceData;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('err', err);\n return null;\n }\n};\n\nexport const getDeviceModelsList = async (brandId: any, endpoint: any): Promise<any> => {\n try {\n let options: any;\n options = {\n params: {},\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const URL = endpoint + APIResourceConstants.HARDWARE_DEVICES + `manufacturerName__${brandId}`;\n const deviceData: any = await ApiServiceV2.getApiServiceInstance()\n .get(URL, options)\n .then((res: any) => {\n if (res?.status === 200 && res?.data?.hardwares?.length > 0) {\n return res?.data;\n } else {\n return null;\n }\n });\n return deviceData;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('err', err);\n return null;\n }\n};\n\nexport const trackPegaEvents = async (\n endpoint: any,\n payload = {},\n prospectId: string\n): Promise<any> => {\n let options: any;\n options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': apiResConstants.X_SUN_CHAL,\n 'x-sunrise-prospect-id': prospectId\n }\n };\n\n let URL = endpoint + APIResourceConstants?.CUSTOMER_EVENTS;\n const productDynamicData: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, payload, options)\n .then((res): any => {\n if (res.status == 200) {\n // eslint-disable-next-line no-console\n console.log('trackPegaEvents result.data', res.data);\n return res?.data;\n }\n })\n .catch((err) => {\n if (err?.response?.data?.code || err?.response?.status === 504) {\n errorTrackingDataLayer(err?.response);\n }\n });\n};\n\nexport const createCartWinV2 = async (\n productData: any,\n radioValue: string,\n defaultPromo: string,\n cartUrl: string,\n chooseGift:any\n): Promise<any> => {\n let cartData: any = {};\n /**WIN FLows*/\n let mobGiftId = '';\n let mandatoryGift = '';\n const getCoorelationIdFromCookie = Cookies.get('one-commerce-linecheckcorrelationid') ?? '';\n const lineCheckData = getAccessDataFromLineCheck(productData?.[0]?.id);\n cartData = {\n relatedParty: [\n {\n id: 'anonymous',\n segment: 'RESIDENTIAL'\n }\n ],\n cartItem: [\n {\n itemType: 'HOME',\n promotionId: defaultPromo,\n items: [],\n note: [\n {\n author: 'linecheckCorrelationId',\n text: getCoorelationIdFromCookie\n }\n ]\n }\n ]\n };\n /**for 4P bundles*/\n const mobileItem: any = {\n itemType: 'MOBILE',\n promotionId: defaultPromo,\n items: []\n };\n /**Check if bundle or Internet and add it to cart request*/\n if (productData?.[0]?.isBundle) {\n productData?.[0]?.bundledOffers?.map((item: any) => {\n if (item?.promotionInfo?.[0]?.id) {\n const giftId =\n item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.length == 1\n ? item?.promotionInfo?.[0]?.hardwareGift?.[0]?.ids?.[0]\n : '';\n if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem['promotionId'] = item?.promotionInfo?.[0]?.id;\n mobGiftId = giftId;\n } else {\n cartData['cartItem'][0]['promotionId'] = item?.promotionInfo?.[0]?.id;\n mandatoryGift = giftId;\n }\n }\n if (item?.productType?.toLowerCase() == 'tv' && radioValue) {\n cartData.cartItem[0].items.push({ itemType: item?.productType, id: radioValue });\n } else if (item?.productType?.toLowerCase() === 'mobile') {\n mobileItem.items.push({ itemType: 'RATEPLAN', id: item?.id });\n } else cartData.cartItem[0].items.push({ itemType: item?.productType, id: item?.id });\n });\n mandatoryGift && cartData?.cartItem?.[0].items?.push({ itemType: 'GIFT', id: mandatoryGift });\n mobGiftId && mobileItem?.items?.push({ itemType: 'GIFT', id: mobGiftId });\n\n if (mobileItem?.items?.length > 0) {\n cartData?.cartItem?.push(mobileItem);\n }\n if (chooseGift && chooseGift?.length > 0) {\n chooseGift?.map((giftItem: any) => {\n cartData?.cartItem?.[0]?.items?.push({ itemType: 'GIFT', id: giftItem?.tuaProdId })\n })\n }\n } else {\n /**Add standlone product such as internet to cart request*/\n cartData.cartItem[0].items.push({\n itemType: productData?.[0]?.productType,\n id: productData?.[0]?.id\n });\n }\n /**\n * changes added for new internet activation section\n */\n if (lineCheckData?.accessType) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckaccessType',\n text: lineCheckData?.accessType,\n });\n }\n if (lineCheckData?.timeSlot) {\n cartData?.cartItem?.[0]?.note?.push({\n author: 'lineCheckEarliestActivationDate',\n text: lineCheckData?.timeSlot?.start,\n });\n }\n /**\n * Adding line check address while cart creation\n * As part of DEX abandon basket use case\n */\n try {\n const address: any = getCookies('chAddressJson');\n const contactMedium: any = [\n {\n characteristic: {\n installationAddress: true,\n country: 'CH',\n city: address?.selectedAdd?.city,\n street1: address?.selectedAdd?.street,\n postCode: address?.selectedAdd?.postCode,\n street2: address?.selectedAdd?.houseNumber\n }\n }\n ];\n cartData.contactMedium = contactMedium;\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.log('issue at line check address addition in create cart ==>', error);\n }\n\n const options = {\n headers: {\n 'x-correlation-id': generateUID(),\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL\n }\n };\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n\n const URL = `${endPoint}${API_BASE_BASEPOINT.CART_MGMT}/${APIResourceConstants.CREATE_CARTV2}`;\n if (Object.keys(cartData)?.length > 0) {\n const createCartV2Resp: any = await ApiServiceV2.getApiServiceInstance()\n .post(URL, cartData, options)\n .then((res: any) => {\n if (res.status == 200) {\n return res?.data;\n }\n });\n if (createCartV2Resp.error) {\n throw createCartV2Resp.error;\n } else {\n return createCartV2Resp;\n }\n }\n}\n\nexport const fetchOttServiceOptions = async (): Promise<any> => {\n const endPoint = LineTableBasicPropConfig?.getInstance()?.getBaseUrl();\n const url = `${endPoint}${APIResourceConstants.TV_SERVICE_OPTIONS_V2}`;\n const options = {\n params: {},\n headers: {\n 'x-sunrise-channel': APIResourceConstants.X_SUN_CHAL,\n 'x-correlation-id': generateUID()\n }\n };\n try {\n const optionsData: any = await ApiServiceV2.getApiServiceInstance()\n .get(url, options)\n .then((res) => {\n return res?.data?.length > 0 ? res?.data : [];\n });\n return optionsData;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n};\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","rewardOfferId","gloxTokenId","guid","rewardsNotes","filter","Boolean","_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","apiCache","deviceUltimateBundle","journey","assign","getItem","LINE_TABLEV3","queryParams","set","isAuthenticated","queryString","toString","finalUrl","includes","fetchShogunOfferData","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": "12.2.0",
3
+ "version": "12.2.2",
4
4
  "description": "Starter project to create reusable functional component",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",