@sunrise-upc/mobile-prod-card 12.2.0-beta.1 → 12.2.0-beta.3

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.
package/README.md CHANGED
@@ -39,4 +39,24 @@ Starter code base to create a reusable functional react component for the sunris
39
39
  ### Upload into private NPM package ###
40
40
 
41
41
  * before upload the package into NPM repo. Please connect with Leads
42
-
42
+
43
+
44
+
45
+ ### Host-provided product card badges
46
+
47
+ The product card does not depend on `@sunrise-upc/sales-static-components`.
48
+ Supply the microsite's badge component around product card consumers, including
49
+ `StaticLineTable` and `DpLinetable`:
50
+
51
+ ```tsx
52
+ import { ProductCardBadgeProvider, StaticLineTable } from '@sunrise-upc/mobile-prod-card';
53
+ import { BadgeContainer } from '@sunrise-upc/sales-static-components';
54
+
55
+ <ProductCardBadgeProvider component={BadgeContainer}>
56
+ <StaticLineTable {...props} />
57
+ </ProductCardBadgeProvider>;
58
+ ```
59
+
60
+ The supplied component receives a `badges` array for both product and promotion
61
+ badges. Without a provider, cards retain their legacy highlight and promotion
62
+ text. No static-components import is included in the product card build.
@@ -1,2 +1,2 @@
1
- import e,{useState as t,useRef as l,useCallback as a,useEffect as n}from"react";import i from"./PriceCalculationSticky.module.scss.js";import{Container as r}from"react-bootstrap";import c from"../FalconButtonV2/FalconButtonV2.js";import{countZero as o,replacePlaceholder as m}from"../../utils/utils.js";const d=({totalOnetimeAmount:d=0,totalRecurring:s=0,onContinue:u,cartData:v,content:p,flow:E})=>{var N,P,f;const[I,x]=t(!1),g=l(null),b=!!E,h=I,T=a(e=>{e.stopPropagation(),null==u||u()},[u]),D=a(()=>{x(!1)},[]);n(()=>{if(!I)return;const e=e=>{g.current&&!g.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[h,D]);const y=null===(N=null==v?void 0:v.map(e=>(null==e?void 0:e.itemName)||""))||void 0===N?void 0:N.join(", "),L=!!(null===(P=null==v?void 0:v.some)||void 0===P?void 0:P.call(v,e=>Number(null==e?void 0:e.flexUpgradePrice)>0));return e.createElement("div",{className:i.stickyContainer,ref:g},e.createElement(r,null,e.createElement("div",{className:i.collapsedView,onClick:()=>x(!I)},e.createElement("div",{className:i.priceInfo},e.createElement("div",{className:i.priceWrapper},0!==s&&e.createElement("div",{className:i.price},o(s),e.createElement("span",{className:i.period},null==p?void 0:p.monthlyText)),0!==d&&e.createElement("div",{className:i.totalSection},e.createElement("div",null,(null==p?void 0:p.oneTime)||""," "),e.createElement("div",{className:i.price},null==p?void 0:p.recurringText," ",o(d)))),y&&e.createElement("div",{className:i.productName},y),L&&(null==p?void 0:p.flexUpgradeDescription)&&e.createElement("div",{className:i.flexUpgradeNote},null==p?void 0:p.flexUpgradeDescription)),e.createElement(c,{content:null===(f=null==p?void 0:p.continueBtn)||void 0===f?void 0:f[0],eventAction:"text",metadata:{},disabled:b,"aria-disabled":b,onClick:T})),I&&e.createElement("div",{className:i.expandedView},e.createElement("hr",null),e.createElement("div",{className:i.productsList},(null==p?void 0:p.title)&&e.createElement("h6",{className:i.pricingOverview},null==p?void 0:p.title),null==v?void 0:v.map((t,l)=>{const a="MOBILEPOSTPAID_RATEPLAN"===(null==t?void 0:t.itemType)?(e=>e&&"0"!==e?m(null==p?void 0:p.contractDuration,[e]):null==p?void 0:p.noMinContractDuration)((null==t?void 0:t.contractDuration)||(null==t?void 0:t.contractTerm)):"",n=Number(null==t?void 0:t.flexUpgradePrice),r=n>0,c=null==p?void 0:p.flexUpgradeLabel,d=r?o(t.flexUpgradePrice):"",s=e=>{if(!r||null==e||""===e)return o(e);const t=parseFloat(e)-n;return Number.isFinite(t)&&t>=0?o(t.toFixed(2)):o(e)},u=s(null==t?void 0:t.itemDiscountedPrice),v=s(null==t?void 0:t.itemDerivedPrice);return e.createElement(e.Fragment,{key:t.productName||String(l)},e.createElement("div",{className:i.productItem},e.createElement("div",{className:i.productItemInfo},(null==t?void 0:t.itemName)&&e.createElement("div",{className:i.productItemName},null==t?void 0:t.itemName),"HOME_SECURITY"===(null==t?void 0:t.itemType)&&e.createElement("div",{className:i.hardwarePayment},(null==p?void 0:p.hsDevicesLabel)&&e.createElement("span",null,null==p?void 0:p.hsDevicesLabel)," ",(null==t?void 0:t.accessoryCount)>0&&(null==p?void 0:p.hsAdditionalAccLabel)&&m(null==p?void 0:p.hsAdditionalAccLabel,[null==t?void 0:t.accessoryCount]))),e.createElement("div",{className:i.productItemPriceWrapper},(null==t?void 0:t.itemOneTimePrice)>0?e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice},o(null==t?void 0:t.itemOneTimePrice),e.createElement("span",null,"/-"))):(null==t?void 0:t.itemDerivedPrice)?e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`Price: ${v} per month`},v,e.createElement("span",null,null==p?void 0:p.monthlyText)),e.createElement("span",{className:i.recurringPrice},u)):e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`Price: ${u} per month`},u,e.createElement("span",null,null==p?void 0:p.monthlyText))),a&&e.createElement("div",{className:i.productItemDuration},a))),r&&e.createElement("div",{className:i.productItem},e.createElement("div",{className:i.productItemInfo},e.createElement("div",{className:i.productItemName},c)),e.createElement("div",{className:i.productItemPriceWrapper},e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`${c}: ${d} per month`},d,e.createElement("span",null,null==p?void 0:p.monthlyText))))))})))))};export{d as default};
1
+ import e,{useState as t,useRef as l,useCallback as a,useEffect as n}from"react";import i from"./PriceCalculationSticky.module.scss.js";import{Container as r}from"react-bootstrap";import c from"../FalconButtonV2/FalconButtonV2.js";import{countZero as o,replacePlaceholder as m}from"../../utils/utils.js";const d=({totalOnetimeAmount:d=0,totalRecurring:s=0,onContinue:u,cartData:v,content:p,flow:E})=>{var N,P,f;const[I,x]=t(!1),g=l(null),b=!!E,h=I,T=a(e=>{e.stopPropagation(),null==u||u()},[u]),D=a(()=>{x(!1)},[]);n(()=>{if(!I)return;const e=e=>{g.current&&!g.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[h,D]);const y=null===(N=null==v?void 0:v.map(e=>(null==e?void 0:e.itemName)||""))||void 0===N?void 0:N.join(", "),L=!!(null===(P=null==v?void 0:v.some)||void 0===P?void 0:P.call(v,e=>Number(null==e?void 0:e.flexUpgradePrice)>0));return e.createElement("div",{className:i.stickyContainer,ref:g},e.createElement(r,null,e.createElement("div",{className:i.collapsedView,onClick:()=>x(!I)},e.createElement("div",{className:i.priceInfo},e.createElement("div",{className:i.priceWrapper},e.createElement("div",{className:i.price},o(s),e.createElement("span",{className:i.period},null==p?void 0:p.monthlyText)),0!==d&&e.createElement("div",{className:i.totalSection},e.createElement("div",null,(null==p?void 0:p.oneTime)||""," "),e.createElement("div",{className:i.price},null==p?void 0:p.recurringText," ",o(d)))),y&&e.createElement("div",{className:i.productName},y),L&&(null==p?void 0:p.flexUpgradeDescription)&&e.createElement("div",{className:i.flexUpgradeNote},null==p?void 0:p.flexUpgradeDescription)),e.createElement(c,{content:null===(f=null==p?void 0:p.continueBtn)||void 0===f?void 0:f[0],eventAction:"text",metadata:{},disabled:b,"aria-disabled":b,onClick:T})),I&&e.createElement("div",{className:i.expandedView},e.createElement("hr",null),e.createElement("div",{className:i.productsList},(null==p?void 0:p.title)&&e.createElement("h6",{className:i.pricingOverview},null==p?void 0:p.title),null==v?void 0:v.map((t,l)=>{const a="MOBILEPOSTPAID_RATEPLAN"===(null==t?void 0:t.itemType)?(e=>e&&"0"!==e?m(null==p?void 0:p.contractDuration,[e]):null==p?void 0:p.noMinContractDuration)((null==t?void 0:t.contractDuration)||(null==t?void 0:t.contractTerm)):"",n=Number(null==t?void 0:t.flexUpgradePrice),r=n>0,c=null==p?void 0:p.flexUpgradeLabel,d=r?o(t.flexUpgradePrice):"",s=e=>{if(!r||null==e||""===e)return o(e);const t=parseFloat(e)-n;return Number.isFinite(t)&&t>=0?o(t.toFixed(2)):o(e)},u=s(null==t?void 0:t.itemDiscountedPrice),v=s(null==t?void 0:t.itemDerivedPrice);return e.createElement(e.Fragment,{key:t.productName||String(l)},e.createElement("div",{className:i.productItem},e.createElement("div",{className:i.productItemInfo},(null==t?void 0:t.itemName)&&e.createElement("div",{className:i.productItemName},null==t?void 0:t.itemName),"HOME_SECURITY"===(null==t?void 0:t.itemType)&&e.createElement("div",{className:i.hardwarePayment},(null==p?void 0:p.hsDevicesLabel)&&e.createElement("span",null,null==p?void 0:p.hsDevicesLabel)," ",(null==t?void 0:t.accessoryCount)>0&&(null==p?void 0:p.hsAdditionalAccLabel)&&m(null==p?void 0:p.hsAdditionalAccLabel,[null==t?void 0:t.accessoryCount]))),e.createElement("div",{className:i.productItemPriceWrapper},(null==t?void 0:t.itemOneTimePrice)>0?e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice},o(null==t?void 0:t.itemOneTimePrice),e.createElement("span",null,"/-"))):(null==t?void 0:t.itemDerivedPrice)?e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`Price: ${v} per month`},v,e.createElement("span",null,null==p?void 0:p.monthlyText)),e.createElement("span",{className:i.recurringPrice},u)):e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`Price: ${u} per month`},u,e.createElement("span",null,null==p?void 0:p.monthlyText))),a&&e.createElement("div",{className:i.productItemDuration},a))),r&&e.createElement("div",{className:i.productItem},e.createElement("div",{className:i.productItemInfo},e.createElement("div",{className:i.productItemName},c)),e.createElement("div",{className:i.productItemPriceWrapper},e.createElement("div",{className:i.productItemPrice},e.createElement("div",{className:i.derivedPrice,"aria-label":`${c}: ${d} per month`},d,e.createElement("span",null,null==p?void 0:p.monthlyText))))))})))))};export{d as default};
2
2
  //# sourceMappingURL=PriceCalculationSticky.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PriceCalculationSticky.js","sources":["../../../../src/components/PriceCalculationSticky/PriceCalculationSticky.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from 'react';\r\nimport { PriceCalculationStickyProps } from './PriceCalculationSticky.types';\r\nimport styles from './PriceCalculationSticky.module.scss';\r\nimport { Container } from 'react-bootstrap';\r\nimport FalconButtonV2 from '../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder} from '../../utils/utils';\r\n\r\nconst PriceCalculationSticky: React.FC<PriceCalculationStickyProps> = ({\r\n totalOnetimeAmount = 0,\r\n totalRecurring=0,\r\n onContinue,\r\n cartData,\r\n content,\r\n flow\r\n}) => {\r\n const [internalExpanded, setInternalExpanded] = useState(false);\r\n const stickyContainerRef = useRef<HTMLDivElement>(null);\r\n // Use controlled state if provided, otherwise use internal state\r\n const isButtonDisabled = flow ? true : false;\r\n const isExpanded =internalExpanded;\r\n // Memoized handlers\r\n const handleButtonClick = useCallback(\r\n (e: React.MouseEvent) => {\r\n e.stopPropagation(); // Prevent toggle when clicking the button\r\n onContinue?.();\r\n },\r\n [onContinue]\r\n );\r\n\r\n const handleCollapse = useCallback(() => {\r\n setInternalExpanded(false);\r\n }, []);\r\n\r\n // Handle click outside to collapse\r\n useEffect(() => {\r\n if (!internalExpanded) return;\r\n\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n stickyContainerRef.current &&\r\n !stickyContainerRef.current.contains(event.target as Node)\r\n ) {\r\n setInternalExpanded(false);\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => document.removeEventListener('mousedown', handleClickOutside);\r\n }, [isExpanded, handleCollapse]);\r\n\r\n const getContractDuration = (contractDuration:string) => {\r\n return contractDuration && contractDuration !== '0' ? replacePlaceholder(content?.contractDuration, [contractDuration]) : content?.noMinContractDuration;\r\n };\r\n\r\n const productsNamesList = cartData?.map(\r\n (item:any) =>\r\n item?.itemName || ''\r\n )?.join(', ');\r\n const hasAnyFlexUpgrade = !!cartData?.some?.((item: any) => Number(item?.flexUpgradePrice) > 0);\r\n return (\r\n <div className={styles.stickyContainer} ref={stickyContainerRef}>\r\n {/* Collapsed View - Always Visible */}\r\n <Container>\r\n <div\r\n className={styles.collapsedView}\r\n onClick={() => setInternalExpanded(!internalExpanded)}\r\n >\r\n <div className={styles.priceInfo}>\r\n <div className={styles.priceWrapper}>\r\n {totalRecurring !== 0 && (\r\n <div className={styles.price}>\r\n {countZero(totalRecurring)}\r\n <span className={styles.period}>{content?.monthlyText}</span>\r\n </div>\r\n \r\n )}\r\n {totalOnetimeAmount !== 0 && (\r\n <div className={styles.totalSection}><div>{content?.oneTime || ''}&nbsp; \r\n </div>\r\n <div className={styles.price}>\r\n {content?.recurringText} {countZero(totalOnetimeAmount)}\r\n </div></div>\r\n )}\r\n </div>\r\n {/* {productsName && <div className={styles.productName}>{productsName}</div>} */}\r\n {productsNamesList && <div className={styles.productName}>{productsNamesList}</div>}\r\n {hasAnyFlexUpgrade && content?.flexUpgradeDescription && (\r\n <div className={styles.flexUpgradeNote}>\r\n {content?.flexUpgradeDescription}\r\n </div>\r\n )}\r\n </div>\r\n <FalconButtonV2\r\n content={content?.continueBtn?.[0]}\r\n eventAction='text'\r\n metadata={{}}\r\n disabled={isButtonDisabled}\r\n aria-disabled={isButtonDisabled}\r\n onClick={handleButtonClick}\r\n />\r\n </div>\r\n\r\n {/* Expanded View - Toggleable Content */}\r\n {internalExpanded && (\r\n <div className={styles.expandedView}>\r\n <hr />\r\n\r\n <div className={styles.productsList}>\r\n {content?.title && <h6 className={styles.pricingOverview}>{content?.title}</h6>}\r\n {cartData?.map((product:any, index:Number) => {\r\n const contractDuration =product?.itemType === 'MOBILEPOSTPAID_RATEPLAN' ? getContractDuration(product?.contractDuration || product?.contractTerm) : '';\r\n const flexUpgradePrice = Number(product?.flexUpgradePrice);\r\n const hasFlexUpgrade = flexUpgradePrice > 0;\r\n const flexUpgradeLabel = content?.flexUpgradeLabel;\r\n const flexUpgradePriceLabel = hasFlexUpgrade ? countZero(product.flexUpgradePrice) : '';\r\n\r\n // Parent row must show device-only price (Flex Upgrade is rendered as its own sub-row).\r\n // Falls back to the original value when the deduction is missing, NaN, or negative.\r\n const withFlexDeducted = (raw: any): string => {\r\n if (!hasFlexUpgrade || raw == null || raw === '') return countZero(raw);\r\n const adjusted = parseFloat(raw) - flexUpgradePrice;\r\n return Number.isFinite(adjusted) && adjusted >= 0\r\n ? countZero(adjusted.toFixed(2))\r\n : countZero(raw);\r\n };\r\n const displayDiscounted = withFlexDeducted(product?.itemDiscountedPrice);\r\n const displayDerived = withFlexDeducted(product?.itemDerivedPrice);\r\n\r\n return (\r\n <React.Fragment key={product.productName || String(index)}>\r\n <div className={styles.productItem}>\r\n <div className={styles.productItemInfo}>\r\n {product?.itemName && (\r\n <div className={styles.productItemName}>{product?.itemName}</div>\r\n )}\r\n {product?.itemType === 'HOME_SECURITY' && (\r\n <div className={styles.hardwarePayment}>\r\n {content?.hsDevicesLabel && <span>{content?.hsDevicesLabel}</span>}{' '}\r\n {product?.accessoryCount > 0 &&\r\n content?.hsAdditionalAccLabel &&\r\n replacePlaceholder(content?.hsAdditionalAccLabel, [\r\n product?.accessoryCount\r\n ])}\r\n </div>\r\n )}\r\n </div>\r\n <div className={styles.productItemPriceWrapper}>\r\n {product?.itemOneTimePrice > 0 ? \r\n <div className={styles.productItemPrice}>\r\n <div className={styles.derivedPrice}>\r\n {countZero(product?.itemOneTimePrice)}\r\n <span>/-</span>\r\n </div>\r\n </div> : product?.itemDerivedPrice ? (\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`Price: ${displayDerived} per month`}\r\n >\r\n {displayDerived}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n <span className={styles.recurringPrice}>{displayDiscounted}</span>\r\n </div>\r\n ) : (\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`Price: ${displayDiscounted} per month`}\r\n >\r\n {displayDiscounted}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n </div>\r\n )}\r\n {contractDuration && (\r\n <div className={styles.productItemDuration}>{contractDuration}</div>\r\n )}\r\n </div>\r\n </div>\r\n {hasFlexUpgrade && (\r\n <div className={styles.productItem}>\r\n <div className={styles.productItemInfo}>\r\n <div className={styles.productItemName}>{flexUpgradeLabel}</div>\r\n </div>\r\n <div className={styles.productItemPriceWrapper}>\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`${flexUpgradeLabel}: ${flexUpgradePriceLabel} per month`}\r\n >\r\n {flexUpgradePriceLabel}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </Container>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PriceCalculationSticky;\r\n"],"names":["PriceCalculationSticky","totalOnetimeAmount","totalRecurring","onContinue","cartData","content","flow","internalExpanded","setInternalExpanded","useState","stickyContainerRef","useRef","isButtonDisabled","isExpanded","handleButtonClick","useCallback","e","stopPropagation","handleCollapse","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","productsNamesList","_a","map","item","itemName","join","hasAnyFlexUpgrade","_b","some","Number","flexUpgradePrice","React","createElement","className","styles","stickyContainer","ref","Container","collapsedView","onClick","priceInfo","priceWrapper","price","countZero","period","monthlyText","totalSection","oneTime","recurringText","productName","flexUpgradeDescription","flexUpgradeNote","FalconButtonV2","continueBtn","_c","eventAction","metadata","disabled","expandedView","productsList","title","pricingOverview","product","index","contractDuration","itemType","replacePlaceholder","noMinContractDuration","getContractDuration","contractTerm","hasFlexUpgrade","flexUpgradeLabel","flexUpgradePriceLabel","withFlexDeducted","raw","adjusted","parseFloat","isFinite","toFixed","displayDiscounted","itemDiscountedPrice","displayDerived","itemDerivedPrice","Fragment","key","String","productItem","productItemInfo","productItemName","hardwarePayment","hsDevicesLabel","accessoryCount","hsAdditionalAccLabel","productItemPriceWrapper","itemOneTimePrice","productItemPrice","derivedPrice","recurringPrice","productItemDuration"],"mappings":"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"}
