ouisys-component-library 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Button-4ac9a745.js → Button-7b167cb9.js} +1 -1
- package/dist/{Button-4ac9a745.js.map → Button-7b167cb9.js.map} +1 -1
- package/dist/Button.js +1 -1
- package/dist/{ChainRedirect-da7d6fac.js → ChainRedirect-c50fa1e4.js} +1 -1
- package/dist/{ChainRedirect-da7d6fac.js.map → ChainRedirect-c50fa1e4.js.map} +1 -1
- package/dist/ChainRedirect.js +1 -1
- package/dist/{ConsentAcceptanceCheck-1a64c482.js → ConsentAcceptanceCheck-5b056795.js} +2 -2
- package/dist/{ConsentAcceptanceCheck-1a64c482.js.map → ConsentAcceptanceCheck-5b056795.js.map} +1 -1
- package/dist/ConsentAcceptanceCheck.js +1 -1
- package/dist/{CookieConsent-bb2964de.js → CookieConsent-a21f8b95.js} +1 -1
- package/dist/{CookieConsent-bb2964de.js.map → CookieConsent-a21f8b95.js.map} +1 -1
- package/dist/CookieConsent.js +1 -1
- package/dist/{DynamicPricePoint-6e10cb0d.js → DynamicPricePoint-4e0bae0d.js} +1 -1
- package/dist/{DynamicPricePoint-6e10cb0d.js.map → DynamicPricePoint-4e0bae0d.js.map} +1 -1
- package/dist/DynamicPricePoint.js +1 -1
- package/dist/Email.js +1 -1
- package/dist/{ExtraDisclaimers-f05b8447.js → ExtraDisclaimers-4dfdad88.js} +1 -1
- package/dist/{ExtraDisclaimers-f05b8447.js.map → ExtraDisclaimers-4dfdad88.js.map} +1 -1
- package/dist/ExtraDisclaimers.js +1 -1
- package/dist/{Features-ff146c75.js → Features-02695733.js} +1 -1
- package/dist/{Features-ff146c75.js.map → Features-02695733.js.map} +1 -1
- package/dist/Features.js +1 -1
- package/dist/{Footer-d806aea4.js → Footer-0df9fbdf.js} +2 -2
- package/dist/{Footer-d806aea4.js.map → Footer-0df9fbdf.js.map} +1 -1
- package/dist/Footer.js +1 -1
- package/dist/Header.js +1 -1
- package/dist/{Intl-be503660.js → Intl-1832f21e.js} +1 -1
- package/dist/{Intl-be503660.js.map → Intl-1832f21e.js.map} +1 -1
- package/dist/IntlProvider.js +1 -1
- package/dist/{LanguageSwitcher-679a687f.js → LanguageSwitcher-e37c43c8.js} +1 -1
- package/dist/{LanguageSwitcher-679a687f.js.map → LanguageSwitcher-e37c43c8.js.map} +1 -1
- package/dist/LanguageSwitcher.js +1 -1
- package/dist/{Link-f045a34b.js → Link-1b065fb1.js} +1 -1
- package/dist/{Link-f045a34b.js.map → Link-1b065fb1.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/MOForm.js +1 -1
- package/dist/{MOLink-3d1e1841.js → MOLink-045e3ca8.js} +1 -1
- package/dist/{MOLink-3d1e1841.js.map → MOLink-045e3ca8.js.map} +1 -1
- package/dist/MOLink.js +1 -1
- package/dist/{Menu-4d4b03aa.js → Menu-dbeca199.js} +2 -2
- package/dist/{Menu-4d4b03aa.js.map → Menu-dbeca199.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/PINEntry.js +1 -1
- package/dist/PINEntry.js.map +1 -1
- package/dist/{PageConfig-a0249ae0.js → PageConfig-266dd49b.js} +1 -1
- package/dist/{PageConfig-a0249ae0.js.map → PageConfig-266dd49b.js.map} +1 -1
- package/dist/PageConfig.js +1 -1
- package/dist/PageContent.js +1 -1
- package/dist/PageContent.js.map +1 -1
- package/dist/PhoneEntryForm.js +1 -1
- package/dist/PhoneEntryForm.js.map +1 -1
- package/dist/{PhoneInput-e17df9c9.js → PhoneInput-02d32046.js} +1 -1
- package/dist/{PhoneInput-e17df9c9.js.map → PhoneInput-02d32046.js.map} +1 -1
- package/dist/PhoneInput.js +1 -1
- package/dist/PinEntryForm.js +1 -1
- package/dist/PinEntryForm.js.map +1 -1
- package/dist/{PricePoint-584d6831.js → PricePoint-1cf6bde9.js} +1 -1
- package/dist/{PricePoint-584d6831.js.map → PricePoint-1cf6bde9.js.map} +1 -1
- package/dist/PricePoint.js +1 -1
- package/dist/{PricingPolicy-7fc6e7d0.js → PricingPolicy-4e85aef7.js} +1 -1
- package/dist/{PricingPolicy-7fc6e7d0.js.map → PricingPolicy-4e85aef7.js.map} +1 -1
- package/dist/PricingPolicy.js +1 -1
- package/dist/ProductArea.js +1 -1
- package/dist/{RefundPolicy-31117dce.js → RefundPolicy-5e19f7a3.js} +2 -2
- package/dist/{RefundPolicy-31117dce.js.map → RefundPolicy-5e19f7a3.js.map} +1 -1
- package/dist/RefundPolicy.js +1 -1
- package/dist/RootWrapper.js +1 -1
- package/dist/{Showcase-47495182.js → Showcase-7107d602.js} +1 -1
- package/dist/{Showcase-47495182.js.map → Showcase-7107d602.js.map} +1 -1
- package/dist/Showcase.js +1 -1
- package/dist/{Testimonials-7661d29a.js → Testimonials-785f0228.js} +1 -1
- package/dist/{Testimonials-7661d29a.js.map → Testimonials-785f0228.js.map} +1 -1
- package/dist/Testimonials.js +1 -1
- package/dist/ThankYou.js +1 -1
- package/dist/ThankYou.js.map +1 -1
- package/dist/Translate.js +1 -1
- package/dist/{Unsubscription-59a6130e.js → Unsubscription-98245f8c.js} +2 -2
- package/dist/{Unsubscription-59a6130e.js.map → Unsubscription-98245f8c.js.map} +1 -1
- package/dist/Unsubscription.js +1 -1
- package/dist/defineMessages.js +1 -1
- package/dist/{focus-95dc8f92.js → focus-1746a75f.js} +1 -1
- package/dist/{focus-95dc8f92.js.map → focus-1746a75f.js.map} +1 -1
- package/dist/formatSMSLink.js +1 -1
- package/dist/injectIntl.js +1 -1
- package/dist/{routes-744ed6aa.js → routes-b5326b41.js} +1 -1
- package/dist/{routes-744ed6aa.js.map → routes-b5326b41.js.map} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/types/custom-types.d.ts +2 -0
- package/package.json +1 -1
- package/README_V2.md +0 -64
package/dist/PageContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageContent.js","sources":["../src/PageContent/PageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { CookieConsent } from '../CookieConsent/CookieConsent';\nimport { Features } from '../Features/Features';\nimport { Footer } from '../Footer/Footer';\nimport { PricingPolicy } from '../PricingPolicy/PricingPolicy';\nimport { RefundPolicy } from '../RefundPolicy/RefundPolicy';\nimport { Showcase } from '../Showcase/Showcase';\nimport { Testimonials } from '../Testimonials/Testimonials';\nimport { Unsubscription } from '../Unsubscription/Unsubscription';\nimport { InterfaceFeatures } from './PageContent.types';\n\nexport const PageContent = ({ pageConfigs, locale = 'en', legals, tracker, onConsentUpdate }: InterfaceFeatures) => {\n const scrollToTop = () => {\n // window.scrollTo({ top: 0, behavior: \"smooth\" });\n };\n\n return (\n <div className=\"page-content\" onClick={() => scrollToTop()}>\n <div\n className=\"scroll-up\"\n onClick={() => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n
|
|
1
|
+
{"version":3,"file":"PageContent.js","sources":["../src/PageContent/PageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { CookieConsent } from '../CookieConsent/CookieConsent';\nimport { Features } from '../Features/Features';\nimport { Footer } from '../Footer/Footer';\nimport { PricingPolicy } from '../PricingPolicy/PricingPolicy';\nimport { RefundPolicy } from '../RefundPolicy/RefundPolicy';\nimport { Showcase } from '../Showcase/Showcase';\nimport { Testimonials } from '../Testimonials/Testimonials';\nimport { Unsubscription } from '../Unsubscription/Unsubscription';\nimport { InterfaceFeatures } from './PageContent.types';\n\nexport const PageContent = ({ pageConfigs, locale = 'en', legals, tracker, onConsentUpdate }: InterfaceFeatures) => {\n const { scrollToSub = true } = pageConfigs || {};\n const scrollToTop = () => {\n // window.scrollTo({ top: 0, behavior: \"smooth\" });\n };\n\n return (\n <div className=\"page-content\" onClick={() => scrollToTop()}>\n <div\n className=\"scroll-up\"\n onClick={() => {\n if (scrollToSub) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n tracker?.customEvent('image-cards', 'click', 'scroll-to-top');\n }\n }}\n >\n {pageConfigs?.isShowWhyChooseUs && (\n <Features\n type={pageConfigs?.contentCategory}\n locale={locale}\n tracker={tracker}\n domain={window?.location?.origin}\n headline=\"\"\n />\n )}\n\n {pageConfigs?.isShowShowCase && (\n <Showcase\n tracker={tracker}\n locale={locale}\n type={pageConfigs?.contentCategory}\n domain={window?.location?.origin}\n />\n )}\n\n {pageConfigs?.isShowPricingTable && (\n <PricingPolicy\n hideSections\n priceUnit={\n pageConfigs?.isNewLegal\n ? pageConfigs?.legalVariables?.operators?.[0]?.frequency\n : (legals as any)?.price_point\n }\n priceValue={\n pageConfigs?.isNewLegal\n ? `${pageConfigs?.legalVariables?.operators?.[0]?.currency} ${pageConfigs?.legalVariables?.operators?.[0]?.amount}`\n : ''\n }\n locale={locale}\n />\n )}\n\n {pageConfigs?.isShowRefundPolicy && <RefundPolicy locale={locale} pageConfigs={pageConfigs} />}\n\n {pageConfigs?.isShowUnsubscription && <Unsubscription locale={locale} />}\n\n {pageConfigs?.isShowTestimonials && <Testimonials locale={locale} />}\n </div>\n\n {pageConfigs?.isShowAboutUs && (\n <Footer tracker={tracker} locale={locale} pageConfigs={pageConfigs} className=\"footer\" />\n )}\n\n {pageConfigs?.isShowConsentCookie && (\n <CookieConsent\n tracker={tracker}\n hasMoreOptions\n onUpdate={(consent) => {\n if (onConsentUpdate) {\n onConsentUpdate(consent);\n }\n }}\n locale={locale}\n />\n )}\n </div>\n );\n};\n"],"names":["PageContent","_a","pageConfigs","_o","locale","legals","tracker","onConsentUpdate","_p","scrollToSub","React","createElement","className","onClick","window","scrollTo","top","behavior","customEvent","isShowWhyChooseUs","Features","type","contentCategory","domain","_b","location","origin","headline","isShowShowCase","Showcase","_c","isShowPricingTable","PricingPolicy","hideSections","priceUnit","isNewLegal","_f","_e","_d","legalVariables","operators","frequency","price_point","priceValue","concat","_j","_h","_g","currency","_l","_k","_m","amount","isShowRefundPolicy","RefundPolicy","isShowUnsubscription","Unsubscription","isShowTestimonials","Testimonials","isShowAboutUs","Footer","isShowConsentCookie","CookieConsent","hasMoreOptions","onUpdate","consent"],"mappings":"4dAWO,IAAMA,EAAc,SAACC,6BAAEC,gBAAaC,EAAAF,EAAAG,OAAAA,aAAS,KAAID,EAAEE,WAAQC,EAAOL,EAAAK,QAAEC,EAAeN,EAAAM,gBAChFC,GAAuBN,GAAe,CAAA,GAApBO,YAAlBA,OAAW,IAAAD,GAAOA,EAK1B,OACEE,EAAAC,cAAA,MAAA,CAAKC,UAAU,eAAeC,QAAS,cACrCH,EAAAC,cAAA,MAAA,CACEC,UAAU,YACVC,QAAS,WACHJ,IACFK,OAAOC,SAAS,CAAEC,IAAK,EAAGC,SAAU,WACpCX,SAAAA,EAASY,YAAY,cAAe,QAAS,qBAIhDhB,aAAW,EAAXA,EAAaiB,oBACZT,EAAAC,cAACS,EACC,CAAAC,KAAMnB,aAAA,EAAAA,EAAaoB,gBACnBlB,OAAQA,EACRE,QAASA,EACTiB,OAA0B,QAAlBC,EAAA,OAAAV,iBAAAA,cAAAA,OAAQW,gBAAU,IAAAD,OAAA,EAAAA,EAAAE,OAC1BC,SAAS,MAIZzB,eAAAA,EAAa0B,iBACZlB,gBAACmB,EAAQ,CACPvB,QAASA,EACTF,OAAQA,EACRiB,KAAMnB,aAAA,EAAAA,EAAaoB,gBACnBC,OAA0B,QAAlBO,EAAA,OAAAhB,iBAAAA,cAAAA,OAAQW,gBAAU,IAAAK,OAAA,EAAAA,EAAAJ,UAI7BxB,aAAW,EAAXA,EAAa6B,qBACZrB,EAACC,cAAAqB,GACCC,cAAY,EACZC,WACEhC,aAAW,EAAXA,EAAaiC,oBACTC,UAAAC,EAA6B,QAA7BC,EAAApC,aAAW,EAAXA,EAAaqC,sBAAgB,IAAAD,OAAA,EAAAA,EAAAE,gCAAY,yBAAIC,UAC5CpC,aAAA,EAAAA,EAAgBqC,YAEvBC,YACEzC,aAAA,EAAAA,EAAaiC,YACT,GAAGS,OAA2C,QAA3CC,EAAsC,QAAtCC,EAA2B,QAA3BC,EAAA7C,aAAA,EAAAA,EAAaqC,sBAAc,IAAAQ,OAAA,EAAAA,EAAEP,iBAAS,IAAAM,OAAA,EAAAA,EAAG,UAAE,IAAAD,OAAA,EAAAA,EAAEG,SAAQ,KAAAJ,OAA+C,UAAL,QAAtCK,UAAAC,EAAAhD,aAAA,EAAAA,EAAaqC,qCAAgBC,iBAAS,IAAAS,OAAA,EAAAA,EAAG,UAAE,IAAAE,OAAA,EAAAA,EAAEC,QACzG,GAENhD,OAAQA,KAIXF,eAAAA,EAAamD,qBAAsB3C,EAAAC,cAAC2C,EAAY,CAAClD,OAAQA,EAAQF,YAAaA,KAE9EA,aAAW,EAAXA,EAAaqD,uBAAwB7C,EAAAC,cAAC6C,EAAc,CAACpD,OAAQA,KAE7DF,aAAW,EAAXA,EAAauD,qBAAsB/C,EAAAC,cAAC+C,EAAa,CAAAtD,OAAQA,MAG3DF,aAAW,EAAXA,EAAayD,gBACZjD,EAAAC,cAACiD,EAAM,CAACtD,QAASA,EAASF,OAAQA,EAAQF,YAAaA,EAAaU,UAAU,YAG/EV,aAAW,EAAXA,EAAa2D,sBACZnD,EAAAC,cAACmD,EACC,CAAAxD,QAASA,EACTyD,gBACA,EAAAC,SAAU,SAACC,GACL1D,GACFA,EAAgB0D,EAEnB,EACD7D,OAAQA,IAKlB"}
|
package/dist/PhoneEntryForm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"tslib";import
|
|
1
|
+
import{__read as n,__awaiter as e,__generator as t}from"tslib";import o,{useState as i,useRef as s,useEffect as l}from"react";import{B as a}from"./Button-7b167cb9.js";import{C as r}from"./ConsentAcceptanceCheck-5b056795.js";import{D as c}from"./DynamicPricePoint-4e0bae0d.js";import{M as u}from"./PhoneInput-02d32046.js";import{P as d}from"./PricePoint-1cf6bde9.js";import"classnames";import"./ExtraDisclaimers-4dfdad88.js";import"awesome-phonenumber";var m=function(m){var f=m.rds,p=m.phoneInputRef,v=m.countryCode,C=m.msisdnPrefix,h=m.msisdn,b=m.locale,g=m.legals,k=m.buttonId,E=m.setMsisdn,w=m.onChange,M=m.tracker,S=m.formattedMessage,N=m.toolTipLabel,B=m.renderTopContent,D=m.msisdnLabel,y=m.placeholder,P=m.buttonLabel,x=m.buttonLabel2,F=m.buttonTopComponent,I=m.buttonBottomComponent,T=m.renderBottomContent,j=m.buttonDisabled,A=m.pageConfigs,L=m.customConsentMessage,R=m.msisdnLengthToValidate,V=void 0===R?5:R,Y=m.onButtonClick,O=m.buttonAreaId,W=void 0===O?"button-area":O,K=m.buttonAreaClassName,q=void 0===K?"dcbp":K,z=n(i(!1),2),G=z[0],H=z[1],J=n(o.useState(!1),2),Q=J[0],U=J[1],X=n(i(!1),2),Z=X[0],$=X[1],_=n(i(!0),2),nn=_[0],en=_[1],tn=n(i(!1),2),on=tn[0],sn=tn[1],ln=n(i(h),2);ln[0];var an=ln[1],rn=s(null),cn=n(i(!1),2),un=cn[0],dn=cn[1],mn=n(i((null==A?void 0:A.isConsentCheckByDefault)||!1),2),fn=mn[0],pn=mn[1],vn=n(i(!1),2),Cn=vn[0],hn=vn[1];l((function(){h||(null==A?void 0:A.hasCountryCode)||E(C||""),h&&h.length>=V&&(H(!0),sn(!0),$(!0))}),[C,null==A?void 0:A.hasCountryCode,V]),l((function(){fn&&hn(!1)}),[fn]),l((function(){(null==f?void 0:f.RDS)&&(null==f?void 0:f.rds)&&f.RDS.WhenFailure(null,(function(){fn&&pn(!fn)}))(f.rds)}),[f]),l((function(){if(null==A?void 0:A.isMsisdnPx){var n=!1;return setTimeout((function(){return e(void 0,void 0,void 0,(function(){var e,o;return t(this,(function(t){switch(t.label){case 0:return[4,null===(o=null===window||void 0===window?void 0:window.OuisysStorage)||void 0===o?void 0:o.get("msisdn")];case 1:return e=t.sent()||"",n||!e?[2]:(E(e),an(e),sn(!0),H(!0),null==M||M.customEvent("MSISDN-State","filled","MsisdnAutoFilled",{msisdn:e}),[2])}}))}))}),500),function(){n=!0}}}),[]);var bn=function(n,e){if(!fn&&!e&&(null==A?void 0:A.isShowConsentCheckBox))return n.preventDefault(),dn(!0),void hn(!0);(null==A?void 0:A.isShowConsentCheckBox)&&(null==M||M.customEvent("Flow","advance","consentForm-accepted"),hn(!1),dn(!1)),U((function(n){return!n})),Y&&G&&Y(n)};return o.createElement("label",{htmlFor:"phone-input"},B,Z&&!G?o.createElement("div",{className:"label-msisdn tooltip"},N):o.createElement(o.Fragment,null),nn?o.createElement("div",{id:"label-msisdn",className:"label-msisdn"},D):null,o.createElement("div",{className:"msisdn-wrapper ".concat(Q&&!G?null==A?void 0:A.inputFocusAnimation:""),"data-attr":"has-subscription-box",onClick:function(){window.innerWidth<=640&&(null==A?void 0:A.hasTooltip)&&($(!0),en(!1))}},o.createElement(u,{showFlag:!0,showMobileIcon:!0,showError:!1,tracker:M,inputElementRef:p||rn,placeholder:y||"",msisdn:h,countryCode:v||"MY",onChange:function(n){E(n.msisdn),H(n.isValid),an(n.internationalNumber),null==w||w(n),n.isValid&&(null==A?void 0:A.isCheckConsentCheckBoxOnValid)&&pn(!0)},onKeyPress:function(){!on&&h&&h.length>=V&&sn(!0)},onPaste:function(){on||sn(!0),setTimeout((function(){null==M||M.customEvent("MSISDN-State","copypaste","MsisdnPasted",{msisdn:h})}),0)},onBlur:function(){!on&&h&&h.length>=V&&(sn(!0),null==M||M.customEvent("MSISDN-State","autofill","AutoFill",{msisdn:h}))},onFocus:function(){},onClickCheckMark:function(){},onClickErrorCheckMark:function(){}})),F,o.createElement("div",{id:W,className:q},o.createElement(a,{type:"submit",className:"btn",id:k||"msisdn-submit-button",disabled:j||(null==A?void 0:A.isDisableButtonIfInvalid)&&!G,onClick:function(n){bn(n)}},P,x&&o.createElement("p",{className:"msisdn-secondary-label"},x))),I,(null==A?void 0:A.isNewLegal)?o.createElement(c,{pageConfigs:A,formattedMessage:S}):o.createElement(d,{className:"price-point",legals:g||[],locale:b||"en"}),(null==A?void 0:A.isShowConsentCheckBox)&&o.createElement(r,{tracker:M,checked:fn,locale:b||"en",legals:g,confirmText:"YES",pageConfigs:A,showErrorMessage:Cn,customConsentMessage:L,showModal:un,formattedMessage:S,onCheckedChange:function(){pn(!fn)},onClickYes:function(n){pn(!0),bn(n,!0)}}),T)};export{m as PhoneEntryForm};
|
|
2
2
|
//# sourceMappingURL=PhoneEntryForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneEntryForm.js","sources":["../src/PhoneEntryForm/PhoneEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button/Button';\nimport { ConsentAcceptanceCheck } from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport PhoneInput from '../PhoneInput';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { IPhoneEntryFormProps } from './PhoneEntryForm.types';\n\nexport const PhoneEntryForm = (props: IPhoneEntryFormProps) => {\n const {\n rds,\n phoneInputRef,\n countryCode,\n msisdnPrefix,\n msisdn,\n locale,\n legals,\n buttonId,\n setMsisdn,\n onChange,\n tracker,\n formattedMessage,\n toolTipLabel,\n renderTopContent,\n msisdnLabel,\n placeholder,\n buttonLabel,\n buttonLabel2,\n buttonTopComponent,\n buttonBottomComponent,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n customConsentMessage,\n msisdnLengthToValidate = 5,\n onButtonClick,\n buttonAreaId = 'button-area',\n buttonAreaClassName = 'dcbp'\n } = props;\n\n const [isValid, setIsValid] = useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n const [isMsisdnFilled, setIsMsisdnFilled] = useState(false);\n const [internationalNumber, setInternationalNumber] = useState<string>(msisdn);\n const defaultInputRef = useRef<HTMLInputElement>(null);\n const [showModal, setShowModal] = useState<boolean>(false);\n const [checked, setChecked] = useState<boolean>(pageConfigs?.isConsentCheckByDefault || false);\n const [showMessage, setShowMessage] = useState<boolean>(false);\n\n useEffect(() => {\n if (!msisdn && !pageConfigs?.hasCountryCode) {\n setMsisdn(msisdnPrefix || '');\n } else {\n setMsisdn(\"\");\n }\n\n if (msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsValid(true);\n setIsMsisdnFilled(true);\n setIsTooltipVisible(!isTooltipVisible);\n }\n }, [msisdnPrefix, pageConfigs]);\n\n useEffect(() => {\n if (checked) {\n setShowMessage(false);\n }\n }, [checked]);\n\n useEffect(() => {\n if (rds?.RDS && rds?.rds) {\n rds.RDS.WhenFailure(null, () => {\n if (checked) {\n setChecked(!checked);\n }\n })(rds.rds);\n }\n }, [rds]);\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>, isChecked?: boolean) => {\n if (!(checked || isChecked) && pageConfigs?.isShowConsentCheckBox) {\n e.preventDefault();\n setShowModal(true);\n setShowMessage(true);\n return;\n }\n\n if (pageConfigs?.isShowConsentCheckBox) {\n tracker?.customEvent('Flow', 'advance', 'consentForm-accepted');\n setShowMessage(false);\n setShowModal(false);\n }\n\n setIsFocused((prevState) => !prevState);\n if (onButtonClick && isValid) {\n onButtonClick(e);\n }\n };\n\n const handleTooltipVisibility = () => {\n if (window.innerWidth <= 640 && pageConfigs?.hasTooltip) {\n setIsTooltipVisible(true);\n setIsLabelVisible(false);\n }\n };\n\n return (\n <label htmlFor=\"phone-input\">\n {renderTopContent}\n {isTooltipVisible && !isValid ? <div className=\"label-msisdn tooltip\">{toolTipLabel}</div> : <></>}\n {isLabelVisible ? (\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {msisdnLabel}\n </div>\n ) : null}\n <div\n className={`msisdn-wrapper ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n <PhoneInput\n showFlag\n showMobileIcon\n showError={false}\n tracker={tracker}\n inputElementRef={phoneInputRef || defaultInputRef}\n placeholder={placeholder || ''}\n msisdn={msisdn}\n countryCode={countryCode || 'MY'} // Assuming default country code is MY, can be made dynamic\n onChange={(ev: any) => {\n setMsisdn(ev.msisdn);\n setIsValid(ev.isValid);\n setInternationalNumber(ev.internationalNumber);\n onChange?.(ev);\n\n if (ev.isValid && pageConfigs?.isCheckConsentCheckBoxOnValid) {\n setChecked(true);\n }\n }}\n onKeyPress={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n }\n }}\n onPaste={() => {\n if (!isMsisdnFilled) {\n setIsMsisdnFilled(true);\n }\n setTimeout(() => {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted', {\n msisdn\n });\n }, 0);\n }}\n onBlur={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', {\n msisdn\n });\n }\n }}\n onFocus={() => {\n // Handle focus event\n }}\n onClickCheckMark={() => {\n // Handle check mark click\n }}\n onClickErrorCheckMark={() => {\n // Handle error check mark click\n }}\n />\n </div>\n {buttonTopComponent}\n <div id={buttonAreaId} className={buttonAreaClassName}>\n <Button\n type=\"submit\"\n className=\"btn\"\n id={buttonId || 'msisdn-submit-button'}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={(ev) => {\n handleButtonClick(ev);\n }}\n >\n {buttonLabel}\n {buttonLabel2 && <p className=\"msisdn-secondary-label\">{buttonLabel2}</p>}\n </Button>\n </div>\n {buttonBottomComponent}\n\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n\n {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )}\n {renderBottomContent}\n </label>\n );\n};\n"],"names":["PhoneEntryForm","props","rds","phoneInputRef","countryCode","msisdnPrefix","msisdn","locale","legals","buttonId","setMsisdn","onChange","tracker","formattedMessage","toolTipLabel","renderTopContent","msisdnLabel","placeholder","buttonLabel","buttonLabel2","buttonTopComponent","buttonBottomComponent","renderBottomContent","buttonDisabled","pageConfigs","customConsentMessage","_a","msisdnLengthToValidate","onButtonClick","_b","buttonAreaId","_c","buttonAreaClassName","_d","__read","useState","isValid","setIsValid","_e","React","isFocused","setIsFocused","_f","isTooltipVisible","setIsTooltipVisible","_g","isLabelVisible","setIsLabelVisible","_h","isMsisdnFilled","setIsMsisdnFilled","_j","setInternationalNumber","defaultInputRef","useRef","_k","showModal","setShowModal","_l","isConsentCheckByDefault","checked","setChecked","_m","showMessage","setShowMessage","useEffect","hasCountryCode","length","RDS","WhenFailure","handleButtonClick","e","isChecked","isShowConsentCheckBox","preventDefault","customEvent","prevState","createElement","htmlFor","className","Fragment","id","concat","inputFocusAnimation","onClick","window","innerWidth","hasTooltip","PhoneInput","showFlag","showMobileIcon","showError","inputElementRef","ev","internationalNumber","isCheckConsentCheckBoxOnValid","onKeyPress","onPaste","setTimeout","onBlur","onFocus","onClickCheckMark","onClickErrorCheckMark","Button","type","disabled","isDisableButtonIfInvalid","isNewLegal","DynamicPricePoint","PricePoint","ConsentAcceptanceCheck","confirmText","showErrorMessage","onCheckedChange","onClickYes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PhoneEntryForm.js","sources":["../src/PhoneEntryForm/PhoneEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button/Button';\nimport { ConsentAcceptanceCheck } from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport PhoneInput from '../PhoneInput';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { IPhoneEntryFormProps } from './PhoneEntryForm.types';\n\nexport const PhoneEntryForm = (props: IPhoneEntryFormProps) => {\n const {\n rds,\n phoneInputRef,\n countryCode,\n msisdnPrefix,\n msisdn,\n locale,\n legals,\n buttonId,\n setMsisdn,\n onChange,\n tracker,\n formattedMessage,\n toolTipLabel,\n renderTopContent,\n msisdnLabel,\n placeholder,\n buttonLabel,\n buttonLabel2,\n buttonTopComponent,\n buttonBottomComponent,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n customConsentMessage,\n msisdnLengthToValidate = 5,\n onButtonClick,\n buttonAreaId = 'button-area',\n buttonAreaClassName = 'dcbp'\n } = props;\n\n const [isValid, setIsValid] = useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n const [isMsisdnFilled, setIsMsisdnFilled] = useState(false);\n const [internationalNumber, setInternationalNumber] = useState<string>(msisdn);\n const defaultInputRef = useRef<HTMLInputElement>(null);\n const [showModal, setShowModal] = useState<boolean>(false);\n const [checked, setChecked] = useState<boolean>(pageConfigs?.isConsentCheckByDefault || false);\n const [showMessage, setShowMessage] = useState<boolean>(false);\n\n useEffect(() => {\n if (!msisdn && !pageConfigs?.hasCountryCode) {\n setMsisdn(msisdnPrefix || '');\n }\n\n if (msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsValid(true);\n setIsMsisdnFilled(true);\n setIsTooltipVisible(true);\n }\n }, [msisdnPrefix, pageConfigs?.hasCountryCode, msisdnLengthToValidate]);\n\n useEffect(() => {\n if (checked) {\n setShowMessage(false);\n }\n }, [checked]);\n\n useEffect(() => {\n if (rds?.RDS && rds?.rds) {\n rds.RDS.WhenFailure(null, () => {\n if (checked) {\n setChecked(!checked);\n }\n })(rds.rds);\n }\n }, [rds]);\n\n useEffect(() => {\n if (!pageConfigs?.isMsisdnPx) return;\n\n let cancelled = false;\n setTimeout(async () => {\n const stored = (await window?.OuisysStorage?.get('msisdn')) || '';\n if (cancelled || !stored) return;\n setMsisdn(stored);\n setInternationalNumber(stored);\n setIsMsisdnFilled(true);\n setIsValid(true);\n tracker?.customEvent('MSISDN-State', 'filled', 'MsisdnAutoFilled', { msisdn: stored });\n }, 500);\n return () => {\n cancelled = true;\n };\n }, []);\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>, isChecked?: boolean) => {\n if (!(checked || isChecked) && pageConfigs?.isShowConsentCheckBox) {\n e.preventDefault();\n setShowModal(true);\n setShowMessage(true);\n return;\n }\n\n if (pageConfigs?.isShowConsentCheckBox) {\n tracker?.customEvent('Flow', 'advance', 'consentForm-accepted');\n setShowMessage(false);\n setShowModal(false);\n }\n\n setIsFocused((prevState) => !prevState);\n if (onButtonClick && isValid) {\n onButtonClick(e);\n }\n };\n\n const handleTooltipVisibility = () => {\n if (window.innerWidth <= 640 && pageConfigs?.hasTooltip) {\n setIsTooltipVisible(true);\n setIsLabelVisible(false);\n }\n };\n\n return (\n <label htmlFor=\"phone-input\">\n {renderTopContent}\n {isTooltipVisible && !isValid ? <div className=\"label-msisdn tooltip\">{toolTipLabel}</div> : <></>}\n {isLabelVisible ? (\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {msisdnLabel}\n </div>\n ) : null}\n <div\n className={`msisdn-wrapper ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n <PhoneInput\n showFlag\n showMobileIcon\n showError={false}\n tracker={tracker}\n inputElementRef={phoneInputRef || defaultInputRef}\n placeholder={placeholder || ''}\n msisdn={msisdn}\n countryCode={countryCode || 'MY'} // Assuming default country code is MY, can be made dynamic\n onChange={(ev: any) => {\n setMsisdn(ev.msisdn);\n setIsValid(ev.isValid);\n setInternationalNumber(ev.internationalNumber);\n onChange?.(ev);\n\n if (ev.isValid && pageConfigs?.isCheckConsentCheckBoxOnValid) {\n setChecked(true);\n }\n }}\n onKeyPress={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n }\n }}\n onPaste={() => {\n if (!isMsisdnFilled) {\n setIsMsisdnFilled(true);\n }\n setTimeout(() => {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted', {\n msisdn\n });\n }, 0);\n }}\n onBlur={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', {\n msisdn\n });\n }\n }}\n onFocus={() => {\n // Handle focus event\n }}\n onClickCheckMark={() => {\n // Handle check mark click\n }}\n onClickErrorCheckMark={() => {\n // Handle error check mark click\n }}\n />\n </div>\n {buttonTopComponent}\n <div id={buttonAreaId} className={buttonAreaClassName}>\n <Button\n type=\"submit\"\n className=\"btn\"\n id={buttonId || 'msisdn-submit-button'}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={(ev) => {\n handleButtonClick(ev);\n }}\n >\n {buttonLabel}\n {buttonLabel2 && <p className=\"msisdn-secondary-label\">{buttonLabel2}</p>}\n </Button>\n </div>\n {buttonBottomComponent}\n\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n\n {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )}\n {renderBottomContent}\n </label>\n );\n};\n"],"names":["PhoneEntryForm","props","rds","phoneInputRef","countryCode","msisdnPrefix","msisdn","locale","legals","buttonId","setMsisdn","onChange","tracker","formattedMessage","toolTipLabel","renderTopContent","msisdnLabel","placeholder","buttonLabel","buttonLabel2","buttonTopComponent","buttonBottomComponent","renderBottomContent","buttonDisabled","pageConfigs","customConsentMessage","_a","msisdnLengthToValidate","onButtonClick","_b","buttonAreaId","_c","buttonAreaClassName","_d","__read","useState","isValid","setIsValid","_e","React","isFocused","setIsFocused","_f","isTooltipVisible","setIsTooltipVisible","_g","isLabelVisible","setIsLabelVisible","_h","isMsisdnFilled","setIsMsisdnFilled","_j","setInternationalNumber","defaultInputRef","useRef","_k","showModal","setShowModal","_l","isConsentCheckByDefault","checked","setChecked","_m","showMessage","setShowMessage","useEffect","hasCountryCode","length","RDS","WhenFailure","isMsisdnPx","cancelled","setTimeout","__awaiter","window","OuisysStorage","get","stored","sent","customEvent","handleButtonClick","e","isChecked","isShowConsentCheckBox","preventDefault","prevState","createElement","htmlFor","className","Fragment","id","concat","inputFocusAnimation","onClick","innerWidth","hasTooltip","PhoneInput","showFlag","showMobileIcon","showError","inputElementRef","ev","internationalNumber","isCheckConsentCheckBoxOnValid","onKeyPress","onPaste","onBlur","onFocus","onClickCheckMark","onClickErrorCheckMark","Button","type","disabled","isDisableButtonIfInvalid","isNewLegal","DynamicPricePoint","PricePoint","ConsentAcceptanceCheck","confirmText","showErrorMessage","onCheckedChange","onClickYes"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{__rest as e,__read as n,__assign as o,__awaiter as t,__generator as r}from"tslib";import{getAsYouType as a,parsePhoneNumber as i}from"awesome-phonenumber";import*as l from"react";import u,{memo as c,useState as s,useRef as d,useEffect as m,useCallback as v}from"react";var f={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function p(e){return e.split("").reduce((function(e,n){var o=function(e,n){if("+"===e){if(n)return;return"+"}return function(e){return f[e]}(e)}(n,e);return o?e+o:e}),"")}var h=c((function(t){var r=t.value,i=t.onChange,l=t.onFocus,c=t.onBlur,f=t.country,h=t.inputComponent,g=void 0===h?"input":h,k=e(t,["value","onChange","onFocus","onBlur","country","inputComponent"]),b=n(s(r),2),w=b[0],C=b[1],y=d(null);m((function(){C(r)}),[r]);var N=v((function(e){var n=a(f);return n.addChar(e),n.number()}),[f]),E=v((function(e){var n=p(e.target.value);n===w&&N(n).startsWith(e.target.value)&&(n=n.slice(0,-1)),C(n),i(n)}),[w,N,i]),x=v((function(e){if(c){var n=o(o({},e),{target:o(o({},e.target),{value:w}),stopPropagation:e.stopPropagation,preventDefault:e.preventDefault});c(n)}}),[c,w]);return v((function(){var e;null===(e=y.current)||void 0===e||e.focus()}),[]),u.createElement(g,o({type:"tel",autoComplete:"tel"},k,{ref:y,value:N(w),onChange:E,onFocus:l,onBlur:x}))}));h.displayName="InputBasic";var g="checkmark-module_checkmarkCircle__eLYXC",k="checkmark-module_checkmarkIcon__MB66m",b="checkmark-module_checkmarkCheck__PU1bl";function w(e){var n=e.onClickCheckMark;return l.createElement("svg",{id:"success-check-mark",onClick:function(){return n()},className:k,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 52 52"},l.createElement("circle",{className:g,cx:"26",cy:"26",r:"25",fill:"none"}),l.createElement("path",{className:b,fill:"none",d:"M14.1 27.2l7.1 7.2 16.7-16.8"}))}function C(e,n,o){return{countryCode:e,commonPrefix:n,maxLength:o}}var y={mx:C("52","01",10),my:C("60","01",9),za:C("27","0",9),ae:C("971","05",10),a2:C("971","05",10),gr:C("30","69",9),g2:C("30","69",9),ee:C("372","",10),lt:C("370","6",9),ps:C("972","0",10),xx:C("","",10),lu:C("352","0",10)};function N(e){var n=e.onClickErrorCheckMark;return l.createElement("svg",{id:"error-check-mark",onClick:function(){return n()},xmlns:"http://www.w3.org/2000/svg",className:"errormark__icon",viewBox:"0 0 90.27 90.27"},l.createElement("defs",null,l.createElement("style",{dangerouslySetInnerHTML:{__html:"\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n "}})),l.createElement("title",null,"icon-error"),l.createElement("circle",{className:"circle-2",cx:"45.14",cy:"45.14",r:"45.14"}),l.createElement("g",{className:"x"},l.createElement("rect",{className:"x-single",x:"21.77",y:"43.49",width:"46.74",height:"3.36",transform:"translate(-18.72 45.15) rotate(-45)"}),l.createElement("rect",{className:"x-single",x:"43.47",y:"21.81",width:"3.36",height:"46.74",transform:"translate(-18.72 45.16) rotate(-45)"})))}function E(e,n){var o,t,r=n.startsWith("0")?parseInt(n,10).toString():n;try{var a=i(r,{regionCode:e.toUpperCase()}),l=(null===(o=a.number)||void 0===o?void 0:o.national)||"",u=(null===(t=a.number)||void 0===t?void 0:t.international)||"",c=function(e){if(!e)return e;var n=e.match(/\d+/g);return n?n.join(""):e}(l),s=a.valid;return"ci"===e.toLowerCase()&&(s=a.possible||a.typeIsMobile||8===l.length||9===l.length),{nationalNumber:l,internationalNumber:u,bupperNumber:c,isValid:s,internationalPrefix:a.countryCode}}catch(e){return console.warn(e),{nationalNumber:"",internationalNumber:"",bupperNumber:"",isValid:!1}}}function x(e){return/\d/.test(e)}var _={s2:"sa",o2:"om",a2:"ae",k2:"kw",c2:"ch",r2:"rs",l2:"lv",s3:"se",b2:"bh",g2:"gr",a3:"at"};var M=function(e){var o,a,i,l,c=n(s(!1),2),d=c[0],v=c[1],f=n(s(!1),2),p=f[0],g=f[1],k=function(){var n=e.id,o=e.inputElementRef,t="#".concat(n||"phone-input"),r=document.querySelector(t);"undefined"!=typeof window&&r&&!r.hasAttribute("autofocus")&&r.setAttribute("autofocus",""),o.current&&setTimeout((function(){var e;null===(e=o.current)||void 0===e||e.focus()}),123)};m((function(){k();t(void 0,void 0,void 0,(function(){var n,o,t,a,i,l,u,c,s,d,m,f,p,h,g,k,b,w;return r(this,(function(r){switch(r.label){case 0:if("undefined"==typeof window||!(null==e?void 0:e.useNumberFromCookie)||!window.msisdnCookieUrl)return[3,6];C="_uuid",y=document.cookie.match("(^|;)\\s*".concat(C,"\\s*=\\s*([^;]+)")),n=y?decodeURIComponent(y.pop()||""):"",o=localStorage.getItem("_uuid"),t="",r.label=1;case 1:return r.trys.push([1,4,,5]),[4,fetch(window.msisdnCookieUrl,{mode:"cors",method:"GET",credentials:"include"})];case 2:return[4,r.sent().json()];case 3:return a=r.sent(),(null===(g=null==a?void 0:a.data)||void 0===g?void 0:g.success)&&(null===(k=null==a?void 0:a.data)||void 0===k?void 0:k._uuid)&&(t=null===(b=null==a?void 0:a.data)||void 0===b?void 0:b._uuid),[3,5];case 4:return i=r.sent(),console.error(null==i?void 0:i.message),[3,5];case 5:l=t||o||n||"",u=window.atob(l),(null==e?void 0:e.tracker)&&(c=t?"msisdnCookieUrl":o?"localStorage":n?"cookie":"none",null===(w=null==e?void 0:e.tracker)||void 0===w||w.customEvent("Flow","advance-auto","msisdn-retrieve-".concat(c),{source:c,msisdn:u})),u&&(s=x(null==e?void 0:e.countryCode)?_[null==e?void 0:e.countryCode]:null==e?void 0:e.countryCode,d=E(s,u),m=d.nationalNumber,f=d.internationalNumber,p=d.bupperNumber,h=d.isValid,null==e||e.onChange({msisdn:u,isValid:h,nationalNumber:m,internationalNumber:f,bupperNumber:p}),v(h),window.msisdn=u),r.label=6;case 6:return[2]}var C,y}))}))}),[]),m((function(){g(null==e?void 0:e.showError)}),[null==e?void 0:e.showError]),m((function(){(null==e?void 0:e.msisdn)&&F(null==e?void 0:e.msisdn)}),[null==e?void 0:e.msisdn]);var b=h,C=x(null==e?void 0:e.countryCode)?_[null==e?void 0:e.countryCode]:null==e?void 0:e.countryCode,M=function(e){return y[e]||y.xx}(C),S=M.countryCode;M.commonPrefix,M.maxLength;var I=null!==(o=null==e?void 0:e.showCountryCode)&&void 0!==o&&o,P=null===(a=null==e?void 0:e.showFlag)||void 0===a||a,U=null===(i=null==e?void 0:e.showMobileIcon)||void 0===i||i,B=null!==(l=null==e?void 0:e.saveValidNumber)&&void 0!==l&&l,F=function(n){var o=E(C,n),a=o.nationalNumber,i=o.internationalNumber,l=o.bupperNumber,u=o.isValid;if(null==e||e.onChange({msisdn:n,isValid:u,nationalNumber:a,internationalNumber:i,bupperNumber:l}),v(u),"undefined"!=typeof window&&(window.msisdn=n,B&&u&&window.msisdnCookieUrl)){var c=window.btoa(n);!function(e,n,o,t){void 0===t&&(t="/");var r="".concat(e,"=").concat(encodeURIComponent(n));if(o){var a=new Date;a.setTime(a.getTime()+24*o*60*60*1e3),r+="; expires=".concat(a.toUTCString())}r+="; path=".concat(t),document.cookie=r}("_uuid",c,30,"/"),localStorage.setItem("_uuid",c),t(void 0,void 0,void 0,(function(){var n,o,t,a;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),[4,fetch(window.msisdnCookieUrl,{mode:"cors",method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({_uuid:c})})];case 1:return[4,r.sent().json()];case 2:return n=r.sent(),(null==e?void 0:e.tracker)&&(o=(null===(a=null==n?void 0:n.data)||void 0===a?void 0:a.success)?"msisdn-stored-success":"msisdn-stored-failed",null==e||e.tracker.customEvent("Flow","advance-auto",o)),[3,4];case 3:return t=r.sent(),null==e||e.tracker.customEvent("Flow","advance-auto","msisdn-stored-error",t),[3,4];case 4:return[2]}}))}))}};return u.createElement("div",{className:"phone-input"},U&&u.createElement("div",{className:"phone",onMouseDown:k,onTouchStart:k}),P&&u.createElement("div",{className:"flag",onMouseDown:k,onTouchStart:k,style:{backgroundImage:"url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/".concat(C,".svg')")}}),I&&u.createElement("div",{className:"country-code",onMouseDown:k},"(",S,")"),u.createElement(b,{id:(null==e?void 0:e.id)||"phone-input",name:(null==e?void 0:e.name)||"phone-input-name",smartcaret:"undefined"==typeof navigator?"true":/SamsungBrowser/gi.test(navigator.userAgent)?"false":"true",ref:null==e?void 0:e.inputElementRef,placeholder:(null==e?void 0:e.placeholder)||"Enter phone number",country:C.toUpperCase(),className:"text-input",value:(null==e?void 0:e.msisdn)||"",onChange:function(n){if(g(!1),n.includes("3522100000012340"))return null==e||e.onChange({msisdn:n,isValid:!0,nationalNumber:n,internationalNumber:n,bupperNumber:n}),void v(!0);F(n)},onPaste:null==e?void 0:e.onPaste,onBlur:null==e?void 0:e.onBlur,onFocus:null==e?void 0:e.onFocus,onKeyPress:null==e?void 0:e.onKeyPress,maxLength:null==e?void 0:e.maxLength}),u.createElement("div",{className:"checkmark-container","data-checkmark-container":"true"},p?u.createElement(N,{onClickErrorCheckMark:null==e?void 0:e.onClickErrorCheckMark}):d?u.createElement(w,{onClickCheckMark:null==e?void 0:e.onClickCheckMark}):null))};export{M};
|
|
2
|
-
//# sourceMappingURL=PhoneInput-
|
|
2
|
+
//# sourceMappingURL=PhoneInput-02d32046.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneInput-e17df9c9.js","sources":["../src/PhoneInput/BasicInput/parseDigits.ts","../src/PhoneInput/BasicInput/parseIncompletePhoneNumber.ts","../src/PhoneInput/BasicInput/index.tsx","../src/PhoneInput/Checkmark.tsx","../src/PhoneInput/config.ts","../src/PhoneInput/Errormark.tsx","../src/PhoneInput/PhoneInput.tsx"],"sourcesContent":["// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport const DIGITS: { [key: string]: string } = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport function parseDigit(character: string): string | undefined {\n return DIGITS[character];\n}\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * parseDigits('8 (800) 555')\n * // Outputs '8800555'.\n * ```\n */\nexport default function parseDigits(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const digit = parseDigit(character);\n return digit ? result + digit : result;\n }, '');\n}\n","import { parseDigit } from './parseDigits';\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * // Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * // Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n * ```\n */\n\nexport default function parseIncompletePhoneNumber(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const parsedChar = parsePhoneNumberCharacter(character, result);\n return parsedChar ? result + parsedChar : result;\n }, '');\n}\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\nexport function parsePhoneNumberCharacter(character: string, prevParsedCharacters: string): string | undefined {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n }\n // Allow digits.\n return parseDigit(character);\n}\n","import { getAsYouType } from 'awesome-phonenumber';\nimport React, { ChangeEvent, ComponentType, FocusEvent, memo, useCallback, useEffect, useRef, useState } from 'react';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\n\n// Define props interface (removed state interface as it's not needed for functional component)\ninterface InputBasicProps {\n id?: string;\n name?: string;\n value: string;\n onChange: (value: string) => void;\n onFocus?: () => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n country?: string;\n metadata?: Record<string, unknown>; // Specify the type if metadata structure is known\n inputComponent?: ComponentType<any>;\n smartcaret?: string;\n}\n\nconst InputBasic = memo<InputBasicProps>(\n ({ value: propValue, onChange, onFocus, onBlur, country, inputComponent: Input = 'input', ...rest }) => {\n // State to manage internal value\n const [value, setValue] = useState<string>(propValue);\n\n // Create a ref for the input element\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Update internal value when prop value changes (replaces getDerivedStateFromProps)\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n // Format function\n const format = useCallback(\n (inputValue: string): string => {\n const ayt = getAsYouType(country as string);\n ayt.addChar(inputValue);\n return ayt.number();\n },\n [country]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let newValue = parseIncompletePhoneNumber(event.target.value);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newValue === value) {\n if (format(newValue).startsWith(event.target.value)) {\n newValue = newValue.slice(0, -1); // Trim the last digit (or plus sign)\n }\n }\n\n setValue(newValue);\n onChange(newValue);\n },\n [value, format, onChange]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n // Clone the event to prevent React's SyntheticEvent from being read-only\n const clonedEvent = {\n ...event,\n target: {\n ...event.target,\n value\n },\n stopPropagation: event.stopPropagation,\n preventDefault: event.preventDefault\n };\n onBlur(clonedEvent as FocusEvent<HTMLInputElement>);\n }\n },\n [onBlur, value]\n );\n\n // Focus function (can be called via ref)\n const focus = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n // Expose focus method via useImperativeHandle if needed\n // React.useImperativeHandle(ref, () => ({ focus }), [focus]);\n\n return (\n <Input\n type=\"tel\"\n autoComplete=\"tel\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n ref={inputRef}\n value={format(value)}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n );\n }\n);\n\n// Set display name for debugging\nInputBasic.displayName = 'InputBasic';\n\nexport function createInput() {\n return InputBasic;\n}\n","import * as React from 'react';\nimport styles from './checkmark.module.scss';\n\nexport default function Checkmark({ onClickCheckMark }: { onClickCheckMark: () => void }): JSX.Element {\n return (\n <svg\n id=\"success-check-mark\"\n onClick={() => onClickCheckMark()}\n className={styles.checkmarkIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle className={styles.checkmarkCircle} cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path className={styles.checkmarkCheck} fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n );\n}\n","function mkConfig(countryCode: string, commonPrefix: string, maxLength: number) {\n return { countryCode, commonPrefix, maxLength };\n}\n\nconst configs: { [key: string]: ReturnType<typeof mkConfig> } = {\n mx: mkConfig('52', '01', 10),\n my: mkConfig('60', '01', 9),\n za: mkConfig('27', '0', 9),\n ae: mkConfig('971', '05', 10),\n a2: mkConfig('971', '05', 10),\n gr: mkConfig('30', '69', 9),\n g2: mkConfig('30', '69', 9),\n ee: mkConfig('372', '', 10),\n lt: mkConfig('370', '6', 9),\n ps: mkConfig('972', '0', 10),\n xx: mkConfig('', '', 10),\n lu: mkConfig('352', '0', 10),\n};\n\nexport default (countryCode: string) => configs[countryCode] || configs.xx;\n","import * as React from 'react';\n\nexport default function Checkmark({\n onClickErrorCheckMark\n}: {\n onClickErrorCheckMark: () => void;\n}): React.ReactElement {\n return (\n <svg\n id=\"error-check-mark\"\n onClick={() => onClickErrorCheckMark()}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"errormark__icon\"\n viewBox=\"0 0 90.27 90.27\"\n >\n <defs>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n `\n }}\n />\n </defs>\n <title>icon-error</title>\n <circle className=\"circle-2\" cx=\"45.14\" cy=\"45.14\" r=\"45.14\" />\n <g className=\"x\">\n <rect\n className=\"x-single\"\n x=\"21.77\"\n y=\"43.49\"\n width=\"46.74\"\n height=\"3.36\"\n transform=\"translate(-18.72 45.15) rotate(-45)\"\n />\n <rect\n className=\"x-single\"\n x=\"43.47\"\n y=\"21.81\"\n width=\"3.36\"\n height=\"46.74\"\n transform=\"translate(-18.72 45.16) rotate(-45)\"\n />\n </g>\n </svg>\n );\n}\n","/* eslint-disable no-underscore-dangle */\nimport { parsePhoneNumber } from 'awesome-phonenumber';\nimport React, { RefObject, useEffect, useState } from 'react';\nimport { createInput } from './BasicInput';\nimport Checkmark from './Checkmark';\nimport getConfig from './config';\nimport Errormark from './Errormark';\n// import styles from './PhoneInput.module.scss';\n\ninterface IPropsChange {\n msisdn: string;\n isValid: boolean;\n nationalNumber: string;\n internationalNumber: string;\n bupperNumber: string;\n}\n\ninterface IProps {\n countryCode: string;\n msisdn?: string;\n placeholder: string;\n onChange: (args: IPropsChange) => void;\n showCountryCode?: boolean;\n showFlag?: boolean;\n showMobileIcon?: boolean;\n showError: boolean;\n inputElementRef: RefObject<HTMLInputElement>;\n onClickCheckMark: () => void;\n onClickErrorCheckMark: () => void;\n onBlur: () => void;\n onFocus: () => void;\n onPaste: () => void;\n onKeyPress: () => void;\n id?: string;\n name?: string;\n maxLength?: string | number;\n saveValidNumber?: boolean;\n useNumberFromCookie?: boolean;\n tracker?: any;\n}\n\nexport function parseMSISDN(country: string, msisdnOriginal: string) {\n const msisdn = msisdnOriginal.startsWith('0') ? parseInt(msisdnOriginal, 10).toString() : msisdnOriginal;\n try {\n const parsedPhoneNumber = parsePhoneNumber(msisdn, { regionCode: country.toUpperCase() });\n const nationalNumber = parsedPhoneNumber.number?.national || '';\n const internationalNumber = parsedPhoneNumber.number?.international || '';\n const bupperNumber = getBupperNumber(nationalNumber);\n let isValid = parsedPhoneNumber.valid;\n if (country.toLowerCase() === 'ci') {\n isValid =\n parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalNumber.length === 8 ||\n nationalNumber.length === 9;\n }\n\n return {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid,\n internationalPrefix: parsedPhoneNumber.countryCode\n };\n } catch (ex) {\n console.warn(ex);\n return {\n nationalNumber: '',\n internationalNumber: '',\n bupperNumber: '',\n isValid: false\n };\n }\n}\n\nfunction getBupperNumber(nationalNumber: string) {\n if (!nationalNumber) {\n return nationalNumber;\n }\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n}\n\nfunction hasNumber(myString: string) {\n return /\\d/.test(myString);\n}\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nfunction setCookie(name: string, value: string, daysToExpire?: number, path = '/') {\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n if (daysToExpire) {\n const date = new Date();\n date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);\n cookieString += `; expires=${date.toUTCString()}`;\n }\n cookieString += `; path=${path}`;\n document.cookie = cookieString;\n}\n\nfunction getCookie(name: string) {\n const cookieValue = document.cookie.match(`(^|;)\\\\s*${name}\\\\s*=\\\\s*([^;]+)`);\n return cookieValue ? decodeURIComponent(cookieValue.pop() || '') : '';\n}\n\nconst MsisdnComponent: React.FC<IProps> = (props) => {\n const [isValid, setIsValid] = useState(false);\n const [showError, setShowError] = useState(false);\n\n const focusOnInputElement = () => {\n const { id, inputElementRef } = props;\n const phoneInputId = `#${id || 'phone-input'}`;\n const phoneInput = document.querySelector<HTMLInputElement>(phoneInputId);\n if (typeof window !== 'undefined' && phoneInput && !phoneInput.hasAttribute('autofocus')) {\n phoneInput.setAttribute('autofocus', '');\n }\n\n if (inputElementRef.current) {\n setTimeout(() => {\n inputElementRef.current?.focus();\n }, 123);\n }\n };\n\n useEffect(() => {\n focusOnInputElement();\n\n const fetchMsisdnFromStorage = async () => {\n if (typeof window !== 'undefined' && props?.useNumberFromCookie && (window as any).msisdnCookieUrl) {\n const msisdnFromCookie = getCookie('_uuid');\n const msisdnFromLocalStorage = localStorage.getItem('_uuid');\n let msisdnFromZurch = '';\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'GET',\n credentials: 'include'\n });\n const data: any = await response.json();\n if (data?.data?.success && data?.data?._uuid) {\n msisdnFromZurch = data?.data?._uuid;\n }\n } catch (error: any) {\n console.error(error?.message);\n }\n\n const msisdnFromAnyStorage = msisdnFromZurch || msisdnFromLocalStorage || msisdnFromCookie || '';\n const decryptedMsisdn = window.atob(msisdnFromAnyStorage);\n\n if (props?.tracker) {\n const source = msisdnFromZurch\n ? 'msisdnCookieUrl'\n : msisdnFromLocalStorage\n ? 'localStorage'\n : msisdnFromCookie\n ? 'cookie'\n : 'none';\n props?.tracker?.customEvent('Flow', 'advance-auto', `msisdn-retrieve-${source}`, {\n source,\n msisdn: decryptedMsisdn\n });\n }\n\n if (decryptedMsisdn) {\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, decryptedMsisdn);\n props?.onChange({\n msisdn: decryptedMsisdn,\n isValid: validNumber,\n nationalNumber,\n internationalNumber,\n bupperNumber\n });\n setIsValid(validNumber);\n (window as any).msisdn = decryptedMsisdn;\n }\n }\n };\n\n fetchMsisdnFromStorage();\n }, []);\n\n useEffect(() => {\n setShowError(props?.showError);\n }, [props?.showError]);\n\n useEffect(() => {\n if (props?.msisdn) {\n handleChange(props?.msisdn);\n }\n }, [props?.msisdn]);\n\n const BasicInput = createInput();\n\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const { countryCode, commonPrefix, maxLength } = getConfig(country);\n const showCountryCode = props?.showCountryCode ?? false;\n const showFlag = props?.showFlag ?? true;\n const showMobileIcon = props?.showMobileIcon ?? true;\n const saveValidNumber = props?.saveValidNumber ?? false;\n\n const handleChange = (msisdn: string) => {\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, msisdn);\n props?.onChange({ msisdn, isValid: validNumber, nationalNumber, internationalNumber, bupperNumber });\n setIsValid(validNumber);\n\n if (typeof window !== 'undefined') {\n (window as any).msisdn = msisdn;\n if (saveValidNumber && validNumber && (window as any).msisdnCookieUrl) {\n const encryptedMsisdn = window.btoa(msisdn);\n setCookie('_uuid', encryptedMsisdn, 30, '/');\n localStorage.setItem('_uuid', encryptedMsisdn);\n\n (async () => {\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ _uuid: encryptedMsisdn })\n });\n const responseData: any = await response.json();\n\n if (props?.tracker) {\n const eventType = responseData?.data?.success ? 'msisdn-stored-success' : 'msisdn-stored-failed';\n props?.tracker.customEvent('Flow', 'advance-auto', eventType);\n }\n } catch (error) {\n props?.tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n }\n })();\n }\n }\n\n }\n\n return (\n <div className=\"phone-input\">\n {showMobileIcon && <div className=\"phone\" onMouseDown={focusOnInputElement} onTouchStart={focusOnInputElement} />}\n\n {showFlag && (\n <div\n className=\"flag\"\n onMouseDown={focusOnInputElement}\n onTouchStart={focusOnInputElement}\n style={{\n backgroundImage: `url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/${country}.svg')`\n }}\n />\n )}\n\n {showCountryCode && (\n <div className=\"country-code\" onMouseDown={focusOnInputElement}>\n ({countryCode})\n </div>\n )}\n\n <BasicInput\n id={props?.id || 'phone-input'}\n name={props?.name || 'phone-input-name'}\n smartcaret={\n typeof navigator === 'undefined' ? 'true' : /SamsungBrowser/gi.test(navigator.userAgent) ? 'false' : 'true'\n }\n // @ts-ignore\n ref={props?.inputElementRef}\n placeholder={props?.placeholder || 'Enter phone number'}\n country={country.toUpperCase()}\n className=\"text-input\"\n value={props?.msisdn || ''}\n onChange={(msisdn: string) => {\n setShowError(false);\n if (msisdn.includes('3522100000012340')) {\n props?.onChange({\n msisdn,\n isValid: true,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid(true);\n return;\n }\n\n handleChange(msisdn);\n\n\n }}\n onPaste={props?.onPaste}\n onBlur={props?.onBlur}\n onFocus={props?.onFocus}\n onKeyPress={props?.onKeyPress}\n maxLength={props?.maxLength}\n />\n\n <div className=\"checkmark-container\" data-checkmark-container=\"true\">\n {showError ? (\n <Errormark onClickErrorCheckMark={props?.onClickErrorCheckMark} />\n ) : isValid ? (\n <Checkmark onClickCheckMark={props?.onClickCheckMark} />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default MsisdnComponent;\n"],"names":["DIGITS","parseIncompletePhoneNumber","string","split","reduce","result","character","parsedChar","prevParsedCharacters","parseDigit","parsePhoneNumberCharacter","InputBasic","memo","_a","propValue","value","onChange","onFocus","onBlur","country","_b","inputComponent","Input","rest","__rest","_c","__read","useState","setValue","inputRef","useRef","useEffect","format","useCallback","inputValue","ayt","getAsYouType","addChar","number","handleChange","event","newValue","target","startsWith","slice","handleBlur","clonedEvent","__assign","stopPropagation","preventDefault","current","focus","React","createElement","type","autoComplete","ref","displayName","Checkmark","onClickCheckMark","id","onClick","className","styles","xmlns","viewBox","cx","cy","r","fill","d","mkConfig","countryCode","commonPrefix","maxLength","configs","mx","my","za","ae","a2","gr","g2","ee","lt","ps","xx","lu","onClickErrorCheckMark","dangerouslySetInnerHTML","__html","x","y","width","height","transform","parseMSISDN","msisdnOriginal","msisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalNumber","national","internationalNumber","international","bupperNumber","match","join","getBupperNumber","isValid","valid","toLowerCase","possible","typeIsMobile","length","internationalPrefix","ex","console","warn","hasNumber","myString","test","specialCountryCodes","s2","o2","k2","c2","r2","l2","s3","b2","a3","MsisdnComponent","props","_e","setIsValid","_f","showError","setShowError","focusOnInputElement","inputElementRef","phoneInputId","concat","phoneInput","document","querySelector","window","hasAttribute","setAttribute","setTimeout","__awaiter","useNumberFromCookie","msisdnCookieUrl","name","cookieValue","cookie","msisdnFromCookie","decodeURIComponent","pop","msisdnFromLocalStorage","localStorage","getItem","msisdnFromZurch","fetch","mode","method","credentials","sent","json","data","success","_uuid","_d","error","error_1","message","msisdnFromAnyStorage","decryptedMsisdn","atob","tracker","source","customEvent","country_1","validNumber","BasicInput","_g","getConfig","showCountryCode","showFlag","showMobileIcon","saveValidNumber","encryptedMsisdn_1","btoa","daysToExpire","path","cookieString","encodeURIComponent","date","Date","setTime","getTime","toUTCString","setCookie","setItem","headers","body","JSON","stringify","responseData","eventType","error_2","onMouseDown","onTouchStart","style","backgroundImage","smartcaret","navigator","userAgent","placeholder","includes","onPaste","onKeyPress","Errormark"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PhoneInput-02d32046.js","sources":["../src/PhoneInput/BasicInput/parseDigits.ts","../src/PhoneInput/BasicInput/parseIncompletePhoneNumber.ts","../src/PhoneInput/BasicInput/index.tsx","../src/PhoneInput/Checkmark.tsx","../src/PhoneInput/config.ts","../src/PhoneInput/Errormark.tsx","../src/PhoneInput/PhoneInput.tsx"],"sourcesContent":["// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport const DIGITS: { [key: string]: string } = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport function parseDigit(character: string): string | undefined {\n return DIGITS[character];\n}\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * parseDigits('8 (800) 555')\n * // Outputs '8800555'.\n * ```\n */\nexport default function parseDigits(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const digit = parseDigit(character);\n return digit ? result + digit : result;\n }, '');\n}\n","import { parseDigit } from './parseDigits';\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * // Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * // Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n * ```\n */\n\nexport default function parseIncompletePhoneNumber(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const parsedChar = parsePhoneNumberCharacter(character, result);\n return parsedChar ? result + parsedChar : result;\n }, '');\n}\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\nexport function parsePhoneNumberCharacter(character: string, prevParsedCharacters: string): string | undefined {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n }\n // Allow digits.\n return parseDigit(character);\n}\n","import { getAsYouType } from 'awesome-phonenumber';\nimport React, { ChangeEvent, ComponentType, FocusEvent, memo, useCallback, useEffect, useRef, useState } from 'react';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\n\n// Define props interface (removed state interface as it's not needed for functional component)\ninterface InputBasicProps {\n id?: string;\n name?: string;\n value: string;\n onChange: (value: string) => void;\n onFocus?: () => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n country?: string;\n metadata?: Record<string, unknown>; // Specify the type if metadata structure is known\n inputComponent?: ComponentType<any>;\n smartcaret?: string;\n}\n\nconst InputBasic = memo<InputBasicProps>(\n ({ value: propValue, onChange, onFocus, onBlur, country, inputComponent: Input = 'input', ...rest }) => {\n // State to manage internal value\n const [value, setValue] = useState<string>(propValue);\n\n // Create a ref for the input element\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Update internal value when prop value changes (replaces getDerivedStateFromProps)\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n // Format function\n const format = useCallback(\n (inputValue: string): string => {\n const ayt = getAsYouType(country as string);\n ayt.addChar(inputValue);\n return ayt.number();\n },\n [country]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let newValue = parseIncompletePhoneNumber(event.target.value);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newValue === value) {\n if (format(newValue).startsWith(event.target.value)) {\n newValue = newValue.slice(0, -1); // Trim the last digit (or plus sign)\n }\n }\n\n setValue(newValue);\n onChange(newValue);\n },\n [value, format, onChange]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n // Clone the event to prevent React's SyntheticEvent from being read-only\n const clonedEvent = {\n ...event,\n target: {\n ...event.target,\n value\n },\n stopPropagation: event.stopPropagation,\n preventDefault: event.preventDefault\n };\n onBlur(clonedEvent as FocusEvent<HTMLInputElement>);\n }\n },\n [onBlur, value]\n );\n\n // Focus function (can be called via ref)\n const focus = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n // Expose focus method via useImperativeHandle if needed\n // React.useImperativeHandle(ref, () => ({ focus }), [focus]);\n\n return (\n <Input\n type=\"tel\"\n autoComplete=\"tel\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n ref={inputRef}\n value={format(value)}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n );\n }\n);\n\n// Set display name for debugging\nInputBasic.displayName = 'InputBasic';\n\nexport function createInput() {\n return InputBasic;\n}\n","import * as React from 'react';\nimport styles from './checkmark.module.scss';\n\nexport default function Checkmark({ onClickCheckMark }: { onClickCheckMark: () => void }): JSX.Element {\n return (\n <svg\n id=\"success-check-mark\"\n onClick={() => onClickCheckMark()}\n className={styles.checkmarkIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle className={styles.checkmarkCircle} cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path className={styles.checkmarkCheck} fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n );\n}\n","function mkConfig(countryCode: string, commonPrefix: string, maxLength: number) {\n return { countryCode, commonPrefix, maxLength };\n}\n\nconst configs: { [key: string]: ReturnType<typeof mkConfig> } = {\n mx: mkConfig('52', '01', 10),\n my: mkConfig('60', '01', 9),\n za: mkConfig('27', '0', 9),\n ae: mkConfig('971', '05', 10),\n a2: mkConfig('971', '05', 10),\n gr: mkConfig('30', '69', 9),\n g2: mkConfig('30', '69', 9),\n ee: mkConfig('372', '', 10),\n lt: mkConfig('370', '6', 9),\n ps: mkConfig('972', '0', 10),\n xx: mkConfig('', '', 10),\n lu: mkConfig('352', '0', 10),\n};\n\nexport default (countryCode: string) => configs[countryCode] || configs.xx;\n","import * as React from 'react';\n\nexport default function Checkmark({\n onClickErrorCheckMark\n}: {\n onClickErrorCheckMark: () => void;\n}): React.ReactElement {\n return (\n <svg\n id=\"error-check-mark\"\n onClick={() => onClickErrorCheckMark()}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"errormark__icon\"\n viewBox=\"0 0 90.27 90.27\"\n >\n <defs>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n `\n }}\n />\n </defs>\n <title>icon-error</title>\n <circle className=\"circle-2\" cx=\"45.14\" cy=\"45.14\" r=\"45.14\" />\n <g className=\"x\">\n <rect\n className=\"x-single\"\n x=\"21.77\"\n y=\"43.49\"\n width=\"46.74\"\n height=\"3.36\"\n transform=\"translate(-18.72 45.15) rotate(-45)\"\n />\n <rect\n className=\"x-single\"\n x=\"43.47\"\n y=\"21.81\"\n width=\"3.36\"\n height=\"46.74\"\n transform=\"translate(-18.72 45.16) rotate(-45)\"\n />\n </g>\n </svg>\n );\n}\n","/* eslint-disable no-underscore-dangle */\nimport { parsePhoneNumber } from 'awesome-phonenumber';\nimport React, { RefObject, useEffect, useState } from 'react';\nimport { createInput } from './BasicInput';\nimport Checkmark from './Checkmark';\nimport getConfig from './config';\nimport Errormark from './Errormark';\n// import styles from './PhoneInput.module.scss';\n\ninterface IPropsChange {\n msisdn: string;\n isValid: boolean;\n nationalNumber: string;\n internationalNumber: string;\n bupperNumber: string;\n}\n\ninterface IProps {\n countryCode: string;\n msisdn?: string;\n placeholder: string;\n onChange: (args: IPropsChange) => void;\n showCountryCode?: boolean;\n showFlag?: boolean;\n showMobileIcon?: boolean;\n showError: boolean;\n inputElementRef: RefObject<HTMLInputElement>;\n onClickCheckMark: () => void;\n onClickErrorCheckMark: () => void;\n onBlur: () => void;\n onFocus: () => void;\n onPaste: () => void;\n onKeyPress: () => void;\n id?: string;\n name?: string;\n maxLength?: string | number;\n saveValidNumber?: boolean;\n useNumberFromCookie?: boolean;\n tracker?: any;\n}\n\nexport function parseMSISDN(country: string, msisdnOriginal: string) {\n const msisdn = msisdnOriginal.startsWith('0') ? parseInt(msisdnOriginal, 10).toString() : msisdnOriginal;\n try {\n const parsedPhoneNumber = parsePhoneNumber(msisdn, { regionCode: country.toUpperCase() });\n const nationalNumber = parsedPhoneNumber.number?.national || '';\n const internationalNumber = parsedPhoneNumber.number?.international || '';\n const bupperNumber = getBupperNumber(nationalNumber);\n let isValid = parsedPhoneNumber.valid;\n if (country.toLowerCase() === 'ci') {\n isValid =\n parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalNumber.length === 8 ||\n nationalNumber.length === 9;\n }\n\n return {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid,\n internationalPrefix: parsedPhoneNumber.countryCode\n };\n } catch (ex) {\n console.warn(ex);\n return {\n nationalNumber: '',\n internationalNumber: '',\n bupperNumber: '',\n isValid: false\n };\n }\n}\n\nfunction getBupperNumber(nationalNumber: string) {\n if (!nationalNumber) {\n return nationalNumber;\n }\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n}\n\nfunction hasNumber(myString: string) {\n return /\\d/.test(myString);\n}\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nfunction setCookie(name: string, value: string, daysToExpire?: number, path = '/') {\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n if (daysToExpire) {\n const date = new Date();\n date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);\n cookieString += `; expires=${date.toUTCString()}`;\n }\n cookieString += `; path=${path}`;\n document.cookie = cookieString;\n}\n\nfunction getCookie(name: string) {\n const cookieValue = document.cookie.match(`(^|;)\\\\s*${name}\\\\s*=\\\\s*([^;]+)`);\n return cookieValue ? decodeURIComponent(cookieValue.pop() || '') : '';\n}\n\nconst MsisdnComponent: React.FC<IProps> = (props) => {\n const [isValid, setIsValid] = useState(false);\n const [showError, setShowError] = useState(false);\n\n const focusOnInputElement = () => {\n const { id, inputElementRef } = props;\n const phoneInputId = `#${id || 'phone-input'}`;\n const phoneInput = document.querySelector<HTMLInputElement>(phoneInputId);\n if (typeof window !== 'undefined' && phoneInput && !phoneInput.hasAttribute('autofocus')) {\n phoneInput.setAttribute('autofocus', '');\n }\n\n if (inputElementRef.current) {\n setTimeout(() => {\n inputElementRef.current?.focus();\n }, 123);\n }\n };\n\n useEffect(() => {\n focusOnInputElement();\n\n const fetchMsisdnFromStorage = async () => {\n if (typeof window !== 'undefined' && props?.useNumberFromCookie && (window as any).msisdnCookieUrl) {\n const msisdnFromCookie = getCookie('_uuid');\n const msisdnFromLocalStorage = localStorage.getItem('_uuid');\n let msisdnFromZurch = '';\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'GET',\n credentials: 'include'\n });\n const data: any = await response.json();\n if (data?.data?.success && data?.data?._uuid) {\n msisdnFromZurch = data?.data?._uuid;\n }\n } catch (error: any) {\n console.error(error?.message);\n }\n\n const msisdnFromAnyStorage = msisdnFromZurch || msisdnFromLocalStorage || msisdnFromCookie || '';\n const decryptedMsisdn = window.atob(msisdnFromAnyStorage);\n\n if (props?.tracker) {\n const source = msisdnFromZurch\n ? 'msisdnCookieUrl'\n : msisdnFromLocalStorage\n ? 'localStorage'\n : msisdnFromCookie\n ? 'cookie'\n : 'none';\n props?.tracker?.customEvent('Flow', 'advance-auto', `msisdn-retrieve-${source}`, {\n source,\n msisdn: decryptedMsisdn\n });\n }\n\n if (decryptedMsisdn) {\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, decryptedMsisdn);\n props?.onChange({\n msisdn: decryptedMsisdn,\n isValid: validNumber,\n nationalNumber,\n internationalNumber,\n bupperNumber\n });\n setIsValid(validNumber);\n (window as any).msisdn = decryptedMsisdn;\n }\n }\n };\n\n fetchMsisdnFromStorage();\n }, []);\n\n useEffect(() => {\n setShowError(props?.showError);\n }, [props?.showError]);\n\n useEffect(() => {\n if (props?.msisdn) {\n handleChange(props?.msisdn);\n }\n }, [props?.msisdn]);\n\n const BasicInput = createInput();\n\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const { countryCode, commonPrefix, maxLength } = getConfig(country);\n const showCountryCode = props?.showCountryCode ?? false;\n const showFlag = props?.showFlag ?? true;\n const showMobileIcon = props?.showMobileIcon ?? true;\n const saveValidNumber = props?.saveValidNumber ?? false;\n\n const handleChange = (msisdn: string) => {\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, msisdn);\n props?.onChange({ msisdn, isValid: validNumber, nationalNumber, internationalNumber, bupperNumber });\n setIsValid(validNumber);\n\n if (typeof window !== 'undefined') {\n (window as any).msisdn = msisdn;\n if (saveValidNumber && validNumber && (window as any).msisdnCookieUrl) {\n const encryptedMsisdn = window.btoa(msisdn);\n setCookie('_uuid', encryptedMsisdn, 30, '/');\n localStorage.setItem('_uuid', encryptedMsisdn);\n\n (async () => {\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ _uuid: encryptedMsisdn })\n });\n const responseData: any = await response.json();\n\n if (props?.tracker) {\n const eventType = responseData?.data?.success ? 'msisdn-stored-success' : 'msisdn-stored-failed';\n props?.tracker.customEvent('Flow', 'advance-auto', eventType);\n }\n } catch (error) {\n props?.tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n }\n })();\n }\n }\n\n }\n\n return (\n <div className=\"phone-input\">\n {showMobileIcon && <div className=\"phone\" onMouseDown={focusOnInputElement} onTouchStart={focusOnInputElement} />}\n\n {showFlag && (\n <div\n className=\"flag\"\n onMouseDown={focusOnInputElement}\n onTouchStart={focusOnInputElement}\n style={{\n backgroundImage: `url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/${country}.svg')`\n }}\n />\n )}\n\n {showCountryCode && (\n <div className=\"country-code\" onMouseDown={focusOnInputElement}>\n ({countryCode})\n </div>\n )}\n\n <BasicInput\n id={props?.id || 'phone-input'}\n name={props?.name || 'phone-input-name'}\n smartcaret={\n typeof navigator === 'undefined' ? 'true' : /SamsungBrowser/gi.test(navigator.userAgent) ? 'false' : 'true'\n }\n // @ts-ignore\n ref={props?.inputElementRef}\n placeholder={props?.placeholder || 'Enter phone number'}\n country={country.toUpperCase()}\n className=\"text-input\"\n value={props?.msisdn || ''}\n onChange={(msisdn: string) => {\n setShowError(false);\n if (msisdn.includes('3522100000012340')) {\n props?.onChange({\n msisdn,\n isValid: true,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid(true);\n return;\n }\n\n handleChange(msisdn);\n\n\n }}\n onPaste={props?.onPaste}\n onBlur={props?.onBlur}\n onFocus={props?.onFocus}\n onKeyPress={props?.onKeyPress}\n maxLength={props?.maxLength}\n />\n\n <div className=\"checkmark-container\" data-checkmark-container=\"true\">\n {showError ? (\n <Errormark onClickErrorCheckMark={props?.onClickErrorCheckMark} />\n ) : isValid ? (\n <Checkmark onClickCheckMark={props?.onClickCheckMark} />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default MsisdnComponent;\n"],"names":["DIGITS","parseIncompletePhoneNumber","string","split","reduce","result","character","parsedChar","prevParsedCharacters","parseDigit","parsePhoneNumberCharacter","InputBasic","memo","_a","propValue","value","onChange","onFocus","onBlur","country","_b","inputComponent","Input","rest","__rest","_c","__read","useState","setValue","inputRef","useRef","useEffect","format","useCallback","inputValue","ayt","getAsYouType","addChar","number","handleChange","event","newValue","target","startsWith","slice","handleBlur","clonedEvent","__assign","stopPropagation","preventDefault","current","focus","React","createElement","type","autoComplete","ref","displayName","Checkmark","onClickCheckMark","id","onClick","className","styles","xmlns","viewBox","cx","cy","r","fill","d","mkConfig","countryCode","commonPrefix","maxLength","configs","mx","my","za","ae","a2","gr","g2","ee","lt","ps","xx","lu","onClickErrorCheckMark","dangerouslySetInnerHTML","__html","x","y","width","height","transform","parseMSISDN","msisdnOriginal","msisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalNumber","national","internationalNumber","international","bupperNumber","match","join","getBupperNumber","isValid","valid","toLowerCase","possible","typeIsMobile","length","internationalPrefix","ex","console","warn","hasNumber","myString","test","specialCountryCodes","s2","o2","k2","c2","r2","l2","s3","b2","a3","MsisdnComponent","props","_e","setIsValid","_f","showError","setShowError","focusOnInputElement","inputElementRef","phoneInputId","concat","phoneInput","document","querySelector","window","hasAttribute","setAttribute","setTimeout","__awaiter","useNumberFromCookie","msisdnCookieUrl","name","cookieValue","cookie","msisdnFromCookie","decodeURIComponent","pop","msisdnFromLocalStorage","localStorage","getItem","msisdnFromZurch","fetch","mode","method","credentials","sent","json","data","success","_uuid","_d","error","error_1","message","msisdnFromAnyStorage","decryptedMsisdn","atob","tracker","source","customEvent","country_1","validNumber","BasicInput","_g","getConfig","showCountryCode","showFlag","showMobileIcon","saveValidNumber","encryptedMsisdn_1","btoa","daysToExpire","path","cookieString","encodeURIComponent","date","Date","setTime","getTime","toUTCString","setCookie","setItem","headers","body","JSON","stringify","responseData","eventType","error_2","onMouseDown","onTouchStart","style","backgroundImage","smartcaret","navigator","userAgent","placeholder","includes","onPaste","onKeyPress","Errormark"],"mappings":"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"}
|
package/dist/PhoneInput.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{M as PhoneInput}from"./PhoneInput-
|
|
1
|
+
export{M as PhoneInput}from"./PhoneInput-02d32046.js";import"tslib";import"awesome-phonenumber";import"react";
|
|
2
2
|
//# sourceMappingURL=PhoneInput.js.map
|
package/dist/PinEntryForm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as e}from"tslib";import t,{useEffect as n}from"react";import{B as o}from"./Button-
|
|
1
|
+
import{__read as e}from"tslib";import t,{useEffect as n}from"react";import{B as o}from"./Button-7b167cb9.js";import{D as i}from"./DynamicPricePoint-4e0bae0d.js";import{P as l}from"./PricePoint-1cf6bde9.js";import{F as a}from"./focus-1746a75f.js";import"classnames";var r=new(function(){function e(){if(this.storage=null,"undefined"!=typeof window)try{window.localStorage.setItem("test","test"),window.localStorage.removeItem("test"),this.storage=window.localStorage}catch(t){console.warn("localStorage is not available, falling back to in-memory storage:",t),this.storage=e.createFallbackStorage()}}return e.createFallbackStorage=function(){var e={};return{setItem:function(t,n){e[t]=n},getItem:function(t){return e[t]||null},removeItem:function(t){delete e[t]},clear:function(){Object.keys(e).forEach((function(t){return delete e[t]}))}}},e.prototype.setItem=function(e,t){var n;null===(n=this.storage)||void 0===n||n.setItem(e,t)},e.prototype.getItem=function(e){var t;return(null===(t=this.storage)||void 0===t?void 0:t.getItem(e))||null},e.prototype.removeItem=function(e){var t;null===(t=this.storage)||void 0===t||t.removeItem(e)},e.prototype.updatePinList=function(e){var t=this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[];t.includes(e)||(t.push(e),this.setItem("pinList",JSON.stringify(t)))},e.prototype.pinExists=function(e){return(this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[]).includes(e)},e.prototype.clearPinList=function(){this.removeItem("pinList")},e.prototype.clear=function(){var e;null===(e=this.storage)||void 0===e||e.clear()},e}()),s=function(s){var u,c,m=s.rds,p=s.tracker,v=s.locale,g=s.legals,f=s.buttonId,b=s.buttonClassName,h=s.formattedMessage,E=s.onChange,C=s.pinMaxLength,I=void 0===C?6:C,y=s.pinMinLength,N=void 0===y?4:y,P=s.renderTopContent,S=s.pinEntryLabel,L=s.wrongPinMessage,w=s.placeholder,k=s.buttonLabel,M=s.renderBottomContent,T=s.buttonDisabled,O=s.pageConfigs,x=s.onButtonClick,D=e(t.useState(""),2),B=D[0],F=D[1],W=e(t.useState(""),2),A=W[0],j=W[1],q=e(t.useState(!1),2),J=q[0],U=q[1],R=e(t.useState(!1),2),_=R[0],V=R[1],Y=function(){var e,t,n,o,i,l,a,r;return(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)?(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.blockedPin)||void 0===o?void 0:o.includes(A))||(null===(l=null===(i=null==O?void 0:O.pin)||void 0===i?void 0:i.shortCodes)||void 0===l?void 0:l.includes(A)):null===(r=null===(a=null==O?void 0:O.pin)||void 0===a?void 0:a.blockedPin)||void 0===r?void 0:r.includes(A)}(),z=A.length>=N&&A.length<=I&&!Y;n((function(){if("OTPCredential"in window){console.log("WebOTP supported");var e=function(){var e=document.querySelector('input[autocomplete="one-time-code"]');if(e){var t=new AbortController,n=e.closest("form");n&&n.addEventListener("submit",(function(){t.abort()})),navigator.credentials.get({otp:{transport:["sms"]},signal:t.signal}).then((function(t){console.log("WebOTP supported - credential",t);var n=t;console.log("WebOTP supported - otp",n),e.value=n.code,null==p||p.customEvent("WebOTP-Autofill","autofill","PinAutofilled",{pin:n.code}),j(n.code),setTimeout((function(){var e=document.querySelector("form"),t=document.getElementById(f||"pin-submit-button");null==e||e.requestSubmit(t)}),150)})).catch((function(e){console.log("WebOTP supported - err",e)}))}};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e()}else console.log("WebOTP not supported v2")}),[]),n((function(){E&&E(A)}),[A,E]),n((function(){var e;"InvalidPIN"===(null===(e=null==m?void 0:m.error)||void 0===e?void 0:e.errorType)&&r.updatePinList(A)}),[m]),n((function(){var e,t,n,o;(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)&&(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.shortCodes)||void 0===o?void 0:o.includes(A))&&V(!0)}),[A]);return t.createElement("label",{htmlFor:"pin-input"},P,t.createElement("p",{className:"pinEntryLabel"},S),B&&t.createElement("p",{className:"wrongPinMessage"},"".concat(B," ")," ",L),t.createElement("div",{className:"pin-wrapper"},t.createElement("div",{className:"pin-input ".concat(J&&!z?null==O?void 0:O.inputFocusAnimation:"")},t.createElement("div",{className:"pin"}),t.createElement("input",{id:"pin-input",className:"text-input",type:"text",placeholder:w,value:A,pattern:"[0-9]*",inputMode:"numeric",maxLength:I,minLength:N,autoComplete:"one-time-code",onChange:function(e){j(e.target.value.replace(/[^0-9]/g,""))}})),(null===(c=null===(u=null==O?void 0:O.pin)||void 0===u?void 0:u.blockedPin)||void 0===c?void 0:c.includes(A))&&t.createElement("p",{className:"blocked-pin-message"},null==h?void 0:h({id:"blockedPinMessage",defaultMessage:"This is not a pin code, check your SMS"}),null==p?void 0:p.recedeInFlow("tallyman.v1-pin","INVALID_PIN_ENTRY",A)),t.createElement(o,{type:"submit",id:f||"pin-submit-button",className:"btn ".concat(b||""),disabled:T||(null==O?void 0:O.isDisableButtonIfInvalid)&&!z,onClick:function(e){U((function(e){return!e})),(null==O?void 0:O.isCheckWrongPinReEntry)&&r.pinExists(A)&&(F(A),setTimeout((function(){a.triggerFocusArea()}),100),j(""),1)?e.preventDefault():x&&z&&(e.preventDefault(),x(e))}},k)),(null==O?void 0:O.isNewLegal)?t.createElement(i,{pageConfigs:O,formattedMessage:h}):t.createElement(l,{className:"price-point",legals:g||[],locale:v||"en"}),M,_&&t.createElement(d,{pageConfigs:O,formattedMessage:h,onConfirm:function(){V(!1)}}))},d=function(e){var n,o,i=e.pageConfigs,l=e.formattedMessage,a=e.onConfirm;return t.createElement("div",{className:"alert-dialog"},t.createElement("div",{className:"alert-dialog-body"},t.createElement("div",{className:"alert-dialog-close",onClick:a},"✕"),t.createElement("div",null,(null===(n=null==i?void 0:i.pin)||void 0===n?void 0:n.shortCodeInstructionUrl)&&t.createElement("img",{src:null===(o=null==i?void 0:i.pin)||void 0===o?void 0:o.shortCodeInstructionUrl,alt:"shortCodeInstructionUrl",className:"alert-dialog-image"}),t.createElement("div",{className:"alert-dialog-title"},null==l?void 0:l({id:"smsCodeErrorTitle",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("div",{className:"alert-dialog-content"},null==l?void 0:l({id:"smsCodeErrorContent",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("button",{type:"button",onClick:a,className:"alert-dialog-button"},null==l?void 0:l({id:"smsCodeErrorConfirmButtonText",defaultMessage:"Ok!"})))))};export{s as PinEntryForm};
|
|
2
2
|
//# sourceMappingURL=PinEntryForm.js.map
|
package/dist/PinEntryForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinEntryForm.js","sources":["../src/Services/storage.ts","../src/PinEntryForm/PinEntryForm.tsx"],"sourcesContent":["export class StorageService {\n private storage: any | null = null;\n\n constructor() {\n if (typeof window !== 'undefined') {\n try {\n // Test if localStorage is accessible\n window.localStorage.setItem('test', 'test');\n window.localStorage.removeItem('test');\n this.storage = window.localStorage;\n } catch (error) {\n // localStorage is not available (SecurityError, etc.)\n console.warn('localStorage is not available, falling back to in-memory storage:', error);\n this.storage = StorageService.createFallbackStorage();\n }\n }\n }\n\n private static createFallbackStorage() {\n const fallbackStorage: { [key: string]: string } = {};\n return {\n setItem: (key: string, value: string) => {\n fallbackStorage[key] = value;\n },\n getItem: (key: string) => fallbackStorage[key] || null,\n removeItem: (key: string) => {\n delete fallbackStorage[key];\n },\n clear: () => {\n Object.keys(fallbackStorage).forEach((key) => delete fallbackStorage[key]);\n }\n };\n }\n\n setItem(key: string, value: string) {\n this.storage?.setItem(key, value);\n }\n\n getItem(key: string): string | null {\n return this.storage?.getItem(key) || null;\n }\n\n removeItem(key: string) {\n this.storage?.removeItem(key);\n }\n\n updatePinList(pin: string) {\n const pinList = this.getItem('pinList') ? JSON.parse(this.getItem('pinList') || '[]') : [];\n if (!pinList.includes(pin)) {\n pinList.push(pin);\n this.setItem('pinList', JSON.stringify(pinList));\n }\n }\n\n pinExists(pin: string): boolean {\n const pinList = this.getItem('pinList') ? JSON.parse(this.getItem('pinList') || '[]') : [];\n return pinList.includes(pin);\n }\n\n clearPinList() {\n this.removeItem('pinList');\n }\n\n clear() {\n this.storage?.clear();\n }\n}\n\nexport const storageService = new StorageService();\n","import React, { useEffect } from 'react';\nimport { Button } from '../Button/Button';\nimport { IPageConfigs } from '../custom-types';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { FocusAreaService } from '../Services/focus';\nimport { storageService } from '../Services/storage';\nimport { IPinEntryFormProps } from './PinEntryForm.types';\nimport ConsentAcceptanceCheck from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\n\nexport const PinEntryForm = (props: IPinEntryFormProps) => {\n const {\n rds,\n tracker,\n locale,\n legals,\n buttonId,\n buttonClassName,\n formattedMessage,\n onChange,\n pinMaxLength = 6,\n pinMinLength = 4,\n renderTopContent,\n pinEntryLabel,\n wrongPinMessage,\n placeholder,\n buttonLabel,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n onButtonClick\n } = props;\n\n const [wrongPin, setWrongPin] = React.useState('');\n const [pin, setPin] = React.useState('');\n const [isFocused, setIsFocused] = React.useState(false);\n const [isAlertDialogOpen, setIsAlertDialogOpen] = React.useState(false);\n const isInBlockedPin = (() => {\n if (pageConfigs?.pin?.shortCodes?.length) {\n return pageConfigs?.pin?.blockedPin?.includes(pin) || pageConfigs?.pin?.shortCodes?.includes(pin);\n }\n return pageConfigs?.pin?.blockedPin?.includes(pin);\n })();\n const isValid = pin.length >= pinMinLength && pin.length <= pinMaxLength && !isInBlockedPin;\n\n useEffect(() => {\n // Feature detection\n if ('OTPCredential' in window) {\n console.log('WebOTP supported');\n const handleWebOTP = () => {\n const input = document.querySelector<HTMLInputElement>('input[autocomplete=\"one-time-code\"]');\n if (!input) return;\n // Cancel the WebOTP API if the form is submitted manually.\n const ac = new AbortController();\n const form = input.closest('form');\n if (form) {\n form.addEventListener('submit', () => {\n // Cancel the WebOTP API.\n ac.abort();\n });\n }\n // Invoke the WebOTP API\n navigator.credentials\n .get({\n otp: { transport: ['sms'] },\n signal: ac.signal\n })\n .then((credential) => {\n console.log('WebOTP supported - credential', credential);\n const otp = credential as OTPCredential;\n console.log('WebOTP supported - otp', otp);\n input.value = otp.code;\n tracker?.customEvent('WebOTP-Autofill', 'autofill', 'PinAutofilled', {\n pin: otp.code\n });\n\n setPin(otp.code);\n\n setTimeout(() => {\n const form = document.querySelector('form');\n const btn = document.getElementById('pin-submit-button');\n form?.requestSubmit(btn);\n }, 150);\n })\n .catch((err) => {\n console.log('WebOTP supported - err', err);\n });\n };\n\n if (document.readyState === 'loading') {\n window.addEventListener('DOMContentLoaded', handleWebOTP);\n } else {\n handleWebOTP();\n }\n } else {\n console.log('WebOTP not supported v2');\n }\n }, []);\n\n\n useEffect(() => {\n if (onChange) {\n onChange(pin);\n }\n }, [pin, onChange]);\n\n useEffect(() => {\n if (rds?.error?.errorType === 'InvalidPIN') {\n storageService.updatePinList(pin);\n }\n }, [rds]);\n\n useEffect(() => {\n if (pageConfigs?.pin?.shortCodes?.length && pageConfigs?.pin?.shortCodes?.includes(pin)) {\n setIsAlertDialogOpen(true);\n }\n }, [pin]);\n\n const isWrongPinReEntry = () => {\n if (storageService.pinExists(pin)) {\n setWrongPin(pin);\n setTimeout(() => {\n FocusAreaService.triggerFocusArea();\n }, 100);\n setPin('');\n return true;\n }\n return false;\n };\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n setIsFocused((prevState) => !prevState);\n\n if (pageConfigs?.isCheckWrongPinReEntry && isWrongPinReEntry()) {\n return;\n }\n\n if (onButtonClick && isValid) {\n onButtonClick(e);\n }\n };\n\n return (\n <label htmlFor=\"pin-input\">\n {renderTopContent}\n\n <p className=\"pinEntryLabel\">{pinEntryLabel}</p>\n {wrongPin && (\n <p className=\"wrongPinMessage\">\n {`${wrongPin} `} {wrongPinMessage}\n </p>\n )}\n\n <div className=\"pin-wrapper\">\n <div className={`pin-input ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}>\n <div className=\"pin\" />\n <input\n id=\"pin-input\"\n className=\"text-input\"\n type=\"text\"\n placeholder={placeholder}\n value={pin}\n pattern=\"[0-9]*\"\n inputMode=\"numeric\"\n maxLength={pinMaxLength}\n minLength={pinMinLength}\n autoComplete=\"one-time-code\"\n onChange={(ev) => {\n setPin(ev.target.value.replace(/[^0-9]/g, ''));\n }}\n />\n </div>\n\n {pageConfigs?.pin?.blockedPin?.includes(pin) && (\n <p className=\"blocked-pin-message\">\n {formattedMessage?.({ id: 'blockedPinMessage', defaultMessage: 'This is not a pin code, check your SMS' })}\n {tracker?.recedeInFlow('tallyman.v1-pin', 'INVALID_PIN_ENTRY', pin) as React.ReactNode}\n </p>\n )}\n\n <Button\n type=\"submit\"\n id={buttonId || 'pin-submit-button'}\n className={`btn ${buttonClassName || ''}`}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={handleButtonClick}\n >\n {buttonLabel}\n </Button>\n </div>\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n {renderBottomContent}\n {isAlertDialogOpen && (\n <AlertDialog\n pageConfigs={pageConfigs as IPageConfigs}\n formattedMessage={formattedMessage as (props: { id: string; defaultMessage: string }) => React.ReactNode}\n onConfirm={() => {\n setIsAlertDialogOpen(false);\n }}\n />\n )}\n\n {/* {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )} */}\n </label>\n );\n};\n\nconst AlertDialog = ({\n pageConfigs,\n formattedMessage,\n onConfirm\n}: {\n pageConfigs: IPageConfigs;\n formattedMessage: (props: { id: string; defaultMessage: string }) => React.ReactNode;\n onConfirm: () => void;\n}) => (\n <div className=\"alert-dialog\">\n <div className=\"alert-dialog-body\">\n <div className=\"alert-dialog-close\" onClick={onConfirm}>\n ✕\n </div>\n <div>\n {pageConfigs?.pin?.shortCodeInstructionUrl && (\n <img\n src={pageConfigs?.pin?.shortCodeInstructionUrl}\n alt=\"shortCodeInstructionUrl\"\n className=\"alert-dialog-image\"\n />\n )}\n <div className=\"alert-dialog-title\">\n {formattedMessage?.({ id: 'smsCodeErrorTitle', defaultMessage: 'This is not a pin code, check your SMS' })}\n </div>\n <div className=\"alert-dialog-content\">\n {formattedMessage?.({ id: 'smsCodeErrorContent', defaultMessage: 'This is not a pin code, check your SMS' })}\n </div>\n <button type=\"button\" onClick={onConfirm} className=\"alert-dialog-button\">\n {formattedMessage?.({ id: 'smsCodeErrorConfirmButtonText', defaultMessage: 'Ok!' })}\n </button>\n </div>\n </div>\n </div>\n);\n"],"names":["storageService","StorageService","this","storage","window","localStorage","setItem","removeItem","error","console","warn","createFallbackStorage","fallbackStorage","key","value","getItem","clear","Object","keys","forEach","prototype","_a","updatePinList","pin","pinList","JSON","parse","includes","push","stringify","pinExists","clearPinList","PinEntryForm","props","rds","tracker","locale","legals","buttonId","buttonClassName","formattedMessage","onChange","_c","pinMaxLength","_d","pinMinLength","renderTopContent","pinEntryLabel","wrongPinMessage","placeholder","buttonLabel","renderBottomContent","buttonDisabled","pageConfigs","onButtonClick","_e","__read","React","useState","wrongPin","setWrongPin","_f","setPin","_g","isFocused","setIsFocused","_h","isAlertDialogOpen","setIsAlertDialogOpen","isInBlockedPin","_b","shortCodes","length","blockedPin","isValid","useEffect","log","handleWebOTP","input","document","querySelector","ac","AbortController","form","closest","addEventListener","abort","navigator","credentials","get","otp","transport","signal","then","credential","code","customEvent","setTimeout","btn","getElementById","requestSubmit","catch","err","readyState","errorType","createElement","htmlFor","className","concat","inputFocusAnimation","id","type","pattern","inputMode","maxLength","minLength","autoComplete","ev","target","replace","defaultMessage","recedeInFlow","Button","disabled","isDisableButtonIfInvalid","onClick","e","prevState","isCheckWrongPinReEntry","FocusAreaService","triggerFocusArea","isNewLegal","DynamicPricePoint","PricePoint","AlertDialog","onConfirm","shortCodeInstructionUrl","src","alt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PinEntryForm.js","sources":["../src/Services/storage.ts","../src/PinEntryForm/PinEntryForm.tsx"],"sourcesContent":["export class StorageService {\n private storage: any | null = null;\n\n constructor() {\n if (typeof window !== 'undefined') {\n try {\n // Test if localStorage is accessible\n window.localStorage.setItem('test', 'test');\n window.localStorage.removeItem('test');\n this.storage = window.localStorage;\n } catch (error) {\n // localStorage is not available (SecurityError, etc.)\n console.warn('localStorage is not available, falling back to in-memory storage:', error);\n this.storage = StorageService.createFallbackStorage();\n }\n }\n }\n\n private static createFallbackStorage() {\n const fallbackStorage: { [key: string]: string } = {};\n return {\n setItem: (key: string, value: string) => {\n fallbackStorage[key] = value;\n },\n getItem: (key: string) => fallbackStorage[key] || null,\n removeItem: (key: string) => {\n delete fallbackStorage[key];\n },\n clear: () => {\n Object.keys(fallbackStorage).forEach((key) => delete fallbackStorage[key]);\n }\n };\n }\n\n setItem(key: string, value: string) {\n this.storage?.setItem(key, value);\n }\n\n getItem(key: string): string | null {\n return this.storage?.getItem(key) || null;\n }\n\n removeItem(key: string) {\n this.storage?.removeItem(key);\n }\n\n updatePinList(pin: string) {\n const pinList = this.getItem('pinList') ? JSON.parse(this.getItem('pinList') || '[]') : [];\n if (!pinList.includes(pin)) {\n pinList.push(pin);\n this.setItem('pinList', JSON.stringify(pinList));\n }\n }\n\n pinExists(pin: string): boolean {\n const pinList = this.getItem('pinList') ? JSON.parse(this.getItem('pinList') || '[]') : [];\n return pinList.includes(pin);\n }\n\n clearPinList() {\n this.removeItem('pinList');\n }\n\n clear() {\n this.storage?.clear();\n }\n}\n\nexport const storageService = new StorageService();\n","import React, { useEffect } from 'react';\nimport { Button } from '../Button/Button';\nimport { IPageConfigs } from '../custom-types';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { FocusAreaService } from '../Services/focus';\nimport { storageService } from '../Services/storage';\nimport { IPinEntryFormProps } from './PinEntryForm.types';\nimport ConsentAcceptanceCheck from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\n\nexport const PinEntryForm = (props: IPinEntryFormProps) => {\n const {\n rds,\n tracker,\n locale,\n legals,\n buttonId,\n buttonClassName,\n formattedMessage,\n onChange,\n pinMaxLength = 6,\n pinMinLength = 4,\n renderTopContent,\n pinEntryLabel,\n wrongPinMessage,\n placeholder,\n buttonLabel,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n onButtonClick\n } = props;\n\n const [wrongPin, setWrongPin] = React.useState('');\n const [pin, setPin] = React.useState('');\n const [isFocused, setIsFocused] = React.useState(false);\n const [isAlertDialogOpen, setIsAlertDialogOpen] = React.useState(false);\n const isInBlockedPin = (() => {\n if (pageConfigs?.pin?.shortCodes?.length) {\n return pageConfigs?.pin?.blockedPin?.includes(pin) || pageConfigs?.pin?.shortCodes?.includes(pin);\n }\n return pageConfigs?.pin?.blockedPin?.includes(pin);\n })();\n const isValid = pin.length >= pinMinLength && pin.length <= pinMaxLength && !isInBlockedPin;\n\n useEffect(() => {\n // Feature detection\n if ('OTPCredential' in window) {\n console.log('WebOTP supported');\n const handleWebOTP = () => {\n const input = document.querySelector<HTMLInputElement>('input[autocomplete=\"one-time-code\"]');\n if (!input) return;\n // Cancel the WebOTP API if the form is submitted manually.\n const ac = new AbortController();\n const form = input.closest('form');\n if (form) {\n form.addEventListener('submit', () => {\n // Cancel the WebOTP API.\n ac.abort();\n });\n }\n // Invoke the WebOTP API\n navigator.credentials\n .get({\n otp: { transport: ['sms'] },\n signal: ac.signal\n })\n .then((credential) => {\n console.log('WebOTP supported - credential', credential);\n const otp = credential as OTPCredential;\n console.log('WebOTP supported - otp', otp);\n input.value = otp.code;\n tracker?.customEvent('WebOTP-Autofill', 'autofill', 'PinAutofilled', {\n pin: otp.code\n });\n\n setPin(otp.code);\n\n setTimeout(() => {\n const form = document.querySelector('form');\n const btn = document.getElementById(buttonId || 'pin-submit-button');\n form?.requestSubmit(btn);\n }, 150);\n })\n .catch((err) => {\n console.log('WebOTP supported - err', err);\n });\n };\n\n if (document.readyState === 'loading') {\n window.addEventListener('DOMContentLoaded', handleWebOTP);\n } else {\n handleWebOTP();\n }\n } else {\n console.log('WebOTP not supported v2');\n }\n }, []);\n\n\n useEffect(() => {\n if (onChange) {\n onChange(pin);\n }\n }, [pin, onChange]);\n\n useEffect(() => {\n if (rds?.error?.errorType === 'InvalidPIN') {\n storageService.updatePinList(pin);\n }\n }, [rds]);\n\n useEffect(() => {\n if (pageConfigs?.pin?.shortCodes?.length && pageConfigs?.pin?.shortCodes?.includes(pin)) {\n setIsAlertDialogOpen(true);\n }\n }, [pin]);\n\n const isWrongPinReEntry = () => {\n if (storageService.pinExists(pin)) {\n setWrongPin(pin);\n setTimeout(() => {\n FocusAreaService.triggerFocusArea();\n }, 100);\n setPin('');\n return true;\n }\n return false;\n };\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n setIsFocused((prevState) => !prevState);\n\n if (pageConfigs?.isCheckWrongPinReEntry && isWrongPinReEntry()) {\n e.preventDefault();\n return;\n }\n\n if (onButtonClick && isValid) {\n e.preventDefault();\n onButtonClick(e);\n }\n };\n\n return (\n <label htmlFor=\"pin-input\">\n {renderTopContent}\n\n <p className=\"pinEntryLabel\">{pinEntryLabel}</p>\n {wrongPin && (\n <p className=\"wrongPinMessage\">\n {`${wrongPin} `} {wrongPinMessage}\n </p>\n )}\n\n <div className=\"pin-wrapper\">\n <div className={`pin-input ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}>\n <div className=\"pin\" />\n <input\n id=\"pin-input\"\n className=\"text-input\"\n type=\"text\"\n placeholder={placeholder}\n value={pin}\n pattern=\"[0-9]*\"\n inputMode=\"numeric\"\n maxLength={pinMaxLength}\n minLength={pinMinLength}\n autoComplete=\"one-time-code\"\n onChange={(ev) => {\n setPin(ev.target.value.replace(/[^0-9]/g, ''));\n }}\n />\n </div>\n\n {pageConfigs?.pin?.blockedPin?.includes(pin) && (\n <p className=\"blocked-pin-message\">\n {formattedMessage?.({ id: 'blockedPinMessage', defaultMessage: 'This is not a pin code, check your SMS' })}\n {tracker?.recedeInFlow('tallyman.v1-pin', 'INVALID_PIN_ENTRY', pin) as React.ReactNode}\n </p>\n )}\n\n <Button\n type=\"submit\"\n id={buttonId || 'pin-submit-button'}\n className={`btn ${buttonClassName || ''}`}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={handleButtonClick}\n >\n {buttonLabel}\n </Button>\n </div>\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n {renderBottomContent}\n {isAlertDialogOpen && (\n <AlertDialog\n pageConfigs={pageConfigs as IPageConfigs}\n formattedMessage={formattedMessage as (props: { id: string; defaultMessage: string }) => React.ReactNode}\n onConfirm={() => {\n setIsAlertDialogOpen(false);\n }}\n />\n )}\n\n {/* {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )} */}\n </label>\n );\n};\n\nconst AlertDialog = ({\n pageConfigs,\n formattedMessage,\n onConfirm\n}: {\n pageConfigs: IPageConfigs;\n formattedMessage: (props: { id: string; defaultMessage: string }) => React.ReactNode;\n onConfirm: () => void;\n}) => (\n <div className=\"alert-dialog\">\n <div className=\"alert-dialog-body\">\n <div className=\"alert-dialog-close\" onClick={onConfirm}>\n ✕\n </div>\n <div>\n {pageConfigs?.pin?.shortCodeInstructionUrl && (\n <img\n src={pageConfigs?.pin?.shortCodeInstructionUrl}\n alt=\"shortCodeInstructionUrl\"\n className=\"alert-dialog-image\"\n />\n )}\n <div className=\"alert-dialog-title\">\n {formattedMessage?.({ id: 'smsCodeErrorTitle', defaultMessage: 'This is not a pin code, check your SMS' })}\n </div>\n <div className=\"alert-dialog-content\">\n {formattedMessage?.({ id: 'smsCodeErrorContent', defaultMessage: 'This is not a pin code, check your SMS' })}\n </div>\n <button type=\"button\" onClick={onConfirm} className=\"alert-dialog-button\">\n {formattedMessage?.({ id: 'smsCodeErrorConfirmButtonText', defaultMessage: 'Ok!' })}\n </button>\n </div>\n </div>\n </div>\n);\n"],"names":["storageService","StorageService","this","storage","window","localStorage","setItem","removeItem","error","console","warn","createFallbackStorage","fallbackStorage","key","value","getItem","clear","Object","keys","forEach","prototype","_a","updatePinList","pin","pinList","JSON","parse","includes","push","stringify","pinExists","clearPinList","PinEntryForm","props","rds","tracker","locale","legals","buttonId","buttonClassName","formattedMessage","onChange","_c","pinMaxLength","_d","pinMinLength","renderTopContent","pinEntryLabel","wrongPinMessage","placeholder","buttonLabel","renderBottomContent","buttonDisabled","pageConfigs","onButtonClick","_e","__read","React","useState","wrongPin","setWrongPin","_f","setPin","_g","isFocused","setIsFocused","_h","isAlertDialogOpen","setIsAlertDialogOpen","isInBlockedPin","_b","shortCodes","length","blockedPin","isValid","useEffect","log","handleWebOTP","input","document","querySelector","ac","AbortController","form","closest","addEventListener","abort","navigator","credentials","get","otp","transport","signal","then","credential","code","customEvent","setTimeout","btn","getElementById","requestSubmit","catch","err","readyState","errorType","createElement","htmlFor","className","concat","inputFocusAnimation","id","type","pattern","inputMode","maxLength","minLength","autoComplete","ev","target","replace","defaultMessage","recedeInFlow","Button","disabled","isDisableButtonIfInvalid","onClick","e","prevState","isCheckWrongPinReEntry","FocusAreaService","triggerFocusArea","preventDefault","isNewLegal","DynamicPricePoint","PricePoint","AlertDialog","onConfirm","shortCodeInstructionUrl","src","alt"],"mappings":"yQAAA,IAoEaA,EAAiB,IApE9B,WAGE,SAAAC,IACE,GAHMC,KAAOC,QAAe,KAGN,oBAAXC,OACT,IAEEA,OAAOC,aAAaC,QAAQ,OAAQ,QACpCF,OAAOC,aAAaE,WAAW,QAC/BL,KAAKC,QAAUC,OAAOC,YACvB,CAAC,MAAOG,GAEPC,QAAQC,KAAK,oEAAqEF,GAClFN,KAAKC,QAAUF,EAAeU,uBAC/B,CAEJ,CAkDH,OAhDiBV,EAAAU,sBAAf,WACE,IAAMC,EAA6C,CAAA,EACnD,MAAO,CACLN,QAAS,SAACO,EAAaC,GACrBF,EAAgBC,GAAOC,CACxB,EACDC,QAAS,SAACF,GAAgB,OAAAD,EAAgBC,IAAQ,IAAI,EACtDN,WAAY,SAACM,UACJD,EAAgBC,EACxB,EACDG,MAAO,WACLC,OAAOC,KAAKN,GAAiBO,SAAQ,SAACN,GAAQ,cAAOD,EAAgBC,EAAI,GAC1E,IAILZ,EAAAmB,UAAAd,QAAA,SAAQO,EAAaC,SACL,QAAdO,EAAAnB,KAAKC,eAAS,IAAAkB,GAAAA,EAAAf,QAAQO,EAAKC,IAG7Bb,EAAOmB,UAAAL,QAAP,SAAQF,SACN,OAAmB,QAAZQ,EAAAnB,KAAKC,eAAO,IAAAkB,OAAA,EAAAA,EAAEN,QAAQF,KAAQ,MAGvCZ,EAAUmB,UAAAb,WAAV,SAAWM,SACG,QAAZQ,EAAAnB,KAAKC,eAAO,IAAAkB,GAAAA,EAAEd,WAAWM,IAG3BZ,EAAamB,UAAAE,cAAb,SAAcC,GACZ,IAAMC,EAAUtB,KAAKa,QAAQ,WAAaU,KAAKC,MAAMxB,KAAKa,QAAQ,YAAc,MAAQ,GACnFS,EAAQG,SAASJ,KACpBC,EAAQI,KAAKL,GACbrB,KAAKI,QAAQ,UAAWmB,KAAKI,UAAUL,MAI3CvB,EAASmB,UAAAU,UAAT,SAAUP,GAER,OADgBrB,KAAKa,QAAQ,WAAaU,KAAKC,MAAMxB,KAAKa,QAAQ,YAAc,MAAQ,IACzEY,SAASJ,IAG1BtB,EAAAmB,UAAAW,aAAA,WACE7B,KAAKK,WAAW,YAGlBN,EAAAmB,UAAAJ,MAAA,iBACgB,QAAdK,EAAAnB,KAAKC,eAAS,IAAAkB,GAAAA,EAAAL,SAEjBf,CAAD,KCxDa+B,EAAe,SAACC,WAEzBC,EAmBED,EAAKC,IAlBPC,EAkBEF,EAAKE,QAjBPC,EAiBEH,EAAKG,OAhBPC,EAgBEJ,EAhBII,OACNC,EAeEL,EAAKK,SAdPC,EAcEN,EAdaM,gBACfC,EAaEP,EAbcO,iBAChBC,EAYER,EAZMQ,SACRC,EAWET,EAXcU,aAAhBA,OAAe,IAAAD,EAAA,EAACA,EAChBE,EAUEX,eAVFY,aAAe,EAACD,EAChBE,EASEb,EAAKa,iBARPC,EAQEd,EAAKc,cAPPC,EAOEf,EAPae,gBACfC,EAMEhB,EAAKgB,YALPC,EAKEjB,EALSiB,YACXC,EAIElB,EAJiBkB,oBACnBC,EAGEnB,EAHYmB,eACdC,EAEEpB,EAAKoB,YADPC,EACErB,EAAKqB,cAEHC,EAAAC,EAA0BC,EAAMC,SAAS,IAAG,GAA3CC,EAAQJ,EAAA,GAAEK,OACXC,EAAAL,EAAgBC,EAAMC,SAAS,IAAG,GAAjCnC,EAAGsC,EAAA,GAAEC,OACNC,EAAAP,EAA4BC,EAAMC,UAAS,GAAM,GAAhDM,EAASD,EAAA,GAAEE,OACZC,EAAAV,EAA4CC,EAAMC,UAAS,GAAM,GAAhES,EAAiBD,EAAA,GAAEE,OACpBC,EAAiB,+BACrB,OAAgC,QAA5BC,EAAgB,QAAhBjD,EAAAgC,aAAW,EAAXA,EAAa9B,WAAG,IAAAF,OAAA,EAAAA,EAAEkD,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,SACK,QAA9B5B,EAAkB,QAAlBF,EAAAW,aAAW,EAAXA,EAAa9B,WAAK,IAAAmB,OAAA,EAAAA,EAAA+B,kBAAY,IAAA7B,OAAA,EAAAA,EAAAjB,SAASJ,cAAQsC,EAAkB,UAAlBR,aAAW,EAAXA,EAAa9B,WAAK,IAAAgC,OAAA,EAAAA,EAAAgB,iCAAY5C,SAASJ,IAE1D,UAAd,QAAhBwC,EAAAV,eAAAA,EAAa9B,WAAG,IAAAwC,OAAA,EAAAA,EAAEU,kBAAY,IAAAP,OAAA,EAAAA,EAAAvC,SAASJ,EAC/C,CALsB,GAMjBmD,EAAUnD,EAAIiD,QAAU3B,GAAgBtB,EAAIiD,QAAU7B,IAAiB0B,EAE7EM,GAAU,WAER,GAAI,kBAAmBvE,OAAQ,CAC7BK,QAAQmE,IAAI,oBACZ,IAAMC,EAAe,WACnB,IAAMC,EAAQC,SAASC,cAAgC,uCACvD,GAAKF,EAAL,CAEA,IAAMG,EAAK,IAAIC,gBACTC,EAAOL,EAAMM,QAAQ,QACvBD,GACFA,EAAKE,iBAAiB,UAAU,WAE9BJ,EAAGK,OACL,IAGFC,UAAUC,YACPC,IAAI,CACHC,IAAK,CAAEC,UAAW,CAAC,QACnBC,OAAQX,EAAGW,SAEZC,MAAK,SAACC,GACLrF,QAAQmE,IAAI,gCAAiCkB,GAC7C,IAAMJ,EAAMI,EACZrF,QAAQmE,IAAI,yBAA0Bc,GACtCZ,EAAMhE,MAAQ4E,EAAIK,KAClB5D,SAAAA,EAAS6D,YAAY,kBAAmB,WAAY,gBAAiB,CACnEzE,IAAKmE,EAAIK,OAGXjC,EAAO4B,EAAIK,MAEXE,YAAW,WACT,IAAMd,EAAOJ,SAASC,cAAc,QAC9BkB,EAAMnB,SAASoB,eAAe7D,GAAY,qBAChD6C,SAAAA,EAAMiB,cAAcF,EACrB,GAAE,IACL,IACCG,OAAM,SAACC,GACN7F,QAAQmE,IAAI,yBAA0B0B,EACxC,GAnCiB,CAoCrB,EAE4B,YAAxBvB,SAASwB,WACXnG,OAAOiF,iBAAiB,mBAAoBR,GAE5CA,GAEH,MACCpE,QAAQmE,IAAI,0BAEf,GAAE,IAGHD,GAAU,WACJlC,GACFA,EAASlB,EAEb,GAAG,CAACA,EAAKkB,IAETkC,GAAU,iBACsB,gBAAhB,QAAVtD,EAAAa,aAAG,EAAHA,EAAK1B,aAAK,IAAAa,OAAA,EAAAA,EAAEmF,YACdxG,EAAesB,cAAcC,EAEjC,GAAG,CAACW,IAEJyC,GAAU,wBACwB,QAA5BL,EAAgB,QAAhBjD,EAAAgC,aAAW,EAAXA,EAAa9B,WAAG,IAAAF,OAAA,EAAAA,EAAEkD,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,UAAsC,QAA5B5B,EAAgB,QAAhBF,EAAAW,aAAA,EAAAA,EAAa9B,WAAG,IAAAmB,OAAA,EAAAA,EAAE6B,kBAAU,IAAA3B,OAAA,EAAAA,EAAEjB,SAASJ,KACjF6C,GAAqB,EAEzB,GAAG,CAAC7C,IA4BJ,OACEkC,EAAAgD,cAAA,QAAA,CAAOC,QAAQ,aACZ5D,EAEDW,EAAAgD,cAAA,IAAA,CAAGE,UAAU,iBAAiB5D,GAC7BY,GACCF,EAAGgD,cAAA,IAAA,CAAAE,UAAU,mBACV,GAAGC,OAAAjD,EAAW,SAAGX,GAItBS,EAAKgD,cAAA,MAAA,CAAAE,UAAU,eACblD,EAAKgD,cAAA,MAAA,CAAAE,UAAW,aAAaC,OAAA5C,IAAcU,EAAUrB,eAAAA,EAAawD,oBAAsB,KACtFpD,EAAKgD,cAAA,MAAA,CAAAE,UAAU,QACflD,EAAAgD,cAAA,QAAA,CACEK,GAAG,YACHH,UAAU,aACVI,KAAK,OACL9D,YAAaA,EACbnC,MAAOS,EACPyF,QAAQ,SACRC,UAAU,UACVC,UAAWvE,EACXwE,UAAWtE,EACXuE,aAAa,gBACb3E,SAAU,SAAC4E,GACTvD,EAAOuD,EAAGC,OAAOxG,MAAMyG,QAAQ,UAAW,IAC3C,MAIwB,QAA5BjD,EAAgB,QAAhBjD,EAAAgC,eAAAA,EAAa9B,WAAG,IAAAF,OAAA,EAAAA,EAAEoD,kBAAU,IAAAH,OAAA,EAAAA,EAAE3C,SAASJ,KACtCkC,EAAAgD,cAAA,IAAA,CAAGE,UAAU,uBACVnE,aAAgB,EAAhBA,EAAmB,CAAEsE,GAAI,oBAAqBU,eAAgB,2CAC9DrF,aAAA,EAAAA,EAASsF,aAAa,kBAAmB,oBAAqBlG,IAInEkC,EAACgD,cAAAiB,GACCX,KAAK,SACLD,GAAIxE,GAAY,oBAChBqE,UAAW,OAAOC,OAAArE,GAAmB,IACrCoF,SAAUvE,IAAmBC,aAAA,EAAAA,EAAauE,4BAA6BlD,EACvEmD,QAzDkB,SAACC,GACzB7D,GAAa,SAAC8D,GAAc,OAACA,CAAS,KAElC1E,aAAW,EAAXA,EAAa2E,yBAdbhI,EAAe8B,UAAUP,KAC3BqC,EAAYrC,GACZ0E,YAAW,WACTgC,EAAiBC,kBAClB,GAAE,KACHpE,EAAO,IACA,GASPgE,EAAEK,iBAIA7E,GAAiBoB,IACnBoD,EAAEK,iBACF7E,EAAcwE,GAElB,GA+CS5E,KAGJG,aAAW,EAAXA,EAAa+E,YACZ3E,EAACgD,cAAA4B,GAAkBhF,YAAaA,EAAab,iBAAkBA,IAE/DiB,EAACgD,cAAA6B,GAAW3B,UAAU,cAActE,OAAQA,GAAU,GAAID,OAAQA,GAAU,OAE7Ee,EACAgB,GACCV,EAACgD,cAAA8B,GACClF,YAAaA,EACbb,iBAAkBA,EAClBgG,UAAW,WACTpE,GAAqB,EACvB,IA2BV,EAEMmE,EAAc,SAAClH,WACnBgC,gBACAb,EAAgBnB,EAAAmB,iBAChBgG,EAASnH,EAAAmH,UAKL,OACJ/E,EAAAgD,cAAA,MAAA,CAAKE,UAAU,gBACblD,EAAKgD,cAAA,MAAA,CAAAE,UAAU,qBACblD,EAAAgD,cAAA,MAAA,CAAKE,UAAU,qBAAqBkB,QAASW,GAEvC,KACN/E,EAAAgD,cAAA,MAAA,MACmB,QAAhBnC,EAAAjB,eAAAA,EAAa9B,WAAG,IAAA+C,OAAA,EAAAA,EAAEmE,0BACjBhF,EACEgD,cAAA,MAAA,CAAAiC,YAAKhG,EAAAW,aAAA,EAAAA,EAAa9B,0BAAKkH,wBACvBE,IAAI,0BACJhC,UAAU,uBAGdlD,EAAKgD,cAAA,MAAA,CAAAE,UAAU,sBACZnE,eAAAA,EAAmB,CAAEsE,GAAI,oBAAqBU,eAAgB,4CAEjE/D,EAAKgD,cAAA,MAAA,CAAAE,UAAU,wBACZnE,eAAAA,EAAmB,CAAEsE,GAAI,sBAAuBU,eAAgB,4CAEnE/D,EAAAgD,cAAA,SAAA,CAAQM,KAAK,SAASc,QAASW,EAAW7B,UAAU,uBACjDnE,aAAgB,EAAhBA,EAAmB,CAAEsE,GAAI,gCAAiCU,eAAgB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import*as e from"react";var r=function(r){var t=r.locale,a=r.className,n=void 0===a?"":a,o=r.legals,i=r.flow,l=r.dataQaId,c=void 0===l?"price-point":l,p=r.operator,d=o.filter((function(e){return e.flow===i})),s=(i?d:o).reduce((function(e,r){return e[r.language]=r,e}),{}),u=(s[t]||"").price_point,m=(s[t]||"").operator_price_point;return e.createElement("div",{"data-qa-id":c,className:n||"price-point"},m&&p&&e.createElement("div",{dangerouslySetInnerHTML:{__html:m[p.toUpperCase()]}})||e.createElement("div",{dangerouslySetInnerHTML:{__html:u||""}}))};export{r as P};
|
|
2
|
-
//# sourceMappingURL=PricePoint-
|
|
2
|
+
//# sourceMappingURL=PricePoint-1cf6bde9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PricePoint-
|
|
1
|
+
{"version":3,"file":"PricePoint-1cf6bde9.js","sources":["../src/PricePoint/PricePoint.tsx"],"sourcesContent":["/* eslint-disable camelcase */\n/* eslint-disable react/no-danger */\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { ILegals } from '../Disclaimers/Disclaimers.types';\nimport { PricePointProps } from './PricePoint.types';\n\nexport const PricePoint = ({\n locale,\n className = '',\n legals,\n flow,\n dataQaId = 'price-point',\n operator\n}: PricePointProps) => {\n const filteredLegals = legals.filter((obj) => obj.flow === flow);\n\n const legalsArr = flow ? filteredLegals : legals;\n const arrayToObject = (array: ILegals[]) =>\n array.reduce((obj: { [key: string]: ILegals }, item) => {\n obj[item.language] = item;\n return obj;\n }, {});\n\n const legalsObject = arrayToObject(legalsArr);\n\n const { price_point } = legalsObject[locale] || '';\n const { operator_price_point } = legalsObject[locale] || '';\n return (\n <div data-qa-id={dataQaId} className={className || 'price-point'}>\n {(operator_price_point && operator && (\n <div dangerouslySetInnerHTML={{ __html: operator_price_point[operator.toUpperCase()] }} />\n )) || <div dangerouslySetInnerHTML={{ __html: price_point || '' }} />}\n </div>\n );\n};\n"],"names":["PricePoint","_a","locale","_b","className","legals","flow","_c","dataQaId","operator","filteredLegals","filter","obj","legalsObject","reduce","item","language","price_point","operator_price_point","React","dangerouslySetInnerHTML","__html","toUpperCase","createElement"],"mappings":"wBAOO,IAAMA,EAAa,SAACC,OACzBC,EAAMD,EAAAC,OACNC,EAAcF,EAAAG,UAAdA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAAMJ,EAAAI,OACNC,EAAIL,EAAAK,KACJC,EAAAN,EAAAO,SAAAA,aAAW,cAAaD,EACxBE,EAAQR,EAAAQ,SAEFC,EAAiBL,EAAOM,QAAO,SAACC,GAAQ,OAAAA,EAAIN,OAASA,CAAb,IASxCO,GAPYP,EAAOI,EAAiBL,GAElCS,QAAO,SAACF,EAAiCG,GAE7C,OADAH,EAAIG,EAAKC,UAAYD,EACdH,CACR,GAAE,CAAE,GAICK,GAAgBJ,EAAaX,IAAW,IAAEe,YAC1CC,GAAyBL,EAAaX,IAAW,IAAEgB,qBAC3D,OACEC,oCAAiBX,EAAUJ,UAAWA,GAAa,eAC/Cc,GAAwBT,GACxBU,uBAAKC,wBAAyB,CAAEC,OAAQH,EAAqBT,EAASa,mBAClEH,EAAKI,cAAA,MAAA,CAAAH,wBAAyB,CAAEC,OAAQJ,GAAe,MAGnE"}
|
package/dist/PricePoint.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{P as PricePoint}from"./PricePoint-
|
|
1
|
+
export{P as PricePoint}from"./PricePoint-1cf6bde9.js";import"react";
|
|
2
2
|
//# sourceMappingURL=PricePoint.js.map
|