{"version":3,"file":"37.bundle.js","mappings":";uOAaIA,EAAiBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,ECF7H,EAAiB,EAAkB,EAAkB,EAAkB,EAAkB,EAAkB,EAAkB,EAAkBC,EAkE/IC,EACAC,wtDDsBAC,EAAY,CAAC,YAAa,OAAQ,oBAAqB,cAAe,mBAAoB,YAC1FC,EAAQ,CACVC,KAAM,MACNC,QAAS,MACTC,QAAS,KACTC,MAAO,OAGLC,EAAQ,SAAUC,GACpB,IAAIC,EAAmBC,EAqBnBC,EAnBAC,EAAYJ,EAAKI,UACjBC,EAAYL,EAAKM,KACjBA,OAAqB,IAAdD,EAAuB,OAASA,EACvCE,EAAwBP,EAAKQ,kBAC7BA,OAA8C,IAA1BD,EAAmCD,EAAOC,EAC9DE,EAAcT,EAAKS,YACnBC,EAAwBV,EAAKW,iBAC7BA,OAA6C,IAA1BD,EAAmC,cAAgBA,EACtEE,EAAWZ,EAAKY,SAChBC,GAAO,OAAyBb,EAAMP,GAEtCqB,GAAS,IAAAC,KAETC,GAAU,IAAAC,UAAQ,WACpB,OA/GJ,SAAgBH,GAEd,IAAKI,OAAOC,KAAKL,GAAQM,OAEvB,OADA,QAAW,qGACJ,CAAC,EAGV,IAAIC,EAAaP,EAAOO,WACpBC,EAAaR,EAAOQ,WACpBC,EAAaT,EAAOS,WACpBC,EAAaV,EAAOU,WACpBC,EAAiBX,EAAOW,eACxBC,EAAgBZ,EAAOY,cACvBC,EAAwBb,EAAOa,sBAC/BC,EAA2Bd,EAAOc,yBAClCC,EAAoBf,EAAOe,kBAC3BC,EAAqBhB,EAAOgB,mBAC5BC,EAA2BjB,EAAOiB,yBAClCC,EAAmBlB,EAAOkB,iBAC1BC,EAAuBnB,EAAOmB,qBAC9BC,EAAsBpB,EAAOoB,oBAC7BC,EAA0BrB,EAAOqB,wBACjCC,EAAsBtB,EAAOsB,oBAC7BC,EAA0BvB,EAAOuB,wBACjCC,EAAoBxB,EAAOwB,kBAC3BC,EAAwBzB,EAAOyB,sBAG/BC,GADc,QAAW1B,GACF2B,KAEvBC,GAA2B,QAAK,GAAGC,OAAOtB,EAAY,SACtDuB,GAAoB,QAAK,IAAID,OAAOD,EAA0B,OAAOC,OAAOlB,IAC5EoB,GAAmB,QAAK,GAAGF,OAAOnB,EAAY,OAAOmB,OAAOhB,EAAuB,OAAOgB,OAAOpB,IACjGuB,GAAkB,QAAK,GAAGH,OAAOnB,EAAY,OAAOmB,OAAOf,IAC3DmB,GAAqB,QAAK,GAAGJ,OAAOnB,EAAY,OAAOmB,OAAOf,IAC9DoB,GAAgC,QAAK,GAAGL,OAAOnB,EAAY,OAAOmB,OAAOf,IACzEqB,GAAqB,QAAK,GAAGN,OAAOnB,EAAY,MAAMmB,OAAOf,IAC7DsB,GAA2B,QAAK,GAAGP,OAAOrB,EAAY,OAAOqB,OAAOf,IACpEuB,GAA6B,QAAK,GAAGR,OAAOrB,EAAY,OAAOqB,OAAOf,IACtEwB,GAA0B,QAAK,GAAGT,OAAOnB,EAAY,MAAMmB,OAAOf,IAClEyB,GAAO,IAAAC,KAAIxE,IAAoBA,GAAkB,OAAuB,CAAC,uEAAwE,IAAK,IAAK,WAAY,wBAAyB,mDAAoD,6DAA8D,iDAAkD,2BAA4B,8DAA+D,2BAA4BgE,EAAiBF,EAAmBG,EAAoBF,EAAkBjB,EAA0BC,EAAmBW,EAAS,CAC7lBe,MAAOzB,IACLc,EAAmBC,EAAkBI,GACrCO,GAAU,IAAAF,KAAIvE,IAAqBA,GAAmB,OAAuB,CAAC,0FAA2F,0CAA2C,uBAAwB,qBAAsB,eAAgB,0FAA2F,kBAAmBkE,EAAoBlB,EAA0BL,EAAeA,EAAe0B,EAAyBH,GACreQ,GAAW,IAAAH,KAAItE,IAAqBA,GAAmB,OAAuB,CAAC,8DAA+D,iBAAkB,yCAA0C,sCAAuCkE,EAA0BC,EAA4BA,GAEvSO,EAAa,SAAUC,EAAiBJ,GAC1C,OAAO,IAAAD,KAAIrE,IAAqBA,GAAmB,OAAuB,CAAC,kDAAmD,mBAAoB,aAAc0E,EAAiBJ,EACnL,EAYIK,EAAY,SAAUL,GACxB,OAAO,IAAAD,KAAInE,IAAqBA,GAAmB,OAAuB,CAAC,kBAAmB,aAAcoE,EAC9G,EAcA,MAAO,CACLF,KAAMA,EACNG,QAASA,EACTC,SAAUA,EACVI,YALe,IAAAP,KAAIjE,IAAqBA,GAAmB,OAAuB,CAAC,kDAAmD,+CAAgD,2BAA4B,kBAAmB2D,EAA+BA,EAA+BH,GAMnSiB,UA/Bc,SAAUxD,GACxB,IAAIyD,EAAW,CACbpE,KAAM+D,EAAW1B,EAAkBC,GACnCpC,QAAS6D,EAAWtB,EAAqBC,GACzCzC,QAAS8D,EAAWxB,EAAqBC,GACzCrC,MAAO4D,EAAWpB,EAAmBC,IAEvC,OAAO,IAAAe,KAAIpE,IAAqBA,GAAmB,OAAuB,CAAC,kBAAmB,YAAa,aAAcoB,EAAMyD,EAASzD,GAC1I,EAwBE0D,UAlBc,SAAU1D,GACxB,IAAI2D,EAAU,CACZtE,KAAMiE,EAAU3B,GAChBpC,QAAS+D,EAAUvB,GACnBzC,QAASgE,EAAUzB,GACnBrC,MAAO8D,EAAUrB,IAEf2B,EAAa,GAAGvB,OAAOrC,EAAM,SACjC,OAAO,IAAAgD,KAAIlE,IAAqBA,GAAmB,OAAuB,CAAC,kBAAmB,YAAa,aAAc8E,EAAYD,EAAQ3D,GAC/I,EAWF,CA2BW6D,CAAOrD,EAChB,GAAG,CAACA,IAEAsD,EAAkB1E,EAAMY,GACxB+D,EAAc,CAACrD,EAAQqC,KAAkD,QAA3CpD,EAAoBe,EAAQ8C,iBAA6C,IAAtB7D,OAA+B,EAASA,EAAkBqE,KAAKtD,EAASV,IAAQG,GAAeO,EAAQ6C,YAG5L,GAAIpD,EAAa,CACf,IAAI8D,GAAa,OAAS,CAAC,EAAG9D,GAE1B+D,EAAsB,CAACxD,EAAQyC,UACnCtD,EAAaM,IAAe,IAAAgE,KAAI,OAAQ,CACtC,YAAa,SACZ,IAAAA,KAAI,KAAY,OAAS,CAC1BnB,IAAKkB,EACLE,WAAY,WACZC,KAAM,KACNC,iBAAkB,OACjBL,EAAY,CACb,YAAa,SACX5D,GACN,CAEA,IAAIkE,EAAiB,CAAC7D,EAAQwC,QAAqD,QAA3CtD,EAAoBc,EAAQgD,iBAA6C,IAAtB9D,OAA+B,EAASA,EAAkBoE,KAAKtD,EAASV,IAC/JwE,GAAQ,IAAAL,KAAI,OAAO,OAAS,CAC9BM,KAAM,QACNzB,IAAKe,EACLjE,UAAWA,EACX,iBAAkB,kBACjBS,IAAO,IAAA4D,KAAIL,EAAiB,CAC7BO,KAAM,KACNrB,IAAKuB,EACLE,KAAM,MACN,aAAcvE,EACd,YAAa,SACXI,EAAUT,GACV6E,GAAc,QAAe,CAC/BrF,KAAM,OACNE,QAAS,UACTD,QAAS,UACTE,MAAO,SACPQ,GAAOQ,GACT,OAAO,IAAA2D,KAAI,KAAe,CACxBO,YAAaA,EACb,YAAa,QACZF,EACL,mIC1FIG,EAAU,SAAUjF,GACtB,IA+BIkF,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EA9CAC,EAAYjG,EAAKkG,KACjBA,OAAqB,IAAdD,EAAuB,UAAYA,EAC1CE,EAAmBnG,EAAKoG,YACxBA,OAAmC,IAArBD,EAA8B,UAAYA,EACxDE,EAAwBrG,EAAKsG,iBAC7BA,OAA6C,IAA1BD,EAAmCH,EAAOG,EAC7DE,EAAWvG,EAAKuG,SAChBC,EAAexG,EAAKwG,aACpBC,EAAWzG,EAAKyG,SAChBC,EAAY1G,EAAK0G,UACjBtG,EAAYJ,EAAKI,UACjBuG,EAAmB3G,EAAK2G,iBACxBC,EAAmB5G,EAAK4G,iBACxBC,EAAe7G,EAAK6G,aACpBC,EAAS9G,EAAK8G,OACdC,EAAU/G,EAAK+G,QACfC,GAAehH,EAAKgH,aACpBC,GAAqBjH,EAAKkH,cAC1BA,QAAuC,IAAvBD,GAAgC,WAAaA,GAC7DE,IAAa,IAAAC,UACbC,IAAmB,IAAAD,UACnBE,IAAa,IAAAF,UAEbtG,IAAS,IAAAC,KAETC,IAAU,IAAAC,UAAQ,WACpB,OAhGJ,SAAgBH,GAEd,IAAKI,OAAOC,KAAKL,GAAQM,OAEvB,OADA,QAAW,qGACJ,CAAC,EAGV,IAAImG,EAA6BzG,EAAOyG,2BACpCC,EAAoB1G,EAAO0G,kBAC3BC,EAAiC3G,EAAO2G,+BACxCC,EAA4B5G,EAAO4G,0BACnCC,EAA4B7G,EAAO6G,0BACnCC,EAAsB9G,EAAO8G,oBAC7BC,EAAwB/G,EAAO+G,sBAC/BC,EAAqBhH,EAAOgH,mBAC5BtG,EAAaV,EAAOU,WACpBF,EAAaR,EAAOQ,WAGpBmB,GADc,QAAW3B,GACN2B,KAEnBsF,GAAc,QAAWjH,GACzBkH,EAAkBD,EAAYC,gBAC9BC,EAAcF,EAAYE,YAC1BC,EAAcH,EAAYG,YAC1BC,EAAeJ,EAAYI,aAE3BC,GAAc,SAAWtH,GACzBuH,EAAWD,EAAY/E,KACvBiF,EAAaF,EAAYG,OAEzB5C,EAAW,QACX6C,GAAgB,QAAK,GAAG7F,OAAOkF,EAAuB,OAStDY,EAAmB,SAAUC,GAC/B,OAAO,IAAApF,KAAI,IAAqB,GAAmB,OAAuB,CAAC,0BAA2B,uBAAwB,WAAYoF,EAAcpH,EAC1J,EAEIqH,EAAgB,SAAUD,GAC5B,OAAO,IAAApF,KAAI,IAAqB,GAAmB,OAAuB,CAAC,0BAA2B,0BAA2B,WAAYoF,EAAcpH,EAC7J,EAMA,MAAO,CACL+B,MArBS,IAAAC,KAAI,IAAoB,GAAkB,OAAuB,CAAC,mCAAoC,+DAAgE,+CAAgD,kDAAmD,4BAA6B,mBAAoB,YAAa,SAAU,SAAU,SAAU,2KAA4K,4FAA6F,8FAA+F,yFAA0F,2FAA4F,iBAAkBb,EAAK,CACn6Bc,MAAOkE,IACL9B,EAAUnE,EAAYgG,EAAmBE,EAA2B,KAAgBM,EAAgBY,OAAQX,EAAY5E,KAAKwE,GAAwBI,EAAYY,eAAeL,GAAgBP,EAAYa,eAAejB,GAAwBI,EAAYc,cAAcP,GAAgBP,EAAYe,aAAaR,GAAgBP,EAAYgB,YAAYT,GAAgBP,EAAYiB,kBAAkBrB,GAAwBI,EAAYkB,mBAAmBtB,IAoBrcuB,MAlBS,IAAA9F,KAAI,IAAqB,GAAmB,OAAuB,CAAC,mCAAoC,UAAW,iBAAkB,kBAAmB,qHAAsH,sJAAuJ,+HAAgI,cAAe,2BAA4B+E,EAAUC,EAAYR,EAAoBA,EAAoBF,EAAqBD,EAA2BJ,EAA4BW,EAAYmB,oBAmB/uBlB,aAAcA,EACdmB,OAlBU,IAAAhG,KAAI,IAAqB,GAAmB,OAAuB,CAAC,wEAAyE,mBAAmB,QAAK,GAAGX,OAAOgD,EAAU,WAAWhD,OAAOnB,KAmBrN+H,cATiB,IAAAjG,KAAI,IAAqB,GAAmB,OAAuB,CAAC,qCAAsC,UAAWqF,EAAc,eAUpJa,gBATmB,IAAAlG,KAAI,IAAqB,GAAmB,OAAuB,CAAC,uCAAwC,UAAWqF,EAAc,WAUxJc,iBAToB,IAAAnG,KAAI,IAAqB,GAAmB,OAAuB,CAAC,wCAAyC,UAAWmF,EAAiB,eAU7JiB,mBATsB,IAAApG,KAAIhE,IAAqBA,GAAmB,OAAuB,CAAC,0CAA2C,UAAWmJ,EAAiB,WAWrK,CAiCW,CAAO3H,GAChB,GAAG,CAACA,KAEA6I,GAAO,WAAa,EAmBpBC,IAAY,IAAAC,UAAS,CACvBC,QAAQ,EACRC,aAAc,OAEZC,IAAa,OAAeJ,GAAW,GACvCK,GAAQD,GAAW,GACnBE,GAAWF,GAAW,GAEtBF,GAASG,GAAMH,OACfC,GAAeE,GAAMF,aAErBI,GAAoB,SAAUC,GAChC,OAEEA,GAAKA,EAAEC,QAAUD,EAAEC,QAAU,IAEjC,EAIIC,GAAqB,SAAUC,EAAKC,GACtC,IAAIC,EAAeC,EAEfC,EAAeR,GAAkBtD,GAEjC+D,EAAQD,EAAe,CAACJ,GAA0C,QAAlCE,EAAgBtF,SAA4C,IAAlBsF,OAA2B,EAASA,EAAcF,KAAOlF,EAAUsF,EAAaE,UAAWL,GAA4C,QAAnCE,EAAiBvF,SAA6C,IAAnBuF,OAA4B,EAASA,EAAeF,MAAQpF,EAAUuF,EAAaG,YAAc,CAACP,EAAKC,GAChUO,GAAQ,OAAeH,EAAO,GAC9BI,EAAYD,EAAM,GAClBE,EAAaF,EAAM,GAEvBxL,EAAQ2L,MAAMX,IAAM,GAAG5H,OAAOqI,EAAW,MACzCzL,EAAQ2L,MAAMV,KAAO,GAAG7H,OAAOsI,EAAY,MAC3C1L,EAAQ2L,MAAMvF,SAAW,GAAGhD,OAAOgD,EAAU,KAC/C,EAmGIwF,GAAU,SAAUC,GACtBA,EAAIC,kBACJnB,GAAS,CACPJ,QAAQ,EACRC,aAAcqB,EAAI9K,OAGpBwG,GAAUA,EAAOsE,EAAKlF,EACxB,EAEIoF,GAAY,SAAUF,GAExB,IAAiB,WAAbA,EAAI9K,QAAqB,aAAmB,QAAkB,CAAC,QAAS,gBAI5E4J,GAAS,CACPJ,QAAQ,EACRC,aAAc,OAGhBhD,GAAWA,EAAQb,GAGfhB,GAAiBA,EAAcqG,UAAU,CAC3C,IACIA,EADiBrG,EACSqG,SAC9BA,EAASC,oBAAoB,SAAUF,IACvCC,EAASC,oBAAoB,aAAcF,GAC7C,CACF,EA6CIG,GAAkB,WACpBlM,EAAU4K,GAAkB7C,IAC5B9H,EAAgB2K,GAAkB9C,IAClC3B,EAAYlG,EAAckM,wBAC1B,IAAIf,EAAeR,GAAkBtD,GAGrC1B,EAAewF,GAAgBA,EAAae,wBAC5CxG,EAlLuB,WACvB,IAAIyG,EAAiBjF,EAAYyD,GAAkBzD,GAAakF,SAASC,eAAepF,GAExF,GAAIkF,EAAgB,CAClB,IAAIG,EAAMH,EAAeD,wBACzB,MAAO,CACLH,SAAUI,EACVpB,IAAKuB,EAAIvB,IACTwB,MAAOD,EAAIC,MACXC,OAAQF,EAAIE,OACZxB,KAAMsB,EAAItB,KAEd,CAEA,MAAO,CACLe,UAAU,UAAcU,OAAS,KACjC1B,IAAK,EACLwB,MAAOE,OAAOC,YAAcN,SAASO,gBAAgBC,YACrDJ,OAAQC,OAAOI,aAAeT,SAASO,gBAAgBG,aACvD9B,KAAM,EAEV,CA6JkB+B,GAChBjH,EAAQ/F,EAAQiN,YAChBjH,EAAShG,EAAQkN,aACjBjH,EAAchG,EAAcgN,YAC5B/G,EAAejG,EAAciN,aAC7BrH,EAAU6G,OAAO7G,SAAW6G,OAAOS,YACnCrH,EAAU4G,OAAO5G,SAAW4G,OAAOU,YAEnC,IAAIC,GAAiB,WAAeX,OAAOY,iBAAiBjB,SAASnJ,MAAMqK,iBAAiB,cAAgB,OACxGC,EAAeC,SAASJ,EAAeK,MAAM,MAAM,GAAI,IAC3DpH,EAAa,MAAQkH,EAErBjH,EAAuB,EAAIiH,EAG3BhH,EAJc,IAAOgH,EAIS,IAAOA,EAIrCnH,EAHiBJ,EAGU,GAF3BQ,EAAkB,IAAM+G,GAEyB,EAtEpC,WACb,IAAIG,EAAoBL,iBAAiBtN,EAAS,SAASoG,SACvDwH,EAAkBH,SAASE,EAAkBD,MAAM,MAAM,GAAI,IAC7DG,EAAUlI,EAAcsF,KACxB6C,EAAWnI,EAAc6G,MACzBuB,EAAW9N,EAAckM,wBAAwBlB,KACjD+C,EAAqBD,EAAWF,EAAUxH,EAC1C4H,EAAsBH,EAAWC,EAAW1H,EAAcI,EAC1DyH,EAAeN,EAAkB,EAIrC,GAAII,EAAqBE,GAAgBD,EAAsBC,EAC7D9H,EAAWwH,OACN,GAGPI,EAAqBE,GAAgBD,EAAsBC,EAEzD9H,EAAyB,GADP4H,EAAqBC,EAAsBD,EAAqBC,OAE7E,CAEL,IAAIE,EAAiBH,EAAqBC,EAAsBD,EAAqBC,EAEjFjH,EAEFmH,EAAiBA,EAAiB3H,EAAgBC,EAGlD0H,GAAkB5H,EAAuBD,EAAa,EAAIG,EAG5DL,EAAW+H,EAAiBP,EAAkBA,EAAkBO,CAClE,CAEAnO,EAAQ2L,MAAMvF,SAAW,GAAGhD,OAAOgD,EAAU,MAC7C,IAAIgI,EAAepO,EAAQmM,wBAAwBpG,MAGnDA,EAAQK,EAAWgI,EAAehI,EAAWgI,EAC7CpI,EAAShG,EAAQkN,YACnB,CA+BEmB,GACA,IAjKIC,EAGAC,EACAC,EA8JAxC,EADkBrG,EACSqG,SAI/B,OAHAA,EAASyC,iBAAiB,SAAU1C,IACpCC,EAASyC,iBAAiB,aAAc1C,IAEhC/E,GACN,IAAK,OAvKHsH,EAAcrI,EAAc,EAAIQ,EAAkB,EAGlD8H,EAAWpI,EAAU8E,KAAOlF,EAAQuI,EAAc9H,EAAgBX,EAClE2I,EAAWrI,EAAU6E,IAAMhF,EAAS,EAAIE,EAAe,EAAIJ,EAC/D9F,EAAQ0O,UAAUC,IAAI,mCACtB5D,GAAmByD,EAAUD,GAmKzB,MAEF,IAAK,SAlKW,WAClB,IAAID,EAAcrI,EAAc,EAAIQ,EAAkB,EAGlDmI,EAAYzI,EAAU8E,KAAOqD,EAAc9H,EAAgBX,EAC3DgJ,EAAY1I,EAAU6E,IAAMhF,EAAS,EAAIE,EAAe,EAAIJ,EAChE9F,EAAQ0O,UAAUC,IAAI,oCACtB5D,GAAmB8D,EAAWD,EAChC,CA2JMpF,GACA,MAEF,SA1JJ,WArCwB,IAGlBsF,EACAC,EADAD,EAAa3I,EAAU8E,KAAOlF,EAAQ,EAAIE,EAAc,EAAIJ,EAC5DkJ,EAAa5I,EAAU6E,IAAMhF,EAASQ,EAAgBV,EAAUO,EACpE0E,GAAmBgE,EAAYD,GAkC/B,IA7B6B9D,EAAKC,EA6B9B+D,EAAWhP,EAAQmM,wBAWvB,IATI6C,EAAShE,IAAMrF,EAAcqF,KAAOgE,EAAShE,IAAM,KA/B1BA,EAiCZgE,EAAShE,IAjCQC,EAiCH+D,EAAS/D,KA/BxCF,GADcC,EAAMlF,EAAUE,EAASE,EAA+B,EAAhBM,EAAkC,EAAdH,EAC9C4E,GAgC1BjL,EAAQ0O,UAAUC,IAAI,qCAEtBK,EAAWhP,EAAQmM,2BAIf6C,EAAS/D,KAAOtF,EAAcsF,MAAQ+D,EAAS/D,KAAO7E,EAAWT,EAAc6G,OAAQ,CAC3F,IAAIyC,EAAY1I,EAAuBD,EAAa,EAChD4I,EAAUF,EAAShE,IAAMlF,EACzBqJ,EAAUH,EAAS/D,KAAOpF,EAE1BmJ,EAAS/D,KAAOtF,EAAcsF,OAEhCkE,EAAUA,EAAUpJ,EAAQ,EAAIkJ,EAChCjP,EAAQ0O,UAAUC,IAAI,+BAGpBK,EAAS/D,KAAO7E,EAAWT,EAAc6G,QAE3C2C,EAAUA,EAAUpJ,EAAQ,EAAIkJ,EAChCjP,EAAQ0O,UAAUC,IAAI,gCAGxB5D,GAAmBmE,EAASC,EAC9B,CACF,CA2HMC,GAEN,EAEIC,GAAqB,SAAUxD,GACjC,IAAIf,EAAUF,GAAkBhD,IAG5B2C,IAAUO,IAAYA,EAAQwE,SAASzD,EAAI0D,UAC7C1D,EAAIC,kBACJC,GAAUF,GAEd,EAEI2D,GAAY,SAAU3D,GAExB,IAAI4D,EAAU,IAAI,KAAa5D,EAAI6D,KAAO7D,EAAI8D,UAE1CF,EAAQG,QAAUH,EAAQI,SAC5B9D,GAAUF,EAEd,GAEA,IAAAiE,kBAAgB,WAYd,OAXIvF,IACF2B,KACAG,SAASoC,iBAAiB,YAAaY,IACvChD,SAASoC,iBAAiB,UAAWe,IACrC9C,OAAO+B,iBAAiB,SAAU1C,MAElCM,SAASJ,oBAAoB,YAAaoD,IAC1ChD,SAASJ,oBAAoB,UAAWuD,IACxC9C,OAAOT,oBAAoB,SAAUF,KAGhC,WACLM,SAASJ,oBAAoB,YAAaoD,IAC1ChD,SAASJ,oBAAoB,UAAWuD,IACxC9C,OAAOT,oBAAoB,SAAUF,GACvC,CACF,IAGA,IAOIgE,GAAyB,QAM3BpI,GALWqI,QAAQ,IAAIC,OAAO,QAAS,KAAM,KAAKD,QAAQ,IAAIC,OAAO,UAAW,KAAM,IAAID,QAAQ,IAAIC,OAAO,cAAe,MAAM,SAAUC,EAAQC,EAAQC,GAC1J,MAAO,GAAGhN,OAAO+M,EAAOE,cAAgBD,EAAME,cAChD,IAAGN,QAAQ,IAAIC,OAAO,OAAO,SAAUM,GACrC,OAAOA,EAAEF,aACX,IAGEG,GAAsB,CAAC/O,GAAQsI,MACnCtI,GAAQsO,KACJU,IAAe,IAAAvL,KAAI,OAAQ,CAC7BnB,IAAKyM,GACL,YAAa,QACZ/I,IAICiJ,GAAcnG,IAAU,gBAAsB,IAAArF,KAAI,MAAO,CAC3DyL,IAAK5I,GACLhE,IAAKtC,GAAQqC,KACbjD,UAAWwG,EACXuJ,GAAIjK,EACJnB,KAAM,UACN,eAAgB+E,GAChBsG,aAA+B,UAAjBrG,GAA2BJ,GAAO2B,GAChD,YAAa,QACZtE,KAAmC,eAAlBE,IAAoD,aAAlBA,KAAiC8I,GAAc5J,EAAaY,KAAmC,kBAAlBE,IAAuD,gBAAlBA,KAAoC8I,IAAe7F,GAAkBtD,MAAkB,UAAc+E,SAASnJ,KAAO,OAGzR4N,GAAc7J,EAAe,MAAe,MAG5C8J,GAAmB,SAAUlF,GACjBjB,GAAkBhD,IACnB0H,SAASzD,EAAI0D,SAASxD,GAAUF,EAC/C,EAEA,OAAO,IAAA3G,KAAI,OAAQ,CACjByL,IAAK/I,GACL/G,UAAWA,EACX,iBAAkB,qBACjB,IAAAqE,KAAI,WAAgB,MAAM,IAAAA,KAAI,UAAU,OAAS,CAClDnE,KAAM,SACN4P,IAAK7I,GACL/D,IAAKtC,GAAQoI,MACZU,GAAS,CACV,mBAAoB5D,GAClB,CAAC,EAAG,CACNqK,aAA+B,UAAjBxG,GAA2BJ,GAAOwB,GAChDiF,aAA+B,UAAjBrG,GAA2BJ,GAxDpB,SAAUyB,GAC3B7L,GAAW6L,EAAIoF,gBAAkBjR,IACnC6L,EAAIC,kBACJC,GAAUF,GAEd,EAoDEqF,WAAY,SAAwBrF,GAClCA,EAAIsF,iBAEA5G,IACFwB,GAAUF,GACVQ,SAASJ,oBAAoB,aAAc8E,MAE3CnF,GAAQC,GACRQ,SAASoC,iBAAiB,aAAcsC,IAE5C,EACAK,YAAa,SAAyBvF,GACpC,OAAOA,EAAIsF,gBACb,EACAE,SAAS,UAAkBjH,GAAOwB,GAClC/K,UAAWuG,EACX,YAAa,UACX,IAAAlC,KAAI4L,GAAa,CACnB1L,KAAM,KACN,cAAe,OACf,YAAa,UACX,IAAAF,KAAI,OAAQ,CACdnB,IAAKtC,GAAQmH,aACb,YAAa,QACZ7B,IAAoB2J,IACzB,sYCleIY,GAAc,CAChBC,KAAM,WACNC,KAAM,YAEJC,GAAkB,CACpBC,UAAW,YAAkB,UAAgB,CAAC,IAAIC,WAClDC,WAAY,YAAkB,UAAgB,CAAC,IAAID,WACnDE,YAAa,UAAgB,CAAC,GAAGF,WACjCG,aAAc,YAAkB,UAAgB,CAAC,IAAIH,YAEnDI,GAAiB,CACnBC,SAAU,UAAgB,CAAC,GAAGL,WAC9BM,QAAS,UAAgBR,IAAiBE,WAC1CO,QAAS,UAAgB,CAAC,IAExBC,GAA2B,CAC7BC,SAAU,SAAeT,WACzBU,QAAS,SAAeV,WACxBW,KAAM,WAAiBX,YAOrBY,GAAU,CACZC,MAAO,KACPC,OAAQ,KACRC,MAAO,MAQLC,GAAY,SAAUC,GACxB,OAAiB,OAAVA,GAAqC,YAAnB,OAAQA,IAAqD,IAA9BjR,OAAOC,KAAKgR,GAAO/Q,QAAiC,iBAAV+Q,GAA8C,IAAxBA,EAAMC,OAAOhR,MACvI,EAQIiR,GAAkB,SAAUC,EAASrD,GACvC,IACE,GAAyB,YAArB,OAAQqD,KAA0BJ,GAAUI,GAAU,CAExD,IADA,IAAIC,EAAOtD,EAAIhC,MAAM,KACdsF,EAAKnR,SAAWkR,EAAUA,EAAQC,EAAKC,YAC9C,OAAOF,CACT,CACA,MAAO,EACT,CAAE,MAAOG,GACP,MAAO,EACT,CACF,EAOIC,GAAsB,SAAUb,GAClC,IAAIc,EAAe,GACfC,EAAef,GAAQA,EAAKL,SAAWK,EAAKL,QAAQJ,aAAe,KACvE,OAAKc,GAAUU,IACC1R,OAAO2R,QAAQD,GACrBE,SAAQ,SAAUC,GACxBJ,EAAaK,KAAKD,EAAM,GAC1B,IAGKJ,CACT,EACIM,GAAkB,SAAUX,GAC9B,MAAO,CACLY,OAAQZ,EAEZ,EACIa,GAAiC,SAAUC,EAAUC,GACvD,IAAIC,EAAS,GAWb,OAVAF,EAASN,SAAQ,SAAUS,GACzBD,EAASA,EAAO3Q,OAAO,GAAGA,OAAO4Q,EAAMrN,KAAM,KAAKvD,OAAO4Q,EAAMpB,MAAO,KACxE,IAGAmB,EAASA,EAAO3Q,OAAO,aAAaA,OAAO0Q,IAjElB,iCAsEkB,IAAI1Q,OAAO2Q,EACxD,EAOIE,GAAmC,SAAU3B,GAC/C,OAAOK,GAAUL,EAAKN,WAAaW,GAAUL,EAAKL,UAAYU,GAAUL,EAAKL,QAAQP,YAAciB,GAAUL,EAAKL,QAAQL,aAAee,GAAUL,EAAKL,QAAQJ,cAAgBc,GAAUL,EAAKL,QAAQH,aACzM,EAOIoC,GAAe,CACjBC,QAAS,UACTC,OAAQ,UAKV,IAAIC,GAA6B,SAAUC,IACzC,OAAUD,EAAeC,GACzB,IAJoBC,EAAeC,EAI/BC,GAJgBF,EAIMF,EAJSG,EACrC,WAAuC,GAAuB,oBAAZE,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQC,UAAUC,QAAQjQ,KAAK2P,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO5B,GAAK,OAAO,CAAO,CAAE,CADvQ+B,GAAoC,WAAc,IAAsCC,EAAlCC,GAAQ,OAAgBZ,GAAkB,GAAIC,EAA2B,CAAE,IAAIY,GAAY,OAAgBC,MAAMC,YAAaJ,EAASR,QAAQC,UAAUQ,EAAOI,UAAWH,EAAY,MAASF,EAASC,EAAMK,MAAMH,KAAME,WAAc,OAAO,OAA2BF,KAAMH,EAAS,GAK/Y,SAASb,EAAcoB,GACrB,IAAIC,EAOJ,OANA,OAAgBL,KAAMhB,IACtBqB,EAAQjB,EAAO1P,KAAKsQ,KAAMI,IACpB/K,MAAQ,CACZnK,MAAO,KACPoV,UAAW,MAEND,CACT,CA0BA,OAzBA,OAAarB,EAAe,CAAC,CAC3B3E,IAAK,oBACLkD,MAAO,SAA2BgD,EAAKD,GACrCN,KAAK1K,SAAS,CACZiL,IAAKA,EACLD,UAAWA,IAEuB,mBAAzBN,KAAKI,MAAMI,WAEpBR,KAAKI,MAAMI,UAAUD,EAAKD,EAE9B,GACC,CACDjG,IAAK,SACLkD,MAAO,WACL,OAAKyC,KAAK3K,MAAMnK,MAIZ8U,KAAKI,MAAMK,cACO,gBAAoB,MAAO,MAE7B,gBAAoB,KAAM,KAAM,+CAL3CT,KAAKI,MAAMpU,QAMtB,KAEKgT,CACT,CAvCiC,CAuC/B,aACFA,GAAc0B,UAAY,CACxBD,cAAe,SAAenE,WAC9BtQ,SAAU,SACVwU,UAAW,SAAelE,YAI5B,IAAIqE,GAAuB,WACzB,IAAIvV,GAAO,OAAgC,UAAyB,SAASwV,EAAQC,GACnF,IAAIC,EACFC,EACAC,EACAC,EACAC,EAAQhB,UACV,OAAO,UAAyB,SAAUiB,GACxC,cAAkBA,EAASC,KAAOD,EAASE,MACzC,KAAK,EAQH,OANAN,GADAD,EAASI,EAAM1U,OAAS,QAAkB8U,IAAbJ,EAAM,GAAmBA,EAAM,GAAK,CAAC,GAClDH,QAAU,MAC1BI,EAASC,KAAO,GAChBJ,EAAM,IAAIO,gBACNC,KAAKT,EAAQF,GAAK,GACtBG,EAAIS,gBAAkBX,EAAOW,kBAAmB,EAChDN,EAASE,KAAO,EACT,IAAIK,SAAQ,SAAUC,EAASC,GACpCZ,EAAIa,mBAAqB,WACvB,GAAuB,IAAnBb,EAAIc,WACN,GAAId,EAAIe,QAAU,KAAOf,EAAIe,OAAS,IAAK,CACzC,IAAIlC,EAASmC,KAAKC,MAAMjB,EAAIC,UAAYD,EAAIkB,cAC5CP,EAAQ9B,EACV,MACE+B,EAAO,eAAe7T,OAAOiT,EAAIe,QAGvC,EACAf,EAAI5H,iBAAiB,SAAS,SAAU+I,GACtCP,EAAOO,EACT,IACAnB,EAAIoB,MACN,IACF,KAAK,EAEH,OADAnB,EAAWE,EAASkB,KACblB,EAASmB,OAAO,SAAU,CAC/BrF,KAAMgE,IAEV,KAAK,GAGH,OAFAE,EAASC,KAAO,GAChBD,EAASoB,GAAKpB,EAAgB,MAAE,GACzBA,EAASmB,OAAO,SAAUZ,QAAQE,OAAOT,EAASoB,KAC3D,KAAK,GACL,IAAK,MACH,OAAOpB,EAASqB,OAEtB,GAAG5B,EAAS,KAAM,CAAC,CAAC,EAAG,KACzB,KACA,OAAO,WACL,OAAOxV,EAAK+U,MAAMH,KAAME,UAC1B,CACF,CAnD2B,GA0DvBuC,GAAU,SAAUlF,GACtB,OAAiB,OAAVA,GAAqC,YAAnB,OAAQA,IAAqD,IAA9BjR,OAAOC,KAAKgR,GAAO/Q,QAAiC,iBAAV+Q,GAA8C,IAAxBA,EAAMC,OAAOhR,MACvI,EAiBA,SAASkW,GAAUC,EAAQC,GAAkB,IAAIrW,EAAOD,OAAOC,KAAKoW,GAAS,GAAIrW,OAAOuW,sBAAuB,CAAE,IAAIC,EAAUxW,OAAOuW,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO1W,OAAO2W,yBAAyBN,EAAQK,GAAKE,UAAY,KAAK3W,EAAK6R,KAAK+B,MAAM5T,EAAMuW,EAAU,CAAE,OAAOvW,CAAM,CACtV,SAAS4W,GAAgBjJ,GAAU,IAAK,IAAIkJ,EAAI,EAAGA,EAAIlD,UAAU1T,OAAQ4W,IAAK,CAAE,IAAIC,EAAS,MAAQnD,UAAUkD,GAAKlD,UAAUkD,GAAK,CAAC,EAAGA,EAAI,EAAIV,GAAUpW,OAAO+W,IAAS,GAAInF,SAAQ,SAAU7D,IAAO,OAAgBH,EAAQG,EAAKgJ,EAAOhJ,GAAO,IAAK/N,OAAOgX,0BAA4BhX,OAAOiX,iBAAiBrJ,EAAQ5N,OAAOgX,0BAA0BD,IAAWX,GAAUpW,OAAO+W,IAASnF,SAAQ,SAAU7D,GAAO/N,OAAOkX,eAAetJ,EAAQG,EAAK/N,OAAO2W,yBAAyBI,EAAQhJ,GAAO,GAAI,CAAE,OAAOH,CAAQ,CAC/f,IAKIuJ,GAAkB,WACpB,IACE,OAAOpM,QAAUA,OAAOqM,QAAUrM,OAAOqM,OAAOC,SAClD,CAAE,MAAO9F,GACP,MAAO,CAAC,CACV,CACF,EAGI+F,GAAiB,SAAUC,EAAaC,GAC1C,IAAIC,EAAO1M,QAAUA,OAAO0M,KA3Bd,SAAU9G,GACxB,IACE,OAAO+E,KAAKC,MAAMD,KAAKgC,UAAU/G,GACnC,CAAE,MAAOY,GACP,OAAOZ,CACT,CACF,CAqBqCgH,CAAU5M,OAAO0M,MAAQ,CAAC,EA2C7D,OAxCAA,EAAKG,UAAO5C,EACZyC,EAAKI,UAAO7C,EACZyC,EAAKK,UAAO9C,EAGZyC,EAAOZ,GAAgBA,GAAgB,CAAC,EAAGY,GAAOF,IAK9CpB,GAAQsB,EAAK7H,OAASuG,GAAQsB,EAAK5H,SACrC4H,EAAK7H,KA3BD,uBA4BJ6H,EAAK5H,KA7BD,wBAiCN4H,EAAKM,KAAO,GACZN,EAAKO,KAAO,GACZP,EAAKQ,KAAO,GAGRV,EAAYQ,OACdN,EAAKM,KAAOR,EAAYQ,KACxBN,EAAKO,KAAO,GAAGvW,OAAOgW,EAAK7H,KAAM,KAAKnO,OAAO8V,EAAYQ,MACzDN,EAAKQ,KAAO,GAAGxW,OAAOgW,EAAK5H,KAAM,KAAKpO,OAAO8V,EAAYQ,OAI3DN,EAAKS,WAAa,GACdX,EAAYW,aACdT,EAAKS,WAAaX,EAAYW,YAI5B/B,GAAQsB,EAAKU,QACfV,EAAKU,KAlDD,kBAqDNV,EAAKlG,EAAIiG,GAAwB,KAE1BC,CACT,EAYIW,GAAmB,SAAUb,GAC/B,GAAIJ,KAAmB,CACrB,IAAIkB,EAAUf,GAAeC,EAAa,MAC1CxM,OAAOqM,OAAOC,UAAUiB,UAAUlF,UAAUmF,YAAY,CACtD5H,KAAM0H,GAEV,CACF,EAIIG,GAAmB,SAAU5Z,GAC3BmM,OAAOqM,QAAUrM,OAAOqM,OAAOqB,cACjC1N,OAAOqM,OAAOqB,aAAa7Z,EAE/B,EAGI8Z,GAAc,SAAUnB,GAC1B,GAAIJ,KAAmB,CACrB,IAAIkB,EAAUf,GAAeC,EAAa,MAC1CxM,OAAOqM,OAAOC,UAAUiB,UAAUlF,UAAUsF,YAAYL,EAAQH,WAAY,CAC1EvH,KAAM0H,GAEV,CACF,EACIM,GAAqB,SAAUC,EAAiBzG,GAElD,GAAIyG,GAAmB5Y,OAAOoT,UAAUyF,eAAezV,KAAKwV,EAAiB,QAC3E,OAAOA,EAAgBhJ,KAIzB,IAAIyH,EAAYF,KAChB,OAAIE,GAAaA,EAAUgB,SAAWhB,EAAUgB,QAAQ1H,KAC/C0G,EAAUgB,QAAQ1H,KAAKf,KAEzBuC,CACT,EACI2G,GAA0B,SAAUF,EAAiBzG,GAEvD,GAAIyG,GAAmB5Y,OAAOoT,UAAUyF,eAAezV,KAAKwV,EAAiB,QAC3E,OAAOA,EAAgB/I,KAIzB,IAAIwH,EAAYF,KAChB,OAAIE,GAAaA,EAAUgB,SAAWhB,EAAUgB,QAAQ1H,KAC/C0G,EAAUgB,QAAQ1H,KAAKd,KAEzBsC,CACT,EAIQ,WAAiBnC,WACjB,WAAiBA,WACjB,WAIR,IAAI+I,GAAa,SAAUjF,GACzB,OAAoB,gBAAoB,MAAO,CAC7C5U,UAAW,qCACG,gBAAoB,KAAa,CAC/C8Z,wBAAyBjH,GAAgBZ,GAAgB2C,EAAMzD,SAAU,uBAE7E,EACA0I,GAAW3E,UAAY,CACrB/D,SAAU,UAAgB,CAAC,GAAGL,YAIhC,IAAIiJ,GAAiB,SAAUnF,GAC7B,OAAoB,gBAAoB,KAAU,CAChDkF,wBAAyBjH,GAAgBZ,GAAgB2C,EAAMzD,SAAU,gBAE7E,EACA4I,GAAe7E,UAAY,CACzB/D,SAAU,UAAgB,CAAC,GAAGL,YAIhC,IAAIkJ,GAAS,SAAUpF,GACrB,OAAoB,gBAAoB,KAAa,CACnDrQ,KAAM,KACNuV,wBAAyBjH,GAAgBZ,GAAgB2C,EAAMzD,SAAU,YAE7E,EACA6I,GAAO9E,UAAY,CACjB/D,SAAU,UAAgB,CAAC,GAAGL,YAIhC,IAAImJ,GAAmB,SAAUrF,GAC/B,IAAIsF,EAActF,EAAMnD,KACtBF,EAAW2I,EAAY3I,SACvBC,EAAU0I,EAAY1I,QACtBC,EAAOyI,EAAYzI,KAGrB,OAAIF,IAAaC,EACK,gBAAoB,KAAK,CAC3CxR,UAAW,iCACG,gBAAoB,KAAK,CACvCA,UAAW,sCACG,gBAAoB,KAAU,CAC5C8Z,wBAAyBjH,GAAgBpB,OAKzCF,GAAYC,EACM,gBAAoB,KAAK,KAAmB,gBAAoB,KAAK,KAAmB,gBAAoB7R,EAAO,CACrIO,KAAM,SACLuR,KAEE,IACT,EACAwI,GAAiB/E,UAAY,CAC3BzD,KAAM,UAAgBH,IAA0BR,YAIlD,IAAIqJ,GAAiB,SAAUvF,GAC7B,IAAIsF,EAActF,EAAMnD,KACtBN,EAAW+I,EAAY/I,SACvBH,EAAckJ,EAAY9I,QAAQJ,YAClCoJ,EAAkBxF,EAAMwF,gBACxBpH,EAAW4B,EAAM5B,SACnB,GAAIlB,GAAUd,GACZ,OAAO,KAIT,IAAIqJ,EAAc,SAAUlH,GAC1B,IAAImH,EAAetH,EAASuH,MAAK,SAAUC,GACzC,OAAOA,EAAU1U,OAASqN,EAAMrN,IAClC,IACA,IAAKwU,GAA0C,YAA1B,OAAQA,GAC3B,OAAO,KAET,IAAIG,EAASH,EAAaxJ,WAA2GwJ,EAAaG,MAA3G,GAAGlY,OAAO+X,EAAaG,MAAO,MAAMlY,OAAO0P,GAAgBd,EAAU,iBAAkB,KAC9H,OAAQgC,EAAMjT,MACZ,IAAK,WAED,OAAoB,gBAAoB,KAAc,CACpDua,MAAOA,EACPC,YAAaJ,EAAaI,YAC1B5U,KAAMwU,EAAaxU,KACnBiM,MAAOuI,EAAavI,MACpBoH,QAASlH,GAAgB2C,EAAMnD,KAAM6I,EAAaK,aAClDC,SAAU,SAAkBvI,GAC1B,OAAO+H,EAAgB/H,EAAGiI,EAAaxU,KACzC,EACA+U,SAAUP,EAAaO,SACvBC,UAAWR,EAAaQ,UACxBC,WAAYT,EAAaS,aAG/B,IAAK,QACL,IAAK,OACL,IAAK,SAED,OAAoB,gBAAoB,MAAW,CACjDjV,KAAMwU,EAAaxU,KACnBiM,MAAOuI,EAAavI,MACpB0I,MAAOA,EACPG,SAAUR,EACVS,SAAUP,EAAaO,SACvBC,UAAWR,EAAaQ,UACxBC,WAAYT,EAAaS,aAG/B,IAAK,qBAED,OAAoB,gBAAoB,MAAW,CACjDjV,KAAMwU,EAAaxU,KACnBiM,MAAOuI,EAAavI,MACpB0I,MAAOA,EACPG,SAAUR,EACVS,SAAUP,EAAaO,SACvBC,UAAWR,EAAaQ,UACxBC,WAAYT,EAAaS,WACzBC,UAAwB,gBAAoBnW,EAAS,CACnDiB,KAAMwU,EAAanb,QAAQ2G,KAC3BE,YAAasU,EAAanb,QAAQ6G,YAClCE,iBAAkBoU,EAAanb,QAAQ+G,qBAI/C,QACE,OAAoB,gBAAoB,MAAO,MAErD,EACA,OAAoB,gBAAoB,KAAW,CACjD+U,MAAM,GACQ,gBAAoB,KAAK,KAAmB,gBAAoB,KAAK,CACnFA,KAAM,QACLZ,EAAYrJ,EAAYkK,cAA4B,gBAAoB,KAAK,CAC9ED,KAAM,QACLZ,EAAYrJ,EAAYmK,aAA2B,gBAAoB,KAAK,KAAmB,gBAAoB,KAAK,CACzHF,KAAM,QACLZ,EAAYrJ,EAAYoK,sBAAoC,gBAAoB,KAAK,CACtFH,KAAM,QACLZ,EAAYrJ,EAAYqK,mBAAiC,gBAAoB,KAAK,KAAmB,gBAAoB,KAAK,CAC/HJ,KAAM,QACLZ,EAAYrJ,EAAYsK,QAAsB,gBAAoB,KAAK,CACxEL,KAAM,QACLZ,EAAYrJ,EAAYuK,eAC7B,EACApB,GAAejF,UAAY,CACzBzD,KAAM,UAAgBP,IAAgBJ,WACtCkC,SAAU,YAAkB,UAAgB,CAAC,IAAIlC,WACjDsJ,gBAAiB,SAAetJ,YAIlC,IAAI0K,GAAY,SAAU5G,GACxB,IAAIsF,EAActF,EAAMnD,KACtBN,EAAW+I,EAAY/I,SACvBH,EAAckJ,EAAY9I,QAAQJ,YAClCyK,EAAiB7G,EAAM6G,eACzB,OAAI3J,GAAUd,GACL,KAEW,gBAAoB,KAAK,KAAmB,gBAAoB,KAAK,KAAmB,gBAAoB,MAAQ,CACtI0K,QAAS,WACP,OAAOD,GACT,GACCxJ,GAAgBd,EAAU,oBAC/B,EACAqK,GAAUtG,UAAY,CACpBzD,KAAM,UAAgBP,IAAgBJ,WACtC2K,eAAgB,SAAe3K,YAIjC,IAWI6K,GAAuB,SAAUxI,EAAOpB,EAAOZ,GACjD,IAAI2J,EAAY,GAChB,OAAI3H,GAA4B,YAAnB,OAAQA,IAbJ,SAAUA,EAAOpB,GAClC,OAAOoB,EAAMrC,aAAeiB,CAC9B,CAYQ6J,CAAazI,EAAOpB,GACtB+I,EAAY3J,EAAS0K,mBAIlBf,CACT,EAOIgB,GAAe,SAAUC,GAC3B,OAAKC,MAAMC,QAAQF,MAGJA,EAAWxB,MAAK,SAAUpH,GACvC,OAAOA,EAAMrC,cAAgBqC,EAAM2H,YAAc3H,EAAMpB,KACzD,GAEF,EAQImK,GAAmB,SAAUH,EAAY5K,GAC3C,OAAK6K,MAAMC,QAAQF,IAGZA,EAAWI,KAAI,SAAUhJ,GAC9B,IAAI2H,EAAYa,GAAqBxI,EAAOA,EAAMpB,MAAOZ,GACzD,OAAOrQ,OAAOsb,OAAO,CAAC,EAAGjJ,EAAO,CAC9B2H,UAAWA,GAEf,GACF,EAEA,SAASuB,GAAUlF,EAAQC,GAAkB,IAAIrW,EAAOD,OAAOC,KAAKoW,GAAS,GAAIrW,OAAOuW,sBAAuB,CAAE,IAAIC,EAAUxW,OAAOuW,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO1W,OAAO2W,yBAAyBN,EAAQK,GAAKE,UAAY,KAAK3W,EAAK6R,KAAK+B,MAAM5T,EAAMuW,EAAU,CAAE,OAAOvW,CAAM,CACtV,SAASub,GAAgB5N,GAAU,IAAK,IAAIkJ,EAAI,EAAGA,EAAIlD,UAAU1T,OAAQ4W,IAAK,CAAE,IAAIC,EAAS,MAAQnD,UAAUkD,GAAKlD,UAAUkD,GAAK,CAAC,EAAGA,EAAI,EAAIyE,GAAUvb,OAAO+W,IAAS,GAAInF,SAAQ,SAAU7D,IAAO,OAAgBH,EAAQG,EAAKgJ,EAAOhJ,GAAO,IAAK/N,OAAOgX,0BAA4BhX,OAAOiX,iBAAiBrJ,EAAQ5N,OAAOgX,0BAA0BD,IAAWwE,GAAUvb,OAAO+W,IAASnF,SAAQ,SAAU7D,GAAO/N,OAAOkX,eAAetJ,EAAQG,EAAK/N,OAAO2W,yBAAyBI,EAAQhJ,GAAO,GAAI,CAAE,OAAOH,CAAQ,CAC/f,SAAS6N,GAAmB3H,GAC1B,IAAInD,EAAOmD,EAAMnD,KACfwB,EAAgB2B,EAAM3B,cACtBoF,EAAczD,EAAMyD,YAClB7O,GAAY,IAAAC,UAAS6I,GAAoBb,IAC3C7H,GAAa,OAAeJ,EAAW,GACvCwJ,EAAWpJ,EAAW,GACtB4S,EAAc5S,EAAW,GACvB6S,GAAa,IAAAhT,UAAS,CACtBiT,WAAW,EACXnL,UAAU,EACVC,SAAS,EACTC,KAAM,KAERkL,GAAa,OAAeF,EAAY,GACxCG,EAAmBD,EAAW,GAC9BE,EAAsBF,EAAW,IAGnC,IAAAG,YAAU,WACRtD,GAAY8C,GAAgB,CAC1BrD,KAAMhG,EACN+F,WAAY,sCACXX,GACL,GAAG,IAGH,IAsGMlH,EADN,OACMA,EAAWM,EAAKN,SACA,gBAAoB,MAAO,CAC7CnR,UAAW,yBACG,gBAAoBga,GAAQ,CAC1C7I,SAAUA,IACK,gBAAoB,KAAM,MAAoB,gBAAoB4I,GAAgB,CACjG5I,SAAUA,IACK,gBAAoB,KAAM,MAAoB,gBAAoBgJ,GAAgB,CACjG1I,KAAMA,EACNuB,SAAUA,EACVoH,gBAhHyB,SAAU/H,GACrC,IAAI0K,EAAYrI,UAAU1T,OAAS,QAAsB8U,IAAjBpB,UAAU,GAAmBA,UAAU,GAAK,GAChFsI,EAAY3K,EAAE3D,OAChBqD,EAAQiL,EAAUjL,MAClBjM,EAAOkX,EAAUlX,KACfmX,EAAgBjK,EAASmJ,KAAI,SAAUhJ,GACzC,OAAIA,EAAMrN,OAASA,GAAQqN,EAAMrN,OAASiX,EACjCjc,OAAOsb,OAAO,CAAC,EAAGjJ,EAAO,CAC9BpB,MAAOA,EACP+I,UAAWa,GAAqBxI,EAAOpB,EAAON,EAAKN,YAIhDgC,CACT,IAGAqJ,EAAYS,EACd,IA+FmB,gBAAoBhD,GAAkB,CACrDxI,KAAMmL,IACS,gBAAoB,MAAO,CAC1C5c,UAAW,qCA5BR4c,EAAiBF,UAQF,gBAAoB,IAAgB,CACtDxW,iBAAkB,UAClB3B,KAAMmN,GAAQC,QATM,gBAAoB6J,GAAW,CACjD/J,KAAMA,EACNgK,eAAgB,WACd,OAlDgB,WAEtB,IAAIyB,EAAoBhB,GAAiBlJ,EAAUvB,EAAKN,UAGxD,GAAI2K,GAAaoB,GACf,OAAOV,EAAYU,GAIrBL,EAAoB/b,OAAOsb,OAAO,CAAC,EAAGQ,EAAkB,CACtDF,WAAW,KAIb,IAAIS,EAAwBb,GAAgB,CAC1CzD,KAAM,6CACNI,KAAMhG,GACLoF,GAIH,OAHAa,GAAiBiE,GAGVhI,GAAQpC,GAA+BC,EAAUC,IAAgBmK,MAAK,SAAU3H,GACrF,IAAIpB,EAASoB,EAAShE,KAAK4C,OACvBgJ,EAA0Bvc,OAAOsb,OAAO,CAAC,EAAGQ,EAAkB,CAChEnL,KAAM4C,EACNqI,WAAW,EACXnL,UAAU,EACVC,SAAS,IAEXqL,EAAoBQ,GAGpB7D,GAAY8C,GAAgBA,GAAgB,CAC1CrD,KAAMhG,GACLoF,GAAc,CAAC,EAAG,CACnBQ,KAAM,mDACNG,WAAY,2CAEhB,IAAGsE,OAAM,SAAUjL,GACjB,OA7DqC,SAAUA,GACjD,IAAIkL,EAAalL,EAAEkL,YAAclL,EAAE0C,IAAIwI,WACnCF,EAA0Bvc,OAAOsb,OAAO,CAAC,EAAGQ,EAAkB,CAEhEnL,KAAMY,EAAEgC,QAAUpC,GAAgBR,EAAKN,SAAU,uBACjDuL,WAAW,EACXnL,UAAU,EACVC,SAAS,IAEXqL,EAAoBQ,GAGpB7D,GAAY8C,GAAgBA,GAAgB,CAC1CrD,KAAMhG,GACLoF,GAAc,CAAC,EAAG,CACnBQ,KAAM,8DAA8DtW,OAAOgb,GAC3EvE,WAAY,yCAEhB,CA2CWwE,CAAmCnL,EAC5C,GACF,CAQeoL,EACT,KAwBwC,gBAAoB5D,GAAY,CAC1E1I,SAAUA,IAGhB,CAOA,SAASuM,GAAO9I,GACd,IAKM+I,EALFC,EAAchJ,EAAMgJ,YACtBC,EAAcjJ,EAAMiJ,YACpBC,EAAoBlJ,EAAMkJ,kBAC5B,OAGMF,IAAgBvK,GAAaC,SAC/BqK,EAAcG,GAAqB,CACjC3Y,OAAQ,QACRD,MAAO,QAEW,gBAAoB,MAAO,CAC7C4F,MAAO6S,GACO,gBAAoB,KAAM,CACxCjB,WAAW,OAMfiB,EAAcG,GAAqB,CACjCC,QAAS,OACTC,eAAgB,UAEE,gBAAoB,MAAO,CAC7ClT,MAAO6S,GACO,gBAAoB,IAAgB,CAClDzX,iBAAkB,UAClB3B,KAAMsZ,KAGZ,CAEA,SAAS,GAAQ1G,EAAQC,GAAkB,IAAIrW,EAAOD,OAAOC,KAAKoW,GAAS,GAAIrW,OAAOuW,sBAAuB,CAAE,IAAIC,EAAUxW,OAAOuW,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO1W,OAAO2W,yBAAyBN,EAAQK,GAAKE,UAAY,KAAK3W,EAAK6R,KAAK+B,MAAM5T,EAAMuW,EAAU,CAAE,OAAOvW,CAAM,CACpV,SAAS,GAAc2N,GAAU,IAAK,IAAIkJ,EAAI,EAAGA,EAAIlD,UAAU1T,OAAQ4W,IAAK,CAAE,IAAIC,EAAS,MAAQnD,UAAUkD,GAAKlD,UAAUkD,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQ9W,OAAO+W,IAAS,GAAInF,SAAQ,SAAU7D,IAAO,OAAgBH,EAAQG,EAAKgJ,EAAOhJ,GAAO,IAAK/N,OAAOgX,0BAA4BhX,OAAOiX,iBAAiBrJ,EAAQ5N,OAAOgX,0BAA0BD,IAAW,GAAQ/W,OAAO+W,IAASnF,SAAQ,SAAU7D,GAAO/N,OAAOkX,eAAetJ,EAAQG,EAAK/N,OAAO2W,yBAAyBI,EAAQhJ,GAAO,GAAI,CAAE,OAAOH,CAAQ,CAzCzf6N,GAAmBrH,UAAY,CAC7BzD,KAAM,UAAgBP,IAAgBJ,WACtCmC,cAAe,WACfoF,YAAa,UAAgB5H,KAuC/B,IAAIwN,GAA4B,SAAUhL,GACxC,MAAO,oCAAoC1Q,OAAO0Q,EAEpD,EAEA,SAASiL,GAAetJ,GACtB,IAgGM8H,EACFlL,EACA2M,EACAhN,EAnGAkH,EAAczD,EAAMyD,YACtBpD,EAAgBL,EAAMK,cACtBhC,EAAgB2B,EAAM3B,cACtBmL,EAAUxJ,EAAMwJ,QAChBC,EAAUzJ,EAAMyJ,QAChBC,EAAU1J,EAAM0J,QAChBV,EAAchJ,EAAMgJ,YACpBC,EAAcjJ,EAAMiJ,YACpBC,EAAoBlJ,EAAMkJ,kBACxBtU,GAAY,IAAAC,UAAS,CACrBiT,WAAW,EACXlL,SAAS,EACT2M,0BAA0B,EAC1BhN,SAAU,OAEZvH,GAAa,OAAeJ,EAAW,GACvCiI,EAAO7H,EAAW,GAClB2U,EAAU3U,EAAW,GAGnB4U,EAAmC,WACrC,IAAI5e,GAAO,OAAgC,UAAyB,SAASwV,IAC3E,IAAIK,EAAUgJ,EACd,OAAO,UAAyB,SAAU9I,GACxC,cAAkBA,EAASC,KAAOD,EAASE,MACzC,KAAK,EAGH,OAFAF,EAASC,KAAO,EAChBD,EAASE,KAAO,EACTV,GAAQ8I,GAA0BhL,IAC3C,KAAK,EACHwC,EAAWE,EAASkB,KACpB4H,EAAWhJ,EAAShE,KACpB8M,EAAQ,CACN7B,WAAW,EACXlL,SAAS,EACT2M,yBAA0B/K,GAAiCqL,GAC3DtN,SAAUsN,IAEZ9I,EAASE,KAAO,GAChB,MACF,KAAK,EACHF,EAASC,KAAO,EAChBD,EAASoB,GAAKpB,EAAgB,MAAE,GAChC4I,EAAQ,CACN7B,WAAW,EACXlL,SAAS,EACT2M,0BAA0B,EAC1BhN,SAAU,OAEd,KAAK,GACL,IAAK,MACH,OAAOwE,EAASqB,OAEtB,GAAG5B,EAAS,KAAM,CAAC,CAAC,EAAG,IACzB,KACA,OAAO,WACL,OAAOxV,EAAK+U,MAAMH,KAAME,UAC1B,CACF,CAtCuC,GA4DvC,OArBA,IAAAoI,YAAU,WAER,GAAIuB,EAAS,CACX,IAAIK,EAAYC,YAAW,WACzB,IAAIC,EAAwBxL,GAAiCkL,GAC7DC,EAAQ,CACN7B,WAAW,EACXlL,SAAS,EACT2M,yBAA0BS,EAC1BzN,SAAUmN,GAEd,GAAG,KACH,OAAO,WACL,OAAOO,aAAaH,EACtB,CACF,CACA,OAAOF,GACT,GAAG,IAIiB,gBAAoB,EAAAM,SAAU,KAAmB,gBAAoBtL,GAAe,CACtGyB,cAAeA,EACfD,UAAW,SAA0BtV,GACnC,IAAIqf,EAAmB,CACrBrO,KAAM+I,GAAmBpB,EAAapF,GACtCtC,KAAMiJ,GAAwBvB,EAAapF,GAC3C+F,WAAY,8CAEdM,GAAiB5Z,GACjB8Z,GAAY,GAAc,CACxBP,KAAMhG,GACL8L,GACL,GACc,gBAAoB,IAAe,CACjDC,MAAO,MAEHtC,EAAYjL,EAAKiL,UACnBlL,EAAUC,EAAKD,QACf2M,EAA2B1M,EAAK0M,yBAChChN,EAAWM,EAAKN,SAGduL,EAIA,gBAAoBgB,GAAQ,CAC1BE,YAAaA,EACbC,YAAaA,EACbC,kBAAmBA,IAOrBtM,GACFgI,GAAY,GAAc,CACxBP,KAAMhG,EACN+F,WAAY,4CACXX,IACiB,gBAAoB,MAAO,OAI7C8F,GACF3E,GAAY,GAAc,GAAc,CACtCP,KAAMhG,GACLoF,GAAc,CAAC,EAAG,CACnBQ,KAAM,6DACNG,WAAY,2DAEM,gBAAoB,MAAO,OAE7B,gBAAoBuD,GAAoB,CAC1D6B,QAASA,EACT3M,KAAMN,EACN8B,cAAeA,EACfoF,YAAaA,OAGnB,CAGA6F,GAAehJ,UAAY,CACzBD,cAAe,SACfoD,YAAa,UAAgB5H,IAAaK,WAC1C8M,YAAa,UAAgB,CAACvK,GAAaC,QAASD,GAAaE,SACjEsK,YAAa,UAAgB,CAh1BtB,KACC,KACD,OA+0BP5K,cAAe,WAAiBnC,WAChCsN,QAAS,WACTN,kBAAmB,WACnBO,QAAS,SACTC,QAAS,UAAgB,CAAC,IAI5BJ,GAAee,aAAe,CAC5BhK,eAAe,EACf2I,YAAavK,GAAaC,QAC1BuK,YA11BO,KA21BPO,QAAS,KACTC,SAAS,uICp9BP3f,EAAiBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBggB,EAAmBC,o7BAkEpL9f,EAAY,CAAC,YAAa,yBAA0B,oBAAqB,oBAAqB,4BAA6B,sBAAuB,qBAAsB,kBAAmB,iBAAkB,wBAAyB,KAAM,QAAS,OAAQ,YAAa,qBAAsB,aAAc,QAAS,UAAW,iBAAkB,sBAAuB,WAAY,UAAW,UAAW,YAAa,mBAAoB,gBAElb,SAAS+f,EAAQjI,EAAQC,GAAkB,IAAIrW,EAAOD,OAAOC,KAAKoW,GAAS,GAAIrW,OAAOuW,sBAAuB,CAAE,IAAIC,EAAUxW,OAAOuW,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO1W,OAAO2W,yBAAyBN,EAAQK,GAAKE,UAAY,KAAK3W,EAAK6R,KAAK+B,MAAM5T,EAAMuW,EAAU,CAAE,OAAOvW,CAAM,CAEpV,SAASse,EAAc3Q,GAAU,IAAK,IAAIkJ,EAAI,EAAGA,EAAIlD,UAAU1T,OAAQ4W,IAAK,CAAE,IAAIC,EAAS,MAAQnD,UAAUkD,GAAKlD,UAAUkD,GAAK,CAAC,EAAGA,EAAI,EAAIwH,EAAQte,OAAO+W,IAAS,GAAInF,SAAQ,SAAU7D,IAAO,OAAgBH,EAAQG,EAAKgJ,EAAOhJ,GAAO,IAAK/N,OAAOgX,0BAA4BhX,OAAOiX,iBAAiBrJ,EAAQ5N,OAAOgX,0BAA0BD,IAAWuH,EAAQte,OAAO+W,IAASnF,SAAQ,SAAU7D,GAAO/N,OAAOkX,eAAetJ,EAAQG,EAAK/N,OAAO2W,yBAAyBI,EAAQhJ,GAAO,GAAI,CAAE,OAAOH,CAAQ,CAEzf,IAAI4Q,EAAgB,SAAUxP,GAC5B,OAEEA,GAAOA,EAAI7F,QAAU6F,EAAI7F,QAAU,IAEvC,EA0CIsV,GAAe,IAAAC,aACnB,SAAU5K,EAAO9E,GACf,IAAI9P,EAAY4U,EAAM5U,UAClByf,EAAyB7K,EAAM6K,uBAC/BC,EAAoB9K,EAAM8K,kBAC1BC,EAAoB/K,EAAM+K,kBAC1BC,EAA4BhL,EAAMgL,0BAClCC,EAAsBjL,EAAMiL,oBAC5BC,EAAqBlL,EAAMkL,mBAC3BC,EAAwBnL,EAAMoL,gBAC9BA,OAA4C,IAA1BD,GAA2CA,EAC7DE,EAAiBrL,EAAMqL,eACvBC,EAAwBtL,EAAMsL,sBAC9BnQ,EAAK6E,EAAM7E,GACXoQ,EAAevL,EAAM6F,MACrBA,OAAyB,IAAjB0F,EAA0B,QAAUA,EAC5Cra,EAAO8O,EAAM9O,KACbgV,EAAYlG,EAAMkG,UAClBsF,EAAwBxL,EAAMyL,mBAC9BA,OAA+C,IAA1BD,EAAmC,QAAUA,EAClErF,EAAanG,EAAMmG,WACnBhJ,EAAQ6C,EAAM7C,MACduO,EAAiB1L,EAAMuE,QACvBA,OAA6B,IAAnBmH,EAA4B,GAAKA,EAC3CC,EAAiB3L,EAAM2L,eACvBC,EAAsB5L,EAAM4L,oBAC5B5F,EAAWhG,EAAMgG,SACjBjU,EAAUiO,EAAMjO,QAChB+U,GAAU9G,EAAM8G,QAChB+E,GAAY7L,EAAM6L,UAClBC,GAAmB9L,EAAM8L,iBACzBC,GAAe/L,EAAM+L,aACrBlgB,IAAO,OAAyBmU,EAAOvV,GAEvCqB,IAAS,IAAAC,KAETC,IAAU,IAAAC,UAAQ,WACpB,OA3JJ,SAAgBH,GAEd,IAAKI,OAAOC,KAAKL,GAAQM,OAEvB,OADA,QAAW,qGACJ,CAAC,EAGV,IAAI4f,EAAyBlgB,EAAOkgB,uBAChCtf,EAAgBZ,EAAOY,cACvBuf,EAAiBngB,EAAOmgB,eACxBvZ,EAA4B5G,EAAO4G,0BACnC9F,EAA2Bd,EAAOc,yBAClC4F,EAAoB1G,EAAO0G,kBAC3B0Z,EAAsCpgB,EAAOogB,oCAC7CC,EAAergB,EAAOqgB,aACtB9f,EAAaP,EAAOO,WACpBC,EAAaR,EAAOQ,WACpBC,EAAaT,EAAOS,WACpB6f,EAAmCtgB,EAAOsgB,iCAC1CC,EAAsCvgB,EAAOugB,oCAC7CC,EAAsCxgB,EAAOwgB,oCAC7CC,EAA6BzgB,EAAOygB,2BACpCjf,EAAoBxB,EAAOwB,kBAE3ByF,GAAc,QAAWjH,GACzBoH,EAAcH,EAAYG,YAC1BsZ,EAAWzZ,EAAYyZ,SAEvBC,GAAc,QAAW3gB,GACzB4gB,EAAmBD,EAAYE,aAC/BC,EAAmBH,EAAYI,aAC/BC,EAAmBL,EAAYM,aAC/BC,EAAcP,EAAYQ,QAG1B5e,GAAO,IAAAC,KAAIxE,IAAoBA,GAAkB,OAAuB,CAAC,4FACzE+b,GAAQ,IAAAvX,KAAIvE,IAAqBA,GAAmB,OAAuB,CAAC,2IAA4I,+BAAgC,qBAAsB,kCAAmC,uBAAwB,eAAgB,UAAW,gBAAiB,0CAA2C,kBAAmB,kBAAmB2iB,IAAoBV,EAAwBA,EAAwBA,EAAwBzf,GAAY,QAAK,IAAIoB,OAAOse,EAAgB,OAAOte,OAAO0e,EAAqC,UAAWG,GAAU,QAAK,GAAG7e,OAAOpB,EAAY,OAAOoB,OAAOjB,IAAiBH,GAAY,QAAK,GAAGoB,OAAOpB,EAAY,OAAOoB,OAAOjB,KACrwBwgB,GAAe,IAAA5e,KAAItE,IAAqBA,GAAmB,OAAuB,CAAC,6BAA8B,WAAYkJ,EAAYmB,oBACzI8Y,GAAS,IAAA7e,KAAIrE,IAAqBA,GAAmB,OAAuB,CAAC,2CAA4C,+CAAgD,oCAAqC,iBAAkB,yBAA0B,4BAA6B,uBAAwB,yBAA0B,wBAAyB,0BAA2B,wDAAyD,4BAA6B,wDAAyD,2BAA4B,kBAAmB2iB,IAAoBX,EAAgBrf,EAA0Bsf,EAAqC1Z,EAAmBE,GAA2B,QAAK,GAAG/E,OAAOrB,EAAY,OAAOqB,OAAOwe,EAAc,OAAOxe,OAAO2e,EAAqC,OAAO3e,OAAOf,KAA4B,QAAK,GAAGe,OAAOpB,EAAY,OAAOoB,OAAOjB,EAAe,OAAOiB,OAAOf,KAA4B,QAAK,GAAGe,OAAOpB,EAAY,OAAOoB,OAAOf,KAA4B,QAAK,GAAGe,OAAOpB,EAAY,OAAOoB,OAAOf,IAA4B4f,EAAUU,GAAc,QAAK,GAAGvf,OAAOpB,EAAY,OAAOoB,OAAOjB,EAAe,OAAOiB,OAAOf,KAA4B,QAAK,GAAGe,OAAOpB,EAAY,OAAOoB,OAAOf,KAC/uCwgB,GAAc,IAAA9e,KAAIpE,IAAqBA,GAAmB,OAAuB,CAAC,oCAAqC,UAAW,uBAAwB,yBAA0B,wBAAyB,0BAA2B,iDAAkD,2BAA4B,kBAAmBqiB,EAA4Bjf,GAAmB,QAAK,GAAGK,OAAOrB,EAAY,OAAOqB,OAAOwe,EAAc,OAAOxe,OAAO2e,EAAqC,OAAO3e,OAAO4e,KAA8B,QAAK,GAAG5e,OAAOpB,EAAY,OAAOoB,OAAOjB,EAAe,OAAOiB,OAAO4e,KAA8B,QAAK,GAAG5e,OAAOpB,EAAY,OAAOoB,OAAO4e,KAA8B,QAAK,GAAG5e,OAAOpB,EAAY,OAAOoB,OAAO4e,KAA8B,QAAK,GAAG5e,OAAOpB,EAAY,OAAOoB,OAAOjB,EAAe,OAAOiB,OAAO4e,KAA8B,QAAK,GAAG5e,OAAOpB,EAAY,OAAOoB,OAAO4e,KAC74Bc,GAAc,IAAA/e,KAAInE,IAAqBA,GAAmB,OAAuB,CAAC,6BAA8B,cAAe,WAAY2iB,IAAoBxgB,GAUnK,MAAO,CACL+B,KAAMA,EACNwX,MAAOA,EACPsH,OAAQA,EACRC,YAAaA,EACbF,aAAcA,EACdI,gBAfmB,IAAAhf,KAAIlE,IAAqBA,GAAmB,OAAuB,CAAC,6GAA8G,iBAAkB,uBAAwB,iDAAkD,kBAAmB,uCAAuC,QAAK,GAAGuD,OAAOrB,EAAY,OAAOqB,OAAOpB,KAAc,QAAK,GAAGoB,OAAOrB,EAAY,OAAOqB,OAAOpB,IAAcA,EAAYA,EAAYD,GAgBje+gB,YAAaA,EACblH,YAhBe,IAAA7X,KAAIjE,IAAqBA,GAAmB,OAAuB,CAAC,gDAAiD,qBAAsB,yEAA0E2iB,EAAY,CAChPze,MAAO6d,IACL/f,GAeF6Z,WAdc,IAAA5X,KAAIhE,IAAqBA,GAAmB,OAAuB,CAAC,+CAAgD,yCAA0C,qCAAsC0iB,EAAY,CAC9Nze,MAAO6d,IACL/f,GAaFkhB,WAZc,IAAAjf,KAAIgc,IAAsBA,GAAoB,OAAuB,CAAC,sDAAuD,wBAAyB,gDAAiD,0CAA2Chd,EAAmBjB,EAAYA,GAa/RmhB,WAZc,IAAAlf,KAAIic,IAAsBA,GAAoB,OAAuB,CAAC,iJAcxF,CA4FWpb,CAAOrD,GAChB,GAAG,CAACA,KAEA2hB,GAAgB,sBAAsB9f,OAA3BwN,GAAqE0K,EAAMtL,QAAQ,MAAO,KACrGmT,IAAc,IAAAtb,UACdub,GAAYzS,QAAiCA,EAAMwS,GACnDE,GAAgB,sBAAsBjgB,OAA3BwN,GAAqE0K,EAAMtL,QAAQ,MAAO,KAErG3F,IAAY,IAAAC,WAAS,GACrBG,IAAa,OAAeJ,GAAW,GACvCiZ,GAAW7Y,GAAW,GACtB8Y,GAAc9Y,GAAW,GAEzB6S,IAAa,IAAAhT,YAAWsI,GACxB4K,IAAa,OAAeF,GAAY,GACxCkG,GAAmBhG,GAAW,GAC9BiG,GAAoBjG,GAAW,GAE/BkG,IAAa,IAAApZ,WAAS,GACtBqZ,IAAa,OAAeD,GAAY,GACxCE,GAAQD,GAAW,GACnBE,GAASF,GAAW,IAExB,IAAAhG,YAAU,WACR,IAAImG,EAEAC,EAAM5D,EAAciD,IACpBY,EAAgBD,IAA+B,QAAtBD,EAAUpX,cAAgC,IAAZoX,OAAqB,EAASA,EAAQxW,iBAAiByW,IAClHF,GAAmG,SAA3FG,aAAqD,EAASA,EAAcC,WACtF,IAEA,IAAIC,GAAW,SAAUrY,GACvB0X,IAAY,SAAUY,GACpB,OAAQA,CACV,IACAV,IAAmB5X,EAAIuY,OACzB,EAEIC,GAAkB,SAAUC,GAC9Bf,IAAY,GACZ,IAWIgB,EAXAC,EAAgBrE,EAAciD,IAclC,GAXIoB,IACE3D,EACF2D,EAAcC,OAEdD,EAAcE,SAOdjJ,EAAU,CACZ,IAAIkJ,EAAkB3K,EAAQnY,OAAS,GAAKyiB,GAAS,EACrDC,EAAgBI,EAAkB3K,EAAQsK,GAAO1R,OAASoH,EAAQsK,GAAOM,YAAc,KAEnFpD,KACF+C,EAAgBI,EAAkB3K,EAAQsK,GAAO1R,MAAQ,MAS3D6I,EANc,CACZlM,OAAQ,CACNsV,cAAeP,EACf1R,MAAO2R,IAIb,CACF,EAEIO,GAAQlJ,EAAc,sBAAyBD,GAAa,qBAC5DoJ,GAAa,GACbC,GAAc,GACdH,IAAiB,EAErB,GAAIjS,GACF,IAAK,IAAI6F,GAAI,EAAGA,GAAIuB,EAAQnY,OAAQ4W,KAClC,GAAIuB,EAAQvB,IAAG7F,QAAUA,EAAO,CAE5BmS,GADE1D,EACWA,IAEArH,EAAQvB,IAAGmM,YAG1BI,GAAchL,EAAQvB,IAAG7F,MACzBiS,GAAgBpM,GAChB,KACF,OAEQ7F,GAASoH,EAAQnY,OAAS,GAA0B,KAArBmY,EAAQ,GAAGpH,QACpDiS,GAAgB,GAGlB,IAAII,GAA0B3B,GAAW,MAAgB,MACrD4B,IAAiB,IAAAhgB,KAAI+f,GAAyB,CAChD7f,KAAM,KACNrB,IAAKtC,GAAQshB,eACb/e,MAAO,2BACP,cAAe,OACf,YAAa,SAEXmhB,GAAa/D,EAAiB,GAAGhe,OAAO8f,GAAU,WAAW9f,OAAOge,GAAkB,GAAGhe,OAAO8f,GAAU,UAE1G6B,KACFI,GAAa,GAAG/hB,OAAO+hB,GAAY,KAAK/hB,OAAO8f,KAGjD,IAAIkC,GAAkBlF,EAAcA,EAAcA,EAAc,CAAC,EAAG4E,IAAS,CAC3E,mBAAoBA,KAClB,CACF,kBAAmBK,KACjB7jB,IAEA+jB,GAAe,CAAC5jB,GAAQmhB,OAAQU,IAAY7hB,GAAQkhB,aAAchH,GAAala,GAAQohB,aACvFyC,GAAc,CAAC7jB,GAAQ6Z,OAAQgI,IAAYyB,KAAetjB,GAAQqhB,aACtE,OAAO,IAAA5d,KAAI,MAAO,CAChBrE,UAAWA,EACXkD,IAAKtC,GAAQqC,KACb8M,GAAIA,EACJ,iBAAkB,2BACjB,IAAA1L,KAAI,SAAU,CACfnB,IAAKtC,GAAQwhB,UACb,cAAe,OACfrS,GAAIyS,GACJ1c,KAAMA,EACN4e,UAAW,EACX9J,SAAU,SAAU5P,GAClB,OAAOwY,GAAgBxY,EAAI0D,OAAOsV,cAAgB,EACpD,EACAjS,MAAOoS,GACP,YAAa,SACZ,IAAA9f,KAAI,SAAU,CACfsgB,UAAU,EACV5S,MAAO,GACP,YAAa,QACZ0I,GAAQtB,EAAQnY,OAAS,GAAKmY,EAAQgD,KAAI,SAAUyI,EAAKnB,GAC1D,OAAO,IAAApf,KAAI,SAAU,CACnBwK,IAAK4U,EACL1R,MAAO6S,EAAI7S,MAAQ6S,EAAI7S,MAAQ6S,EAAIb,YACnC,YAAa,QACZa,EAAIb,YACT,MAAK,IAAA1f,KAAI,UAAU,OAAS,CAC1BrE,UAAW6f,EACX3c,IAAKshB,GACLtkB,KAAM,SACN6P,GAAIsS,GACJvS,IAAKyS,GACL,gBAAiB,UACjB,gBAAiBE,GACjB/G,QAAS,SAAqB1Q,GAC5BqY,GAASrY,GAGL0Q,IACFA,GAAQ1Q,EAEZ,EACAyV,UAAW,SAAmBzV,GAE5B,IAAI4D,EAAU,IAAI,KAAa5D,EAAI6D,KAAO7D,EAAI8D,UAEzC2T,KAAa7T,EAAQiW,aAAejW,EAAQkW,gBA5MlC,SAAU9Z,GAC7B,QAAQA,EAAI+Z,QAAW/Z,EAAIga,SAAYha,EAAIia,UAAaja,EAAIka,QAC9D,CA0MyEC,CAAena,KAChFA,EAAIsF,iBACJ+S,GAASrY,IAKPyV,IACFA,GAAUzV,EAEd,GACCuZ,GAAiB,CAClB,YAAa,SACXF,IAAgB,IAAAhgB,KAAI,OAAQ,CAC9B,YAAa,QACZ6f,MAAc,IAAA7f,KAAI,QAAS,CAC5B0L,GAAI,GAAGxN,OAAO8f,GAAU,UACxB+C,QAAS/C,GACTnf,IAAKuhB,GACLzkB,UAAW8f,EACX,YAAa,SACZ,IAAAzb,KAAI,OAAQ,CACb,YAAa,QACZoW,KAAS,IAAApW,KAAI,KAAe,CAC7Bse,iBAAkBA,GAClBjZ,OAAQ+Y,GACR4C,YAAa5K,EACb9T,QAAS,SAAqBqE,GAC5B0X,IAAY,GAER/b,GACFA,EAAQqE,EAEZ,EACAsa,YAAa9B,GACbQ,cAAeA,GACfuB,kBAAmBhD,GACnBpJ,QAASA,EACTnZ,UAAW0f,EACX8F,mBAAoB/F,EACpBgG,cAAe9F,EACf+F,sBAAuB9F,EACvBK,eAAgBA,EAChBC,sBAAuBA,EACvByF,IAAK5C,GACL6C,sBAAuB5F,EACvBU,iBAAkBA,GAClBmF,eAAe,EACf,YAAa,SA/RG,SAAU/K,EAAWuF,EAAoBtF,EAAYkJ,EAAOrjB,GAC9E,GAAIka,EAAW,CACb,IAAIgL,EAAa,CACf5iB,IAAKtC,EAAQuhB,UACbxd,KAAM,MACN,aAAc0b,GAEZ0F,GAAoB,IAAA1hB,KAAI,OAAc,OAAS,CACjDE,KAAM,MACLuhB,EAAY,CACb,YAAa,UAEf,OAAO,IAAAzhB,KAAI,MAAO,CAChBnB,IAAKtC,EAAQka,UACb/K,GAAIkU,EACJtf,KAAM,QACN,YAAa,QACZohB,GAAmB,IAAA1hB,KAAI,OAAQ,CAChC,YAAa,QACZyW,GACL,CAEA,OAAIC,GACK,IAAA1W,KAAI,MAAO,CAChBnB,IAAKtC,EAAQma,WACbhL,GAAIkU,EACJ,YAAa,SACZ,IAAA5f,KAAI,OAAQ,CACb,YAAa,QACZ0W,IAGE,IACT,CA+PMiL,CAAclL,EAAWuF,EAAoBtF,EAAYkJ,GAAOrjB,IACtE,iKC7Xe,SAASqlB,EAAUC,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIC,UAAU,sDAEtBF,EAAShS,UAAYpT,OAAOulB,OAAOF,GAAcA,EAAWjS,UAAW,CACrEO,YAAa,CACX1C,MAAOmU,EACPI,UAAU,EACVC,cAAc,KAGlBzlB,OAAOkX,eAAekO,EAAU,YAAa,CAC3CI,UAAU,IAERH,IAAY,OAAeD,EAAUC,EAC3C,mPCde,SAASK,EAA2BC,EAAMviB,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,mBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIkiB,UAAU,4DAEtB,OAAO,OAAsBK,EAC/B","sources":["webpack:///../node_modules/@paypalcorp/pp-react-alert/dist/@paypalcorp/pp-react-alert.esm.js","webpack:///../node_modules/@paypalcorp/pp-react-tooltip/dist/@paypalcorp/pp-react-tooltip.esm.js","webpack:///../node_modules/@paypalcorp/helpcomponents-currency-conv/dist/@paypalcorp/helpcomponents-currency-conv.esm.js","webpack:///../node_modules/@paypalcorp/pp-react-dropdown-menu/dist/@paypalcorp/pp-react-dropdown-menu.esm.js","webpack:///../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { useMemo, useState } from 'react';\nimport { IconButton } from '@paypalcorp/pp-react-icon-button';\nimport { CloseIcon, InformationIcon, CheckmarkBackgroundIcon, WarningIcon, CriticalIcon } from '@paypalcorp/pp-react-icons';\nimport { css, useTheme, jsx } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { math } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\nimport { devWarning, getColorFamily, ColorProvider } from '@paypalcorp/pp-react-utils';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;\nfunction styles(tokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysSpaceXs = tokens.sysSpaceXs,\n sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceMd = tokens.sysSpaceMd,\n sysSpaceLg = tokens.sysSpaceLg,\n sysSizeFieldSm = tokens.sysSizeFieldSm,\n sysSizeIconSm = tokens.sysSizeIconSm,\n sysTypographyBodySize = tokens.sysTypographyBodySize,\n sysBorderThicknessNormal = tokens.sysBorderThicknessNormal,\n sysBorderRadiusLg = tokens.sysBorderRadiusLg,\n sysColorSystemMain = tokens.sysColorSystemMain,\n sysColorSystemMainActive = tokens.sysColorSystemMainActive,\n sysColorInfoMain = tokens.sysColorInfoMain,\n sysColorInfoContrast = tokens.sysColorInfoContrast,\n sysColorSuccessMain = tokens.sysColorSuccessMain,\n sysColorSuccessContrast = tokens.sysColorSuccessContrast,\n sysColorWarningMain = tokens.sysColorWarningMain,\n sysColorWarningContrast = tokens.sysColorWarningContrast,\n sysColorErrorMain = tokens.sysColorErrorMain,\n sysColorErrorContrast = tokens.sysColorErrorContrast;\n\n var _textStyles = textStyles(tokens),\n textBody = _textStyles.body;\n\n var alertPaddingRightSpacing = math(\"\".concat(sysSpaceXs, \" * 2\"));\n var alertPaddingRight = math(\" \".concat(alertPaddingRightSpacing, \" + \").concat(sysSizeFieldSm));\n var alertPaddingLeft = math(\"\".concat(sysSpaceLg, \" + \").concat(sysTypographyBodySize, \" + \").concat(sysSpaceMd));\n var alertPaddingTop = math(\"\".concat(sysSpaceLg, \" - \").concat(sysBorderThicknessNormal));\n var alertPaddingBottom = math(\"\".concat(sysSpaceLg, \" - \").concat(sysBorderThicknessNormal));\n var alertPaddingRightWithoutClose = math(\"\".concat(sysSpaceLg, \" - \").concat(sysBorderThicknessNormal));\n var alertIconSpaceLeft = math(\"\".concat(sysSpaceLg, \"- \").concat(sysBorderThicknessNormal));\n var sysAlertCloseBtnSpaceTop = math(\"\".concat(sysSpaceSm, \" - \").concat(sysBorderThicknessNormal));\n var sysAlertCloseBtnSpaceRight = math(\"\".concat(sysSpaceSm, \" - \").concat(sysBorderThicknessNormal));\n var sysAlertIconSvgSpaceTop = math(\"\".concat(sysSpaceLg, \"- \").concat(sysBorderThicknessNormal));\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: alert_base;\\n box-sizing: border-box;\\n padding: \", \" \", \" \", \"\\n \", \";\\n border-width: \", \";\\n border-style: solid;\\n border-radius: \", \";\\n position: relative;\\n text-align: initial;\\n \", \";\\n\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n\\n &:before {\\n left: auto;\\n right: \", \";\\n }\\n }\\n \"])), alertPaddingTop, alertPaddingRight, alertPaddingBottom, alertPaddingLeft, sysBorderThicknessNormal, sysBorderRadiusLg, textBody({\n color: sysColorSystemMain\n }), alertPaddingRight, alertPaddingLeft, alertIconSpaceLeft);\n var svgIcon = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: svg_icon;\\n display: inline-block;\\n position: absolute;\\n left: \", \";\\n text-align: center;\\n color: \", \";\\n line-height: \", \";\\n font-size: \", \";\\n top: \", \";\\n vertical-align: middle;\\n\\n [dir='rtl'] & {\\n left: auto;\\n right: \", \";\\n }\\n \"])), alertIconSpaceLeft, sysColorSystemMainActive, sysSizeIconSm, sysSizeIconSm, sysAlertIconSvgSpaceTop, alertIconSpaceLeft);\n var closeBtn = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: close_btn;\\n position: absolute;\\n top: \", \";\\n right: \", \";\\n\\n [dir='rtl'] & {\\n left: \", \";\\n right: auto;\\n }\\n \"])), sysAlertCloseBtnSpaceTop, sysAlertCloseBtnSpaceRight, sysAlertCloseBtnSpaceRight);\n\n var alertColor = function (backgroundColor, color) {\n return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n border: none;\\n background-color: \", \";\\n color: \", \";\\n \"])), backgroundColor, color);\n };\n\n var alertType = function (type) {\n var colorMap = {\n info: alertColor(sysColorInfoMain, sysColorInfoContrast),\n warning: alertColor(sysColorWarningMain, sysColorWarningContrast),\n success: alertColor(sysColorSuccessMain, sysColorSuccessContrast),\n error: alertColor(sysColorErrorMain, sysColorErrorContrast)\n };\n return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: \", \";\\n \", \";\\n \"])), type, colorMap[type]);\n };\n\n var iconColor = function (color) {\n return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n color: \", \";\\n \"])), color);\n };\n\n var alertIcon = function (type) {\n var iconMap = {\n info: iconColor(sysColorInfoContrast),\n warning: iconColor(sysColorWarningContrast),\n success: iconColor(sysColorSuccessContrast),\n error: iconColor(sysColorErrorContrast)\n };\n var classLabel = \"\".concat(type, \"_icon\");\n return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: \", \";\\n \", \";\\n \"])), classLabel, iconMap[type]);\n };\n\n var noCloseBtn = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: no_close_btn;\\n padding-right: \", \";\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n }\\n \"])), alertPaddingRightWithoutClose, alertPaddingRightWithoutClose, alertPaddingLeft);\n return {\n base: base,\n svgIcon: svgIcon,\n closeBtn: closeBtn,\n noCloseBtn: noCloseBtn,\n alertType: alertType,\n alertIcon: alertIcon\n };\n}\n\nvar _excluded = [\"className\", \"type\", \"typeIconAriaLabel\", \"closeButton\", \"closeButtonLabel\", \"children\"];\nvar icons = {\n info: InformationIcon,\n success: CheckmarkBackgroundIcon,\n warning: WarningIcon,\n error: CriticalIcon\n};\n\nvar Alert = function (_ref) {\n var _styles$alertType, _styles$alertIcon;\n\n var className = _ref.className,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'info' : _ref$type,\n _ref$typeIconAriaLabe = _ref.typeIconAriaLabel,\n typeIconAriaLabel = _ref$typeIconAriaLabe === void 0 ? type : _ref$typeIconAriaLabe,\n closeButton = _ref.closeButton,\n _ref$closeButtonLabel = _ref.closeButtonLabel,\n closeButtonLabel = _ref$closeButtonLabel === void 0 ? 'close alert' : _ref$closeButtonLabel,\n children = _ref.children,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var AlertStatusIcon = icons[type];\n var alertCSSVal = [_styles.base, (_styles$alertType = _styles.alertType) === null || _styles$alertType === void 0 ? void 0 : _styles$alertType.call(_styles, type), !closeButton && _styles.noCloseBtn];\n var closeBtnEl;\n\n if (closeButton) {\n var otherProps = _extends({}, closeButton);\n\n var alertCloseBtnCSSVal = [_styles.closeBtn];\n closeBtnEl = closeButton && jsx(\"span\", {\n \"data-ppui\": \"true\"\n }, jsx(IconButton, _extends({\n css: alertCloseBtnCSSVal,\n buttonType: \"tertiary\",\n size: \"sm\",\n svgIconComponent: CloseIcon\n }, otherProps, {\n \"data-ppui\": \"true\"\n }), closeButtonLabel));\n }\n\n var alertSvgCSSVal = [_styles.svgIcon, (_styles$alertIcon = _styles.alertIcon) === null || _styles$alertIcon === void 0 ? void 0 : _styles$alertIcon.call(_styles, type)];\n var alert = jsx(\"div\", _extends({\n role: \"alert\",\n css: alertCSSVal,\n className: className,\n \"data-ppui-info\": \"alert_3.0.2-ql\"\n }, rest), jsx(AlertStatusIcon, {\n size: \"sm\",\n css: alertSvgCSSVal,\n role: \"img\",\n \"aria-label\": typeIconAriaLabel,\n \"data-ppui\": \"true\"\n }), children, closeBtnEl);\n var colorFamily = getColorFamily({\n info: 'Info',\n warning: 'Warning',\n success: 'Success',\n error: 'Error'\n }[type], tokens);\n return jsx(ColorProvider, {\n colorFamily: colorFamily,\n \"data-ppui\": \"true\"\n }, alert);\n};\n\nvar _excluded$1 = [\"className\", \"type\", \"typeIconAriaLabel\", \"closeButton\", \"closeButtonLabel\", \"children\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar DismissibleAlert = function (_ref) {\n var className = _ref.className,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'info' : _ref$type,\n _ref$typeIconAriaLabe = _ref.typeIconAriaLabel,\n typeIconAriaLabel = _ref$typeIconAriaLabe === void 0 ? type : _ref$typeIconAriaLabe,\n _ref$closeButton = _ref.closeButton,\n closeButton = _ref$closeButton === void 0 ? {} : _ref$closeButton,\n _ref$closeButtonLabel = _ref.closeButtonLabel,\n closeButtonLabel = _ref$closeButtonLabel === void 0 ? 'close alert' : _ref$closeButtonLabel,\n children = _ref.children,\n rest = _objectWithoutProperties(_ref, _excluded$1);\n\n var _useState = useState(true),\n _useState2 = _slicedToArray(_useState, 2),\n showAlert = _useState2[0],\n setShowAlert = _useState2[1];\n\n var closeBtnProps = _objectSpread({}, closeButton);\n\n closeBtnProps.onClick = function (event) {\n if (closeButton && closeButton.onClick) {\n closeButton.onClick(event);\n }\n\n setShowAlert(false);\n };\n\n return showAlert && /*#__PURE__*/React.createElement(Alert, _extends({\n className: className,\n type: type,\n typeIconAriaLabel: typeIconAriaLabel,\n closeButton: closeBtnProps,\n closeButtonLabel: closeButtonLabel\n }, rest, {\n \"data-ppui\": \"true\"\n }), children);\n};\n\nexport { Alert, DismissibleAlert, styles as alertStyles };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport React, { useRef, useMemo, useState, useLayoutEffect } from 'react';\nimport { iconStyles, VerifiedIcon, QuestionIcon } from '@paypalcorp/pp-react-icons';\nimport ReactDOM from 'react-dom';\nimport { devWarning, utilStyles, ZINDEX_TOOLTIP, hasWindow, isTouchDevice, isActiveElementIn, KeyboardCode } from '@paypalcorp/pp-react-utils';\nimport { css, useTheme, jsx } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { math } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;\nfunction styles(tokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysBorderRadiusInteractive = tokens.sysBorderRadiusInteractive,\n sysBorderRadiusSm = tokens.sysBorderRadiusSm,\n sysColorBackgroundHighContrast = tokens.sysColorBackgroundHighContrast,\n sysColorBackgroundSurface = tokens.sysColorBackgroundSurface,\n sysColorPrimaryMainActive = tokens.sysColorPrimaryMainActive,\n sysColorPrimaryMain = tokens.sysColorPrimaryMain,\n sysSizePointerWidthLg = tokens.sysSizePointerWidthLg,\n sysSizeTapTargetSm = tokens.sysSizeTapTargetSm,\n sysSpaceLg = tokens.sysSpaceLg,\n sysSpaceSm = tokens.sysSpaceSm;\n\n var _textStyles = textStyles(tokens),\n body = _textStyles.body;\n\n var _utilStyles = utilStyles(tokens),\n elevationStyles = _utilStyles.elevationStyles,\n caretStyles = _utilStyles.caretStyles,\n focusStyles = _utilStyles.focusStyles,\n screenReader = _utilStyles.screenReader;\n\n var _iconStyles = iconStyles(tokens),\n iconBase = _iconStyles.base,\n iconSizeXs = _iconStyles.sizeXs;\n\n var maxWidth = '18rem';\n var pointerHeight = math(\"\".concat(sysSizePointerWidthLg, \"/2\"));\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: tooltip_base;\\n \", \";\\n visibility: hidden;\\n opacity: 0;\\n max-width: \", \";\\n word-wrap: break-word;\\n padding: \", \";\\n position: absolute;\\n border-radius: \", \";\\n background-color: \", \";\\n z-index: \", \";\\n\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n\\n\\n &[aria-hidden='false'] {\\n visibility: visible;\\n opacity: 1;\\n }\\n\\n &.pp_react_tooltip--position_left {\\n label: position_left;\\n \", \"\\n }\\n\\n &.pp_react_tooltip--position_right {\\n label: position_right;\\n \", \"\\n }\\n\\n &.pp_react_tooltip--position_bottom {\\n label: position_bottom;\\n \", \"\\n }\\n\\n &.pp_react_tooltip--tip_left {\\n label: tip_position_left;\\n \", \"\\n }\\n\\n &.pp_react_tooltip--tip_right {\\n label: tip_position_right;\\n \", \"\\n }\\n \"])), body({\n color: sysColorBackgroundHighContrast\n }), maxWidth, sysSpaceLg, sysBorderRadiusSm, sysColorBackgroundSurface, ZINDEX_TOOLTIP, elevationStyles.level3, caretStyles.base(sysSizePointerWidthLg), caretStyles.positionBottom(pointerHeight), caretStyles.positionCenter(sysSizePointerWidthLg), caretStyles.positionRight(pointerHeight), caretStyles.positionLeft(pointerHeight), caretStyles.positionTop(pointerHeight), caretStyles.positionShiftLeft(sysSizePointerWidthLg), caretStyles.positionShiftRight(sysSizePointerWidthLg)); // Styles for Icon\n\n var icon = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: tooltip-icon;\\n \", \";\\n \", \";\\n width: \", \";\\n height: \", \";\\n padding: 0;\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n color: \", \";\\n cursor: pointer;\\n border: 0;\\n background-color: transparent;\\n position: relative;\\n\\n &:hover,\\n &:active {\\n color: \", \";\\n outline: none;\\n }\\n\\n &:focus {\\n outline: none;\\n > span:first-of-type {\\n border-radius: \", \";\\n \", \";\\n }\\n }\\n \"])), iconBase, iconSizeXs, sysSizeTapTargetSm, sysSizeTapTargetSm, sysColorPrimaryMain, sysColorPrimaryMainActive, sysBorderRadiusInteractive, focusStyles.focusOffsetElement); // Image Positions\n\n var image = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: image;\\n display: flex;\\n img {\\n max-width: \", \";\\n }\\n \"])), math(\"\".concat(maxWidth, \" - 2 * \").concat(sysSpaceLg)));\n\n var imageAlignBottom = function (justifyImage) {\n return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n justify-content: \", \";\\n padding-top: \", \";\\n \"])), justifyImage, sysSpaceSm);\n };\n\n var imageAlignTop = function (justifyImage) {\n return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n justify-content: \", \";\\n padding-bottom: \", \";\\n \"])), justifyImage, sysSpaceSm);\n };\n\n var imageTopLeft = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: image_top_left;\\n \", \"\\n \"])), imageAlignTop('flex-start'));\n var imageTopCenter = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: image_top_center;\\n \", \"\\n \"])), imageAlignTop('center'));\n var imageBottomLeft = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: image_bottom_left;\\n \", \"\\n \"])), imageAlignBottom('flex-start'));\n var imageBottomCenter = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n label: image_bottom_center;\\n \", \"\\n \"])), imageAlignBottom('center'));\n return {\n base: base,\n icon: icon,\n screenReader: screenReader,\n image: image,\n imageTopLeft: imageTopLeft,\n imageTopCenter: imageTopCenter,\n imageBottomLeft: imageBottomLeft,\n imageBottomCenter: imageBottomCenter\n };\n}\n\nvar tooltip;\nvar tooltipOrigin;\n/* eslint-disable complexity */\n\nvar Tooltip = function (_ref) {\n var _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'Tooltip' : _ref$name,\n _ref$description = _ref.description,\n description = _ref$description === void 0 ? 'tooltip' : _ref$description,\n _ref$screenReaderText = _ref.screenReaderText,\n screenReaderText = _ref$screenReaderText === void 0 ? name : _ref$screenReaderText,\n position = _ref.position,\n verifiedIcon = _ref.verifiedIcon,\n windowId = _ref.windowId,\n windowRef = _ref.windowRef,\n className = _ref.className,\n triggerClassName = _ref.triggerClassName,\n tooltipClassName = _ref.tooltipClassName,\n containerRef = _ref.containerRef,\n onOpen = _ref.onOpen,\n onClose = _ref.onClose,\n imageElement = _ref.imageElement,\n _ref$imagePosition = _ref.imagePosition,\n imagePosition = _ref$imagePosition === void 0 ? 'top-left' : _ref$imagePosition;\n var wrapperRef = useRef();\n var tooltipOriginRef = useRef();\n var tooltipRef = useRef(); // If theme is not directly provided, get from themeContext\n\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var noop = function () {};\n\n var tooltipWindow;\n var containerPos;\n var scrollX;\n var scrollY;\n var width;\n var height;\n var originWidth;\n var originHeight;\n var originPos;\n var maxWidth;\n var iconSpacing;\n var caretWidth;\n var caretHeight;\n var caretSpaceHorizontal;\n var spacingOffset;\n var tooltipIconSize;\n\n var _useState = useState({\n isOpen: false,\n currentEvent: null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var isOpen = state.isOpen,\n currentEvent = state.currentEvent;\n\n var getWrapperCurrent = function (w) {\n return (\n /* istanbul ignore next */\n w && w.current ? w.current : null\n );\n };\n /* istanbul ignore next */\n\n\n var setTooltipPosition = function (top, left) {\n var _containerPos, _containerPos2;\n\n var containerElm = getWrapperCurrent(containerRef);\n\n var _ref2 = containerElm ? [top - ((_containerPos = containerPos) === null || _containerPos === void 0 ? void 0 : _containerPos.top) - scrollY + containerElm.scrollTop, left - ((_containerPos2 = containerPos) === null || _containerPos2 === void 0 ? void 0 : _containerPos2.left) - scrollX + containerElm.scrollLeft] : [top, left],\n _ref3 = _slicedToArray(_ref2, 2),\n offsetTop = _ref3[0],\n offsetLeft = _ref3[1];\n\n tooltip.style.top = \"\".concat(offsetTop, \"px\");\n tooltip.style.left = \"\".concat(offsetLeft, \"px\");\n tooltip.style.maxWidth = \"\".concat(maxWidth, \"px\");\n };\n /* istanbul ignore next */\n\n\n var getTooltipBoundary = function () {\n var providedWindow = windowRef ? getWrapperCurrent(windowRef) : document.getElementById(windowId);\n\n if (providedWindow) {\n var pos = providedWindow.getBoundingClientRect();\n return {\n windowEl: providedWindow,\n top: pos.top,\n right: pos.right,\n bottom: pos.bottom,\n left: pos.left\n };\n }\n\n return {\n windowEl: hasWindow() ? window : null,\n top: 0,\n right: window.innerWidth || document.documentElement.clientWidth,\n bottom: window.innerHeight || document.documentElement.clientHeight,\n left: 0\n };\n };\n\n var positionTopCenter = function () {\n // tooltip bubble starts at bottom left edge of its origin (icon/button)\n // and calculates moves from there:\n var topCenterX = originPos.left - width / 2 + originWidth / 2 + scrollX;\n var topCenterY = originPos.top - height - spacingOffset + scrollY + iconSpacing;\n setTooltipPosition(topCenterY, topCenterX);\n };\n /* istanbul ignore next */\n\n\n var positionBottom = function (top, left) {\n var offsetY = top + scrollY + height + originHeight + spacingOffset * 2 - iconSpacing * 2;\n setTooltipPosition(offsetY, left);\n };\n\n var positionLeft = function () {\n var buttonWidth = originWidth / 2 - tooltipIconSize / 2; // tooltip bubble starts at bottom left edge of its origin (icon/button)\n // and calculates X and Y moves from there:\n\n var leftPosX = originPos.left - width + buttonWidth - spacingOffset + scrollX;\n var leftPosY = originPos.top - height / 2 + originHeight / 2 + scrollY;\n tooltip.classList.add('pp_react_tooltip--position_left');\n setTooltipPosition(leftPosY, leftPosX);\n };\n\n var positionRight = function () {\n var buttonWidth = originWidth / 2 + tooltipIconSize / 2; // tooltip bubble starts at bottom left edge of its origin (icon/button)\n // and calculates X and Y moves from there:\n\n var rightPosX = originPos.left + buttonWidth + spacingOffset + scrollX;\n var rightPosY = originPos.top - height / 2 + originHeight / 2 + scrollY;\n tooltip.classList.add('pp_react_tooltip--position_right');\n setTooltipPosition(rightPosY, rightPosX);\n };\n\n var selfPosition =\n /* istanbul ignore next */\n function () {\n positionTopCenter();\n var boundary = tooltip.getBoundingClientRect();\n\n if (boundary.top < tooltipWindow.top || boundary.top < 0) {\n // position: bottom\n positionBottom(boundary.top, boundary.left);\n tooltip.classList.add('pp_react_tooltip--position_bottom'); // store new boundary\n\n boundary = tooltip.getBoundingClientRect();\n } // note: if both left and right are out of bounds keep it centered\n\n\n if (!(boundary.left < tooltipWindow.left && boundary.left + maxWidth > tooltipWindow.right)) {\n var sideShift = caretSpaceHorizontal + caretWidth / 2;\n var offsetY = boundary.top + scrollY;\n var offsetX = boundary.left + scrollX;\n\n if (boundary.left < tooltipWindow.left) {\n // position: top-right, bottom-right (with left tooltip)\n offsetX = offsetX + width / 2 - sideShift;\n tooltip.classList.add('pp_react_tooltip--tip_left');\n }\n\n if (boundary.left + maxWidth > tooltipWindow.right) {\n // position: top-left, bottom-left (with right tooltip)\n offsetX = offsetX - width / 2 + sideShift;\n tooltip.classList.add('pp_react_tooltip--tip_right');\n }\n\n setTooltipPosition(offsetY, offsetX);\n }\n }; // for keyboard focus and mouseover\n\n\n var setOpen = function (evt) {\n evt.stopPropagation();\n setState({\n isOpen: true,\n currentEvent: evt.type\n });\n // eslint-disable-next-line\n onOpen && onOpen(evt, name);\n };\n\n var clearOpen = function (evt) {\n // istanbul ignore next\n if (evt.type === 'resize' && isTouchDevice() && isActiveElementIn(['INPUT', 'TEXTAREA'])) {\n return;\n }\n\n setState({\n isOpen: false,\n currentEvent: null\n }); // eslint-disable-next-line\n\n onClose && onClose(name);\n /* istanbul ignore else */\n\n if (tooltipWindow && tooltipWindow.windowEl) {\n var _tooltipWindow = tooltipWindow,\n windowEl = _tooltipWindow.windowEl;\n windowEl.removeEventListener('scroll', clearOpen);\n windowEl.removeEventListener('mousewheel', clearOpen);\n }\n };\n\n var setWidth = function () {\n var tooltipMaxWidthPx = getComputedStyle(tooltip, 'style').maxWidth;\n var tooltipMaxWidth = parseInt(tooltipMaxWidthPx.split('px')[0], 10);\n var winLeft = tooltipWindow.left;\n var winRight = tooltipWindow.right;\n var iconLeft = tooltipOrigin.getBoundingClientRect().left;\n var availableLeftSpace = iconLeft - winLeft + iconSpacing;\n var availableRightSpace = winRight - iconLeft - iconSpacing - tooltipIconSize;\n var halfMaxWidth = tooltipMaxWidth / 2; // if left and right of tooltip are each > than half the maxWidth, use default max width\n\n /* istanbul ignore next */\n\n if (availableLeftSpace > halfMaxWidth && availableRightSpace > halfMaxWidth) {\n maxWidth = tooltipMaxWidth;\n } else if ( // If both sides are less than half the maxwidth,\n // then tooltip bubble will be position center,\n // so use smaller side x 2 as max width since it's centered\n availableLeftSpace < halfMaxWidth && availableRightSpace < halfMaxWidth) {\n var smallerSide = availableLeftSpace < availableRightSpace ? availableLeftSpace : availableRightSpace;\n maxWidth = smallerSide * 2;\n } else {\n // take the bigger available space between the two\n var availableSpace = availableLeftSpace > availableRightSpace ? availableLeftSpace : availableRightSpace; // if it explicitly placed left/right adjust accordingly.\n\n if (position) {\n // Add the caret + 4px spacing\n availableSpace = availableSpace - spacingOffset - tooltipIconSize;\n } else {\n // Add the side shift dimension (since tooltip is position top/bottom with side shift)\n availableSpace += caretSpaceHorizontal + caretWidth / 2 - tooltipIconSize;\n }\n\n maxWidth = availableSpace > tooltipMaxWidth ? tooltipMaxWidth : availableSpace;\n }\n\n tooltip.style.maxWidth = \"\".concat(maxWidth, \"px\");\n var currentWidth = tooltip.getBoundingClientRect().width;\n /* istanbul ignore next */\n\n width = maxWidth < currentWidth ? maxWidth : currentWidth;\n height = tooltip.offsetHeight;\n };\n\n var positionTooltip = function () {\n tooltip = getWrapperCurrent(tooltipRef);\n tooltipOrigin = getWrapperCurrent(tooltipOriginRef);\n originPos = tooltipOrigin.getBoundingClientRect();\n var containerElm = getWrapperCurrent(containerRef);\n /* istanbul ignore next */\n\n containerPos = containerElm && containerElm.getBoundingClientRect();\n tooltipWindow = getTooltipBoundary();\n width = tooltip.offsetWidth;\n height = tooltip.offsetHeight;\n originWidth = tooltipOrigin.offsetWidth;\n originHeight = tooltipOrigin.offsetHeight;\n scrollX = window.scrollX || window.pageXOffset;\n scrollY = window.scrollY || window.pageYOffset; // get tooltip's pointer dimensions:\n\n var rootFontSizePx = hasWindow() && window.getComputedStyle(document.body).getPropertyValue('font-size') || '16px';\n var rootFontSize = parseInt(rootFontSizePx.split('px')[0], 10);\n caretWidth = 1.125 * rootFontSize;\n caretHeight = 0.75 * rootFontSize;\n caretSpaceHorizontal = 1 * rootFontSize; //16px spacing between caret and tooltip corner\n\n // 4px separation between caret and tooltip icon\n spacingOffset = caretHeight + 0.25 * rootFontSize;\n var targetSize = originWidth;\n tooltipIconSize = 1.5 * rootFontSize; // icon and target have different dimensions\n\n iconSpacing = targetSize / 2 - tooltipIconSize / 2; // set the initial width for tooltip.\n\n setWidth();\n var _tooltipWindow2 = tooltipWindow,\n windowEl = _tooltipWindow2.windowEl;\n windowEl.addEventListener('scroll', clearOpen);\n windowEl.addEventListener('mousewheel', clearOpen);\n\n switch (position) {\n case 'left':\n positionLeft();\n break;\n\n case 'right':\n positionRight();\n break;\n\n default:\n selfPosition();\n }\n };\n\n var handleClickOutside = function (evt) {\n var current = getWrapperCurrent(wrapperRef);\n /* istanbul ignore next */\n\n if (isOpen && current && !current.contains(evt.target)) {\n evt.stopPropagation();\n clearOpen(evt);\n }\n };\n\n var handleKey = function (evt) {\n /* istanbul ignore next */\n var KeyCode = new KeyboardCode(evt.key || evt.keyCode);\n\n if (KeyCode.IS_TAB || KeyCode.IS_ESC) {\n clearOpen(evt);\n }\n };\n\n useLayoutEffect(function () {\n if (isOpen) {\n positionTooltip();\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleKey);\n window.addEventListener('resize', clearOpen);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleKey);\n window.removeEventListener('resize', clearOpen);\n }\n\n return function () {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleKey);\n window.removeEventListener('resize', clearOpen);\n };\n });\n /* istanbul ignore next */\n\n var handleMouseLeave = function (evt) {\n if (tooltip && evt.relatedTarget !== tooltip) {\n evt.stopPropagation();\n clearOpen(evt);\n }\n };\n\n var imagePositionStyleName = 'image' + function camelCase(str) {\n return str.replace(new RegExp(/[-_]+/, 'g'), ' ').replace(new RegExp(/[^\\w\\s]/, 'g'), '').replace(new RegExp(/\\s+(.)(\\w*)/, 'g'), function (_first, second, third) {\n return \"\".concat(second.toUpperCase() + third.toLowerCase());\n }).replace(new RegExp(/\\w/), function (s) {\n return s.toUpperCase();\n });\n }(imagePosition);\n\n var imagePositionCSSVal = [_styles.image, //@ts-ignore\n _styles[imagePositionStyleName]];\n var displayImage = jsx(\"span\", {\n css: imagePositionCSSVal,\n \"data-ppui\": \"true\"\n }, imageElement);\n //@ts-ignore\n\n /* istanbul ignore next */\n var tooltipNode = isOpen && ReactDOM.createPortal(jsx(\"div\", {\n ref: tooltipRef,\n css: _styles.base,\n className: tooltipClassName,\n id: name,\n role: \"tooltip\",\n \"aria-hidden\": !isOpen,\n onMouseLeave: currentEvent === 'focus' ? noop : clearOpen,\n \"data-ppui\": \"true\"\n }, imageElement && (imagePosition === 'top-center' || imagePosition === 'top-left') && displayImage, description, imageElement && (imagePosition === 'bottom-center' || imagePosition === 'bottom-left') && displayImage), getWrapperCurrent(containerRef) || (hasWindow() ? document.body : null));\n /* istanbul ignore next */\n\n var TooltipIcon = verifiedIcon ? VerifiedIcon : QuestionIcon;\n /* istanbul ignore next */\n\n var handleTouchStart = function (evt) {\n var current = getWrapperCurrent(wrapperRef);\n if (!current.contains(evt.target)) clearOpen(evt);\n };\n\n return jsx(\"span\", {\n ref: wrapperRef,\n className: className,\n \"data-ppui-info\": \"tooltip_4.0.2-ql\"\n }, jsx(React.Fragment, null, jsx(\"button\", _extends({\n type: \"button\",\n ref: tooltipOriginRef,\n css: _styles.icon\n }, isOpen ? {\n 'aria-describedby': name\n } : {}, {\n onMouseEnter: currentEvent === 'focus' ? noop : setOpen,\n onMouseLeave: currentEvent === 'focus' ? noop : handleMouseLeave,\n onTouchEnd: function handleTouchEnd(evt) {\n evt.preventDefault(); // Toggle the state\n\n if (isOpen) {\n clearOpen(evt);\n document.removeEventListener('touchstart', handleTouchStart);\n } else {\n setOpen(evt);\n document.addEventListener('touchstart', handleTouchStart);\n }\n },\n onMouseDown: function handleMouseDown(evt) {\n return evt.preventDefault();\n },\n onFocus: isTouchDevice() ? noop : setOpen,\n className: triggerClassName,\n \"data-ppui\": \"true\"\n }), jsx(TooltipIcon, {\n size: \"sm\",\n \"aria-hidden\": \"true\",\n \"data-ppui\": \"true\"\n }), jsx(\"span\", {\n css: _styles.screenReader,\n \"data-ppui\": \"true\"\n }, screenReaderText)), tooltipNode));\n};\n\nexport { Tooltip, styles as tooltipStyles };\n","import { PAYPAL_THEME } from '@paypalcorp/pp-react-theme';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _asyncToGenerator from '@babel/runtime/helpers/esm/asyncToGenerator';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _regeneratorRuntime from '@babel/runtime/regenerator';\nimport React, { useState, useEffect, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider } from '@emotion/react';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport { LoadingSpinner } from '@paypalcorp/pp-react-loading-spinner';\nimport { CaptionText, BodyText, HeadingText } from '@paypalcorp/pp-react-text';\nimport { Alert } from '@paypalcorp/pp-react-alert';\nimport { Row, Col, Container } from '@paypalcorp/pp-react-grid';\nimport { Tooltip } from '@paypalcorp/pp-react-tooltip';\nimport { TextInput } from '@paypalcorp/pp-react-text-input';\nimport { DropdownMenu } from '@paypalcorp/pp-react-dropdown-menu';\nimport { Button } from '@paypalcorp/pp-react-buttons';\nimport { Card } from '@paypalcorp/pp-react-card';\nimport '../__generated__/styles/cc.css';\n\nvar FPTI_OBJECT = {\n page: PropTypes.string,\n pgrp: PropTypes.string\n};\nvar APP_DATA_OBJECT = {\n countries: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n currencies: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n formMapping: PropTypes.shape({}).isRequired,\n tTypeOptions: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\nvar CC_DATA_OBJECT = {\n metaData: PropTypes.shape({}).isRequired,\n appData: PropTypes.shape(APP_DATA_OBJECT).isRequired,\n configs: PropTypes.shape({})\n};\nvar CONVERSION_RESULT_OBJECT = {\n isLoaded: PropTypes.bool.isRequired,\n isError: PropTypes.bool.isRequired,\n data: PropTypes.string.isRequired\n};\n\nvar xhrRoutes = {\n META_DATA_URL: '/smarthelp/get-cc-meta',\n GET_CURRENCY_CONVERSION: '/smarthelp/currency-conversion'\n};\nvar sizes$1 = {\n SMALL: 'sm',\n MEDIUM: 'md',\n LARGE: 'lg'\n};\n\n/**\n * method to validate is empty.\n * @param value\n * @returns {boolean}\n */\nvar isEmpty$1 = function (value) {\n return value === null || _typeof(value) === 'object' && Object.keys(value).length === 0 || typeof value === 'string' && value.trim().length === 0;\n};\n\n/**\n * Returns value from the content based on the key.\n * @param content\n * @param key\n * @returns {*}\n */\nvar getContentValue = function (content, key) {\n try {\n if (_typeof(content) === 'object' && !isEmpty$1(content)) {\n var path = key.split('.');\n while (path.length && (content = content[path.shift()]));\n return content;\n }\n return '';\n } catch (e) {\n return '';\n }\n};\n\n/**\n * Function to form initial state data contract object for conversion form.\n * @param data\n * @returns {[]}\n */\nvar getInitialFormState = function (data) {\n var initialState = [];\n var formMappings = data && data.appData && data.appData.formMapping || null;\n if (!isEmpty$1(formMappings)) {\n var entries = Object.entries(formMappings);\n entries.forEach(function (entry) {\n initialState.push(entry[1]);\n });\n return initialState;\n }\n return initialState;\n};\nvar setInnerContent = function (content) {\n return {\n __html: content\n };\n};\nvar getCurrencyConversionResultUrl = function (formData, componentName) {\n var params = '';\n formData.forEach(function (field) {\n params = params.concat(\"\".concat(field.name, \"=\").concat(field.value, \"&\"));\n });\n\n // append component name to the query params\n params = params.concat(\"component=\".concat(componentName));\n\n // if (window.location.href === 'http://localhost:9000/') {\n // return `http://localhost.paypal.com:8081/smarthelp/currency-conversion?${params}`\n // }\n return xhrRoutes.GET_CURRENCY_CONVERSION + \"?\".concat(params);\n};\n\n/**\n * Initial data model/meta service - To validate if the service response data has all the required data.\n * @param data\n * @returns {boolean}\n */\nvar validateDataModelServiceResponse = function (data) {\n return isEmpty$1(data.metaData) || isEmpty$1(data.appData) || isEmpty$1(data.appData.countries) || isEmpty$1(data.appData.currencies) || isEmpty$1(data.appData.formMapping) || isEmpty$1(data.appData.tTypeOptions);\n};\n\nvar sizes = {\n SMALL: 'sm',\n MEDIUM: 'md',\n LARGE: 'lg'\n};\nvar spinnerTypes = {\n SHIMMER: 'shimmer',\n LOADER: 'loader'\n};\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inherits(ErrorBoundary, _React$Component);\n var _super = _createSuper(ErrorBoundary);\n function ErrorBoundary(props) {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n _this = _super.call(this, props);\n _this.state = {\n error: null,\n errorInfo: null\n };\n return _this;\n }\n _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(err, errorInfo) {\n this.setState({\n err: err,\n errorInfo: errorInfo\n });\n if (typeof this.props.cbOnError === 'function') {\n // Callback function to track errors.\n this.props.cbOnError(err, errorInfo);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.state.error) {\n // render any custom fallback UI\n return this.props.children;\n }\n if (this.props.suppressError) {\n return /*#__PURE__*/React.createElement(\"div\", null);\n }\n return /*#__PURE__*/React.createElement(\"h1\", null, 'Something went wrong in loading the widget.');\n }\n }]);\n return ErrorBoundary;\n}(React.Component);\nErrorBoundary.propTypes = {\n suppressError: PropTypes.bool.isRequired,\n children: PropTypes.node,\n cbOnError: PropTypes.func.isRequired // callback function on error.\n};\n\n// //https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/onreadystatechange\nvar getData = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url) {\n var config,\n method,\n req,\n response,\n _args = arguments;\n return _regeneratorRuntime.wrap(function (_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n config = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n method = config.method || 'GET';\n _context.prev = 2;\n req = new XMLHttpRequest();\n req.open(method, url, true);\n req.withCredentials = config.withCredentials || false;\n _context.next = 8;\n return new Promise(function (resolve, reject) {\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n if (req.status >= 200 && req.status < 300) {\n var result = JSON.parse(req.response || req.responseText);\n resolve(result);\n } else {\n reject(\"HTTP Error: \".concat(req.status));\n }\n }\n };\n req.addEventListener('error', function (event) {\n reject(event);\n });\n req.send();\n });\n case 8:\n response = _context.sent;\n return _context.abrupt(\"return\", {\n data: response\n });\n case 12:\n _context.prev = 12;\n _context.t0 = _context[\"catch\"](2);\n return _context.abrupt(\"return\", Promise.reject(_context.t0));\n case 15:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 12]]);\n }));\n return function () {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * method to validate is empty.\n * @param value\n * @returns {boolean}\n */\nvar isEmpty = function (value) {\n return value === null || _typeof(value) === 'object' && Object.keys(value).length === 0 || typeof value === 'string' && value.trim().length === 0;\n};\n\n/**\n * Deep clone to remove the reference of the object.\n * @param data\n * @returns {*}\n */\nvar deepClone = function (data) {\n try {\n return JSON.parse(JSON.stringify(data));\n } catch (e) {\n return data;\n }\n};\n\n// --------End of session storage ---------------\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar defaultOptions = {\n pgrp: 'main:help:components',\n page: 'main:help:components',\n comp: 'helpComponents'\n};\nvar analyticsObject = function () {\n try {\n return window && window.PAYPAL && window.PAYPAL.analytics;\n } catch (e) {\n return {};\n }\n};\n\n// Get FPTI otions\nvar getFPTIOptions = function (fptiOptions, eventType) {\n var fpti = window && window.fpti ? deepClone(window.fpti) : {};\n\n // clearing out error props in case they exist\n fpti.erpg = undefined;\n fpti.erfd = undefined;\n fpti.eccd = undefined;\n\n // Merge client passed fptiOptions with fpti object.\n fpti = _objectSpread$2(_objectSpread$2({}, fpti), fptiOptions);\n\n // TODO :: This logic needs to be revisited.\n // FPTI options passed through props\n\n if (isEmpty(fpti.page) || isEmpty(fpti.pgrp)) {\n fpti.page = defaultOptions.page;\n fpti.pgrp = defaultOptions.pgrp;\n }\n\n // Resetting to empty string for not to set link/pgln,phlk for ac events.\n fpti.link = '';\n fpti.pgln = '';\n fpti.pglk = '';\n\n // For click events\n if (fptiOptions.link) {\n fpti.link = fptiOptions.link;\n fpti.pgln = \"\".concat(fpti.page, \"|\").concat(fptiOptions.link);\n fpti.pglk = \"\".concat(fpti.pgrp, \"|\").concat(fptiOptions.link);\n }\n\n // Add event name to FPTI object\n fpti.event_name = '';\n if (fptiOptions.event_name) {\n fpti.event_name = fptiOptions.event_name;\n }\n\n // component name priority - fpti options props/analytics window object/default fallback\n if (isEmpty(fpti.comp)) {\n fpti.comp = defaultOptions.comp;\n }\n // Set event Type\n fpti.e = eventType ? eventType : 'ac'; // default activity event\n\n return fpti;\n};\n\n/**\n * @description\n *\n * Logs click metrics\n * @param {Object} fptiOptions\n * @property {String} options.data.page - Page name if not provided derived from the base page\n * @property {String} options.data.pgrp - Page group if not provided derived from the base page\n * e.g. var options = {data: {page:'page_name', pgrp: 'page_group_name'} }\n */\n//https://github.paypal.com/pages/Tracking-R/client-side-instrumentation/react.html#/links?_k=flh93g\nvar recordClickEvent = function (fptiOptions) {\n if (analyticsObject()) {\n var options = getFPTIOptions(fptiOptions, 'cl');\n window.PAYPAL.analytics.Analytics.prototype.recordClick({\n data: options\n });\n }\n};\n\n// Error tracking\n// https://github.paypal.com/pages/Tracking-R/client-side-instrumentation/#record_error\nvar recordErrorEvent = function (error) {\n if (window.PAYPAL && window.PAYPAL.trackJSError) {\n window.PAYPAL.trackJSError(error);\n }\n};\n\n// Record Activity Events\nvar recordEvent = function (fptiOptions) {\n if (analyticsObject()) {\n var options = getFPTIOptions(fptiOptions, 'ac');\n window.PAYPAL.analytics.Analytics.prototype.recordEvent(options.event_name, {\n data: options\n });\n }\n};\nvar getFptiOptionsPage = function (fptiOptionProps, componentName) {\n //FPTI options passed through props\n if (fptiOptionProps && Object.prototype.hasOwnProperty.call(fptiOptionProps, 'page')) {\n return fptiOptionProps.page;\n }\n\n // If no props where specified take page name from analytics data.\n var analytics = analyticsObject();\n if (analytics && analytics.options && analytics.options.data) {\n return analytics.options.data.page;\n }\n return componentName;\n};\nvar getFptiOptionsPageGroup = function (fptiOptionProps, componentName) {\n //FPTI options passed through props\n if (fptiOptionProps && Object.prototype.hasOwnProperty.call(fptiOptionProps, 'pgrp')) {\n return fptiOptionProps.pgrp;\n }\n\n // If no props where specified take page group from analytics data.\n var analytics = analyticsObject();\n if (analytics && analytics.options && analytics.options.data) {\n return analytics.options.data.pgrp;\n }\n return componentName;\n};\n\n// FPTI Prop Type\n({\n page: PropTypes.string.isRequired,\n pgrp: PropTypes.string.isRequired,\n comp: PropTypes.string\n});\n\n// Component bottom disclaimer text\nvar Disclaimer = function (props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"hc-currency-converter--disclaimer\"\n }, /*#__PURE__*/React.createElement(CaptionText, {\n dangerouslySetInnerHTML: setInnerContent(getContentValue(props.metaData, 'bottomDisclaimer'))\n }));\n};\nDisclaimer.propTypes = {\n metaData: PropTypes.shape({}).isRequired\n};\n\n// Header subtext/intro label component\nvar ToolIntroLabel = function (props) {\n return /*#__PURE__*/React.createElement(BodyText, {\n dangerouslySetInnerHTML: setInnerContent(getContentValue(props.metaData, 'introLabel'))\n });\n};\nToolIntroLabel.propTypes = {\n metaData: PropTypes.shape({}).isRequired\n};\n\n// Header text/label component\nvar Header = function (props) {\n return /*#__PURE__*/React.createElement(HeadingText, {\n size: \"sm\",\n dangerouslySetInnerHTML: setInnerContent(getContentValue(props.metaData, 'header'))\n });\n};\nHeader.propTypes = {\n metaData: PropTypes.shape({}).isRequired\n};\n\n// Conversion result component to handle both success and error cases\nvar ConversionResult = function (props) {\n var _props$data = props.data,\n isLoaded = _props$data.isLoaded,\n isError = _props$data.isError,\n data = _props$data.data;\n\n // Success Case\n if (isLoaded && !isError) {\n return /*#__PURE__*/React.createElement(Row, {\n className: \"hc-currency-converter--result\"\n }, /*#__PURE__*/React.createElement(Col, {\n className: \"hc-currency-converter--result_body\"\n }, /*#__PURE__*/React.createElement(BodyText, {\n dangerouslySetInnerHTML: setInnerContent(data)\n })));\n }\n\n // Error Case\n if (isLoaded && isError) {\n return /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, null, /*#__PURE__*/React.createElement(Alert, {\n type: \"error\"\n }, data)));\n }\n return null;\n};\nConversionResult.propTypes = {\n data: PropTypes.shape(CONVERSION_RESULT_OBJECT).isRequired\n};\n\n// Conversion form component\nvar ConversionForm = function (props) {\n var _props$data = props.data,\n metaData = _props$data.metaData,\n formMapping = _props$data.appData.formMapping,\n onChangeHandler = props.onChangeHandler,\n formData = props.formData;\n if (isEmpty$1(formMapping)) {\n return null;\n }\n\n // Render each field based on the field type\n var renderField = function (field) {\n var currentField = formData.find(function (formField) {\n return formField.name === field.name;\n });\n if (!currentField && _typeof(currentField) === 'object') {\n return null;\n }\n var label = !currentField.isRequired ? \"\".concat(currentField.label, \" (\").concat(getContentValue(metaData, 'optionalLabel'), \")\") : currentField.label;\n switch (field.type) {\n case 'dropdown':\n {\n return /*#__PURE__*/React.createElement(DropdownMenu, {\n label: label,\n placeholder: currentField.placeholder,\n name: currentField.name,\n value: currentField.value,\n options: getContentValue(props.data, currentField.optionsPath),\n onChange: function onChange(e) {\n return onChangeHandler(e, currentField.name);\n },\n required: currentField.required,\n errorText: currentField.errorText,\n helperText: currentField.helperText\n });\n }\n case 'input':\n case 'text':\n case 'number':\n {\n return /*#__PURE__*/React.createElement(TextInput, {\n name: currentField.name,\n value: currentField.value,\n label: label,\n onChange: onChangeHandler,\n required: currentField.required,\n errorText: currentField.errorText,\n helperText: currentField.helperText\n });\n }\n case 'input_with_tooltip':\n {\n return /*#__PURE__*/React.createElement(TextInput, {\n name: currentField.name,\n value: currentField.value,\n label: label,\n onChange: onChangeHandler,\n required: currentField.required,\n errorText: currentField.errorText,\n helperText: currentField.helperText,\n rightIcon: /*#__PURE__*/React.createElement(Tooltip, {\n name: currentField.tooltip.name,\n description: currentField.tooltip.description,\n screenReaderText: currentField.tooltip.screenReaderText\n })\n });\n }\n default:\n return /*#__PURE__*/React.createElement(\"div\", null);\n }\n };\n return /*#__PURE__*/React.createElement(Container, {\n form: true\n }, /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.fromCountry)), /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.toCountry))), /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.fromPaymentCurrency)), /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.toTransCurrency))), /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.tType)), /*#__PURE__*/React.createElement(Col, {\n form: \"half\"\n }, renderField(formMapping.transAmount))));\n};\nConversionForm.propTypes = {\n data: PropTypes.shape(CC_DATA_OBJECT).isRequired,\n formData: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onChangeHandler: PropTypes.func.isRequired\n};\n\n// Submit button component\nvar SubmitBtn = function (props) {\n var _props$data = props.data,\n metaData = _props$data.metaData,\n formMapping = _props$data.appData.formMapping,\n onClickHandler = props.onClickHandler;\n if (isEmpty$1(formMapping)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, null, /*#__PURE__*/React.createElement(Button, {\n onClick: function onClick() {\n return onClickHandler();\n }\n }, getContentValue(metaData, 'submitBtnLabel'))));\n};\nSubmitBtn.propTypes = {\n data: PropTypes.shape(CC_DATA_OBJECT).isRequired,\n onClickHandler: PropTypes.func.isRequired\n};\n\n// Check isEmpty form field validation\nvar isEmptyField = function (field, value) {\n return field.isRequired && !value;\n};\n\n/**\n * This will check if field is required and value is empty then set error text message.\n * @param field\n * @param value\n * @param metaData\n * @returns {string|*}\n */\nvar checkForErrorMessage = function (field, value, metaData) {\n var errorText = '';\n if (field && _typeof(field) === 'object') {\n if (isEmptyField(field, value)) {\n errorText = metaData.reqValidationError;\n return errorText;\n }\n }\n return errorText;\n};\n\n/**\n * Function to check if there any errors in the fields array.\n * @param formFields\n * @returns {boolean}\n */\nvar hasFormError = function (formFields) {\n if (!Array.isArray(formFields)) {\n return true;\n }\n var hasError = formFields.find(function (field) {\n return field.isRequired && !!field.errorText && !field.value;\n });\n return !!hasError;\n};\n\n/**\n * Validate form data before submitting to the conversion service.\n * @param formFields\n * @param metaData\n * @returns {boolean|*}\n */\nvar validateFormData = function (formFields, metaData) {\n if (!Array.isArray(formFields)) {\n return true;\n }\n return formFields.map(function (field) {\n var errorText = checkForErrorMessage(field, field.value, metaData);\n return Object.assign({}, field, {\n errorText: errorText\n });\n });\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction CurrencyConvWidget(props) {\n var data = props.data,\n componentName = props.componentName,\n fptiOptions = props.fptiOptions;\n var _useState = useState(getInitialFormState(data)),\n _useState2 = _slicedToArray(_useState, 2),\n formData = _useState2[0],\n setFormData = _useState2[1];\n var _useState3 = useState({\n isLoading: false,\n isLoaded: false,\n isError: false,\n data: ''\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n conversionResult = _useState4[0],\n setConversionResult = _useState4[1];\n\n // On actual component mount, Fire activity event.\n useEffect(function () {\n recordEvent(_objectSpread$1({\n comp: componentName,\n event_name: 'hc_currency_converter_widget_shown'\n }, fptiOptions));\n }, []);\n\n // On field input change handler\n var __onInputChangeHandler = function (e) {\n var fieldName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var _e$target = e.target,\n value = _e$target.value,\n name = _e$target.name;\n var updatedFields = formData.map(function (field) {\n if (field.name === name || field.name === fieldName) {\n return Object.assign({}, field, {\n value: value,\n errorText: checkForErrorMessage(field, value, data.metaData) // on input change check for validate for errors\n });\n }\n\n return field;\n });\n\n // Update state\n setFormData(updatedFields);\n };\n\n // Handle serivce catch block\n var conversionServiceCatchBlockHandler = function (e) {\n var statusCode = e.statusCode || e.err.statusCode;\n var updatedConversionResult = Object.assign({}, conversionResult, {\n // Take the error result from service response as first priority if not fallback to common error message.\n data: e.result || getContentValue(data.metaData, 'serviceFailureError'),\n isLoading: false,\n isLoaded: true,\n isError: true\n });\n setConversionResult(updatedConversionResult);\n\n // Track error with FPTI\n recordEvent(_objectSpread$1(_objectSpread$1({\n comp: componentName\n }, fptiOptions), {}, {\n link: \"hc-currency-converter|conversion-service|error|status-code:\".concat(statusCode),\n event_name: \"hc_currency_conversion_service_error\"\n }));\n };\n\n // On submit button handler\n var __onSubmitHandler = function () {\n // On click of submit button validate the fields with required has values\n var validatedFormData = validateFormData(formData, data.metaData);\n\n // Check for any form errors. If errors exists update the form state. If not move forward to service call.\n if (hasFormError(validatedFormData)) {\n return setFormData(validatedFormData);\n }\n\n // Before initializing service call set isLoading to true.\n setConversionResult(Object.assign({}, conversionResult, {\n isLoading: true\n }));\n\n // Fire FPTI click event\n var fptiClickEventOptions = _objectSpread$1({\n link: \"hc-currency-converter|onClick|SubmitButton\",\n comp: componentName\n }, fptiOptions);\n recordClickEvent(fptiClickEventOptions);\n\n // API call to get conversion result.\n return getData(getCurrencyConversionResultUrl(formData, componentName)).then(function (response) {\n var result = response.data.result;\n var updatedConversionResult = Object.assign({}, conversionResult, {\n data: result,\n isLoading: false,\n isLoaded: true,\n isError: false\n });\n setConversionResult(updatedConversionResult);\n\n //FPTI\n recordEvent(_objectSpread$1(_objectSpread$1({\n comp: componentName\n }, fptiOptions), {}, {\n link: 'hc-currency-converter|conversion-service|success',\n event_name: 'hc_currency_conversion_service_success'\n }));\n }).catch(function (e) {\n return conversionServiceCatchBlockHandler(e);\n });\n };\n\n // render submit button / loader based on the service loading\n var renderSubmitSlashLoader = function () {\n if (!conversionResult.isLoading) {\n return /*#__PURE__*/React.createElement(SubmitBtn, {\n data: data,\n onClickHandler: function onClickHandler() {\n return __onSubmitHandler();\n }\n });\n }\n return /*#__PURE__*/React.createElement(LoadingSpinner, {\n screenReaderText: \"loading\",\n size: sizes$1.SMALL\n });\n };\n return function renderConversionForm() {\n var metaData = data.metaData;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"hc-currency-converter\"\n }, /*#__PURE__*/React.createElement(Header, {\n metaData: metaData\n }), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(ToolIntroLabel, {\n metaData: metaData\n }), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(ConversionForm, {\n data: data,\n formData: formData,\n onChangeHandler: __onInputChangeHandler\n }), /*#__PURE__*/React.createElement(ConversionResult, {\n data: conversionResult\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"hc-currency-converter--submit-btn\"\n }, renderSubmitSlashLoader()), /*#__PURE__*/React.createElement(Disclaimer, {\n metaData: metaData\n }));\n }();\n}\nCurrencyConvWidget.propTypes = {\n data: PropTypes.shape(CC_DATA_OBJECT).isRequired,\n componentName: PropTypes.string,\n fptiOptions: PropTypes.shape(FPTI_OBJECT)\n};\n\nfunction Loader(props) {\n var spinnerType = props.spinnerType,\n spinnerSize = props.spinnerSize,\n customLoaderStyle = props.customLoaderStyle;\n return function renderLoader() {\n // Shimmer loader\n var customStyle;\n if (spinnerType === spinnerTypes.SHIMMER) {\n customStyle = customLoaderStyle || {\n height: '12rem',\n width: '100%'\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: customStyle\n }, /*#__PURE__*/React.createElement(Card, {\n isLoading: true\n }));\n }\n\n // Spinning loader\n\n customStyle = customLoaderStyle || {\n display: 'flex',\n justifyContent: 'center'\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n style: customStyle\n }, /*#__PURE__*/React.createElement(LoadingSpinner, {\n screenReaderText: \"loading\",\n size: spinnerSize\n }));\n }();\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar getCurrencyConvMetaApiUrl = function (componentName) {\n return \"/smarthelp/get-cc-meta?component=\".concat(componentName);\n // return `http://localhost.paypal.com:8081/smarthelp/get-cc-meta?component=${componentName}`\n};\n\nfunction HcCurrencyConv(props) {\n var fptiOptions = props.fptiOptions,\n suppressError = props.suppressError,\n componentName = props.componentName,\n version = props.version,\n devMode = props.devMode,\n devData = props.devData,\n spinnerType = props.spinnerType,\n spinnerSize = props.spinnerSize,\n customLoaderStyle = props.customLoaderStyle;\n var _useState = useState({\n isLoading: true,\n isError: false,\n missingRequiredDataError: false,\n metaData: null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n data = _useState2[0],\n setData = _useState2[1];\n\n // Get initial config - metadata/form data.\n var initiateGetMetaData = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var response, respData;\n return _regeneratorRuntime.wrap(function (_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return getData(getCurrencyConvMetaApiUrl(componentName));\n case 3:\n response = _context.sent;\n respData = response.data;\n setData({\n isLoading: false,\n isError: false,\n missingRequiredDataError: validateDataModelServiceResponse(respData),\n metaData: respData\n });\n _context.next = 11;\n break;\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](0);\n setData({\n isLoading: false,\n isError: true,\n missingRequiredDataError: false,\n metaData: null\n });\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 8]]);\n }));\n return function () {\n return _ref.apply(this, arguments);\n };\n }();\n useEffect(function () {\n // On dev mode get the dummy data which is passed through props\n if (devMode) {\n var timeoutId = setTimeout(function () {\n var isMissingRequiredData = validateDataModelServiceResponse(devData);\n setData({\n isLoading: false,\n isError: false,\n missingRequiredDataError: isMissingRequiredData,\n metaData: devData\n });\n }, 2000);\n return function () {\n return clearTimeout(timeoutId);\n };\n }\n return initiateGetMetaData();\n }, []);\n\n // Method to handle events on component error.\n // On component error fire impression event to track error cases.\n return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(ErrorBoundary, {\n suppressError: suppressError,\n cbOnError: function handleErrorCatch(error) {\n var finalFPTIOptions = {\n page: getFptiOptionsPage(fptiOptions, componentName),\n pgrp: getFptiOptionsPageGroup(fptiOptions, componentName),\n event_name: 'hc_currency_converter_widget_loading_error'\n };\n recordErrorEvent(error);\n recordEvent(_objectSpread({\n comp: componentName\n }, finalFPTIOptions));\n }\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n theme: PAYPAL_THEME\n }, function renderCurrencyConverter() {\n var isLoading = data.isLoading,\n isError = data.isError,\n missingRequiredDataError = data.missingRequiredDataError,\n metaData = data.metaData;\n\n // If data is not loaded yet. Return spinner/loader\n if (isLoading) {\n return (\n /*#__PURE__*/\n //
\n React.createElement(Loader, {\n spinnerType: spinnerType,\n spinnerSize: spinnerSize,\n customLoaderStyle: customLoaderStyle\n })\n //
\n );\n }\n\n // If has any error with XHR call. fire an FPTI.\n if (isError) {\n recordEvent(_objectSpread({\n comp: componentName,\n event_name: 'hc_currency_converter_meta_service_error'\n }, fptiOptions));\n return /*#__PURE__*/React.createElement(\"div\", null);\n }\n\n // When service is success but if required data is missing from response then fire an FPTI and return empty div.\n if (missingRequiredDataError) {\n recordEvent(_objectSpread(_objectSpread({\n comp: componentName\n }, fptiOptions), {}, {\n link: 'hc-currency-converter|meta-service|required-fields-missing',\n event_name: 'hc_currency_converter_service_required_fields_missing'\n }));\n return /*#__PURE__*/React.createElement(\"div\", null);\n }\n return /*#__PURE__*/React.createElement(CurrencyConvWidget, {\n version: version,\n data: metaData,\n componentName: componentName,\n fptiOptions: fptiOptions\n });\n }())));\n}\n\n// currency converter props\nHcCurrencyConv.propTypes = {\n suppressError: PropTypes.bool,\n fptiOptions: PropTypes.shape(FPTI_OBJECT).isRequired,\n spinnerType: PropTypes.oneOf([spinnerTypes.SHIMMER, spinnerTypes.LOADER]),\n spinnerSize: PropTypes.oneOf([sizes.SMALL, sizes.MEDIUM, sizes.LARGE]),\n componentName: PropTypes.string.isRequired,\n version: PropTypes.string,\n customLoaderStyle: PropTypes.string,\n devMode: PropTypes.bool,\n devData: PropTypes.shape({})\n};\n\n// currency converter default props\nHcCurrencyConv.defaultProps = {\n suppressError: true,\n spinnerType: spinnerTypes.SHIMMER,\n spinnerSize: sizes.LARGE,\n version: 'v1',\n devMode: false\n};\n\nexport { HcCurrencyConv };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { forwardRef, useMemo, useRef, useState, useEffect } from 'react';\nimport { SelectionMenu } from '@paypalcorp/pp-react-menu';\nimport { CriticalIcon, ChevronUpIcon, ChevronDownIcon } from '@paypalcorp/pp-react-icons';\nimport { devWarning, utilStyles, KeyboardCode } from '@paypalcorp/pp-react-utils';\nimport { css, useTheme, jsx } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { math } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;\nfunction styles(tokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysMotionDurationHover = tokens.sysMotionDurationHover,\n sysSizeIconSm = tokens.sysSizeIconSm,\n sysSizeFieldLg = tokens.sysSizeFieldLg,\n sysColorBackgroundSurface = tokens.sysColorBackgroundSurface,\n sysBorderThicknessNormal = tokens.sysBorderThicknessNormal,\n sysBorderRadiusSm = tokens.sysBorderRadiusSm,\n sysColorStructureBorderHighContrast = tokens.sysColorStructureBorderHighContrast,\n sysSpaceTiny = tokens.sysSpaceTiny,\n sysSpaceXs = tokens.sysSpaceXs,\n sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceMd = tokens.sysSpaceMd,\n sysColorBackgroundMediumContrast = tokens.sysColorBackgroundMediumContrast,\n sysTypographyFieldLabelLgLineHeight = tokens.sysTypographyFieldLabelLgLineHeight,\n sysTypographyFieldLabelSmLineHeight = tokens.sysTypographyFieldLabelSmLineHeight,\n sysBorderThicknessEmphasis = tokens.sysBorderThicknessEmphasis,\n sysColorErrorMain = tokens.sysColorErrorMain;\n\n var _utilStyles = utilStyles(tokens),\n focusStyles = _utilStyles.focusStyles,\n ellipsis = _utilStyles.ellipsis;\n\n var _textStyles = textStyles(tokens),\n textFieldLabelLg = _textStyles.fieldLabelLg,\n textFieldValueSm = _textStyles.fieldValueSm,\n textFieldLabelSm = _textStyles.fieldLabelSm,\n textCaption = _textStyles.caption; //Base styles\n\n\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: dropdown_menu_base;\\n position: relative;\\n text-align: start;\\n \"])));\n var label = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_label;\\n pointer-events: none; // Better way to fix the cursor: text issue!\\n position: absolute;\\n \", \"\\n transition: font-size \", \" ease-in-out, top \", \" ease-in-out, background-color \", \" linear;\\n left: \", \";\\n top: \", \";\\n \", \"\\n right: \", \";\\n\\n [dir='rtl'] & {\\n right: \", \";\\n left: \", \";\\n }\\n \"])), textFieldLabelLg(), sysMotionDurationHover, sysMotionDurationHover, sysMotionDurationHover, sysSpaceMd, math(\"(\".concat(sysSizeFieldLg, \" - \").concat(sysTypographyFieldLabelLgLineHeight, \") / 2\")), ellipsis, math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm)), sysSpaceMd, math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm)));\n var buttonActive = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: active;\\n \", \";\\n \"])), focusStyles.focusOffsetElement);\n var button = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_button;\\n \", \";\\n box-sizing: border-box;\\n height: \", \";\\n width: 100%;\\n border: \", \" solid\\n \", \";\\n border-radius: \", \";\\n background-color: \", \";\\n padding-top: \", \";\\n padding-right: \", \";\\n padding-left: \", \";\\n padding-bottom: \", \";\\n cursor: pointer;\\n text-align: start;\\n \", \"\\n\\n &:focus {\\n \", \";\\n }\\n\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n }\\n \"])), textFieldValueSm(), sysSizeFieldLg, sysBorderThicknessNormal, sysColorStructureBorderHighContrast, sysBorderRadiusSm, sysColorBackgroundSurface, math(\"\".concat(sysSpaceSm, \" + \").concat(sysSpaceTiny, \" + \").concat(sysTypographyFieldLabelSmLineHeight, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), ellipsis, buttonActive, math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)));\n var buttonError = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: error;\\n border: \", \" solid \", \";\\n padding-top: \", \";\\n padding-right: \", \";\\n padding-left: \", \";\\n padding-bottom: \", \";\\n\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n }\\n \"])), sysBorderThicknessEmphasis, sysColorErrorMain, math(\"\".concat(sysSpaceSm, \" + \").concat(sysSpaceTiny, \" + \").concat(sysTypographyFieldLabelSmLineHeight, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeIconSm, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)));\n var labelActive = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: active;\\n \", \"\\n top: \", \";\\n \"])), textFieldLabelSm(), sysSpaceSm);\n var affordanceIcon = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_affordance_icon;\\n pointer-events: none;\\n position: absolute;\\n top: \", \";\\n right: \", \";\\n margin-left: \", \";\\n\\n [dir='rtl'] & {\\n margin-right: \", \";\\n left: \", \";\\n right: auto;\\n }\\n \"])), math(\"\".concat(sysSpaceSm, \" + \").concat(sysSpaceMd)), math(\"\".concat(sysSpaceSm, \" + \").concat(sysSpaceMd)), sysSpaceMd, sysSpaceMd, sysSpaceSm);\n var helperText = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_helper_text;\\n \", \"\\n margin-top: \", \";\\n list-style: none; // In case it's a list of helper texts\\n \"])), textCaption({\n color: sysColorBackgroundMediumContrast\n }), sysSpaceXs);\n var errorText = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_error_text;\\n \", \"\\n display: flex;\\n margin-top: \", \";\\n align-items: center;\\n \"])), textCaption({\n color: sysColorBackgroundMediumContrast\n }), sysSpaceXs);\n var errorIcon = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_error_icon;\\n color: \", \";\\n margin-right: \", \";\\n\\n [dir='rtl'] & {\\n margin-left: \", \";\\n margin-right: 0;\\n }\\n \"])), sysColorErrorMain, sysSpaceXs, sysSpaceXs);\n var selectBox = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n label: dropdown_menu_select;\\n opacity: 0;\\n position: absolute;\\n pointer-events: none;\\n width: 0;\\n height: 0;\\n \"])));\n return {\n base: base,\n label: label,\n button: button,\n buttonError: buttonError,\n buttonActive: buttonActive,\n affordanceIcon: affordanceIcon,\n labelActive: labelActive,\n helperText: helperText,\n errorText: errorText,\n errorIcon: errorIcon,\n selectBox: selectBox\n };\n}\n\nvar _excluded = [\"className\", \"menuContainerClassName\", \"menuListClassName\", \"menuItemClassName\", \"menuMobileHeaderClassName\", \"menuButtonClassName\", \"menuLabelClassName\", \"skipButtonFocus\", \"sheetClassName\", \"sheetWrapperClassName\", \"id\", \"label\", \"name\", \"errorText\", \"errorIconAriaLabel\", \"helperText\", \"value\", \"options\", \"ariaLabelledby\", \"renderButtonContent\", \"onChange\", \"onClose\", \"onClick\", \"onKeyDown\", \"isLoadingOptions\", \"showUnselect\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar getRefCurrent = function (ref) {\n return (\n /* istanbul ignore next */\n ref && ref.current ? ref.current : null\n );\n}; // Get either the error message or helper text or... nothing\n\n\nvar renderMessage = function (errorText, errorIconAriaLabel, helperText, msgId, _styles) {\n if (errorText) {\n var errorProps = {\n css: _styles.errorIcon,\n role: 'img',\n 'aria-label': errorIconAriaLabel\n };\n var dropdownErrorIcon = jsx(CriticalIcon, _extends({\n size: \"sm\"\n }, errorProps, {\n \"data-ppui\": \"true\"\n }));\n return jsx(\"div\", {\n css: _styles.errorText,\n id: msgId,\n role: \"alert\",\n \"data-ppui\": \"true\"\n }, dropdownErrorIcon, jsx(\"span\", {\n \"data-ppui\": \"true\"\n }, errorText));\n }\n\n if (helperText) {\n return jsx(\"div\", {\n css: _styles.helperText,\n id: msgId,\n \"data-ppui\": \"true\"\n }, jsx(\"span\", {\n \"data-ppui\": \"true\"\n }, helperText));\n }\n\n return null;\n};\n\nvar hasNoModifiers = function (evt) {\n return !evt.altKey && !evt.ctrlKey && !evt.shiftKey && !evt.metaKey;\n};\n\nvar DropdownMenu = forwardRef( // eslint-disable-next-line complexity\nfunction (props, ref) {\n var className = props.className,\n menuContainerClassName = props.menuContainerClassName,\n menuListClassName = props.menuListClassName,\n menuItemClassName = props.menuItemClassName,\n menuMobileHeaderClassName = props.menuMobileHeaderClassName,\n menuButtonClassName = props.menuButtonClassName,\n menuLabelClassName = props.menuLabelClassName,\n _props$skipButtonFocu = props.skipButtonFocus,\n skipButtonFocus = _props$skipButtonFocu === void 0 ? false : _props$skipButtonFocu,\n sheetClassName = props.sheetClassName,\n sheetWrapperClassName = props.sheetWrapperClassName,\n id = props.id,\n _props$label = props.label,\n label = _props$label === void 0 ? 'Label' : _props$label,\n name = props.name,\n errorText = props.errorText,\n _props$errorIconAriaL = props.errorIconAriaLabel,\n errorIconAriaLabel = _props$errorIconAriaL === void 0 ? 'Error' : _props$errorIconAriaL,\n helperText = props.helperText,\n value = props.value,\n _props$options = props.options,\n options = _props$options === void 0 ? [] : _props$options,\n ariaLabelledby = props.ariaLabelledby,\n renderButtonContent = props.renderButtonContent,\n onChange = props.onChange,\n onClose = props.onClose,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n isLoadingOptions = props.isLoadingOptions,\n showUnselect = props.showUnselect,\n rest = _objectWithoutProperties(props, _excluded);\n\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var buttonId = id ? \"dropdownMenuButton_\".concat(id) : \"dropdownMenuButton_\".concat(label.replace(/\\s/g, ''));\n var internalRef = useRef();\n var buttonRef = ref !== null && ref !== void 0 ? ref : internalRef;\n var selectId = id ? \"dropdownMenuSelect_\".concat(id) : \"dropdownMenuSelect_\".concat(label.replace(/\\s/g, ''));\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n showMenu = _useState2[0],\n setShowMenu = _useState2[1];\n\n var _useState3 = useState(!!value),\n _useState4 = _slicedToArray(_useState3, 2),\n initialItemFocus = _useState4[0],\n setKeyboardActive = _useState4[1];\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n isRtl = _useState6[0],\n setRtl = _useState6[1];\n\n useEffect(function () {\n var _window;\n\n var btn = getRefCurrent(buttonRef);\n var computedStyle = btn && ((_window = window) === null || _window === void 0 ? void 0 : _window.getComputedStyle(btn));\n setRtl((computedStyle === null || computedStyle === void 0 ? void 0 : computedStyle.direction) === 'rtl');\n });\n\n var openMenu = function (evt) {\n setShowMenu(function (prevState) {\n return !prevState;\n });\n setKeyboardActive(!evt.detail);\n };\n\n var handleItemClick = function (index) {\n setShowMenu(false);\n var buttonCurrent = getRefCurrent(buttonRef);\n /* istanbul ignore next */\n\n if (buttonCurrent) {\n if (skipButtonFocus) {\n buttonCurrent.blur();\n } else {\n buttonCurrent.focus();\n }\n }\n\n var selectedValue;\n /* istanbul ignore next */\n\n if (onChange) {\n var hasOptionsIndex = options.length > 0 && index >= 0;\n selectedValue = hasOptionsIndex ? options[index].value || options[index].primaryText : null;\n\n if (showUnselect) {\n selectedValue = hasOptionsIndex ? options[index].value : null;\n }\n\n var myEvent = {\n target: {\n selectedIndex: index,\n value: selectedValue\n }\n };\n onChange(myEvent);\n }\n };\n\n var msgId = helperText && 'dropdown_helperText' || errorText && 'dropdown_errorText';\n var buttonText = '';\n var buttonValue = '';\n var selectedIndex = -1;\n\n if (value) {\n for (var i = 0; i < options.length; i++) {\n if (options[i].value === value) {\n if (renderButtonContent) {\n buttonText = renderButtonContent();\n } else {\n buttonText = options[i].primaryText;\n }\n\n buttonValue = options[i].value;\n selectedIndex = i;\n break;\n }\n }\n } else if (!value && options.length > 0 && options[0].value === '') {\n selectedIndex = 0;\n }\n\n var AffordanceIconComponent = showMenu ? ChevronUpIcon : ChevronDownIcon;\n var AffordanceIcon = jsx(AffordanceIconComponent, {\n size: \"sm\",\n css: _styles.affordanceIcon,\n color: \"BackgroundMediumContrast\",\n \"aria-hidden\": \"true\",\n \"data-ppui\": \"true\"\n });\n var labelledBy = ariaLabelledby ? \"\".concat(buttonId, \"-label \").concat(ariaLabelledby) : \"\".concat(buttonId, \"-label\");\n\n if (buttonText) {\n labelledBy = \"\".concat(labelledBy, \" \").concat(buttonId);\n }\n\n var otherButtonAttr = _objectSpread(_objectSpread(_objectSpread({}, msgId && {\n 'aria-describedby': msgId\n }), {\n 'aria-labelledby': labelledBy\n }), rest);\n\n var buttonCssVal = [_styles.button, showMenu && _styles.buttonActive, errorText && _styles.buttonError];\n var labelCssVal = [_styles.label, (showMenu || buttonText) && _styles.labelActive];\n return jsx(\"div\", {\n className: className,\n css: _styles.base,\n id: id,\n \"data-ppui-info\": \"dropdown-menu_3.0.2-ql\"\n }, jsx(\"select\", {\n css: _styles.selectBox,\n \"aria-hidden\": \"true\",\n id: selectId,\n name: name,\n tabIndex: -1,\n onChange: function (evt) {\n return handleItemClick(evt.target.selectedIndex - 1);\n },\n value: buttonValue,\n \"data-ppui\": \"true\"\n }, jsx(\"option\", {\n disabled: true,\n value: \"\",\n \"data-ppui\": \"true\"\n }, label), options.length > 0 && options.map(function (opt, index) {\n return jsx(\"option\", {\n key: index,\n value: opt.value ? opt.value : opt.primaryText,\n \"data-ppui\": \"true\"\n }, opt.primaryText);\n })), jsx(\"button\", _extends({\n className: menuButtonClassName,\n css: buttonCssVal,\n type: \"button\",\n id: buttonId,\n ref: buttonRef,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": showMenu,\n onClick: function handleClick(evt) {\n openMenu(evt);\n /* istanbul ignore next */\n\n if (onClick) {\n onClick(evt);\n }\n },\n onKeyDown: function handleKey(evt) {\n /* istanbul ignore next */\n var KeyCode = new KeyboardCode(evt.key || evt.keyCode);\n\n if (!showMenu && (KeyCode.IS_ARROW_UP || KeyCode.IS_ARROW_DOWN) && hasNoModifiers(evt)) {\n evt.preventDefault();\n openMenu(evt);\n }\n /* istanbul ignore next */\n\n\n if (onKeyDown) {\n onKeyDown(evt);\n }\n }\n }, otherButtonAttr, {\n \"data-ppui\": \"true\"\n }), AffordanceIcon, jsx(\"span\", {\n \"data-ppui\": \"true\"\n }, buttonText)), jsx(\"label\", {\n id: \"\".concat(buttonId, \"-label\"),\n htmlFor: buttonId,\n css: labelCssVal,\n className: menuLabelClassName,\n \"data-ppui\": \"true\"\n }, jsx(\"span\", {\n \"data-ppui\": \"true\"\n }, label)), jsx(SelectionMenu, {\n initialItemFocus: initialItemFocus,\n isOpen: showMenu,\n mobileTitle: label,\n onClose: function handleClose(evt) {\n setShowMenu(false);\n\n if (onClose) {\n onClose(evt);\n }\n },\n onSelection: handleItemClick,\n selectedIndex: selectedIndex,\n triggerElementRef: buttonRef,\n options: options,\n className: menuListClassName,\n containerClassName: menuContainerClassName,\n itemClassName: menuItemClassName,\n mobileHeaderClassName: menuMobileHeaderClassName,\n sheetClassName: sheetClassName,\n sheetWrapperClassName: sheetWrapperClassName,\n rtl: isRtl,\n returnFocusToTrigger: !skipButtonFocus,\n isLoadingOptions: isLoadingOptions,\n searchEnabled: true,\n \"data-ppui\": \"true\"\n }), renderMessage(errorText, errorIconAriaLabel, helperText, msgId, _styles));\n});\n\nexport { DropdownMenu, styles as dropdownMenuStyles };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}"],"names":["_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","tooltip","tooltipOrigin","_excluded","icons","info","success","warning","error","Alert","_ref","_styles$alertType","_styles$alertIcon","closeBtnEl","className","_ref$type","type","_ref$typeIconAriaLabe","typeIconAriaLabel","closeButton","_ref$closeButtonLabel","closeButtonLabel","children","rest","tokens","u","_styles","useMemo","Object","keys","length","sysSpaceXs","sysSpaceSm","sysSpaceMd","sysSpaceLg","sysSizeFieldSm","sysSizeIconSm","sysTypographyBodySize","sysBorderThicknessNormal","sysBorderRadiusLg","sysColorSystemMain","sysColorSystemMainActive","sysColorInfoMain","sysColorInfoContrast","sysColorSuccessMain","sysColorSuccessContrast","sysColorWarningMain","sysColorWarningContrast","sysColorErrorMain","sysColorErrorContrast","textBody","body","alertPaddingRightSpacing","concat","alertPaddingRight","alertPaddingLeft","alertPaddingTop","alertPaddingBottom","alertPaddingRightWithoutClose","alertIconSpaceLeft","sysAlertCloseBtnSpaceTop","sysAlertCloseBtnSpaceRight","sysAlertIconSvgSpaceTop","base","css","color","svgIcon","closeBtn","alertColor","backgroundColor","iconColor","noCloseBtn","alertType","colorMap","alertIcon","iconMap","classLabel","styles","AlertStatusIcon","alertCSSVal","call","otherProps","alertCloseBtnCSSVal","jsx","buttonType","size","svgIconComponent","alertSvgCSSVal","alert","role","colorFamily","Tooltip","tooltipWindow","containerPos","scrollX","scrollY","width","height","originWidth","originHeight","originPos","maxWidth","iconSpacing","caretWidth","caretSpaceHorizontal","spacingOffset","tooltipIconSize","_ref$name","name","_ref$description","description","_ref$screenReaderText","screenReaderText","position","verifiedIcon","windowId","windowRef","triggerClassName","tooltipClassName","containerRef","onOpen","onClose","imageElement","_ref$imagePosition","imagePosition","wrapperRef","useRef","tooltipOriginRef","tooltipRef","sysBorderRadiusInteractive","sysBorderRadiusSm","sysColorBackgroundHighContrast","sysColorBackgroundSurface","sysColorPrimaryMainActive","sysColorPrimaryMain","sysSizePointerWidthLg","sysSizeTapTargetSm","_utilStyles","elevationStyles","caretStyles","focusStyles","screenReader","_iconStyles","iconBase","iconSizeXs","sizeXs","pointerHeight","imageAlignBottom","justifyImage","imageAlignTop","level3","positionBottom","positionCenter","positionRight","positionLeft","positionTop","positionShiftLeft","positionShiftRight","icon","focusOffsetElement","image","imageTopLeft","imageTopCenter","imageBottomLeft","imageBottomCenter","noop","_useState","useState","isOpen","currentEvent","_useState2","state","setState","getWrapperCurrent","w","current","setTooltipPosition","top","left","_containerPos","_containerPos2","containerElm","_ref2","scrollTop","scrollLeft","_ref3","offsetTop","offsetLeft","style","setOpen","evt","stopPropagation","clearOpen","windowEl","removeEventListener","positionTooltip","getBoundingClientRect","providedWindow","document","getElementById","pos","right","bottom","window","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","getTooltipBoundary","offsetWidth","offsetHeight","pageXOffset","pageYOffset","rootFontSizePx","getComputedStyle","getPropertyValue","rootFontSize","parseInt","split","tooltipMaxWidthPx","tooltipMaxWidth","winLeft","winRight","iconLeft","availableLeftSpace","availableRightSpace","halfMaxWidth","availableSpace","currentWidth","setWidth","buttonWidth","leftPosX","leftPosY","addEventListener","classList","add","rightPosX","rightPosY","topCenterX","topCenterY","boundary","sideShift","offsetY","offsetX","selfPosition","handleClickOutside","contains","target","handleKey","KeyCode","key","keyCode","IS_TAB","IS_ESC","useLayoutEffect","imagePositionStyleName","replace","RegExp","_first","second","third","toUpperCase","toLowerCase","s","imagePositionCSSVal","displayImage","tooltipNode","ref","id","onMouseLeave","TooltipIcon","handleTouchStart","onMouseEnter","relatedTarget","onTouchEnd","preventDefault","onMouseDown","onFocus","FPTI_OBJECT","page","pgrp","APP_DATA_OBJECT","countries","isRequired","currencies","formMapping","tTypeOptions","CC_DATA_OBJECT","metaData","appData","configs","CONVERSION_RESULT_OBJECT","isLoaded","isError","data","sizes$1","SMALL","MEDIUM","LARGE","isEmpty$1","value","trim","getContentValue","content","path","shift","e","getInitialFormState","initialState","formMappings","entries","forEach","entry","push","setInnerContent","__html","getCurrencyConversionResultUrl","formData","componentName","params","field","validateDataModelServiceResponse","spinnerTypes","SHIMMER","LOADER","ErrorBoundary","_React$Component","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","prototype","valueOf","_isNativeReflectConstruct","result","Super","NewTarget","this","constructor","arguments","apply","props","_this","errorInfo","err","cbOnError","suppressError","propTypes","getData","_callee","url","config","method","req","response","_args","_context","prev","next","undefined","XMLHttpRequest","open","withCredentials","Promise","resolve","reject","onreadystatechange","readyState","status","JSON","parse","responseText","event","send","sent","abrupt","t0","stop","isEmpty","ownKeys$2","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","i","source","getOwnPropertyDescriptors","defineProperties","defineProperty","analyticsObject","PAYPAL","analytics","getFPTIOptions","fptiOptions","eventType","fpti","stringify","deepClone","erpg","erfd","eccd","link","pgln","pglk","event_name","comp","recordClickEvent","options","Analytics","recordClick","recordErrorEvent","trackJSError","recordEvent","getFptiOptionsPage","fptiOptionProps","hasOwnProperty","getFptiOptionsPageGroup","Disclaimer","dangerouslySetInnerHTML","ToolIntroLabel","Header","ConversionResult","_props$data","ConversionForm","onChangeHandler","renderField","currentField","find","formField","label","placeholder","optionsPath","onChange","required","errorText","helperText","rightIcon","form","fromCountry","toCountry","fromPaymentCurrency","toTransCurrency","tType","transAmount","SubmitBtn","onClickHandler","onClick","checkForErrorMessage","isEmptyField","reqValidationError","hasFormError","formFields","Array","isArray","validateFormData","map","assign","ownKeys$1","_objectSpread$1","CurrencyConvWidget","setFormData","_useState3","isLoading","_useState4","conversionResult","setConversionResult","useEffect","fieldName","_e$target","updatedFields","validatedFormData","fptiClickEventOptions","then","updatedConversionResult","catch","statusCode","conversionServiceCatchBlockHandler","__onSubmitHandler","Loader","customStyle","spinnerType","spinnerSize","customLoaderStyle","display","justifyContent","getCurrencyConvMetaApiUrl","HcCurrencyConv","missingRequiredDataError","version","devMode","devData","setData","initiateGetMetaData","respData","timeoutId","setTimeout","isMissingRequiredData","clearTimeout","Fragment","finalFPTIOptions","theme","defaultProps","_templateObject10","_templateObject11","ownKeys","_objectSpread","getRefCurrent","DropdownMenu","forwardRef","menuContainerClassName","menuListClassName","menuItemClassName","menuMobileHeaderClassName","menuButtonClassName","menuLabelClassName","_props$skipButtonFocu","skipButtonFocus","sheetClassName","sheetWrapperClassName","_props$label","_props$errorIconAriaL","errorIconAriaLabel","_props$options","ariaLabelledby","renderButtonContent","onKeyDown","isLoadingOptions","showUnselect","sysMotionDurationHover","sysSizeFieldLg","sysColorStructureBorderHighContrast","sysSpaceTiny","sysColorBackgroundMediumContrast","sysTypographyFieldLabelLgLineHeight","sysTypographyFieldLabelSmLineHeight","sysBorderThicknessEmphasis","ellipsis","_textStyles","textFieldLabelLg","fieldLabelLg","textFieldValueSm","fieldValueSm","textFieldLabelSm","fieldLabelSm","textCaption","caption","buttonActive","button","buttonError","labelActive","affordanceIcon","errorIcon","selectBox","buttonId","internalRef","buttonRef","selectId","showMenu","setShowMenu","initialItemFocus","setKeyboardActive","_useState5","_useState6","isRtl","setRtl","_window","btn","computedStyle","direction","openMenu","prevState","detail","handleItemClick","index","selectedValue","buttonCurrent","blur","focus","hasOptionsIndex","primaryText","selectedIndex","msgId","buttonText","buttonValue","AffordanceIconComponent","AffordanceIcon","labelledBy","otherButtonAttr","buttonCssVal","labelCssVal","tabIndex","disabled","opt","IS_ARROW_UP","IS_ARROW_DOWN","altKey","ctrlKey","shiftKey","metaKey","hasNoModifiers","htmlFor","mobileTitle","onSelection","triggerElementRef","containerClassName","itemClassName","mobileHeaderClassName","rtl","returnFocusToTrigger","searchEnabled","errorProps","dropdownErrorIcon","renderMessage","_inherits","subClass","superClass","TypeError","create","writable","configurable","_possibleConstructorReturn","self"],"sourceRoot":""}