1
+ {"version":3,"file":"PriceCalculationSticky.js","sources":["../../../../src/components/PriceCalculationSticky/PriceCalculationSticky.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from 'react';\r\nimport { PriceCalculationStickyProps } from './PriceCalculationSticky.types';\r\nimport styles from './PriceCalculationSticky.module.scss';\r\nimport { Container } from 'react-bootstrap';\r\nimport FalconButtonV2 from '../FalconButtonV2/FalconButtonV2';\r\nimport { countZero, replacePlaceholder} from '../../utils/utils';\r\n\r\nconst PriceCalculationSticky: React.FC<PriceCalculationStickyProps> = ({\r\n totalOnetimeAmount = 0,\r\n totalRecurring=0,\r\n onContinue,\r\n cartData,\r\n content,\r\n flow\r\n}) => {\r\n const [internalExpanded, setInternalExpanded] = useState(false);\r\n const stickyContainerRef = useRef<HTMLDivElement>(null);\r\n // Use controlled state if provided, otherwise use internal state\r\n const isButtonDisabled = flow ? true : false;\r\n const isExpanded =internalExpanded;\r\n // Memoized handlers\r\n const handleButtonClick = useCallback(\r\n (e: React.MouseEvent) => {\r\n e.stopPropagation(); // Prevent toggle when clicking the button\r\n onContinue?.();\r\n },\r\n [onContinue]\r\n );\r\n\r\n const handleCollapse = useCallback(() => {\r\n setInternalExpanded(false);\r\n }, []);\r\n\r\n // Handle click outside to collapse\r\n useEffect(() => {\r\n if (!internalExpanded) return;\r\n\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n stickyContainerRef.current &&\r\n !stickyContainerRef.current.contains(event.target as Node)\r\n ) {\r\n setInternalExpanded(false);\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => document.removeEventListener('mousedown', handleClickOutside);\r\n }, [isExpanded, handleCollapse]);\r\n\r\n const getContractDuration = (contractDuration:string) => {\r\n return contractDuration && contractDuration !== '0' ? replacePlaceholder(content?.contractDuration, [contractDuration]) : content?.noMinContractDuration;\r\n };\r\n\r\n const productsNamesList = cartData?.map(\r\n (item:any) =>\r\n item?.itemName || ''\r\n )?.join(', ');\r\n const hasAnyFlexUpgrade = !!cartData?.some?.((item: any) => Number(item?.flexUpgradePrice) > 0);\r\n return (\r\n <div className={styles.stickyContainer} ref={stickyContainerRef}>\r\n {/* Collapsed View - Always Visible */}\r\n <Container>\r\n <div\r\n className={styles.collapsedView}\r\n onClick={() => setInternalExpanded(!internalExpanded)}\r\n >\r\n <div className={styles.priceInfo}>\r\n <div className={styles.priceWrapper}>\r\n {/* commented */}\r\n {/* {totalRecurring !== 0 && ( */}\r\n <div className={styles.price}>\r\n {countZero(totalRecurring)}\r\n <span className={styles.period}>{content?.monthlyText}</span>\r\n </div>\r\n \r\n {/* )} */}\r\n {totalOnetimeAmount !== 0 && (\r\n <div className={styles.totalSection}><div>{content?.oneTime || ''}&nbsp; \r\n </div>\r\n <div className={styles.price}>\r\n {content?.recurringText} {countZero(totalOnetimeAmount)}\r\n </div></div>\r\n )}\r\n </div>\r\n {/* {productsName && <div className={styles.productName}>{productsName}</div>} */}\r\n {productsNamesList && <div className={styles.productName}>{productsNamesList}</div>}\r\n {hasAnyFlexUpgrade && content?.flexUpgradeDescription && (\r\n <div className={styles.flexUpgradeNote}>\r\n {content?.flexUpgradeDescription}\r\n </div>\r\n )}\r\n </div>\r\n <FalconButtonV2\r\n content={content?.continueBtn?.[0]}\r\n eventAction='text'\r\n metadata={{}}\r\n disabled={isButtonDisabled}\r\n aria-disabled={isButtonDisabled}\r\n onClick={handleButtonClick}\r\n />\r\n </div>\r\n\r\n {/* Expanded View - Toggleable Content */}\r\n {internalExpanded && (\r\n <div className={styles.expandedView}>\r\n <hr />\r\n\r\n <div className={styles.productsList}>\r\n {content?.title && <h6 className={styles.pricingOverview}>{content?.title}</h6>}\r\n {cartData?.map((product:any, index:Number) => {\r\n const contractDuration =product?.itemType === 'MOBILEPOSTPAID_RATEPLAN' ? getContractDuration(product?.contractDuration || product?.contractTerm) : '';\r\n const flexUpgradePrice = Number(product?.flexUpgradePrice);\r\n const hasFlexUpgrade = flexUpgradePrice > 0;\r\n const flexUpgradeLabel = content?.flexUpgradeLabel;\r\n const flexUpgradePriceLabel = hasFlexUpgrade ? countZero(product.flexUpgradePrice) : '';\r\n\r\n // Parent row must show device-only price (Flex Upgrade is rendered as its own sub-row).\r\n // Falls back to the original value when the deduction is missing, NaN, or negative.\r\n const withFlexDeducted = (raw: any): string => {\r\n if (!hasFlexUpgrade || raw == null || raw === '') return countZero(raw);\r\n const adjusted = parseFloat(raw) - flexUpgradePrice;\r\n return Number.isFinite(adjusted) && adjusted >= 0\r\n ? countZero(adjusted.toFixed(2))\r\n : countZero(raw);\r\n };\r\n const displayDiscounted = withFlexDeducted(product?.itemDiscountedPrice);\r\n const displayDerived = withFlexDeducted(product?.itemDerivedPrice);\r\n\r\n return (\r\n <React.Fragment key={product.productName || String(index)}>\r\n <div className={styles.productItem}>\r\n <div className={styles.productItemInfo}>\r\n {product?.itemName && (\r\n <div className={styles.productItemName}>{product?.itemName}</div>\r\n )}\r\n {product?.itemType === 'HOME_SECURITY' && (\r\n <div className={styles.hardwarePayment}>\r\n {content?.hsDevicesLabel && <span>{content?.hsDevicesLabel}</span>}{' '}\r\n {product?.accessoryCount > 0 &&\r\n content?.hsAdditionalAccLabel &&\r\n replacePlaceholder(content?.hsAdditionalAccLabel, [\r\n product?.accessoryCount\r\n ])}\r\n </div>\r\n )}\r\n </div>\r\n <div className={styles.productItemPriceWrapper}>\r\n {product?.itemOneTimePrice > 0 ? \r\n <div className={styles.productItemPrice}>\r\n <div className={styles.derivedPrice}>\r\n {countZero(product?.itemOneTimePrice)}\r\n <span>/-</span>\r\n </div>\r\n </div> : product?.itemDerivedPrice ? (\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`Price: ${displayDerived} per month`}\r\n >\r\n {displayDerived}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n <span className={styles.recurringPrice}>{displayDiscounted}</span>\r\n </div>\r\n ) : (\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`Price: ${displayDiscounted} per month`}\r\n >\r\n {displayDiscounted}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n </div>\r\n )}\r\n {contractDuration && (\r\n <div className={styles.productItemDuration}>{contractDuration}</div>\r\n )}\r\n </div>\r\n </div>\r\n {hasFlexUpgrade && (\r\n <div className={styles.productItem}>\r\n <div className={styles.productItemInfo}>\r\n <div className={styles.productItemName}>{flexUpgradeLabel}</div>\r\n </div>\r\n <div className={styles.productItemPriceWrapper}>\r\n <div className={styles.productItemPrice}>\r\n <div\r\n className={styles.derivedPrice}\r\n aria-label={`${flexUpgradeLabel}: ${flexUpgradePriceLabel} per month`}\r\n >\r\n {flexUpgradePriceLabel}\r\n <span>{content?.monthlyText}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </Container>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PriceCalculationSticky;\r\n"],"names":["PriceCalculationSticky","totalOnetimeAmount","totalRecurring","onContinue","cartData","content","flow","internalExpanded","setInternalExpanded","useState","stickyContainerRef","useRef","isButtonDisabled","isExpanded","handleButtonClick","useCallback","e","stopPropagation","handleCollapse","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","productsNamesList","_a","map","item","itemName","join","hasAnyFlexUpgrade","_b","some","Number","flexUpgradePrice","React","createElement","className","styles","stickyContainer","ref","Container","collapsedView","onClick","priceInfo","priceWrapper","price","countZero","period","monthlyText","totalSection","oneTime","recurringText","productName","flexUpgradeDescription","flexUpgradeNote","FalconButtonV2","continueBtn","_c","eventAction","metadata","disabled","expandedView","productsList","title","pricingOverview","product","index","contractDuration","itemType","replacePlaceholder","noMinContractDuration","getContractDuration","contractTerm","hasFlexUpgrade","flexUpgradeLabel","flexUpgradePriceLabel","withFlexDeducted","raw","adjusted","parseFloat","isFinite","toFixed","displayDiscounted","itemDiscountedPrice","displayDerived","itemDerivedPrice","Fragment","key","String","productItem","productItemInfo","productItemName","hardwarePayment","hsDevicesLabel","accessoryCount","hsAdditionalAccLabel","productItemPriceWrapper","itemOneTimePrice","productItemPrice","derivedPrice","recurringPrice","productItemDuration"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import e,{createContext as r,useContext as o}from"react";const t=r(null),n=({component:r,children:o})=>e.createElement(t.Provider,{value:r},o),c=()=>o(t);export{n as ProductCardBadgeProvider,c as useProductCardBadge};
2
+ //# sourceMappingURL=ProductCardBadgeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductCardBadgeProvider.js","sources":["../../../../src/components/StaticLineTable/ProductCardBadgeProvider.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\nimport type { ComponentType, ReactNode } from 'react';\n\nexport interface ProductCardBadgeProps {\n badges?: any[];\n}\n\ninterface ProductCardBadgeProviderProps {\n component: ComponentType<ProductCardBadgeProps>;\n children: ReactNode;\n}\n\nconst ProductCardBadgeContext = createContext<ComponentType<ProductCardBadgeProps> | null>(null);\n\nexport const ProductCardBadgeProvider = ({\n component,\n children\n}: ProductCardBadgeProviderProps) => (\n <ProductCardBadgeContext.Provider value={component}>{children}</ProductCardBadgeContext.Provider>\n);\n\nexport const useProductCardBadge = () => useContext(ProductCardBadgeContext);\n"],"names":["ProductCardBadgeContext","createContext","ProductCardBadgeProvider","component","children","React","createElement","Provider","value","useProductCardBadge","useContext"],"mappings":"yDAYA,MAAMA,EAA0BC,EAA2D,MAE9EC,EAA2B,EACtCC,YACAC,cAEAC,EAAAC,cAACN,EAAwBO,SAAQ,CAACC,MAAOL,GAAYC,GAG1CK,EAAsB,IAAMC,EAAWV"}
@@ -1,2 +1,2 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import o,{useState as l,useRef as n,useContext as t,useEffect as i}from"react";import d from"../Dotloader/Dotloader.js";import{createPortal as a}from"react-dom";import r from"../SkeletonLoader/SkeletonLoader.js";import s from"./StaticLineTable.module.scss.js";import c from"../richtext.js";import v from"./StaticProductEntitlement.js";import u from"./StaticBenefit.js";import m from"./DynamicPriceSection.js";import p from"./CheckoutButton.js";import g from"./StaticProductDetails.js";import{LineTableBasicPropConfig as f,AssetPathPropConfig as h}from"../../services/LineTableBasicPropConfig.js";import b from"js-cookie";import{LoginBasicPropConfig as E}from"../../services/LoginBasicPropConfig.js";import w from"../login/LoginModalV2.js";import{isTimerActive as C,fetchServiceOptions as P,fetchPrice as S,findHeight as y,checkGiftOrCashback as k,getTimeUntilNextTimerEvent as T,staticCreateCart as x,combineWithVasOptions as $,combineWithSmartPhone as D}from"./Product.utils.js";import I from"../ProductDetailsV3/GiftConfigV2.js";import L from"../ProductDetailsV3/ChooseGiftV2.js";import{viewport as N,replacePlaceholder as B,getUtcTimestamp as O}from"../../utils/utils.js";import j from"./StaticProductCashback.js";import{trackNewDatalayerEvent as A}from"../../utils/AnalyticsUtils.js";import{CTABUTTONCLICK as U,GAEVENT as V,EXISTINGCUSTOMER as F,LINETABLE as M,DOWNLOADPRODUCT as R}from"../../Analytics/AnalyticsConstants.js";import G from"./TVChannelModal.js";import _ from"../LineCheckV3/LinecheckModal.js";import J from"../BenefitWrapper/BenefitsValidateWrapper.js";import W from"../PretoPost/PreToPostSubsPopup.js";import q from"../LineCheckV3/GenericModal.js";import{fetchSubscriptionData as H,trackPegaEvents as z,validateP2P as K}from"../../services/LineTableService.js";import Q from"./ExsistingSubscriptionModal.js";import{getEcomCartInfo as X}from"../../models/Analytics/items.js";import Y from"../NewLineCheck/CoverageCheckModal.js";import{API_BASE_BASEPOINT as Z}from"../../services/api-constants.js";import{AppContext as ee}from"./StaticLineTableStore/StaticLineTableProvider.js";import oe from"./OttServiceOptions/OttServiceOptionsSmallPopup.js";import le from"./StaticExclusiveBenefit.js";import ne from"../UserLoggedPricesToggle/UserLoggedPricesToggle.js";import te from"../FalconButtonV2/FalconButtonV2.js";import{ONE_ECOMMERCE_INTERNET_SUMMARY as ie}from"../../utils/constants.js";import de from"./StaticLineTabelTimer/StaticLineTabelTimer.js";import{BadgeContainer as ae}from"@sunrise-upc/sales-static-components";import re from"../GenericPopup/GenericPopup.js";const se=({content:se,offeringData:ce,uniqueId:ve,storyContent:ue,metadata:me,tabIndex:pe,cardsLength:ge,indexKey:fe,constants:he,mainContent:be,address:Ee,eligibleBundle:we,linecheckSuccessCallBack:Ce,selectedOption:Pe,fetchOfferData:Se,basicConfigUrl:ye,selectedExistingOption:ke,setLoginSuccess:Te,enableP2P:xe,lineCheckCallBack:$e,loginSuccess:De,setToggleState:Ie,toggleState:Le,noTabs:Ne,deviceFlow:Be,deviceFlowCallBack:Oe,selectedRP:je,continueCart:Ae,lineCheckOnClear:Ue,pegaIntegration:Ve,isProdEnv:Fe,deviceUltimateBundle:Me,toggleContent:Re,pricesToggleState:Ge,isShogunFlow:_e,shogunToken:Je})=>{var We,qe,He,ze,Ke,Qe,Xe,Ye,Ze,eo,oo,lo,no,to,io,ao,ro,so,co,vo,uo,mo,po,go,fo,ho,bo,Eo,wo,Co,Po,So,yo,ko,To,xo,$o,Do,Io,Lo,No,Bo,Oo,jo,Ao,Uo,Vo,Fo,Mo,Ro,Go,_o,Jo,Wo,qo,Ho,zo,Ko,Qo,Xo,Yo,Zo,el,ol,ll,nl,tl,il,dl,al,rl,sl,cl,vl,ul,ml,pl,gl,fl,hl,bl,El,wl,Cl,Pl,Sl;const[yl,kl]=l(!1),[Tl,xl]=l(!1),[$l,Dl]=l({showGift:!1,cashbackAvailable:!1}),[Il,Ll]=l(!0),[Nl,Bl]=l(!1),[Ol,jl]=l([]),[Al,Ul]=l(!1),[Vl,Fl]=l(!1),[Ml,Rl]=l(!1),[Gl,_l]=l(!1),[Jl,Wl]=l(!1),[ql,Hl]=l(!1),zl=`${ye}inf/customer-management/subscriptions`,Kl=`${ye}inf/resource-management/msisdns/pretopost/validation`,[Ql,Xl]=l([]),[Yl,Zl]=l(!1),[en,on]=l(!1),[ln,nn]=l(!1),[tn,dn]=l([]),[an,rn]=l(!1),[sn,cn]=l(!1),[vn,un]=l(!1),[mn,pn]=l(!1),[gn,fn]=l([]),[hn,bn]=l(0),[En,wn]=l(!1),Cn=n(null),[Pn,Sn]=l(null),yn=n(!1),kn=n(null),Tn=`${ye}inf/${Z.CUSTOMER}`,xn=void 0!==typeof window&&document.getElementById("static-linetable"),$n=0===(null===(We=Object.keys(se))||void 0===We?void 0:We.length),Dn=null===(Qe=null===(Ke=null===(ze=null===(He=null===(qe=null==se?void 0:se.products)||void 0===qe?void 0:qe[0])||void 0===He?void 0:He.reference)||void 0===ze?void 0:ze.content)||void 0===Ke?void 0:Ke.product)||void 0===Qe?void 0:Qe[0],In=null===(oo=null===(eo=null===(Ze=null===(Ye=null===(Xe=null==se?void 0:se.promotion)||void 0===Xe?void 0:Xe[0])||void 0===Ye?void 0:Ye.reference)||void 0===Ze?void 0:Ze.content)||void 0===eo?void 0:eo.promoDescription)||void 0===oo?void 0:oo[0],Ln=null===(lo=null==se?void 0:se.timer)||void 0===lo?void 0:lo[0],Nn=null==Ln?void 0:Ln.enableCounter,[Bn,On]=l(!!(Nn&&(null==Ln?void 0:Ln.startTime)&&(null==Ln?void 0:Ln.endTime))&&C(Ln.startTime,Ln.endTime)),jn=Boolean((null==se?void 0:se.highlightText)&&!0!==Ge&&!Bn&&!(null==se?void 0:se.badgesContainer)),An=Boolean((null==In?void 0:In.displayText)&&!(null==se?void 0:se.notShowPromotionLabel)&&!0!==Ge&&!Bn),Un=Boolean((null==se?void 0:se.badgesContainer)&&!0!==Ge&&!Bn&&!An),Vn=null==Dn?void 0:Dn.productId,Fn=null===(no=null==f?void 0:f.getInstance())||void 0===no?void 0:no.getCartUrl(),Mn=null===(to=null==h?void 0:h.getInstance())||void 0===to?void 0:to.getAssetPath(),Rn="MOBILE"===(null==ue?void 0:ue.pageType),Gn=N(),_n=t(ee);let Jn;Jn=Ee&&(null===(io=null==we?void 0:we.eligibleBundle)||void 0===io?void 0:io.includes(Vn));const Wn=null==se?void 0:se.enableTVStreamingOptionsPopUp,qn=null==se?void 0:se.enableTVStreamingOptionsStepper,Hn=null==se?void 0:se.disableDiscountedPriceToggle,zn=null==se?void 0:se.skipAccessoriesPage;E.create({baseURL:null!=ye?ye:""});let Kn=void 0!==typeof window&&b.get("sunriseAuth");Kn=Kn&&JSON.parse(Kn);const Qn=((null==ce?void 0:ce[ve])||[]).filter(e=>(null==e?void 0:e.id)===Vn),Xn=e=>{dn(e)},Yn=()=>{Ul(!0),_l(!Gl),on(!en)},Zn=()=>{var e,o,l;if(xl(!1),xe&&null==Kn)_l(!Gl),on(!en);else if(xe&&(null==Kn?void 0:Kn.siteId))it();else if(Pe===F&&(null==ke?void 0:ke.length)>0)Wl(!0);else{!!((null==be?void 0:be.enableExistingCustomer)&&null==Kn||!Kn&&!0===Ge&&(null==Re?void 0:Re.enableLoggedInPrice))?Ul(!0):ut()}if(Ve){const n=localStorage.getItem("prospectId"),t=null!==(l=null===(o=null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.pathname)||void 0===o?void 0:o.split("/"))&&void 0!==l?l:[],i=t[t.length-1],d={eventTimestamp:O(),eventType:"PageView",pageType:"CartCreated",pageLocation:i,targetProduct:Vn};n&&z(Tn,d,n)}},et=e=>{const o=Ol.findIndex(o=>(null==e?void 0:e.giftGroupId)===(null==o?void 0:o.giftGroupId)),l=Ol;-1===o?l.push(e):l[o]=e,jl([...l])},ot=new URLSearchParams(null===(ao=null===window||void 0===window?void 0:window.location)||void 0===ao?void 0:ao.search),lt=null==ot?void 0:ot.get("selectedMsisdn"),nt=e=>{var o;1===(null==e?void 0:e.length)?(Nl?D(pt,ue,Qn,null==e?void 0:e[0],se,Ve):ut(null===(o=null==e?void 0:e[0])||void 0===o?void 0:o.msisdn),Hl(!1)):(null==e?void 0:e.length)>1?(Xl(e),nn(!ln),Hl(!1)):(on(!en),Hl(!0),Ll(!0),kl(!1))},tt=(o,l)=>e(void 0,void 0,void 0,function*(){yield K(null==o?void 0:o.msisdn,Kl).then(e=>{e&&l.push(o)}).catch(e=>{console.log("error",e)})}),it=()=>{var o;kl(!0);try{null===(o=H("PREPAID",zl))||void 0===o||o.then(o=>e(void 0,void 0,void 0,function*(){if(204==(null==o?void 0:o.subscriptionData))on(!en),Hl(!0),Ll(!0),kl(!1);else{const l=null==o?void 0:o.subscriptionData,n=l.find(e=>e.msisdn===lt);if(l){const o=[];lt?(yield tt(n,o),nt(o)):yield Promise.all(null==l?void 0:l.map(l=>e(void 0,void 0,void 0,function*(){yield tt(l,o)}))).then(e=>{nt(o)})}}})).catch(e=>{console.log("error---\x3e",e),kl(!1)})}catch(e){console.log("error---\x3e",e),kl(!1)}Zl(!0)},dt=()=>{on(!Il),_l(!1)},at=e=>{rn(!1),e&&A(V,U,{headline:"VAS POPUP CLOSE"})},rt=()=>{let e="undefined"!=typeof window&&localStorage.getItem("lineCheckResponse");we=e&&(null===JSON||void 0===JSON?void 0:JSON.parse(e)),Ee="undefined"!=typeof window&&b.get("chAddressJson"),Rl(!Ml),"function"==typeof Ce&&Ce(),ut()},st=P(null==Dn?void 0:Dn.bloks,Rn),ct=null===(ro=null==st?void 0:st[0])||void 0===ro?void 0:ro.tvProductId,vt=e=>{var o,l,n,t,i,d,a,r,s,c;const v=Ve&&(null===(n=null===(l=null===(o=null==Qn?void 0:Qn[0])||void 0===o?void 0:o.promotionInfo)||void 0===l?void 0:l[0])||void 0===n?void 0:n.id),u=Ve&&(null===(d=null===(i=null===(t=null==Qn?void 0:Qn[0])||void 0===t?void 0:t.promotionInfo)||void 0===i?void 0:i[0])||void 0===d?void 0:d.version),m=_e?{pointsBurnt:null===(r=null===(a=null==Qn?void 0:Qn[0])||void 0===a?void 0:a.rewards)||void 0===r?void 0:r.points,rewardOfferId:null===(c=null===(s=null==Qn?void 0:Qn[0])||void 0===s?void 0:s.rewards)||void 0===c?void 0:c.offerId,gloxTokenId:Je}:void 0;Qn&&Qn[0]&&(Qn[0].fromPopup=mn),ht("false"),sessionStorage.removeItem("vasPopUp"),cn(!1),x(kl,Fn,Ol,Qn,be,pt,Rn,ct,we,Ee,Rl,Ml,$e,xe,null!=lt?lt:e,se,tn,v,u,m)},ut=e=>{var o,l,n,t,i,d,a,r,s;pn(!1),xl(!1);let c=void 0!==typeof window&&b.get("sunriseAuth");const v=c&&JSON.parse(c),u=!(!(null==be?void 0:be.enableExistingCustomer)||null!=v);if(sessionStorage.removeItem(ie),(null===(o=null==be?void 0:be.linecheckData)||void 0===o?void 0:o.length)>0&&!Rn&&!Jn){return void(document.getElementById("linecheck")&&$e())}if(Jn&&!Rn&&(null===(l=null==be?void 0:be.loginData)||void 0===l?void 0:l.length)>0&&u)Ul(!0);else if(qn&&(null===(n=Qn[0])||void 0===n?void 0:n.isBundle)){let o=!1;zn||((null===(t=Qn[0])||void 0===t?void 0:t.isBundle)?null===(d=null===(i=Qn[0])||void 0===i?void 0:i.bundledOffers)||void 0===d||d.map(e=>{var l,n,t;"internet"!==(null===(l=null==e?void 0:e.productType)||void 0===l?void 0:l.toLowerCase())&&"tv"!=(null===(n=null==e?void 0:e.productType)||void 0===n?void 0:n.toLowerCase())||(null==e?void 0:e.recommendAccessory)&&(o=null==e?void 0:e.recommendAccessory),"mobile"!==(null===(t=null==e?void 0:e.productType)||void 0===t?void 0:t.toLowerCase())||(o=!1)}):(null===(a=null==Qn?void 0:Qn[0])||void 0===a?void 0:a.recommendAccessory)&&(o=null===(r=null==Qn?void 0:Qn[0])||void 0===r?void 0:r.recommendAccessory)),$(pt,Qn,se,Ve,null==Dn?void 0:Dn.productName,o),vt(e)}else Wn&&(null===(s=Qn[0])||void 0===s?void 0:s.isBundle)&&!sn?(rn(!0),cn(!0),ht("true"),window.addEventListener("beforeunload",function(e){ht("false"),sessionStorage.removeItem("vasPopUp"),cn(!1)})):(xe&&kl(!0),vt(e))},mt=(e,o)=>l=>{var n;const t=void 0!==typeof window&&b.get("one-commerce-cartId");(null==be?void 0:be.enableReplacePopup)&&t?(Cn.current=()=>e(l),yn.current=Boolean(o),Sn(null!=o?o:null===(n=null==be?void 0:be.generalReplacePopup)||void 0===n?void 0:n[0]),wn(!0)):e(l)},pt=S(Qn,Rn,null==be?void 0:be.pageType,!1,tn,Ve);i(()=>{var e,o;setTimeout(()=>{y(pe,ge)},100);const l=k(Rn?Qn:null!==(o=null===(e=null==Qn?void 0:Qn[0])||void 0===e?void 0:e.bundledOffers)&&void 0!==o?o:Qn);Dl(Object.assign({},l))},[ce,Le,tn,hn,((null==Le?void 0:Le.TV)||(null==Le?void 0:Le.gigaSpeed)||(null==Le?void 0:Le.Netflix))&&Array.isArray(Qn)&&3===(null===(co=null===(so=null==Qn?void 0:Qn[0])||void 0===so?void 0:so.bundledOffers)||void 0===co?void 0:co.length)]);const gt=()=>{((null==st?void 0:st.length)>0||Wn)&&Fl(!0)},ft=null===(vo=null==be?void 0:be.productContainer)||void 0===vo?void 0:vo[0];i(()=>{Nl&&(xe&&null==Kn?(_l(!Gl),on(!en)):xe&&(null==Kn?void 0:Kn.siteId)&&it())},[Nl]),i(()=>{var e;if(_n){const{store:o}=_n;(null===(e=null==o?void 0:o.ottOptionsApi)||void 0===e?void 0:e.length)>0&&0===(null==gn?void 0:gn.length)&&fn(null==o?void 0:o.ottOptionsApi)}},[_n]),i(()=>{if(!Nn||!(null==Ln?void 0:Ln.startTime)||!(null==Ln?void 0:Ln.endTime))return void On(!1);On(C(Ln.startTime,Ln.endTime));const e=T(Ln.startTime,Ln.endTime);if(e<=0)return;const o=setTimeout(()=>{On(C(Ln.startTime,Ln.endTime))},e);return()=>clearTimeout(o)},[Nn,null==Ln?void 0:Ln.startTime,null==Ln?void 0:Ln.endTime]),i(()=>{var e;const o=kn.current;if(!o||!(null===(e=null==se?void 0:se.timer)||void 0===e?void 0:e.length)||!Nn)return void bn(0);const l=()=>{bn(o.clientHeight)};if(l(),"undefined"==typeof ResizeObserver)return;const n=new ResizeObserver(l);return n.observe(o),()=>{n.disconnect()}},[null===(uo=null==se?void 0:se.timer)||void 0===uo?void 0:uo.length,Nn]),i(()=>{vn&&(at(),un(!0),ht("false"),sessionStorage.removeItem("vasPopUp"),cn(!1),vt())},[vn]),i(()=>{const e=()=>{const e=sessionStorage.getItem("vasPopUp");cn("true"===e)};e();const o=o=>{o.storageArea===sessionStorage&&"vasPopUp"===o.key&&e(),o.storageArea===sessionStorage&&"vasPopUp"===o.key&&null===o.newValue&&cn(!1)},l=()=>{e()};return window.addEventListener("storage",o),window.addEventListener("vasPopUpChange",l),()=>{window.removeEventListener("storage",o),window.removeEventListener("vasPopUpChange",l)}},[]);const ht=e=>{sessionStorage.setItem("vasPopUp",e);const o=new Event("vasPopUpChange");window.dispatchEvent(o)};return o.createElement("div",null,yl&&xn&&a(o.createElement(d,{keyParams:"loading"}),xn),$n&&o.createElement("div",{className:"w-75 pb-2"},o.createElement(r,null)),!$n&&we&&se&&Ee&&!Rn&&o.createElement("div",{className:s.selected},o.createElement("span",{style:{paddingBottom:"10px"}},Jn?o.createElement("span",{className:s.activeicon},o.createElement("img",{src:`${Mn}/icons/lineCheck-success.svg`,alt:"",width:24,height:24,className:s.activeicon}),o.createElement("span",null,null==he?void 0:he.subscriptionAvalTxt)):o.createElement("span",{className:s.inactiveicon},o.createElement("img",{src:`${Mn}/icons/cross_disabled.svg`,alt:"",width:24,height:24,className:s.inactiveicon}),o.createElement("span",null,null==he?void 0:he.notSubscriptionTxt)))),o.createElement("div",{className:`${!Rn&&!1===Jn&&(null===(mo=null==be?void 0:be.linecheckData)||void 0===mo?void 0:mo.length)>0&&"global/coverage-check"!==(null===(fo=null===(go=null===(po=null==be?void 0:be.linecheckData)||void 0===po?void 0:po[0])||void 0===go?void 0:go.reference)||void 0===fo?void 0:fo.default_full_slug)?s.overlay:""}\n ${Me&&!(null===(bo=null===(ho=null==Qn?void 0:Qn[0])||void 0===ho?void 0:ho.eligibility)||void 0===bo?void 0:bo.fpb)?s.disabled:""}\n `,style:{flexDirection:"column"}},o.createElement("div",{className:s.bundleproductcard},o.createElement("div",{id:`timer-section${pe}${fe}`,"data-timer-active":hn>0?"true":"false"},(null===(Eo=null==se?void 0:se.timer)||void 0===Eo?void 0:Eo.length)&&Nn?o.createElement("div",{style:{height:`${hn}px`,transition:"height 0.3s ease"}}):null),o.createElement("div",{className:`${s.productcontainer}`,style:(()=>{const e=An?In:se,o=null==e?void 0:e.showBorder,l=null==e?void 0:e.borderGradient,n=null==e?void 0:e.borderColor;return{borderColor:o&&!l?n||"":"transparent",borderWidth:o?"4px":"0px",borderStyle:o?"solid":"none",borderRadius:o?"8px":"",background:o&&l?`linear-gradient(white, white) padding-box, ${l} border-box`:void 0}})()},Un&&o.createElement(ae,{badges:se.badgesContainer}),jn&&o.createElement("div",{className:`${s.highlightText}`},null==se?void 0:se.highlightText),An&&((null==In?void 0:In.badgeContainer)?o.createElement(ae,{badges:null==In?void 0:In.badgeContainer}):o.createElement("div",{className:`${s.promocontainer}`,style:{background:null==In?void 0:In.bestSellerColor}},null==In?void 0:In.displayText)),o.createElement("div",{ref:kn,className:s.timerContainer},(null===(wo=null==se?void 0:se.timer)||void 0===wo?void 0:wo.length)&&Nn?o.createElement(de,{content:null===(Co=null==se?void 0:se.timer)||void 0===Co?void 0:Co[0],hasHighlightText:Un||An,onTimerChange:e=>{On(e)}}):null),o.createElement("div",{className:`${s.detailsection} ${s.imageFullWidthSection}`,id:`detailsectionv3${pe}${fe}`},o.createElement("div",{className:`${s.headersection}`},o.createElement("div",{className:`${s.titlesection}`},o.createElement("div",{className:`${s.productheader}`,id:`titleV3${pe}${fe}`},null==Dn?void 0:Dn.productName),o.createElement("div",null,(null===(Po=null==Dn?void 0:Dn.icon)||void 0===Po?void 0:Po.filename)&&o.createElement("img",{className:`${s.imagecontainer}`,src:null===(So=null==Dn?void 0:Dn.icon)||void 0===So?void 0:So.filename,height:15,width:20,alt:"productIcon"}))),o.createElement("div",{className:`${s.productdescription}`,id:`descriptionV3${pe}${fe}`},o.createElement(c,{content:null==Dn?void 0:Dn.description})),o.createElement("div",{className:`${s.images}`},(null===(yo=null==Dn?void 0:Dn.img)||void 0===yo?void 0:yo.filename)&&o.createElement("img",{className:`${s.imagespace} ${(null==se?void 0:se.highlightText)&&s.borderimage}`,alt:"cardimg",src:`${null===(ko=null==Dn?void 0:Dn.img)||void 0===ko?void 0:ko.filename}/m/`}))),o.createElement("div",{className:`${s.productconfig}`,id:`product-configv3${pe}${fe}`},$n?o.createElement(o.Fragment,null,o.createElement("div",{className:s.space}),o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:5}),o.createElement("div",{className:s.space}),o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:5})):o.createElement("div",null,(null==Dn?void 0:Dn.bloks)&&(null===(To=null==Dn?void 0:Dn.bloks)||void 0===To?void 0:To.map((e,l)=>o.createElement(v,{content:e,indexKey:l,constants:he,key:l,showModalPopup:gt,setToggleState:Ie,toggleState:Le,noTabs:Ne,mainContent:be,enableTVStreamingOptions:null==se?void 0:se.enableTVStreamingOptions,metadata:me,setTvOptionsData:Xn})))))),o.createElement("div",{className:`${s.detailsection}`,id:`benefits-price-section${pe}${fe}`},o.createElement("div",{id:`exclusive-benefits-section${pe}${fe}`},(null===(xo=null==Dn?void 0:Dn.extraBenefits)||void 0===xo?void 0:xo.length)>0&&o.createElement(le,{content:null===($o=null==Dn?void 0:Dn.extraBenefits)||void 0===$o?void 0:$o[0]})),o.createElement("div",{className:`${s.benefitssection}`,id:`benefits-section${pe}${fe}`},(null===(Do=null==Dn?void 0:Dn.benefits)||void 0===Do?void 0:Do.length)>0&&o.createElement(u,{content:null==Dn?void 0:Dn.benefits,benefitData:pt,constants:he,pricesToggleState:Ge,togglePriceLabel:null==Re?void 0:Re.togglePriceLabel})),o.createElement("br",null),o.createElement("div",{className:`${s.giftsection}`,id:`gift-section${pe}${fe}`},(null==$l?void 0:$l.showGift)&&(null===(Io=null==In?void 0:In.singleGift)||void 0===Io?void 0:Io.map((e,l)=>o.createElement(I,{content:e,key:l}))),(null==$l?void 0:$l.showGift)&&(null===(Lo=null==In?void 0:In.giftConfig)||void 0===Lo?void 0:Lo.map((e,l)=>o.createElement(L,{content:e,key:l,selectedGiftItem:et,parentPoType:Rn?"MOBILE":"HOME"}))),o.createElement("div",{className:`${s.giftsection}`,id:`cashback-section${pe}${fe}`},o.createElement(j,{uniqueProductData:Qn,mainContent:be}))),o.createElement("div",{className:`${s.ordersection}`,id:`order-section${pe}${fe}`},""===(null==pt?void 0:pt.base)?o.createElement("div",null,o.createElement(r,{stylename:s.skeletontittle})):o.createElement("div",{id:`price-section${pe}${fe}`},o.createElement(m,{priceCollection:pt,constants:he,promoText:null==Dn?void 0:Dn.promoText,deviceFlow:Be,content:se,offeringData:ce,uniqueId:ve})),!_e&&o.createElement("div",{className:`${s.discountedpricetoggleSection}`,id:`discountedpricetoggle-section${pe}${fe}`},Hn||"INLINE"!==(null==Re?void 0:Re.togglePosition)?null:o.createElement(ne,{content:Dn,index:fe,lineTable:!0,toggleContent:Re})),xe&&(null==he?void 0:he.P2PDiscountLabel)&&o.createElement("div",{className:s.longterm},null==he?void 0:he.P2PDiscountLabel),$n?o.createElement(o.Fragment,null,o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:2})):o.createElement("div",{className:`${(null==ue?void 0:ue.swapButton)&&s.swapButton}`},o.createElement("div",{style:{padding:"16px 0 0 0"}},o.createElement(p,{isMobileFlow:Rn,createCartCall:(null==Be?void 0:Be.isDeviceFlow)?mt(e=>{xl(!1);Oe({setShowLoader:kl,cartEndPoint:Fn,giftItem:Ol,uniqueProductData:Qn,mainContent:be,showPrice:pt,isMobileFlow:Rn,eligibleBundle:we,address:Ee,setShowLinecheck:Rl,showLinecheck:Ml,lineCheckCallBack:$e,enableP2P:xe,msisdnn:null!=lt?lt:e,content:se,selectedRP:je,continueCart:Ae})}):mt(Rn?Zn:ut),constants:he,storyContent:ue,showPrice:pt,isAvailable:Jn,address:Ee,uniqueProductBenefits:null==Qn?void 0:Qn[0],alwaysActive:!Jn&&(null===(No=null==be?void 0:be.linecheckData)||void 0===No?void 0:No.length)>0&&"global/coverage-check"===(null===(jo=null===(Oo=null===(Bo=null==be?void 0:be.linecheckData)||void 0===Bo?void 0:Bo[0])||void 0===Oo?void 0:Oo.reference)||void 0===jo?void 0:jo.default_full_slug),flexUpgradeFreePopup:null===(Uo=null===(Ao=null==be?void 0:be.flexUpgradeFreePopup)||void 0===Ao?void 0:Ao.reference)||void 0===Uo?void 0:Uo.content,content:se,deviceUltimateBundle:Me,forceDisabled:Boolean(null===(Fo=null===(Vo=null==Qn?void 0:Qn[0])||void 0===Vo?void 0:Vo.rewards)||void 0===Fo?void 0:Fo.notEligibleReason),notEligibileReason:null===(Ro=null===(Mo=null==Qn?void 0:Qn[0])||void 0===Mo?void 0:Mo.rewards)||void 0===Ro?void 0:Ro.notEligibleReason})),!_e&&(null===(Go=null==ue?void 0:ue.addSmartPhone)||void 0===Go?void 0:Go.length)>0&&!(null==Be?void 0:Be.isDeviceFlow)&&o.createElement("div",{style:{textAlign:"center"}},(null==ue?void 0:ue.swapButton)?(null==ue?void 0:ue.ctaLabel)&&o.createElement("div",{style:{padding:"16px 0"}},o.createElement("button",{className:"primarybutton",onClick:()=>{var e;return mt(()=>D(pt,ue,Qn,"",se,Ve),null===(e=null==be?void 0:be.replacePopupWithSmartphone)||void 0===e?void 0:e[0])()}},o.createElement("span",{className:s.buttontext},null==ue?void 0:ue.ctaLabel))):!(null==se?void 0:se.redirectOnly)&&o.createElement("div",{style:{padding:"12px 0 0 0"}},o.createElement(te,{content:{buttonType:"Secondary-V1",buttonLabel:(null==se?void 0:se.ultimateBundlePromotion)?null==he?void 0:he.ultimateBundleLbl:null===(Jo=null===(_o=null==ue?void 0:ue.addSmartPhone)||void 0===_o?void 0:_o[0])||void 0===Jo?void 0:Jo.buttonLabel,buttonIcon:null===(qo=null===(Wo=null==ue?void 0:ue.addSmartPhone)||void 0===Wo?void 0:Wo[0])||void 0===qo?void 0:qo.buttonIcon,buttonAlignment:"left"},wafIdentifier:ye,style:{width:"100%"},onClick:()=>{var e;return mt(()=>xe?void Bl(!0):D(pt,ue,Qn,"",se,Ve),null===(e=null==be?void 0:be.replacePopupWithSmartphone)||void 0===e?void 0:e[0])()}}))),o.createElement("div",{className:s.productcontractduration,id:`contract-section${pe}${fe}`,style:{paddingTop:(null===(Ho=null==ue?void 0:ue.addSmartPhone)||void 0===Ho?void 0:Ho.length)>0&&!(null==Be?void 0:Be.isDeviceFlow)&&!(null==ue?void 0:ue.swapButton)&&!(null==se?void 0:se.redirectOnly)?"8px":void 0}},(null==pt?void 0:pt.contractDuration)>"1"?B(null===(zo=null==he?void 0:he.minContractDuration)||void 0===zo?void 0:zo.substring(1),[null==pt?void 0:pt.contractDuration]):null==he?void 0:he.noContractDuration)),o.createElement("div",{style:{textAlign:"center",padding:"4px"}},(null===(Ko=null==Dn?void 0:Dn.productDetails)||void 0===Ko?void 0:Ko.length)>0&&o.createElement("span",{className:s.productdetailslink,onClick:()=>{var e,o,l;xl(!Tl),A(V,R,X(Qn,"",M));const n=localStorage.getItem("prospectId"),t=null!==(l=null===(o=null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.pathname)||void 0===o?void 0:o.split("/"))&&void 0!==l?l:[],i=t[t.length-1],d={eventTimestamp:O(),eventType:"PageView",pageType:"ProductDetails",pageLocation:i,targetProduct:Vn};n&&z(Tn,d,n)}},null==he?void 0:he.productDetailsLink)),Tl&&o.createElement(g,{content:null==Dn?void 0:Dn.productDetails,showProductDetail:Tl,setShowProductDetail:xl,constants:he,showPrice:pt,isMobileFlow:Rn,createCartCall:Rn?Zn:ut,storyContent:ue,isAvailable:Jn,address:Ee,flexUpgradeFreePopup:null===(Xo=null===(Qo=null==be?void 0:be.flexUpgradeFreePopup)||void 0===Qo?void 0:Qo.reference)||void 0===Xo?void 0:Xo.content,notEligibileReason:null===(Zo=null===(Yo=null==Qn?void 0:Qn[0])||void 0===Yo?void 0:Yo.rewards)||void 0===Zo?void 0:Zo.notEligibleReason})))))),Me&&Qn&&!(null===(ol=null===(el=null==Qn?void 0:Qn[0])||void 0===el?void 0:el.eligibility)||void 0===ol?void 0:ol.fpb)&&o.createElement("div",{className:s.disabledInfo},o.createElement(c,{content:null==he?void 0:he.fpbNotCompatibleText})),Vl&&($n?o.createElement(r,null):o.createElement(G,{content:null==st?void 0:st[0],setShowModal:Fl,showModal:Vl,constants:he})),Al&&(null===(ll=null==be?void 0:be.loginData)||void 0===ll?void 0:ll.length)>0&&xn&&a(o.createElement(w,{content:null===(nl=null==be?void 0:be.loginData)||void 0===nl?void 0:nl[0],closeLogin:()=>{Ul(!1)},metadata:me,onSuccess:()=>{Ul(!1),Te(),sessionStorage.removeItem("vasPopUp"),cn(!1),xe?it():ut()},isProdEnv:Fe}),xn),Gl&&xe&&!Al&&en&&o.createElement(q,{modalState:Il,handler:dt,showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px"},o.createElement(W,{onClose:Yn,content:null===(dl=null===(il=null===(tl=null==be?void 0:be.productContainer)||void 0===tl?void 0:tl[0])||void 0===il?void 0:il.p2pBloks)||void 0===dl?void 0:dl[0],prepaid:!1})),xe&&Yl&&ql&&en&&o.createElement(q,{modalState:Il,handler:dt,showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px",id:"table-product"},o.createElement(W,{onClose:Yn,content:null===(sl=null===(rl=null===(al=null==be?void 0:be.productContainer)||void 0===al?void 0:al[0])||void 0===rl?void 0:rl.p2pBloks)||void 0===sl?void 0:sl[1],prepaid:!0})),(null==Ql?void 0:Ql.length)>1&&xe&&Yl&&!ql&&ln&&o.createElement(q,{modalState:ln,handler:()=>{kl(!1),nn(!ln)},showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px"},o.createElement(Q,{onSubmit:e=>{nn(!ln),Nl?D(pt,ue,Qn,e,se,Ve):ut(null==e?void 0:e.msisdn)},exsistingSubscriptionData:Ql,updatedContent:ft})),Ml&&(null==be?void 0:be.enableLinecheckOverlay)&&!Rn&&(null===(cl=null==be?void 0:be.linecheckData)||void 0===cl?void 0:cl.length)>0&&!xe&&"global/new-linecheck-test"===(null===(ml=null===(ul=null===(vl=null==be?void 0:be.linecheckData)||void 0===vl?void 0:vl[0])||void 0===ul?void 0:ul.reference)||void 0===ml?void 0:ml.default_full_slug)?o.createElement(_,{content:null===(pl=null==be?void 0:be.linecheckData)||void 0===pl?void 0:pl[0],onSuccess:rt,showModal:Ml,setShowModal:Rl,productName:null==Dn?void 0:Dn.productName,productId:null==Dn?void 0:Dn.productId}):Ml&&(null==be?void 0:be.enableLinecheckOverlay)&&!Rn&&(null===(gl=null==be?void 0:be.linecheckData)||void 0===gl?void 0:gl.length)>0&&!xe&&"global/coverage-check"===(null===(bl=null===(hl=null===(fl=null==be?void 0:be.linecheckData)||void 0===fl?void 0:fl[0])||void 0===hl?void 0:hl.reference)||void 0===bl?void 0:bl.default_full_slug)?o.createElement(Y,{content:null===(El=null==be?void 0:be.linecheckData)||void 0===El?void 0:El[0].reference.content.body[0],overlayIsOpen:!0,externalHandleModal:Rl,productName:null==Dn?void 0:Dn.productName,showModal:Ml,setShowModal:Rl,onSuccess:()=>{let e="undefined"!=typeof window&&localStorage.getItem("lineCheckResponse");we=e&&(null===JSON||void 0===JSON?void 0:JSON.parse(e)),Ee="undefined"!=typeof window&&b.get("chAddressJson"),"function"==typeof Ce&&Ce()},onCreateCart:rt,lineCheckOnClear:Ue,productId:null==Dn?void 0:Dn.productId}):null,Jl&&Rn&&(null===(wl=null==ue?void 0:ue.benefitsValidate)||void 0===wl?void 0:wl.length)>0&&o.createElement(J,{content:null===(Cl=null==ue?void 0:ue.benefitsValidate)||void 0===Cl?void 0:Cl[0],loginContent:null===(Pl=null==be?void 0:be.loginData)||void 0===Pl?void 0:Pl[0],metadata:me,createCartCall:ut,fetchOfferData:Se,basicConfigUrl:ye,selectedExistingOption:ke,setShowBenefit:Wl,setLoginSuccess:Te,isProdEnv:Fe}),an&&o.createElement(q,{modalState:an,handler:at,showFooter:!1,width:"mobile"===Gn?"":"tablet"===Gn?"700px":"990px",fixedWidth:"mobile"===Gn?"":"tablet"===Gn?"700px":"990px",height:"845px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"24px"},o.createElement(oe,{content:null===(Sl=null==be?void 0:be.optionsPopup)||void 0===Sl?void 0:Sl[0],addOptionsCallBack:e=>{pn(!0),un(!0),Xn(e)},metadata:me,constants:he,mainContent:be,preSelectedOptions:[],optionsResponse:gn,updateResponseList:fn,showPrice:pt,productData:Dn,offeringData:ce,uniqueId:ve,deviceFlow:Be})),En&&Pn&&o.createElement(re,{modalState:En,onCloseHandler:()=>{Cn.current=null,wn(!1)},content:Pn,wafIdentifier:ye,onPrimaryClick:()=>{const e=Cn.current;Cn.current=null,yn.current&&b.remove("one-commerce-cartId"),yn.current=!1,wn(!1),null==e||e()},onSecondaryClick:()=>{Cn.current=null,wn(!1)}}))};export{se as default};
1
+ import{__awaiter as e}from"../../_virtual/_tslib.js";import o,{useState as l,useRef as n,useContext as t,useEffect as i}from"react";import d from"../Dotloader/Dotloader.js";import{createPortal as a}from"react-dom";import r from"../SkeletonLoader/SkeletonLoader.js";import s from"./StaticLineTable.module.scss.js";import c from"../richtext.js";import v from"./StaticProductEntitlement.js";import u from"./StaticBenefit.js";import m from"./DynamicPriceSection.js";import p from"./CheckoutButton.js";import g from"./StaticProductDetails.js";import{LineTableBasicPropConfig as f,AssetPathPropConfig as h}from"../../services/LineTableBasicPropConfig.js";import b from"js-cookie";import{LoginBasicPropConfig as E}from"../../services/LoginBasicPropConfig.js";import w from"../login/LoginModalV2.js";import{isTimerActive as P,fetchServiceOptions as C,fetchPrice as S,findHeight as y,checkGiftOrCashback as k,getTimeUntilNextTimerEvent as T,staticCreateCart as x,combineWithVasOptions as $,combineWithSmartPhone as D}from"./Product.utils.js";import I from"../ProductDetailsV3/GiftConfigV2.js";import L from"../ProductDetailsV3/ChooseGiftV2.js";import{viewport as N,replacePlaceholder as B,getUtcTimestamp as O}from"../../utils/utils.js";import j from"./StaticProductCashback.js";import{trackNewDatalayerEvent as A}from"../../utils/AnalyticsUtils.js";import{CTABUTTONCLICK as U,GAEVENT as V,EXISTINGCUSTOMER as F,LINETABLE as M,DOWNLOADPRODUCT as R}from"../../Analytics/AnalyticsConstants.js";import G from"./TVChannelModal.js";import _ from"../LineCheckV3/LinecheckModal.js";import J from"../BenefitWrapper/BenefitsValidateWrapper.js";import W from"../PretoPost/PreToPostSubsPopup.js";import q from"../LineCheckV3/GenericModal.js";import{fetchSubscriptionData as H,trackPegaEvents as z,validateP2P as K}from"../../services/LineTableService.js";import Q from"./ExsistingSubscriptionModal.js";import{getEcomCartInfo as X}from"../../models/Analytics/items.js";import Y from"../NewLineCheck/CoverageCheckModal.js";import{API_BASE_BASEPOINT as Z}from"../../services/api-constants.js";import{AppContext as ee}from"./StaticLineTableStore/StaticLineTableProvider.js";import oe from"./OttServiceOptions/OttServiceOptionsSmallPopup.js";import le from"./StaticExclusiveBenefit.js";import ne from"../UserLoggedPricesToggle/UserLoggedPricesToggle.js";import te from"../FalconButtonV2/FalconButtonV2.js";import{ONE_ECOMMERCE_INTERNET_SUMMARY as ie}from"../../utils/constants.js";import de from"./StaticLineTabelTimer/StaticLineTabelTimer.js";import{useProductCardBadge as ae}from"./ProductCardBadgeProvider.js";import re from"../GenericPopup/GenericPopup.js";const se=({content:se,offeringData:ce,uniqueId:ve,storyContent:ue,metadata:me,tabIndex:pe,cardsLength:ge,indexKey:fe,constants:he,mainContent:be,address:Ee,eligibleBundle:we,linecheckSuccessCallBack:Pe,selectedOption:Ce,fetchOfferData:Se,basicConfigUrl:ye,selectedExistingOption:ke,setLoginSuccess:Te,enableP2P:xe,lineCheckCallBack:$e,loginSuccess:De,setToggleState:Ie,toggleState:Le,noTabs:Ne,deviceFlow:Be,deviceFlowCallBack:Oe,selectedRP:je,continueCart:Ae,lineCheckOnClear:Ue,pegaIntegration:Ve,isProdEnv:Fe,deviceUltimateBundle:Me,toggleContent:Re,pricesToggleState:Ge,isShogunFlow:_e,shogunToken:Je})=>{var We,qe,He,ze,Ke,Qe,Xe,Ye,Ze,eo,oo,lo,no,to,io,ao,ro,so,co,vo,uo,mo,po,go,fo,ho,bo,Eo,wo,Po,Co,So,yo,ko,To,xo,$o,Do,Io,Lo,No,Bo,Oo,jo,Ao,Uo,Vo,Fo,Mo,Ro,Go,_o,Jo,Wo,qo,Ho,zo,Ko,Qo,Xo,Yo,Zo,el,ol,ll,nl,tl,il,dl,al,rl,sl,cl,vl,ul,ml,pl,gl,fl,hl,bl,El,wl,Pl,Cl,Sl;const yl=ae(),[kl,Tl]=l(!1),[xl,$l]=l(!1),[Dl,Il]=l({showGift:!1,cashbackAvailable:!1}),[Ll,Nl]=l(!0),[Bl,Ol]=l(!1),[jl,Al]=l([]),[Ul,Vl]=l(!1),[Fl,Ml]=l(!1),[Rl,Gl]=l(!1),[_l,Jl]=l(!1),[Wl,ql]=l(!1),[Hl,zl]=l(!1),Kl=`${ye}inf/customer-management/subscriptions`,Ql=`${ye}inf/resource-management/msisdns/pretopost/validation`,[Xl,Yl]=l([]),[Zl,en]=l(!1),[on,ln]=l(!1),[nn,tn]=l(!1),[dn,an]=l([]),[rn,sn]=l(!1),[cn,vn]=l(!1),[un,mn]=l(!1),[pn,gn]=l(!1),[fn,hn]=l([]),[bn,En]=l(0),[wn,Pn]=l(!1),Cn=n(null),[Sn,yn]=l(null),kn=n(!1),Tn=n(null),xn=`${ye}inf/${Z.CUSTOMER}`,$n=void 0!==typeof window&&document.getElementById("static-linetable"),Dn=0===(null===(We=Object.keys(se))||void 0===We?void 0:We.length),In=null===(Qe=null===(Ke=null===(ze=null===(He=null===(qe=null==se?void 0:se.products)||void 0===qe?void 0:qe[0])||void 0===He?void 0:He.reference)||void 0===ze?void 0:ze.content)||void 0===Ke?void 0:Ke.product)||void 0===Qe?void 0:Qe[0],Ln=null===(oo=null===(eo=null===(Ze=null===(Ye=null===(Xe=null==se?void 0:se.promotion)||void 0===Xe?void 0:Xe[0])||void 0===Ye?void 0:Ye.reference)||void 0===Ze?void 0:Ze.content)||void 0===eo?void 0:eo.promoDescription)||void 0===oo?void 0:oo[0],Nn=null===(lo=null==se?void 0:se.timer)||void 0===lo?void 0:lo[0],Bn=null==Nn?void 0:Nn.enableCounter,[On,jn]=l(!!(Bn&&(null==Nn?void 0:Nn.startTime)&&(null==Nn?void 0:Nn.endTime))&&P(Nn.startTime,Nn.endTime)),An=Boolean((null==se?void 0:se.highlightText)&&!0!==Ge&&!On&&!(yl&&(null==se?void 0:se.badgesContainer))),Un=Boolean((null==Ln?void 0:Ln.displayText)&&!(null==se?void 0:se.notShowPromotionLabel)&&!0!==Ge&&!On),Vn=Boolean(yl&&(null==se?void 0:se.badgesContainer)&&!0!==Ge&&!On&&!Un),Fn=null==In?void 0:In.productId,Mn=null===(no=null==f?void 0:f.getInstance())||void 0===no?void 0:no.getCartUrl(),Rn=null===(to=null==h?void 0:h.getInstance())||void 0===to?void 0:to.getAssetPath(),Gn="MOBILE"===(null==ue?void 0:ue.pageType),_n=N(),Jn=t(ee);let Wn;Wn=Ee&&(null===(io=null==we?void 0:we.eligibleBundle)||void 0===io?void 0:io.includes(Fn));const qn=null==se?void 0:se.enableTVStreamingOptionsPopUp,Hn=null==se?void 0:se.enableTVStreamingOptionsStepper,zn=null==se?void 0:se.disableDiscountedPriceToggle,Kn=null==se?void 0:se.skipAccessoriesPage;E.create({baseURL:null!=ye?ye:""});let Qn=void 0!==typeof window&&b.get("sunriseAuth");Qn=Qn&&JSON.parse(Qn);const Xn=((null==ce?void 0:ce[ve])||[]).filter(e=>(null==e?void 0:e.id)===Fn),Yn=e=>{an(e)},Zn=()=>{Vl(!0),Jl(!_l),ln(!on)},et=()=>{var e,o,l;if($l(!1),xe&&null==Qn)Jl(!_l),ln(!on);else if(xe&&(null==Qn?void 0:Qn.siteId))dt();else if(Ce===F&&(null==ke?void 0:ke.length)>0)ql(!0);else{!!((null==be?void 0:be.enableExistingCustomer)&&null==Qn||!Qn&&!0===Ge&&(null==Re?void 0:Re.enableLoggedInPrice))?Vl(!0):mt()}if(Ve){const n=localStorage.getItem("prospectId"),t=null!==(l=null===(o=null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.pathname)||void 0===o?void 0:o.split("/"))&&void 0!==l?l:[],i=t[t.length-1],d={eventTimestamp:O(),eventType:"PageView",pageType:"CartCreated",pageLocation:i,targetProduct:Fn};n&&z(xn,d,n)}},ot=e=>{const o=jl.findIndex(o=>(null==e?void 0:e.giftGroupId)===(null==o?void 0:o.giftGroupId)),l=jl;-1===o?l.push(e):l[o]=e,Al([...l])},lt=new URLSearchParams(null===(ao=null===window||void 0===window?void 0:window.location)||void 0===ao?void 0:ao.search),nt=null==lt?void 0:lt.get("selectedMsisdn"),tt=e=>{var o;1===(null==e?void 0:e.length)?(Bl?D(gt,ue,Xn,null==e?void 0:e[0],se,Ve):mt(null===(o=null==e?void 0:e[0])||void 0===o?void 0:o.msisdn),zl(!1)):(null==e?void 0:e.length)>1?(Yl(e),tn(!nn),zl(!1)):(ln(!on),zl(!0),Nl(!0),Tl(!1))},it=(o,l)=>e(void 0,void 0,void 0,function*(){yield K(null==o?void 0:o.msisdn,Ql).then(e=>{e&&l.push(o)}).catch(e=>{console.log("error",e)})}),dt=()=>{var o;Tl(!0);try{null===(o=H("PREPAID",Kl))||void 0===o||o.then(o=>e(void 0,void 0,void 0,function*(){if(204==(null==o?void 0:o.subscriptionData))ln(!on),zl(!0),Nl(!0),Tl(!1);else{const l=null==o?void 0:o.subscriptionData,n=l.find(e=>e.msisdn===nt);if(l){const o=[];nt?(yield it(n,o),tt(o)):yield Promise.all(null==l?void 0:l.map(l=>e(void 0,void 0,void 0,function*(){yield it(l,o)}))).then(e=>{tt(o)})}}})).catch(e=>{console.log("error---\x3e",e),Tl(!1)})}catch(e){console.log("error---\x3e",e),Tl(!1)}en(!0)},at=()=>{ln(!Ll),Jl(!1)},rt=e=>{sn(!1),e&&A(V,U,{headline:"VAS POPUP CLOSE"})},st=()=>{let e="undefined"!=typeof window&&localStorage.getItem("lineCheckResponse");we=e&&(null===JSON||void 0===JSON?void 0:JSON.parse(e)),Ee="undefined"!=typeof window&&b.get("chAddressJson"),Gl(!Rl),"function"==typeof Pe&&Pe(),mt()},ct=C(null==In?void 0:In.bloks,Gn),vt=null===(ro=null==ct?void 0:ct[0])||void 0===ro?void 0:ro.tvProductId,ut=e=>{var o,l,n,t,i,d,a,r,s,c;const v=Ve&&(null===(n=null===(l=null===(o=null==Xn?void 0:Xn[0])||void 0===o?void 0:o.promotionInfo)||void 0===l?void 0:l[0])||void 0===n?void 0:n.id),u=Ve&&(null===(d=null===(i=null===(t=null==Xn?void 0:Xn[0])||void 0===t?void 0:t.promotionInfo)||void 0===i?void 0:i[0])||void 0===d?void 0:d.version),m=_e?{pointsBurnt:null===(r=null===(a=null==Xn?void 0:Xn[0])||void 0===a?void 0:a.rewards)||void 0===r?void 0:r.points,rewardOfferId:null===(c=null===(s=null==Xn?void 0:Xn[0])||void 0===s?void 0:s.rewards)||void 0===c?void 0:c.offerId,gloxTokenId:Je}:void 0;Xn&&Xn[0]&&(Xn[0].fromPopup=pn),bt("false"),sessionStorage.removeItem("vasPopUp"),vn(!1),x(Tl,Mn,jl,Xn,be,gt,Gn,vt,we,Ee,Gl,Rl,$e,xe,null!=nt?nt:e,se,dn,v,u,m)},mt=e=>{var o,l,n,t,i,d,a,r,s;gn(!1),$l(!1);let c=void 0!==typeof window&&b.get("sunriseAuth");const v=c&&JSON.parse(c),u=!(!(null==be?void 0:be.enableExistingCustomer)||null!=v);if(sessionStorage.removeItem(ie),(null===(o=null==be?void 0:be.linecheckData)||void 0===o?void 0:o.length)>0&&!Gn&&!Wn){return void(document.getElementById("linecheck")&&$e())}if(Wn&&!Gn&&(null===(l=null==be?void 0:be.loginData)||void 0===l?void 0:l.length)>0&&u)Vl(!0);else if(Hn&&(null===(n=Xn[0])||void 0===n?void 0:n.isBundle)){let o=!1;Kn||((null===(t=Xn[0])||void 0===t?void 0:t.isBundle)?null===(d=null===(i=Xn[0])||void 0===i?void 0:i.bundledOffers)||void 0===d||d.map(e=>{var l,n,t;"internet"!==(null===(l=null==e?void 0:e.productType)||void 0===l?void 0:l.toLowerCase())&&"tv"!=(null===(n=null==e?void 0:e.productType)||void 0===n?void 0:n.toLowerCase())||(null==e?void 0:e.recommendAccessory)&&(o=null==e?void 0:e.recommendAccessory),"mobile"!==(null===(t=null==e?void 0:e.productType)||void 0===t?void 0:t.toLowerCase())||(o=!1)}):(null===(a=null==Xn?void 0:Xn[0])||void 0===a?void 0:a.recommendAccessory)&&(o=null===(r=null==Xn?void 0:Xn[0])||void 0===r?void 0:r.recommendAccessory)),$(gt,Xn,se,Ve,null==In?void 0:In.productName,o),ut(e)}else qn&&(null===(s=Xn[0])||void 0===s?void 0:s.isBundle)&&!cn?(sn(!0),vn(!0),bt("true"),window.addEventListener("beforeunload",function(e){bt("false"),sessionStorage.removeItem("vasPopUp"),vn(!1)})):(xe&&Tl(!0),ut(e))},pt=(e,o)=>l=>{var n;const t=void 0!==typeof window&&b.get("one-commerce-cartId");(null==be?void 0:be.enableReplacePopup)&&t?(Cn.current=()=>e(l),kn.current=Boolean(o),yn(null!=o?o:null===(n=null==be?void 0:be.generalReplacePopup)||void 0===n?void 0:n[0]),Pn(!0)):e(l)},gt=S(Xn,Gn,null==be?void 0:be.pageType,!1,dn,Ve);i(()=>{var e,o;setTimeout(()=>{y(pe,ge)},100);const l=k(Gn?Xn:null!==(o=null===(e=null==Xn?void 0:Xn[0])||void 0===e?void 0:e.bundledOffers)&&void 0!==o?o:Xn);Il(Object.assign({},l))},[ce,Le,dn,bn,((null==Le?void 0:Le.TV)||(null==Le?void 0:Le.gigaSpeed)||(null==Le?void 0:Le.Netflix))&&Array.isArray(Xn)&&3===(null===(co=null===(so=null==Xn?void 0:Xn[0])||void 0===so?void 0:so.bundledOffers)||void 0===co?void 0:co.length)]);const ft=()=>{((null==ct?void 0:ct.length)>0||qn)&&Ml(!0)},ht=null===(vo=null==be?void 0:be.productContainer)||void 0===vo?void 0:vo[0];i(()=>{Bl&&(xe&&null==Qn?(Jl(!_l),ln(!on)):xe&&(null==Qn?void 0:Qn.siteId)&&dt())},[Bl]),i(()=>{var e;if(Jn){const{store:o}=Jn;(null===(e=null==o?void 0:o.ottOptionsApi)||void 0===e?void 0:e.length)>0&&0===(null==fn?void 0:fn.length)&&hn(null==o?void 0:o.ottOptionsApi)}},[Jn]),i(()=>{if(!Bn||!(null==Nn?void 0:Nn.startTime)||!(null==Nn?void 0:Nn.endTime))return void jn(!1);jn(P(Nn.startTime,Nn.endTime));const e=T(Nn.startTime,Nn.endTime);if(e<=0)return;const o=setTimeout(()=>{jn(P(Nn.startTime,Nn.endTime))},e);return()=>clearTimeout(o)},[Bn,null==Nn?void 0:Nn.startTime,null==Nn?void 0:Nn.endTime]),i(()=>{var e;const o=Tn.current;if(!o||!(null===(e=null==se?void 0:se.timer)||void 0===e?void 0:e.length)||!Bn)return void En(0);const l=()=>{En(o.clientHeight)};if(l(),"undefined"==typeof ResizeObserver)return;const n=new ResizeObserver(l);return n.observe(o),()=>{n.disconnect()}},[null===(uo=null==se?void 0:se.timer)||void 0===uo?void 0:uo.length,Bn]),i(()=>{un&&(rt(),mn(!0),bt("false"),sessionStorage.removeItem("vasPopUp"),vn(!1),ut())},[un]),i(()=>{const e=()=>{const e=sessionStorage.getItem("vasPopUp");vn("true"===e)};e();const o=o=>{o.storageArea===sessionStorage&&"vasPopUp"===o.key&&e(),o.storageArea===sessionStorage&&"vasPopUp"===o.key&&null===o.newValue&&vn(!1)},l=()=>{e()};return window.addEventListener("storage",o),window.addEventListener("vasPopUpChange",l),()=>{window.removeEventListener("storage",o),window.removeEventListener("vasPopUpChange",l)}},[]);const bt=e=>{sessionStorage.setItem("vasPopUp",e);const o=new Event("vasPopUpChange");window.dispatchEvent(o)};return o.createElement("div",null,kl&&$n&&a(o.createElement(d,{keyParams:"loading"}),$n),Dn&&o.createElement("div",{className:"w-75 pb-2"},o.createElement(r,null)),!Dn&&we&&se&&Ee&&!Gn&&o.createElement("div",{className:s.selected},o.createElement("span",{style:{paddingBottom:"10px"}},Wn?o.createElement("span",{className:s.activeicon},o.createElement("img",{src:`${Rn}/icons/lineCheck-success.svg`,alt:"",width:24,height:24,className:s.activeicon}),o.createElement("span",null,null==he?void 0:he.subscriptionAvalTxt)):o.createElement("span",{className:s.inactiveicon},o.createElement("img",{src:`${Rn}/icons/cross_disabled.svg`,alt:"",width:24,height:24,className:s.inactiveicon}),o.createElement("span",null,null==he?void 0:he.notSubscriptionTxt)))),o.createElement("div",{className:`${!Gn&&!1===Wn&&(null===(mo=null==be?void 0:be.linecheckData)||void 0===mo?void 0:mo.length)>0&&"global/coverage-check"!==(null===(fo=null===(go=null===(po=null==be?void 0:be.linecheckData)||void 0===po?void 0:po[0])||void 0===go?void 0:go.reference)||void 0===fo?void 0:fo.default_full_slug)?s.overlay:""}\n ${Me&&!(null===(bo=null===(ho=null==Xn?void 0:Xn[0])||void 0===ho?void 0:ho.eligibility)||void 0===bo?void 0:bo.fpb)?s.disabled:""}\n `,style:{flexDirection:"column"}},o.createElement("div",{className:s.bundleproductcard},o.createElement("div",{id:`timer-section${pe}${fe}`,"data-timer-active":bn>0?"true":"false"},(null===(Eo=null==se?void 0:se.timer)||void 0===Eo?void 0:Eo.length)&&Bn?o.createElement("div",{style:{height:`${bn}px`,transition:"height 0.3s ease"}}):null),o.createElement("div",{className:`${s.productcontainer}`,style:(()=>{const e=Un?Ln:se,o=null==e?void 0:e.showBorder,l=null==e?void 0:e.borderGradient,n=null==e?void 0:e.borderColor;return{borderColor:o&&!l?n||"":"transparent",borderWidth:o?"4px":"0px",borderStyle:o?"solid":"none",borderRadius:o?"8px":"",background:o&&l?`linear-gradient(white, white) padding-box, ${l} border-box`:void 0}})()},Vn&&yl&&o.createElement(yl,{badges:se.badgesContainer}),An&&o.createElement("div",{className:`${s.highlightText}`},null==se?void 0:se.highlightText),Un&&((null==Ln?void 0:Ln.badgeContainer)&&yl?o.createElement(yl,{badges:null==Ln?void 0:Ln.badgeContainer}):o.createElement("div",{className:`${s.promocontainer}`,style:{background:null==Ln?void 0:Ln.bestSellerColor}},null==Ln?void 0:Ln.displayText)),o.createElement("div",{ref:Tn,className:s.timerContainer},(null===(wo=null==se?void 0:se.timer)||void 0===wo?void 0:wo.length)&&Bn?o.createElement(de,{content:null===(Po=null==se?void 0:se.timer)||void 0===Po?void 0:Po[0],hasHighlightText:Vn||Un,onTimerChange:e=>{jn(e)}}):null),o.createElement("div",{className:`${s.detailsection} ${s.imageFullWidthSection}`,id:`detailsectionv3${pe}${fe}`},o.createElement("div",{className:`${s.headersection}`},o.createElement("div",{className:`${s.titlesection}`},o.createElement("div",{className:`${s.productheader}`,id:`titleV3${pe}${fe}`},null==In?void 0:In.productName),o.createElement("div",null,(null===(Co=null==In?void 0:In.icon)||void 0===Co?void 0:Co.filename)&&o.createElement("img",{className:`${s.imagecontainer}`,src:null===(So=null==In?void 0:In.icon)||void 0===So?void 0:So.filename,height:15,width:20,alt:"productIcon"}))),o.createElement("div",{className:`${s.productdescription}`,id:`descriptionV3${pe}${fe}`},o.createElement(c,{content:null==In?void 0:In.description})),o.createElement("div",{className:`${s.images}`},(null===(yo=null==In?void 0:In.img)||void 0===yo?void 0:yo.filename)&&o.createElement("img",{className:`${s.imagespace} ${(null==se?void 0:se.highlightText)&&s.borderimage}`,alt:"cardimg",src:`${null===(ko=null==In?void 0:In.img)||void 0===ko?void 0:ko.filename}/m/`}))),o.createElement("div",{className:`${s.productconfig}`,id:`product-configv3${pe}${fe}`},Dn?o.createElement(o.Fragment,null,o.createElement("div",{className:s.space}),o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:5}),o.createElement("div",{className:s.space}),o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:5})):o.createElement("div",null,(null==In?void 0:In.bloks)&&(null===(To=null==In?void 0:In.bloks)||void 0===To?void 0:To.map((e,l)=>o.createElement(v,{content:e,indexKey:l,constants:he,key:l,showModalPopup:ft,setToggleState:Ie,toggleState:Le,noTabs:Ne,mainContent:be,enableTVStreamingOptions:null==se?void 0:se.enableTVStreamingOptions,metadata:me,setTvOptionsData:Yn})))))),o.createElement("div",{className:`${s.detailsection}`,id:`benefits-price-section${pe}${fe}`},o.createElement("div",{id:`exclusive-benefits-section${pe}${fe}`},(null===(xo=null==In?void 0:In.extraBenefits)||void 0===xo?void 0:xo.length)>0&&o.createElement(le,{content:null===($o=null==In?void 0:In.extraBenefits)||void 0===$o?void 0:$o[0]})),o.createElement("div",{className:`${s.benefitssection}`,id:`benefits-section${pe}${fe}`},(null===(Do=null==In?void 0:In.benefits)||void 0===Do?void 0:Do.length)>0&&o.createElement(u,{content:null==In?void 0:In.benefits,benefitData:gt,constants:he,pricesToggleState:Ge,togglePriceLabel:null==Re?void 0:Re.togglePriceLabel})),o.createElement("br",null),o.createElement("div",{className:`${s.giftsection}`,id:`gift-section${pe}${fe}`},(null==Dl?void 0:Dl.showGift)&&(null===(Io=null==Ln?void 0:Ln.singleGift)||void 0===Io?void 0:Io.map((e,l)=>o.createElement(I,{content:e,key:l}))),(null==Dl?void 0:Dl.showGift)&&(null===(Lo=null==Ln?void 0:Ln.giftConfig)||void 0===Lo?void 0:Lo.map((e,l)=>o.createElement(L,{content:e,key:l,selectedGiftItem:ot,parentPoType:Gn?"MOBILE":"HOME"}))),o.createElement("div",{className:`${s.giftsection}`,id:`cashback-section${pe}${fe}`},o.createElement(j,{uniqueProductData:Xn,mainContent:be}))),o.createElement("div",{className:`${s.ordersection}`,id:`order-section${pe}${fe}`},""===(null==gt?void 0:gt.base)?o.createElement("div",null,o.createElement(r,{stylename:s.skeletontittle})):o.createElement("div",{id:`price-section${pe}${fe}`},o.createElement(m,{priceCollection:gt,constants:he,promoText:null==In?void 0:In.promoText,deviceFlow:Be,content:se,offeringData:ce,uniqueId:ve})),!_e&&o.createElement("div",{className:`${s.discountedpricetoggleSection}`,id:`discountedpricetoggle-section${pe}${fe}`},zn||"INLINE"!==(null==Re?void 0:Re.togglePosition)?null:o.createElement(ne,{content:In,index:fe,lineTable:!0,toggleContent:Re})),xe&&(null==he?void 0:he.P2PDiscountLabel)&&o.createElement("div",{className:s.longterm},null==he?void 0:he.P2PDiscountLabel),Dn?o.createElement(o.Fragment,null,o.createElement(r,{stylename:s.skeletontittle,count:1}),o.createElement(r,{stylename:s.skeletonline,count:2})):o.createElement("div",{className:`${(null==ue?void 0:ue.swapButton)&&s.swapButton}`},o.createElement("div",{style:{padding:"16px 0 0 0"}},o.createElement(p,{isMobileFlow:Gn,createCartCall:(null==Be?void 0:Be.isDeviceFlow)?pt(e=>{$l(!1);Oe({setShowLoader:Tl,cartEndPoint:Mn,giftItem:jl,uniqueProductData:Xn,mainContent:be,showPrice:gt,isMobileFlow:Gn,eligibleBundle:we,address:Ee,setShowLinecheck:Gl,showLinecheck:Rl,lineCheckCallBack:$e,enableP2P:xe,msisdnn:null!=nt?nt:e,content:se,selectedRP:je,continueCart:Ae})}):pt(Gn?et:mt),constants:he,storyContent:ue,showPrice:gt,isAvailable:Wn,address:Ee,uniqueProductBenefits:null==Xn?void 0:Xn[0],alwaysActive:!Wn&&(null===(No=null==be?void 0:be.linecheckData)||void 0===No?void 0:No.length)>0&&"global/coverage-check"===(null===(jo=null===(Oo=null===(Bo=null==be?void 0:be.linecheckData)||void 0===Bo?void 0:Bo[0])||void 0===Oo?void 0:Oo.reference)||void 0===jo?void 0:jo.default_full_slug),flexUpgradeFreePopup:null===(Uo=null===(Ao=null==be?void 0:be.flexUpgradeFreePopup)||void 0===Ao?void 0:Ao.reference)||void 0===Uo?void 0:Uo.content,content:se,deviceUltimateBundle:Me,forceDisabled:Boolean(null===(Fo=null===(Vo=null==Xn?void 0:Xn[0])||void 0===Vo?void 0:Vo.rewards)||void 0===Fo?void 0:Fo.notEligibleReason),notEligibileReason:null===(Ro=null===(Mo=null==Xn?void 0:Xn[0])||void 0===Mo?void 0:Mo.rewards)||void 0===Ro?void 0:Ro.notEligibleReason})),!_e&&(null===(Go=null==ue?void 0:ue.addSmartPhone)||void 0===Go?void 0:Go.length)>0&&!(null==Be?void 0:Be.isDeviceFlow)&&o.createElement("div",{style:{textAlign:"center"}},(null==ue?void 0:ue.swapButton)?(null==ue?void 0:ue.ctaLabel)&&o.createElement("div",{style:{padding:"16px 0"}},o.createElement("button",{className:"primarybutton",onClick:()=>{var e;return pt(()=>D(gt,ue,Xn,"",se,Ve),null===(e=null==be?void 0:be.replacePopupWithSmartphone)||void 0===e?void 0:e[0])()}},o.createElement("span",{className:s.buttontext},null==ue?void 0:ue.ctaLabel))):!(null==se?void 0:se.redirectOnly)&&o.createElement("div",{style:{padding:"12px 0 0 0"}},o.createElement(te,{content:{buttonType:"Secondary-V1",buttonLabel:(null==se?void 0:se.ultimateBundlePromotion)?null==he?void 0:he.ultimateBundleLbl:null===(Jo=null===(_o=null==ue?void 0:ue.addSmartPhone)||void 0===_o?void 0:_o[0])||void 0===Jo?void 0:Jo.buttonLabel,buttonIcon:null===(qo=null===(Wo=null==ue?void 0:ue.addSmartPhone)||void 0===Wo?void 0:Wo[0])||void 0===qo?void 0:qo.buttonIcon,buttonAlignment:"left"},wafIdentifier:ye,style:{width:"100%"},onClick:()=>{var e;return pt(()=>xe?void Ol(!0):D(gt,ue,Xn,"",se,Ve),null===(e=null==be?void 0:be.replacePopupWithSmartphone)||void 0===e?void 0:e[0])()}}))),o.createElement("div",{className:s.productcontractduration,id:`contract-section${pe}${fe}`,style:{paddingTop:(null===(Ho=null==ue?void 0:ue.addSmartPhone)||void 0===Ho?void 0:Ho.length)>0&&!(null==Be?void 0:Be.isDeviceFlow)&&!(null==ue?void 0:ue.swapButton)&&!(null==se?void 0:se.redirectOnly)?"8px":void 0}},(null==gt?void 0:gt.contractDuration)>"1"?B(null===(zo=null==he?void 0:he.minContractDuration)||void 0===zo?void 0:zo.substring(1),[null==gt?void 0:gt.contractDuration]):null==he?void 0:he.noContractDuration)),o.createElement("div",{style:{textAlign:"center",padding:"4px"}},(null===(Ko=null==In?void 0:In.productDetails)||void 0===Ko?void 0:Ko.length)>0&&o.createElement("span",{className:s.productdetailslink,onClick:()=>{var e,o,l;$l(!xl),A(V,R,X(Xn,"",M));const n=localStorage.getItem("prospectId"),t=null!==(l=null===(o=null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.pathname)||void 0===o?void 0:o.split("/"))&&void 0!==l?l:[],i=t[t.length-1],d={eventTimestamp:O(),eventType:"PageView",pageType:"ProductDetails",pageLocation:i,targetProduct:Fn};n&&z(xn,d,n)}},null==he?void 0:he.productDetailsLink)),xl&&o.createElement(g,{content:null==In?void 0:In.productDetails,showProductDetail:xl,setShowProductDetail:$l,constants:he,showPrice:gt,isMobileFlow:Gn,createCartCall:Gn?et:mt,storyContent:ue,isAvailable:Wn,address:Ee,flexUpgradeFreePopup:null===(Xo=null===(Qo=null==be?void 0:be.flexUpgradeFreePopup)||void 0===Qo?void 0:Qo.reference)||void 0===Xo?void 0:Xo.content,notEligibileReason:null===(Zo=null===(Yo=null==Xn?void 0:Xn[0])||void 0===Yo?void 0:Yo.rewards)||void 0===Zo?void 0:Zo.notEligibleReason})))))),Me&&Xn&&!(null===(ol=null===(el=null==Xn?void 0:Xn[0])||void 0===el?void 0:el.eligibility)||void 0===ol?void 0:ol.fpb)&&o.createElement("div",{className:s.disabledInfo},o.createElement(c,{content:null==he?void 0:he.fpbNotCompatibleText})),Fl&&(Dn?o.createElement(r,null):o.createElement(G,{content:null==ct?void 0:ct[0],setShowModal:Ml,showModal:Fl,constants:he})),Ul&&(null===(ll=null==be?void 0:be.loginData)||void 0===ll?void 0:ll.length)>0&&$n&&a(o.createElement(w,{content:null===(nl=null==be?void 0:be.loginData)||void 0===nl?void 0:nl[0],closeLogin:()=>{Vl(!1)},metadata:me,onSuccess:()=>{Vl(!1),Te(),sessionStorage.removeItem("vasPopUp"),vn(!1),xe?dt():mt()},isProdEnv:Fe}),$n),_l&&xe&&!Ul&&on&&o.createElement(q,{modalState:Ll,handler:at,showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px"},o.createElement(W,{onClose:Zn,content:null===(dl=null===(il=null===(tl=null==be?void 0:be.productContainer)||void 0===tl?void 0:tl[0])||void 0===il?void 0:il.p2pBloks)||void 0===dl?void 0:dl[0],prepaid:!1})),xe&&Zl&&Hl&&on&&o.createElement(q,{modalState:Ll,handler:at,showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px",id:"table-product"},o.createElement(W,{onClose:Zn,content:null===(sl=null===(rl=null===(al=null==be?void 0:be.productContainer)||void 0===al?void 0:al[0])||void 0===rl?void 0:rl.p2pBloks)||void 0===sl?void 0:sl[1],prepaid:!0})),(null==Xl?void 0:Xl.length)>1&&xe&&Zl&&!Hl&&nn&&o.createElement(q,{modalState:nn,handler:()=>{Tl(!1),tn(!nn)},showFooter:!1,width:"628px",height:"280px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"16px"},o.createElement(Q,{onSubmit:e=>{tn(!nn),Bl?D(gt,ue,Xn,e,se,Ve):mt(null==e?void 0:e.msisdn)},exsistingSubscriptionData:Xl,updatedContent:ht})),Rl&&(null==be?void 0:be.enableLinecheckOverlay)&&!Gn&&(null===(cl=null==be?void 0:be.linecheckData)||void 0===cl?void 0:cl.length)>0&&!xe&&"global/new-linecheck-test"===(null===(ml=null===(ul=null===(vl=null==be?void 0:be.linecheckData)||void 0===vl?void 0:vl[0])||void 0===ul?void 0:ul.reference)||void 0===ml?void 0:ml.default_full_slug)?o.createElement(_,{content:null===(pl=null==be?void 0:be.linecheckData)||void 0===pl?void 0:pl[0],onSuccess:st,showModal:Rl,setShowModal:Gl,productName:null==In?void 0:In.productName,productId:null==In?void 0:In.productId}):Rl&&(null==be?void 0:be.enableLinecheckOverlay)&&!Gn&&(null===(gl=null==be?void 0:be.linecheckData)||void 0===gl?void 0:gl.length)>0&&!xe&&"global/coverage-check"===(null===(bl=null===(hl=null===(fl=null==be?void 0:be.linecheckData)||void 0===fl?void 0:fl[0])||void 0===hl?void 0:hl.reference)||void 0===bl?void 0:bl.default_full_slug)?o.createElement(Y,{content:null===(El=null==be?void 0:be.linecheckData)||void 0===El?void 0:El[0].reference.content.body[0],overlayIsOpen:!0,externalHandleModal:Gl,productName:null==In?void 0:In.productName,showModal:Rl,setShowModal:Gl,onSuccess:()=>{let e="undefined"!=typeof window&&localStorage.getItem("lineCheckResponse");we=e&&(null===JSON||void 0===JSON?void 0:JSON.parse(e)),Ee="undefined"!=typeof window&&b.get("chAddressJson"),"function"==typeof Pe&&Pe()},onCreateCart:st,lineCheckOnClear:Ue,productId:null==In?void 0:In.productId}):null,Wl&&Gn&&(null===(wl=null==ue?void 0:ue.benefitsValidate)||void 0===wl?void 0:wl.length)>0&&o.createElement(J,{content:null===(Pl=null==ue?void 0:ue.benefitsValidate)||void 0===Pl?void 0:Pl[0],loginContent:null===(Cl=null==be?void 0:be.loginData)||void 0===Cl?void 0:Cl[0],metadata:me,createCartCall:mt,fetchOfferData:Se,basicConfigUrl:ye,selectedExistingOption:ke,setShowBenefit:ql,setLoginSuccess:Te,isProdEnv:Fe}),rn&&o.createElement(q,{modalState:rn,handler:rt,showFooter:!1,width:"mobile"===_n?"":"tablet"===_n?"700px":"990px",fixedWidth:"mobile"===_n?"":"tablet"===_n?"700px":"990px",height:"845px",backgroundColor:"#f7f6f5",noCloseButton:!1,backDrop:!0,bodyPadding:"24px"},o.createElement(oe,{content:null===(Sl=null==be?void 0:be.optionsPopup)||void 0===Sl?void 0:Sl[0],addOptionsCallBack:e=>{gn(!0),mn(!0),Yn(e)},metadata:me,constants:he,mainContent:be,preSelectedOptions:[],optionsResponse:fn,updateResponseList:hn,showPrice:gt,productData:In,offeringData:ce,uniqueId:ve,deviceFlow:Be})),wn&&Sn&&o.createElement(re,{modalState:wn,onCloseHandler:()=>{Cn.current=null,Pn(!1)},content:Sn,wafIdentifier:ye,onPrimaryClick:()=>{const e=Cn.current;Cn.current=null,kn.current&&b.remove("one-commerce-cartId"),kn.current=!1,Pn(!1),null==e||e()},onSecondaryClick:()=>{Cn.current=null,Pn(!1)}}))};export{se as default};
2
2
  //# sourceMappingURL=StaticProduct.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticProduct.js","sources":["../../../../src/components/StaticLineTable/StaticProduct.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\nimport Dotloader from '../Dotloader/Dotloader';\nimport { createPortal } from 'react-dom';\nimport SkeletonLoader from '../SkeletonLoader/SkeletonLoader';\nimport Styles from './StaticLineTable.module.scss';\nimport RichText from '../richtext';\nimport StaticProductEntitlement from './StaticProductEntitlement';\nimport StaticBenefit from './StaticBenefit';\nimport DynamicPriceSection from './DynamicPriceSection';\nimport CheckoutButton from './CheckoutButton';\nimport StaticProductDetails from './StaticProductDetails';\nimport { StaticProductSchema } from './StaticProductDatatypes';\nimport {\n AssetPathPropConfig,\n LineTableBasicPropConfig\n} from '../../services/LineTableBasicPropConfig';\nimport Cookies from 'js-cookie';\nimport { LoginBasicPropConfig } from '../../services/LoginBasicPropConfig';\nimport LoginModalV2 from '../login/LoginModalV2';\nimport {\n checkGiftOrCashback,\n combineWithSmartPhone,\n combineWithVasOptions,\n fetchPrice,\n fetchServiceOptions,\n findHeight,\n isTimerActive,\n getTimeUntilNextTimerEvent,\n staticCreateCart\n} from './Product.utils';\nimport GiftConfigV2 from '../ProductDetailsV3/GiftConfigV2';\nimport ChooseGiftV2 from '../ProductDetailsV3/ChooseGiftV2';\nimport { replacePlaceholder, viewport, getUtcTimestamp } from '../../utils/utils';\nimport StaticProductCashback from './StaticProductCashback';\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\nimport {\n CTABUTTONCLICK,\n DOWNLOADPRODUCT,\n EXISTINGCUSTOMER,\n GAEVENT,\n LINETABLE\n} from '../../Analytics/AnalyticsConstants';\nimport TVChannelModal from './TVChannelModal';\nimport LinecheckModal from '../LineCheckV3/LinecheckModal';\nimport BenefitsValidateWrapper from '../BenefitWrapper/BenefitsValidateWrapper';\nimport PreToPostSubsPopup from '../PretoPost/PreToPostSubsPopup';\nimport GenericModal from '../LineCheckV3/GenericModal';\nimport {\n fetchSubscriptionData,\n trackPegaEvents,\n validateP2P\n} from '../../services/LineTableService';\nimport ExsistingSubscriptionModal from './ExsistingSubscriptionModal';\nimport { getEcomCartInfo } from '../../models/Analytics/items';\nimport CoverageCheckModal from '../NewLineCheck/CoverageCheckModal';\n\nimport { API_BASE_BASEPOINT } from '../../services/api-constants';\nimport { AppContext } from './StaticLineTableStore/StaticLineTableProvider';\nimport OttServiceOptionsSmallPopup from './OttServiceOptions/OttServiceOptionsSmallPopup';\nimport StaticExclusiveBenefit from './StaticExclusiveBenefit';\n// US_312953\nimport UserLoggedPricesToggle from '../UserLoggedPricesToggle/UserLoggedPricesToggle';\nimport FalconButtonV2 from '../FalconButtonV2/FalconButtonV2';\nimport { ONE_ECOMMERCE_INTERNET_SUMMARY } from '../../utils/constants';\nimport StaticLineTabelTimer from './StaticLineTabelTimer/StaticLineTabelTimer';\nimport { BadgeContainer } from '@sunrise-upc/sales-static-components';\nimport GenericPopup from '../GenericPopup/GenericPopup';\n\nconst StaticProduct: FC<StaticProductSchema> = ({\n content,\n offeringData,\n uniqueId,\n storyContent,\n metadata,\n tabIndex,\n cardsLength,\n indexKey,\n constants,\n mainContent,\n address,\n eligibleBundle,\n linecheckSuccessCallBack,\n selectedOption,\n fetchOfferData,\n basicConfigUrl,\n selectedExistingOption,\n setLoginSuccess,\n enableP2P,\n lineCheckCallBack,\n loginSuccess,\n setToggleState,\n toggleState,\n noTabs,\n deviceFlow,\n deviceFlowCallBack,\n selectedRP,\n continueCart,\n lineCheckOnClear,\n pegaIntegration,\n isProdEnv,\n deviceUltimateBundle,\n //US_31295\n toggleContent,\n pricesToggleState,\n isShogunFlow,\n shogunToken\n}) => {\n const [showLoader, setShowLoader] = useState<boolean>(false);\n const [showProductDetail, setShowProductDetail] = useState(false);\n const [showGiftOrCashback, setShowGiftOrCashback] = useState({\n showGift: false,\n cashbackAvailable: false\n });\n const [modalClick, updateModalClick] = useState(true);\n const [combine, setCombine] = useState(false);\n const [giftItem, setGiftItem] = useState<any>([]);\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [showLinecheck, setShowLinecheck] = useState<boolean>(false);\n const [showP2P, setShowP2P] = useState<boolean>(false);\n const [showBenefit, setShowBenefit] = useState<boolean>(false);\n const [subscriptionFailure, setSubscriptionFailure] = useState(false);\n const endpoint = `${basicConfigUrl}inf/customer-management/subscriptions`;\n const validateEndpoint = `${basicConfigUrl}inf/resource-management/msisdns/pretopost/validation`;\n const [userSubscriptionData, setUserSubscriptionData] = useState<any>([]);\n const [afterLogin, setAfterLogin] = useState<boolean>(false);\n const [popUPClick, setModalClick] = useState<boolean>(false);\n const [p2pModal, setP2pModal] = useState<boolean>(false);\n const [tvOptions, setTvOptions] = useState<any[] | undefined>([]);\n const [displayTvOptionsPopUp, setDisplayTvOptionsPopUp] = useState<boolean>(false);\n const [alreadyShowedTvOptionsPopUp, setAlreadyShowedTvOptionsPopUp] = useState<boolean>(false);\n const [tvOptionsPopUpChanged, setTvOptionsPopUpChanged] = useState<boolean>(false);\n const [tvOptionsPopUpAddToCart, setTvOptionsPopUpAddToCart] = useState<boolean>(false);\n const [responseList, setResponseList] = useState([]);\n const [timerSpaceHeight, setTimerSpaceHeight] = useState(0);\n const [showReplaceCartModal, setShowReplaceCartModal] = useState<boolean>(false);\n const pendingCartActionRef = useRef<(() => void) | null>(null);\n const [replacePopupContent, setReplacePopupContent] = useState<any>(null);\n const shouldDeleteCartCookieRef = useRef<boolean>(false);\n const timerContainerRef = useRef<HTMLDivElement | null>(null);\n const pegaEndpoint = `${basicConfigUrl}inf/${API_BASE_BASEPOINT.CUSTOMER}`;\n\n /*the portal position for the the dotloader*/\n const portalPosition: any =\n typeof window !== undefined && document.getElementById('static-linetable');\n const isSkeletonLoading = Object.keys(content)?.length === 0;\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\n const promotionData = content?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\n const timerContent = content?.timer?.[0];\n const isCounterEnabled = timerContent?.enableCounter;\n const [timerIsActive, setTimerIsActive] = useState(\n isCounterEnabled && timerContent?.startTime && timerContent?.endTime\n ? isTimerActive(timerContent.startTime, timerContent.endTime)\n : false\n );\n const showHighlightText = Boolean(\n content?.highlightText && pricesToggleState !== true && !timerIsActive && !content?.badgesContainer\n );\n const showPromoContainer = Boolean(\n promotionData?.displayText &&\n !content?.notShowPromotionLabel &&\n pricesToggleState !== true &&\n !timerIsActive\n );\n\n const showBadges = Boolean(\n content?.badgesContainer && pricesToggleState !== true && !timerIsActive && !showPromoContainer\n );\n\n const id = productData?.productId;\n const cartEndPoint = LineTableBasicPropConfig?.getInstance()?.getCartUrl();\n const assetPath = AssetPathPropConfig?.getInstance()?.getAssetPath();\n const isMobileFlow = storyContent?.pageType === 'MOBILE';\n const viewPortType = viewport();\n const context = useContext(AppContext);\n let isAvailable: boolean | undefined = undefined;\n isAvailable = address && eligibleBundle?.eligibleBundle?.includes(id);\n const enableTVStreamingOptionsPopUp = content?.enableTVStreamingOptionsPopUp;\n const enableTVStreamingOptionsStepper = content?.enableTVStreamingOptionsStepper;\n const disableDiscountedPriceToggle = content?.disableDiscountedPriceToggle;\n const skipAccessoriesPage = content?.skipAccessoriesPage;\n\n LoginBasicPropConfig.create({ baseURL: basicConfigUrl ?? '' });\n\n //sunrise auth data\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n AuthData = AuthData && JSON.parse(AuthData);\n //offer data wrt to tab\n const uniqueProductData: any = (offeringData?.[uniqueId] || []).filter(\n (product: any) => product?.id === id\n );\n\n const setTvOptionsData = (options: any) => {\n setTvOptions(options);\n };\n\n const handleP2PClick = () => {\n setShowLogin(true);\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n };\n\n //creacart function or login pop up\n const createCart = () => {\n setShowProductDetail(false);\n if (enableP2P && AuthData == undefined) {\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n } else if (enableP2P && AuthData?.siteId) {\n fetchPrepaidData();\n } else if (selectedOption === EXISTINGCUSTOMER && selectedExistingOption?.length > 0) {\n setShowBenefit(true);\n } else {\n //US_31295\n const setLoginCookie =\n (mainContent?.enableExistingCustomer && AuthData == undefined) ||\n (!AuthData && pricesToggleState === true && toggleContent?.enableLoggedInPrice)\n ? true\n : false;\n setLoginCookie ? setShowLogin(true) : createCartCall();\n }\n if (pegaIntegration) {\n const prospectId = localStorage.getItem('prospectId');\n const url = window?.location?.pathname?.split('/') ?? [];\n const pathname = url[url.length - 1];\n const payload = {\n eventTimestamp: getUtcTimestamp(),\n eventType: 'PageView',\n pageType: 'CartCreated',\n pageLocation: pathname,\n // deviceType: viewPortType,#TODO - fix this values, isn't working for tablet\n targetProduct: id\n };\n prospectId && trackPegaEvents(pegaEndpoint, payload, prospectId);\n }\n };\n\n //setting the selected gift from choose gift section\n const selectedGiftItem = (item: any) => {\n const itemValue = giftItem.findIndex((gift: any) => item?.giftGroupId === gift?.giftGroupId);\n const temp = giftItem;\n if (itemValue === -1) temp.push(item);\n else temp[itemValue] = item;\n setGiftItem([...temp]);\n };\n\n // Helper method to get border styles\n const getBorderStyles = () => {\n const borderConfig = showPromoContainer ? promotionData : content;\n const showBorder = borderConfig?.showBorder;\n const borderGradient = borderConfig?.borderGradient;\n const borderColor = borderConfig?.borderColor;\n\n return {\n borderColor: showBorder && !borderGradient ? borderColor || '' : 'transparent',\n borderWidth: showBorder ? '4px' : '0px',\n borderStyle: showBorder ? 'solid' : 'none',\n borderRadius: showBorder ? '8px' : '',\n background: showBorder && borderGradient\n ? `linear-gradient(white, white) padding-box, ${borderGradient} border-box`\n : undefined,\n };\n };\n\n //queryParam for MySunrise P2P flow\n const params = new URLSearchParams(window?.location?.search);\n const queryParams = params?.get('selectedMsisdn');\n const validateNumberFcn = (value: any) => {\n // once all the prepaid numbers are validated\n if (value?.length === 1) {\n combine\n ? combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n value?.[0],\n content,\n pegaIntegration\n )\n : createCartCall(value?.[0]?.msisdn);\n setSubscriptionFailure(false);\n } else if (value?.length > 1) {\n setUserSubscriptionData(value);\n setP2pModal(!p2pModal);\n setSubscriptionFailure(false);\n } else {\n setModalClick(!popUPClick);\n setSubscriptionFailure(true);\n updateModalClick(true);\n setShowLoader(false);\n }\n };\n const validateFcn = async (value: any, validPrepaidNumbers: any) => {\n await validateP2P(value?.msisdn, validateEndpoint)\n .then((res) => {\n if (res) {\n validPrepaidNumbers.push(value);\n }\n })\n .catch((e: any) => {\n // eslint-disable-next-line no-console\n console.log('error', e);\n });\n };\n //prepaid subscription api and validating those for conversion\n const fetchPrepaidData = () => {\n setShowLoader(true);\n try {\n fetchSubscriptionData('PREPAID', endpoint)\n ?.then(async (resp: any) => {\n if (resp?.subscriptionData == 204) {\n setModalClick(!popUPClick);\n setSubscriptionFailure(true);\n updateModalClick(true);\n setShowLoader(false);\n } else {\n const responseData = resp?.subscriptionData;\n const queryData = responseData.find((entry: any) => entry.msisdn === queryParams);\n if (responseData) {\n const validPrepaidNumbers: any = [];\n if (queryParams) {\n await validateFcn(queryData, validPrepaidNumbers);\n validateNumberFcn(validPrepaidNumbers);\n } else {\n await Promise.all(\n responseData?.map(async (data: any) => {\n await validateFcn(data, validPrepaidNumbers);\n })\n ).then((succ) => {\n validateNumberFcn(validPrepaidNumbers);\n });\n }\n }\n }\n })\n .catch((error: any) => {\n // eslint-disable-next-line no-console\n console.log('error--->', error);\n setShowLoader(false);\n });\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log('error--->', err);\n setShowLoader(false);\n }\n setAfterLogin(true);\n };\n\n // on login success\n const onLoginSuccess = () => {\n setShowLogin(false);\n setLoginSuccess();\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n if (enableP2P) {\n fetchPrepaidData();\n } else {\n createCartCall();\n }\n };\n\n // to close the pop up of P2P\n const handleClick = () => {\n setModalClick(!modalClick);\n setShowP2P(false);\n };\n\n // to close the pop up of P2P for success prepiad\n const handlePrepaidClick = () => {\n setShowLoader(false);\n setP2pModal(!p2pModal);\n };\n\n const closeTVOptionsModal = (event?: any) => {\n setDisplayTvOptionsPopUp(false);\n\n if (event) {\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\n headline: 'VAS POPUP CLOSE'\n });\n }\n };\n\n //once linecheck success set linecheck pop up false and proceed to checkout section\n const linecheckSuccess = () => {\n let bundle = typeof window !== 'undefined' && localStorage.getItem('lineCheckResponse');\n eligibleBundle = bundle && JSON?.parse(bundle);\n address = typeof window !== 'undefined' && Cookies.get('chAddressJson');\n typeof linecheckSuccessCallBack == 'function' && linecheckSuccessCallBack();\n };\n\n //once linecheck success set linecheck pop up false and proceed to checkout section\n const linecheckSuccessAndCart = () => {\n let bundle = typeof window !== 'undefined' && localStorage.getItem('lineCheckResponse');\n eligibleBundle = bundle && JSON?.parse(bundle);\n address = typeof window !== 'undefined' && Cookies.get('chAddressJson');\n setShowLinecheck(!showLinecheck);\n typeof linecheckSuccessCallBack == 'function' && linecheckSuccessCallBack();\n createCartCall();\n };\n\n //service Option set for TV\n\n const serviceOption = fetchServiceOptions(productData?.bloks, isMobileFlow);\n\n const radioValue = serviceOption?.[0]?.tvProductId;\n\n const createCartCallAction = (msisdn?: string) => {\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n\n // Shogun / rewards (loyalty) flow: attach the pointsBurnt note so the\n // backend can settle the loyalty burn during cart creation. The value\n // comes from the offer response under `rewards.points`.\n const rewardsInfo = isShogunFlow\n ? { pointsBurnt: uniqueProductData?.[0]?.rewards?.points, rewardOfferId: uniqueProductData?.[0]?.rewards?.offerId, gloxTokenId: shogunToken }\n : undefined;\n\n // US 317400- vas options pop tracking\n if (uniqueProductData && uniqueProductData[0]) {\n uniqueProductData[0].fromPopup = tvOptionsPopUpAddToCart;\n }\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n\n staticCreateCart(\n setShowLoader,\n cartEndPoint,\n giftItem,\n uniqueProductData,\n mainContent,\n showPrice,\n isMobileFlow,\n radioValue,\n eligibleBundle,\n address,\n setShowLinecheck,\n showLinecheck,\n lineCheckCallBack,\n enableP2P,\n queryParams ?? msisdn,\n content,\n tvOptions,\n discountRef,\n discountVersion,\n rewardsInfo\n );\n };\n //cart creation\n const createCartCall = (msisdn?: string) => {\n setTvOptionsPopUpAddToCart(false);\n setShowProductDetail(false);\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n const AuthDataNew = AuthData && JSON.parse(AuthData);\n const setLoginCookie =\n mainContent?.enableExistingCustomer && AuthDataNew == undefined ? true : false;\n sessionStorage.removeItem(ONE_ECOMMERCE_INTERNET_SUMMARY);\n if (mainContent?.linecheckData?.length > 0 && !isMobileFlow && !isAvailable) {\n // setShowLinecheck(true);\n const lineCheckElement = document.getElementById('linecheck');\n if (lineCheckElement) {\n lineCheckCallBack();\n }\n return;\n } else if (\n isAvailable &&\n !isMobileFlow &&\n mainContent?.loginData?.length > 0 &&\n setLoginCookie\n ) {\n setShowLogin(true);\n } else if (enableTVStreamingOptionsStepper && uniqueProductData[0]?.isBundle) {\n let recommendAccessory = false;\n\n if (!skipAccessoriesPage) {\n /**Check if bundle or Internet and add it to cart request*/\n if (uniqueProductData[0]?.isBundle) {\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\n if (\n item?.productType?.toLowerCase() === 'internet' ||\n item?.productType?.toLowerCase() == 'tv'\n ) {\n if (item?.recommendAccessory) {\n recommendAccessory = item?.recommendAccessory;\n }\n }\n // setting to false incase of Mobile product Type as it is currently out of scope\n if (item?.productType?.toLowerCase() === 'mobile') {\n recommendAccessory = false;\n return;\n }\n });\n } else {\n /**Add standlone product such as internet to cart request*/\n if (uniqueProductData?.[0]?.recommendAccessory) {\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\n }\n }\n }\n\n combineWithVasOptions(\n showPrice,\n uniqueProductData,\n content,\n pegaIntegration,\n productData?.productName,\n recommendAccessory\n );\n createCartCallAction(msisdn);\n } else if (\n enableTVStreamingOptionsPopUp &&\n uniqueProductData[0]?.isBundle &&\n !alreadyShowedTvOptionsPopUp\n ) {\n setDisplayTvOptionsPopUp(true);\n setAlreadyShowedTvOptionsPopUp(true);\n updateVasPopUp('true');\n\n window.addEventListener('beforeunload', function (event) {\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n });\n } else {\n //for mobile p2p\n if (enableP2P) {\n setShowLoader(true);\n }\n createCartCallAction(msisdn);\n }\n };\n\n //cart creation callback For device first flow\n const deviceFirstFlowCreateCartCallback = (msisdn?: string) => {\n setShowProductDetail(false);\n const msisdnn = queryParams ?? msisdn;\n const deviceFirstFlowCartObj = {\n setShowLoader,\n cartEndPoint,\n giftItem,\n uniqueProductData,\n mainContent,\n showPrice,\n isMobileFlow,\n eligibleBundle,\n address,\n setShowLinecheck,\n showLinecheck,\n lineCheckCallBack,\n enableP2P,\n msisdnn,\n content,\n selectedRP,\n continueCart\n };\n deviceFlowCallBack(deviceFirstFlowCartObj);\n };\n\n // Guards a cart-creation action: if a persistent cart already exists\n // (one-commerce-cartId cookie), show the replace-cart popup and defer the\n // action until the user confirms via the primary button.\n const withReplaceCartCheck =\n (action: (callFunctionArg?: string) => void, popupContent?: any) =>\n (callFunctionArg?: string) => {\n const existingCartId =\n typeof window !== undefined && Cookies.get('one-commerce-cartId');\n if (mainContent?.enableReplacePopup && existingCartId) {\n pendingCartActionRef.current = () => action(callFunctionArg);\n shouldDeleteCartCookieRef.current = Boolean(popupContent);\n setReplacePopupContent(popupContent ?? mainContent?.generalReplacePopup?.[0]);\n setShowReplaceCartModal(true);\n } else {\n action(callFunctionArg);\n }\n };\n\n // after 1 prepaid numbers selection from existingp2pmodal\n const onSelectSubscriptionPreToPost = (value: any) => {\n setP2pModal(!p2pModal);\n combine\n ? combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n value,\n content,\n pegaIntegration\n )\n : createCartCall(value?.msisdn);\n };\n //show price calculation\n const showPrice = fetchPrice(\n uniqueProductData,\n isMobileFlow,\n mainContent?.pageType,\n false,\n tvOptions,\n pegaIntegration\n );\n\n //card height calculation and gift & cashback check on change of offer data\n //to calculate the height when the tvOptions is added and removed\n useEffect(() => {\n setTimeout(() => {\n findHeight(tabIndex, cardsLength);\n }, 100);\n const result = checkGiftOrCashback(\n isMobileFlow\n ? uniqueProductData\n : (uniqueProductData?.[0]?.bundledOffers ?? uniqueProductData)\n );\n setShowGiftOrCashback({ ...result });\n }, [\n offeringData,\n toggleState,\n tvOptions,\n timerSpaceHeight,\n (toggleState?.TV || toggleState?.gigaSpeed || toggleState?.Netflix) &&\n Array.isArray(uniqueProductData) &&\n uniqueProductData?.[0]?.bundledOffers?.length === 3\n ]);\n\n //product details pop up\n const showDetailsModal = () => {\n setShowProductDetail(!showProductDetail);\n //Analytics Product Details tracking\n let offerData = uniqueProductData;\n trackNewDatalayerEvent(GAEVENT, DOWNLOADPRODUCT, getEcomCartInfo(offerData, '', LINETABLE));\n const prospectId = localStorage.getItem('prospectId');\n const url = window?.location?.pathname?.split('/') ?? [];\n const pathname = url[url.length - 1];\n const payload = {\n eventTimestamp: getUtcTimestamp(),\n eventType: 'PageView',\n pageType: 'ProductDetails',\n pageLocation: pathname,\n // deviceType: viewPortType, #TODO - fix this values, isn't working for tablet\n targetProduct: id\n };\n prospectId && trackPegaEvents(pegaEndpoint, payload, prospectId);\n };\n\n //TV service option\n const showModalPopup = () => {\n if (serviceOption?.length > 0 || enableTVStreamingOptionsPopUp) {\n setShowOptions(true);\n }\n };\n const updatedContent = mainContent?.productContainer?.[0];\n\n // set the combine to true for p2p\n const combineP2P = () => {\n setCombine(true);\n };\n\n // to trigger on click of combinewith smartphone\n useEffect(() => {\n if (combine) {\n if (enableP2P && AuthData == undefined) {\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n } else if (enableP2P && AuthData?.siteId) {\n fetchPrepaidData();\n }\n }\n }, [combine]);\n\n useEffect(() => {\n if (context) {\n const { store } = context;\n if (store?.ottOptionsApi?.length > 0 && responseList?.length === 0) {\n setResponseList(store?.ottOptionsApi);\n }\n }\n }, [context]);\n\n useEffect(() => {\n if (!isCounterEnabled || !timerContent?.startTime || !timerContent?.endTime) {\n setTimerIsActive(false);\n return;\n }\n\n setTimerIsActive(isTimerActive(timerContent.startTime, timerContent.endTime));\n\n const delay = getTimeUntilNextTimerEvent(timerContent.startTime, timerContent.endTime);\n if (delay <= 0) return;\n\n const timeout = setTimeout(() => {\n setTimerIsActive(isTimerActive(timerContent.startTime, timerContent.endTime));\n }, delay);\n\n return () => clearTimeout(timeout);\n }, [isCounterEnabled, timerContent?.startTime, timerContent?.endTime]);\n\n useEffect(() => {\n const timerElement = timerContainerRef.current;\n if (!timerElement || !content?.timer?.length || !isCounterEnabled) {\n setTimerSpaceHeight(0);\n return;\n }\n\n const updateTimerSpaceHeight = () => {\n setTimerSpaceHeight(timerElement.clientHeight);\n };\n\n updateTimerSpaceHeight();\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const resizeObserver = new ResizeObserver(updateTimerSpaceHeight);\n resizeObserver.observe(timerElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [content?.timer?.length, isCounterEnabled]);\n\n // to trigger on click tv option pop up closed\n useEffect(() => {\n if (tvOptionsPopUpChanged) {\n closeTVOptionsModal();\n setTvOptionsPopUpChanged(true);\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n createCartCallAction();\n }\n }, [tvOptionsPopUpChanged]);\n\n //US 314008 - only show vas pop up for first time user clicked order now\n useEffect(() => {\n const checkVasPopUp = () => {\n const vasPopUp = sessionStorage.getItem('vasPopUp');\n\n setAlreadyShowedTvOptionsPopUp(vasPopUp === 'true');\n };\n\n checkVasPopUp();\n\n const handleStorageChange = (event: StorageEvent) => {\n if (event.storageArea === sessionStorage && event.key === 'vasPopUp') {\n checkVasPopUp();\n }\n // If vasPopUp is removed (deleted)\n if (\n event.storageArea === sessionStorage &&\n event.key === 'vasPopUp' &&\n event.newValue === null\n ) {\n setAlreadyShowedTvOptionsPopUp(false);\n }\n };\n\n const handleCustomEvent = () => {\n checkVasPopUp();\n };\n window.addEventListener('storage', handleStorageChange);\n window.addEventListener('vasPopUpChange', handleCustomEvent);\n \n return () => {\n window.removeEventListener('storage', handleStorageChange);\n window.removeEventListener('vasPopUpChange', handleCustomEvent);\n };\n \n }, []);\n\n const updateVasPopUp = (value: string) => {\n sessionStorage.setItem('vasPopUp', value);\n const event = new Event('vasPopUpChange');\n window.dispatchEvent(event);\n };\n\n return (\n <div>\n {showLoader &&\n portalPosition &&\n createPortal(<Dotloader keyParams='loading' />, portalPosition)}\n {isSkeletonLoading && (\n <div className='w-75 pb-2'>\n <SkeletonLoader />\n </div>\n )}\n {!isSkeletonLoading && eligibleBundle && content && address && !isMobileFlow && (\n <div className={Styles.selected}>\n <span style={{ paddingBottom: '10px' }}>\n {!isAvailable ? (\n <span className={Styles.inactiveicon}>\n <img\n src={`${assetPath}/icons/cross_disabled.svg`}\n alt=''\n width={24}\n height={24}\n className={Styles.inactiveicon}\n />\n <span>{constants?.notSubscriptionTxt}</span>\n </span>\n ) : (\n <span className={Styles.activeicon}>\n <img\n src={`${assetPath}/icons/lineCheck-success.svg`}\n alt=''\n width={24}\n height={24}\n className={Styles.activeicon}\n />\n <span>{constants?.subscriptionAvalTxt}</span>\n </span>\n )}\n </span>\n </div>\n )}\n\n <div\n className={`${\n !isMobileFlow &&\n isAvailable === false &&\n mainContent?.linecheckData?.length > 0 &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug !== 'global/coverage-check'\n ? Styles.overlay\n : ''\n }\n ${deviceUltimateBundle && !uniqueProductData?.[0]?.eligibility?.fpb ? Styles.disabled : ''}\n `}\n style={{ flexDirection: 'column' }}\n >\n <div className={Styles.bundleproductcard}>\n <div\n id={`timer-section${tabIndex}${indexKey}`}\n data-timer-active={timerSpaceHeight > 0 ? 'true' : 'false'}\n >\n {content?.timer?.length && isCounterEnabled ? (\n <div style={{ height: `${timerSpaceHeight}px`, transition: 'height 0.3s ease' }} />\n ) : null}\n </div>\n <div\n className={`${Styles.productcontainer}`}\n style={getBorderStyles()}\n > \n {showBadges &&(\n <BadgeContainer badges={content.badgesContainer}/>\n )}\n {showHighlightText && (\n <div className={`${Styles.highlightText}`}>{content?.highlightText}</div>\n )}\n \n {showPromoContainer && (\n promotionData?.badgeContainer ? (\n <BadgeContainer badges={promotionData?.badgeContainer}/>\n ) : (\n <div\n className={`${Styles.promocontainer}`}\n style={{\n background: promotionData?.bestSellerColor\n }}\n >\n {promotionData?.displayText}\n </div>\n )\n )}\n <div ref={timerContainerRef} className={Styles.timerContainer}>\n {content?.timer?.length && isCounterEnabled ? (\n <StaticLineTabelTimer\n content={content?.timer?.[0]}\n hasHighlightText={ showBadges || showPromoContainer}\n onTimerChange={(active) => {\n setTimerIsActive(active);\n }}\n />\n ) : null}\n </div>\n <div\n className={`${Styles.detailsection} ${Styles.imageFullWidthSection}`}\n id={`detailsectionv3${tabIndex}${indexKey}`}\n >\n <div className={`${Styles.headersection}`}>\n <div className={`${Styles.titlesection}`}>\n <div className={`${Styles.productheader}`} id={`titleV3${tabIndex}${indexKey}`}>\n {productData?.productName}\n </div>\n <div>\n {productData?.icon?.filename && (\n <img\n className={`${Styles.imagecontainer}`}\n src={productData?.icon?.filename}\n height={15}\n width={20}\n alt='productIcon'\n />\n )}\n </div>\n </div>\n <div\n className={`${Styles.productdescription}`}\n id={`descriptionV3${tabIndex}${indexKey}`}\n >\n <RichText content={productData?.description} />\n </div>\n {/* Image(map) */}\n <div className={`${Styles.images}`}>\n {productData?.img?.filename && (\n <img\n className={`${Styles.imagespace} ${\n content?.highlightText && Styles.borderimage\n }`}\n alt='cardimg'\n src={`${productData?.img?.filename}/m/`}\n />\n )}\n </div>\n </div>\n {/* product entitlement section */}\n <div\n className={`${Styles.productconfig}`}\n id={`product-configv3${tabIndex}${indexKey}`}\n >\n {isSkeletonLoading ? (\n <>\n <div className={Styles.space}></div>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={5} />\n <div className={Styles.space}></div>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={5} />\n </>\n ) : (\n <div>\n {productData?.bloks &&\n productData?.bloks?.map((entitle: any, index: number) => {\n return (\n <StaticProductEntitlement\n content={entitle}\n indexKey={index}\n constants={constants}\n key={index}\n showModalPopup={showModalPopup}\n setToggleState={setToggleState}\n toggleState={toggleState}\n noTabs={noTabs}\n mainContent={mainContent}\n enableTVStreamingOptions={content?.enableTVStreamingOptions}\n metadata={metadata}\n setTvOptionsData={setTvOptionsData}\n />\n );\n })}\n </div>\n )}\n </div>\n </div>\n {/* benefits section */}\n <div\n className={`${Styles.detailsection}`}\n id={`benefits-price-section${tabIndex}${indexKey}`}\n >\n <div id={`exclusive-benefits-section${tabIndex}${indexKey}`}>\n {productData?.extraBenefits?.length > 0 && (\n <StaticExclusiveBenefit content={productData?.extraBenefits?.[0]} />\n )}\n </div>\n <div\n className={`${Styles.benefitssection}`}\n id={`benefits-section${tabIndex}${indexKey}`}\n >\n {productData?.benefits?.length > 0 && (\n <StaticBenefit\n content={productData?.benefits}\n benefitData={showPrice}\n constants={constants}\n //US_31295\n pricesToggleState={pricesToggleState}\n togglePriceLabel={toggleContent?.togglePriceLabel}\n />\n )}\n </div>\n <br />\n\n {/* gift or cashback section */}\n <div className={`${Styles.giftsection}`} id={`gift-section${tabIndex}${indexKey}`}>\n {showGiftOrCashback?.showGift &&\n promotionData?.singleGift?.map((item: any, index: number) => {\n return <GiftConfigV2 content={item} key={index} />;\n })}\n {showGiftOrCashback?.showGift &&\n promotionData?.giftConfig?.map((item: any, index: number) => {\n return (\n <ChooseGiftV2\n content={item}\n key={index}\n selectedGiftItem={selectedGiftItem}\n parentPoType={isMobileFlow ? 'MOBILE' : 'HOME'}\n />\n );\n })}\n <div\n className={`${Styles.giftsection}`}\n id={`cashback-section${tabIndex}${indexKey}`}\n >\n <StaticProductCashback\n uniqueProductData={uniqueProductData}\n mainContent={mainContent}\n />\n </div>\n </div>\n {/* price section */}\n <div className={`${Styles.ordersection}`} id={`order-section${tabIndex}${indexKey}`}>\n {showPrice?.base === '' ? (\n <div>\n <SkeletonLoader stylename={Styles.skeletontittle} />\n </div>\n ) : (\n <div id={`price-section${tabIndex}${indexKey}`}>\n <DynamicPriceSection\n priceCollection={showPrice}\n constants={constants}\n promoText={productData?.promoText}\n deviceFlow={deviceFlow}\n content={content}\n offeringData={offeringData}\n uniqueId={uniqueId}\n />\n </div>\n )}\n\n {/* US_312953 */}\n {!isShogunFlow && (\n <div\n className={`${Styles.discountedpricetoggleSection}`}\n id={`discountedpricetoggle-section${tabIndex}${indexKey}`}\n >\n {!disableDiscountedPriceToggle && toggleContent?.togglePosition === 'INLINE' ? (\n <UserLoggedPricesToggle\n content={productData}\n index={indexKey}\n lineTable={true}\n toggleContent={toggleContent}\n />\n ) : null}\n </div>\n )}\n {/*END US_312953 */}\n\n {/* Longterm text */}\n {enableP2P && constants?.P2PDiscountLabel && (\n <div className={Styles.longterm}>{constants?.P2PDiscountLabel}</div>\n )}\n {/* proceed to checkout section */}\n {isSkeletonLoading ? (\n <>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={2} />\n </>\n ) : (\n <div className={`${storyContent?.swapButton && Styles.swapButton}`}>\n <div style={{ padding: '16px 0 0 0' }}>\n <CheckoutButton\n isMobileFlow={isMobileFlow}\n createCartCall={\n deviceFlow?.isDeviceFlow\n ? withReplaceCartCheck(deviceFirstFlowCreateCartCallback)\n : isMobileFlow\n ? withReplaceCartCheck(createCart)\n : withReplaceCartCheck(createCartCall)\n }\n constants={constants}\n storyContent={storyContent}\n showPrice={showPrice}\n isAvailable={isAvailable}\n address={address}\n uniqueProductBenefits={uniqueProductData?.[0]}\n alwaysActive={\n !isAvailable &&\n mainContent?.linecheckData?.length > 0 &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/coverage-check'\n }\n flexUpgradeFreePopup={mainContent?.flexUpgradeFreePopup?.reference?.content}\n content={content}\n deviceUltimateBundle={deviceUltimateBundle}\n forceDisabled={Boolean(uniqueProductData?.[0]?.rewards?.notEligibleReason)}\n notEligibileReason={uniqueProductData?.[0]?.rewards?.notEligibleReason}\n />\n </div>\n {/* combined with smartphone section */}\n {!isShogunFlow && storyContent?.addSmartPhone?.length > 0 && !deviceFlow?.isDeviceFlow && (\n <div style={{ textAlign: 'center' }}>\n {storyContent?.swapButton\n ? storyContent?.ctaLabel && (\n <div style={{ padding: '16px 0' }}>\n <button\n className={`primarybutton`}\n onClick={() =>\n withReplaceCartCheck(() =>\n combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n '',\n content,\n pegaIntegration\n ),\n mainContent?.replacePopupWithSmartphone?.[0]\n )()\n }\n >\n <span className={Styles.buttontext}>\n {storyContent?.ctaLabel}\n </span>\n </button>\n </div>\n )\n : !content?.redirectOnly && (\n <div style={{ padding: '12px 0 0 0' }}>\n <FalconButtonV2\n content={{\n buttonType: 'Secondary-V1',\n buttonLabel: content?.ultimateBundlePromotion\n ? constants?.ultimateBundleLbl\n : storyContent?.addSmartPhone?.[0]?.buttonLabel,\n buttonIcon: storyContent?.addSmartPhone?.[0]?.buttonIcon,\n buttonAlignment: 'left'\n }}\n wafIdentifier={basicConfigUrl}\n style={{ width: '100%' }}\n onClick={() =>\n withReplaceCartCheck(\n () =>\n enableP2P\n ? combineP2P()\n : combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n '',\n content,\n pegaIntegration\n ),\n mainContent?.replacePopupWithSmartphone?.[0]\n )()\n }\n />\n </div>\n )}\n </div>\n )}\n <div\n className={Styles.productcontractduration}\n id={`contract-section${tabIndex}${indexKey}`}\n style={{\n paddingTop:\n storyContent?.addSmartPhone?.length > 0 &&\n !deviceFlow?.isDeviceFlow &&\n !storyContent?.swapButton &&\n !content?.redirectOnly\n ? '8px'\n : undefined\n }}\n >\n {showPrice?.contractDuration > '1'\n ? replacePlaceholder(constants?.minContractDuration?.substring(1), [\n showPrice?.contractDuration\n ])\n : constants?.noContractDuration}\n </div>\n </div>\n )}\n {/* product details section */}\n <div style={{ textAlign: 'center', padding: '4px' }}>\n {productData?.productDetails?.length > 0 && (\n <span className={Styles.productdetailslink} onClick={showDetailsModal}>\n {constants?.productDetailsLink}\n </span>\n )}\n </div>\n {showProductDetail && (\n <StaticProductDetails\n content={productData?.productDetails}\n showProductDetail={showProductDetail}\n setShowProductDetail={setShowProductDetail}\n constants={constants}\n showPrice={showPrice}\n isMobileFlow={isMobileFlow}\n createCartCall={isMobileFlow ? createCart : createCartCall}\n storyContent={storyContent}\n isAvailable={isAvailable}\n address={address}\n flexUpgradeFreePopup={mainContent?.flexUpgradeFreePopup?.reference?.content}\n notEligibileReason={uniqueProductData?.[0]?.rewards?.notEligibleReason}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {deviceUltimateBundle && uniqueProductData && !uniqueProductData?.[0]?.eligibility?.fpb && (\n <div className={Styles.disabledInfo}>\n <RichText content={constants?.fpbNotCompatibleText} />\n </div>\n )}\n\n {showOptions &&\n (isSkeletonLoading ? (\n <SkeletonLoader />\n ) : (\n <TVChannelModal\n content={serviceOption?.[0]}\n setShowModal={setShowOptions}\n showModal={showOptions}\n constants={constants}\n />\n ))}\n\n {/* login pop up existing customer benefit without login on click of proceed to checkout */}\n {showLogin &&\n mainContent?.loginData?.length > 0 &&\n portalPosition &&\n createPortal(\n <LoginModalV2\n content={mainContent?.loginData?.[0]}\n closeLogin={() => {\n setShowLogin(false);\n }}\n metadata={metadata}\n onSuccess={onLoginSuccess}\n isProdEnv={isProdEnv}\n />,\n portalPosition\n )}\n\n {/* P2P flow first screen to select login */}\n {showP2P && enableP2P && !showLogin && popUPClick && (\n <GenericModal\n modalState={modalClick}\n handler={handleClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n >\n <PreToPostSubsPopup\n onClose={handleP2PClick}\n content={mainContent?.productContainer?.[0]?.p2pBloks?.[0]}\n prepaid={false}\n />\n </GenericModal>\n )}\n\n {/* P2P flow error screen if the customer is not prepaid customer */}\n {enableP2P && afterLogin && subscriptionFailure && popUPClick && (\n <GenericModal\n modalState={modalClick}\n handler={handleClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n id='table-product'\n >\n <PreToPostSubsPopup\n onClose={handleP2PClick}\n content={mainContent?.productContainer?.[0]?.p2pBloks?.[1]}\n prepaid={true}\n />\n </GenericModal>\n )}\n\n {/* p2p flow after successfully logged in prepaid customer to select a number for P2P*/}\n {userSubscriptionData?.length > 1 &&\n enableP2P &&\n afterLogin &&\n !subscriptionFailure &&\n p2pModal && (\n <GenericModal\n modalState={p2pModal}\n handler={handlePrepaidClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n >\n <ExsistingSubscriptionModal\n onSubmit={onSelectSubscriptionPreToPost}\n exsistingSubscriptionData={userSubscriptionData}\n updatedContent={updatedContent}\n />\n </GenericModal>\n )}\n\n {/* lincheck modal */}\n {showLinecheck &&\n mainContent?.enableLinecheckOverlay &&\n !isMobileFlow &&\n mainContent?.linecheckData?.length > 0 &&\n !enableP2P &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/new-linecheck-test' ? (\n <LinecheckModal\n content={mainContent?.linecheckData?.[0]}\n onSuccess={linecheckSuccessAndCart}\n showModal={showLinecheck}\n setShowModal={setShowLinecheck}\n productName={productData?.productName}\n productId={productData?.productId}\n />\n ) : showLinecheck &&\n mainContent?.enableLinecheckOverlay &&\n !isMobileFlow &&\n mainContent?.linecheckData?.length > 0 &&\n !enableP2P &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/coverage-check' ? (\n <CoverageCheckModal\n content={mainContent?.linecheckData?.[0].reference.content.body[0]}\n overlayIsOpen={true}\n externalHandleModal={setShowLinecheck}\n productName={productData?.productName}\n showModal={showLinecheck}\n setShowModal={setShowLinecheck}\n onSuccess={linecheckSuccess}\n onCreateCart={linecheckSuccessAndCart}\n lineCheckOnClear={lineCheckOnClear}\n productId={productData?.productId}\n />\n ) : null}\n {/* benefit validate */}\n {showBenefit && isMobileFlow && storyContent?.benefitsValidate?.length > 0 && (\n <BenefitsValidateWrapper\n content={storyContent?.benefitsValidate?.[0]}\n loginContent={mainContent?.loginData?.[0]}\n metadata={metadata}\n createCartCall={createCartCall}\n fetchOfferData={fetchOfferData}\n basicConfigUrl={basicConfigUrl}\n selectedExistingOption={selectedExistingOption}\n setShowBenefit={setShowBenefit}\n setLoginSuccess={setLoginSuccess}\n isProdEnv={isProdEnv}\n />\n )}\n\n {/* Display tv options on pop up after clicking order now button*/}\n {displayTvOptionsPopUp && (\n <GenericModal\n modalState={displayTvOptionsPopUp}\n handler={closeTVOptionsModal}\n showFooter={false}\n width={viewPortType === 'mobile' ? '' : viewPortType === 'tablet' ? '700px' : '990px'}\n fixedWidth={\n viewPortType === 'mobile' ? '' : viewPortType === 'tablet' ? '700px' : '990px'\n }\n height='845px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='24px'\n >\n <OttServiceOptionsSmallPopup\n content={mainContent?.optionsPopup?.[0]}\n addOptionsCallBack={(val: any) => {\n setTvOptionsPopUpAddToCart(true);\n setTvOptionsPopUpChanged(true);\n setTvOptionsData(val);\n }}\n metadata={metadata}\n constants={constants}\n mainContent={mainContent}\n preSelectedOptions={[]}\n optionsResponse={responseList}\n updateResponseList={setResponseList}\n showPrice={showPrice}\n productData={productData}\n offeringData={offeringData}\n uniqueId={uniqueId}\n deviceFlow={deviceFlow}\n />\n </GenericModal>\n )}\n\n {/* Replace persistent cart confirmation modal */}\n {showReplaceCartModal && replacePopupContent && (\n <GenericPopup\n modalState={showReplaceCartModal}\n onCloseHandler={() => {\n pendingCartActionRef.current = null;\n setShowReplaceCartModal(false);\n }}\n content={replacePopupContent}\n wafIdentifier={basicConfigUrl}\n onPrimaryClick={() => {\n const pendingAction = pendingCartActionRef.current;\n pendingCartActionRef.current = null;\n if (shouldDeleteCartCookieRef.current) {\n Cookies.remove('one-commerce-cartId');\n }\n shouldDeleteCartCookieRef.current = false;\n setShowReplaceCartModal(false);\n pendingAction?.();\n }}\n onSecondaryClick={() => {\n pendingCartActionRef.current = null;\n setShowReplaceCartModal(false);\n }}\n />\n )}\n </div>\n );\n};\n\nexport default StaticProduct;\n"],"names":["StaticProduct","content","offeringData","uniqueId","storyContent","metadata","tabIndex","cardsLength","indexKey","constants","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","fetchOfferData","basicConfigUrl","selectedExistingOption","setLoginSuccess","enableP2P","lineCheckCallBack","loginSuccess","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","selectedRP","continueCart","lineCheckOnClear","pegaIntegration","isProdEnv","deviceUltimateBundle","toggleContent","pricesToggleState","isShogunFlow","shogunToken","showLoader","setShowLoader","useState","showProductDetail","setShowProductDetail","showGiftOrCashback","setShowGiftOrCashback","showGift","cashbackAvailable","modalClick","updateModalClick","combine","setCombine","giftItem","setGiftItem","showLogin","setShowLogin","showOptions","setShowOptions","showLinecheck","setShowLinecheck","showP2P","setShowP2P","showBenefit","setShowBenefit","subscriptionFailure","setSubscriptionFailure","endpoint","validateEndpoint","userSubscriptionData","setUserSubscriptionData","afterLogin","setAfterLogin","popUPClick","setModalClick","p2pModal","setP2pModal","tvOptions","setTvOptions","displayTvOptionsPopUp","setDisplayTvOptionsPopUp","alreadyShowedTvOptionsPopUp","setAlreadyShowedTvOptionsPopUp","tvOptionsPopUpChanged","setTvOptionsPopUpChanged","tvOptionsPopUpAddToCart","setTvOptionsPopUpAddToCart","responseList","setResponseList","timerSpaceHeight","setTimerSpaceHeight","showReplaceCartModal","setShowReplaceCartModal","pendingCartActionRef","useRef","replacePopupContent","setReplacePopupContent","shouldDeleteCartCookieRef","timerContainerRef","pegaEndpoint","API_BASE_BASEPOINT","CUSTOMER","portalPosition","undefined","window","document","getElementById","isSkeletonLoading","_a","Object","keys","length","productData","_f","_e","_d","_c","_b","products","reference","product","promotionData","_l","_k","_j","_h","_g","promotion","promoDescription","timerContent","_m","timer","isCounterEnabled","enableCounter","timerIsActive","setTimerIsActive","startTime","endTime","isTimerActive","showHighlightText","Boolean","highlightText","badgesContainer","showPromoContainer","displayText","notShowPromotionLabel","showBadges","id","productId","cartEndPoint","_o","LineTableBasicPropConfig","getInstance","getCartUrl","assetPath","_p","AssetPathPropConfig","getAssetPath","isMobileFlow","pageType","viewPortType","viewport","context","useContext","AppContext","isAvailable","_q","includes","enableTVStreamingOptionsPopUp","enableTVStreamingOptionsStepper","disableDiscountedPriceToggle","skipAccessoriesPage","LoginBasicPropConfig","create","baseURL","AuthData","Cookies","get","JSON","parse","uniqueProductData","filter","setTvOptionsData","options","handleP2PClick","createCart","siteId","fetchPrepaidData","EXISTINGCUSTOMER","enableExistingCustomer","enableLoggedInPrice","createCartCall","prospectId","localStorage","getItem","url","location","pathname","split","payload","eventTimestamp","getUtcTimestamp","eventType","pageLocation","targetProduct","trackPegaEvents","selectedGiftItem","item","itemValue","findIndex","gift","giftGroupId","temp","push","params","URLSearchParams","_r","search","queryParams","validateNumberFcn","value","combineWithSmartPhone","showPrice","msisdn","validateFcn","validPrepaidNumbers","__awaiter","validateP2P","then","res","catch","e","console","log","fetchSubscriptionData","resp","subscriptionData","responseData","queryData","find","entry","Promise","all","map","data","succ","error","err","handleClick","closeTVOptionsModal","event","trackNewDatalayerEvent","GAEVENT","CTABUTTONCLICK","headline","linecheckSuccessAndCart","bundle","serviceOption","fetchServiceOptions","bloks","radioValue","_s","tvProductId","createCartCallAction","discountRef","promotionInfo","discountVersion","version","rewardsInfo","pointsBurnt","rewards","points","rewardOfferId","offerId","gloxTokenId","fromPopup","updateVasPopUp","sessionStorage","removeItem","staticCreateCart","AuthDataNew","setLoginCookie","ONE_ECOMMERCE_INTERNET_SUMMARY","linecheckData","loginData","isBundle","recommendAccessory","bundledOffers","productType","toLowerCase","combineWithVasOptions","productName","addEventListener","withReplaceCartCheck","action","popupContent","callFunctionArg","existingCartId","enableReplacePopup","current","generalReplacePopup","fetchPrice","useEffect","setTimeout","findHeight","result","checkGiftOrCashback","assign","TV","gigaSpeed","Netflix","Array","isArray","_u","_t","showModalPopup","updatedContent","_v","productContainer","store","ottOptionsApi","delay","getTimeUntilNextTimerEvent","timeout","clearTimeout","timerElement","updateTimerSpaceHeight","clientHeight","ResizeObserver","resizeObserver","observe","disconnect","_w","checkVasPopUp","vasPopUp","handleStorageChange","storageArea","key","newValue","handleCustomEvent","removeEventListener","setItem","Event","dispatchEvent","React","createElement","createPortal","Dotloader","keyParams","className","SkeletonLoader","Styles","selected","style","paddingBottom","activeicon","src","alt","width","height","subscriptionAvalTxt","inactiveicon","notSubscriptionTxt","_x","_z","_y","_0","default_full_slug","overlay","_2","_1","eligibility","fpb","disabled","flexDirection","bundleproductcard","_3","transition","productcontainer","borderConfig","showBorder","borderGradient","borderColor","borderWidth","borderStyle","borderRadius","background","getBorderStyles","BadgeContainer","badges","badgeContainer","promocontainer","bestSellerColor","ref","timerContainer","_4","StaticLineTabelTimer","_5","hasHighlightText","onTimerChange","active","detailsection","imageFullWidthSection","headersection","titlesection","productheader","icon","_6","filename","imagecontainer","_7","productdescription","RichText","description","images","_8","img","imagespace","borderimage","_9","productconfig","Fragment","space","stylename","skeletontittle","count","skeletonline","_10","entitle","index","StaticProductEntitlement","enableTVStreamingOptions","_11","extraBenefits","StaticExclusiveBenefit","_12","benefitssection","_13","benefits","StaticBenefit","benefitData","togglePriceLabel","giftsection","_14","singleGift","GiftConfigV2","_15","giftConfig","ChooseGiftV2","parentPoType","StaticProductCashback","ordersection","base","DynamicPriceSection","priceCollection","promoText","discountedpricetoggleSection","togglePosition","UserLoggedPricesToggle","lineTable","P2PDiscountLabel","longterm","swapButton","padding","CheckoutButton","isDeviceFlow","msisdnn","uniqueProductBenefits","alwaysActive","_16","_18","_17","flexUpgradeFreePopup","_21","_20","forceDisabled","_23","_22","notEligibleReason","notEligibileReason","_25","_24","_26","addSmartPhone","textAlign","ctaLabel","onClick","replacePopupWithSmartphone","buttontext","redirectOnly","FalconButtonV2","buttonType","buttonLabel","ultimateBundlePromotion","ultimateBundleLbl","_28","_27","buttonIcon","_30","_29","buttonAlignment","wafIdentifier","productcontractduration","paddingTop","_31","contractDuration","replacePlaceholder","_32","minContractDuration","substring","noContractDuration","productDetails","_33","productdetailslink","DOWNLOADPRODUCT","getEcomCartInfo","LINETABLE","productDetailsLink","StaticProductDetails","_35","_34","_37","_36","_39","_38","disabledInfo","fpbNotCompatibleText","TVChannelModal","setShowModal","showModal","_40","LoginModalV2","_41","closeLogin","onSuccess","GenericModal","modalState","handler","showFooter","backgroundColor","noCloseButton","backDrop","bodyPadding","PreToPostSubsPopup","onClose","_44","_43","_42","p2pBloks","prepaid","_47","_46","_45","ExsistingSubscriptionModal","onSubmit","exsistingSubscriptionData","enableLinecheckOverlay","_48","_50","_49","LinecheckModal","_52","_53","_55","_54","CoverageCheckModal","_57","body","overlayIsOpen","externalHandleModal","onCreateCart","_58","benefitsValidate","BenefitsValidateWrapper","_59","loginContent","_60","fixedWidth","OttServiceOptionsSmallPopup","optionsPopup","_61","addOptionsCallBack","val","preSelectedOptions","optionsResponse","updateResponseList","GenericPopup","onCloseHandler","onPrimaryClick","pendingAction","remove","onSecondaryClick"],"mappings":"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"}
1
+ {"version":3,"file":"StaticProduct.js","sources":["../../../../src/components/StaticLineTable/StaticProduct.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect, useRef, useState } from 'react';\nimport Dotloader from '../Dotloader/Dotloader';\nimport { createPortal } from 'react-dom';\nimport SkeletonLoader from '../SkeletonLoader/SkeletonLoader';\nimport Styles from './StaticLineTable.module.scss';\nimport RichText from '../richtext';\nimport StaticProductEntitlement from './StaticProductEntitlement';\nimport StaticBenefit from './StaticBenefit';\nimport DynamicPriceSection from './DynamicPriceSection';\nimport CheckoutButton from './CheckoutButton';\nimport StaticProductDetails from './StaticProductDetails';\nimport { StaticProductSchema } from './StaticProductDatatypes';\nimport {\n AssetPathPropConfig,\n LineTableBasicPropConfig\n} from '../../services/LineTableBasicPropConfig';\nimport Cookies from 'js-cookie';\nimport { LoginBasicPropConfig } from '../../services/LoginBasicPropConfig';\nimport LoginModalV2 from '../login/LoginModalV2';\nimport {\n checkGiftOrCashback,\n combineWithSmartPhone,\n combineWithVasOptions,\n fetchPrice,\n fetchServiceOptions,\n findHeight,\n isTimerActive,\n getTimeUntilNextTimerEvent,\n staticCreateCart\n} from './Product.utils';\nimport GiftConfigV2 from '../ProductDetailsV3/GiftConfigV2';\nimport ChooseGiftV2 from '../ProductDetailsV3/ChooseGiftV2';\nimport { replacePlaceholder, viewport, getUtcTimestamp } from '../../utils/utils';\nimport StaticProductCashback from './StaticProductCashback';\nimport { trackNewDatalayerEvent } from '../../utils/AnalyticsUtils';\nimport {\n CTABUTTONCLICK,\n DOWNLOADPRODUCT,\n EXISTINGCUSTOMER,\n GAEVENT,\n LINETABLE\n} from '../../Analytics/AnalyticsConstants';\nimport TVChannelModal from './TVChannelModal';\nimport LinecheckModal from '../LineCheckV3/LinecheckModal';\nimport BenefitsValidateWrapper from '../BenefitWrapper/BenefitsValidateWrapper';\nimport PreToPostSubsPopup from '../PretoPost/PreToPostSubsPopup';\nimport GenericModal from '../LineCheckV3/GenericModal';\nimport {\n fetchSubscriptionData,\n trackPegaEvents,\n validateP2P\n} from '../../services/LineTableService';\nimport ExsistingSubscriptionModal from './ExsistingSubscriptionModal';\nimport { getEcomCartInfo } from '../../models/Analytics/items';\nimport CoverageCheckModal from '../NewLineCheck/CoverageCheckModal';\n\nimport { API_BASE_BASEPOINT } from '../../services/api-constants';\nimport { AppContext } from './StaticLineTableStore/StaticLineTableProvider';\nimport OttServiceOptionsSmallPopup from './OttServiceOptions/OttServiceOptionsSmallPopup';\nimport StaticExclusiveBenefit from './StaticExclusiveBenefit';\n// US_312953\nimport UserLoggedPricesToggle from '../UserLoggedPricesToggle/UserLoggedPricesToggle';\nimport FalconButtonV2 from '../FalconButtonV2/FalconButtonV2';\nimport { ONE_ECOMMERCE_INTERNET_SUMMARY } from '../../utils/constants';\nimport StaticLineTabelTimer from './StaticLineTabelTimer/StaticLineTabelTimer';\nimport { useProductCardBadge } from './ProductCardBadgeProvider';\nimport GenericPopup from '../GenericPopup/GenericPopup';\n\nconst StaticProduct: FC<StaticProductSchema> = ({\n content,\n offeringData,\n uniqueId,\n storyContent,\n metadata,\n tabIndex,\n cardsLength,\n indexKey,\n constants,\n mainContent,\n address,\n eligibleBundle,\n linecheckSuccessCallBack,\n selectedOption,\n fetchOfferData,\n basicConfigUrl,\n selectedExistingOption,\n setLoginSuccess,\n enableP2P,\n lineCheckCallBack,\n loginSuccess,\n setToggleState,\n toggleState,\n noTabs,\n deviceFlow,\n deviceFlowCallBack,\n selectedRP,\n continueCart,\n lineCheckOnClear,\n pegaIntegration,\n isProdEnv,\n deviceUltimateBundle,\n //US_31295\n toggleContent,\n pricesToggleState,\n isShogunFlow,\n shogunToken\n}) => {\n const BadgeContainer = useProductCardBadge();\n const [showLoader, setShowLoader] = useState<boolean>(false);\n const [showProductDetail, setShowProductDetail] = useState(false);\n const [showGiftOrCashback, setShowGiftOrCashback] = useState({\n showGift: false,\n cashbackAvailable: false\n });\n const [modalClick, updateModalClick] = useState(true);\n const [combine, setCombine] = useState(false);\n const [giftItem, setGiftItem] = useState<any>([]);\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [showLinecheck, setShowLinecheck] = useState<boolean>(false);\n const [showP2P, setShowP2P] = useState<boolean>(false);\n const [showBenefit, setShowBenefit] = useState<boolean>(false);\n const [subscriptionFailure, setSubscriptionFailure] = useState(false);\n const endpoint = `${basicConfigUrl}inf/customer-management/subscriptions`;\n const validateEndpoint = `${basicConfigUrl}inf/resource-management/msisdns/pretopost/validation`;\n const [userSubscriptionData, setUserSubscriptionData] = useState<any>([]);\n const [afterLogin, setAfterLogin] = useState<boolean>(false);\n const [popUPClick, setModalClick] = useState<boolean>(false);\n const [p2pModal, setP2pModal] = useState<boolean>(false);\n const [tvOptions, setTvOptions] = useState<any[] | undefined>([]);\n const [displayTvOptionsPopUp, setDisplayTvOptionsPopUp] = useState<boolean>(false);\n const [alreadyShowedTvOptionsPopUp, setAlreadyShowedTvOptionsPopUp] = useState<boolean>(false);\n const [tvOptionsPopUpChanged, setTvOptionsPopUpChanged] = useState<boolean>(false);\n const [tvOptionsPopUpAddToCart, setTvOptionsPopUpAddToCart] = useState<boolean>(false);\n const [responseList, setResponseList] = useState([]);\n const [timerSpaceHeight, setTimerSpaceHeight] = useState(0);\n const [showReplaceCartModal, setShowReplaceCartModal] = useState<boolean>(false);\n const pendingCartActionRef = useRef<(() => void) | null>(null);\n const [replacePopupContent, setReplacePopupContent] = useState<any>(null);\n const shouldDeleteCartCookieRef = useRef<boolean>(false);\n const timerContainerRef = useRef<HTMLDivElement | null>(null);\n const pegaEndpoint = `${basicConfigUrl}inf/${API_BASE_BASEPOINT.CUSTOMER}`;\n\n /*the portal position for the the dotloader*/\n const portalPosition: any =\n typeof window !== undefined && document.getElementById('static-linetable');\n const isSkeletonLoading = Object.keys(content)?.length === 0;\n const productData = content?.products?.[0]?.reference?.content?.product?.[0];\n const promotionData = content?.promotion?.[0]?.reference?.content?.promoDescription?.[0];\n const timerContent = content?.timer?.[0];\n const isCounterEnabled = timerContent?.enableCounter;\n const [timerIsActive, setTimerIsActive] = useState(\n isCounterEnabled && timerContent?.startTime && timerContent?.endTime\n ? isTimerActive(timerContent.startTime, timerContent.endTime)\n : false\n );\n const showHighlightText = Boolean(\n content?.highlightText &&\n pricesToggleState !== true &&\n !timerIsActive &&\n !(BadgeContainer && content?.badgesContainer)\n );\n const showPromoContainer = Boolean(\n promotionData?.displayText &&\n !content?.notShowPromotionLabel &&\n pricesToggleState !== true &&\n !timerIsActive\n );\n\n const showBadges = Boolean(\n BadgeContainer &&\n content?.badgesContainer &&\n pricesToggleState !== true &&\n !timerIsActive &&\n !showPromoContainer\n );\n\n const id = productData?.productId;\n const cartEndPoint = LineTableBasicPropConfig?.getInstance()?.getCartUrl();\n const assetPath = AssetPathPropConfig?.getInstance()?.getAssetPath();\n const isMobileFlow = storyContent?.pageType === 'MOBILE';\n const viewPortType = viewport();\n const context = useContext(AppContext);\n let isAvailable: boolean | undefined = undefined;\n isAvailable = address && eligibleBundle?.eligibleBundle?.includes(id);\n const enableTVStreamingOptionsPopUp = content?.enableTVStreamingOptionsPopUp;\n const enableTVStreamingOptionsStepper = content?.enableTVStreamingOptionsStepper;\n const disableDiscountedPriceToggle = content?.disableDiscountedPriceToggle;\n const skipAccessoriesPage = content?.skipAccessoriesPage;\n\n LoginBasicPropConfig.create({ baseURL: basicConfigUrl ?? '' });\n\n //sunrise auth data\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n AuthData = AuthData && JSON.parse(AuthData);\n //offer data wrt to tab\n const uniqueProductData: any = (offeringData?.[uniqueId] || []).filter(\n (product: any) => product?.id === id\n );\n\n const setTvOptionsData = (options: any) => {\n setTvOptions(options);\n };\n\n const handleP2PClick = () => {\n setShowLogin(true);\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n };\n\n //creacart function or login pop up\n const createCart = () => {\n setShowProductDetail(false);\n if (enableP2P && AuthData == undefined) {\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n } else if (enableP2P && AuthData?.siteId) {\n fetchPrepaidData();\n } else if (selectedOption === EXISTINGCUSTOMER && selectedExistingOption?.length > 0) {\n setShowBenefit(true);\n } else {\n //US_31295\n const setLoginCookie =\n (mainContent?.enableExistingCustomer && AuthData == undefined) ||\n (!AuthData && pricesToggleState === true && toggleContent?.enableLoggedInPrice)\n ? true\n : false;\n setLoginCookie ? setShowLogin(true) : createCartCall();\n }\n if (pegaIntegration) {\n const prospectId = localStorage.getItem('prospectId');\n const url = window?.location?.pathname?.split('/') ?? [];\n const pathname = url[url.length - 1];\n const payload = {\n eventTimestamp: getUtcTimestamp(),\n eventType: 'PageView',\n pageType: 'CartCreated',\n pageLocation: pathname,\n // deviceType: viewPortType,#TODO - fix this values, isn't working for tablet\n targetProduct: id\n };\n prospectId && trackPegaEvents(pegaEndpoint, payload, prospectId);\n }\n };\n\n //setting the selected gift from choose gift section\n const selectedGiftItem = (item: any) => {\n const itemValue = giftItem.findIndex((gift: any) => item?.giftGroupId === gift?.giftGroupId);\n const temp = giftItem;\n if (itemValue === -1) temp.push(item);\n else temp[itemValue] = item;\n setGiftItem([...temp]);\n };\n\n // Helper method to get border styles\n const getBorderStyles = () => {\n const borderConfig = showPromoContainer ? promotionData : content;\n const showBorder = borderConfig?.showBorder;\n const borderGradient = borderConfig?.borderGradient;\n const borderColor = borderConfig?.borderColor;\n\n return {\n borderColor: showBorder && !borderGradient ? borderColor || '' : 'transparent',\n borderWidth: showBorder ? '4px' : '0px',\n borderStyle: showBorder ? 'solid' : 'none',\n borderRadius: showBorder ? '8px' : '',\n background: showBorder && borderGradient\n ? `linear-gradient(white, white) padding-box, ${borderGradient} border-box`\n : undefined,\n };\n };\n\n //queryParam for MySunrise P2P flow\n const params = new URLSearchParams(window?.location?.search);\n const queryParams = params?.get('selectedMsisdn');\n const validateNumberFcn = (value: any) => {\n // once all the prepaid numbers are validated\n if (value?.length === 1) {\n combine\n ? combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n value?.[0],\n content,\n pegaIntegration\n )\n : createCartCall(value?.[0]?.msisdn);\n setSubscriptionFailure(false);\n } else if (value?.length > 1) {\n setUserSubscriptionData(value);\n setP2pModal(!p2pModal);\n setSubscriptionFailure(false);\n } else {\n setModalClick(!popUPClick);\n setSubscriptionFailure(true);\n updateModalClick(true);\n setShowLoader(false);\n }\n };\n const validateFcn = async (value: any, validPrepaidNumbers: any) => {\n await validateP2P(value?.msisdn, validateEndpoint)\n .then((res) => {\n if (res) {\n validPrepaidNumbers.push(value);\n }\n })\n .catch((e: any) => {\n // eslint-disable-next-line no-console\n console.log('error', e);\n });\n };\n //prepaid subscription api and validating those for conversion\n const fetchPrepaidData = () => {\n setShowLoader(true);\n try {\n fetchSubscriptionData('PREPAID', endpoint)\n ?.then(async (resp: any) => {\n if (resp?.subscriptionData == 204) {\n setModalClick(!popUPClick);\n setSubscriptionFailure(true);\n updateModalClick(true);\n setShowLoader(false);\n } else {\n const responseData = resp?.subscriptionData;\n const queryData = responseData.find((entry: any) => entry.msisdn === queryParams);\n if (responseData) {\n const validPrepaidNumbers: any = [];\n if (queryParams) {\n await validateFcn(queryData, validPrepaidNumbers);\n validateNumberFcn(validPrepaidNumbers);\n } else {\n await Promise.all(\n responseData?.map(async (data: any) => {\n await validateFcn(data, validPrepaidNumbers);\n })\n ).then((succ) => {\n validateNumberFcn(validPrepaidNumbers);\n });\n }\n }\n }\n })\n .catch((error: any) => {\n // eslint-disable-next-line no-console\n console.log('error--->', error);\n setShowLoader(false);\n });\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log('error--->', err);\n setShowLoader(false);\n }\n setAfterLogin(true);\n };\n\n // on login success\n const onLoginSuccess = () => {\n setShowLogin(false);\n setLoginSuccess();\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n if (enableP2P) {\n fetchPrepaidData();\n } else {\n createCartCall();\n }\n };\n\n // to close the pop up of P2P\n const handleClick = () => {\n setModalClick(!modalClick);\n setShowP2P(false);\n };\n\n // to close the pop up of P2P for success prepiad\n const handlePrepaidClick = () => {\n setShowLoader(false);\n setP2pModal(!p2pModal);\n };\n\n const closeTVOptionsModal = (event?: any) => {\n setDisplayTvOptionsPopUp(false);\n\n if (event) {\n trackNewDatalayerEvent(GAEVENT, CTABUTTONCLICK, {\n headline: 'VAS POPUP CLOSE'\n });\n }\n };\n\n //once linecheck success set linecheck pop up false and proceed to checkout section\n const linecheckSuccess = () => {\n let bundle = typeof window !== 'undefined' && localStorage.getItem('lineCheckResponse');\n eligibleBundle = bundle && JSON?.parse(bundle);\n address = typeof window !== 'undefined' && Cookies.get('chAddressJson');\n typeof linecheckSuccessCallBack == 'function' && linecheckSuccessCallBack();\n };\n\n //once linecheck success set linecheck pop up false and proceed to checkout section\n const linecheckSuccessAndCart = () => {\n let bundle = typeof window !== 'undefined' && localStorage.getItem('lineCheckResponse');\n eligibleBundle = bundle && JSON?.parse(bundle);\n address = typeof window !== 'undefined' && Cookies.get('chAddressJson');\n setShowLinecheck(!showLinecheck);\n typeof linecheckSuccessCallBack == 'function' && linecheckSuccessCallBack();\n createCartCall();\n };\n\n //service Option set for TV\n\n const serviceOption = fetchServiceOptions(productData?.bloks, isMobileFlow);\n\n const radioValue = serviceOption?.[0]?.tvProductId;\n\n const createCartCallAction = (msisdn?: string) => {\n const discountRef = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.id;\n const discountVersion = pegaIntegration && uniqueProductData?.[0]?.promotionInfo?.[0]?.version;\n\n // Shogun / rewards (loyalty) flow: attach the pointsBurnt note so the\n // backend can settle the loyalty burn during cart creation. The value\n // comes from the offer response under `rewards.points`.\n const rewardsInfo = isShogunFlow\n ? { pointsBurnt: uniqueProductData?.[0]?.rewards?.points, rewardOfferId: uniqueProductData?.[0]?.rewards?.offerId, gloxTokenId: shogunToken }\n : undefined;\n\n // US 317400- vas options pop tracking\n if (uniqueProductData && uniqueProductData[0]) {\n uniqueProductData[0].fromPopup = tvOptionsPopUpAddToCart;\n }\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n\n staticCreateCart(\n setShowLoader,\n cartEndPoint,\n giftItem,\n uniqueProductData,\n mainContent,\n showPrice,\n isMobileFlow,\n radioValue,\n eligibleBundle,\n address,\n setShowLinecheck,\n showLinecheck,\n lineCheckCallBack,\n enableP2P,\n queryParams ?? msisdn,\n content,\n tvOptions,\n discountRef,\n discountVersion,\n rewardsInfo\n );\n };\n //cart creation\n const createCartCall = (msisdn?: string) => {\n setTvOptionsPopUpAddToCart(false);\n setShowProductDetail(false);\n let AuthData: any = typeof window !== undefined && Cookies.get('sunriseAuth');\n const AuthDataNew = AuthData && JSON.parse(AuthData);\n const setLoginCookie =\n mainContent?.enableExistingCustomer && AuthDataNew == undefined ? true : false;\n sessionStorage.removeItem(ONE_ECOMMERCE_INTERNET_SUMMARY);\n if (mainContent?.linecheckData?.length > 0 && !isMobileFlow && !isAvailable) {\n // setShowLinecheck(true);\n const lineCheckElement = document.getElementById('linecheck');\n if (lineCheckElement) {\n lineCheckCallBack();\n }\n return;\n } else if (\n isAvailable &&\n !isMobileFlow &&\n mainContent?.loginData?.length > 0 &&\n setLoginCookie\n ) {\n setShowLogin(true);\n } else if (enableTVStreamingOptionsStepper && uniqueProductData[0]?.isBundle) {\n let recommendAccessory = false;\n\n if (!skipAccessoriesPage) {\n /**Check if bundle or Internet and add it to cart request*/\n if (uniqueProductData[0]?.isBundle) {\n uniqueProductData[0]?.bundledOffers?.map((item: any) => {\n if (\n item?.productType?.toLowerCase() === 'internet' ||\n item?.productType?.toLowerCase() == 'tv'\n ) {\n if (item?.recommendAccessory) {\n recommendAccessory = item?.recommendAccessory;\n }\n }\n // setting to false incase of Mobile product Type as it is currently out of scope\n if (item?.productType?.toLowerCase() === 'mobile') {\n recommendAccessory = false;\n return;\n }\n });\n } else {\n /**Add standlone product such as internet to cart request*/\n if (uniqueProductData?.[0]?.recommendAccessory) {\n recommendAccessory = uniqueProductData?.[0]?.recommendAccessory;\n }\n }\n }\n\n combineWithVasOptions(\n showPrice,\n uniqueProductData,\n content,\n pegaIntegration,\n productData?.productName,\n recommendAccessory\n );\n createCartCallAction(msisdn);\n } else if (\n enableTVStreamingOptionsPopUp &&\n uniqueProductData[0]?.isBundle &&\n !alreadyShowedTvOptionsPopUp\n ) {\n setDisplayTvOptionsPopUp(true);\n setAlreadyShowedTvOptionsPopUp(true);\n updateVasPopUp('true');\n\n window.addEventListener('beforeunload', function (event) {\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n });\n } else {\n //for mobile p2p\n if (enableP2P) {\n setShowLoader(true);\n }\n createCartCallAction(msisdn);\n }\n };\n\n //cart creation callback For device first flow\n const deviceFirstFlowCreateCartCallback = (msisdn?: string) => {\n setShowProductDetail(false);\n const msisdnn = queryParams ?? msisdn;\n const deviceFirstFlowCartObj = {\n setShowLoader,\n cartEndPoint,\n giftItem,\n uniqueProductData,\n mainContent,\n showPrice,\n isMobileFlow,\n eligibleBundle,\n address,\n setShowLinecheck,\n showLinecheck,\n lineCheckCallBack,\n enableP2P,\n msisdnn,\n content,\n selectedRP,\n continueCart\n };\n deviceFlowCallBack(deviceFirstFlowCartObj);\n };\n\n // Guards a cart-creation action: if a persistent cart already exists\n // (one-commerce-cartId cookie), show the replace-cart popup and defer the\n // action until the user confirms via the primary button.\n const withReplaceCartCheck =\n (action: (callFunctionArg?: string) => void, popupContent?: any) =>\n (callFunctionArg?: string) => {\n const existingCartId =\n typeof window !== undefined && Cookies.get('one-commerce-cartId');\n if (mainContent?.enableReplacePopup && existingCartId) {\n pendingCartActionRef.current = () => action(callFunctionArg);\n shouldDeleteCartCookieRef.current = Boolean(popupContent);\n setReplacePopupContent(popupContent ?? mainContent?.generalReplacePopup?.[0]);\n setShowReplaceCartModal(true);\n } else {\n action(callFunctionArg);\n }\n };\n\n // after 1 prepaid numbers selection from existingp2pmodal\n const onSelectSubscriptionPreToPost = (value: any) => {\n setP2pModal(!p2pModal);\n combine\n ? combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n value,\n content,\n pegaIntegration\n )\n : createCartCall(value?.msisdn);\n };\n //show price calculation\n const showPrice = fetchPrice(\n uniqueProductData,\n isMobileFlow,\n mainContent?.pageType,\n false,\n tvOptions,\n pegaIntegration\n );\n\n //card height calculation and gift & cashback check on change of offer data\n //to calculate the height when the tvOptions is added and removed\n useEffect(() => {\n setTimeout(() => {\n findHeight(tabIndex, cardsLength);\n }, 100);\n const result = checkGiftOrCashback(\n isMobileFlow\n ? uniqueProductData\n : (uniqueProductData?.[0]?.bundledOffers ?? uniqueProductData)\n );\n setShowGiftOrCashback({ ...result });\n }, [\n offeringData,\n toggleState,\n tvOptions,\n timerSpaceHeight,\n (toggleState?.TV || toggleState?.gigaSpeed || toggleState?.Netflix) &&\n Array.isArray(uniqueProductData) &&\n uniqueProductData?.[0]?.bundledOffers?.length === 3\n ]);\n\n //product details pop up\n const showDetailsModal = () => {\n setShowProductDetail(!showProductDetail);\n //Analytics Product Details tracking\n let offerData = uniqueProductData;\n trackNewDatalayerEvent(GAEVENT, DOWNLOADPRODUCT, getEcomCartInfo(offerData, '', LINETABLE));\n const prospectId = localStorage.getItem('prospectId');\n const url = window?.location?.pathname?.split('/') ?? [];\n const pathname = url[url.length - 1];\n const payload = {\n eventTimestamp: getUtcTimestamp(),\n eventType: 'PageView',\n pageType: 'ProductDetails',\n pageLocation: pathname,\n // deviceType: viewPortType, #TODO - fix this values, isn't working for tablet\n targetProduct: id\n };\n prospectId && trackPegaEvents(pegaEndpoint, payload, prospectId);\n };\n\n //TV service option\n const showModalPopup = () => {\n if (serviceOption?.length > 0 || enableTVStreamingOptionsPopUp) {\n setShowOptions(true);\n }\n };\n const updatedContent = mainContent?.productContainer?.[0];\n\n // set the combine to true for p2p\n const combineP2P = () => {\n setCombine(true);\n };\n\n // to trigger on click of combinewith smartphone\n useEffect(() => {\n if (combine) {\n if (enableP2P && AuthData == undefined) {\n setShowP2P(!showP2P);\n setModalClick(!popUPClick);\n } else if (enableP2P && AuthData?.siteId) {\n fetchPrepaidData();\n }\n }\n }, [combine]);\n\n useEffect(() => {\n if (context) {\n const { store } = context;\n if (store?.ottOptionsApi?.length > 0 && responseList?.length === 0) {\n setResponseList(store?.ottOptionsApi);\n }\n }\n }, [context]);\n\n useEffect(() => {\n if (!isCounterEnabled || !timerContent?.startTime || !timerContent?.endTime) {\n setTimerIsActive(false);\n return;\n }\n\n setTimerIsActive(isTimerActive(timerContent.startTime, timerContent.endTime));\n\n const delay = getTimeUntilNextTimerEvent(timerContent.startTime, timerContent.endTime);\n if (delay <= 0) return;\n\n const timeout = setTimeout(() => {\n setTimerIsActive(isTimerActive(timerContent.startTime, timerContent.endTime));\n }, delay);\n\n return () => clearTimeout(timeout);\n }, [isCounterEnabled, timerContent?.startTime, timerContent?.endTime]);\n\n useEffect(() => {\n const timerElement = timerContainerRef.current;\n if (!timerElement || !content?.timer?.length || !isCounterEnabled) {\n setTimerSpaceHeight(0);\n return;\n }\n\n const updateTimerSpaceHeight = () => {\n setTimerSpaceHeight(timerElement.clientHeight);\n };\n\n updateTimerSpaceHeight();\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const resizeObserver = new ResizeObserver(updateTimerSpaceHeight);\n resizeObserver.observe(timerElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [content?.timer?.length, isCounterEnabled]);\n\n // to trigger on click tv option pop up closed\n useEffect(() => {\n if (tvOptionsPopUpChanged) {\n closeTVOptionsModal();\n setTvOptionsPopUpChanged(true);\n updateVasPopUp('false');\n sessionStorage.removeItem('vasPopUp');\n setAlreadyShowedTvOptionsPopUp(false);\n createCartCallAction();\n }\n }, [tvOptionsPopUpChanged]);\n\n //US 314008 - only show vas pop up for first time user clicked order now\n useEffect(() => {\n const checkVasPopUp = () => {\n const vasPopUp = sessionStorage.getItem('vasPopUp');\n\n setAlreadyShowedTvOptionsPopUp(vasPopUp === 'true');\n };\n\n checkVasPopUp();\n\n const handleStorageChange = (event: StorageEvent) => {\n if (event.storageArea === sessionStorage && event.key === 'vasPopUp') {\n checkVasPopUp();\n }\n // If vasPopUp is removed (deleted)\n if (\n event.storageArea === sessionStorage &&\n event.key === 'vasPopUp' &&\n event.newValue === null\n ) {\n setAlreadyShowedTvOptionsPopUp(false);\n }\n };\n\n const handleCustomEvent = () => {\n checkVasPopUp();\n };\n window.addEventListener('storage', handleStorageChange);\n window.addEventListener('vasPopUpChange', handleCustomEvent);\n \n return () => {\n window.removeEventListener('storage', handleStorageChange);\n window.removeEventListener('vasPopUpChange', handleCustomEvent);\n };\n \n }, []);\n\n const updateVasPopUp = (value: string) => {\n sessionStorage.setItem('vasPopUp', value);\n const event = new Event('vasPopUpChange');\n window.dispatchEvent(event);\n };\n\n return (\n <div>\n {showLoader &&\n portalPosition &&\n createPortal(<Dotloader keyParams='loading' />, portalPosition)}\n {isSkeletonLoading && (\n <div className='w-75 pb-2'>\n <SkeletonLoader />\n </div>\n )}\n {!isSkeletonLoading && eligibleBundle && content && address && !isMobileFlow && (\n <div className={Styles.selected}>\n <span style={{ paddingBottom: '10px' }}>\n {!isAvailable ? (\n <span className={Styles.inactiveicon}>\n <img\n src={`${assetPath}/icons/cross_disabled.svg`}\n alt=''\n width={24}\n height={24}\n className={Styles.inactiveicon}\n />\n <span>{constants?.notSubscriptionTxt}</span>\n </span>\n ) : (\n <span className={Styles.activeicon}>\n <img\n src={`${assetPath}/icons/lineCheck-success.svg`}\n alt=''\n width={24}\n height={24}\n className={Styles.activeicon}\n />\n <span>{constants?.subscriptionAvalTxt}</span>\n </span>\n )}\n </span>\n </div>\n )}\n\n <div\n className={`${\n !isMobileFlow &&\n isAvailable === false &&\n mainContent?.linecheckData?.length > 0 &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug !== 'global/coverage-check'\n ? Styles.overlay\n : ''\n }\n ${deviceUltimateBundle && !uniqueProductData?.[0]?.eligibility?.fpb ? Styles.disabled : ''}\n `}\n style={{ flexDirection: 'column' }}\n >\n <div className={Styles.bundleproductcard}>\n <div\n id={`timer-section${tabIndex}${indexKey}`}\n data-timer-active={timerSpaceHeight > 0 ? 'true' : 'false'}\n >\n {content?.timer?.length && isCounterEnabled ? (\n <div style={{ height: `${timerSpaceHeight}px`, transition: 'height 0.3s ease' }} />\n ) : null}\n </div>\n <div className={`${Styles.productcontainer}`} style={getBorderStyles()}>\n {showBadges && BadgeContainer && <BadgeContainer badges={content.badgesContainer} />}\n {showHighlightText && (\n <div className={`${Styles.highlightText}`}>{content?.highlightText}</div>\n )}\n\n {showPromoContainer &&\n (promotionData?.badgeContainer && BadgeContainer ? (\n <BadgeContainer badges={promotionData?.badgeContainer} />\n ) : (\n <div\n className={`${Styles.promocontainer}`}\n style={{\n background: promotionData?.bestSellerColor\n }}\n >\n {promotionData?.displayText}\n </div>\n ))}\n <div ref={timerContainerRef} className={Styles.timerContainer}>\n {content?.timer?.length && isCounterEnabled ? (\n <StaticLineTabelTimer\n content={content?.timer?.[0]}\n hasHighlightText={showBadges || showPromoContainer}\n onTimerChange={(active) => {\n setTimerIsActive(active);\n }}\n />\n ) : null}\n </div>\n <div\n className={`${Styles.detailsection} ${Styles.imageFullWidthSection}`}\n id={`detailsectionv3${tabIndex}${indexKey}`}\n >\n <div className={`${Styles.headersection}`}>\n <div className={`${Styles.titlesection}`}>\n <div className={`${Styles.productheader}`} id={`titleV3${tabIndex}${indexKey}`}>\n {productData?.productName}\n </div>\n <div>\n {productData?.icon?.filename && (\n <img\n className={`${Styles.imagecontainer}`}\n src={productData?.icon?.filename}\n height={15}\n width={20}\n alt='productIcon'\n />\n )}\n </div>\n </div>\n <div\n className={`${Styles.productdescription}`}\n id={`descriptionV3${tabIndex}${indexKey}`}\n >\n <RichText content={productData?.description} />\n </div>\n {/* Image(map) */}\n <div className={`${Styles.images}`}>\n {productData?.img?.filename && (\n <img\n className={`${Styles.imagespace} ${\n content?.highlightText && Styles.borderimage\n }`}\n alt='cardimg'\n src={`${productData?.img?.filename}/m/`}\n />\n )}\n </div>\n </div>\n {/* product entitlement section */}\n <div\n className={`${Styles.productconfig}`}\n id={`product-configv3${tabIndex}${indexKey}`}\n >\n {isSkeletonLoading ? (\n <>\n <div className={Styles.space}></div>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={5} />\n <div className={Styles.space}></div>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={5} />\n </>\n ) : (\n <div>\n {productData?.bloks &&\n productData?.bloks?.map((entitle: any, index: number) => {\n return (\n <StaticProductEntitlement\n content={entitle}\n indexKey={index}\n constants={constants}\n key={index}\n showModalPopup={showModalPopup}\n setToggleState={setToggleState}\n toggleState={toggleState}\n noTabs={noTabs}\n mainContent={mainContent}\n enableTVStreamingOptions={content?.enableTVStreamingOptions}\n metadata={metadata}\n setTvOptionsData={setTvOptionsData}\n />\n );\n })}\n </div>\n )}\n </div>\n </div>\n {/* benefits section */}\n <div\n className={`${Styles.detailsection}`}\n id={`benefits-price-section${tabIndex}${indexKey}`}\n >\n <div id={`exclusive-benefits-section${tabIndex}${indexKey}`}>\n {productData?.extraBenefits?.length > 0 && (\n <StaticExclusiveBenefit content={productData?.extraBenefits?.[0]} />\n )}\n </div>\n <div\n className={`${Styles.benefitssection}`}\n id={`benefits-section${tabIndex}${indexKey}`}\n >\n {productData?.benefits?.length > 0 && (\n <StaticBenefit\n content={productData?.benefits}\n benefitData={showPrice}\n constants={constants}\n //US_31295\n pricesToggleState={pricesToggleState}\n togglePriceLabel={toggleContent?.togglePriceLabel}\n />\n )}\n </div>\n <br />\n\n {/* gift or cashback section */}\n <div className={`${Styles.giftsection}`} id={`gift-section${tabIndex}${indexKey}`}>\n {showGiftOrCashback?.showGift &&\n promotionData?.singleGift?.map((item: any, index: number) => {\n return <GiftConfigV2 content={item} key={index} />;\n })}\n {showGiftOrCashback?.showGift &&\n promotionData?.giftConfig?.map((item: any, index: number) => {\n return (\n <ChooseGiftV2\n content={item}\n key={index}\n selectedGiftItem={selectedGiftItem}\n parentPoType={isMobileFlow ? 'MOBILE' : 'HOME'}\n />\n );\n })}\n <div\n className={`${Styles.giftsection}`}\n id={`cashback-section${tabIndex}${indexKey}`}\n >\n <StaticProductCashback\n uniqueProductData={uniqueProductData}\n mainContent={mainContent}\n />\n </div>\n </div>\n {/* price section */}\n <div className={`${Styles.ordersection}`} id={`order-section${tabIndex}${indexKey}`}>\n {showPrice?.base === '' ? (\n <div>\n <SkeletonLoader stylename={Styles.skeletontittle} />\n </div>\n ) : (\n <div id={`price-section${tabIndex}${indexKey}`}>\n <DynamicPriceSection\n priceCollection={showPrice}\n constants={constants}\n promoText={productData?.promoText}\n deviceFlow={deviceFlow}\n content={content}\n offeringData={offeringData}\n uniqueId={uniqueId}\n />\n </div>\n )}\n\n {/* US_312953 */}\n {!isShogunFlow && (\n <div\n className={`${Styles.discountedpricetoggleSection}`}\n id={`discountedpricetoggle-section${tabIndex}${indexKey}`}\n >\n {!disableDiscountedPriceToggle && toggleContent?.togglePosition === 'INLINE' ? (\n <UserLoggedPricesToggle\n content={productData}\n index={indexKey}\n lineTable={true}\n toggleContent={toggleContent}\n />\n ) : null}\n </div>\n )}\n {/*END US_312953 */}\n\n {/* Longterm text */}\n {enableP2P && constants?.P2PDiscountLabel && (\n <div className={Styles.longterm}>{constants?.P2PDiscountLabel}</div>\n )}\n {/* proceed to checkout section */}\n {isSkeletonLoading ? (\n <>\n <SkeletonLoader stylename={Styles.skeletontittle} count={1} />\n <SkeletonLoader stylename={Styles.skeletonline} count={2} />\n </>\n ) : (\n <div className={`${storyContent?.swapButton && Styles.swapButton}`}>\n <div style={{ padding: '16px 0 0 0' }}>\n <CheckoutButton\n isMobileFlow={isMobileFlow}\n createCartCall={\n deviceFlow?.isDeviceFlow\n ? withReplaceCartCheck(deviceFirstFlowCreateCartCallback)\n : isMobileFlow\n ? withReplaceCartCheck(createCart)\n : withReplaceCartCheck(createCartCall)\n }\n constants={constants}\n storyContent={storyContent}\n showPrice={showPrice}\n isAvailable={isAvailable}\n address={address}\n uniqueProductBenefits={uniqueProductData?.[0]}\n alwaysActive={\n !isAvailable &&\n mainContent?.linecheckData?.length > 0 &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/coverage-check'\n }\n flexUpgradeFreePopup={mainContent?.flexUpgradeFreePopup?.reference?.content}\n content={content}\n deviceUltimateBundle={deviceUltimateBundle}\n forceDisabled={Boolean(uniqueProductData?.[0]?.rewards?.notEligibleReason)}\n notEligibileReason={uniqueProductData?.[0]?.rewards?.notEligibleReason}\n />\n </div>\n {/* combined with smartphone section */}\n {!isShogunFlow &&\n storyContent?.addSmartPhone?.length > 0 &&\n !deviceFlow?.isDeviceFlow && (\n <div style={{ textAlign: 'center' }}>\n {storyContent?.swapButton\n ? storyContent?.ctaLabel && (\n <div style={{ padding: '16px 0' }}>\n <button\n className={`primarybutton`}\n onClick={() =>\n withReplaceCartCheck(\n () =>\n combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n '',\n content,\n pegaIntegration\n ),\n mainContent?.replacePopupWithSmartphone?.[0]\n )()\n }\n >\n <span className={Styles.buttontext}>\n {storyContent?.ctaLabel}\n </span>\n </button>\n </div>\n )\n : !content?.redirectOnly && (\n <div style={{ padding: '12px 0 0 0' }}>\n <FalconButtonV2\n content={{\n buttonType: 'Secondary-V1',\n buttonLabel: content?.ultimateBundlePromotion\n ? constants?.ultimateBundleLbl\n : storyContent?.addSmartPhone?.[0]?.buttonLabel,\n buttonIcon: storyContent?.addSmartPhone?.[0]?.buttonIcon,\n buttonAlignment: 'left'\n }}\n wafIdentifier={basicConfigUrl}\n style={{ width: '100%' }}\n onClick={() =>\n withReplaceCartCheck(\n () =>\n enableP2P\n ? combineP2P()\n : combineWithSmartPhone(\n showPrice,\n storyContent,\n uniqueProductData,\n '',\n content,\n pegaIntegration\n ),\n mainContent?.replacePopupWithSmartphone?.[0]\n )()\n }\n />\n </div>\n )}\n </div>\n )}\n <div\n className={Styles.productcontractduration}\n id={`contract-section${tabIndex}${indexKey}`}\n style={{\n paddingTop:\n storyContent?.addSmartPhone?.length > 0 &&\n !deviceFlow?.isDeviceFlow &&\n !storyContent?.swapButton &&\n !content?.redirectOnly\n ? '8px'\n : undefined\n }}\n >\n {showPrice?.contractDuration > '1'\n ? replacePlaceholder(constants?.minContractDuration?.substring(1), [\n showPrice?.contractDuration\n ])\n : constants?.noContractDuration}\n </div>\n </div>\n )}\n {/* product details section */}\n <div style={{ textAlign: 'center', padding: '4px' }}>\n {productData?.productDetails?.length > 0 && (\n <span className={Styles.productdetailslink} onClick={showDetailsModal}>\n {constants?.productDetailsLink}\n </span>\n )}\n </div>\n {showProductDetail && (\n <StaticProductDetails\n content={productData?.productDetails}\n showProductDetail={showProductDetail}\n setShowProductDetail={setShowProductDetail}\n constants={constants}\n showPrice={showPrice}\n isMobileFlow={isMobileFlow}\n createCartCall={isMobileFlow ? createCart : createCartCall}\n storyContent={storyContent}\n isAvailable={isAvailable}\n address={address}\n flexUpgradeFreePopup={mainContent?.flexUpgradeFreePopup?.reference?.content}\n notEligibileReason={uniqueProductData?.[0]?.rewards?.notEligibleReason}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {deviceUltimateBundle && uniqueProductData && !uniqueProductData?.[0]?.eligibility?.fpb && (\n <div className={Styles.disabledInfo}>\n <RichText content={constants?.fpbNotCompatibleText} />\n </div>\n )}\n\n {showOptions &&\n (isSkeletonLoading ? (\n <SkeletonLoader />\n ) : (\n <TVChannelModal\n content={serviceOption?.[0]}\n setShowModal={setShowOptions}\n showModal={showOptions}\n constants={constants}\n />\n ))}\n\n {/* login pop up existing customer benefit without login on click of proceed to checkout */}\n {showLogin &&\n mainContent?.loginData?.length > 0 &&\n portalPosition &&\n createPortal(\n <LoginModalV2\n content={mainContent?.loginData?.[0]}\n closeLogin={() => {\n setShowLogin(false);\n }}\n metadata={metadata}\n onSuccess={onLoginSuccess}\n isProdEnv={isProdEnv}\n />,\n portalPosition\n )}\n\n {/* P2P flow first screen to select login */}\n {showP2P && enableP2P && !showLogin && popUPClick && (\n <GenericModal\n modalState={modalClick}\n handler={handleClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n >\n <PreToPostSubsPopup\n onClose={handleP2PClick}\n content={mainContent?.productContainer?.[0]?.p2pBloks?.[0]}\n prepaid={false}\n />\n </GenericModal>\n )}\n\n {/* P2P flow error screen if the customer is not prepaid customer */}\n {enableP2P && afterLogin && subscriptionFailure && popUPClick && (\n <GenericModal\n modalState={modalClick}\n handler={handleClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n id='table-product'\n >\n <PreToPostSubsPopup\n onClose={handleP2PClick}\n content={mainContent?.productContainer?.[0]?.p2pBloks?.[1]}\n prepaid={true}\n />\n </GenericModal>\n )}\n\n {/* p2p flow after successfully logged in prepaid customer to select a number for P2P*/}\n {userSubscriptionData?.length > 1 &&\n enableP2P &&\n afterLogin &&\n !subscriptionFailure &&\n p2pModal && (\n <GenericModal\n modalState={p2pModal}\n handler={handlePrepaidClick}\n showFooter={false}\n width={'628px'}\n height='280px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='16px'\n >\n <ExsistingSubscriptionModal\n onSubmit={onSelectSubscriptionPreToPost}\n exsistingSubscriptionData={userSubscriptionData}\n updatedContent={updatedContent}\n />\n </GenericModal>\n )}\n\n {/* lincheck modal */}\n {showLinecheck &&\n mainContent?.enableLinecheckOverlay &&\n !isMobileFlow &&\n mainContent?.linecheckData?.length > 0 &&\n !enableP2P &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/new-linecheck-test' ? (\n <LinecheckModal\n content={mainContent?.linecheckData?.[0]}\n onSuccess={linecheckSuccessAndCart}\n showModal={showLinecheck}\n setShowModal={setShowLinecheck}\n productName={productData?.productName}\n productId={productData?.productId}\n />\n ) : showLinecheck &&\n mainContent?.enableLinecheckOverlay &&\n !isMobileFlow &&\n mainContent?.linecheckData?.length > 0 &&\n !enableP2P &&\n mainContent?.linecheckData?.[0]?.reference?.default_full_slug ===\n 'global/coverage-check' ? (\n <CoverageCheckModal\n content={mainContent?.linecheckData?.[0].reference.content.body[0]}\n overlayIsOpen={true}\n externalHandleModal={setShowLinecheck}\n productName={productData?.productName}\n showModal={showLinecheck}\n setShowModal={setShowLinecheck}\n onSuccess={linecheckSuccess}\n onCreateCart={linecheckSuccessAndCart}\n lineCheckOnClear={lineCheckOnClear}\n productId={productData?.productId}\n />\n ) : null}\n {/* benefit validate */}\n {showBenefit && isMobileFlow && storyContent?.benefitsValidate?.length > 0 && (\n <BenefitsValidateWrapper\n content={storyContent?.benefitsValidate?.[0]}\n loginContent={mainContent?.loginData?.[0]}\n metadata={metadata}\n createCartCall={createCartCall}\n fetchOfferData={fetchOfferData}\n basicConfigUrl={basicConfigUrl}\n selectedExistingOption={selectedExistingOption}\n setShowBenefit={setShowBenefit}\n setLoginSuccess={setLoginSuccess}\n isProdEnv={isProdEnv}\n />\n )}\n\n {/* Display tv options on pop up after clicking order now button*/}\n {displayTvOptionsPopUp && (\n <GenericModal\n modalState={displayTvOptionsPopUp}\n handler={closeTVOptionsModal}\n showFooter={false}\n width={viewPortType === 'mobile' ? '' : viewPortType === 'tablet' ? '700px' : '990px'}\n fixedWidth={\n viewPortType === 'mobile' ? '' : viewPortType === 'tablet' ? '700px' : '990px'\n }\n height='845px'\n backgroundColor='#f7f6f5'\n noCloseButton={false}\n backDrop={true}\n bodyPadding='24px'\n >\n <OttServiceOptionsSmallPopup\n content={mainContent?.optionsPopup?.[0]}\n addOptionsCallBack={(val: any) => {\n setTvOptionsPopUpAddToCart(true);\n setTvOptionsPopUpChanged(true);\n setTvOptionsData(val);\n }}\n metadata={metadata}\n constants={constants}\n mainContent={mainContent}\n preSelectedOptions={[]}\n optionsResponse={responseList}\n updateResponseList={setResponseList}\n showPrice={showPrice}\n productData={productData}\n offeringData={offeringData}\n uniqueId={uniqueId}\n deviceFlow={deviceFlow}\n />\n </GenericModal>\n )}\n\n {/* Replace persistent cart confirmation modal */}\n {showReplaceCartModal && replacePopupContent && (\n <GenericPopup\n modalState={showReplaceCartModal}\n onCloseHandler={() => {\n pendingCartActionRef.current = null;\n setShowReplaceCartModal(false);\n }}\n content={replacePopupContent}\n wafIdentifier={basicConfigUrl}\n onPrimaryClick={() => {\n const pendingAction = pendingCartActionRef.current;\n pendingCartActionRef.current = null;\n if (shouldDeleteCartCookieRef.current) {\n Cookies.remove('one-commerce-cartId');\n }\n shouldDeleteCartCookieRef.current = false;\n setShowReplaceCartModal(false);\n pendingAction?.();\n }}\n onSecondaryClick={() => {\n pendingCartActionRef.current = null;\n setShowReplaceCartModal(false);\n }}\n />\n )}\n </div>\n );\n};\n\nexport default StaticProduct;\n"],"names":["StaticProduct","content","offeringData","uniqueId","storyContent","metadata","tabIndex","cardsLength","indexKey","constants","mainContent","address","eligibleBundle","linecheckSuccessCallBack","selectedOption","fetchOfferData","basicConfigUrl","selectedExistingOption","setLoginSuccess","enableP2P","lineCheckCallBack","loginSuccess","setToggleState","toggleState","noTabs","deviceFlow","deviceFlowCallBack","selectedRP","continueCart","lineCheckOnClear","pegaIntegration","isProdEnv","deviceUltimateBundle","toggleContent","pricesToggleState","isShogunFlow","shogunToken","BadgeContainer","useProductCardBadge","showLoader","setShowLoader","useState","showProductDetail","setShowProductDetail","showGiftOrCashback","setShowGiftOrCashback","showGift","cashbackAvailable","modalClick","updateModalClick","combine","setCombine","giftItem","setGiftItem","showLogin","setShowLogin","showOptions","setShowOptions","showLinecheck","setShowLinecheck","showP2P","setShowP2P","showBenefit","setShowBenefit","subscriptionFailure","setSubscriptionFailure","endpoint","validateEndpoint","userSubscriptionData","setUserSubscriptionData","afterLogin","setAfterLogin","popUPClick","setModalClick","p2pModal","setP2pModal","tvOptions","setTvOptions","displayTvOptionsPopUp","setDisplayTvOptionsPopUp","alreadyShowedTvOptionsPopUp","setAlreadyShowedTvOptionsPopUp","tvOptionsPopUpChanged","setTvOptionsPopUpChanged","tvOptionsPopUpAddToCart","setTvOptionsPopUpAddToCart","responseList","setResponseList","timerSpaceHeight","setTimerSpaceHeight","showReplaceCartModal","setShowReplaceCartModal","pendingCartActionRef","useRef","replacePopupContent","setReplacePopupContent","shouldDeleteCartCookieRef","timerContainerRef","pegaEndpoint","API_BASE_BASEPOINT","CUSTOMER","portalPosition","undefined","window","document","getElementById","isSkeletonLoading","_a","Object","keys","length","productData","_f","_e","_d","_c","_b","products","reference","product","promotionData","_l","_k","_j","_h","_g","promotion","promoDescription","timerContent","_m","timer","isCounterEnabled","enableCounter","timerIsActive","setTimerIsActive","startTime","endTime","isTimerActive","showHighlightText","Boolean","highlightText","badgesContainer","showPromoContainer","displayText","notShowPromotionLabel","showBadges","id","productId","cartEndPoint","_o","LineTableBasicPropConfig","getInstance","getCartUrl","assetPath","_p","AssetPathPropConfig","getAssetPath","isMobileFlow","pageType","viewPortType","viewport","context","useContext","AppContext","isAvailable","_q","includes","enableTVStreamingOptionsPopUp","enableTVStreamingOptionsStepper","disableDiscountedPriceToggle","skipAccessoriesPage","LoginBasicPropConfig","create","baseURL","AuthData","Cookies","get","JSON","parse","uniqueProductData","filter","setTvOptionsData","options","handleP2PClick","createCart","siteId","fetchPrepaidData","EXISTINGCUSTOMER","enableExistingCustomer","enableLoggedInPrice","createCartCall","prospectId","localStorage","getItem","url","location","pathname","split","payload","eventTimestamp","getUtcTimestamp","eventType","pageLocation","targetProduct","trackPegaEvents","selectedGiftItem","item","itemValue","findIndex","gift","giftGroupId","temp","push","params","URLSearchParams","_r","search","queryParams","validateNumberFcn","value","combineWithSmartPhone","showPrice","msisdn","validateFcn","validPrepaidNumbers","__awaiter","validateP2P","then","res","catch","e","console","log","fetchSubscriptionData","resp","subscriptionData","responseData","queryData","find","entry","Promise","all","map","data","succ","error","err","handleClick","closeTVOptionsModal","event","trackNewDatalayerEvent","GAEVENT","CTABUTTONCLICK","headline","linecheckSuccessAndCart","bundle","serviceOption","fetchServiceOptions","bloks","radioValue","_s","tvProductId","createCartCallAction","discountRef","promotionInfo","discountVersion","version","rewardsInfo","pointsBurnt","rewards","points","rewardOfferId","offerId","gloxTokenId","fromPopup","updateVasPopUp","sessionStorage","removeItem","staticCreateCart","AuthDataNew","setLoginCookie","ONE_ECOMMERCE_INTERNET_SUMMARY","linecheckData","loginData","isBundle","recommendAccessory","bundledOffers","productType","toLowerCase","combineWithVasOptions","productName","addEventListener","withReplaceCartCheck","action","popupContent","callFunctionArg","existingCartId","enableReplacePopup","current","generalReplacePopup","fetchPrice","useEffect","setTimeout","findHeight","result","checkGiftOrCashback","assign","TV","gigaSpeed","Netflix","Array","isArray","_u","_t","showModalPopup","updatedContent","_v","productContainer","store","ottOptionsApi","delay","getTimeUntilNextTimerEvent","timeout","clearTimeout","timerElement","updateTimerSpaceHeight","clientHeight","ResizeObserver","resizeObserver","observe","disconnect","_w","checkVasPopUp","vasPopUp","handleStorageChange","storageArea","key","newValue","handleCustomEvent","removeEventListener","setItem","Event","dispatchEvent","React","createElement","createPortal","Dotloader","keyParams","className","SkeletonLoader","Styles","selected","style","paddingBottom","activeicon","src","alt","width","height","subscriptionAvalTxt","inactiveicon","notSubscriptionTxt","_x","_z","_y","_0","default_full_slug","overlay","_2","_1","eligibility","fpb","disabled","flexDirection","bundleproductcard","_3","transition","productcontainer","borderConfig","showBorder","borderGradient","borderColor","borderWidth","borderStyle","borderRadius","background","getBorderStyles","badges","badgeContainer","promocontainer","bestSellerColor","ref","timerContainer","_4","StaticLineTabelTimer","_5","hasHighlightText","onTimerChange","active","detailsection","imageFullWidthSection","headersection","titlesection","productheader","icon","_6","filename","imagecontainer","_7","productdescription","RichText","description","images","_8","img","imagespace","borderimage","_9","productconfig","Fragment","space","stylename","skeletontittle","count","skeletonline","_10","entitle","index","StaticProductEntitlement","enableTVStreamingOptions","_11","extraBenefits","StaticExclusiveBenefit","_12","benefitssection","_13","benefits","StaticBenefit","benefitData","togglePriceLabel","giftsection","_14","singleGift","GiftConfigV2","_15","giftConfig","ChooseGiftV2","parentPoType","StaticProductCashback","ordersection","base","DynamicPriceSection","priceCollection","promoText","discountedpricetoggleSection","togglePosition","UserLoggedPricesToggle","lineTable","P2PDiscountLabel","longterm","swapButton","padding","CheckoutButton","isDeviceFlow","msisdnn","uniqueProductBenefits","alwaysActive","_16","_18","_17","flexUpgradeFreePopup","_21","_20","forceDisabled","_23","_22","notEligibleReason","notEligibileReason","_25","_24","_26","addSmartPhone","textAlign","ctaLabel","onClick","replacePopupWithSmartphone","buttontext","redirectOnly","FalconButtonV2","buttonType","buttonLabel","ultimateBundlePromotion","ultimateBundleLbl","_28","_27","buttonIcon","_30","_29","buttonAlignment","wafIdentifier","productcontractduration","paddingTop","_31","contractDuration","replacePlaceholder","_32","minContractDuration","substring","noContractDuration","productDetails","_33","productdetailslink","DOWNLOADPRODUCT","getEcomCartInfo","LINETABLE","productDetailsLink","StaticProductDetails","_35","_34","_37","_36","_39","_38","disabledInfo","fpbNotCompatibleText","TVChannelModal","setShowModal","showModal","_40","LoginModalV2","_41","closeLogin","onSuccess","GenericModal","modalState","handler","showFooter","backgroundColor","noCloseButton","backDrop","bodyPadding","PreToPostSubsPopup","onClose","_44","_43","_42","p2pBloks","prepaid","_47","_46","_45","ExsistingSubscriptionModal","onSubmit","exsistingSubscriptionData","enableLinecheckOverlay","_48","_50","_49","LinecheckModal","_52","_53","_55","_54","CoverageCheckModal","_57","body","overlayIsOpen","externalHandleModal","onCreateCart","_58","benefitsValidate","BenefitsValidateWrapper","_59","loginContent","_60","fixedWidth","OttServiceOptionsSmallPopup","optionsPopup","_61","addOptionsCallBack","val","preSelectedOptions","optionsResponse","updateResponseList","GenericPopup","onCloseHandler","onPrimaryClick","pendingAction","remove","onSecondaryClick"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export{default as Button}from"./button/Button.js";export{default as LoginModalV2}from"./login/LoginModalV2.js";export{default as Card}from"./CardComp/Card.js";export{default as CardEntitlement}from"./CardEntitlement/CardEntitlement.js";export{default as CarouselComp}from"./sharedCarousel/CarouselComponent.js";export{default as ProductTeaser}from"./ProductTeaser/ProductTeaser.js";export{default as ProductTableV3}from"./lineTable/ProductTableV3.js";export{default as StickyProductAnchor}from"./StickyProductAnchor/StickyProductAnchor.js";export{default as StaticLineTable}from"./StaticLineTable/StaticLineTable.js";export{default as LinecheckModal}from"./LineCheckV3/LinecheckModal.js";export{default as BenefitWrapper}from"./BenefitWrapper/BenefitWrapper.js";export{default as Breadcrumb}from"./Breadcrumb/Breadcrumb.js";export{default as PretoPostSubsPopup}from"./PretoPost/PreToPostSubsPopup.js";export{default as HeroLogin}from"./HeroLogin/HeroLogin.js";export{default as CheckCoverage}from"./NewLineCheck/CoverCheckWrapper.js";export{default as DpLinetable}from"./UltimateBundleLinetable/DpLinetableContainer.js";export{default as CoverageCheckModal}from"./NewLineCheck/CoverageCheckModal.js";export{default as FreshProductBannerHome}from"./freshProductBanner/freshProductBanner.js";export{default as DeviceCard}from"./DeviceCardWrapper/DeviceCards/DeviceCards.js";export{default as StickyBottomSheet}from"./StickyBottomSheet/StickyBottomSheet.js";export{default as ProgressionBar}from"./ProgressionBar/ProgressionBar.js";export{default as OttServiceOptionsSmallPopup}from"./StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js";export{default as MultiItemAccessoriesWithProvider}from"./Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js";export{default as NotificationToast}from"./NotificationToast/NotificationToast.js";export{default as RecommendedOptions}from"./RecommendedOptions/RecommendedOptions.js";export{default as PriceCalculationSticky}from"./PriceCalculationSticky/PriceCalculationSticky.js";export{default as OttMiniCard}from"./OttMiniSummaryCard/OttMiniSummaryCard.js";export{default as GenericMessage}from"./GenericMessage/GenericMessage.js";export{default as StaticLineTabelTimer}from"./StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js";export{default as Spacer}from"./Spacer/Spacer.js";
1
+ export{default as Button}from"./button/Button.js";export{default as LoginModalV2}from"./login/LoginModalV2.js";export{default as Card}from"./CardComp/Card.js";export{default as CardEntitlement}from"./CardEntitlement/CardEntitlement.js";export{default as CarouselComp}from"./sharedCarousel/CarouselComponent.js";export{default as ProductTeaser}from"./ProductTeaser/ProductTeaser.js";export{default as ProductTableV3}from"./lineTable/ProductTableV3.js";export{default as StickyProductAnchor}from"./StickyProductAnchor/StickyProductAnchor.js";export{default as StaticLineTable}from"./StaticLineTable/StaticLineTable.js";export{ProductCardBadgeProvider}from"./StaticLineTable/ProductCardBadgeProvider.js";export{default as LinecheckModal}from"./LineCheckV3/LinecheckModal.js";export{default as BenefitWrapper}from"./BenefitWrapper/BenefitWrapper.js";export{default as Breadcrumb}from"./Breadcrumb/Breadcrumb.js";export{default as PretoPostSubsPopup}from"./PretoPost/PreToPostSubsPopup.js";export{default as HeroLogin}from"./HeroLogin/HeroLogin.js";export{default as CheckCoverage}from"./NewLineCheck/CoverCheckWrapper.js";export{default as DpLinetable}from"./UltimateBundleLinetable/DpLinetableContainer.js";export{default as CoverageCheckModal}from"./NewLineCheck/CoverageCheckModal.js";export{default as FreshProductBannerHome}from"./freshProductBanner/freshProductBanner.js";export{default as DeviceCard}from"./DeviceCardWrapper/DeviceCards/DeviceCards.js";export{default as StickyBottomSheet}from"./StickyBottomSheet/StickyBottomSheet.js";export{default as ProgressionBar}from"./ProgressionBar/ProgressionBar.js";export{default as OttServiceOptionsSmallPopup}from"./StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js";export{default as MultiItemAccessoriesWithProvider}from"./Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js";export{default as NotificationToast}from"./NotificationToast/NotificationToast.js";export{default as RecommendedOptions}from"./RecommendedOptions/RecommendedOptions.js";export{default as PriceCalculationSticky}from"./PriceCalculationSticky/PriceCalculationSticky.js";export{default as OttMiniCard}from"./OttMiniSummaryCard/OttMiniSummaryCard.js";export{default as GenericMessage}from"./GenericMessage/GenericMessage.js";export{default as StaticLineTabelTimer}from"./StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js";export{default as Spacer}from"./Spacer/Spacer.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Button}from"./components/button/Button.js";export{default as LoginModalV2}from"./components/login/LoginModalV2.js";export{default as Card}from"./components/CardComp/Card.js";export{default as CardEntitlement}from"./components/CardEntitlement/CardEntitlement.js";export{default as CarouselComp}from"./components/sharedCarousel/CarouselComponent.js";export{default as ProductTeaser}from"./components/ProductTeaser/ProductTeaser.js";export{default as ProductTableV3}from"./components/lineTable/ProductTableV3.js";export{default as StickyProductAnchor}from"./components/StickyProductAnchor/StickyProductAnchor.js";export{default as StaticLineTable}from"./components/StaticLineTable/StaticLineTable.js";export{default as LinecheckModal}from"./components/LineCheckV3/LinecheckModal.js";export{default as BenefitWrapper}from"./components/BenefitWrapper/BenefitWrapper.js";export{default as Breadcrumb}from"./components/Breadcrumb/Breadcrumb.js";export{default as PretoPostSubsPopup}from"./components/PretoPost/PreToPostSubsPopup.js";export{default as HeroLogin}from"./components/HeroLogin/HeroLogin.js";export{default as CheckCoverage}from"./components/NewLineCheck/CoverCheckWrapper.js";export{default as DpLinetable}from"./components/UltimateBundleLinetable/DpLinetableContainer.js";export{default as CoverageCheckModal}from"./components/NewLineCheck/CoverageCheckModal.js";export{default as FreshProductBannerHome}from"./components/freshProductBanner/freshProductBanner.js";export{default as DeviceCard}from"./components/DeviceCardWrapper/DeviceCards/DeviceCards.js";export{default as StickyBottomSheet}from"./components/StickyBottomSheet/StickyBottomSheet.js";export{default as ProgressionBar}from"./components/ProgressionBar/ProgressionBar.js";export{default as OttServiceOptionsSmallPopup}from"./components/StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js";export{default as MultiItemAccessoriesWithProvider}from"./components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js";export{default as NotificationToast}from"./components/NotificationToast/NotificationToast.js";export{default as RecommendedOptions}from"./components/RecommendedOptions/RecommendedOptions.js";export{default as PriceCalculationSticky}from"./components/PriceCalculationSticky/PriceCalculationSticky.js";export{default as OttMiniCard}from"./components/OttMiniSummaryCard/OttMiniSummaryCard.js";export{default as GenericMessage}from"./components/GenericMessage/GenericMessage.js";export{default as StaticLineTabelTimer}from"./components/StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js";export{default as Spacer}from"./components/Spacer/Spacer.js";export{AssetPathPropConfig,LineTableBasicPropConfig}from"./services/LineTableBasicPropConfig.js";export{ProductTeaserPropConfig}from"./services/ProductTeaserPropsConfig.js";export{LinecheckBasicPropConfig}from"./services/LinecheckBasicPropConfig.js";export{LoginBasicPropConfig}from"./services/LoginBasicPropConfig.js";export{DevicePropConfig}from"./services/DevicePropConfig.js";export{StickyBottomSheetPropConfig}from"./services/StickyBottomSheetConfig.js";export{ServiceOptionsPropConfig}from"./services/ServiceOptionsPropConfig.js";
1
+ export{default as Button}from"./components/button/Button.js";export{default as LoginModalV2}from"./components/login/LoginModalV2.js";export{default as Card}from"./components/CardComp/Card.js";export{default as CardEntitlement}from"./components/CardEntitlement/CardEntitlement.js";export{default as CarouselComp}from"./components/sharedCarousel/CarouselComponent.js";export{default as ProductTeaser}from"./components/ProductTeaser/ProductTeaser.js";export{default as ProductTableV3}from"./components/lineTable/ProductTableV3.js";export{default as StickyProductAnchor}from"./components/StickyProductAnchor/StickyProductAnchor.js";export{default as StaticLineTable}from"./components/StaticLineTable/StaticLineTable.js";export{ProductCardBadgeProvider}from"./components/StaticLineTable/ProductCardBadgeProvider.js";export{default as LinecheckModal}from"./components/LineCheckV3/LinecheckModal.js";export{default as BenefitWrapper}from"./components/BenefitWrapper/BenefitWrapper.js";export{default as Breadcrumb}from"./components/Breadcrumb/Breadcrumb.js";export{default as PretoPostSubsPopup}from"./components/PretoPost/PreToPostSubsPopup.js";export{default as HeroLogin}from"./components/HeroLogin/HeroLogin.js";export{default as CheckCoverage}from"./components/NewLineCheck/CoverCheckWrapper.js";export{default as DpLinetable}from"./components/UltimateBundleLinetable/DpLinetableContainer.js";export{default as CoverageCheckModal}from"./components/NewLineCheck/CoverageCheckModal.js";export{default as FreshProductBannerHome}from"./components/freshProductBanner/freshProductBanner.js";export{default as DeviceCard}from"./components/DeviceCardWrapper/DeviceCards/DeviceCards.js";export{default as StickyBottomSheet}from"./components/StickyBottomSheet/StickyBottomSheet.js";export{default as ProgressionBar}from"./components/ProgressionBar/ProgressionBar.js";export{default as OttServiceOptionsSmallPopup}from"./components/StaticLineTable/OttServiceOptions/OttServiceOptionsSmallPopup.js";export{default as MultiItemAccessoriesWithProvider}from"./components/Accessories/MultiItemAccessories/MultiItemAccessoriesPage.js";export{default as NotificationToast}from"./components/NotificationToast/NotificationToast.js";export{default as RecommendedOptions}from"./components/RecommendedOptions/RecommendedOptions.js";export{default as PriceCalculationSticky}from"./components/PriceCalculationSticky/PriceCalculationSticky.js";export{default as OttMiniCard}from"./components/OttMiniSummaryCard/OttMiniSummaryCard.js";export{default as GenericMessage}from"./components/GenericMessage/GenericMessage.js";export{default as StaticLineTabelTimer}from"./components/StaticLineTable/StaticLineTabelTimer/StaticLineTabelTimer.js";export{default as Spacer}from"./components/Spacer/Spacer.js";export{AssetPathPropConfig,LineTableBasicPropConfig}from"./services/LineTableBasicPropConfig.js";export{ProductTeaserPropConfig}from"./services/ProductTeaserPropsConfig.js";export{LinecheckBasicPropConfig}from"./services/LinecheckBasicPropConfig.js";export{LoginBasicPropConfig}from"./services/LoginBasicPropConfig.js";export{DevicePropConfig}from"./services/DevicePropConfig.js";export{StickyBottomSheetPropConfig}from"./services/StickyBottomSheetConfig.js";export{ServiceOptionsPropConfig}from"./services/ServiceOptionsPropConfig.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, { MouseEventHandler, FC, JSX } from 'react';
1
+ import React, { MouseEventHandler, FC, JSX, ComponentType, ReactNode } from 'react';
2
2
  import { ApiServiceV2 } from '@sunrise-upc/ajax-lib';
3
3
 
4
4
  interface ButtonProps {
@@ -228,6 +228,15 @@ interface StaticLinetableSchema {
228
228
 
229
229
  declare const StaticLineTable: FC<StaticLinetableSchema>;
230
230
 
231
+ interface ProductCardBadgeProps {
232
+ badges?: any[];
233
+ }
234
+ interface ProductCardBadgeProviderProps {
235
+ component: ComponentType<ProductCardBadgeProps>;
236
+ children: ReactNode;
237
+ }
238
+ declare const ProductCardBadgeProvider: ({ component, children }: ProductCardBadgeProviderProps) => React.JSX.Element;
239
+
231
240
  declare const LincheckModal: FC<any>;
232
241
 
233
242
  declare const BenefitWrapper: ({ content, metadata, setGenericErrorModalDetails, loginSuccess, basicConfigUrl, setLoginSuccess, isProdEnv, }: any) => React.JSX.Element;
@@ -669,5 +678,5 @@ declare class ServiceOptionsPropConfig {
669
678
  static create: (p_config: ServiceOptionsPropConfigSchema) => void;
670
679
  }
671
680
 
672
- export { AssetPathPropConfig, BenefitWrapper, Breadcrumb, Button, Card, CardEntitlement, CarouselComponent as CarouselComp, CheckCoverage, CoverageCheckModal, DeviceCards as DeviceCard, DevicePropConfig, DpLinetableContainer as DpLinetable, FreshProductBannerHome, GenericMessage, HeroLoginBanner as HeroLogin, LineTableBasicPropConfig, LinecheckBasicPropConfig, LincheckModal as LinecheckModal, LoginBasicPropConfig, LoginModal as LoginModalV2, MultiItemAccessoriesWithProvider, NotificationToast, OttMiniSummaryCard as OttMiniCard, OttServiceOptionsSmallPopup, PreToPostSubsPopup as PretoPostSubsPopup, PriceCalculationSticky, ProductTableV3, ProductTeaser, ProductTeaserPropConfig, ProgressionBar, RecommendedOptions, ServiceOptionsPropConfig, Spacer, StaticLineTabelTimer, StaticLineTable, StickyBottomSheet, StickyBottomSheetPropConfig, StickyProductAnchor };
673
- export type { AssetPathPropConfigSchema, DevicePropSchema, LineTableBasicPropConfigSchema, LinecheckBasicPropConfigSchema, LoginBasicPropConfigSchema, ProductTeaserPropConfigSchema, ServiceOptionsPropConfigSchema, StickyBottomSheetPropConfigSchema, TimerSchema };
681
+ export { AssetPathPropConfig, BenefitWrapper, Breadcrumb, Button, Card, CardEntitlement, CarouselComponent as CarouselComp, CheckCoverage, CoverageCheckModal, DeviceCards as DeviceCard, DevicePropConfig, DpLinetableContainer as DpLinetable, FreshProductBannerHome, GenericMessage, HeroLoginBanner as HeroLogin, LineTableBasicPropConfig, LinecheckBasicPropConfig, LincheckModal as LinecheckModal, LoginBasicPropConfig, LoginModal as LoginModalV2, MultiItemAccessoriesWithProvider, NotificationToast, OttMiniSummaryCard as OttMiniCard, OttServiceOptionsSmallPopup, PreToPostSubsPopup as PretoPostSubsPopup, PriceCalculationSticky, ProductCardBadgeProvider, ProductTableV3, ProductTeaser, ProductTeaserPropConfig, ProgressionBar, RecommendedOptions, ServiceOptionsPropConfig, Spacer, StaticLineTabelTimer, StaticLineTable, StickyBottomSheet, StickyBottomSheetPropConfig, StickyProductAnchor };
682
+ export type { AssetPathPropConfigSchema, DevicePropSchema, LineTableBasicPropConfigSchema, LinecheckBasicPropConfigSchema, LoginBasicPropConfigSchema, ProductCardBadgeProps, ProductTeaserPropConfigSchema, ServiceOptionsPropConfigSchema, StickyBottomSheetPropConfigSchema, TimerSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunrise-upc/mobile-prod-card",
3
- "version": "12.2.0-beta.1",
3
+ "version": "12.2.0-beta.3",
4
4
  "description": "Starter project to create reusable functional component",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",
@@ -81,7 +81,6 @@
81
81
  "react-multi-carousel": "^2.8.5",
82
82
  "react-select": "^5.10.2",
83
83
  "storyblok-rich-text-react-renderer": "^3.0.1",
84
- "uuid": "^13.0.0",
85
- "@sunrise-upc/sales-static-components": "^4.1.0"
84
+ "uuid": "^13.0.0"
86
85
  }
87
86
  }