{"version":3,"file":"js/application-614d8a2dee2134bedc42.js","mappings":"gLAkBO,IAAKA,EAAI,SAAJA,GAAI,OAAJA,EAAAA,EAAI,mBAAJA,EAAAA,EAAI,mBAAJA,EAAAA,EAAI,yBAAJA,EAAAA,EAAI,qCAAJA,EAAAA,EAAI,iBAAJA,EAAAA,EAAI,qBAAJA,EAAAA,EAAI,2BAAJA,EAAAA,EAAI,qBAAJA,CAAI,MA6GhB,MAAMC,GAAQC,EAAAA,EAAAA,eAAqB,CAAC,IAC9B,SAAEC,GAAaF,EAEfG,EAAUA,CAACC,EAAcC,KAC7B,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,IACFF,EACHG,SAAU,IAAKH,EAAMG,SAAUC,OAAQH,EAAOG,QAC9CC,YAAaL,EAAMM,OAAOC,UACtBZ,EAAKa,UACLb,EAAKc,iBAEb,IAAK,eACH,MAAO,IACFT,EACHG,SAAU,IAAKH,EAAMG,SAAUO,UAAWT,EAAOS,WACjDL,YAAaV,EAAKc,iBAEtB,IAAK,qBACH,MAAO,IACFT,EACHG,SAAU,IACLH,EAAMG,SACTQ,gBAAiBV,EAAOU,iBAE1BN,YAAaL,EAAMY,WAAajB,EAAKkB,WAAalB,EAAKmB,OAE3D,IAAK,WACH,MAAO,IACFd,EACHe,KAAM,IAAKf,EAAMe,KAAMC,MAAOf,EAAOe,OACrCJ,WAAYX,EAAOW,WACnBP,YAAaJ,EAAOW,WAAajB,EAAKkB,WAAalB,EAAKsB,SAE5D,IAAK,aACH,MAAO,IACFjB,EACHe,KAAM,IAAKf,EAAMe,QAASd,EAAOiB,QACjCb,YAAaV,EAAKkB,YAEtB,IAAK,gBACH,MAAO,IACFb,EACHe,KAAM,IACDf,EAAMe,KACTI,kBAAmBlB,EAAOmB,+BAE5BjB,SAAU,IACLH,EAAMG,SACTgB,kBAAmBlB,EAAOoB,yBAE5BhB,YAAaV,EAAK2B,SAEtB,IAAK,QACH,MAAO,IACFtB,EACHG,SAAU,CACRQ,qBAAiBY,EACjBnB,OAAQ,IACRM,eAAWa,EACXJ,mBAAmB,GAErBd,YAAaV,EAAK6B,QAEtB,IAAK,OACH,OAAIxB,EAAMK,cAAgBV,EAAK6B,OACtB,IACFxB,EACHK,YAAaV,EAAK8B,QAGbzB,EAEX,IAAK,UACH,GAAIA,EAAMK,aAAeJ,EAAOyB,KAC9B,MAAO,IACF1B,EACHK,YAAaJ,EAAOyB,MAGxB,MACF,QACE,MAAM,IAAIC,MACd,EAQIC,EAAgBA,EACpBC,eACAC,eAEA,MAAO9B,EAAO+B,IAAYC,EAAAA,EAAAA,YAAWjC,EAAS,IACzC8B,EACH1B,SAAU,CACRQ,qBAAiBY,EACjBnB,OAAQ,IACRM,eAAWa,EACXJ,mBAAmB,KAChBU,EAAa1B,UAElBE,YAAawB,EAAaxB,aAAeV,EAAK6B,SAGhD,OAAOS,EAAAA,cAACnC,EAAQ,CAACoC,MAAO,CAAElC,QAAO+B,aAAaD,EAAoB,EAG9DK,EAAWA,KAAaC,EAAAA,EAAAA,YAAWxC,G,8KC9MzC,IC9BA,EDWeyC,EAAGX,OAAMY,cACtB,MAAM,SAAEP,GAAaI,IAMrB,OACEF,EAAAA,cAACM,EAAAA,EAAK,CAACC,UAAU,MAAMC,QAAS,EAAGC,WAAW,SAASC,GAAI,CAAEC,GAAI,IAC/DX,EAAAA,cAACY,EAAAA,EAAU,CAACC,QANIC,KAClBhB,EAAS,CAAE7B,KAAM,UAAWwB,QAAO,EAKC,aAAW,UAC3CO,EAAAA,cAACe,EAAAA,EAAQ,OAEXf,EAAAA,cAACgB,EAAAA,EAAU,CAACC,SAAU,EAAG,cAAY,iBAClCZ,GAEG,E,oBECZ,IC3BA,EDUaa,EACXC,QACAtB,WACAuB,SAAUC,KAEVrB,EAAAA,cAACsB,EAAAA,EAAI,KACHtB,EAAAA,cAACuB,EAAAA,EAAW,KACVvB,EAAAA,cAAA,QAAMoB,SAAUC,GACdrB,EAAAA,cAACM,EAAAA,EAAK,CAACE,QAAS,GACdR,EAAAA,cAACgB,EAAAA,EAAU,CAACQ,QAAQ,MAAML,GACzBtB,ME+EX,ICnGA,EDUeL,KACb,MAAM,MAAEzB,EAAK,SAAE+B,GAAaI,IACtBuB,GAAWC,EAAAA,EAAAA,QAAyB,OACpC,aAAEL,EAAY,aAAEM,EAAY,WAAEC,EAAU,OAAE3C,EAAM,QAAE4C,IAAYC,EAAAA,EAAAA,IAClE,CACEC,cAAe,CACb5D,OAAkC,MAA1BJ,EAAMG,SAASC,OAAiBJ,EAAMG,SAASC,OAAS,IAElE6D,kBAAkBC,EAAAA,EAAAA,IAAO,CACvB9D,QAAQ+D,EAAAA,EAAAA,MACLC,WACAC,WACAC,KACC,wBACA,yDACCH,GAAWI,OAAOC,UAAmB,IAATL,OAGnCd,SAAUA,EAAGjD,aACX2B,EAAS,CAAE7B,KAAM,YAAaE,UAAS,IAW7C,OANAqE,EAAAA,EAAAA,YAAU,KACJzE,EAAMK,cAAgBV,EAAK8B,QAAUiC,GACvCA,EAASgB,QAAQC,OACnB,GACC,CAAC3E,EAAMK,cAENL,EAAMK,cAAgBV,EAAK8B,OAE3BQ,EAAAA,cAACkB,EAAI,CAACC,MAAM,mCAAmCC,SAAUC,GACvDrB,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,SACNpB,QAAQ,WACRqB,KAAK,SACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOd,OACdsD,SAAUA,EACVuB,WAAS,EACTb,UAAQ,EACRc,YAAY,MACZhF,KAAK,SACLiF,UAAW,CACTC,UAAW,CAAE,aAAc,SAAU1D,KAAM,IAC3C2D,MAAO,CACLC,eACErD,EAAAA,cAACsD,EAAAA,EAAc,CAACC,SAAS,SAAQ,SAKzCvD,EAAAA,cAACwD,EAAAA,EAAM,CACLvF,KAAK,SACLwF,UAAW5B,EACXL,QAAQ,YACRkC,MAAM,UACNC,KAAK,QACLX,WAAS,GACV,SAKIjF,EAAMK,YAAcV,EAAK8B,OAEhCQ,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAK8B,OACXa,QACEL,EAAAA,cAAAA,EAAAA,SAAA,KAAE,mBACsB,IACtBA,EAAAA,cAAA,cACEA,EAAAA,cAAC4D,EAAAA,GAAa,CACZ3D,MAAOlC,EAAMG,SAASC,OACtB0F,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,UAQf,IAAI,E,0OEyGb,ICzMA,EDUgB/E,KACd,MAAM,MAAEjB,EAAK,SAAE+B,GAAaI,IACtBuB,GAAWC,EAAAA,EAAAA,QAAyB,OAEpC,aACJL,EAAY,aACZM,EAAY,WACZC,EAAU,OACV3C,EAAM,QACN4C,EAAO,cACPmC,IACElC,EAAAA,EAAAA,IAAU,CACZC,cAAe,CACbkC,UAAWlG,EAAMe,KAAKmF,WAAa,GACnCC,SAAUnG,EAAMe,KAAKoF,UAAY,GACjCC,YAAa,GACbC,aAAc,GACdC,aAAc,GACdC,KAAM,GACNC,OAAQ,GACRC,YAAa,GACbC,WAAY,IAEdzC,kBAAkBC,EAAAA,EAAAA,IAAO,CACvBgC,WAAWS,EAAAA,EAAAA,MAASvC,WACpB+B,UAAUQ,EAAAA,EAAAA,MAASvC,WACnBgC,aAAaO,EAAAA,EAAAA,MACbN,cAAcM,EAAAA,EAAAA,MACdL,cAAcK,EAAAA,EAAAA,MACdJ,MAAMI,EAAAA,EAAAA,MACNH,QAAQG,EAAAA,EAAAA,MACRF,aAAaE,EAAAA,EAAAA,MACbD,YAAYC,EAAAA,EAAAA,QAEdtD,SAAUuD,UACR7E,EAAS,CAAE7B,KAAM,aAAcgB,UAAS,IAU5C,OANAuD,EAAAA,EAAAA,YAAU,KACJzE,EAAMK,cAAgBV,EAAKsB,SAAWyC,GACxCA,EAASgB,QAAQC,OACnB,GACC,CAAC3E,EAAMK,cAENL,EAAMK,cAAgBV,EAAKsB,QAE3BgB,EAAAA,cAACkB,EAAI,CAACC,MAAM,qBAAqBC,SAAUC,GACzCrB,EAAAA,cAAC4E,EAAAA,EAAI,CAACC,WAAS,EAACrE,QAAS,GACvBR,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,aACNpB,QAAQ,WACRqB,KAAK,YACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOgF,UACdxC,SAAUA,EACVuB,WAAS,EACTb,UAAQ,EACRe,UAAW,CAAEC,UAAW,CAAE,aAAc,kBAG5CnD,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,YACNpB,QAAQ,WACRqB,KAAK,WACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOiF,SACdlB,WAAS,EACTb,UAAQ,EACRe,UAAW,CAAEC,UAAW,CAAE,aAAc,kBAI9CnD,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,eACNpB,QAAQ,WACRqB,KAAK,cACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOkF,YACdjB,UAAW,CAAEC,UAAW,CAAE,aAAc,iBACxCH,WAAS,IAEXhD,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,iBACNpB,QAAQ,WACRqB,KAAK,eACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOmF,aACdlB,UAAW,CAAEC,UAAW,CAAE,aAAc,mBACxCH,WAAS,IAEXhD,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,iBACNpB,QAAQ,WACRqB,KAAK,eACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOoF,aACdnB,UAAW,CAAEC,UAAW,CAAE,aAAc,mBACxCH,WAAS,IAEXhD,EAAAA,cAAC4E,EAAAA,EAAI,CAACC,WAAS,EAACrE,QAAS,GACvBR,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,OACNpB,QAAQ,WACRqB,KAAK,OACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOqF,KACdpB,UAAW,CAAEC,UAAW,CAAE,aAAc,SACxCH,WAAS,KAGbhD,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,iBACNpB,QAAQ,WACRqB,KAAK,SACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOsF,OACdrB,UAAW,CAAEC,UAAW,CAAE,aAAc,WACxCH,WAAS,KAGbhD,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC8E,EAAAA,EAAY,CACXhC,SAAUA,CAACiC,EAAI9E,IAAU+D,EAAc,cAAe/D,GACtD+E,QAAS,IAAIC,OAAOC,KAAKnH,EAAMoH,WAAY,IAC3ClF,MAAOhB,EAAOuF,YACdY,eAAiBC,GAAWtH,EAAMoH,UAAUE,IAAW,GACvDC,YAAcC,GACZvF,EAAAA,cAAC2C,EAAAA,EAAS6C,EAAA,GACJD,EAAM,CACV3C,MAAM,UACNpB,QAAQ,WACRwB,WAAS,QAKjBhD,EAAAA,cAAC4E,EAAAA,EAAI,CAACjB,KAAM,GACV3D,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,cACNpB,QAAQ,WACRqB,KAAK,aACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOwF,WACdvB,UAAW,CAAEC,UAAW,CAAE,aAAc,gBACxCH,WAAS,MAIfhD,EAAAA,cAACwD,EAAAA,EAAM,CACLR,WAAS,EACT/E,KAAK,SACLwF,UAAW5B,EACXL,QAAQ,YACRkC,MAAM,UACNC,KAAK,SACN,SAKI5F,EAAMK,YAAcV,EAAKsB,UAAYjB,EAAMY,WAElDqB,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAKsB,QACXqB,QACEL,EAAAA,cAAAA,EAAAA,SAAA,KAAE,MACI,IACJA,EAAAA,cAAA,cACGjC,EAAMe,KAAKmF,UAAUwB,OAAO,IAAE1H,EAAMe,KAAKoF,SAASuB,WAOxD,IAAI,E,UEpHb,IClFA,EDSc5G,KACZ,MAAM,MAAEd,EAAK,SAAE+B,GAAaI,IACtBuB,GAAWC,EAAAA,EAAAA,QAAyB,OACpC,aAAEL,EAAY,aAAEM,EAAY,WAAEC,EAAU,OAAE3C,EAAM,QAAE4C,IAAYC,EAAAA,EAAAA,IAClE,CACEC,cAAe,CACbhD,MAAOhB,EAAMe,KAAKC,OAAS,IAE7BiD,kBAAkBC,EAAAA,EAAAA,IAAO,CACvBlD,OAAO2F,EAAAA,EAAAA,MAAS3F,QAAQoD,aAE1Bf,SAAUuD,OAAS5F,YACjB,UACQ2G,EAAAA,EAAMC,IAAI,gBAAiB,CAAEJ,OAAQ,CAAE,cAAexG,KAC5De,EAAS,CAAE7B,KAAM,WAAYc,QAAOJ,YAAY,GAClD,CAAE,MAAOiH,GACuB,MAA1BA,EAAMC,SAASC,QACjBhG,EAAS,CAAE7B,KAAM,WAAYc,QAAOJ,YAAY,GAEpD,KAWN,OANA6D,EAAAA,EAAAA,YAAU,KACJzE,EAAMK,cAAgBV,EAAKmB,OAAS4C,GACtCA,EAASgB,QAAQC,OACnB,GACC,CAAC3E,EAAMK,cAENL,EAAMK,cAAgBV,EAAKmB,MAE3BmB,EAAAA,cAACkB,EAAI,CAACC,MAAM,oCAAoCC,SAAUC,GACxDrB,EAAAA,cAAC2C,EAAAA,EAAS,CACRC,MAAM,QACNpB,QAAQ,WACRqB,KAAK,QACLC,SAAUnB,EACVoB,OAAQnB,EACR3B,MAAOhB,EAAOF,MACd0C,SAAUA,EACVuB,WAAS,EACTb,UAAQ,EACRc,YAAY,mBACZC,UAAW,CAAEC,UAAW,CAAE,aAAc,YAE1CnD,EAAAA,cAACwD,EAAAA,EAAM,CACLvF,KAAK,SACLwF,UAAW5B,EACXL,QAAQ,YACRkC,MAAM,UACNC,KAAK,QACLX,WAAS,GACV,SAKIjF,EAAMK,YAAcV,EAAKmB,QAAUd,EAAMe,KAAKiH,GAErD/F,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAKmB,MACXwB,QACEL,EAAAA,cAAAA,EAAAA,SAAA,KAAE,2BACwBA,EAAAA,cAAA,cAASjC,EAAMe,KAAKC,UAM/C,IAAI,EEfb,IChEA,EDKkBR,KAChB,MAAM,MAAER,EAAK,SAAE+B,GAAaI,IAMtB8F,EAAyBnD,IAC7B,OAAQA,GACN,IAAK,cACH,MAAO,iBACT,IAAK,SACH,MAAO,aACT,IAAK,kBACH,MAAO,kBACT,IAAK,UACH,MAAO,cACT,IAAK,WACH,MAAO,cACX,EAGF,OAAI9E,EAAMK,cAAgBV,EAAKa,UAE3ByB,EAAAA,cAACkB,EAAI,CAACC,MAAM,cACTpD,EAAMkI,YAAYC,KACjB,CAACzH,EAAW0H,IACVnG,EAAAA,cAACwD,EAAAA,EAAM,CACL4C,IAAK3H,EAAUA,UACfuE,WAAS,EACTxB,QAAQ,YACRkC,MAAM,UACN7C,QAASA,IA7BApC,KACnBqB,EAAS,CAAE7B,KAAM,eAAgBQ,aAAY,EA4BdqC,CAAYrC,GACjCkF,KAAK,QACL0C,UAAqB,IAAVF,GAEVH,EAAsBvH,EAAUoE,UAMlC9E,EAAMK,YAAcV,EAAKa,WAAaR,EAAMM,OAAOC,UAE1D0B,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAKa,UACX8B,QACEL,EAAAA,cAAA,cACGgG,EACCjI,EAAMG,SAASO,UAAUoE,MACzByD,uBAML,IAAI,E,oBEkDb,IC/GA,EDSmB1H,KACjB,MAAM,MAAEb,EAAK,SAAE+B,GAAaI,KACtB,aAAEmB,EAAY,aAAEM,EAAY,OAAE1C,EAAM,QAAE4C,IAAYC,EAAAA,EAAAA,IAAU,CAChEC,cAAe,CACb5C,+BAA+B,EAC/BC,yBAAyB,GAE3B4C,kBAAkBC,EAAAA,EAAAA,IAAO,CACvB9C,+BAA+BoH,EAAAA,EAAAA,MAC/BnH,yBAAyBmH,EAAAA,EAAAA,QAE3BnF,SAAUA,EAAGjC,gCAA+BC,8BAC1CU,EAAS,CACP7B,KAAM,gBACNkB,gCACAC,2BACA,IAIN,OAAIrB,EAAMK,cAAgBV,EAAKkB,WAE3BoB,EAAAA,cAACkB,EAAI,CAACC,MAAM,8BAA8BC,SAAUC,IAChDtD,EAAMY,YACNqB,EAAAA,cAACwG,EAAAA,EAAgB,CACfC,QACEzG,EAAAA,cAAC0G,EAAAA,EAAM,CACLC,QAAS1H,EAAOE,8BAChB2D,SAAUnB,EACVkB,KAAK,gCACLa,MAAM,YAGVd,MAAO,QAAQ7E,EAAM6I,aAAa/D,SAGtC7C,EAAAA,cAACwG,EAAAA,EAAgB,CACfC,QACEzG,EAAAA,cAAC0G,EAAAA,EAAM,CACLC,QAAS1H,EAAOG,wBAChB0D,SAAUnB,EACVkB,KAAK,0BACLa,MAAM,YAGVd,MAAO,QAAQ7E,EAAMM,OAAOwE,SAE9B7C,EAAAA,cAACwD,EAAAA,EAAM,CACLvF,KAAK,SACLwF,UAAW5B,EACXL,QAAQ,YACRkC,MAAM,UACNC,KAAK,QACLX,WAAS,EACTqD,WAAS,GACV,SAKItI,EAAMK,YAAcV,EAAKkB,WAEhCoB,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAKkB,WACXyB,QACEL,EAAAA,cAAAA,EAAAA,SAAA,KACGjC,EAAMY,WACLqB,EAAAA,cAAAA,EAAAA,SAAA,KAAE,MACI,IACJA,EAAAA,cAAA,cACGjC,EAAMG,SAASgB,kBACZ,yBACA,uBAIRc,EAAAA,cAAAA,EAAAA,SAAA,KAAE,MACI,IACJA,EAAAA,cAAA,cACGjC,EAAMe,KAAKI,mBACVnB,EAAMG,SAASgB,mBACf,uBACAnB,EAAMe,KAAKI,mBACXnB,EAAMG,SAASgB,mBACf,yBACDnB,EAAMe,KAAKI,oBACTnB,EAAMG,SAASgB,mBAChB,gCACAnB,EAAMe,KAAKI,oBACVnB,EAAMG,SAASgB,mBAChB,0BASX,IAAI,EE1Bb,IClFA,EDOwBV,KACtB,MAAM,MAAET,EAAK,SAAE+B,GAAaI,IAUtB2G,EAAmB9I,EAAM8I,iBAAiBC,QAAQpI,GAH/CqI,WAAWhJ,EAAMG,UAAUO,WAAWA,WAAa,EAI5CC,EAAgBsI,cAAgBtI,EAAgBuI,aAGhE,OAAIlJ,EAAMK,cAAgBV,EAAKc,gBAE3BwB,EAAAA,cAACkB,EAAI,CAACC,MAAM,4BACT0F,EAAiBX,KAAI,CAACxH,EAAiByH,IAEpCnG,EAAAA,cAACkH,EAAAA,EAAG,CAACd,IAAK1H,EAAgBqH,IACxB/F,EAAAA,cAACwD,EAAAA,EAAM,CACLR,WAAS,EACTxB,QAAQ,YACRkC,MAAM,UACN7C,QAASA,IAtBFnC,KACnBoB,EAAS,CAAE7B,KAAM,qBAAsBS,mBAAkB,EAqBxBoC,CAAYpC,GACjCiF,KAAK,QACL0C,UAAqB,IAAVF,GAEVzH,EAAgBmE,MAElBkE,WAAWrI,EAAgByI,YAAc,GACxCJ,WAAWrI,EAAgB0I,MAAQ,GACjCpH,EAAAA,cAACgB,EAAAA,EAAU,CACTqG,MAAO,CAAEC,UAAW,UACpB9F,QAAQ,QACRkC,MAAM,iBAEL,IAAI6D,KAAKC,aAAa,QAAS,CAC9BH,MAAO,UACPI,sBAAuB,IACtBC,OACDX,WAAWrI,EAAgByI,YAAc,KACxC,IAAI,IACL,IACD,IAAII,KAAKC,aAAa,QAAS,CAC9BH,MAAO,WACPM,SAAU,QACTD,OAAOX,WAAWrI,EAAgB0I,OAAQ,IAAI,uBASxDrJ,EAAMK,YAAcV,EAAKc,gBAEhCwB,EAAAA,cAACI,EAAM,CACLX,KAAM/B,EAAKc,gBACX6B,QACEL,EAAAA,cAAAA,EAAAA,SAAA,KAAE,QACM,IACNA,EAAAA,cAAA,cACGjC,EAAMG,SAASQ,gBAAgBmE,KAAKyD,wBAO1C,IAAI,E,oBE2Eb,IC1JA,EDUgBjH,KACd,MAAM,MAAEtB,GAAUmC,KACX0H,EAAOC,IAAYC,EAAAA,EAAAA,WAAS,IAC5BC,EAAKC,IAAUF,EAAAA,EAAAA,UAAS,IACxBG,EAAOC,IAAYJ,EAAAA,EAAAA,UAAS,GAa7BhH,EAAc6D,UAClB,MAAMY,EAAS,CACbrH,SAAU,CACRC,OAAQJ,EAAMG,SAASC,OACvBM,UAAWV,EAAMG,SAASO,WAAWA,UACrC0J,oBAAqBpK,EAAMG,SAASQ,gBAAgBqH,GACpDqC,mBAAoBrK,EAAMG,SAASgB,mBAErCJ,KAAM,CACJuJ,WAAYtK,EAAMe,KAAKmF,WAAWwB,OAClC6C,UAAWvK,EAAMe,KAAKoF,UAAUuB,OAChC1G,MAAOhB,EAAMe,KAAKC,MAClBqJ,mBAAoBrK,EAAMe,KAAKI,kBAC/BqJ,aAAcxK,EAAMe,KAAKqF,YACzBqE,mBAAoB,CAClBC,eAAgB1K,EAAMe,KAAKsF,aAC3BsE,eAAgB3K,EAAMe,KAAKuF,aAC3BC,KAAMvG,EAAMe,KAAKwF,KACjBC,OAAQxG,EAAMe,KAAKyF,OACnBoE,aAAc5K,EAAMe,KAAK0F,YACzBoE,YAAa7K,EAAMe,KAAK2F,aAG5BoE,mBAAoB9K,EAAM+K,mBAEtBjD,QAAiBH,EAAAA,EAAMqD,KAC3B,YAAYhL,EAAMM,OAAO0H,eACzBR,GAEFyD,OAAOC,SAAWpD,EAASqD,KAAKC,YAAY,EAS9C,OANA3G,EAAAA,EAAAA,YAAU,KACJzE,EAAMG,SAASQ,iBA5CA0K,MACnB,MAAMjC,EACJJ,WAAWhJ,EAAMG,SAASQ,gBAAgByI,YAAc,IACpDC,EAAOL,WAAWhJ,EAAMG,SAASQ,gBAAgB0I,MACjDjJ,EAAS4I,WAAWhJ,EAAMG,SAASC,QACnC4J,EACJsB,KAAKC,KAAqD,MAA9CnL,EAASiJ,IAAS,EAAID,GAAchJ,IAAiB,IACnE+J,EAAS/J,EAAS4J,GAClBC,EAAOD,EAAI,EAqCTqB,EACF,GACC,CAACrL,EAAMG,SAASC,OAAQJ,EAAMG,SAASQ,kBAEtCX,EAAMK,cAAgBV,EAAK2B,QAE3BW,EAAAA,cAACkH,EAAAA,EAAG,KACDa,EAAM,GACL/H,EAAAA,cAACkH,EAAAA,EAAG,CAAC,cAAY,eACflH,EAAAA,cAACgB,EAAAA,EAAU,CAACQ,QAAQ,MAAK,qBAEvBxB,EAAAA,cAAC4D,EAAAA,GAAa,CACZ3D,MAAOgI,EACPpE,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRwF,aAAc,EACdC,mBAAmB,KAGvBxJ,EAAAA,cAACgB,EAAAA,EAAU,KAAC,eAEVhB,EAAAA,cAAC4D,EAAAA,GAAa,CACZ3D,MAAO8H,EACPlE,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,IACRwF,aAAc,EACdC,mBAAmB,IACnB,wBAKRxJ,EAAAA,cAACkH,EAAAA,EAAG,CAACuC,GAAI,IACL1L,EAAMY,YACNqB,EAAAA,cAACgB,EAAAA,EAAU,CAAC0I,cAAY,EAAC,cAAY,mBACnC1J,EAAAA,cAAC2J,EAAAA,EAAI,CAACC,KAAM7L,EAAM8L,MAAMC,QAAS/L,EAAM6I,aAAa/D,MAAa,IAAI,QAChE7C,EAAAA,cAAC2J,EAAAA,EAAI,CAACC,KAAM7L,EAAM8L,MAAME,SAAS,mBAAsB,wBAE5D/J,EAAAA,cAAA,WACAA,EAAAA,cAACwG,EAAAA,EAAgB,CACfC,QACEzG,EAAAA,cAACgK,EAAAA,EAAQ,CACPrD,QAASiB,EACT9E,SAAUA,IAAM+E,GAAUD,IAAWA,IACrC/E,KAAK,QACLa,MAAM,YAGVd,MACE5C,EAAAA,cAAAA,EAAAA,SAAA,KAAE,0BAC6B,IAC7BA,EAAAA,cAAC2J,EAAAA,EAAI,CAACC,KAAM7L,EAAM8L,MAAMI,YAAY,kBACnClM,EAAM8L,MAAMK,iBACXlK,EAAAA,cAAAA,EAAAA,SAAA,KACG,IAAI,MACD,IACJA,EAAAA,cAAC2J,EAAAA,EAAI,CAACC,KAAM7L,EAAM8L,MAAMK,iBAAiB,kBAI3C,QAOZlK,EAAAA,cAACwD,EAAAA,EAAM,CACLhC,QAAQ,YACRkC,MAAM,UACNV,WAAS,EACTnC,QAASC,EACT6C,KAAK,QACLF,UAAWmE,EACXvB,WAAS,GACV,aAIHrG,EAAAA,cAACgB,EAAAA,EAAU,CAACmJ,MAAM,SAASzG,MAAM,gBAAgBlC,QAAQ,SAAQ,mEAE/DxB,EAAAA,cAAA,WAAM,mGAOP,IAAI,EErCb,IClHA,EDmBaoK,KACX,MAAMC,GAAUC,EAAAA,EAAAA,GAAiB,CAC/BC,UAAW,IACXC,mBAAmB,KAEf,MAAEzM,EAAK,SAAE+B,GAAaI,IAEtBY,EAAcA,KAClBhB,EAAS,CAAE7B,KAAM,QAAS,EAGtBwM,EAAcA,KAClB3K,EAAS,CAAE7B,KAAM,SAAU,EAG7B,OACE+B,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACwD,EAAAA,EAAM,CACLhC,QAAQ,YACRkC,MAAM,UACN7C,QAASC,EACT6C,KAAK,QACLX,WAAS,EACTtC,GAAI,CAAEgK,OAAQ,KACf,aAGD1K,EAAAA,cAAC2K,EAAAA,EAAM,CACLC,YAAU,EACVC,KAAM9M,EAAMK,cAAgBV,EAAK6B,OACjCuL,QAASL,EACTM,OAAO,QACPC,sBAAoB,GAEpBhL,EAAAA,cAACiL,EAAAA,EAAW,CAACvK,GAAI,CAAEwK,GAAI,IACrBlL,EAAAA,cAACmL,EAAAA,EAAS,CAACC,SAAS,MAClBpL,EAAAA,cAACM,EAAAA,EAAK,CAACG,WAAW,SAASF,UAAU,MAAM2K,GAAI,GAC7ClL,EAAAA,cAACkH,EAAAA,EAAG,CAACjG,SAAU,GAAG,kBAAgBlD,EAAMM,OAAOwE,MAC/C7C,EAAAA,cAACY,EAAAA,EAAU,CAACC,QAAS4J,EAAa,aAAW,SAC3CzK,EAAAA,cAACqL,EAAAA,EAAS,UAKlBrL,EAAAA,cAACsL,EAAAA,EAAa,CACZC,UAAQ,EACR7K,GAAI,CACF8K,gBAAkBC,GAAUA,EAAMC,QAAQC,KAAK,KAC/CT,GAAI,IAGNlL,EAAAA,cAACmL,EAAAA,EAAS,CAACC,SAAS,MAClBpL,EAAAA,cAACR,EAAM,MACPQ,EAAAA,cAACzB,EAAS,MACVyB,EAAAA,cAACxB,EAAe,MAChBwB,EAAAA,cAACnB,EAAK,MACNmB,EAAAA,cAAChB,EAAO,MACRgB,EAAAA,cAACpB,EAAU,MACXoB,EAAAA,cAACX,EAAO,UAIM,IAAnBtB,EAAM6N,UACL5L,EAAAA,cAACkH,EAAAA,EAAG,CACFxG,GAAI,CACFmL,UAAYJ,GAAU,aAAaA,EAAMC,QAAQI,UACjDN,gBAAkBC,GAAUA,EAAMC,QAAQK,WAAWC,MACrDzI,SAAU,QACV0I,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,QAAS,EACTC,WAAaZ,GAAUA,EAAMa,YAAYC,OAAO,aAChDC,OAAQ,EACRC,WAAuB,IAAZpC,EAAoB,wBAAqB/K,IAGtDU,EAAAA,cAACmL,EAAAA,EAAS,CAACC,SAAS,MAClBpL,EAAAA,cAACwD,EAAAA,EAAM,CACLhC,QAAQ,YACRkC,MAAM,UACN7C,QAASC,EACT6C,KAAK,QACLX,WAAS,EACTtC,GAAI,CAAEgK,OAAQ,KACf,gBACe3M,EAAMM,OAAOwE,QAKlC,EEzFP,ICrBA,EDSiB6J,EAAG9M,mBAClB,OACEI,EAAAA,cAACL,EAAa,CAACC,aAAc,IAAKA,EAAcxB,YAAaV,EAAK6B,SAChES,EAAAA,cAAC2M,EAAAA,EAAa,CACZlB,OEb4BmB,EFaThN,EAAagH,aAAagG,cEZ5CC,EAAAA,EAAAA,GAAe,CACpBC,WAAY,CACVC,WAAY,CACVC,eAAgB,CACdC,KAAM,CACJC,aAAc,KAIpBC,UAAW,CACTC,aAAc,CACZC,kBAAkB,EAClBC,aAAa,GAEfN,eAAgB,CACdC,KAAM,CACJM,cAAe,MACfC,QAAS,mCACT,UAAW,CACTA,QAAS,aAAaZ,oBAMhClB,QAAS,CACP+B,QAAS,CACPC,KAAMd,IAGVe,WAAY,CACVC,WAAY,0CACZC,OAAQ,CACNC,WAAY,OACZC,cAAe,aFpBf/N,EAAAA,cAACoK,EAAI,QEfE,IAAqBwC,CFiBhB,EGZpBoB,IAAAA,SAAsB,CACpBtB,SACF,G","sources":["webpack://fundable/./app/javascript/lib/store.tsx","webpack://fundable/./app/javascript/components/Donation/Change/Change.tsx","webpack://fundable/./app/javascript/components/Donation/Change/index.ts","webpack://fundable/./app/javascript/components/Donation/Edit/Edit.tsx","webpack://fundable/./app/javascript/components/Donation/Edit/index.ts","webpack://fundable/./app/javascript/components/Donation/Amount/Amount.tsx","webpack://fundable/./app/javascript/components/Donation/Amount/index.ts","webpack://fundable/./app/javascript/components/Donation/Details/Details.tsx","webpack://fundable/./app/javascript/components/Donation/Details/index.ts","webpack://fundable/./app/javascript/components/Donation/Email/Email.tsx","webpack://fundable/./app/javascript/components/Donation/Email/index.ts","webpack://fundable/./app/javascript/components/Donation/Frequency/Frequency.tsx","webpack://fundable/./app/javascript/components/Donation/Frequency/index.ts","webpack://fundable/./app/javascript/components/Donation/Newsletter/Newsletter.tsx","webpack://fundable/./app/javascript/components/Donation/Newsletter/index.ts","webpack://fundable/./app/javascript/components/Donation/PaymentProvider/PaymentProvider.tsx","webpack://fundable/./app/javascript/components/Donation/PaymentProvider/index.ts","webpack://fundable/./app/javascript/components/Donation/Summary/Summary.tsx","webpack://fundable/./app/javascript/components/Donation/Summary/index.ts","webpack://fundable/./app/javascript/components/Donation/Form/Form.tsx","webpack://fundable/./app/javascript/components/Donation/Form/index.ts","webpack://fundable/./app/javascript/components/Donation/Donation.tsx","webpack://fundable/./app/javascript/components/Donation/index.ts","webpack://fundable/./app/javascript/lib/createTheme.ts","webpack://fundable/./app/javascript/packs/application.ts"],"sourcesContent":["import React, { Dispatch, ReactElement, createContext, useReducer } from 'react'\nimport { ReactNode } from 'react'\nimport { useContext } from 'react'\n\ntype PaymentProvider = {\n id: string\n name: string\n base: string\n percentage: string\n recurringGift: boolean\n singleGift: boolean\n}\n\ntype Frequency = {\n name: string\n frequency: string\n}\n\nexport enum Step {\n Hidden,\n Amount,\n Frequency,\n PaymentProvider,\n Email,\n Details,\n Newsletter,\n Summary\n}\n\nexport type State = {\n multiple: boolean\n donation?: {\n paymentProvider: PaymentProvider\n amount: string\n frequency: Frequency\n receiveNewsletter: boolean\n }\n appeal: {\n id: string\n name: string\n recurring: boolean\n }\n paymentProviders: PaymentProvider[]\n frequencies: Frequency[]\n user: {\n id: string\n email: string\n firstName: string\n lastName: string\n phoneNumber: string\n addressLine1: string\n addressLine2: string\n city: string\n region: string\n countryCode: string\n postalCode: string\n receiveNewsletter: boolean\n }\n organization: {\n name: string\n imageUrl: string\n primaryColor: string\n }\n links: {\n webUrl: string\n rootUrl: string\n privacyUrl: string\n refundPolicyUrl?: string\n }\n authenticityToken: string\n currentStep: Step\n userExists: boolean\n countries: {\n [key: string]: string\n }\n}\n\ntype Action =\n | {\n type: 'SetFrequency'\n frequency: Frequency\n }\n | {\n type: 'SetAmount'\n amount: string\n }\n | {\n type: 'SetPaymentProvider'\n paymentProvider: PaymentProvider\n }\n | {\n type: 'SetEmail'\n email: string\n userExists: boolean\n }\n | {\n type: 'SetDetails'\n values: {\n firstName: string\n lastName: string\n phoneNumber: string\n addressLine1: string\n addressLine2: string\n city: string\n region: string\n countryCode: string\n postalCode: string\n }\n }\n | {\n type: 'SetNewsletter'\n organizationReceiveNewsletter: boolean\n appealReceiveNewsletter: boolean\n }\n | {\n type: 'Reset'\n }\n | {\n type: 'Show'\n }\n | {\n type: 'SetStep'\n step: Exclude\n }\n\ntype Store = { state: State; dispatch: Dispatch }\n\nconst store = createContext({} as Store)\nconst { Provider } = store\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'SetAmount':\n return {\n ...state,\n donation: { ...state.donation, amount: action.amount },\n currentStep: state.appeal.recurring\n ? Step.Frequency\n : Step.PaymentProvider\n }\n case 'SetFrequency':\n return {\n ...state,\n donation: { ...state.donation, frequency: action.frequency },\n currentStep: Step.PaymentProvider\n }\n case 'SetPaymentProvider':\n return {\n ...state,\n donation: {\n ...state.donation,\n paymentProvider: action.paymentProvider\n },\n currentStep: state.userExists ? Step.Newsletter : Step.Email\n }\n case 'SetEmail':\n return {\n ...state,\n user: { ...state.user, email: action.email },\n userExists: action.userExists,\n currentStep: action.userExists ? Step.Newsletter : Step.Details\n }\n case 'SetDetails':\n return {\n ...state,\n user: { ...state.user, ...action.values },\n currentStep: Step.Newsletter\n }\n case 'SetNewsletter':\n return {\n ...state,\n user: {\n ...state.user,\n receiveNewsletter: action.organizationReceiveNewsletter\n },\n donation: {\n ...state.donation,\n receiveNewsletter: action.appealReceiveNewsletter\n },\n currentStep: Step.Summary\n }\n case 'Reset':\n return {\n ...state,\n donation: {\n paymentProvider: undefined,\n amount: '0',\n frequency: undefined,\n receiveNewsletter: true\n },\n currentStep: Step.Hidden\n }\n case 'Show':\n if (state.currentStep === Step.Hidden) {\n return {\n ...state,\n currentStep: Step.Amount\n }\n } else {\n return state\n }\n case 'SetStep':\n if (state.currentStep >= action.step) {\n return {\n ...state,\n currentStep: action.step\n }\n }\n break\n default:\n throw new Error()\n }\n}\n\ntype StoreProviderProps = {\n initialState: State\n children: ReactNode\n}\n\nconst StoreProvider = ({\n initialState,\n children\n}: StoreProviderProps): ReactElement => {\n const [state, dispatch] = useReducer(reducer, {\n ...initialState,\n donation: {\n paymentProvider: undefined,\n amount: '0',\n frequency: undefined,\n receiveNewsletter: true,\n ...initialState.donation\n },\n currentStep: initialState.currentStep || Step.Hidden\n })\n\n return {children}\n}\n\nconst useStore = (): Store => useContext(store)\n\nexport { store, StoreProvider, useStore, reducer }\n","import EditIcon from '@mui/icons-material/Edit'\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\nimport Typography from '@mui/material/Typography'\nimport React, { ReactElement, ReactNode } from 'react'\n\nimport { Step, useStore } from '../../../lib/store'\n\ntype ChangeProps = {\n step: Exclude\n message: string | ReactNode\n}\n\nconst Change = ({ step, message }: ChangeProps): ReactElement => {\n const { dispatch } = useStore()\n\n const handleClick = (): void => {\n dispatch({ type: 'SetStep', step })\n }\n\n return (\n \n \n \n \n \n {message}\n \n \n )\n}\n\nexport default Change\n","import Change from './Change'\n\nexport default Change\n","import Card from '@mui/material/Card'\nimport CardContent from '@mui/material/CardContent'\nimport Stack from '@mui/material/Stack'\nimport Typography from '@mui/material/Typography'\nimport React, { FormEvent, ReactElement, ReactNode } from 'react'\n\ntype ChangeProps = {\n title: string\n children: ReactNode\n onSubmit?: (event: FormEvent) => void\n}\n\nconst Edit = ({\n title,\n children,\n onSubmit: handleSubmit\n}: ChangeProps): ReactElement => (\n \n \n
\n \n {title}\n {children}\n \n
\n
\n
\n)\n\nexport default Edit\n","import Edit from './Edit'\n\nexport default Edit\n","import Button from '@mui/material/Button'\nimport InputAdornment from '@mui/material/InputAdornment'\nimport TextField from '@mui/material/TextField'\nimport { useFormik } from 'formik'\nimport React, { ReactElement, useEffect, useRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { number, object } from 'yup'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst Amount = (): ReactElement => {\n const { state, dispatch } = useStore()\n const inputRef = useRef(null)\n const { handleSubmit, handleChange, handleBlur, values, isValid } = useFormik(\n {\n initialValues: {\n amount: state.donation.amount !== '0' ? state.donation.amount : ''\n },\n validationSchema: object({\n amount: number()\n .required()\n .positive()\n .test(\n 'maxDigitsAfterDecimal',\n 'amount field must have 2 digits after decimal or less',\n (number) => Number.isInteger(number * 10 ** 2)\n )\n }),\n onSubmit: ({ amount }) => {\n dispatch({ type: 'SetAmount', amount })\n }\n }\n )\n\n useEffect((): void => {\n if (state.currentStep === Step.Amount && inputRef) {\n inputRef.current.focus()\n }\n }, [state.currentStep])\n\n if (state.currentStep === Step.Amount) {\n return (\n \n $\n )\n }\n }}\n />\n \n Next\n \n \n )\n } else if (state.currentStep > Step.Amount) {\n return (\n \n I'd like to give{' '}\n \n \n \n \n }\n />\n )\n }\n return null\n}\n\nexport default Amount\n","import Amount from './Amount'\n\nexport default Amount\n","import Autocomplete from '@mui/material/Autocomplete'\nimport Button from '@mui/material/Button'\nimport Grid from '@mui/material/Grid2'\nimport TextField from '@mui/material/TextField'\nimport { useFormik } from 'formik'\nimport React, { ReactElement, useEffect, useRef } from 'react'\nimport { object, string } from 'yup'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst Details = (): ReactElement => {\n const { state, dispatch } = useStore()\n const inputRef = useRef(null)\n\n const {\n handleSubmit,\n handleChange,\n handleBlur,\n values,\n isValid,\n setFieldValue\n } = useFormik({\n initialValues: {\n firstName: state.user.firstName || '',\n lastName: state.user.lastName || '',\n phoneNumber: '',\n addressLine1: '',\n addressLine2: '',\n city: '',\n region: '',\n countryCode: '',\n postalCode: ''\n },\n validationSchema: object({\n firstName: string().required(),\n lastName: string().required(),\n phoneNumber: string(),\n addressLine1: string(),\n addressLine2: string(),\n city: string(),\n region: string(),\n countryCode: string(),\n postalCode: string()\n }),\n onSubmit: async (values) => {\n dispatch({ type: 'SetDetails', values })\n }\n })\n\n useEffect((): void => {\n if (state.currentStep === Step.Details && inputRef) {\n inputRef.current.focus()\n }\n }, [state.currentStep])\n\n if (state.currentStep === Step.Details) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setFieldValue('countryCode', value)}\n options={[...Object.keys(state.countries), '']}\n value={values.countryCode}\n getOptionLabel={(option) => state.countries[option] || ''}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n \n Next\n \n \n )\n } else if (state.currentStep > Step.Details && !state.userExists) {\n return (\n \n for{' '}\n \n {state.user.firstName.trim()} {state.user.lastName.trim()}\n \n \n }\n />\n )\n }\n return null\n}\n\nexport default Details\n","import Details from './Details'\n\nexport default Details\n","import Button from '@mui/material/Button'\nimport TextField from '@mui/material/TextField'\nimport axios from 'axios'\nimport { useFormik } from 'formik'\nimport React, { ReactElement, useEffect, useRef } from 'react'\nimport { object, string } from 'yup'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst Email = (): ReactElement => {\n const { state, dispatch } = useStore()\n const inputRef = useRef(null)\n const { handleSubmit, handleChange, handleBlur, values, isValid } = useFormik(\n {\n initialValues: {\n email: state.user.email || ''\n },\n validationSchema: object({\n email: string().email().required()\n }),\n onSubmit: async ({ email }) => {\n try {\n await axios.get('/users/exists', { params: { 'user[email]': email } })\n dispatch({ type: 'SetEmail', email, userExists: true })\n } catch (error) {\n if (error.response.status === 404) {\n dispatch({ type: 'SetEmail', email, userExists: false })\n }\n }\n }\n }\n )\n\n useEffect((): void => {\n if (state.currentStep === Step.Email && inputRef) {\n inputRef.current.focus()\n }\n }, [state.currentStep])\n\n if (state.currentStep === Step.Email) {\n return (\n \n \n \n Next\n \n \n )\n } else if (state.currentStep > Step.Email && !state.user.id) {\n return (\n \n and get confirmation at {state.user.email}\n \n }\n />\n )\n }\n return null\n}\n\nexport default Email\n","import Email from './Email'\n\nexport default Email\n","import Button from '@mui/material/Button'\nimport React, { ReactElement } from 'react'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst Frequency = (): ReactElement => {\n const { state, dispatch } = useStore()\n\n const handleClick = (frequency): void => {\n dispatch({ type: 'SetFrequency', frequency })\n }\n\n const frequencyNameToString = (name: string): string => {\n switch (name) {\n case 'single_gift':\n return 'Just this once'\n case 'weekly':\n return 'Every week'\n case 'every_two_weeks':\n return 'Every two weeks'\n case 'monthly':\n return 'Every month'\n case 'annually':\n return 'Once a year'\n }\n }\n\n if (state.currentStep === Step.Frequency) {\n return (\n \n {state.frequencies.map(\n (frequency, index): ReactElement => (\n handleClick(frequency)}\n size=\"large\"\n autoFocus={index === 0}\n >\n {frequencyNameToString(frequency.name)}\n \n )\n )}\n \n )\n } else if (state.currentStep > Step.Frequency && state.appeal.recurring) {\n return (\n \n {frequencyNameToString(\n state.donation.frequency.name\n ).toLocaleLowerCase()}\n \n }\n />\n )\n }\n return null\n}\n\nexport default Frequency\n","import Frequency from './Frequency'\n\nexport default Frequency\n","import Button from '@mui/material/Button'\nimport FormControlLabel from '@mui/material/FormControlLabel'\nimport Switch from '@mui/material/Switch'\nimport { useFormik } from 'formik'\nimport React, { ReactElement } from 'react'\nimport { boolean, object } from 'yup'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst Newsletter = (): ReactElement => {\n const { state, dispatch } = useStore()\n const { handleSubmit, handleChange, values, isValid } = useFormik({\n initialValues: {\n organizationReceiveNewsletter: true,\n appealReceiveNewsletter: true\n },\n validationSchema: object({\n organizationReceiveNewsletter: boolean(),\n appealReceiveNewsletter: boolean()\n }),\n onSubmit: ({ organizationReceiveNewsletter, appealReceiveNewsletter }) => {\n dispatch({\n type: 'SetNewsletter',\n organizationReceiveNewsletter,\n appealReceiveNewsletter\n })\n }\n })\n\n if (state.currentStep === Step.Newsletter) {\n return (\n \n {!state.userExists && (\n \n }\n label={`From ${state.organization.name}`}\n />\n )}\n \n }\n label={`From ${state.appeal.name}`}\n />\n \n Next\n \n \n )\n } else if (state.currentStep > Step.Newsletter) {\n return (\n \n {state.userExists ? (\n <>\n and{' '}\n \n {state.donation.receiveNewsletter\n ? 'receive appeal updates'\n : 'receive no updates'}\n \n \n ) : (\n <>\n and{' '}\n \n {state.user.receiveNewsletter &&\n state.donation.receiveNewsletter &&\n 'receive all updates'}\n {!state.user.receiveNewsletter &&\n state.donation.receiveNewsletter &&\n 'receive appeal updates'}\n {state.user.receiveNewsletter &&\n !state.donation.receiveNewsletter &&\n 'receive organization updates'}\n {!state.user.receiveNewsletter &&\n !state.donation.receiveNewsletter &&\n 'receive no updates'}\n \n \n )}\n \n }\n />\n )\n }\n return null\n}\n\nexport default Newsletter\n","import Newsletter from './Newsletter'\n\nexport default Newsletter\n","import Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Typography from '@mui/material/Typography'\nimport React, { ReactElement } from 'react'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Change from '../Change'\nimport Edit from '../Edit'\n\nconst PaymentProvider = (): ReactElement => {\n const { state, dispatch } = useStore()\n\n const handleClick = (paymentProvider): void => {\n dispatch({ type: 'SetPaymentProvider', paymentProvider })\n }\n\n const recurring = (): boolean => {\n return parseFloat(state.donation?.frequency?.frequency) > 0\n }\n\n const paymentProviders = state.paymentProviders.filter((paymentProvider) =>\n recurring() ? paymentProvider.recurringGift : paymentProvider.singleGift\n )\n\n if (state.currentStep === Step.PaymentProvider) {\n return (\n \n {paymentProviders.map((paymentProvider, index): ReactElement => {\n return (\n \n handleClick(paymentProvider)}\n size=\"large\"\n autoFocus={index === 0}\n >\n {paymentProvider.name}\n \n {parseFloat(paymentProvider.percentage) > 0 &&\n parseFloat(paymentProvider.base) > 0 && (\n \n {new Intl.NumberFormat('en-US', {\n style: 'percent',\n maximumFractionDigits: 1\n }).format(\n parseFloat(paymentProvider.percentage) / 100\n )}{' '}\n +{' '}\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n }).format(parseFloat(paymentProvider.base))}{' '}\n convenience fee\n \n )}\n \n )\n })}\n \n )\n } else if (state.currentStep > Step.PaymentProvider) {\n return (\n \n using{' '}\n \n {state.donation.paymentProvider.name.toLocaleLowerCase()}\n \n \n }\n />\n )\n }\n return null\n}\n\nexport default PaymentProvider\n","import PaymentProvider from './PaymentProvider'\n\nexport default PaymentProvider\n","import Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Checkbox from '@mui/material/Checkbox'\nimport FormControlLabel from '@mui/material/FormControlLabel'\nimport Link from '@mui/material/Link'\nimport Typography from '@mui/material/Typography'\nimport axios from 'axios'\nimport React, { ReactElement, useEffect, useState } from 'react'\nimport { NumericFormat } from 'react-number-format'\n\nimport { Step, useStore } from '../../../lib/store'\n\nconst Summary = (): ReactElement => {\n const { state } = useStore()\n const [terms, setTerms] = useState(true)\n const [fee, setFee] = useState(0)\n const [total, setTotal] = useState(0)\n\n const calculateFee = (): void => {\n const percentage =\n parseFloat(state.donation.paymentProvider.percentage) / 100\n const base = parseFloat(state.donation.paymentProvider.base)\n const amount = parseFloat(state.donation.amount)\n const fee =\n Math.ceil(((amount + base) / (1 - percentage) - amount) * 100) / 100\n setTotal(amount + fee)\n setFee(fee)\n }\n\n const handleClick = async (): Promise => {\n const params = {\n donation: {\n amount: state.donation.amount,\n frequency: state.donation.frequency?.frequency,\n payment_provider_id: state.donation.paymentProvider.id,\n receive_newsletter: state.donation.receiveNewsletter\n },\n user: {\n first_name: state.user.firstName?.trim(),\n last_name: state.user.lastName?.trim(),\n email: state.user.email,\n receive_newsletter: state.user.receiveNewsletter,\n phone_number: state.user.phoneNumber,\n address_attributes: {\n address_line_1: state.user.addressLine1,\n address_line_2: state.user.addressLine2,\n city: state.user.city,\n region: state.user.region,\n country_code: state.user.countryCode,\n postal_code: state.user.postalCode\n }\n },\n authenticity_token: state.authenticityToken\n }\n const response = await axios.post(\n `/appeals/${state.appeal.id}/donations`,\n params\n )\n window.location = response.data.redirect_url\n }\n\n useEffect((): void => {\n if (state.donation.paymentProvider) {\n calculateFee()\n }\n }, [state.donation.amount, state.donation.paymentProvider])\n\n if (state.currentStep === Step.Summary) {\n return (\n \n {fee > 0 && (\n \n \n For a total of \n \n \n \n Includes \n \n  convenience fee\n \n \n )}\n \n {!state.userExists && (\n \n {state.organization.name}{' '}\n uses fundableapp.com to\n make giving easy!\n
\n setTerms((terms) => !terms)}\n name=\"terms\"\n color=\"primary\"\n />\n }\n label={\n <>\n I agree with Fundable's{' '}\n Privacy Policy\n {state.links.refundPolicyUrl && (\n <>\n {' '}\n and{' '}\n \n Refund Policy\n \n \n )}\n .\n \n }\n />\n
\n )}\n \n Give Now\n \n
\n \n You will be taken to an external provider to complete your gift.\n
\n We never collect your banking details directly. Instead, we rely on\n secure payment processors.\n
\n
\n )\n }\n return null\n}\n\nexport default Summary\n","import Summary from './Summary'\n\nexport default Summary\n","import CloseIcon from '@mui/icons-material/Close'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Container from '@mui/material/Container'\nimport Dialog from '@mui/material/Dialog'\nimport DialogContent from '@mui/material/DialogContent'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\nimport useScrollTrigger from '@mui/material/useScrollTrigger'\nimport React, { ReactElement } from 'react'\n\nimport { Step, useStore } from '../../../lib/store'\nimport Amount from '../Amount'\nimport Details from '../Details'\nimport Email from '../Email'\nimport Frequency from '../Frequency'\nimport Newsletter from '../Newsletter'\nimport PaymentProvider from '../PaymentProvider'\nimport Summary from '../Summary'\n\nconst Form = (): ReactElement => {\n const trigger = useScrollTrigger({\n threshold: 250,\n disableHysteresis: true\n })\n const { state, dispatch } = useStore()\n\n const handleClick = () => {\n dispatch({ type: 'Show' })\n }\n\n const handleClose = () => {\n dispatch({ type: 'Reset' })\n }\n\n return (\n <>\n \n Give Gift\n \n \n \n \n \n Give a Gift to {state.appeal.name}\n \n \n \n \n \n \n theme.palette.grey[100],\n px: 0\n }}\n >\n \n \n \n \n \n
\n \n \n \n \n \n {state.multiple === false && (\n `1px solid ${theme.palette.divider}`,\n backgroundColor: (theme) => theme.palette.background.paper,\n position: 'fixed',\n bottom: 0,\n left: 0,\n right: 0,\n padding: 2,\n transition: (theme) => theme.transitions.create('transform'),\n zIndex: 1,\n transform: trigger === false ? 'translateY(80px)' : undefined\n }}\n >\n \n \n Give Gift to {state.appeal.name}\n \n \n \n )}\n \n )\n}\n\nexport default Form\n","import Form from './Form'\n\nexport default Form\n","import { ThemeProvider } from '@mui/material/styles'\nimport React, { ReactElement } from 'react'\n\nimport createTheme from '../../lib/createTheme'\nimport { State, Step, StoreProvider } from '../../lib/store'\nimport Form from './Form'\n\ntype DonationProps = {\n initialState: Omit\n}\n\nconst Donation = ({ initialState }: DonationProps): ReactElement => {\n return (\n \n \n
\n \n \n )\n}\n\nexport default Donation\n","import Donation from './Donation'\n\nexport default Donation\n","import { createTheme as muiCreateTheme } from '@mui/material/styles'\n\nexport default function createTheme(primaryColor: string) {\n return muiCreateTheme({\n components: {\n MuiSvgIcon: {\n styleOverrides: {\n root: {\n marginBottom: 0\n }\n }\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n focusRipple: false\n },\n styleOverrides: {\n root: {\n outlineOffset: '2px',\n outline: '2px solid transparent !important',\n '&:focus': {\n outline: `2px solid ${primaryColor} !important`\n }\n }\n }\n }\n },\n palette: {\n primary: {\n main: primaryColor\n }\n },\n typography: {\n fontFamily: '\"Poppins\", Helvetica, Arial, sans-serif',\n button: {\n fontWeight: 'bold',\n textTransform: 'none'\n }\n }\n })\n}\n","import '@rails/actiontext'\nimport ReactOnRails from 'react-on-rails'\nimport 'trix'\n\nimport Donation from '../components/Donation'\nimport '../stylesheets/application'\n\nReactOnRails.register({\n Donation\n})\n"],"names":["Step","store","createContext","Provider","reducer","state","action","type","donation","amount","currentStep","appeal","recurring","Frequency","PaymentProvider","frequency","paymentProvider","userExists","Newsletter","Email","user","email","Details","values","receiveNewsletter","organizationReceiveNewsletter","appealReceiveNewsletter","Summary","undefined","Hidden","Amount","step","Error","StoreProvider","initialState","children","dispatch","useReducer","React","value","useStore","useContext","Change","message","Stack","direction","spacing","alignItems","sx","pb","IconButton","onClick","handleClick","EditIcon","Typography","flexGrow","Edit","title","onSubmit","handleSubmit","Card","CardContent","variant","inputRef","useRef","handleChange","handleBlur","isValid","useFormik","initialValues","validationSchema","object","number","required","positive","test","Number","isInteger","useEffect","current","focus","TextField","label","name","onChange","onBlur","fullWidth","placeholder","slotProps","htmlInput","input","startAdornment","InputAdornment","position","Button","disabled","color","size","NumericFormat","displayType","thousandSeparator","prefix","setFieldValue","firstName","lastName","phoneNumber","addressLine1","addressLine2","city","region","countryCode","postalCode","string","async","Grid","container","Autocomplete","_e","options","Object","keys","countries","getOptionLabel","option","renderInput","params","_extends","trim","axios","get","error","response","status","id","frequencyNameToString","frequencies","map","index","key","autoFocus","toLocaleLowerCase","boolean","FormControlLabel","control","Switch","checked","organization","paymentProviders","filter","parseFloat","recurringGift","singleGift","Box","percentage","base","style","textAlign","Intl","NumberFormat","maximumFractionDigits","format","currency","terms","setTerms","useState","fee","setFee","total","setTotal","payment_provider_id","receive_newsletter","first_name","last_name","phone_number","address_attributes","address_line_1","address_line_2","country_code","postal_code","authenticity_token","authenticityToken","post","window","location","data","redirect_url","calculateFee","Math","ceil","decimalScale","fixedDecimalScale","my","gutterBottom","Link","href","links","webUrl","rootUrl","Checkbox","privacyUrl","refundPolicyUrl","align","Form","trigger","useScrollTrigger","threshold","disableHysteresis","handleClose","height","Dialog","fullScreen","open","onClose","scroll","disableEscapeKeyDown","DialogTitle","px","Container","maxWidth","CloseIcon","DialogContent","dividers","backgroundColor","theme","palette","grey","multiple","borderTop","divider","background","paper","bottom","left","right","padding","transition","transitions","create","zIndex","transform","Donation","ThemeProvider","primaryColor","muiCreateTheme","components","MuiSvgIcon","styleOverrides","root","marginBottom","MuiButton","defaultProps","disableElevation","focusRipple","outlineOffset","outline","primary","main","typography","fontFamily","button","fontWeight","textTransform","ReactOnRails"],"sourceRoot":""}