{"version":3,"file":"static/chunks/pages/donate/[slug]/details-4671510ffa5f76c7.js","mappings":"kHAA0I,+FAAwD,MAAO,QAAC,OAAO,QAAC,aAAa,iBAAiB,kBAAkB,iBAAiB,KAAK,SAAS,iBAAiB,KAAK,UAAU,iBAAiB,kBAAkB,mBAAmB,mBAAmB,KAAK,iBAAiB,iBAAiB,kBAAkB,iBAAiB,KAAK,SAAS,iBAAiB,KAAK,UAAU,iBAAiB,kBAAkB,mBAAmB,mBAAmB,KAAK,QAAQ,cAAc,MAAO,QAAC,OAAO,QAAC,WAAW,0BAA0B,yBAAyB,OAAO,SAAS,6BAA6B,KAAK,UAAU,0BAA0B,0BAA0B,KAAK,eAAe,0BAA0B,yBAAyB,OAAO,SAAS,6BAA6B,KAAK,UAAU,0BAA0B,0BAA0B,KAAK,QAAQ,CAAC,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,uBAAuB,2BAA2B,UAAU,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,0BAA0B,gBAAgB,qBAAqB,0BAA0B,mDAAmD,uCAAuC,gBAAgB,qBAAqB,0BAA0B,mDAAmD,8BAA+B,4CAA4C,aAAe,6CAA6C,0BAA0B,QAAC,OAAO,QAAC,+CAA+C,uDAAuD,cAAc,EAAG,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,0BAA0B,YAAY,gBAAgB,0BAA0B,mDAAmD,gCAAgC,gBAAgB,iBAAiB,kBAAkB,4BAA4B,yBAAyB,mBAAmB,yBAAyB,aAAa,gBAAgB,eAAe,iBAAiB,kBAAkB,yBAAyB,iBAAiB,wBAAwB,4BAA4B,gBAAgB,8BAA8B,YAAY,gBAAgB,0BAA0B,mDAAmD,gCAAgC,gBAAgB,iBAAiB,kBAAkB,4BAA4B,yBAAyB,mBAAmB,yBAAyB,aAAa,gBAAgB,eAAe,iBAAiB,kBAAkB,yBAAyB,iBAAiB,wBAAwB,4BAA4B,gBAAgB,qBAAsB,6CAA6C,+DAA+D,aAAe,qBAAqB,aAAe,6FAA6F,gBAAgB,aAAe,4BAA4B,QAAC,OAAO,QAAC,kDAAkD,4DAA4D,gBAAgB,EAAG,EAAE,IAAC,EAAF,GAAE,OAAY,QAAC,0BAA0B,eAAe,gBAAgB,eAAe,iBAAiB,qBAAqB,2BAA2B,cAAc,8BAA8B,eAAe,gBAAgB,eAAe,iBAAiB,qBAAqB,2BAA2B,cAAc,QAAQ,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,0BAA0B,eAAe,gBAAgB,qBAAqB,mBAAmB,qBAAqB,8BAA8B,eAAe,gBAAgB,qBAAqB,mBAAmB,qBAAqB,mBAAoB,qBAAqB,aAAe,qBAAqB,EAAG,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,0BAA0B,8BAA8B,eAAe,0BAA0B,gBAAgB,iBAAiB,8BAA8B,8BAA8B,eAAe,0BAA0B,gBAAgB,iBAAiB,QAAQ,EAAE,IAAC,EAAF,KAAE,OAAc,QAAC,mBAAmB,uBAAuB,mBAAoB,oCAAoC,EAAG,EAAE,IAAC,EAAF,KAAE,OAAc,QAAC,mBAAmB,kCAAkC,uBAAuB,kCAAkC,mBAAoB,uGAAuG,gBAAgB,aAAe,IAAoE,EAAqB,IAA0T,EAAc,IAAja,gEAAoE,UAAqB,GAArB,EAAkS,CAAE,2CAA2C,EAA1T,2CAAmD,CAAO,OAAC,OAAO,QAAC,WAAW,+BAA+B,KAAK,UAAU,+BAA+B,KAAK,eAAe,+BAA+B,KAAK,UAAU,+BAA+B,KAAK,YAAY,EAA2D,GAAd,EAAuX,CAAE,2CAA2C,EAAtZ,2CAA0D,QAAC,OAAO,QAAC,WAAW,+BAA+B,KAAK,SAAS,+BAA+B,KAAK,UAAU,+BAA+B,KAAK,eAAe,+BAA+B,KAAK,SAAS,+BAA+B,KAAK,UAAU,+BAA+B,KAAK,cAA2D,CAAE,EAAG,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,0BAA0B,gBAAgB,iBAAiB,WAAW,YAAY,kBAAkB,wBAAwB,4BAA4B,uBAAuB,eAAe,mBAAmB,qBAAqB,uBAAuB,iBAAiB,eAAe,8BAA8B,gBAAgB,iBAAiB,WAAW,YAAY,kBAAkB,wBAAwB,4BAA4B,uBAAuB,eAAe,mBAAmB,qBAAqB,uBAAuB,iBAAiB,eAAe,mBAAoB,2BAA2B,aAAe,2BAA2B,aAAe,+BAA+B,ECA1hL,CDA4tL,QCAntL,EAAC,GAAI,QAAJ,UAAI,6IAA+J,QAAC,KAAK,QAAC,CAAC,QAAC,GAAG,CAAC,IAAC,0LAA8L,OAAO,eAAe,CAAC,IAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAC,OAAQ,eAAe,CAAC,EAAC,CAAE,KAAF,OAAE,UAAsB,CAAC,eAAe,CAAC,EAAC,CAAE,KAAF,GAAE,mCAA2C,CAAC,eAAe,CAAC,EAAC,CAAE,KAAF,CAAE,QAAtX,GAAsX,cAA8B,EAAE,eAAe,CAAC,EAAC,CAAE,KAAF,QAAE,6BAAza,GAAya,qFAAiI,EAAE,eAAe,CAAC,EAAC,CAAE,KAAF,KAAE,gBAA/jB,GAA+jB,qFAAiH,GAAG,eAAe,CAAC,EAAC,SAAU,eAAe,CAAC,EAAC,CAAE,KAAF,OAAE,yBAAqC,CAAC,eAAe,CAAC,EAAC,CAAE,KAAF,QAAE,6BAA0C,EAAE,eAAe,CAAC,EAAC,CAAE,KAAF,OAAE,cAA0B,EAAE,eAAe,CAAC,EAAC,aAAoD,oDCAp5C,uEAAU,IAAC,gBAAgB,QAAC,mBAAmB,0BAA0B,2BAA2B,gBAAgB,eAAe,mBAAmB,qBAAqB,mBAAmB,qBAAqB,gBAAgB,gBAAgB,4CAA4C,aAAa,wBAAwB,KAAK,gBAAgB,wBAAwB,iBAAiB,KAAK,UAAU,uBAAuB,0BAA0B,2BAA2B,gBAAgB,eAAe,mBAAmB,qBAAqB,mBAAmB,qBAAqB,gBAAgB,gBAAgB,4CAA4C,aAAa,wBAAwB,KAAK,gBAAgB,wBAAwB,iBAAiB,KAAK,UAAU,mBAAoB,iBAAiB,aAAe,sCAAsC,aAAe,4BAA4B,mHAAmH,aAAe,+BAA+B,aAAe,yCAAyC,aAAe,2BAA2B,aAAe,6BAA6B,kEAAkE,aAAe,gCAAgC,aAAe,+BAA+B,aAAe,+BAA+B,aAAe,cAAc,4CAA4C,QAAC,OAAO,QAAC,wBAAwB,yBAAyB,gCAAgC,aAAa,oCAAoC,yBAAyB,gCAAgC,aAAa,kCAAkC,ECA1/C,CDAsiD,CCAtiD,YAAkB,4FAAuI,QAAC,gFAAgF,QAAC,KAAK,QAAC,CAAC,QAAC,GAAG,CAAC,IAAC,KAAK,OAAO,eAAe,CAAC,GAAC,EAAE,2CAA2C,CAAC,eAAe,CAAC,CAAC,CAAC,QAAC,GAAG,IAAI,kHAA3U,wBAA2U,WAA3U,eAA2U,oCAAqK,QAAQ,eAAe,CAAC,GAAC,EAAE,wDAAwD,MAA8C,mDCA1xB,0HAA4B,IAAC,WAAW,QAAC,0BAA0B,0BAA0B,0BAA0B,iBAAiB,uBAAuB,OAAO,gBAAgB,KAAK,8BAA8B,0BAA0B,0BAA0B,iBAAiB,uBAAuB,OAAO,gBAAgB,KAAK,mBAAoB,2CAA2C,EAAG,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,4BAA4B,oBAAoB,uBAAuB,UAAU,gCAAgC,oBAAoB,uBAAuB,UAAU,mBAAoB,yBAAyB,aAAe,6BAA6B,eAAe,QAAC,OAAO,QAAC,8CAA8C,mBAAmB,8BAA8B,uBAAuB,+BAA+B,uBAAuB,yBAAyB,4BAA4B,WAAW,SAAS,sDAAsD,mBAAmB,gCAAgC,uBAAuB,+BAA+B,uBAAuB,yBAAyB,4BAA4B,WAAW,SAAS,0CAA0C,IAAK,IAAC,SAAS,QAAC,kBAAkB,wBAAwB,sBAAsB,qBAAqB,wBAAwB,sBAAsB,wBAAwB,sBAAsB,qBAAqB,wBAAwB,mBAAoB,gDAAgD,aAAe,6CAA6C,aAAe,8CAA8C,EAAG,EAAE,IAAC,EAAF,CAAE,MAAS,QAAC,kBAAkB,qBAAqB,wBAAwB,sBAAsB,qBAAqB,wBAAwB,mBAAoB,+CAA+C,aAAe,6CAA6C,aAAe,8CAA8C,EAAG,EAAE,IAAC,SAAS,QAAC,kBAAkB,qBAAqB,wBAAwB,sBAAsB,qBAAqB,wBAAwB,mBAAoB,gDAAgD,aAAe,6CAA6C,aAAe,8CAA8C,EAAG,EAAE,IAAC,EAAF,GAAE,OAAY,QAAC,sBAAsB,sBAAsB,qBAAqB,qBAAqB,qBAAqB,0BAA0B,sBAAsB,qBAAqB,qBAAqB,qBAAqB,mBAAoB,yCAAyC,EAAG,EAAE,IAAC,EAAF,EAAE,OAAW,QAAC,wBAAwB,cAAc,mCAAmC,cAAc,0BAA2B,6CAA6C,aAAe,qBAAqB,QAAC,OAAO,QAAC,gBAAgB,uBAAuB,qBAAqB,SAAS,wBAAwB,uBAAuB,qBAAqB,SAAS,WAAW,EAAC,CAAE,EAAG,EAAE,CAAP,CAAO,EAAC,EAAF,EAAE,OAAW,QAAC,iCAAiC,kBAAkB,qCAAqC,kBAAkB,QAAQ,EAAE,MAAD,CAAC,CAAC,CAAC,GAAC,QAAQ,QAAC,cCAtsF,CDA63F,QCA73F,KAAc,oJAAoJ,QAAC,KAAK,QAAC,CAAC,QAAC,GAAG,CAAC,IAAC,OAAO,QAAC,YAAY,QAAC,2DAAwD,QAAC,kBAAkB,OAAO,eAAe,CAAC,EAAC,CAAE,KAAF,MAAE,cAAyB,GAAG,eAAe,CAAC,GAAC,EAAE,8DAA8D,CAAC,eAAe,CAAC,GAAC,oBAAiB,QAAC,OAAO,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAC,qBAAsB,eAAe,CAAC,CAAC,aAAU,QAAC,KAAK,eAAe,CAAC,EAAC,cAAY,QAAC,iCAAiC,eAAe,CAAC,UAAU,MAAM,eAAe,CAAC,EAAC,CAAE,KAAF,MAAE,cAAyB,CAAC,eAAe,CAAC,EAAC,CAAE,KAAF,CAAE,qCAA2C,IAAI,eAAe,CAAC,EAAC,CAAE,KAAF,CAAE,EAAQ,WAAW,eAAe,CAAC,EAAC,KAAM,CAAN,CAAM,aAAe,CAAC,GAAC,EAAE,UAAU,QAAQ,eAAe,CAAC,EAAC,QAAS,eAAe,CAAC,EAAC,KAAM,CAAN,CAAM,aAAe,CAAC,GAAC,EAAE,UAAU,UAA8C,kBCCthD,4CACA,yBACA,WACA,OAAe,EAAQ,KAA8C,CACrE,EACA,SAFsB,4ECiBf,IAAMA,EAAY,CACvBC,EACAC,KAEA,GAAM,MAAEC,CAAI,OAAEC,CAAK,QAAEC,CAAM,cAAEC,CAAY,WAAEC,CAAS,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAC9C,UAAf,OAAOP,GAAoBA,GAAKQ,OAASR,EAAM,KAC/CS,EAAAA,EAAOA,CACPR,GAQIS,EAAqBC,GAAiBC,UAAUC,MAL9BX,EAMJU,QAAQ,CAACC,KAAK,CAC9B,EAUJ,OARIV,GACFW,CAAAA,EAAAA,CADS,CACTA,CAAAA,CAAiBA,CAACC,EAAY,CAC5BC,UAAW,gBACXhB,EACAiB,QAASF,EAAWE,OAAO,GAIxB,CACLf,KAAMgB,GAAa,KACnBf,MAAOY,GAAc,KACrBX,OAAQA,YACRE,eACAD,aACAK,CACF,CACF,EAAE,yeC3CK,IAAMS,EAAmBC,EAAAA,EACvB,CAAC,CACNC,MAAOD,EAAAA,EAAM,CAAC,CAAC,GAAI,KAAM,MAAO,OAAQ,KAAM,KAAM,QAAQ,EAAEE,QAAQ,GACtEC,WAAYH,EAAAA,EACH,GACNI,GAAG,CAAC,EAAG,+CACPC,GAAG,CAAC,GAAI,+CACRC,KAAK,CAACC,EAAAA,EAAgBA,CAACC,OAAO,CAAE,CAAC,MAAM,EAAED,EAAAA,EAAgBA,CAACV,OAAO,EAAE,EACnEK,QAAQ,GACXO,SAAUT,EAAAA,EACD,GACNU,IAAI,GACJN,GAAG,CAAC,EAAG,iCACPA,GAAG,CACF,EACA,yGAEDC,GAAG,CACF,GACA,yGAEDC,KAAK,CACJK,EAAAA,EAAsBA,CAACH,OAAO,CAC9B,iGAEDF,KAAK,CACJ,mCACA,wCAEDA,KAAK,CACJC,EAAAA,EAAgBA,CAACC,OAAO,CACxB,CAAC,WAAW,EAAED,EAAAA,EAAgBA,CAACV,OAAO,CAAC,qDAAqD,CAAC,EAEjGe,QAASZ,EAAAA,EACA,GACNU,IAAI,GACJN,GAAG,CAAC,EAAG,gCACPA,GAAG,CACF,EACA,wGAEDC,GAAG,CACF,GACA,wGAEDC,KAAK,CACJO,EAAAA,EAAsBA,CAACL,OAAO,CAC9B,iGAEDF,KAAK,CACJ,mCACA,wCAEDA,KAAK,CACJC,EAAAA,EAAgBA,CAACC,OAAO,CACxB,CAAC,UAAU,EAAED,EAAAA,EAAgBA,CAACV,OAAO,CAAC,qDAAqD,CAAC,EAEhGiB,MAAOd,EAAAA,EACE,GACNU,IAAI,GACJN,GAAG,CAAC,EAAG,oCACPA,GAAG,CAAC,EAAG,uDACPC,GAAG,CAAC,GAAI,sDACT,CACCC,KAAK,CAACS,EAAAA,EAAUA,CAACP,OAAO,CAAEO,EAAAA,EAAUA,CAAClB,OAAO,EAC/CmB,YAAahB,EAFqC,EAGzC,GACNiB,SAAS,CAAEC,GAAUA,EAAMC,OAAO,CAAC,OAAQ,KAC3CC,IAAI,CACHpB,EAAAA,EACS,GACNU,IAAI,GACJN,GAAG,CAAC,GAAI,uDACRC,GAAG,CAAC,GAAI,sDACRC,KAAK,CAACe,EAAAA,EAAcA,CAACb,OAAO,CAAEa,EAAAA,EAAcA,CAACxB,OAAO,EACpDyB,EAAE,CAACtB,EAAAA,EAAS,CAAC,MAEpBuB,OAAQvB,EAAAA,EACC,GACNI,GAAG,CAAC,EAAG,6BACPE,KAAK,CAACkB,EAAAA,EAAUA,CAAChB,OAAO,CAAEgB,EAAAA,EAAUA,CAAC3B,OAAO,EAC5C4B,MAAM,CACL,IACEP,GAAO9B,QAASsC,WAAWR,GAAS,KACtC,EAD6C,yDAG9CO,MAAM,CACL,IACEP,GAAO9B,QAA6B,WAApBsC,EAAiC,SAAtBR,GAC7B,2DAEJS,aAAc3B,EAAAA,EACL,GACNK,GAAG,CAAC,IAAK,uDACTH,QAAQ,GACX0B,gBAAiB5B,EAAAA,EACR,GACNK,GAAG,CAAC,IAAK,kDACTH,QAAQ,GACX2B,cAAe7B,EAAAA,EAAS,GACxB8B,gBAAiB9B,EAAAA,EAAM,CAAC,CAAC,OAAQ,QAAQ,EAAE+B,QAAQ,GACnDC,kBAAmBhC,EAAAA,EAAM,CAAC,CAAC,OAAQ,QAAQ,EAAE+B,QAAQ,GAErDE,QAASC,EAAAA,CAAiBA,CAC1BC,aAAcC,EAAAA,CAAoBA,GAEnCX,MAAM,CACL,GAEiB,YAAVxB,KAAK,EAAe,CAACnB,EAAKqB,UAAU,EAAEf,SAAU,GAAM,EAC7D,CACES,CAF+D,OAEtD,8CACTwC,KAAM,CAAC,aAAa,GAGvBZ,MAAM,CACL,KAEE,CAAC,OAAO,CAACa,QAAQ,CAACxD,EAAKqD,YAAY,CAACI,KAAK,GACzC,CAAC,OAAO,CAACD,QAAQ,CAACxD,EAAKqD,YAAY,CAACK,KAAI,GACpC1D,EAAKkC,WAAW,EAAE5B,OAExB,CACES,CAFI,OAGF,8FACFwC,KAAM,CAAC,cAAc,GAEvB,sECzIG,IAAMI,EAAaC,EAAAA,EAAMA,CAACC,IAAI,8EACpB,OAAC,OAAEC,CAAK,CAAE,UAAKA,EAAMC,UAAU,CAACC,eAAe,EACjD,OAAC,OAAEF,CAAK,CAAE,UAAKA,EAAMG,SAAS,CAACC,EAAE,GAC9C,EAEkCN,EAAAA,EAAMA,CAACO,QAAQ,2FAKjD,EAEyBP,EAAAA,EAAMA,CAACQ,GAAG,kGAInC,EAEyBR,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACS,EAAAA,CAAKA,EAAAA,UAAAA,CAAAA,sDACpB,OAAC,CAAEP,OAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,GAC/C,EAEsBX,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACY,EAAAA,CAAIA,EAAAA,UAAAA,CAAAA,oDAClB,OAAC,CAAEV,OAAK,CAAE,UAAKA,EAAMC,UAAU,CAACU,gBAAgB,GAC/D,GAEyBb,EAAAA,EAAMA,CAACc,GAAG,+EAEpB,OAAC,OAAEZ,CAAK,CAAE,UAAKA,EAAMC,UAAU,CAACU,gBAAgB,GAC/D,GAE+Bb,EAAAA,EAAMA,CAACC,IAAI,sKAE7B,OAAC,OAAEC,CAAK,CAAE,UAAKA,EAAMC,UAAU,CAACY,YAAY,EAC1C,OAAC,OAAEb,CAAK,CAAE,UAAKA,EAAMC,UAAU,CAACU,gBAAgB,EAS9C,OAAC,OAAEX,CAAK,CAAE,UAAKA,EAAMC,UAAU,CAACa,cAAc,GAE/D,GCpB2B,IAC3B,IAAMC,EACJjC,eAAWkC,GAA2BlC,WAAWkC,UACnD,EAAyB,EAChBlC,CADmB,UACRiC,EAAIE,QAAQ,IAAIC,OAAO,CAAC,GAErC,GACT,EAEaC,GAAoB,IAG/B,GAAM,QAAExC,CAAM,mBAAES,CAAiB,CAAEF,iBAAe,CAAE,CAAGkC,EAEjD,UAAEC,CAAQ,CAAE,CADED,EACCE,MAGnB,WAACC,EAAoBA,WACnB,OADmBA,EACnB,EAACb,EAAAA,CAAIA,CAAAA,WAAC,kCAEJ,WAACb,EAAUA,QAAAA,GAAC,WACFf,WAAWH,GAAU,EAAI6C,CAAAA,EAAAA,EAAAA,EAAAA,CAAgBA,CAAC7C,GAAU,IAAI,UAErD,iBAEb,WAACkB,EAAUA,QAAAA,GACR,IAAI,OACH2B,CAAAA,EAAAA,EAAAA,EAAAA,CAAgBA,CAACC,GAAqB9C,IAAU,OACtC,IAAI,6BAIpB,UAAC+C,EAAWA,CAACC,IA7CA,CA6CKC,GAANF,6BAAkBG,IAAI,eAClC,UAACnB,EAAAA,CAAIA,CAAAA,UAAC,8HAIN,UAACoB,EAAQA,MAAAA,IAAC,6CACV,UAACC,GAAWA,QAAAA,EACV,UAACC,EAAWA,CACT,GAAGX,EAAS,GADHW,eACqB,CAC/B1D,MAAM,QACN2D,QAA6B,UAApB/C,WACV,sGAKH,UAAC6C,GAAWA,QAAAA,EACV,UAACC,EAAWA,CACT,GAAGX,EAAS,GADHW,eACqB,CAC/B1D,MAAM,OACN2D,QAA6B,SAApB/C,WACV,+BAKkB,SAApBA,EACC,iCACE,UAAC4C,EAAQA,MAAAA,IAAC,WACV,UAACC,GAAWA,QAAAA,EACV,UAACC,EAAWA,CACT,GAAGX,EAAS,GADHW,iBACuB,CACjC1D,MAAM,QACN2D,QAA+B,UAAtB7C,WACV,iIAKH,UAAC2C,GAAWA,QAAAA,EACV,UAACC,EAAWA,CACT,GAAGX,EAAS,GADHW,iBACuB,CACjC1D,MAAM,OACN2D,QAAS7C,oBACV,gEAKH,KACJ,WAAC8C,EAAAA,CAAGA,CAAAA,CAACC,YAAU,mBACZjD,WACAE,GAAsB,OAAtBA,GAAoD,SAAtBA,CAAsB,CAAK,CACxD,WAACgD,GAAiBA,WAChB,UAACC,EAAAA,CAAKA,CAAAA,CAACC,gBAAgB,UAAUC,UAAU,oBAAW,MAE9C,mKAKY,SAApBrD,GAAoD,UAAtBE,EAChC,WAACgD,GAAiBA,WAChB,UAACC,EAAAA,CAAKA,CAAAA,CAACC,gBAAgB,UAAUC,UAAU,oBAAW,MAE9C,mFAIY,UAApBrD,GAAqD,UAAtBE,EACjC,WAACgD,GAAiBA,WAChB,GADgBA,EAChB,KAACC,EAAAA,CAAKA,CAAAA,CAACC,gBAAgB,UAAUC,UAAU,oBAAW,MAE7C,IAAI,6GAIO,SAApBrD,GAA8BE,WAChC,WAACgD,GAAiBA,WAChB,GADgBA,EAChB,KAAC1B,EAAAA,CAAIA,CAAAA,CAAC8B,GAAG,OAAOD,UAAU,UAAUE,UAAU,eAC5C,UAACC,EAAAA,CAAMA,CAAAA,CAACC,OAAQC,EAAAA,GAAaA,CAAEC,KAAK,UAEtC,WAACX,EAAAA,CAAGA,CAAAA,WACF,UAACnC,OAAAA,UAAK,yDACN,UAACW,EAAAA,CAAIA,CAAAA,UACF,CAAC;;;;;;wDAMsC,CAAC,SAI7C,KACJ,WAACA,EAAAA,CAAIA,CAAAA,CAAC+B,UAAU,gBAAM,wGAEe,IACnC,UAACK,EAAAA,CAAIA,CAAAA,CACHC,KAAK,gGACLC,gBAAc,qCACf,yBAEO,IAAI,UACJ,IACR,UAACF,EAAAA,CAAIA,CAAAA,CACHC,KAAK,+GACLC,gBAAc,kCACf,sBAEM,YAMjB,EAAE,gBCzKK,IAAMC,GAAwBnD,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACoC,EAAAA,CAAGA,EAAAA,UAAAA,CAAAA,yEACxB,OAAC,OAAElC,CAAK,CAAE,UAAKA,EAAMkD,UAAU,CAACC,MAAM,EAC3C,OAAC,OAAEnD,CAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,GAE9C,GAE+BX,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACoC,EAAAA,CAAGA,EAAAA,UAAAA,CAAAA,2HAGpB,OAAC,OAAElC,CAAK,CAAE,UAAKA,EAAMkD,UAAU,CAACC,MAAM,GAK3D,GAEgCrD,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACsD,EAAAA,CAAMA,EAAAA,UAAAA,CAAAA,2SAWpC,OAAC,SAAEC,CAAO,OAAErD,CAAK,YAAEsD,CAAU,kBAAEC,CAAgB,CAAE,UACxDF,EACIE,GAAqBvD,EAAMwD,MAAM,CAACD,EAAqC,CACrEvD,EAAMwD,MAAM,CAACD,EAAqC,CAClDA,GAEEvD,EAAMwD,MAAM,CAACC,OADbF,EACsB,CAE1BD,GAActD,EAAMwD,MAAM,CAACF,EAA+B,CACxDtD,EAAMwD,MAAM,CAACF,EAA+B,CAC5CA,GAEEtD,EAAMwD,MAAM,CAACE,CADbJ,MACoB,EACV,OAAC,SAAED,CAAO,OAAErD,CAAK,kBAAE2D,CAAgB,CAAE,UACvDN,EACIrD,EAAMwD,MAAM,CAACE,OAAO,CACpBC,GAAoB3D,EAAMwD,MAAM,CAACG,EAAqC,CACpE3D,EAAMwD,MAAM,CAACG,EAAqC,CAClDA,GAEE3D,EAAMwD,MAAM,CAACI,OADbD,QAC4B,EACtB,OAAC,SAAEN,CAAO,OAAErD,CAAK,cAAE6D,CAAY,CAAE,UAC/CR,EACIrD,EAAMwD,MAAM,CAACE,OAAO,CACpBG,GAAgB7D,EAAMwD,MAAM,CAACK,EAAiC,CAC5D7D,EAAMwD,MAAM,CAACK,EAAiC,CAC9CA,GAEE7D,EAAMwD,MAAM,CAACE,GADbG,IACoB,EACb,OAAC,OAAE7D,CAAK,eAAE8D,CAAa,CAAE,UACxCA,EAAgB9D,EAAM+D,MAAM,CAACC,YAAY,CAAG,GACpC,OAAC,OAAEhE,CAAK,CAAE,SAAK,CAAC,IAAI,EAAEA,EAAMQ,OAAO,CAACC,CAAC,CAAC,EAAE,CAAC,EAIxC,OAAC,OAAET,CAAK,sBAAEiE,CAAoB,CAAE,UACvCA,GACAjE,EAAMwD,MAAM,CAACS,EAAyC,CAClDjE,EAAMwD,MAAM,CAACS,EAAyC,CACtDA,GAAwBjE,EAAMwD,MAAM,CAACC,SAAS,EAChC,OAAC,CAAEzD,OAAK,CAAE,UAAKA,EAAMwD,MAAM,CAACE,OAAO,EACvC,OAAC,OAAE1D,CAAK,CAAE,UAAKA,EAAMwD,MAAM,CAACE,OAAO,EAGhC,OAAC,OAAE1D,CAAK,CAAE,UAAKA,EAAMkD,UAAU,CAACC,MAAM,EAE/C,OAAC,OAAEnD,CAAK,CAAwB,SAAK,CAAC,EAAE,EAAEA,EAAMQ,OAAO,CAACC,CAAC,CAAC,IAAI,CAAC,GAE3E,GAE4BX,EAAAA,EAAMA,CAACO,QAAQ,8EAI3C,GAEwBP,EAAAA,EAAMA,CAACC,IAAI,2DAEnC,GAEiCD,EAAAA,EAAMA,CAACc,GAAG,oUAS/B,OAAC,OAAEZ,CAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,EAOrB,OAAC,OAAET,CAAK,CAAE,UAAKA,EAAMkD,UAAU,CAACC,MAAM,EAK1C,OAAC,OAAEnD,CAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,EAC/B,OAAC,OAAET,CAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,GAO9C,EAEkCX,EAAMA,CAACO,QAAQ,8NAKjC,OAAC,OAAEL,CAAK,CAAE,UAAKA,EAAMQ,OAAO,CAACC,CAAC,GC/CzC,IAAMyD,GAAa,IAIjB,UAACC,GAAAA,CAAAA,GAGGA,GAAa,KACxB,GAAM,sBAAEC,CAAoB,mBAAEC,CAAiB,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,CAAoBA,GAClE,kBAAEC,CAAgB,CAAE,CAAGF,EACvB,YAAEG,CAAU,CAAEC,eAAa,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAWA,GAC3C,CAACC,EAAgB,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,CAAoBA,GACxCC,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,CAAcA,GAC7B,YAAEC,CAAU,CAAE,CAAGJ,EAEjBK,EAAaC,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAC,GAEpBC,EAASC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAClB,MAAEC,CAAI,CAAE,CAAGF,GAAQG,OAAS,CAAC,EAC7BC,EAAaC,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACH,GAC3BI,EAAMF,EAAW9I,MAAM,CACzB,GAAGiJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,CAAEC,OAAQJ,CAAW,IAAI,CACvC,KACE,CAAEpJ,KAAMyJ,CAAI,OAAExJ,CAAK,CAAE,CAAGJ,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAAuByJ,GAGxDI,GAA8B,CAClC,KACA,MACA,OACA,KACA,KACA,QACD,CAEKC,GAAcF,GAAMG,OAAOD,YAa3BE,GAA8B,CAClCpH,OAAQ,GACRtB,MAd0B,CAcnB2I,EAdgC3I,MAErCuI,GAAclG,QAAQ,CAACqF,EAAW1H,KAAK,EACpC0H,EAAW1H,KAAK,CACjB,QAHF,GAcFE,WATgCwH,CASpBkB,EATgC5I,MAE1CuI,GAAclG,QAAQ,CAACqF,EAAW1H,KAAK,OACrC6I,EACAnB,EAAW1H,KAAK,MAHlB6I,EASFhI,MAAO6G,GAAYoB,cAAgB,GACnCtI,SAAUkH,GAAYlH,UAAY,GAClCG,QAAS+G,GAAY/G,SAAW,GAChCqB,QAAS,CACP+G,QAAS,MACTC,MAAOtB,GAAY1F,SAASgH,OAAS,GACrCC,MAAOvB,GAAY1F,SAASiH,OAAS,GACrCC,MAAOxB,GAAY1F,SAASkH,OAAS,GACrCC,KAAMzB,GAAY1F,SAASmH,MAAQ,GACnCC,WAAY1B,GAAY1F,SAASoH,YAAc,GAC/CC,WAAW,CACb,EACAtI,YAAa2G,GAAY4B,uBAAyB,GAClD3H,gBAAiB,GACjBD,aACE8G,IACA,GAAGd,GAAYlH,UAAY,GAAG,CAAC,EAAEkH,GAAY/G,SAAW,IAAI,CAC9DkB,gBAAiB,KACjBE,kBAAmB,KACnBH,eAAe,EACfM,aAAc,CACZrB,MAAO,OACPyB,MAAO,OACPiH,KAAM,OACNhH,KAAM,MACR,CACF,EAEMiH,GAAYlB,EACd,GAAO3F,OAA2B8G,CAAAA,EAAAA,EAAAA,EAAAA,CAAeA,CAACnB,GAClD,KACE,CAACoB,GAAWC,GAAa,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,CAAeA,GAC3CC,GAA4B,SAAdH,GAIdI,GAFeC,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,GAECnH,UAAU,CAACU,gBAAgB,EAAI,IAEvD0G,KAAgB1B,GAAM2B,QACxB3B,GAAM2B,OAAS3B,GAAM4B,qBAGnB,CAACC,CAFH,EAE0BC,GAAyB,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,IAC7D,CAACC,GAAYC,GAAc,CAAGF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,IACvC,CAACG,GAAaC,GAAe,CAAGJ,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,GACzC,CAACK,GAAeC,GAAiB,CAAGN,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,GAC7C,CAACO,GAAmBC,GAAqB,CAAGR,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,GAErDS,GAAYC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAe,CACtCC,KAAM,SACNC,eAAgB,SAChBC,cAAexC,GACfyC,aAAc,aACdC,kBAAkB,EAClBC,SAAUC,CAAAA,EAAAA,EAAAA,CAAAA,CAAWA,CAACxL,GACtByL,aADsCzL,CAEpC0L,iBAAiB,EACjBC,YAAY,CACd,CACF,GAEM,UACJzH,EAAQ,UACR0H,EAAQ,CACRC,UAAW,QAAEC,EAAM,CAAEC,gBAAa,CAAE,CACpCC,QAAK,CACLC,WAAQ,OACRC,EAAK,SACLC,EAAO,WACPC,EAAS,UACTC,EAAQ,CACT,CAAGrB,GAEEsB,GAAcN,GAAM,UACpBO,GAAaP,GAAM,SACnBQ,GAAgBR,GAAM,YACtBS,GAAeT,GAAM,WACrBU,GAAeV,GAAM,mBACrBW,GAAuBX,GAAM,mBAC7BY,GAAyBZ,GAAM,qBAC/Ba,GAAoBb,GAAM,gBAE1Bc,GACJ,CAAC,OAAO,CAACvK,QAAQ,CAACsK,GAAkBrK,KAAK,GACzC,CAAC,OAAO,CAACD,QAAQ,CAACsK,GAAkBpK,IAAI,EAEpCsK,GAAc,MAAOC,GACzB1N,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAC2N,EAAAA,EAAWA,CAAE,CACnBC,OAAQ,OACRC,KAAMC,KAAKC,SAAS,CAACL,EACvB,GACGM,IAAI,CAAC,GAASC,GACdC,KAAK,CAAC,IACL,MAAMC,CACR,GAEEC,GAAiB,aAAO,QAC5BnF,CAAM,SACNoF,CAAO,aACPC,CAAW,CAKZ,SACCtO,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAACuO,CAAAA,EAAAA,EAAAA,EAAAA,CAAiBA,CAAC,QAAEtF,UAAQoF,CAAQ,GAAI,CAC9CT,OAAQ,OACRC,KAAMC,KAAKC,SAAS,CAACO,EACvB,GACGN,IAAI,CAAC,IAGJ,GAFA7C,GAAc,IAEVqD,EAAgBC,OAAO,CAEzB,CAF2B,MAC3BpD,IAAe,GACR5C,GAAQiG,KAAKF,EAAgBC,OAAO,CAG/C,GACCP,KAAK,CAAC,IACL,MAAMC,CACR,IAEEQ,GAAoB,KACnBnB,IACHlB,GAAS,cADe,IAG1BO,QAAQpD,EAAW,CAAEmF,aAAa,CAAK,GAAG,IACnC,CAAC,GAAYC,EAAQC,KAAWC,QAAQC,GAAG,CAAC,QAAExC,CADyB,CAClB,IACzD0B,KAAK,CAAC,IACLnG,EAAWoG,EAAK,CACd5N,UAAW,aACX0O,SAAU,uBACZ,GACAjE,GAAyB,oBACzBG,IAAc,EAChB,EACJ,EAEM2D,GAAS,UACb9D,GAAyB,IACzBG,IAAc,GACd,IAAM+D,EAASpC,KACfnF,EAAqB,CACnBwH,SAAU,mBACVC,UAAW,CACTvN,MAAOQ,WAAW6M,EAAOhN,MAAM,EAAI,IACrC,CACF,GAEkC,QAAQ,CAAtCgN,EAAOpM,YAAY,CAACrB,KAAK,EAC3BkG,EAAqB,CACnBwH,SAAU,iBACZ,GAEgC,QAAQ,CAAtCD,EAAOpM,YAAY,CAACI,KAAK,EAC3ByE,EAAqB,CACnBwH,SAAU,iBACZ,GAE+B,QAAQ,CAArCD,EAAOpM,YAAY,CAACK,IAAI,EAC1BwE,EAAqB,CACnBwH,SAAU,eACZ,GAE+B,QAAQ,CAArCD,EAAOpM,YAAY,CAACqH,IAAI,EAC1BxC,EAAqB,CACnBwH,SAAU,gBACZ,GAEF,MAAMrH,GAAkBuH,QAAQnB,MAAM,IACpCa,QAAQC,GAAG,CAACb,EAAc,CACxB5N,UAAW,aACX0O,SAAU,uBACZ,EACF,GACA,IAAMK,EACJJ,EAAOvN,WAAW,EAAE5B,QACpBwP,EAAAA,EAAoBA,CAACpO,OAAO,CAACqO,IAAI,CAACN,EAAOvN,WAAW,EAAI,IAYpD+L,EAA+B,CACnCtM,SAAUqO,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACP,EAAO9N,QAAQ,EACvCG,QAASkO,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACP,EAAO3N,OAAO,EACrCX,MAZA,CAYO8O,SAZCR,EAAOtO,KAAK,CAETsO,EAAOpO,UAAU,CAEjBoO,EAAOtO,KAAK,CASvBgC,QAAS,CACP,GAAGsM,EAAOtM,OAAO,CACjB+G,QAASuF,EAAOtM,OAAO,CAAC+G,OAAO,EAAI,MACnCK,WAAY2F,CAAAA,EAAAA,EAAAA,EAAAA,CAAoBA,CAACT,EAAOtM,OAAO,CAACoH,UAAU,CAC5D,EACAN,aAAcwF,EAAOzN,KAAK,CAC1ByI,sBACEsD,IAAuB8B,EACnBJ,EAAOvN,WAAW,CAACG,OAAO,CAAC,IAAK,MAAMA,OAAO,CAAC,OAAQ,SACtD2H,EACNmG,wBACEpC,IAAuB,CAAC8B,EACpBJ,EAAOvN,WAAW,CAACG,OAAO,CAAC,IAAK,MAAMA,OAAO,CAAC,OAAQ,SACtD2H,EACN3G,aAAc+M,OAAOX,MAAM,CAACA,EAAOpM,YAAY,EAAEgN,MAAM,CACpDjO,GAAkBA,EAAM9B,MAAM,CAEnC,EAEMuO,EAA+B,CACnCpM,OAAQG,WAAW6M,EAAOhN,MAAM,EAChCK,gBAAiB2M,EAAO3M,eAAe,EAAI,GAC3CD,aAAc4M,EAAO5M,YAAY,EAAI,GACrCG,gBAA4C,SAA3ByM,EAAOzM,eAAe,CACvCsN,OAAQ,EACRvN,cAAe0M,EAAO1M,aACxB,EAEMwN,EAA0B,MAAMvC,GAAYC,GAAUQ,KAAK,CAAC,IAChEnG,EAAWoG,EAAc,CACvB5N,UAAW,iBACX0O,SAAU,aACZ,GAGEgB,EAAiBzP,OAAO,CAACyC,QAAQ,CAC/B,0CACA,IAEF,CACA0J,GAAS,QAAS,CAAEnM,QAASkB,EAAAA,EAAUA,CAAClB,OAAO,GAC/C2K,GAAc,KAGd8E,EAAiBzP,OAAO,CAACyC,QAAQ,CAC/B,uCACA,IAEF,CACA0J,GAAS,WAAY,CAAEnM,QAASc,EAAAA,EAAsBA,CAACd,OAAO,GAC9DmM,GAAS,UAAW,CAAEnM,QAASgB,EAAAA,EAAsBA,CAAChB,OAAO,GAC7D2K,IAAc,IAGd8E,EAAiBzP,OAAO,CAACyC,QAAQ,CAC/B,+CACA,GAGF0J,CADA,EACS,gBAAiB,CACxBnM,QACE,iEACJ,GAGAwK,GAAyB,0BACzBG,IAAc,EAElB,GAQA,GANqB0E,OAAOX,MAAM,CAAC1C,IAClBzM,MAAM,EAAE,CACvBoL,IAAc,GACd4B,GAAS8C,OAAOK,IAAI,CAAC1D,GAAO,CAAC,EAAE,GAG7B,CAACwD,EAAO,CACVhF,GAAyB,0BACzBG,IAAc,GACd,MACF,CADS1B,MAGH2E,GAAe,CACnBnF,OAAQC,GAAMiH,UAAY,GAC1B9B,QAAS2B,EAAMG,QAAQ,aACvB7B,CACF,GAAGJ,KAAK,CAAC,IACP/C,IAAc,GACdH,GAAyB,6BACzBjD,EAAWoG,EAAK,CACd5N,UAAW,aACX0O,SAAU,gBACZ,EACF,EAGF,EAqFA,MAnFAmB,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACFhG,IAAaA,KAAcE,IAC/BC,GAAaH,GAEjB,CAH8C,CAG3C,CAACA,GAAWE,GAAWC,GAAa,EAEvC6F,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACmB,GAAG,CAA1B7H,EAAW8H,OAAO,GACpBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,CAAC,CACnBC,MAAO,WACPC,SAAU,UACVC,UAAW,QACb,GAGAzI,EAAc,CACZuI,MAAO,eACPG,UAAW,CACTC,SAAU,CACRC,YAAa,CACXC,KAAM,CACR,EACAC,SAAU,CACR,CACEC,GAAI,uBACJC,KAAM,uBACNC,SAAU,WACVC,QAAS,GACTC,MAAO7G,GACP8G,SAAU,EACVC,MAAO,CACT,EACD,CAEL,CACF,IAEF9I,EAAW8H,OAAO,EAAI,CACxB,EAAG,EAAE,EAELD,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACJ3D,GAAcvK,MAAM,EAAE,EAEV,CACZqO,MAAO,eACPG,UAAW,CACTC,SAAU,CACRC,YAAa,CACXC,KAAM,CACR,EACAC,SAAU,CACR,CACEC,GAAI,uBACJC,KAAM,uBACNC,SAAU,WACVC,QAAS,GACTC,MAAO7G,GACP8G,SAAU,EACVC,MAhBaC,CAgBNpP,QAhBe8K,GAAa,KAAO,CAiB5C,EACD,CAEL,CACF,EAEJ,EAAG,CAACA,GAAY,EAIhBoD,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACRxD,GAAMtD,GACR,EAAG,CAAChB,EAAYY,EAAK,EAGrBkH,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACHhI,GACHmD,GAAiB,IAEfnD,GAAgBkD,CAHD,GAGkBF,IACnCK,IAAqB,EAEzB,EAAG,CAACrD,EAAa,EAGf,WAACmJ,EAAAA,CAAgBA,CAAAA,CAAC7R,MAAOA,YACvB,UAAC8R,IAAIA,UACH,CADGA,EACH,OAAC5Q,QAAAA,UAAO,CAAC,UAAU,EAAEsI,GAAMtI,OAAS,IAAI,KAE1C,UAAC6Q,GAAAA,EAAeA,CAAAA,UACd,UAACjL,GAAqBA,CACpBX,gBAAgB,CADIW,OAEpBkL,WAAW,OACXC,kBAAkB,OAClBC,cAAc,MACdC,aAAa,aAEb,UAACC,GAAAA,EAAwBA,CAAAA,CAACC,gBAAgB,aACvC,CAAC,CAAC7I,GACD,WAAC8I,GAAAA,EAAWA,CAAAA,WACV,UAACC,EAAAA,CAAOA,CAAAA,CAACC,UAAU,SAASC,EAAE,aAC3B,CAAC,UAAU,EAAEjJ,EAAKtI,KAAK,EAAE,GAE5B,UAAC6E,EAAAA,CAAGA,CAAAA,CAACoM,aAAa,cAChB,UAACO,EAAAA,CAAIA,CAAAA,CAAC/B,QAAS,EAAGgC,MAAO,CAAC,UAAW,UAAU,KAEhDnK,GAAiBoK,iBAAmB,UACnC,UAACC,EAAAA,CAAMA,CAAAA,CAAAA,GAEP,iCACE,WAACC,OAAAA,CAAKC,UAAU,IAACC,iBAAe,wBAC9B,UAACC,GAAcA,CAACD,UAADC,OAAgB,iCAC7B,WAAClN,EAAAA,CAAGA,CAAAA,CAACmM,cAAc,IAAIgB,OAAO,iBAC5B,UAACX,EAAAA,CAAOA,CAAAA,CAACY,EAAE,IAAC9M,GAAG,SAAS+M,YAAY,gBAAO,oBAG3C,UAAC7O,EAAAA,CAAIA,CAAAA,CAAC8O,WAAYrI,YAAiB,uCAGnC,WAACsI,GAAiBA,CAACnB,aAADmB,eACf,CAAC,IAAK,GAAI,GAAG,CAACC,GAAG,CAAC,GACjB,UAACC,GAAkBA,CAEjBC,KAAK,SAFYD,QAGR5B,SAAStE,GAAa,MAAQ9K,EACvC2E,WACE4D,GAAc,yBAAsBhB,EAEtC3C,iBACE2D,GAAc,yBAAsBhB,EAEtCjC,qBACEiD,GAAc,yBAAsBhB,EAEtCvC,iBACEuD,GAAc,uBAAoBhB,EAEpCrC,aACEqD,GAAc,eAAYhB,EAE5BpC,cAAeoD,GACf2I,QAAS,KACP9G,GAAS,SAAUpK,EAAOsC,QAAQ,GAAI,CACpC6O,YAAa,GACbC,gBAAgB,CAClB,GACAtL,EAAc,CACZuI,MAAO,sBACPrO,CACF,EACF,EACAqE,gBAAc,gCAEd,WAACjD,OAAAA,WAAK,OAAEpB,MA/BHA,IAkCT,UAACqR,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,SAAS,CACtB4O,MAAM,GACNC,UAAU,OACVC,QAAQ,IACRP,KAAK,SACLQ,UAAU,UACVxS,QAAQ,YACRyS,aAAW,SACXC,SAAU,CAAC,CAACrH,GAAOtK,MAAM,EAAE1B,SAAST,OACpC+T,QAAS,KACPnM,EAAqB,CACnBwH,SAAU,8BACZ,EACF,OAGJ,UAAC4E,EAAAA,CAASA,CAAAA,UAAEvH,GAAOtK,MAAM,EAAE1B,UAE1BoK,GACC,UAACnF,EAAAA,CAAGA,CAAAA,CAACiN,iBAAe,iCAClB,UAACsB,EAAAA,CAASA,CAAAA,CACRC,MAAO/K,EAAK4B,oBAAoB,EAAI,EACpCD,OAAQ3B,GAAM2B,OACdqJ,iBAAkB7R,WAAW2K,KAAgB,MAG/C,KAEJ,UAACvH,EAAAA,CAAGA,CAAAA,CAACO,UAAU,eACb,WAACmO,EAAAA,CAAQA,CAAAA,CACPC,gBAAgB,yDAChBrD,GAAG,6BAEH,UAAC9M,EAAAA,CAAIA,CAAAA,UAAC,0OAON,UAACA,EAAAA,CAAIA,CAAAA,UACH,UAACoC,EAAAA,CAAIA,CAAAA,CACHC,KAAK,4JACLC,gBAAc,yCACf,sEAUX,WAACoM,GAAcA,CAACD,UAADC,OAAgB,4BAC7B,UAACV,EAAAA,CAAOA,CAAAA,CAACY,EAAE,IAAC9M,GAAG,kBAAS,iBAGxB,UAACsO,GAAAA,EAAYA,CAAAA,CAACC,YAAY,kBACxB,WAACC,EAAAA,CAAMA,CAAAA,CACJ,GAAG3P,GAAS,QAAQ,CACrB4O,MAAM,QACNgB,SAAU,IACe,SAAS,CAA5BC,EAAE5J,MAAM,CAAChJ,KAAK,EAChByK,GAAS,kBAAc7C,GAGzB7E,GAAS,SACN4P,QAAQ,CAACC,GACTvG,KAAK,CAAC,KAEP,EACJ,YAEA,UAACwG,SAAAA,CAAO7S,MAAM,YAAG,kBAChBsH,GAAc8J,GAAG,CAAErS,IAClB,GAAqB,UAAjB,OAAOA,EACX,MACE,UAAC8T,SAAAA,CAA8B7S,MAAOjB,WACnCA,GADU,CAAC,MAAM,EAAEA,EAAAA,CAAO,CAIjC,QAGY,UAAfqM,GACC,UAACoH,GAAAA,EAAYA,CAAAA,CAACC,YAAY,kBACxB,UAACf,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,aAAa,CAC1B4O,MAAM,4BACNE,QAAQ,IACRiB,aAAcnI,GAAO1L,UAAU,EAAEN,YAGnC,KAEJ,UAAC6T,GAAAA,EAAYA,CAAAA,CAACC,YAAY,kBACxB,UAACf,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,WAAW,CACxB4O,MAAM,aACNE,QAAQ,IACRkB,OAAQ,IAENtI,GACE,eACA,GAAGmI,EAAE5J,MAAM,CAAChJ,KAAK,CAAC,CAAC,EAAEsL,GAAAA,CAAc,CACnC,CAAEkG,aAAa,EAAMC,gBAAgB,CAAK,GAG5C1O,GAAS,YACNgQ,MAAM,CAACH,GACPvG,KAAK,CAAC,KAEP,EACJ,EACAyG,aAAcnI,GAAOpL,QAAQ,EAAEZ,QAC/BqU,SACE,kDAIN,UAACR,GAAAA,EAAYA,CAAAA,CAACC,YAAY,kBACxB,UAACf,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,UAAU,CACvB4O,MAAM,YACNE,QAAQ,IACRkB,OAAQ,IAENtI,GACE,eACA,GAAGY,GAAc,CAAC,EAAEuH,EAAE5J,MAAM,CAAChJ,KAAK,EAAE,CACpC,CAAEwR,aAAa,EAAMC,gBAAgB,CAAK,GAG5C1O,GAAS,WACNgQ,MAAM,CAACH,GACPvG,KAAK,CAAC,KAEP,EACJ,EACAyG,aAAcnI,GAAOjL,OAAO,EAAEf,YAGlC,UAAC6T,GAAAA,EAAYA,CAAAA,CAACC,YAAY,kBACxB,UAACf,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,QAAQ,CACrB4O,MAAM,gBACNE,QAAQ,IACRiB,aAAcnI,GAAO/K,KAAK,EAAEjB,YAIhC,UAACiF,EAAAA,CAAGA,CAAAA,CAACmM,cAAc,eACjB,UAACkD,EAAAA,CAAaA,CAAAA,CAAgB,GAAGpJ,EAAS,QAI9C,UAACjG,EAAAA,CAAGA,CAAAA,CAACmM,cAAc,MAAMF,WAAW,IAAIkB,OAAO,gBAC7C,WAACD,GAAcA,WAAAA,CACb,SAACV,EAAAA,CAAOA,CAAAA,CAACY,EAAE,IAAC9M,GAAG,kBAAS,uCAGxB,UAACsO,GAAAA,EAAYA,CAAAA,UACX,UAACd,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,eAAe,CAC5B4O,MAAM,mDACNqB,SAAS,+FACTF,aAAcnI,GAAOlK,YAAY,EAAE9B,QACnCuU,UAAW,QAGf,WAACV,GAAAA,EAAYA,CAAAA,WACX,UAACW,EAAAA,CAAaA,CAAAA,CACX,GAAGpQ,GAAS,kBAAkB,CAC/B4O,MAAM,eACNyB,UAAW,EACXF,WAAWG,GACXP,aAAcnI,GAAOjK,eAAe,EAAE/B,UAExC,WAAC2U,GAAUA,OAAAA,IACRD,KAAiB9H,IAAcrN,OAAdqN,EAAwB,EAAI,IAAI,kCAO1D,UAAC3H,EAAAA,CAAGA,CAAAA,CACFmM,cAAc,IACdgB,OAAO,OACPF,iBAAe,+BAEf,UAAC0C,EAAAA,CAAiBA,CAAAA,CACf,GAAG1J,EAAS,CACb5I,aAAcyK,GACd8H,MACE7H,GACE,WAAC6G,GAAAA,EAAYA,CAAAA,CAACiB,cAAc,cAC1B,UAAC/B,EAAAA,CAASA,CAAAA,CACP,GAAG3O,GAAS,cAAc,CAC3B4O,MAAM,eACNL,KAAK,MACLO,QAAQ,IACRiB,aAAcnI,GAAO7K,WAAW,EAAEnB,UAEpC,UAACiF,EAAAA,CAAGA,CAAAA,CAACO,UAAU,cACb,UAACmO,EAAAA,CAAQA,CAAAA,CACPC,gBAAgB,8BAChBrD,GAAG,gCAEH,UAAC9M,EAAAA,CAAIA,CAAAA,CAAC4N,aAAa,aAAI,0NAW3B,SAKV,WAACc,GAAcA,CAACD,UAADC,OAAgB,6BAC7B,UAACV,EAAAA,CAAOA,CAAAA,CAACJ,aAAa,MAAMgB,EAAE,IAAC9M,GAAG,kBAAS,aAG3C,UAACrB,GAAiBA,CACf,GAAGgH,EAAS,CACbxJ,OAAQ8K,GACRvK,gBAAiB4K,GACjB1K,kBAAmB2K,QAGvB,UAAC7H,EAAAA,CAAGA,CAAAA,CAACO,UAAU,cACb,WAACuP,GAAmBA,WAClB,KADkBA,IAClB,EAAC5O,EAAAA,CAAMA,CAAAA,CACLwM,KAAK,SACLqC,WAAW,WACXpC,QAAUqB,IACRA,EAAEgB,cAAc,GAChBnJ,GAAS,iBAAiB,GAC1BqC,IACF,EACA+G,SAAUxK,IAAcE,GACxB7E,gBAAc,oCAEd,UAACN,EAAAA,CAAMA,CAAAA,CAACC,OAAQyP,EAAAA,GAAcA,GAAI,+BAGpC,UAAChP,EAAAA,CAAMA,CAAAA,CACLwM,KAAK,SACLqC,WAAW,UACXpC,QAAUqB,IACRA,EAAEgB,cAAc,GAChBnJ,GAAS,iBAAiB,GAC1BqC,IACF,EACA+G,SACExK,IACAE,IACAiC,aAC2B,SAA3BC,GAEF/G,gBAAc,gCACf,2BAGAiF,GACC,WAAC/F,EAAAA,CAAGA,CAAAA,CAACO,UAAU,IAAI6L,aAAa,iBAC9B,UAAC5N,EAAAA,CAAIA,CAAAA,UAAC,uEAIN,UAAC0C,EAAAA,CAAMA,CAAAA,CACLwM,KAAK,SACLqC,WAAW,UACXpC,QAAS,KACP3K,GAAQmN,QACV,EACArP,gBAAc,iCACf,yBAID,aAITwE,GAAsBhL,MAAM,CAC3B,UAAC0F,EAAAA,CAAGA,CAAAA,UACF,UAACoQ,GAAAA,EAAcA,CAAAA,UACb,UAAC9B,EAAAA,CAASA,CAAAA,UAAEhJ,SAGd,mBAUxB,EAAE,GCx3BW,IACX,IAQa+K,CARb,GAQiBA,CARjB,CAQkB,CARlB,sBACE,UAACtE,IAAIA,UACH,CADGA,EACH,OAACuE,OAAAA,CAAK/E,KAAK,SAASgF,QAAQ,cAE9B,UAACvO,GAAUA,CAAAA,MAAAA,yFCNR,IAAMkG,EAAc,GAAGsI,EAAAA,EAAYA,CAAC,OAAO,CAAC,CAEtC1H,EAAoB,OAAC,QAChCtF,CAAM,SACNoF,CAAO,CAIR,SAAK,GAAG4H,EAAAA,EAAYA,CAAC,OAAO,EAAEhN,EAAO,QAAQ,EAAEoF,EAAQ,UAAU,CAAC,EAAC,EAEtC,OAAC,YAAE6H,CAAU,CAA0B,SACnE,GAAGD,EAAAA,EAAYA,CAAC,WAAW,EAAEC,EAAAA,CAAY,EAAC,EAEP,OAAC,QAAEjN,CAAM,CAAsB,SAClE,GAAGgN,EAAAA,EAAYA,CAAC,OAAO,EAAEhN,EAAO,UAAU,CAAC,EAAC,sGChBvC,IAAMlE,EAAmB,IAC9B,GAAI,SAAOoR,EACT,EAD4B,IACrB,GAET,IAAMC,EAAQD,EAAE3R,QAAQ,GAAG6R,KAAK,CAAC,KAEjC,MAAO,GAAGD,CAAK,CAAC,EAAE,CAACtU,OAAO,CAAC,wBAAyB,OAClDsU,CAAK,CAAC,EAAE,CAAG,CAAC,CAAC,EAAEA,CAAK,CAAC,EAAE,EAAE,CAAG,IAC5B,EAGSE,EAAwBzU,GACnC,GAAoB,IAAjBA,EAAM9B,MAAM,CAAS,IAAM,KAAK8B,EAAAA,CAAO,CAAC,EAEH,IACxC,IAAMkO,EAAS5M,EAAKrB,OAAO,CAAC,WAAY,OAAOT,IAAI,GACnD,OAAO0O,EAAOwG,MAAM,CAAC,GAAGC,WAAW,GAAKzG,EAAO0G,KAAK,CAAC,EACvD,EAAE,EAU8B,GAC9BtT,EAAKrB,OAAO,CAAC,SAAU,CAAC4U,EAAgBC,IAC5B,IAAVA,EAAcD,EAAOE,WAAW,GAAK,CAAC,CAAC,EAAEF,EAAOE,WAAW,IAAI,EAGtDC,EAA0B,CACrChV,EACAgJ,KAEA,IAAMiM,EAAU,EAASjM,EAAU,WACnC,IAAgBkM,OAAOC,iBAAiB,EAAID,OAAOE,KAAK,CAACH,GAChD,EAEFI,KAH4D,KAGlD,CAACJ,EAAU,EAAII,KAAKC,IAAI,CAACL,GAAWI,KAAKE,KAAK,CAACN,GAClE,EAAE,EAEyB,IACzB,IAAMO,EAASN,OAAO1U,UAAU,CAC9B,MAAMiV,KAAK,CAAS,IAARzV,GAAe,IAAE,CAAG2C,QAAQ,IACxCC,OAAO,CAAC,UACV,OAAWwS,KAAK,CAAC5U,WAAWgV,KAAYN,OAAOE,KAAK,CAACpV,GAC5C,IAEFwV,CAHsD,EAI7D,EAEmC,IACnC,IAAMA,EAASN,OAAO1U,UAAU,CAC9B,CAAC6U,KAAKI,KAAK,CAAS,IAARzV,GAAe,IAAE,CAAG2C,QAAQ,IACxCC,OAAO,CAAC,UACV,OAAWwS,KAAK,CAAC5U,WAAWgV,KAAYN,OAAOE,KAAK,CAACpV,GAC5C,IAEFkD,CAHsD,CAGrCsS,EAC1B,EAAE","sources":["webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/ProgressBar/styles.js","webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/ProgressBar/index.js","webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/TextAreaField/styles.js","webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/TextAreaField/index.js","webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/Totaliser/styles.js","webpack://_N_E/../../node_modules/@cruk/cruk-react-components/lib/src/components/Totaliser/index.js","webpack://_N_E/?b92c","webpack://_N_E/./src/hooks/useSwrGet.ts","webpack://_N_E/./src/components/DonatePage/donateFormValidation.validation.ts","webpack://_N_E/./src/components/DonatePageGiftAid/styles.ts","webpack://_N_E/./src/components/DonatePageGiftAid/index.tsx","webpack://_N_E/./src/components/DonatePage/styles.ts","webpack://_N_E/./src/components/DonatePage/index.tsx","webpack://_N_E/./src/pages/donate/[slug]/details.tsx","webpack://_N_E/./src/services/donationService.ts","webpack://_N_E/./src/utils/formatUtils.ts"],"sourcesContent":["import{__makeTemplateObject as n}from\"../../../node_modules/tslib/tslib.es6.js\";import t,{css as o,keyframes as e}from\"styled-components\";var r,i,s,a,h,c,d,f,l,p,u,g,b,x,m,k=\"16px\",w=function(){return e(s||(s=n([\"\\n 0% {\\n width: 0px;\\n height: 0px;\\n opacity: 0;\\n }\\n 50% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n width: 64px;\\n height: 64px;\\n right: -32px;\\n }\\n\"],[\"\\n 0% {\\n width: 0px;\\n height: 0px;\\n opacity: 0;\\n }\\n 50% {\\n opacity: 1;\\n }\\n 100% {\\n opacity: 0;\\n width: 64px;\\n height: 64px;\\n right: -32px;\\n }\\n\"])))},y=function(){return e(a||(a=n([\"\\n 0% {\\n transform: scale(1);\\n border-radius: 0px;\\n\\n }\\n 50% {\\n transform:scale(1.025);\\n }\\n 100% {\\n transform: scale(1);\\n border-radius: 0px;\\n }\\n\"],[\"\\n 0% {\\n transform: scale(1);\\n border-radius: 0px;\\n\\n }\\n 50% {\\n transform:scale(1.025);\\n }\\n 100% {\\n transform: scale(1);\\n border-radius: 0px;\\n }\\n\"])))},v=t.div(h||(h=n([\"\\n margin-top: \",\";\\n\"],[\"\\n margin-top: \",\";\\n\"])),k),$=t.div(d||(d=n([\"\\n position: relative;\\n height: \",\";\\n margin-bottom: 0;\\n background-color: \",\";\\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\\n\\n \",\"\\n\"],[\"\\n position: relative;\\n height: \",\";\\n margin-bottom: 0;\\n background-color: \",\";\\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\\n\\n \",\"\\n\"])),k,(function(n){return n.theme.colors.progressBarBackground}),(function(t){var e=t.$percentage,r=t.$secondaryPercentage;return(100===e||100===r)&&o(c||(c=n([\"\\n animation: \",\" 0.3s 0.5s 1 ease-out;\\n \"],[\"\\n animation: \",\" 0.3s 0.5s 1 ease-out;\\n \"])),y)})),D=t.div(l||(l=n([\"\\n position: absolute;\\n left: 0;\\n height: \",\";\\n background-color: \",\";\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\\n transition: width 0.6s ease;\\n width: \",'%;\\n\\n &::before {\\n content: \"\";\\n display: inline-block;\\n position: absolute;\\n margin: auto;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n width: 0px;\\n height: 0px;\\n border-radius: 50%;\\n opacity: 0;\\n filter: blur(2px);\\n background-color: ',\";\\n\\n \",\"\\n }\\n\"],[\"\\n position: absolute;\\n left: 0;\\n height: \",\";\\n background-color: \",\";\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\\n transition: width 0.6s ease;\\n width: \",'%;\\n\\n &::before {\\n content: \"\";\\n display: inline-block;\\n position: absolute;\\n margin: auto;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n width: 0px;\\n height: 0px;\\n border-radius: 50%;\\n opacity: 0;\\n filter: blur(2px);\\n background-color: ',\";\\n\\n \",\"\\n }\\n\"])),k,(function(n){var t=n.$barColor,o=n.$isSecondary,e=n.theme;return t||o?e.colors.progressBarSecondary:e.colors.progressBar}),(function(n){return n.$percentage}),(function(n){var t=n.$barColor,o=n.$isSecondary,e=n.theme.colors,r=e.progressBar,i=e.progressBarSecondary;return t||o?i:r}),(function(t){return 100===t.$percentage&&o(f||(f=n([\"\\n animation: \",\" 0.33s 0.75s 3 ease-in;\\n \"],[\"\\n animation: \",\" 0.33s 0.75s 3 ease-in;\\n \"])),w)})),S=t.span(p||(p=n([\"\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n border: 0;\\n\"],[\"\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n border: 0;\\n\"]))),z=t.div(u||(u=n([\"\\n position: relative;\\n width: \",\";\\n height: \",\";\\n background: none;\\n margin: 0 auto;\\n box-shadow: none;\\n\"],[\"\\n position: relative;\\n width: \",\";\\n height: \",\";\\n background: none;\\n margin: 0 auto;\\n box-shadow: none;\\n\"])),(function(n){return n.$circleSize}),(function(n){return n.$circleSize})),B=t.svg(g||(g=n([\"\\n position: absolute;\\n transform: rotate(-90deg);\\n fill: none;\\n stroke-linecap: round;\\n width: 100%;\\n height: 100%;\\n\"],[\"\\n position: absolute;\\n transform: rotate(-90deg);\\n fill: none;\\n stroke-linecap: round;\\n width: 100%;\\n height: 100%;\\n\"]))),I=t.circle(b||(b=n([\"\\n stroke: \",\";\\n\"],[\"\\n stroke: \",\";\\n\"])),(function(n){return n.theme.tokenColors.grey_200})),C=t.circle(x||(x=n([\"\\n stroke: \",\";\\n animation: \",\"\\n 1s linear;\\n\"],[\"\\n stroke: \",\";\\n animation: \",\"\\n 1s linear;\\n\"])),(function(n){var t=n.$isSecondary,o=n.$barColor,e=n.theme.colors,r=e.circularProgress,i=e.circularProgressSecondary;return o||t?i:r}),(function(t){var o=t.$isSecondary,s=t.strokeDashoffset,a=t.$strokeDashoffsetInit;return o?function(t){var o=t.$strokeDashoffsetInit,r=t.strokeDashoffset;return e(i||(i=n([\"\\n 0% {\\n stroke-dashoffset: \",\" ;\\n }\\n 100% {\\n stroke-dashoffset: \",\" ;\\n }\\n\"],[\"\\n 0% {\\n stroke-dashoffset: \",\" ;\\n }\\n 100% {\\n stroke-dashoffset: \",\" ;\\n }\\n\"])),o,r)}({strokeDashoffset:s,$strokeDashoffsetInit:a}):function(t){var o=t.$strokeDashoffsetInit,i=t.strokeDashoffset;return e(r||(r=n([\"\\n 0% {\\n stroke-dashoffset: \",\" ;\\n }\\n 50% {\\n stroke-dashoffset: \",\" ;\\n }\\n 100% {\\n stroke-dashoffset: \",\" ;\\n }\\n\"],[\"\\n 0% {\\n stroke-dashoffset: \",\" ;\\n }\\n 50% {\\n stroke-dashoffset: \",\" ;\\n }\\n 100% {\\n stroke-dashoffset: \",\" ;\\n }\\n\"])),o,i,i)}({strokeDashoffset:s,$strokeDashoffsetInit:a})})),j=t.div(m||(m=n([\"\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 50%;\\n z-index: 2;\\n font-size: \",\";\\n line-height: \",\";\\n text-align: center;\\n height: 100%;\\n color: \",\";\\n\"],[\"\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 50%;\\n z-index: 2;\\n font-size: \",\";\\n line-height: \",\";\\n text-align: center;\\n height: 100%;\\n color: \",\";\\n\"])),(function(n){return n.theme.fontSizes.l}),(function(n){return n.theme.fontSizes.l}),(function(n){return n.theme.colors.textDark}));export{B as CircleSvg,j as CircularValue,z as CircularWrapper,I as EmptyCircle,C as FullCircle,D as LineProgressBar,$ as LineProgressBarWrapper,v as ProgressBarWrapper,S as ScreenReaderOnly};\n//# sourceMappingURL=styles.js.map\n","import{__assign as e}from\"../../../node_modules/tslib/tslib.es6.js\";import r from\"react\";import{useTheme as t,ThemeProvider as o}from\"styled-components\";import{crukTheme as a}from\"../../themes/cruk.js\";import{ProgressBarWrapper as c,CircularWrapper as n,CircleSvg as s,EmptyCircle as l,FullCircle as m,CircularValue as i,LineProgressBarWrapper as f,LineProgressBar as d,ScreenReaderOnly as p}from\"./styles.js\";function h(h){var y=h.percentage,$=void 0===y?0:y,E=h.isCircular,u=h.circleContents,k=h.circleSize,b=h.barColor,C=h.secondaryBarColor,g=h.secondaryPercentage,x=h.children,D=t(),N=e(e({},a),D),S=Number.isNaN($)?0:$,j=S>100?100:S,v=\"\".concat(S,\"%\"),I=g&&!Number.isNaN(g)?g:0,P=I>100?100:I,W=\"\".concat(\"string\"==typeof u?u:\"\",\" \").concat(v,\"% Complete\"),z=u||v,B=58,w=2*Math.PI*B;return r.createElement(o,{theme:N},r.createElement(c,null,E?r.createElement(n,{$circleSize:k||\"90px\"},r.createElement(s,{viewBox:\"0 0 \".concat(128,\" \").concat(128)},r.createElement(l,{cx:64,cy:64,r:B,strokeWidth:6}),r.createElement(m,{$isSecondary:!0,$barColor:C,cx:64,cy:64,r:B,strokeWidth:6,strokeDasharray:w,strokeDashoffset:w*(1-P/100),$strokeDashoffsetInit:w}),r.createElement(m,{$barColor:b,cx:64,cy:64,r:B,strokeWidth:6,strokeDasharray:w,strokeDashoffset:w*(1-j/100),$strokeDashoffsetInit:w})),r.createElement(i,null,z)):r.createElement(f,{$percentage:j,$secondaryPercentage:P},r.createElement(d,{$isSecondary:!0,$percentage:P,$barColor:C}),r.createElement(d,{$percentage:j,$barColor:b}),r.createElement(p,null,W)),x))}export{h as ProgressBar,h as default};\n//# sourceMappingURL=index.js.map\n","import{__makeTemplateObject as n}from\"../../../node_modules/tslib/tslib.es6.js\";import o,{css as r}from\"styled-components\";var e,t,i=o.textarea(t||(t=n([\"\\n resize: \",\";\\n background-color: \",\";\\n background-image: none;\\n border: \",\";\\n color: \",\";\\n display: block;\\n font-family: \",\";\\n font-size: \",\";\\n padding: 6px 8px;\\n width: 100%;\\n height: \",\";\\n\\n transition: border-color 150ms linear;\\n &:hover {\\n border-color: \",\";\\n }\\n &:disabled {\\n border-color: \",\";\\n color: \",\";\\n }\\n\\n \",\";\\n\"],[\"\\n resize: \",\";\\n background-color: \",\";\\n background-image: none;\\n border: \",\";\\n color: \",\";\\n display: block;\\n font-family: \",\";\\n font-size: \",\";\\n padding: 6px 8px;\\n width: 100%;\\n height: \",\";\\n\\n transition: border-color 150ms linear;\\n &:hover {\\n border-color: \",\";\\n }\\n &:disabled {\\n border-color: \",\";\\n color: \",\";\\n }\\n\\n \",\";\\n\"])),(function(n){return n.$resize}),(function(n){return n.theme.colors.backgroundLight}),(function(n){var o=n.theme,r=n.$hasError;return\"solid \".concat(o.utilities.inputBorderWidth,\"\\n \").concat(r?o.colors.textError:o.colors.textInputBorder)}),(function(n){return n.theme.colors.textDark}),(function(n){return n.theme.typography.fontFamilyBase}),(function(n){return n.theme.fontSizes.m}),(function(n){var o=n.$lineCount,r=n.theme;return\"calc(\".concat(r.typography.lineHeight,\" * \").concat(o,\")\")}),(function(n){return n.theme.colors.secondary}),(function(n){return n.theme.colors.disabled}),(function(n){return n.theme.colors.disabled}),(function(o){var t=o.theme;return t.utilities.useDefaultFocusRect?null:r(e||(e=n([\"\\n &:focus {\\n outline: 0;\\n border-color: \",\";\\n }\\n \"],[\"\\n &:focus {\\n outline: 0;\\n border-color: \",\";\\n }\\n \"])),t.colors.tertiary)}));export{i as StyledTextArea,i as default};\n//# sourceMappingURL=styles.js.map\n","import{__rest as r,__assign as e}from\"../../../node_modules/tslib/tslib.es6.js\";import i from\"react\";import{useTheme as t}from\"styled-components\";import{crukTheme as o}from\"../../themes/cruk.js\";import{ErrorText as s}from\"../ErrorText/index.js\";import{LabelWrapper as a}from\"../LabelWrapper/index.js\";import n from\"./styles.js\";var m=function(m){var d=m.errorMessage,l=m.hasError,p=m.hintText,c=m.label,f=m.resize,u=void 0===f?\"vertical\":f,h=m.lineCount,x=void 0===h?3:h,b=m.ref,v=r(m,[\"errorMessage\",\"hasError\",\"hintText\",\"label\",\"resize\",\"lineCount\",\"ref\"]),E=t(),j=e(e({},o),E);return i.createElement(a,{label:c,hintText:p,required:v.required||!1},i.createElement(n,e({},v,{\"aria-invalid\":l||!!d||!1,\"aria-describedby\":v.id&&d?\"\".concat(v.id,\"-error\"):void 0,$hasError:l||!!d||!1,$resize:u,$lineCount:x,theme:j,ref:b,\"data-hj-suppress\":!0})),!!d&&i.createElement(s,{marginTop:\"xxs\",id:v.id?\"\".concat(v.id,\"-error\"):void 0},d))};export{m as TextAreaField,m as default};\n//# sourceMappingURL=index.js.map\n","import{__makeTemplateObject as n}from\"../../../node_modules/tslib/tslib.es6.js\";import t,{css as o}from\"styled-components\";import{ProgressBar as r}from\"../ProgressBar/index.js\";var e,i,a,l,f,m,p,s,d,c,u,g=t.div(e||(e=n([\"\\n text-align: center;\\n background-color: \",\";\\n border-radius: 3.2rem;\\n padding: 5px;\\n position: relative;\\n p {\\n margin: 0;\\n }\\n\"],[\"\\n text-align: center;\\n background-color: \",\";\\n border-radius: 3.2rem;\\n padding: 5px;\\n position: relative;\\n p {\\n margin: 0;\\n }\\n\"])),(function(n){return n.theme.colors.totaliserBubbleColor})),y=t.div(a||(a=n([\"\\n padding: 0 46px 12px;\\n margin-top: \",\";\\n position: relative;\\n\\n \",\";\\n\"],[\"\\n padding: 0 46px 12px;\\n margin-top: \",\";\\n position: relative;\\n\\n \",\";\\n\"])),(function(n){return n.theme.spacing.s}),(function(t){var r=t.$isCompact,e=t.theme;return!0!=!!r&&o(i||(i=n(['\\n div > div > div:not(:first-child) {\\n &:after {\\n content: \"\\\\25bc\";\\n color: ',\";\\n position: absolute;\\n top: -30px;\\n right: -15px;\\n font-size: 32px;\\n }\\n }\\n \"],['\\n div > div > div:not(:first-child) {\\n &:after {\\n content: \"\\\\\\\\25bc\";\\n color: ',\";\\n position: absolute;\\n top: -30px;\\n right: -15px;\\n font-size: 32px;\\n }\\n }\\n \"])),e.colors.totaliserBubbleColor)})),h=t.p(l||(l=n([\"\\n color: \",\";\\n font-size: 2.625rem;\\n line-height: 3rem;\\n font-family: \",\";\\n text-transform: \",\";\\n\"],[\"\\n color: \",\";\\n font-size: 2.625rem;\\n line-height: 3rem;\\n font-family: \",\";\\n text-transform: \",\";\\n\"])),(function(n){return n.theme.colors.totaliserBubbleTotalColor}),(function(n){return n.theme.typography.fontFamilyHeadings}),(function(n){return n.theme.typography.headerTextTransform})),x=t.p(f||(f=n([\"\\n color: \",\";\\n font-family: \",\";\\n text-transform: \",\";\\n\"],[\"\\n color: \",\";\\n font-family: \",\";\\n text-transform: \",\";\\n\"])),(function(n){return n.theme.colors.totaliserBubbleTextColor}),(function(n){return n.theme.typography.fontFamilyHeadings}),(function(n){return n.theme.typography.headerTextTransform})),b=t.p(m||(m=n([\"\\n color: \",\";\\n font-family: \",\";\\n text-transform: \",\";\\n\"],[\"\\n color: \",\";\\n font-family: \",\";\\n text-transform: \",\";\\n\"])),(function(n){return n.theme.colors.totaliserBubbleTotalColor}),(function(n){return n.theme.typography.fontFamilyHeadings}),(function(n){return n.theme.typography.headerTextTransform})),v=t.span(p||(p=n([\"\\n display: block;\\n text-align: right;\\n margin-top: 12px;\\n margin-bottom: 0;\\n font-family: \",\";\\n\"],[\"\\n display: block;\\n text-align: right;\\n margin-top: 12px;\\n margin-bottom: 0;\\n font-family: \",\";\\n\"])),(function(n){return n.theme.typography.fontFamilyBase})),T=t.div(d||(d=n([\"\\n font-family: \",\";\\n margin: 0;\\n \",\"\\n\"],[\"\\n font-family: \",\";\\n margin: 0;\\n \",\"\\n\"])),(function(n){return n.theme.typography.fontFamilyHeadings}),(function(t){return t.$isCompact&&o(s||(s=n([\"\\n \",\" {\\n border: none;\\n padding: 0;\\n }\\n \"],[\"\\n \",\" {\\n border: none;\\n padding: 0;\\n }\\n \"])),y)})),B=t.div(c||(c=n([\"\\n justify-content: flex-end;\\n display: flex;\\n\"],[\"\\n justify-content: flex-end;\\n display: flex;\\n\"]))),C=t(r)(u||(u=n([\"\"],[\"\"])));export{x as BubbleText,g as BubbleWrapper,B as CompactWrapper,b as GiftAid,y as ProgressBarWrapper,C as StyledProgressBar,v as Summary,h as Total,T as TotaliserWrapper};\n//# sourceMappingURL=styles.js.map\n","import{__assign as e}from\"../../../node_modules/tslib/tslib.es6.js\";import t from\"react\";import{useTheme as n}from\"styled-components\";import{calculatePercentRounded as r,formatMoneyWithCommas as m}from\"../../utils/Helper.js\";import{crukTheme as l}from\"../../themes/cruk.js\";import{Text as a}from\"../Text/index.js\";import{Badge as o}from\"../Badge/index.js\";import{Box as i}from\"../Box/index.js\";import{TotaliserWrapper as c,BubbleWrapper as s,BubbleText as d,Total as p,GiftAid as u,ProgressBarWrapper as E,StyledProgressBar as f,Summary as g,CompactWrapper as h}from\"./styles.js\";function x(x){var j=x.total,v=x.additionalAmount,y=x.giftAid,A=x.target,B=void 0===A?null:A,C=x.isCompact,b=x.summaryMessage,H=void 0===b?void 0:b,T=x.children,$=n(),k=e(e({},l),$),z=r(+j,B||0),F=r(v?+j+(v||0):0,B||0),G=\"\".concat(z,\"% of the £\").concat(m(B||0),\" target\");return t.createElement(c,{$isCompact:C||!1,theme:k},C?t.createElement(i,{marginHorizontal:\"none\",marginRight:\"xxs\",marginBottom:\"none\"},t.createElement(o,null,\"£\".concat(m(j)))):t.createElement(s,{theme:k},t.createElement(d,null,\"Total raised\"),t.createElement(p,null,\"£\",m(j)),t.createElement(u,null,\"+ £\",m(y||0),\" Gift Aid\")),(!!B||!!H)&&t.createElement(t.Fragment,null,t.createElement(E,{$isCompact:C||!1,theme:k},t.createElement(f,{theme:k,percentage:z,secondaryPercentage:F}),C?t.createElement(h,{theme:k},null!==B&&t.createElement(g,null,t.createElement(a,{as:\"span\"},G))):H?t.createElement(g,null,H):t.createElement(g,null,t.createElement(a,{as:\"span\"},G)))),T)}export{x as Totaliser,x as default};\n//# sourceMappingURL=index.js.map\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/donate/[slug]/details\",\n function () {\n return require(\"private-next-pages/donate/[slug]/details.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/donate/[slug]/details\"])\n });\n }\n ","import useSWR, {\n type Key,\n type KeyedMutator,\n type SWRConfiguration,\n type SWRResponse,\n} from \"swr\";\n\nimport { fetcher } from \"@fwa/src/services/apiClient\";\nimport { trackDataDogError } from \"@fwa/src/services/dataDog\";\nimport { type FwsResponseData } from \"@fwa/src/types\";\n\nexport type UseSwrGetResponse = Omit<\n SWRResponse,\n \"data\" | \"error\"\n> & {\n totalItems: number;\n data: ResponseDataType | null;\n error: Error | null;\n mutate: KeyedMutator;\n};\n\nexport const useSwrGet = (\n key: Key,\n config?: SWRConfiguration,\n): UseSwrGetResponse => {\n const { data, error, mutate, isValidating, isLoading } = useSWR(\n typeof key === \"string\" && key?.length ? key : null, // only fetch data if we have a url\n fetcher,\n config,\n );\n\n const fwaResponseData = data as FwsResponseData;\n const typedData = data as ResponseDataType;\n const typedError = error as Error;\n\n // This only appears on FWS responses tha return lists\n const totalItems: number = fwaResponseData?.metadata?.count\n ? fwaResponseData.metadata.count\n : 0;\n\n if (error) {\n trackDataDogError(typedError, {\n component: \"useSwrGet\",\n key,\n message: typedError.message,\n });\n }\n\n return {\n data: typedData || null,\n error: typedError || null,\n mutate: mutate as KeyedMutator,\n isLoading,\n isValidating,\n totalItems,\n };\n};\n\nexport default useSwrGet;\n","import * as z from \"zod\";\nimport {\n regexEmail,\n regexNameWithAnd,\n regexTelephone,\n RegexMoney,\n regexSurnameExclusions,\n regexFornameExclusions,\n} from \"@fwa/src/utils/formUtils\";\n\nimport { addressValidation } from \"@fwa/src/components/AddressFields/addressFieldsValidation.validation\";\nimport { suppresionValidation } from \"@fwa/src/components/SuppressionFields/suppressionFieldsValidation.validation\";\n\nexport const donateValidation = z\n .object({\n title: z.enum([\"\", \"Mr\", \"Mrs\", \"Miss\", \"Ms\", \"Mx\", \"Other\"]).optional(),\n titleOther: z\n .string()\n .min(2, \"Title should be at least 2 characters long.\")\n .max(50, \"Title should be at most 50 characters long.\")\n .regex(regexNameWithAnd.pattern, `Title ${regexNameWithAnd.message}`)\n .optional(),\n forename: z\n .string()\n .trim()\n .min(1, \"First name field is required.\")\n .min(\n 2,\n \"First name should be at least 2 characters long. You can add a different name on your donation later.\",\n )\n .max(\n 50,\n \"First name should be at most 50 characters long. You can add a different name on your donation later.\",\n )\n .regex(\n regexFornameExclusions.pattern,\n \"Please only enter your formal name here. You can add a different name on your donation later.\",\n )\n .regex(\n /^(?!.*(^and | and | and$|&|\\+))/i,\n \"Please enter only one person's name.\",\n )\n .regex(\n regexNameWithAnd.pattern,\n `First name ${regexNameWithAnd.message} You can add a different name on your donation later.`,\n ),\n surname: z\n .string()\n .trim()\n .min(1, \"Last name field is required.\")\n .min(\n 2,\n \"Last name should be at least 2 characters long. You can add a different name on your donation later.\",\n )\n .max(\n 50,\n \"Last name should be at most 50 characters long. You can add a different name on your donation later.\",\n )\n .regex(\n regexSurnameExclusions.pattern,\n \"Please only enter your formal name here. You can add a different name on your donation later.\",\n )\n .regex(\n /^(?!.*(^and | and | and$|&|\\+))/i,\n \"Please enter only one person's name.\",\n )\n .regex(\n regexNameWithAnd.pattern,\n `Last name ${regexNameWithAnd.message} You can add a different name on your donation later.`,\n ),\n email: z\n .string()\n .trim()\n .min(1, \"Email address field is required.\")\n .min(7, \"Email address should be at least 7 characters long.\")\n .max(50, \"Email address should be at most 50 characters long.\")\n // .email(\"Please enter a valid email address.\")\n .regex(regexEmail.pattern, regexEmail.message),\n phoneNumber: z\n .string()\n .transform((value) => value.replace(/\\s+/g, \"\"))\n .pipe(\n z\n .string()\n .trim()\n .min(10, \"Phone number should be at least 10 characters long.\")\n .max(16, \"Phone number should be at most 16 characters long.\")\n .regex(regexTelephone.pattern, regexTelephone.message)\n .or(z.literal(\"\")), // allow empty\n ),\n amount: z\n .string()\n .min(1, \"Amount field is required.\")\n .regex(RegexMoney.pattern, RegexMoney.message)\n .refine(\n (value: string | undefined) =>\n value?.length ? parseFloat(value) > 1.99 : true,\n \"Please enter an amount between 2 and 9999999 inclusive.\",\n )\n .refine(\n (value: string | undefined) =>\n value?.length ? parseFloat(value) < 9999999.01 : true,\n \"Please enter an amount between 2 and 9999999 inclusive.\",\n ),\n donationName: z\n .string()\n .max(101, \"Display name should be at most 101 characters long.\")\n .optional(),\n donationMessage: z\n .string()\n .max(150, \"Message should be at most 150 characters long.\")\n .optional(),\n toBeGiftAided: z.boolean(),\n personalGiftAid: z.enum([\"true\", \"false\"]).nullable(),\n noBenefitReceived: z.enum([\"true\", \"false\"]).nullable(),\n // Address\n address: addressValidation,\n suppressions: suppresionValidation,\n })\n .refine(\n // custom title\n (data) =>\n data.title === \"Other\" ? (data.titleOther?.length || 0) >= 2 : true,\n {\n message: \"Title should be at least 2 characters long.\",\n path: [\"titleOther\"],\n },\n )\n .refine(\n // phone number only required if selected notifications require it\n (data) =>\n [\"LIPH\"].includes(data.suppressions.phone) ||\n [\"PYSM\"].includes(data.suppressions.text)\n ? data.phoneNumber?.length\n : true,\n {\n message:\n 'Phone number is required because staying in touch by phone or text message is set to \"Yes\".',\n path: [\"phoneNumber\"],\n },\n );\n\nexport default donateValidation;\n","import styled from \"styled-components\";\nimport { Radio, Text, type ThemeType } from \"@cruk/cruk-react-components\";\n\nexport const StyledSpan = styled.span<{ theme: ThemeType }>`\n font-weight: ${({ theme }) => theme.typography.fontWeightHeavy};\n font-size: ${({ theme }) => theme.fontSizes.xl};\n`;\n\nexport const StyledFieldsetNested = styled.fieldset`\n padding: 0;\n margin: 0;\n border: none;\n width: 100%;\n`;\n\nexport const StyledImage = styled.img`\n margin-top: -20px;\n margin-bottom: -20px;\n width: 120px;\n`;\n\nexport const StyledRadio = styled(Radio)<{ theme: ThemeType }>`\n margin-bottom: ${({ theme }) => theme.spacing.s};\n`;\n\nexport const BoldText = styled(Text)<{ theme: ThemeType }>`\n font-weight: ${({ theme }) => theme.typography.fontWeightLabels};\n`;\n\nexport const StyledLabel = styled.div<{ theme: ThemeType }>`\n max-width: 100%;\n font-weight: ${({ theme }) => theme.typography.fontWeightLabels};\n`;\n\nexport const StyledGiftMessage = styled.span<{ theme: ThemeType }>`\n display: flex;\n font-size: ${({ theme }) => theme.typography.fontSizeBase};\n font-weight: ${({ theme }) => theme.typography.fontWeightLabels};\n\n span {\n margin-right: 0.5rem;\n margin-top: 0.2rem;\n height: 2rem;\n }\n\n p {\n font-weight: ${({ theme }) => theme.typography.fontWeightBase};\n }\n`;\n","import { Text, Box, Link, IconFa, Badge } from \"@cruk/cruk-react-components\";\nimport { faCheckCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { type UseFormReturn } from \"react-hook-form\";\nimport { numberWithCommas } from \"@fwa/src/utils/formatUtils\";\n\nimport {\n StyledFieldsetNested,\n StyledSpan,\n StyledImage,\n StyledRadio,\n StyledLabel,\n StyledGiftMessage,\n BoldText,\n} from \"@fwa/src/components/DonatePageGiftAid/styles\";\n\nconst giftaidImg = \"/assets/images/img/giftaid.png\";\n\ntype GiftAidFieldValues = {\n personalGiftAid: string | null;\n noBenefitReceived: string | null;\n};\n\ntype GiftAidProps = {\n personalGiftAid: string | null;\n noBenefitReceived: string | null;\n amount: string;\n};\n\nconst addTwentyFivePercent = (number: number | string) => {\n const sum =\n parseFloat(number as string) * 0.25 + parseFloat(number as string);\n if ((number as number) > 1) {\n return parseFloat(sum.toString()).toFixed(2);\n }\n return \"0\";\n};\n\nexport const DonatePageGiftAid = (\n props: UseFormReturn & GiftAidProps,\n) => {\n const { amount, noBenefitReceived, personalGiftAid } = props;\n const assertProps = props as unknown as UseFormReturn;\n const { register } = assertProps;\n\n return (\n \n \n With Gift Aid, your donation of\n \n  £{parseFloat(amount) > 1 ? numberWithCommas(amount) : \"0\"}\n  \n \n would be worth\n \n {\" \"}\n £{numberWithCommas(addTwentyFivePercent(amount))}{\" \"}\n {\" \"}\n at no extra cost to you\n \n\n \n \n If you pay UK tax, Gift Aid your donation and the Government will give\n us 25% extra, recovered from the tax that you pay.\n \n Check if you can Gift Aid your donation:\n \n \n Some or all of this money has come from someone else (e.g. a\n collection, friends or a business)\n \n \n \n \n This is all my own money\n \n \n\n {personalGiftAid === \"true\" ? (\n <>\n And...\n \n \n I am receiving something in exchange for this money (e.g. from a\n sale, entry into an event or the chance to win something)\n \n \n \n \n I am not receiving anything in exchange for this money\n \n \n \n ) : null}\n \n {personalGiftAid === \"false\" &&\n (noBenefitReceived === null || noBenefitReceived === \"true\") ? (\n \n \n !\n \n Sorry, you can only Gift Aid money you have paid tax on. Continue\n without Gift Aid - if you have a sponsorship form we can claim Gift\n Aid when we receive it.\n \n ) : personalGiftAid === \"true\" && noBenefitReceived === \"false\" ? (\n \n \n !\n \n Sorry, you can only Gift Aid money that the Government categorises\n as a gift.\n \n ) : personalGiftAid === \"false\" && noBenefitReceived === \"false\" ? (\n \n \n !\n {\" \"}\n Sorry, you can only Gift Aid money you have paid tax on, and that\n the Government categorises as a gift.\n \n ) : personalGiftAid === \"true\" && noBenefitReceived === \"true\" ? (\n \n \n \n \n \n Great news - your donation is eligible for Gift Aid!\n \n {`By selecting 'Continue with Gift Aid' I declare that I want to\n Gift Aid this donation and any donations I make in the future or\n have made in the past 4 years to Cancer Research UK. I also\n declare that I am a UK taxpayer and understand that if I pay\n less Income Tax and/or Capital Gains Tax in the current tax year\n than the amount of Gift Aid claimed on all my donations, it is\n my responsibility to pay any difference.`}\n \n \n \n ) : null}\n \n By continuing I confirm the details I have entered are correct and\n that I have read and agreed to the{\" \"}\n \n terms and conditions\n {\" \"}\n and the{\" \"}\n \n privacy statement\n \n .\n \n \n \n );\n};\n\nexport default DonatePageGiftAid;\n","import styled from \"styled-components\";\nimport {\n Button,\n type ThemeType,\n Box,\n type ColorsType,\n} from \"@cruk/cruk-react-components\";\n\nexport const PageWrapperResponsive = styled(Box)<{ theme: ThemeType }>`\n @media (min-width: ${({ theme }) => theme.breakpoint.mobile}) {\n margin-top: ${({ theme }) => theme.spacing.s};\n }\n`;\n\nexport const DonationAmountRow = styled(Box)<{ theme: ThemeType }>`\n display: block;\n\n @media (min-width: ${({ theme }) => theme.breakpoint.mobile}) {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n`;\n\nexport const DonateAmountButton = styled(Button)<{\n $active: boolean;\n $textColor?: string;\n $activeTextColor?: string;\n $hoverFocusTextColor?: string;\n $backgroundColor?: string;\n $borderColor?: string;\n $borderRadius?: boolean;\n theme: ThemeType;\n}>`\n width: 100%;\n color: ${({ $active, theme, $textColor, $activeTextColor }) =>\n $active\n ? $activeTextColor! && theme.colors[$activeTextColor as keyof ColorsType]\n ? theme.colors[$activeTextColor as keyof ColorsType]\n : $activeTextColor!\n ? $activeTextColor\n : theme.colors.textLight\n : // Non active text colours\n $textColor && theme.colors[$textColor as keyof ColorsType]\n ? theme.colors[$textColor as keyof ColorsType]\n : $textColor!\n ? $textColor\n : theme.colors.primary} !important;\n background-color: ${({ $active, theme, $backgroundColor }) =>\n $active\n ? theme.colors.primary\n : $backgroundColor && theme.colors[$backgroundColor as keyof ColorsType]\n ? theme.colors[$backgroundColor as keyof ColorsType]\n : $backgroundColor!\n ? $backgroundColor\n : theme.colors.backgroundLight} !important;\n border-color: ${({ $active, theme, $borderColor }) =>\n $active\n ? theme.colors.primary\n : $borderColor && theme.colors[$borderColor as keyof ColorsType]\n ? theme.colors[$borderColor as keyof ColorsType]\n : $borderColor!\n ? $borderColor\n : theme.colors.primary} !important;\n border-radius: ${({ theme, $borderRadius }) =>\n $borderRadius ? theme.button.borderRadius : 0};\n margin: ${({ theme }) => `0 0 ${theme.spacing.s} 0`};\n\n &:hover,\n &:focus {\n color: ${({ theme, $hoverFocusTextColor }) =>\n $hoverFocusTextColor! &&\n theme.colors[$hoverFocusTextColor as keyof ColorsType]\n ? theme.colors[$hoverFocusTextColor as keyof ColorsType]\n : $hoverFocusTextColor || theme.colors.textLight} !important;\n background-color: ${({ theme }) => theme.colors.primary} !important;\n border-color: ${({ theme }) => theme.colors.primary} !important;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoint.mobile}) {\n width: auto;\n margin: ${({ theme }: { theme: ThemeType }) => `0 ${theme.spacing.s} 0 0`};\n }\n`;\n\nexport const StyledFieldset = styled.fieldset`\n padding: 0;\n margin: 0;\n border: none;\n`;\n\nexport const StyledText = styled.span`\n float: right;\n`;\n\nexport const StyledSubmitWrapper = styled.div<{ theme: ThemeType }>`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n flex-direction: column-reverse;\n\n > * {\n width: 100%;\n padding: 0;\n margin: ${({ theme }) => theme.spacing.s} 0 0 0;\n }\n\n > *:last-child {\n margin: 0;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoint.mobile}) {\n flex-direction: row;\n > * {\n width: auto;\n max-width: 50%;\n padding: 0 ${({ theme }) => theme.spacing.s};\n margin: 0 ${({ theme }) => theme.spacing.s} 0 0;\n }\n\n > *:last-child {\n margin: 0;\n }\n }\n`;\n\nexport const SuppressionsFieldset = styled.fieldset<{ theme: ThemeType }>`\n padding: 0;\n border: none;\n fieldset {\n padding: 0;\n margin: 0 0 ${({ theme }) => theme.spacing.s} 0;\n legend {\n max-width: 32%;\n }\n > label {\n margin-left: 4%;\n width: 30%;\n }\n input {\n margin-left: 0;\n margin-right: 0;\n }\n\n &:last-of-type {\n margin: 0;\n }\n }\n`;\n","import { type MouseEvent, useEffect, useState, useRef } from \"react\";\nimport Head from \"next/head\";\nimport { useForm } from \"react-hook-form\";\nimport type * as z from \"zod\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport {\n Heading,\n Button,\n Box,\n Collapse,\n Step,\n Select,\n TextField,\n Link,\n Text,\n TextAreaField,\n Loader,\n IconFa,\n ErrorText,\n type ThemeType,\n Totaliser,\n} from \"@cruk/cruk-react-components\";\nimport { useRouter } from \"next/compat/router\";\nimport { useTheme } from \"styled-components\";\nimport { faChevronRight } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { useTracking } from \"@fwa/src/hooks/useTracking\";\nimport { useFundraiserContext } from \"@fwa/src/contexts/FundraiserContext\";\nimport { fetcher } from \"@fwa/src/services/apiClient\";\nimport {\n urlNewDonor,\n fwsUrlNewDonation,\n} from \"@fwa/src/services/donationService\";\nimport { fwsUrlPage } from \"@fwa/src/services/pageService\";\nimport { queryAsString } from \"@fwa/src/utils/urlUtils\";\nimport { useSwrGet } from \"@fwa/src/hooks/useSwrGet\";\nimport { useBrandContext } from \"@fwa/src/contexts/BrandContext\";\nimport { sendGTMTrackingEvent } from \"@fwa/src/services/gtm\";\nimport {\n regexEmail,\n regexFornameExclusions,\n regexMobileTelephone,\n regexSurnameExclusions,\n sanitiseIfUkPostCode,\n sanitiseNames,\n} from \"@fwa/src/utils/formUtils\";\nimport useIsTabActive from \"@fwa/src/hooks/useIsTabActive\";\nimport { useOptimizelyContext } from \"@fwa/src/contexts/OptimizelyContext\";\nimport { getBrandForPage } from \"@fwa/src/utils/pageUtils\";\nimport { donateValidation } from \"@fwa/src/components/DonatePage/donateFormValidation.validation\";\n\nimport { ErrorPageWrapper } from \"@fwa/src/components/ErrorPageWrapper\";\nimport { AddressFields } from \"@fwa/src/components/AddressFields\";\nimport { SuppressionFields } from \"@fwa/src/components/SuppressionFields\";\nimport { DonatePageGiftAid } from \"@fwa/src/components/DonatePageGiftAid\";\n\nimport {\n FormWrapper,\n FieldWrapper,\n ContentWrapperResponsive,\n RowSpaceAround,\n ContentMaxWidth,\n} from \"@fwa/src/components/styles\";\n\nimport {\n StyledFieldset,\n DonationAmountRow,\n StyledSubmitWrapper,\n StyledText,\n DonateAmountButton,\n PageWrapperResponsive,\n} from \"@fwa/src/components/DonatePage/styles\";\n\nimport {\n type DonorType,\n type AllDonatablePageType,\n type BrandNameType,\n type DonationNewType,\n} from \"@fwa/src/types\";\n\nexport type DonateValues = z.infer;\n\nexport type DonateValuesKeysType = keyof DonateValues;\n\nexport const DonatePage = () => {\n // donate form might re-render a few times because of the use of watch variables\n // so lets do the useOptimizelyDecision here once\n\n return ;\n};\n\nexport const DonateForm = () => {\n const { trackEventOptimizely, optimizelyContext } = useOptimizelyContext();\n const { optimizelyClient } = optimizelyContext;\n const { trackError, trackEventGtm } = useTracking();\n const [fundraiserState] = useFundraiserContext();\n const isTabVisible = useIsTabActive();\n const { fundraiser } = fundraiserState;\n const maxCharacters = 150;\n const mountCount = useRef(1);\n\n const router = useRouter();\n const { slug } = router?.query || {};\n const slugString = queryAsString(slug);\n const url = slugString.length\n ? `${fwsUrlPage({ pageId: slugString })}`\n : null;\n const { data: page, error } = useSwrGet(url);\n\n type TitlesType = z.infer[\"title\"];\n const defaultTitles: TitlesType[] = [\n \"Mr\",\n \"Mrs\",\n \"Miss\",\n \"Ms\",\n \"Mx\",\n \"Other\",\n ];\n\n const displayName = page?.owner?.displayName;\n const titleFromFundraiser = !fundraiser?.title\n ? \"\"\n : defaultTitles.includes(fundraiser.title as TitlesType)\n ? (fundraiser.title as TitlesType)\n : \"Other\";\n\n const titleOtherFromFundraiser = !fundraiser?.title\n ? undefined\n : defaultTitles.includes(fundraiser.title as TitlesType)\n ? undefined\n : fundraiser.title;\n\n const initialValues: DonateValues = {\n amount: \"\",\n title: titleFromFundraiser,\n titleOther: titleOtherFromFundraiser,\n email: fundraiser?.emailAddress || \"\",\n forename: fundraiser?.forename || \"\",\n surname: fundraiser?.surname || \"\",\n address: {\n country: \"GBR\",\n line1: fundraiser?.address?.line1 || \"\",\n line2: fundraiser?.address?.line2 || \"\",\n line3: fundraiser?.address?.line3 || \"\",\n city: fundraiser?.address?.city || \"\",\n postalCode: fundraiser?.address?.postalCode || \"\",\n validated: false,\n },\n phoneNumber: fundraiser?.telephoneNumberMobile || \"\",\n donationMessage: \"\",\n donationName:\n displayName ||\n `${fundraiser?.forename || \"\"} ${fundraiser?.surname || \"\"}`,\n personalGiftAid: null,\n noBenefitReceived: null,\n toBeGiftAided: false,\n suppressions: {\n email: \"PUEM\",\n phone: \"LIPH\",\n post: \"LIPO\",\n text: \"PUSM\",\n },\n };\n\n const themeName = page\n ? (page?.theme as BrandNameType) || getBrandForPage(page)\n : null;\n const [brandName, setBrandName] = useBrandContext();\n const isSU2CBrand = brandName === \"su2c\";\n\n const currentTheme = useTheme();\n const theme = currentTheme as ThemeType;\n const lableFontWeight = theme.typography.fontWeightLabels || 700;\n\n const showTotaliser = page?.target\n ? page?.target > page?.donationsTotalAmount\n : false;\n\n const [submitionErrorMessage, setSubmitionErrorMessage] = useState(\"\");\n const [submitting, setSubmitting] = useState(false);\n const [redirecting, setRedirecting] = useState(false);\n const [hasBeenHidden, setHasBeenHidden] = useState(false);\n const [showRefreshButton, setShowRefreshButton] = useState(false);\n\n const formProps = useForm({\n mode: \"onBlur\",\n reValidateMode: \"onBlur\",\n defaultValues: initialValues,\n criteriaMode: \"firstError\",\n shouldFocusError: true,\n resolver: zodResolver(donateValidation),\n resetOptions: {\n keepDirtyValues: true, // user-interacted input will be retained\n keepErrors: false, // input errors will be retained with value update\n },\n });\n\n const {\n register,\n setValue,\n formState: { errors, touchedFields },\n watch,\n setError,\n reset,\n trigger,\n getValues,\n setFocus,\n } = formProps;\n\n const watchAmount = watch(\"amount\");\n const watchTitle = watch(\"title\");\n const watchForename = watch(\"forename\");\n const watchSurname = watch(\"surname\");\n const watchMessage = watch(\"donationMessage\");\n const watchPersonalGiftAid = watch(\"personalGiftAid\");\n const watchNoBenefitReceived = watch(\"noBenefitReceived\");\n const watchSuppressions = watch(\"suppressions\");\n\n const phoneNumberRequired =\n [\"LIPH\"].includes(watchSuppressions.phone) ||\n [\"PYSM\"].includes(watchSuppressions.text);\n\n const createDonor = async (newDonor: Partial) =>\n fetcher(urlNewDonor, {\n method: \"POST\",\n body: JSON.stringify(newDonor),\n })\n .then((res) => res as DonorType)\n .catch((err) => {\n throw err;\n });\n\n const createDonation = async ({\n pageId,\n donorId,\n newDonation,\n }: {\n pageId: string;\n donorId: string;\n newDonation: DonationNewType;\n }) =>\n fetcher(fwsUrlNewDonation({ pageId, donorId }), {\n method: \"POST\",\n body: JSON.stringify(newDonation),\n })\n .then((res) => {\n setSubmitting(false);\n const donationRespone = res as { dotsUrl: string };\n if (donationRespone.dotsUrl) {\n setRedirecting(true);\n return router?.push(donationRespone.dotsUrl);\n }\n return undefined;\n })\n .catch((err) => {\n throw err;\n });\n\n const handleSubmitClick = () => {\n if (!phoneNumberRequired) {\n setValue(\"phoneNumber\", \"\");\n }\n trigger(undefined, { shouldFocus: true }) // triggers validation on all fields\n .then((valid) => (valid ? submit() : console.log({ errors })))\n .catch((err: Error) => {\n trackError(err, {\n component: \"DonatePage\",\n function: \"handleFormSubmitClick\",\n });\n setSubmitionErrorMessage(\"unable to submit\");\n setSubmitting(false);\n });\n };\n\n const submit = async () => {\n setSubmitionErrorMessage(\"\");\n setSubmitting(true);\n const values = getValues();\n trackEventOptimizely({\n eventKey: \"of_donate_submit\",\n eventTags: {\n value: parseFloat(values.amount || \"0\"),\n },\n });\n // track suppressions field options\n if (values.suppressions.email === \"PYEM\") {\n trackEventOptimizely({\n eventKey: \"of_opt_in_email\",\n });\n }\n if (values.suppressions.phone === \"LIPH\") {\n trackEventOptimizely({\n eventKey: \"of_opt_in_phone\",\n });\n }\n if (values.suppressions.text === \"PYSM\") {\n trackEventOptimizely({\n eventKey: \"of_opt_in_sms\",\n });\n }\n if (values.suppressions.post === \"LIPO\") {\n trackEventOptimizely({\n eventKey: \"of_opt_in_post\",\n });\n }\n await optimizelyClient?.close().catch((err) => {\n console.log(err as Error, {\n component: \"DonatePage\",\n function: \"optimizelyClientClose\",\n });\n });\n const hasMobile =\n values.phoneNumber?.length &&\n regexMobileTelephone.pattern.test(values.phoneNumber || \"\");\n\n const getTitle = () => {\n switch (values.title) {\n case \"Other\":\n return values.titleOther;\n default:\n return values.title;\n }\n };\n\n // Using donor values create new donor\n const newDonor: Partial = {\n forename: sanitiseNames(values.forename),\n surname: sanitiseNames(values.surname),\n title: getTitle(),\n address: {\n ...values.address,\n country: values.address.country || \"GBR\",\n postalCode: sanitiseIfUkPostCode(values.address.postalCode),\n },\n emailAddress: values.email,\n telephoneNumberMobile:\n phoneNumberRequired && hasMobile\n ? values.phoneNumber.replace(\"+\", \"00\").replace(/\\s+/g, \"\")\n : undefined,\n telephoneNumberLandline:\n phoneNumberRequired && !hasMobile\n ? values.phoneNumber.replace(\"+\", \"00\").replace(/\\s+/g, \"\")\n : undefined,\n suppressions: Object.values(values.suppressions).filter(\n (value: string) => value.length,\n ),\n };\n\n const newDonation: DonationNewType = {\n amount: parseFloat(values.amount),\n donationMessage: values.donationMessage || \"\",\n donationName: values.donationName || \"\",\n personalGiftAid: values.personalGiftAid === \"true\",\n result: 1,\n toBeGiftAided: values.toBeGiftAided,\n };\n\n const donor: DonorType | void = await createDonor(newDonor).catch((err) => {\n trackError(err as Error, {\n component: \"DonatePageForm\",\n function: \"createDonor\",\n });\n const errorWithMessage = err as { message: string };\n if (\n errorWithMessage.message.includes(\n \"This value is not a valid email address\",\n 0,\n )\n ) {\n setError(\"email\", { message: regexEmail.message });\n setSubmitting(false);\n }\n if (\n errorWithMessage.message.includes(\n \"Please only enter a formal name here\",\n 0,\n )\n ) {\n setError(\"forename\", { message: regexFornameExclusions.message });\n setError(\"surname\", { message: regexSurnameExclusions.message });\n setSubmitting(false);\n }\n if (\n errorWithMessage.message.includes(\n \"Each of your address lines must be different\",\n 0,\n )\n ) {\n setError(\"address.line2\", {\n message:\n \"Address line 1, Address line 2, Address line 3 should not match\",\n });\n setSubmitting(false);\n } else {\n setSubmitionErrorMessage(\"unable to create donor\");\n setSubmitting(false);\n }\n });\n\n const errorsvalues = Object.values(errors);\n if (errorsvalues.length) {\n setSubmitting(false);\n setFocus(Object.keys(errors)[0] as DonateValuesKeysType);\n }\n\n if (!donor) {\n setSubmitionErrorMessage(\"unable to create donor\");\n setSubmitting(false);\n return undefined;\n }\n\n await createDonation({\n pageId: page?.uniqueId || \"\",\n donorId: donor.uniqueId,\n newDonation,\n }).catch((err: Error) => {\n setSubmitting(false);\n setSubmitionErrorMessage(\"unable to submit donation\");\n trackError(err, {\n component: \"DonatePage\",\n function: \"createDonation\",\n });\n });\n\n return undefined;\n };\n\n useEffect(() => {\n if (!!themeName && themeName !== brandName) {\n setBrandName(themeName);\n }\n }, [themeName, brandName, setBrandName]);\n\n useEffect(() => {\n if (mountCount.current === 1) {\n sendGTMTrackingEvent({\n event: \"pageView\",\n pagePath: \"/donate\",\n pageTitle: \"donate\",\n });\n\n // GTM event to show first bit of form has been loaded\n trackEventGtm({\n event: \"eec.checkout\",\n ecommerce: {\n checkout: {\n actionField: {\n step: 1,\n },\n products: [\n {\n id: \"fundraising donation\",\n name: \"fundraising donation\",\n category: \"donation\",\n variant: \"\",\n brand: brandName,\n quantity: 1,\n price: 0,\n },\n ],\n },\n },\n });\n }\n mountCount.current += 1;\n }, []);\n\n useEffect(() => {\n if (touchedFields.amount) {\n const amount: number = parseInt(watchAmount, 10) || 0;\n trackEventGtm({\n event: \"eec.checkout\",\n ecommerce: {\n checkout: {\n actionField: {\n step: 2,\n },\n products: [\n {\n id: \"fundraising donation\",\n name: \"fundraising donation\",\n category: \"donation\",\n variant: \"\",\n brand: brandName,\n quantity: 1,\n price: amount,\n },\n ],\n },\n },\n });\n }\n }, [watchAmount]);\n\n // we might get fundraiser details from fundraising context late\n // in which case reset form with new fundraiser details to correctly prefill fields\n useEffect(() => {\n reset(initialValues);\n }, [fundraiser, page]);\n\n // useEffect to detect when tab is visible and clean up state from previous navigation\n useEffect(() => {\n if (!isTabVisible) {\n setHasBeenHidden(true);\n }\n if (isTabVisible && hasBeenHidden && redirecting) {\n setShowRefreshButton(true);\n }\n }, [isTabVisible]);\n\n return (\n \n \n {`Donate to ${page?.title || \"\"}`}\n \n \n \n \n {!!page && (\n \n \n {`Donate to ${page.title}`}\n \n \n \n \n {fundraiserState?.loggedInStatus === \"unknown\" ? (\n \n ) : (\n <>\n
\n \n \n \n Donation amount\n \n \n Choose an amount or enter your own\n \n \n {[100, 50, 20].map((amount) => (\n {\n setValue(\"amount\", amount.toString(), {\n shouldTouch: true,\n shouldValidate: true,\n });\n trackEventGtm({\n event: \"nudge_select\",\n amount,\n });\n }}\n data-cta-type=\"donate-amount-toggle\"\n >\n £{amount}\n \n ))}\n {\n trackEventOptimizely({\n eventKey: \"enter_custom_donation_amount\",\n });\n }}\n />\n \n {errors.amount?.message}\n\n {showTotaliser ? (\n \n \n \n ) : null}\n\n \n \n \n The only fee deducted from your donation is the\n payment processing fee. This is the fee we’re\n charged by your credit or debit card provider,\n or by PayPal UK when you donate. The fee varies\n depending on how you choose to pay.  \n \n \n \n Fees and charges for Cancer Research UK Giving\n Pages.\n \n \n \n \n \n \n\n \n \n Your Details\n \n \n {\n if (e.target.value !== \"Other\") {\n setValue(\"titleOther\", undefined);\n }\n // run default onChange for field\n register(\"title\")\n .onChange(e)\n .catch(() => {\n // don't let browser element onChange error take down whole form\n });\n }}\n >\n \n {defaultTitles.map((title) => {\n if (typeof title !== \"string\") return undefined;\n return (\n \n );\n })}\n \n \n {watchTitle === \"Other\" ? (\n \n \n \n ) : null}\n\n \n {\n // prefill the donor name in the donation with forename\n setValue(\n \"donationName\",\n `${e.target.value} ${watchSurname}`,\n { shouldTouch: true, shouldValidate: true },\n );\n // run default onBlur for field\n register(\"forename\")\n .onBlur(e)\n .catch(() => {\n // don't let browser element blur error break entire form\n });\n }}\n errorMessage={errors.forename?.message}\n hintText={\n \"Please use your legal first and last names.\"\n }\n />\n \n \n {\n // prefill the donor name in the donation with surname\n setValue(\n \"donationName\",\n `${watchForename} ${e.target.value}`,\n { shouldTouch: true, shouldValidate: true },\n );\n // run default onBlur for field\n register(\"surname\")\n .onBlur(e)\n .catch(() => {\n // don't let browser element blur error take down whole form\n });\n }}\n errorMessage={errors.surname?.message}\n />\n \n \n \n \n\n \n {...formProps} />\n \n \n\n \n \n \n Leave a message with your donation\n \n \n \n \n \n \n \n {maxCharacters - (watchMessage?.length || 0)}{\" \"}\n characters remaining\n \n \n \n \n\n \n \n \n \n \n \n We may use this information to identify if\n you’ve supported Cancer Research UK\n before. This will help us to ensure that\n our records are up to date so that you can\n receive appropriate communications from\n us.\n \n \n \n \n ) : null\n }\n />\n \n\n \n \n Gift Aid\n \n \n {...formProps}\n amount={watchAmount}\n personalGiftAid={watchPersonalGiftAid}\n noBenefitReceived={watchNoBenefitReceived}\n />\n \n \n \n ) => {\n e.preventDefault();\n setValue(\"toBeGiftAided\", false);\n handleSubmitClick();\n }}\n disabled={submitting || redirecting}\n data-cta-type=\"submit-without-gift-aid\"\n >\n \n Continue without Gift Aid\n \n ) => {\n e.preventDefault();\n setValue(\"toBeGiftAided\", true);\n handleSubmitClick();\n }}\n disabled={\n submitting ||\n redirecting ||\n watchPersonalGiftAid !== \"true\" ||\n watchNoBenefitReceived !== \"true\"\n }\n data-cta-type=\"submit-with-gift-aid\"\n >\n Continue with Gift Aid\n \n {showRefreshButton ? (\n \n \n Going back caused a problem. Please refresh this\n page to try again\n \n {\n router?.reload();\n }}\n data-cta-type=\"refresh-page-on-error\"\n >\n Refresh this page\n \n \n ) : null}\n \n \n \n {submitionErrorMessage.length ? (\n \n \n {submitionErrorMessage}\n \n \n ) : null}\n \n )}\n
\n )}\n
\n \n
\n
\n );\n};\n\nexport default DonatePage;\n","import { DonatePage } from \"@fwa/src/components/DonatePage\";\nimport Head from \"next/head\";\n\nconst Page = () => (\n <>\n \n \n \n \n \n);\n\nexport default Page;\n","import { FWS_BASE_URL } from \"@fwa/src/services/apiClient\";\n\nexport const urlNewDonor = `${FWS_BASE_URL}/donors`;\n\nexport const fwsUrlNewDonation = ({\n pageId,\n donorId,\n}: {\n pageId: string;\n donorId: string;\n}) => `${FWS_BASE_URL}/pages/${pageId}/donors/${donorId}/donations`;\n\nexport const fwsUrlDonation = ({ donationId }: { donationId: string }) =>\n `${FWS_BASE_URL}/donations/${donationId}`;\n\nexport const fwsUrlNewFakeDonation = ({ pageId }: { pageId: string }) =>\n `${FWS_BASE_URL}/pages/${pageId}/donations`;\n","export const numberWithCommas = (n?: number | string): string => {\n if (typeof n === \"undefined\") {\n return \"\";\n }\n const parts = n.toString().split(\".\");\n\n return `${parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}${\n parts[1] ? `.${parts[1]}` : \"\"\n }`;\n};\n\nexport const prefixSingleWithZero = (value: string) =>\n `${value.length === 1 ? \"0\" : \"\"}${value}`;\n\nexport const camelCaseToCapitalisedCase = (text: string): string => {\n const result = text.replace(/([A-Z])/g, \" $1\").trim();\n return result.charAt(0).toUpperCase() + result.slice(1);\n};\n\nexport const camelCaseToSentenceCase = (text: string): string => {\n const result = text\n .replace(/([A-Z])/g, \" $1\")\n .trim()\n .toLocaleLowerCase();\n return result.charAt(0).toUpperCase() + result.slice(1);\n};\n\nexport const camelToSnakeCase = (text: string) =>\n text.replace(/[A-Z]/g, (letter: string, index: number) =>\n index === 0 ? letter.toLowerCase() : `_${letter.toLowerCase()}`,\n );\n\nexport const calculatePercentRounded = (\n value: number,\n target: number,\n): number => {\n const percent = (value / target) * 100;\n if (percent === Number.POSITIVE_INFINITY || Number.isNaN(percent)) {\n return 0;\n }\n return Math.floor(percent < 1 ? Math.ceil(percent) : Math.floor(percent));\n};\n\nexport const formatMoney = (value: number): string => {\n const parsed = Number.parseFloat(\n (Math.round(value * 100) / 100).toString(),\n ).toFixed(2);\n if (Number.isNaN(parseFloat(parsed)) || Number.isNaN(value)) {\n return \"0\";\n }\n return parsed;\n};\n\nexport const formatMoneyWithCommas = (value: number): string => {\n const parsed = Number.parseFloat(\n (Math.round(value * 100) / 100).toString(),\n ).toFixed(2);\n if (Number.isNaN(parseFloat(parsed)) || Number.isNaN(value)) {\n return \"0\";\n }\n return numberWithCommas(parsed);\n};\n"],"names":["useSwrGet","key","config","data","error","mutate","isValidating","isLoading","useSWR","length","fetcher","totalItems","fwaResponseData","metadata","count","trackDataDogError","typedError","component","message","typedData","donateValidation","z","title","optional","titleOther","min","max","regex","regexNameWithAnd","pattern","forename","trim","regexFornameExclusions","surname","regexSurnameExclusions","email","regexEmail","phoneNumber","transform","value","replace","pipe","regexTelephone","or","amount","RegexMoney","refine","parseFloat","donationName","donationMessage","toBeGiftAided","personalGiftAid","nullable","noBenefitReceived","address","addressValidation","suppressions","suppresionValidation","path","includes","phone","text","StyledSpan","styled","span","theme","typography","fontWeightHeavy","fontSizes","xl","fieldset","img","Radio","spacing","s","Text","fontWeightLabels","div","fontSizeBase","fontWeightBase","sum","number","toString","toFixed","DonatePageGiftAid","props","register","assertProps","StyledFieldsetNested","numberWithCommas","addTwentyFivePercent","StyledImage","src","giftaidImg","alt","BoldText","StyledLabel","StyledRadio","checked","Box","aria-live","StyledGiftMessage","Badge","backgroundColor","textColor","as","marginTop","IconFa","faIcon","faCheckCircle","size","Link","href","data-cta-type","PageWrapperResponsive","breakpoint","mobile","Button","$active","$textColor","$activeTextColor","colors","textLight","primary","$backgroundColor","backgroundLight","$borderColor","$borderRadius","button","borderRadius","$hoverFocusTextColor","DonatePage","DonateForm","trackEventOptimizely","optimizelyContext","useOptimizelyContext","optimizelyClient","trackError","trackEventGtm","useTracking","fundraiserState","useFundraiserContext","isTabVisible","useIsTabActive","fundraiser","mountCount","useRef","router","useRouter","slug","query","slugString","queryAsString","url","fwsUrlPage","pageId","page","defaultTitles","displayName","owner","initialValues","titleFromFundraiser","titleOtherFromFundraiser","undefined","emailAddress","country","line1","line2","line3","city","postalCode","validated","telephoneNumberMobile","post","themeName","getBrandForPage","brandName","setBrandName","useBrandContext","isSU2CBrand","lableFontWeight","useTheme","showTotaliser","target","donationsTotalAmount","submitionErrorMessage","setSubmitionErrorMessage","useState","submitting","setSubmitting","redirecting","setRedirecting","hasBeenHidden","setHasBeenHidden","showRefreshButton","setShowRefreshButton","formProps","useForm","mode","reValidateMode","defaultValues","criteriaMode","shouldFocusError","resolver","zodResolver","resetOptions","keepDirtyValues","keepErrors","setValue","formState","errors","touchedFields","watch","setError","reset","trigger","getValues","setFocus","watchAmount","watchTitle","watchForename","watchSurname","watchMessage","watchPersonalGiftAid","watchNoBenefitReceived","watchSuppressions","phoneNumberRequired","createDonor","newDonor","urlNewDonor","method","body","JSON","stringify","then","res","catch","err","createDonation","donorId","newDonation","fwsUrlNewDonation","donationRespone","dotsUrl","push","handleSubmitClick","shouldFocus","valid","submit","console","log","function","values","eventKey","eventTags","close","hasMobile","regexMobileTelephone","test","sanitiseNames","getTitle","sanitiseIfUkPostCode","telephoneNumberLandline","Object","filter","result","donor","errorWithMessage","keys","uniqueId","useEffect","current","sendGTMTrackingEvent","event","pagePath","pageTitle","ecommerce","checkout","actionField","step","products","id","name","category","variant","brand","quantity","price","parseInt","ErrorPageWrapper","Head","ContentMaxWidth","paddingTop","paddingHorizontal","paddingBottom","marginBottom","ContentWrapperResponsive","paddingVertical","FormWrapper","Heading","textAlign","h1","Step","steps","loggedInStatus","Loader","form","noValidate","data-component","StyledFieldset","margin","h2","paddingLeft","textWeight","DonationAmountRow","map","DonateAmountButton","type","onClick","shouldTouch","shouldValidate","TextField","label","extraLeft","required","inputMode","aria-label","hasError","onFocus","ErrorText","Totaliser","total","additionalAmount","Collapse","headerTitleText","FieldWrapper","$inputWidth","Select","onChange","e","option","errorMessage","onBlur","hintText","AddressFields","maxLength","TextAreaField","lineCount","maxCharacters","StyledText","SuppressionFields","child","$marginBottom","StyledSubmitWrapper","appearance","preventDefault","disabled","faChevronRight","reload","RowSpaceAround","Page","meta","content","FWS_BASE_URL","donationId","n","parts","split","prefixSingleWithZero","charAt","toUpperCase","slice","letter","index","toLowerCase","calculatePercentRounded","percent","Number","POSITIVE_INFINITY","isNaN","Math","ceil","floor","parsed","round"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5]}