{"version":3,"file":"static/js/application.async.non-landing~9acf4d28.3be3cae0.chunk.js","mappings":"unBAKQA,EAAsCC,EAAAA,GAAAA,kC,wCCJvC,SAASC,EAAeC,GAC7B,IAAMC,GAASC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACVF,EAASG,IAAI,cAAY,IAC5BC,SAAU,KAGZJ,EAASK,QAAQ,aAAcJ,EAAUG,UACzCJ,EAASM,IAAI,CAAEL,UAAAA,IAAa,WAC1BD,EAASK,QAAQ,YAAaJ,EAAUG,SAC1C,GACF,C,6NCQaG,GAA4B,SAAAC,GAAA,SAAAD,IAAA,OAAAE,EAAAA,EAAAA,GAAA,KAAAF,IAAAG,EAAAA,EAAAA,GAAA,KAAAH,EAAAI,UAAA,QAAAC,EAAAA,EAAAA,GAAAL,EAAAC,IAAAK,EAAAA,EAAAA,GAAAN,EAAA,EAAAO,IAAA,cAAAC,MACvC,SAAWC,GAKP,IAJFC,EAAMD,EAANC,OACAC,EAAWF,EAAXE,YACAC,EAAaH,EAAbG,cACAC,EAAoBJ,EAApBI,qBAEMC,EAAcC,IAAAA,QACT,CAAEC,OAAO,IAEjBC,IAAIC,EAAAA,GACJD,IAAIE,EAAAA,YACJF,IAAIG,EAAAA,kBACJH,IAAII,EAAAA,mBACJJ,IAAIK,EAAAA,iBACJL,IAAIL,EAAcW,QAClBN,IAAIO,GAAAA,GACJP,IAAIJ,GACJI,IAAIQ,EAAAA,GACJR,IAAIS,EAAAA,GACJT,IAAIU,EAAAA,GACJV,IAAIW,EAAAA,GACJX,IAAIY,GAAAA,GACJZ,IAAIa,GAAAA,GACJb,IAAIc,GAAAA,GACJd,IAAIe,GAAAA,IAQP,OANKrB,EAAYsB,gBACfnB,EAAYG,IAAIiB,EAAAA,GAGlBC,KAAKC,KAAOtB,EAAYuB,OAAO3B,GAExByB,KAAKC,KAAK3C,QACnB,GAAC,CAAAc,IAAA,YAAAX,IAED,WACE,MAAO,6BACT,GAAC,CAAAW,IAAA,SAAAX,IAED,WAAc,IAAD0C,EAAA,KACX,MAAO,CACL,oEAAqE,SAAAC,GAAC,ODhDrE,SAA2BA,EAAG9C,GACnC,IAAM+C,EAAcD,EAAEE,OACd5C,EAAaJ,EAASG,IAAI,aAA1BC,SACFU,EAAMd,EAASiD,aAAaF,GAE9B3C,EAAS8C,SAASpC,KACpBiC,EAAYI,SAAU,EACtBpD,EAAeC,GAEnB,CCuCgFoD,CAAkBN,EAAGD,EAAKF,KAAK3C,SAAS,EAEtH,IAAC,CA5CsC,CAASqD,EAAAA,0B,6DCXrCC,GAAU,SAAAC,GACrB,SAAAD,EAAYE,GAAU,IAADX,EAEM,OAFNpC,EAAAA,EAAAA,GAAA,KAAA6C,IACnBT,GAAAnC,EAAAA,EAAAA,GAAA,KAAA4C,EAAA,CAAME,KACDC,KAAOD,EAAQC,KAAKZ,CAC3B,CAEA,OAAAjC,EAAAA,EAAAA,GAAA0C,EAAAC,IAAA1C,EAAAA,EAAAA,GAAAyC,EAAA,EAAAxC,IAAA,eAAAC,MACA,SAAa2C,GA4BX,IAAMC,EAAOC,IAAAA,MAEXA,IAAAA,QAAU,CAAClB,KAAKmB,SAAS/C,MACzB,CAAC,WAEH,OAAO8C,IAAAA,KAAOF,EAASC,EACzB,IAAC,CAzCoB,C,UAASG,0B,wBCLnBC,GAAqB,SAAAC,GAChC,SAAAD,EAAA/C,GAOI,IAAD6B,EANDY,EAAIzC,EAAJyC,KAAIQ,EAAAjD,EACJkD,iBACEC,QADc,IAAAF,EAEZ,CAAC,EAACA,GADJE,WAEFC,EAAKpD,EAALoD,MACAlD,EAAWF,EAAXE,YA0BmB,OA1BRT,EAAAA,EAAAA,GAAA,KAAAsD,IAEXlB,GAAAnC,EAAAA,EAAAA,GAAA,KAAAqD,EAAA,CAAM,CACJM,KAAM,+BACNC,MAAOC,eACPd,KAAAA,EACAI,SAAU,CAAC,KAAM,QACjBW,SAAU,OACVC,MAAO,WACPC,WAAY,SAACC,GACX,IACEnC,EAEEtB,EAFFsB,eAAcoC,EAEZ1D,EADF2D,QAGAC,QAHO,IAAAF,EAAG,CAAC,EAACA,GAGZE,sBAEFC,EAAqBX,EAAMY,OAAnBC,EAAGF,EAAHE,IAAKC,EAAGH,EAAHG,IAELC,GADUR,EAAVS,OACgB,CAAC,GAAjBD,GAER,QADgBL,GAA0BI,IAAQC,GAAQF,IAAQE,KAChD3C,CACpB,MAGG2B,WAAaA,EAClBtB,EAAKuB,MAAQA,EAAMvB,CACrB,CAAC,OAAAjC,EAAAA,EAAAA,GAAAmD,EAAAC,IAAAnD,EAAAA,EAAAA,GAAAkD,EAAA,EAAAjD,IAAA,WAAAC,MAED,SAAQsE,GAMJ,IAADC,EAAAD,EALDtE,MACEwE,EAAMD,EAANC,OACAJ,EAAEG,EAAFH,GACAK,EAAIF,EAAJE,KAIF,GAAID,EACF,OAAOA,EAAOE,KAIhB,IAAAC,EAA0BhD,KAAK0B,MAAMY,OAA7BW,EAAGD,EAAHC,IAAKV,EAAGS,EAAHT,IAAKC,EAAGQ,EAAHR,IACZU,EAAW,mDACXC,EAAY,eAAAC,OAAkBX,GAC9BY,EAAI,GAAAD,OAAMF,EAAQ,SAAAE,OAAQH,EAAG,SAAAG,OAAQb,EAAG,SAAAa,OAAQZ,EAAG,KAAAY,OAAID,GACvDJ,EAAOD,EAEb,OAAOQ,KAAa,CAClBJ,SAAAA,EAAUC,aAAAA,EAAcE,KAAAA,EAAMN,KAAAA,GAElC,GAAC,CAAA3E,IAAA,WAAAC,MAED,WACE,OAAO2B,KAAKyB,WAAU8B,MAAfvD,KAAI/B,UACb,IAAC,CA9D+B,CAAS2C,ICAnC4C,GAA6BpG,EAAAA,GAAAA,yBAExBqG,GAAqB,SAAAnC,GAChC,SAAAmC,EAAYC,GAAQ,OAAA3F,EAAAA,EAAAA,GAAA,KAAA0F,IAAAzF,EAAAA,EAAAA,GAAA,KAAAyF,EAAA,CACZ,CACJ9B,KAAM,kBACNC,MAAOC,oBACPd,KAAM2C,EAAO3C,KACbI,SAAU,OACVW,SAAU,OACV6B,OAAQ,uCAEZ,CAAC,OAAAzF,EAAAA,EAAAA,GAAAuF,EAAAnC,IAAAnD,EAAAA,EAAAA,GAAAsF,EAAA,EAAArF,IAAA,WAAAC,MAED,SAAQC,GAKJ,IAADsF,EAAAtF,EAJDD,MACEwE,EAAMe,EAANf,OACAgB,EAAID,EAAJC,KAIF,OAAIhB,EACK,IAIF7C,KAAKe,KAAK+C,UAAUN,GAAyBK,IAAS,IAC/D,IAAC,CAzB+B,CAASjD,ICFnCmD,GAAsB3G,EAAAA,GAAAA,kBAEjB4G,GAAuB,SAAA1C,GAClC,SAAA0C,EAAYN,GAAQ,OAAA3F,EAAAA,EAAAA,GAAA,KAAAiG,IAAAhG,EAAAA,EAAAA,GAAA,KAAAgG,EAAA,CACZ,CACJrC,KAAM,oBACNC,MAAOC,SACPd,KAAM2C,EAAO3C,KACbI,SAAU,SACVW,SAAU,SACV6B,OAAQ,oCAEZ,CAAC,OAAAzF,EAAAA,EAAAA,GAAA8F,EAAA1C,IAAAnD,EAAAA,EAAAA,GAAA6F,EAAA,EAAA5F,IAAA,WAAAC,MAED,SAAQC,GAKJ,IAADsF,EAAAtF,EAJDD,MACEwE,EAAMe,EAANf,OACAoB,EAAML,EAANK,OAIF,OAAIpB,EACK,IAIF7C,KAAKe,KAAK+C,UAAUC,GAAkBE,IAAW,IAC1D,IAAC,CAzBiC,CAASrD,ICFhCsD,GAAyB,SAAA5C,GACpC,SAAA4C,EAAYR,GAAS,IAADvD,EASQ,OATRpC,EAAAA,EAAAA,GAAA,KAAAmG,IAClB/D,GAAAnC,EAAAA,EAAAA,GAAA,KAAAkG,EAAA,CAAM,CACJvC,KAAM,sBACNC,MAAOC,YACPd,KAAM2C,EAAO3C,KACbI,SAAU,CAAC,OAAQ,oBACnBW,SAAU,mBACV6B,OAAQ,yCAELjC,MAAQgC,EAAOhC,MAAMvB,CAC5B,CAAC,OAAAjC,EAAAA,EAAAA,GAAAgG,EAAA5C,IAAAnD,EAAAA,EAAAA,GAAA+F,EAAA,EAAA9F,IAAA,WAAAC,MAED,SAAQC,GAMJ,IAADsF,EAAAtF,EALDD,MACEwE,EAAMe,EAANf,OACAC,EAAIc,EAAJd,KACAqB,EAAgBP,EAAhBO,iBAIF,GAAItB,EACF,MAAO,IAIT,IAAAG,EAA0BhD,KAAK0B,MAAMY,OAA7BW,EAAGD,EAAHC,IAAKV,EAAGS,EAAHT,IAAKC,EAAGQ,EAAHR,IACZU,EAAW,4BACXC,EAAY,iDAAAC,OAAoDgB,mBAAmBtB,IACnFO,EAAI,GAAAD,OAAMF,EAAQ,SAAAE,OAAQH,EAAG,SAAAG,OAAQb,EAAG,SAAAa,OAAQZ,EAAG,KAAAY,OAAID,GACvDJ,EAAOoB,GAAoB,IAEjC,OAAOb,KAAa,CAClBJ,SAAAA,EAAUC,aAAAA,EAAcE,KAAAA,EAAMN,KAAAA,GAElC,IAAC,CAnCmC,CAASnC,ICAvCyD,GAA+DjH,EAAAA,GAAAA,sBAAxCkH,GAAwClH,EAAAA,GAAAA,oCAE1DmH,GAAkB,SAAAjD,GAC7B,SAAAiD,EAAAjG,GAEI,IADFyC,EAAIzC,EAAJyC,KAAI,OAAAhD,EAAAA,EAAAA,GAAA,KAAAwG,IAAAvG,EAAAA,EAAAA,GAAA,KAAAuG,EAAC,CAEC,CACJ5C,KAAM,eACNC,MAAOC,gBACPd,KAAAA,EACAI,SAAU,eACVW,SAAU,eACV6B,OAAQ,6CAEZ,CAAC,OAAAzF,EAAAA,EAAAA,GAAAqG,EAAAjD,IAAAnD,EAAAA,EAAAA,GAAAoG,EAAA,EAAAnG,IAAA,WAAAC,MAED,SAAQmG,GAKJ,IAADC,EAAAD,EAJDnG,MACEwE,EAAM4B,EAAN5B,OACA6B,EAAYD,EAAZC,aAIF,OAAI7B,EACK,IAIF7C,KAAKe,KAAK+C,UAAUO,GAAsBC,GAAoCI,KAAkB,IACzG,IAAC,CA3B4B,CAAS9D,I,YCD3B+D,GAA0B,SAAArD,GACrC,SAAAqD,EAAArG,GAKI,IAAD6B,EAJDY,EAAIzC,EAAJyC,KAAIQ,EAAAjD,EACJkD,iBACEoD,QADc,IAAArD,EAEZ,CAAC,EAACA,GADJqD,gBAaqC,OAbtB7G,EAAAA,EAAAA,GAAA,KAAA4G,IAGjBxE,GAAAnC,EAAAA,EAAAA,GAAA,KAAA2G,EAAA,CAAM,CACJhD,KAAM,uBACNC,MAAOC,aACPd,KAAAA,EACAI,SAAU,YACVW,SAAU,YACV6B,OAAQ,iCACR3B,WAAY,SAAAC,GAAI,MACA,cAAdA,EAAK4B,IAAoB,MAExBe,gBAAkBA,EAAgBzE,CACzC,CAAC,OAAAjC,EAAAA,EAAAA,GAAAyG,EAAArD,IAAAnD,EAAAA,EAAAA,GAAAwG,EAAA,EAAAvG,IAAA,WAAAC,MAED,SAAQmG,GAKJ,IAADC,EAAAD,EAJDnG,MACEwE,EAAM4B,EAAN5B,OACAgC,EAASJ,EAATI,UAIF,OAAIhC,EACK,IAIF3B,IAAAA,OAAS2D,GAAa,IAAMC,GAAAA,QAAQC,kBAAkBF,EAC/D,GAAC,CAAAzG,IAAA,WAAAC,MAED,WACE,OAAO2B,KAAK4E,gBAAerB,MAApBvD,KAAI/B,UACb,IAAC,CArCoC,CAAS2C,ICAnCoE,GAA2B,SAAA1D,GACtC,SAAA0D,EAAA1G,GAKI,IAAD6B,EAJDY,EAAIzC,EAAJyC,KAAIQ,EAAAjD,EACJkD,iBACEyD,QADc,IAAA1D,EAEZ,CAAC,EAACA,GADJ0D,iBAcuC,OAdvBlH,EAAAA,EAAAA,GAAA,KAAAiH,IAGlB7E,GAAAnC,EAAAA,EAAAA,GAAA,KAAAgH,EAAA,CAAM,CACJrD,KAAM,wBACNC,MAAOC,cACPd,KAAAA,EACAmE,OAAQ,mBACR/D,SAAU,aACVW,SAAU,aACV6B,OAAQ,kCACR3B,WAAY,SAAAC,GAAI,MACA,eAAdA,EAAK4B,MAAwC,uBAAd5B,EAAK4B,MAAiC5B,EAAKkD,UAAW,MAEpFF,iBAAmBA,EAAiB9E,CAC3C,CAAC,OAAAjC,EAAAA,EAAAA,GAAA8G,EAAA1D,IAAAnD,EAAAA,EAAAA,GAAA6G,EAAA,EAAA5G,IAAA,WAAAC,MAED,SAAQmG,GAKJ,IAADC,EAAAD,EAJDnG,MACEwE,EAAM4B,EAAN5B,OACAsC,EAAUV,EAAVU,WAIF,OAAItC,EACK,IAIF3B,IAAAA,OAASiE,GAAc,IAAML,GAAAA,QAAQM,yBAAsC,IAAbD,EACvE,GAAC,CAAA/G,IAAA,WAAAC,MAED,WACE,OAAO2B,KAAKiF,iBAAgB1B,MAArBvD,KAAI/B,UACb,IAAC,CAtCqC,CAAS2C,ICApCyE,GAAsC,SAAA/D,GACjD,SAAA+D,EAAA/G,GAKI,IAAD6B,EAJDY,EAAIzC,EAAJyC,KAAIQ,EAAAjD,EACJkD,iBACE8D,QADc,IAAA/D,EAEZ,CAAC,EAACA,GADJ+D,4BAe6D,OAflCvH,EAAAA,EAAAA,GAAA,KAAAsH,IAG7BlF,GAAAnC,EAAAA,EAAAA,GAAA,KAAAqH,EAAA,CAAM,CACJ1D,KAAM,mCACNC,MAAOC,qBACPd,KAAAA,EACAI,SAAU,wBACV+D,OAAQ,mBACRpD,SAAU,wBACV6B,OAAQ,uCACR3B,WAAY,SAAAC,GAAI,MACA,0BAAdA,EAAK4B,IAAgC,MAGpCyB,4BAA8BA,EAA4BnF,CACjE,CAAC,OAAAjC,EAAAA,EAAAA,GAAAmH,EAAA/D,IAAAnD,EAAAA,EAAAA,GAAAkH,EAAA,EAAAjH,IAAA,WAAAC,MAED,SAAQmG,GAKJ,IAADC,EAAAD,EAJDnG,MACEwE,EAAM4B,EAAN5B,OACA0C,EAAqBd,EAArBc,sBAIF,OAAI1C,EACK,IAIF3B,IAAAA,OAASqE,GAAyB,IAAMT,GAAAA,QAAQM,yBAAyBG,EAClF,GAAC,CAAAnH,IAAA,WAAAC,MAED,WACE,OAAO2B,KAAKsF,4BAA2B/B,MAAhCvD,KAAI/B,UACb,IAAC,CAvCgD,CAAS2C,ICF/C4E,GAAW,SAAAlE,GACtB,SAAAkE,EAAY9B,GAAS,IAADvD,EAQQ,OARRpC,EAAAA,EAAAA,GAAA,KAAAyH,IAClBrF,GAAAnC,EAAAA,EAAAA,GAAA,KAAAwH,EAAA,CAAM,CACJ7D,KAAM,QACNC,MAAOC,QACPd,KAAM2C,EAAO3C,KACbI,SAAU,CAAC,SACXW,SAAU,YAEPJ,MAAQgC,EAAOhC,MAAMvB,CAC5B,CAAC,OAAAjC,EAAAA,EAAAA,GAAAsH,EAAAlE,IAAAnD,EAAAA,EAAAA,GAAAqH,EAAA,EAAApH,IAAA,WAAAC,MAED,SAAQC,GAMJ,IAADsF,EAAAtF,EALDD,MACEwE,EAAMe,EAANf,OACAC,EAAIc,EAAJd,KACA2C,EAAM7B,EAAN6B,OAIF,OAAO5C,EAAS,IAAG,GAAAO,OAAMN,EAAI,MAAAM,OAAKqC,EAAM,IAC1C,IAAC,CArBqB,CAAS7E,ICoF1B,SAAS8E,GAAgClB,GAO5C,IANFzD,EAAIyD,EAAJzD,KAAI4E,EAAAnB,EACJoB,yBAA4BC,EAAOF,EAAPE,QAASC,EAAeH,EAAfG,gBACrCtE,EAAgBgD,EAAhBhD,iBACAE,EAAK8C,EAAL9C,MACAlD,EAAWgG,EAAXhG,YACAuH,EAAQvB,EAARuB,SAEMC,EAzER,SAAmB1H,GAAmB,IAAhBE,EAAWF,EAAXE,YAElByH,EAIEzH,EAJFyH,+BAEAC,EAEE1H,EAFF0H,sBAAqBhE,EAEnB1D,EADF2D,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAGZE,EAGED,EAHFC,sBACoB+D,EAElBhE,EAFFiE,mBACkBC,EAChBlE,EADFmE,iBAGIC,EAAwBJ,GAA+BE,EAEvDL,GAAU,IAAIQ,EAAAA,IACjBC,YAAY,cAAc,SAAAC,GAAQ,OAAIA,EAASC,WAAW,CACzDtF,GACAoC,GACAO,GACAE,GACAK,GACAI,GACAK,GACAK,IACAjC,OAAOhB,EAAwB,CAACoD,IAAe,IAAI,IACpDoB,oCACAC,uBAAuB,CACtBZ,+BAAAA,EACAa,uBAAwBX,EACxBE,0BAAAA,IAgCJ,OAzBIH,GACFF,EAAQe,qCAGVf,EACGgB,iBAAiB,CAChB3F,GACAoC,GACAO,GACAE,KAED+C,mBAAmB/F,IAAAA,QAAU,CAC5BqD,GACA2C,GAAAA,GACAC,GAAAA,IACCZ,GAAyBa,GAAAA,GAC1Bb,GAAyBc,GAAAA,IACxBd,GAAyBe,GAAAA,GAC1Bf,GAAyBgB,GAAAA,GACzBC,GAAAA,GACA7C,GACAK,GACAK,MAGGW,CACT,CAUkByB,CAAW,CAAEjJ,YAAAA,IAGvBkJ,EAAgB1B,EAAQ2B,iBAAiB,CAC7C5G,KAAAA,EACAS,iBAAAA,EACAE,MAAAA,EACAlD,YAAAA,EACAuH,SAAAA,IAGI6B,EAAsB5B,EAAQ6B,uBAAuB,CACzD9G,KAAAA,EACA8E,QAAAA,EACAC,gBAAAA,EACAtH,YAAAA,IAKF,OAFAoJ,EAAoBE,kBAAoB,uBAEjC,CACLJ,cAAAA,EACAE,oBAAAA,EAEJ,CCjHO,IAAMG,IAA8B5J,EAAAA,EAAAA,IACzC,SAAA4J,EAAAzJ,GAGI,IAFF0J,EAAQ1J,EAAR0J,SAAUjH,EAAIzC,EAAJyC,KAAMkH,EAAU3J,EAAV2J,WAAYC,EAAK5J,EAAL4J,MAAOtC,EAAwBtH,EAAxBsH,yBAA0BpE,EAAgBlD,EAAhBkD,iBAAkBE,EAAKpD,EAALoD,MAAOyG,EAAG7J,EAAH6J,IAAKC,EAAa9J,EAAb8J,cAAe5J,EAAWF,EAAXE,YAAa6J,EAAU/J,EAAV+J,WAAYC,EAAUhK,EAAVgK,WAAYC,EAAiBjK,EAAjBiK,kBAAmBC,EAAYlK,EAAZkK,aAAczC,EAAQzH,EAARyH,SAAU0C,EAAanK,EAAbmK,cAAeC,EAAMpK,EAANoK,OAAQC,EAAUrK,EAAVqK,WAAYC,EAAYtK,EAAZsK,aAC7NC,EAAavK,EAAbuK,eAAa9K,EAAAA,EAAAA,GAAA,KAAAgK,GAEb,IAAAe,EAA+CpD,GAAiC,CAC9E3E,KAAAA,EAAM6E,yBAAAA,EAA0BpE,iBAAAA,EAAkBE,MAAAA,EAAOlD,YAAAA,EAAauH,SAAAA,IADhE2B,EAAaoB,EAAbpB,cAAeE,EAAmBkB,EAAnBlB,oBAIjBmB,EAAc,WAClB,IAAMC,EAAaZ,IACnB,OAAOa,QAAQC,QAAQF,EACzB,EAEMG,EAAkBpD,EAAStI,IAAI,oBACrCsI,EAASqD,MAAM,oBAEf,IAAMC,EAAgB,CACpBV,WAAY,CACVW,UAAWV,EACXW,OAAQZ,GAEVa,KAAM,CAAEzI,KAAAA,GACR0I,WAAY,CACVC,mBAAoB,CAAC,GAAI,GAAI,IAAK,KAClCC,oBAAqB5I,EAAK+C,UAAUjC,QACpC+H,aAAc7I,EAAK+C,UAAUjC,cAC7BgI,kBAAkB,GAEpBC,UAAW,CACTC,GAAIlB,EACJ9F,KAAMhC,EAAK+C,UAAUjC,eAEvBmI,YAAa,CACXC,UAAW,iBACXlH,KAAMhC,EAAK+C,UAAUjC,sEACrBqI,kBAAmBnJ,EAAK+C,UAAUjC,6FAEpCsI,cAAevC,EACfwC,SAAU,CACRrJ,KAAAA,GAEFxB,6BAA8BmC,EAC9BsH,WAAY,CACVqB,YAAY,EACZC,qBAAqB,EACrBnC,IAAAA,EACAY,YAAAA,EACAwB,sBAAuBrJ,IAAAA,MAEzBsJ,WAAY,CACVzJ,KAAAA,GAEF0J,QAAS,CACPH,qBAAqB,EACrB9L,YAAAA,EACA2J,IAAAA,EACApH,KAAAA,EACAsH,WAAAA,EACAC,WAAAA,EACAoC,cAAe,CACbC,6BAA8B,YAGlC/K,+BAAgC,CAC9BoI,SAAAA,EACA4C,iBAAkB,CAAC,cACnBrC,kBAAAA,GAEFsC,wBAAyB,CACvBC,sBAAuB,qBAEzBC,eAAgB,CACdV,YAAY,EACZtB,YAAAA,EACAP,aAAAA,EACAwC,aAAa,EACbC,OAAQjD,EACRkD,OAAQC,KAAAA,qBACRzC,OAAAA,EACA3H,KAAAA,EACAoI,gBAAAA,IAIEiC,EAAYrK,EAAK+C,UAAUjC,0BAEjC,MAAO,CACLF,KAAMqG,EACNqD,aAAc,CAAC,SACfC,gBAAiB,CAAE,aAAcF,GACjCG,OAAQ,OACRxK,KAAAA,EACAyK,QAAS9D,EACTO,WAAAA,EACAC,MAAAA,EACAuD,KAAM,CACJC,SAAU,CACR,uBAGJnO,UAAW,CACToO,QAAQ,GAEVC,UAAW,CACTC,OAAQ,CACNC,KAAM,SACNC,OAAQ,WAAF,OAAQC,KAAE,qBAAqBC,QAAQ,EAC7CC,WAAY,CACV,aAAcnL,EAAK+C,UAAUjC,6BAAoC,CAAEuJ,UAAAA,IACnEe,KAAM,aAGVC,aAAa,EAGbC,SAAUL,KAAE,0BAEdM,QAASjD,EAGTZ,cAAAA,EAGAF,kBAAAA,EACAhK,OAAQqK,EAEZ,I,aClIK,SAAS2D,GAAUrL,EAAC5C,GAAqB,IAADkO,EAAAlO,EAAhBmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EACzC,MAAO,CACLE,4BAA6B,CAC3B,+CAAgD,CAC9CT,OAAQ,OACRU,QAAS,SAETC,MAAO,UACPC,WAAY,UAEZ,gBAAiB,CACfD,MAAO,UAIbE,2BAA4B,CAE1B,oDAAqD,CACnD,WAAY,CACVC,QAAS,QAEX,UAAW,CACTA,QAAS,UAIf,WAASvP,EAAAA,EAAAA,GAAA,IACJwP,EAAAA,GAAAA,GAAc,CAAEP,QAAAA,KAGzB,C,0CCvBA,SAASQ,GAAYC,EAAQC,GAC3B,OAAOjM,IAAAA,MAAQgM,GACZE,QACAC,IAAIF,GACJD,SACA7O,OACL,CAqGO,SAASiP,GAAeC,GAO3B,IANFxM,EAAIwM,EAAJxM,KACAvC,EAAW+O,EAAX/O,YACAoK,EAAY2E,EAAZ3E,aACAL,EAAiBgF,EAAjBhF,kBACAiF,EAAsBD,EAAtBC,uBACAC,EAAWF,EAAXE,YAEMC,EA3GR,SAAmBpP,GAAoC,IAAjCqP,EAASrP,EAATqP,UAAWnP,EAAWF,EAAXE,YAAauC,EAAIzC,EAAJyC,KACtC+B,GAAItF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACLmQ,EAAUC,WAAW9K,MAAI,IAC5B+K,YAAY,IAGRC,EAAkB1Q,EAAAA,GAAAA,kCAA0CoB,GAC5DqF,GAAIrG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACLmQ,EAAUC,WAAW/J,MAAI,IAC5BgK,YAAY,EACZE,WAAY,WACZC,SAAU,sBACVC,KAAM/M,IAAAA,aAAeyM,EAAUC,WAAW/J,KAAKoK,KAAM/M,IAAAA,KAAO4M,IAC5DI,UAAWjB,GAAYa,GAAiB,SAAAtJ,GAAA,IAAA7B,GAAAwL,EAAAA,EAAAA,GAAA3J,EAAA,GAAEpG,EAAGuE,EAAA,GAAEtE,EAAKsE,EAAA,SAAM,CAAC,4BAADS,OAC5BhF,EAAG,KAC/B2C,EAAK+C,UAAUzF,GAChB,MAGG4F,GAAMzG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPmQ,EAAUC,WAAW3J,QAAM,IAC9B4J,YAAY,EACZE,WAAY,WACZC,SAAU,6BACVC,KAAM/M,IAAAA,aAAeyM,EAAUC,WAAW3J,OAAOgK,KAAM/M,IAAAA,KAAO9D,EAAAA,GAAAA,oBAC9D8Q,UAAWjB,GAAY7P,EAAAA,GAAAA,mBAA2B,SAAAgR,GAAA,IAAAC,GAAAF,EAAAA,EAAAA,GAAAC,EAAA,GAAEhQ,EAAGiQ,EAAA,GAAEhQ,EAAKgQ,EAAA,SAAM,CAAC,mCAADjL,OAC/BhF,EAAG,KACtC2C,EAAK+C,UAAUzF,GAChB,MAGG8F,GAAgB3G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBmQ,EAAUC,WAAWzJ,kBAAgB,IACxC0J,YAAY,IAGRnJ,GAAYlH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbmQ,EAAUC,WAAWlJ,cAAY,IACpCmJ,YAAY,EACZE,WAAY,WACZE,KAAM/M,IAAAA,aAAeyM,EAAUC,WAAWlJ,aAAauJ,KAAM/M,IAAAA,KAAO9D,EAAAA,GAAAA,sCACpE8Q,UAAWjB,GAAY7P,EAAAA,GAAAA,qCAA6C,SAAAkR,GAAA,IAAAC,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAElQ,EAAGmQ,EAAA,GAAElQ,EAAKkQ,EAAA,SAAM,CAAC,qBAADnL,OAC/DhF,EAAG,KACxB2C,EAAK+C,UAAU1G,EAAAA,GAAAA,sBAA8BiB,IAC9C,MAGGmQ,GAAuBhR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBmQ,EAAUC,WAAWY,yBAAuB,IAC/CX,WAAY,CAAC,cAAe,mBAAoB,MAAO,wBAGnDhJ,GAASrH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACVmQ,EAAUC,WAAW/I,WAAS,IACjCgJ,YAAY,IAGR1I,GAAU3H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACXmQ,EAAUC,WAAWzI,YAAU,IAClC0I,YAAY,EACZY,gBAAgB,EAChBC,QAAS,MAGLnJ,GAAqB/H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACtBmQ,EAAUC,WAAWrI,uBAAqB,IAC7CsI,YAAY,EACZY,gBAAgB,IAGZ/L,GAAKlF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACNmQ,EAAUC,WAAWlL,OAAK,IAC7BmL,WAAYrP,EAAY2D,SAAW3D,EAAY2D,QAAQC,sBACvDuM,KAAM,aACN7C,KAAM,SACNnK,KAAM,SACN,qBAAsB,uBAoBxB,OAjBkBnE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbmQ,GAAS,IACZC,YAAUpQ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACLmQ,EAAUC,YAAU,IACvB9K,KAAAA,EACAe,KAAAA,EACAI,OAAAA,EACAE,iBAAAA,EACAO,aAAAA,EACAG,UAAAA,EACAM,WAAAA,EACAI,sBAAAA,EACAiJ,wBAAAA,GACKhQ,EAAY2D,SAAW3D,EAAY2D,QAAQC,sBAAyB,CAAEM,MAAAA,GAAU,CAAC,IAK5F,CAUuBkM,CAAW,CAC9BjB,UAAWxC,KAAAA,qBACX3M,YAAAA,EACAuC,KAAAA,IAGI8N,GAAeC,EAAAA,GAAAA,IAAsB,CACzC/N,KAAAA,EACAgO,YAAa,2BACbrB,aAAAA,EACA9E,aAAAA,EACAL,kBAAAA,EACAiF,uBAAAA,EACAwB,aAAAA,GAAAA,aACAC,yBAAyB,EACzBC,4BAA4B,EAC5BC,UAAW,CACTnF,YAAajJ,EAAK+C,UAAUjC,qBAC5BuN,eAAgB,OAChBC,eAAgB,aAGlBC,gBAAiB,IAAIC,GAAAA,GAAoC,CACvDxO,KAAAA,MAIE0H,EAAgB,IAAI+G,GAAAA,cAAcX,GAgBxC,OAdApG,EAAcgH,GAAG,wBAAwB,SAACC,GACxC,IAAMpS,EAAWmQ,IACjB,GAAInQ,EAAU,CACZ,GAAIoS,EAAeC,OAAOzH,MAAM/C,WAAY,CAC1C,IAAMyK,EAAmBF,EAAeC,OAAOzH,MAAM/C,WACrD0K,OAAO5O,KAAK2O,GAAkBE,SAAQ,SAAC1R,GAErCsR,EAAeC,OAAOzH,MAAM/C,WAAW/G,GAAO0G,GAAAA,QAAQiL,iBAAiBH,EAAiBxR,GAAO,IAAO,EACxG,GACF,EACA4R,EAAAA,EAAAA,IAAgB1S,EAAUoS,EAAeC,QAAQ,EACnD,CACF,KAEAnS,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKqR,GAAY,IACfpG,cAAAA,GAEJ,C,uDChKMyC,GAASC,KAAAA,qBACT8E,GAAqB,CAAC,KAAM,OAAQ,YAAa,aAAc,mBAAoB,wBAAyB,OAAQ,U,4BCP7GC,GAA2BC,EAAAA,MAAW,SAACC,GAK9CA,EAFFpH,WAMF,OAFAqH,EAFID,EADFC,cAKK,IACT,IAEAH,GAAyBI,UAAY,CACnCtH,WAAYuH,KAAAA,MAAgB,CAAC,GAAGC,WAChCH,WAAYE,KAAAA,KAAeC,Y,8BCmB7B,IAAMC,IAAUC,EAAAA,EAAAA,oBAnBhB,SAA2BN,GACzB,IAAQO,EAAYP,EAAZO,QACF5P,GAAO6P,EAAAA,EAAAA,YAAWC,EAAAA,aAExB,OACEC,EAAAA,EAAAA,KAAA,OAAKC,UAAS,sBAAA3N,OAAwBuN,EAAQK,aAAcC,UAC1DH,EAAAA,EAAAA,KAACI,GAAAA,GAAa,CACZC,MAAM,WACNpO,KAAMhC,EAAK+C,UAAUjC,2FACrBuP,SAAUrQ,EAAK+C,UAAUjC,iBAIjC,IAzBkB,SAACX,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAC1CwE,YAAa,CACXK,UAAW,GACXC,aAAc,GACdC,YAAa,GACb,UAAQ/T,EAAAA,EAAAA,GAAA,CACNgU,WAAY,WACTC,EAAAA,GAAAA,oBAAmB,CAAEhF,QAAAA,MAG7B,ICiBKzE,GAAW,2BAEX0J,GAA2B,SAAAC,GAC/B,SAAAD,EAAYtB,GAAQ,IAADjQ,GAAApC,EAAAA,EAAAA,GAAA,KAAA2T,IACjBvR,GAAAnC,EAAAA,EAAAA,GAAA,KAAA0T,EAAA,CAAMtB,KA0BRwB,iBAAmB,kBAAMzR,EAAKiQ,MAAMyB,EAAAA,oBAAoBC,WAAY,EAAD3R,EAEnE4R,oBAAsB,WACpB,IAAQC,EAAkB7R,EAAKiQ,MAAvB4B,cACFC,EAAgB9R,EAAKyR,mBAG3B,OAFyBM,EAAAA,EAAAA,8BAA6B,CAAC,CAAEvC,OAAQsC,IAAkBD,EAGrF,EAAC7R,EAEDsN,YAAc,kBACZ0E,EAAAA,IAAUhS,EAAKiS,iBAAkB,gBAAiB,EAADjS,EAEnD9C,eAAiB,kBAAMA,EAAe8C,EAAKsN,cAAe,EAADtN,EAEzDkQ,WAAa,WAED,IAANgC,GAAKpU,UAAAqU,OAAA,QAAAC,IAAAtU,UAAA,GAAAA,UAAA,GAAP,CAAC,GADHuU,eAAAA,OAAc,IAAAH,GAAQA,EAEhB/U,EAAW6C,EAAKsN,cAClBnQ,IACEkV,GACFrS,EAAK9C,iBAEPC,EAASmV,SAAQ,GAErB,EAjDEtS,EAAKuS,wBAA0BxR,IAAAA,KAAOf,EAAKuS,yBAC3CvS,EAAKwS,WAAazR,IAAAA,KAAOf,EAAKwS,YAC9BxS,EAAKyS,eAAiB1R,IAAAA,KAAOf,EAAKyS,gBAElCzS,EAAK0S,iBAAmB,IAAI5J,SAAQ,SAACC,GACnC/I,EAAK2S,oBAAsB5J,CAC7B,IAEA,IAAA6J,EAA0F3C,EAAlF4C,WAAcC,EAAgBF,EAAhBE,iBAAkBC,EAAqBH,EAArBG,sBAAuBC,EAAoBJ,EAApBI,qBASP,OARxDhT,EAAKiT,mBC9CF,SAA2B9U,GAI9B,IAHF0J,EAAQ1J,EAAR0J,SACAiL,EAAgB3U,EAAhB2U,iBAGMI,EAAW,EACfH,EAHmB5U,EAArB4U,uBAGwBlL,GAEtBiL,EAAiBjL,IAGnB,OAAOiB,IAAAA,IAAYoK,GAChBC,MAAK,SAAA9O,GAAyB,IAAvB+O,GAAsBpF,EAAAA,EAAAA,GAAA3J,EAAA,GAAN,GACdgP,EAA0CD,EAA1CC,SAAUC,EAAgCF,EAAhCE,YAAaC,EAAmBH,EAAnBG,eACzBC,EAAS,CACb1L,WAAY,CAAC,EACbqE,QAAS,CACP7C,WAAY,CACV+J,SAAAA,KAUN,OALIC,GAAeA,EAAYnB,OAAS,IACtCqB,EAAO1L,WAAW2L,QAAUH,EAC5BE,EAAOD,eAAiBxS,IAAAA,KAAOwS,EAAgB,OAAQ,mBAGlDC,CACT,GACJ,CDgB8BE,CAAmB,CAC3C7L,SAAAA,GACAiL,iBAAAA,EACAC,sBAAAA,IAKFC,EAAqBW,WAAW,wBAAwB3T,CAC1D,CAAC,OAAAjC,EAAAA,EAAAA,GAAAwT,EAAAC,IAAAxT,EAAAA,EAAAA,GAAAuT,EAAA,EAAAtT,IAAA,oBAAAC,MAED,WACE2B,KAAK8S,qBACP,GAAC,CAAA1U,IAAA,0BAAAC,MA6BD,WACE,IAAA0V,EASI/T,KAAKoQ,MARPrP,EAAIgT,EAAJhT,KACAvC,EAAWuV,EAAXvV,YACA+J,EAAiBwL,EAAjBxL,kBAAiByL,EAAAD,EACjBf,WAAcpK,EAAYoL,EAAZpL,aAAc4E,EAAsBwG,EAAtBxG,uBAC5ByG,EAAqBF,EAArBE,sBACAC,EAAuBH,EAAvBG,wBACAC,EAAaJ,EAAbI,cACAC,EAAsBL,EAAtBK,uBAIIvF,EAAevB,GAAgB,CACnCvM,KAAAA,EACAvC,YAAAA,EACAoK,aAAAA,EACAL,kBAAAA,EACAiF,uBAAAA,EACAC,YARsBzN,KAAhByN,cAWRzN,KAAKyI,cAAgBoG,EAAapG,cAElC,IAAM4L,GAAgBC,EAAAA,EAAAA,GAAiB,CACrCC,cAAe,CAAEN,sBAAAA,EAAuBC,wBAAAA,GACxCC,cAAAA,IAGF,OACErD,EAAAA,EAAAA,KAAC0D,EAAAA,GAAwChX,EAAAA,EAAAA,GAAA,CACvC2W,cAAeE,EAAcI,OAC7BL,uBAAwBA,EACxB5V,YAAaA,GACTqQ,GAGV,GAAC,CAAAzQ,IAAA,mBAAAC,MAED,WACE,IAAAqW,EAAwC1U,KAAKoQ,MAArCuE,EAAgBD,EAAhBC,iBAAkBC,EAASF,EAATE,UAE1B,OAAID,GAEA7D,EAAAA,EAAAA,KAAC+D,EAAAA,EAAY,CACXD,UAAWA,IAKV,IACT,GAAC,CAAAxW,IAAA,yBAAAC,MAED,WACE,OACEyW,EAAAA,EAAAA,MAAC3E,EAAAA,SAAc,CAAAc,SAAA,CACZjR,KAAKoQ,MAAM2E,uBAAuB,CAAEC,aAAa,IACjDhV,KAAK0S,4BAGZ,GAAC,CAAAtU,IAAA,iBAAAC,MAED,WAAkB,IAAD4W,EAAA,KACTC,EAAW/E,EAAAA,MAAW,kBAC1BlH,QAAQkM,IAAI,CACVF,EAAK7B,mBAIL6B,EAAKpC,mBACJS,MAAK,SAAA9O,GAAA,IAAE4Q,GAAFjH,EAAAA,EAAAA,GAAA3J,EAAA,GAAkB,SAAO,CAC/B6Q,QAAS,WAAF,OAAQJ,EAAKtC,WAAWyC,EAAiB,EACjD,GAAE,IAEL,OAAQtE,EAAAA,EAAAA,KAACoE,EAAQ,GACnB,GAAC,CAAA9W,IAAA,aAAAC,MAED,SAAW+W,GACT,IAAAE,EAYItV,KAAKoQ,MAXPrP,EAAIuU,EAAJvU,KACAW,EAAK4T,EAAL5T,MACAlD,EAAW8W,EAAX9W,YAAW+W,EAAAD,EACXtC,WACEwC,EAAMD,EAANC,OAAQrN,EAAGoN,EAAHpN,IAAKvC,EAAwB2P,EAAxB3P,yBAA0ByC,EAAUkN,EAAVlN,WAAYC,EAAUiN,EAAVjN,WAAYE,EAAY+M,EAAZ/M,aAAczC,EAAQwP,EAARxP,SAAU2C,EAAM6M,EAAN7M,OAAQE,EAAY2M,EAAZ3M,aAAc6M,EAAgBF,EAAhBE,iBAE/GC,EAAcJ,EAAdI,eACAjX,EAAa6W,EAAb7W,cACAkX,EAAqBL,EAArBK,sBACApN,EAAiB+M,EAAjB/M,kBACAI,EAAU2M,EAAV3M,WAEMiN,GAAmBC,EAAAA,EAAAA,oBAAmBnU,GAAtCkU,eACAnI,EAA4BzN,KAA5ByN,YAAa4C,EAAerQ,KAAfqQ,WAuBfpI,EAAa,CACjB6D,KAAM,SACNgK,OAAQN,EAAOO,qBACfjV,QAAS,CACPkV,UAAW7N,EAAIyN,eAAeK,uBAAuB,oBAAoBC,MAAM,CAE7EC,mBAAoB,CAAC,MAcrB3U,EHpNH,SAA0BlD,GAM7B,IALFyC,EAAIzC,EAAJyC,KACAyU,EAAMlX,EAANkX,OACAI,EAActX,EAAdsX,eACAnI,EAAWnP,EAAXmP,YACA4C,EAAU/R,EAAV+R,WAwKA,MAAO,CACL5O,WAvKF,SAAmB+C,GAAmC,IAAhCvC,EAAIuC,EAAJvC,KAAmBmU,EAAQ5R,EAArB6R,YACpBC,EAAY,OAElB,OAAOC,EAAAA,EAAAA,IAA2B,CAChCH,SAAAA,EACAnU,KAAAA,EACAlB,KAAAA,EACAuV,UAAAA,EACApL,OAAAA,GACAsL,UAAW,SAACC,EAASC,GACnB,IAAMC,EAAK1U,EAAKQ,GACVmU,GAAUC,EAAAA,EAAAA,MAAKJ,EAASxG,IAE9BuF,EAAOO,qBAAqBtB,OAAOkC,EAAIC,EAAS,CAC9CZ,UAAWJ,EAAeK,yBAEzB3C,MAAK,WACJoD,EAAW/Y,QAAQ,QACnB0S,GACF,IACCyG,OAAM,SAACC,GACN,IAAMC,GAAeC,EAAAA,EAAAA,IAAiBF,EAAOhW,GAC7C2V,EAAWQ,WAASC,EAAAA,GAAAA,GAAC,CAAC,EACnBb,EAAYU,GAEjB,IACCI,SAAQC,EAAAA,EAAAA,aAAY5J,IAAc6J,KACvC,GAEJ,EA2IE1S,gBAzIF,SAAwBjC,GAAmC,IAAhCV,EAAIU,EAAJV,KAAmBmU,EAAQzT,EAArB0T,YACzBkB,EAAYC,GAAAA,IAAeA,GAAAA,GAAYC,WAAaD,GAAAA,GAAYC,UAAUF,UAAa,IACvFG,EAAYF,GAAAA,IAAeA,GAAAA,GAAYC,WAAaD,GAAAA,GAAYC,UAAUC,UAAa,IACvFpB,EACJ,CACEnV,SAAU,YACVwW,QAASC,EAAAA,GACT7W,KAAMf,KAAKe,KACX8W,aAAc/S,GAAAA,QAAQC,kBAAkB9C,EAAK4C,WAC7C0S,SAAAA,EACAG,SAAAA,EACAI,eAAgB9X,KAAKe,KAAKgX,kBAAkBC,GAAAA,EAAYC,qBACxDC,wBAAwB,eAAD9U,OAAiBpD,KAAKe,KAAKgX,kBAAkBC,GAAAA,EAAYC,qBAAqB3F,SAGzG,OAAOiE,EAAAA,EAAAA,IAA2B,CAChCH,SAAAA,EACAnU,KAAAA,EACAlB,KAAAA,EACAuV,UAAAA,EACApL,OAAAA,GACAsL,UAAW,SAACC,EAASC,GACnB,KAAID,EAAQ5R,UAAY0S,GAAYd,EAAQ5R,UAAY6S,GAAxD,CAGA,IAAMf,EAAK1U,EAAKQ,GACVmU,GAAUC,EAAAA,EAAAA,MAAKJ,EAASxG,IAE9BuF,EAAOO,qBAAqBtB,OAAOkC,EAAIC,EAAS,CAC9CZ,UAAWJ,EAAeK,yBAEzB3C,MAAK,WACJoD,EAAW/Y,QAAQ,QACnB0S,GACF,IACCyG,OAAM,SAACC,GACN,IAAMC,GAAeC,EAAAA,EAAAA,IAAiBF,EAAOhW,GAC7C2V,EAAWQ,UAAU,CACnBrS,UAAWmS,GAEf,IACCI,SAAQC,EAAAA,EAAAA,aAAY5J,IAAc6J,KAjBrC,CAkBF,GAEJ,EA8FErS,iBA5FF,SAAyBmJ,GAAmC,IAAhCnM,EAAImM,EAAJnM,KAAmBmU,EAAQhI,EAArBiI,YAC1B8B,GAAQC,EAAAA,EAAAA,WAAUnW,GACxBkW,EAAMhT,WAAaL,GAAAA,QAAQiL,iBAAmC,IAAlB9N,EAAKkD,WAAoB,GACrE,IAAMmR,EAAY,CAChBnV,SAAU,aACVwW,QAASU,EAAAA,GACTtX,KAAMf,KAAKe,KACXuX,cAAexT,GAAAA,QAAQC,kBAAoC,IAAlB9C,EAAKkD,WAAoB,IAGpE,OAAOoR,EAAAA,EAAAA,IAA2B,CAChCH,SAAAA,EACAnU,KAAMkW,EACNpX,KAAAA,EACAuV,UAAAA,EACApL,OAAAA,GACAsL,UAAW,SAACC,EAASC,GACnB,KAAID,EAAQtR,WAAa,GAAOsR,EAAQtR,WAAa,KAArD,CAGA,IAAMwR,EAAK1U,EAAKQ,GACVmU,GAAUC,EAAAA,EAAAA,MAAKJ,EAASxG,IAC9B2G,EAAQzR,YAAcsR,EAAQtR,WAAa,KAAOoT,QAAQ,GAC1D/C,EAAOO,qBAAqBtB,OAAOkC,EAAIC,EAAS,CAC9CZ,UAAWJ,EAAeK,yBAEzB3C,MAAK,WACJoD,EAAW/Y,QAAQ,QACnB0S,GACF,IACCyG,OAAM,SAACC,GACN,IAAMC,GAAeC,EAAAA,EAAAA,IAAiBF,EAAOhW,GAC7C2V,EAAWQ,UAAU,CACnB/R,WAAY6R,GAEhB,IACCI,SAAQC,EAAAA,EAAAA,aAAY5J,IAAc6J,KAjBrC,CAkBF,GAEJ,EAsDEhS,4BApDF,SAAoC+I,GAAmC,IAAhCpM,EAAIoM,EAAJpM,KAAmBmU,EAAQ/H,EAArBgI,YACrCmC,EACN,CAAC,CACCrX,SAAU,wBACVsX,cAAe,mBACfd,QAASe,EAAAA,GACT3X,KAAMf,KAAKe,KACX4X,yBAA0B7T,GAAAA,QAAQC,kBAAkB9C,EAAKsD,uBACzDqT,oBAAqB3W,EAAK4W,kBACzB,CACD1X,SAAU,mBACVwW,QAASmB,EAAAA,KAGX,OAAOC,GAAAA,OAAmB,CACxB3C,SAAAA,EACArV,KAAAA,EACAmK,OAAAA,GACAiN,MAAOlW,EACPuW,OAAAA,EACAQ,WAAW,EACXC,SAAU,SACVzC,UAAW,SAACC,EAASC,GACnB,KAAID,EAAQlR,sBAAwB,KAAQkR,EAAQlR,sBAAwB,KAA5E,CAGA,IAAMoR,EAAK1U,EAAKQ,GACVmU,GAAUC,EAAAA,EAAAA,MAAKJ,EAASxG,IAE9BuF,EAAOO,qBAAqBtB,OAAOkC,EAAIC,EAAS,CAC9CZ,UAAWJ,EAAeK,yBAEzB3C,MAAK,WACJoD,EAAW/Y,QAAQ,QACnB0S,GACF,IACCyG,OAAM,SAACC,GACN,IAAMC,GAAeC,EAAAA,EAAAA,IAAiBF,EAAOhW,GAC7C2V,EAAWQ,UAAU,CACnB3R,sBAAuByR,GAE3B,IACCI,SAAQC,EAAAA,EAAAA,aAAY5J,IAAc6J,KAjBrC,CAkBF,EACA4B,wBAAyB,gCAE7B,EAQF,CGiC6BC,CAAkB,CACzCpY,KAAAA,EACAyU,OAAAA,EACAI,eAAAA,EACAnI,YAAAA,EACA4C,WAAAA,IAGI9R,EAAS,IAAIwJ,GAA+B,CAChDC,SAAAA,GACAjH,KAAAA,EACAkH,WAAAA,EACAC,MArBY,CAGZkR,OAAQ,CACN,qBACA,4BAiBFxT,yBAAAA,EACApE,iBAAAA,EACAE,MAAAA,EACAyG,IAAAA,EACAC,cAAepI,KAAK+R,oBACpBvT,YAAAA,EACA6J,WAAAA,EACAC,WAAAA,EACAC,kBAAAA,EACAC,aAAAA,EACAzC,SAAAA,EACA0C,cAAezI,KAAKyI,cACpBC,OAAAA,EACAC,WAAAA,EACAC,aAAAA,KAGFyQ,EAAAA,EAAAA,IAAcjE,EAAkB7W,EAAOiN,QAASjN,EAAOoD,KAAMnD,GAC7D,IAAM8a,EAAcnH,EAAAA,MAAY5T,EAAQ6W,GAElC1W,GAAuB6a,EAAAA,EAAAA,GAA4B,CACvDxY,KAAAA,EACAE,KAAM,CACJuY,eAAgB3X,4CAChB4X,gBAAiB5X,6CACjB6X,uBAAwB7X,iDAE1BrD,YAAAA,EACAiK,cAAezI,KAAKyI,cACpBkR,aAAc,CACZC,eAAe,EACfC,iBAAiB,EACjBC,eAAe,EACfC,gBAAgB,KAId3H,EAAmB,IAAIvU,GAA6B,CACxDU,OAAQ+a,EACR9a,YAAAA,EACAC,cAAAA,EACAC,qBAAAA,EACAiX,sBAAAA,IAGFzU,IAAAA,OAASlB,KAAM,CAAEoS,iBAAAA,KAIjBpC,EAAAA,EAAAA,IAAgBvC,IAAezN,KAAKyI,cAAcuR,qBAAqB,GAGvEvM,IAAcgC,GAAG,cAAc,SAACwK,GAC9BxE,EAAiBwE,EAASxM,IAAezF,GAC3C,IAEA,IAAMkS,EEjSH,SAA6B5b,GAMhC,IALFyC,EAAIzC,EAAJyC,KACAyU,EAAMlX,EAANkX,OACA9T,EAAKpD,EAALoD,MACA+L,EAAWnP,EAAXmP,YACA4C,EAAU/R,EAAV+R,WAEQuF,GAAmBC,EAAAA,EAAAA,oBAAmBnU,GAAtCkU,eACFuE,GAASC,EAAAA,EAAAA,GAAa1Y,GAmB5B,MAAO,CACL2Y,kBAlBF,SAA2BC,GACzB9E,EAAOO,qBAAqBwE,QAAQD,EAAa,CAC/CtE,UAAWJ,EAAeK,yBAEzB3C,MAAK,WACJjD,EAAW,CAAEmC,gBAAgB,GAC/B,IACCsE,OAAM,SAACC,GACNyD,EAAAA,gBAAgBC,aAAYxD,EAAAA,EAAAA,IAAiBF,EAAOhW,GACtD,IACCqW,SAAQC,EAAAA,EAAAA,aAAY5J,IAAc6J,KACvC,EAQEoD,gBANF,SAAyBJ,GACvBH,EAAOQ,gBAAgB,kCAAmC,CAAEL,YAAAA,GAC9D,EAMF,CFkQ0BM,CAAqB,CACzC7Z,KAAAA,EACAyU,OAAAA,EACA9T,MAAAA,EACA+L,YAAAA,EACA4C,WAAAA,IAUF,OAPAqF,EAAe,CACbtD,iBAAAA,EACA/B,WAAAA,EACA6J,cAAAA,EACAW,YAAa7a,KAAK3C,kBAIlByT,EAAAA,EAAAA,KAACgK,EAAAA,GAAqB,CAACxd,SAAU8U,GAErC,GAAC,CAAAhU,IAAA,SAAAC,MAED,WACE,IAAA0c,EAEI/a,KAAKoQ,MADPO,EAAOoK,EAAPpK,QAASqK,EAAoBD,EAApBC,qBAAsBrG,EAAgBoG,EAAhBpG,iBAAkB3C,EAAa+I,EAAb/I,cAGnD,OACE8C,EAAAA,EAAAA,MAAC3E,EAAAA,SAAc,CAAAc,SAAA,EACV0D,IAAoB7D,EAAAA,EAAAA,KAACmK,GAAiB,KACzCnK,EAAAA,EAAAA,KAACoK,EAAAA,EAAwB,CACvBC,iBAAkBnb,KAAKob,mBACvBC,uBAAwBrb,KAAKsb,yBAC7Bhe,SAAU0C,KAAK4S,iBACfR,iBAAkBpS,KAAKoS,iBACvBmJ,cAAe,CACbC,mBAAmB,4CAADpY,OAA8CuN,EAAQjE,6BACxE+O,kBAAkB,GAADrY,OAAKuN,EAAQ7D,6BAEhC4O,aAAa,EACbV,qBAAsBA,EACtBW,eAAe,EACfC,8BAA4B,EAC5BC,SAAU7J,EAAc8J,eAAeC,YAEzCjL,EAAAA,EAAAA,KAACZ,GAAwB,CACvBlH,WAAYhJ,KAAK4R,mBACjBvB,WAAYrQ,KAAKqQ,eAIzB,IAAC,CApT8B,CAASF,EAAAA,eAqV1CuB,GAA4BsK,aAAe,CACzCpH,UAAW,MAGb,IAAMnE,GAAUvP,IAAAA,QACd+a,EAAAA,iBACAC,EAAAA,EACAC,EAAAA,eACAC,EAAAA,UACAC,EAAAA,gBACAC,EAAAA,GACAC,EAAAA,kBACA,SAAAC,GAAI,OAAI9L,EAAAA,EAAAA,mBAAkB8L,EAAMjQ,GAAU,IAC1CkQ,EAAAA,EAAAA,GAA0B,CAAEC,iBpB/XvB,SAAyBpe,GAK5B,IAJFyC,EAAIzC,EAAJyC,KACAvC,EAAWF,EAAXE,YACAme,EAAkBre,EAAlBqe,mBACAC,EAAUte,EAAVse,WAEA,SAASC,EAAeC,GACtB,OAAO,WACL,IAAAC,EAGIH,IAFF1C,EAAa6C,EAAb7C,cAII8C,EAHYD,EAAhB3K,iBAGqCnS,KAAK3C,SAAS0f,gBAC/CC,EAAe/b,IAAAA,MAAQ8b,EAAe,MAE5C9C,EAAc4C,GAAYG,EAAa,GACzC,CACF,CAEA,IAAMhJ,GAAwBiJ,EAAAA,EAAAA,IAAW,CACvC,CAAC,cAAe,CACdvG,GAAI,cACJ7K,KAAM,WACN6E,QAAS,CAAC,eACVwM,kBAAmB,UACnBpa,KAAMhC,EAAK+C,UAAUjC,QACrBub,KAAM,CACJC,MAAO,CACL,CACE1G,GAAI,gBACJ7K,KAAM,SACN6E,QAAS,CAAC,mCACVwM,kBAAmB,YACnBpa,KAAMhC,EAAK+C,UAAUjC,UACrByb,QAAST,EAAe,sBAE1B,CACE/Q,KAAM,oBAER,CACE6K,GAAI,gBACJ7K,KAAM,SACN6E,QAAS,CAAC,4CACV5N,KAAMhC,EAAK+C,UAAUjC,mBACrByb,QAAST,EAAe,wBAKhC,CAAC,WAAY,CACX/Q,KAAM,aAER,CAAC,yBAA0B,CACzB6K,GAAI,yBACJ7K,KAAM,6BAIJgC,EAAkB3Q,EAAkCqB,GA8D1D,MAAO,CACLyV,sBAAAA,EACAC,yBA9D8BgJ,EAAAA,EAAAA,IAAW,CACzC,CAAC,gBAAiB,CAChBvG,GAAI,gBACJ7K,KAAM,WACN6E,QAAS,CAAC,eACVwM,kBAAmB,SACnBpa,KAAMhC,EAAK+C,UAAUjC,UACrBub,KAAM,CACJC,MAAOnc,IAAAA,IAAM4M,GAAiB,SAAC/K,EAAM4T,GAAE,MAAM,CAC3CA,GAAAA,EACA5T,KAAMhC,EAAK+C,UAAUf,GACrBua,QAAS,WACP,IAAMC,GACJzM,EAAAA,EAAAA,KAAC0M,EAAAA,EAAiC,CAChCC,YAAaC,EAAAA,EAAqCC,cAClDC,cAAejH,EACfnY,YAAaA,EACbqf,UAAW,WACTlB,EAAmB,MACnBC,IAAavM,YACf,EACAyN,iBAAkB,WAChBlB,IAAavM,YACf,EACA0N,SAAU,WACRpB,EAAmB,KACrB,IAGJA,EAAmBY,EACrB,EACD,OAGL,CAAC,iBAAkB,CACjB5G,GAAI,iBACJ7K,KAAM,WAER,CAAC,WAAY,CACXA,KAAM,aAER,CAAC,oBAAqB,CACpB6K,GAAI,oBACJ7K,KAAM,eAER,CAAC,mBAAoB,CACnB6K,GAAI,mBACJ7K,KAAM,aAER,CAAC,0BAA2B,CAC1B6K,GAAI,0BACJ7K,KAAM,aAER,CAAC,kBAAmB,CAClB6K,GAAI,kBACJ7K,KAAM,WACNqR,kBAAmB,kBAQzB,IoByPgBjc,CAUdwQ,G,sEGvYK,IAAMsM,EAAa,CACxBC,QAAS,yBACTC,QAAS,yBACTC,QAAS,yBACTC,oBAAqB,qCACrBC,uBAAwB,wC,2LCKbC,EAAkD,SAACpd,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CACvF+R,cAAe1O,OAAO2O,OACpB,CAAC,GACDC,EAAAA,EAAAA,MACAC,EAAAA,EAAAA,aAAY,CAAEjS,QAAAA,KACdkS,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,KAEpB,WAAWmS,EAAAA,EAAAA,QACT,CAAC,GACDC,EAAAA,EAAAA,gBAAe,CAAEpS,QAAAA,KACjBqS,EAAAA,EAAAA,gBAAe,CAAErS,QAAAA,KACjBsS,EAAAA,EAAAA,GAAmB,CAAEtS,QAAAA,KACrBuS,EAAAA,EAAAA,GAAuB,CAAEvS,QAAAA,KAE5B,C,2KCrBYwS,EAAuB,SAAH3gB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAEzD,gCAAiC,CAC/B0S,WAAY,GACZC,YAAa,GAEb,wBAAyB,CACvBC,kBAAmB,QACnBC,gBAAiB5S,EAAQ6S,MACzBC,OAAQ,OAER,OAAQ,CACN,OAAQ,CACNC,kBAAmB,MACnBC,kBAAmB,UACnBC,eAAgB,MAChBC,eAAgB,UAChBC,WAAY,OACZ,iBAAiBjB,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,eAC9C,wBAAyBvL,IAAAA,SAAW,CAClC2e,IAAK,IACJlB,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,2BAKtC,qBAAsB,CACpB,OAAQ,CACNmT,WAAY,OACZE,cAAe,SAEf,OAAQ,CACNF,WAAY,OACZG,WAAY,UAGd,YAAa,CACXZ,YAAa,OAGf,4BAA6B,CAC3BA,YAAa,QAGf,yBAA0B,CACxBA,YAAa,SAIjB,UAAW,CACT,wBAAyB,CACvB,UAAW,CACTa,QAAS,gBAGX,wBAAyB,CACvBd,WAAY,OAGd,WAAY,CACVc,QAAS,eACT3O,UAAW,EACX4O,WAAY,SACZf,WAAY,GACZ5N,aAAc,EAEd,qBAAsB,CACpBzE,WAAYJ,EAAQ6S,MACpBY,MAAO,OACPC,SAAU,OACVxT,QAAS,EACTwS,YAAa,QAGf,qBAAsB,CACpBtS,WAAYJ,EAAQ6S,MACpBY,MAAO,OACPC,SAAU,OACVxT,QAAS,EACTuS,WAAY,QAGd,uBAAwB,CACtBgB,MAAO,GACPf,YAAa,OAOvB,UAAW,CACTiB,YAAa,SACbC,SAAU,OAGV,0BAA2B,CACzB,QAAS,CACP,kBAAmB,CACjBH,MAAO,QACPC,SAAU,SAEZ,2BAA4B,CAC1BD,MAAO,QACPC,SAAU,SAEZ,+BAAgC,CAC9BD,MAAO,QACPC,SAAU,SAEZ,iBAAkB,CAChBD,MAAO,QACPC,SAAU,SAEZ,eAAgB,CACdD,MAAO,QACPC,SAAU,aAMrB,EC7HYG,EAAyB,SAAHhiB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAE3D,mCAAoC,CAClC,yCAA0C,CACxCP,OAAQ,GACR+T,QAAS,OACTnT,WAAYJ,EAAQ8T,eACpBN,WAAY,UACZO,aAAc,oBACdC,cAAe,MACfrK,SAAU,WAEV,kCAAmC,CACjC4J,QAAS,OACTrT,QAAS,oBACT0E,UAAW,OACX4O,WAAY,WACZzO,WAAY,SACZF,aAAc,OAEd,YAAa,CACX6N,YAAa,GAGf,uCAAwC,CACtCuB,WAAY,WACZL,SAAU,GACVT,WAAY,OACZI,QAAS,OACTC,WAAY,SACZrT,MAAOH,EAAQkU,gBAKrB,kCAAmC,CACjCzB,WAAY,GACZwB,WAAY,WACZE,UAAW,SACXb,WAAY,IACZM,SAAU,OACVT,WAAY,OACZvO,UAAW,OACXC,aAAc,QAGhB,qCAAsC,CACpC4N,WAAY,GACZwB,WAAY,WACZL,SAAU,OACVT,WAAY,OACZtO,aAAc,QAGhB,mCAAoC,CAClC4N,WAAY,GAEZ,yCAA0C,CACxCwB,WAAY,WACZE,UAAW,SACXb,WAAY,IACZM,SAAU,OACVT,WAAY,UAInB,ECtDYiB,EAAsC,SAAC3f,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAC3E+R,cAAe1O,OAAO2O,OACpB,CAAC,GACDC,EAAAA,EAAAA,MACAqC,EAAAA,EAAAA,GAAoB,CAAErU,QAAAA,IACtBwS,EAAqB,CAAExS,QAAAA,IACvB6T,EAAuB,CAAE7T,QAAAA,KACzBiS,EAAAA,EAAAA,aAAY,CAAEjS,QAAAA,KACdkS,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,KAEpB,WAAWmS,EAAAA,EAAAA,QACT,CAAC,GACDC,EAAAA,EAAAA,gBAAe,CAAEpS,QAAAA,KACjBqS,EAAAA,EAAAA,gBAAe,CAAErS,QAAAA,KAEpB,C,wMC3BYsU,EAA2B,CACtC,uBAAwB,CACtBf,QAAS,SACT,wBAAyB,CACvBpT,MAAO,UACPwJ,SAAU,WACV4J,QAAS,SACT,UAAW,CACTpT,MAAO,WAET,wCAA2C,CACzCwJ,SAAU,WACV4K,KAAM,KAER,kDAAqD,CACnD5K,SAAU,WACV4K,KAAM,KAER,kCAAmC,CACjCC,OAAQ,oBACRC,UAAW,sBACXrU,WAAY,OACZF,QAAS,oBACT0E,UAAW,EACX+E,SAAU,WACVmJ,OAAQ,IACRM,IAAK,OACLmB,KAAM,IACNhB,QAAS,OACT,WAAY,CACVpT,MAAO,UACPyT,SAAU,GACVN,WAAY,OACZH,WAAY,QAEd,wBAAyB,CACvBhT,MAAO,UACPyT,SAAU,GACVT,WAAY,OACZ,YAAa,CACXS,SAAU,GACVc,MAAO,OACPpB,WAAY,MACZZ,YAAa,KAEf,wBAAyB,CACvBgC,MAAO,OACPjC,WAAY,EACZC,YAAa,GAEf,oBAAqB,CACnBgC,MAAO,OACPjC,WAAY,EACZC,YAAa,EACbvS,MAAO,WAET,OAAQ,CACNyE,UAAW,kBACXC,aAAc,kBACd+O,SAAU,OACVT,WAAY,OACZG,WAAY,UAKpB,gCAAmC,CACjC,wBAAyB,CACvBG,MAAO,OACPjU,OAAQ,OACRkU,SAAU,IACViB,UAAW,KAGf,+BAAkC,CAChC,wBAAyB,CACvBlB,MAAO,OACPjU,OAAQ,OACRkU,SAAU,IACViB,UAAW,IAGf,gCAAmC,CACjCxU,MAAO,UACP4T,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,sBAEhB,wBAAyB,CACvBN,MAAO,OACPjU,OAAQ,OACRkU,SAAU,IACViB,UAAW,IAGf,+BAAkC,CAChCxU,MAAO,UACPwJ,SAAU,WACV4J,QAAS,SACTQ,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,sBAEhB,wBAAyB,CACvBN,MAAO,OACPjU,OAAQ,OACRkU,SAAU,IACViB,UAAW,IAGf,wCAA2C,CACzCxU,MAAO,UACP4T,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,sBAEhB,wBAAyB,CACvBN,MAAO,OACPjU,OAAQ,OACRkU,SAAU,QACViB,UAAW,MACX,OAAQ,CACNxB,WAAY,UAIlB,oCAAuC,CACrChT,MAAO,UACP4T,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,sBAEhB,wBAAyB,CACvBN,MAAO,OACPjU,OAAQ,OACRkU,SAAU,QACViB,UAAW,QAGf,+BAAkC,CAChC,wBAAyB,CACvBlB,MAAO,OACPjU,OAAQ,OACRkU,SAAU,QACViB,UAAW,QAGf,qCAAwC,CACtC3B,kBAAmB,UACnBL,kBAAmB,SACnBI,kBAAmB,OAErB,4BAA+B,CAC7B5S,MAAO,UACP4T,aAAc,qBACd,UAAW,CACT5T,MAAO,YAGX,sCAAyC,CACvCA,MAAO,UACP,UAAW,CACTA,MAAO,YAGX,wCAA2C,CACzCA,MAAO,UACP,UAAW,CACTA,MAAO,YAGX,kCAAqC,CACnCA,MAAO,UACPwJ,SAAU,WACV4J,QAAS,SACTQ,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,uBAGlB,oDAAuD,CACrD5T,MAAO,UACPwJ,SAAU,WACV4J,QAAS,SACTQ,aAAc,qBACd,UAAW,CACT5T,MAAO,UACP4T,aAAc,yB,uBC5LTa,EAAuB,SAAH/iB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAChD,CACC,iCAAkC,CAChC,cAAe,CACb0S,WAAY,GACZ,mBAAoB,CAClBc,QAAS,iBAGb,mBAAoB,CAClB3O,UAAW,IAIb,uBAAwB,CACtBiQ,OAAQ,QACRtB,QAAS,OACTC,WAAY,SACZsB,eAAgB,SAEhB,gBAAiB,CACfvB,QAAS,eACTb,YAAa,GAEbqC,IAAK,CACHtB,MAAO,IACPjU,OAAQ,MAIZ,mBAAoB,CAClB+T,QAAS,eACTpT,MAAO,UACP6U,QAAS,IACTC,WAAY,IACZ,iBAAkB,CAChBC,SAAU,IACVtB,SAAU,GACViB,OAAQ,aAEV,sBAAoB9jB,EAAAA,EAAAA,GAAA,CAClB6iB,SAAU,GACVN,WAAY,WACTtO,EAAAA,EAAAA,oBAAmB,CAAEhF,QAAAA,KAE1B,uBAAwB,CACtBuT,QAAS,cACT,kCAAmC,CACjCb,YAAa,GAEf,2CAA4C,CAC1C8B,OAAQ,oBACRhV,OAAQ,GACR8T,WAAY,OACZ6B,aAAc,MAOtB,kCAAmC,CACjC1B,MAAO,OACPC,SAAU,IACVwB,SAAU,KACVE,eAAgB,cAChB,iBAAkB,CAChBnB,WAAY,+BACZL,SAAU,GACVpU,OAAQ,OACRoT,gBAAiB5S,EAAQqV,aACzBlV,MAAOH,EAAQ6S,MACf3S,QAAS,WACTiV,aAAc,MACdN,OAAQ,YACR,UAAW,CACTjC,gBAAiB,YAGrB,iCAAkC,CAChC+B,UAAW,IACX9P,aAAc,GACd4O,MAAO,IACPe,OAAQ,oBACRC,UAAW,sBACXR,WAAY,gCACZL,SAAU,GACVzT,MAAO,UACPmV,oBAAqB,OACrBC,iBAAkB,iBAClB,oBAAqB,CACnBC,WAAY,OACZC,aAAc,OACd3Q,YAAa,OACbkQ,QAAS,IACT,oCAAkCjkB,EAAAA,EAAAA,GAAA,IAC7B2kB,EAAAA,EAAAA,GAAgB,CAAE1V,QAAAA,MAGzB,qBAAsB,CACpB2V,UAAW,oBACX/Q,UAAW,GACXoQ,QAAS,IACTO,iBAAkB,iBAClB,0BAA2B,CACzB,2CAA4C,CAC1CnV,WAAY,qBACZmT,QAAS,OACT,sCAAuC,CACrC2B,SAAU,MACVhV,QAAS,iBACT6E,WAAY,SACZ6Q,SAAU,SACVC,aAAc,YAEhB,sCAAuC,CACrCX,SAAU,MACVhV,QAAS,mBAGb,mDAAoD,CAClD,mBAAoB,CAClBE,WAAY,uBAGhB,iBAAiB8R,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,eAC9C,wBAAyBvL,IAAAA,SAAW,CAClC2e,IAAK,IACJlB,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,yBAElC,oBAAqB,CACnBI,WAAY,UACZ4U,QAAS,IACT,0BAA2B,CACzBzB,QAAS,aACTF,cAAe,SACfC,WAAY,OACZnT,MAAO,UACPX,OAAQ,GACRU,QAAS,aAGb,6BAA8B,CAC5B6T,aAAc,oBACd7T,QAAS,GACTqT,QAAS,OACTyB,QAAS,IACTM,oBAAqB,mBACrB,4BAA6B,CAC3B/B,QAAS,SAEX,kBAAmB,CACjB0B,WAAY,IACZ,yBAA0B,CACxBrB,SAAU,GACVN,WAAY,OACZnT,MAAO,WAET,sBAAuB,CACrByT,SAAU,GACVN,WAAY,SACZnT,MAAO,UACPyE,UAAW,GACX,YAAU7T,EAAAA,EAAAA,GAAA,IACLiU,EAAAA,EAAAA,oBAAmB,CAAEhF,QAAAA,OAI9B,+BAAgC,CAC9BuT,QAAS,cACT3O,UAAW,EACX,mBAAoB,CAClBzE,MAAO,UACPmT,WAAY,OACZZ,YAAa,GAEf,sBAAuB,CACrB,uBAAwB,CACtBA,YAAa,IAGjB,oBAAqB,CACnBD,WAAY,GAEd,uBAAwB,CACtBtS,MAAOH,EAAQ8V,OAEjB,wBAAyB,CACvBrD,WAAY,GAEd,mBAAoB,CAClBA,WAAY,KAIlB,uBAAwB,CACtBwC,WAAY,MAGhB,qBAAmBlkB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACjB0kB,aAAc,OACd3Q,YAAa,OACbkQ,QAAS,IACT,2BAA4B,CAC1B,0BAA2B,CACzBpQ,UAAW,GACXgP,SAAU,GACVN,WAAY,SACZnT,MAAO,WAET,oBAAqB,CACnB0U,OAAQ,aACRjB,SAAU,GACVN,WAAY,SACZnT,MAAO,WAET,2CAA4C,CAC1C0U,OAAQ,cAEV,iCAAkC,CAChCA,OAAQ,SACRc,UAAW,qBAEb,yBAA0B,CACxB/B,SAAU,GACVN,WAAY,SACZnT,MAAO,WAET,iCAAkC,CAChC0U,OAAQ,cAEV,4CAA6C,CAC3CpB,MAAO,OACPF,QAAS,OACTrT,QAAS,sBACT0T,SAAU,GACVF,SAAU,IACVqC,UAAW,OACXC,UAAW,aACXxB,OAAQ,oBACR5P,UAAW,GACXC,aAAc,GACd8P,UAAW,IACX,kBAAmB,CACjBpB,QAAS,OACTS,cAAe,SACf,QAAS,CACPU,MAAO,OACPhC,YAAa,EACbe,MAAO,IACPjU,OAAQ,KAGZ,cAAe,CACbW,MAAO,UACPyT,SAAU,IAEZ,oBAAqB,CACnBzT,MAAO,UACPgT,WAAY,OACZS,SAAU,IAEZ,iBAAkB,CAChBzT,MAAO,UACPyT,SAAU,KAGd,oCAAqC,CACnC,sBAAuB,CACrBW,KAAM,IACNnB,IAAK,IACLjT,MAAO,UACPC,WAAY,cACZ6V,WAAY,OACZtM,SAAU,WACViK,SAAU,IAEZ,4BAA6B,CAC3BW,KAAM,KAER,yBAA0B,CACxB2B,UAAW,kBACX3B,KAAM,MACN4B,QAAS,EACTxM,SAAU,WACV8J,MAAO,GACP,OAAQ,CACNA,MAAO,EACPe,OAAQ,oBACRhV,OAAQ,EACRqV,OAAQ,aACRzU,WAAY,OACZ+U,aAAc,IAEhB,YAAa,CACXX,OAAQ,oBACRpU,WAAY,gBAKjBgW,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,KAAU,IAC3B,uBAAwB,CACtBsT,WAAY,IACZ+C,SAAU,GACVlW,MAAO,WAET,yCAA0C,CACxCD,QAAS,sBACT,uCAAwC,CACtCuT,MAAO,OACPvT,QAAS,sBACTE,WAAYJ,EAAQ6S,MACpB2B,OAAQ,wBAId,oBAAqB,CACnB8B,cAAe,OACfb,aAAc,OACd3Q,YAAa,OACb+P,OAAQ,aACRG,QAAS,IACT,oBAAqB,CACnB,WAAY,CACVf,WAAY,+BACZX,WAAY,OACZM,SAAU,GACVhB,gBAAiB5S,EAAQqV,aACzBlV,MAAOH,EAAQ6S,MACf3S,QAAS,WACTsU,OAAQ,kBACRK,OAAQ,YACR,UAAW,CACTjC,gBAAiB,aAIvB,sBAAuB,CACrB,WAAY,CACVqB,WAAY,+BACZX,WAAY,OACZM,SAAU,GACVhB,gBAAiB5S,EAAQ6S,MACzB1S,MAAO,UACPD,QAAS,WACTsU,OAAQ,kBACRK,OAAQ,YACR,UAAW,CACTjC,gBAAiB,cAKzB,iBAAkB,CAChBjJ,SAAU,WACVsK,WAAY,+BACZL,SAAU,GACV1T,QAAS,WACT2U,OAAQ,QACRM,aAAc,MACd3V,OAAQ,OACR+W,UAAW,aACX/B,OAAQ,oBACRlB,WAAY,OACZ,cAAe,CACbkD,QAAS,KAGb,uBAAwB,CACtBhX,OAAQ,MAId,gBAAiB,CACfA,OAAQ,EACRiU,MAAO,KACPrT,WAAY,UACZqS,WAAY,IAEd,+BAAgC,CAC9BA,WAAY,GACZmB,SAAU,GACVhP,UAAW,GACX0O,WAAY,OACZC,QAAS,eAEX,gBAAiB,CACfpT,MAAOH,EAAQqV,aACfzB,SAAU,GACVnB,WAAY,GAEd,uBAAwB,CACtBW,IAAK,EACL9S,QAAS,WACTqJ,SAAU,WACVsK,WAAY,sBAIhB,kBAAmB,CACjBrP,UAAW,GACXqP,WAAY,gCACZ,UAAW,CACT,OAAQ,CACNL,SAAU,GACVzT,MAAO,UACPmT,WAAY,OACZgD,cAAe,OACfb,aAAc,OACd,eAAgB,CACdA,aAAc,SAIpB,UAAW,CACT,OAAQ,CACN7B,SAAU,GACVzT,MAAO,YAGX,OAAQ,CACNyT,SAAU,GACVN,WAAY,SACZnT,MAAO,UACPmW,cAAe,EACfjD,cAAe,MACfoC,aAAc,OACd,aAAc,aACd,eAAgB,CACdA,aAAc,OAEhB,mCAAoC,CAClChD,WAAY,GACZ6C,oBAAqB,UACrB9B,WAAY,SACZ,cAAe,CACbd,YAAa,EACbsC,QAAS,IACTC,WAAY,KAEd,iBAAkB,CAChBD,QAAS,IACTC,WAAY,MAGhB,yBAA0B,CACxB1B,QAAS,QACT2B,SAAU,IACVU,SAAU,SACVC,aAAc,WACd9Q,WAAY,UAEd,0BAA2B,CACzBwO,QAAS,QACT2B,SAAU,IACVU,SAAU,SACVC,aAAc,WACd9Q,WAAY,UAEd,4BAA6B,CAC3BwO,QAAS,QACT2B,SAAU,IACVU,SAAU,SACVC,aAAc,WACd9Q,WAAY,UAEd,2BAA4B,CAC1BwO,QAAS,QACT2B,SAAU,IACVU,SAAU,SACVC,aAAc,WACd9Q,WAAY,YAIlB,gBAAiB,CACf,6BAA8B,CAC5BD,YAAa,GACb0Q,WAAY,EACZ3Q,aAAc,QACd,qBAAsB,CACpBzE,WAAY,UACZoU,OAAQ,oBACR+B,UAAW,aACXpB,aAAc,MACdvB,SAAU,OACVnB,WAAY,QACZK,OAAQ,OAId,eAAgB,CACd,OAAQ,CACN0B,OAAQ,oBACR,uBAAwB,CACtB5B,gBAAiB,UACjBzS,MAAO,OACPmT,WAAY,QAEd,iBAAkB,CAChBmD,YAAa,KAEf,MAAO,CACLvW,QAAS,oBACTsU,OAAQ,OACRlB,WAAY,YAIlB,mBAAoB,CAClB,wBAAyB,CACvB,WAAY,CACVkB,OAAQ,iBACRtU,QAAS,kBACT6V,UAAW,UAGf,iBAAkB,CAChBtC,MAAO,MAGZ,EC1gBUiD,EAAsB,SAAH7kB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAC/C,CACC,iCAAkC,CAChC,oCAAqC,CACnC4J,SAAU,WACViK,SAAU,GACVoB,QAAS,IACTzB,QAAS,OACTsB,OAAQ,oBACRL,OAAQ,iBACRC,UAAW,6EACXU,aAAc,EACd,4BAA6B,CAC3B5B,QAAS,SAEX,kCAAmC,CACjC+B,oBAAqB,iBACrB,mBAAoB,iBAEtB,0BAA2B,CACzB,0BAA2B,CACzBpV,QAAS,sBACT8U,QAAS,IACTzB,QAAS,OACT+B,oBAAqB,oCACrBvB,aAAc,+BACd,yBAA0B,CACxBpK,SAAU,WACVwL,aAAc,MACd1B,MAAO,GACPjU,OAAQ,GACR,SAAU,CACRW,MAAOH,EAAQ6S,MACflJ,SAAU,WACViK,SAAU,GACVW,KAAM,MACNoC,MAAO,MACPvD,IAAK,MACL+C,OAAQ,QAGZ,2BAA4B,CAC1BvC,SAAU,GACVN,WAAY,MACZb,WAAY,GACZwC,WAAY,IACZ2B,UAAW,SACXzW,MAAOH,EAAQ6W,eACf1D,WAAY,OACZpO,WAAY,UAEd,2BAA4B,CAC1B6R,UAAW,SACXnE,WAAY,EACZwC,WAAY,IACZrB,SAAU,GACVxT,WAAY,UACZoU,OAAQ,oBACR+B,UAAW,aACXpB,aAAc,GACd1B,MAAO,GACPvT,QAAS,iBAEX,mCAAoC,CAClCuS,WAAY,EACZmE,UAAW,SACX,wBAAyB,CACvB9R,YAAa,GACb2Q,aAAc,IAEhB,8BAA+B,CAC7B3Q,YAAa,EACb2Q,aAAc,EACda,cAAe,KAIrB,0BAA2B,CACzB,2CAA4C,CAC1ClW,WAAY,qBACZmT,QAAS,OACT,sCAAuC,CACrC2B,SAAU,MACVhV,QAAS,iBACT6E,WAAY,SACZ6Q,SAAU,SACVC,aAAc,YAEhB,sCAAuC,CACrCX,SAAU,MACVhV,QAAS,mBAGb,mDAAoD,CAClD,mBAAoB,CAClBE,WAAY,uBAGhB,iBAAiB8R,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,eAC9C,wBAAyBvL,IAAAA,SAAW,CAClC2e,IAAK,IACJlB,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAAW,yBAElC,iCAAkC,CAChCE,QAAS,qBACT0T,SAAU,GACVN,WAAY,MACZH,WAAY,QACZhT,MAAOH,EAAQ6W,gBAEjB,iBAAkB,CAChBzW,WAAY,WAEd,8BAA+B,CAC7BF,QAAS,mBACT0T,SAAU,GACVzT,MAAO,UACPgT,WAAY,OACZG,WAAY,MACZ,YAAUviB,EAAAA,EAAAA,GAAA,IACLiU,EAAAA,EAAAA,oBAAmB,CAAEhF,QAAAA,KAE1B,wCAAyC,CACvC2J,SAAU,WACVwM,OAAQ,SAGZ,+BAAgC,CAC9B5C,QAAS,cACT3O,UAAW,EACX1E,QAAS,aACT,mBAAoB,CAClBC,MAAO,UACPmT,WAAY,OACZZ,YAAa,GAEf,oBAAqB,CACnBD,WAAY,GAEd,uBAAwB,CACtBtS,MAAOH,EAAQ8V,OAEjB,wBAAyB,CACvBrD,WAAY,GAEd,mBAAoB,CAClBA,WAAY,IAGhB,uCAAwC,CACtCvS,QAAS,mBACT0T,SAAU,GACVzT,MAAOH,EAAQ8W,iBAEf,eAAgB,CACdC,eAAgB,aAGlB,gDAAiD,CAC/CA,eAAgB,YAChBpN,SAAU,WAEV,mDAAoD,CAClDoN,eAAgB,OAChBpN,SAAU,WACV4K,KAAM,EACN3P,UAAW,MACX1E,QAAS,OACTuU,UAAW,6EACXD,OAAQ,OACR1B,OAAQ,GACRF,gBAAiB5S,EAAQ6S,MACzB9N,WAAY,SACZ2O,SAAU,QAEV,qCAAsC,CACpChB,YAAa,WAKrB,oCAAqC,CACnCxS,QAAS,mBACT0T,SAAU,GACVzT,MAAO,UACPgT,WAAY,OACZG,WAAY,MACZ,4BAA6B,CAC3BkC,WAAY,MAIlB,mBAAoB,CAClBwB,WAAY,qBAEd,+BAAgC,CAC9B9W,QAAS,GACT+U,WAAY,KAEd,kCAAmC,CACjC,mDAAoD,CAClDxC,WAAY,IAGhB,uBAAwB,CACtBjT,OAAQ,MAIf,ECnNUyX,EAAwB,SAAHplB,GAAAA,EAAMmO,QAAY,MAAQ,CAC1D,oCAAqC,CACnCG,MAAO,UACPyT,SAAU,GACVK,WAAY,gCACZV,QAAS,OACT2D,UAAW,CACT,CACE3D,QAAS,aAGbgC,iBAAkB,iBAClBjC,WAAY,SACZ,uBAAwB,CACtBnT,MAAO,WAET,sBAAuB,CACrBA,MAAO,WAET,6BAA8B,CAC5BsT,MAAO,IAGP0D,EAAG,IACHnC,QAAS,KAEX,kEAAmE,CACjEvB,MAAO,IACPN,WAAY,OACZ3T,OAAQ,OACR2X,EAAG,IACHnC,QAAS,IACTpB,SAAU,GACVN,WAAY,OACZ,mBAAoB,CAClBM,SAAU,uBAGd,eAAgB,CACdA,SAAU,GACVT,WAAY,QAEd,8BAA+B,CAC7BS,SAAU,GAEVH,MAAO,IACP1O,WAAY,WACZoS,EAAG,IACHnC,QAAS,KAEX,wBAAyB,CACvBH,OAAQ,aACRjB,SAAU,GAEVuD,EAAG,IACHnC,QAAS,IACT,8BAA+B,CAC7B,EAEF,8BAA+B,CAC7B,GAGJ,uBAAwB,CACtBpB,SAAU,GAEVuD,EAAG,IACHnC,QAAS,IACT,6BAA8B,CAC5B,EAEF,6BAA8B,CAC5B,GAGJ,mBAAoB,CAClBpB,SAAU,GAEVzT,MAAO,UACPgX,EAAG,IACHnC,QAAS,IACT,yBAA0B,CACxB,EAEF,yBAA0B,CACxB,GAGJ,mBAAoB,CAClBH,OAAQ,aACRjB,SAAU,GAEVuD,EAAG,IACHnC,QAAS,MAGd,EClGYoC,EAAyB,SAAHvlB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAY,MAAQ,CAE3D,oBAAqB,CACnB2J,SAAU,QACVyJ,IAAK,IACLmB,KAAM,IACNoC,MAAO,IACPR,OAAQ,IACRvD,gBAAiB,qBACjBE,OAAQ,OACR,oBAAqB,CACnB,mBAAoB,CAClBW,MAAO,KAET,WAAY,CACVkD,MAAO,EACPvD,IAAK,EACLzJ,SAAU,YAEZ,qBAAsB,CACpB6L,WAAY,GACZjC,QAAS,gBAEX,qBAAsB,CACpBE,MAAO,GACPjU,OAAQ,GACRkT,YAAa,GACb8B,OAAQ,oBACRlB,WAAY,QAEd3J,SAAU,WACVyJ,IAAK,MACLmB,KAAM,MACNqB,SAAU,OACVyB,QAAS,OACTnB,UAAW,uBACXxD,YAAa,OACbe,MAAO,IACPjU,OAAQ,IACRU,QAAS,GACTsU,OAAQ,oBACRpU,WAAY,OACZD,MAAO,SAKX,+CAAgD,CAC9CwJ,SAAU,QACVyJ,IAAK,IACLmB,KAAM,IACNoC,MAAO,IACPR,OAAQ,IACRvD,gBAAiB,qBACjBE,OAAQ,OACR,+CAAgD,CAC9CnJ,SAAU,WACVyJ,IAAK,MACLmB,KAAM,MACNqB,SAAU,OACVyB,QAAS,OACTnB,UAAW,uBACXxD,YAAa,OACbe,MAAO,IACPvT,QAAS,GACTsU,OAAQ,oBACRpU,WAAY,OACZD,MAAO,OACP,mDAAoD,CAClD2E,YAAa,EACb,oDAAqD,CACnD2O,MAAO,IACPH,WAAY,OACZM,SAAU,SAId,sBAAuB,CACrBL,QAAS,eACTb,YAAa,OAEf,iCAAkC,CAChCa,QAAS,gBAEX,iBAAkB,CAChB,SAAU,CACRb,YAAa,IAGjB,iBAAkB,CAChB9N,UAAW,GAEb,oBAAqB,CACnBzE,MAAO,OACPyS,gBAAiB,UACjB4B,OAAQ,kBAEV,OAAQ,CACNlB,WAAY,MACZ1O,UAAW,EACXC,aAAc,IAEhB,gBAAiB,CACfC,YAAa,GACbmP,WAAY,gCAEZ,uBAAwB,CACtBrB,gBAAiB,YAGrB,gBAAiB,CACfiC,OAAQ,SACR,oBAAqB,CACnBpC,WAAY,QAGhB,iBAAkB,CAChB5N,aAAc,MACdD,UAAW,OACX,aAAc,CACZpF,OAAQ,GACRiU,MAAO,IACPe,OAAQ,iBACRpU,WAAY,OACZyE,aAAc,MAOtB,kCAAmC,CACjC8E,SAAU,QACVgN,MAAO,GACPR,OAAQ,GACRrD,OAAQ,OACR,WAAY,CACV6D,MAAO,EACPvD,IAAK,EACLzJ,SAAU,aAGd,+BAAgC,CAC9B8J,MAAO,IACPvT,QAAS,GACTuU,UAAW,eACX7B,gBAAiB,OACjB,sCAAuC,CACrC9N,YAAa,EACb,uCAAwC,CACtC2O,MAAO,IACPH,WAAY,OACZM,SAAU,QAEZ,6CAA8C,CAC5CzT,MAAO,YAGX,kBAAmB,CACjBsS,WAAY,EACZ,mBAAoB,CAClB9I,SAAU,YAEZ,oBAAqB,CACnBA,SAAU,WACVyJ,IAAK,MACLmB,KAAM,QAER,mBAAoB,CAClBd,MAAO,GACPgC,aAAc,QAEhB,kBAAmB,CACjBhC,MAAO,IAET,mBAAoB,CAClB+B,WAAY,EACZc,cAAe,IAGnB,gBAAiB,CACfxR,YAAa,GACbmP,WAAY,gCAEZ,uBAAwB,CACtBrB,gBAAiB,WAEnB,oBAAqB,CACnBzS,MAAO,UACPyS,sBA7LwC,IAAA7S,EAAG,CAAC,EAACA,GA6LpBsV,aACzBb,OAAQ,sBAGZ,gBAAiB,CACf3P,aAAc,iBACdD,UAAW,IAEb,iBAAkB,CAChB,aAAc,CACZpF,OAAQ,GACRiU,MAAO,IACPe,OAAQ,iBACRpU,WAAY,OACZyE,aAAc,IAGlB,aAAc,CACZ2Q,WAAY,EACZ,yBAA0B,CACxBA,WAAY,GACZrV,MAAO,OACP2E,YAAa,GACb,yBAA0B,CACxBA,YAAa,EACb2O,MAAO,IACPF,QAAS,eACTF,cAAe,QAGnB,YAAa,CACXX,YAAa,KAGjB,WAAY,CACVvS,MAAO,UACPyT,SAAU,SAGf,ECpOY0D,EAA0B,SAAHzlB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAE5D,kCAAmC,CACjC,qBAAsB,CACpB6S,gBAAiB5S,EAAQqV,aACzBlV,MAAOH,EAAQ6S,MACfqC,SAAU,QACVhV,QAAS,OAET,gBAAiB,CACf+T,WAAY,+BACZ7T,WAAY,OACZF,QAAS,EACTyJ,SAAU,WACVyJ,IAAK,MACLuD,MAAO,MACPnC,OAAQ,OACRrU,MAAOH,EAAQ6S,MACf6B,MAAO,QACP9B,gBAAiB,cACjB,UAAW,CACT2E,aAAc,oBAEhB,UAAW,CACTpX,MAAO,gCACPC,WAAY,oBACZoU,OAAQ,SAIZ,YAAa,CACX3P,aAAc,MAEd,WAAY,CACVoP,WAAY,WACZE,UAAW,SACXb,WAAY,IACZM,SAAU,OACVT,WAAY,SAIhB,WAAY,CACVtO,aAAc,OAEd,qBAAsB,CACpBA,aAAc,MACdoP,WAAY,WACZL,SAAU,OACVT,WAAY,QAGd,sBAAuB,CACrBc,WAAY,WACZE,UAAW,SACXb,WAAY,IACZM,SAAU,OACVT,WAAY,SAIhB,YAAa,CACXI,QAAS,OACTC,WAAY,SAEZ,aAAc,CACZD,QAAS,eAET,wBAAyB,CACvBnT,WAAYJ,EAAQ6S,MACpBsC,aAAc,MACdX,OAAQ,OACRrU,MAAOH,EAAQqV,cAGjB,wBAAyB,CACvB5C,WAAY,MACZtS,MAAOH,EAAQ6S,MACfzS,WAAY,OACZoX,YAAaxX,EAAQ6S,MACrB2B,OAAQ,YACRW,aAAc,QAIlB,gBAAiB,CACf5B,QAAS,eACTd,WAAY,UAKlB,qBAAsB,CACpBG,gBAAiB5S,EAAQqV,eAG9B,EC3EKoC,EAAY,CAChBlE,QAAS,OACTmE,KAAM,UACN9B,SAAU,OACV5B,cAAe,UAIJ2D,EAA+B,SAACljB,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CACpE+R,cAAe1O,OAAO2O,OACpB,CAAC,GACDC,EAAAA,EAAAA,MACAqC,EAAAA,EAAAA,GAAoB,CAAErU,QAAAA,IACtB4U,EAAqB,CAAE5U,QAAAA,IACvB0W,EAAoB,CAAE1W,QAAAA,IACtBsU,GACArC,EAAAA,EAAAA,aAAY,CAAEjS,QAAAA,KACdkS,EAAAA,EAAAA,iBAAgB,CAAElS,QAAAA,IAClBiX,EAAsB,CAAEjX,QAAAA,KACxB4X,EAAAA,EAAAA,qBAAoB,CAAE5X,QAAAA,KACtB6X,EAAAA,EAAAA,gBAAe,CAAE7X,QAAAA,KAEnB,WAAWmS,EAAAA,EAAAA,QACT,CAAC,GACDC,EAAAA,EAAAA,gBAAe,CAAEpS,QAAAA,KACjBqS,EAAAA,EAAAA,gBAAe,CAAErS,QAAAA,IACjBoX,EAAuB,CAAEpX,QAAAA,KACzBsS,EAAAA,EAAAA,GAAmB,CAAEtS,QAAAA,KACrBuS,EAAAA,EAAAA,GAAuB,CAAEvS,QAAAA,IACzBsX,EAAwB,CAAEtX,QAAAA,IAC1B,CACE,wBAAyByX,EACzB,4BAA6BA,EAC7B,2BAA4BA,EAC5B,0BAA2BA,EAC3B,uBAAwBA,EAExB,yBAA0B,CACxBlE,QAAS,OACTuB,eAAgB,UAGlB,oBAAqB,CACnBhC,OAAQ,IACR,sBAAuB,CACrB,UAAW,CACTS,QAAS,QACT1O,aAAc,GACd,uBAAwB,CACtB0O,QAAS,QAEX,sBAAuB,CACrBzO,YAAa,EACb,uBAAwB,CACtByO,QAAS,YAOnB,2BAA4B,CAC1BA,QAAS,QAGX,iCAAkC,CAChCE,MAAO,IACP,2CAA4C,CAC1CA,MAAO,IACPmC,SAAU,SACVrC,QAAS,OACTuB,eAAgB,gBAChBtB,WAAY,SACZ,WAAY,CACVgB,OAAQ,QAEV,mBAAoB,CAClBf,MAAO,IACP,mBAAoB,CAClBsC,UAAW,OACXF,aAAc,WACdtC,QAAS,QACTqC,SAAU,WAGd,sCAAuC,CACrCtV,QAAS,WACT2T,WAAY,qBAEd,6BAA8B,CAC5B9T,MAAO,WAET,eAAgB,CACd0E,aAAc,IAGlB,mBAAoB,CAClBD,UAAW,IACXiQ,OAAQ,EACR3U,QAAS,GACToW,cAAe,EACf7C,MAAO,IACPyC,UAAW,kBACX,wBAAyB,CACvB1W,OAAQ,KAEV,6BAA8B,CAC5BmK,SAAU,WACV,kBAAmB,CACjB7E,YAAa,IAEf,6BAA8B,CAC5BsO,IAAK,EACLmB,KAAM,EACN5K,SAAU,WACVxJ,MAAO,UACPG,QAAS,WACT2T,WAAY,sBAGhB,sBAAuB,CACrBzU,OAAQ,IACRoF,UAAW,EACX4P,OAAQ,kBACRW,aAAc,MACdS,SAAU,SACVkC,UAAW,OACX,OAAQ,CACNlE,SAAU,IAEZ,cAAe,CACbxT,WAAY,WAEd,mBAAoB,CAClBZ,OAAQ,GACRU,QAAS,aAEX,kBAAmB,CACjBV,OAAQ,GACRU,QAAS,GACTuV,aAAc,GACdsC,OAAQ,UACRnC,SAAU,SACV7Q,WAAY,SACZ8Q,aAAc,WACd,UAAW,CACTzV,WAAY,WAEd,gBAAiB,CACfsS,YAAa,GACbW,cAAe,cAIrB,mBAAoB,CAClBE,QAAS,OACTuB,eAAgB,SAChBtB,WAAY,SACZhU,OAAQ,GACR,kBAAmB,CACjB+T,QAAS,QAEX,UAAW,CACT3O,UAAW,GAEb,iBAAkB,CAChBmR,UAAW,SACXnR,UAAW,GAEb,sBAAuB,CACrB6N,WAAY,GAEd,mBAAoB,CAClBrS,WAAY,OACZD,MAAO,WAET,WAAY,CACV,8CAA+C,CAC7CG,QAAS,WACT2T,WAAY,qBAEd,+CAAgD,CAC9C3T,QAAS,WACT2T,WAAY,qBAEdP,SAAU,GACVwB,SAAU,GACVV,OAAQ,OACR/B,WAAY,GACZC,YAAa,GACb9N,UAAW,EACX,eAAgB,CACd+R,MAAO,EACPvD,IAAK,EACLyB,OAAQ,EACR1U,MAAO,YAGX,UAAW,CACTsT,MAAO,GACPf,YAAa,MAKrB,4BAA6B,CAC3B7N,aAAc,GACd,qBAAsB,CACpB0O,QAAS,OACTE,MAAO,IACPN,WAAY,SACZ/S,WAAY,UACZwE,UAAW,EACX,oBAAqB,CACnBgP,SAAU,GACVF,SAAU,GACViB,UAAW,GACXpB,QAAS,OACTyE,WAAY,EACZ7X,MAAOH,EAAQiY,OACfpD,OAAQ,oBAEV,aAAc,CACZA,OAAQ,kBACRjB,SAAU,MAIhB,eAAgB,CACdhP,UAAW,GAEb,gBAAiB,CACf6P,UAAW,6EACXD,OAAQ,OACR,2BAA4B,CAC1BtU,QAAS,iBAEX,2BAA4B,CAC1B,6BAA8B,CAC5BA,QAAS,oBAEX,4BAA6B,CAC3BA,QAAS,GACT,kBAAmB,CACjBqT,QAAS,QAEX,kBAAmB,CACjBb,YAAa,GACb,aAAc,CACZkB,SAAU,GACVN,WAAY,OAEd,OAAQ,CACNpT,QAAS,IACToW,cAAe,GACf9B,OAAQ,OACRiC,YAAa,kBACb,+BAAgC,CAC9BnW,QAAS,WACT2T,WAAY,qBAEd,iCAAkC,CAChC3T,QAAS,WACT2T,WAAY,sBAGhB,YAAa,CACXqC,cAAe,GAEjB,cAAe,CACb5C,SAAU,IACVwB,SAAU,KAEZ,eAAgB,CACdxB,SAAU,GACVwB,SAAU,IACVpQ,YAAa,GACbyR,UAAW,eAEb,qBAAsB,CACpBrW,QAAS,SAOnB,wCAAyC,CACvC,8BAA+B,CAC7B6W,eAAgB,OAChBgB,OAAQ,qBACR5X,MAAO,oBAGT,SAAU,CACRsV,aAAc,GAGhB,mBAAoB,CAClByC,cAAe,cAGjB,sBAAuB,CACrBpT,YAAa,IAMjB,6BAA8B,CAC5B6P,UAAW,KAEb,gCAAiC,CAC/Bc,aAAc,IAEhB,gBAAiB,CACf/B,SAAU,KACViB,UAAW,KAEb,iBAAkB,CAChBO,SAAU,QACVU,SAAU,QAEZ,sFAAuF,CACrF,yBAA0B,CACxBhR,UAAW,kBAGb,sBAAuB,CACrB2O,QAAS,mBAGX,wBAAyB,CACvBE,MAAO,oBAGT,gBAAiB,CACfA,MAAO,qBAGX,iGAAkG,CAChG,yCAA0C,CACxCF,QAAS,OACTsB,OAAQ,YACRsD,SAAU,SACVxC,UAAW,oBACX,cAAe,CACbxV,MAAO,UACPyT,SAAU,OACVhP,UAAW,QAEb,sBAAuB,CACrBzE,MAAO,UACPyT,SAAU,OACVhP,UAAW,UAIjB,oDAAkD7T,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAC7CqnB,EAAAA,EAAAA,IAA2B,CAAEpY,QAAAA,KAAU,IAC1C,gBAAiB,CACfyT,MAAO,oBAGT,wCAAyC,CACvC3O,YAAa,GACb,2BAA4B,CAC1BiS,eAAgB,SAIpB,uDAAwD,CACtDxD,QAAS,UAGX,4CAA6C,CAC3CK,SAAU,mBAGZ,4BAA6B,CAC3B,sFAAuF,CACrFnB,WAAY,GAGd,uCAAwC,CACtCgB,MAAO,IACPjU,OAAQ,IACRsF,YAAa,GAGf,qBAAsB,CACpB2O,MAAO,uBAIb,iBAAkB,CAChBoB,OAAQ,YAEV,oCAAqC,CACnC/B,OAAQ,WAEV,6BAA8B,CAC5BJ,YAAa,kBAEf,oCAAqC,CACnCkB,SAAU,qBAIjB,C,4gBClaD,SAASyE,EAAkBC,GACzB,OAAOA,EAHiB,4CADH,kCAKvB,CAEA,SAASC,EAAc1mB,GAEnB,IADF2mB,EAAa3mB,EAAb2mB,cAAenZ,EAAIxN,EAAJwN,KAAMpK,EAAKpD,EAALoD,MAAKwjB,EAAA5mB,EAAE6mB,SAAAA,OAAQ,IAAAD,GAAQA,EAAAE,EAAA9mB,EAAE+mB,OAAAA,OAAM,IAAAD,EAAG,KAAIA,EAEvDld,EAAQod,EAAAA,MAAkBL,GAM9B,GALInZ,EACF5K,IAAAA,OAASgH,EAAO,CAAEqd,mBAAoBzZ,IAC5BqZ,IACVjd,EAAQhH,IAAAA,KAAOgH,EAAO,uBAEpBxG,EAAO,CACT,IACE8jB,EACE9jB,EADF8jB,UAAWC,EACT/jB,EADS+jB,WAAYC,EACrBhkB,EADqBgkB,UAEzB,OADIhkB,EADgCikB,SAGlC,KAAKC,EAAAA,EAAgBC,QACnB3kB,IAAAA,OAASgH,EAAO,CAAE1F,IAAKkjB,EAAWD,WAAAA,EAAYD,UAAAA,IAC9C,MACF,KAAKI,EAAAA,EAAgBE,SACnB5d,EAAQhH,IAAAA,MAAQgH,GACb6d,KAAK,aACLnH,OAAO,CAAEpc,IAAKkjB,EAAWD,WAAAA,IACzBpnB,QACH,MACF,KAAKunB,EAAAA,EAAgBI,QACnB9d,EAAQhH,IAAAA,MAAQgH,GACb6d,KAAK,aAAc,aACnBnH,OAAO,CAAEpc,IAAKkjB,IACdrnB,QACH,MACF,KAAKunB,EAAAA,EAAgBK,SACrB,QACE/d,EAAQhH,IAAAA,KAAOgH,EAAO,MAAO,aAAc,aAGjD,CAMA,OALIhH,IAAAA,OAASmkB,GACXnd,EAAQhH,IAAAA,KAAOgH,EAAO,UAEtBhH,IAAAA,OAASgH,EAAO,CAAEmd,OAAAA,IAEbC,EAAAA,UAAsBpd,EAC/B,CAEA,SAASge,EAAYC,EAASpB,GAC5BoB,EAAQC,KAAK,CACXljB,SAAS,GAADE,OAAK0hB,EAAkBC,GAAM,WACrCsB,OAAQrB,EAAe,CAAEC,cAAekB,EAAQG,SAASD,OAAQlB,UAAU,KAE/E,CAEA,SAASoB,EAAaJ,EAASK,GAC7BL,EAAQC,KAAK,CACXljB,SAAUsjB,EAAwB,GAAApjB,OAAM0hB,GAAkB,GAAM,qBAAsB,kCACtFuB,OAAQrB,EAAe,CAAEC,cAAekB,EAAQG,SAASD,OAAQlB,UAAU,KAE/E,CAEA,SAASsB,EAAQN,GACfO,OAAOC,KAAK,0BAADvjB,OAA2B4hB,EAAe,CAAEC,cAAekB,EAAQG,SAASD,OAAQlB,UAAU,KAC3G,CAEA,SAASyB,EAAaT,EAASpB,EAAOre,GACpC,OAAO,WACLyf,EAAQC,KAAK,CACXljB,SAAS,GAADE,OAAK0hB,EAAkBC,IAAM3hB,OAAGsD,GACxC2f,OAAQrB,EAAe,CAAEC,cAAekB,EAAQG,SAASD,UAE7D,CACF,CAEA,SAASQ,EAAqBV,EAASpB,GACrC,IAAM+B,EAAgB5lB,IAAAA,SAAW,CAAC,WAAY,QAAS,iBAAjCA,CAAmDilB,GACnEY,EAAoB7lB,IAAAA,QAAU4lB,GAC4D,GAA9FA,EAAcE,UAAUF,EAAcG,YAAY,KAAO,EAAGH,EAAcG,YAAY,MACxF,OAAO,WACLd,EAAQC,KAAK,CACXljB,SAAS,GAADE,OAAK0hB,EAAkBC,IAAM3hB,OAAGlC,IAAAA,SAAWgmB,EAAAA,IAA2BH,GAC5EA,EAAmBG,EAAAA,IAA0BC,KAC/Cd,OAAQrB,EAAe,CAAEC,cAAekB,EAAQG,SAASD,OAAQlB,UAAU,KAE/E,CACF,CAEA,SAASiC,EAAYjB,EAASpB,GAC5BoB,EAAQC,KAAK,CACXljB,SAAS,GAADE,OAAK0hB,EAAkBC,GAAM,OACrCsB,OAAQrB,EAAe,CACrBC,cAAekB,EAAQG,SAASD,OAChC3kB,MAAO,CACLikB,QAASZ,EAAQa,EAAAA,EAAgBK,SAAWL,EAAAA,EAAgBI,YAIpE,CAEA,SAASqB,EAAYlB,EAASmB,EAAiBxb,GAAoB,IAAdyb,EAAItpB,UAAAqU,OAAA,QAAAC,IAAAtU,UAAA,GAAAA,UAAA,GAAG,KAE1D,OADAqpB,IACO,WACLnB,EAAQC,KAAK,CACXC,OAAQrB,EAAe,CACrBC,cAAekB,EAAQG,SAASD,OAChCva,KAAAA,EACApK,MAAO6lB,KAGb,CACF,CAEA,SAASC,EAAerB,EAASmB,EAAiBxb,EAAMyb,EAAM7gB,GAE5D,OADA4gB,IACO,WACLnB,EAAQC,KAAK,CACXljB,SAAS,GAADE,OAAK0hB,GAAkB,IAAM1hB,OAAGsD,GACxC2f,OAAQrB,EAAe,CACrBC,cAAekB,EAAQG,SAASD,OAChCva,KAAAA,EACApK,MAAO6lB,EACPlC,OAAQoC,EAAAA,IAAcC,qBAG5B,CACF,CAEO,I,uQCpICC,GAAiBC,EAAAA,EAAjBD,aAsBFE,GAAqBnB,OAAOoB,iBAAiBrqB,IAAI,qEACjDsD,GAAO2lB,OAAOoB,iBAAiBrqB,IAAI,qEACnCe,GAAc8K,EAAAA,QAAU7L,IAAI,eAC5BiL,GAASge,OAAOoB,iBAAiBrqB,IAAI,0BAE9BsqB,GAAiB,CAC5B,oEAAqEF,GACrE,+CAAgDG,EAAAA,EAChD,mEAAoEC,EAAAA,EACpE,mDAAoDC,EAAAA,EACpD,0DAA2DC,GAAAA,EAC3D,2CAA4CC,EAAAA,QAC5C,yBAA0B9e,EAAAA,QAC1B,wBAAyBvD,EAAAA,EACzB,mCAAoCyP,EAAAA,QACpC,gCAAiC,CAAEmS,aAAAA,IACnC,qCAAsCU,GAAAA,QACtCrQ,YAAasQ,GAAAA,EACbC,UAAWC,GAAAA,EACX,+BAAgCC,GAAAA,QAChC,qEAAsEC,GAAAA,EACtE,qCAAsCC,GAAAA,EACtC,+CAAgDC,GAAAA,EAChD,0CAA2C,CAAEC,SAAAA,GAAAA,SAAUC,WAAAA,GAAAA,YACvD,yBAA0BpgB,GAC1B,gCAAiCqgB,GAAAA,EACjC,yCAA0CC,GAAAA,SAGrC,SAASC,KACd,MAAO,CACLC,KAAM,CACJlB,eAAAA,EAAAA,EACAC,cAAAA,EAAAA,EACAC,oBAAAA,EAAAA,EACA5e,UAAAA,EAAAA,QACAvD,SAAAA,EAAAA,EACAhF,KAAAA,GACAqnB,gBAAAA,EAAAA,QACA5S,OAAAA,EAAAA,QACAkT,kBAAAA,GAAAA,EACAf,aAAAA,GACAW,YAAAA,GAAAA,EACA9pB,YAAAA,GACA6pB,mBAAAA,GAAAA,QACAG,UAAAA,GAAAA,EACAL,YAAAA,GAAAA,EACAM,MAAAA,GAAAA,QACAG,iBAAAA,GAAAA,EACAD,UAAAA,GAAAA,EACAE,SAAAA,GAAAA,SACAC,WAAAA,GAAAA,WACApgB,OAAAA,GACAqgB,UAAAA,GAAAA,EACAC,aAAAA,GAAAA,QACAG,4BAAAA,GAAAA,EACAC,wBAAAA,IAGN,CCnFO,I,qCCDHC,GAAyB,K,iBCJhBC,GAAY5C,OAAOJ,SAASiD,KAAKC,QAAQ,OAAS,EAAI,aAAe,kEAErEte,GAAS,CACpBue,SAAU,CACR,CACE9nB,KAAM,wBACNtD,MAAO,wBACPqrB,QAAS,CAAC,EACVC,SAAU,CACR,CACEhoB,KAAM,wBACNtD,MAAO,yBAGT,CACEsD,KAAM,aACNtD,MAAO,cAET,CACEsD,KAAM,aACNtD,MAAO,cAET,CACEsD,KAAM,aACNtD,MAAO,cAET,CACEsD,KAAM,WACNtD,MAAO,YAET,CACEsD,KAAM,QACNtD,MAAO,SAET,CACEsD,KAAM,eACNtD,MAAO,gBAET,CACEsD,KAAM,0BACNtD,MAAO,2BAET,CACEsD,KAAM,0BACNtD,MAAO,2BAET,CACEsD,KAAM,0BACNtD,MAAO,2BAET,CACEsD,KAAM,+BACNtD,MAAO,gCAET,CACEsD,KAAM,6BACNtD,MAAO,kC,sCC3CV,IAAMurB,GAAiC,SAAC1oB,EAAC5C,GAAwB,IAADkO,EAAAlO,EAAnBmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EACxDqd,EAAeC,GAAAA,MAAKvmB,WAAC,EAAD,CACxB,CAAC,GAACH,QAAA2mB,EAAAA,GAAAA,GATN,SAAuBC,GAAmB,IAAD,IAAAC,EAAAhsB,UAAAqU,OAAR4X,EAAM,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANF,EAAME,EAAA,GAAAnsB,UAAAmsB,GACrC,IAAMC,EAAiBH,EAAO7c,KAAI,SAAAid,GAAC,OAAKC,EAAAA,EAAAA,YAAWD,GAAKA,EAAEN,GAASM,CAAC,IACpE,IAAIE,EAAAA,EAAAA,MAAKH,EAAgBI,EAAAA,SACvB,MAAM,IAAIC,MAAM,+BAElB,OAAOL,CACT,CAIOM,CAAc,CAAEle,QAAAA,GAAWqS,GAAAA,mBAEhC,MAAO,CACL,UAAW+K,EAEf,ECoDMe,GAAe,SAAAjZ,GACnB,SAAAiZ,EAAYxa,GAAQ,IAADjQ,EAIgD,OAJhDpC,EAAAA,EAAAA,GAAA,KAAA6sB,IACjBzqB,GAAAnC,EAAAA,EAAAA,GAAA,KAAA4sB,EAAA,CAAMxa,KA4BRya,WAAa,WACX,IAAA9W,EAMI5T,EAAKiQ,MADP2U,GAJahR,EAAb/B,cACK+B,EAALrS,MACWqS,EAAXvV,YACiBuV,EAAjBxL,kBACKwL,EAALgR,OAGF,OAAO5U,EAAAA,MAAW,WAChB,OH1G0B,MAA1BkZ,GACFA,GAAyB,IAAIpgB,KAAJ,EAAY,SAACC,IACpC4hB,EAAAA,GAAAA,GAA2B/C,IACxBzU,MAAK,SAACK,GACLzK,EAAQyK,EACV,GACJ,IAKK0V,IGiGA/V,MAAK,SAAAlF,GAA4B,IAAzB2c,EAAiB3c,EAAjB2c,kBACO3C,EAAsBa,KAA9BC,KAAQd,gBAChBA,EAAgB4C,YAAY9f,IAC5B,IAAM+f,EAAkB7C,EAAgB8C,sBAAsBhrB,SACxDirB,EAAkBF,EAAgBC,sBAAsBhrB,SACxDkrB,EAA4BrG,GAChCsG,EAAAA,EAAAA,MAAe,EAAfA,CAAsBN,IAAqBM,EAAAA,EAAAA,MAAe,EAAfA,EAAsBC,EAAAA,EAAAA,KAAWP,IACxEQ,ECtHkB,SAACC,GAC/B,IAAMjtB,EAAS,CACbktB,iBACE/E,OAAOgF,IAAIC,MAAMC,YAAYC,KAAKC,KAAKpF,OAAOgF,IAAIC,MAAMC,cAEtDG,EAAM,SAAA3b,GAAK,OACfU,EAAAA,EAAAA,KAAC0a,GAAgBhuB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACX4S,GACA7R,GACJ,EAOJ,OAJAwtB,EAAIC,YAAW,oBAAA5oB,QAAuB6oB,EAAAA,EAAAA,gBAAeT,GAAiB,KAEtEU,IAAqBH,EAAKP,GAEnBO,CACT,CDqGsCI,CJrHR,SAACX,GAC7B,IAAMO,EAAM,SAAA3b,GAAK,OACfU,EAAAA,EAAAA,KAAC0a,GAAgBhuB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACX4S,GACA6Y,MACJ,EAOJ,OAJA8C,EAAIC,YAAW,kBAAA5oB,QAAqB6oB,EAAAA,EAAAA,gBAAeT,GAAiB,KAEpEU,IAAqBH,EAAKP,GAEnBO,CACT,CIwGuD7P,EAAeE,EAAAA,EAAAA,MAAUgQ,EAAAA,EAAAA,GNiBlD,SAACZ,GAC7B,IAAMO,EAAM,SAAC3b,GACX,IACEkX,EAGElX,EAHFkX,gBACAnB,EAEE/V,EAFF+V,QACApB,EACE3U,EADF2U,MAGF,OACEjU,EAAAA,EAAAA,KAAC0a,GAAgBhuB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACX4S,GAAK,IACTwW,aAAc1lB,IAAAA,QAAU0lB,EAAcT,EAASpB,GAC/C8B,qBAAsB3lB,IAAAA,QAAU2lB,EAAsBV,EAASpB,GAC/DqC,YAAalmB,IAAAA,QAAUkmB,EAAajB,EAASpB,GAC7CsC,YAAanmB,IAAAA,QAAUmmB,EAAalB,EAASmB,GAC7CE,eAAgBtmB,IAAAA,QAAUsmB,EAAgBrB,EAASmB,GACnDpB,YAAahlB,IAAAA,QAAUglB,EAAaC,EAASpB,GAC7CwB,aAAcrlB,IAAAA,QAAUqlB,EAAcJ,GACtCM,QAASvlB,IAAAA,QAAUulB,EAASN,KAGlC,EAmBA,OAjBA4F,EAAIC,YAAW,kBAAA5oB,QAAqB6oB,EAAAA,EAAAA,gBAAeT,GAAiB,KAWpEO,EAAI/P,aAAe,CACjB+I,OAAO,GAGTmH,IAAqBH,EAAKP,GAEnBO,CACT,CM1D2FM,EAAeC,EAAAA,EAAAA,eAAaC,EAAAA,EAAAA,GAAa,CAC1HtB,gBAAAA,EACAE,gBAAAA,EACA7B,UAAAA,IAH6GiD,CAI5GnB,SACH,MAAO,CACL/V,QAASkW,EAEb,GACF,GACF,EAACprB,EAEDqsB,aAAe,SAACC,EAAqBC,GAAkB,OACpDxrB,IAAAA,QACCA,IAAAA,KAAOurB,EAAqB,aAAc,aAC1CvrB,IAAAA,KAAOwrB,EAAoB,aAAc,aAC1C,EACFvsB,EAEDwsB,sCAAwC,WACtC,IAAMD,EAAqBpH,EAAAA,MAAkBnlB,EAAKiQ,MAAM+V,QAAQG,SAASD,SACrElmB,EAAKysB,YAAYrH,oBAAsBplB,EAAKysB,YAAYvH,SAC1DllB,EAAKiQ,MAAM+V,QAAQC,KAAK,CACtBC,OAAQf,EAAAA,UAAsBpkB,IAAAA,KAC5BwrB,EACA,qBACA,YAIR,EAACvsB,EAEDmnB,gBAAkB,WAChBnnB,EAAK0sB,aAAc,CACrB,EAAC1sB,EAED2sB,uBAAyB,WACvB,IAAQ3G,EAAYhmB,EAAKiQ,MAAjB+V,QAER,OAAOA,EAAQG,SAASpjB,SAAS6pB,WAAW,oCAC1C5G,EAAQG,SAASpjB,SAAS6pB,WAAW,2CACzC,EAvFE5sB,EAAK6sB,oBAAqBC,EAAAA,EAAAA,gBAC1B9sB,EAAK+sB,2BAA6B/sB,EAAK0qB,aACvC1qB,EAAKysB,YAActH,EAAAA,MAAkBnlB,EAAKiQ,MAAMkW,SAASD,QAAQlmB,CACnE,CAAC,OAAAjC,EAAAA,EAAAA,GAAA0sB,EAAAjZ,IAAAxT,EAAAA,EAAAA,GAAAysB,EAAA,EAAAxsB,IAAA,qBAAAC,MAED,SAAmB8uB,GACbA,EAAUtb,EAAAA,oBAAoBnN,gBAAkB1E,KAAKoQ,MAAMyB,EAAAA,oBAAoBnN,eACjFyoB,EAAUzrB,QAAU1B,KAAKoQ,MAAM1O,QAC3ByrB,EAAUC,eAAiBptB,KAAKoQ,MAAMgd,cACxCD,EAAUtb,EAAAA,oBAAoBnN,gBAAkB1E,KAAKoQ,MAAMyB,EAAAA,oBAAoBnN,eAC3E1E,KAAKoQ,MAAMid,WAAarP,GAAAA,EAAWG,SAAWgP,EAAUE,WAAarP,GAAAA,EAAWG,SAClFne,KAAK2sB,wCAGL3sB,KAAKwsB,aAAaxsB,KAAK4sB,YAAatH,EAAAA,MAAkBtlB,KAAKoQ,MAAM+V,QAAQG,SAASD,WACpFrmB,KAAKgtB,oBAAqBC,EAAAA,EAAAA,iBAE5BjtB,KAAK4sB,YAActH,EAAAA,MAAkBtlB,KAAKoQ,MAAMkW,SAASD,QAE7D,GAAC,CAAAjoB,IAAA,uBAAAC,MAED,WACO2B,KAAK8sB,0BACR9sB,KAAK2sB,uCAET,GAAC,CAAAvuB,IAAA,SAAAC,MAgED,WACE,IAAAqW,EAUI1U,KAAKoQ,MATP4B,EAAa0C,EAAb1C,cACAtQ,EAAKgT,EAALhT,MACAlD,EAAWkW,EAAXlW,YACA4uB,EAAY1Y,EAAZ0Y,aACArsB,EAAI2T,EAAJ3T,KACA4H,EAAU+L,EAAV/L,WACA0kB,EAAQ3Y,EAAR2Y,SACAtI,EAAKrQ,EAALqQ,MACAuI,EAAsC5Y,EAAtC4Y,uCAGIC,GAAkBC,EAAAA,EAAAA,sCAAqCxtB,KAAKoQ,MAAMyB,EAAAA,oBAAoBnN,eAC5F1E,KAAK4sB,YAActH,EAAAA,MAAkBtlB,KAAKoQ,MAAMkW,SAASD,QACzD,IAAQd,EAAuBvlB,KAAK4sB,YAA5BrH,mBACFkI,EAAU1I,EAAQ0C,EAAAA,IAAcC,kBAAoBD,EAAAA,IAAciG,eAClEnvB,EAAS,CACbwL,GAAI,wBACJvL,YAAAA,EACAkD,MAAO,CACLgkB,UAAWhkB,EAAMY,OAAOE,IACxBgjB,UAAW9jB,EAAMY,OAAOkjB,UACxBmI,qBAAsB3b,EAAc8J,eAAe8R,qBACnDC,OAAQ7b,EAAc8b,YAAYrrB,GAClCgjB,WAAY/jB,EAAMY,OAAOmjB,WACzBsI,WAAYrsB,EAAMY,OAAOC,IACzByrB,MAAOhc,EAAcic,OAEvBR,QAAAA,EACAJ,SAAUA,IAAansB,IAAAA,SAAWgtB,EAAAA,IAA4BT,GAAUlI,GACtEvH,GAAAA,EAAWE,QAAUF,GAAAA,EAAWC,SAClCtV,WAAAA,GAEIwlB,EAAY,CAChBC,kBAAAA,EAAAA,kBACAC,wBAAAA,EAAAA,wBACAC,yBAAAA,EAAAA,EACAC,iBAAAA,EAAAA,EACAC,QAASztB,EACT+Z,sBAAAA,EAAAA,GACAI,yBAAAA,EAAAA,EACAuT,iBAAAA,EAAAA,GACAC,iCAAAA,EAAAA,GACAC,gBAAAA,EAAAA,SAGF,OACE7d,EAAAA,EAAAA,KAAC8d,EAAAA,SAAQ,CAAA3d,UACPH,EAAAA,EAAAA,KAAA,OAAKC,UAAW8d,IAAW,CAAC,uBAAwB7uB,KAAKoQ,MAAMO,QAAQ4N,gBAAiBuQ,MAAO,CAAE3K,KAAM,WAAYlT,UACjHH,EAAAA,EAAAA,KAACX,EAAAA,SAAc,CAAC4e,UAAUje,EAAAA,EAAAA,KAACke,EAAAA,wBAAuB,IAAI/d,UACpDH,EAAAA,EAAAA,KAAA,KAAMoc,4BAA0B1vB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC1Be,GAAM,IACV4vB,UAAWA,EACX7G,gBAAiBtnB,KAAKsnB,gBACtB2H,aAAc1B,EACdH,aAAcA,EACd7H,mBAAoBA,EACpBR,MAAOA,EACPuI,uCAAwCA,EACxC4B,KAAMlvB,KAAKgtB,mBACXhb,cAAeA,EACfrB,QAAS3Q,KAAKoQ,MAAMO,gBAMhC,IAAC,CAhKkB,CAASR,EAAAA,eA4M9Bya,GAAgB5O,aAAe,CAC7BhK,cAAe,CAAC,EAChBtQ,MAAO,CAAC,EACRlD,YAAa,CAAC,EACd2wB,gBAAiB,KACjBC,eAAgB,KAChB/B,SAAU,GACVtI,OAAO,EACPuI,uCAAwC,MAGnC,IAAM+B,IACXC,EAAAA,EAAAA,GAAkB1E,GAAiBhB,IA7OM,WAAH,OACtC,yCACGtW,MAAK,SAAAhV,GAA+B,MAAQ,CAC3CixB,iBADmCjxB,EAA5B8lB,6BAER,GAAE,GAyOkG,8BAE5FoL,IACXF,EAAAA,EAAAA,GAAkB1E,GAAiBhB,IAzOa,WAAH,OAC7C,wCACGtW,MAAK,SAAA9O,GAAsC,MAAQ,CAClD+qB,iBAD0C/qB,EAAnCqc,oCAER,GAAE,GAqOyG,8BAEnG4O,IACXH,EAAAA,EAAAA,GAAkB1E,GAAiBhB,IArOyB,WAAH,OACzD,yCACGtW,MAAK,SAAA3Q,GAAkD,MAAQ,CAC9D4sB,iBADsD5sB,EAA/C2b,gDAER,GAAE,GAiOqH,6B,iGErS/GG,EAAkB,WAAH,OAAAjhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAErBkyB,EAAAA,EAAAA,MAAe,IAElB,gDAAiD,CAC/C1P,QAAS,OACTC,WAAY,UAEd,mDAAoD,CAClDD,QAAS,OACTC,WAAY,YAEd,wEAAyE,CACvED,QAAS,OACTC,WAAY,YAEd,uFAAwF,CACtFzO,WAAY,OAEd,mHAAoH,CAClH8P,OAAQ,WAEV,2FAA4F,CAC1FpC,WAAY,OAEd,mEAAoE,CAClEjT,OAAQ,OACR+T,QAAS,OACTC,WAAY,SAEZ,WAAY,CACVS,WAAY,sBACZ3T,QAAS,aAGb,gCAAiC,CAC/BmS,WAAY,GACZsF,OAAQ,YACT,C,sHCxCQmL,EAAc,CACzB,uCAAwC,CACtCtN,SAAU,SAEV,uBAAwB,CACtB/Q,aAAc,QAGhB,6BAA8B,CAC5B0P,KAAM,WAER,4BAA6B,CAC3BA,KAAM,UACN9B,WAAY,OAEd,gCAAiC,CAC/Bc,QAAS,OACT+B,oBAAqB,YAEvB,qBAAsB,CACpB7C,WAAY,GACZC,YAAa,GACba,QAAS,OACT,UAAW,CACTA,QAAS,QAEX,YAAa,CACX5J,SAAU,YAEZ,yBAA0B,CACxB0J,cAAe,SACf0C,UAAW,SACXxC,QAAS,OACTC,WAAY,SACZtT,QAAS,GACTyJ,SAAU,WACVyJ,IAAK,GACL+C,OAAQ,IACR1C,MAAO,OACP,kBAAmB,CACjB5O,aAAc,IAGlB,wBAAyB,CACvB2Q,WAAY,EACZc,cAAe,EACf9W,OAAQ,GACR+T,QAAS,QACT,SAAU,CACRA,QAAS,aACTF,cAAe,YAIrB,qBAAsB,CACpBX,YAAa,GACb,OAAQ,CACN8B,OAAQ,mBAEV,iBAAkB,CAChB5P,UAAW,GAEX,2BAA4B,CAC1BzE,MAAO,uBAGX,gBAAiB,CACfuS,YAAa,GAEf,UAAW,CACTe,MAAO,OACP9J,SAAU,WACV,gBAAiB,CACfvJ,WAAY,4BAEd,OAAQ,CACN0E,YAAa,GACb2Q,aAAc,GACdtV,MAAO,UACPmT,WAAY,SACZ9T,OAAQ,IAEV,uBAAwB,CACtBsF,YAAa,EACbqO,WAAY,QAEd,OAAQ,CACN3T,OAAQ,GACR,OAAQ,CACNgW,WAAY,iBACZc,cAAe,mBAGnB,gBAAiB,CACfnW,MAAO,OACPmT,WAAY,OACZV,gBAAiB,qBACjBjJ,SAAU,YAEZ,uBAAwB,CACtBoK,aAAc,yBACdiD,WAAY,OACZrB,UAAW,yBACXnW,OAAQ,IACRiU,MAAO,IACPnT,QAAS,KACTqJ,SAAU,YAEZ,gBAAiB,CACfA,SAAU,WACV,qBAAsB,CACpBA,SAAU,WACVyJ,IAAK,EACLmB,KAAM,GAER,UAAW,CACTzP,YAAa,GACbqe,YAAa,EACb3L,YAAa,QAEf,2BAA4B,CAC1B1S,YAAa,IAEf,2BAA4B,CAC1BA,YAAa,OAKrB,8BAA+B,CAC7B4P,MAAO,QACP,oBAAqB,CACnBlV,OAAQ,IAEV,iBAAkB,CAChBkT,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,QAEf,kBAAmB,CACjBE,gBAAiB,UACjB4E,YAAa,OACb2L,YAAa,EACbhjB,MAAO,WChJTijB,EAAY,UACZC,EAAkB,O,YCOlBA,EAAkB,OCOXC,EAAsB,SAAC7uB,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,OAAOoS,EAAAA,EAAAA,QAC1D+Q,EDsLyB,SAAHnrB,GAAA,IAAMiI,EAAOjI,EAAPiI,QAAO,MAAQ,CAC3C,mBAAoB,CAClB4V,SAAU,UAGZ,yCAAuC7kB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAClCwyB,EAAAA,EAAAA,IAAsB,CAAEvjB,QAAAA,KAAU,IAErC6U,OAAQ,qBAER,qBAAsB,CACpB3U,QAAS,IAGX,kBAAmB,CACjB,iBAAkB,CAChBwS,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,WAIpB,CC7MC8Q,CAAY,CAAExjB,QAAAA,ID+MqB,SAAH9J,GAAA,IAAM8J,EAAO9J,EAAP8J,QAAOyjB,EAAAvtB,EAAEwtB,eAAAA,OAAc,IAAAD,EAAG,oBAAmBA,EAAA,MAAQ,CAC3F,oDAAkD1yB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAC7CqlB,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,MACd2jB,EAAAA,EAAAA,YAAmB,CAAE3jB,QAAAA,MACrBujB,EAAAA,EAAAA,IAAsB,CAAEvjB,QAAAA,MACxB4jB,EAAAA,EAAAA,oBAAmB,CAAE5jB,QAAAA,EAAS0jB,eAAAA,MAC9BG,EAAAA,EAAAA,kBAAiB,CAAE7jB,QAAAA,KAAU,IAEhC6U,OAAQ,qBACRe,SAAU,SACVjM,SAAU,WAGV,qCAAsC,CACpC4J,QAAS,QAGX,YAAa,CACXA,QAAS,QAGX,uBAAwB,CACtBA,QAAS,QAIX,wBAAyB,CACvB1O,aAAc,SAGhB,mBAAoB,CAClB+O,SAAU,OACVN,WAAY,KAGd,mCAAoC,CAClCzO,aAAc,QAGhB,6BAA8B,CAC5BA,aAAc,OACd4O,MAAO,SAGT,+BAAgC,CAC9B9J,SAAU,WACV4K,KAAM,MACNnB,IAAK,QAGP,uBAAwB,CACtBxO,UAAW,QAIb,6BAA8B,CAC5BA,UAAW,QAGb,wBAAyB,CACvBA,UAAW,QAGb,8BAA+B,CAC7BC,aAAc,QAGhB,kCAAmC,CACjC4N,WAAY,QAGd,+BAAgC,CAC9BK,OAAQ,GAIV,0CAA2C,CACzCS,QAAS,OAET,kDAAmD,CACjDrT,QAAS,YACT2E,aAAc,GAGhB,UAAW,CACT,aAAc,CACZzE,WAAY,QAGd,OAAQ,CACNoU,OAAQ,oBAGV,mBAAoB,CAClB1P,YAAa,KAKnB,0BAA2B,CACzBA,YAAa,OAGf,sBAAuB,CACrBgO,OAAQ,gBAGV,6BAA8B,CAC5BS,QAAS,gBAGX,uCAAwC,CACtCiC,WAAY,MACZ1Q,YAAa,MACb6P,UAAW,kBAGb,mDAAoD,CAClDmP,UAAW,SAGb,0CAA2C,CACzCrO,aAAc,OAGhB,iBAAkB,CAChB/C,YAAa,SAGlB,CC/UCqR,CAAsB,CAAE/jB,QAAAA,ICjBS,SAAHnO,GAAA,IAAMmO,EAAOnO,EAAPmO,QAAO,MAAQ,CACnD,iDAA+CjP,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAC7C8jB,OAAQ,qBACRe,SAAU,WACPoO,EAAAA,EAAAA,kBAAiB,CAAEhkB,QAAAA,KAAU,IAEhC,8BAA+B,CAC7B,uBAAwB,CACtB6U,OAAQ,GAER,gBAAiB,CACf,cAAe,CACbA,OAAQ,EAER,YAAa,CACXlL,SAAU,aAId,sBAAuB,CACrBzJ,QAAS,GAEX,4BAA6B,CAC3B,gBAAiB,CACf2U,OAAQ,kBACRpB,MAAO,OAEP,qCAAsC,CACpC9J,SAAU,YAGZ,uBAAwB,CACtB0J,cAAe,MACf0C,UAAW,OACXvB,OAAO,aAAD7d,OAAeqJ,EAAQikB,cAC7B3Q,WAAY,UAGd,gBAAiB,CACf,SAAU,CACRH,WAAY,WAS1B,WAAY,CACVV,WAAY,MAGjB,CDnCCyR,CAAoB,CAAElkB,QAAAA,IEnBW,SAACvL,EAAC5C,GAAA,IAAAkO,EAAAlO,EAAImO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAAokB,EAAAtyB,EAAE6xB,eAAAA,OAAc,IAAAS,EAAG,oBAAmBA,EAAA,MAAQ,CACjG,6CAA8C,CAC5C1Q,MAAO,OAEP,kEAAmE,CACjET,kBAAmB,WAGrB,wBAAyB,CACvB4C,SAAU,UAGZ,qBAAsB,CACpBpB,OAAQ,oBACR4P,SAAU,aACVxO,SAAU,SACVC,aAAc,YAGhB,0DAA2D,CACzDpC,MAAO,IACPC,SAAU,KAGZ,mBAAoB,CAClB,iBAAkB,CAChBhB,YAAa,EACb/I,SAAU,UAEZ,oBAAqB,CACnBxJ,MAAO,WAET,oBAAqB,CACnBA,MAAO,WAET,kBAAmB,CACjBA,MAAO,WAET,uBAAwB,CACtBA,MAAO,YAIX,mBAAoB,CAClBsT,MAAO,cACPsE,OAAQ,UACRxE,QAAS,SACTQ,aAAc,sBAGhB,gBAAiB,CACf7T,QAAS,EACT2E,aAAc,GAGhB,SAAU,CACRgQ,OAAQ,GAGV,gBAAiB,CACfL,OAAQ,OACRC,UAAW,QAEb,gBAAiB,CACfvU,QAAS,IAET,OAAQ,CACN0T,SAAU,GACVN,WAAY,SACZuB,OAAQ,eAIZ,uCAAwC,CACtCpC,WAAY,GAGd,mBAAoB,CAElB,+BAAgC,CAE9BkC,UAAW,IAEX,kGAAmG,CACjGpB,QAAS,OACTS,cAAe,SAEf,yDAA0D,CACxDqQ,MAAO,GAGT,yDAA0D,CACxDA,MAAO,EACPxf,aAAc,OAIlB,iCAAkC,CAChCyR,cAAe,EACfxR,YAAa,GACb6E,SAAU,WAEV,eAAgB,CACd8J,MAAO,IAEP,kBAAmB,CACjBe,OAAO,aAAD7d,OAAeqJ,EAAQ8W,kBAC7B/C,aAAc,EACdvU,OAAQ,IAGV,2BAA4B,CAC1BsT,OAAQ,EACRnJ,SAAU,WACV4K,KAAM,EACNpB,WAAY,OACZmR,cAAe,UAMrB,yCAA0C,CACxC7Q,MAAO,IACPjU,OAAQ,OACRkT,YAAa,EACb9N,UAAW,GACX1E,QAAS,EAGT,oBAAqB,CACnB4X,UAAW,OACXtY,OAAQ,IACRgV,OAAO,aAAD7d,OAAeqJ,EAAQ8W,oBAIjC,yCAA0C,CACxCrD,MAAO,IACPe,OAAO,aAAD7d,OAAeqJ,EAAQ8W,kBAC7BpE,YAAa,EACbxS,QAAS,EACTV,OAAQ,IAER,gBAAiB,CACfA,OAAQ,IACRsY,UAAW,QAEb,gBAAiB,CACfpD,MAAO,OACPhC,YAAa,KAIjB,mBAAoB,CAClBxS,QAAS,EAET,iBAAkB,CAChB0T,SAAU,GACVpU,OAAQ,OACR2T,WAAY,OACZjT,QAAS,UAIb,eAAgB,CACdA,QAAS,IAIb,8EAA+E,CAC7EA,QAAS,SAGX,mBAAoB,CAClBE,WAAY,WAGd,qBAAsB,CACpBuU,UAAW,GACXxB,WAAY,OACZyC,SAAU,SACVC,aAAc,WACd9Q,WAAY,SAEZ,qDAAsD,CACpD6Q,SAAU,SACVC,aAAc,WACd9Q,WAAY,UAGd,eAAgB,CACduO,WAAY,MAIhB,qBAAsB,CACpBoB,MAAO,QACP9P,UAAW,EACX,0BAA2B,CACzBuO,WAAY,YAIhB,mBAAoB,CAClBV,WAAY,GAGd,qBAAsB,CACpB5N,aAAc,GACd6N,YAAa,EACbD,WAAY,GAGd,0BAA2B,CACzBA,WAAY,GACZmD,SAAU,qBACVmB,eAAgB,kBAChB3W,WAAY,kBACZ6T,WAAYyP,EACZ3L,OAAQ,WAGV,iCAAkC,CAChCzX,QAAS,YAGX,yBAA0B,CACxBoS,YAAa,GACb9N,UAAW,EACX8P,MAAO,QACPT,WAAYyP,EACZxjB,QAAS,GAGX,gCAAiC,CAC/BI,QAAS,YAGX,2BAA4B,CAC1BmT,MAAO,cACPvT,QAAS,GAGX,uBAAwB,CACtB,OAAQ,CACNV,OAAQ,GACR2T,WAAY,OAEZ,MAAO,CACLE,cAAe,YAMrB,WAAY,CACV7T,OAAQ,OAER,gBAAiB,CACfkV,MAAO,QAEP,SAAU,CACRjC,WAAY,EACZY,cAAe,eAMvB,2BAA4B,CAC1BZ,WAAY,EACZ7N,UAAW,IAGb,cAAe,CACbA,UAAW,GACXC,aAAc,GACd8Q,UAAU,aAADhf,OAAeqJ,EAAQikB,eAGlC,sBAAuB,CACrB/jB,QAAS,QAET,oBAAqB,CACnBwS,YAAa,GACbW,cAAe,YAInB,gCAAiC,CAC/BI,MAAO,OAIT,iBAAkB,CAChB,SAAU,CACRtT,MAAO,uBAGX,iCAAkC,CAChCuU,MAAO,QACP,iBAAkB,CAChBhC,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,SAGjB,8CAA+C,CAC7CD,WAAY,EACZ7N,UAAW,GACX,QAAS,CACPzE,MAAO,YAGX,uCAAwC,CACtCwJ,SAAU,WACV+K,MAAO,OACPjB,MAAO,IACP+B,WAAY,OACZhW,OAAQ,IACRY,WAAY,OACZsS,YAAa,GACb,kCAAmC,CACjCkB,SAAU,GACVT,WAAY,MACZhT,MAAO,WAET,qCAAsC,CACpCqV,WAAY,EACZc,cAAe,EACf1C,SAAU,GACVN,WAAY,OACZH,WAAY,MACZhT,MAAO,UACP,qBAAsB,CACpBgW,OAAQ,EACRxM,SAAU,WACV2J,WAAY,SACZnT,MAAO,WAET,qBAAwB,CACtBA,MAAO,uBAGX,qCAAsC,CACpCyT,SAAU,GACVzT,MAAO,UACPgT,WAAY,QAGhB,2CAA4C,CAC1CxJ,SAAU,WACV+K,MAAO,OACPjB,MAAO,IACP+B,WAAY,OACZhW,OAAQ,IACRY,WAAY,OACZsS,YAAa,GACb,kCAAmC,CACjCkB,SAAU,GACVT,WAAY,MACZhT,MAAO,WAET,qCAAsC,CACpCqV,WAAY,EACZc,cAAe,EACf1C,SAAU,GACVN,WAAY,OACZH,WAAY,MACZhT,MAAO,UACP,qBAAwB,CACtBA,MAAO,uBAGX,qCAAsC,CACpCyT,SAAU,GACVzT,MAAO,UACPgT,WAAY,OAEd,MAAO,CACLhT,MAAO,UACPwJ,SAAU,WACV8I,WAAY,EACZW,IAAK,EACLsB,MAAO,QAET,2BAA4B,CAC1BA,MAAO,SAGX,sBAAuB,CACrB9P,UAAW,IAGb,cAAe,CACb2O,QAAS,QACT5J,SAAU,WACV,0BAA2B,CACzB4J,QAAS,oBAGb,cAAe,CACbA,QAAS,OACT5J,SAAU,WACVvJ,WAAY,OACZ+W,EAAG,sBACHoN,EAAG,sBACH9P,UAAW,sBACXD,OAAQ,gBACRrU,MAAO,UACPD,QAAS,kBACT+T,WAAY,QACZL,SAAU,GACVmC,UAAW,OACXmB,UAAW,CACT,CACEnB,UAAW,WAGf3C,KAAM,EACNmB,KAAM,IACNoC,OAAQ,IACR7D,OAAQ,KACRoC,SAAU,IACV,MAAO,CACLL,OAAQ,IAEV,SAAU,CACRlL,SAAU,WACVyJ,IAAK,GACLuD,MAAO,GACP/C,SAAU,EACVT,WAAY,IACZ,MAAO,CACL4D,eAAgB,OAChB5W,MAAO,WAET,UAAW,CACT,cAAe,CACboT,QAAS,YAMpB,CF5aCiR,CAAoB/vB,EAAG,CAAEuL,QAAAA,KACzBykB,EAAAA,EAAAA,qBGbwC,SAAH5yB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,OAAAhP,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IACpD2zB,EAAAA,EAAAA,uBAAsB,CAAE1kB,QAAAA,MACxB2kB,EAAAA,EAAAA,iBAAgB,CAAE3kB,QAAAA,MAClB4kB,EAAAA,EAAAA,sBAAqB,EAAC/M,EAAAA,EAAAA,gBAAe,CAAE7X,QAAAA,KAAY6kB,EAAAA,EAAAA,oBAAmB,CAAE7kB,QAAAA,QACxE8kB,EAAAA,EAAAA,gBAAe,CAAE9kB,QAAAA,IAAU,CHSV+kB,CAA2B,CAAE/kB,QAAAA,KFnBJ,CAC7C,sCAAuC,CACrCiU,WAAY,WACZE,UAAW,SACXP,SAAUyP,EACVlQ,WAAY,OACZhT,MAAO,UACPuT,SAAU,SACV,wBAAyB,CACvBqC,UAAW,QACX,iBAAkB,CAChBrD,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,SAGjB,kBAAmB,CACjBxS,QAAS,eAEX,eAAgB,CACdC,MAAO,UACP2E,YAAa,OACb8O,SAAU,OACVT,WAAY,QAEd,aAAc,CACZhT,MAAOijB,EACPte,YAAa,OACb8O,SAAU,OACV,oBAAqB,CACnBlB,YAAa,MACbD,WAAY,QACZtS,MAAO,YAGX,uBAAwB,CACtB0E,aAAc,OACd,WAAY,CACVD,UAAW,MACXC,aAAc,OACd1E,MAAOijB,EACPxP,SAAUyP,EACV,MAAO,CACL9P,QAAS,kBAIf,iBAAkB,CAChB1O,aAAc,OACd+Q,SAAU,SACVnC,MAAO,SACP,uBAAwB,CACtBG,SAAU,OACVT,WAAY,OACZ+C,UAAW,gBACX8O,gBAAiB,iBAEnB,iBAAkB,CAChBvP,aAAc,OACd/B,SAAU,QACV,WAAY,CACV9O,UAAW,MACXC,aAAc,OACd1E,MAAOijB,EACPxP,SAAUyP,GAEZ,iBAAkB,CAChBxe,aAAc,OACd,kBAAmB,CACjB6N,YAAa,QAGjB,iBAAkB,CAChB9N,UAAW,MACX6N,WAAY,OACZ+B,OAAQ,oBACRtU,QAAS,WACTqT,QAAS,QACT,gBAAiB,CACfiB,OAAQ,qBAEV,aAAc,CACZgD,YAAa,OACb5E,gBAAiB,WAEnB,kBAAmB,CACjB4B,OAAQ,OACR1P,YAAa,OACbuS,QAAS,OACTjX,WAAY,cACZ8U,SAAU,WAIhB,mBAAoB,CAClB8B,WAAY,iBACZlS,YAAa,OACb,UAAW,CACT5E,QAAS,OAEX,WAAY,CACVsV,WAAY,OACZO,UAAW,SACXtC,MAAO,OACP3O,YAAa,OACb2Q,aAAc,QAEhB,uBAAwB,CACtBtV,MAAOijB,EACPve,aAAc,OAEhB,oBAAqB,CACnB1E,MAAO,WAET,yBAA0B,CACxByT,SAAU,OACV/O,aAAc,OACdsO,WAAY,OACZG,WAAY,QAEd,wBAAyB,CACvBnT,MAAO,UACP0E,aAAc,QAEhB,yBAA0B,CACxB1E,MAAO,WAET,8BAA+B,CAC7B,cAAe,CACb2E,YAAa,EACb,yBAA0B,CACxBD,aAAc,MACd+O,SAAU,OACVT,WAAY,QAEd,yBAA0B,CACxBtO,aAAc,WAMxB,WAAY,CACV0O,QAAS,SAEX,kBAAmB,CACjBA,QAAS,kBC7IyB,SAAH1hB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAAQ,CAC7D,wCAAsChP,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACpCkjB,WAAY,WACZE,UAAW,SACXP,SAAUyP,EACVlQ,WAAY,OACZhT,MAAO,UACPuT,SAAU,WACP6P,EAAAA,EAAAA,IAAsB,CAAEvjB,QAAAA,KAAU,IACrC,SAAU,CACRyS,WAAY,EACZC,YAAa,GAEf,oBAAqB,CACnBa,QAAS,kBACT,2BAA4B,CAC1BE,MAAO,mBAGX,wBAAyB,CACvBsC,UAAW,QACX,iBAAkB,CAChBrD,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,SAGjB,kBAAmB,CACjBxS,QAAS,eAEX,eAAgB,CACdC,MAAO,UACP2E,YAAa,OACb8O,SAAU,OACVT,WAAY,QAEd,aAAc,CACZhT,MAzCY,UA0CZ2E,YAAa,OACb8O,SAAU,OACVhP,UAAW,OACX,oBAAqB,CACnB8N,YAAa,MACbD,WAAY,MACZtS,MAAO,YAGX,kBAAmB,CACjByS,gBAAiB,WAEnB,eAAgB,CACd/N,aAAc,OACd,WAAY,CACVD,UAAW,MACXC,aAAc,MACd0O,QAAS,QACTwD,eAAgB,cAGpB,iBAAkB,CAChBlS,aAAc,OACd4O,MAAO,SACP,sBAAuB,CACrB3O,YAAa,EACb,cAAe,CACbD,aAAc,OACd,eAAgB,CACd,oBAAqB,CACnB3E,QAAS,KAIf,mBAAoB,CAClB,WAAY,CACV2E,aAAc,OACd+O,SAAU,OACVN,WAAY,QAEd,cAAe,CACbxO,YAAa,EACb,yBAA0B,CACxBD,aAAc,UAKtB,uBAAwB,CACtB,uBAAwB,CACtB2P,OAAQ,oBACRtU,QAAS,OACT,WAAY,CACV6V,UAAW,SACXnC,SAAUyP,EACV/P,WAAY,QAEd,sBAAuB,CACrBV,gBAAiB,OACjBzS,MAAO,UACP4V,UAAW,QACXE,WAAY,OACZE,OAAQ,OACRQ,MAAO,OACPvD,IAAK,OACLmB,KAAM,OACNM,OAAQ,EACRpB,MAAO,OACPjU,OAAQ,OACR,2BAA4B,CAC1BW,MAAO,WAET,QAAS,CACPsT,MAAO,OACPjU,OAAQ,OACRW,MAAO,UACPkX,QAAS,OACT9D,QAAS,gBAEX,cAAe,CACbpT,MAAO,QAET,mCAAoC,CAClC,WAAY,CACVG,QAAS,WACT2T,WAAY,sBAGhB,kCAAmC,CACjCvB,YAAa,OACb,WAAY,CACVpS,QAAS,WACT2T,WAAY,uBAIlB,yBAA0B,CACxBkC,OAAQ,OACRtB,OAAQ,EACRlL,SAAU,WACV4K,KAAM,OACNwB,UAAW,OACX,OAAQ,CACNvW,OAAQ,MACRiU,MAAO,MACPoB,OAAQ,MACRnC,YAAa,iBACbuS,eAAgB,OAChB9P,aAAc,MACdX,OAAQ,oBACR5B,gBAAiB,QAEnB,YAAa,CACXA,gBAAiB,UACjB4B,OAAQ,SAGZ,gBAAiB,CACf5B,gBAAiB,OACjB0D,cAAe,OACf,oCAAqC,CACnCzR,aAAc,OACd4O,MAAO,QAET,qBAAsB,CACpBoB,OAAQ,eAKhB,yBAA0B,CACxBjB,SAAU,OACVT,WAAY,OACZG,WAAY,QAEd,yBAA0B,CACxBnT,MAAO,UACPyT,SAAU,SAGd,WAAY,CACVL,QAAS,SAEX,kBAAmB,CACjBA,QAAS,kBAGd,CC7KC2R,CAAyB,CAAEllB,QAAAA,IIvBmB,CAC9C,8CAA+C,CAC7CiU,WAAY,WACZE,UAAW,SACXP,SALoB,OAMpBT,WAAY,OACZhT,MAAO,UACPuT,SAAU,SACVxT,QAAS,SACT,SAAU,CACRuS,WAAY,EACZC,YAAa,EACb,cAAe,CACbxS,QAAS,IAGb,wBAAyB,CACvB6V,UAAW,QACXnR,UAAW,OACX,iBAAkB,CAChB8N,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,SAGjB,kBAAmB,CACjBxS,QAAS,eAEX,WAAY,CACVqT,QAAS,SAEX,kBAAmB,CACjBA,QAAS,gBAEX,8BAA+B,CAC7BA,QAAS,eACTE,MAAO,QACPgC,aAAc,OACd/C,YAAa,QACb,gBAAiB,CACfY,WAAY,SACZuB,OAAQ,YAGZ,qCAAsC,CACpCtB,QAAS,eACTrT,QAAS,OACTuT,MAAO,QACPe,OAAQ,oBACRnB,cAAe,SCpD2B,SAAHxhB,GAAA,IAAMmO,EAAOnO,EAAPmO,QAAO,MAAQ,CAChE,mBAAoB,CAClB4V,SAAU,UAGZ,4DAA6D,CAC3Df,OAAQ,qBAER,WAAY,CACVjB,SAAU,GACV/O,aAAc,IAGhB,gBAAiB,CACf+O,SAAU,GACVhP,UAAW,EACX6N,WAAY,IAGd,kBAAmB,CACjB,0BAA2B,CACzBc,QAAS,aACTK,SAAU,OACVP,cAAe,MACfI,MAAO,QACP,sCAAuC,CACrCvT,QAAS,sBACTE,WAAY,OACZoU,OAAQ,oBACRjB,QAAS,eACTE,MAAO,OACP,4BAA6B,CAC3BoB,OAAQ,oBACR,0BAA2B,CACzBkD,OAAQ,UACRxE,QAAS,eACTpT,MAAO,UACP,sBAAuB,CACrB4T,aAAc,CACZN,MAAO,EACP4O,MAAO,SACPliB,MAAOH,EAAQqV,iBAKvB,0BAA2B,CACzBlV,MAAO,YAGX,cAAe,CACbyT,SAAU,GACVN,WAAY,IACZzO,aAAc,IAIlB,wBAAyB,CACvB0O,QAAS,aACTF,cAAe,SACfnT,QAAS,oBACT6V,UAAW,UAGb,4BAA6B,CAC3BxC,QAAS,aACTK,SAAU,OACVP,cAAe,MACfI,MAAO,QACP,wCAAyC,CACvCvT,QAAS,sBACTE,WAAY,OACZoU,OAAQ,oBACRjB,QAAS,eACTE,MAAO,OACP,sCAAuC,CACrCoB,OAAQ,oBACR,cAAe,CACb1U,MAAO,WAET,mBAAoB,CAClBsT,MAAO,QAET,WAAY,CACVtT,MAAO,UACPyT,SAAU,QAEZ,kBAAmB,CACjBzT,MAAO,UACPyT,SAAU,OACVhP,UAAW,SAGf,4BAA6B,CAC3BzE,MAAO,WAET,2DAA4D,CAC1DmT,WAAY,KAEd,qEAAsE,CACpEC,QAAS,OACT,UAAW,CACTE,MAAO,IACP7O,UAAW,GACX8N,YAAa,IAEf,cAAe,CACb9N,UAAW,KAGf,uCAAwC,CACtCzE,MAAOH,EAAQqV,aACf0C,OAAQ,YAGZ,cAAe,CACbnE,SAAU,GACVN,WAAY,IACZzO,aAAc,KAKpB,kBAAmB,CACjB,iBAAkB,CAChB6N,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,UAIpB,CL3GCyS,CAAiC,CAAEnlB,QAAAA,IM1Bc,CACjD,mBAAoB,CAClB4V,SAAU,UAGZ,uDAAwD,CACtDf,OAAQ,qBAER,yCAA0C,CACxC,uBAAwB,CACtB1B,WAAY,mBAEd,kCAAmC,CACjCA,WAAY,oBAIhB,yCAA0C,CACxCI,QAAS,OACTrT,QAAS,YACTiY,SAAU,SACVxC,UAAW,oBACX,cAAe,CACbxV,MAAO,UACPyT,SAAU,OACVhP,UAAW,QAEb,sBAAuB,CACrBzE,MAAO,UACPyT,SAAU,OACVhP,UAAW,SAIf,kBAAmB,CACjB,iBAAkB,CAChB8N,YAAa,MACb7N,aAAc,QAEhB,iBAAkB,CAChB6N,YAAa,WNZnB,E,ikBObW2B,EAAsB,SAAHxiB,GAAA,IAAAkO,EAAAlO,EAAMmO,QAAAA,OAAO,IAAAD,EAAG,CAAC,EAACA,EAAA,MAC/C,CAEC,aAAc,CACZ,SAAU,CACR,YAAa,CACXI,MAAM,GAADxJ,OAAKqJ,EAAQqV,aAAY,iBAGlC,uBAAwB,CACtBnV,QAAS,cACTC,MAAOH,EAAQqV,aACfb,OAAQ,OACR5B,gBAAiB5S,EAAQ6S,MACzB,UAAW,CACT,SAAU,CACR1S,MAAM,GAADxJ,OAAKqJ,EAAQolB,YAAW,eAC7BC,mBAAoB,aAEtB,YAAa,CACXllB,MAAOH,EAAQolB,YACfC,mBAAoB,UAI1B,qBAAsB,CACpB7lB,OAAQ,GACR,mBAAoB,CAClBmK,SAAU,WACV8J,MAAO,OACPjU,OAAQ,OACR+T,QAAS,QAEX,aAAc,CACZiD,QAAS,GACT,mBAAoB,CAClBjD,QAAS,UAGb,kBAAmB,CACjBwE,OAAQ,UACRnF,gBAAiB,WAEnB,mBAAoB,CAClBW,QAAS,eACTJ,WAAY,OACZqC,WAAY,GACZ1Q,YAAa,EACb2Q,aAAc,EACda,cAAe,GACf,YAAa,CACXnW,MAAO,UACPyT,SAAU,GACVnB,WAAY,EACZC,YAAa,KAInB,gBAAiB,CACfa,QAAS,eACTJ,WAAY,OACZqC,WAAY,GACZC,aAAc,EACda,cAAe,KAGnB,kBAAmB,CACjB,SAAU,CACR9W,OAAQ,IAEV,kFAAmF,CACjFoT,gBAAiB,cACjBzS,MAAO,YAIX,4BAA6B,CAC3ByS,gBAAiB5S,EAAQ6S,MACzB,WAAY,CACVgC,OAAQ,EACR3U,QAAS,sBACT,mBAAoB,CAClBsU,OAAQ,OACRZ,SAAU,GACVN,WAAY,MACZpT,QAAS,mBACT0S,gBAAiB,WAEnB,kBAAmB,CACjB4B,OAAQ,OACRtU,QAAS,mBACT0S,gBAAiB,UACjB,2BAA4B,CAC1BoC,QAAS,EACTzB,QAAS,OACTiC,WAAY,GACZF,oBAAqB,YACrB,oBAAqB,CACnBlC,IAAK,EACLjT,MAAO,WAET,oBAAqB,CACnBiT,IAAK,EACLjT,MAAO,WAET,kCAAmC,CACjC8U,WAAY,EACZ2B,UAAW,YAIjB,YAAa,CACXhS,UAAW,MAKjB,4BAA6B,CAC3BgO,gBAAiB5S,EAAQslB,aAEzB,kBAAmB,CACjBplB,QAAS,cAIb,+BAAgC,CAC9B,qBAAsB,CACpB,mBAAoB,CAClB4S,OAAQ,IAEV,iBAAkB,CAChB,qCAAsC,CACpCyS,eAAgB,SAEhB,OAAQ,CACNzgB,YAAa,eACb0Q,WAAY,eAEZ,wBAAyB,CACvB5B,SAAU,OACVjK,SAAU,WACVyJ,IAAK,OACLV,YAAa,MACbY,WAAY,OAGd,0BAA2B,CACzBH,WAAY,OACZS,SAAU,UAIhB,uBAAwB,CACtB6C,YAAa,gCAEf,UAAW,CACT9B,UAAW,SAGf,UAAW,CACT,yBAA0B,CACxBrB,WAAY,qBAEd,uBAAwB,CACtBmD,YAAa,gCAEf,OAAQ,CACNnD,WAAY,UAGd,kBAAmB,CACjBC,QAAS,eACT5J,SAAU,WACV,eAAgB,CACdoO,OAAQ,UACRhB,eAAgB,YAChB,UAAW,CACT5W,MAAOH,EAAQolB,cAGnB,0BAA2B,CACzBjlB,MAAO,UACP4X,OAAQ,UACRhB,eAAgB,YAChB,UAAW,CACT5W,MAAOH,EAAQolB,cAGnB,oBAAqB,CACnB1R,SAAU,IACVyC,OAAQ,IACRxM,SAAU,YAEZ,4BAA6B,CAC3B4J,QAAS,OACT5J,SAAU,WACV4K,KAAM,KACNzB,OAAQ,IACR0B,OAAQ,oBACRC,UAAW,sBACXrU,WAAY,OACZF,QAAS,GACT,WAAY,CACVC,MAAO,UACPyT,SAAU,GACVN,WAAY,OAGd,aAAc,CACZnT,MAAO,UACP,OAAQ,CACNyT,SAAU,KAId,kCAAmC,CACjCzT,MAAO,UACP8T,WAAY,QACZL,SAAU,GAEViB,OAAQ,sBACRnB,SAAU,KAEZ,kBAAmB,CACjBvT,MAAO,UACP4X,OAAQ,UACRrD,MAAO,QACP/K,SAAU,WACV0J,cAAe,YAKrB,2CAA4C,CAC1CX,YAAa,GAGf,+BAAgC,CAC9B,wBAAyB,CACvBtS,WAAY,UACZ,gBAAiB,CACfA,WAAYJ,EAAQwlB,KACpB,UAAW,CACTplB,WAAYJ,EAAQkU,iBAK5B,+LAAgM,CAC9L,yBAA0B,CACxBxB,YAAa,QAGjB,4BAA6B,CAC3BtS,WAAY,sBAEd,iCAAkC,CAChCA,WAAY,sBAEd,uCAAwC,CACtCA,WAAY,sBAEd,0CAA2C,CACzCuJ,SAAU,WACV,mBAAoB,CAClBvJ,WAAY,QACZuJ,SAAU,WACV4J,QAAS,OACTC,WAAY,SACZqB,OAAQ,MACRrV,OAAQ,OACRiU,MAAO,QACPvT,QAAS,WACT4S,OAAQ,MAGZ,eAAgB,CACdS,QAAS,eACTE,MAAO,kBACPjU,OAAQ,kBACRqV,OAAQ,MACRL,OAAQ,YACRiR,UAAW,6BACXtQ,aAAc,MACdjC,eAAgB,UAChBwS,gBAAiB,UACjBC,iBAAkB,UAClB3S,kBAAmB,WAErB,cAAe,CACbO,QAAS,eACTsB,OAAQ,WACR1U,MAAOH,EAAQqV,aACfzB,SAAU,IAGZ,8BAA4B7iB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBuyB,EAAoB7uB,IAAG,CAAEuL,QAAAA,KAAU,IACtC4T,SAAU,GAEV,UAAW,CACThB,gBAAgB,GAADjc,OAAKqJ,EAAQ6S,MAAK,gBAGnC,WAAY,CACV+S,UAAW,OACX9gB,YAAa,GAGf,4CAA6C,CAC3C0P,OAAQ,gCAGV,WAAY,CACVrU,MAAO,UACPyT,SAAU,MAId,6EAA8E,CAC5E,OAAQ,CACNA,SAAU,OACVT,WAAY,QAEd,eAAgB,CACdhT,MAAO,WAET,kBAAmB,CACjBuS,YAAa,GACb,OAAQ,CACNxS,QAAS,IACToW,cAAe,GACf9B,OAAQ,OACRiC,YAAa,kBACb,+BAAgC,CAC9BnW,QAAS,WACT2T,WAAY,qBAEd,iCAAkC,CAChC3T,QAAS,WACT2T,WAAY,sBAGhB,YAAa,CACXqC,cAAe,GAEjB,cAAe,CACb5C,SAAU,IACVwB,SAAU,KAEZ,eAAgB,CACdxB,SAAU,GACVwB,SAAU,IACVpQ,YAAa,GACbyR,UAAW,eAEb,qBAAsB,CACpBrW,QAAS,OAIf,iCAAkC,CAChC,UAAW,CACTC,MAAOH,EAAQqV,aACf0C,OAAQ,UACR,UAAW,CACT5X,MAAOH,EAAQolB,cAGnB,cAAe,CACbrO,eAAgB,aAElB,sBAAuB,CACrBrE,YAAa,QAGjB,mCAAiC3hB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAC5BqlB,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,KAAU,IAC3B,yCAA0C,CACxCE,QAAS,sBACT,6BAA8B,CAC5BC,MAAO,UACPyT,SAAU,OACV0C,cAAe,QAEjB,0CAA2C,CACzC1D,gBAAiB,cACjB4B,OAAQ,OACRrU,MAAO,UACP8T,WAAY,WACZL,SAAU,OACV9O,YAAa,OAEf,+BAAgC,CAC9B2O,MAAO,OACPvT,QAAS,oBACTE,WAAY,OACZoU,OAAQ,qBAEV,kCAAmC,CACjC5P,UAAW,OACXuO,WAAY,OACZS,SAAU,QAEZ,cAAe,CACbzT,MAAO,cAIb,mCAAiCpP,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IAC5BqlB,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,KAAU,IAC3B,yCAA0C,CACxCuT,QAAS,OACTrT,QAAS,sBACTuT,MAAO,OACPG,SAAU,OACVF,SAAU,QACVqC,UAAW,OACXC,UAAW,aACX,kBAAmB,CACjBzC,QAAS,OACTS,cAAe,UAEjB,cAAe,CACb7T,MAAO,WAET,oBAAqB,CACnBA,MAAO,UACP4X,OAAQ,UACRnE,SAAU,QAEZ,kBAAmB,CACjBzT,MAAO,UACP4X,OAAQ,UACRnE,SAAU,QAEZ,iBAAkB,CAChBzT,MAAO,WAET,QAAS,CACPuU,MAAO,OACPhC,YAAa,MAInB,2CAAyC3hB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IACpCqlB,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,KAAU,IAC3B,yCAA0C,CACxCuT,QAAS,OACTrT,QAAS,sBACTuT,MAAO,OACPG,SAAU,OACVF,SAAU,QACVqC,UAAW,OACXC,UAAW,aACXhC,cAAe,SACf,4BAA6B,CAC3BnP,aAAc,GACd,6BAA8B,CAC5B1E,MAAO,UACPyT,SAAU,QAEZ,oCAAqC,CACnChB,gBAAiB,cACjB4B,OAAQ,OACRrU,MAAO,UACP8T,WAAY,WACZL,SAAU,OACV9O,YAAa,QAGjB,2BAA4B,CAC1ByO,QAAS,OACTE,MAAO,OACPG,SAAU,OACVF,SAAU,QACVqC,UAAW,OACXC,UAAW,aACX,kBAAmB,CACjBzC,QAAS,OACTS,cAAe,UAEjB,cAAe,CACb7T,MAAO,UACPsT,MAAO,eAET,oBAAqB,CACnBtT,MAAO,UACPyT,SAAU,QAEZ,kBAAmB,CACjBzT,MAAO,UACP4X,OAAQ,UACRnE,SAAU,QAEZ,iBAAkB,CAChBzT,MAAO,WAET,QAAS,CACPuU,MAAO,OACPhC,YAAa,OAKrB,+CAA6C3hB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IACxCqlB,EAAAA,EAAAA,aAAY,CAAEpW,QAAAA,KAAU,IAC3B,yCAA0C,CACxCuT,QAAS,QACTrT,QAAS,sBACTuT,MAAO,OACPQ,WAAY,WACZL,SAAU,OACVO,UAAW,SACXhB,WAAY,OACZO,SAAU,QACVqC,UAAW,OACXC,UAAW,aACXrM,SAAU,WACV,kBAAmB,CACjB4J,QAAS,QACTS,cAAe,SACf,QAAS,CACPU,MAAO,OACPlV,OAAQ,GACRiU,MAAO,IACPf,YAAa,EACbtS,WAAY,UACZ,WAAY,CACVZ,OAAQ,GACRiU,MAAO,IACPe,OAAQ,QACRpU,WAAY,QACZF,QAAS,QACT,2BAA4B,CAC1BV,OAAQ,GACRiU,MAAO,IACPvT,QAAS,GACT6X,OAAQ,UACR5X,MAAO,cAKf,kBAAmB,CACjBwU,UAAW,IAEb,iBAAkB,CAChBxU,MAAO,UACPyV,SAAU,SACV7Q,WAAY,SACZ8Q,aAAc,WACdlB,UAAW,IAEb,aAAc,CACZxU,MAAO,WAET,QAAS,CACPX,OAAQ,GACRiU,MAAO,IACPiB,MAAO,OACPhC,YAAa,GAEf,mBAAoB,CAClBtS,WAAY,QACZuJ,SAAU,WACV4J,QAAS,OACTC,WAAY,SACZhU,OAAQ,GACRiU,MAAO,IACPX,OAAQ,IACRyB,MAAO,GACPzP,YAAa,OAInB,8CAA+C,CAC7C,WAAY,CACV8O,SAAU,OACVT,WAAY,OACZtO,aAAc,QAEhB,oBAAqB,CACnB0O,QAAS,OACT,iBAAkB,CAChBJ,WAAY,OACZS,SAAU,QAEZ,mBAAoB,CAClBL,QAAS,OACTC,WAAY,SACZf,WAAY,OACZC,YAAa,OAEb,WAAY,CACVkB,SAAU,SAGd,UAAW,CACTH,MAAO,OACP9J,SAAU,WACV4J,QAAS,OACTuB,eAAgB,SAChB,YAAa,CACXlB,SAAU,OACVT,WAAY,OACZG,WAAY,UAKpB,2CAA4C,CAC1C,WAAY,CACVH,WAAY,OACZS,SAAU,OACVhP,UAAW,MACXC,aAAc,MACdyO,WAAY,OAEd,iBAAkB,CAChBH,WAAY,OACZS,SAAU,OACV9O,YAAa,QAEf,qBAAsB,CACpBqO,WAAY,OACZS,SAAU,OACVhP,UAAW,OACXC,aAAc,QAGlB,6BAA8B,CAC5BmR,UAAW,cAEb,eAAgB,CACd6P,aAAc,aACd7P,UAAW,aACXpC,SAAU,OACVT,WAAY,QAEd,gBAAiB,CACfS,SAAU,OACVT,WAAY,OACZ,kBAAmB,CACjBG,WAAY,IACZM,SAAU,OACVT,WAAY,OACZhT,MAAO,WAET,0CAA2C,CACzCyT,SAAU,QAEZ,oBAAqB,CACnBzT,MAAO,WAET,iBAAkB,CAChByT,SAAU,OACVT,WAAY,OACZhT,MAAO,aAIb,6KAA8K,CAC5KsW,YAAa,gCAEf,wBAAyB,CACvB,kBAAmB,CACjBnD,WAAY,IACZM,SAAU,OACV/O,aAAc,OAGhB,wBAAyB,CACvB+O,SAAU,OACVhP,UAAW,QAGf,oCAAqC,CACnC,iBAAkB,CAChBC,aAAc,OAEhB,sBAAuB,CACrBA,aAAc,OAEhB,YAAa,CACX8E,SAAU,WACVyJ,IAAK,MACLD,WAAY,OACZS,SAAU,OACVlB,YAAa,QAGjB,4DAA6D,CAC3D,oCAAqC,CACnCkB,SAAU,IAEZ,YAAa,CACXA,SAAU,KAGd,8BAA+B,CAC7B,4BAA6B,CAC3BiB,OAAQ,oBACR,0BAA2B,CACzBkD,OAAQ,UACRxE,QAAS,eACTpT,MAAO,UACP,sBAAuB,CACrB4T,aAAc,CACZN,MAAO,EACP4O,MAAO,SACPliB,MAAOH,EAAQqV,gBAIrB,4BAA6B,CAC3B0C,OAAQ,UACRxE,QAAS,eACTpT,MAAO,UACP,sBAAuB,CACrB4T,aAAc,CACZN,MAAO,EACP4O,MAAO,SACPliB,MAAOH,EAAQqV,iBAKvB,qDAAsD,CACpD5C,WAAY,GACZa,WAAY,OAEd,0BAA2B,CACzBb,WAAY,GACZtS,MAAO,WAET,4BAA6B,CAC3BsS,WAAY,GACZtS,MAAO,WAET,kCAAmC,CACjCsS,WAAY,GACZ0B,UAAW,WAEb,kJAAmJ,CACjJ1B,WAAY,KAGhB,6BAA8B,CAC5B,uBAAwB,CACtB5N,aAAc,EACd,UAAW,CACT0O,QAAS,WAGb,4BAA6B,CAC3BD,WAAY,QAEd,6BAA8B,CAC5B0C,UAAW,cAGf,mCAAoC,CAClCpC,SAAU,kBACVzT,MAAOH,EAAQ8V,MACfC,UAAW,SAEb,2DAA4D,CAC1DnC,SAAU,mBAEZ,8BAA+B,CAC7BmC,UAAW,SAEb,8PAA+P,CAC7P,4BAA6B,CAC3BnC,SAAU,KAGd,iCAAkC,CAChCzT,MAAOH,EAAQ8V,OAGjB,0BAA2B,CACzB,QAAS,CACP,eAAgB,CACdrC,MAAO,QACPC,SAAU,SAEZ,kBAAmB,CACjBD,MAAO,OACPC,SAAU,QAEZ,qBAAsB,CACpBD,MAAO,QACPC,SAAU,SAEZ,aAAc,CACZD,MAAO,QACPC,SAAU,SAEZ,cAAe,CACbD,MAAO,QACPC,SAAU,SAEZ,kBAAmB,CACjBD,MAAO,QACPC,SAAU,SAEZ,uBAAwB,CACtBD,MAAO,QACPC,SAAU,SAEZ,iBAAkB,CAChBD,MAAO,QACPC,SAAU,SAEZ,mBAAoB,CAClBD,MAAO,QACPC,SAAU,SAEZ,mBAAoB,CAClBD,MAAO,QACPC,SAAU,SAEZ,kBAAmB,CACjBD,MAAO,OACPC,SAAU,QAEZ,mBAAoB,CAClBD,MAAO,QACPC,SAAU,SAEZ,sBAAuB,CACrBD,MAAO,QACPC,SAAU,SAEZ,+EAAgF,CAC9ED,MAAO,QACPC,SAAU,SAEZ,eAAgB,CACdD,MAAO,QACPC,SAAU,SAEZ,oBAAqB,CACnBD,MAAO,OACPC,SAAU,QAEZ,gBAAiB,CACfD,MAAO,QACPC,SAAU,SAEZ,oBAAqB,CACnBD,MAAO,QACPC,SAAU,SAEZ,wBAAyB,CACvBD,MAAO,QACPC,SAAU,SAEZ,qBAAsB,CACpBD,MAAO,QACPC,SAAU,SAEZ,0BAA2B,CACzBD,MAAO,QACPC,SAAU,SAEZ,wBAAyB,CACvBD,MAAO,QACPC,SAAU,SAEZ,oBAAqB,CACnBD,MAAO,QACPC,SAAU,SAEZ,sBAAuB,CACrBD,MAAO,QACPC,SAAU,WAIhB,8BAA+B,CAC7BE,SAAU,OACVzT,MAAO,UACPgT,WAAY,OACZ,gBAAiB,CACfG,WAAY,OACZC,QAAS,QACTsB,OAAQ,SAEV,eAAgB,CACdlL,SAAU,WACVwJ,WAAY,OACZtO,aAAc,OACd,eAAgB,CACd8E,SAAU,WACV,WAAY,CACVrJ,QAAS,KACTiT,QAAS,eACT5J,SAAU,WACVmJ,OAAQ,EACRyB,KAAM,MACNnB,IAAK,MACLK,MAAO,EACPjU,OAAQ,OACRwX,WAAY,sBAGhB,0BAA2B,CACzB,WAAY,CACVzD,QAAS,SAGb,eAAgB,CACdqC,SAAU,qBACVmB,eAAgB,kBAChBxD,QAAS,eACTnT,WAAY,OACZD,MAAO,UACPuS,YAAa,OACb/I,SAAU,WACVwL,aAAc,MACd1B,MAAO,OACPjU,OAAQ,OACRsT,OAAQ,EACRM,IAAK,OAEP,+BAAgC,CAC9BR,gBAAiB,WAEnB,4BAA6B,CAC3BA,gBAAiB,OACjB4B,OAAQ,qBAEV,qBAAsB,CACpBrU,MAAO,UACP,eAAgB,CACd,WAAY,CACVG,QAAS,WACT2T,WAAY,oBACZV,QAAS,eACTD,WAAY,SACZa,UAAW,SACXP,SAAU,OACVzT,MAAO,cAKf,eAAgB,CACdyT,SAAU,iBACVT,WAAY,SAGhB,qCAAsC,CACpCS,SAAU,OACVzT,MAAO,UACPgT,WAAY,OACZ,uBAAwB,CACtBhT,MAAO,OACPmT,WAAY,OACZzO,aAAc,OAEhB,8BAA+B,CAC7BA,aAAc,MACd,yBAA0B,CACxB+O,SAAU,OACVT,WAAY,QAEd,yBAA0B,CACxBS,SAAU,OACVT,WAAY,OACZG,WAAY,SAGhB,6BAA8B,CAC5BnT,MAAO,SAGX,8BAA+B,CAC7B,kBAAmB,CACjBuS,YAAa,SAGjB,yCAA0C,CACxC/I,SAAU,WACV4K,KAAM,EACNpB,WAAY,QAEd,mCAAoC,CAClCrO,YAAa,KAInB,iCAAkC,CAChC,mBAAoB,CAClB,mBAAoB,CAClB5E,QAAS,MACTuU,UAAW,qEACX7B,gBAAiB,4BACjB,0CAA2C,CACzCkT,eAAgB,aAChBlT,gBAAiB,8BAGrB,mCAAoC,CAClC9N,YAAa,GACb0Q,WAAY,GACZC,aAAc,GACda,cAAe,EACf,OAAQ,CACN/C,QAAS,OACTS,cAAe,MACf+R,SAAU,OACVH,UAAW,OACX9gB,YAAa,EACb,OAAQ,CACN4O,SAAU,GACV7O,aAAc,MACd6S,KAAM,WACN,kBAAmB,CACjBlY,OAAQ,GACRsF,YAAa,kBACbkhB,iBAAkB,YAClBC,mBAAoB,OACpBhB,eAAgB,YAChBvS,YAAa,EACbD,WAAY,EACZ7N,UAAW,EACXmT,OAAQ,UACRlC,aAAc,WACdD,SAAU,SACV7Q,WAAY,UAGd,2BAA4B,CAC1ByR,QAAS,QAGb,yCAA0C,CACxC0P,gBAAgB,QAADvvB,OAAUwvB,EAAgB,OAE3C,yCAA0C,CACxCD,gBAAgB,QAADvvB,OAAUyvB,EAAiB,OAE5C,yCAA0C,CACxCF,gBAAgB,QAADvvB,OAAU0vB,EAAsB,OAEjD,yCAA0C,CACxCH,gBAAgB,QAADvvB,OAAU2vB,EAAoB,OAE/C,yCAA0C,CACxCJ,gBAAgB,QAADvvB,OAAU4vB,EAAgB,OAE3C,yCAA0C,CACxCL,gBAAgB,QAADvvB,OAAU6vB,EAAyB,OAEpD,yCAA0C,CACxCN,gBAAgB,QAADvvB,OAAU8vB,EAA0B,OAErD,yCAA0C,CACxCP,gBAAgB,QAADvvB,OAAU+vB,EAA+B,OAE1D,yCAA0C,CACxCR,gBAAgB,QAADvvB,OAAUgwB,EAA6B,OAExD,0CAA2C,CACzCT,gBAAgB,QAADvvB,OAAUiwB,EAAyB,WAM7D,C,yBCjkCH,IAAIC,EAAM,EAAQ,QAGlBC,EAAOC,QADP,SAAkBC,GAAS,IAAoCC,EAAhCC,EAAW,GAAqCC,EAAmBH,GAAU,CAAC,EAAyyB,OAAryB,SAAUtwB,EAAcE,EAAMH,EAAUH,GAAO4wB,EAAWA,+BAAqDL,EAAIO,KAAK,OAAQxwB,GAAM,GAAM,GAAMiwB,EAAIO,KAAK,gBAAiB3wB,GAAU,GAAM,GAAMowB,EAAIO,KAAK,oBAAqB1wB,GAAc,GAAM,GAA1LwwB,yCAAyPL,EAAIQ,OAAO,OAASJ,EAAa3wB,GAAQ,GAAK2wB,GAAe,MAAsB,EAAEK,KAAK/zB,KAAK,iBAAkB4zB,EAAgBA,EAAgBzwB,aAAmC,qBAAfA,aAA2BA,kBAAaoP,EAAU,SAAUqhB,EAAgBA,EAAgBvwB,KAAmB,qBAAPA,KAAmBA,UAAKkP,EAAU,aAAcqhB,EAAgBA,EAAgB1wB,SAA2B,qBAAXA,SAAuBA,cAASqP,EAAU,SAAUqhB,EAAgBA,EAAgB7wB,KAAmB,qBAAPA,KAAmBA,UAAKwP,GAAoBohB,CAAS,C","sources":["../../portfolio-bid-strategy-summary/src/toolbar-config.js","../../portfolio-bid-strategy-summary/src/selection-helper.js","../../portfolio-bid-strategy-summary/src/grid/grid-view.js","../../portfolio-bid-strategy-summary/src/grid/columns/base-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-name-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-type-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-status-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/associated-campaigns-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/campaign-type-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-target-cpa-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-target-roas-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/bid-strategy-target-impression-share-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/owner-column.js","../../portfolio-bid-strategy-summary/src/grid/columns/index.js","../../portfolio-bid-strategy-summary/src/grid/grid-config.js","../../portfolio-bid-strategy-summary/src/styles.js","../../portfolio-bid-strategy-summary/src/filter-config.js","../../portfolio-bid-strategy-summary/src/inline-edit.js","../../portfolio-bid-strategy-summary/src/reload-grid-when-date-change.js","../../portfolio-bid-strategy-summary/src/description.js","../../portfolio-bid-strategy-summary/src/index.js","../../portfolio-bid-strategy-summary/src/fetch-preferences.js","../../portfolio-bid-strategy-summary/src/toolbar-action.js","../../recommendations-page/src/consts.js","../../recommendations-page/src/get-auto-apply-bulk-upload-style.js","../../recommendations-page/src/styles/history-grid.js","../../recommendations-page/src/styles/history-header.js","../../recommendations-page/src/get-history-style.js","../../recommendations-page/src/styles/contextual-attribute.js","../../recommendations-page/src/styles/summary-page.js","../../recommendations-page/src/styles/detail-page.js","../../recommendations-page/src/styles/estimate-tile.js","../../recommendations-page/src/styles/feedback-popup.js","../../recommendations-page/src/styles/teaching-bubble.js","../../recommendations-page/src/get-style.js","../../recommendations-page/src/with-navigation.js","../../recommendations-page/src/legacy-deps-list.js","../../recommendations-page/src/with-legacy-deps.js","../../recommendations-page/src/recommendations-factory.js","../../recommendations-page/src/config.js","../../recommendations-page/src/styles/recommendation-page-styles-fast.js","../../recommendations-page/src/recommendations-page.js","../../recommendations-page/src/with-alert-handler.js","../../recommendations-page/src/styles/common.js","../../recommendations-page/src/styles/inline-view/budget.js","../../recommendations-page/src/styles/inline-view/reallocate-budget.js","../../recommendations-page/src/styles/inline-view/ads.js","../../recommendations-page/src/styles/inline-view/index.js","../../recommendations-page/src/styles/inline-view/repair-keywords.js","../../recommendations-page/src/styles/inline-view/ad-extension.js","../../recommendations-page/src/styles/inline-view/ad-extension-editor.js","../../recommendations-page/src/styles/inline-view/setup-conv-tracking.js","../../recommendations-page/src/styles/inline-view/fix-conversion-goal-setting.js","../../recommendations-page/src/styles/inline-view/create-conversion-goal.js","../../recommendations-page/src/styles/custom-grid-style.js","../../portfolio-bid-strategy-summary/src/grid/columns/link-template.pug"],"sourcesContent":["import _ from 'underscore';\r\nimport React from 'react';\r\nimport { i18nMap, pairsToMap } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport { PortfolioBidStrategyCreationPanel, PortfolioBidStrategyPanelDisplayMode } from '@bingads-webui-campaign-react/portfolio-bid-strategy-creation-panel';\r\n\r\nconst { portfolioBidStrategyTypeWithPilot } = i18nMap;\r\n\r\nexport function getToolbarConfig({\r\n i18n,\r\n permissions,\r\n showTopOfGridPanel,\r\n lazyInject,\r\n}) {\r\n function withSelectedId(actionName) {\r\n return () => {\r\n const {\r\n toolbarAction,\r\n backboneGridView,\r\n } = lazyInject();\r\n\r\n const selectedItems = backboneGridView.grid.gridView.selectedItems();\r\n const portfolioIds = _.pluck(selectedItems, 'Id');\r\n\r\n toolbarAction[actionName](portfolioIds[0]);\r\n };\r\n }\r\n\r\n const toolbarSelectedConfig = pairsToMap([\r\n ['button-edit', {\r\n id: 'button-edit',\r\n type: 'dropdown',\r\n classes: ['btn-primary'],\r\n iconLeftGlyphName: 'ba-Edit',\r\n text: i18n.getString(_TL_('Edit')),\r\n menu: {\r\n items: [\r\n {\r\n id: 'button-delete',\r\n type: 'button',\r\n classes: ['portfolio-toolbar-delete-button'],\r\n iconLeftGlyphName: 'ba-Delete',\r\n text: i18n.getString(_TL_('Delete')),\r\n onClick: withSelectedId('onDeletePortfolio'),\r\n },\r\n {\r\n type: 'dropdown-divider',\r\n },\r\n {\r\n id: 'button-update',\r\n type: 'button',\r\n classes: ['portfolio-toolbar-change-settings-button'],\r\n text: i18n.getString(_TL_('Change settings')),\r\n onClick: withSelectedId('onEditPortfolio'),\r\n },\r\n ],\r\n },\r\n }],\r\n ['expander', {\r\n type: 'expander',\r\n }],\r\n ['button-clear-selection', {\r\n id: 'button-clear-selection',\r\n type: 'button-clear-selection',\r\n }],\r\n ]);\r\n\r\n const bidStrategyType = portfolioBidStrategyTypeWithPilot(permissions);\r\n\r\n const toolbarUnselectedConfig = pairsToMap([\r\n ['button-create', {\r\n id: 'button-create',\r\n type: 'dropdown',\r\n classes: ['btn-primary'],\r\n iconLeftGlyphName: 'ba-Add',\r\n text: i18n.getString(_TL_('Create')),\r\n menu: {\r\n items: _.map(bidStrategyType, (text, id) => ({\r\n id,\r\n text: i18n.getString(text),\r\n onClick: () => {\r\n const creationView = (\r\n {\r\n showTopOfGridPanel(null);\r\n lazyInject().reloadGrid();\r\n }}\r\n onPartialSuccess={() => {\r\n lazyInject().reloadGrid();\r\n }}\r\n onCancel={() => {\r\n showTopOfGridPanel(null);\r\n }}\r\n />\r\n );\r\n showTopOfGridPanel(creationView);\r\n },\r\n })),\r\n },\r\n }],\r\n ['predicate-list', {\r\n id: 'predicate-list',\r\n type: 'custom',\r\n }],\r\n ['expander', {\r\n type: 'expander',\r\n }],\r\n ['search-box-filter', {\r\n id: 'search-box-filter',\r\n type: 'search-box',\r\n }],\r\n ['dropdown-segment', {\r\n id: 'dropdown-segment',\r\n type: 'dropdown',\r\n }],\r\n ['dropdown-column-chooser', {\r\n id: 'dropdown-column-chooser',\r\n type: 'dropdown',\r\n }],\r\n ['button-download', {\r\n id: 'button-download',\r\n type: 'nav-item',\r\n iconLeftGlyphName: 'ba-Download',\r\n }],\r\n ]);\r\n\r\n return {\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n };\r\n}\r\n","\r\nexport function clearSelection(gridView) {\r\n const selection = {\r\n ...gridView.get('selection'),\r\n selected: [],\r\n };\r\n\r\n gridView.trigger('willSelect', selection.selected);\r\n gridView.set({ selection }, () => {\r\n gridView.trigger('didSelect', selection.selected);\r\n });\r\n}\r\n\r\nexport function toggleRadioButton(e, gridView) {\r\n const radioButton = e.target;\r\n const { selected } = gridView.get('selection');\r\n const key = gridView.keyOfElement(radioButton);\r\n\r\n if (selected.includes(key)) {\r\n radioButton.checked = false;\r\n clearSelection(gridView);\r\n }\r\n}\r\n","import projectionGrid from 'projection-grid';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { placeholderPlugin } from '@bingads-webui/projection-grid-placeholder';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { projectionGridScopeNavigator } from '@bingads-webui-campaign/projection-grid-scope-navigator';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { periodOverPeriodPlugin } from '@bingads-webui-campaign/projection-grid-period-over-period';\r\nimport { segmentPlugin } from '@bingads-webui-campaign/projection-grid-segment';\r\nimport { projectionGridScrollbarPlugin } from '@bingads-webui-campaign/projection-grid-scrollbar';\r\nimport { projectionGridFlexColumnResize } from '@bingads-webui-campaign/projection-grid-flex-column-resize';\r\nimport { inlineDownloadWithoutFilterstatePlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { jsdataRawDataPlugin } from '@bingads-webui-campaign/pgrid-js-data-raw-data';\r\nimport { toggleRadioButton } from '../selection-helper';\r\n\r\nexport class PortfolioBidStrategyGridView extends DeterministicWrapperView {\r\n viewFactory({\r\n config,\r\n permissions,\r\n toolbarPlugin,\r\n aggregatedRowsPlugin,\r\n }) {\r\n const gridFactory = projectionGrid\r\n .factory({ vnext: true })\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n .use(perfMarkerPlugin)\r\n .use(a11yPlugin)\r\n .use(paginationPlugin)\r\n .use(placeholderPlugin)\r\n .use(uiBlockerPlugin)\r\n .use(toolbarPlugin.plugin)\r\n .use(jsdataRawDataPlugin)\r\n .use(aggregatedRowsPlugin)\r\n .use(columnChooserPlugin)\r\n .use(projectionGridScopeNavigator)\r\n .use(dateFilterPlugin)\r\n .use(periodOverPeriodPlugin)\r\n .use(segmentPlugin)\r\n .use(projectionGridScrollbarPlugin)\r\n .use(projectionGridFlexColumnResize)\r\n .use(inlineDownloadWithoutFilterstatePlugin);\r\n\r\n if (!permissions.IsReadOnlyUser) {\r\n gridFactory.use(editablePlugin);\r\n }\r\n\r\n this.grid = gridFactory.create(config);\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n get className() {\r\n return 'portfolio-bid-strategy-grid';\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .td[data-column=\"selection\"] input[type=\"radio\"].select-row': e => toggleRadioButton(e, this.grid.gridView),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\n// eslint-disable-next-line\r\nconst dummyStrings = [\r\n _TL_('-'),\r\n];\r\n\r\nexport class BaseColumn extends ProjectionGridBaseColumn {\r\n constructor(options) {\r\n super(options);\r\n this.i18n = options.i18n;\r\n }\r\n\r\n // Override the default 'pickProperty' to pick multi properties.\r\n pickProperty(rowData) {\r\n /*\r\n For aggregated rows, rowData looks like\r\n {\r\n \"$total\": {\r\n \"type\": \"search\",\r\n \"text\": \"Search ads total\",\r\n \"helpId\": \"pop_BA_CampaignGrids_SearchTotal\"\r\n }\r\n }\r\n\r\n For regular rows, rowData looks like\r\n {\r\n \"Id\": 7146825580557,\r\n \"Name\": \"dummy name\",\r\n \"Type\": \"MaxClicks\",\r\n \"Status\": \"Misconfigured\",\r\n \"TargetCpa\": null,\r\n \"TargetRoas\": null,\r\n \"TargetAdPosition\": null,\r\n \"TargetImpressionShare\": null,\r\n \"AssociationCount\": 51,\r\n \"CampaignType\": \"Default\",\r\n \"MaxCpc\": {\r\n \"Amount\": 50\r\n },\r\n }\r\n */\r\n const keys = _.union(\r\n // this.property.key may be a string or an array, need to convert it to an array\r\n _.flatten([this.property.key]),\r\n ['$total']\r\n );\r\n return _.pick(rowData, keys);\r\n }\r\n}\r\n","import { BaseColumn } from './base-column';\r\nimport linkTemplate from './link-template.pug';\r\n\r\nexport class BidStrategyNameColumn extends BaseColumn {\r\n constructor({\r\n i18n,\r\n inlineEditConfig: {\r\n onEditName,\r\n } = {},\r\n scope,\r\n permissions,\r\n }) {\r\n super({\r\n name: 'PortfolioGridBidStrategyName',\r\n title: _TL_('Bid strategy'),\r\n i18n,\r\n property: ['Id', 'Name'],\r\n sortable: 'Name',\r\n group: 'freezing',\r\n enableEdit: (item) => {\r\n const {\r\n IsReadOnlyUser,\r\n dynamic = {},\r\n } = permissions;\r\n const {\r\n CrossAccountPortfolio,\r\n } = dynamic;\r\n const { cid, aid } = scope.values;\r\n const { Owner } = item;\r\n const { Id } = Owner || {}; // TODO llzhang. what's the value of Owner for legacy portfolio bid strategy?\r\n const enable = !CrossAccountPortfolio || (aid === Id) || (cid === Id); // assumption: agency customer can't create owner=agency cid portfolio bid strategy\r\n return enable && !IsReadOnlyUser;\r\n },\r\n });\r\n\r\n this.onEditName = onEditName;\r\n this.scope = scope;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n Id,\r\n Name,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return $total.text;\r\n }\r\n\r\n // For regular rows\r\n const { uid, cid, aid } = this.scope.values;\r\n const pathname = '/campaign/vnext/portfoliobidstrategy/performance';\r\n const customparams = `portfolioId=${Id}`;\r\n const href = `${pathname}?uid=${uid}&cid=${cid}&aid=${aid}&${customparams}`;\r\n const text = Name;\r\n\r\n return linkTemplate({\r\n pathname, customparams, href, text,\r\n });\r\n }\r\n\r\n onPrompt(...args) {\r\n return this.onEditName(...args);\r\n }\r\n}\r\n","import { i18nMap } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport { BaseColumn } from './base-column';\r\n\r\nconst { portfolioBidStrategyType } = i18nMap;\r\n\r\nexport class BidStrategyTypeColumn extends BaseColumn {\r\n constructor(option) {\r\n super({\r\n name: 'BidStrategyType',\r\n title: _TL_('Bid strategy type'),\r\n i18n: option.i18n,\r\n property: 'Type',\r\n sortable: 'Type',\r\n helpId: 'pop_BA_PortfolioBidStrat_StratType',\r\n });\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n Type,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return this.i18n.getString(portfolioBidStrategyType[Type] || '-');\r\n }\r\n}\r\n","import { i18nMap } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport { BaseColumn } from './base-column';\r\n\r\nconst { bidStrategyStatus } = i18nMap;\r\n\r\nexport class BidStrategyStatusColumn extends BaseColumn {\r\n constructor(option) {\r\n super({\r\n name: 'BidStrategyStatus',\r\n title: _TL_('Status'),\r\n i18n: option.i18n,\r\n property: 'Status',\r\n sortable: 'Status',\r\n helpId: 'pop_BA_PortfolioBidStrat_Status',\r\n });\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n Status,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return this.i18n.getString(bidStrategyStatus[Status] || '-');\r\n }\r\n}\r\n","import { BaseColumn } from './base-column';\r\nimport linkTemplate from './link-template.pug';\r\n\r\nexport class AssociatedCampaignsColumn extends BaseColumn {\r\n constructor(option) {\r\n super({\r\n name: 'AssociatedCampaigns',\r\n title: _TL_('Campaigns'),\r\n i18n: option.i18n,\r\n property: ['Name', 'AssociationCount'],\r\n sortable: 'AssociationCount',\r\n helpId: 'pop_BA_PortfolioBidStrat_Campaigns',\r\n });\r\n this.scope = option.scope;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n Name,\r\n AssociationCount,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n const { uid, cid, aid } = this.scope.values;\r\n const pathname = '/campaign/vnext/campaigns';\r\n const customparams = `filterAlias=filterBidStrategy&filterArguments=${encodeURIComponent(Name)}`;\r\n const href = `${pathname}?uid=${uid}&cid=${cid}&aid=${aid}&${customparams}`;\r\n const text = AssociationCount || '0';\r\n\r\n return linkTemplate({\r\n pathname, customparams, href, text,\r\n });\r\n }\r\n}\r\n","import { i18nMap } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport { BaseColumn } from './base-column';\r\n\r\nconst { portfolioCampaignType, portfolioCampaignTypeFromODataValue } = i18nMap;\r\n\r\nexport class CampaignTypeColumn extends BaseColumn {\r\n constructor({\r\n i18n,\r\n }) {\r\n super({\r\n name: 'CampaignType',\r\n title: _TL_('Campaign type'),\r\n i18n,\r\n property: 'CampaignType',\r\n sortable: 'CampaignType',\r\n helpId: 'pop_BA_PortfolioBidStrategy_CampaignType',\r\n });\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n CampaignType,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return this.i18n.getString(portfolioCampaignType[portfolioCampaignTypeFromODataValue[CampaignType]] || '-');\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { BaseColumn } from './base-column';\r\n\r\nexport class BidStrategyTargetCpaColumn extends BaseColumn {\r\n constructor({\r\n i18n,\r\n inlineEditConfig: {\r\n onEditTargetCpa,\r\n } = {},\r\n }) {\r\n super({\r\n name: 'BidStrategyTargetCpa',\r\n title: _TL_('Target CPA'),\r\n i18n,\r\n property: 'TargetCpa',\r\n sortable: 'TargetCpa',\r\n helpId: 'pop_BA_CampaignGrids_TargetCPA',\r\n enableEdit: item =>\r\n item.Type === 'TargetCpa',\r\n });\r\n this.onEditTargetCpa = onEditTargetCpa;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n TargetCpa,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return _.isNull(TargetCpa) ? '-' : decimal.fromFloatToString(TargetCpa);\r\n }\r\n\r\n onPrompt(...args) {\r\n return this.onEditTargetCpa(...args);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { BaseColumn } from './base-column';\r\n\r\nexport class BidStrategyTargetRoasColumn extends BaseColumn {\r\n constructor({\r\n i18n,\r\n inlineEditConfig: {\r\n onEditTargetRoas,\r\n } = {},\r\n }) {\r\n super({\r\n name: 'BidStrategyTargetRoas',\r\n title: _TL_('Target ROAS'),\r\n i18n,\r\n format: 'percentage-value',\r\n property: 'TargetRoas',\r\n sortable: 'TargetRoas',\r\n helpId: 'pop_BA_CampaignGrids_TargetROAS',\r\n enableEdit: item =>\r\n item.Type === 'TargetRoas' || (item.Type === 'MaxConversionValue' && item.TargetRoas),\r\n });\r\n this.onEditTargetRoas = onEditTargetRoas;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n TargetRoas,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return _.isNull(TargetRoas) ? '-' : decimal.fromFloatToPercentString(TargetRoas * 100);\r\n }\r\n\r\n onPrompt(...args) {\r\n return this.onEditTargetRoas(...args);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { BaseColumn } from './base-column';\r\n\r\nexport class BidStrategyTargetImpressionShareColumn extends BaseColumn {\r\n constructor({\r\n i18n,\r\n inlineEditConfig: {\r\n onEditTargetImpressionShare,\r\n } = {},\r\n }) {\r\n super({\r\n name: 'BidStrategyTargetImpressionShare',\r\n title: _TL_('Target Impr. share'),\r\n i18n,\r\n property: 'TargetImpressionShare',\r\n format: 'percentage-value',\r\n sortable: 'TargetImpressionShare',\r\n helpId: 'pop_BA_CampaignGrids_TargetImprShare',\r\n enableEdit: item =>\r\n item.Type === 'TargetImpressionShare',\r\n });\r\n\r\n this.onEditTargetImpressionShare = onEditTargetImpressionShare;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n TargetImpressionShare,\r\n },\r\n }) {\r\n // For aggregated rows\r\n if ($total) {\r\n return ' ';\r\n }\r\n\r\n // For regular rows\r\n return _.isNull(TargetImpressionShare) ? '-' : decimal.fromFloatToPercentString(TargetImpressionShare);\r\n }\r\n\r\n onPrompt(...args) {\r\n return this.onEditTargetImpressionShare(...args);\r\n }\r\n}\r\n","import { BaseColumn } from './base-column';\r\n\r\nexport class OwnerColumn extends BaseColumn {\r\n constructor(option) {\r\n super({\r\n name: 'Owner',\r\n title: _TL_('Owner'),\r\n i18n: option.i18n,\r\n property: ['Owner'],\r\n sortable: 'Owner',\r\n });\r\n this.scope = option.scope;\r\n }\r\n\r\n template({\r\n value: {\r\n $total,\r\n Name,\r\n Number,\r\n },\r\n }) {\r\n // $total For aggregated rows\r\n return $total ? ' ' : `${Name} (${Number})`;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport {\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCPA,\r\n ColumnPartialConversionCPA,\r\n ColumnConversions,\r\n ColumnConversionsCredit,\r\n ColumnAdvertiserReportedRevenue,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { BidStrategyNameColumn } from './bid-strategy-name-column';\r\nimport { BidStrategyTypeColumn } from './bid-strategy-type-column';\r\nimport { BidStrategyStatusColumn } from './bid-strategy-status-column';\r\nimport { AssociatedCampaignsColumn } from './associated-campaigns-column';\r\nimport { CampaignTypeColumn } from './campaign-type-column';\r\nimport { BidStrategyTargetCpaColumn } from './bid-strategy-target-cpa-column';\r\nimport { BidStrategyTargetRoasColumn } from './bid-strategy-target-roas-column';\r\nimport { BidStrategyTargetImpressionShareColumn } from './bid-strategy-target-impression-share-column';\r\nimport { OwnerColumn } from './owner-column';\r\n\r\nfunction getBuilder({ permissions }) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n // IsAudienceSOVEnabled,\r\n IsCallMeteringAllowed,\r\n dynamic = {},\r\n } = permissions;\r\n const {\r\n CrossAccountPortfolio,\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n const builder = new ColumnsConfigBuilder()\r\n .addCategory('Attributes', category => category.addColumns([\r\n BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n BidStrategyStatusColumn,\r\n AssociatedCampaignsColumn,\r\n CampaignTypeColumn,\r\n BidStrategyTargetCpaColumn,\r\n BidStrategyTargetRoasColumn,\r\n BidStrategyTargetImpressionShareColumn,\r\n ].concat(CrossAccountPortfolio ? [OwnerColumn] : [])))\r\n .addPerformanceCategoryForCampaign()\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled,\r\n });\r\n // Comment out SOV columns until backend ready.\r\n // .addCompetitiveCategoryForCampaignOrAdGroups({\r\n // IsAudienceSOVEnabled,\r\n // });\r\n\r\n if (IsCallMeteringAllowed) {\r\n builder.addCallDetailsCategoryForCampaigns();\r\n }\r\n\r\n builder\r\n .setLockedColumns([\r\n BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n BidStrategyStatusColumn,\r\n AssociatedCampaignsColumn,\r\n ])\r\n .setSelectedColumns(_.compact([\r\n CampaignTypeColumn,\r\n ColumnClicks,\r\n ColumnImpressions,\r\n !usePartialConversions && ColumnConversions,\r\n usePartialConversions && ColumnConversionsCredit,\r\n !usePartialConversions && ColumnCPA,\r\n usePartialConversions && ColumnPartialConversionCPA,\r\n ColumnAdvertiserReportedRevenue,\r\n BidStrategyTargetCpaColumn,\r\n BidStrategyTargetRoasColumn,\r\n BidStrategyTargetImpressionShareColumn,\r\n ]));\r\n\r\n return builder;\r\n}\r\n\r\nexport function getColumnsAndColumnChooserConfig({\r\n i18n,\r\n columnChooserPreferences: { Columns, SelectedColumns },\r\n inlineEditConfig,\r\n scope,\r\n permissions,\r\n appState,\r\n}) {\r\n const builder = getBuilder({ permissions });\r\n\r\n\r\n const columnsConfig = builder.getColumnsConfig({\r\n i18n,\r\n inlineEditConfig,\r\n scope,\r\n permissions,\r\n appState,\r\n });\r\n\r\n const columnChooserConfig = builder.getColumnChooserConfig({\r\n i18n,\r\n Columns,\r\n SelectedColumns,\r\n permissions,\r\n });\r\n\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n\r\n return {\r\n columnsConfig,\r\n columnChooserConfig,\r\n };\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport odataSchemas from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { getColumnsAndColumnChooserConfig } from './columns';\r\n\r\nexport class PortfolioBidStrategyGridConfig {\r\n constructor({\r\n gridName, i18n, dataSource, query, columnChooserPreferences, inlineEditConfig, scope, edm, getDateFilter, permissions, setSegType, getSegType, preferenceService, DownloadView, appState, filterService, s$i18n, perfMarker, globalConfig,\r\n blockerTarget,\r\n }) {\r\n const { columnsConfig, columnChooserConfig } = getColumnsAndColumnChooserConfig({\r\n i18n, columnChooserPreferences, inlineEditConfig, scope, permissions, appState,\r\n });\r\n\r\n const p$daterange = () => {\r\n const dateFilter = getDateFilter();\r\n return Promise.resolve(dateFilter);\r\n };\r\n\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n appState.unset('$ReportEmailRule');\r\n\r\n const pluginsConfig = {\r\n perfMarker: {\r\n appConfig: globalConfig,\r\n marker: perfMarker,\r\n },\r\n a11y: { i18n },\r\n pagination: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n pageNumberLabelText: i18n.getString(_TL_('Page')),\r\n pageSizeText: i18n.getString(_TL_('Show rows:')),\r\n enableRandomPage: false,\r\n },\r\n uiBlocker: {\r\n el: blockerTarget,\r\n text: i18n.getString(_TL_('Loading...')),\r\n },\r\n placeholder: {\r\n container: '.grid-noresult',\r\n text: i18n.getString(_TL_('You have no portfolio bid strategies. Click Create to get started.')),\r\n filteredEmptyText: i18n.getString(_TL_('There are no results available based on your filtered search. Please revise your search.')),\r\n },\r\n columnChooser: columnChooserConfig,\r\n editable: {\r\n i18n,\r\n },\r\n projectionGridScopeNavigator: scope,\r\n dateFilter: {\r\n isForVNext: true,\r\n isOdataActionSource: true,\r\n edm,\r\n p$daterange,\r\n addDateChangeListener: _.noop,\r\n },\r\n popColumns: {\r\n i18n,\r\n },\r\n segment: {\r\n isOdataActionSource: true,\r\n permissions,\r\n edm,\r\n i18n,\r\n setSegType,\r\n getSegType,\r\n cellTemplates: {\r\n PortfolioGridBidStrategyName: 'default',\r\n },\r\n },\r\n projectionGridFlexColumnResize: {\r\n gridName,\r\n softDependencies: ['popColumns'],\r\n preferenceService,\r\n },\r\n projectionGridScrollbar: {\r\n scrollElementSelector: '.grid-group-other',\r\n },\r\n inlineDownload: {\r\n isForVNext: true,\r\n p$daterange,\r\n DownloadView,\r\n isAvailable: true,\r\n gridId: gridName,\r\n schema: odataSchemas.PortfolioBidStrategy,\r\n s$i18n,\r\n i18n,\r\n ReportEmailRule,\r\n },\r\n };\r\n\r\n const tableName = i18n.getString(_TL_('Portfolio bid strategy'));\r\n\r\n return {\r\n name: gridName,\r\n tableClasses: ['table'],\r\n tableAttributes: { 'aria-label': tableName },\r\n layout: 'flex',\r\n i18n,\r\n columns: columnsConfig,\r\n dataSource,\r\n query,\r\n rows: {\r\n headRows: [\r\n 'column-header-rows',\r\n ],\r\n },\r\n selection: {\r\n single: true,\r\n },\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: () => $('.sticky-container').height(),\r\n attributes: {\r\n 'aria-label': i18n.getString(_TL_('{{tableName}} table header'), { tableName }),\r\n role: 'rowgroup',\r\n },\r\n },\r\n virtualized: true,\r\n // backbone-virtualized-listview listens to viewport element's resize and scroll events to refresh header's position.\r\n // Search keyword `_hookUpStickyHeader` to see more details.\r\n viewport: $('.table-page-container'),\r\n },\r\n plugins: pluginsConfig,\r\n // Needed by inline download plugin\r\n // projection-grid-inline-download/src/without-dependencies.js line 21\r\n filterService,\r\n // Needed by pagination plugin\r\n // projection-grid-pagination/src/index.es line 115\r\n preferenceService,\r\n config: globalConfig,\r\n };\r\n }\r\n}\r\n","import { gridFlexStyle } from '@bingads-webui-campaign-react/grid-flex-style';\r\n\r\nexport function getStyles(_, { palette = {} }) {\r\n return {\r\n portfolioTablePageContainer: {\r\n '& .toolbar .contextual-dropdown .btn-primary': {\r\n height: '32px',\r\n padding: '0 20px',\r\n // Begin: fix bug https://msasg.visualstudio.com/Bing_Ads/_workitems/edit/4114579\r\n color: '#ffffff',\r\n background: '#0078d4',\r\n // End\r\n '& .iconba-Add': {\r\n color: '#fff',\r\n },\r\n },\r\n },\r\n portfolioGridViewContainer: {\r\n // In the first column (selection column), hide redundant radio buttons\r\n '& .tbody .tr .td[data-column=\"selection\"] > input': {\r\n '&:before': {\r\n content: 'none',\r\n },\r\n '&:after': {\r\n content: 'none',\r\n },\r\n },\r\n },\r\n '@global': {\r\n ...gridFlexStyle({ palette }),\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { getCommonFilterConfig, PortfolioBidStrategySchemaProcessor } from '@bingads-webui-campaign/common-grid-config';\r\nimport odataSchemas from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { sessionStore } from '@bingads-webui/js-data-storage';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { i18nMap } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nfunction mapKeyValue(object, fn) {\r\n return _.chain(object)\r\n .pairs()\r\n .map(fn)\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction cookSchema({ rawSchema, permissions, i18n }) {\r\n const Name = {\r\n ...rawSchema.properties.Name,\r\n filterable: true,\r\n };\r\n\r\n const bidStrategyType = i18nMap.portfolioBidStrategyTypeWithPilot(permissions);\r\n const Type = {\r\n ...rawSchema.properties.Type,\r\n filterable: true,\r\n chooseType: 'checkbox',\r\n enumType: 'BiddingStrategyType',\r\n enum: _.intersection(rawSchema.properties.Type.enum, _.keys(bidStrategyType)),\r\n localized: mapKeyValue(bidStrategyType, ([key, value]) => [\r\n `Enum.BiddingStrategyType'${key}'`,\r\n i18n.getString(value),\r\n ]),\r\n };\r\n\r\n const Status = {\r\n ...rawSchema.properties.Status,\r\n filterable: true,\r\n chooseType: 'checkbox',\r\n enumType: 'PortfolioBidStrategyStatus',\r\n enum: _.intersection(rawSchema.properties.Status.enum, _.keys(i18nMap.bidStrategyStatus)),\r\n localized: mapKeyValue(i18nMap.bidStrategyStatus, ([key, value]) => [\r\n `Enum.PortfolioBidStrategyStatus'${key}'`,\r\n i18n.getString(value),\r\n ]),\r\n };\r\n\r\n const AssociationCount = {\r\n ...rawSchema.properties.AssociationCount,\r\n filterable: true,\r\n };\r\n\r\n const CampaignType = {\r\n ...rawSchema.properties.CampaignType,\r\n filterable: true,\r\n chooseType: 'checkbox',\r\n enum: _.intersection(rawSchema.properties.CampaignType.enum, _.keys(i18nMap.portfolioCampaignTypeFromODataValue)),\r\n localized: mapKeyValue(i18nMap.portfolioCampaignTypeFromODataValue, ([key, value]) => [\r\n `Enum.CampaignType'${key}'`,\r\n i18n.getString(i18nMap.portfolioCampaignType[value]),\r\n ]),\r\n };\r\n\r\n const PhonePerformanceMetrics = {\r\n ...rawSchema.properties.PhonePerformanceMetrics,\r\n filterable: ['ManualCalls', 'PhoneImpressions', 'PTR', 'ClickAndPhoneSpend'],\r\n };\r\n\r\n const TargetCpa = {\r\n ...rawSchema.properties.TargetCpa,\r\n filterable: true,\r\n };\r\n\r\n const TargetRoas = {\r\n ...rawSchema.properties.TargetRoas,\r\n filterable: true,\r\n isPercentValue: true,\r\n maximum: 100000,\r\n };\r\n\r\n const TargetImpressionShare = {\r\n ...rawSchema.properties.TargetImpressionShare,\r\n filterable: true,\r\n isPercentValue: true,\r\n };\r\n\r\n const Owner = {\r\n ...rawSchema.properties.Owner,\r\n filterable: permissions.dynamic && permissions.dynamic.CrossAccountPortfolio,\r\n $ref: 'Edm/String', // TODO llzhang remove this when backend is ready\r\n type: 'string',\r\n name: 'String',\r\n 'bulk-upload-header': 'Bid Strategy Owner',\r\n };\r\n\r\n const cookedSchema = {\r\n ...rawSchema,\r\n properties: {\r\n ...rawSchema.properties,\r\n Name,\r\n Type,\r\n Status,\r\n AssociationCount,\r\n CampaignType,\r\n TargetCpa,\r\n TargetRoas,\r\n TargetImpressionShare,\r\n PhonePerformanceMetrics,\r\n ...((permissions.dynamic && permissions.dynamic.CrossAccountPortfolio) ? { Owner } : {}),\r\n },\r\n };\r\n\r\n return cookedSchema;\r\n}\r\n\r\nexport function getFilterConfig({\r\n i18n,\r\n permissions,\r\n globalConfig,\r\n preferenceService,\r\n preferenceStoreFactory,\r\n getGridView,\r\n}) {\r\n const entitySchema = cookSchema({\r\n rawSchema: odataSchemas.PortfolioBidStrategy,\r\n permissions,\r\n i18n,\r\n });\r\n\r\n const filterConfig = getCommonFilterConfig({\r\n i18n,\r\n featureName: 'PortfolioBidStrategyGrid',\r\n entitySchema,\r\n globalConfig,\r\n preferenceService,\r\n preferenceStoreFactory,\r\n sessionStore,\r\n enableCampaignWaterfall: false,\r\n allowCampaignTypeWaterfall: false,\r\n searchbox: {\r\n placeholder: i18n.getString(_TL_('Bid strategy name')),\r\n searchProperty: 'Name',\r\n searchOperator: '$contains',\r\n },\r\n // schemaProcessor is used to append PoP properties\r\n schemaProcessor: new PortfolioBidStrategySchemaProcessor({\r\n i18n,\r\n }),\r\n });\r\n\r\n const filterService = new FilterService(filterConfig);\r\n\r\n filterService.on('filter-state-changed', (combinedFilter /* subStatus */) => {\r\n const gridView = getGridView();\r\n if (gridView) {\r\n if (combinedFilter.filter.query.TargetRoas) {\r\n const filterTargetRoas = combinedFilter.filter.query.TargetRoas;\r\n Object.keys(filterTargetRoas).forEach((key) => {\r\n // eslint-disable-next-line no-param-reassign\r\n combinedFilter.filter.query.TargetRoas[key] = decimal.fromLocalToFloat(filterTargetRoas[key] / 100.0, 4);\r\n });\r\n }\r\n updateGridQuery(gridView, combinedFilter.filter, true);\r\n }\r\n });\r\n\r\n return {\r\n ...filterConfig,\r\n filterService,\r\n };\r\n}\r\n","import { pick } from 'underscore';\r\nimport { InlineEditableColumnPrompt } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { localizeApiError, targetCpaInlineEditorView, targetImpressionShareInlineEditorView, targetAdPositionInlineEditorView, targetRoasInlineEditorView } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\nimport odataSchemas from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { NumberRange } from '@bingads-webui-campaign-legacy/bidding-strategy/viewmodel/setting';\r\n\r\nconst schema = odataSchemas.PortfolioBidStrategy;\r\nconst inlineEditProperty = ['Id', 'Name', 'TargetCpa', 'TargetRoas', 'TargetAdPosition', 'TargetImpressionShare', 'Type', 'MaxCpc'];\r\n\r\nexport function inlineEditFactory({\r\n i18n,\r\n jsdata,\r\n currentAccount,\r\n getGridView,\r\n reloadGrid,\r\n}) {\r\n function onEditName({ item, newPosition: position }) {\r\n const fieldName = 'Name';\r\n\r\n return InlineEditableColumnPrompt({\r\n position,\r\n item,\r\n i18n,\r\n fieldName,\r\n schema,\r\n saveModel: (updated, editorView) => {\r\n const id = item.Id;\r\n const payload = pick(updated, inlineEditProperty);\r\n\r\n jsdata.PortfolioBidStrategy.update(id, payload, {\r\n entitySet: currentAccount.PortfolioBidStrategies,\r\n })\r\n .then(() => {\r\n editorView.trigger('save');\r\n reloadGrid();\r\n })\r\n .catch((error) => {\r\n const errorMessage = localizeApiError(error, i18n);\r\n editorView.setErrors({\r\n [fieldName]: errorMessage,\r\n });\r\n })\r\n .finally(withUiBlock(getGridView().$el));\r\n },\r\n });\r\n }\r\n\r\n function onEditTargetCpa({ item, newPosition: position }) {\r\n const minValue = (NumberRange && NumberRange.targetCpa && NumberRange.targetCpa.minValue) || 0.01;\r\n const maxValue = (NumberRange && NumberRange.targetCpa && NumberRange.targetCpa.maxValue) || 4000;\r\n const fieldName =\r\n {\r\n property: 'TargetCpa',\r\n control: targetCpaInlineEditorView,\r\n i18n: this.i18n,\r\n curTargetCpa: decimal.fromFloatToString(item.TargetCpa),\r\n minValue,\r\n maxValue,\r\n currencySymbol: this.i18n.getCurrencySymbol(PageContext.AccountCurrencyCode),\r\n currencySymbolClassName: `symbol-size-${this.i18n.getCurrencySymbol(PageContext.AccountCurrencyCode).length}`,\r\n };\r\n\r\n return InlineEditableColumnPrompt({\r\n position,\r\n item,\r\n i18n,\r\n fieldName,\r\n schema,\r\n saveModel: (updated, editorView) => {\r\n if (updated.TargetCpa < minValue || updated.TargetCpa > maxValue) {\r\n return;\r\n }\r\n const id = item.Id;\r\n const payload = pick(updated, inlineEditProperty);\r\n\r\n jsdata.PortfolioBidStrategy.update(id, payload, {\r\n entitySet: currentAccount.PortfolioBidStrategies,\r\n })\r\n .then(() => {\r\n editorView.trigger('save');\r\n reloadGrid();\r\n })\r\n .catch((error) => {\r\n const errorMessage = localizeApiError(error, i18n);\r\n editorView.setErrors({\r\n TargetCpa: errorMessage,\r\n });\r\n })\r\n .finally(withUiBlock(getGridView().$el));\r\n },\r\n });\r\n }\r\n\r\n function onEditTargetRoas({ item, newPosition: position }) {\r\n const model = cloneDeep(item);\r\n model.TargetRoas = decimal.fromLocalToFloat(item.TargetRoas * 100.0, 2);\r\n const fieldName = {\r\n property: 'TargetRoas',\r\n control: targetRoasInlineEditorView,\r\n i18n: this.i18n,\r\n curTargetRoas: decimal.fromFloatToString(item.TargetRoas * 100.0, 2),\r\n };\r\n\r\n return InlineEditableColumnPrompt({\r\n position,\r\n item: model,\r\n i18n,\r\n fieldName,\r\n schema,\r\n saveModel: (updated, editorView) => {\r\n if (updated.TargetRoas < 1.0 || updated.TargetRoas > 100000.0) {\r\n return;\r\n }\r\n const id = item.Id;\r\n const payload = pick(updated, inlineEditProperty);\r\n payload.TargetRoas = (updated.TargetRoas / 100.0).toFixed(4);\r\n jsdata.PortfolioBidStrategy.update(id, payload, {\r\n entitySet: currentAccount.PortfolioBidStrategies,\r\n })\r\n .then(() => {\r\n editorView.trigger('save');\r\n reloadGrid();\r\n })\r\n .catch((error) => {\r\n const errorMessage = localizeApiError(error, i18n);\r\n editorView.setErrors({\r\n TargetRoas: errorMessage,\r\n });\r\n })\r\n .finally(withUiBlock(getGridView().$el));\r\n },\r\n });\r\n }\r\n\r\n function onEditTargetImpressionShare({ item, newPosition: position }) {\r\n const fields =\r\n [{\r\n property: 'TargetImpressionShare',\r\n valueProperty: 'TargetAdPosition',\r\n control: targetImpressionShareInlineEditorView,\r\n i18n: this.i18n,\r\n curTargetImpressionShare: decimal.fromFloatToString(item.TargetImpressionShare),\r\n curTargetAdPosition: item.TargetAdPosition,\r\n }, {\r\n property: 'TargetAdPosition',\r\n control: targetAdPositionInlineEditorView,\r\n }];\r\n\r\n return PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema,\r\n model: item,\r\n fields,\r\n hasLabels: false,\r\n template: 'inline',\r\n saveModel: (updated, editorView) => {\r\n if (updated.TargetImpressionShare < 0.01 || updated.TargetImpressionShare > 100.0) {\r\n return;\r\n }\r\n const id = item.Id;\r\n const payload = pick(updated, inlineEditProperty);\r\n\r\n jsdata.PortfolioBidStrategy.update(id, payload, {\r\n entitySet: currentAccount.PortfolioBidStrategies,\r\n })\r\n .then(() => {\r\n editorView.trigger('save');\r\n reloadGrid();\r\n })\r\n .catch((error) => {\r\n const errorMessage = localizeApiError(error, i18n);\r\n editorView.setErrors({\r\n TargetImpressionShare: errorMessage,\r\n });\r\n })\r\n .finally(withUiBlock(getGridView().$el));\r\n },\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n });\r\n }\r\n\r\n return {\r\n onEditName,\r\n onEditTargetCpa,\r\n onEditTargetRoas,\r\n onEditTargetImpressionShare,\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// Use React.memo so that the component will rerender ONLY IF props changed.\r\n// Avoid rerender the component if props not changed.\r\nexport const ReloadGridWhenDateChange = React.memo((props) => {\r\n const {\r\n // eslint-disable-next-line\r\n dateFilter,\r\n reloadGrid,\r\n } = props;\r\n\r\n reloadGrid();\r\n\r\n return null;\r\n});\r\n\r\nReloadGridWhenDateChange.propTypes = {\r\n dateFilter: PropTypes.shape({}).isRequired,\r\n reloadGrid: PropTypes.func.isRequired,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\nimport { underlineLinkStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nconst getStyles = (_, { palette = {} }) => ({\r\n description: {\r\n marginTop: 10,\r\n marginBottom: 10,\r\n paddingLeft: 32,\r\n '& span': {\r\n whiteSpace: 'nowrap',\r\n ...underlineLinkStyle({ palette }),\r\n },\r\n },\r\n});\r\n\r\nfunction DescriptionBanner(props) {\r\n const { classes } = props;\r\n const i18n = useContext(I18nContext);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nDescriptionBanner.propTypes = {\r\n classes: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nconst Wrapped = withDefaultStyles(DescriptionBanner, getStyles);\r\nexport { Wrapped as DescriptionBanner };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { StyledTablePageContainer } from '@bingads-webui-campaign-react/table-page-container';\r\nimport { StyledGridViewWrapper } from '@bingads-webui-campaign-react/grid-view-wrapper';\r\nimport { withTablePageStateManager } from '@bingads-webui-campaign-react/table-page-state-manager';\r\nimport { getToolbarEditor } from '@bingads-webui-campaign-react/toolbar-plugin';\r\nimport { FilterViewManagerWithGlobalFilterContext } from '@bingads-webui-campaign-react/filter-view-manager';\r\nimport { withLegacyDeps } from '@bingads-webui-campaign-react/legacy-deps-context';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { getEntityFromScope } from '@bingads-webui/edm-campaign';\r\nimport { TopGridPanel } from '@bingads-webui-campaign-react/top-grid-panel';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withGlobalFilter } from '@bingads-webui-react/global-filter-context';\r\nimport { WaterfallFilterType, waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\nimport { aggregatedRowsPluginBuilder } from '@bingads-webui-campaign/pgrid-aggregated-rows';\r\nimport { updateGridQuery, validateOrder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getGridPreferences } from './fetch-preferences';\r\nimport { getToolbarConfig } from './toolbar-config';\r\nimport { toolbarActionFactory } from './toolbar-action';\r\nimport { clearSelection } from './selection-helper';\r\nimport { PortfolioBidStrategyGridView } from './grid/grid-view';\r\nimport { PortfolioBidStrategyGridConfig } from './grid/grid-config';\r\nimport { getStyles } from './styles';\r\nimport { getFilterConfig } from './filter-config';\r\nimport { inlineEditFactory } from './inline-edit';\r\nimport { ReloadGridWhenDateChange } from './reload-grid-when-date-change';\r\nimport { DescriptionBanner } from './description';\r\n\r\nconst gridName = 'PortfolioBidStrategyGrid';\r\n\r\nclass PortfolioBidStrategySummary extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.renderFilterViewManager = _.once(this.renderFilterViewManager);\r\n this.renderGrid = _.once(this.renderGrid);\r\n this.renderLazyGrid = _.once(this.renderLazyGrid);\r\n\r\n this.p$componentMount = new Promise((resolve) => {\r\n this.setComponentMounted = resolve;\r\n });\r\n\r\n const { legacyDeps: { getSegPreference, fetchPaginationConfig, campaignCacheManager } } = props;\r\n this.p$preferenceConfig = getGridPreferences({\r\n gridName,\r\n getSegPreference,\r\n fetchPaginationConfig,\r\n });\r\n\r\n // Whenever enter portfolio grid, avoid cache in aggregator service and force reload data from DB.\r\n // To resolve cache issue like Bug 3381957.\r\n campaignCacheManager.invalidate('PortfolioBidStrategy');\r\n }\r\n\r\n componentDidMount() {\r\n this.setComponentMounted();\r\n }\r\n\r\n getRawDateFilter = () => this.props[WaterfallFilterType.DateFilter];\r\n\r\n getCookedDateFilter = () => {\r\n const { serverContext } = this.props;\r\n const rawDateFilter = this.getRawDateFilter();\r\n const cookedDateFilter = waterfallDateFilterProcessor([{ filter: rawDateFilter }], serverContext);\r\n\r\n return cookedDateFilter;\r\n }\r\n\r\n getGridView = () =>\r\n putil.get(this.backboneGridView, 'grid.gridView');\r\n\r\n clearSelection = () => clearSelection(this.getGridView());\r\n\r\n reloadGrid = ({\r\n resetSelection = false,\r\n } = {}) => {\r\n const gridView = this.getGridView();\r\n if (gridView) {\r\n if (resetSelection) {\r\n this.clearSelection();\r\n }\r\n gridView.refresh(true);\r\n }\r\n }\r\n\r\n renderFilterViewManager() {\r\n const {\r\n i18n,\r\n permissions,\r\n preferenceService,\r\n legacyDeps: { globalConfig, preferenceStoreFactory },\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n updateToolbar,\r\n resetToolbarVisibility,\r\n } = this.props;\r\n const { getGridView } = this;\r\n\r\n const filterConfig = getFilterConfig({\r\n i18n,\r\n permissions,\r\n globalConfig,\r\n preferenceService,\r\n preferenceStoreFactory,\r\n getGridView,\r\n });\r\n // Expose filterService so it could be consumed by the grid - inline download plugin and aggregated rows plugin\r\n this.filterService = filterConfig.filterService;\r\n\r\n const toolbarEditor = getToolbarEditor({\r\n toolbarConfig: { toolbarSelectedConfig, toolbarUnselectedConfig },\r\n updateToolbar,\r\n });\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderTopContent() {\r\n const { showTopGridPanel, panelView } = this.props;\r\n\r\n if (showTopGridPanel) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderStickyTopContent() {\r\n return (\r\n \r\n {this.props.renderToolbarContainer({ isMultiPage: false })}\r\n {this.renderFilterViewManager()}\r\n \r\n );\r\n }\r\n\r\n renderLazyGrid() {\r\n const LazyGrid = React.lazy(() =>\r\n Promise.all([\r\n this.p$preferenceConfig,\r\n // Column freezing plugin requires .table-page-container to exist in DOM, before the plugin runs\r\n // @bingads-webui-campaign/projection-grid-scrollbar/src/plugin.js line 280\r\n // new ResizeObserver(lazyResizeCalculate).observe(document.querySelector(pageContainer));\r\n this.p$componentMount,\r\n ]).then(([preferenceConfig]) => ({\r\n default: () => this.renderGrid(preferenceConfig),\r\n })));\r\n\r\n return ();\r\n }\r\n\r\n renderGrid(preferenceConfig) {\r\n const {\r\n i18n,\r\n scope,\r\n permissions,\r\n legacyDeps: {\r\n jsdata, edm, columnChooserPreferences, setSegType, getSegType, DownloadView, appState, s$i18n, globalConfig, handleSortChange,\r\n },\r\n onGridInjected,\r\n toolbarPlugin,\r\n crossPageSelectPlugin,\r\n preferenceService,\r\n perfMarker,\r\n } = this.props;\r\n const { currentAccount } = getEntityFromScope(scope);\r\n const { getGridView, reloadGrid } = this;\r\n\r\n /**\r\n In order to set request body, the grid plugins use a hacky way:\r\n entitySet.navigation.parameters = {\r\n gridDataParameters: {\r\n DateRange: {\r\n StartDate,\r\n EndDate,\r\n },\r\n ComparisonDateRange: {\r\n StartDate,\r\n EndDate,\r\n },\r\n }\r\n };\r\n\r\n Then old js-data-odata adapter gets it and set to request body:\r\n findAll(definition, params, options)\r\n request body = options.entitySet.navigation.parameters\r\n\r\n But new edm does not support this. Have to fallback to old js-data & old edm.\r\n */\r\n const dataSource = {\r\n type: 'jsdata',\r\n entity: jsdata.PortfolioBidStrategy,\r\n options: {\r\n entitySet: edm.currentAccount.PortfolioBidStrategies['Default.GridData'].$call({\r\n // MT requires this, otherwise will get BadRequest with error code: InvalidGridDataParameters\r\n gridDataParameters: {},\r\n }),\r\n },\r\n };\r\n\r\n const query = {\r\n // UI must select BI columns explictly, otherwise MT will not return any BI data in the case PoP is turned on.\r\n // Here it only specifies basic BI columns, date filter plugin will add more columns if PoP is on. Search `defaultComparisonColumns` to see more details.\r\n select: [\r\n 'PerformanceMetrics',\r\n 'PhonePerformanceMetrics',\r\n ],\r\n };\r\n\r\n const inlineEditConfig = inlineEditFactory({\r\n i18n,\r\n jsdata,\r\n currentAccount,\r\n getGridView,\r\n reloadGrid,\r\n });\r\n\r\n const config = new PortfolioBidStrategyGridConfig({\r\n gridName,\r\n i18n,\r\n dataSource,\r\n query,\r\n columnChooserPreferences,\r\n inlineEditConfig,\r\n scope,\r\n edm,\r\n getDateFilter: this.getCookedDateFilter,\r\n permissions,\r\n setSegType,\r\n getSegType,\r\n preferenceService,\r\n DownloadView,\r\n appState,\r\n filterService: this.filterService,\r\n s$i18n,\r\n perfMarker,\r\n globalConfig,\r\n });\r\n\r\n validateOrder(preferenceConfig, config.columns, config.name, permissions);\r\n const finalConfig = putil.merge(config, preferenceConfig);\r\n\r\n const aggregatedRowsPlugin = aggregatedRowsPluginBuilder({\r\n i18n,\r\n keys: {\r\n overallI18nKey: _TL_('Overall total - {{number}} bid strategies'),\r\n filteredI18nKey: _TL_('Filtered total - {{number}} bid strategies'),\r\n waterfallFilterI18nKey: _TL_('All enabled total - {{number}} bid strategies'),\r\n },\r\n permissions,\r\n filterService: this.filterService,\r\n customConfig: {\r\n showSearchRow: false,\r\n showAudienceRow: false,\r\n showNativeRow: false,\r\n showDeletedRow: false,\r\n },\r\n });\r\n\r\n const backboneGridView = new PortfolioBidStrategyGridView({\r\n config: finalConfig,\r\n permissions,\r\n toolbarPlugin,\r\n aggregatedRowsPlugin,\r\n crossPageSelectPlugin,\r\n });\r\n\r\n _.extend(this, { backboneGridView });\r\n\r\n // Set filter to grid query after grid initialized. This is needed to fix Bug 3273908.\r\n // Note: do not rely on the other updateGridQuery in filter-config.js, because that will be executed before grid initialized.\r\n updateGridQuery(getGridView(), this.filterService.getCombinedFilter(), true);\r\n\r\n // Once sort changes, save to preference\r\n getGridView().on('willUpdate', (changes) => {\r\n handleSortChange(changes, getGridView(), gridName);\r\n });\r\n\r\n const toolbarAction = toolbarActionFactory({\r\n i18n,\r\n jsdata,\r\n scope,\r\n getGridView,\r\n reloadGrid,\r\n });\r\n\r\n onGridInjected({\r\n backboneGridView,\r\n reloadGrid,\r\n toolbarAction,\r\n deselectAll: this.clearSelection,\r\n });\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n classes, forceResetScrollFlag, showTopGridPanel, serverContext,\r\n } = this.props;\r\n\r\n return (\r\n \r\n { !showTopGridPanel && }\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nPortfolioBidStrategySummary.propTypes = {\r\n classes: PropTypes.objectOf(PropTypes.string).isRequired,\r\n i18n: PropTypes.shape({}).isRequired,\r\n serverContext: PropTypes.shape({\r\n Token: PropTypes.string.isRequired,\r\n }).isRequired,\r\n legacyDeps: PropTypes.shape({}).isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n perfMarker: PropTypes.shape({}).isRequired,\r\n // Begin: injected by withTablePageStateManager\r\n toolbarSelectedConfig: PropTypes.shape({}).isRequired,\r\n toolbarUnselectedConfig: PropTypes.shape({}).isRequired,\r\n updateToolbar: PropTypes.func.isRequired,\r\n resetToolbarVisibility: PropTypes.func.isRequired,\r\n renderToolbarContainer: PropTypes.func.isRequired,\r\n onGridInjected: PropTypes.func.isRequired,\r\n showTopGridPanel: PropTypes.bool.isRequired,\r\n panelView: PropTypes.shape({}),\r\n toolbarPlugin: PropTypes.shape({\r\n plugin: PropTypes.func.isRequired,\r\n }).isRequired,\r\n crossPageSelectPlugin: PropTypes.shape({\r\n plugin: PropTypes.func.isRequired,\r\n }).isRequired,\r\n forceResetScrollFlag: PropTypes.bool.isRequired,\r\n // End: injected by withTablePageStateManager\r\n};\r\n\r\nPortfolioBidStrategySummary.defaultProps = {\r\n panelView: null,\r\n};\r\n\r\nconst Wrapped = _.compose(\r\n withI18nConsumer,\r\n withLegacyDeps,\r\n withPreference,\r\n withScope,\r\n withPermissions,\r\n withServerContext,\r\n withGlobalFilter,\r\n Comp => withDefaultStyles(Comp, getStyles),\r\n withTablePageStateManager({ getToolbarConfig })\r\n)(PortfolioBidStrategySummary);\r\n\r\nexport { Wrapped as PortfolioBidStrategySummary };\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nexport function getGridPreferences({\r\n gridName,\r\n getSegPreference,\r\n fetchPaginationConfig,\r\n}) {\r\n const services = [\r\n fetchPaginationConfig(gridName),\r\n // Initialize segmentation preference, for segmentation plugin to consume later on\r\n getSegPreference(gridName),\r\n ];\r\n\r\n return Promise.all(services)\r\n .then(([paginationConfig]) => {\r\n const { pageSize, orderbyInfo, sortableHeader } = paginationConfig;\r\n const result = {\r\n dataSource: {},\r\n plugins: {\r\n pagination: {\r\n pageSize,\r\n },\r\n },\r\n };\r\n\r\n if (orderbyInfo && orderbyInfo.length > 0) {\r\n result.dataSource.orderby = orderbyInfo;\r\n result.sortableHeader = _.pick(sortableHeader, 'name', 'directionIndex');\r\n }\r\n\r\n return result;\r\n });\r\n}\r\n","import { getEntityFromScope } from '@bingads-webui/edm-campaign';\r\nimport { getRouterDep } from '@bingads-webui-campaign-react/legacy-router-dep';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { notificationApi } from '@bingads-webui-campaign/notification-center';\r\nimport { localizeApiError } from '@bingads-webui-campaign-react/portfolio-bid-strategy-shared';\r\n\r\nexport function toolbarActionFactory({\r\n i18n,\r\n jsdata,\r\n scope,\r\n getGridView,\r\n reloadGrid,\r\n}) {\r\n const { currentAccount } = getEntityFromScope(scope);\r\n const router = getRouterDep(scope);\r\n\r\n function onDeletePortfolio(portfolioId) {\r\n jsdata.PortfolioBidStrategy.destroy(portfolioId, {\r\n entitySet: currentAccount.PortfolioBidStrategies,\r\n })\r\n .then(() => {\r\n reloadGrid({ resetSelection: true });\r\n })\r\n .catch((error) => {\r\n notificationApi.showWarning(localizeApiError(error, i18n));\r\n })\r\n .finally(withUiBlock(getGridView().$el));\r\n }\r\n\r\n function onEditPortfolio(portfolioId) {\r\n router.navigateToRoute('portfolio_bid_strategy_settings', { portfolioId });\r\n }\r\n\r\n return {\r\n onDeletePortfolio,\r\n onEditPortfolio,\r\n };\r\n}\r\n","export const VIEW_TYPES = {\r\n SUMMARY: 'recommendation-summary',\r\n DETAILS: 'recommendation-details',\r\n HISTORY: 'recommendation-history',\r\n AUTO_APPLY_SETTINGS: 'recommendation-auto-apply-settings',\r\n AUTO_APPLY_BULK_UPLOAD: 'recommendation-auto-apply-bulk-upload',\r\n};\r\n","import {\r\n glyphIconStyle,\r\n helpbuttonStyle,\r\n statusStyle,\r\n uiblockerStyle,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\nimport { getApplyFormStyles, getFeedbackModalStyles } from '@bingads-webui-campaign-react/recommendation-shared-styles';\r\nimport { extend } from 'underscore';\r\nimport { getCommonStyles } from './styles/common';\r\n\r\nexport const getRecommendationsAutoApplyBulkUploadPageStyles = (_, { palette = {} }) => ({\r\n pageContainer: Object.assign(\r\n {},\r\n getCommonStyles(),\r\n statusStyle({ palette }),\r\n helpbuttonStyle({ palette })\r\n ),\r\n '@global': extend(\r\n {},\r\n glyphIconStyle({ palette }),\r\n uiblockerStyle({ palette }),\r\n getApplyFormStyles({ palette }),\r\n getFeedbackModalStyles({ palette })\r\n ),\r\n});\r\n","import _ from 'underscore';\r\nimport { helpbuttonStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const getHistoryGridStyles = ({ palette = {} }) => ({\r\n // recommendation-history-grid\r\n '& .recommendation-result-grid': {\r\n marginLeft: 32,\r\n marginRight: 32,\r\n\r\n '& table.sticky-header': {\r\n borderBottomStyle: 'solid',\r\n backgroundColor: palette.white,\r\n zIndex: '1000',\r\n\r\n '& tr': {\r\n '& th': {\r\n borderBottomWidth: '2px',\r\n borderBottomColor: '#81868B',\r\n borderTopWidth: '2px',\r\n borderTopColor: '#81868B',\r\n lineHeight: '19px',\r\n '& .helpbutton': helpbuttonStyle({ palette })['.helpbutton'],\r\n '& .helpbutton::before': _.defaults({\r\n top: 0,\r\n }, helpbuttonStyle({ palette })['.helpbutton::before']),\r\n },\r\n },\r\n },\r\n\r\n '& table.data-table': {\r\n '& td': {\r\n lineHeight: '19px',\r\n verticalAlign: 'middle',\r\n\r\n '& h6': {\r\n lineHeight: '19px',\r\n fontWeight: 'normal',\r\n },\r\n\r\n '& .iconba': {\r\n marginRight: '4px',\r\n },\r\n\r\n '& .recommendation-success': {\r\n marginRight: '24px',\r\n },\r\n\r\n '& .recommendation-fail': {\r\n marginRight: '12px',\r\n },\r\n },\r\n\r\n '& tfoot': {\r\n '& .pagination-control': {\r\n '& .text': {\r\n display: 'inline-block',\r\n },\r\n\r\n '& .page-size-selector': {\r\n marginLeft: '5px',\r\n },\r\n\r\n '& .pager': {\r\n display: 'inline-block',\r\n marginTop: 0,\r\n alignItems: 'center',\r\n marginLeft: 20,\r\n marginBottom: 0,\r\n\r\n '& .nav-button.prev': {\r\n background: palette.white,\r\n width: '25px',\r\n minWidth: '15px',\r\n padding: 0,\r\n marginRight: '10px',\r\n },\r\n\r\n '& .nav-button.next': {\r\n background: palette.white,\r\n width: '25px',\r\n minWidth: '15px',\r\n padding: 0,\r\n marginLeft: '10px',\r\n },\r\n\r\n '& .page-number-input': {\r\n width: 75,\r\n marginRight: 5,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& table': {\r\n borderStyle: 'hidden',\r\n fontSize: '14px',\r\n\r\n // column width\r\n '& colgroup.column-group': {\r\n '& col': {\r\n '&.col-StartTime': {\r\n width: '170px',\r\n minWidth: '170px',\r\n },\r\n '&.col-RecommendationType': {\r\n width: '310px',\r\n minWidth: '310px',\r\n },\r\n '&.col-NumberOfRecommendation': {\r\n width: '170px',\r\n minWidth: '170px',\r\n },\r\n '&.col-EditedBy': {\r\n width: '220px',\r\n minWidth: '220px',\r\n },\r\n '&.col-Status': {\r\n width: '338px',\r\n minWidth: '338px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","export const getHistoryHeaderStyles = ({ palette = {} }) => ({\r\n // recommendation-history-header\r\n '& .recommendation-history-header': {\r\n '& .recommendation-navigate-back-ground': {\r\n height: 44,\r\n display: 'flex',\r\n background: palette.neutralLighter,\r\n alignItems: 'stretch',\r\n borderBottom: 'solid 1px #e1dfdd',\r\n flexDirection: 'row',\r\n position: 'relative',\r\n\r\n '& .recommendation-navigate-back': {\r\n display: 'flex',\r\n padding: '6px 15px 6px 16px',\r\n marginTop: 'auto',\r\n alignItems: 'baseline',\r\n whiteSpace: 'nowrap',\r\n marginBottom: 'auto',\r\n\r\n '& .iconba': {\r\n marginRight: 8,\r\n },\r\n\r\n '& .recommendation-navigate-back-text': {\r\n fontFamily: 'Segoe UI',\r\n fontSize: 14,\r\n lineHeight: '16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: palette.themeDarkAlt,\r\n },\r\n },\r\n },\r\n\r\n '& .recommendation-history-title': {\r\n marginLeft: 32,\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: '20px',\r\n lineHeight: '27px',\r\n marginTop: '24px',\r\n marginBottom: '14px',\r\n },\r\n\r\n '& .recommendation-history-pitching': {\r\n marginLeft: 33,\r\n fontFamily: 'Segoe UI',\r\n fontSize: '14px',\r\n lineHeight: '24px',\r\n marginBottom: '12px',\r\n },\r\n\r\n '& .recommendation-history-toggle': {\r\n marginLeft: 33,\r\n\r\n '& .recommendation-history-auto-refresh': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n },\r\n },\r\n },\r\n});\r\n","import {\r\n glyphIconStyle,\r\n helpbuttonStyle,\r\n statusStyle,\r\n uiblockerStyle,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\nimport { extend } from 'underscore';\r\nimport { getCommonStyles } from './styles/common';\r\nimport { getCustomGridStyles } from './styles/custom-grid-style';\r\nimport { getHistoryGridStyles } from './styles/history-grid';\r\nimport { getHistoryHeaderStyles } from './styles/history-header';\r\n\r\nexport const getRecommendationsHistoryPageStyles = (_, { palette = {} }) => ({\r\n pageContainer: Object.assign(\r\n {},\r\n getCommonStyles(),\r\n getCustomGridStyles({ palette }),\r\n getHistoryGridStyles({ palette }),\r\n getHistoryHeaderStyles({ palette }),\r\n statusStyle({ palette }),\r\n helpbuttonStyle({ palette })\r\n ),\r\n '@global': extend(\r\n {},\r\n glyphIconStyle({ palette }),\r\n uiblockerStyle({ palette })\r\n ),\r\n});\r\n","export const contextualAttributeStyle = {\r\n '& .contextual-inline': {\r\n display: 'inline',\r\n '& .contextual-tooltip': {\r\n color: '#0078d4',\r\n position: 'relative',\r\n display: 'inline',\r\n '&:hover': {\r\n color: '#004578',\r\n },\r\n '& div[class^=\\'contextual-attribute-\\']': {\r\n position: 'absolute',\r\n left: '0',\r\n },\r\n '& div[class^=\\'expanding-contextual-attribute-\\']': {\r\n position: 'absolute',\r\n left: '0',\r\n },\r\n '& .contextual-tooltip-container': {\r\n border: 'solid 1px #dddddd',\r\n boxShadow: '3px 3px 4px #dddddd',\r\n background: '#fff',\r\n padding: '5px 15px 5px 15px',\r\n marginTop: 5,\r\n position: 'absolute',\r\n zIndex: '1',\r\n top: '100%',\r\n left: '0',\r\n display: 'none',\r\n '& .title': {\r\n color: '#333333',\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n lineHeight: '15px',\r\n },\r\n '& .contextual-content': {\r\n color: '#333333',\r\n fontSize: 12,\r\n lineHeight: '15px',\r\n '& .status': {\r\n fontSize: 11,\r\n float: 'left',\r\n fontWeight: '400',\r\n marginRight: '0',\r\n },\r\n '& .statusEnabled_icon': {\r\n float: 'left',\r\n marginLeft: 3,\r\n marginRight: 3,\r\n },\r\n '& .status_warning': {\r\n float: 'left',\r\n marginLeft: 3,\r\n marginRight: 3,\r\n color: '#FF9900',\r\n },\r\n '& h6': {\r\n marginTop: '10px !important',\r\n marginBottom: '10px !important',\r\n fontSize: '11px',\r\n lineHeight: '15px',\r\n fontWeight: '400',\r\n },\r\n },\r\n },\r\n },\r\n '& span[data-type^=\\'Campaign\\']': {\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: 225,\r\n minHeight: 85,\r\n },\r\n },\r\n '& span[data-type^=\\'AdGroup\\']': {\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: 225,\r\n minHeight: 5,\r\n },\r\n },\r\n '& span[data-type^=\\'Audience\\']': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: 140,\r\n minHeight: 5,\r\n },\r\n },\r\n '& span[data-type^=\\'Keyword\\']': {\r\n color: '#323130',\r\n position: 'relative',\r\n display: 'inline',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: 100,\r\n minHeight: 5,\r\n },\r\n },\r\n '& span[data-type^=\\'adoptAutoBidding\\']': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: '350px',\r\n minHeight: '5px',\r\n '& h6': {\r\n lineHeight: '20px',\r\n },\r\n },\r\n },\r\n '& span[data-type^=\\'SharedBudget\\']': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: '225px',\r\n minHeight: '5px',\r\n },\r\n },\r\n '& span[data-type^=\\'Account\\']': {\r\n '& .contextual-content': {\r\n width: 'auto',\r\n height: 'auto',\r\n minWidth: '225px',\r\n minHeight: '5px',\r\n },\r\n },\r\n '& span[data-type^=\\'GeneratedFrom\\']': {\r\n borderBottomColor: '#0078d4',\r\n borderBottomStyle: 'dashed',\r\n borderBottomWidth: '1px',\r\n },\r\n '& span[data-type^=\\'Goal\\']': {\r\n color: '#333333',\r\n borderBottom: '1px dashed #0078D4',\r\n '&:hover': {\r\n color: '#333333',\r\n },\r\n },\r\n '& span[data-type^=\\'CurrentSetting\\']': {\r\n color: '#A80000',\r\n '&:hover': {\r\n color: '#A80000',\r\n },\r\n },\r\n '& span[data-type^=\\'SuggestedSetting\\']': {\r\n color: '#107C10',\r\n '&:hover': {\r\n color: '#107C10',\r\n },\r\n },\r\n '& span[data-type^=\\'MoreImages\\']': {\r\n color: '#323130',\r\n position: 'relative',\r\n display: 'inline',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n },\r\n '& span[data-type^=\\'MoreConversionClarityButtons\\']': {\r\n color: '#323130',\r\n position: 'relative',\r\n display: 'inline',\r\n borderBottom: '1px dashed #0078d4',\r\n '&:hover': {\r\n color: '#323130',\r\n borderBottom: '1px dashed #004578',\r\n },\r\n },\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport { crudAdStyle, underlineLinkStyle, helpbuttonStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { getHeaderStyles } from '@bingads-webui-campaign-react/recommendation-shared-styles';\r\n\r\nexport const getSummaryPageStyles = ({ palette = {} }) =>\r\n ({\r\n '& .recommendation-summary-view': {\r\n '& >.toolbar': {\r\n marginLeft: 10,\r\n '& .upper-toolbar': {\r\n display: 'inline-block',\r\n },\r\n },\r\n '& .empty-buttons': {\r\n marginTop: 36,\r\n },\r\n\r\n // empty view\r\n '& .empty-filter-view': {\r\n margin: '160px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n\r\n '& .empty-icon': {\r\n display: 'inline-block',\r\n marginRight: 62,\r\n\r\n img: {\r\n width: 200,\r\n height: 200,\r\n },\r\n },\r\n\r\n '& .empty-details': {\r\n display: 'inline-block',\r\n color: '#605E5C',\r\n gridRow: '1',\r\n gridColumn: '2',\r\n '& .empty-title': {\r\n maxWidth: 688,\r\n fontSize: 26,\r\n margin: '0 0 8.5px',\r\n },\r\n '& .empty-sub-title': {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n ...underlineLinkStyle({ palette }),\r\n },\r\n '& .buttons-container': {\r\n display: 'inline-flex',\r\n '& .view-account-recommendations': {\r\n marginRight: 8,\r\n },\r\n '& .view-dismissed-recommendations button': {\r\n border: '1px solid #8A8886',\r\n height: 27,\r\n fontWeight: 'bold',\r\n borderRadius: 2,\r\n },\r\n },\r\n },\r\n },\r\n\r\n // summary cards\r\n '& .recommendation-summary-cards': {\r\n width: '100%',\r\n minWidth: 1000,\r\n maxWidth: 1200,\r\n transformStyle: 'preserve-3d',\r\n '& .btn-primary': {\r\n fontFamily: 'Arial, Helvetica, sans-serif',\r\n fontSize: 14,\r\n height: '32px',\r\n backgroundColor: palette.themePrimary,\r\n color: palette.white,\r\n padding: '5px 10px',\r\n borderRadius: '2px',\r\n margin: '0 5px 0 0',\r\n '&:hover': {\r\n backgroundColor: '#106ebe',\r\n },\r\n },\r\n '& .recommendation-summary-card': {\r\n minHeight: 120,\r\n marginBottom: 20,\r\n width: 510,\r\n border: 'solid 1px #dddddd',\r\n boxShadow: '3px 3px 4px #dddddd',\r\n fontFamily: '\\'Segoe UI\\', Arial, sans-serif',\r\n fontSize: 12,\r\n color: '#333333',\r\n gridTemplateColumns: '100%',\r\n gridTemplateRows: 'repeat(4,auto)',\r\n '& .summary-header': {\r\n paddingTop: '10px',\r\n paddingRight: '16px',\r\n paddingLeft: '16px',\r\n gridRow: '1',\r\n '& .recommendation-summary-header': {\r\n ...getHeaderStyles({ palette }),\r\n },\r\n },\r\n '& .summary-summary': {\r\n borderTop: 'solid 1px #dddddd',\r\n marginTop: 10,\r\n gridRow: '2',\r\n gridTemplateRows: 'repeat(2,auto)',\r\n '& .summary-notification': {\r\n '& .recommendation-notification-container': {\r\n background: '#EFF6FC !important',\r\n display: 'flex',\r\n '& .recommendation-notification-text': {\r\n maxWidth: '90%',\r\n padding: '5px 0 5px 24px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .recommendation-notification-help': {\r\n maxWidth: '10%',\r\n padding: '5px 10px 5px 0',\r\n },\r\n },\r\n '& .recommendation-notification-warning-container': {\r\n '& .ms-MessageBar': {\r\n background: '#FFF4CE !important',\r\n },\r\n },\r\n '& .helpbutton': helpbuttonStyle({ palette })['.helpbutton'],\r\n '& .helpbutton::before': _.defaults({\r\n top: 0,\r\n }, helpbuttonStyle({ palette })['.helpbutton::before']),\r\n },\r\n '& .summary-banner': {\r\n background: '#DDDDDD',\r\n gridRow: '1',\r\n '& .summary-banner-title': {\r\n display: 'table-cell',\r\n verticalAlign: 'middle',\r\n fontWeight: 'bold',\r\n color: '#333333',\r\n height: 30,\r\n padding: '0px 24px',\r\n },\r\n },\r\n '& .summary-summary-content': {\r\n borderBottom: 'solid 1px #dddddd',\r\n padding: 24,\r\n display: 'grid',\r\n gridRow: '3',\r\n gridTemplateColumns: '126px 10px 294px',\r\n '&.with-optimization-score': {\r\n display: 'block',\r\n },\r\n '& .summary-info': {\r\n gridColumn: '3',\r\n '& .summary-description': {\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n color: '#323130',\r\n },\r\n '& .summary-pitching': {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n color: '#484644',\r\n marginTop: 10,\r\n '& > span': {\r\n ...underlineLinkStyle({ palette }),\r\n },\r\n },\r\n },\r\n '& .recommendation-estimation': {\r\n display: 'inline-flex',\r\n marginTop: 8,\r\n '& .estimate-note': {\r\n color: '#797775',\r\n fontWeight: 'bold',\r\n marginRight: 8,\r\n },\r\n '& .estimate-primary': {\r\n '& .iconba-Trending12': {\r\n marginRight: 8,\r\n },\r\n },\r\n '& .second-primary': {\r\n marginLeft: 8,\r\n },\r\n '& .positive-estimate': {\r\n color: palette.green,\r\n },\r\n '& .estimate-secondary': {\r\n marginLeft: 8,\r\n },\r\n '& .estimate-cost': {\r\n marginLeft: 8,\r\n },\r\n },\r\n },\r\n '& .summary-estimates': {\r\n gridColumn: '1',\r\n },\r\n },\r\n '& .summary-sample': {\r\n paddingRight: '16px',\r\n paddingLeft: '16px',\r\n gridRow: '3',\r\n '& .recommendation-sample': {\r\n '& .sample-insight-title': {\r\n marginTop: 15,\r\n fontSize: 13,\r\n fontWeight: 'normal',\r\n color: '#333333',\r\n },\r\n '& .sample-insight': {\r\n margin: '10px 0 0 0',\r\n fontSize: 13,\r\n fontWeight: 'normal',\r\n color: '#666666',\r\n },\r\n '& .sample-visual, & .sample-action-table': {\r\n margin: '15px 0 0 0',\r\n },\r\n '& .sample-horizontal-separator': {\r\n margin: '15px 0',\r\n borderTop: '1px solid #ececec',\r\n },\r\n '& .sample-action-title': {\r\n fontSize: 13,\r\n fontWeight: 'normal',\r\n color: '#333333',\r\n },\r\n '& .sample-more-recommendations': {\r\n margin: '15px 0 0 0',\r\n },\r\n '& .recommendation-suggested-ads-container': {\r\n width: '100%',\r\n display: 'flex',\r\n padding: '10px 10px 10px 10px',\r\n fontSize: 14,\r\n minWidth: 280,\r\n textAlign: 'left',\r\n wordBreak: 'break-word',\r\n border: '1px solid #EDEBE9',\r\n marginTop: 16,\r\n marginBottom: 33,\r\n minHeight: 101,\r\n '& .previewImage': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& img': {\r\n float: 'left',\r\n marginRight: 5,\r\n width: 114,\r\n height: 60,\r\n },\r\n },\r\n '& .moreHint': {\r\n color: '#979797',\r\n fontSize: 13,\r\n },\r\n '& .previewTitleAd': {\r\n color: '#001BA0',\r\n lineHeight: '16px',\r\n fontSize: 20,\r\n },\r\n '& .previewText': {\r\n color: '#666666',\r\n fontSize: 13,\r\n },\r\n },\r\n '& .new-preview-carousel-container': {\r\n '& .carousel-control': {\r\n left: 172,\r\n top: 152,\r\n color: '#0078d4',\r\n background: 'transparent',\r\n textShadow: 'none',\r\n position: 'absolute',\r\n fontSize: 14,\r\n },\r\n '& .carousel-control.right': {\r\n left: 273,\r\n },\r\n '& .carousel-indicators': {\r\n transform: 'translate(-50%)',\r\n left: '50%',\r\n bottom: -1,\r\n position: 'absolute',\r\n width: 85,\r\n '& li': {\r\n width: 8,\r\n border: '1px solid #605E5C',\r\n height: 8,\r\n margin: '0 10px 0 0',\r\n background: 'none',\r\n borderRadius: 10,\r\n },\r\n '& .active': {\r\n border: '1px solid #0078d4',\r\n background: '#0078d4',\r\n },\r\n },\r\n },\r\n },\r\n ...crudAdStyle({ palette }), // TODO: remove duplicated crudAdStyle if toolbar style conflict is resolved\r\n '& .ad-preview-header': {\r\n fontWeight: 700,\r\n fontDize: 12,\r\n color: '#323130',\r\n },\r\n '& .recommendation-suggested-ads-column': {\r\n padding: '10px 10px 10px 10px',\r\n '& .recommendation-summary-ad-preview': {\r\n width: '100%',\r\n padding: '15px 15px 15px 15px',\r\n background: palette.white,\r\n border: 'solid 1px #dddddd',\r\n },\r\n },\r\n },\r\n '& .summary-footer': {\r\n paddingBottom: '16px',\r\n paddingRight: '16px',\r\n paddingLeft: '16px',\r\n margin: '20px 0 0 0',\r\n gridRow: '4',\r\n '& .primary-button': {\r\n '& button': {\r\n fontFamily: 'Arial, Helvetica, sans-serif',\r\n fontWeight: 'bold',\r\n fontSize: 13,\r\n backgroundColor: palette.themePrimary,\r\n color: palette.white,\r\n padding: '5px 10px',\r\n border: '1px black solid',\r\n margin: '0 8px 0 0',\r\n '&:hover': {\r\n backgroundColor: '#006464',\r\n },\r\n },\r\n },\r\n '& .secondary-button': {\r\n '& button': {\r\n fontFamily: 'Arial, Helvetica, sans-serif',\r\n fontWeight: 'bold',\r\n fontSize: 13,\r\n backgroundColor: palette.white,\r\n color: '#000000',\r\n padding: '5px 10px',\r\n border: '1px black solid',\r\n margin: '0 8px 0 0',\r\n '&:hover': {\r\n backgroundColor: '#a8a8a8',\r\n },\r\n },\r\n },\r\n },\r\n '& .btn-default': {\r\n position: 'absolute',\r\n fontFamily: 'Arial, Helvetica, sans-serif',\r\n fontSize: 14,\r\n padding: '5px 10px',\r\n margin: '0 5px',\r\n borderRadius: '2px',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n border: '1px solid #8A8886',\r\n fontWeight: 'bold',\r\n '&[disabled]': {\r\n opacity: 0.5,\r\n },\r\n },\r\n '& .auto-apply-banner': {\r\n height: 29,\r\n },\r\n },\r\n },\r\n '& .split-line': {\r\n height: 2,\r\n width: 1040,\r\n background: '#E6E6E6',\r\n marginLeft: 20,\r\n },\r\n '& .auto-apply-summary-header': {\r\n marginLeft: 20,\r\n fontSize: 18,\r\n marginTop: 20,\r\n fontWeight: 'bold',\r\n display: 'inline-flex',\r\n },\r\n '& .helpbutton': {\r\n color: palette.themePrimary,\r\n fontSize: 16,\r\n marginLeft: 5,\r\n },\r\n '& .helpbutton:before': {\r\n top: 3,\r\n content: '\"\\\\E9CE\"',\r\n position: 'relative',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n // recommendation visual\r\n '& .action-table': {\r\n marginTop: 10,\r\n fontFamily: '\\'Segoe UI\\', Arial, sans-serif',\r\n '& thead': {\r\n '& th': {\r\n fontSize: 12,\r\n color: '#323130',\r\n fontWeight: 'bold',\r\n paddingBottom: '16px',\r\n paddingRight: '16px',\r\n '&:last-child': {\r\n paddingRight: '0px',\r\n },\r\n },\r\n },\r\n '& tbody': {\r\n '& th': {\r\n fontSize: 12,\r\n color: '#323130',\r\n },\r\n },\r\n '& td': {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n color: '#333333',\r\n paddingBottom: 5,\r\n verticalAlign: 'top',\r\n paddingRight: '16px',\r\n 'word-break': 'break-word',\r\n '&:last-child': {\r\n paddingRight: '0px',\r\n },\r\n '& .progress-bar-with-right-label': {\r\n marginLeft: 10,\r\n gridTemplateColumns: '80% 20%',\r\n alignItems: 'center',\r\n '& .progress': {\r\n marginRight: 5,\r\n gridRow: '1',\r\n gridColumn: '1',\r\n },\r\n '& .right-label': {\r\n gridRow: '1',\r\n gridColumn: '2',\r\n },\r\n },\r\n '& .one-column-in-table': {\r\n display: 'block',\r\n maxWidth: 480,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n '& .two-columns-in-table': {\r\n display: 'block',\r\n maxWidth: 240,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n '& .three-columns-in-table': {\r\n display: 'block',\r\n maxWidth: 180,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n '& .four-columns-in-table': {\r\n display: 'block',\r\n maxWidth: 120,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n },\r\n '& .navbar-nav': {\r\n '& .recommendation-download': {\r\n paddingLeft: 20,\r\n paddingTop: 6,\r\n marginBottom: '-15px',\r\n '& #button-download': {\r\n background: '#FFFFFF',\r\n border: '1px solid #8A8886',\r\n boxSizing: 'border-box',\r\n borderRadius: '2px',\r\n fontSize: '14px',\r\n marginLeft: '770px',\r\n zIndex: '1',\r\n },\r\n },\r\n },\r\n '& .nav-pills': {\r\n '& li': {\r\n border: '1px solid #505050',\r\n '&.active, &.active a': {\r\n backgroundColor: '#e7f0f6',\r\n color: '#666',\r\n fontWeight: 'bold',\r\n },\r\n '&:nth-child(1)': {\r\n borderRight: '0',\r\n },\r\n '& a': {\r\n padding: '5px 20px 4px 20px',\r\n border: 'none',\r\n fontWeight: 'normal',\r\n },\r\n },\r\n },\r\n '& .filter-editor': {\r\n '& .selector-container': {\r\n '& button': {\r\n border: '1px solid #BBB',\r\n padding: '3px 5px 5px 5px',\r\n textAlign: 'right',\r\n },\r\n },\r\n '& .selector-v2': {\r\n width: 400,\r\n },\r\n },\r\n });\r\n","\r\nimport _ from 'underscore';\r\nimport { underlineLinkStyle, helpbuttonStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const getDetailPageStyles = ({ palette = {} }) =>\r\n ({\r\n '& .recommendation-details-view': {\r\n '& .recommendation-details-summary': {\r\n position: 'relative',\r\n fontSize: 12,\r\n gridRow: '1',\r\n display: 'grid',\r\n margin: '6px 21px 6px 31px',\r\n border: 'solid 1px #eee',\r\n boxShadow: '0px 0.3px 0.9px rgba(0, 0, 0, 0.108), 0px 1.6px 3.6px rgba(0, 0, 0, 0.132)',\r\n borderRadius: 2,\r\n '&.with-optimization-score': {\r\n display: 'block',\r\n },\r\n '&.details-summary-with-estimate': {\r\n gridTemplateColumns: 'auto 1px 160px',\r\n '-ms-grid-columns': '1fr 1px 160px',\r\n },\r\n '& .details-summary-left': {\r\n '& .details-summary-icon': {\r\n padding: '10px 16px 10px 16px',\r\n gridRow: '1',\r\n display: 'grid',\r\n gridTemplateColumns: '24px min-content auto min-content',\r\n borderBottom: 'solid 1px rgba(0, 0, 0, 0.1)',\r\n '& .details-header-icon': {\r\n position: 'relative',\r\n borderRadius: '50%',\r\n width: 24,\r\n height: 24,\r\n '& span': {\r\n color: palette.white,\r\n position: 'absolute',\r\n fontSize: 13,\r\n left: '25%',\r\n right: '25%',\r\n top: '25%',\r\n bottom: '25%',\r\n },\r\n },\r\n '& .details-summary-title': {\r\n fontSize: 14,\r\n fontWeight: '600',\r\n marginLeft: 10,\r\n gridColumn: '2',\r\n alignSelf: 'center',\r\n color: palette.neutralPrimary,\r\n lineHeight: '20px',\r\n whiteSpace: 'nowrap',\r\n },\r\n '& .details-summary-label': {\r\n alignSelf: 'center',\r\n marginLeft: 8,\r\n gridColumn: '3',\r\n fontSize: 12,\r\n background: '#EFF6FC',\r\n border: '1px solid #FFFFFF',\r\n boxSizing: 'border-box',\r\n borderRadius: 12,\r\n width: 48,\r\n padding: '0 10px 0 10px',\r\n },\r\n '& .summary-card-os-tag-container': {\r\n marginLeft: 8,\r\n alignSelf: 'center',\r\n '& .not-available-line': {\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n },\r\n '& .iconba.iconba-Trending12': {\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n paddingBottom: 3,\r\n },\r\n },\r\n },\r\n '& .summary-notification': {\r\n '& .recommendation-notification-container': {\r\n background: '#EFF6FC !important',\r\n display: 'flex',\r\n '& .recommendation-notification-text': {\r\n maxWidth: '90%',\r\n padding: '5px 0 5px 24px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .recommendation-notification-help': {\r\n maxWidth: '10%',\r\n padding: '5px 10px 5px 0',\r\n },\r\n },\r\n '& .recommendation-notification-warning-container': {\r\n '& .ms-MessageBar': {\r\n background: '#FFF4CE !important',\r\n },\r\n },\r\n '& .helpbutton': helpbuttonStyle({ palette })['.helpbutton'],\r\n '& .helpbutton::before': _.defaults({\r\n top: 0,\r\n }, helpbuttonStyle({ palette })['.helpbutton::before']),\r\n },\r\n '& .details-summary-description': {\r\n padding: '10px 10px 0px 16px',\r\n fontSize: 16,\r\n fontWeight: '750',\r\n lineHeight: '1.3em',\r\n color: palette.neutralPrimary,\r\n },\r\n '& .message-bar': {\r\n background: '#EFF6FC',\r\n },\r\n '& .details-summary-pitching': {\r\n padding: '10px 10px 0 16px',\r\n fontSize: 12,\r\n color: '#484644',\r\n lineHeight: '16px',\r\n fontWeight: '600',\r\n '& > span': {\r\n ...underlineLinkStyle({ palette }),\r\n },\r\n '& .detail-summary-additional-pitching': {\r\n position: 'absolute',\r\n bottom: '10px',\r\n },\r\n },\r\n '& .recommendation-estimation': {\r\n display: 'inline-flex',\r\n marginTop: 8,\r\n padding: '0 0 0 16px',\r\n '& .estimate-note': {\r\n color: '#797775',\r\n fontWeight: 'bold',\r\n marginRight: 8,\r\n },\r\n '& .second-primary': {\r\n marginLeft: 8,\r\n },\r\n '& .positive-estimate': {\r\n color: palette.green,\r\n },\r\n '& .estimate-secondary': {\r\n marginLeft: 8,\r\n },\r\n '& .estimate-cost': {\r\n marginLeft: 8,\r\n },\r\n },\r\n '& .details-auto-apply-pitching-point': {\r\n padding: '10px 10px 0 16px',\r\n fontSize: 13,\r\n color: palette.neutralSecondary,\r\n\r\n '& .HelpTopic': {\r\n textDecoration: 'underline',\r\n },\r\n\r\n '& .recommendation-new-ads-more-account-button': {\r\n textDecoration: 'underline',\r\n position: 'relative',\r\n\r\n '& .recommendation-new-ads-more-account-container': {\r\n textDecoration: 'none',\r\n position: 'absolute',\r\n left: 0,\r\n marginTop: '5px',\r\n padding: '16px',\r\n boxShadow: '0px 0.6px 1.8px rgba(0, 0, 0, 0.108), 0px 3.2px 7.2px rgba(0, 0, 0, 0.132)',\r\n border: 'none',\r\n zIndex: 10,\r\n backgroundColor: palette.white,\r\n whiteSpace: 'nowrap',\r\n minWidth: '288px',\r\n\r\n '& .recommendation-new-ads-accounts': {\r\n marginRight: '20px',\r\n },\r\n },\r\n },\r\n },\r\n '& .details-past-performance-blurb': {\r\n padding: '45px 0 10px 16px',\r\n fontSize: 13,\r\n color: '#484644',\r\n lineHeight: '16px',\r\n fontWeight: '600',\r\n '&.with-optimization-score': {\r\n paddingTop: 20,\r\n },\r\n },\r\n },\r\n '& .separator-col': {\r\n borderLeft: '1px solid #E1DFDD',\r\n },\r\n '& .details-summary-estimates': {\r\n padding: 10,\r\n gridColumn: '3',\r\n },\r\n '& .recommendation-alert-content': {\r\n '& .filterBannerLink, & .split-line, & .HelpTopic': {\r\n marginLeft: 5,\r\n },\r\n },\r\n '& .auto-apply-banner': {\r\n height: 29,\r\n },\r\n },\r\n },\r\n });\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport const getEstimateTileStyles = ({ palette = {} }) => ({\r\n '& .recommendation-estimation-tile': {\r\n color: '#484644',\r\n fontSize: 12,\r\n fontFamily: '\\'Segoe UI\\', Arial, sans-serif',\r\n display: 'grid',\r\n fallbacks: [\r\n {\r\n display: '-ms-grid',\r\n },\r\n ],\r\n gridTemplateRows: 'repeat(7,auto)',\r\n fontWeight: 'normal',\r\n '& .positive-estimate': {\r\n color: '#107C10',\r\n },\r\n '& .neutral-estimate': {\r\n color: '#333333',\r\n },\r\n '& .estimate-primary-titile': {\r\n width: 124,\r\n // lineHeight: 15,\r\n // fontWeight: 'bold',\r\n M: '1',\r\n gridRow: '1',\r\n },\r\n '& .estimate-primary-increase, .estimate-second-primary-increase': {\r\n width: 124,\r\n lineHeight: '36px',\r\n height: '40px',\r\n M: '2',\r\n gridRow: '2',\r\n fontSize: 28,\r\n fontWeight: 'bold',\r\n '& div, & .iconba': {\r\n fontSize: 'inherit !important',\r\n },\r\n },\r\n '& .long-text': {\r\n fontSize: 20,\r\n lineHeight: '28px',\r\n },\r\n '& .estimate-primary-from-to': {\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n width: 126,\r\n whiteSpace: 'pre-wrap',\r\n M: '3',\r\n gridRow: '3',\r\n },\r\n '& .estimate-secondary': {\r\n margin: '10px 0 0 0',\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n M: '4',\r\n gridRow: '4',\r\n '& .estimate-secondary-value': {\r\n // fontWeight: 'bold',\r\n },\r\n '& .estimate-secondary-title': {\r\n // fontWeight: 'normal',\r\n },\r\n },\r\n '& .estimate-tertiary': {\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n M: '5',\r\n gridRow: '5',\r\n '& .estimate-tertiary-value': {\r\n // fontWeight: 'bold',\r\n },\r\n '& .estimate-tertiary-title': {\r\n // fontWeight: 'normal',\r\n },\r\n },\r\n '& .estimate-cost': {\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n color: '#333333',\r\n M: '6',\r\n gridRow: '6',\r\n '& .estimate-cost-value': {\r\n // fontWeight: 'bold',\r\n },\r\n '& .estimate-cost-title': {\r\n // fontWeight: 'normal',\r\n },\r\n },\r\n '& .estimate-note': {\r\n margin: '10px 0 0 0',\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n M: '7',\r\n gridRow: '7',\r\n },\r\n },\r\n});\r\n","export const getFeedbackPopupStyles = ({ palette = {} }) => ({\r\n // navigate modal\r\n '.navigate-overlay': {\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n backgroundColor: 'rgba(51,51,51,0.3)',\r\n zIndex: '1062',\r\n '& .navigate-modal': {\r\n '& .navigate-text': {\r\n width: 248,\r\n },\r\n '& .close': {\r\n right: 5,\r\n top: 5,\r\n position: 'relative',\r\n },\r\n '& .navigate-action': {\r\n paddingTop: 16,\r\n display: 'inline-block',\r\n },\r\n '& .navigate-button': {\r\n width: 58,\r\n height: 32,\r\n marginRight: 16,\r\n border: '1px solid #8A8886',\r\n fontWeight: 'bold',\r\n },\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n overflow: 'auto',\r\n outline: 'none',\r\n transform: 'translate(-50%,-50%)',\r\n marginRight: '-50%',\r\n width: 336,\r\n height: 156,\r\n padding: 20,\r\n border: '1px solid #d9d9d9',\r\n background: '#fff',\r\n color: '#333',\r\n },\r\n },\r\n\r\n // dismiss-all-recommendations-feedback-modal\r\n '.dismiss-all-recommendation-feedback-overlay': {\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n right: '0',\r\n bottom: '0',\r\n backgroundColor: 'rgba(51,51,51,0.3)',\r\n zIndex: '1061',\r\n '& .dismiss-all-recommendation-feedback-modal': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n overflow: 'auto',\r\n outline: 'none',\r\n transform: 'translate(-50%,-50%)',\r\n marginRight: '-50%',\r\n width: 480,\r\n padding: 20,\r\n border: '1px solid #d9d9d9',\r\n background: '#fff',\r\n color: '#333',\r\n '& .dismiss-all-recommendation-feedback-form-head': {\r\n paddingLeft: 8,\r\n '& .dismiss-all-recommendation-feedback-form-title': {\r\n width: 392,\r\n fontWeight: 'bold',\r\n fontSize: '20px',\r\n },\r\n },\r\n\r\n '& textarea#comments': {\r\n display: 'inline-block',\r\n marginRight: '8px',\r\n },\r\n '& div.comments-character-count': {\r\n display: 'inline-block',\r\n },\r\n '& .form-inline': {\r\n '& .btn': {\r\n marginRight: 8,\r\n },\r\n },\r\n '& button.close': {\r\n marginTop: 3,\r\n },\r\n '& button:disabled': {\r\n color: '#666',\r\n backgroundColor: '#F4F4F4',\r\n border: '1px solid #CCC',\r\n },\r\n '& h3': {\r\n fontWeight: '600',\r\n marginTop: 0,\r\n marginBottom: 30,\r\n },\r\n '& p, & .radio': {\r\n paddingLeft: 10,\r\n fontFamily: '\\'Segoe UI\\', Arial, sans-serif',\r\n\r\n '&[data-checked=true]': {\r\n backgroundColor: '#DEECF9',\r\n },\r\n },\r\n '& div.reasons': {\r\n margin: '20px 0',\r\n '& .reason-comment': {\r\n marginLeft: '8px',\r\n },\r\n },\r\n '& div.comments': {\r\n marginBottom: '0px',\r\n marginTop: '15px',\r\n '& textarea': {\r\n height: 75,\r\n width: 330,\r\n border: '1px #bbb solid',\r\n background: '#fff',\r\n marginBottom: 5,\r\n },\r\n },\r\n },\r\n },\r\n\r\n // recommendations-dismiss-feedback\r\n '.budget-landscape-dismiss-popup': {\r\n position: 'fixed',\r\n right: 10,\r\n bottom: 70,\r\n zIndex: '2000',\r\n '& .close': {\r\n right: 5,\r\n top: 5,\r\n position: 'relative',\r\n },\r\n },\r\n '.single-choice-feedback-form': {\r\n width: 408,\r\n padding: 20,\r\n boxShadow: '0 0 5px #ccc',\r\n backgroundColor: '#fff',\r\n '& .single-choice-feedback-form-head': {\r\n paddingLeft: 8,\r\n '& .single-choice-feedback-form-title': {\r\n width: 392,\r\n fontWeight: 'bold',\r\n fontSize: '20px',\r\n },\r\n '& .single-choice-feedback-form-description': {\r\n color: '#797775',\r\n },\r\n },\r\n '& .reason-input': {\r\n marginLeft: 8,\r\n '& .input-wrapper': {\r\n position: 'relative',\r\n },\r\n '& .percent-suffix': {\r\n position: 'absolute',\r\n top: '5px',\r\n left: '80px',\r\n },\r\n '& .percent-input': {\r\n width: 98,\r\n paddingRight: '20px',\r\n },\r\n '& .number-input': {\r\n width: 98,\r\n },\r\n '& .input-comment': {\r\n paddingTop: 6,\r\n paddingBottom: 6,\r\n },\r\n },\r\n '& p, & .radio': {\r\n paddingLeft: 10,\r\n fontFamily: '\\'Segoe UI\\', Arial, sans-serif',\r\n\r\n '&[data-checked=true]': {\r\n backgroundColor: '#DEECF9',\r\n },\r\n '& button:disabled': {\r\n color: '#a2a2a2',\r\n backgroundColor: palette.themePrimary,\r\n border: '1px solid #0078d4',\r\n },\r\n },\r\n '& .form-group': {\r\n marginBottom: '0px !important',\r\n marginTop: 10,\r\n },\r\n '& div.comments': {\r\n '& textarea': {\r\n height: 72,\r\n width: 296,\r\n border: '1px #bbb solid',\r\n background: '#fff',\r\n marginBottom: 5,\r\n },\r\n },\r\n '& .actions': {\r\n paddingTop: 8,\r\n '& .checkbox.preference': {\r\n paddingTop: 12,\r\n color: '#bbb',\r\n paddingLeft: 10,\r\n '& .not-show-again-text': {\r\n paddingLeft: 8,\r\n width: 312,\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n },\r\n },\r\n '& .submit': {\r\n marginRight: 10,\r\n },\r\n },\r\n '& .error': {\r\n color: '#A80000', // error-icon color in color.less file\r\n fontSize: '12px',\r\n },\r\n },\r\n});\r\n","export const getTeachingBubbleStyles = ({ palette = {} }) => ({\r\n // recommendation-modal\r\n '.recommendation-teaching-bubble': {\r\n '& .ms-Callout-main': {\r\n backgroundColor: palette.themePrimary,\r\n color: palette.white,\r\n maxWidth: '400px',\r\n padding: '20px',\r\n\r\n '& .closeimage': {\r\n fontFamily: 'MsAds MDL2 Assets !important',\r\n background: 'none',\r\n padding: 0,\r\n position: 'absolute',\r\n top: '4px',\r\n right: '4px',\r\n border: 'none',\r\n color: palette.white,\r\n float: 'right',\r\n backgroundColor: 'transparent',\r\n '&:focus': {\r\n outlineColor: 'white !important',\r\n },\r\n '&:hover': {\r\n color: 'rgb(255, 255, 255) !important',\r\n background: 'rgb(16, 110, 190)',\r\n border: 'none',\r\n },\r\n },\r\n\r\n '& .header': {\r\n marginBottom: '8px',\r\n\r\n '& .title': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: '20px',\r\n lineHeight: '28px',\r\n },\r\n },\r\n\r\n '& .inner': {\r\n marginBottom: '16px',\r\n\r\n '& .first-paragraph': {\r\n marginBottom: '8px',\r\n fontFamily: 'Segoe UI',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n },\r\n\r\n '& .second-paragraph': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n },\r\n },\r\n\r\n '& .footer': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& .buttons': {\r\n display: 'inline-block',\r\n\r\n '& .ms-Button--default': {\r\n background: palette.white,\r\n borderRadius: '2px',\r\n border: 'none',\r\n color: palette.themePrimary,\r\n },\r\n\r\n '& .ms-Button--primary': {\r\n marginLeft: '9px',\r\n color: palette.white,\r\n background: 'none',\r\n borderColor: palette.white,\r\n border: '1px solid',\r\n borderRadius: '2px',\r\n },\r\n },\r\n\r\n '& .page-index': {\r\n display: 'inline-block',\r\n marginLeft: '20px',\r\n },\r\n },\r\n },\r\n\r\n '& .ms-Callout-beak': {\r\n backgroundColor: palette.themePrimary,\r\n },\r\n },\r\n});\r\n","import {\r\n glyphIconStyle,\r\n helpbuttonStyle,\r\n keywordPlannerStyle,\r\n searchboxStyle,\r\n statusStyle,\r\n uiblockerStyle,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\nimport { getApplyFormStyles, getFeedbackModalStyles } from '@bingads-webui-campaign-react/recommendation-shared-styles';\r\nimport { adEditorPanelOverrideStyle } from '@bingads-webui-campaign-react/ad-editor-styles';\r\nimport { extend } from 'underscore';\r\n\r\nimport { getCommonStyles } from './styles/common';\r\nimport { contextualAttributeStyle } from './styles/contextual-attribute';\r\nimport { getCustomGridStyles } from './styles/custom-grid-style';\r\nimport { getSummaryPageStyles } from './styles/summary-page';\r\nimport { getDetailPageStyles } from './styles/detail-page';\r\nimport { getEstimateTileStyles } from './styles/estimate-tile';\r\nimport { getFeedbackPopupStyles } from './styles/feedback-popup';\r\nimport { getTeachingBubbleStyles } from './styles/teaching-bubble';\r\n\r\nconst flexStyle = {\r\n display: 'flex',\r\n flex: '1 1 1px',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n};\r\n\r\n// Transfered from advisor package\r\nexport const getRecommendationsPageStyles = (_, { palette = {} }) => ({\r\n pageContainer: Object.assign(\r\n {},\r\n getCommonStyles(),\r\n getCustomGridStyles({ palette }),\r\n getSummaryPageStyles({ palette }),\r\n getDetailPageStyles({ palette }),\r\n contextualAttributeStyle,\r\n statusStyle({ palette }),\r\n helpbuttonStyle({ palette }),\r\n getEstimateTileStyles({ palette }),\r\n keywordPlannerStyle({ palette }),\r\n searchboxStyle({ palette })\r\n ),\r\n '@global': extend(\r\n {},\r\n glyphIconStyle({ palette }),\r\n uiblockerStyle({ palette }),\r\n getFeedbackPopupStyles({ palette }),\r\n getApplyFormStyles({ palette }),\r\n getFeedbackModalStyles({ palette }),\r\n getTeachingBubbleStyles({ palette }),\r\n {\r\n '.recommendations-page': flexStyle,\r\n '.recommendations-tab-view': flexStyle,\r\n '.recommendations-details': flexStyle,\r\n '.details-view-container': flexStyle,\r\n '.recommendation-grid': flexStyle,\r\n\r\n '.keyword_inline_action': {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n\r\n '.grid-popupeditor': {\r\n zIndex: 100,\r\n '& .popover-edit-bid': {\r\n '& >span': {\r\n display: 'block',\r\n marginBottom: 16,\r\n '& >label:first-child': {\r\n display: 'none',\r\n },\r\n '& >label:last-child': {\r\n paddingLeft: 0,\r\n '& >input:first-child': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n '.select-budget-container': {\r\n display: 'none',\r\n },\r\n\r\n '.new-campaign-adgroup-selector': {\r\n width: 350,\r\n '& button.btn.btn-default.dropdown-toggle': {\r\n width: 350,\r\n overflow: 'hidden',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n '&::after': {\r\n border: 'none',\r\n },\r\n '& .selected-item': {\r\n width: 275,\r\n '& .selected-item': {\r\n textAlign: 'left',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n overflow: 'hidden',\r\n },\r\n },\r\n '& .glyphicon-triangle-bottom:before': {\r\n content: '\"\\\\E76C\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n '& .glyphicon-pencil:before': {\r\n color: '#000000',\r\n },\r\n '& .glyphicon': {\r\n marginBottom: 2,\r\n },\r\n },\r\n '& .dropdown-menu': {\r\n marginTop: 2.5,\r\n margin: 5,\r\n padding: 10,\r\n paddingBottom: 4,\r\n width: 350,\r\n transform: 'translateY(0px)',\r\n '& .ba-entity-selector': {\r\n height: 280,\r\n },\r\n '& .search-box__input-group': {\r\n position: 'relative',\r\n '& .form-control': {\r\n paddingLeft: 30,\r\n },\r\n '& .search-box__icon:before': {\r\n top: 7,\r\n left: 7,\r\n position: 'absolute',\r\n color: '#0078d4',\r\n content: '\"\\\\E721\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n '& .ba-list-selector': {\r\n height: 200,\r\n marginTop: 5,\r\n border: 'solid 1px black',\r\n borderRadius: '1px',\r\n overflow: 'hidden',\r\n overflowY: 'auto',\r\n '& h4': {\r\n fontSize: 14,\r\n },\r\n '& .selected': {\r\n background: '#edebe9',\r\n },\r\n '& .empty-content': {\r\n height: 40,\r\n padding: '10px 20px',\r\n },\r\n '& .item-content': {\r\n height: 40,\r\n padding: 10,\r\n paddingRight: 20,\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n '&:hover': {\r\n background: '#f3f2f1',\r\n },\r\n '& .statusIcon': {\r\n marginRight: 10,\r\n verticalAlign: 'text-top',\r\n },\r\n },\r\n },\r\n '& .ba-pagination': {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: 45,\r\n '& .prev + .text': {\r\n display: 'none',\r\n },\r\n '& .text': {\r\n marginTop: 4,\r\n },\r\n '& .pager-input': {\r\n textAlign: 'center',\r\n marginTop: 4,\r\n },\r\n '& .pager-totalCount': {\r\n marginLeft: 5,\r\n },\r\n '& .btn[disabled]': {\r\n background: 'none',\r\n color: '#BEBBB8',\r\n },\r\n '& button': {\r\n '& .glyphicon.glyphicon-triangle-left:before': {\r\n content: '\"\\\\E76B\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n '& .glyphicon.glyphicon-triangle-right:before': {\r\n content: '\"\\\\E76C\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n minWidth: 10,\r\n maxWidth: 10,\r\n border: 'none',\r\n marginLeft: 50,\r\n marginRight: 50,\r\n marginTop: 4,\r\n '& .glyphicon': {\r\n right: 8,\r\n top: 2,\r\n margin: 0,\r\n color: 'inherit',\r\n },\r\n },\r\n '& input': {\r\n width: 40,\r\n marginRight: 5,\r\n },\r\n },\r\n },\r\n },\r\n '.keyword_inline_selection': {\r\n marginBottom: 16,\r\n '& .warning-message': {\r\n display: 'flex',\r\n width: 328,\r\n lineHeight: 'normal',\r\n background: '#FFF4CE',\r\n marginTop: 6,\r\n '& .iconba-Warning': {\r\n fontSize: 16,\r\n minWidth: 16,\r\n minHeight: 16,\r\n display: 'flex',\r\n flexShrink: 0,\r\n color: palette.orange,\r\n margin: '6px 8px 24px 5px',\r\n },\r\n '& .warning': {\r\n margin: '6px 8px 8px 0px',\r\n fontSize: 12,\r\n },\r\n },\r\n },\r\n '.bid-textbox': {\r\n marginTop: 5,\r\n },\r\n '.popover-view': {\r\n boxShadow: '0px 0.6px 1.8px rgba(0, 0, 0, 0.108), 0px 3.2px 7.2px rgba(0, 0, 0, 0.132)',\r\n border: 'none',\r\n '& .popover-view__dismiss': {\r\n padding: '16px 16px 0 0',\r\n },\r\n '& .popover-view__content': {\r\n '& .react-highchart-wrapper': {\r\n padding: '0 15px 15px 15px',\r\n },\r\n '& .more-tooltip-container': {\r\n padding: 16,\r\n '& .close-button': {\r\n display: 'none',\r\n },\r\n '& .more-content': {\r\n marginRight: 20,\r\n '& tr.title': {\r\n fontSize: 14,\r\n fontWeight: '600',\r\n },\r\n '& td': {\r\n padding: '0',\r\n paddingBottom: 10,\r\n border: 'none',\r\n borderRight: 'none !important',\r\n '& .glyphicon-arrow-up:before': {\r\n content: '\"\\\\EE68\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n '& .glyphicon-arrow-down:before': {\r\n content: '\"\\\\EE69\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n '& .gap-td': {\r\n paddingBottom: 5,\r\n },\r\n '& .left-col': {\r\n minWidth: 120,\r\n maxWidth: 200,\r\n },\r\n '& .right-col': {\r\n minWidth: 82,\r\n maxWidth: 200,\r\n paddingLeft: 15,\r\n boxSizing: 'content-box',\r\n },\r\n '& tr:last-child td': {\r\n padding: '0',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n '.keyword_inline_selection_instruction': {\r\n '& .keywordSelectedSelection': {\r\n textDecoration: 'none',\r\n cursor: 'default !important',\r\n color: 'black !important',\r\n },\r\n\r\n '& span': {\r\n paddingRight: 5,\r\n },\r\n\r\n '& a:nth-child(4)': {\r\n textTransform: 'capitalize',\r\n },\r\n\r\n '& span:nth-child(3)': {\r\n paddingLeft: 5,\r\n },\r\n },\r\n\r\n // Below style is transfered from advisor/ packages\r\n // recommendation-tab\r\n '.recommendations-container': {\r\n minHeight: 150,\r\n },\r\n '.recommendations-details-view': {\r\n paddingRight: 30,\r\n },\r\n '.iframe-panel': {\r\n minWidth: 1280,\r\n minHeight: 500,\r\n },\r\n '.panel-content': {\r\n maxWidth: '100vw',\r\n overflow: 'auto',\r\n },\r\n '.panel.ad-editor-panel.recommend-ad-editor-panel.recommend-improve-rsa-editor-panel': {\r\n '& .headlines-container': {\r\n marginTop: '0px !important',\r\n },\r\n\r\n '& .ad-rsa-pin-group': {\r\n display: 'none !important',\r\n },\r\n\r\n '& .description-header': {\r\n width: '550px !important',\r\n },\r\n\r\n '& .alert-info': {\r\n width: '480px !important',\r\n },\r\n },\r\n '.panel.ad-editor-panel.recommend-ad-editor-panel.recommend-create-conversion-goal-editor-panel': {\r\n '& .create-conversion-goal-view-content': {\r\n display: 'flex',\r\n margin: '16px 24px',\r\n flexFlow: 'column',\r\n borderTop: '1px solid #edebe9',\r\n '& .memo-row': {\r\n color: '#979797',\r\n fontSize: '12px',\r\n marginTop: '10px',\r\n },\r\n '& .view-content-row': {\r\n color: '#323130',\r\n fontSize: '14px',\r\n marginTop: '10px',\r\n },\r\n },\r\n },\r\n '.panel.ad-editor-panel.recommend-ad-editor-panel': {\r\n ...adEditorPanelOverrideStyle({ palette }),\r\n '& .alert-info': {\r\n width: '500px !important',\r\n },\r\n\r\n '& .recommendation-new-ads-inline-view': {\r\n paddingLeft: 12,\r\n '& #crawlImgAgreementLink': {\r\n textDecoration: 'none',\r\n },\r\n },\r\n\r\n '& div.contextual-inline, & div.contextual-inline div': {\r\n display: 'inline',\r\n },\r\n\r\n '& .image-suggestion-carousel .panel-title': {\r\n fontSize: '14px !important',\r\n },\r\n\r\n '& .call-to-action-section': {\r\n '& .actionextension-search-dropdown-container, & .dropdown-search-selector__dropdown': {\r\n marginLeft: 0,\r\n },\r\n\r\n '& .dropdown-search-selector__options': {\r\n width: 200,\r\n height: 200,\r\n paddingLeft: 0,\r\n },\r\n\r\n '& .dropdown-toggle': {\r\n width: '200px !important',\r\n },\r\n },\r\n },\r\n '.loading-panel': {\r\n margin: '15px 5px',\r\n },\r\n '.loading-panel .blocker-indicator': {\r\n zIndex: 'inherit',\r\n },\r\n '.recommendation-arrow-icon': {\r\n marginRight: '5px !important',\r\n },\r\n '.recommendation-arrow-icon:before': {\r\n fontSize: '11px !important',\r\n },\r\n }\r\n ),\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport queryString from 'query-string';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport { CHANNEL_TYPES, RECOMMENDATION_CATEGORIES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nconst pathNamePrefix = '/campaign/vnext/recommendations/';\r\nconst pathNamePrefixMCC = '/campaign/vnext/accounts/recommendations/';\r\n\r\nfunction getPathNamePrefix(isMCC) {\r\n return isMCC ? pathNamePrefixMCC : pathNamePrefix;\r\n}\r\n\r\nfunction getSearchQuery({\r\n currentSearch, type, scope, keepType = false, recsrc = null,\r\n}) {\r\n let query = queryString.parse(currentSearch);\r\n if (type) {\r\n _.extend(query, { recommendationType: type });\r\n } else if (!keepType) {\r\n query = _.omit(query, 'recommendationType');\r\n }\r\n if (scope) {\r\n const {\r\n adGroupId, campaignId, accountId, levelAt,\r\n } = scope;\r\n switch (levelAt) {\r\n case levelAtConstant.ADGROUP:\r\n _.extend(query, { aid: accountId, campaignId, adGroupId });\r\n break;\r\n case levelAtConstant.CAMPAIGN:\r\n query = _.chain(query)\r\n .omit('adGroupId')\r\n .extend({ aid: accountId, campaignId })\r\n .value();\r\n break;\r\n case levelAtConstant.ACCOUNT:\r\n query = _.chain(query)\r\n .omit('campaignId', 'adGroupId')\r\n .extend({ aid: accountId })\r\n .value();\r\n break;\r\n case levelAtConstant.CUSTOMER:\r\n default:\r\n query = _.omit(query, 'aid', 'campaignId', 'adGroupId');\r\n break;\r\n }\r\n }\r\n if (_.isNull(recsrc)) {\r\n query = _.omit(query, 'recsrc');\r\n } else {\r\n _.extend(query, { recsrc });\r\n }\r\n return queryString.stringify(query);\r\n}\r\n\r\nfunction viewHistory(history, isMCC) {\r\n history.push({\r\n pathname: `${getPathNamePrefix(isMCC)}history`,\r\n search: getSearchQuery({ currentSearch: history.location.search, keepType: true }),\r\n });\r\n}\r\n\r\nfunction viewSettings(history, isRecommendationSettings) {\r\n history.push({\r\n pathname: isRecommendationSettings ? `${getPathNamePrefix(false)}AutoApplySettings` : '/campaign/vnext/accountsettings',\r\n search: getSearchQuery({ currentSearch: history.location.search, keepType: true }),\r\n });\r\n}\r\n\r\nfunction viewUET(history) {\r\n window.open(`/campaign/vnext/uettag?${getSearchQuery({ currentSearch: history.location.search, keepType: false })}`);\r\n}\r\n\r\nfunction viewCategory(history, isMCC, category) {\r\n return () => {\r\n history.push({\r\n pathname: `${getPathNamePrefix(isMCC)}${category}`,\r\n search: getSearchQuery({ currentSearch: history.location.search }),\r\n });\r\n };\r\n}\r\n\r\nfunction backToRecommendation(history, isMCC) {\r\n const previousRoute = _.property(['location', 'state', 'previousRoute'])(history);\r\n const lastCategoryType = !_.isEmpty(previousRoute) ?\r\n previousRoute.substring(previousRoute.lastIndexOf('/') + 1, previousRoute.lastIndexOf('?')) : '';\r\n return () => {\r\n history.push({\r\n pathname: `${getPathNamePrefix(isMCC)}${_.contains(RECOMMENDATION_CATEGORIES, lastCategoryType) ?\r\n lastCategoryType : RECOMMENDATION_CATEGORIES.ALL}`,\r\n search: getSearchQuery({ currentSearch: history.location.search, keepType: true }),\r\n });\r\n };\r\n}\r\n\r\nfunction viewSummary(history, isMCC) {\r\n history.push({\r\n pathname: `${getPathNamePrefix(isMCC)}All`,\r\n search: getSearchQuery({\r\n currentSearch: history.location.search,\r\n scope: {\r\n levelAt: isMCC ? levelAtConstant.CUSTOMER : levelAtConstant.ACCOUNT,\r\n },\r\n }),\r\n });\r\n}\r\n\r\nfunction viewDetails(history, validDetailPage, type, data = null) {\r\n validDetailPage();\r\n return () => {\r\n history.push({\r\n search: getSearchQuery({\r\n currentSearch: history.location.search,\r\n type,\r\n scope: data,\r\n }),\r\n });\r\n };\r\n}\r\n\r\nfunction viewBAADetails(history, validDetailPage, type, data, category) {\r\n validDetailPage();\r\n return () => {\r\n history.push({\r\n pathname: `${getPathNamePrefix(false)}${category}`,\r\n search: getSearchQuery({\r\n currentSearch: history.location.search,\r\n type,\r\n scope: data,\r\n recsrc: CHANNEL_TYPES.MCCRECOMMENDATION,\r\n }),\r\n });\r\n };\r\n}\r\n\r\nexport const withNavigation = (WrappedComponent) => {\r\n const HoC = (props) => {\r\n const {\r\n validDetailPage,\r\n history,\r\n isMCC,\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n HoC.displayName = `withNavigation(${getDisplayName(WrappedComponent)})`;\r\n HoC.propTypes = {\r\n deps: PropTypes.shape({\r\n legacyRouter: PropTypes.object.isRequired,\r\n }).isRequired,\r\n validDetailPage: PropTypes.func.isRequired,\r\n history: PropTypes.shape({\r\n push: PropTypes.func,\r\n }).isRequired,\r\n isMCC: PropTypes.bool,\r\n };\r\n HoC.defaultProps = {\r\n isMCC: false,\r\n };\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n};\r\n","/* eslint-disable import/first */\r\n/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\nimport CampaignEditor from '@bingads-webui-campaign-legacy/crud-campaign/view/create';\r\nimport SearchBidView from '@bingads-webui-campaign-legacy/adgroup-create-advanced/view/steps/search-bid';\r\nimport BiddingStrategyView from '@bingads-webui-campaign-legacy/bidding-strategy/view/setting';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport appState from '@bingads-webui-component-legacy/state/index';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport CreateKeywordView from '@bingads-webui-campaign-legacy/crud-keywords/view/create-inline-recommendation';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport dataManager from '@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport TrackingTemplate from '@bingads-webui-component-legacy/upgraded-url/view/trackingTemplate';\r\nimport UrlEditor from '@bingads-webui-component-legacy/url-input/view/url-input';\r\nimport { testUurl, uurlLevels } from '@bingads-webui-component-legacy/upgraded-url/service/testUurl';\r\nimport validator from '@bingads-webui-component-legacy/ko-validation/index';\r\nimport constants from '@bingads-webui-static-legacy/constants';\r\nimport cacheManager from '@bingads-webui-campaign-legacy/cache-manager/index';\r\nimport { importFreqColDataToTemplate } from '@bingads-webui-campaign-legacy/scheduled-import/view/shared-column-configs/import-freq-col';\r\nimport * as importScheduleConstants from '@bingads-webui-campaign-legacy/scheduled-import/view/import-schedule-constants';\r\n\r\nconst competitionTabI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\nconst permissions = appConfig.get('Permissions');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const legacyDepsList = {\r\n '@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab': competitionTabI18n,\r\n 'campaignui/feature/crud-campaign/view/create': CampaignEditor,\r\n 'campaignui/feature/adgroup-create-advanced/view/steps/search-bid': SearchBidView,\r\n 'campaignui/feature/bidding-strategy/view/setting': BiddingStrategyView,\r\n 'campaignui/feature/inline-opportunity/view/data-manager': dataManager,\r\n 'campaignui/feature/instrumentation/index': instrumentation,\r\n 'component/config/index': appConfig,\r\n 'component/state/index': appState,\r\n 'component/js-data-campaign/index': jsdata,\r\n 'component/legacy-router/index': { legacyRouter },\r\n 'component/preference/service/index': preferencesService,\r\n PageContext: pageContext,\r\n Constants: constants,\r\n 'component/http/channel/odata': odata,\r\n 'campaignui/feature/crud-keywords/view/create-inline-recommendation': CreateKeywordView,\r\n 'component/url-input/view/url-input': UrlEditor,\r\n 'component/upgraded-url/view/trackingTemplate': TrackingTemplate,\r\n 'component/upgraded-url/service/testUurl': { testUurl, uurlLevels },\r\n '$/schema-i18n!campaign': s$i18n,\r\n 'component/ko-validation/index': validator,\r\n 'campaignui/feature/cache-manager/index': cacheManager,\r\n};\r\n\r\nexport function getDeps() {\r\n return {\r\n deps: {\r\n CampaignEditor,\r\n SearchBidView,\r\n BiddingStrategyView,\r\n appConfig,\r\n appState,\r\n i18n,\r\n instrumentation,\r\n jsdata,\r\n CreateKeywordView,\r\n legacyRouter,\r\n pageContext,\r\n permissions,\r\n preferencesService,\r\n constants,\r\n dataManager,\r\n odata,\r\n TrackingTemplate,\r\n UrlEditor,\r\n testUurl,\r\n uurlLevels,\r\n s$i18n,\r\n validator,\r\n cacheManager,\r\n importFreqColDataToTemplate,\r\n importScheduleConstants,\r\n },\r\n };\r\n}\r\n","import React from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { getDeps } from './legacy-deps-list';\r\n\r\nexport const withLegacyDeps = (WrappedComponent) => {\r\n const HoC = props => (\r\n \r\n );\r\n\r\n HoC.displayName = `withLegacyDeps(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n};\r\n","import Promise from 'bluebird';\r\nimport recommendationTabContainer from '@bingads-webui-campaign-react/recommendation-tab';\r\nimport { legacyDepsList } from './legacy-deps-list';\r\n\r\nlet recommendationsPromise = null;\r\n\r\nexport function recommendationsPromiseFactory() {\r\n if (recommendationsPromise == null) {\r\n recommendationsPromise = new Promise((resolve) => {\r\n recommendationTabContainer(legacyDepsList)\r\n .then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n return recommendationsPromise;\r\n }\r\n\r\n return recommendationsPromise;\r\n}\r\n","export const odataPath = window.location.host.indexOf('ads') > 0 ? '/ODataApi/' : 'http://advertiseruibox.redmond.corp.microsoft.com:823/ODataApi/';\r\n\r\nexport const schema = {\r\n scenario: [\r\n {\r\n name: 'loadRecommendationTab',\r\n value: 'LoadRecommendationTab',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadRecommendationTab',\r\n value: 'LoadRecommendationTab',\r\n },\r\n // Below activities are for performance logs.\r\n {\r\n name: 'getSummary',\r\n value: 'getsummary',\r\n },\r\n {\r\n name: 'getHistory',\r\n value: 'gethistory',\r\n },\r\n {\r\n name: 'getCoupons',\r\n value: 'getCoupons',\r\n },\r\n {\r\n name: 'getCount',\r\n value: 'getCount',\r\n },\r\n {\r\n name: 'track',\r\n value: 'track',\r\n },\r\n {\r\n name: 'viewCategory',\r\n value: 'ViewCategory',\r\n },\r\n {\r\n name: 'getAutoApplyOptInStatus',\r\n value: 'getAutoApplyOptInStatus',\r\n },\r\n {\r\n name: 'setAutoApplyOptInStatus',\r\n value: 'setAutoApplyOptInStatus',\r\n },\r\n {\r\n name: 'getBulkAarUploadBlobUrl',\r\n value: 'getBulkAarUploadBlobUrl',\r\n },\r\n {\r\n name: 'submitBulkAarOptInStatusTask',\r\n value: 'submitBulkAarOptInStatusTask',\r\n },\r\n {\r\n name: 'pollBulkAarOptInStatusTask',\r\n value: 'pollBulkAarOptInStatusTask',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { isFunction, some, isEmpty } from 'underscore';\r\nimport { merge } from '@bingads-webui/primitive-utilities';\r\nimport {\r\n uiblockerStyle,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\n\r\nfunction resolveStyles(theme, ...styles) {\r\n const resolvedStyles = styles.map(s => (isFunction(s) ? s(theme) : s));\r\n if (some(resolvedStyles, isEmpty)) {\r\n throw new Error('Cannot pass in empty style!');\r\n }\r\n return resolvedStyles;\r\n}\r\nexport const getRecommendationPageFastStyle = (_, { palette = {} }) => {\r\n const globalStyles = merge(\r\n {},\r\n ...resolveStyles({ palette }, uiblockerStyle)\r\n );\r\n return {\r\n '@global': globalStyles,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport React, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from '@bingads-webui-campaign-react/router';\r\nimport queryString from 'query-string';\r\n\r\n// vnextDeps\r\nimport { customMapperStore } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { recommendationDataStore } from '@bingads-webui-campaign-react/sub-page-menu-container';\r\nimport {\r\n ProgressiveLoadingBlock,\r\n getFilteredCampaignTypeFromRawFilter,\r\n} from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport { getCrossPageSelectPlugin } from '@bingads-webui-campaign-react/cross-page-select-plugin';\r\nimport { StyledGridViewWrapper } from '@bingads-webui-campaign-react/grid-view-wrapper';\r\nimport { ToolbarContainer } from '@bingads-webui-campaign-react/toolbar-container';\r\nimport { getToolbarPlugin } from '@bingads-webui-campaign-react/toolbar-plugin';\r\nimport { StyledTablePageContainer } from '@bingads-webui-campaign-react/table-page-container';\r\nimport { GoalCreationRecommendationWizard } from '@bingads-webui-campaign-react/goal-creation-wizard';\r\n\r\nimport { WaterfallFilterType } from '@bingads-webui-campaign/filter-storage';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\n\r\nimport {\r\n withGetSummary,\r\n CHANNEL_ALL_RECOMMENDATIONS,\r\n CHANNEL_TYPES,\r\n withRecommendationsScope as withScope,\r\n withCoupon,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withRecommendationServices as withServices } from '@bingads-webui-campaign-react/with-recommendation-services';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\nimport { withCcJsData } from '@bingads-webui-cc-react/js-data-rest';\r\n\r\nimport { withDelayedStyles } from '@bingads-webui-campaign-react/common-utils';\r\n\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\n\r\nimport { withNavigation } from './with-navigation';\r\nimport { withAlertHandler } from './with-alert-handler';\r\nimport { withLegacyDeps } from './with-legacy-deps';\r\nimport { recommendationsPromiseFactory } from './recommendations-factory';\r\nimport { VIEW_TYPES } from './consts';\r\nimport {\r\n odataPath,\r\n schema,\r\n} from './config';\r\nimport { getDeps } from './legacy-deps-list';\r\n\r\nimport { getRecommendationPageFastStyle } from './styles/recommendation-page-styles-fast';\r\n\r\nconst getDelayedRecommendationPageStyles = () => (\r\n import(/* webpackMode: 'eager' */'./get-style')\r\n .then(({ getRecommendationsPageStyles }) => ({\r\n getDelayedStyles: getRecommendationsPageStyles,\r\n }))\r\n);\r\n\r\nconst getDelayedRecommendationHistoryPageStyles = () => (\r\n import(/* webpackMode: 'eager' */'./get-history-style')\r\n .then(({ getRecommendationsHistoryPageStyles }) => ({\r\n getDelayedStyles: getRecommendationsHistoryPageStyles,\r\n }))\r\n);\r\n\r\nconst getDelayedRecommendationAutoApplyBulkUploadPageStyles = () => (\r\n import(/* webpackMode: 'eager' */'./get-auto-apply-bulk-upload-style')\r\n .then(({ getRecommendationsAutoApplyBulkUploadPageStyles }) => ({\r\n getDelayedStyles: getRecommendationsAutoApplyBulkUploadPageStyles,\r\n }))\r\n);\r\n\r\nclass Recommendations extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.recommendationGuid = generateGuid();\r\n this.RecommendationViewLazyWrap = this.createPage();\r\n this.queryParams = queryString.parse(this.props.location.search);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps[WaterfallFilterType.CampaignType] !== this.props[WaterfallFilterType.CampaignType] ||\r\n prevProps.scope !== this.props.scope) {\r\n if (prevProps.categoryType !== this.props.categoryType ||\r\n prevProps[WaterfallFilterType.CampaignType] !== this.props[WaterfallFilterType.CampaignType]) {\r\n if (this.props.viewType !== VIEW_TYPES.HISTORY && prevProps.viewType !== VIEW_TYPES.HISTORY) {\r\n this.removeRecommendationRelatedQueryParam();\r\n }\r\n }\r\n if (this.scopeChanged(this.queryParams, queryString.parse(this.props.history.location.search))) { // eslint-disable-line{\r\n this.recommendationGuid = generateGuid(); // refresh guid\r\n }\r\n this.queryParams = queryString.parse(this.props.location.search);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (!this.isToRecommendationPage()) {\r\n this.removeRecommendationRelatedQueryParam();\r\n }\r\n }\r\n\r\n createPage = () => {\r\n const {\r\n serverContext,\r\n scope,\r\n permissions,\r\n preferenceService,\r\n isMCC,\r\n } = this.props;\r\n\r\n return React.lazy(() => { // eslint-disable-line arrow-body-style\r\n return recommendationsPromiseFactory({\r\n serverContext, scope, permissions, preferenceService,\r\n }).then(({ RecommendationTab }) => {\r\n const { deps: { instrumentation } } = getDeps();\r\n instrumentation.addScenario(schema);\r\n const currentScenario = instrumentation.loadRecommendationTab.create();\r\n const currentActivity = currentScenario.loadRecommendationTab.create();\r\n const RecommendationTabWithData = isMCC ?\r\n withGetSummary(false)(RecommendationTab) : withGetSummary(false)(withCoupon(RecommendationTab));\r\n const RecommendationTabView = withAlertHandler(withLegacyDeps(withScope(withRouter(withNavigation(withCcJsData(withServices({\r\n currentScenario,\r\n currentActivity,\r\n odataPath,\r\n })(RecommendationTabWithData)))))));\r\n return {\r\n default: RecommendationTabView,\r\n };\r\n });\r\n });\r\n }\r\n\r\n scopeChanged = (previousQueryParams, currentQueryParams) => (\r\n !_.isEqual(\r\n _.pick(previousQueryParams, 'campaignId', 'adGroupId'),\r\n _.pick(currentQueryParams, 'campaignId', 'adGroupId')\r\n )\r\n )\r\n\r\n removeRecommendationRelatedQueryParam = () => {\r\n const currentQueryParams = queryString.parse(this.props.history.location.search);\r\n if (this.queryParams.recommendationType || this.queryParams.recsrc) {\r\n this.props.history.push({\r\n search: queryString.stringify(_.omit(\r\n currentQueryParams,\r\n 'recommendationType',\r\n 'recsrc'\r\n )),\r\n });\r\n }\r\n }\r\n\r\n validDetailPage = () => {\r\n this.detailValid = true;\r\n };\r\n\r\n isToRecommendationPage = () => {\r\n const { history } = this.props;\r\n\r\n return history.location.pathname.startsWith('/campaign/vnext/recommendations') ||\r\n history.location.pathname.startsWith('/campaign/vnext/accounts/recommendations');\r\n }\r\n\r\n render() {\r\n const {\r\n serverContext,\r\n scope,\r\n permissions,\r\n categoryType,\r\n i18n,\r\n perfMarker,\r\n viewType,\r\n isMCC,\r\n recommendationCustomizedDataFilterFunc,\r\n } = this.props;\r\n\r\n const newCampaignType = getFilteredCampaignTypeFromRawFilter(this.props[WaterfallFilterType.CampaignType]);\r\n this.queryParams = queryString.parse(this.props.location.search);\r\n const { recommendationType } = this.queryParams;\r\n const channel = isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION;\r\n const config = {\r\n el: '.recommendations-page',\r\n permissions,\r\n scope: {\r\n accountId: scope.values.aid,\r\n adGroupId: scope.values.adGroupId,\r\n advertiserCustomerId: serverContext.CurrentAccount.AdvertiserCustomerID,\r\n userId: serverContext.CurrentUser.Id,\r\n campaignId: scope.values.campaignId,\r\n customerId: scope.values.cid,\r\n token: serverContext.Token,\r\n },\r\n channel,\r\n viewType: viewType || (_.contains(CHANNEL_ALL_RECOMMENDATIONS[channel], recommendationType) ?\r\n VIEW_TYPES.DETAILS : VIEW_TYPES.SUMMARY),\r\n perfMarker,\r\n };\r\n const vnextDeps = {\r\n customMapperStore,\r\n recommendationDataStore,\r\n getCrossPageSelectPlugin,\r\n getToolbarPlugin,\r\n newI18n: i18n,\r\n StyledGridViewWrapper,\r\n StyledTablePageContainer,\r\n ToolbarContainer,\r\n GoalCreationRecommendationWizard,\r\n eventDispatcher,\r\n };\r\n\r\n return (\r\n \r\n
\r\n }>\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nRecommendations.propTypes = {\r\n serverContext: PropTypes.shape({\r\n CurrentAccount: PropTypes.object.isRequired,\r\n CurrentCustomer: PropTypes.object.isRequired,\r\n CurrentUser: PropTypes.object.isRequired,\r\n }),\r\n scope: PropTypes.shape({\r\n values: {\r\n adGroupId: PropTypes.number,\r\n campaignId: PropTypes.number,\r\n },\r\n }),\r\n permissions: PropTypes.shape({\r\n }),\r\n preferenceService: PropTypes.shape({\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n categoryType: PropTypes.string.isRequired,\r\n classes: PropTypes.shape({\r\n pageContainer: PropTypes.string.isRequired,\r\n }).isRequired,\r\n history: PropTypes.shape({\r\n push: PropTypes.func,\r\n location: PropTypes.shape({\r\n search: PropTypes.string,\r\n pathname: PropTypes.string,\r\n }).isRequired,\r\n }).isRequired,\r\n location: PropTypes.shape({\r\n search: PropTypes.string,\r\n }).isRequired,\r\n currentCampaign: PropTypes.shape({}),\r\n currentAdGroup: PropTypes.shape({}),\r\n perfMarker: perfMarkerPropTypes.isRequired,\r\n viewType: PropTypes.string,\r\n isMCC: PropTypes.bool,\r\n recommendationCustomizedDataFilterFunc: PropTypes.func,\r\n};\r\n\r\nRecommendations.defaultProps = {\r\n serverContext: {},\r\n scope: {},\r\n permissions: {},\r\n currentCampaign: null,\r\n currentAdGroup: null,\r\n viewType: '',\r\n isMCC: false,\r\n recommendationCustomizedDataFilterFunc: null,\r\n};\r\n\r\nexport const StyledRecommendations =\r\n withDelayedStyles(Recommendations, getRecommendationPageFastStyle, getDelayedRecommendationPageStyles, 'recommendation_view_loaded');\r\n\r\nexport const StyledRecommendationHistory =\r\n withDelayedStyles(Recommendations, getRecommendationPageFastStyle, getDelayedRecommendationHistoryPageStyles, 'recommendation_view_loaded');\r\n\r\nexport const StyledRecommendationAutoApplyBulkUpload =\r\n withDelayedStyles(Recommendations, getRecommendationPageFastStyle, getDelayedRecommendationAutoApplyBulkUploadPageStyles, 'recommendation_view_loaded');\r\n","import React from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\n\r\nexport const withAlertHandler = (WrappedComponent) => {\r\n const config = {\r\n showAlertHandler:\r\n window.App.views.alertCenter.show.bind(window.App.views.alertCenter),\r\n };\r\n const HoC = props => (\r\n \r\n );\r\n\r\n HoC.displayName = `withAlertHandler(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n};\r\n\r\n","import { getIconStyles } from '@bingads-webui-campaign-react/recommendation-shared-styles';\r\n\r\nexport const getCommonStyles = () =>\r\n ({\r\n ...getIconStyles(),\r\n\r\n '& .custom-params-template .custom-param-entry': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n '& .custom-params-template .custom-param-entry td': {\r\n display: 'flex',\r\n alignItems: 'baseline',\r\n },\r\n '& .custom-params-template .flex-row-fixed.custom-param__key-container': {\r\n display: 'flex',\r\n alignItems: 'baseline',\r\n },\r\n '& .custom-params-template .flex-row-fixed.custom-param__key-container .control-label': {\r\n whiteSpace: 'pre',\r\n },\r\n '& .custom-params-template .flex-row-fixed.custom-param__key-container input.form-control.custom-param__key-field': {\r\n margin: '0px 5px',\r\n },\r\n '& .custom-params-template .flex-row-dynamic input.form-control.custom-param__value-field': {\r\n marginLeft: '5px',\r\n },\r\n '& .custom-params-template .closeimage.custom-param__close-button': {\r\n height: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '&:before': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n content: '\"\\\\E711\"',\r\n },\r\n },\r\n '& .custom-param__close-button': {\r\n marginLeft: 10,\r\n cursor: 'pointer',\r\n },\r\n });\r\n","export const budgetStyle = {\r\n '& .recommendation-inline-budget-view': {\r\n overflow: 'hidden',\r\n\r\n '& shared-budget-info': {\r\n marginBottom: '30px',\r\n },\r\n\r\n '& input[type=radio]:before': {\r\n left: 'inherit',\r\n },\r\n '& input[type=radio]:after': {\r\n left: 'inherit',\r\n marginLeft: '5px',\r\n },\r\n '& .budget-landscape-container': {\r\n display: 'grid',\r\n gridTemplateColumns: '60% auto',\r\n },\r\n '& .landscape-chart': {\r\n marginLeft: 15,\r\n marginRight: 15,\r\n display: 'grid',\r\n '& > div': {\r\n display: 'grid',\r\n },\r\n '& .anchor': {\r\n position: 'relative',\r\n },\r\n '& .no-conversion-chart': {\r\n verticalAlign: 'middle',\r\n textAlign: 'center',\r\n display: 'grid',\r\n alignItems: 'center',\r\n padding: 10,\r\n position: 'absolute',\r\n top: 48,\r\n bottom: '0',\r\n width: '100%',\r\n '& .chart-nodata': {\r\n marginBottom: 5,\r\n },\r\n },\r\n '& .column-chart-title': {\r\n paddingTop: 6,\r\n paddingBottom: 6,\r\n height: 48,\r\n display: 'table',\r\n '& span': {\r\n display: 'table-cell',\r\n verticalAlign: 'middle',\r\n },\r\n },\r\n },\r\n '& .landscape-table': {\r\n marginRight: 20,\r\n '& td': {\r\n border: 'none !important',\r\n },\r\n '& .tip-message': {\r\n marginTop: 15,\r\n\r\n '& .iconba.iconba-Warning': {\r\n color: '#FF9900 !important',\r\n },\r\n },\r\n '& span.status': {\r\n marginRight: 5,\r\n },\r\n '& table': {\r\n width: '100%',\r\n position: 'relative',\r\n '& th.selected': {\r\n background: 'rgba(237, 237, 237, 0.5)',\r\n },\r\n '& th': {\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n color: '#86837c',\r\n fontWeight: 'normal',\r\n height: 48,\r\n },\r\n '& td.user-input-cell': {\r\n paddingLeft: 1,\r\n lineHeight: '17px',\r\n },\r\n '& tr': {\r\n height: 30,\r\n '& td': {\r\n paddingTop: '0px !important',\r\n paddingBottom: '0px !important',\r\n },\r\n },\r\n '& tr.selected': {\r\n color: '#333',\r\n fontWeight: 'bold',\r\n backgroundColor: '#DEECF9 !important',\r\n position: 'relative',\r\n },\r\n '& tr.selected::after': {\r\n borderBottom: '15px solid transparent',\r\n borderLeft: 'none',\r\n borderTop: '15px solid transparent',\r\n height: '0',\r\n width: '0',\r\n content: '\\'\\'',\r\n position: 'absolute',\r\n },\r\n '& .user-input': {\r\n position: 'relative',\r\n '& .currency-symbol': {\r\n position: 'absolute',\r\n top: 2,\r\n left: 9,\r\n },\r\n '& input': {\r\n paddingLeft: 16,\r\n borderWidth: 1,\r\n borderColor: '#BBB',\r\n },\r\n '& .symbol-size-2 + input': {\r\n paddingLeft: 25,\r\n },\r\n '& .symbol-size-3 + input': {\r\n paddingLeft: 35,\r\n },\r\n },\r\n },\r\n },\r\n '& .budget-landscape-actions': {\r\n float: 'right',\r\n '& .movable-margin': {\r\n height: 15,\r\n },\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n '& .btn:disabled': {\r\n backgroundColor: '#F4F4F4',\r\n borderColor: '#CCC',\r\n borderWidth: 1,\r\n color: '#666',\r\n },\r\n },\r\n },\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nconst colorGrey = '#323130';\r\nconst detaultFontSize = '14px';\r\nexport const getReallocateBudgetStyle = () => ({\r\n '& .recommendation-reallocate-budget': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontSize: detaultFontSize,\r\n lineHeight: '20px',\r\n color: '#333333',\r\n minWidth: '1000px',\r\n '& .rba-detail-actions': {\r\n textAlign: 'right',\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n '& .padding-zero': {\r\n padding: '0!important',\r\n },\r\n '& .error-msg': {\r\n color: '#A80000',\r\n paddingLeft: '25px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n },\r\n '& .warning': {\r\n color: colorGrey,\r\n paddingLeft: '25px',\r\n fontSize: '12px',\r\n '& .iconba-Warning': {\r\n marginRight: '5px',\r\n marginLeft: '-20px',\r\n color: '#D83B01',\r\n },\r\n },\r\n '& .rba-campaign-name': {\r\n marginBottom: '16px',\r\n '& .title': {\r\n marginTop: '0px',\r\n marginBottom: '10px',\r\n color: colorGrey,\r\n fontSize: detaultFontSize,\r\n '&>a': {\r\n display: 'inline-block',\r\n },\r\n },\r\n },\r\n '& .rba-content': {\r\n marginBottom: '16px',\r\n overflow: 'hidden',\r\n width: '1047px',\r\n '& .iconba-Trending12': {\r\n fontSize: '28px',\r\n lineHeight: '36px',\r\n transform: 'rotate(75deg)',\r\n webkitTransform: 'rotate(75deg)',\r\n },\r\n '& .budget-type': {\r\n paddingRight: '40px',\r\n minWidth: '250px',\r\n '& .title': {\r\n marginTop: '0px',\r\n marginBottom: '16px',\r\n color: colorGrey,\r\n fontSize: detaultFontSize,\r\n },\r\n '& .radio-block': {\r\n marginBottom: '10px',\r\n '& .radio-inline': {\r\n marginRight: '5px',\r\n },\r\n },\r\n '& .input-group': {\r\n marginTop: '5px',\r\n marginLeft: '25px',\r\n border: '1px solid #888888',\r\n padding: '5px 10px',\r\n display: 'block',\r\n '&.error-input': {\r\n border: '1px solid #A80000',\r\n },\r\n '&.disabled': {\r\n borderColor: '#ccc',\r\n backgroundColor: '#f4f4f4',\r\n },\r\n '& .inline-input': {\r\n border: 'none',\r\n paddingLeft: '10px',\r\n outline: 'none',\r\n background: 'transparent',\r\n maxWidth: '150px',\r\n },\r\n },\r\n },\r\n '& .campaign-info': {\r\n borderLeft: '1px solid #ccc',\r\n paddingLeft: '40px',\r\n '& > div': {\r\n padding: '0px',\r\n },\r\n '& .arrow': {\r\n paddingTop: '50px',\r\n textAlign: 'center',\r\n width: 'auto',\r\n paddingLeft: '32px',\r\n paddingRight: '32px',\r\n },\r\n '& .rba-campaign-name': {\r\n color: colorGrey,\r\n marginBottom: '5px',\r\n },\r\n '& .positive-delta': {\r\n color: '#107C10',\r\n },\r\n '& .rba-detail-estvalue': {\r\n fontSize: '28px',\r\n marginBottom: '12px',\r\n lineHeight: '36px',\r\n fontWeight: 'bold',\r\n },\r\n '& .rba-current-budget': {\r\n color: '#605E5C',\r\n marginBottom: '16px',\r\n },\r\n '& .rba-detail-desc-top': {\r\n color: '#888888',\r\n },\r\n '& .rba-detail-overview-item': {\r\n '& .col-sm-6': {\r\n paddingLeft: 0,\r\n '& .rba-detail-desc-top': {\r\n marginBottom: '5px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n },\r\n '& .rba-detail-estvalue': {\r\n marginBottom: '0px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n '& .block': {\r\n display: 'block',\r\n },\r\n '& .inline-block': {\r\n display: 'inline-block',\r\n },\r\n },\r\n});\r\n","import { adEditorOverrideStyle } from '@bingads-webui-campaign-react/ad-editor-styles';\r\nimport {\r\n crudAdStyle,\r\n alertStyle as alertOverrideStyle,\r\n adCustomizersStyle,\r\n locationMapStyle,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\n\r\nconst colorGrey = '#323130';\r\nconst detaultFontSize = '14px';\r\nexport const getFixAdDestinationStyle = ({ palette = {} }) => ({\r\n '& .recommendation-fix-ad-destination': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontSize: detaultFontSize,\r\n lineHeight: '20px',\r\n color: '#333333',\r\n minWidth: '1000px',\r\n ...adEditorOverrideStyle({ palette }),\r\n '& .row': {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n },\r\n '& .row.form-group': {\r\n display: 'block!important',\r\n '& .col-sm-3, & .col-sm-9': {\r\n width: '100%!important',\r\n },\r\n },\r\n '& .rba-detail-actions': {\r\n textAlign: 'right',\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n '& .padding-zero': {\r\n padding: '0!important',\r\n },\r\n '& .error-msg': {\r\n color: '#A80000',\r\n paddingLeft: '25px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n },\r\n '& .warning': {\r\n color: colorGrey,\r\n paddingLeft: '25px',\r\n fontSize: '12px',\r\n marginTop: '10px',\r\n '& .iconba-Warning': {\r\n marginRight: '5px',\r\n marginLeft: '0px',\r\n color: '#D83B01',\r\n },\r\n },\r\n '& .warning-info': {\r\n backgroundColor: '#FFF4CE',\r\n },\r\n '& .rba-title': {\r\n marginBottom: '15px',\r\n '& .title': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n display: 'block',\r\n textDecoration: 'underline',\r\n },\r\n },\r\n '& .rba-content': {\r\n marginBottom: '30px',\r\n width: '1290px',\r\n '& .rba-content-left': {\r\n paddingLeft: 0,\r\n '& .info-url': {\r\n marginBottom: '20px',\r\n '& .final-url': {\r\n '&.container-fluid': {\r\n padding: 0,\r\n },\r\n },\r\n },\r\n '& .info-affected': {\r\n '& .title': {\r\n marginBottom: '10px',\r\n fontSize: '14px',\r\n fontWeight: 'bold',\r\n },\r\n '& .col-sm-6': {\r\n paddingLeft: 0,\r\n '& .rba-detail-desc-top': {\r\n marginBottom: '5px',\r\n },\r\n },\r\n },\r\n },\r\n '& .rba-content-right': {\r\n '& .preview-container': {\r\n border: '1px solid #C8C8C8',\r\n padding: '15px',\r\n '& .title': {\r\n textAlign: 'center',\r\n fontSize: detaultFontSize,\r\n fontWeight: 'bold',\r\n },\r\n '& .carousel-control': {\r\n backgroundColor: '#fff',\r\n color: '#0078d4',\r\n textAlign: 'right',\r\n textShadow: 'none',\r\n bottom: '23px',\r\n right: '15px',\r\n top: 'auto',\r\n left: 'auto',\r\n margin: 0,\r\n width: 'auto',\r\n height: 'auto',\r\n '&:focus,&:hover,&:active': {\r\n color: '#0078d4',\r\n },\r\n '&>div': {\r\n width: '16px',\r\n height: '16px',\r\n color: '#0078d4',\r\n outline: 'none',\r\n display: 'inline-block',\r\n },\r\n '& .disabled': {\r\n color: '#ccc',\r\n },\r\n '& .carousel-control__arrow-right': {\r\n '&:before': {\r\n content: '\"\\\\E76C\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n '& .carousel-control__arrow-left': {\r\n marginRight: '15px',\r\n '&:before': {\r\n content: '\"\\\\E76B\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n },\r\n '& .carousel-indicators': {\r\n bottom: '10px',\r\n margin: 0,\r\n position: 'relative',\r\n left: '35px',\r\n textAlign: 'left',\r\n '& li': {\r\n height: '8px',\r\n width: '8px',\r\n margin: '0px',\r\n marginRight: '10px!important',\r\n backgroundSize: '100%',\r\n borderRadius: '50%',\r\n border: '1px solid #605e5c',\r\n backgroundColor: '#fff',\r\n },\r\n '& .active': {\r\n backgroundColor: '#0078d4',\r\n border: 'none',\r\n },\r\n },\r\n '& .ad-preview': {\r\n backgroundColor: '#fff',\r\n paddingBottom: '15px',\r\n '& .ad-preview-bing-searchbox-icon': {\r\n marginBottom: '15px',\r\n width: '100%',\r\n },\r\n '& .ad-preview-info': {\r\n margin: '5px 35px',\r\n },\r\n },\r\n },\r\n },\r\n '& .rba-detail-estvalue': {\r\n fontSize: '28px',\r\n lineHeight: '36px',\r\n fontWeight: 'bold',\r\n },\r\n '& .rba-detail-desc-top': {\r\n color: '#888888',\r\n fontSize: '12px',\r\n },\r\n },\r\n '& .block': {\r\n display: 'block',\r\n },\r\n '& .inline-block': {\r\n display: 'inline-block',\r\n },\r\n },\r\n});\r\n\r\nexport const newAdsStyle = ({ palette }) => ({\r\n '& .hide-overflow': {\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .recommendation-new-ads-inline-view': {\r\n ...adEditorOverrideStyle({ palette }),\r\n\r\n margin: '10px 10px 10px 0px',\r\n\r\n '& .new-ads-preview': {\r\n padding: 30,\r\n },\r\n\r\n '& .action-panel': {\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const dynamicSearchAdsStyle = ({ palette, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .recommendation-dynamic-search-ads-inline-view': {\r\n ...crudAdStyle({ palette }),\r\n ...alertOverrideStyle({ palette }),\r\n ...adEditorOverrideStyle({ palette }),\r\n ...adCustomizersStyle({ palette, iconFontFamily }),\r\n ...locationMapStyle({ palette }),\r\n\r\n margin: '10px 10px 10px 0px',\r\n overflow: 'hidden',\r\n position: 'relative',\r\n\r\n // Disable some fields in inline editor\r\n '& .location-target-physical-intent': {\r\n display: 'none',\r\n },\r\n\r\n '& .budget': {\r\n display: 'none',\r\n },\r\n\r\n '& .ads-preview-label': {\r\n display: 'none',\r\n },\r\n\r\n // Layout preview items\r\n '& .description-header': {\r\n marginBottom: '-40px',\r\n },\r\n\r\n '& .preview-label': {\r\n fontSize: '14px',\r\n fontWeight: 600,\r\n },\r\n\r\n '& .preview-search-examples-label': {\r\n marginBottom: '15px',\r\n },\r\n\r\n '& .preview-search-examples': {\r\n marginBottom: '20px',\r\n width: '600px',\r\n },\r\n\r\n '& .search-examples-container': {\r\n position: 'absolute',\r\n left: '55%',\r\n top: '90px',\r\n },\r\n\r\n '& .preview-container': {\r\n marginTop: '10px',\r\n },\r\n\r\n // Layout fields\r\n '& .adgroupEditor-container': {\r\n marginTop: '30px',\r\n },\r\n\r\n '& .adEditor-container': {\r\n marginTop: '40px',\r\n },\r\n\r\n '& .website-language-setting': {\r\n marginBottom: '20px',\r\n },\r\n\r\n '& .col-sm-3.form-control-static': {\r\n marginLeft: '10px',\r\n },\r\n\r\n '& .input-group .form-control': {\r\n zIndex: 0,\r\n },\r\n\r\n // Adjust style for shared components\r\n '& .location-manage .location-manage-box': {\r\n display: 'flex',\r\n\r\n '& .location-popup-editor .form-group .col-sm-12': {\r\n padding: '10px, 5px',\r\n marginBottom: 5,\r\n },\r\n\r\n '& tbody': {\r\n '& tr:hover': {\r\n background: 'none',\r\n },\r\n\r\n '& td': {\r\n border: 'none !important',\r\n },\r\n\r\n '& td:first-child': {\r\n paddingLeft: 0,\r\n },\r\n },\r\n },\r\n\r\n '& .location-target-grid': {\r\n paddingLeft: '0px',\r\n },\r\n\r\n '& .MicrosoftMap div': {\r\n zIndex: '0 !important',\r\n },\r\n\r\n '& .col-sm-4 .control-label': {\r\n display: 'inline-block',\r\n },\r\n\r\n '& .shared-budget-switch-editor-radio': {\r\n paddingTop: '0px',\r\n paddingLeft: '0px',\r\n minHeight: '0px !important',\r\n },\r\n\r\n '& .recommendation-dynamic-search-ads-inline-view': {\r\n maxHeight: '800px',\r\n },\r\n\r\n '& .bidding-strategy-container .col-sm-2': {\r\n paddingRight: '0px',\r\n },\r\n\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n },\r\n },\r\n});\r\n","import { extend } from 'underscore';\r\nimport { convertToLocalStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { budgetStyle } from './budget';\r\nimport { repairKeywordsStyle } from './repair-keywords';\r\nimport { getAdExtensionStyle } from './ad-extension';\r\nimport { getAdExtensionEditorStyles } from './ad-extension-editor';\r\nimport { getReallocateBudgetStyle } from './reallocate-budget';\r\nimport { getSetupConvTrackingStyle } from './setup-conv-tracking';\r\nimport { getFixConversionGoalSettingStyle } from './fix-conversion-goal-setting';\r\nimport { getCreateConversionGoalStyle } from './create-conversion-goal';\r\nimport {\r\n newAdsStyle,\r\n dynamicSearchAdsStyle,\r\n getFixAdDestinationStyle,\r\n} from './ads';\r\n\r\nexport const getInlineViewStyles = (_, { palette = {} }) => extend(\r\n budgetStyle,\r\n newAdsStyle({ palette }),\r\n dynamicSearchAdsStyle({ palette }),\r\n repairKeywordsStyle({ palette }),\r\n getAdExtensionStyle(_, { palette }),\r\n convertToLocalStyle(getAdExtensionEditorStyles({ palette })),\r\n getReallocateBudgetStyle(),\r\n getFixAdDestinationStyle({ palette }),\r\n getSetupConvTrackingStyle(),\r\n getFixConversionGoalSettingStyle({ palette }),\r\n getCreateConversionGoalStyle()\r\n);\r\n","import { crudKeywordStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const repairKeywordsStyle = ({ palette }) => ({\r\n '& .recommendation-repair-keywords-inline-view': {\r\n margin: '10px 10px 10px 0px',\r\n overflow: 'hidden',\r\n ...crudKeywordStyle({ palette }),\r\n\r\n '& .create-keyword-container': {\r\n '& .add-keywords-root': {\r\n margin: 30,\r\n\r\n '& .panel-body': {\r\n '& .col-sm-4': {\r\n margin: 0,\r\n\r\n '& .parser': {\r\n position: 'relative',\r\n },\r\n },\r\n\r\n '& .row:nth-child(3)': {\r\n padding: 0,\r\n },\r\n '& .keyword-planner-inline': {\r\n '& .form-group': {\r\n margin: '0px !important ',\r\n width: '100%',\r\n\r\n '& .form-control-feedback.glyphicon': {\r\n position: 'absolute',\r\n },\r\n\r\n '& .table>thead>tr>th': {\r\n verticalAlign: 'top',\r\n textAlign: 'left',\r\n border: `1px solid ${palette.neutralLight}`,\r\n fontWeight: 'normal',\r\n },\r\n\r\n '& .pagination': {\r\n '& span': {\r\n lineHeight: 1.5,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& button': {\r\n marginLeft: 10,\r\n },\r\n },\r\n});\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nexport const getAdExtensionStyle = (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .recommendation-inline-ad-extension-view': {\r\n width: '100%',\r\n\r\n '& .table-container table.table thead.header tr th.column-header': {\r\n borderBottomColor: '#979797',\r\n },\r\n\r\n '& .detail-opportunity': {\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .col-AdExtension': {\r\n border: '1px solid #EDEBE9',\r\n wordWrap: 'break-word',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n\r\n '& .table-container colgroup.column-group col.col-Status': {\r\n width: 100,\r\n minWidth: 100,\r\n },\r\n\r\n '& .delivery-info': {\r\n '& .status-icon': {\r\n marginRight: 5,\r\n position: 'static',\r\n },\r\n '& .status-warning': {\r\n color: '#D83B01',\r\n },\r\n '& .iconba-Warning': {\r\n color: '#D83B01',\r\n },\r\n '& .status-error': {\r\n color: '#A80000',\r\n },\r\n '& .iconba-ErrorBadge': {\r\n color: '#A80000',\r\n },\r\n },\r\n\r\n '& .trigger-popup': {\r\n width: 'fit-content',\r\n cursor: 'pointer',\r\n display: 'inline',\r\n borderBottom: '1px dashed #0078D4',\r\n },\r\n\r\n '& .form-group': {\r\n padding: 0,\r\n marginBottom: 0,\r\n },\r\n\r\n '& .row': {\r\n margin: 0,\r\n },\r\n\r\n '& .panel-form': {\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n '& .panel-body': {\r\n padding: '0',\r\n\r\n '& h5': {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n margin: '0 0 10px 0',\r\n },\r\n },\r\n\r\n '& .extension-editor-dblist-container': {\r\n marginLeft: 2,\r\n },\r\n\r\n '& .doubleListBox': {\r\n\r\n '& .layout-columns-container ': {\r\n\r\n minHeight: 261,\r\n\r\n '& .layout-columns-element[data-bind=\"visible: features.filtering || showMaximumSelectionAlert\"]': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n '& .form-group[data-bind=\"visible: features.filtering\"]': {\r\n order: 2,\r\n },\r\n\r\n '& >div[data-bind=\"visible: showMaximumSelectionAlert\"]': {\r\n order: 1,\r\n marginBottom: 10.5,\r\n },\r\n },\r\n\r\n '& .dlb-filter-alignPlaceholder': {\r\n paddingBottom: 5,\r\n paddingLeft: 15,\r\n position: 'absolute',\r\n\r\n '& .searchbox': {\r\n width: 300,\r\n\r\n '& .form-control': {\r\n border: `1px solid ${palette.neutralSecondary}`,\r\n borderBottom: 0,\r\n height: 48,\r\n },\r\n\r\n '& .form-control-feedback': {\r\n zIndex: 0,\r\n position: 'absolute',\r\n left: 0,\r\n lineHeight: '46px',\r\n pointerEvents: 'auto',\r\n },\r\n },\r\n },\r\n\r\n\r\n '& .layout-columns-element:nth-child(2)': {\r\n width: 300,\r\n height: 'auto',\r\n marginRight: 8,\r\n marginTop: 45,\r\n padding: 0,\r\n\r\n\r\n '& .row.form-group': {\r\n overflowY: 'auto',\r\n height: 216,\r\n border: `1px solid ${palette.neutralSecondary}`,\r\n },\r\n },\r\n\r\n '& .layout-columns-element:nth-child(3)': {\r\n width: 300,\r\n border: `1px solid ${palette.neutralSecondary}`,\r\n marginRight: 8,\r\n padding: 0,\r\n height: 261,\r\n\r\n '& .panel-body': {\r\n height: 213,\r\n overflowY: 'auto',\r\n },\r\n '& .statusIcon': {\r\n float: 'left',\r\n marginRight: 10,\r\n },\r\n },\r\n\r\n '& .panel-heading': {\r\n padding: 0,\r\n\r\n '& .panel-title': {\r\n fontSize: 14,\r\n height: 'auto',\r\n lineHeight: '36px',\r\n padding: '0 8px',\r\n },\r\n },\r\n\r\n '& .col-sm-12': {\r\n padding: 0,\r\n },\r\n },\r\n\r\n '& .dlbItem, & .dlb-source-header, & .dlb-selected-header, & .k-loading-mask': {\r\n padding: '0 8px',\r\n },\r\n\r\n '& .dlbItem:hover': {\r\n background: '#EDEBE9',\r\n },\r\n\r\n '& .dlbItem-content': {\r\n minHeight: 36,\r\n lineHeight: '36px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n\r\n '& .wordwrap, .itemTemplate-text, .appListItem-text': {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n\r\n '& .type-bold': {\r\n fontWeight: 600,\r\n },\r\n },\r\n\r\n '& .dlbItem-actions': {\r\n float: 'right',\r\n marginTop: 8,\r\n '& .dlbItem-customAction': {\r\n lineHeight: 'inherit',\r\n },\r\n },\r\n\r\n '& .dlb-selectAll': {\r\n marginLeft: 5,\r\n },\r\n\r\n '& .dlb-deselectAll': {\r\n marginBottom: 10,\r\n marginRight: 8,\r\n marginLeft: 5,\r\n },\r\n\r\n '& .arrow-button.enabled': {\r\n marginLeft: 10,\r\n overflow: 'visible !important',\r\n textDecoration: 'none !important',\r\n background: 'none !important',\r\n fontFamily: iconFontFamily,\r\n cursor: 'pointer',\r\n },\r\n\r\n '& .arrow-button.enabled:before': {\r\n content: '\"\\\\E710\"',\r\n },\r\n\r\n '& .arrow-button.remove': {\r\n marginRight: 10,\r\n marginTop: 8,\r\n float: 'right',\r\n fontFamily: iconFontFamily,\r\n padding: 0,\r\n },\r\n\r\n '& .arrow-button.remove:before': {\r\n content: '\"\\\\E738\"',\r\n },\r\n\r\n '& .arrow-button.remove+a': {\r\n width: 'fit-content',\r\n padding: 0,\r\n },\r\n\r\n '& .itemTemplate-text': {\r\n '& li': {\r\n height: 32,\r\n lineHeight: '32px',\r\n\r\n '& a': {\r\n verticalAlign: 'middle',\r\n },\r\n },\r\n },\r\n\r\n\r\n '& .pager': {\r\n height: 'auto',\r\n\r\n '& .pager-page': {\r\n float: 'right',\r\n\r\n '& span': {\r\n marginLeft: 6,\r\n verticalAlign: 'baseline',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& .create-link-Container': {\r\n marginLeft: 2,\r\n marginTop: 10,\r\n },\r\n\r\n '& .save-bar': {\r\n marginTop: 10,\r\n marginBottom: 10,\r\n borderTop: `1px solid ${palette.neutralLight}`,\r\n },\r\n\r\n '& .create-extension': {\r\n padding: '8px 0',\r\n\r\n '& .glyphicon-plus': {\r\n marginRight: 12,\r\n verticalAlign: 'inherit',\r\n },\r\n },\r\n\r\n '& #selector-control-container': {\r\n width: '70%',\r\n },\r\n\r\n // estimation\r\n '& .panel-title': {\r\n '& span': {\r\n color: '#444444 !important',\r\n },\r\n },\r\n '& .ad-extension-detail-actions': {\r\n float: 'right',\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n '& .ad-extension-opportunity-hint.form-group': {\r\n marginLeft: 3,\r\n marginTop: 18,\r\n '& div': {\r\n color: '#333333',\r\n },\r\n },\r\n '& .ad-extension-detail-overview-item': {\r\n position: 'relative',\r\n float: 'left',\r\n width: 134,\r\n paddingTop: '16px',\r\n height: 100,\r\n background: '#fff',\r\n marginRight: 36,\r\n '& .ad-extension-detail-desc-top': {\r\n fontSize: 12,\r\n lineHeight: '1.4',\r\n color: '#797775',\r\n },\r\n '& .ad-extension-detail-desc-middle': {\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n fontSize: 28,\r\n fontWeight: 'bold',\r\n lineHeight: '1.2',\r\n color: '#107C10',\r\n '& .increase-symbol': {\r\n bottom: 1,\r\n position: 'relative',\r\n fontWeight: 'bolder',\r\n color: '#008272',\r\n },\r\n '&[type=\\'negative\\']': {\r\n color: '#333333 !important',\r\n },\r\n },\r\n '& .ad-extension-detail-desc-bottom': {\r\n fontSize: 12,\r\n color: '#797775',\r\n lineHeight: '1.4',\r\n },\r\n },\r\n '& .ad-extension-detail-overview-item-cpc': {\r\n position: 'relative',\r\n float: 'left',\r\n width: 310,\r\n paddingTop: '16px',\r\n height: 100,\r\n background: '#fff',\r\n marginRight: 36,\r\n '& .ad-extension-detail-desc-top': {\r\n fontSize: 12,\r\n lineHeight: '1.4',\r\n color: '#797775',\r\n },\r\n '& .ad-extension-detail-desc-middle': {\r\n paddingTop: 5,\r\n paddingBottom: 5,\r\n fontSize: 28,\r\n fontWeight: 'bold',\r\n lineHeight: '1.2',\r\n color: '#107C10',\r\n '&[type=\\'negative\\']': {\r\n color: '#333333 !important',\r\n },\r\n },\r\n '& .ad-extension-detail-desc-bottom': {\r\n fontSize: 12,\r\n color: '#797775',\r\n lineHeight: '1.4',\r\n },\r\n '& a': {\r\n color: '#404040',\r\n position: 'relative',\r\n marginLeft: 5,\r\n top: 2,\r\n float: 'left',\r\n },\r\n '& h5, & .cpcIncreaseText': {\r\n float: 'left',\r\n },\r\n },\r\n '& .ad-extension-est': {\r\n marginTop: 36,\r\n },\r\n // popup dialog\r\n '& .tipClick': {\r\n display: 'block',\r\n position: 'relative',\r\n '& > a:focus + .tooltipT': {\r\n display: 'block!important',\r\n },\r\n },\r\n '& .tooltipT': {\r\n display: 'none',\r\n position: 'absolute',\r\n background: '#fff',\r\n M: '0 0 6px 1px #666666',\r\n W: '0 0 6px 1px #666666',\r\n boxShadow: '0 0 6px 1px #666666',\r\n border: 'solid #FFFFFF',\r\n color: '#636363',\r\n padding: '2px 2px 2px 2px',\r\n fontFamily: 'Arial',\r\n fontSize: 11,\r\n textAlign: 'left',\r\n fallbacks: [\r\n {\r\n textAlign: 'center',\r\n },\r\n ],\r\n top: -6,\r\n left: 200,\r\n right: -320,\r\n zIndex: '10',\r\n maxWidth: 300,\r\n '& p': {\r\n margin: 10,\r\n },\r\n '& span': {\r\n position: 'absolute',\r\n top: 10,\r\n right: 10,\r\n fontSize: 0,\r\n lineHeight: '1',\r\n '& a': {\r\n textDecoration: 'none',\r\n color: '#00529B',\r\n },\r\n '&:focus': {\r\n '& .tooltipT': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","import {\r\n extensionEditorStyles,\r\n messageBarStyle,\r\n searchboxStyle,\r\n selectElementStyle,\r\n scrollbarStyle,\r\n convertToGlobalStyle\r\n} from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const getAdExtensionEditorStyles = ({ palette = {} }) => ({\r\n ...extensionEditorStyles({ palette }),\r\n ...messageBarStyle({ palette }),\r\n ...convertToGlobalStyle([searchboxStyle({ palette }), selectElementStyle({ palette })]),\r\n ...scrollbarStyle({ palette }),\r\n});\r\n","const detaultFontSize = '14px';\r\nexport const getSetupConvTrackingStyle = () => ({\r\n '& .recommendation-setup-conversion-tracking': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontSize: detaultFontSize,\r\n lineHeight: '20px',\r\n color: '#333333',\r\n minWidth: '1020px',\r\n padding: '16px 0',\r\n '& .row': {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n '& .col-sm-4': {\r\n padding: 0,\r\n },\r\n },\r\n '& .rba-detail-actions': {\r\n textAlign: 'right',\r\n marginTop: '24px',\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n '& .padding-zero': {\r\n padding: '0!important',\r\n },\r\n '& .block': {\r\n display: 'block',\r\n },\r\n '& .inline-block': {\r\n display: 'inline-block',\r\n },\r\n '& .setup-conv-tracking-todo': {\r\n display: 'inline-block',\r\n width: '455px',\r\n paddingRight: '16px',\r\n marginRight: '120px',\r\n '& .step-title': {\r\n fontWeight: 'normal',\r\n margin: '0 0 8px',\r\n },\r\n },\r\n '& .setup-conv-tracking-performance': {\r\n display: 'inline-block',\r\n padding: '16px',\r\n width: '438px',\r\n border: '1px solid #E1DFDD',\r\n verticalAlign: 'top',\r\n },\r\n },\r\n});\r\n","export const getFixConversionGoalSettingStyle = ({ palette }) => ({\r\n '& .hide-overflow': {\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .recommendation-inline-fix-conversion-goal-setting-view': {\r\n margin: '10px 10px 10px 0px',\r\n\r\n '& .title': {\r\n fontSize: 14,\r\n marginBottom: 16,\r\n },\r\n\r\n '& .estimation': {\r\n fontSize: 14,\r\n marginTop: 4,\r\n marginLeft: 16,\r\n },\r\n\r\n '& .main-content': {\r\n '& .goal-setting-current': {\r\n display: 'table-cell',\r\n fontSize: '14px',\r\n verticalAlign: 'top',\r\n width: '400px',\r\n '& .grid-column-goal-setting-current': {\r\n padding: '16px 16px 16px 16px',\r\n background: '#fff',\r\n border: 'solid 1px #dddddd',\r\n display: 'inline-block',\r\n width: '100%',\r\n '& .goal-setting-container': {\r\n margin: '0px 16px 8px 16px',\r\n '& .goal-setting-warning': {\r\n cursor: 'pointer',\r\n display: 'inline-block',\r\n color: '#A80000',\r\n '& .cell-with-popove': {\r\n borderBottom: {\r\n width: 1,\r\n style: 'dashed',\r\n color: palette.themePrimary,\r\n },\r\n },\r\n },\r\n },\r\n '& .current-setting-name': {\r\n color: '#A80000',\r\n },\r\n },\r\n '& .subtitle': {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n marginBottom: 4,\r\n },\r\n },\r\n\r\n '& .goal-setting-arrow': {\r\n display: 'table-cell',\r\n verticalAlign: 'middle',\r\n padding: '0px 24px 0px 24px',\r\n textAlign: 'center',\r\n },\r\n\r\n '& .goal-setting-suggested': {\r\n display: 'table-cell',\r\n fontSize: '14px',\r\n verticalAlign: 'top',\r\n width: '600px',\r\n '& .grid-column-goal-setting-suggested': {\r\n padding: '16px 16px 16px 16px',\r\n background: '#fff',\r\n border: 'solid 1px #dddddd',\r\n display: 'inline-block',\r\n width: '100%',\r\n '& .suggested-goal-setting-container': {\r\n margin: '0px 16px 8px 16px',\r\n '& .inactive': {\r\n color: '#a19f9d',\r\n },\r\n '& .control-label': {\r\n width: '100%',\r\n },\r\n '& .error': {\r\n color: '#A80000',\r\n fontSize: '14px',\r\n },\r\n '& .error-bottom': {\r\n color: '#A80000',\r\n fontSize: '14px',\r\n marginTop: '10px',\r\n },\r\n },\r\n '& .suggested-setting-name': {\r\n color: '#107C10',\r\n },\r\n '& .suggested.same-goal-value.not-assign-goal-value.title': {\r\n fontWeight: 600,\r\n },\r\n '& .suggested.same-goal-value.not-assign-goal-value.input-container': {\r\n display: 'flex',\r\n '& input': {\r\n width: 131,\r\n marginTop: 24,\r\n marginRight: 16,\r\n },\r\n '& .currency': {\r\n marginTop: 28,\r\n },\r\n },\r\n '& .suggested.various-goal-value.link': {\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n },\r\n '& .subtitle': {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n marginBottom: 4,\r\n },\r\n },\r\n },\r\n\r\n '& .action-panel': {\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n },\r\n});\r\n","export const getCreateConversionGoalStyle = () => ({\r\n '& .hide-overflow': {\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .recommendation-inline-create-conversion-goal-view': {\r\n margin: '10px 10px 10px 0px',\r\n\r\n '& .create-conversion-goal-edit-content': {\r\n '& .ms-Dropdown-title': {\r\n lineHeight: '30px !important',\r\n },\r\n '& .ms-Dropdown-caretDownWrapper': {\r\n lineHeight: '30px !important',\r\n },\r\n },\r\n\r\n '& .create-conversion-goal-view-content': {\r\n display: 'flex',\r\n padding: '16px 24px',\r\n flexFlow: 'column',\r\n borderTop: '1px solid #edebe9',\r\n '& .memo-row': {\r\n color: '#979797',\r\n fontSize: '12px',\r\n marginTop: '10px',\r\n },\r\n '& .view-content-row': {\r\n color: '#323130',\r\n fontSize: '14px',\r\n marginTop: '10px',\r\n },\r\n },\r\n\r\n '& .action-panel': {\r\n '& .btn-primary': {\r\n marginRight: '8px',\r\n marginBottom: '16px',\r\n },\r\n '& .btn-default': {\r\n marginRight: '16px',\r\n },\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport { crudAdStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { getInlineViewStyles } from './inline-view/index';\r\n\r\nimport CircleSolidSmall from '../../media/CircleSolidSmall.svg';\r\nimport DiamondSolidSmall from '../../media/DiamondSolidSmall.svg';\r\nimport TriangleDownSolidSmall from '../../media/TriangleDownSolidSmall.svg';\r\nimport TriangleUpSolidSmall from '../../media/TriangleUpSolidSmall.svg';\r\nimport SquareSolidSmall from '../../media/SquareSolidSmall.svg';\r\nimport SquareSolidSmallSecondary from '../../media/SquareSolidSmallSecondary.svg';\r\nimport CircleSolidSmallSecondary from '../../media/CircleSolidSmallSecondary.svg';\r\nimport DiamondSolidSmallSecondary from '../../media/DiamondSolidSmallSecondary.svg';\r\nimport TriangleDownSolidSmallSecondary from '../../media/TriangleDownSolidSmallSecondary.svg';\r\nimport TriangleUpSolidSmallSecondary from '../../media/TriangleUpSolidSmallSecondary.svg';\r\n\r\nexport const getCustomGridStyles = ({ palette = {} }) =>\r\n ({\r\n // toolbar\r\n '& .toolbar': {\r\n '& .btn': {\r\n '& .iconba': {\r\n color: `${palette.themePrimary} !important`,\r\n },\r\n },\r\n '& .btn-navigate-back': {\r\n padding: '0 5px 0 2px',\r\n color: palette.themePrimary,\r\n border: 'none',\r\n backgroundColor: palette.white,\r\n '&:hover': {\r\n '& span': {\r\n color: `${palette.themeDarker} !important`,\r\n textDecorationLine: 'underline',\r\n },\r\n '& .iconba': {\r\n color: palette.themeDarker,\r\n textDecorationLine: 'none',\r\n },\r\n },\r\n },\r\n '& .reject-nav-item': {\r\n height: 56,\r\n '& .reject-masker': {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n display: 'none',\r\n },\r\n '&.disabled': {\r\n opacity: 0.5,\r\n '& .reject-masker': {\r\n display: 'block',\r\n },\r\n },\r\n '&.enabled:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: '#f3f2f1',\r\n },\r\n '& #button-reject': {\r\n display: 'inline-block',\r\n lineHeight: '24px',\r\n paddingTop: 16,\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n paddingBottom: 16,\r\n '& .iconba': {\r\n color: '#106ebe',\r\n fontSize: 16,\r\n marginLeft: 4,\r\n marginRight: 4,\r\n },\r\n },\r\n },\r\n '& .helpbutton': {\r\n display: 'inline-block',\r\n lineHeight: '20px',\r\n paddingTop: 16,\r\n paddingRight: 8,\r\n paddingBottom: 16,\r\n },\r\n },\r\n '& .toolbar-edit': {\r\n '& .btn': {\r\n height: 56,\r\n },\r\n '& .btn.disabled,& .btn.disabled:active,& .btn[disabled],& .btn[disabled]:active': {\r\n backgroundColor: 'transparent',\r\n color: '#a19f9d',\r\n },\r\n },\r\n // notification lightbox\r\n '& .notification-container': {\r\n backgroundColor: palette.white,\r\n '& .panel': {\r\n margin: 0,\r\n padding: '16px 10px 16px 32px',\r\n '& .panel-heading': {\r\n border: 'none',\r\n fontSize: 14,\r\n fontWeight: '600',\r\n padding: '11px 24px 0 24px',\r\n backgroundColor: '#F3F2F1',\r\n },\r\n '& .panel-footer': {\r\n border: 'none',\r\n padding: '0 21px 16px 31px',\r\n backgroundColor: '#F3F2F1',\r\n '& .recommendation-alerts': {\r\n gridRow: 1,\r\n display: 'grid',\r\n paddingTop: 16,\r\n gridTemplateColumns: '25px auto',\r\n '& .status_warning': {\r\n top: 4,\r\n color: '#D83B01',\r\n },\r\n '& .status_success': {\r\n top: 4,\r\n color: '#107C10',\r\n },\r\n '& .recommendation-alert-content': {\r\n gridColumn: 2,\r\n alignSelf: 'center',\r\n },\r\n },\r\n },\r\n '& .cancel': {\r\n marginTop: 12,\r\n },\r\n },\r\n },\r\n // filter banner\r\n '& .filterBanner-container': {\r\n backgroundColor: palette.themeLighter,\r\n\r\n '& .filterBanner': {\r\n padding: '10px 24px',\r\n },\r\n },\r\n // grid content\r\n '& .recommendations-grid-view': {\r\n '& .table-container': {\r\n '& .sticky-header': {\r\n zIndex: 10,\r\n },\r\n '& thead.header': {\r\n '& .recommendation-grid-capping-row': {\r\n borderTopStyle: 'hidden',\r\n\r\n '& th': {\r\n paddingLeft: '0 !important',\r\n paddingTop: '0 !important',\r\n\r\n '& .iconba.iconba-Info': {\r\n fontSize: '16px',\r\n position: 'relative',\r\n top: '-1px',\r\n marginRight: '8px',\r\n fontWeight: '600',\r\n },\r\n\r\n '& .grid-capping-content': {\r\n lineHeight: '16px',\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n '& tr th:nth-child(2)': {\r\n borderRight: '1px solid #EDEBE9 !important',\r\n },\r\n '& tr th': {\r\n minHeight: '47px',\r\n },\r\n },\r\n '& tbody': {\r\n '& tr.row-selected td a': {\r\n fontWeight: 'normal !important',\r\n },\r\n '& tr td:nth-child(2)': {\r\n borderRight: '1px solid #f3f2f1 !important',\r\n },\r\n '& h5': {\r\n fontWeight: 'normal',\r\n },\r\n // more tooltip\r\n '& .more-tooltip': {\r\n display: 'inline-block',\r\n position: 'relative',\r\n '& .more-link': {\r\n cursor: 'pointer',\r\n textDecoration: 'underline',\r\n '&:hover': {\r\n color: palette.themeDarker,\r\n },\r\n },\r\n '& .more-top-search-term': {\r\n color: '#0078D4',\r\n cursor: 'pointer',\r\n textDecoration: 'underline',\r\n '&:hover': {\r\n color: palette.themeDarker,\r\n },\r\n },\r\n '& .width-expander': {\r\n minWidth: 500,\r\n bottom: '0',\r\n position: 'absolute',\r\n },\r\n '& .more-tooltip-container': {\r\n display: 'none',\r\n position: 'absolute',\r\n left: '0%',\r\n zIndex: '1',\r\n border: 'solid 1px #dddddd',\r\n boxShadow: '3px 3px 4px #dddddd',\r\n background: '#fff',\r\n padding: 15,\r\n '& .title': {\r\n color: '#333333',\r\n fontSize: 14,\r\n fontWeight: '500',\r\n // lineHeight: 15,\r\n },\r\n '& .content': {\r\n color: '#333333',\r\n '& td': {\r\n fontSize: 12,\r\n },\r\n // lineHeight: 15,\r\n },\r\n '& .more-top-search-term-content': {\r\n color: '#333333',\r\n fontFamily: 'Arial',\r\n fontSize: 12,\r\n // lineHeight: 15,\r\n margin: '15px 15px 15px 15px',\r\n minWidth: 500,\r\n },\r\n '& .close-button': {\r\n color: '#333333',\r\n cursor: 'pointer',\r\n float: 'right',\r\n position: 'relative',\r\n verticalAlign: 'middle',\r\n },\r\n },\r\n },\r\n // action buttons\r\n '& .action-panel .pull-right .btn-primary': {\r\n marginRight: 8,\r\n },\r\n // inline action column\r\n '& .inline-action-view-column': {\r\n '& .inline-action-view': {\r\n background: 'inherit',\r\n '&.btn-primary': {\r\n background: palette.blue,\r\n '&:hover': {\r\n background: palette.themeDarkAlt,\r\n },\r\n },\r\n },\r\n },\r\n '& .inline-action-edit-apply-column, & .inline-action-panel-edit-apply-column, & .inline-action-hybrid-column, & .inline-action-edit-resubmit-column, & .inline-action-image-extension-column': {\r\n '& .inline-action-apply': {\r\n marginRight: '8px',\r\n },\r\n },\r\n '& tr:hover .loadContainer': {\r\n background: '#f3f2f1 !important',\r\n },\r\n '& .row-selected .loadContainer': {\r\n background: '#EDEBE9 !important',\r\n },\r\n '& .row-selected:hover .loadContainer': {\r\n background: '#e1dfdd !important',\r\n },\r\n '& .inline-action-image-extension-column': {\r\n position: 'relative',\r\n '& .loadContainer': {\r\n background: 'white',\r\n position: 'absolute',\r\n display: 'flex',\r\n alignItems: 'center',\r\n margin: '0px',\r\n height: '35px',\r\n width: '180px',\r\n padding: '5px 75px',\r\n zIndex: '5',\r\n },\r\n },\r\n '& .loadImage': {\r\n display: 'inline-block',\r\n width: '20px !important',\r\n height: '20px !important',\r\n margin: '5px',\r\n border: '2px solid',\r\n animation: 'spinner 1s linear infinite',\r\n borderRadius: '50%',\r\n borderTopColor: '#c7e0f4',\r\n borderLeftColor: '#0078d4',\r\n borderRightColor: '#c7e0f4',\r\n borderBottomColor: '#c7e0f4',\r\n },\r\n '& .loadText': {\r\n display: 'inline-block',\r\n margin: '10px 5px',\r\n color: palette.themePrimary,\r\n fontSize: 14,\r\n },\r\n // inline action container\r\n '& .inline-action-container': {\r\n ...getInlineViewStyles(_, { palette }),\r\n fontSize: 14,\r\n\r\n '&:hover': {\r\n backgroundColor: `${palette.white} !important`,\r\n },\r\n\r\n '& ol, ul': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n },\r\n\r\n 'input.error, select.error, textarea.error': {\r\n border: '1px solid #A80000 !important',\r\n },\r\n\r\n '& .error': {\r\n color: '#A80000',\r\n fontSize: 12,\r\n },\r\n },\r\n // column\r\n '& .grid-column-BudgetDelta, & .grid-column-BidAdjustmentTodo, & .text-left': {\r\n '& h5': {\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n '& .more-link': {\r\n color: '#0078D4',\r\n },\r\n '& .more-content': {\r\n marginRight: 20,\r\n '& td': {\r\n padding: '0',\r\n paddingBottom: 10,\r\n border: 'none',\r\n borderRight: 'none !important',\r\n '& .glyphicon-arrow-up:before': {\r\n content: '\"\\\\EE68\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n '& .glyphicon-arrow-down:before': {\r\n content: '\"\\\\EE69\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n },\r\n '& .gap-td': {\r\n paddingBottom: 5,\r\n },\r\n '& .left-col': {\r\n minWidth: 120,\r\n maxWidth: 200,\r\n },\r\n '& .right-col': {\r\n minWidth: 82,\r\n maxWidth: 200,\r\n paddingLeft: 15,\r\n boxSizing: 'content-box',\r\n },\r\n '& tr:last-child td': {\r\n padding: '0',\r\n },\r\n },\r\n },\r\n '& .grid-column-CampaignAdGroup': {\r\n '& .link': {\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n '&:hover': {\r\n color: palette.themeDarker,\r\n },\r\n },\r\n '& span.link': {\r\n textDecoration: 'underline',\r\n },\r\n '& .glyphicon-pencil': {\r\n marginRight: '8px',\r\n },\r\n },\r\n '& .suggested-ads-preview-column': {\r\n ...crudAdStyle({ palette }),\r\n '& .recommendation-suggested-ads-column': {\r\n padding: '10px 10px 10px 10px',\r\n '& .iconba.iconba-Lightbulb': {\r\n color: '#0078D4',\r\n fontSize: '12px',\r\n paddingBottom: '10px',\r\n },\r\n '& .numberOfSuggestedHeadlineDescription': {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n color: '#0078D4',\r\n fontFamily: 'Segoe UI',\r\n fontSize: '12px',\r\n paddingLeft: '5px',\r\n },\r\n '& .recommendation-ad-preview': {\r\n width: '100%',\r\n padding: '7px 10px 7px 10px',\r\n background: '#fff',\r\n border: 'solid 1px #dddddd',\r\n },\r\n '& .recommendation-ad-start-date': {\r\n marginTop: '10px',\r\n lineHeight: '16px',\r\n fontSize: '14px',\r\n },\r\n '& .moreHint': {\r\n color: '#979797',\r\n },\r\n },\r\n },\r\n '& .suggested-mma-preview-column': {\r\n ...crudAdStyle({ palette }),\r\n '& .recommendation-suggested-ads-column': {\r\n display: 'flex',\r\n padding: '10px 10px 10px 10px',\r\n width: '100%',\r\n fontSize: '13px',\r\n minWidth: '280px',\r\n textAlign: 'left',\r\n wordBreak: 'break-word',\r\n '& .previewImage': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n '& .moreHint': {\r\n color: '#979797',\r\n },\r\n '& .previewTitleAd': {\r\n color: '#001BA0',\r\n cursor: 'pointer',\r\n fontSize: '20px',\r\n },\r\n '& .previewUrlAd': {\r\n color: '#006D21',\r\n cursor: 'pointer',\r\n fontSize: '11px',\r\n },\r\n '& .previewText': {\r\n color: '#666666',\r\n },\r\n '& img': {\r\n float: 'left',\r\n marginRight: 5,\r\n },\r\n },\r\n },\r\n '& .suggested-improve-mma-preview-column': {\r\n ...crudAdStyle({ palette }),\r\n '& .recommendation-suggested-ads-column': {\r\n display: 'flex',\r\n padding: '10px 10px 10px 10px',\r\n width: '100%',\r\n fontSize: '13px',\r\n minWidth: '280px',\r\n textAlign: 'left',\r\n wordBreak: 'break-word',\r\n flexDirection: 'column',\r\n '& .suggestedImageHeadline': {\r\n marginBottom: 10,\r\n '& .iconba.iconba-Lightbulb': {\r\n color: '#0078D4',\r\n fontSize: '12px',\r\n },\r\n '& .numberOfSuggestedImageHeadline': {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n color: '#0078D4',\r\n fontFamily: 'Segoe UI',\r\n fontSize: '12px',\r\n paddingLeft: '5px',\r\n },\r\n },\r\n '& .previewImageContainer': {\r\n display: 'flex',\r\n width: '100%',\r\n fontSize: '13px',\r\n minWidth: '280px',\r\n textAlign: 'left',\r\n wordBreak: 'break-word',\r\n '& .previewImage': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n '& .moreHint': {\r\n color: '#979797',\r\n width: 'fit-content',\r\n },\r\n '& .previewTitleAd': {\r\n color: '#001BA0',\r\n fontSize: '20px',\r\n },\r\n '& .previewUrlAd': {\r\n color: '#006D21',\r\n cursor: 'pointer',\r\n fontSize: '11px',\r\n },\r\n '& .previewText': {\r\n color: '#666666',\r\n },\r\n '& img': {\r\n float: 'left',\r\n marginRight: 5,\r\n },\r\n },\r\n },\r\n },\r\n '& .suggested-image-extension-preview-column': {\r\n ...crudAdStyle({ palette }),\r\n '& .recommendation-suggested-ads-column': {\r\n display: 'block',\r\n padding: '10px 10px 10px 10px',\r\n width: '100%',\r\n fontFamily: 'Segoe UI',\r\n fontSize: '12px',\r\n fontStyle: 'normal',\r\n lineHeight: '19px',\r\n minWidth: '280px',\r\n textAlign: 'left',\r\n wordBreak: 'break-word',\r\n position: 'relative',\r\n '& .previewImage': {\r\n display: 'block',\r\n flexDirection: 'column',\r\n '& div': {\r\n float: 'left',\r\n height: 60,\r\n width: 114,\r\n marginRight: 5,\r\n background: '#F3F2F1',\r\n '& button': {\r\n height: 60,\r\n width: 114,\r\n border: 'unset',\r\n background: 'unset',\r\n padding: 'unset',\r\n '& span.iconba.iconba-Add': {\r\n height: 60,\r\n width: 114,\r\n padding: 21,\r\n cursor: 'pointer',\r\n color: '#0078d4',\r\n },\r\n },\r\n },\r\n },\r\n '& .previewTexts': {\r\n minHeight: 57,\r\n },\r\n '& .previewText': {\r\n color: '#605E5C',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n minHeight: 19,\r\n },\r\n '& .noImage': {\r\n color: '#605E5C',\r\n },\r\n '& img': {\r\n height: 60,\r\n width: 114,\r\n float: 'left',\r\n marginRight: 5,\r\n },\r\n '& .loadContainer': {\r\n background: 'white',\r\n position: 'absolute',\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: 60,\r\n width: 460,\r\n zIndex: '5',\r\n left: -60,\r\n paddingLeft: 80,\r\n },\r\n },\r\n },\r\n '& .grid-column-FixConversionTrackingSummary': {\r\n '& .title': {\r\n fontSize: '14px',\r\n lineHeight: '16px',\r\n marginBottom: '12px',\r\n },\r\n '& .summary-detail': {\r\n display: 'flex',\r\n '& .description': {\r\n lineHeight: '16px',\r\n fontSize: '12px',\r\n },\r\n '& .vertical-wrap': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: '48px',\r\n marginRight: '48px',\r\n\r\n '& .arrow': {\r\n fontSize: '24px',\r\n },\r\n },\r\n '& .wrap': {\r\n width: '100%',\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n '& .number': {\r\n fontSize: '28px',\r\n lineHeight: '36px',\r\n fontWeight: '600',\r\n },\r\n },\r\n },\r\n },\r\n '& .grid-column-FixConversionTrackingTodo': {\r\n '& .title': {\r\n lineHeight: '20px',\r\n fontSize: '14px',\r\n marginTop: '6px',\r\n marginBottom: '4px',\r\n fontWeight: '600',\r\n },\r\n '& .description': {\r\n lineHeight: '19px',\r\n fontSize: '14px',\r\n paddingLeft: '14px',\r\n },\r\n '& .learn_more_link': {\r\n lineHeight: '19px',\r\n fontSize: '14px',\r\n marginTop: '20px',\r\n marginBottom: '6px',\r\n },\r\n },\r\n '& .landing-page-url-column': {\r\n wordBreak: 'break-word',\r\n },\r\n '& .text-left': {\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n '& .text-right': {\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n '& .delta-number': {\r\n fontWeight: 600,\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n color: '#484644',\r\n },\r\n '& .delta-number.with-optimization-score': {\r\n fontSize: '12px',\r\n },\r\n '& .positive-delta': {\r\n color: '#107C10',\r\n },\r\n '& .delta-range': {\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: '#484644',\r\n },\r\n },\r\n },\r\n '& .grid-column-setupConversionTrackingToDo, & .grid-column-FixConversionTrackingTodo, & .column-name-setupConversionTrackingToDo, & .column-name-FixConversionTrackingTodo': {\r\n borderRight: '1px solid #EDEBE9 !important',\r\n },\r\n '& .grid-column-policy': {\r\n '& .policy-title': {\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n marginBottom: '4px',\r\n },\r\n\r\n '& .policy-description': {\r\n fontSize: '12px',\r\n marginTop: '4px',\r\n },\r\n },\r\n '& .grid-column-RejectedAdsKeyword': {\r\n '& .disapproved': {\r\n marginBottom: '4px',\r\n },\r\n '& .limited-approved': {\r\n marginBottom: '8px',\r\n },\r\n '& .iconba': {\r\n position: 'relative',\r\n top: '2px',\r\n lineHeight: '16px',\r\n fontSize: '16px',\r\n marginRight: '4px',\r\n },\r\n },\r\n '& .grid-column-RejectedAdsKeyword.with-optimization-score': {\r\n '& .disapproved, .limited-approved': {\r\n fontSize: 12,\r\n },\r\n '& .iconba': {\r\n fontSize: 14,\r\n },\r\n },\r\n '& .grid-column-goal-setting': {\r\n '& .goal-setting-container': {\r\n margin: '0px 16px 8px 16px',\r\n '& .goal-setting-warning': {\r\n cursor: 'pointer',\r\n display: 'inline-block',\r\n color: '#A80000',\r\n '& .cell-with-popove': {\r\n borderBottom: {\r\n width: 1,\r\n style: 'dashed',\r\n color: palette.themePrimary,\r\n },\r\n },\r\n },\r\n '& .goal-setting-suggested': {\r\n cursor: 'pointer',\r\n display: 'inline-block',\r\n color: '#107C10',\r\n '& .cell-with-popove': {\r\n borderBottom: {\r\n width: 1,\r\n style: 'dashed',\r\n color: palette.themePrimary,\r\n },\r\n },\r\n },\r\n },\r\n '& .current-setting-title, .suggested-setting-title': {\r\n marginLeft: 16,\r\n fontWeight: '600',\r\n },\r\n '& .current-setting-name': {\r\n marginLeft: 16,\r\n color: '#A80000',\r\n },\r\n '& .suggested-setting-name': {\r\n marginLeft: 16,\r\n color: '#107C10',\r\n },\r\n '& .suggested.various-goal-value': {\r\n marginLeft: 16,\r\n fontStyle: 'oblique',\r\n },\r\n '& .current.various-goal-value, & .current.same-goal-value, & .suggested.same-goal-value.not-assign-goal-value, & .current.not-assign-goal-value': {\r\n marginLeft: 16,\r\n },\r\n },\r\n '& .grid-column-goalSetting': {\r\n '& .suggestedGoalItem': {\r\n marginBottom: 8,\r\n '& label': {\r\n display: 'inline',\r\n },\r\n },\r\n '& #clarityEventButtonText': {\r\n fontWeight: 'bold',\r\n },\r\n '& .clarityEventGoalSetting': {\r\n wordBreak: 'break-all',\r\n },\r\n },\r\n '& .grid-column-searchVolumeDelta': {\r\n fontSize: '18px !important',\r\n color: palette.green,\r\n textAlign: 'right',\r\n },\r\n '& .grid-column-searchVolumeDelta.with-optimization-score': {\r\n fontSize: '12px !important',\r\n },\r\n '& .grid-column-searchVolume': {\r\n textAlign: 'right',\r\n },\r\n '& .grid-column-searchVolume, & .grid-column-currentClick, & .grid-column-estimateSearch, & .grid-column-currentClick, & .grid-column-currentCost, & .grid-column-currentImpression, & .grid-column-numberRejectedAds, & .grid-column-numberRejectedKeywords': {\r\n '&.with-optimization-score': {\r\n fontSize: 12,\r\n },\r\n },\r\n '& .grid-column-productTargeted': {\r\n color: palette.green,\r\n },\r\n // column width\r\n '& colgroup.column-group': {\r\n '& col': {\r\n '&.col-repair': {\r\n width: '110px',\r\n minWidth: '110px',\r\n },\r\n '&.col-selection': {\r\n width: '60px',\r\n minWidth: '60px',\r\n },\r\n '&.col-SuggestedBid': {\r\n width: '100px',\r\n minWidth: '100px',\r\n },\r\n '&.col-edit': {\r\n width: '110px',\r\n minWidth: '110px',\r\n },\r\n '&.col-apply': {\r\n width: '110px',\r\n minWidth: '110px',\r\n },\r\n '&.col-applyEdit': {\r\n width: '230px',\r\n minWidth: '230px',\r\n },\r\n '&.col-applyPanelEdit': {\r\n width: '230px',\r\n minWidth: '230px',\r\n },\r\n '&.col-longText': {\r\n width: '200px',\r\n minWidth: '200px',\r\n },\r\n '&.col-middleText': {\r\n width: '150px',\r\n minWidth: '150px',\r\n },\r\n '&.col-normalText': {\r\n width: '100px',\r\n minWidth: '100px',\r\n },\r\n '&.col-shortText': {\r\n width: '80px',\r\n minWidth: '80px',\r\n },\r\n '&.col-mediumText': {\r\n width: '150px',\r\n minWidth: '150px',\r\n },\r\n '&.col-superLongText': {\r\n width: '400px',\r\n minWidth: '400px',\r\n },\r\n '&.col-numberEst, &.col-currentMatchType, &.col-matchType, &.col-searchVolume': {\r\n width: '120px',\r\n minWidth: '120px',\r\n },\r\n '&.col-number': {\r\n width: '100px',\r\n minWidth: '100px',\r\n },\r\n '&.col-shortNumber': {\r\n width: '80px',\r\n minWidth: '80px',\r\n },\r\n '&.col-keyword': {\r\n width: '250px',\r\n minWidth: '250px',\r\n },\r\n '&.col-ads-preview': {\r\n width: '430px',\r\n minWidth: '430px',\r\n },\r\n '&.rsa-col-ads-preview': {\r\n width: '430px',\r\n minWidth: '430px',\r\n },\r\n '&.col-resubmitEdit': {\r\n width: '230px',\r\n minWidth: '230px',\r\n },\r\n '&.col-searchVolumeDelta': {\r\n width: '150px',\r\n minWidth: '150px',\r\n },\r\n '&.mma-col-ads-preview': {\r\n width: '430px',\r\n minWidth: '430px',\r\n },\r\n '&.col-GoalSetting': {\r\n width: '320px',\r\n minWidth: '320px',\r\n },\r\n '&.col-GeneratedFrom': {\r\n width: '200px',\r\n minWidth: '200px',\r\n },\r\n },\r\n },\r\n '& .setup-conv-tracking-todo': {\r\n fontSize: '14px',\r\n color: '#323130',\r\n lineHeight: '20px',\r\n '& .step-title': {\r\n fontWeight: 'bold',\r\n display: 'block',\r\n margin: '8px 0',\r\n },\r\n '& .step-wrap': {\r\n position: 'relative',\r\n lineHeight: '25px',\r\n marginBottom: '12px',\r\n '& .todo-item': {\r\n position: 'relative',\r\n '&:before': {\r\n content: '\"\"',\r\n display: 'inline-block',\r\n position: 'absolute',\r\n zIndex: 0,\r\n left: '7px',\r\n top: '5px',\r\n width: 0,\r\n height: '100%',\r\n borderLeft: '2px solid #EBEBEB',\r\n },\r\n },\r\n '& .todo-item:last-child': {\r\n '&:before': {\r\n display: 'none',\r\n },\r\n },\r\n '& .step-icon': {\r\n overflow: 'visible !important',\r\n textDecoration: 'none !important',\r\n display: 'inline-block',\r\n background: '#fff',\r\n color: '#2daaf3',\r\n marginRight: '10px',\r\n position: 'relative',\r\n borderRadius: '50%',\r\n width: '16px',\r\n height: '16px',\r\n zIndex: 1,\r\n top: '2px',\r\n },\r\n '& .status-current .step-icon': {\r\n backgroundColor: '#C0DEF6',\r\n },\r\n '& .status-next .step-icon': {\r\n backgroundColor: '#fff',\r\n border: '2px solid #edebe9',\r\n },\r\n '& .status-complete': {\r\n color: '#797775',\r\n '& .step-icon': {\r\n '&:before': {\r\n content: '\"\\\\EC61\"',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n display: 'inline-block',\r\n fontWeight: 'normal',\r\n fontStyle: 'normal',\r\n fontSize: '16px',\r\n color: '#0078d4',\r\n },\r\n },\r\n },\r\n },\r\n '& .HelpTopic': {\r\n fontSize: '12px!important',\r\n lineHeight: '16px',\r\n },\r\n },\r\n '& .setup-conv-tracking-performance': {\r\n fontSize: '14px',\r\n color: '#323130',\r\n lineHeight: '20px',\r\n '& .performance-title': {\r\n color: '#333',\r\n fontWeight: 'bold',\r\n marginBottom: '8px',\r\n },\r\n '& .rba-detail-overview-item': {\r\n marginBottom: '8px',\r\n '& .rba-detail-desc-top': {\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n },\r\n '& .rba-detail-estvalue': {\r\n fontSize: '28px',\r\n lineHeight: '36px',\r\n fontWeight: 'bold',\r\n },\r\n },\r\n '& .performance-description': {\r\n color: '#000',\r\n },\r\n },\r\n '& .grid-column-suggestedBid': {\r\n '& .auto-bidding': {\r\n marginRight: '24px',\r\n },\r\n },\r\n '& .has-feedback .form-control-feedback': {\r\n position: 'absolute',\r\n left: 0,\r\n lineHeight: '35px',\r\n },\r\n '& .excluded-location-target-grid': {\r\n paddingLeft: 0,\r\n },\r\n },\r\n },\r\n '& .search-term-chart-container': {\r\n '& .advisor-chart': {\r\n '& .chart-tooltip': {\r\n padding: '8px',\r\n boxShadow: '0 3.2px 7.2px 0 rgba(0,0,0,.132), 0 0.6px 1.8px 0 rgba(0,0,0,.108)',\r\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\r\n '@supports (backdrop-filter: blur(60px))': {\r\n backdropFilter: 'blur(60px)',\r\n backgroundColor: 'rgba(255, 255, 255, 0.25)',\r\n },\r\n },\r\n '& .vnext-legend-labels-container': {\r\n paddingLeft: 10,\r\n paddingTop: 10,\r\n paddingRight: 10,\r\n paddingBottom: 5,\r\n '& ul': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n '& li': {\r\n minWidth: 60,\r\n marginBottom: '2px',\r\n flex: '1 1 auto',\r\n '& .legend-label': {\r\n height: 20,\r\n paddingLeft: '15PX !important',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'left',\r\n backgroundSize: '12px 20px',\r\n marginRight: 5,\r\n marginLeft: 5,\r\n marginTop: 1,\r\n cursor: 'pointer',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n },\r\n\r\n '& .legend-label.disabled': {\r\n opacity: '50%',\r\n },\r\n },\r\n '& li:nth-child(1) .legend-label.column': {\r\n backgroundImage: `url(\"${CircleSolidSmall}\")`,\r\n },\r\n '& li:nth-child(2) .legend-label.column': {\r\n backgroundImage: `url(\"${DiamondSolidSmall}\")`,\r\n },\r\n '& li:nth-child(3) .legend-label.column': {\r\n backgroundImage: `url(\"${TriangleDownSolidSmall}\")`,\r\n },\r\n '& li:nth-child(4) .legend-label.column': {\r\n backgroundImage: `url(\"${TriangleUpSolidSmall}\")`,\r\n },\r\n '& li:nth-child(5) .legend-label.column': {\r\n backgroundImage: `url(\"${SquareSolidSmall}\")`,\r\n },\r\n '& li:nth-child(6) .legend-label.column': {\r\n backgroundImage: `url(\"${CircleSolidSmallSecondary}\")`,\r\n },\r\n '& li:nth-child(7) .legend-label.column': {\r\n backgroundImage: `url(\"${DiamondSolidSmallSecondary}\")`,\r\n },\r\n '& li:nth-child(8) .legend-label.column': {\r\n backgroundImage: `url(\"${TriangleDownSolidSmallSecondary}\")`,\r\n },\r\n '& li:nth-child(9) .legend-label.column': {\r\n backgroundImage: `url(\"${TriangleUpSolidSmallSecondary}\")`,\r\n },\r\n '& li:nth-child(10) .legend-label.column': {\r\n backgroundImage: `url(\"${SquareSolidSmallSecondary}\")`,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (customparams, href, pathname, text) {pug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", href, true, true)+pug.attr(\"data-pathname\", pathname, true, true)+pug.attr(\"data-customparams\", customparams, true, true)+\" data-preventdefaultnavigation=\\\"true\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";}.call(this,\"customparams\" in locals_for_with?locals_for_with.customparams:typeof customparams!==\"undefined\"?customparams:undefined,\"href\" in locals_for_with?locals_for_with.href:typeof href!==\"undefined\"?href:undefined,\"pathname\" in locals_for_with?locals_for_with.pathname:typeof pathname!==\"undefined\"?pathname:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["portfolioBidStrategyTypeWithPilot","i18nMap","clearSelection","gridView","selection","_objectSpread","get","selected","trigger","set","PortfolioBidStrategyGridView","_DeterministicWrapper","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_ref","config","permissions","toolbarPlugin","aggregatedRowsPlugin","gridFactory","projectionGrid","vnext","use","perfMarkerPlugin","a11yPlugin","paginationPlugin","placeholderPlugin","uiBlockerPlugin","plugin","jsdataRawDataPlugin","columnChooserPlugin","projectionGridScopeNavigator","dateFilterPlugin","periodOverPeriodPlugin","segmentPlugin","projectionGridScrollbarPlugin","projectionGridFlexColumnResize","inlineDownloadWithoutFilterstatePlugin","IsReadOnlyUser","editablePlugin","this","grid","create","_this","e","radioButton","target","keyOfElement","includes","checked","toggleRadioButton","DeterministicWrapperView","BaseColumn","_ProjectionGridBaseCo","options","i18n","rowData","keys","_","property","ProjectionGridBaseColumn","BidStrategyNameColumn","_BaseColumn","_ref$inlineEditConfig","inlineEditConfig","onEditName","scope","name","title","_TL_","sortable","group","enableEdit","item","_permissions$dynamic","dynamic","CrossAccountPortfolio","_scope$values","values","cid","aid","Id","Owner","_ref3","_ref3$value","$total","Name","text","_this$scope$values","uid","pathname","customparams","concat","href","linkTemplate","apply","portfolioBidStrategyType","BidStrategyTypeColumn","option","helpId","_ref$value","Type","getString","bidStrategyStatus","BidStrategyStatusColumn","Status","AssociatedCampaignsColumn","AssociationCount","encodeURIComponent","portfolioCampaignType","portfolioCampaignTypeFromODataValue","CampaignTypeColumn","_ref2","_ref2$value","CampaignType","BidStrategyTargetCpaColumn","onEditTargetCpa","TargetCpa","decimal","fromFloatToString","BidStrategyTargetRoasColumn","onEditTargetRoas","format","TargetRoas","fromFloatToPercentString","BidStrategyTargetImpressionShareColumn","onEditTargetImpressionShare","TargetImpressionShare","OwnerColumn","Number","getColumnsAndColumnChooserConfig","_ref2$columnChooserPr","columnChooserPreferences","Columns","SelectedColumns","appState","builder","IsViewThroughConversionEnabled","IsCallMeteringAllowed","IsPartialConversionsEnabled","PartialConversions","IsColumnConversionEnabled","ColumnConversion","usePartialConversions","ColumnsConfigBuilder","addCategory","category","addColumns","addPerformanceCategoryForCampaign","addConversionsCategory","withPartialConversions","addCallDetailsCategoryForCampaigns","setLockedColumns","setSelectedColumns","ColumnClicks","ColumnImpressions","ColumnConversions","ColumnConversionsCredit","ColumnCPA","ColumnPartialConversionCPA","ColumnAdvertiserReportedRevenue","getBuilder","columnsConfig","getColumnsConfig","columnChooserConfig","getColumnChooserConfig","customToolbarIcon","PortfolioBidStrategyGridConfig","gridName","dataSource","query","edm","getDateFilter","setSegType","getSegType","preferenceService","DownloadView","filterService","s$i18n","perfMarker","globalConfig","blockerTarget","_getColumnsAndColumnC","p$daterange","dateFilter","Promise","resolve","ReportEmailRule","unset","pluginsConfig","appConfig","marker","a11y","pagination","availablePageSizes","pageNumberLabelText","pageSizeText","enableRandomPage","uiBlocker","el","placeholder","container","filteredEmptyText","columnChooser","editable","isForVNext","isOdataActionSource","addDateChangeListener","popColumns","segment","cellTemplates","PortfolioGridBidStrategyName","softDependencies","projectionGridScrollbar","scrollElementSelector","inlineDownload","isAvailable","gridId","schema","odataSchemas","tableName","tableClasses","tableAttributes","layout","columns","rows","headRows","single","scrolling","header","type","offset","$","height","attributes","role","virtualized","viewport","plugins","getStyles","_ref$palette","palette","portfolioTablePageContainer","padding","color","background","portfolioGridViewContainer","content","gridFlexStyle","mapKeyValue","object","fn","pairs","map","getFilterConfig","_ref8","preferenceStoreFactory","getGridView","entitySchema","rawSchema","properties","filterable","bidStrategyType","chooseType","enumType","enum","localized","_slicedToArray","_ref4","_ref5","_ref6","_ref7","PhonePerformanceMetrics","isPercentValue","maximum","$ref","cookSchema","filterConfig","getCommonFilterConfig","featureName","sessionStore","enableCampaignWaterfall","allowCampaignTypeWaterfall","searchbox","searchProperty","searchOperator","schemaProcessor","PortfolioBidStrategySchemaProcessor","FilterService","on","combinedFilter","filter","filterTargetRoas","Object","forEach","fromLocalToFloat","updateGridQuery","inlineEditProperty","ReloadGridWhenDateChange","React","props","reloadGrid","propTypes","PropTypes","isRequired","Wrapped","withDefaultStyles","classes","useContext","I18nContext","_jsx","className","description","children","LearnMoreLink","topic","linkText","marginTop","marginBottom","paddingLeft","whiteSpace","underlineLinkStyle","PortfolioBidStrategySummary","_React$PureComponent","getRawDateFilter","WaterfallFilterType","DateFilter","getCookedDateFilter","serverContext","rawDateFilter","waterfallDateFilterProcessor","putil","backboneGridView","_ref$resetSelection","length","undefined","resetSelection","refresh","renderFilterViewManager","renderGrid","renderLazyGrid","p$componentMount","setComponentMounted","_props$legacyDeps","legacyDeps","getSegPreference","fetchPaginationConfig","campaignCacheManager","p$preferenceConfig","services","then","paginationConfig","pageSize","orderbyInfo","sortableHeader","result","orderby","getGridPreferences","invalidate","_this$props","_this$props$legacyDep","toolbarSelectedConfig","toolbarUnselectedConfig","updateToolbar","resetToolbarVisibility","toolbarEditor","getToolbarEditor","toolbarConfig","FilterViewManagerWithGlobalFilterContext","update","_this$props2","showTopGridPanel","panelView","TopGridPanel","_jsxs","renderToolbarContainer","isMultiPage","_this2","LazyGrid","all","preferenceConfig","default","_this$props3","_this$props3$legacyDe","jsdata","handleSortChange","onGridInjected","crossPageSelectPlugin","currentAccount","getEntityFromScope","entity","PortfolioBidStrategy","entitySet","PortfolioBidStrategies","$call","gridDataParameters","position","newPosition","fieldName","InlineEditableColumnPrompt","saveModel","updated","editorView","id","payload","pick","catch","error","errorMessage","localizeApiError","setErrors","_defineProperty","finally","withUiBlock","$el","minValue","NumberRange","targetCpa","maxValue","control","targetCpaInlineEditorView","curTargetCpa","currencySymbol","getCurrencySymbol","PageContext","AccountCurrencyCode","currencySymbolClassName","model","cloneDeep","targetRoasInlineEditorView","curTargetRoas","toFixed","fields","valueProperty","targetImpressionShareInlineEditorView","curTargetImpressionShare","curTargetAdPosition","TargetAdPosition","targetAdPositionInlineEditorView","PopupEditor","hasLabels","template","parentContainerSelector","inlineEditFactory","select","validateOrder","finalConfig","aggregatedRowsPluginBuilder","overallI18nKey","filteredI18nKey","waterfallFilterI18nKey","customConfig","showSearchRow","showAudienceRow","showNativeRow","showDeletedRow","getCombinedFilter","changes","toolbarAction","router","getRouterDep","onDeletePortfolio","portfolioId","destroy","notificationApi","showWarning","onEditPortfolio","navigateToRoute","toolbarActionFactory","deselectAll","StyledGridViewWrapper","_this$props4","forceResetScrollFlag","DescriptionBanner","StyledTablePageContainer","topOfGridContent","renderTopContent","stickyTopOfGridContent","renderStickyTopContent","customClasses","tablePageContainer","gridViewContainer","scrollToTop","disableFooter","shouldIncludeInlineEditPopup","timeZone","CurrentAccount","TimeZone","defaultProps","withI18nConsumer","withLegacyDeps","withPreference","withScope","withPermissions","withServerContext","withGlobalFilter","Comp","withTablePageStateManager","getToolbarConfig","showTopOfGridPanel","lazyInject","withSelectedId","actionName","_lazyInject","selectedItems","portfolioIds","pairsToMap","iconLeftGlyphName","menu","items","onClick","creationView","PortfolioBidStrategyCreationPanel","displayMode","PortfolioBidStrategyPanelDisplayMode","CreationPanel","portfolioType","onSuccess","onPartialSuccess","onCancel","VIEW_TYPES","SUMMARY","DETAILS","HISTORY","AUTO_APPLY_SETTINGS","AUTO_APPLY_BULK_UPLOAD","getRecommendationsAutoApplyBulkUploadPageStyles","pageContainer","assign","getCommonStyles","statusStyle","helpbuttonStyle","extend","glyphIconStyle","uiblockerStyle","getApplyFormStyles","getFeedbackModalStyles","getHistoryGridStyles","marginLeft","marginRight","borderBottomStyle","backgroundColor","white","zIndex","borderBottomWidth","borderBottomColor","borderTopWidth","borderTopColor","lineHeight","top","verticalAlign","fontWeight","display","alignItems","width","minWidth","borderStyle","fontSize","getHistoryHeaderStyles","neutralLighter","borderBottom","flexDirection","fontFamily","themeDarkAlt","fontStyle","getRecommendationsHistoryPageStyles","getCustomGridStyles","contextualAttributeStyle","left","border","boxShadow","float","minHeight","getSummaryPageStyles","margin","justifyContent","img","gridRow","gridColumn","maxWidth","borderRadius","transformStyle","themePrimary","gridTemplateColumns","gridTemplateRows","paddingTop","paddingRight","getHeaderStyles","borderTop","overflow","textOverflow","green","textAlign","wordBreak","textShadow","transform","bottom","crudAdStyle","fontDize","paddingBottom","boxSizing","opacity","borderRight","getDetailPageStyles","right","alignSelf","neutralPrimary","neutralSecondary","textDecoration","borderLeft","getEstimateTileStyles","fallbacks","M","getFeedbackPopupStyles","outline","getTeachingBubbleStyles","outlineColor","borderColor","flexStyle","flex","getRecommendationsPageStyles","keywordPlannerStyle","searchboxStyle","overflowY","cursor","flexShrink","orange","textTransform","flexFlow","adEditorPanelOverrideStyle","getPathNamePrefix","isMCC","getSearchQuery","currentSearch","_ref$keepType","keepType","_ref$recsrc","recsrc","queryString","recommendationType","adGroupId","campaignId","accountId","levelAt","levelAtConstant","ADGROUP","CAMPAIGN","omit","ACCOUNT","CUSTOMER","viewHistory","history","push","search","location","viewSettings","isRecommendationSettings","viewUET","window","open","viewCategory","backToRecommendation","previousRoute","lastCategoryType","substring","lastIndexOf","RECOMMENDATION_CATEGORIES","ALL","viewSummary","viewDetails","validDetailPage","data","viewBAADetails","CHANNEL_TYPES","MCCRECOMMENDATION","legacyRouter","_bingads_webui_component_legacy_legacy_router_index","competitionTabI18n","globalLegacyI18n","legacyDepsList","CampaignEditor","SearchBidView","BiddingStrategyView","dataManager","instrumentation","preferencesService","pageContext","Constants","constants","odata","CreateKeywordView","UrlEditor","TrackingTemplate","testUurl","uurlLevels","validator","cacheManager","getDeps","deps","importFreqColDataToTemplate","importScheduleConstants","recommendationsPromise","odataPath","host","indexOf","scenario","setting","activity","getRecommendationPageFastStyle","globalStyles","merge","_toConsumableArray","theme","_len","styles","Array","_key","resolvedStyles","s","isFunction","some","isEmpty","Error","resolveStyles","Recommendations","createPage","recommendationTabContainer","RecommendationTab","addScenario","currentScenario","loadRecommendationTab","currentActivity","RecommendationTabWithData","withGetSummary","withCoupon","RecommendationTabView","WrappedComponent","showAlertHandler","App","views","alertCenter","show","bind","HoC","displayName","getDisplayName","hoistNonReactStatics","withAlertHandler","withRouter","withNavigation","withCcJsData","withServices","scopeChanged","previousQueryParams","currentQueryParams","removeRecommendationRelatedQueryParam","queryParams","detailValid","isToRecommendationPage","startsWith","recommendationGuid","generateGuid","RecommendationViewLazyWrap","prevProps","categoryType","viewType","recommendationCustomizedDataFilterFunc","newCampaignType","getFilteredCampaignTypeFromRawFilter","channel","RECOMMENDATION","advertiserCustomerId","AdvertiserCustomerID","userId","CurrentUser","customerId","token","Token","CHANNEL_ALL_RECOMMENDATIONS","vnextDeps","customMapperStore","recommendationDataStore","getCrossPageSelectPlugin","getToolbarPlugin","newI18n","ToolbarContainer","GoalCreationRecommendationWizard","eventDispatcher","Fragment","classNames","style","fallback","ProgressiveLoadingBlock","campaignType","guid","currentCampaign","currentAdGroup","StyledRecommendations","withDelayedStyles","getDelayedStyles","StyledRecommendationHistory","StyledRecommendationAutoApplyBulkUpload","getIconStyles","budgetStyle","borderWidth","colorGrey","detaultFontSize","getInlineViewStyles","adEditorOverrideStyle","newAdsStyle","_ref3$iconFontFamily","iconFontFamily","alertOverrideStyle","adCustomizersStyle","locationMapStyle","maxHeight","dynamicSearchAdsStyle","crudKeywordStyle","neutralLight","repairKeywordsStyle","_ref$iconFontFamily","wordWrap","order","pointerEvents","W","getAdExtensionStyle","convertToLocalStyle","extensionEditorStyles","messageBarStyle","convertToGlobalStyle","selectElementStyle","scrollbarStyle","getAdExtensionEditorStyles","webkitTransform","backgroundSize","getFixAdDestinationStyle","getFixConversionGoalSettingStyle","themeDarker","textDecorationLine","themeLighter","borderTopStyle","blue","animation","borderLeftColor","borderRightColor","listStyle","overflowWrap","backdropFilter","flexWrap","backgroundRepeat","backgroundPosition","backgroundImage","CircleSolidSmall","DiamondSolidSmall","TriangleDownSolidSmall","TriangleUpSolidSmall","SquareSolidSmall","CircleSolidSmallSecondary","DiamondSolidSmallSecondary","TriangleDownSolidSmallSecondary","TriangleUpSolidSmallSecondary","SquareSolidSmallSecondary","pug","module","exports","locals","pug_interp","pug_html","locals_for_with","attr","escape","call"],"sourceRoot":""}