{"version":3,"sources":["Loginlogo.png","Modal.js","PaymentForm.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","__webpack_require__","p","Modal","this","props","show","buttons","modalButtons","yesNo","react_default","a","createElement","style","display","justifyContent","paddingTop","paddingRight","className","onClick","onAccept","onClose","none","position","top","bottom","left","right","backgroundColor","padding","borderRadius","margin","minWidth","paddingBottom","paddingLeft","transform","zIndex","color","title","children","React","Component","ok","getUrlParameter","name","replace","results","RegExp","exec","window","location","search","decodeURIComponent","injectStripe","_useState","useState","_useState2","Object","slicedToArray","accountNo","setAccountNo","_useState3","_useState4","paymentAmount","setPaymentAmount","_useState5","_useState6","accountNoValid","setAccountNoValid","_useState7","_useState8","cardNumberValid","setCardNumberValid","_useState9","_useState10","cardNumberErrorMessage","setCardNumberErrorMessage","_useState11","_useState12","cardExpiryValid","setCardExpiryValid","_useState13","_useState14","cardExpiryErrorMessage","setCardExpiryErrorMessage","_useState15","_useState16","cardCVCValid","setCardCVCValid","_useState17","_useState18","cardCVCErrorMessage","setCardCVCErrorMessage","_useState19","_useState20","accountPatientName","setAccountPatientName","_useState21","_useState22","accountClinicName","setAccountClinicName","_useState23","_useState24","accountPatientEmail","setAccountPatientEmail","_useState25","_useState26","error","setError","_useState27","_useState28","errorMessage","setErrorMessage","_useState29","_useState30","showModal","setShowModal","_useState31","_useState32","submittingPayment","setSubmittingPayment","_useState33","_useState34","paymentCompleted","setPaymentCompleted","onAccountNoChange","_ref","asyncToGenerator","regenerator_default","mark","_callee","event","response","json","data","wrap","_context","prev","next","target","value","trim","length","fetch","method","headers","Content-Type","body","JSON","stringify","sent","d","found","firstName","lastName","clinic","email","stop","_x","apply","arguments","_ref2","_callee2","ev","result","_context2","stripe","createToken","token","id","success","message","t0","alert","_x2","header","href","toLowerCase","indexOf","reactTextMask_default","width","placeholder","onChange","guide","mask","number_format_default","decimalScale","fixedDecimalScale","thousandSeparator","allowNegative","prefix","onValueChange","values","formattedValue","es","assign","complete","base","fontSize","::placeholder","invalid","type","e","textTransform","src_Modal","concat","App","key","console","log","src","LoginLogo","alt","apiKey","src_PaymentForm","Date","getFullYear","Boolean","hostname","match","ReactDOM","render","src_App_0","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"4EAAAA,EAAAC,QAAiBC,EAAAC,EAAuB,8SCGlCC,mLAGF,IAAKC,KAAKC,MAAMC,KACd,OAAO,KAGT,IA0BIC,EA8CJ,OA5CEA,EADEH,KAAKC,MAAMG,eAAiBA,EAAaC,MAEzCC,EAAAC,EAAAC,cAAA,OACEC,MAAO,CACLC,QAAS,OACTC,eAAgB,SAChBC,WAAY,OACZC,aAAc,QAGhBP,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEI,aAAc,QAC1BP,EAAAC,EAAAC,cAAA,UAAQM,UAAU,kBAAkBC,QAASf,KAAKC,MAAMe,UAAxD,QAIFV,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,UAAQM,UAAU,kBAAkBC,QAASf,KAAKC,MAAMgB,SAAxD,QAQJX,EAAAC,EAAAC,cAAA,OACEC,MAAO,CACLC,QAAS,OACTC,eAAgB,SAChBC,WAAY,OACZC,aAAc,QAGhBP,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEI,aAAc,QAC1BP,EAAAC,EAAAC,cAAA,UAAQM,UAAU,kBAAkBC,QAASf,KAAKC,MAAMgB,SAAxD,QAQJjB,KAAKC,MAAMG,eAAiBA,EAAac,OAC3Cf,EAAU,MAIVG,EAAAC,EAAAC,cAAA,OAAKC,MAzEe,CACpBU,SAAU,QACVC,IAAK,EACLC,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,gBAAiB,kBACjBC,QAAS,KAmEPnB,EAAAC,EAAAC,cAAA,OAAKC,MAhEU,CACjBe,gBAAiB,OACjBE,aAAc,EACdC,OAAQ,SACRC,SAAU,IACVhB,WAAY,EACZiB,cAAe,GACfC,YAAa,GACbjB,aAAc,GACdM,SAAU,WACVC,IAAK,MACLE,KAAM,MACNS,UAAW,uBACXC,OAAQ,SAoDJ1B,EAAAC,EAAAC,cAAA,MAAIC,MAAO,CAAEwB,MAAO,YAAcjC,KAAKC,MAAMiC,OAC5ClC,KAAKC,MAAMkC,SAEZ7B,EAAAC,EAAAC,cAAA,OACEC,MAAO,CACLC,QAAS,OACTC,eAAgB,SAChBC,WAAY,OACZC,aAAc,QAGfV,YA7FOiC,IAAMC,WAqGbjC,EAAe,CAC1BC,MAAO,QACPiC,GAAI,KACJpB,KAAM,QAWOnB,sCCxGTwC,EAAkB,SAAAC,GACtBA,EAAOA,EAAKC,QAAQ,OAAQ,OAAOA,QAAQ,OAAQ,OACnD,IACIC,EADQ,IAAIC,OAAO,SAAWH,EAAO,aACrBI,KAAKC,OAAOC,SAASC,QACzC,OAAmB,OAAZL,EAAmB,GAAKM,mBAAmBN,EAAQ,GAAGD,QAAQ,MAAO,OAuW/DQ,yBApWK,SAAAhD,GAAS,IAAAiD,EACOC,mBAASZ,EAAgB,YADhCa,EAAAC,OAAAC,EAAA,EAAAD,CAAAH,EAAA,GACpBK,EADoBH,EAAA,GACTI,EADSJ,EAAA,GAAAK,EAEeN,mBAAS,IAFxBO,EAAAL,OAAAC,EAAA,EAAAD,CAAAI,EAAA,GAEpBE,EAFoBD,EAAA,GAELE,EAFKF,EAAA,GAAAG,EAIiBV,mBAAwC,KAA/BZ,EAAgB,YAJ1CuB,EAAAT,OAAAC,EAAA,EAAAD,CAAAQ,EAAA,GAIpBE,EAJoBD,EAAA,GAIJE,EAJIF,EAAA,GAAAG,EAMmBd,oBAAS,GAN5Be,EAAAb,OAAAC,EAAA,EAAAD,CAAAY,EAAA,GAMpBE,EANoBD,EAAA,GAMHE,EANGF,EAAA,GAAAG,EAOiClB,mBAAS,IAP1CmB,EAAAjB,OAAAC,EAAA,EAAAD,CAAAgB,EAAA,GAOpBE,EAPoBD,EAAA,GAOIE,EAPJF,EAAA,GAAAG,EASmBtB,oBAAS,GAT5BuB,EAAArB,OAAAC,EAAA,EAAAD,CAAAoB,EAAA,GASpBE,EAToBD,EAAA,GASHE,EATGF,EAAA,GAAAG,EAUiC1B,mBAAS,IAV1C2B,EAAAzB,OAAAC,EAAA,EAAAD,CAAAwB,EAAA,GAUpBE,EAVoBD,EAAA,GAUIE,EAVJF,EAAA,GAAAG,EAYa9B,oBAAS,GAZtB+B,EAAA7B,OAAAC,EAAA,EAAAD,CAAA4B,EAAA,GAYpBE,EAZoBD,EAAA,GAYNE,EAZMF,EAAA,GAAAG,EAa2BlC,mBAAS,IAbpCmC,EAAAjC,OAAAC,EAAA,EAAAD,CAAAgC,EAAA,GAapBE,EAboBD,EAAA,GAaCE,EAbDF,EAAA,GAAAG,EAeyBtC,mBAASZ,EAAgB,SAflDmD,EAAArC,OAAAC,EAAA,EAAAD,CAAAoC,EAAA,GAepBE,EAfoBD,EAAA,GAeAE,EAfAF,EAAA,GAAAG,EAgBuB1C,mBAASZ,EAAgB,WAhBhDuD,EAAAzC,OAAAC,EAAA,EAAAD,CAAAwC,EAAA,GAgBpBE,GAhBoBD,EAAA,GAgBDE,GAhBCF,EAAA,GAAAG,GAkB2B9C,mBAASZ,EAAgB,UAlBpD2D,GAAA7C,OAAAC,EAAA,EAAAD,CAAA4C,GAAA,GAkBpBE,GAlBoBD,GAAA,GAkBCE,GAlBDF,GAAA,GAAAG,GAoBDlD,oBAAS,GApBRmD,GAAAjD,OAAAC,EAAA,EAAAD,CAAAgD,GAAA,GAoBpBE,GApBoBD,GAAA,GAoBbE,GApBaF,GAAA,GAAAG,GAqBatD,mBAAS,IArBtBuD,GAAArD,OAAAC,EAAA,EAAAD,CAAAoD,GAAA,GAqBpBE,GArBoBD,GAAA,GAqBNE,GArBMF,GAAA,GAAAG,GAuBO1D,oBAAS,GAvBhB2D,GAAAzD,OAAAC,EAAA,EAAAD,CAAAwD,GAAA,GAuBpBE,GAvBoBD,GAAA,GAuBTE,GAvBSF,GAAA,GAAAG,GAyBuB9D,oBAAS,GAzBhC+D,GAAA7D,OAAAC,EAAA,EAAAD,CAAA4D,GAAA,GAyBpBE,GAzBoBD,GAAA,GAyBDE,GAzBCF,GAAA,GAAAG,GA0BqBlE,oBAAS,GA1B9BmE,GAAAjE,OAAAC,EAAA,EAAAD,CAAAgE,GAAA,GA0BpBE,GA1BoBD,GAAA,GA0BFE,GA1BEF,GAAA,GAyErBG,GAAiB,eAAAC,EAAArE,OAAAsE,EAAA,EAAAtE,CAAAuE,EAAArH,EAAAsH,KAAG,SAAAC,EAAMC,GAAN,IAAAxE,EAAAyE,EAAAC,EAAAC,EAAA,OAAAN,EAAArH,EAAA4H,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAClB/E,EAAYwE,EAAMQ,OAAOC,MAAMC,OACrCzE,GAAkB,GAElBR,EAAaD,GACY,KAArBA,EAAUmF,OALU,CAAAN,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,EAOCK,MADX,4CACsB,CAChCC,OAAQ,OACRC,QAAS,CACPC,eAAgB,oBAElBC,KAAMC,KAAKC,UAAU,CACnB1F,UAAWA,MAbO,YAOhByE,EAPgBI,EAAAc,MAiBT5G,GAjBS,CAAA8F,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAkBDN,EAASC,OAlBR,QAkBdA,EAlBcG,EAAAc,MAqBD,KAFbhB,EAAOD,EAAKkB,GAETC,QACPpF,GAAkB,GAElB4B,EAAsBsC,EAAKmB,UAAY,IAAMnB,EAAKoB,UAClDtD,GAAqBkC,EAAKqB,QAC1BnD,GAAuB8B,EAAKsB,QA1BV,yBAAApB,EAAAqB,SAAA3B,EAAA9H,SAAH,gBAAA0J,GAAA,OAAAhC,EAAAiC,MAAA3J,KAAA4J,YAAA,GAoEjB5I,GAAQ,eAAA6I,EAAAxG,OAAAsE,EAAA,EAAAtE,CAAAuE,EAAArH,EAAAsH,KAAG,SAAAiC,EAAMC,GAAN,IAAAC,EAAAhC,EAAAC,EAAAC,EAAA,OAAAN,EAAArH,EAAA4H,KAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,cACftB,IAAa,GACbI,IAAqB,GAFN6C,EAAA5B,KAAA,EAAA4B,EAAA3B,KAAA,EAKQrI,EAAMiK,OAAOC,cALrB,YAKPH,EALOC,EAAAf,MAOFkB,MAPE,CAAAH,EAAA3B,KAAA,gBAAA2B,EAAA3B,KAAA,GASUK,MADT,8CACoB,CAC9BC,OAAQ,OACRC,QAAS,CACPC,eAAgB,oBAElBC,KAAMC,KAAKC,UAAU,CACnB1F,UAAWA,EACXI,cAAeA,EACfyG,MAAOJ,EAAOI,MAAMC,GACpBb,MAAOrD,OAlBA,aASP6B,EATOiC,EAAAf,MAsBE5G,GAtBF,CAAA2H,EAAA3B,KAAA,gBAuBTlB,IAAqB,GAvBZ6C,EAAA3B,KAAA,GAyBUN,EAASC,OAzBnB,QAyBHA,EAzBGgC,EAAAf,MA4BY,KAFfhB,EAAOD,EAAKkB,GAETmB,SACP9D,IAAS,GACTI,GAAgBsB,EAAKqC,UAErB/C,IAAoB,GAhCb,QAAAyC,EAAA3B,KAAA,iBAoCXlB,IAAqB,GAErBZ,IAAS,GACTI,GAAgBoD,EAAOzD,MAAMgE,SAvClB,QAAAN,EAAA3B,KAAA,iBAAA2B,EAAA5B,KAAA,GAAA4B,EAAAO,GAAAP,EAAA,SA0Cb7C,IAAqB,GAErBqD,MAAM,2DA5CO,yBAAAR,EAAAR,SAAAK,EAAA9J,KAAA,aAAH,gBAAA0K,GAAA,OAAAb,EAAAF,MAAA3J,KAAA4J,YAAA,GAgDR3I,GAAU,WACd+F,IAAa,GACbR,IAAS,IAGPmE,GAAS,GAKb,OAHEA,IADwE,IAAtE9H,OAAOC,SAAS8H,KAAKC,cAAcC,QAAQ,sBACpC,iBACG,2BAEVvD,GAEAjH,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,OAAKM,UAAU,WACbR,EAAAC,EAAAC,cAAA,OAAKM,UAAU,YACbR,EAAAC,EAAAC,cAAA,MAAIC,MAAO,CAAEwB,MAAO,YAAc0I,IAClCrK,EAAAC,EAAAC,cAAA,yEAQRF,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,OAAKM,UAAU,WACbR,EAAAC,EAAAC,cAAA,OAAKM,UAAU,YACbR,EAAAC,EAAAC,cAAA,MAAIC,MAAO,CAAEwB,MAAO,YAAc0I,IAClCrK,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEC,QAAS,SACrBJ,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,aAEER,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAACuK,EAAAxK,EAAD,CACEO,UAAU,YACVL,MAAO,CAAEuK,MAAO,SAChBC,YAAY,GACZzC,MAAOjF,EACP2H,SAAUzD,GACV0D,OAAO,EACPC,KAAM,CACJ,WACA,WACA,WACA,WACA,IACA,WACA,WACA,WACA,WACA,WACA,WACA,QACA,cAMV9K,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEqB,YAAa,OAAQlB,WAAY,SAC7CN,EAAAC,EAAAC,cAAA,WAAMuF,IACNzF,EAAAC,EAAAC,cAAA,WAAMmF,KAGVrF,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,UAEER,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAC6K,EAAA9K,EAAD,CACEiI,MAAO7E,EACP2H,aAAc,EACdC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,OAAQ,IACR5K,UAAU,YACVL,MAAO,CAAEuK,MAAO,QAChBW,cAAe,SAAAC,GAAU,IACfC,EAA0BD,EAA1BC,eAA0BD,EAAVpD,MACxB5E,EAAiBiI,QAMzBvL,EAAAC,EAAAC,cAAA,OAAKM,UAAU,iBACbR,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEuK,MAAO,UACnB1K,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,eAEER,EAAAC,EAAAC,cAACsL,EAAA,kBAADzI,OAAA0I,OAAA,CACEjL,UAAU,YACVmK,YAAY,GACZC,SA/KW,SAAAnD,GACzB,IAAIwC,EAAU,GACVxC,EAAMxB,MACRgE,EAAUxC,EAAMxB,MAAMgE,SACM,IAAnBxC,EAAMiE,WACfzB,EAAU,mCAGZnG,EAA+B,KAAZmG,GACnB/F,EAA0B+F,KArFnB,CACL9J,MAAO,CACLwL,KAAM,CACJC,SAAU,OACVC,gBAAiB,CACflK,MAAO,YAGXmK,QAAS,CACPnK,MAAO,iBAwPL3B,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEuK,MAAO,SACnB1K,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,cAEER,EAAAC,EAAAC,cAACsL,EAAA,kBAADzI,OAAA0I,OAAA,CACEjL,UAAU,YACVoK,SA9KW,SAAAnD,GACzB,IAAIwC,EAAU,GACVxC,EAAMxB,MACRgE,EAAUxC,EAAMxB,MAAMgE,SACM,IAAnBxC,EAAMiE,WACfzB,EAAU,8CAGZ3F,EAA+B,KAAZ2F,GACnBvF,EAA0BuF,KAjGnB,CACL9J,MAAO,CACLwL,KAAM,CACJC,SAAU,OACVC,gBAAiB,CACflK,MAAO,YAGXmK,QAAS,CACPnK,MAAO,iBAkQL3B,EAAAC,EAAAC,cAAA,OAAKC,MAAO,CAAEuK,MAAO,SACnB1K,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,OAEER,EAAAC,EAAAC,cAACsL,EAAA,eAADzI,OAAA0I,OAAA,CACEjL,UAAU,YACVmK,YAAY,GACZC,SA7KQ,SAAAnD,GACtB,IAAIwC,EAAU,GACVxC,EAAMxB,MACRgE,EAAUxC,EAAMxB,MAAMgE,SACM,IAAnBxC,EAAMiE,WACfzB,EAAU,4CAGZnF,EAA4B,KAAZmF,GAChB/E,EAAuB+E,KA7GhB,CACL9J,MAAO,CACLwL,KAAM,CACJC,SAAU,OACVC,gBAAiB,CACflK,MAAO,YAGXmK,QAAS,CACPnK,MAAO,kBA+QP3B,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,SAAOM,UAAU,aAAjB,sCAEER,EAAAC,EAAAC,cAAA,SACE6L,KAAK,OACLvL,UAAU,YACV0H,MAAOrC,GACP+E,SAAU,SAAAoB,GAAC,OAAIlG,GAAuBkG,EAAE/D,OAAOC,QAC/C/H,MAAO,CAAEuK,MAAO,OAAQuB,cAAe,QACvCtB,YAAY,OAIlB3K,EAAAC,EAAAC,cAAA,SACEF,EAAAC,EAAAC,cAAA,UAAQM,UAAU,kBAAkBC,QAvR7B,SAAAgH,IACQ,IAAnBhE,EACEJ,EAAclB,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAM,GAC5B,IAApB0B,GACsB,IAApBQ,GACmB,IAAjBQ,EACF6B,IAAa,IAEbJ,GAAgBrB,GAChBiB,IAAS,KAGXI,GAAgB7B,GAChByB,IAAS,KAGXI,GAAgBrC,GAChBiC,IAAS,KAGXA,IAAS,GACTI,GAAgB,oCAGlBJ,IAAS,GACTI,GAAgB,sCA8PV,WAKFtG,EAAAC,EAAAC,cAACgM,EAAD,CACEtK,MAAM,qBACNhC,KAAMiH,GACN/G,aAAcA,EAAac,KAC3BD,QAASA,IAER,kBAGHX,EAAAC,EAAAC,cAACgM,EAAD,CAAOtK,MAAM,QAAQhC,KAAMqG,GAAOnG,aAAcA,EAAakC,GAAIrB,QAASA,IACvE0F,MAKPrG,EAAAC,EAAAC,cAACgM,EAAD,CACEtM,KAAM6G,GACN3G,aAAcA,EAAaC,MAC3BY,QAASA,GACTD,SAAUA,GACVkB,MAAM,gBALR,uBAAAuK,OAO0B9I,EAP1B,QAAA8I,OAO8C1G,GAP9C,SAAA0G,OAOuE9G,EAPvE,UClUS+G,EApCH,WACV,IAAIC,EAAM,GAOV,OALEA,GADwE,IAAtE9J,OAAOC,SAAS8H,KAAKC,cAAcC,QAAQ,sBACvC,6CACG,6CAEX8B,QAAQC,IAAI,MAAQF,GAGlBrM,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,OAAKM,UAAU,QACbR,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAAA,OAAKsM,IAAKC,IAAWC,IAAI,MAE3B1M,EAAAC,EAAAC,cAAA,OAAKM,UAAU,QACbR,EAAAC,EAAAC,cAACsL,EAAA,eAAD,CAAgBmB,OAAQN,GACtBrM,EAAAC,EAAAC,cAAA,WACEF,EAAAC,EAAAC,cAACsL,EAAA,SAAD,KACExL,EAAAC,EAAAC,cAAC0M,EAAD,OAEF5M,EAAAC,EAAAC,cAAA,OAAKM,UAAU,QACbR,EAAAC,EAAAC,cAAA,uBACAF,EAAAC,EAAAC,cAAA,8CACAF,EAAAC,EAAAC,cAAA,4DAMVF,EAAAC,EAAAC,cAAA,OAAKM,UAAU,UAAf,wBACoB,IAAIqM,MAAOC,cAD/B,gDCvBcC,QACW,cAA7BxK,OAAOC,SAASwK,UAEe,UAA7BzK,OAAOC,SAASwK,UAEhBzK,OAAOC,SAASwK,SAASC,MACvB,2DCZNC,IAASC,OAAOnN,EAAAC,EAAAC,cAACkN,EAAD,MAASC,SAASC,eAAe,SD2H3C,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMC,KAAK,SAAAC,GACjCA,EAAaC","file":"static/js/main.57f59df4.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Loginlogo.ceb82e83.png\";","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nclass Modal extends React.Component {\r\n render() {\r\n // Render nothing if the \"show\" prop is false\r\n if (!this.props.show) {\r\n return null;\r\n }\r\n\r\n const backdropStyle = {\r\n position: \"fixed\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n backgroundColor: \"rgba(0,0,0,0.1)\",\r\n padding: 50\r\n };\r\n\r\n const modalStyle = {\r\n backgroundColor: \"#fff\",\r\n borderRadius: 5,\r\n margin: \"0 auto\",\r\n minWidth: 250,\r\n paddingTop: 0,\r\n paddingBottom: 15,\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n position: \"absolute\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%,-50%)\",\r\n zIndex: \"1000\"\r\n };\r\n\r\n let buttons;\r\n if (this.props.modalButtons === modalButtons.yesNo) {\r\n buttons = (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n } else {\r\n buttons = (\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n if (this.props.modalButtons === modalButtons.none) {\r\n buttons = null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

{this.props.title}

\r\n {this.props.children}\r\n\r\n \r\n {buttons}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const modalButtons = {\r\n yesNo: \"yesNo\",\r\n ok: \"ok\",\r\n none: \"none\"\r\n};\r\n\r\nModal.propTypes = {\r\n modalButtons: PropTypes.oneOf(Object.keys(modalButtons)),\r\n onClose: PropTypes.func.isRequired,\r\n onAccept: PropTypes.func,\r\n show: PropTypes.bool,\r\n children: PropTypes.node\r\n};\r\n\r\nexport default Modal;\r\n","import React from \"react\";\r\nimport { useState } from \"react\";\r\nimport Modal from \"./Modal\";\r\nimport { modalButtons } from \"./Modal\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport MaskedInput from \"react-text-mask\";\r\n\r\nimport {\r\n CardNumberElement,\r\n CardExpiryElement,\r\n CardCVCElement,\r\n injectStripe\r\n} from \"react-stripe-elements\";\r\n\r\nconst getUrlParameter = name => {\r\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n var results = regex.exec(window.location.search);\r\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n};\r\n\r\nconst PaymentForm = props => {\r\n const [accountNo, setAccountNo] = useState(getUrlParameter(\"account\"));\r\n const [paymentAmount, setPaymentAmount] = useState(\"\");\r\n\r\n const [accountNoValid, setAccountNoValid] = useState(getUrlParameter(\"account\") !== \"\");\r\n\r\n const [cardNumberValid, setCardNumberValid] = useState(false);\r\n const [cardNumberErrorMessage, setCardNumberErrorMessage] = useState(\"\");\r\n\r\n const [cardExpiryValid, setCardExpiryValid] = useState(false);\r\n const [cardExpiryErrorMessage, setCardExpiryErrorMessage] = useState(\"\");\r\n\r\n const [cardCVCValid, setCardCVCValid] = useState(false);\r\n const [cardCVCErrorMessage, setCardCVCErrorMessage] = useState(\"\");\r\n\r\n const [accountPatientName, setAccountPatientName] = useState(getUrlParameter(\"name\"));\r\n const [accountClinicName, setAccountClinicName] = useState(getUrlParameter(\"clinic\"));\r\n\r\n const [accountPatientEmail, setAccountPatientEmail] = useState(getUrlParameter(\"email\"));\r\n\r\n const [error, setError] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const [submittingPayment, setSubmittingPayment] = useState(false);\r\n const [paymentCompleted, setPaymentCompleted] = useState(false);\r\n\r\n const createOptions = () => {\r\n return {\r\n style: {\r\n base: {\r\n fontSize: \"14px\",\r\n \"::placeholder\": {\r\n color: \"#aab7c4\"\r\n }\r\n },\r\n invalid: {\r\n color: \"#9e2146\"\r\n }\r\n }\r\n };\r\n };\r\n\r\n const onSubmit = event => {\r\n if (accountNoValid === true) {\r\n if (paymentAmount.replace(\"$\", \"\").replace(\",\", \"\") > 0) {\r\n if (cardNumberValid === true) {\r\n if (cardExpiryValid === true) {\r\n if (cardCVCValid === true) {\r\n setShowModal(true);\r\n } else {\r\n setErrorMessage(cardCVCErrorMessage);\r\n setError(true);\r\n }\r\n } else {\r\n setErrorMessage(cardExpiryErrorMessage);\r\n setError(true);\r\n }\r\n } else {\r\n setErrorMessage(cardNumberErrorMessage);\r\n setError(true);\r\n }\r\n } else {\r\n setError(true);\r\n setErrorMessage(\"The payment amount is invalid.\");\r\n }\r\n } else {\r\n setError(true);\r\n setErrorMessage(\"Your account number is invalid.\");\r\n }\r\n };\r\n\r\n const onAccountNoChange = async event => {\r\n const accountNo = event.target.value.trim();\r\n setAccountNoValid(false);\r\n\r\n setAccountNo(accountNo);\r\n if (accountNo.length === 13) {\r\n const url = \"Services/OnlinePayService.asmx/GetAccount\";\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n accountNo: accountNo\r\n })\r\n });\r\n\r\n if (response.ok) {\r\n const json = await response.json();\r\n const data = json.d;\r\n\r\n if (data.found === true) {\r\n setAccountNoValid(true);\r\n\r\n setAccountPatientName(data.firstName + \" \" + data.lastName);\r\n setAccountClinicName(data.clinic);\r\n setAccountPatientEmail(data.email);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onCardNumberChange = event => {\r\n let message = \"\";\r\n if (event.error) {\r\n message = event.error.message;\r\n } else if (event.complete === false) {\r\n message = \"Your card number is incomplete.\";\r\n }\r\n\r\n setCardNumberValid(message === \"\");\r\n setCardNumberErrorMessage(message);\r\n };\r\n\r\n const onCardExpiryChange = event => {\r\n let message = \"\";\r\n if (event.error) {\r\n message = event.error.message;\r\n } else if (event.complete === false) {\r\n message = \"Your card's expiration date is incomplete.\";\r\n }\r\n\r\n setCardExpiryValid(message === \"\");\r\n setCardExpiryErrorMessage(message);\r\n };\r\n\r\n const onCardCVCChange = event => {\r\n let message = \"\";\r\n if (event.error) {\r\n message = event.error.message;\r\n } else if (event.complete === false) {\r\n message = \"Your card's security code is incomplete.\";\r\n }\r\n\r\n setCardCVCValid(message === \"\");\r\n setCardCVCErrorMessage(message);\r\n };\r\n\r\n const onAccept = async ev => {\r\n setShowModal(false);\r\n setSubmittingPayment(true);\r\n\r\n try {\r\n const result = await props.stripe.createToken();\r\n\r\n if (result.token) {\r\n const url = \"Services/OnlinePayService.asmx/CreateCharge\";\r\n let response = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n accountNo: accountNo,\r\n paymentAmount: paymentAmount,\r\n token: result.token.id,\r\n email: accountPatientEmail\r\n })\r\n });\r\n\r\n if (response.ok) {\r\n setSubmittingPayment(false);\r\n\r\n const json = await response.json();\r\n const data = json.d;\r\n\r\n if (data.success === false) {\r\n setError(true);\r\n setErrorMessage(data.message);\r\n } else {\r\n setPaymentCompleted(true);\r\n }\r\n }\r\n } else {\r\n setSubmittingPayment(false);\r\n\r\n setError(true);\r\n setErrorMessage(result.error.message);\r\n }\r\n } catch (err) {\r\n setSubmittingPayment(false);\r\n\r\n alert(\"An unexpected error occured. Unable to process payment.\");\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n setShowModal(false);\r\n setError(false);\r\n };\r\n\r\n var header = \"\";\r\n if (window.location.href.toLowerCase().indexOf(\"onlinepayment.html\") !== -1)\r\n header = \"Online Payment\";\r\n else header = \"Online Payment TEST MODE\";\r\n\r\n if (paymentCompleted) {\r\n return (\r\n
\r\n
\r\n
\r\n

{header}

\r\n

Thank you. Your payment has been completed successfully.

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{header}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{accountClinicName}
\r\n
{accountPatientName}
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n\r\n \r\n {\"Please wait...\"}\r\n \r\n\r\n \r\n {errorMessage}\r\n \r\n
\r\n
\r\n\r\n \r\n {`Submit a payment of ${paymentAmount} to ${accountClinicName} for ${accountPatientName} ?`}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default injectStripe(PaymentForm);\r\n","import React from \"react\";\nimport { Elements, StripeProvider } from \"react-stripe-elements\";\nimport LoginLogo from \"./Loginlogo.png\";\nimport \"./App.css\";\nimport PaymentForm from \"./PaymentForm\";\n\nconst App = () => {\n var key = \"\";\n if (window.location.href.toLowerCase().indexOf(\"onlinepayment.html\") !== -1)\n key = \"pk_live_IG0TJeTHz6JxWsW1bijQOJwK00jqSL51IV\";\n else key = \"pk_test_D9pMEbVD7OJMW82u54kKFyGN00kCY9BZgd\";\n\n console.log(\"...\" + key);\n\n return (\n
\n
\n
\n \"\"\n
\n
\n \n
\n \n \n \n
\n

Need help?

\n

8:00-5:00 Central: 1-800-260-9870

\n

After hours urgent support: 1-800-360-6712

\n
\n
\n
\n
\n
\n
\n Copyright © 2011-{new Date().getFullYear()} Paragon Billing, LLC. All Rights Reserved\n
\n
\n );\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}