{"version":3,"file":"static/js/main-c8121664.ec13ed50.js","mappings":"qSAqBO,SAASA,EAAwBC,GAAuD,IAApDC,EAAOD,EAAPC,QAASC,EAAUF,EAAVE,WAAYC,EAAaH,EAAbG,cAAeC,EAAIJ,EAAJI,KAC3EC,GAA+CC,EAAAA,EAAAA,GAAmBL,EAASC,IAAeK,EAAAA,EAAqBC,QAAvGC,EAAYJ,EAAZI,aAAcC,EAAoBL,EAApBK,qBAEhBC,EACFT,IAAeK,EAAAA,EAAqBK,MAC9B,CAAC,CACCC,UAAW,SACXC,0BAA2B,WAAF,OAAQ,IAAI,EACrCC,oBAAqB,WAAF,OAAQ,IAAI,EAC/BC,gBAAiB,GACjBC,cAAe,KAEjB,CAAC,CACCJ,UAAW,mBACXC,0BAA2B,WAAF,MAAQ,oBAAoB,EACrDC,oBAAqB,SAAAG,GAAI,OAAIA,EAAKC,kBAAkBC,WAAW,EAC/DJ,gBAAiB,qBACjBC,cAAe,sBACjB,CACEJ,UAAW,eACXC,0BAA2B,WAAF,MAAQ,aAAa,EAC9CC,oBAAqB,SAAAG,GAAI,OAAIA,EAAKC,kBAAkBE,SAAWH,EAAKC,kBAAkBE,SAAWC,EAAAA,GAAUC,gBAAgB,EAC3HP,gBAAiB,oBACjBC,cAAe,qBAChB,CACCJ,UAAW,iBACXC,0BAA2B,WAAF,MAAQ,YAAY,EAC7CC,oBAAqB,SAAAG,GAAI,OAAIM,EAAAA,GAAYC,cAAcP,EAAKQ,QAAQ,EACpEV,gBAAiB,aACjBC,cAAe,cAChB,CACCJ,UAAW,gBACXC,0BAA2B,WAAF,MAAQ,iBAAiB,EAClDC,oBAAqB,SAAAG,GAAI,OAAIS,EAAAA,GAAWC,MAAMV,EAAKW,QAAQ,EAAM,EAAE,EACnEb,gBAAiB,+BACjBC,cAAe,iCAI3B,GAAIb,IAAS0B,EAAAA,EAAUC,MAAQ7B,IAAeK,EAAAA,EAAqBC,OAAQ,CACvE,IAAMwB,EAAmD,CACrDnB,UAAW,WACXC,0BAA2B,WAAF,MAAQ,UAAU,EAC3CC,oBAAqB,SAAAG,GAAI,OAAIA,EAAKe,QAAUN,EAAAA,GAAWC,MAAMV,EAAKe,SAAS,EAAM,GAAKX,EAAAA,GAAUC,gBAAgB,EAChHP,gBAAiB,+BACjBC,cAAe,gCAGnBN,EAAkBuB,KAAKF,EAC3B,CAEA,IAAMG,EAAUxB,EAAkByB,KAAI,SAAAC,GAAC,OAAI,IAAIC,EAAAA,EAAcD,EAAE,IACzDE,EAAYC,KAAEC,EAAAA,EAAAA,GAAC,CAAC,EAAF,2BAAAC,OAA+BvC,IAAkB,IAErE,OACIwC,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,iCAAgCK,UAC3CD,EAAAA,EAAAA,KAACE,EAAAA,EAAS,CAACC,OAAO,EAAMC,aAAaC,EAAAA,EAAAA,IAAiBvC,GAAcmC,UAE5DI,EAAAA,EAAAA,IAAiBvC,KACjBwC,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAACQ,EAAAA,GAAkB,CAACZ,UAAWA,EAAUK,SACpCT,EAAQC,KAAI,SAAAC,GAAC,OAAIA,EAAEe,cAAc,MAGlC1C,EACK2C,QAAO,SAAAC,GAAC,OAAIA,EAAElD,OAASA,CAAI,IAC3BgC,KAAI,SAAAkB,GAAC,OACFX,EAAAA,EAAAA,KAACY,EAAAA,EAAc,CAEXC,OAAM,cAAAd,OAAgBY,EAAEG,IACxBlB,UAAWA,EACXJ,QAASA,EACTuB,SAAUJ,EACVK,QAAS,CAAC,GAAE,cAAAjB,OALOY,EAAEG,IAMvB,UAQtC,C,4HCxFaG,EAAuC,SAAH5D,GAAgE,IAA1D6D,EAAO7D,EAAP6D,QAAS5D,EAAOD,EAAPC,QAAS6D,EAAS9D,EAAT8D,UAAWC,EAAU/D,EAAV+D,WAAYC,EAAShE,EAATgE,UACtFC,EAAaH,IAAchC,EAAAA,EAAUoC,IACrCC,GAAeC,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAAKA,EAAMC,QAAQC,uBAAuB,GAAD7B,OAAIzC,EAAO,KAAAyC,OAAIuB,GAAa,IAQtH,OACItB,EAAAA,EAAAA,KAACE,EAAAA,EAAS,CAACC,OAAK,EAACC,WAAYoB,EAAavB,UACtCD,EAAAA,EAAAA,KAAC6B,EAAAA,EAAQ,CACLC,QAASR,EAAaD,EAAYD,EAClCW,SAVQ,WACXP,GACDN,EAAQ5D,EAAS6D,IAAchC,EAAAA,EAAUoC,IAAKD,GAAcD,GAAaD,EAEjF,KAUJ,C,4HClBaY,EAAgC,SAAH3E,GAA4D,IAAtD6D,EAAO7D,EAAP6D,QAAS5D,EAAOD,EAAPC,QAAS2E,EAAO5E,EAAP4E,QAASC,EAAQ7E,EAAR6E,SACjEZ,EADoFjE,EAAT8D,YAChDhC,EAAAA,EAAUoC,IACrCC,GAAeC,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAAKA,EAAMC,QAAQQ,qBAAqB,GAADpC,OAAIzC,EAAO,KAAAyC,OAAIuB,GAAa,IAQpH,OACItB,EAAAA,EAAAA,KAACE,EAAAA,EAAS,CAACC,OAAK,EAACC,WAAYoB,EAAavB,UACtCD,EAAAA,EAAAA,KAAC6B,EAAAA,EAAQ,CACLC,QAASR,EAAaW,EAAUC,EAChCH,SAVQ,WACXP,GACDN,EAAQ5D,EAASgE,EAAYA,GAAcW,GAAWC,EAE9D,KAUJ,C,+RCRO,SAASE,EAAgB/E,GAA2D,IAAxDgF,EAAQhF,EAARgF,SAAUC,EAAQjF,EAARiF,SAAUC,EAAclF,EAAdkF,eAAgBC,EAAQnF,EAARmF,SAC7DC,GAAUC,EAAAA,EAAAA,MAChBC,EAAkEC,EAAAA,UAAe,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhFI,EAAyBF,EAAA,GAAEG,EAA4BH,EAAA,GAY9D,OACIvC,EAAAA,EAAAA,MAAA,OAAKV,UAAWC,IAAG,sBAAuB,CAAE,6BAA8BwC,EAASY,SAAUhD,SAAA,EACzFK,EAAAA,EAAAA,MAAA,OAAKV,UAAU,sCAAqCK,SAAA,EAChDD,EAAAA,EAAAA,KAAA,MAAAC,SAAKoC,EAASa,QACd5C,EAAAA,EAAAA,MAAA,OAAKV,UAAU,2BAA0BK,SAAA,CACpCoC,EAASY,SAAUjD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,gBAAeK,SAAC,YACpDK,EAAAA,EAAAA,MAAC6C,EAAAA,EAAW,CAAAlD,SAAA,EACRD,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZd,SAAUA,EACVe,cAAe,CAACC,EAAAA,GAAMC,cACtBrC,QAAS,WAAF,OAAQuB,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACzBhB,EAAQiB,UAAQ,IACnBhC,OAAO,IAAIiC,EAAAA,IACNC,MAAMC,EAAAA,GAAUC,UAAW,CAAEC,eAAgB1B,EAASvB,KACtDkD,WACP,EAAC/D,SACN,SAIGoC,EAASY,SACTjD,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZd,SAAUA,EACVe,cAAe,CAACC,EAAAA,GAAMC,cACtBrC,QAAS,WAAF,OAAQqB,EAAeF,EAASvB,IAAI,EAAOuB,EAAS4B,KAAK,EAAChE,SACpE,gBAKAoC,EAASY,SACVjD,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZd,SAAUA,EACVe,cAAe,CAACC,EAAAA,GAAMC,cACtBrC,QAAS,WAAF,OAAQqB,EAAeF,EAASvB,IAAI,EAAMuB,EAAS4B,KAAK,EAAChE,SACnE,cAILD,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZc,WAAW,UACX5B,SAAUA,EACV6B,cAAc,EACdd,cAAe,CAACC,EAAAA,GAAMC,cACtBrC,QAAS,WAAF,OAAQ8B,GAA6B,EAAK,EAAC/C,SACrD,qBAMbD,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,0CAAyCK,SACnDmE,EAAAA,EAAyB/B,EAASgC,SAEvCrE,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,2BAA0BK,SAEhCoC,EAASiC,MAAM7E,KAAI,SAAA8E,GAAC,OAChBjE,EAAAA,EAAAA,MAAA,MAAeV,UAAU,mCAAkCK,SAAA,EACvDD,EAAAA,EAAAA,KAACwE,EAAAA,GAAc,CAACC,aAAa,gBAAgBC,QAASH,EAAE/F,kBAAkBC,YAAYwB,UAClFD,EAAAA,EAAAA,KAAA,QAAAC,SAAOsE,EAAE/F,kBAAkBC,iBAE/BuB,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,4BAA2BK,UAvE9C1B,EAuE4DgG,EAtExEhG,EAA4CQ,QACtCF,EAAAA,EAAYC,cAAeP,EAA4CQ,SAAW,IACjFR,EAA2CoG,OAC3CpG,EAA2CoG,OAGhD,UA4DkBJ,EAAEzD,IAnEX,IAACvC,CAwEI,MAKbwE,IACA/C,EAAAA,EAAAA,KAAC4E,EAAAA,EAAO,CACJC,MAAMvE,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAAE,6BAAyBD,EAAAA,EAAAA,KAAA,UAAAC,SAASoC,EAASa,OAAc,gBACjE4B,UAAW,WACP9B,GAA6B,GAC7BR,EAASH,EAASvB,GACtB,EACAiE,SAAU,WAAF,OAAQ/B,GAA6B,EAAM,MAKvE,C,2GC3GO,SAASgC,EAAY3H,GAAwB,IAArB4H,EAAS5H,EAAT4H,UAC3BC,ECLG,WACH,IAAMC,GAAWC,EAAAA,EAAAA,MACjBzC,EAAwCC,EAAAA,SAAeyC,EAAAA,EAAaC,MAAKzC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlE7E,EAAY+E,EAAA,GAAE0C,EAAe1C,EAAA,GAE9BL,EAAQ,eAAAnF,GAAAmI,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAC,EAAOC,GAAkB,OAAAH,EAAAA,EAAAA,KAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEI,OAFJF,EAAAC,KAAA,EAElCR,EAAgBF,EAAAA,EAAaY,SAASH,EAAAE,KAAA,EAChCE,EAAAA,EAA+BC,eAAeP,GAAY,KAAD,EAC/DL,EAAgBF,EAAAA,EAAae,SAC7BjB,EAASkB,EAAAA,EAA+BF,eAAeP,IAAaE,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAQ,GAAAR,EAAA,SAEpEX,EAASoB,EAAAA,EAAaC,gBAAeV,EAAAQ,KACrCf,EAAgBF,EAAAA,EAAaoB,SAAS,yBAAAX,EAAAY,OAAA,GAAAf,EAAA,kBAE7C,gBAVagB,GAAA,OAAAtJ,EAAAuJ,MAAA,KAAAC,UAAA,KAYd,MAAO,CAAEC,mBAAoBhJ,EAAc0E,SAAAA,EAC/C,CDZ6CuE,GAAjCD,EAAkB5B,EAAlB4B,mBAAoBtE,EAAQ0C,EAAR1C,SAC5BwE,EEJG,WACH,IAAM7B,GAAWC,EAAAA,EAAAA,MACjBzC,EAAwCC,EAAAA,SAAeyC,EAAAA,EAAaC,MAAKzC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlE7E,EAAY+E,EAAA,GAAE0C,EAAe1C,EAAA,GAE9BN,EAAc,eAAAlF,GAAAmI,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAC,EAAOC,EAAoB3C,EAAiBgB,GAAU,IAAAgD,EAAAC,EAAAC,EAAA,OAAA1B,EAAAA,EAAAA,KAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE/B,OAF+BF,EAAAC,KAAA,EAErER,EAAgBF,EAAAA,EAAaY,SAASH,EAAAE,KAAA,EAChBE,EAAAA,EAA+BkB,kBAAkBxB,EAAY3C,EAAQgB,GAAM,KAAD,EAA1FgD,EAAOnB,EAAAuB,KACb9B,EAAgBF,EAAAA,EAAae,SAEvBc,EAAYD,EAAQK,MAAK,SAAAC,GAAC,OAAIA,EAAEtE,MAAM,IACtCkE,EAAcF,EAAQK,MAAK,SAAAC,GAAC,OAAKA,EAAEtE,MAAM,IAE/CkC,EAASkB,EAAAA,EAA+BmB,aAAaN,EAAWC,IAAcrB,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAQ,GAAAR,EAAA,SAE9EP,EAAgBF,EAAAA,EAAaoB,SACZ,MAAbX,EAAAQ,GAAEmB,OACFtC,EACIuC,EAAAA,EAAoBC,iCAChBC,EAAAA,EAAcC,YACd,4CACA,IAIR1C,EAASoB,EAAAA,EAAaC,gBAAeV,EAAAQ,KACxC,yBAAAR,EAAAY,OAAA,GAAAf,EAAA,mBAER,gBAxBmBgB,EAAAmB,EAAAC,GAAA,OAAA1K,EAAAuJ,MAAA,KAAAC,UAAA,KA0BpB,MAAO,CAAEmB,qBAAsBlK,EAAcyE,eAAAA,EACjD,CF3BqD0F,GAAzCD,EAAoBhB,EAApBgB,qBAAsBzF,EAAcyE,EAAdzE,eAE9B,OACIvC,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,iBAAgBK,SAEvBgF,EAAUxF,KAAI,SAAA8H,GAAC,OACXvH,EAAAA,EAAAA,KAACoC,EAAgB,CAEbC,SAAUkF,EACVjF,UAAUd,EAAAA,EAAAA,IAAasF,KAAuBtF,EAAAA,EAAAA,IAAawG,GAC3DzF,eAAgBA,EAChBC,SAAUA,GAJL+E,EAAEzG,GAKT,KAKtB,C,8JGQO,SAASoH,EAAY7K,GAA+D,IAAD8K,EAAAC,EAA3D/F,EAAQhF,EAARgF,SAAUgG,EAAkBhL,EAAlBgL,mBAAoBC,EAAkBjL,EAAlBiL,mBACnD7F,GAAUC,EAAAA,EAAAA,MACVyC,GAAWoD,EAAAA,EAAAA,KAEXC,GAA6D/G,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAEC,KAAKF,SAAS,IAC1GG,GAAmBlH,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAE9G,QAAQiH,wBAAwBD,gBAAgB,IAExGhG,EAAgDC,EAAAA,SAA6B,QAAfuF,EAAS,OAAR9F,QAAQ,IAARA,OAAQ,EAARA,EAAUa,YAAI,IAAAiF,EAAAA,EAAI,IAAGtF,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA7EkG,EAAgBhG,EAAA,GAAEiG,EAAmBjG,EAAA,GAC5CkG,EAA0DnG,EAAAA,SAAe,IAAGoG,GAAAlG,EAAAA,EAAAA,GAAAiG,EAAA,GAArEE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GACtDG,EAA+CvG,EAAAA,SAA6B,QAAfwF,EAAS,OAAR/F,QAAQ,IAARA,OAAQ,EAARA,EAAUgC,YAAI,IAAA+D,EAAAA,EAAIgB,EAAAA,EAAoBC,gBAAeC,GAAAxG,EAAAA,EAAAA,GAAAqG,EAAA,GAA5GI,EAAeD,EAAA,GAAEE,EAAmBF,EAAA,GAC3CG,EAAwC7G,EAAAA,UAAe,GAAM8G,GAAA5G,EAAAA,EAAAA,GAAA2G,EAAA,GAAtDE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAE9BG,EAAgBrB,EAAU9H,QAAO,SAAA6D,GAAC,OAAKA,EAAEuF,KAAK,IAC9C/K,EAAUwK,IAAoBH,EAAAA,EAAoBC,gBAClDU,EAAAA,EAAAA,OAAMF,GAAe,SAAAtF,GAAC,OAAIyF,EAAAA,GAAaC,gBAAgB1F,EAAExF,QAAQ,IACjE,IACAmL,EACFP,GACAQ,QAAQlB,IACRY,EAAcO,MAAK,SAAA7F,GAAC,OAAIA,EAAE8F,SAAUC,EAAAA,EAAAA,QAAO/F,EAAE8F,QAAQE,MAAM,IAEzDC,EAAa,WAAO,IAADC,EAAAC,EAAAC,EAAAC,EAiBrB,OACI/B,EAAiBgC,UAA0B,QAApBJ,EAAc,OAARpI,QAAQ,IAARA,OAAQ,EAARA,EAAUa,YAAI,IAAAuH,EAAAA,EAAI,KAC/ClB,KAAmC,QAApBmB,EAAc,OAARrI,QAAQ,IAARA,OAAQ,EAARA,EAAUgC,YAAI,IAAAqG,EAAAA,EAAItB,EAAAA,EAAoBC,iBAC3DQ,EAAcU,UAAkC,QAA5BI,EAAc,OAARtI,QAAQ,IAARA,OAAQ,EAARA,EAAUiC,MAAMiG,cAAM,IAAAI,EAAAA,EAAI,IACpDd,EAAcO,MAAK,SAAA7F,GAAC,OAAKA,EAAEzD,EAAE,MACb,QAAhB8J,EAAS,OAARvI,QAAQ,IAARA,OAAQ,EAARA,EAAUiC,aAAK,IAAAsG,EAAAA,EAAI,IAAIR,MAAK,SAAA7F,GAAC,OApB9BuG,EAoBqDvG,IAnBrDwG,EAmBwDlB,EAAcvC,MAAK,SAAA0D,GAAC,OAAIA,EAAElK,KAAOyD,EAAEzD,EAAE,MAfzFgK,EAAStM,kBAAkBsC,KAAOmK,OAAOF,EAAKG,sBAC1C3B,IAAoBH,EAAAA,EAAoBC,gBACvCyB,EAAgD/L,UAAYkM,OAAOF,EAAKhM,UAEzEwK,IAAoBH,EAAAA,EAAoB+B,eACvCL,EAA+CnG,SAAWoG,EAAKpG,OAXjD,IACvBmG,EACAC,CAmB+F,GAEvG,EAEMK,GAAuB,SAAClI,GAC1B,OAAImI,EAAAA,GAAYC,mBAAmBpI,GACxB0E,EAAAA,GAAc2D,MACdlD,EAAmB+B,MAAK,SAAAoB,GAAC,OAAIA,IAAMtI,EAAK2H,MAAM,IAC9C,6CAGJ,EACX,EAEMY,GACFvB,GACAmB,EAAAA,GAAYC,mBAAmBzC,KAC9BgB,EAAcU,SACf/I,EAAAA,EAAAA,IAAamH,KACZ6B,KACGjB,IAAoBH,EAAAA,EAAoB+B,gBACvCtB,EAAcO,MAAK,SAAA7F,GAAC,OAAIA,EAAE2G,mBAAmB,IAGtDtI,EAAAA,WAAgB,WACR+G,GAA4B,MAAZ5K,GAChB6K,GAAgB,EAExB,GAAG,CAAC7K,EAAS4K,IAEb/G,EAAAA,WAAgB,WACZ,OAAO,WACHuC,EAASuG,EAAAA,IAAYC,QACzB,CACJ,GAAG,CAACxG,IAEJvC,EAAAA,WAAgB,WACZ,IAAMpE,GAA6BiF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC5BmI,EAAAA,GAAYpN,mBAAiB,IAChC6F,KAAM,SACNwH,0BAA2B,WAAF,OAAQvD,EAAmB7I,KAAI,SAAAkB,GAAC,MAAK,CAC1DmL,IAAKnL,EAAEG,GAAIiL,MAAOpL,EAAElC,YACvB,GAAE,IAGDe,EAAwB+J,IAAoBH,EAAAA,EAAoBC,eAChE,CAAC7K,GAAiBiF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOmI,EAAAA,GAAYI,gBAAc,IAAE3H,KAAM,YAC3D,EAAAZ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOjF,GAAiB,IAAEyN,QAAQ,EAAOC,UAAU,EAAOC,iBAAiB,EAAMC,OAAQ,SAACC,GAAuB,OAAKA,EAAQC,OAAOD,GAAS1N,EAAAA,GAAUC,gBAAgB,KAAA6E,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjKmI,EAAAA,GAAYjH,QAAM,IAAEN,KAAM,SAAUkI,UAAU,EAAML,UAAU,EAAOM,cAAc,EAAMT,MAAO,SAEvGU,EAAWlD,IAAoBH,EAAAA,EAAoBC,eACnD,GACAqD,EAAAA,GAAQnC,OAEV/B,EAA+C,GAE/Ce,IAAoBH,EAAAA,EAAoBC,gBACxChH,GACAA,EAASgC,OAAS+E,EAAAA,EAAoBC,eACtCb,EAAUjJ,KAAIqH,MAAd4B,GAASmE,EAAAA,EAAAA,GACFtK,EAASiC,MAAM7E,KAAI,SAAA8E,GAAC,MAAK,CACxBzD,GAAIyD,EAAEzD,GACNoK,oBAAqB3G,EAAE/F,kBAAkBsC,GACzC/B,QAAUwF,EAAyCxF,QACtD,MAEEwK,IAAoBH,EAAAA,EAAoB+B,eAC/C3C,EAAUjJ,KAAIqH,MAAd4B,GAASmE,EAAAA,EAAAA,GAASD,EAAAA,GAAQjN,KAAI,SAAAkF,GAAM,IAAAiI,EAAA,MAAK,CACrC1B,qBAA6B,OAAR7I,QAAQ,IAARA,OAAQ,EAARA,EAAUgC,QAAS+E,EAAAA,EAAoB+B,cAC9C,OAAR9I,QAAQ,IAARA,GAAuF,QAA/EuK,EAARvK,EAAUiC,MAAMgD,MAAK,SAAAuF,GAAE,OAAKA,EAAyClI,SAAWA,CAAM,WAAC,IAAAiI,OAA/E,EAARA,EAAyFpO,kBAAkBsC,QAC3GgM,EACFnI,OAAAA,EACP,MAGLQ,EAASuG,EAAAA,IAAYC,SACrBxG,EAASuG,EAAAA,IAAYqB,KAAKvE,EAAWhJ,EAASiN,GAElD,GAAG,CAAClD,EAAiBlH,EAAUiG,EAAoBnD,IAEnD,IAeM6H,GAAa,SAACC,GAChB,IAAMC,EAAY9B,GAAqBvC,GACvCK,EAAyBgE,GAEzB/H,EAASuG,EAAAA,IAAYyB,YAErB,IAGiCC,EAH3BzD,EAA2B,MAAZ5K,GACrB6K,EAAgBD,GAEXuD,GAAcvD,IACfxE,EACIkI,EAAAA,EAAsCC,KACtB,QAD0BF,EAC9B,OAAR/K,QAAQ,IAARA,OAAQ,EAARA,EAAUvB,UAAE,IAAAsM,EAAAA,EAAI,EAChBvE,EACAU,EACA0D,EACQ,OAAR5K,QAAQ,IAARA,OAAQ,EAARA,EAAU4B,MAG1B,EAoBA,OACI3D,EAAAA,EAAAA,MAAA,OAAKV,UAAU,uBAAsBK,SAAA,EACjCD,EAAAA,EAAAA,KAACuN,EAAAA,GAAc,CAACrB,UAAU,EAAMrH,KAAK,mBACrCvE,EAAAA,EAAAA,MAAA,OAAKV,UAAU,sCAAqCK,SAAA,EAChDD,EAAAA,EAAAA,KAAA,SACIJ,UAAU,+BACVyE,KAAK,OACLgI,MAAOxD,EACP2E,UAAW,GACXC,YAAY,gBACZ1L,SAhES,SAACiJ,GAEtB,GADAlC,EAAoBkC,EAAE0C,OAAOrB,OACzBpD,EAAuB,CACvB,IAAM0E,EAAQvC,GAAqBJ,EAAE0C,OAAOrB,OAC5CnD,EAAyByE,EAC7B,CACJ,KA4DY3N,EAAAA,EAAAA,KAAC4N,EAAAA,GAAS,CAACC,QAAS5E,QAExB3I,EAAAA,EAAAA,MAAA,OAAKV,UAAU,4BAA2BK,SAAA,EACtCD,EAAAA,EAAAA,KAAC8N,EAAAA,EAAW,CACR5K,KAAK,gBACL6K,MAAM,aACN1B,MAAOjD,EAAAA,EAAoBC,eAC3BvH,QAASyH,IAAoBH,EAAAA,EAAoBC,eACjDtH,SAAU,WAAF,OAAQyH,EAAoBJ,EAAAA,EAAoBC,eAAe,KAE3ErJ,EAAAA,EAAAA,KAAC8N,EAAAA,EAAW,CACR5K,KAAK,gBACL6K,MAAM,iBACN1B,MAAOjD,EAAAA,EAAoB+B,cAC3BrJ,QAASyH,IAAoBH,EAAAA,EAAoB+B,cACjDpJ,SAAU,WAAF,OAAQyH,EAAoBJ,EAAAA,EAAoB+B,cAAc,QAG9E7K,EAAAA,EAAAA,MAAA,OAAKV,UAAWC,IAAG,mBAAoB,CAAE,0BAA2B0J,IAAoBH,EAAAA,EAAoB+B,gBAAiBlL,SAAA,EACzHD,EAAAA,EAAAA,KAACgO,EAAAA,EAAI,CACDC,oBAAoB,EACpBC,eAAgB3E,IAAoBH,EAAAA,EAAoB+B,cACxDgD,eAAe,EACfC,gBAAgB,EAChBC,aAtDS,WACrB,OAAI9E,IAAoBH,EAAAA,EAAoBC,gBAEpC/I,EAAAA,EAAAA,MAAA,MAAAL,SAAA,EACID,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,kBACdI,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,0BAAyBK,UACnCD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,YAAWK,SAAC,aAEhCD,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,8BACdU,EAAAA,EAAAA,MAAA,MAAIV,UAAU,eAAcK,SAAA,CAAEpB,EAAAA,GAAYC,cAAcC,EAAS,GAAG,QAAIiB,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,YAAWK,SAAC,aACpGD,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,qCAKnB,IACX,IAyCgB+J,IACA3J,EAAAA,EAAAA,KAACsO,EAAAA,EAAoB,CAACjK,KAAMkK,EAAAA,EAAyBC,MAAMvO,SAAC,mDAKpEK,EAAAA,EAAAA,MAAA,OAAKV,UAAU,wDAAuDK,SAAA,EAClED,EAAAA,EAAAA,KAAA,UACIJ,UAAU,uBACV0C,UAAUd,EAAAA,EAAAA,IAAamH,GACvBzH,QA/FK,WACjBuB,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACVhB,EAAQiB,UAAQ,IACnBhC,OAAO,IAAIiC,EAAAA,IAAuBC,MAAMC,EAAAA,GAAUC,WAAWE,WAErE,EA0FsC/D,SACzB,YAGDD,EAAAA,EAAAA,KAAA,UACIJ,UAAU,uBACV0C,SAAUmJ,GACVvK,QAAS,WAAF,OAAQ8L,IAAW,EAAM,EAAC/M,SACpC,UAGDD,EAAAA,EAAAA,KAAA,UACIJ,UAAU,sBACV0C,SAAUmJ,GACVvK,QAAS,WAAF,OAAQ8L,IAAW,EAAK,EAAC/M,SACnC,wBAILD,EAAAA,EAAAA,KAACyO,EAAAA,EAAiB,CACdC,SAAU,SAACC,EAAkBC,EAAiBlN,GAAW,OACrDe,EAAQe,QAAQ,CAAEmL,SAAAA,EAAUC,OAAAA,EAAQlN,MAAAA,GAAQ,EAEhDmN,sBAAuB,SAACC,GAAwE,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3F,QACK5N,EAAAA,EAAAA,IAAamH,MACbtI,EAAAA,EAAAA,IAAiBsI,OACF,OAAZmG,QAAY,IAAZA,GAAmB,QAAPC,EAAZD,EAAcpN,aAAK,IAAAqN,GAAO,QAAPC,EAAnBD,EAAqBnL,aAAK,IAAAoL,OAAd,EAAZA,EAA4B3K,QAASR,EAAAA,GAAUC,YACnC,OAAZgL,QAAY,IAAZA,GAAmB,QAAPG,EAAZH,EAAcpN,aAAK,IAAAuN,GAAO,QAAPC,EAAnBD,EAAqBrL,aAAK,IAAAsL,GAAS,QAATC,EAA1BD,EAA4BG,eAAO,IAAAF,OAAvB,EAAZA,EAAqCpL,mBAAgC,QAAlBqL,EAAc,OAAR/M,QAAQ,IAARA,OAAQ,EAARA,EAAUvB,UAAE,IAAAsO,EAAAA,EAAI,KAE7E5E,GAER,MAIhB,C,2DCtRM8E,GAAwB,EACxBC,GAAe,GAEd,SAASC,GAA4BnS,GAAwB,IAADoS,EAAAC,EAAAC,EAApB1K,EAAS5H,EAAT4H,UACrC2K,GAAgBC,EAAAA,EAAAA,MAA0DnO,MAEhF,OAAiB,OAAbkO,QAAa,IAAbA,GAAoB,QAAPH,EAAbG,EAAehM,aAAK,IAAA6L,OAAP,EAAbA,EAAsBpL,QAASR,EAAAA,GAAUC,UAAkB,MAExD9D,EAAAA,EAAAA,KAAC8P,GAAmC,CACvC7K,UAAWA,EACXlB,eAA6B,OAAb6L,QAAa,IAAbA,GAAoB,QAAPF,EAAbE,EAAehM,aAAK,IAAA8L,GAAS,QAATC,EAApBD,EAAsBL,eAAO,IAAAM,OAAhB,EAAbA,EAA+B5L,gBAEvD,CAEA,SAAS+L,GAAmCC,GAAsE,IAAnE9K,EAAS8K,EAAT9K,UAAWlB,EAAcgM,EAAdhM,eAChDoB,GAAWC,EAAAA,EAAAA,MACX3C,GAAUC,EAAAA,EAAAA,MACVsN,GAAcvO,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAE9G,QAAQiH,wBAAwBD,gBAAgB,IACnGsH,GAA+DC,EAAAA,EAAAA,IAAsB,GAA7E5H,EAAkB2H,EAAlB3H,mBAAoB6H,EAA8BF,EAA9BE,+BAEtBC,EAA8B,IAAnBrM,EACXsM,EAASlG,QAAQpG,GACjBuM,EAAeD,EAASpL,EAAUqC,MAAK,SAAAC,GAAC,OAAIA,EAAEzG,KAAOiD,CAAc,SAAI+I,EAEvEyD,IACDlQ,EAAAA,EAAAA,IAAiB8P,IAClB7H,EAAmBiC,OAAS+E,GAEhC1M,EAAAA,WAAgB,WACZ,OAAO,WACHuC,EAASkI,EAAAA,EAAsCmD,kBACnD,CACJ,GAAG,CAACrL,IAgDJ,OACI7E,EAAAA,EAAAA,MAACmQ,EAAAA,EAAc,CACX7Q,UAAU,wBACVmM,OAxCAzL,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAAE,wBAEED,EAAAA,EAAAA,KAACwE,EAAAA,GAAc,CACXE,QAAQ,+EACRpC,UAAWiO,EAA4BtQ,UAEvCD,EAAAA,EAAAA,KAACwE,EAAAA,GAAc,CACXE,QAAQ,mDACRpC,SAAUiO,GAA+BtL,EAAUsF,OAASgF,GAAatP,UAEzED,EAAAA,EAAAA,KAAC0Q,EAAAA,EAAiB,CAACpN,MAAO,CAACA,GAAAA,EAAMC,cAActD,UAC3CK,EAAAA,EAAAA,MAACqQ,EAAAA,EAAa,CACV/Q,UAAU,uBACV0C,SACI8N,GACAC,KACChQ,EAAAA,EAAAA,IAAiB8P,IAClB7H,EAAmBiC,OAAS+E,IAC5BrK,EAAUsF,QAAUgF,GAExBrO,QAAS,WAAF,OAAQuB,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACzBhB,EAAQiB,UAAQ,IACnBhC,OAAO,IAAIiC,EAAAA,IACNC,MAAMC,EAAAA,GAAUC,UAAW,CAAEC,eAAgB,IAC7CC,WACP,EAAC/D,SAAA,EAEHD,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,OAAO2N,MAAM,KAAKC,OAAO,QACvC9Q,EAAAA,EAAAA,KAAA,QAAAC,SAAM,yBAa1B8Q,QAjDY,YACXvP,EAAAA,EAAAA,IAAawO,IACdvN,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIhB,EAAQiB,UAAQ,IAAEhC,WAAOoL,IAEtD,EA6C6B7M,SAAA,EAGhBgF,EAAUsF,QACO,MAAlBxG,IACA/D,EAAAA,EAAAA,KAACgR,EAAAA,EAAgB,CAACC,UAAQ,EAACpM,KAAK,6DAGlCuL,IAAaC,GAAUpL,EAAUsF,OAAS,IAAKvK,EAAAA,EAAAA,KAACgF,EAAY,CAACC,UAAWA,KAErEmL,GAAYC,KACbrQ,EAAAA,EAAAA,KAACkI,EAAY,CACT7F,SAAUiO,EACVhI,mBAAoBA,EACpBD,mBACIpD,EACKvE,QAAO,SAAA6G,GAAC,OAAIA,EAAEzG,KAAOiD,CAAc,IACnCtE,KAAI,SAAA8H,GAAC,OAAIA,EAAErE,IAAI,QAM5C,CCtHO,SAASgO,GAAwB7T,GAAwB,IAADoS,EAApBxK,EAAS5H,EAAT4H,UACjCxC,GAAUC,EAAAA,EAAAA,MACVkN,GAAgBC,EAAAA,EAAAA,MAA6BnO,MAC7CyP,GAAkC,OAAbvB,QAAa,IAAbA,GAAoB,QAAPH,EAAbG,EAAehM,aAAK,IAAA6L,OAAP,EAAbA,EAAsBpL,QAASR,EAAAA,GAAUC,UAC9D8L,OACA9C,EAGN,OACI9M,EAAAA,EAAAA,KAACoR,EAAAA,EAAsB,CACnBC,gBAAiB,SAACC,EAAS9N,GACvB,IAAM+N,EAAOC,EAAAA,EAAOC,mCAAmCH,EAAQxQ,IAC/D0C,EAAUf,EAAQe,QAAQ+N,EAAMJ,GAAsB1O,EAAQlD,KAAKgS,EAAMJ,EAC7E,EAAElR,SAIE,SAACyR,GACG,OACIpR,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAEQyR,IACA1R,EAAAA,EAAAA,KAAC2R,EAAAA,EAAqB,CAACnT,kBAAmBkT,KAE9C1R,EAAAA,EAAAA,KAACwP,GAA4B,CAACvK,UAAWA,MAGrD,GAIhB,C,6RCjBO,SAAS2M,EAAqBvU,GAAwC,IAArCwU,EAAKxU,EAALwU,MAAOvJ,EAAkBjL,EAAlBiL,mBACrC7F,GAAUC,EAAAA,EAAAA,MAEVoP,EAAc,SAACC,EAAmBtU,GAAqB,IAADuU,EAAAC,EAAAC,EAAAC,EAAAC,EACpDC,EAAuB,IAAI1O,EAAAA,GAAqBlB,EAAQiB,SAAShC,OAChE4Q,MACGC,EAAAA,GAAUC,qBACV,CAAEC,uBAAwBZ,EAAMvU,QAASyU,UAAAA,EAAWtU,KAAAA,KAIlC,QAAtBuU,EAAAvP,EAAQiB,SAAShC,aAAK,IAAAsQ,GAAO,QAAPC,EAAtBD,EAAwBpO,aAAK,IAAAqO,OAAP,EAAtBA,EAA+B5N,QAASR,EAAAA,GAAUC,WACQ,OAApC,QAAtBoO,EAAAzP,EAAQiB,SAAShC,aAAK,IAAAwQ,GAAO,QAAPC,EAAtBD,EAAwBtO,aAAK,IAAAuO,GAAS,QAATC,EAA7BD,EAA+B9C,eAAO,IAAA+C,OAAhB,EAAtBA,EAAwCrO,iBAIxCsO,EAAqBzO,MAAMnB,EAAQiB,SAAShC,MAAOkC,MAAOS,MAG9D5B,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIhB,EAAQiB,UAAQ,IAAEhC,WAAOoL,IAAauF,EAAqBrO,SACpF,EAEA,OAAO0O,EAAAA,EAAKC,SAAQ/L,MAAb8L,EAAAA,GAAI/F,EAAAA,EAAAA,GAAarJ,EAAAA,GAAMsP,YACxB5S,EAAAA,EAAAA,KAAC6S,EAA2B,CAAChB,MAAOA,EAAOvJ,mBAAoBA,EAAoBpH,QAAS4Q,KAC5F9R,EAAAA,EAAAA,KAAC8S,EAA2B,CAACjB,MAAOA,EAAOvJ,mBAAoBA,EAAoBpH,QAAS4Q,GACtG,CAMA,SAASe,EAA2B9C,GAA0E,IAAvE8B,EAAK9B,EAAL8B,MAAOvJ,EAAkByH,EAAlBzH,mBAAoBpH,EAAO6O,EAAP7O,QACxDiE,GAAWC,EAAAA,EAAAA,MACX2N,EAAmBlB,EAAMmB,mBAAqBnB,EAAMoB,sBAAwBpB,EAAMqB,uBAElFpB,EAAc,SAAC9G,GACjBA,EAAEmI,kBACF,IAAMpB,EAAoBW,EAAAA,EAAKU,UAAWrB,UAG1C,GAFiBzJ,EAAmB5H,QAAO,SAAAC,GAAC,OAAIA,EAAE0S,aAAavS,KAAOiR,CAAS,IAElExH,OAAQ,CACjB,IAAM9M,EAAOoU,EAAMmB,mBAAqB7T,EAAAA,EAAUC,KAAOD,EAAAA,EAAUoC,IACnEL,EAAQ6Q,EAAWtU,EACvB,MACI0H,EAASuC,EAAAA,IAAoB4L,aACzB,oCAAoC,mEAADvT,OAC2B8R,EAAM0B,aAAarQ,KAAI,+BAGjG,EAiBA,OACIlD,EAAAA,EAAAA,KAAC0Q,EAAAA,EAAiB,CAACpN,MAAO,CAACA,EAAAA,GAAMC,cAActD,SAhB9B,WACjB,OAAQ8S,GACJ,KAAKS,EAAAA,EAAsBC,kBAC3B,KAAKD,EAAAA,EAAsBE,gBAC3B,KAAKF,EAAAA,EAAsBG,kBACvB,OACIrT,EAAAA,EAAAA,MAACqQ,EAAAA,EAAa,CAAC/Q,UAAU,uBAAuBsB,QAAS4Q,EAAY7R,SAAA,EACjED,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,cAAc2N,MAAM,KAAKC,OAAO,QAC9C9Q,EAAAA,EAAAA,KAAA,QAAAC,SAAM,kBAGlB,QAAS,OAAO,KAExB,CAIS2T,IAGb,CAEA,SAASd,EAA2Be,GAA0E,IAADC,EAAtEjC,EAAKgC,EAALhC,MAAOvJ,EAAkBuL,EAAlBvL,mBAAoBpH,EAAO2S,EAAP3S,QACxDuB,GAAUC,EAAAA,EAAAA,MAChBC,EAAoEC,EAAAA,WAAyCC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAtGoR,EAA0BlR,EAAA,GAAEmR,EAA6BnR,EAAA,GAChEkG,EAAgCnG,EAAAA,UAAe,GAAMoG,GAAAlG,EAAAA,EAAAA,GAAAiG,EAAA,GAA9CkL,EAAQjL,EAAA,GAAEkL,EAAWlL,EAAA,GACtBmL,EAA+B,QAAjBL,EAAGpB,EAAAA,EAAKU,iBAAS,IAAAU,OAAA,EAAdA,EAAgBK,eAEjCrC,EAAc,SAACrU,GACjB,IAAM2W,EAAU3W,IAAS0B,EAAAA,EAAUC,KAC7ByS,EAAMmB,mBACNnB,EAAM0B,aAEKjL,EAAmB5H,QAAO,SAAAC,GAAC,OAAIA,EAAE0S,aAAavS,KAAOsT,EAAQtT,EAAE,IAEnEyJ,OACTrJ,EAAQkT,EAAQtT,GAAIrD,GAEpBuW,EAA8BI,EAEtC,EA0BMC,EAxBmB,WACrB,OAAQxC,EAAMoB,uBACV,KAAKO,EAAAA,EAAsBC,kBACvB,MAAO,gCACX,KAAKD,EAAAA,EAAsBG,kBACvB,MAAO,iCACX,KAAKH,EAAAA,EAAsBE,gBACvB,MAAO,8BACX,QAAS,MAAO,GAExB,CAciBY,GACXC,EAbkB,WACpB,OAAQ1C,EAAMqB,wBACV,KAAKM,EAAAA,EAAsBC,kBACvB,MAAO,+BACX,KAAKD,EAAAA,EAAsBG,kBACvB,MAAO,gCACX,KAAKH,EAAAA,EAAsBE,gBACvB,MAAO,6BACX,QAAS,MAAO,GAExB,CAGgBc,GAEhB,OAAKH,GAAaE,GAGdjU,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACIK,EAAAA,EAAAA,MAAC6C,EAAAA,GAAW,CACRb,UAAW6R,EACXM,OAAQ,WAAF,OAAQP,GAAY,EAAK,EAC/BQ,OAAQ,WAAF,OAAQR,GAAY,EAAM,EAChCS,uBACIrU,EAAAA,EAAAA,MAAA,UACIgC,UAAW6R,EACXvU,UAAWC,IAAG,mCAAoC,CAAE,KAAQoU,IAAYhU,SAAA,EAExED,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,cAAc2N,MAAM,KAAKC,OAAO,QAC9C9Q,EAAAA,EAAAA,KAAA,QAAAC,SAAM,gBACND,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,cAAc2N,MAAM,KAAKC,OAAO,UAErD7Q,SAAA,EAEDD,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZd,UAAW6R,EACXjT,QAAS,SAAA8J,GAAOA,EAAEmI,kBAAmBrB,EAAY3S,EAAAA,EAAUoC,IAAK,EAAEtB,SAEjEsU,KAELvU,EAAAA,EAAAA,KAACoD,EAAAA,EAAe,CACZd,UAAW6R,EACXjT,QAAS,SAAA8J,GAAOA,EAAEmI,kBAAmBrB,EAAY3S,EAAAA,EAAUC,KAAM,EAAEa,SAElEoU,OAIyB,MAA9BN,IACA/T,EAAAA,EAAAA,KAAA,OAAKkB,QAAS,SAAC8J,GAAqC,OAAKA,EAAEmI,iBAAiB,EAAClT,UACzED,EAAAA,EAAAA,KAAC4E,EAAAA,EAAO,CACJmH,MAAM,oCACNlH,MAAMvE,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAAE,WAAOD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,cAAaK,SAAE8T,EAA2B7Q,OAAY,0EACrF0R,kBAAkB,SAClB9P,UAAW,WAAF,OAAQrC,EAAQlD,KAAKiS,EAAAA,GAAOqD,kCAAkCd,EAA2BjT,IAAI,EACtGiE,SAAU,WAAF,OAAQiP,OAA8BlH,EAAU,SAxC1C,IA8CtC,C,4YCpJO,SAAS0F,EAAoBnV,GAAiC,IAADyX,EAAAC,EAAAC,EAAAC,EAA7B3M,EAAkBjL,EAAlBiL,mBAC7BsH,GAAgBC,EAAAA,EAAAA,MAAuEnO,MACvFmQ,GAAQpQ,EAAAA,EAAAA,KAAY,SAACgH,GAAW,IAAAyM,EAAAC,EAAAC,EAAA,OACrB,OAAbxF,QAAa,IAAbA,GAAoB,QAAPsF,EAAbtF,EAAe0C,aAAK,IAAA4C,OAAP,EAAbA,EAAsB7Q,QAASkO,EAAAA,GAAUC,uBAC5B,OAAb5C,QAAa,IAAbA,GAAoB,QAAPuF,EAAbvF,EAAe0C,aAAK,IAAA6C,GAAS,QAATC,EAApBD,EAAsB9F,eAAO,IAAA+F,OAAhB,EAAbA,EAA+B3C,yBAC/BhK,EAAE9G,QAAQ0T,WAAW/N,MAAK,SAAAC,GAAC,IAAA+N,EAAAC,EAAA,OAAIhO,EAAEjK,WAAyB,OAAbsS,QAAa,IAAbA,GAAoB,QAAP0F,EAAb1F,EAAe0C,aAAK,IAAAgD,GAAS,QAATC,EAApBD,EAAsBjG,eAAO,IAAAkG,OAAhB,EAAbA,EAA+B9C,uBAAsB,GAAC,IAGvG,OAAKZ,GAAuB,OAAbjC,QAAa,IAAbA,GAAoB,QAAPkF,EAAblF,EAAe0C,aAAK,IAAAwC,GAAS,QAATC,EAApBD,EAAsBzF,eAAO,IAAA0F,GAA7BA,EAA+BhD,WAA2B,OAAbnC,QAAa,IAAbA,GAAoB,QAAPoF,EAAbpF,EAAe0C,aAAK,IAAA0C,GAAS,QAATC,EAApBD,EAAsB3F,eAAO,IAAA4F,GAA7BA,EAA+BxX,MAKvFuC,EAAAA,EAAAA,KAACwV,EAA2B,CACxB3D,MAAOA,EACPpU,KAAMmS,EAAe0C,MAAOjD,QAAS5R,KACrC6K,mBAAoBA,EAAmB5H,QAAO,SAAAC,GAAC,OAC3CA,EAAE0S,aAAavS,KAAO8O,EAAe0C,MAAOjD,QAAS0C,SAAS,MAR/D,IAWf,CAQA,IAAM0D,EAA2B,sEAC3BC,EAA4B,4DAElC,SAASF,EAA2BzF,GAAqD,IAAlD8B,EAAK9B,EAAL8B,MAAOvJ,EAAkByH,EAAlBzH,mBAAoB7K,EAAIsS,EAAJtS,KACxD0H,GAAWoD,EAAAA,EAAAA,KACX9F,GAAUC,EAAAA,EAAAA,MAEhBC,EAAoEC,EAAAA,UAAe,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlFgT,EAA0B9S,EAAA,GAAE+S,EAA6B/S,EAAA,GAChEkG,EAAsCnG,EAAAA,UAAe,GAAMoG,GAAAlG,EAAAA,EAAAA,GAAAiG,EAAA,GAApD8M,EAAW7M,EAAA,GAAE8M,EAAc9M,EAAA,GAE5B+M,GAAuBpY,EAAAA,EAAAA,GAAmBkU,EAAMvU,SAChDQ,EAAeiY,EAAqBjY,aACpCC,EAAuB6E,EAAAA,SACzB,kBAAMmT,EAAqBhY,qBAAqB2C,QAAO,SAAA6D,GAAC,OAAIA,EAAE9G,OAASA,CAAI,GAAC,GAC5E,CAACA,EAAMsY,IAGLC,GAAiBvU,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAEC,KAAKuN,UAAU,IAC/DC,GAAkCzU,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAE9G,QAAQwU,+BAA+B,IACxG3N,GAAY/G,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAEC,KAAKF,SAAS,IAEzD4N,EAAoExT,EAAAA,SAAc,kBAAM4F,EAAU9H,QAAO,SAAA6D,GAAC,OAAKA,EAAEuF,KAAK,GAAC,GAAE,CAACtB,IAC1H0B,GAAYtH,EAAAA,SAAc,kBAAMwT,EAAyBhM,MAAK,SAAA7F,GAAC,OAAIA,EAAE8F,SAAUC,EAAAA,EAAAA,QAAO/F,EAAE8F,QAAQE,MAAM,GAAC,GAAE,CAAC6L,IAC1GC,GAAW3D,EAAAA,EAAKC,SAAQ/L,MAAb8L,EAAAA,GAAI/F,EAAAA,EAAAA,GAAarJ,EAAAA,GAAMsP,WAClC0D,GAAO5D,EAAAA,EAAKC,SAAQ/L,MAAb8L,EAAAA,GAAI/F,EAAAA,EAAAA,GAAarJ,EAAAA,GAAMiT,OAC9BC,GAAoB/Y,IAAS0B,EAAAA,EAAUC,KACvCqX,IAAajV,EAAAA,EAAAA,IAAa0U,KAAoC1U,EAAAA,EAAAA,IAAa1D,GACjF4Y,GAAsC9T,EAAAA,SAAc,WAChD,IAAM7D,GAAUgL,EAAAA,EAAAA,OAAMqM,GAA0B,SAAA7R,GAAC,OAAIyF,EAAAA,EAAaC,gBAAgB1F,EAAExF,QAAQ,IACtFG,GAAS6K,EAAAA,EAAAA,OAAMqM,GAA0B,SAAA7R,GAAC,OAAIyF,EAAAA,EAAaC,gBAAgB1F,EAAErF,OAAO,IACpFG,EACFmX,IACMzM,EAAAA,EAAAA,OAAMqM,GAA0B,SAAA7R,GAAC,OAAIyF,EAAAA,EAAaC,gBAAgB1F,EAAEjF,QAAQ,IAC5E,EAEV,MAAO,CACHP,QAASiL,EAAAA,EAAa2M,MAAM5X,EAAS,GACrCG,OAAQ8K,EAAAA,EAAa2M,MAAMzX,EAAQ,GACnCG,SAAU2K,EAAAA,EAAa2M,MAAMtX,EAAU,GAE/C,GAAG,CAAC+W,EAA0BI,KAbtBzX,GAAO2X,GAAP3X,QAASG,GAAMwX,GAANxX,OAAQG,GAAQqX,GAARrX,SAgBzBuD,EAAAA,WAAgB,WACRiT,GAAe3W,KAAW2S,EAAM+E,MAChCd,GAAe,EAEvB,GAAG,CAACjE,EAAO3S,GAAQ2W,IAEnBjT,EAAAA,WAAgB,WACZ,OAAO,WAEHuC,EAAS0R,EAAAA,EAA8BC,mBACvC3R,EAASuG,EAAAA,EAAYC,QACzB,CACJ,GAAG,CAACxG,IAEJvC,EAAAA,WAAgB,WAEZ,IAAIvC,EAAAA,EAAAA,IAAiBvC,KAAkBkY,EAAgB,CACnD,IAAMe,EAA8B,SAACvO,GAEjC,OADeuB,EAAAA,EAAAA,OAAMvB,GAAW,SAAAjE,GAAC,OAAIyF,EAAAA,EAAaC,gBAAgB1F,EAAErF,OAAO,MACzD2S,EAAM+E,IAC5B,EAEMI,GAAmCvT,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAClCmI,EAAAA,EAAYpN,mBAAiB,IAChCqN,0BAA2B,WAAF,OAAQvD,EAAmB7I,KAAI,SAAAkB,GAAC,MAAK,CAC1DmL,IAAKnL,EAAEG,GAAIiL,MAAOpL,EAAElC,YACvB,GAAE,IAEDwY,GAAgCxT,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC/BmI,EAAAA,EAAYI,gBAAc,IAC7BmB,SAAU,SAACd,EAAO6K,EAAI1O,GAClB,OACKwB,EAAAA,EAAamN,SAAS9K,KACtBA,EAAQT,EAAAA,EAAYI,eAAeoL,MACnC/K,EAAQT,EAAAA,EAAYI,eAAeqL,KAIjCN,EAA4BvO,GAFxB,GAILkN,CACV,EACA4B,gCAAiC,SAACC,GAE9B,OADApS,EAAS0R,EAAAA,EAA8BW,yBAAyBD,EAAU1F,EAAMvU,UACzE,CAAE+G,KAAM,iBACnB,IAEEoT,GAA+BhU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC9BmI,EAAAA,EAAY8L,eAAa,IAC5BvK,SAAU,SAACwK,EAAGT,EAAI1O,GACd,OAAOuO,EAA4BvO,GAC7B,GACAiN,CACV,EACA6B,gCAAiC,SAACC,GAE9B,OADApS,EAAS0R,EAAAA,EAA8Be,0BAA0BL,EAAU1F,EAAMvU,UAC1E,CAAE+G,KAAM,kBACnB,IAEE7E,EAAU,CAACwX,EAAyBC,EAAsBQ,GAEhE,GAAIjB,GAAmB,CACnB,IAAMqB,GAA0BpU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACzBmI,EAAAA,EAAYvM,UAAQ,IACvBkN,SAAU8J,KAGd7W,EAAQD,KAAKsY,EACjB,CAEA,IAEMC,EAAuC/Z,EAAqB0B,KAAI,SAAA8E,GAAC,MAAK,CACxEzD,GAAIyD,EAAEzD,GACNoK,oBAAqB3G,EAAE/F,kBAAkBsC,GACzC/B,QAASwF,EAAExF,QACXG,OAAQqF,EAAErF,OACVI,QAASiF,EAAEjF,QACd,IACD6F,EAASuG,EAAAA,EAAYqB,KAAK+K,EAAWtY,EATpB,IAUrB,CACJ,GAAG,CAAC1B,EAAcC,EAAsB8T,EAAOvJ,EAAoB0N,EAAgBK,GAAUG,GAAmBrR,IAEhH,IAAMqF,GAAa,WAef,OACIzM,EAAqBwM,SAAW6L,EAAyB7L,QACzD6L,EAAyBhM,MAAK,SAAA7F,GAAC,OAAKA,EAAEzD,EAAE,KACxC/C,EAAqBqM,MAAK,SAAA7F,GAAC,OAjBJ,SAACuG,EAA+BC,GACvD,IAAKA,EAAM,OAAO,EAElB,IAAMgN,EAAoC,MAApBjN,EAASxL,SAAmB,EAAIwL,EAASxL,QACzD0Y,EAA8B,MAAhBjN,EAAKzL,SAAoC,KAAjByL,EAAKzL,SAAkB,EAAI2L,OAAOF,EAAKzL,SAEnF,OACIwL,EAAS5L,SAAWF,EAAAA,EAAWiZ,MAAM3L,OAAOvB,EAAK7L,UACjD4L,EAAS/L,UAAYkM,OAAOF,EAAKhM,UACjCgZ,IAAkBC,GAClBlN,EAAStM,kBAAkBsC,KAAOiK,EAAKG,mBAE/C,CAKmCgN,CAAmB3T,EAAG6R,EAAyB9O,MAAK,SAAA0D,GAAC,OAAIA,EAAElK,KAAOyD,EAAEzD,EAAE,IAAE,GAE/G,EAoBMqX,GAAc,WACX1B,IACDhU,EAAQe,SAAOC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACVhB,EAAQiB,UAAQ,IACnBhC,MAAO,IAAIiC,EAAAA,GAAqBlB,EAAQiB,SAAShC,OAAO0W,aAAapU,WAGjF,EAQMqU,GAAmBzV,EAAAA,aAAkB,WACvC,OACItC,EAAAA,EAAAA,MAAA,MAAAL,SAAA,EACID,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,kBACdI,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,0BAAyBK,UACnCD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,YAAWK,SAAC,aAEhCD,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,8BACdU,EAAAA,EAAAA,MAAA,MAAIV,UAAU,eAAcK,SAAA,CACvBpB,EAAAA,GAAYC,cAAcC,GAAS,GAAG,QAAIiB,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,YAAWK,SAAC,gBAE3EK,EAAAA,EAAAA,MAAA,MAAIV,UAAU,cAAaK,SAAA,CACtBjB,EAAAA,EAAWC,MAAMC,IAAQ,EAAM,GAAG,OAAGc,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,YAAWK,SAAEjB,EAAAA,EAAWC,MAAM4S,EAAM+E,MAAM,EAAM,QAGtGJ,KACAxW,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,eAAcK,SAAEjB,EAAAA,EAAWC,MAAMI,IAAU,EAAM,MAEnEW,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,oCAG1B,GAAG,CAACb,GAASG,GAAQG,GAAUmX,GAAmB3E,IAElD,OACIvR,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAEQ0V,IACA3V,EAAAA,EAAAA,KAACsY,EAAAA,EAAmB,CAChBxT,UAAWqT,GACXpT,SAAU,WAAF,OAAQ6Q,GAA8B,EAAM,KAG5D5V,EAAAA,EAAAA,KAACyO,EAAAA,EAAiB,CACdC,SAAU,SAACC,EAAkBC,EAAiBlN,GAAW,OACrDe,EAAQe,QAAQ,CAAEmL,SAAAA,EAAUC,OAAAA,EAAQlN,MAAAA,GAAQ,EAEhDmN,sBAAuB,WAAF,QAChBrN,EAAAA,EAAAA,IAAa0U,MACb7V,EAAAA,EAAAA,IAAiB6V,IAClB1L,IAAY,KAGpBxK,EAAAA,EAAAA,KAACuY,EAAAA,EAAK,CACFC,WAAW,yBACXC,aAjDRnY,EAAAA,EAAAA,MAAA,MAAAL,SAAA,CAAI,oBAEAD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,WAAUK,SAAE4R,EAAM6G,YAgD9BC,cAAc,EACd5H,QAASoH,GAAYlY,UAErBK,EAAAA,EAAAA,MAACJ,EAAAA,EAAS,CAACE,aAAaC,EAAAA,EAAAA,IAAiBvC,GAAcmC,SAAA,EAEnDK,EAAAA,EAAAA,MAACsY,EAAAA,EAAS,CAAChZ,UAAU,kCAAiCK,SAAA,EAClDD,EAAAA,EAAAA,KAACgO,EAAAA,EAAI,CACDC,oBAAoB,EACpBE,eAAe,EACfC,gBAAgB,EAChBC,aAAcgK,KAGdxC,IACAvV,EAAAA,EAAAA,MAACgO,EAAAA,EAAoB,CAACjK,KAAMkK,EAAAA,EAAyBC,MAAMvO,SAAA,EACvDD,EAAAA,EAAAA,KAAA,MAAAC,SAAKwV,KACLzV,EAAAA,EAAAA,KAAA,MAAAC,SAAKyV,WAIjBpV,EAAAA,EAAAA,MAACuY,EAAAA,EAAW,CAAA5Y,SAAA,EACRD,EAAAA,EAAAA,KAAA,UACIJ,UAAU,gBACV0C,SAAUmU,GACVvV,QAASiX,GAAYlY,SACxB,YAGDD,EAAAA,EAAAA,KAAA,UACIJ,UAAU,eACV0C,SACImU,KACCL,EAAyB7L,QAC1BL,IACA2L,IAhHH,WACrB,IAAM9C,EAAmBtV,IAAS0B,EAAAA,EAAUoC,IAAMsQ,EAAMqB,uBAAyBrB,EAAMoB,sBACvF,SAAIqD,IAAQvD,IAAqBS,EAAAA,EAAsBE,kBAIhDlJ,IACX,CA0G6BsO,GAEL5X,QA1GL,WACXhC,KAAW2S,EAAM+E,MACjBd,GAAe,GACf3Q,EAASuG,EAAAA,EAAYyB,aAErBhI,EAAS0R,EAAAA,EAA8BvJ,KAAKuE,EAAMvU,QAASuU,EAAMkH,eAAgBtb,GAEzF,EAmG4CwC,SACvB,mBAQzB,C,iLCrUO,SAAS+Y,EAA6B3b,GAAgE,IAADoS,EAA5DxK,EAAS5H,EAAT4H,UAAWnH,EAAYT,EAAZS,aAAc2W,EAAMpX,EAANoX,OAAMwE,EAAA5b,EAAEiF,SAAAA,OAAQ,IAAA2W,GAAQA,EAEvFxW,GAAUC,EAAAA,EAAAA,MACVkN,GAAgBC,EAAAA,EAAAA,MAA6BnO,MAC7CwX,EAAiBjU,EAAUqC,MAAK,SAAAC,GAAC,OAAIA,EAAEtE,MAAM,IACnDgN,GAA+DC,EAAAA,EAAAA,IAAsB,GAA7E5H,EAAkB2H,EAAlB3H,mBAAoB6H,EAA8BF,EAA9BE,+BACtBgJ,IAAa9Y,EAAAA,EAAAA,IAAiB8P,MAAoC9P,EAAAA,EAAAA,IAAiBvC,GACnFqT,GAAkC,OAAbvB,QAAa,IAAbA,GAAoB,QAAPH,EAAbG,EAAehM,aAAK,IAAA6L,OAAP,EAAbA,EAAsBpL,QAASR,EAAAA,GAAUC,UAUpE,OACIxD,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAACwE,EAAAA,GAAc,CACXE,QAAQ,+EACRpC,SAAU6W,GAAa7Q,EAAmBiC,QApBxB,EAqBlB6O,UAAWC,EAAAA,GAAiBC,YAC5B7U,aAAa,yBAAwBxE,UAErCK,EAAAA,EAAAA,MAAA,UACIV,UAAWC,IAAG,WAAY,CAAC,kBAAmBsR,IAC9C7O,SAAU6W,GAAa7Q,EAAmBiC,OA1B5B,GA0B8DjI,EAC5EpB,QAnBI,WACZiQ,EACA1O,EAAQe,QAAQf,EAAQiB,SAASiL,cAAU7B,GAE3C2H,GAAO,IAAI9Q,EAAAA,IAAuBC,MAAMC,EAAAA,GAAUC,WAAWE,SAErE,EAaqC/D,SAAA,EAErBD,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,uBAAuB2N,MAAO,GAAIC,OAAQ,KAAM,8BAGpE7L,EAAUsF,SAAUvK,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,iBAAgBK,SAAC,mBACpDgF,EAAUsF,QAA4B,MAAlB2O,IAA0BlZ,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,iBAAgBK,SAAC,0BAC/EgF,EAAUsF,QAA4B,MAAlB2O,IAA0BlZ,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,iCAAgCK,SAAEiZ,EAAehW,SAG9H,C,6LCpCO,SAASqW,EAAalc,GAAmH,IAAD0S,EAAAyJ,EAA/GC,EAAUpc,EAAVoc,WAAUC,EAAArc,EAAEqb,OAAAA,OAAM,IAAAgB,EAAG,GAAEA,EAAAC,EAAAtc,EAAEwH,KAAAA,OAAI,IAAA8U,EAAG,GAAEA,EAAAC,EAAAvc,EAAEwc,kBAAAA,OAAiB,IAAAD,GAAOA,EAAAX,EAAA5b,EAAEiF,SAAAA,OAAQ,IAAA2W,GAAQA,EAAE/X,EAAO7D,EAAP6D,QACtGiE,GAAWoD,EAAAA,EAAAA,KACX9F,GAAUhB,EAAAA,EAAAA,KAAY,SAACgH,GAAW,OAAKA,EAAEqR,WAAW,IACpDC,EAA0G,QAA5FhK,EAAI0J,EAA4B,QAAlBD,EAAG/W,EAAQuX,eAAO,IAAAR,OAAA,EAAfA,EAAiB9Y,QAAO,SAAAC,GAAC,OAAIA,EAAE8Y,aAAeA,CAAU,IAAIhX,EAAQuX,eAAO,IAAAjK,EAAAA,EAAK,GAC/GkK,EACFJ,GACAnH,EAAAA,EAAKC,SAASrP,EAAAA,GAAMC,aAAcD,EAAAA,GAAM4W,qBACxCH,EAAerZ,QAAO,SAAAC,GAAC,OAAKA,EAAEwZ,MAAM,IAAE5P,OACpC6P,EAAW3X,EAAQ4X,SAAW5X,EAAQgX,aAAeA,EAE3D,SAAS3H,EAAY9G,GACjB7F,EAASmV,EAAAA,IAAmBC,aAAaH,EAAUX,EAAYf,IAC/D1N,EAAEmI,kBACK,OAAPjS,QAAO,IAAPA,GAAAA,GAAWkZ,EACf,CAEA,SAASxG,IACL,OACItT,EAAAA,EAAAA,MAACqQ,EAAAA,EAAa,CACV/Q,UAAWsE,IAAW,uBAAwB,CAAE,kBAAmBkW,EAAU,OAAUvV,IACvF3D,QAAS4Q,EACTxP,SAAUA,EAASrC,SAAA,EAEnBD,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAO,CAAC1N,KAAK,WAAW2N,MAAO,GAAIC,OAAQ,KAAM,IAAEjM,IACjDoV,IAAeja,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,QAAOK,SAAEga,MAGvD,CAEA,OACI3Z,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAACwa,EAAAA,EAAO,CAAClX,MAAOA,EAAAA,GAAMsP,SAAS3S,SAC1B2T,OAEL5T,EAAAA,EAAAA,KAACwa,EAAAA,EAAO,CAAClX,MAAOA,EAAAA,GAAMiT,KAAKtW,UACvBD,EAAAA,EAAAA,KAAC0Q,EAAAA,EAAiB,CAACpN,MAAO,CAACA,EAAAA,GAAM4W,oBAAoBja,SAChD2T,UAKrB,CAGA2F,EAAckB,aAAe,CACzBhB,WAAY,KACZvY,QAAS,K,8TCtCAwZ,EAAU,SAAHrd,GAAiG,IAA3Fsd,EAAMtd,EAANsd,OAAQC,EAAmBvd,EAAnBud,oBAAqBC,EAAMxd,EAANwd,OAAQC,EAAWzd,EAAXyd,YAAaC,EAAU1d,EAAV0d,WAAYC,EAAO3d,EAAP2d,QAC9EC,GAAWC,EAAAA,EAAAA,QAAuB,OAExCC,EAAAA,EAAAA,YAAU,WACDR,EAAOR,QAAiC,MAAvBS,GAAoD,OAArBK,EAAS7H,SAChC6H,EAAS7H,QAAQgI,wBACrBC,IAAMT,EAAoBU,QAC5CT,EAAOF,EAAOY,cAG1B,GAAG,CAACZ,EAAOR,OAAQQ,EAAOY,cAAeX,EAAqBC,IAE9D,IAyBMW,EAAoB,WACtB,IAAI3N,EAAU,kBAUd,OARW,OAAPmN,QAAO,IAAPA,OAAO,EAAPA,EAAS3W,QAASoX,EAAAA,EAAgBC,kBAC9BZ,IAAgBa,EAAAA,EAAgBC,OAChC/N,EAAU,iDACHiN,IAAgBa,EAAAA,EAAgBE,cAAgBf,IAAgBa,EAAAA,EAAgBG,QACvFjO,EAAU,gDAIX7N,EAAAA,EAAAA,KAAA,QAAAC,SAAO4N,GAClB,EAEMkO,EAAoB,WACtB,IAAIlO,EAAU,gBAOd,OANIiN,IAAgBa,EAAAA,EAAgBE,cAAgBf,IAAgBa,EAAAA,EAAgBG,MAChFjO,EAAU,6CACHiN,IAAgBa,EAAAA,EAAgBC,SACvC/N,EAAU,mDAGP7N,EAAAA,EAAAA,KAAA,QAAAC,SAAO4N,GAClB,EAEMmO,EAAsB,SAACrB,GACzB,OAAIA,EAAOtL,QACHsL,EAAOtL,QAAQ4M,MACR3b,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAAM,aAAW0a,EAAOtL,QAAQqJ,OAAO,KAAC1Y,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,QAAMD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,QAAOK,SAAE0a,EAAOtL,QAAQ4M,WAEvH3b,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAAM,yBAAuB0a,EAAOtL,QAAQqJ,UAGhD,IACX,EAEMwD,EAAqB,SAACvB,GACxB,IAAQwB,EAAyBxB,EAAzBwB,YAAa9M,EAAYsL,EAAZtL,QACrB,OACI/O,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CACKkc,IAAe7b,EAAAA,EAAAA,MAAA,SAAAL,SAAA,EAAOD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,OAAOmc,EAAgB/M,MAAkB,WACpFgN,EAAmBhN,GAAS,oBAGjD,EAEMiN,EAA6B,SAACjN,GAA4B,OAAK/O,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAAM,mBAAiBoc,EAAmBhN,KAAgB,EAEzHkN,EAA6B,SAAClN,GAA4B,OAAK/O,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAAM,mBAAiBoc,EAAmBhN,KAAgB,EAEzHmN,EAA6B,SAACnN,GAA4B,OAAK/O,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAAM,cAAcpB,EAAAA,GAAY4d,UAAUpN,EAAQqN,OAAO,4BAA8B,EAEtJL,EAAqB,SAAChN,GACxB,IAAMnQ,EAASF,EAAAA,GAAW2d,WAAWtN,EAAQuH,MAAM,GAC7CgG,EAAM/d,EAAAA,GAAY4d,UAAUpN,EAAQqN,OAE1C,OACIpc,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CACKoP,EAAQqJ,OAAO,IAAExZ,EAAO,KAACc,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,QAAMD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,QAAOK,SAAE2c,MAGlG,EAEMC,EAA0B,SAACxN,GAC7B,OAAIA,EAAQyN,cAEJxc,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,SAAQK,SAAEoP,EAAQqJ,SAAc,KAAC1Y,EAAAA,EAAAA,KAAA,QAAAC,SAAM,mBAK5D,IACX,EAEM8c,EAAwB,SAACpC,GAAiC,OAC5Dra,EAAAA,EAAAA,MAAA,QAAAL,SAAA,CAEQ0a,EAAOtL,SACPsL,EAAOtL,QAAQ2N,WACfhd,EAAAA,EAAAA,KAACid,EAAAA,EAAe,IAEnBtC,EAAOwB,cAAe7b,EAAAA,EAAAA,MAAA,SAAAL,SAAA,EAAOD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,OAAOmc,EAAgBzB,EAAOtL,cAEnFsL,EAAOtL,QAAQqJ,SACjBpY,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CACK0a,EAAOtL,QAAQqJ,SACbiC,EAAOtL,QAAQhD,QAAS/L,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CAAE,KAACD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,QAAMD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,QAAOK,SAAEpB,EAAAA,GAAY4d,UAAU9B,EAAOtL,QAAQhD,YAAkB,KAC9IsO,EAAOtL,QAAQ6N,aAIxBvC,EAAOtL,QAAQqJ,QAAUiC,EAAOtL,QAAQ6N,WACvC,EAELC,EAAsB,SAAC9N,GAA4H,OACrJ/O,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,CACKoP,EAAQ2N,WAAYhd,EAAAA,EAAAA,KAACid,EAAAA,EAAe,KACrCjd,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,SAAQK,SAAEoP,EAAQqJ,SAAc,KAAC1Y,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,KAAIK,SAAC,MAAQ,OAE7EoP,EAAQ+N,OAAQpd,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,OAAMK,SAAC,UAEnCoP,EAAQ+N,OACT9c,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,QAAOK,SAAEpB,EAAAA,GAAY4d,UAAUpN,EAAQhD,SAEnDrC,EAAAA,GAAamN,SAAS9H,EAAQhD,QAC9BrC,EAAAA,GAAamN,SAAS9H,EAAQgO,SAC9Brd,EAAAA,EAAAA,KAACsd,EAAAA,EAAa,CACVC,cAAelO,EAAQhD,OAASgD,EAAQgO,MACxCG,cAAenO,EAAQhD,MACvBoR,qBAAqB,IAG5BpO,EAAQqO,OAAQ1d,EAAAA,EAAAA,KAAA,QAAAC,UAAOD,EAAAA,EAAAA,KAAC2d,EAAAA,EAAQ,MAChCtO,EAAQuO,QAAS5d,EAAAA,EAAAA,KAAA,QAAAC,UAAOD,EAAAA,EAAAA,KAAC6d,EAAAA,EAAS,WAG5C,EAEDzB,EAAkB,SAAC/M,GACrB,OAAQ0L,GAAcD,IAAgBa,EAAAA,EAAgBG,QAAWzM,EAAQyO,uBACnEzO,EAAQ0O,aAAY,GAAAhe,OACjBsP,EAAQ0O,aAAY,KAAAhe,OAAIsP,EAAQyO,uBAC7C,EAsCME,EACFrD,EAAOsD,aAAeC,EAAAA,EAAsBC,SAC3CxD,EAAOyD,qBACNzD,EAAOtL,QAAQ2N,SAEfqB,EAAoBna,IAAW,kBAAmB,CACpD,uBAAwByW,EAAOwB,cAAgBxB,EAAOyD,kBACtD,aAAczD,EAAOwB,YACrB,mBAAoBxB,EAAOyD,oBAGzBE,EAtMsB,SAAC3D,GACzB,OAAQA,EAAOsD,YACX,KAAKC,EAAAA,EAAsBK,UAAW,OAAOve,EAAAA,EAAAA,KAAA,QAAAC,SAAM,mBACnD,KAAKie,EAAAA,EAAsBM,QAAS,OAAOxe,EAAAA,EAAAA,KAAA,QAAAC,SAAM,+CACjD,KAAKie,EAAAA,EAAsBO,iBAC3B,KAAKP,EAAAA,EAAsBQ,UAC3B,KAAKR,EAAAA,EAAsBC,OAAQ,OAAOhB,EAAoBxC,EAAOtL,SACrE,KAAK6O,EAAAA,EAAsBS,eAC3B,KAAKT,EAAAA,EAAsBU,cAAe,OAAO7B,EAAsBpC,GACvE,KAAKuD,EAAAA,EAAsBW,WAAY,OAAOhC,EAAwBlC,EAAOtL,SAC7E,KAAK6O,EAAAA,EAAsBY,eAAgB,OAAO5C,EAAmBvB,GACrE,KAAKuD,EAAAA,EAAsBa,cAAe,OAAOzC,EAA2B3B,EAAOtL,SACnF,KAAK6O,EAAAA,EAAsBc,cAAe,OAAOzC,EAA2B5B,EAAOtL,SACnF,KAAK6O,EAAAA,EAAsBe,cAAe,OAAOzC,EAA2B7B,EAAOtL,SACnF,KAAK6O,EAAAA,EAAsBgB,sBAAuB,OAAOlf,EAAAA,EAAAA,KAAA,QAAAC,SAAM,qBAC/D,KAAKie,EAAAA,EAAsBiB,SAAU,OAAOnf,EAAAA,EAAAA,KAAA,QAAAC,SAAM,mBAClD,KAAKie,EAAAA,EAAsBkB,SAAU,OAAOpf,EAAAA,EAAAA,KAAA,QAAAC,SAAM,kBAClD,KAAKie,EAAAA,EAAsBmB,yBAA0B,OAAOrf,EAAAA,EAAAA,KAAA,QAAAC,SAAM,oBAClE,KAAKie,EAAAA,EAAsBoB,uBAAwB,OAAO9D,IAC1D,KAAK0C,EAAAA,EAAsBqB,uBAAwB,OAAOxD,IAC1D,KAAKmC,EAAAA,EAAsBsB,UAAW,OAAOxD,EAAoBrB,GACjE,QAAS,OAAO,KAExB,CA+KgB8E,CAAoB9E,GAEpC,OACI3a,EAAAA,EAAAA,KAAA,OAAK0f,IAAKzE,EAAUrb,UAAWye,EAAkBpe,SAEzCqe,IACAhe,EAAAA,EAAAA,MAAA,OAAKV,UAAU,kBAAiBK,SAAA,CAC3B+d,IAAiB1d,EAAAA,EAAAA,MAAA,OAAKV,UAAU,eAAcK,SAAA,CAAE0a,EAAOtL,QAAQ2N,SAAS,sBAErErC,EAAOyD,oBACNJ,IACD1d,EAAAA,EAAAA,MAAA,OAAKV,UAAU,eAAcK,SAAA,CACxB0a,EAAOgF,YAAchF,EAAOgF,YAAYzc,KA1CjC,SAACyX,GAC7B,IAAAiF,EAAkEjF,EAAOtL,QAAjEwQ,EAASD,EAATC,UAAWC,EAAIF,EAAJE,KAAM/B,EAAY6B,EAAZ7B,aAAcD,EAAsB8B,EAAtB9B,uBACjCiC,EAAcF,GAAaC,GAAQ/B,EAEzC,OAAKgC,EAIDjF,IAAgBa,EAAAA,EAAgBG,MACzBiE,EAGPjC,EACM,GAAN/d,OAAUggB,EAAW,KAAAhgB,OAAI+d,QAD7B,EAPW,EAWf,CA0BwEkC,CAAwBrF,GAEpEA,EAAOyD,oBACPpe,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,SAAQK,SACnB0a,EAAOgF,YAAchF,EAAOgF,YAAYG,KA/DzC,SAACnF,GAC7B,IAAAsF,EAAuDtF,EAAOtL,QAAtDyO,EAAsBmC,EAAtBnC,uBAAwBgC,EAAIG,EAAJH,KAAM/B,EAAYkC,EAAZlC,aAChCmC,EAAcJ,GAAQ/B,EAE5B,OAAKmC,EAIDpF,IAAgBa,EAAAA,EAAgBG,MACzBoE,EAEPA,GAAepC,EACT,GAAN/d,OAAUmgB,EAAW,KAAAngB,OAAI+d,QAD7B,EANW,EAUf,CAgDgFqC,CAAwBxF,SAKxFra,EAAAA,EAAAA,MAAA,OAAKV,UAAU,kBAAiBK,SAAA,EAC1B0a,EAAOR,QAAUQ,EAAOyD,oBAAqBpe,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,oBAE/DU,EAAAA,EAAAA,MAAA,OAAKV,UAAU,cAAaK,SAAA,EACxBD,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,kBAAiBK,SAC5Bqe,KAELte,EAAAA,EAAAA,KAAA,QAAMJ,UAAU,eAAcK,SAAEmgB,IAAOzF,EAAO0F,aAAaC,QAAQlU,OAAOzN,EAAAA,GAAU4hB,wBAOhH,E,4CCpQMC,EAAc,SAAAC,GAAA,SAAAD,IAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAA,KAAAH,GAAA,QAAAI,EAAA/Z,UAAA0D,OAAAsW,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAla,UAAAka,GAiKf,OAjKeL,GAAAM,EAAAA,EAAAA,GAAA,KAAAR,EAAA,GAAAzgB,OAAA8gB,KAChBI,qBAAuB,GAAEP,EACzBQ,aAAe,GAAER,EACjBS,yBAA2B,EAACT,EAC5Bhf,MAAQ,CACJ0f,8BAA+B,MAClCV,EAEDW,kBAAoB,WACgC,MAA5CX,EAAKhf,MAAM0f,+BAAsE,MAA7BV,EAAKY,uBACzDZ,EAAKO,qBAAuB,GAC5BP,EAAKQ,aAAe,GACpBR,EAAKS,wBAA0BT,EAAKa,4BACpCb,EAAKc,SAAS,CAAEJ,8BAA+BV,EAAKY,qBAAqBlG,0BAEjF,EAACsF,EAEDe,mBAAqB,SAACC,GAClB,GAAIhB,EAAKS,wBAA0B,EAAG,CAClC,IAAMQ,EAAkBD,EAAUjf,QAAQuX,SAAW,IAC9B0G,EAAKkB,MAAMnf,QAAQuX,SAAW,IAClCzP,SAAWoX,EAAgBpX,SAC1CmW,EAAKS,wBAA0BT,EAAKa,4BAE5C,CACJ,EAACb,EAEDa,0BAA4B,WACxB,OAAOb,EAAKkB,MAAMnf,QAAQuX,SAAW0G,EAAKkB,MAAMnf,QAAQuX,QAAQ6H,WAAU,SAAAlhB,GAAC,OAAKA,EAAEwZ,MAAM,GAC5F,EAACuG,EAEDoB,sBAAwB,SAAA9W,GAAC,OAAI0V,EAAKc,SAAS,CAAEJ,8BAA+BpW,EAAE0C,OAAO0N,yBAA2B,EAADsF,EAE/GqB,kBAAoB,SAAAC,GACXtB,EAAKO,qBAAqB7W,MAAK,SAAA6X,GAAC,OAAIA,IAAMD,CAAY,KACtDtB,EAAKQ,aAAa9W,MAAK,SAAA6X,GAAC,OAAIA,IAAMD,CAAY,MAC/CtB,EAAKO,qBAAqB1hB,KAAKyiB,GAC/BE,YAAW,kBAAMxB,EAAKyB,gBAAgBH,EAAa,GAAE,KAE7D,EAACtB,EAEDyB,gBAAkB,SAAA5G,GAC0E,IAAD6G,EAAnF1B,EAAKO,qBAAqBP,EAAKO,qBAAqB1W,OAAS,KAAOgR,KACpE6G,EAAA1B,EAAKQ,cAAa3hB,KAAIqH,MAAAwb,GAAAzV,EAAAA,EAAAA,GAAI+T,EAAKO,uBAC/BP,EAAKkB,MAAMzc,SAASmV,EAAAA,IAAmB+H,0BAA0B3B,EAAKO,uBACtEP,EAAKO,qBAAuB,GAEpC,EAACP,EAED4B,uBAAyB,SAAA3H,GAAM,OAAIA,EAAOsD,aAAeC,EAAAA,EAAsBW,aAAelE,EAAOtL,QAAQyN,YAAa,EAAD4D,EAEzH6B,mBAAqB,kBACjBjiB,EAAAA,EAAAA,MAAA,OAAKV,UAAU,8BAA6BK,SAAA,EACxCD,EAAAA,EAAAA,KAACwiB,EAAAA,EAAQ,CAACtf,KAAK,aAAa2N,MAAO,IAAKC,OAAQ,OAChD9Q,EAAAA,EAAAA,KAAA,KAAAC,SAAG,8CACD,EAAAygB,EAEV+B,kBAAoB,SAAA1I,GAChB,IAAM2I,EAAkB3I,EAAe3P,MAAK,SAAAzJ,GAAC,OAAIA,EAAEwZ,MAAM,IACnDwI,EAAgBC,EAAAA,GACjBC,QACG9I,GACA,SAAAY,GAAM,OAAIyF,IAAOzF,EAAO0F,aACnByC,QAAQ,OACR1W,OAAOzN,EAAAA,GAAUokB,gBAAgB,IAG9C,OAAOjC,MACFkC,KAAKL,GAAe,SAAAtlB,GAAA,IAAA0S,GAAAjN,EAAAA,EAAAA,GAAAzF,EAAA,GAAY,MAAO,CAAEyO,IAAhBiE,EAAA,GAAqB1D,MAAd0D,EAAA,GAAqB,IACrDtQ,KAAI,SAAAwjB,GAAK,OAAIvC,EAAKwC,kBAAkBD,EAAOP,EAAgB,GACpE,EAAChC,EAEDwC,kBAAoB,SAACD,EAAOP,GACxB,IAAM1e,EAAS,GAyBf,OAvBAA,EAAOzE,KAAKmhB,EAAKyC,WAAWF,EAAMnX,MAClC9H,EAAOzE,KAAK0jB,EAAM5W,MAAM5M,KAAI,SAACkb,EAAQyI,GACjC,IAAMC,EACFX,GACAhC,EAAKS,yBAA2B,GAChCT,EAAKkB,MAAMnf,QAAQuX,QAAQsJ,QAAQ3I,KAAY+F,EAAKS,0BACnDT,EAAK4B,uBAAuB3H,GAEjC,OACIra,EAAAA,EAAAA,MAAA,OAAiBV,UAAU,YAAWK,SAAA,CACjCojB,GAA0B3C,EAAK6C,4BAChCvjB,EAAAA,EAAAA,KAAC0a,EAAO,CACJC,OAAQA,EACRC,oBAAqB8F,EAAKhf,MAAM0f,8BAChCpG,QAAS0F,EAAKkB,MAAM5G,QACpBF,YAAa4F,EAAKkB,MAAM9G,YACxBD,OAAQ6F,EAAKqB,kBACbhH,WAAY2F,EAAKkB,MAAM7G,eARrBqI,EAYlB,KAEOpf,CACX,EAAC0c,EAEDyC,WAAa,SAAAK,GACT,IAAI3e,EAAO2e,EAELC,EAAOrD,IAAOoD,EAAW7kB,EAAAA,GAAUokB,iBACnCW,EAAQ,IAAIC,KAQlB,OANIF,EAAKG,OAAOF,EAAO,OACnB7e,EAAO,QACA4e,EAAKI,QAAQC,IAAI,EAAG,QAAQF,OAAOF,EAAO,SACjD7e,EAAO,cAGJ7E,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,uBAAsBK,SAAkB4E,GAAZ2e,EACtD,EAAC9C,EAED6C,yBAA2B,kBACvBvjB,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,uBAAsBK,UACjCD,EAAAA,EAAAA,KAAA,QAAAC,SAAM,0BACJ,EAAAygB,EAEVqD,cAAgB,SAAAthB,GACZ,IAAMuhB,IAAoBvhB,EAAQuX,QAAQzP,OAE1C,OACIjK,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAN,SAAA,EACID,EAAAA,EAAAA,KAAA,OAAAC,SAAM+jB,GAAmBtD,EAAK+B,kBAAkBhgB,EAAQuX,YACtDgK,GAAmBtD,EAAK6B,uBAGtC,EAAC7B,EAEDuD,OAAS,WACL,IAAQxhB,EAAYie,EAAKkB,MAAjBnf,QAER,OAAKA,EAAQ4X,QAIR5X,EAAQuX,SAKTha,EAAAA,EAAAA,KAAA,OACIJ,UAAU,kBACV8f,IAAK,SAAAwE,GAAI,OAAIxD,EAAKY,qBAAuB4C,CAAI,EAC7CC,SAAUzD,EAAKoB,sBAAsB7hB,UAErCK,EAAAA,EAAAA,MAACJ,EAAAA,EAAS,CAACE,YAAYoB,EAAAA,EAAAA,IAAaiB,EAAQ3E,cAAcmC,SAAA,EACtDD,EAAAA,EAAAA,KAACwa,EAAAA,EAAO,CAAClX,MAAOA,EAAAA,GAAMsP,SAAS3S,SAC1BygB,EAAKqD,cAActhB,MAExBzC,EAAAA,EAAAA,KAACwa,EAAAA,EAAO,CAAClX,MAAOA,EAAAA,GAAMiT,KAAKtW,UACvBD,EAAAA,EAAAA,KAACokB,EAAAA,EAAY,CAACC,aAAc/gB,EAAAA,GAAM4W,mBAAmBja,SAChDygB,EAAKqD,cAActhB,aAf7BzC,EAAAA,EAAAA,KAACE,EAAAA,EAAS,CAACE,YAAY,IAJvB,IAyBf,EAACsgB,CAAA,QAAA4D,EAAAA,EAAAA,GAAA9D,EAAAC,IAAA8D,EAAAA,EAAAA,GAAA/D,EAAA,CAjKe,CAAS5d,EAAAA,WAyKvB4hB,GAA0BC,EAAAA,EAAAA,KALR,SAAH5Q,GAAA,IAAMiG,EAAWjG,EAAXiG,YAAW,MAAQ,CAC1CgB,YAAahB,EAAYgB,YACzBrY,SAASiiB,EAAAA,EAAAA,IAAW5K,GACvB,GAE+B2K,CAAyBjE,E,6HC9KlD,SAASmE,EAAmBtnB,GAAsE,IAAnE2d,EAAO3d,EAAP2d,QAASD,EAAU1d,EAAV0d,WACrC5V,GAAWoD,EAAAA,EAAAA,KACXmQ,GAASjX,EAAAA,EAAAA,KAAY,SAACmjB,GAAe,OAAKA,EAAM9K,YAAYpB,MAAM,IAGxE,OAFgBjX,EAAAA,EAAAA,KAAY,SAACmjB,GAAe,OAAKA,EAAM9K,YAAYO,OAAO,KAIlEra,EAAAA,EAAAA,KAACyQ,EAAAA,GAAc,CACX7Q,UAAU,sBACVmM,MAAO2M,EAAM,aAAA3Y,OAAgB2Y,GAAW,UACxC3H,QAAS,WAAF,OAAQ5L,EAASmV,EAAAA,IAAmBC,aAAY,GAAO,EAACta,UAE/DD,EAAAA,EAAAA,KAACwgB,EAAAA,EAAc,CACXxF,QAASA,EACTD,WAAYA,MAMrB,IACX,C","sources":["components/blotter/TradeAllocationTableRows.tsx","components/blotter/TradeBookedCheckbox.tsx","components/blotter/VconCheckbox.tsx","components/blotter/settlement-account/template/TemplateListItem.tsx","components/blotter/settlement-account/template/TemplateList.tsx","components/blotter/settlement-account/template/useTemplateDelete.ts","components/blotter/settlement-account/template/useTemplateActiveChange.ts","components/blotter/settlement-account/template/TemplateEdit.tsx","components/blotter/settlement-account/template/TradeAllocationTemplatePanel.tsx","components/blotter/settlement-account/BlotterSettlementAccount.tsx","components/blotter/settlement-account/TradeAllocationButton.tsx","components/blotter/settlement-account/TradeAllocationPopup.tsx","components/blotter/settlement-account/template/TradeAllocationTemplateButton.tsx","components/bwic-history/HistoryButton.tsx","components/bwic-history/Message.tsx","components/bwic-history/MessageHistory.jsx","components/bwic-history/MessageHistoryPanel.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { TableColumnStickType } from '../bidding/common/table/types/TableColumnStickType';\r\nimport { useTradeAllocation } from '../../effects/data-accessors/useTradeAllocation';\r\nimport { Preloader } from '../common';\r\nimport { formatUtils, isRequestSuccess, moneyUtils } from '../../utils';\r\nimport { StickyTableRow } from '../bidding/common/table/sticky/StickyTableRow';\r\nimport { IColumnDefinition } from '../bidding/common/table/types/ColumnDefinition';\r\nimport { TradeAllocationItem } from '../../types/trade-allocation/TradeAllocationItem';\r\nimport { ColumnBuilder } from '../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { SecurityListHeader } from '../bidding/common';\r\nimport { constants } from '../../constants';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\n\r\ninterface Props {\r\n tradeId: string;\r\n columnType: TableColumnStickType;\r\n collapseLevel: number;\r\n side: TradeSide;\r\n}\r\n\r\nexport function TradeAllocationTableRows({ tradeId, columnType, collapseLevel, side }: Props) {\r\n const { requestState, tradeAllocationItems } = useTradeAllocation(tradeId, columnType !== TableColumnStickType.Middle);\r\n\r\n const columnDefinitions: IColumnDefinition[] =\r\n columnType === TableColumnStickType.Right\r\n ? [{\r\n columnKey: 'action',\r\n renderColumnHeaderContent: () => null,\r\n renderColumnContent: () => null,\r\n headerClassName: \"\",\r\n bodyClassName: \"\"\r\n }]\r\n : [{\r\n columnKey: \"settlementAccout\",\r\n renderColumnHeaderContent: () => \"Settlement Account\",\r\n renderColumnContent: item => item.settlementAccount.accountName,\r\n headerClassName: \"data-list-cell-xxl\",\r\n bodyClassName: \"data-list-cell-xxl\"\r\n },{\r\n columnKey: \"miraeAccount\",\r\n renderColumnHeaderContent: () => \"Mirae Acc #\",\r\n renderColumnContent: item => item.settlementAccount.miraeAcc ? item.settlementAccount.miraeAcc : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\"\r\n }, {\r\n columnKey: \"percentOfTrade\",\r\n renderColumnHeaderContent: () => \"% of Trade\",\r\n renderColumnContent: item => formatUtils.formatDecimal(item.percent),\r\n headerClassName: \"text-right\",\r\n bodyClassName: \"text-right\"\r\n }, {\r\n columnKey: \"amountOfTrade\",\r\n renderColumnHeaderContent: () => \"Amount of Trade\",\r\n renderColumnContent: item => moneyUtils.money(item.amount, true, 3),\r\n headerClassName: \"data-list-cell-md text-right\",\r\n bodyClassName: \"data-list-cell-md text-right\"\r\n }\r\n ];\r\n\r\n if (side === TradeSide.Sell && columnType === TableColumnStickType.Middle) {\r\n const proceeds: IColumnDefinition = {\r\n columnKey: \"proceeds\",\r\n renderColumnHeaderContent: () => \"Proceeds\",\r\n renderColumnContent: item => item.proceed ? moneyUtils.money(item.proceed, true, 3) : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\"\r\n };\r\n\r\n columnDefinitions.push(proceeds);\r\n }\r\n\r\n const columns = columnDefinitions.map(c => new ColumnBuilder(c));\r\n const className = cn({ [`collapsed-content-level-${collapseLevel}`]: true });\r\n\r\n return (\r\n
\r\n \r\n {\r\n isRequestSuccess(requestState) &&\r\n <>\r\n \r\n {columns.map(c => c.renderHeader())}\r\n \r\n {\r\n tradeAllocationItems\r\n .filter(a => a.side === side)\r\n .map(a =>\r\n \r\n )\r\n }\r\n \r\n }\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Checkbox } from '../controls/Checkbox';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\nimport { Preloader } from '../common/Preloader';\r\n\r\ninterface Props {\r\n onClick: (tradeId: string, isBuyTrade: boolean, value: boolean) => void;\r\n bookedBuy: boolean;\r\n bookedSell: boolean;\r\n tradeSide: TradeSide;\r\n tradeId: string;\r\n}\r\n\r\nexport const TradeBookedCheckbox: React.FC = ({ onClick, tradeId, tradeSide, bookedSell, bookedBuy }) => {\r\n const isBuyTrade = tradeSide === TradeSide.Buy;\r\n const isRequesting = useSelector((state: AppState) => state.blotter.requestStatusSetBooked[`${tradeId}_${isBuyTrade}`]);\r\n\r\n const handleClick = () => {\r\n if (!isRequesting) {\r\n onClick(tradeId, tradeSide === TradeSide.Buy, isBuyTrade ? !bookedBuy : !bookedSell)\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n","import React from 'react';\r\nimport { Checkbox } from '../controls/Checkbox';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\nimport { Preloader } from '../common/Preloader';\r\n\r\ninterface Props {\r\n vconBuy: boolean;\r\n vconSell: boolean;\r\n tradeSide: TradeSide;\r\n onClick: (tradeId: string, isBuyTrade: boolean, value: boolean) => void;\r\n tradeId: string;\r\n}\r\n\r\nexport const VconCheckbox: React.FC = ({ onClick, tradeId, vconBuy, vconSell, tradeSide }) => {\r\n const isBuyTrade = tradeSide === TradeSide.Buy;\r\n const isRequesting = useSelector((state: AppState) => state.blotter.requestStatusSetVcon[`${tradeId}_${isBuyTrade}`]);\r\n\r\n const handleClick = () => {\r\n if (!isRequesting) {\r\n onClick(tradeId, isBuyTrade, isBuyTrade ? !vconBuy : !vconSell)\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n","import * as React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport cn from 'classnames';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport {\r\n PercentTradeAllocationTemplateItem,\r\n RatingTradeAllocationTemplateItem,\r\n TradeAllocationTemplateItem\r\n} from '../../../../types/trade-allocation/template/TradeAllocationTemplateItem';\r\nimport { tradeAllocationTypeTitle } from '../../../../types/trade-allocation/TradeAllocationType';\r\nimport ContextMenu from '../../../controls/ContextMenu';\r\nimport { ContextMenuItem } from '../../../controls/ContextMenuItem';\r\nimport { formatUtils } from '../../../../utils/format.utils';\r\nimport { LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { Confirm } from '../../../alerts';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { roles } from '../../../../constants';\r\n\r\ninterface Props {\r\n template: TradeAllocationTemplate;\r\n disabled: boolean;\r\n onActiveChange: (temaplteId: number, active: boolean, lock: Date) => void;\r\n onDelete: (temaplteId: number) => void;\r\n}\r\n\r\nexport function TemplateListItem({ template, disabled, onActiveChange, onDelete }: Props) {\r\n const history = useHistory();\r\n const [deleteConfirmationVisible, setDeleteConfirmationVisible] = React.useState(false);\r\n\r\n const formatValue = (item: TradeAllocationTemplateItem) => {\r\n if ((item as PercentTradeAllocationTemplateItem).percent) {\r\n return formatUtils.formatDecimal((item as PercentTradeAllocationTemplateItem).percent) + '%';\r\n } else if ((item as RatingTradeAllocationTemplateItem).rating) {\r\n return (item as RatingTradeAllocationTemplateItem).rating;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

{template.name}

\r\n
\r\n {template.active && Active}\r\n \r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder()\r\n .panel(PanelType.Templates, { editTemplateId: template.id })\r\n .result()\r\n })}\r\n >\r\n Edit\r\n \r\n {\r\n template.active &&\r\n onActiveChange(template.id, false, template.lock)}\r\n >\r\n Deactivate\r\n \r\n }\r\n {\r\n !template.active &&\r\n onActiveChange(template.id, true, template.lock)}\r\n >\r\n Activate\r\n \r\n }\r\n setDeleteConfirmationVisible(true)}\r\n >\r\n Delete\r\n \r\n \r\n
\r\n
\r\n
\r\n {tradeAllocationTypeTitle[template.type]}\r\n
\r\n
    \r\n {\r\n template.items.map(i =>\r\n
  • \r\n \r\n {i.settlementAccount.accountName}\r\n \r\n {formatValue(i)}\r\n
  • \r\n )\r\n }\r\n
\r\n {\r\n deleteConfirmationVisible &&\r\n Would you like to remove {template.name} template?}\r\n onConfirm={() => {\r\n setDeleteConfirmationVisible(false);\r\n onDelete(template.id);\r\n }}\r\n onCancel={() => setDeleteConfirmationVisible(false)}\r\n />\r\n }\r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { TemplateListItem } from './TemplateListItem';\r\nimport { useTempateActiveChange } from './useTemplateActiveChange';\r\nimport { useTempateDelete } from './useTemplateDelete';\r\nimport { isRequesting } from '../../../../utils/request-state.utils';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nexport function TemplateList({ templates }: Props) {\r\n const { deleteRequestState, onDelete } = useTempateDelete();\r\n const { activateRequestState, onActiveChange } = useTempateActiveChange();\r\n\r\n return (\r\n
\r\n {\r\n templates.map(t =>\r\n \r\n )\r\n }\r\n
\r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { tradeAllocationTemplateActions } from '../../../../actions/trade-allocation-template.actions';\r\nimport { RequestState } from \"../../../../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../../../../services/trade-allocation-template.service';\r\nimport { errorActions } from '../../../../actions/error.actions';\r\n\r\nexport function useTempateDelete() {\r\n const dispatch = useDispatch();\r\n const [requestState, setRequestState] = React.useState(RequestState.none);\r\n\r\n const onDelete = async (templateId: number) => {\r\n try {\r\n setRequestState(RequestState.request);\r\n await tradeAllocationTemplateService.deleteTemplate(templateId);\r\n setRequestState(RequestState.success);\r\n dispatch(tradeAllocationTemplateActions.deleteTemplate(templateId));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n setRequestState(RequestState.failure);\r\n }\r\n };\r\n\r\n return { deleteRequestState: requestState, onDelete };\r\n}\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { tradeAllocationTemplateActions } from '../../../../actions/trade-allocation-template.actions';\r\nimport { notificationActions } from '../../../../actions/notification.actions';\r\nimport { errorMessages } from '../../../../constants/error.messages';\r\nimport { RequestState } from \"../../../../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../../../../services/trade-allocation-template.service';\r\nimport { errorActions } from '../../../../actions/error.actions';\r\n\r\nexport function useTempateActiveChange() {\r\n const dispatch = useDispatch();\r\n const [requestState, setRequestState] = React.useState(RequestState.none);\r\n\r\n const onActiveChange = async (templateId: number, active: boolean, lock: Date) => {\r\n try {\r\n setRequestState(RequestState.request);\r\n const updates = await tradeAllocationTemplateService.setTemplateActive(templateId, active, lock);\r\n setRequestState(RequestState.success);\r\n\r\n const activated = updates.find(t => t.active);\r\n const deactivated = updates.find(t => !t.active);\r\n\r\n dispatch(tradeAllocationTemplateActions.activeChange(activated, deactivated));\r\n } catch (e) {\r\n setRequestState(RequestState.failure);\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n \"Can't activate Trade Allocation Template\",\r\n true\r\n )\r\n );\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n };\r\n\r\n return { activateRequestState: requestState, onActiveChange };\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { sumBy, values } from 'lodash';\r\nimport cn from 'classnames';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { Grid } from '../../../grid/Grid';\r\nimport RouteLeavingGuard from '../../../routing/RouteLeavingGuard';\r\nimport { RadioButton } from '../../../controls/RadioButton';\r\nimport { TradeAllocationType } from '../../../../types/trade-allocation/TradeAllocationType';\r\nimport { useSelector } from 'react-redux';\r\nimport { gridActions } from '../../../../actions';\r\nimport { errorMessages, gridColumns, constants } from '../../../../constants';\r\nimport { Ratings } from '../../../../types/enums/Rating';\r\nimport {\r\n EditTradeAllocationTemplateItem,\r\n PercentTradeAllocationTemplateItem,\r\n RatingTradeAllocationTemplateItem,\r\n TradeAllocationTemplateItem\r\n} from '../../../../types/trade-allocation/template/TradeAllocationTemplateItem';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { GridColumn, GridDataItem } from '../../../../types/state/GridState';\r\nimport { formatUtils, isRequesting, isRequestSuccess, numericUtils, stringUtils } from '../../../../utils';\r\nimport { FormFieldLabel } from '../../../forms';\r\nimport { SettlementAccount } from '../../../../types/settlement/SettlementAccount';\r\nimport { blotterTradeAllocationTemplateActions } from '../../../../actions/blotter-trade-allocation-template.actions';\r\nimport { FormError } from '../../../controls';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { StatusMessageSection } from '../../../status-message/StatusMessageSection';\r\nimport { StatusMessageSectionType } from '../../../../types/state/NotificationState';\r\nimport { Location } from 'history';\r\nimport { useAppDispatch } from '../../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n template?: TradeAllocationTemplate;\r\n settlementAccounts: SettlementAccount[];\r\n existTemplateNames: string[];\r\n}\r\n\r\nexport function TemplateEdit({ template, existTemplateNames, settlementAccounts }: Props) {\r\n const history = useHistory();\r\n const dispatch = useAppDispatch();\r\n\r\n const dataItems: GridDataItem[] = useSelector((s: AppState) => s.grid.dataItems);\r\n const saveRequestState = useSelector((s: AppState) => s.blotter.tradeAllocationTemplate.saveRequestState);\r\n\r\n const [editTemplateName, setEditTemplateName] = React.useState(template?.name ?? '');\r\n const [editTemplateNameError, setEditTemplateNameError] = React.useState('');\r\n const [editTempateType, setEditTemplateType] = React.useState(template?.type ?? TradeAllocationType.PercentOfTrade);\r\n const [percentError, setPercentError] = React.useState(false);\r\n\r\n const editDataItems = dataItems.filter(i => !i.draft);\r\n const percent = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? sumBy(editDataItems, i => numericUtils.numberOrDefault(i.percent))\r\n : 100;\r\n const hasErrors =\r\n percentError ||\r\n Boolean(editTemplateNameError) ||\r\n editDataItems.some(i => i.errors && values(i.errors).length);\r\n\r\n const hasChanges = () => {\r\n const isChangedOrRemoved = (\r\n original: TradeAllocationTemplateItem,\r\n edit?: EditTradeAllocationTemplateItem) => {\r\n if (!edit) return true;\r\n\r\n return (\r\n original.settlementAccount.id !== Number(edit.settlementAccountId) || (\r\n editTempateType === TradeAllocationType.PercentOfTrade &&\r\n (original as PercentTradeAllocationTemplateItem).percent !== Number(edit.percent)\r\n ) || (\r\n editTempateType === TradeAllocationType.CreditRatings &&\r\n (original as RatingTradeAllocationTemplateItem).rating !== edit.rating\r\n )\r\n );\r\n }\r\n\r\n return (\r\n editTemplateName.trim() !== (template?.name ?? '') ||\r\n editTempateType !== (template?.type ?? TradeAllocationType.PercentOfTrade) ||\r\n editDataItems.length !== (template?.items.length ?? 0) ||\r\n editDataItems.some(i => !i.id) ||\r\n (template?.items ?? []).some(i => isChangedOrRemoved(i, editDataItems.find(e => e.id === i.id)))\r\n );\r\n }\r\n\r\n const validateTemplateName = (name: string) => {\r\n if (stringUtils.isNullOrWhiteSpace(name)) {\r\n return errorMessages.empty;\r\n } else if (existTemplateNames.some(n => n === name.trim())) {\r\n return \"Template with the same name already exists\";\r\n }\r\n\r\n return '';\r\n }\r\n\r\n const saveDisabled =\r\n hasErrors ||\r\n stringUtils.isNullOrWhiteSpace(editTemplateName) ||\r\n !editDataItems.length ||\r\n isRequesting(saveRequestState) ||\r\n !hasChanges() || (\r\n editTempateType === TradeAllocationType.CreditRatings &&\r\n !editDataItems.some(i => i.settlementAccountId)\r\n );\r\n\r\n React.useEffect(() => {\r\n if (percentError && percent === 100) {\r\n setPercentError(false);\r\n }\r\n }, [percent, percentError]);\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n dispatch(gridActions.reset());\r\n }\r\n }, [dispatch])\r\n\r\n React.useEffect(() => {\r\n const settlementAccount: GridColumn = {\r\n ...gridColumns.settlementAccount,\r\n type: \"select\",\r\n selectSourceItemsCallback: () => settlementAccounts.map(a => ({\r\n key: a.id, title: a.accountName\r\n }))\r\n };\r\n\r\n const columns: GridColumn[] = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? [settlementAccount, { ...gridColumns.percentOfTrade, type: 'number' }]\r\n : [\r\n { ...settlementAccount, unique: false, required: false, keepEmptyOption: true, format: (value?: number | string) => value ? String(value) : constants.emptyPlaceholder },\r\n { ...gridColumns.rating, type: 'select', readonly: true, required: false, disabledSort: true, title: 'Rtg' }\r\n ];\r\n const rowLimit = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? 20\r\n : Ratings.length;\r\n\r\n let dataItems: EditTradeAllocationTemplateItem[] = [];\r\n\r\n if (editTempateType === TradeAllocationType.PercentOfTrade &&\r\n template &&\r\n template.type === TradeAllocationType.PercentOfTrade) {\r\n dataItems.push(\r\n ...template.items.map(i => ({\r\n id: i.id,\r\n settlementAccountId: i.settlementAccount.id,\r\n percent: (i as PercentTradeAllocationTemplateItem).percent\r\n }))\r\n );\r\n } else if (editTempateType === TradeAllocationType.CreditRatings) {\r\n dataItems.push(...Ratings.map(rating => ({\r\n settlementAccountId: template?.type === TradeAllocationType.CreditRatings\r\n ? template?.items.find(ti => (ti as RatingTradeAllocationTemplateItem).rating === rating)?.settlementAccount.id\r\n : undefined,\r\n rating\r\n })));\r\n }\r\n\r\n dispatch(gridActions.reset());\r\n dispatch(gridActions.init(dataItems, columns, rowLimit));\r\n\r\n }, [editTempateType, template, settlementAccounts, dispatch]);\r\n\r\n const handleNameChange = (e: React.ChangeEvent) => {\r\n setEditTemplateName(e.target.value);\r\n if (editTemplateNameError) {\r\n const error = validateTemplateName(e.target.value);\r\n setEditTemplateNameError(error);\r\n }\r\n };\r\n\r\n const handleCancel = () => {\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder().panel(PanelType.Templates).result()\r\n });\r\n };\r\n\r\n const handleSave = (activate: boolean) => {\r\n const nameError = validateTemplateName(editTemplateName);\r\n setEditTemplateNameError(nameError);\r\n\r\n dispatch(gridActions.validate());\r\n\r\n const percentError = percent !== 100;\r\n setPercentError(percentError);\r\n\r\n if (!nameError && !percentError) {\r\n dispatch(\r\n blotterTradeAllocationTemplateActions.save(\r\n template?.id ?? 0,\r\n editTemplateName,\r\n editTempateType,\r\n activate,\r\n template?.lock\r\n ));\r\n };\r\n }\r\n\r\n const renderGridFooter = () => {\r\n if (editTempateType === TradeAllocationType.PercentOfTrade) {\r\n return (\r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {formatUtils.formatDecimal(percent, 2)}% / 100%\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n setEditTemplateType(TradeAllocationType.PercentOfTrade)}\r\n />\r\n setEditTemplateType(TradeAllocationType.CreditRatings)}\r\n />\r\n
\r\n
\r\n \r\n {\r\n percentError &&\r\n \r\n Entered total % of trade should equal 100.\r\n \r\n }\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n handleSave(false)}\r\n >\r\n Save\r\n \r\n handleSave(true)}\r\n >\r\n Save & activate\r\n \r\n
\r\n \r\n history.replace({ pathname, search, state })\r\n }\r\n shouldBlockNavigation={(nextLocation: Location>) => {\r\n return (\r\n !isRequesting(saveRequestState) &&\r\n !isRequestSuccess(saveRequestState) && !(\r\n nextLocation?.state?.panel?.type === PanelType.Templates &&\r\n nextLocation?.state?.panel?.payload?.editTemplateId === (template?.id ?? 0)\r\n ) &&\r\n hasChanges()\r\n )\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import * as React from 'react'\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { RightSidePanel } from '../../../controls/RightSidePanel';\r\nimport { EmptyPlaceholder } from '../../../common/EmptyPlaceholder';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { TemplateList } from './TemplateList';\r\nimport { TemplateEdit } from './TemplateEdit';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { blotterTradeAllocationTemplateActions } from '../../../../actions/blotter-trade-allocation-template.actions';\r\nimport { isRequesting, isRequestSuccess } from '../../../../utils';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { useSettlementAccounts } from '../../../../effects/data-accessors/useSettlementAccounts';\r\nimport IconSVG from \"../../../../styles/svg-icons\";\r\nimport { FeatureButton } from '../../../access/FeatureButton';\r\nimport { RoleActionBlocker } from '../../../access/RoleActionBlocker';\r\nimport { roles } from '../../../../constants/roles';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nconst minSettlementAccounts = 2;\r\nconst maxTemplates = 20;\r\n\r\nexport function TradeAllocationTemplatePanel({ templates }: Props) {\r\n const locationState = useLocation>().state;\r\n\r\n if (locationState?.panel?.type !== PanelType.Templates) return null;\r\n\r\n return \r\n}\r\n\r\nfunction TradeAllocationTemplatePanelContent({ templates, editTemplateId }: Props & { editTemplateId?: number }) {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const savingState = useSelector((s: AppState) => s.blotter.tradeAllocationTemplate.saveRequestState);\r\n const { settlementAccounts, settlementAccountsRequestState } = useSettlementAccounts(false);\r\n\r\n const isCreate = editTemplateId === 0;\r\n const isEdit = Boolean(editTemplateId);\r\n const editTemplate = isEdit ? templates.find(t => t.id === editTemplateId) : undefined;\r\n\r\n const notEnoughSettlementAccounts =\r\n !isRequestSuccess(settlementAccountsRequestState) ||\r\n settlementAccounts.length < minSettlementAccounts;\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n dispatch(blotterTradeAllocationTemplateActions.resetPanelState());\r\n };\r\n }, [dispatch]);\r\n\r\n\r\n const handleClose = () => {\r\n if (!isRequesting(savingState)) {\r\n history.replace({ ...history.location, state: undefined });\r\n }\r\n }\r\n\r\n const renderTitle = () => {\r\n return (\r\n <>\r\n Allocation Templates\r\n \r\n \r\n \r\n = maxTemplates\r\n }\r\n onClick={() => history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder<{ editTemplateId?: number }>()\r\n .panel(PanelType.Templates, { editTemplateId: 0 })\r\n .result()\r\n })}\r\n >\r\n \r\n Template\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n !templates.length &&\r\n editTemplateId == null &&\r\n \r\n }\r\n\r\n {!isCreate && !isEdit && templates.length > 0 && }\r\n {\r\n (isCreate || isEdit) &&\r\n t.id !== editTemplateId)\r\n .map(t => t.name)\r\n }\r\n />\r\n }\r\n \r\n );\r\n}\r\n","import { useHistory, useLocation } from 'react-router';\r\nimport { SettlementAccountsView } from '../../settlement/SettlementAccountsView';\r\nimport { routes } from '../../../constants/routes';\r\nimport { SettlementAccountView } from '../../settlement/view/SettlementAccountView';\r\nimport { LocationState, PanelType } from '../../../types/state/ui/LocationState';\r\nimport { TradeAllocationTemplate } from '../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { TradeAllocationTemplatePanel } from './template/TradeAllocationTemplatePanel';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nexport function BlotterSettlementAccount({ templates }: Props) {\r\n const history = useHistory();\r\n const locationState = useLocation().state;\r\n const templatePanelState = locationState?.panel?.type === PanelType.Templates\r\n ? locationState\r\n : undefined;\r\n\r\n\r\n return (\r\n {\r\n const path = routes.blotterSettlementAccountDetailsUrl(account.id);\r\n replace ? history.replace(path, templatePanelState) : history.push(path, templatePanelState);\r\n }}\r\n\r\n >\r\n {\r\n (activeSettlementAccount) => {\r\n return (\r\n <>\r\n {\r\n activeSettlementAccount &&\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n }\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport cn from \"classnames\";\r\nimport { TradeSettlementStatus } from '../../../types/settlement/TradeSettlementStatus';\r\nimport { user } from '../../../user';\r\nimport { roles, routes } from '../../../constants';\r\nimport { Confirm } from '../../alerts';\r\nimport { SettlementAccount } from '../../../types/settlement/SettlementAccount';\r\nimport { notificationActions } from '../../../actions';\r\nimport { BlotterSearchResult } from '../../../types/blotter/BlotterSearchResult';\r\nimport { LocationState, LocationStateBuilder, PanelType, PopupType } from '../../../types/state/ui/LocationState';\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\nimport { FeatureButton } from '../../access/FeatureButton';\r\nimport { ContextMenu } from '../../controls';\r\nimport { ContextMenuItem } from '../../controls/ContextMenuItem';\r\nimport { TradeSide } from '../../../types/trades/TradeSide';\r\nimport { TradeAllocationPopupLocationPayload } from './TradeAllocationPopup';\r\nimport { CompanySlim } from '../../../types/company/CompanySlim';\r\nimport { RoleActionBlocker } from '../../access/RoleActionBlocker';\r\n\r\ninterface Props {\r\n trade: BlotterSearchResult;\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nexport function TradeAllocationButton({ trade, settlementAccounts }: Props) {\r\n const history = useHistory>();\r\n\r\n const handleClick = (companyId: number, side: TradeSide) => {\r\n let locationStateBuilder = new LocationStateBuilder(history.location.state)\r\n .popup(\r\n PopupType.TradeAllocationPopup,\r\n { tradeAllocationTradeId: trade.tradeId, companyId, side }\r\n );\r\n\r\n const isTemplatePanelEdit =\r\n history.location.state?.panel?.type === PanelType.Templates &&\r\n history.location.state?.panel?.payload?.editTemplateId != null;\r\n\r\n if (isTemplatePanelEdit) {\r\n // Reset TradeAllocationPanel edit state\r\n locationStateBuilder.panel(history.location.state!.panel!.type);\r\n }\r\n\r\n history.replace({ ...history.location, state: undefined }, locationStateBuilder.result());\r\n }\r\n\r\n return user.hasRoles(...roles.seller())\r\n ? \r\n : \r\n}\r\n\r\ninterface RoleTradeAllocationButtonProps extends Props {\r\n onClick: (companyId: number, side: TradeSide) => void;\r\n}\r\n\r\nfunction SellerTradeAllocationButton({ trade, settlementAccounts, onClick }: RoleTradeAllocationButtonProps) {\r\n const dispatch = useDispatch();\r\n const settlementStatus = trade.directBuyerCompany ? trade.buyerSettlementStatus : trade.sellerSettlementStatus\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n const companyId: number = user.current()!.companyId;\r\n const accounts = settlementAccounts.filter(a => a.assetManager.id === companyId);\r\n\r\n if (accounts.length) {\r\n const side = trade.directBuyerCompany ? TradeSide.Sell : TradeSide.Buy;\r\n onClick(companyId, side);\r\n } else {\r\n dispatch(notificationActions.warningModal(\r\n \"Settlement Account is not created\",\r\n `You don’t have any settlement accounts yet. Please contact ${trade.counterparty.name} company for more details.`\r\n ));\r\n }\r\n }\r\n\r\n const renderButton = () => {\r\n switch (settlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n case TradeSettlementStatus.PendingProceeds:\r\n case TradeSettlementStatus.PendingSettlement:\r\n return (\r\n \r\n \r\n Allocation\r\n \r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {renderButton()}\r\n \r\n );\r\n}\r\n\r\nfunction DealerTradeAllocationButton({ trade, settlementAccounts, onClick }: RoleTradeAllocationButtonProps) {\r\n const history = useHistory>();\r\n const [noSettlementAccountCompany, setNoSettlementAccountCompany] = React.useState();\r\n const [expanded, setExpanded] = React.useState(false);\r\n const isClearingBank = user.current()?.isClearingBank;\r\n\r\n const handleClick = (side: TradeSide) => {\r\n const company = side === TradeSide.Sell\r\n ? trade.directBuyerCompany!\r\n : trade.counterparty;\r\n\r\n const accounts = settlementAccounts.filter(a => a.assetManager.id === company.id);\r\n\r\n if (accounts.length) {\r\n onClick(company.id, side);\r\n } else {\r\n setNoSettlementAccountCompany(company);\r\n }\r\n }\r\n\r\n const getSellTradeText = () => {\r\n switch (trade.buyerSettlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n return \"Add Allocation for Sell Trade\";\r\n case TradeSettlementStatus.PendingSettlement:\r\n return \"Edit Allocation for Sell Trade\";\r\n case TradeSettlementStatus.PendingProceeds:\r\n return \"Add Proceeds for Sell Trade\";\r\n default: return '';\r\n }\r\n }\r\n\r\n const getBuyTradeText = () => {\r\n switch (trade.sellerSettlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n return \"Add Allocation for Buy Trade\";\r\n case TradeSettlementStatus.PendingSettlement:\r\n return \"Edit Allocation for Buy Trade\";\r\n case TradeSettlementStatus.PendingProceeds:\r\n return \"Add Proceeds for Buy Trade\";\r\n default: return '';\r\n }\r\n }\r\n\r\n const sellText = getSellTradeText();\r\n const buyText = getBuyTradeText();\r\n\r\n if (!sellText && !buyText) return null;\r\n\r\n return (\r\n <>\r\n setExpanded(true)}\r\n onHide={() => setExpanded(false)}\r\n customTargetComponent={\r\n \r\n \r\n Allocation\r\n \r\n \r\n }\r\n >\r\n { e.stopPropagation(); handleClick(TradeSide.Buy) }}\r\n >\r\n {buyText}\r\n \r\n { e.stopPropagation(); handleClick(TradeSide.Sell) }}\r\n >\r\n {sellText}\r\n \r\n \r\n {\r\n noSettlementAccountCompany != null &&\r\n
) => e.stopPropagation()}>\r\n Client {noSettlementAccountCompany.name} doesn't have any settlement accounts yet. Would you like to create?}\r\n confirmButtonText=\"Create\"\r\n onConfirm={() => history.push(routes.createClientsSettlementAccountUrl(noSettlementAccountCompany.id))}\r\n onCancel={() => setNoSettlementAccountCompany(undefined)}\r\n />\r\n
\r\n }\r\n \r\n )\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useSelector } from 'react-redux';\r\nimport { sumBy, values } from 'lodash';\r\nimport { useTradeAllocation } from '../../../effects/data-accessors/useTradeAllocation';\r\nimport Popup from '../../controls/Popup';\r\nimport { PopupBody } from '../../controls/PopupBody';\r\nimport { PopupFooter } from '../../controls/PopupFooter';\r\nimport { Preloader } from '../../common/Preloader';\r\nimport { isRequestSuccess, isRequesting } from '../../../utils/request-state.utils';\r\nimport { gridActions } from '../../../actions/grid.actions';\r\nimport { gridColumns } from '../../../constants/grid.columns';\r\nimport { GridColumn, GridDataItem } from '../../../types/state/GridState';\r\nimport { EditTradeAllocationItem } from '../../../types/state/entities/TradeAllocationState';\r\nimport { AppState } from '../../../types/state/AppState';\r\nimport { TradeAllocationItem } from '../../../types/trade-allocation/TradeAllocationItem';\r\nimport { Grid } from '../../grid/Grid';\r\nimport { BlotterSearchResult } from '../../../types/blotter/BlotterSearchResult';\r\nimport { moneyUtils } from '../../../utils/money.utils';\r\nimport { numericUtils } from '../../../utils/numeric.utils';\r\nimport { UnsavedChangesPopup } from '../../routing/UnsavedChangesPopup'\r\nimport RouteLeavingGuard from '../../routing/RouteLeavingGuard';\r\nimport { blotterTradeAllocationActions } from '../../../actions/blotter-trade-allocation.actions';\r\nimport { SettlementAccount } from '../../../types/settlement/SettlementAccount';\r\nimport { user } from '../../../user';\r\nimport { roles } from '../../../constants';\r\nimport { formatUtils } from '../../../utils';\r\nimport { LocationState, LocationStateBuilder, PopupType } from '../../../types/state/ui/LocationState';\r\nimport { StatusMessageSection } from '../../status-message/StatusMessageSection';\r\nimport { StatusMessageSectionType } from '../../../types/state/NotificationState';\r\nimport { TradeSettlementStatus } from '../../../types/settlement/TradeSettlementStatus';\r\nimport { TradeSide } from '../../../types/trades/TradeSide';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nexport type TradeAllocationPopupLocationPayload = {\r\n tradeAllocationTradeId: string;\r\n side: TradeSide;\r\n companyId: number;\r\n}\r\n\r\nexport function TradeAllocationPopup({ settlementAccounts }: Props) {\r\n const locationState = useLocation>().state;\r\n const trade = useSelector((s: AppState) =>\r\n locationState?.popup?.type === PopupType.TradeAllocationPopup &&\r\n locationState?.popup?.payload?.tradeAllocationTradeId &&\r\n s.blotter.securities.find(t => t.tradeId === locationState?.popup?.payload?.tradeAllocationTradeId)\r\n );\r\n\r\n if (!trade || !locationState?.popup?.payload?.companyId || !locationState?.popup?.payload?.side) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n a.assetManager.id === locationState!.popup!.payload!.companyId)}\r\n />\r\n );\r\n}\r\n\r\ninterface ContentProps {\r\n side: TradeSide;\r\n trade: BlotterSearchResult;\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nconst TOTAL_TRADE_AMOUNT_ERROR = 'Entered amounts of trade should be equal to the total traded amount'\r\nconst TOTAL_TRADE_PERCENT_ERROR = 'The sum of all percentages of trade should be equal 100%.'\r\n\r\nfunction TradeAllocationPopupContent({ trade, settlementAccounts, side }: ContentProps) {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n\r\n const [unsavedChangesAlertVisible, setUnsavedChangesAlertVisible] = React.useState(false);\r\n const [amountError, setAmountError] = React.useState(false);\r\n\r\n const tradeAllocationState = useTradeAllocation(trade.tradeId);\r\n const requestState = tradeAllocationState.requestState;\r\n const tradeAllocationItems = React.useMemo(\r\n () => tradeAllocationState.tradeAllocationItems.filter(i => i.side === side),\r\n [side, tradeAllocationState]\r\n );\r\n\r\n const gridMountedKey = useSelector((s: AppState) => s.grid.mountedKey);\r\n const saveTradeAllocationRequestState = useSelector((s: AppState) => s.blotter.requestStateSaveTradeAllocation);\r\n const dataItems = useSelector((s: AppState) => s.grid.dataItems);\r\n\r\n const editTradeAllocationItems: GridDataItem[] = React.useMemo(() => dataItems.filter(i => !i.draft), [dataItems]);\r\n const hasErrors = React.useMemo(() => editTradeAllocationItems.some(i => i.errors && values(i.errors).length), [editTradeAllocationItems]);\r\n const isSeller = user.hasRoles(...roles.seller());\r\n const isBd = user.hasRoles(...roles.bd());\r\n const isProceedsVisible = side === TradeSide.Sell;\r\n const requesting = isRequesting(saveTradeAllocationRequestState) || isRequesting(requestState);\r\n const { percent, amount, proceeds } = React.useMemo(() => {\r\n const percent = sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.percent));\r\n const amount = sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.amount));\r\n const proceeds =\r\n isProceedsVisible\r\n ? sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.proceed))\r\n : 0;\r\n\r\n return {\r\n percent: numericUtils.round(percent, 2),\r\n amount: numericUtils.round(amount, 3),\r\n proceeds: numericUtils.round(proceeds, 3)\r\n };\r\n }, [editTradeAllocationItems, isProceedsVisible]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (amountError && amount === trade.size) {\r\n setAmountError(false);\r\n }\r\n }, [trade, amount, amountError]);\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n // reset when on mount\r\n dispatch(blotterTradeAllocationActions.resetPopupState());\r\n dispatch(gridActions.reset());\r\n };\r\n }, [dispatch]);\r\n\r\n React.useEffect(() => {\r\n // Initialize Grid\r\n if (isRequestSuccess(requestState) && !gridMountedKey) {\r\n const isTotalTradeAllocationValid = (dataItems: GridDataItem[]) => {\r\n const amount = sumBy(dataItems, i => numericUtils.numberOrDefault(i.amount));\r\n return amount === trade.size\r\n }\r\n\r\n const settlementAccountColumn: GridColumn = {\r\n ...gridColumns.settlementAccount as GridColumn,\r\n selectSourceItemsCallback: () => settlementAccounts.map(a => ({\r\n key: a.id, title: a.accountName\r\n }))\r\n };\r\n const percentOfTradeColumn: GridColumn = {\r\n ...gridColumns.percentOfTrade as GridColumn,\r\n validate: (value, __, dataItems: GridDataItem[]) => {\r\n if (\r\n !numericUtils.isNumber(value) ||\r\n +value < gridColumns.percentOfTrade.min ||\r\n +value > gridColumns.percentOfTrade.max\r\n ) {\r\n return ''\r\n }\r\n return isTotalTradeAllocationValid(dataItems)\r\n ? \"\"\r\n : TOTAL_TRADE_PERCENT_ERROR\r\n },\r\n updateDependencyColumnsCallback: (rowIndex: number) => {\r\n dispatch(blotterTradeAllocationActions.recalculateAmountOfTrade(rowIndex, trade.tradeId));\r\n return { type: 'AMOUNT_CHANGED' };\r\n }\r\n };\r\n const amountOfTradeColumn: GridColumn = {\r\n ...gridColumns.amountOfTrade as GridColumn,\r\n validate: (_, __, dataItems: GridDataItem[]) => {\r\n return isTotalTradeAllocationValid(dataItems)\r\n ? \"\"\r\n : TOTAL_TRADE_AMOUNT_ERROR\r\n },\r\n updateDependencyColumnsCallback: (rowIndex: number) => {\r\n dispatch(blotterTradeAllocationActions.recalculatePercentOfTrade(rowIndex, trade.tradeId));\r\n return { type: 'PERCENT_CHANGED' };\r\n }\r\n };\r\n const columns = [settlementAccountColumn, percentOfTradeColumn, amountOfTradeColumn];\r\n\r\n if (isProceedsVisible) {\r\n const proceedsColumn: GridColumn = {\r\n ...gridColumns.proceeds as GridColumn,\r\n readonly: isSeller\r\n };\r\n\r\n columns.push(proceedsColumn);\r\n }\r\n\r\n const rowLimit = 20;\r\n\r\n const editItems: EditTradeAllocationItem[] = tradeAllocationItems.map(i => ({\r\n id: i.id,\r\n settlementAccountId: i.settlementAccount.id,\r\n percent: i.percent,\r\n amount: i.amount,\r\n proceed: i.proceed\r\n }));\r\n dispatch(gridActions.init(editItems, columns, rowLimit));\r\n }\r\n }, [requestState, tradeAllocationItems, trade, settlementAccounts, gridMountedKey, isSeller, isProceedsVisible, dispatch]);\r\n\r\n const hasChanges = () => {\r\n const isChangedOrRemoved = (original: TradeAllocationItem, edit?: EditTradeAllocationItem) => {\r\n if (!edit) return true;\r\n\r\n const originProceed = original.proceed == null ? -1 : original.proceed;\r\n const editProceed = edit.proceed == null || edit.proceed === '' ? -1 : Number(edit.proceed);\r\n\r\n return (\r\n original.amount !== moneyUtils.parse(String(edit.amount)) ||\r\n original.percent !== Number(edit.percent) ||\r\n originProceed !== editProceed ||\r\n original.settlementAccount.id !== edit.settlementAccountId\r\n );\r\n }\r\n\r\n return (\r\n tradeAllocationItems.length !== editTradeAllocationItems.length ||\r\n editTradeAllocationItems.some(i => !i.id) || // new items added\r\n tradeAllocationItems.some(i => isChangedOrRemoved(i, editTradeAllocationItems.find(e => e.id === i.id)))\r\n );\r\n }\r\n\r\n const canSaveUnchanged = () => {\r\n const settlementStatus = side === TradeSide.Buy ? trade.sellerSettlementStatus : trade.buyerSettlementStatus;\r\n if (isBd && settlementStatus === TradeSettlementStatus.PendingProceeds) {\r\n return true;\r\n }\r\n\r\n return hasChanges();\r\n }\r\n\r\n const handleSave = () => {\r\n if (amount !== trade.size) {\r\n setAmountError(true);\r\n dispatch(gridActions.validate());\r\n } else {\r\n dispatch(blotterTradeAllocationActions.save(trade.tradeId, trade.allocationLock, side));\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n if (!requesting) {\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder(history.location.state).resetPopup().result()\r\n });\r\n }\r\n }\r\n\r\n const renderTitle = () =>\r\n

\r\n Trade Allocation\r\n {trade.ticker}\r\n

\r\n\r\n const renderGridFooter = React.useCallback(() => {\r\n return (\r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n {formatUtils.formatDecimal(percent, 2)}% / 100.00%\r\n \r\n \r\n {moneyUtils.money(amount, true, 3)} / {moneyUtils.money(trade.size, true, 3)}\r\n \r\n {\r\n isProceedsVisible &&\r\n {moneyUtils.money(proceeds, true, 3)}\r\n }\r\n \r\n \r\n );\r\n }, [percent, amount, proceeds, isProceedsVisible, trade]);\r\n\r\n return (\r\n <>\r\n {\r\n unsavedChangesAlertVisible &&\r\n setUnsavedChangesAlertVisible(false)}\r\n />\r\n }\r\n \r\n history.replace({ pathname, search, state })\r\n }\r\n shouldBlockNavigation={() =>\r\n !isRequesting(saveTradeAllocationRequestState) &&\r\n !isRequestSuccess(saveTradeAllocationRequestState) &&\r\n hasChanges()\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n amountError &&\r\n \r\n
  • {TOTAL_TRADE_AMOUNT_ERROR}
  • \r\n
  • {TOTAL_TRADE_PERCENT_ERROR}
  • \r\n
    \r\n }\r\n
    \r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport cn from 'classnames';\r\nimport { isRequestSuccess } from '../../../../utils/request-state.utils';\r\nimport { RequestState } from '../../../../constants/request-state';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { TooltipPlacement } from '../../../common/Tooltip';\r\nimport { useSettlementAccounts } from '../../../../effects/data-accessors/useSettlementAccounts';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n requestState: RequestState;\r\n onShow: (location: LocationState) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function TradeAllocationTemplateButton({ templates, requestState, onShow, disabled = false }: Props) {\r\n const minSettlementAccounts = 2;\r\n const history = useHistory();\r\n const locationState = useLocation().state;\r\n const activeTemplate = templates.find(t => t.active);\r\n const { settlementAccounts, settlementAccountsRequestState } = useSettlementAccounts(false);\r\n const isLoading = !isRequestSuccess(settlementAccountsRequestState) || !isRequestSuccess(requestState);\r\n const templatePanelState = locationState?.panel?.type === PanelType.Templates;\r\n\r\n const handleClick = () => {\r\n if (templatePanelState) {\r\n history.replace(history.location.pathname, undefined);\r\n } else {\r\n onShow(new LocationStateBuilder().panel(PanelType.Templates).result());\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n = minSettlementAccounts}\r\n placement={TooltipPlacement.BottomRight}\r\n wrapperClass=\"allocation-overlay-btn\"\r\n >\r\n \r\n Allocation Templates\r\n \r\n \r\n {!templates.length && No Templates}\r\n {!!templates.length && activeTemplate == null && No active templates}\r\n {!!templates.length && activeTemplate != null && {activeTemplate.name}}\r\n \r\n );\r\n}\r\n","import classNames from 'classnames';\r\nimport { useSelector } from 'react-redux';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport IconSVG from '../../styles/svg-icons';\r\nimport { FeatureButton } from '../access/FeatureButton';\r\nimport { ShowFor } from '../access';\r\nimport { roles } from '../../constants';\r\nimport { user } from '../../user';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { RoleActionBlocker } from '../access/RoleActionBlocker';\r\nimport { useAppDispatch } from '../../effects/useAppDispatch';\r\n\r\ninterface HistoryButtonProps {\r\n positionId?: number;\r\n ticker?: string;\r\n text?: string;\r\n unreadCountVisble?: boolean;\r\n disabled?: boolean;\r\n onClick?: (active: boolean) => void\r\n}\r\n\r\nexport function HistoryButton({ positionId, ticker = '', text = '', unreadCountVisble = true, disabled = false, onClick }: HistoryButtonProps) {\r\n const dispatch = useAppDispatch();\r\n const history = useSelector((s: AppState) => s.bwicHistory);\r\n const historyActions = (positionId ? history.actions?.filter(a => a.positionId === positionId) : history.actions) ?? [];\r\n const unreadCount =\r\n unreadCountVisble &&\r\n user.hasRoles(roles.SellerTrader, roles.BrokerDealerTrader) &&\r\n historyActions.filter(a => !a.isRead).length;\r\n const isActive = history.visible && history.positionId === positionId;\r\n\r\n function handleClick(e: React.MouseEvent) {\r\n dispatch(bwicHistoryActions.showHistory(!isActive, positionId, ticker));\r\n e.stopPropagation();\r\n onClick?.(!isActive);\r\n }\r\n\r\n function renderButton() {\r\n return (\r\n \r\n {text}\r\n {!!unreadCount && {unreadCount}}\r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {renderButton()}\r\n \r\n \r\n \r\n {renderButton()}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nHistoryButton.defaultProps = {\r\n positionId: null,\r\n onClick: null\r\n}","import React, { useEffect, useRef } from 'react';\r\nimport moment from 'moment';\r\nimport classNames from 'classnames';\r\nimport { constants } from '../../constants';\r\nimport { formatUtils, moneyUtils, numericUtils } from '../../utils';\r\nimport { BidLevelDelta } from '../common/bidding/BidLevelDelta';\r\nimport { BidOnBehalfIcon } from '../bidding/seller/bid-on-behalf/BidOnBehalfIcon';\r\nimport { BwicProcessType, Process } from '../../types/models/Process';\r\nimport { AxedIcon } from '../bidding/common/AxedIcon';\r\nimport { FinalIcon } from '../bidding/common/FinalIcon';\r\nimport { BwicVisitorType } from '../../types/state/BiddingState';\r\nimport { BwicHistoryActionSelector } from '../../selectors';\r\nimport { BwicHistoryActionType } from '../../types/bwic-history/BwicHisoryActionType';\r\n\r\ninterface MessageProps {\r\n action: BwicHistoryActionSelector;\r\n containerClientRect: DOMRect | null;\r\n onRead: (referenceName: string) => void;\r\n visitorType: BwicVisitorType;\r\n isAllToAll: boolean;\r\n process: Process;\r\n}\r\n\r\ninterface TradeDetailsPayload {\r\n size: number;\r\n price: number;\r\n ticker: string;\r\n}\r\n\r\nexport const Message = ({ action, containerClientRect, onRead, visitorType, isAllToAll, process }: MessageProps) => {\r\n const _message = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!action.isRead && containerClientRect != null && _message.current !== null) {\r\n const messageClientRect = _message.current.getBoundingClientRect();\r\n if (messageClientRect.top < containerClientRect.bottom) {\r\n onRead(action.referenceName);\r\n }\r\n }\r\n }, [action.isRead, action.referenceName, containerClientRect, onRead])\r\n\r\n const renderActionContent = (action: BwicHistoryActionSelector) => {\r\n switch (action.actionType) {\r\n case BwicHistoryActionType.Scheduled: return BWIC scheduled;\r\n case BwicHistoryActionType.Bidding: return BWIC opened, initial bid placement started;\r\n case BwicHistoryActionType.AxedFinalChanged:\r\n case BwicHistoryActionType.DirectBid:\r\n case BwicHistoryActionType.NewBid: return renderNewBidMessage(action.payload);\r\n case BwicHistoryActionType.DirectFeedback:\r\n case BwicHistoryActionType.QuickFeedback: return renderFeedbackMessage(action);\r\n case BwicHistoryActionType.TradedAway: return renderTradedAwayMessage(action.payload);\r\n case BwicHistoryActionType.TradeSubmitted: return renderTradeMessage(action);\r\n case BwicHistoryActionType.TradeAffirmed: return renderTradeAffirmedMessage(action.payload);\r\n case BwicHistoryActionType.TradeRejected: return renderTradeRejectedMessage(action.payload);\r\n case BwicHistoryActionType.TradeCanceled: return renderTradeCanceledMessage(action.payload)\r\n case BwicHistoryActionType.ColorDistributionSend: return BWIC color added;\r\n case BwicHistoryActionType.Finished: return BWIC completed;\r\n case BwicHistoryActionType.Canceled: return BWIC canceled;\r\n case BwicHistoryActionType.OpenBiddingStage1Started: return Stage 1 started;\r\n case BwicHistoryActionType.OpenBiddingStage1Ended: return renderStage1Ended();\r\n case BwicHistoryActionType.OpenBiddingStage2Ended: return renderStage2Ended();\r\n case BwicHistoryActionType.PriceTalk: return renderPxTalkMessage(action);\r\n default: return null;\r\n };\r\n };\r\n\r\n const renderStage1Ended = () => {\r\n let message = 'Stage 2 started';\r\n\r\n if (process?.type === BwicProcessType.BestFootForward) {\r\n if (visitorType === BwicVisitorType.Seller) {\r\n message = 'Bidding is finished. Please submit your trades';\r\n } else if (visitorType === BwicVisitorType.BrokerDealer || visitorType === BwicVisitorType.Buyer) {\r\n message = 'Bidding is completed. No bids are accepted';\r\n }\r\n }\r\n\r\n return {message}\r\n }\r\n\r\n const renderStage2Ended = () => {\r\n let message = 'Stage 2 ended';\r\n if (visitorType === BwicVisitorType.BrokerDealer || visitorType === BwicVisitorType.Buyer) {\r\n message = 'Bidding is completed. No bids are accepted';\r\n } else if (visitorType === BwicVisitorType.Seller) {\r\n message = 'Bidding is finished. Please submit your trades';\r\n }\r\n\r\n return {message};\r\n }\r\n\r\n const renderPxTalkMessage = (action: BwicHistoryActionSelector) => {\r\n if (action.payload) {\r\n if (action.payload.talk) {\r\n return Px Talk: {action.payload.ticker} @ {action.payload.talk}\r\n }\r\n return Px Talk removed for: {action.payload.ticker}\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const renderTradeMessage = (action: BwicHistoryActionSelector) => {\r\n const { isMyMessage, payload } = action;\r\n return (\r\n \r\n {isMyMessage && }\r\n Trading {formatTradeDetails(payload)}, please affirm\r\n \r\n );\r\n }\r\n\r\n const renderTradeAffirmedMessage = (payload: TradeDetailsPayload) => Trade affirmed: {formatTradeDetails(payload)}\r\n\r\n const renderTradeRejectedMessage = (payload: TradeDetailsPayload) => Trade rejected: {formatTradeDetails(payload)}\r\n\r\n const renderTradeCanceledMessage = (payload: TradeDetailsPayload) => Trade @ {formatUtils.formatBid(payload.price)} canceled automatically\r\n\r\n const formatTradeDetails = (payload: TradeDetailsPayload) => {\r\n const amount = moneyUtils.amountToMM(payload.size, true);\r\n const bid = formatUtils.formatBid(payload.price);\r\n\r\n return (\r\n <>\r\n {payload.ticker} {amount} @ {bid}\r\n \r\n )\r\n }\r\n\r\n const renderTradedAwayMessage = (payload: { ticker: string, isTradedAway: string }) => {\r\n if (payload.isTradedAway) {\r\n return (\r\n <>\r\n {payload.ticker} traded away\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const renderFeedbackMessage = (action: BwicHistoryActionSelector) =>\r\n \r\n {\r\n action.payload &&\r\n action.payload.onBehalf &&\r\n \r\n }\r\n {action.isMyMessage && }\r\n {\r\n !!action.payload.ticker &&\r\n <>\r\n {action.payload.ticker}\r\n {!!action.payload.value && <> @ {formatUtils.formatBid(action.payload.value)}}\r\n : {action.payload.feedback}\r\n \r\n\r\n }\r\n {!action.payload.ticker && action.payload.feedback}\r\n \r\n\r\n const renderNewBidMessage = (payload: { onBehalf: boolean, pass: boolean, axed: boolean, final: boolean, value?: number, delta?: number, ticker: string }) =>\r\n <>\r\n {payload.onBehalf && }\r\n {payload.ticker} @ \r\n\r\n {payload.pass && PASS}\r\n {\r\n !payload.pass &&\r\n <>\r\n {formatUtils.formatBid(payload.value)}\r\n {\r\n numericUtils.isNumber(payload.value) &&\r\n numericUtils.isNumber(payload.delta) &&\r\n \r\n }\r\n {payload.axed && {}}\r\n {payload.final && {}}\r\n \r\n }\r\n \r\n\r\n const getReceiverCode = (payload: { buyerPseudoOrderNumber?: number, receiverCode: string }) => {\r\n return (isAllToAll && visitorType === BwicVisitorType.Buyer) || !payload.buyerPseudoOrderNumber\r\n ? payload.receiverCode\r\n : `${payload.receiverCode}-${payload.buyerPseudoOrderNumber}`\r\n }\r\n\r\n const getDirectBidCompanyCode = (action: BwicHistoryActionSelector) => {\r\n const { buyerPseudoOrderNumber, code, receiverCode } = action.payload;\r\n const companyCode = code || receiverCode;\r\n\r\n if (!companyCode) {\r\n return '';\r\n }\r\n\r\n if (visitorType === BwicVisitorType.Buyer) {\r\n return companyCode;\r\n }\r\n if (companyCode && buyerPseudoOrderNumber) {\r\n return `${companyCode}-${buyerPseudoOrderNumber}`;\r\n }\r\n\r\n }\r\n\r\n const getDirectBidCompanyName = (action: BwicHistoryActionSelector) => {\r\n const { legalName, code, receiverCode, buyerPseudoOrderNumber } = action.payload;\r\n const companyName = legalName || code || receiverCode;\r\n\r\n if (!companyName) {\r\n return '';\r\n }\r\n\r\n if (visitorType === BwicVisitorType.Buyer) {\r\n return companyName;\r\n }\r\n\r\n if (buyerPseudoOrderNumber) {\r\n return `${companyName}-${buyerPseudoOrderNumber}`;\r\n }\r\n\r\n }\r\n\r\n\r\n const isBidOnBehalf =\r\n action.actionType === BwicHistoryActionType.NewBid &&\r\n !action.isResponseMessage &&\r\n !!action.payload.onBehalf;\r\n\r\n const messageCssClasses = classNames('history-message', {\r\n 'bwic-common-message': !action.isMyMessage && !action.isResponseMessage,\r\n 'my-message': action.isMyMessage,\r\n 'response-message': action.isResponseMessage\r\n });\r\n\r\n const content = renderActionContent(action);\r\n\r\n return (\r\n
    \r\n {\r\n content &&\r\n
    \r\n {isBidOnBehalf &&
    {action.payload.onBehalf} - Bid on behalf
    }\r\n {\r\n action.isResponseMessage &&\r\n !isBidOnBehalf &&\r\n
    \r\n {action.submittedBy ? action.submittedBy.name : getDirectBidCompanyName(action)}\r\n {\r\n action.isResponseMessage &&\r\n \r\n {action.submittedBy ? action.submittedBy.code : getDirectBidCompanyCode(action)}\r\n \r\n }\r\n
    \r\n }\r\n
    \r\n {!action.isRead && action.isResponseMessage && }\r\n\r\n
    \r\n \r\n {content}\r\n \r\n {moment(action.sentDateUtc).local().format(constants.timeFormat)}\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport ImageSVG from '../../styles/svg';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport { arrayUtils, isRequesting } from '../../utils';\r\nimport { constants, roles } from '../../constants';\r\nimport { Message } from './Message';\r\nimport { getHistory } from '../../selectors';\r\nimport { Preloader } from '../common';\r\nimport { ShowFor } from '../access';\r\nimport { BwicHistoryActionType } from '../../types/bwic-history/BwicHisoryActionType';\r\nimport { RequiredRole } from '../access/RequiredRole';\r\n\r\nclass MessageHistory extends React.Component {\r\n awaitingReadMessages = [];\r\n readMessages = [];\r\n firstUnreadMessageIndex = -1;\r\n state = {\r\n scrollableContainerClientRect: null\r\n }\r\n\r\n componentDidMount = () => {\r\n if (this.state.scrollableContainerClientRect == null && this._scrollableContainer != null) {\r\n this.awaitingReadMessages = [];\r\n this.readMessages = [];\r\n this.firstUnreadMessageIndex = this.getFirstUnreadActionIndex();\r\n this.setState({ scrollableContainerClientRect: this._scrollableContainer.getBoundingClientRect() });\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.firstUnreadMessageIndex < 0) {\r\n const previousActions = prevProps.history.actions || [];\r\n const currentActions = this.props.history.actions || [];\r\n if (currentActions.length !== previousActions.length) {\r\n this.firstUnreadMessageIndex = this.getFirstUnreadActionIndex();\r\n }\r\n }\r\n }\r\n\r\n getFirstUnreadActionIndex = () => {\r\n return this.props.history.actions && this.props.history.actions.findIndex(a => !a.isRead);\r\n }\r\n\r\n handleContainerScroll = e => this.setState({ scrollableContainerClientRect: e.target.getBoundingClientRect() });\r\n\r\n handleMessageRead = referencName => {\r\n if (!this.awaitingReadMessages.some(m => m === referencName) &&\r\n !this.readMessages.some(m => m === referencName)) {\r\n this.awaitingReadMessages.push(referencName);\r\n setTimeout(() => this.markMessageRead(referencName), 1000);\r\n }\r\n }\r\n\r\n markMessageRead = referenceName => {\r\n if (this.awaitingReadMessages[this.awaitingReadMessages.length - 1] === referenceName) {\r\n this.readMessages.push(...this.awaitingReadMessages);\r\n this.props.dispatch(bwicHistoryActions.markHistoryMessagesAsRead(this.awaitingReadMessages));\r\n this.awaitingReadMessages = [];\r\n }\r\n }\r\n\r\n isTradeAwayCancelation = action => action.actionType === BwicHistoryActionType.TradedAway && !action.payload.isTradedAway;\r\n\r\n renderEmptyContent = () =>\r\n
    \r\n \r\n

    BWIC message history will be shown here

    \r\n
    \r\n\r\n renderActionItems = historyActions => {\r\n const hasReadMessages = historyActions.some(a => a.isRead);\r\n const actionsByDate = arrayUtils\r\n .groupBy(\r\n historyActions,\r\n action => moment(action.sentDateUtc)\r\n .startOf('day')\r\n .format(constants.dateShortFormat)\r\n );\r\n\r\n return Array\r\n .from(actionsByDate, ([key, value]) => ({ key, value }))\r\n .map(group => this.renderActionGroup(group, hasReadMessages));\r\n }\r\n\r\n renderActionGroup = (group, hasReadMessages) => {\r\n const result = [];\r\n\r\n result.push(this.renderDate(group.key));\r\n result.push(group.value.map((action, index) => {\r\n const shouldRenderUnreadLine =\r\n hasReadMessages &&\r\n this.firstUnreadMessageIndex >= 0 &&\r\n this.props.history.actions.indexOf(action) === this.firstUnreadMessageIndex &&\r\n !this.isTradeAwayCancelation(action);\r\n\r\n return (\r\n
    \r\n {shouldRenderUnreadLine && this.renderUnreadMessagesLine()}\r\n \r\n
    \r\n );\r\n }));\r\n\r\n return result;\r\n }\r\n\r\n renderDate = groupDate => {\r\n let text = groupDate;\r\n\r\n const date = moment(groupDate, constants.dateShortFormat);\r\n const today = new Date();\r\n\r\n if (date.isSame(today, 'day')) {\r\n text = 'Today';\r\n } else if (date.clone().add(1, 'days').isSame(today, 'day')) {\r\n text = 'Yesterday';\r\n }\r\n\r\n return
    {text}
    \r\n }\r\n\r\n renderUnreadMessagesLine = () =>\r\n
    \r\n Unread notifications\r\n
    \r\n\r\n renderContent = history => {\r\n const hasHistoryItems = !!history.actions.length;\r\n\r\n return (\r\n <>\r\n
    {hasHistoryItems && this.renderActionItems(history.actions)}
    \r\n {!hasHistoryItems && this.renderEmptyContent()}\r\n \r\n );\r\n }\r\n\r\n render = () => {\r\n const { history } = this.props;\r\n\r\n if (!history.visible) {\r\n return null;\r\n }\r\n\r\n if (!history.actions) {\r\n return \r\n }\r\n\r\n return (\r\n this._scrollableContainer = node}\r\n onScroll={this.handleContainerScroll}\r\n >\r\n \r\n \r\n {this.renderContent(history)}\r\n \r\n \r\n \r\n {this.renderContent(history)}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ bwicHistory }) => ({\r\n visitorType: bwicHistory.visitorType,\r\n history: getHistory(bwicHistory)\r\n});\r\n\r\nconst connectedMessageHistory = connect(mapStateToProps)(MessageHistory);\r\nexport { connectedMessageHistory as MessageHistory };\r\n","import { useSelector } from 'react-redux';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport { RightSidePanel } from '../controls';\r\nimport { MessageHistory } from './MessageHistory';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { Process } from '../../types/models/Process';\r\nimport { useAppDispatch } from '../../effects/useAppDispatch';\r\n\r\n\r\nexport function MessageHistoryPanel({ process, isAllToAll }: { process: Process, isAllToAll: boolean }) {\r\n const dispatch = useAppDispatch();\r\n const ticker = useSelector((store: AppState) => store.bwicHistory.ticker);\r\n const visible = useSelector((store: AppState) => store.bwicHistory.visible);\r\n\r\n if (visible) {\r\n return (\r\n dispatch(bwicHistoryActions.showHistory(false))}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n}\r\n"],"names":["TradeAllocationTableRows","_ref","tradeId","columnType","collapseLevel","side","_useTradeAllocation","useTradeAllocation","TableColumnStickType","Middle","requestState","tradeAllocationItems","columnDefinitions","Right","columnKey","renderColumnHeaderContent","renderColumnContent","headerClassName","bodyClassName","item","settlementAccount","accountName","miraeAcc","constants","emptyPlaceholder","formatUtils","formatDecimal","percent","moneyUtils","money","amount","TradeSide","Sell","proceeds","proceed","push","columns","map","c","ColumnBuilder","className","cn","_defineProperty","concat","_jsx","children","Preloader","small","inProgress","isRequestSuccess","_jsxs","_Fragment","SecurityListHeader","renderHeader","filter","a","StickyTableRow","rowKey","id","dataItem","context","TradeBookedCheckbox","onClick","tradeSide","bookedSell","bookedBuy","isBuyTrade","Buy","isRequesting","useSelector","state","blotter","requestStatusSetBooked","Checkbox","checked","onChange","VconCheckbox","vconBuy","vconSell","requestStatusSetVcon","TemplateListItem","template","disabled","onActiveChange","onDelete","history","useHistory","_React$useState","React","_React$useState2","_slicedToArray","deleteConfirmationVisible","setDeleteConfirmationVisible","active","name","ContextMenu","ContextMenuItem","requiredRoles","roles","SellerTrader","replace","_objectSpread","location","LocationStateBuilder","panel","PanelType","Templates","editTemplateId","result","lock","classNames","sectionBlock","tradeAllocationTypeTitle","type","items","i","OnHoverTooltip","wrapperClass","overlay","rating","Confirm","text","onConfirm","onCancel","TemplateList","templates","_useTempateDelete","dispatch","useDispatch","RequestState","none","setRequestState","_asyncToGenerator","_regeneratorRuntime","mark","_callee","templateId","wrap","_context","prev","next","request","tradeAllocationTemplateService","deleteTemplate","success","tradeAllocationTemplateActions","t0","errorActions","unexpectedError","failure","stop","_x","apply","arguments","deleteRequestState","useTempateDelete","_useTempateActiveChan","updates","activated","deactivated","setTemplateActive","sent","find","t","activeChange","status","notificationActions","notificationAddErrorMessageModal","errorMessages","refreshPage","_x2","_x3","activateRequestState","useTempateActiveChange","TemplateEdit","_template$name","_template$type","existTemplateNames","settlementAccounts","useAppDispatch","dataItems","s","grid","saveRequestState","tradeAllocationTemplate","editTemplateName","setEditTemplateName","_React$useState3","_React$useState4","editTemplateNameError","setEditTemplateNameError","_React$useState5","TradeAllocationType","PercentOfTrade","_React$useState6","editTempateType","setEditTemplateType","_React$useState7","_React$useState8","percentError","setPercentError","editDataItems","draft","sumBy","numericUtils","numberOrDefault","hasErrors","Boolean","some","errors","values","length","hasChanges","_template$name2","_template$type2","_template$items$lengt","_template$items","trim","original","edit","e","Number","settlementAccountId","CreditRatings","validateTemplateName","stringUtils","isNullOrWhiteSpace","empty","n","saveDisabled","gridActions","reset","gridColumns","selectSourceItemsCallback","key","title","percentOfTrade","unique","required","keepEmptyOption","format","value","String","readonly","disabledSort","rowLimit","Ratings","_toConsumableArray","_template$items$find","ti","undefined","init","handleSave","activate","nameError","validate","_template$id","blotterTradeAllocationTemplateActions","save","FormFieldLabel","maxLength","placeholder","target","error","FormError","message","RadioButton","label","Grid","dataUploadDisabled","deleteDisabled","addRowVisible","moveRowVisible","renderFooter","StatusMessageSection","StatusMessageSectionType","Error","RouteLeavingGuard","navigate","pathname","search","shouldBlockNavigation","nextLocation","_nextLocation$state","_nextLocation$state$p","_nextLocation$state2","_nextLocation$state2$","_nextLocation$state2$2","_template$id2","payload","minSettlementAccounts","maxTemplates","TradeAllocationTemplatePanel","_locationState$panel","_locationState$panel2","_locationState$panel3","locationState","useLocation","TradeAllocationTemplatePanelContent","_ref2","savingState","_useSettlementAccount","useSettlementAccounts","settlementAccountsRequestState","isCreate","isEdit","editTemplate","notEnoughSettlementAccounts","resetPanelState","RightSidePanel","RoleActionBlocker","FeatureButton","IconSVG","width","height","onClose","EmptyPlaceholder","textView","BlotterSettlementAccount","templatePanelState","SettlementAccountsView","onAccountChange","account","path","routes","blotterSettlementAccountDetailsUrl","activeSettlementAccount","SettlementAccountView","TradeAllocationButton","trade","handleClick","companyId","_history$location$sta","_history$location$sta2","_history$location$sta3","_history$location$sta4","_history$location$sta5","locationStateBuilder","popup","PopupType","TradeAllocationPopup","tradeAllocationTradeId","user","hasRoles","seller","SellerTradeAllocationButton","DealerTradeAllocationButton","settlementStatus","directBuyerCompany","buyerSettlementStatus","sellerSettlementStatus","stopPropagation","current","assetManager","warningModal","counterparty","TradeSettlementStatus","PendingAllocation","PendingProceeds","PendingSettlement","renderButton","_ref3","_user$current","noSettlementAccountCompany","setNoSettlementAccountCompany","expanded","setExpanded","isClearingBank","company","sellText","getSellTradeText","buyText","getBuyTradeText","onShow","onHide","customTargetComponent","confirmButtonText","createClientsSettlementAccountUrl","_locationState$popup6","_locationState$popup7","_locationState$popup8","_locationState$popup9","_locationState$popup","_locationState$popup2","_locationState$popup3","securities","_locationState$popup4","_locationState$popup5","TradeAllocationPopupContent","TOTAL_TRADE_AMOUNT_ERROR","TOTAL_TRADE_PERCENT_ERROR","unsavedChangesAlertVisible","setUnsavedChangesAlertVisible","amountError","setAmountError","tradeAllocationState","gridMountedKey","mountedKey","saveTradeAllocationRequestState","requestStateSaveTradeAllocation","editTradeAllocationItems","isSeller","isBd","bd","isProceedsVisible","requesting","_React$useMemo","round","size","blotterTradeAllocationActions","resetPopupState","isTotalTradeAllocationValid","settlementAccountColumn","percentOfTradeColumn","__","isNumber","min","max","updateDependencyColumnsCallback","rowIndex","recalculateAmountOfTrade","amountOfTradeColumn","amountOfTrade","_","recalculatePercentOfTrade","proceedsColumn","editItems","originProceed","editProceed","parse","isChangedOrRemoved","handleClose","resetPopup","renderGridFooter","UnsavedChangesPopup","Popup","modalClass","renderTitle","ticker","renderInBody","PopupBody","PopupFooter","canSaveUnchanged","allocationLock","TradeAllocationTemplateButton","_ref$disabled","activeTemplate","isLoading","placement","TooltipPlacement","BottomRight","HistoryButton","_history$actions","positionId","_ref$ticker","_ref$text","_ref$unreadCountVisbl","unreadCountVisble","bwicHistory","historyActions","actions","unreadCount","BrokerDealerTrader","isRead","isActive","visible","bwicHistoryActions","showHistory","ShowFor","defaultProps","Message","action","containerClientRect","onRead","visitorType","isAllToAll","process","_message","useRef","useEffect","getBoundingClientRect","top","bottom","referenceName","renderStage1Ended","BwicProcessType","BestFootForward","BwicVisitorType","Seller","BrokerDealer","Buyer","renderStage2Ended","renderPxTalkMessage","talk","renderTradeMessage","isMyMessage","getReceiverCode","formatTradeDetails","renderTradeAffirmedMessage","renderTradeRejectedMessage","renderTradeCanceledMessage","formatBid","price","amountToMM","bid","renderTradedAwayMessage","isTradedAway","renderFeedbackMessage","onBehalf","BidOnBehalfIcon","feedback","renderNewBidMessage","pass","delta","BidLevelDelta","currentLevel","updatedLevel","updatedLevelVisible","axed","AxedIcon","final","FinalIcon","buyerPseudoOrderNumber","receiverCode","isBidOnBehalf","actionType","BwicHistoryActionType","NewBid","isResponseMessage","messageCssClasses","content","Scheduled","Bidding","AxedFinalChanged","DirectBid","DirectFeedback","QuickFeedback","TradedAway","TradeSubmitted","TradeAffirmed","TradeRejected","TradeCanceled","ColorDistributionSend","Finished","Canceled","OpenBiddingStage1Started","OpenBiddingStage1Ended","OpenBiddingStage2Ended","PriceTalk","renderActionContent","ref","submittedBy","_action$payload2","legalName","code","companyName","getDirectBidCompanyName","_action$payload","companyCode","getDirectBidCompanyCode","moment","sentDateUtc","local","timeFormat","MessageHistory","_React$Component","_this","_classCallCheck","_len","args","Array","_key","_callSuper","awaitingReadMessages","readMessages","firstUnreadMessageIndex","scrollableContainerClientRect","componentDidMount","_scrollableContainer","getFirstUnreadActionIndex","setState","componentDidUpdate","prevProps","previousActions","props","findIndex","handleContainerScroll","handleMessageRead","referencName","m","setTimeout","markMessageRead","_this$readMessages","markHistoryMessagesAsRead","isTradeAwayCancelation","renderEmptyContent","ImageSVG","renderActionItems","hasReadMessages","actionsByDate","arrayUtils","groupBy","startOf","dateShortFormat","from","group","renderActionGroup","renderDate","index","shouldRenderUnreadLine","indexOf","renderUnreadMessagesLine","groupDate","date","today","Date","isSame","clone","add","renderContent","hasHistoryItems","render","node","onScroll","RequiredRole","requiredRole","_inherits","_createClass","connectedMessageHistory","connect","getHistory","MessageHistoryPanel","store"],"sourceRoot":""}