{"version":3,"file":"script/bundle-20.1279d47685.js","mappings":"uoDAmBA,MAAMA,EAAoB,0BAmBpBC,EAAaC,IACf,OAAQA,GACJ,IAAK,SACD,MAAO,MACX,IAAK,UACL,IAAK,OACD,MAAO,MACX,QACI,MAAO,OACf,EAwGJ,EArGcC,EAAAA,YAAgD,SAAcC,EAQxEC,GACF,IAPeC,EAAiBF,EAA1BG,QACAC,EAAIJ,EAAJI,KACAC,EAAQL,EAARK,SACSC,EAAYN,EAArBO,QACGC,EAAUC,EAAAT,EAAAU,GAIjB,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAkBC,EAAAA,EAAAA,KAClBC,GAAcC,EAAAA,EAAAA,GAAeC,EAAAA,IAC7BC,GAAUF,EAAAA,EAAAA,GAAeG,EAAAA,KAA0B,CAAC,EACpDC,IACDJ,EAAAA,EAAAA,IAAgBK,GAAUA,EAAMC,YAAYF,0BACzCG,EAAAA,MACHR,EACCS,GAA8BC,EAAAA,EAAAA,GAChC,0BAEEC,GAA+BD,EAAAA,EAAAA,GACjC,2BAEEE,EAAkB,IAAIC,IAAIxB,QAAAA,EAAQ,GAAIR,GAExC8B,EACAC,EAAgBE,aAAaC,IAAI,OAAQ,KAClCN,GACPG,EAAgBE,aAAaC,IAAI,OAAQ,KAG7C,MAAMC,GAAiBC,EAAAA,EAAAA,GAAkB,CACrCC,QAASpB,EACTqB,MAAOP,EACP7B,OAAQD,EAAUW,EAAWV,QAC7BI,oBACAa,cACAG,YAEEiB,GAA2BC,EAAAA,EAAAA,cAC5BC,KACGC,EAAAA,EAAAA,KAEA3B,GAAc4B,EAAAA,EAAAA,OACVjC,GAAcA,EAAa+B,EAAI,GAEvC,CAAC1B,EAAUL,IAITkC,EADuB,CAAC5C,EAAmBiB,aAAe,EAAfA,EAAiB4B,QACvBC,SAASf,EAAgBc,QAG9DE,EAhFaC,EAACC,EAAUzC,IAHJ0C,EAACD,EAAUzC,OACnCyC,EAAIE,MAAyB,MAAjBF,EAAIG,UAAqB5C,SAAAA,EAAM6C,WAAW,OAGpDH,CAAsBD,EAAKzC,GAAe,GAAEyC,EAAIK,SAASL,EAAIE,OACzD,GAAEF,EAAIG,WAAWH,EAAIK,SAASL,EAAIE,OA8EtBH,CAAejB,EAAiBvB,GAEpD,GAAIgB,GAA0BoB,EAC1B,OAAQT,GACJ,KAAKoB,EAAAA,EAAeC,kBAEhB,OACIC,EAAAA,EAAAA,KAACC,EAAAA,EAAQC,EAAAA,EAAA,CACLnD,KAAMuC,EACNa,UAAQ,EACRjD,QAAS4B,EACTsB,IAAKxD,EACL,iBAAe,aACXO,GAAU,IAAAH,SACbA,KAGb,KAAK8C,EAAAA,EAAeO,sBAEhB,OACIL,EAAAA,EAAAA,KAACM,EAAAA,GAAIJ,EAAAA,EAAA,CACDK,GAAIjB,GACAnC,GAAU,IACdD,QAAS4B,EACT,iBAAe,wBACfsB,IAAKxD,EAAaI,SACjBA,KAMrB,MAAMwC,EAAML,EAAgBG,EAAchB,EAAgBkC,WAC1D,OACIR,EAAAA,EAAAA,KAAA,IAAAE,EAAAA,EAAAA,EAAA,CACInD,KAAMyC,EACNtC,QAASD,GA/GMuC,IACN,qBAAjBA,EAAIiB,SACE,CAAEC,eAAgB,cAClB,CAAC,EA6GKC,CAAkBrC,IAClBnB,GAAU,IACdiD,IAAKxD,EACL,iBAAe,SAAQI,SACtBA,IAGb,G,sPC3IO,MAAM4D,EAAkB,CAC3BC,YAAa,CACTC,IAAK,kBACLC,QAAS,cACTC,OAAQ,KAEZC,YAAa,CACTH,IAAK,kBACLC,QAAS,qBACTC,OAAQ,MAIHE,EAA4B,CACrCC,eAAgB,CACZL,IAAK,yBACLC,QAAS,QACTC,OAAQ,IAEZI,eAAgB,CACZN,IAAK,yBACLC,QAAS,KACTC,OAAQ,IAEZK,aAAc,CACVP,IAAK,+BACLC,QAAS,SACTC,OAAQ,IAEZM,kCAAmC,CAC/BR,IAAK,0BAA4BS,EAAAA,GAAgBC,mBACjDT,QAAS,QACTC,OAAQ,IAEZS,gCAAiC,CAC7BX,IAAK,0BAA4BS,EAAAA,GAAgBG,iBACjDX,QAAS,QACTC,OAAQ,IAEZW,6BAA8B,CAC1Bb,IAAK,0BAA4BS,EAAAA,GAAgBK,cACjDb,QAAS,QACTC,OAAQ,IAEZa,+BAAgC,CAC5Bf,IAAK,0BAA4BS,EAAAA,GAAgBO,gBACjDf,QAAS,QACTC,OAAQ,KAIHe,EAA+B,+BAC/BC,EAAsB,kBACtBC,EAAgB,gBAIhBC,EAAyB,yBAEzBC,EAA0B,kCAE1BC,EAAmB,mBAOnBC,EAAU,SACVC,EAAiB,iBAIjBC,EAAoB,oBACpBC,EACT,kCACSC,EACT,6CACSC,EACT,sCACSC,EAA2B,wBAC3BC,EAAkB,kBAClBC,EAAiB,iBACjBC,EAAuB,uBAiBvBC,EAAoB,CAC7BC,UAAW,EACXC,YAAa,EACbC,WAAY,EACZC,UAAW,GAGFC,EAA8B,8BAC9BC,EACT,sCAOSC,EAAsB,CAC/B,CAACtB,GAAsBe,EAAkBC,UACzC,CAACd,GAAyBa,EAAkBC,UAC5C,KAAQD,EAAkBC,UAE1B,CAACT,GAAoBQ,EAAkBE,YAEvC,CAAClB,GAA+BgB,EAAkBG,WAClD,CAACtC,EAAgBC,YAAYC,KAAMiC,EAAkBG,WACrD,CAACtC,EAAgBK,YAAYH,KAAMiC,EAAkBG,WACrD,CAACjB,GAAgBc,EAAkBG,WACnC,gBAAiBH,EAAkBG,WACnC,eAAkBH,EAAkBG,WACpC,eAAkBH,EAAkBG,WACpC,qBAAsBH,EAAkBG,WACxC,CAAChC,EAA0BE,eAAeN,KACtCiC,EAAkBG,WACtB,CAAChC,EAA0BC,eAAeL,KACtCiC,EAAkBG,WACtB,CAAChC,EAA0BG,aAAaP,KAAMiC,EAAkBG,WAChE,mBAAsBH,EAAkBG,WACxC,CAACf,GAA0BY,EAAkBG,WAC7C,EAAKH,EAAkBG,WACvB,CAACd,GAAmBW,EAAkBC,UACtC,aAAgBD,EAAkBG,WAClC,qBAAwBH,EAAkBG,WAC1C,mBAAsBH,EAAkBG,WACxC,gBAAmBH,EAAkBG,WACrC,4BAA+BH,EAAkBG,WACjD,CAACb,GAAUU,EAAkBG,WAC7B,CAACZ,GAAiBS,EAAkBG,WACpC,sCAAuCH,EAAkBG,WACzD,CAAChC,EAA0BI,kCAAkCR,KACzDiC,EAAkBG,WACtB,CAAChC,EAA0BO,gCAAgCX,KACvDiC,EAAkBG,WACtB,CAAChC,EAA0BS,6BAA6Bb,KACpDiC,EAAkBG,WACtB,CAAChC,EAA0BW,+BAA+Bf,KACtDiC,EAAkBG,WACtB,CAACV,GAAkCO,EAAkBG,WACrD,CAACT,GAAuCM,EAAkBG,WAC1D,CAACR,GAAgCK,EAAkBG,WACnD,CAACE,GAA8BL,EAAkBG,WACjD,CAACG,GAAsCN,EAAkBG,WACzD,mCAAmCH,EAAkBG,WACrD,CAACP,GAA2BI,EAAkBG,WAC9C,CAACN,GAAkBG,EAAkBG,WACrC,mBAAsBH,EAAkBC,UACxC,sBAAyBD,EAAkBC,UAC3C,gBAAyBD,EAAkBC,UAC3C,mBAA4BD,EAAkBC,UAC9C,oBAAuBD,EAAkBC,UACzC,uBAA0BD,EAAkBC,UAC5C,oBAAuBD,EAAkBC,UACzC,uBAA0BD,EAAkBC,UAC5C,+BAAkCD,EAAkBC,UACpD,CAACH,GAAiBE,EAAkBG,WACpC,CAACJ,GAAuBC,EAAkBG,YAGjCK,EAA0BR,EAAkBG,WAgBrDtC,EAAgBK,YAAYH,IAC5BF,EAAgBC,YAAYC,G,iECxMhC,MAKM0C,EACFC,EAAAA,KAAavF,EAAAA,GACN,GANPwF,EAAAA,GACMC,QAAQC,IAAIC,uCACZC,OAAOC,SAAS3E,oBAKhB4E,EAAAA,EAASR,UAEnB,GACIS,6BACIT,EAAY,2CAChBU,mBAAoBV,EAAY,kCAChCW,cAAeX,EAAY,sBAC3BY,kBAAmBZ,EAAY,6BAC/Ba,uBAAwBb,EAAY,iCACpCc,kBAAmBd,EAAa,wCAChCe,4BACIf,EAAY,4DAChBgB,yBACIhB,EAAY,yDAChBiB,mBACIjB,EACA,6DACJkB,kCACIlB,EAAY,0CAChBmB,uBAAwBX,EAAAA,EAASY,wBACjCC,sCACIrB,EAAY,uDAChBsB,iDACItB,EAAY,yDAChBuB,0BACIvB,EAAY,4CAChBwB,OAAQ,UACRC,QAASzB,EACT0B,IAAMC,GACF3B,EAAY,wCAA0C2B,EAC1DC,IAAMD,GACF3B,EAAY,uCAAyC2B,EACzDE,YAAcF,GACV3B,EACA,+CACA2B,EACJG,eAAiBH,GACb3B,EAAY,0CAA4C2B,EAC5DI,qBAAsB,iBACtBC,yBAA0B,+B,8CClD9B,SACIC,QAAS,0B,mFCDN,MAAMC,EAAiB,MACjBC,EAAkB,KAClBC,EAAoB,GAIpBC,EAA6C,IAApBD,EACzBE,EAAyB,G,ksECoB/B,MAEDC,EACFA,CACIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAEJ,SACIC,EACAC,GAGA,GACuB,iBAAZD,GACPA,EAAQE,SAASC,EAAAA,KACjBL,EAEA,MAAM,IAAIM,MACL,4DAA2DJ,oCAEnE,QAAAK,EAAAC,UAAA7F,OAVE8F,EAAI,IAAAC,MAAAH,EAAA,EAAAA,EAAA,KAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAJF,EAAIE,EAAA,GAAAH,UAAAG,GAWP,MAAMC,EAAchB,EAChBM,EACArG,EAAAA,EAAA,GACKsG,GAAO,IAAEU,IAAKf,EAAUC,gCAC1BU,GAWP,OATIpD,EAAAA,IACAyD,EACIZ,EACAC,EACAL,EACAH,EACAE,GAGDI,EAAkCC,EAAUU,CACvD,EAEEG,EAAwBC,GACZ,OAAVA,GACG,CAAC,IAAK,OAAQ,IAAIhI,SAASgI,GAczBC,EAAgBA,KACzB,MAAMpB,GAAiBqB,EAAAA,EAAAA,MAChBC,EAAoEC,GAA5BC,EAAAA,EAAAA,GAAS,oBAAmB,GAAhC,GACrCpB,EAAkCc,EACpCI,GAEErB,GAAWwB,EAAAA,EAAAA,GAAYC,EAAAA,IAGvBxB,IADFuB,EAAAA,EAAAA,IAAa3J,IAAgB,IAAA6J,EAAA,OAAiB,QAAjBA,EAAK7J,EAAM8J,cAAM,IAAAD,OAAA,EAAZA,EAAcE,eAAe,KAAK,IACvB1I,SAAS8G,GAC1D6B,GAA2BC,EAAAA,EAAAA,GAAeC,EAAAA,IAAlCjC,EAAC+B,EAAD/B,EAAGkC,EAAKH,EAALG,MAAOC,EAAIJ,EAAJI,KACZC,EAAgC3L,EAAAA,SAClC,IACIqJ,EACIqC,EACAnC,EACAC,EACAC,EACAC,GACA,EACAE,IAER,CACIF,EACAgC,EACAnC,EACAC,EACAC,EACAG,IAGR,MAAO,CAAEL,EAAGkC,EAAQE,EAAW,IAAM,MAAOD,OAAM,EAGhDjB,EAA6B,SAC/BZ,GAMC,IALDC,EAAOK,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EACXV,EAAgBU,UAAA7F,OAAA,EAAA6F,UAAA,QAAAyB,EAEhBF,EAASvB,UAAA7F,OAAA,EAAA6F,UAAA,QAAAyB,EACTpC,EAA8BW,UAAA7F,OAAA,EAAA6F,UAAA,QAAAyB,EAE9B,MAAAC,EAA4BH,EAAKI,WAAWC,eACxClC,EACAC,GAFI1F,EAAGyH,EAAHzH,IAAK4H,EAAUH,EAAVG,WAIPC,EAAYD,EAAWA,EAAW1H,OAAS,GACjD4H,EAA8BR,EAAKI,WAAWK,QAAQ/H,EAAGZ,EAAAA,EAAA,GAClDsG,GAAO,IACVU,IAAKf,EACL2C,GAAIH,KAHAI,EAAGH,EAAHG,IAOR7C,EAAeyC,EAPUC,EAAZI,cAKyBzC,EAEGwC,EAC7C,EAOO,SAASE,EAGZC,GAEA,SAASC,EACLC,GAEA,MAAQnD,EAAMqB,IAANrB,EACR,OAAOjG,EAAAA,EAAAA,KAACkJ,EAAgBhJ,EAAA,CAAC+F,EAAGA,GAAOmD,GACvC,CAKA,OAHAD,EAAeE,YAAe,kBAC1BH,EAAiBG,aAAeH,EAAiBI,OAE9CH,CACX,CA8BO,MAAMI,EAAqBA,KAIvB,CACHpD,UAJsBwB,EAAAA,EAAAA,GAAYC,EAAAA,MAW7B4B,EAAkBA,KAC3B,MAAMC,GAAoB9B,EAAAA,EAAAA,GAAYC,EAAAA,IAMtC,MAAO,CACH8B,gBANiBC,EAAAA,EAAAA,SAAO,SACxBnK,GAEA,OAAOkK,EAAAA,EAAAA,IAAelK,EAAKiK,EAC/B,IAEiCG,QAChC,EAUQC,EAAST,IAClB,MAAMlD,GAAiBqB,EAAAA,EAAAA,MACjBpB,GAAWwB,EAAAA,EAAAA,GAAYC,EAAAA,IACtBJ,EAAoEC,GAA5BC,EAAAA,EAAAA,GAAS,oBAAmB,GAAhC,GACrCpB,EAAkCc,EACpCI,GAIEpB,IADFuB,EAAAA,EAAAA,IAAa3J,IAAgB,IAAA8L,EAAA,OAAiB,QAAjBA,EAAK9L,EAAM8J,cAAM,IAAAgC,OAAA,EAAZA,EAAc/B,eAAe,KAAK,IACvB1I,SAAS8G,GAC1D4D,GAA2B9B,EAAAA,EAAAA,GAAeC,EAAAA,IAAlCjC,EAAC8D,EAAD9D,EAAGkC,EAAK4B,EAAL5B,MAAOC,EAAI2B,EAAJ3B,KACV7B,EAAgC6C,EAAhC7C,QAASvJ,EAAuBoM,EAAvBpM,SAAUgN,EAAaZ,EAAbY,SACrB3B,EAAW3L,EAAAA,SACb,IACIqJ,EACIqC,EACAnC,EACAC,EACAC,EACAC,GACA,EACAE,IAER,CACIF,EACAgC,EACAnC,EACAC,EACAC,EACAG,IAMR,IAAKC,EACD,MAAM,IAAII,MAAM,oDAEpB,IAAKJ,EAAQE,SAASC,EAAAA,IAClB,MAAM,IAAIC,MACL,8DAA6DJ,MAGtE,GAAIvJ,EACA,MAAM,IAAI2J,MACL,gEAA+DJ,wBAGxE,GAAIyD,EACA,MAAM,IAAIrD,MACN,kEAGR,OAAKwB,GAGEnI,EAAAA,EAAAA,KAACiK,EAAAA,EAAc/J,EAAA,CAAC4I,GAAIoB,EAAAA,GAAajE,EAAGoC,GAAce,KAF9CpJ,EAAAA,EAAAA,KAAAmK,EAAAA,SAAA,CAAAnN,SAAE,OAEqD,C,2GC5OjE0G,EAAAA,IA5BY0G,MAGb,IAFAC,EAAAA,EAAAA,GAAQrG,EAAAA,GAEJA,EAAAA,EAAU,CACV,MAAMsG,EAAStG,EAAAA,EAASsG,OAAOC,MAAM,KAAK,GAC1C,IAAIC,EAEAA,GADAC,EAAAA,EAAAA,IAAYH,EAAQtG,EAAAA,IACL0G,EAAAA,EAAAA,IAAc1G,EAAAA,GAEd,uIACV2G,MAAMC,GAAeA,EAAW7J,QAAQiD,EAAAA,KACxC2G,MAAK,KAAME,EAAAA,EAAAA,IAAWP,EAAQtG,EAAAA,KAC9B2G,MAAMG,IACCA,IACAC,EAAAA,EAAAA,IAAUD,EAAc9G,EAAAA,EAEtB,IAGlBwG,EACKG,MAAK,KACF7G,OAAOkH,SAASC,KAAKC,aAAa,qBAAsB,OAClD,IAETC,MAAMC,EAAAA,GACf,GAIAhB,E,kGC5CJ,IAAIiB,EAAe,KAEZ,MCKMC,EAA4B3O,IAAmC,IAAhC4O,EAAS5O,EAAT4O,UACxC,IADiE5O,EAAd6O,eAE/C,OAGJ,MAAMC,EDVsBF,KAC5B,GAAI7H,EAAAA,GACA,MAAM,IAAIiD,MAAM,+BAMpB,OAJK0E,IAEDA,EAAe,IAAIK,EAAAA,GAAgBH,GAAW,IAE3CF,CAAY,ECEJM,CAAgBJ,GAC/B,IAAIK,GAAU,EACdH,EAAOI,GAAG,kBAAkBC,UAAgBC,EAAPC,SAElBJ,EAEXA,GAAU,GAKdA,GAAU,EAEVH,EAAOQ,aACPR,EAAOS,UAAS,IAEpBT,EAAOU,iBAAiB,uBAAwBC,IAC5CC,EAAAA,EAAAA,IAAuBD,EAAKE,OAAQF,EAAKG,uBAE7Cd,EAAOU,iBAAiB,sBAAuBC,IAC3CI,EAAAA,EAAAA,IAAsBJ,EAAKE,UAE/Bb,EAAOU,iBAAiB,kBAAmBC,IACvCK,EAAAA,EAAAA,IAAkBL,EAAKE,OAAQF,EAAKM,SAExCjB,EAAOU,iBAAiB,iBAAkBC,IACtCO,EAAAA,EAAAA,IAAiBP,EAAKE,OAAQF,EAAKM,SAEvCjB,EAAOU,iBAAiB,kBAAmBC,IACvCQ,EAAAA,EAAAA,IAAkBR,EAAKE,UAE3Bb,EAAOU,iBAAiB,8BAA+BC,IACnDS,EAAAA,EAAAA,IAA8BT,EAAKE,OAAQF,EAAKU,mBAEpDrB,EAAOsB,KAAK,SAAS,E,kEC7ClB,MCGM1C,EAAU1N,IAIP,IAHZqQ,EAAgBrQ,EAAhBqQ,iBACAC,EAAUtQ,EAAVsQ,WACAC,EAAQvQ,EAARuQ,SDN2BC,OCQ3BC,EAAAA,EAAAA,MACAC,EAAAA,EAAIC,iBACJC,EAAAA,EAAAA,KAEIP,IDZuBG,ECaRH,EDZnBQ,IAAAA,OAAaL,GACbK,IAAAA,OAAaC,KACbD,IAAAA,OAAaE,MCaTT,GACA3B,EAA0B,CACtBC,UAAW0B,EACXzB,iBAAkB0B,GAE1B,C,qGCvBJ,SAASzC,EAAYH,EAAQtG,GACzB,MAAQ2J,EAAoB3J,EAApB2J,gBACR,OAAQrD,GACJ,IAAK,yBACL,IAAK,oBACL,IAAK,UACL,IAAK,cACL,IAAK,eACD,OAAO,EAEX,QACI,OAAOqD,EAEnB,CAEA7B,eAAepB,EAAc1G,GAIzB,aAHqB,gIAGPjD,QAAQiD,EAC1B,CAEA8H,eAAejB,EAAWP,GACtB,OAAQA,GAGJ,IAAK,iBACL,IAAK,UACL,IAAK,OACL,IAAK,MACL,IAAK,MACD,aAAa,+HAIzB,CAEA,SAASS,EAAUT,GAAuB,IAAftG,EAAQ6C,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAInC,OAHKyD,EAAOvJ,SACR6M,QAAQC,MAAO,sBAAqBvD,+BAEjCA,EAAOvJ,QAAQiD,EAC1B,CAEA,MAAMoH,EAAqByC,IAAUC,EAAAA,EAAAA,GAAOD,E,gEC9CrC,MAAME,EAAkCC,GAC3CA,SAEkC,OAAlCA,EAAgBC,cAOPC,EAAwBF,IAChCD,EAA+BC,IACE,OAAlCA,EAAgBC,cAMPE,EAA2BA,CAACC,EAAOC,KAC3CD,GAAS,MAAME,iBAAmBD,GAAU,MAAMC,a,iiCCFhD,MAAMC,EAAc,SACvBC,EACAC,GAES,IADTC,EAA2C7H,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE/C,MAAM8H,EAASF,GAAe,QAgBxBjI,EAAOtG,EAAAA,EAAA,GAf8B,CACvC0O,MAAO,WACPC,SAAU,MACVC,kBAAmB,MACnBC,gBACIJ,EAAO/O,WAAW,OACsB,SAAvC8O,EAAgBG,UAAY,QACoB,SAAhDH,EAAgBI,mBAAqB,OAChC,SACA,OACVE,aAAa,EACbC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAS,IAINT,GAEP,IAAIU,EAAiC,iBAAVZ,EAAqBa,SAASb,GAASA,EAElE,GAAIhI,EAAQ2I,QAAS,CACjB,MAAMG,EAA2BC,KAAKC,IAClC,GACAhJ,EAAQ0I,uBAEZE,EACIG,KAAKE,KAAKL,EAAgBE,GAC1BA,CACR,CAEA,IAAKI,EAAsC,CAKvC,MAAQ,GAAEN,KAHsB,SAA5B5I,EAAQuI,iBAAmD,QAArBvI,EAAQqI,SACxC,KACArI,EAAQqI,UAEtB,CAEA,MAAMc,EAAiBP,EAAcQ,eAAejB,EAAQnI,GAC5D,OAAOqJ,EAAAA,EAAAA,IAA2BF,EACtC,EA0BA,MAAMD,EAvBN,WACI,IACII,OAAO,GAAGF,eAAe,IAC7B,CAAE,MAAOG,GACL,OACU,OAANA,GACa,iBAANA,GACP,SAAUA,GACC,eAAXA,EAAEzG,IAEV,CACA,OAAO,CACX,CAYI0G,MAPoB,iBAATC,OACPA,MAC6B,mBAAtBA,KAAKC,a,kFCtFb,MAAMC,EAAwBnD,QACZ1E,IAArB0E,GAAqE,OAAnCA,EAAiBiB,cAE1CmC,EAA8BpC,IAEnB,CAChBqC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OANIzC,aAAe,EAAfA,EAAiBC,gBAAiB,OAQnB,MAGlByC,EAAqCC,IAE3B,CACfC,GAAI,KACJC,GAAI,KACJN,GAAI,KACJC,GAAI,KACJC,GAAI,OANIE,aAAY,EAAZA,EAAc1C,gBAAiB,OAQjB,MAGjB6C,EAA8BH,IAEpB,CACfE,GAAI,KACJN,GAAI,KACJC,GAAI,KACJC,GAAI,OALIE,aAAY,EAAZA,EAAc1C,gBAAiB,OAOjB,MAGjB8C,EAA4BA,CAAC3C,EAAOC,KAC5CD,GAAS,MAAME,iBAAmBD,GAAU,MAAMC,a,klCC1BhD,MAAM0C,EAA6BA,IACtCC,IAMSC,EAAuCA,IAChDD,EAAmC,CAAE9B,SAAS,IAcrCgC,EAAqCA,IAC9CF,EAAmC,CAAErC,MAAO,YAsB1CqC,EAAqC,WAMA,IAAAtU,EAAAkK,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAP,CAAC,EAACuK,EAAAzU,EALlC0U,WAAAA,OAAU,IAAAD,GAAOA,EACjBxC,EAAKjS,EAALiS,MACAO,EAAOxS,EAAPwS,QACAmC,EAAW3U,EAAX2U,YACAC,EAAW5U,EAAX4U,YAEA,MAAQpL,GAAaoD,EAAAA,EAAAA,KAAbpD,SACF2I,GAAoBnR,EAAAA,EAAAA,GAAe6T,EAAAA,IAEzC,OAAOzS,EAAAA,EAAAA,cACFyP,IACGD,EAAAA,EAAAA,GACI8C,EAAavC,EAAkB2C,KAAO3B,OAAOtB,GAASA,EACtDrI,EAAQjG,EAAAA,EAAA,CAEJ2O,SAAUC,EAAkB4C,KAC5BzC,2BACoB3G,IAAhBgJ,EACMxC,EAAkB6C,SAClBL,EACVpC,2BACoB5G,IAAhBiJ,EACMzC,EAAkB6C,SAClBJ,GACN3C,EAAQ,CAAEA,SAAU,CAAC,GACrBO,EAAU,CAAEA,WAAY,CAAC,KAGzC,CACIkC,EACAlL,EACA2I,EACAK,EACAP,EACA0C,EACAC,GAGZ,C,oFC7FO,MAAMK,UAAiCC,gBACvC,MAAMC,UAAsBD,gBAEnC,MAAME,GAAsBrO,EAAAA,GAMrB,MAAMgI,EACTsG,YAAYC,GAAwC,IAArBC,EAAWrL,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,IAAAA,UAAA,GACtC,IAAKoL,EACD,MAAM,IAAIL,EAEdO,KAAK1G,OAAS2G,IAAGH,EAAmB,CAChCC,YAAaH,GAAsBG,IAEvCC,KAAKE,OAAS,CAAC,EACfF,KAAKG,MAAQ,IAAIC,IAEjBJ,KAAK1G,OAAOI,GAAG,WAAW,KAEtBsG,KAAKG,MAAME,SAASC,GAASN,KAAKpF,KAAK0F,IAAM,IAGjDN,KAAK1G,OAAOI,GAAG,eAAgB6G,IAC3B,IAAKA,EAAQC,KAQT,YAPA7E,EAAAA,EAAAA,GAAO,qCAAsC,CACzC8E,SAAU,CACNC,SAAU,CACNH,cAMhB,MAAMI,EAAWX,KAAKE,OAAOK,EAAQC,MACjCG,EACAA,EAASJ,EAAQK,MAAOZ,OAExBrE,EAAAA,EAAAA,GAAQ,qCAAqC,CACzC8E,SAAU,CACNC,SAAU,CACNG,KAAMN,EAAQC,QAI9B,GAER,CAEAzG,UACQ6F,IAAuBI,KAAKc,eAAed,KAAK1G,OAAOS,SAC/D,CAEAa,KAAK0F,GACD,IAAKA,EACD,MAAM,IAAIX,EAEVK,KAAKc,eACLd,KAAK1G,OAAOyH,KAAK,OAAQT,GAExBN,KAAKG,MAAMa,IAAIV,IAEhBN,KAAKG,MAAMc,IAAIX,EAEvB,CAEAY,MAAMZ,GAA+B,IAAzBa,EAAezM,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,IAAAA,UAAA,GACvB,IAAK4L,EACD,MAAM,IAAIX,EAEVK,KAAKc,eAAiBd,KAAKG,MAAMa,IAAIV,IACrCN,KAAK1G,OAAOyH,KAAK,QAAST,GAEzBa,GACDnB,KAAKG,MAAMiB,OAAOd,EAE1B,CAEAtG,iBAAiBqH,EAAOV,GACpBX,KAAKE,OAAOmB,GAASV,CACzB,CAEAW,oBAAoBD,UACTrB,KAAKE,OAAOmB,EACvB,CAEA3H,GAAG2H,EAAOV,GACNX,KAAK1G,OAAOI,GAAG2H,EAAOV,EAC1B,CAEAY,IAAIF,EAAOV,GACPX,KAAK1G,OAAOiI,IAAIF,EAAOV,EAC3B,CAEAG,cAAc,IAAAU,EACV,OAAkB,QAAlBA,EAAOxB,KAAK1G,cAAM,IAAAkI,OAAA,EAAXA,EAAaC,SACxB,CAEA3H,aACSkG,MAASA,KAAKc,gBACnBd,KAAKG,MAAME,SAASC,GAASN,KAAKkB,MAAMZ,GAAM,KAC9CN,KAAK1G,OAAOQ,aAChB,E,8JC3GJ,QAA6D,oBAA7D,EAA+I,0B,mBCIxI,MAAM4H,EAAYlX,IAMnB,IALFmX,EAAQnX,EAARmX,SACAC,EAAOpX,EAAPoX,QACAC,EAAgBrX,EAAhBqX,iBACAhB,EAAIrW,EAAJqW,KACAiB,EAAStX,EAATsX,UAEA,MAAQvK,GAAmBF,EAAAA,EAAAA,MAAnBE,eAER,OACI1J,EAAAA,EAAAA,KAACkU,EAAAA,EAAK,CAACpX,SAAS,EAAMC,KAAMgX,EAASI,UAAWC,EAAiBpX,UAC7DqX,EAAAA,EAAAA,MAAA,OAAKF,UAAU,SAAQnX,SAAA,EACnBgD,EAAAA,EAAAA,KAAA,OACImU,UAAWC,EACXE,IAAKR,EACLS,MAAOP,EACPQ,IAAKR,KAEThU,EAAAA,EAAAA,KAACyU,EAAY,CACTzB,KAAMA,EACNgB,iBAAkBA,EAClBD,QAASrK,EAAeqK,GACxBE,UAAWA,QAGf,EAIVQ,EAAe1I,IAA2C,IAAxCiH,EAAIjH,EAAJiH,KAAMgB,EAAgBjI,EAAhBiI,iBAAkBC,EAASlI,EAATkI,UAC5C,MAAQhO,GAAMqB,EAAAA,EAAAA,MAANrB,EACFyO,GAA0B1D,EAAAA,EAAAA,MAChC,IAAI2D,EACJ,OAAQ3B,GACJ,IAAK,gBACD2B,EAAU1O,EAAE,gDAAiD,CACzD2O,cAAeF,EACXT,EAAUY,qBAEdb,qBAEJ,MACJ,IAAK,eACDW,EAAU1O,EAAE,qCAAsC,CAC9C+N,qBAEJ,MACJ,IAAK,WACDW,EAAU1O,EAAE,2CAA4C,CACpDuI,MAAOkG,EAAwBT,EAAUzF,OACzCwF,qBAEJ,MACJ,IAAK,UACDW,EAAU1O,EAAE,0CAA2C,CACnDuI,MAAOkG,EAAwBT,EAAUzF,OACzCwF,qBAEJ,MACJ,IAAK,WACDW,EAAU1O,EAAE,iCAAkC,CAC1C+N,qBAEJ,MACJ,IAAK,uBACDW,EAAU1O,EAAE,6CAA8C,CACtD+N,mBACAc,gBAAiBb,EAAUa,kBAGvC,OAAO9U,EAAAA,EAAAA,KAAA,OAAKmU,UAAU,OAAMnX,SAAE2X,GAAc,EClEnCI,EAAepY,IAKf,IAJTgY,EAAOhY,EAAPgY,QACAK,EAAMrY,EAANqY,OACAC,EAAWtY,EAAXsY,YACAC,EAAUvY,EAAVuY,WAEA,MAAQjP,GAAMqB,EAAAA,EAAAA,MAANrB,EAER,OACIoO,EAAAA,EAAAA,MAAA,OAAArX,SAAA,CACKgY,IAAUhV,EAAAA,EAAAA,KAAA,MAAAhD,SAAKiJ,EAAE+O,EAAQE,KACzBP,IACG3U,EAAAA,EAAAA,KAAA,QAAMmU,UAAU,qBAAoBnX,SAC/BiJ,EAAE0O,EAASM,OAGlB,E,0/BCfd,MAAME,GAAeC,E,OAAAA,KAEfC,EAAgBvJ,UAClB,GAAIpI,EAAAA,GACA,OAEJ,GAAIyR,EAAaG,eACb,OAEJ,MAAMC,EAAWJ,EAAaK,OAC9B,GAAID,EACA,IACI,MAAME,EAAcN,EAAaO,YAC3BC,EAAe,CACjBC,UAA0C,IAA/BrG,KAAKsG,IAAI,EAAG,EAAIJ,GAC3BK,QAASA,KACLX,EAAaY,aACbV,GAAe,GAGvB,GAAIE,EAAStB,UAAU+B,OAAQ,CAC3B,MAIArZ,SAHUsZ,EAAAA,GAAaC,IACd,2BAA0BX,EAAStB,UAAU+B,WAGzC5J,KAAK+J,MAAQ,CAAC,EADnBrC,EAAQnX,EAARmX,SAAUC,EAAOpX,EAAPoX,QAASC,EAAgBrX,EAAhBqX,kBAE3BoC,EAAAA,EAAAA,KAEIC,EAAAA,EAAAA,eAAcxC,EAAW,CACrBC,WACAC,UACAC,mBACAhB,KAAMuC,EAASvC,KACfiB,UAAWsB,EAAStB,YAExB0B,EAER,MAAO,GAAIJ,EAAStB,UAAUU,QAAS,CACnC,MAAA2B,EACIf,EAAStB,UADLU,EAAO2B,EAAP3B,QAASK,EAAMsB,EAANtB,OAAQC,EAAWqB,EAAXrB,YAAaC,EAAUoB,EAAVpB,YAEtCkB,EAAAA,EAAAA,KACIpW,EAAAA,EAAAA,KAAC+U,EAAY,CACTJ,QAASA,EACTK,OAAQA,EACRC,YAAaA,EACbC,WAAYA,IACdhV,EAAAA,EAAA,GACGyV,GAAY,IAAE3C,KAAMuC,EAAStB,UAAUjB,OAEpD,CACJ,CAAE,MAAOjD,GAGL,MAFAoF,EAAaY,aACbV,IACMtF,CACV,CACJ,EAGEwG,EAAqBzK,eACvBkH,EACAiB,GAeC,IADDuC,EAAY3P,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,GAEkB,YAA7BmE,SAASyL,kBAIbtB,EAAa/B,IAAI,CAAEJ,OAAMiB,aAAauC,GACtCnB,IACJ,EAEahJ,EAAyBA,CAClC2J,EACAnB,IAEA0B,EAAmB,gBAAiB,CAChCP,SACAnB,wBAGKrI,EAAyBwJ,GAClCO,EAAmB,eAAgB,CAAEP,WAE5BvJ,EAAoBA,CAACuJ,EAAgBxH,IAC9C+H,EAAmB,WAAY,CAAEP,SAAQxH,UAEhC7B,EAAmBA,CAACqJ,EAAgBxH,IAC7C+H,EAAmB,UAAW,CAAEP,SAAQxH,UAE/B5B,EAAqBoJ,GAC9BO,EAAmB,WAAY,CAAEP,WAExBnJ,EAAgCA,CACzCmJ,EACAlB,IAEAyB,EACI,uBACA,CAAEP,SAAQlB,mBACVA,EAAkB,GAAK,GAAK,GAUvB4B,EAAmB,SAC5B/B,EACAK,GAIAuB,EAAmB,UAAW,CAC1B5B,UACAK,SACAC,YANgBpO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOnBqO,WANerO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOlBmM,KAAMoD,EAAAA,GAAMO,KAAKC,SAEzB,EAEaC,EAAiB,SAC1BlC,EACAK,GAIAuB,EAAmB,UAAW,CAC1BvB,SACAL,UACAM,YANgBpO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOnBqO,WANerO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOlBmM,KAAMoD,EAAAA,GAAMO,KAAKG,OAEzB,EAEaC,EAAgB,SACzBpC,EACAK,GAIAuB,EAAmB,UAAW,CAC1B5B,UACAK,SACAC,YANOpO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOVqO,WANMrO,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,KAOTmM,KAAMoD,EAAAA,GAAMO,KAAKK,MAEzB,C,yEC9KO,MAAMC,EAAqBjZ,GAAqBA,EAAMC,YAEhDH,EAAyBE,IAAgB,IAAAkZ,EAAA,OAClDlZ,SAAkB,QAAbkZ,EAALlZ,EAAOC,mBAAW,IAAAiZ,OAAb,EAALA,EAAoBC,eAAe,EAC1BC,EACRC,GAAyBrZ,IAAgB,IAAAsZ,EAAA,OACU,KAApB,QAA5BA,EAAAxZ,EAAsBE,UAAM,IAAAsZ,OAAA,EAA5BA,EAA+BD,GAAqB,EAW/CzZ,EAAqBI,IAAgB,IAAAuZ,EAAA,QAC5CvZ,SAAkB,QAAbuZ,EAALvZ,EAAOC,mBAAW,IAAAsZ,IAAlBA,EAAoBC,mBAAkB,C,8GChBrC,MAAMC,EAA4BzZ,GACrCA,EAAMmI,SAASuR,UAENC,GAAmCC,EAAAA,EAAAA,gBAC5CH,GACCC,GAAcA,aAAS,EAATA,EAAWG,KAAKC,GAAMA,EAAE9K,qBAG9B+K,EAA2B/Z,GACpCA,EAAMmI,SAAS6R,UAENpQ,EAA+B5J,IAAgB,IAAAia,EAAAC,EAAA,OACxDla,SAAe,QAAVia,EAALja,EAAOmI,gBAAQ,IAAA8R,GAAW,QAAXC,EAAfD,EAAiBD,iBAAS,IAAAE,OAArB,EAALA,EAA4BlL,mBAAoBmL,EAAAA,EAAgB,EASvDC,EAAoCpa,IAAgB,IAAAqa,EAAA,OAC/B,QAA9BA,EAAAN,EAAwB/Z,UAAM,IAAAqa,OAAA,EAA9BA,EAAgCrL,oBAAqBmL,EAAAA,EAAgB,EAE5DG,EACTta,IAAgB,IAAAua,EAAA,OACsC,QADtCA,EACNva,EAAMmI,SAASqS,qCAA6B,IAAAD,GAAAA,CAAQ,C,+JCzB3D,MAAME,EAAgBza,GAAqBA,EAAM0a,OAE3CC,EAAoB3a,IAAgB,IAAA4a,EAAA,OAAiB,QAAjBA,EAAK5a,EAAM0a,cAAM,IAAAE,OAAA,EAAZA,EAAcC,UAAU,EAEjEC,EAAqB9a,IAAgB,IAAA+a,EAAA,OAClC,QADkCA,EAC9C/a,EAAM0a,cAAM,IAAAK,OAAA,EAAZA,EAAcC,WAAW,EAEhBC,EAAkBjb,IAAgB,IAAAkb,EAAA,OAAKlb,SAAa,QAARkb,EAALlb,EAAO0a,cAAM,IAAAQ,OAAR,EAALA,EAAehM,QAAQ,EAE9DiM,EAAqBnb,IAAgB,IAAAob,EAAA,OAClC,QADkCA,EAC9Cpb,EAAM0a,cAAM,IAAAU,OAAA,EAAZA,EAAcC,WAAW,EAWhBC,EAAyBtb,IAAgB,IAAAub,EAAA,OACtC,QADsCA,EAClDvb,EAAM0a,cAAM,IAAAa,OAAA,EAAZA,EAAcC,eAAe,EAYpBC,EAAyBzb,IAAgB,IAAA0b,EAAAC,EAAAC,EAAAC,EAAA,OACtC,QAAZH,EAAA1b,EAAM0a,cAAM,IAAAgB,GAAa,QAAbC,EAAZD,EAAcV,mBAAW,IAAAW,OAAb,EAAZA,EAA2BG,UAC0B,QAAzC,QAAZF,EAAA5b,EAAM0a,cAAM,IAAAkB,GAAa,QAAbC,EAAZD,EAAcZ,mBAAW,IAAAa,OAAb,EAAZA,EAA2BC,QAAQ7L,cAAsB,EAOhD8L,EAAoB/b,IAAgB,IAAAgc,EAAA,OAAiB,QAAjBA,EAAKhc,EAAM0a,cAAM,IAAAsB,OAAA,EAAZA,EAAcC,UAAU,EAKjEC,EAAoBlc,IAAqB,IAAAmc,EAAAC,EAAAC,EAClD,MAAMC,EAJ8Btc,IACpCA,EAAM0a,OAAO4B,YAGOC,CAAwBvc,GAC5C,OACiD,KAA7Csc,SAA2B,QAAhBH,EAAXG,EAAaE,sBAAc,IAAAL,OAAhB,EAAXA,EAA6BM,eAC7BH,SAA2B,QAAhBF,EAAXE,EAAaE,sBAAc,IAAAJ,GAAoB,QAApBC,EAA3BD,EAA6BM,0BAAkB,IAAAL,OAApC,EAAXA,EAAiDhb,SAC7Csb,EAAAA,GAAmBC,kBACtB,EAIIC,EAAmB7c,IAAgB,IAAA8c,EAAA,OAAiB,QAAjBA,EAAK9c,EAAM0a,cAAM,IAAAoC,OAAA,EAAZA,EAAcC,SAAS,EAK/DC,EAAqBhd,IAAgB,IAAAid,EAAA,OAClC,QADkCA,EAC9Cjd,EAAM0a,cAAM,IAAAuC,OAAA,EAAZA,EAAcC,WAAW,C,2jCCxDtB,MAAMC,EAA4B,CACrCzJ,KAAM,MACND,KAAM,EACN2J,UAAW,aACXC,YAAa,+BACbC,aAAc,KACdC,UAAW,MACXC,SAAU,eACV7J,SAAU,GAeR8J,EAAkBA,CACpBC,EACAC,EACAC,IAEKF,GAAYC,GAIbC,EAAWC,MAAMhN,GAAaA,EAAS6C,OAASiK,KAHzC,KAOTG,GAAqBC,EAAAA,EAAAA,aAAY,CACnCzS,KAAM,gBACN0S,aArBqC,CACrCN,SAAS,EACTE,WAAY,GACZ9M,kBAAmB,MAmBnBmN,SAAU,CACNC,WAAYA,CACRle,EACAme,KAMA,MAAAC,EAIID,EAAOzJ,QAAO2J,EAAAD,EAHdR,WAAAA,OAAU,IAAAS,EAAG,GAAEA,EACfX,EAAOU,EAAPV,QACA5M,EAAiBsN,EAAjBtN,kBAGJ,OAAA5O,EAAAA,EAAA,GACOlC,GAAK,IACR0d,UACAE,aACA9M,kBAAmB2M,EACfC,EACA5M,EACA8M,IACH,EAGTU,qBAAsBA,CAClBte,EAAKrB,KAEJ,IADC+V,EAAO/V,EAAP+V,QAEF,MAAQgJ,EAAwB1d,EAAxB0d,QAASE,EAAe5d,EAAf4d,WAEjB,OAAA1b,EAAAA,EAAA,GACOlC,GAAK,IACR8Q,kBAAmB2M,EACfC,EACAhJ,EAAQiJ,aACRC,IACH,KAMVW,EAA6CT,EAAmBU,QAAxDN,EAAUK,EAAVL,WAAYI,EAAoBC,EAApBD,qBAC3B,EAAeR,EAA0B,O,oFC9FlC,MAAMW,EAAoBze,GAC7BA,EAAM0e,cAAcd,WAEXpK,EAA2BxT,GACpCA,EAAM0e,cAAc5N,mBACpB9Q,EAAM0e,cAAcd,WAAWC,MAAMc,GAAiB,QAAXA,EAAEjL,QAC7CyJ,EAAAA,GAESyB,EAAgC5e,IAAgB,IAAA6e,EAAA,MAChB,SAAX,QAA9BA,EAAArL,EAAwBxT,UAAM,IAAA6e,OAAA,EAA9BA,EAAgCnL,KAAc,EAErCoL,EAA+B9e,MAEpCA,EAAM0e,cAAchB,SACpB1d,EAAM0e,cAAc5N,mBACpB9Q,EAAM0e,cAAcd,YACpB5d,EAAM0e,cAAcd,WAAW5a,OAAS,E,yEC04BzC,IAipBK+b,EAAa,SAAbA,GAAa,OAAbA,EAAa,kBAAbA,EAAa,kBAAbA,CAAa,MAwTbpC,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,kBAAlBA,EAAkB,oCAAlBA,CAAkB,MAulBlBqC,EAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,UAA1BA,EAA0B,gBAA1BA,EAA0B,YAA1BA,CAA0B,MA0jD1BC,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,kBAArBA,EAAqB,YAArBA,CAAqB,K,0JCz+H1B,MAAMC,EAA6Blf,KACrC2a,EAAAA,EAAAA,IAAiB3a,KAAUyb,EAAAA,EAAAA,IAAsBzb,GACzCmf,EAAuCnf,GAChDA,EAAMof,eAAeC,8BACZC,EAAoCtf,GAC7CA,EAAMof,eAAeG,2BACZC,EAAyBxf,GAClCA,EAAMof,eAAeK,gBACZC,EAA6C1f,GACtDA,EAAMof,eAAeO,oCACZC,EAA6C5f,GACtDA,EAAMof,eAAeS,oCACZC,EAAuC9f,IAAgB,IAAA+f,EAAA,OAC5B,QAD4BA,EAChE/f,EAAMof,eAAeK,uBAAe,IAAAM,OAAA,EAApCA,EAAsC/P,eAAe,EAC5CgQ,EAA0BhgB,IACnC+P,EAAAA,EAAAA,IAA+B+P,EAAoC9f,IAkB1DigB,EAAsCjgB,MAC9C2a,EAAAA,EAAAA,IAAiB3a,IACjBA,EAAMof,eAAec,uBACrBlgB,EAAMof,eAAee,4BAfEngB,KAAqB,IAAAogB,EAAA/F,EAAAgG,EAC7C,MAAMC,GAAcxF,EAAAA,EAAAA,IAAkB9a,GACtC,IAAKsgB,EACD,OAAO,EAEX,MAAMC,EAAUD,SAAoB,QAATF,EAAXE,EAAaxE,eAAO,IAAAsE,OAAT,EAAXA,EAAsBnQ,cAItC,OAHqBmC,EAAAA,EAAAA,IAA2BmO,OAEd,QAA9BlG,GAAAN,EAAAA,EAAAA,IAAwB/Z,UAAM,IAAAqa,GAAkB,QAAlBgG,EAA9BhG,EAAgCrL,wBAAgB,IAAAqR,OAAlB,EAA9BA,EAAkDpQ,gBAAiB,KACvC,EAO/BuQ,CAAmBxgB,G,grCCtCjB,MAAMygB,EAAa,CACtBC,UAAW,YACXC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,QAAS,UACTC,iBAAkB,mBAClBC,WAAY,cAGHC,EAA4B,CAErCC,OAAQ,mBAER,mBAAoB,kBAMXC,EAAe,CAExBC,cAAe,CAEXC,iBAAiB,EACjBC,QAASL,GAEbM,iBAAkB,CAEdF,iBAAiB,EACjBC,QAASL,IAeXO,EAAkBC,GAAsC,MAAfA,EAElCC,EAAqBlgB,IAC9B,MAAMmgB,EAAkB,gBACxB,OAAOA,EAAgBC,KAAKpgB,GAAO,IAC7BA,aAAG,EAAHA,EAAKqgB,QAAQF,EAAiB,MAAO,IAAIG,MAAOC,WAChDvgB,GACK,KAAKogB,KAAKpgB,GAAO,IAAM,IAAM,KAC9B,MACA,IAAIsgB,MAAOC,SAAS,EAG5BC,EAAwBlU,UAAwB,IAAAmU,EAAA,OAClDC,IAAKhgB,EAAAA,EAAC,CAAC,EACA2N,EAAMsS,QAAM,IACf3gB,IAAKkgB,EAA8B,QAAbO,EAACpS,EAAMsS,cAAM,IAAAF,OAAA,EAAZA,EAAczgB,OACvC,EAEA4gB,EAAqBtU,SACvBoU,IAAAA,KAAW,oCAAqC,CAC5CZ,QAAS,CACL,eAAgB,sBAItBe,EAAmBvU,SACrBoU,IAAAA,KAAW,0CAA2C,CAClDZ,QAAS,CACL,eAAgB,sBA6CfgB,EAA4BzS,IAAsB,IAAA0S,EAAAC,EAC3D,MArFwBC,KACxB,IAII,MADgD,qBAFzBC,KAAKC,MAAMF,GAEfG,eAAeC,SAEtC,CAAE,MACE,OAAO,CACX,GA6EIC,CAAgC,QAAdP,EAAC1S,EAAMkT,eAAO,IAAAR,OAAA,EAAbA,EAAeS,UA1CXlV,UAUpBsU,IACFzV,MAAMqW,IAAa,IAAAC,EAChB,OAAiB,QAAjBA,EAAID,EAAS5U,YAAI,IAAA6U,GAAbA,EAAeC,gBACRb,IAEJW,CAAQ,IAElBrW,MAAK,IAAMqV,EAAsBnS,KACjC1C,OAjB2BW,UAE3B,IAAAqV,EAKD,OAJI3B,EAA6C,QAA/B2B,EAACC,EAAuBL,eAAO,IAAAI,OAAA,EAA9BA,EAAgCrZ,UAE/C+F,EAAM8G,QAAU8J,EAAWO,YAExBqC,QAAQC,OAAOzT,EAAM,IAmCrB0T,CAAuB1T,GACvB2R,EAA4B,QAAdgB,EAAC3S,EAAMkT,eAAO,IAAAP,OAAA,EAAbA,EAAe1Y,QAvBlBgE,UAEhBsU,IACFzV,MAAMqW,IAAa,IAAAQ,EAChB,OAAiB,QAAjBA,EAAIR,EAAS5U,YAAI,IAAAoV,GAAbA,EAAeN,gBACRb,IAEJW,CAAQ,IAElBrW,MAAMqW,GACExB,EAAewB,EAASlZ,SAI7B+F,EAAM8G,QAAU8J,EAAWO,WAEpBqC,QAAQC,OAAOzT,IALXmS,EAAsBnS,KAa9B4T,CAAmB5T,GAEvBwT,QAAQC,OAAOzT,EAAM,EAOnB6T,EAAyBC,IAClC,IAAIC,EAUJ,OARIA,OADkBtZ,IAAlBqZ,EACWzB,IAAAA,SAEAyB,EAEfC,EAASC,aAAab,SAASc,KAC1Bd,GAAaA,GACdV,GAEGsB,CAAQ,EAGbG,EAAkD,CAAC,EAY5CC,EAAsBC,IAC/B,GAAIve,EAAAA,GACA,MAAM,IAAIiD,MACN,kIAGR,IAAIub,EAMJ,OALID,KAAWF,IACXG,EAASH,EAAaE,GAASC,QAGnCH,EAAaE,GAAW/B,IAAAA,YAAkBiC,SACnC,CACHD,SACAE,YAAaL,EAAaE,GAASI,MACtC,EAOQC,EAAuB,WAAwB,IAAvBC,EAAO1b,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,SAC3C,OAAmBma,IACf,GACIA,EAAS1B,SACT0B,EAAS1B,QAAQ,sBACjB0B,EAAS1B,QAAQ,uBAAyBiD,EAE1C,MAAM,IAAI5b,MAAM8X,EAAWM,kBAE3B,OAAOiC,CACX,CAER,EAQawB,EAAyBA,IAC1BxB,IACJ,GACIA,EAAS5U,MACgB,iBAAlB4U,EAAS5U,MAChB4U,EAAS5U,KAAK/M,SAAS,YAEvB,MAAM,IAAIsH,MAAM8X,EAAWO,YAE3B,OAAOgC,CACX,EAQKyB,EAAmBA,IACTzB,IAER,CACH5U,KAFqB4U,EAAjB5U,KAGJtE,OAHqBkZ,EAAXlZ,SAaT4a,EAAc,WAAyC,IAAxCC,EAA8B9b,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1D,OAAQgH,IACJ,MAAM/F,EAAS+F,EAAMmT,UAAYnT,EAAMmT,SAASlZ,OAC1C6M,EAAU9G,EAAM8G,QAAU9G,EAAM8G,QAAU9G,EAAMrN,WAEtD,IAAIoiB,EAAe/U,EAAM8G,QAmBzB,MAjBIuL,IAAAA,SAAerS,GACf+U,EAAenE,EAAWG,UACnBjK,EAAQtV,SAAS,YAAyB,MAAXyI,EACtC8a,EAAenE,EAAWK,QACnBnK,EAAQtV,SAAS,WACxBujB,EAAenE,EAAWI,QACnBlK,EAAQtV,SAAS,mBACxBujB,EAAenE,EAAWE,QACR,MAAX7W,EACP8a,EAAenE,EAAWO,WACnBlX,GAAUA,KAAU6a,IAC3BC,EAAeD,EAAe7a,IAIlC+F,EAAM8G,QAAUiO,EAEV/U,CAAK,CAEnB,EAEagV,EAAwBhV,IACjC,GAAQA,EAAM8G,UACL8J,EAAWO,WAIZ,MAAMnR,EAHN/J,OAAOC,SAAS+e,QAIxB,EAGSC,EAAwBlV,IACjC,OAAQA,EAAM8G,SACV,KAAK8J,EAAWC,UAChB,KAAKD,EAAWG,UAChB,KAAKH,EAAWE,QAChB,KAAKF,EAAWI,QAChB,KAAKJ,EAAWK,QACZ,OAAO,EACX,QACI,OAAO,EACf,EAGSkE,EAAWA,CAACnV,EAAmBoV,KACnCF,EAAqBlV,KACtBC,EAAAA,EAAAA,GAAOD,EAAOoV,EAClB,C,qECzSG,MAQMC,EAAwBpiB,GARFqiB,EAACC,EAAsBtiB,IACtDuiB,EAAAA,MAAaD,GAActiB,IAAQ,KAQnCqiB,CAAoBrf,OAAOkH,SAASqY,OAAQviB,GAOnCwiB,EAAsBC,IAC/Bzf,OAAOkH,SAASqY,OAASE,CAAC,C,k9DCC9BC,IAAAA,OAAkB/V,KAClB+V,IAAAA,OAAkB9V,KAClB8V,IAAAA,OAAkBC,KAClBD,IAAAA,OAAkBE,KAClBF,IAAAA,OAAkBG,KAClBH,IAAAA,OAAkBI,KAClBJ,IAAAA,OAAkBK,KAEX,MAAMrW,EAAQgW,IAERM,EACRnV,GACD,kBACInB,KAAM3G,WAAS8H,OAAOA,EAAO,EAE/BoV,EAAkB,mBAEXC,EAAsBA,CAC/BC,EACAC,KAEA,MAAMvV,EAASuV,IAAmBvV,SAClC,OAAOuV,EAAiBD,GAAME,GAAGJ,GAAiBpV,OAAOA,EAAO,EASvDyV,EAAqC,SAC9CH,EACAC,GAES,IADT1d,EAAsBK,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE1B,MAMMwd,EANc,CAChB7d,EAAQ8d,gBAAkB,MAC1B,QACA9d,EAAQ+d,aAAe,QACtB/d,EAAQge,aAAe,SAEDC,OAAOC,SAAS3X,KAAK,KAEhD,OAAOiX,EAAoBC,EAAMC,GAAkBG,OAAOA,EAC9D,EAEaM,EAAgCA,IACzCnX,IAAQ2W,GAAGJ,GAAiBM,OAAO,YAO1BO,EAAmB,SAC5BC,GAGA,MAAMC,E,+VAAmB5kB,CAAA,CACrB6kB,UAAW,GACXC,QAAS,IAJWne,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,GAOtBoe,EAAgC,CAAC,EACvC,IAAIC,EAAYL,EACZM,GAAWL,EAAoBC,UACnC,IAAK,MAALpoB,KAA6ByoB,OAAOC,QAAQC,GAAyB,KAAAvZ,EAAAtE,EAAA9K,EAAA,SAAzD4oB,EAAIxZ,EAAA,GAAE/K,EAAM+K,EAAA,GAEpB,GADKoZ,GAAWI,IAAST,EAAoBC,YAAWI,GAAU,GAC9DA,IACID,GAAalkB,IACbikB,EAAMM,GAAQhW,KAAKiW,MAAMN,EAAYlkB,IAGzCkkB,GAAalkB,EACK,IAAdkkB,GAAmBJ,EAAoBE,UAAYO,GAAM,KAErE,CACA,OAAON,CACX,EAEaQ,EAAkB,CAC3BC,KAAM,OACNC,MAAO,QACPC,QAAS,UACTC,QAAS,WAKPP,EAAuD,CACzD,CAACG,EAAgBC,MAAOhgB,EAAAA,GACxB,CAAC+f,EAAgBE,OAAQhgB,EAAAA,GACzB,CAAC8f,EAAgBG,SAAUhgB,EAAAA,GAC3B,CAAC6f,EAAgBI,SAAU,E,8jCC3GxB,MAAMC,EAAgBA,CACzBC,EACA9f,EACA+f,EACAxY,KAEA,IAAKuY,IAAiBC,EAAc,MAAO,GAE3C,MAAMC,GAAUjC,EAAAA,EAAAA,IAAoB+B,EAAcvY,GAC5C0Y,GAAMlC,EAAAA,EAAAA,IAAoBgC,EAAcxY,GAC9C,GAAIyY,EAAQvY,cAAcwY,EAAI9S,IAAI,EAAG,QAAS,OAC1C,OAAO6S,EAAQ5B,OAAO,eAE1B,GAAI4B,EAAQvY,cAAcwY,EAAI9S,IAAI,EAAG,OAAQ,OACzC,OAAO6S,EAAQ5B,OAAO,aAE1B,GAAI4B,EAAQvY,cAAcwY,EAAI9S,IAAI,EAAG,QACjC,MAAQ,GAAEnN,EAAE,mBAAmBggB,EAAQ5B,OAAO,WAElD,GAAI4B,EAAQvY,cAAcwY,EAAI9S,IAAI,EAAG,WAAY,CAC7C,MAAM+S,EAAQF,EAAQG,KAAKF,EAAK,QAC1BG,EAAUJ,EAAQG,KAAKF,EAAK,UAAY,GACxCI,EAAY,GAOlB,OANIH,EAAQ,GACRG,EAAUC,KAAKtgB,EAAE,YAAa,CAAEugB,MAAOL,KAEvCE,EAAU,GACVC,EAAUC,KAAKtgB,EAAE,cAAe,CAAEugB,MAAOH,KAEtCC,EAAUvZ,KAAK,IAC1B,CACA,OAAIkZ,EAAQQ,QAAQP,GACTjgB,EAAE,4BAENA,EAAE,YAAY,EAGZ4J,EAA6B,SACtC6W,GAES,IADTC,EAAiB9f,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,IAEpB,OAAO6f,EACFlmB,WACAqf,QAAQ,0BAA2B,KAAO8G,EACnD,GAGA,WACI,IACI7W,OAAO,GAAGF,eAAe,IAC7B,CAAE,MAAOG,GACL,OAAOA,aAAa6W,UACxB,CACA,OAAO,CACX,EAYI5W,KAPoB,iBAATC,OACPA,MACOA,KAAKC,cAIpB,MAiBa2W,EAAoB,SAC7BlY,GAES,IADTD,EAAgC7H,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEpC,MAAMigB,EAA2C,CAC7ClY,MAAO,WACPC,SAAU,MACVE,gBACIJ,EAAO/O,WAAW,OACsB,SAAvC8O,EAAgBG,UAAY,QACoB,SAAhDH,EAAgBI,mBAAqB,OAChC,SACA,OACVE,aAAa,EACbC,sBAAuB,EACvBC,sBAAuB,GAE3B,OAAQ,GACHU,eAAejB,EAAMzO,EAAAA,EAAA,GACf4mB,GACApY,IAENmR,QAAQ,MAAO,IACfkH,MACT,C,whDChGA,MAAMC,EAAmBA,KAErB,GAAItjB,EAAAA,GACA,MAAM,IAAIiD,MAAM,mDACpB,EAWEsgB,EAAaA,CAACC,EAAiBC,KACjC,MAAMC,EAAeA,CACjB5nB,EACA6nB,EACAC,KAMA,MAAQC,EAAkCF,EAAlCE,cAAkBC,EAAWpqB,EAAKiqB,EAAgBhqB,GACpDklB,EAAUve,EAAAA,EAASue,QACzB,GAAIgF,EAAe,CACf,MAAAE,GAAgCzF,EAAAA,EAAAA,IAAmBuF,GAA3CrF,EAAMuF,EAANvF,OAAQE,EAAWqF,EAAXrF,YAEhBoF,EAAYpF,YAAcA,EACtBF,GACAA,GAER,CACA,MAAMwF,EA3BKC,EAACT,EAAiB1nB,IAC7B0nB,EAAQzgB,SAAS,MAAjBygB,MAAyB1nB,GAAAA,EAAKI,WAAW,KAClCsnB,EAAU1nB,EAAIooB,UAAU,GAE5BV,EAAU1nB,EAuBGmoB,CAAWT,EAAS1nB,GAC9BqoB,EAAeV,GACfzd,EAAAA,EAAAA,IAAege,GAASI,EAAAA,EAAAA,MACxBJ,EACN,OAAOJ,GAAY5F,EAAAA,EAAAA,MAAyBmG,EAAcL,GACrD7c,KACG4X,GAAUD,EAAAA,EAAAA,IAAqBC,GAAYvB,GAAaA,GAE3DrW,MAAK8X,EAAAA,EAAAA,OACLtX,OAAMuX,EAAAA,EAAAA,MAAc,EAG7B,MAAO,CACHxM,IAAK,SACD1W,GAEC,IADD6nB,EAAkCxgB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAGsY,EAAAA,GAAaC,cAGlD,OADA4H,IACOI,EAAa5nB,EAAK6nB,GAAkB,CAACnH,EAAO1gB,EAAK2gB,IACpDD,EAAMhK,IAAe1W,EAAK2gB,IAElC,EACA4H,KAAM,SACFvoB,EACAkT,GAEC,IADD2U,EAAkCxgB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAGsY,EAAAA,GAAaC,cAGlD,OADA4H,IACOI,EAAa5nB,EAAK6nB,GAAkB,CAACnH,EAAO1gB,EAAK2gB,IACpDD,EAAM6H,KACFvoB,EACAkT,EACAyN,IAGZ,EACA6H,IAAK,SACDxoB,EACAkT,GAEC,IADD2U,EAAkCxgB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAGsY,EAAAA,GAAaC,cAGlD,OADA4H,IACOI,EAAa5nB,EAAK6nB,GAAkB,CAACnH,EAAO1gB,EAAK2gB,IACpDD,EAAM8H,IACFxoB,EACAkT,EACAyN,IAGZ,EACA5M,OAAQ,SACJ/T,GAEC,IADD6nB,EAAkCxgB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAGsY,EAAAA,GAAaC,cAGlD,OADA4H,IACOI,EAAa5nB,EAAK6nB,GAAkB,CAACnH,EAAO1gB,EAAK2gB,IACpDD,EAAM3M,OAAkB/T,EAAK2gB,IAErC,EACAY,QAAS,SACLZ,GAEC,IADDkH,EAAkCxgB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAAGsY,EAAAA,GAAaC,cAGlD,OADA4H,IACOI,EACHjH,EAAO3gB,IACP6nB,GACA,CAACnH,EAAO1gB,EAAKyoB,IACF/H,EAAMa,QAAO7gB,EAAAA,EAAAA,EAAC,CAAC,EAAIigB,GAAW8H,GAAc,IAAEzoB,UAGjE,EACH,EAGC0oB,EAAcC,IAChB,MAAMC,EAASnB,EAAY,QAAOkB,KAAY,GAC9C,SAASE,EAA0BrH,GAC/B,OAAOA,EAAS5U,IACpB,CACA,MAAO,CACHkc,QAASA,CACLC,EACA7V,EACA2U,IAEAe,EACKL,KAGE,aAAYQ,IAAe7V,EAAS2U,GACtC1c,KAAK0d,GACdhhB,MAAOA,CACHmhB,EACAnB,IAEAe,EACKlS,IAAgB,YAAWsS,IAAanB,GACxC1c,KAAK0d,GACjB,EAGQI,EAAgBxB,EAAW,IAC3ByB,EAAiBzB,EAAW,KAAK,GAEjChR,GADgBgR,EAAW,QACZA,EAAW0B,EAAAA,EAAU1jB,SAAS,IAG7C2jB,GAFe3B,EAAW,YACLA,EAAW0B,EAAAA,EAAUpjB,sBACb2iB,EAAW,0BACxCW,EAA8BX,EACvC,2BAESY,EAAgCZ,EACzC,2B,kGClJJ,MAcMa,EAXErlB,EAAAA,GACO2d,QAAQC,cAGa,IAArBxd,OAAOklB,UACP3H,QAAQxY,UAGZ,kCAiBEogB,EAAcA,IACvB,IAAI5H,SAASxY,IACTqgB,WAAWrgB,EAAS,EAAE,IASjBsgB,EAAerd,MACxBsd,EACAtW,KAMA,IAAIuW,EAAWC,YAAYpD,MA/CI,GAgD3BqD,EAAQ,EAEZ,IAAK,MAAMC,KAAWJ,EAlCIK,UAC1B/E,QAA4B,QAArB+E,EAACC,UAAUC,kBAAU,IAAAF,OAAA,EAApBA,EAAsBG,eAAe,CAAEC,mBAAmB,MAkCtCP,YAAYpD,OAASmD,WAEnCJ,IACNI,EAAWC,YAAYpD,MAtDA,IAwD3BpT,EAAS0W,EAASD,EAAOH,GACzBG,GAAS,EAzCaK,IAAAH,CA0C1B,EAGEK,EAAWhe,MACbie,EACAC,KAEA,UACUjB,CACV,CAAE,MAAOlb,GAML,OALInK,EAAAA,KACAoK,EAAAA,EAAAA,GAAO,gEAGLmb,IACCc,GACX,CAEA,aAAaf,UAAUc,SAASC,EAAc,CAAEC,YAAW,EAGlDC,EAAyBF,GAClCD,EAASC,EAAc,iBAKdG,EAAuBH,GAChCD,EAASC,EAAc,a,+DCvG3B,MAIMI,EAAkBre,UACpB,MAEMse,EAAetK,KAAKoG,MAEdmE,SACFpU,EAAAA,GAAaC,IAAI,0BADvB9J,KAAQie,YAENC,GAXYC,EAWWH,EAVtBtK,KAAKoG,MAAQqE,GADFA,MAalB,OAAID,EARiB,IASV,CAAED,YAAavK,KAAKa,MAAM0J,GAAcC,WACxCE,EATQ,EAURL,EAAgBK,EAAa,GAE7B,IACX,E,WChBJ,IAAIC,EAA0B,IAC1BC,EAAc,EACdC,GAAwB,EACxBC,EAAiB,KAErB,MAAMC,EAAmB/e,UACrB8e,EAAiB9K,KAAKoG,MACtB,MAAM4E,ODgBmBhf,gBACZqe,EAAgB,GCjBEY,GAC/B,GAAID,EAAkB,CAClBH,GAAwB,EAKxB,MAAMK,EAAkB,IAAIlL,KACxBgL,EAAiBT,YAAcS,EAAiBR,SAEpDI,EAAcM,EAAgBjL,UAAYD,KAAKoG,KACnD,GAOJ,IAAI+E,EAAkB,KAMf,MAAM1d,EAAiBzB,UAC1B,GAAIpI,EAAAA,GACA,MAAM,IAAIiD,MAAM,6BAEpB,GAbmB,OAAnBikB,GACA9K,KAAKoG,MAAQ0E,GAAkBH,EAYN,CACrB,MAAMS,EAAUL,IACXF,IACDM,EAAkBC,EAE1B,CAEA,GAAID,EAAiB,CACjB,UACUA,CACV,CAAE,MACE,CAEJA,EAAkB,IACtB,CAEA,OAAON,EAAwB,IAAI7K,KAAKA,KAAKoG,MAAQwE,GAAe,IAAI,C,spDCxC5E,MAAMS,EAAkB,sBAmCXC,GAtBU,IAAIC,OACtB,OAAMC,EAAAA,GAAcve,KAAK,YAXN,CACpB,SACA,WACA,UACA,aACA,kBACA,aAEA,8BAGsDA,KAAK,SAsB3Dwe,IAEA,MAAAC,GAIIC,EAAAA,EAAAA,GAA6BF,GAHnBG,EAAaF,EAAvBG,SACYC,EAAeJ,EAA3BK,WAGEC,EAvBeP,KACrB,GAAIA,EAAYQ,WAAaR,EAAYS,QAErC,OADkCT,EAA1BU,WAAqB7uB,EAAKmuB,EAAWluB,GAGjD,OAAOkuB,CAAW,EAkBWW,CAFlB9uB,EAAAouB,EAAAW,IAGLN,EAAaxc,SAASqc,GAAiBE,GAAmB,IAAK,IAIrE,OAHIC,EAAa,IACbC,EAAqBD,WAAaA,GAE/BC,CAAoB,GAkExB,SAASM,EACZb,GAG4CA,EAApCc,WAAoCd,EAAxBe,WACpB,OADuClvB,EAAKmuB,EAAWgB,EAE3D,CAyCO,MAAMC,EAAiBltB,GAC1BA,EAAYM,WAAW,QACjBN,EACC,GAAEmtB,EAAAA,EAAMhnB,UACLnG,EAAYM,WAAW,KAAON,EAAc,IAAMA,IAI1DotB,EAAYC,GACVA,SAA6C,KAARA,IAAsB,IAARA,EASpD,SAASjjB,EACZlK,EACAwN,GAEA,IAAK0f,EAASltB,GACV,OAAOA,EAOX,GAJoB,CAACwE,EAAAA,EAASR,UAAW,gBACRqY,MAC5B+Q,IAAoC,IAAzBptB,EAAIqtB,QAAQD,KAGxB,OAAOptB,EAGX,IAAKwN,EAED,OADAc,EAAAA,EAAAA,GAAQ,iCAAgCtO,KACjCA,EAGX,GAAIA,EAAII,WAAW,MACf,MAAM,IAAI+G,MACL,8CAA6CnH,0CAItD,MAAMstB,EAAY,IAAIvuB,IAAIiB,EAAK2rB,GAE/B,OAAI3rB,EAAII,WAAW,aACRmtB,EAA0BD,EAAW9f,IAIhD8f,EAAUntB,SAAWqtB,EACjBF,EAAUntB,SACVqN,GAEG8f,EAAUtsB,WAAWqf,QAAQsL,EAAiB,IACzD,CAEA,MAAM4B,EAA4BA,CAC9BD,EACA9f,KAEA,MAAMigB,EAAeH,EAAUntB,SAAS4K,MAAM,KAAK,GAKnD,GAJ2B6a,OAAO8H,OAC9BC,EAAAA,IACF9tB,SAAS4tB,GAAgB,IAGvB,OAAOH,EAAUtsB,WAAWqf,QAAQsL,EAAiB,IAGzD,MAAMiC,EACFD,EAAAA,GACIngB,IACCqgB,EAAAA,GAQT,OALAP,EAAUntB,SAAWmtB,EAAUntB,SAASkgB,QACpC,YACC,YAAWuN,MAGTN,EAAUtsB,WAAWqf,QAAQsL,EAAiB,GAAG,EAM/CmC,EAAqBztB,GAC9B0tB,IAAAA,MAAS1tB,EAAQ,CAAE2tB,mBAAmB,IAY7BC,EAAiB,SAC1BlC,GAAmB,IAAAmC,EAAA7mB,UAAA7F,OAAA,QAAAsH,IAAAzB,UAAA,GAAAA,UAAA,GAMQ,CAAC,EAAC8mB,EAAAD,EAJzBE,eAAAA,OAAc,IAAAD,GAAOA,EAAAE,EAAAH,EACrBI,OAAAA,OAAM,IAAAD,GAAOA,EAAAE,EAAAL,EACbM,UAAAA,OAAS,IAAAD,GAAOA,EAAAE,EAAAP,EAChBQ,YAAAA,OAAW,IAAAD,EAAG,SAAQA,EAAA,OAG1BV,IAAAA,UAAahC,EAAa,CACtBqC,eAAgBA,EAChBE,OAAQA,EACRE,UAAWA,EACXE,YAAaA,GACf,EAEAlB,EAAoBA,CAACmB,EAAcnhB,KAErC,MAAMohB,EAAa,CACfhmB,KAAM,CACFimB,cAAelW,EAAAA,GACfmW,QAASC,EAAAA,KAGXC,GAAeC,EAAAA,EAAAA,GAAoBN,EAAM,CAC3CC,aACAM,WAAW,IAOf,OAL0BC,EAAAA,EAAAA,GAAsBzuB,EAAAA,EAAC,CAAC,EAC3CsuB,GAAY,IACfH,cAAelW,EAAAA,GACfxJ,OAAQ3B,IAEY,EAGf4hB,EAA2BA,KAGpC,MAAMrD,EAAWrrB,EAAAA,EAAA,GACVqtB,IAAAA,MAASxpB,SAASlE,OAAQ,CAAE2tB,mBAAmB,KAAO,IACzDqB,cAAetf,KAAKuf,MAAsB,IAAhBvf,KAAKwf,YAEnC,OACIhrB,SAASirB,SACT,KACAjrB,SAASkrB,KACTlrB,SAASpE,SACT4tB,IAAAA,UAAahC,EAAa,CAAEqC,gBAAgB,GAAO,C","sources":["webpack://touchweb/./src/components/alink/alink.tsx","webpack://touchweb/./src/constants/cookies.ts","webpack://touchweb/./src/constants/endpoints.ts","webpack://touchweb/./src/constants/hosts.ts","webpack://touchweb/./src/constants/time.ts","webpack://touchweb/./src/lang/translate.tsx","webpack://touchweb/./src/legacy/static/app.js","webpack://touchweb/./src/services/global-socket.js","webpack://touchweb/./src/services/boot-site-wide-notifications.js","webpack://touchweb/./src/apps/tradera/configure-dayjs.js","webpack://touchweb/./src/legacy/static/boot-app.ts","webpack://touchweb/./src/legacy/static/utils/modules.js","webpack://touchweb/./src/localization/countrycode.js","webpack://touchweb/./src/localization/format-price.ts","webpack://touchweb/./src/localization/languagecode.js","webpack://touchweb/./src/localization/use-localized-price-formatter.ts","webpack://touchweb/./src/services/socket-io-channel.js","webpack://touchweb/./src/components/toasts/item-toast.module.scss","webpack://touchweb/./src/components/toasts/item-toast.jsx","webpack://touchweb/./src/components/toasts/message-toast.tsx","webpack://touchweb/./src/services/toasts.tsx","webpack://touchweb/./src/state/environment/selectors.ts","webpack://touchweb/./src/state/language/selectors.ts","webpack://touchweb/./src/state/member/selectors.ts","webpack://touchweb/./src/state/multi-currency/reducer.ts","webpack://touchweb/./src/state/multi-currency/selectors.ts","webpack://touchweb/./src/state/services/types/webapi-member-generated.ts","webpack://touchweb/./src/state/shipping-region/selectors.ts","webpack://touchweb/./src/utils/api.ts","webpack://touchweb/./src/utils/cookie-helpers.ts","webpack://touchweb/./src/utils/date.ts","webpack://touchweb/./src/utils/format.ts","webpack://touchweb/./src/utils/http.ts","webpack://touchweb/./src/utils/scheduler.ts","webpack://touchweb/./src/utils/time-api.js","webpack://touchweb/./src/utils/server-date.js","webpack://touchweb/./src/utils/url.ts"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { NextLink } from 'tradera/apps/nextweb/components/next-link';\nimport { updateEnvironmentHash } from 'tradera/state/environment/actions';\nimport { useIsFeatureEnabled } from 'tradera/hooks/use-is-feature-enabled';\nimport { useLocation } from 'tradera/hooks/use-location';\nimport { isTouchwebInNextweb } from 'tradera/utils/nextjs';\nimport { useAppSelector } from 'tradera/state/hooks';\nimport { removePrivacySandboxIframes } from 'tradera/utils/privacy-sandbox-iframes';\nimport {\n selectFeatureSwitches,\n selectIsNativeApp\n} from 'tradera/state/environment/selectors';\nimport {\n getNavigationType,\n NavigationType\n} from 'tradera/components/alink/navigation-type';\n\nconst PRODUCTION_ORIGIN = 'https://www.tradera.com';\n\nconst isFragmentNavSamePage = (url: URL, href?: string) =>\n !!url.hash && url.pathname === '/' && !href?.startsWith('/#');\n\nconst getRelativeUrl = (url: URL, href?: string) => {\n if (isFragmentNavSamePage(url, href)) return `${url.search}${url.hash}`;\n return `${url.pathname}${url.search}${url.hash}`;\n};\n\nconst getReferrerPolicy = (url: URL) =>\n url.hostname === 'info.tradera.com'\n ? { referrerPolicy: 'unsafe-url' as const }\n : {};\n\nexport type ALinkProps = React.ComponentPropsWithRef<'a'> & {\n useLink?: boolean;\n};\n\nconst mapTarget = (target?: string) => {\n switch (target) {\n case '_blank':\n return 'new';\n case '_parent':\n case '_top':\n return 'top';\n default:\n return 'self';\n }\n};\n\nconst ALink = React.forwardRef(function ALink(\n {\n useLink: isTouchwebSpaLink,\n href,\n children,\n onClick: givenOnClick,\n ...otherProps\n }: ALinkProps,\n forwardedRef\n) {\n const dispatch = useDispatch();\n const currentLocation = useLocation();\n const isNativeApp = useAppSelector(selectIsNativeApp);\n const toggles = useAppSelector(selectFeatureSwitches) || {};\n const isSpaNavigationEnabled =\n (useAppSelector((state) => state.environment.isSpaNavigationEnabled) ||\n isTouchwebInNextweb) &&\n !isNativeApp; // Apps cannot handle history correctly if SPA navigation is enabled\n const isNextWebAddUrlParamEnabled = useIsFeatureEnabled(\n 'next-web-add-url-param'\n );\n const isTouchWebAddUrlParamEnabled = useIsFeatureEnabled(\n 'touch-web-add-url-param'\n );\n const absoluteLinkUrl = new URL(href ?? '', PRODUCTION_ORIGIN);\n\n if (isTouchWebAddUrlParamEnabled) {\n absoluteLinkUrl.searchParams.set('next', '0');\n } else if (isNextWebAddUrlParamEnabled) {\n absoluteLinkUrl.searchParams.set('next', '1');\n }\n\n const navigationType = getNavigationType({\n fromUrl: currentLocation,\n toUrl: absoluteLinkUrl,\n target: mapTarget(otherProps.target),\n isTouchwebSpaLink,\n isNativeApp,\n toggles\n });\n const handleSpaNavigationClick = useCallback(\n (evt: React.MouseEvent) => {\n removePrivacySandboxIframes();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatch(updateEnvironmentHash());\n if (givenOnClick) givenOnClick(evt);\n },\n [dispatch, givenOnClick]\n );\n\n const spaNavigationOrigins = [PRODUCTION_ORIGIN, currentLocation?.origin];\n const isRelativeUrl = spaNavigationOrigins.includes(absoluteLinkUrl.origin);\n\n // Strip away origin for SPA links\n const relativeUrl = getRelativeUrl(absoluteLinkUrl, href);\n\n if (isSpaNavigationEnabled && isRelativeUrl) {\n switch (navigationType) {\n case NavigationType.NextSpaNavigation:\n // NextJS routing\n return (\n \n {children}\n \n );\n case NavigationType.TouchwebSpaNavigation:\n // react-router-dom routing\n return (\n \n {children}\n \n );\n }\n }\n\n const url = isRelativeUrl ? relativeUrl : absoluteLinkUrl.toString();\n return (\n \n {children}\n \n );\n});\n\n// Deprecated, please use the named export instead\nexport default ALink;\n","import { PAGE_LIST_TYPES } from 'tradera/apps/my-tradera/app/constants/list-types';\n\n/**\n * @returns {object} list of default cookies that could be set in Touchweb\n * @desc\n * key: Cookie Name\n * default: Default Value if not set\n * length: Time to be stored (months)\n */\nexport const DEFAULT_COOKIES = {\n ITEM_LAYOUT: {\n key: 'Srp_Item_Layout',\n default: 'layout-grid',\n length: 365\n },\n SITE_LAYOUT: {\n key: 'Srp_Site_Layout',\n default: 'site-width-default',\n length: 365\n }\n};\n\nexport const MYTRADERA_DEFAULT_COOKIES = {\n LIST_VIEW_TYPE: {\n key: 'MyTradera_ListViewType',\n default: 'Basic',\n length: 14\n },\n ITEMS_PER_PAGE: {\n key: 'MyTradera_ItemsPerPage',\n default: '15',\n length: 14\n },\n SHOW_FILTERS: {\n key: 'MyTradera_ShowFiltersToolbar',\n default: 'hidden',\n length: 14\n },\n LIST_VIEW_TYPE_BUYER_ACTIVE_ITEMS: {\n key: 'MyTradera_ListViewType_' + PAGE_LIST_TYPES.BUYER_ACTIVE_ITEMS,\n default: 'Basic',\n length: 14\n },\n LIST_VIEW_TYPE_BUYER_ITEMS_LOST: {\n key: 'MyTradera_ListViewType_' + PAGE_LIST_TYPES.BUYER_ITEMS_LOST,\n default: 'Basic',\n length: 14\n },\n LIST_VIEW_TYPE_SELLER_ACTIVE: {\n key: 'MyTradera_ListViewType_' + PAGE_LIST_TYPES.SELLER_ACTIVE,\n default: 'Basic',\n length: 14\n },\n LIST_VIEW_TYPE_SELLER_NOT_SOLD: {\n key: 'MyTradera_ListViewType_' + PAGE_LIST_TYPES.SELLER_NOT_SOLD,\n default: 'Basic',\n length: 14\n }\n};\n\nexport const APP_DOWNLOAD_MODAL_DISMISSED = 'app_download_modal_dismissed';\nexport const GDPR_CONSENT_COOKIE = 'gdpr_consent_v1';\nexport const FORCE_GEO_DEV = 'force-geo-dev';\nexport const ITEMS_PER_PAGE = 'ITEMS_PER_PAGE';\nexport const LIST_VIEW_TYPE = 'LIST_VIEW_TYPE';\nexport const MOBILE_OPT_IN_TAGS = 'mobile-opt-in-tags';\nexport const NATIVE_APP_ENVIRONMENT = 'native-app-environment';\nexport const PREFERRED_CURRENCY = 'preferred_currency';\nexport const REGION_PICKER_DISMISSED = 'region_picker_dismissed_session';\nexport const S = 's';\nexport const SHIPPING_COUNTRY = 'shipping_country';\nexport const SHOW_FILTERS = 'SHOW_FILTERS';\nexport const SIGNUP_REFERRAL_PATH = 'signup_referral_path';\nexport const SOLD_VIEW_PICKLIST = 'sold_view_picklist';\nexport const TEST = 'test';\nexport const SAVE_SEARCH_MODAL_DISMISSED = 'save_search_modal_dismissed';\nexport const USERPREFERENCES = 'UserPreferences';\nexport const CART_ID = 'cartId';\nexport const VIEWPORT_WIDTH = 'viewport-width';\nexport const SHIP_TO_SWEDEN_DISCLAIMER_DISMISSED =\n 'ship-to-sweden-disclaimer-dismissed';\nexport const HAS_LOGGED_IN = 'has-logged-in';\nexport const EXPERIMENT_BUCKET = 'experiment_bucket';\nexport const PRODUCT_COMMUNICATION_DISMISSED =\n 'product_communication_dismissed';\nexport const WISH_LIST_NOTIFICATION_DISPLAY_COUNT =\n 'wish-list-nudge-notification-display-count';\nexport const WISH_LIST_NOTIFICATION_HIDDEN =\n 'wish-list-nudge-notification-hidden';\nexport const RECENTLY_VIEWED_ITEM_IDS = 'recently-viewed-items';\nexport const RECENT_SEARCHES = 'recent-searches';\nexport const SAVED_SEARCHES = 'saved-searches';\nexport const ENTERED_FASHION_PAGE = 'entered-fashion-page';\n\n// Social login cookies -->\nexport const APPLE_ATTEMPTED_ID = 'apple_attempted_id';\nexport const APPLE_ATTEMPTED_TOKEN = 'apple_attempted_token';\n\nexport const FACEBOOK_ATTEMPTED_ID = 'fb_attempted_id';\nexport const FACEBOOK_ATTEMPTED_TOKEN = 'fb_attempted_token';\n\nexport const GOOGLE_ATTEMPTED_ID = 'google_attempted_id';\nexport const GOOGLE_ATTEMPTED_TOKEN = 'google_attempted_token';\n\nexport const KLARNA_ATTEMPTED_ID = 'klarna_attempted_id';\nexport const KLARNA_ATTEMPTED_TOKEN = 'klarna_attempted_token';\nexport const KLARNA_ATTEMPTED_REFRESH_TOKEN = 'klarna_attempted_refresh_token';\n// <-- Social login cookies\n\nexport const COOKIE_CATEGORIES = {\n Essential: 1,\n Performance: 2,\n Functional: 3,\n Marketing: 4\n};\n\nexport const COLLECT_SSN_MODAL_DISMISSED = 'collect-ssn-modal-dismissed';\nexport const TRADERA_PAY_CONSENT_MODAL_DISMISSED =\n 'tradera-pay-consent-modal-dismissed';\nexport const HAS_SEEN_COMBINEDSHIPPING_MODAL =\n 'has-seen-combined-shipping-modal';\n\n/**\n * all cookies that are used by tradera must be categorized in the array below.\n */\nexport const CATEGORIZED_COOKIES = {\n [GDPR_CONSENT_COOKIE]: COOKIE_CATEGORIES.Essential,\n [NATIVE_APP_ENVIRONMENT]: COOKIE_CATEGORIES.Essential,\n [TEST]: COOKIE_CATEGORIES.Essential, // Unit test cookie\n\n [EXPERIMENT_BUCKET]: COOKIE_CATEGORIES.Performance,\n\n [APP_DOWNLOAD_MODAL_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [DEFAULT_COOKIES.ITEM_LAYOUT.key]: COOKIE_CATEGORIES.Functional,\n [DEFAULT_COOKIES.SITE_LAYOUT.key]: COOKIE_CATEGORIES.Functional,\n [FORCE_GEO_DEV]: COOKIE_CATEGORIES.Functional,\n [HAS_LOGGED_IN]: COOKIE_CATEGORIES.Functional,\n [ITEMS_PER_PAGE]: COOKIE_CATEGORIES.Functional,\n [LIST_VIEW_TYPE]: COOKIE_CATEGORIES.Functional,\n [MOBILE_OPT_IN_TAGS]: COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.ITEMS_PER_PAGE.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.SHOW_FILTERS.key]: COOKIE_CATEGORIES.Functional,\n [PREFERRED_CURRENCY]: COOKIE_CATEGORIES.Functional,\n [REGION_PICKER_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [S]: COOKIE_CATEGORIES.Functional, // saved search\n [SHIPPING_COUNTRY]: COOKIE_CATEGORIES.Essential,\n [SHOW_FILTERS]: COOKIE_CATEGORIES.Functional,\n [SIGNUP_REFERRAL_PATH]: COOKIE_CATEGORIES.Functional,\n [SOLD_VIEW_PICKLIST]: COOKIE_CATEGORIES.Functional,\n [USERPREFERENCES]: COOKIE_CATEGORIES.Functional,\n [SAVE_SEARCH_MODAL_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [CART_ID]: COOKIE_CATEGORIES.Functional,\n [VIEWPORT_WIDTH]: COOKIE_CATEGORIES.Functional,\n [SHIP_TO_SWEDEN_DISCLAIMER_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE_BUYER_ACTIVE_ITEMS.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE_BUYER_ITEMS_LOST.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE_SELLER_ACTIVE.key]:\n COOKIE_CATEGORIES.Functional,\n [MYTRADERA_DEFAULT_COOKIES.LIST_VIEW_TYPE_SELLER_NOT_SOLD.key]:\n COOKIE_CATEGORIES.Functional,\n [PRODUCT_COMMUNICATION_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [WISH_LIST_NOTIFICATION_DISPLAY_COUNT]: COOKIE_CATEGORIES.Functional,\n [WISH_LIST_NOTIFICATION_HIDDEN]: COOKIE_CATEGORIES.Functional,\n [COLLECT_SSN_MODAL_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [TRADERA_PAY_CONSENT_MODAL_DISMISSED]: COOKIE_CATEGORIES.Functional,\n [HAS_SEEN_COMBINEDSHIPPING_MODAL]: COOKIE_CATEGORIES.Functional,\n [RECENTLY_VIEWED_ITEM_IDS]: COOKIE_CATEGORIES.Functional,\n [RECENT_SEARCHES]: COOKIE_CATEGORIES.Functional,\n [APPLE_ATTEMPTED_ID]: COOKIE_CATEGORIES.Essential,\n [APPLE_ATTEMPTED_TOKEN]: COOKIE_CATEGORIES.Essential,\n [FACEBOOK_ATTEMPTED_ID]: COOKIE_CATEGORIES.Essential,\n [FACEBOOK_ATTEMPTED_TOKEN]: COOKIE_CATEGORIES.Essential,\n [GOOGLE_ATTEMPTED_ID]: COOKIE_CATEGORIES.Essential,\n [GOOGLE_ATTEMPTED_TOKEN]: COOKIE_CATEGORIES.Essential,\n [KLARNA_ATTEMPTED_ID]: COOKIE_CATEGORIES.Essential,\n [KLARNA_ATTEMPTED_TOKEN]: COOKIE_CATEGORIES.Essential,\n [KLARNA_ATTEMPTED_REFRESH_TOKEN]: COOKIE_CATEGORIES.Essential,\n [SAVED_SEARCHES]: COOKIE_CATEGORIES.Functional,\n [ENTERED_FASHION_PAGE]: COOKIE_CATEGORIES.Functional\n};\n\nexport const COOKIE_DEFAULT_CATEGORY = COOKIE_CATEGORIES.Functional;\n\n/**\n * List of cookies which are OK for any JavaScript to access. Never add cookies\n * that would be a security risk if exposed to third party scripts.\n */\nexport const COOKIES_REQUIRED_FOR_SSR_EXPOSED_TO_JS_IN_BROWSER = [\n CART_ID,\n EXPERIMENT_BUCKET,\n FORCE_GEO_DEV,\n GDPR_CONSENT_COOKIE,\n REGION_PICKER_DISMISSED,\n PRODUCT_COMMUNICATION_DISMISSED,\n SHIPPING_COUNTRY,\n RECENTLY_VIEWED_ITEM_IDS,\n RECENT_SEARCHES,\n DEFAULT_COOKIES.SITE_LAYOUT.key,\n DEFAULT_COOKIES.ITEM_LAYOUT.key,\n SAVED_SEARCHES\n];\n\nconst DAY_IN_MILLISECONDS = 1000 * 60 * 60 * 24;\nexport const YEAR_IN_MILLISECONDS = DAY_IN_MILLISECONDS * 365;\n","import initData from 'tradera/legacy/static/packages/init-data';\nimport { isNextJs, isServer, isTouchwebInNextweb } from 'tradera/utils/nextjs';\n\nconst getSiteBaseUrl = () =>\n isServer\n ? process.env.PUBLIC_TOUCHWEB_WINDOW_LOCATION_ORIGIN\n : window.location.origin;\n\nconst webApiUrl: string =\n isNextJs && !isTouchwebInNextweb\n ? `${getSiteBaseUrl()}/api/webapi`\n : initData.webApiUrl;\n\nexport default {\n AVAILABLE_SHIPPING_COUNTRIES:\n webApiUrl + '/member/getavailablecountriesforshipping',\n CART_OVERVIEW_VIEW: webApiUrl + '/shopping/checkout/cartoverview',\n CART_ADD_ITEM: webApiUrl + '/shopping/cart/item',\n CART_REMOVE_ITEMS: webApiUrl + '/shopping/cart/removeitems',\n CART_SET_ITEM_QUANTITY: webApiUrl + '/shopping/cart/setitemquantity',\n FAVOURITE_SELLERS: webApiUrl + `/discover/favouritesellers-and-items2`,\n HYPERWALLET_PAYOUT_COMPLETE:\n webApiUrl + '/member/paymentprovider/completehyperwallettransfermethod',\n HYPERWALLET_PAYOUT_TOKEN:\n webApiUrl + '/member/paymentprovider/hyperwalletauthenticationtoken',\n HYPERWALLET_PAYOUT:\n webApiUrl +\n '/member/paymentprovider/hyperwallettransfermethodviewmodel',\n INTERNATIONAL_SHIPPING_CALCULATOR:\n webApiUrl + '/browse/internationalshippingcalculator',\n ORDER_CHECKOUT_PAYMENT: initData.orderCheckoutPaymentUrl,\n ORDER_CHECKOUT_REQUEST_COMBINED_PRICE:\n webApiUrl + '/shopping/ordercheckout/requestcombinedshippingprice',\n ORDER_CHECKOUT_CREATE_UNCOMMITTED_PURCHASE_ORDER:\n webApiUrl + '/shopping/ordercheckout/createuncommittedpurchaseorder',\n ORDER_PURCHASE_SHOP_ITEMS:\n webApiUrl + '/shopping/ordercheckout/purchaseshopitems',\n SEARCH: '/search',\n WEB_API: webApiUrl,\n UPI: (purchaseOrderId: string) =>\n webApiUrl + '/member/uppo-strike/?PurchaseOrderId=' + purchaseOrderId,\n MCP: (purchaseOrderId: string) =>\n webApiUrl + '/member/mcp-strike/?PurchaseOrderId=' + purchaseOrderId,\n MCP_CONFIRM: (purchaseOrderId: string) =>\n webApiUrl +\n '/member/mcp-strike-confirm/?PurchaseOrderId=' +\n purchaseOrderId,\n PURCHASE_ORDER: (purchaseOrderId: string) =>\n webApiUrl + '/member/purchaseorder/?PurchaseOrderId=' + purchaseOrderId,\n MARKETING_PUBLIC_API: '/api/marketing',\n SHIPPING_CHECKOUT_DELETE: '/my/shipping/checkout/delete'\n};\n","export default {\n TRADERA: 'https://www.tradera.com'\n};\n","export const DAY_IN_SECONDS = 24 * 60 * 60;\nexport const HOUR_IN_SECONDS = 60 * 60;\nexport const MINUTE_IN_SECONDS = 60;\n\nexport const DAY_IN_MILLISECONDS = DAY_IN_SECONDS * 1000;\nexport const HOUR_IN_MILLISECONDS = HOUR_IN_SECONDS * 1000;\nexport const MINUTE_IN_MILLISECONDS = MINUTE_IN_SECONDS * 1000;\nexport const SECOND_IN_MILLISECONDS = 1000;\n","import React, { useRef } from 'react';\nimport { toLocalizedUrl } from 'tradera/utils/url';\nimport {\n NS_TOUCHWEB,\n I18N_FRONTEND_NAMESPACES,\n TRANS_SUFFIX\n} from './constants.mjs';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { useAppSelector as useSelector } from 'tradera/state/hooks';\n\n// eslint-disable-next-line no-restricted-imports\nimport {\n type TFunction,\n type TranslationProps,\n useTranslation,\n Trans as TransComponent,\n I18nextProvider as NextI18nextProvider\n} from 'react-i18next';\nimport type { i18n } from 'i18next';\nimport type { RootState } from 'tradera/state/configure-store';\nimport { selectPreferredLanguageCode } from 'tradera/state/language/selectors';\nimport type { AddTranslation } from 'tradera/lang/translations-context';\nimport { useAddTranslation } from 'tradera/lang/translations-context';\nimport { useQuery } from 'tradera/hooks/use-query';\n\nexport type TranslationFunction = TFunction;\n\nexport const I18nextProvider = NextI18nextProvider;\n\nconst createWrappedT =\n (\n i18nObject: i18n,\n t: TranslationFunction,\n addTranslation: AddTranslation,\n language: string,\n hasLoadedAllTranslations: boolean,\n throwOnTransSuffix?: boolean,\n isShowingTranslationKeysEnabled?: boolean\n ) =>\n (\n i18nKey: string,\n options?: TranslationProps | string,\n ...args: object[]\n ) => {\n if (\n typeof i18nKey === 'string' &&\n i18nKey.endsWith(TRANS_SUFFIX) &&\n throwOnTransSuffix\n ) {\n throw new Error(\n `t function keys should not have \"Trans\" suffix, got key \"${i18nKey}\". Use Trans component instead.`\n );\n }\n const translation = t(\n i18nKey,\n // @ts-expect-error: TS2698 because I have no idea how these types from/using i18n work\n { ...options, lng: language, hasLoadedAllTranslations },\n ...args\n );\n if (isServer) {\n addTranslationForHydration(\n i18nKey,\n options,\n language,\n i18nObject,\n addTranslation\n );\n }\n return isShowingTranslationKeysEnabled ? i18nKey : translation;\n };\n\nconst isQueryToggleEnabled = (query: string | null) => {\n if (query === null) return false;\n return ['1', 'true', ''].includes(query);\n};\n\n/**\n * i18next translation wrappers for translating static text in react components\n * When to use what?\n * -----\n * 1. For functional components use `useTranslator()` hook\n * 2. For class components use `withTranslator()` HOC\n */\n\n/**\n * Translation hook, wrapper for react-i18next\n */\nexport const useTranslator = () => {\n const addTranslation = useAddTranslation();\n const [isShowingTranslationKeysEnabledQuery] = useQuery('translation-keys');\n const isShowingTranslationKeysEnabled = isQueryToggleEnabled(\n isShowingTranslationKeysEnabledQuery\n );\n const language = useSelector(selectPreferredLanguageCode);\n const loadedLanguages =\n useSelector((state: RootState) => state.status?.loadedLanguages) || [];\n const hasLoadedAllTranslations = loadedLanguages.includes(language);\n const { t, ready, i18n } = useTranslation(I18N_FRONTEND_NAMESPACES);\n const wrappedT: TranslationFunction = React.useMemo(\n () =>\n createWrappedT(\n i18n,\n t,\n addTranslation,\n language,\n hasLoadedAllTranslations,\n true,\n isShowingTranslationKeysEnabled\n ),\n [\n hasLoadedAllTranslations,\n i18n,\n t,\n addTranslation,\n language,\n isShowingTranslationKeysEnabled\n ]\n );\n return { t: ready ? wrappedT : () => '...', i18n };\n};\n\nconst addTranslationForHydration = (\n i18nKey: string,\n options = {},\n language: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n: any,\n addTranslation: AddTranslation\n) => {\n const { key, namespaces } = i18n.translator.extractFromKey(\n i18nKey,\n options\n );\n const namespace = namespaces[namespaces.length - 1];\n const { res, exactUsedKey } = i18n.translator.resolve(key, {\n ...options,\n lng: language,\n ns: namespace\n });\n const pluralizedKey = exactUsedKey || i18nKey;\n\n addTranslation(namespace, pluralizedKey, res);\n};\n\nexport type WithTranslatorProps = ReturnType['t'];\n\n/**\n * Translation HOC, wrapper for react-i18next\n */\nexport function withTranslator<\n TComponent extends WithTranslatorProps = WithTranslatorProps\n>(\n WrappedComponent: React.ComponentType\n): React.ComponentType {\n function WithTranslator(\n props: Omit\n ) {\n const { t } = useTranslator();\n return ;\n }\n\n WithTranslator.displayName = `withTranslator(${\n WrappedComponent.displayName || WrappedComponent.name\n }`;\n return WithTranslator;\n}\n\nexport type WithUrlLocalizerProps = ReturnType<\n typeof useUrlLocalizer\n>['toLocalizedUrl'];\n\n/**\n * Localization HOC, wrapper for URL-localizer\n * @param {Component} WrappedComponent\n */\nexport function withUrlLocalizer<\n TComponent extends WithUrlLocalizerProps = WithUrlLocalizerProps\n>(WrappedComponent: React.ComponentType) {\n function WithUrlLocalizer(\n props: Omit\n ) {\n const { toLocalizedUrl } = useUrlLocalizer();\n return ;\n }\n\n WithUrlLocalizer.displayName = `withUrlLocalizer(${\n WrappedComponent.displayName || WrappedComponent.name\n }`;\n\n return WithUrlLocalizer;\n}\n\n/**\n * Current language hook, wrapper for react-i18next\n */\nexport const useCurrentLanguage = () => {\n const preferredLanguage = useSelector(selectPreferredLanguageCode);\n // Using language from Redux instead of i18n.language since that\n // will always be 'sv' if we don't clone the instance.\n return {\n language: preferredLanguage\n };\n};\n\n/**\n * Returns function to append language prefix to link\n */\nexport const useUrlLocalizer = () => {\n const preferredLanguage = useSelector(selectPreferredLanguageCode);\n const urlLocalizer = useRef(function toLocalizedUrlWrapper(\n url: T\n ): T | string {\n return toLocalizedUrl(url, preferredLanguage);\n });\n return {\n toLocalizedUrl: urlLocalizer.current\n };\n};\n\nexport type TransProps = Omit<\n React.ComponentProps,\n 'i18nKey'\n> & {\n i18nKey: string;\n};\n\nexport const Trans = (props: TransProps) => {\n const addTranslation = useAddTranslation();\n const language = useSelector(selectPreferredLanguageCode);\n const [isShowingTranslationKeysEnabledQuery] = useQuery('translation-keys');\n const isShowingTranslationKeysEnabled = isQueryToggleEnabled(\n isShowingTranslationKeysEnabledQuery\n );\n const loadedLanguages =\n useSelector((state: RootState) => state.status?.loadedLanguages) || [];\n const hasLoadedAllTranslations = loadedLanguages.includes(language);\n const { t, ready, i18n } = useTranslation(I18N_FRONTEND_NAMESPACES);\n const { i18nKey, children, defaults } = props;\n const wrappedT = React.useMemo(\n () =>\n createWrappedT(\n i18n,\n t,\n addTranslation,\n language,\n hasLoadedAllTranslations,\n false,\n isShowingTranslationKeysEnabled\n ),\n [\n hasLoadedAllTranslations,\n i18n,\n t,\n addTranslation,\n language,\n isShowingTranslationKeysEnabled\n ]\n );\n\n // TODO: since we don't have TS everywhere we still need to check these things, when we have TS we can use TS to enforce most of it instead instead\n\n if (!i18nKey) {\n throw new Error('Trans component key must have a i18nKey property');\n }\n if (!i18nKey.endsWith(TRANS_SUFFIX)) {\n throw new Error(\n `Trans component key must have the \"Trans\" suffix, got key \"${i18nKey}\"`\n );\n }\n if (children) {\n throw new Error(\n `Trans component must not have children, use components or t('${i18nKey}') function instead`\n );\n }\n if (defaults) {\n throw new Error(\n 'Trans components must not have defaults, use lokalise instead.'\n );\n }\n if (!ready) {\n return <>...;\n }\n return ;\n};\n","import 'core-js/modules/es.promise.finally';\nimport 'core-js/modules/es.array.iterator';\nimport 'intersection-observer';\nimport 'custom-event-polyfill';\nimport 'whatwg-fetch';\n\nimport initData from 'init-data';\nimport {\n handleModuleError,\n isSpaModule,\n loadModule,\n loadSpaModule,\n runModule\n} from 'utils/modules';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { bootApp } from './boot-app';\nimport 'tradera/styles/global.scss';\n\nconst bootInit = () => {\n bootApp(initData);\n\n if (initData) {\n const module = initData.module.split('/')[4];\n let moduleLoader;\n if (isSpaModule(module, initData)) {\n moduleLoader = loadSpaModule(initData);\n } else {\n moduleLoader = import('./init-module')\n .then((initModule) => initModule.default(initData))\n .then(() => loadModule(module, initData))\n .then((loadedModule) => {\n if (loadedModule) {\n runModule(loadedModule, initData);\n }\n return;\n });\n }\n moduleLoader\n .then(() => {\n window.document.body.setAttribute('data-module-loaded', 'true');\n return;\n })\n .catch(handleModuleError);\n }\n};\n\nif (!isServer) {\n bootInit();\n}\n","import { SocketIoChannel } from 'tradera/services/socket-io-channel';\nimport { isServer } from 'tradera/utils/nextjs';\n\nlet globalSocket = null;\n\nexport const getGlobalSocket = (socketUrl) => {\n if (isServer) {\n throw new Error('Must not be used on server.');\n }\n if (!globalSocket) {\n // eslint-disable-next-line better-mutation/no-mutation\n globalSocket = new SocketIoChannel(socketUrl, true);\n }\n return globalSocket;\n};\n","import {\n showItemFirstBidToast,\n showItemOutbiddedToast,\n showItemPaidToast,\n showItemSoldToast,\n showItemWishListReminderToast,\n showItemWonToast\n} from './toasts';\nimport { getGlobalSocket } from './global-socket';\n\nexport const bootSiteWideNotifications = ({ socketUrl, joinMemberRoom }) => {\n if (!joinMemberRoom) {\n return;\n }\n\n const socket = getGlobalSocket(socketUrl);\n let isRetry = false;\n socket.on('JoinMemberRoom', async ({ success }) => {\n // To avoid infinite loop\n if (success || isRetry) {\n // eslint-disable-next-line better-mutation/no-mutation\n isRetry = false;\n return;\n }\n\n // eslint-disable-next-line better-mutation/no-mutation\n isRetry = true;\n\n socket.disconnect();\n socket.connect();\n });\n socket.addEventListener('MemberItemOutbidded', (data) =>\n showItemOutbiddedToast(data.ItemId, data.NewLeadingBidAmount)\n );\n socket.addEventListener('MemberItemFirstBid', (data) =>\n showItemFirstBidToast(data.ItemId)\n );\n socket.addEventListener('MemberItemSold', (data) =>\n showItemSoldToast(data.ItemId, data.Price)\n );\n socket.addEventListener('MemberItemWon', (data) =>\n showItemWonToast(data.ItemId, data.Price)\n );\n socket.addEventListener('MemberItemPaid', (data) =>\n showItemPaidToast(data.ItemId)\n );\n socket.addEventListener('MemberItemWishListReminder', (data) =>\n showItemWishListReminderToast(data.ItemId, data.TimeLeftMinutes)\n );\n socket.join('member');\n};\n","import dayjs from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\n\nexport const configureDayjs = (preferredLanguageCode) => {\n dayjs.locale(preferredLanguageCode);\n dayjs.extend(isBetween);\n dayjs.extend(isSameOrAfter);\n};\n","import type { InitData } from 'tradera/state/init-data/types';\nimport { bootLanguages } from 'tradera/lang/boot-languages';\nimport { GtmService as gtm } from 'tradera/services/google-tagmanager/google-tagmanager-service';\nimport { bootSiteWideNotifications } from 'tradera/services/boot-site-wide-notifications';\nimport { syncServerTime } from 'tradera/utils/server-date';\nimport { configureDayjs } from 'tradera/apps/tradera/configure-dayjs';\n\nexport const bootApp = ({\n languageCodeIso2,\n webLiveUrl,\n memberId\n}: InitData) => {\n bootLanguages();\n gtm.loadGtmScript();\n syncServerTime();\n\n if (languageCodeIso2) {\n configureDayjs(languageCodeIso2);\n }\n\n if (webLiveUrl) {\n bootSiteWideNotifications({\n socketUrl: webLiveUrl,\n joinMemberRoom: !!memberId\n });\n }\n};\n","import { logger } from 'packages/logger';\n\nfunction isSpaModule(module, initData) {\n const { isSinglePageApp } = initData;\n switch (module) {\n case 'endless-recommendation':\n case 'favourite-sellers':\n case 'landing':\n case 'report-item':\n case 'tradera-shop':\n return true;\n\n default:\n return isSinglePageApp;\n }\n}\n\nasync function loadSpaModule(initData) {\n const module = await import(\n /* webpackChunkName: \"tradera\" */ '../../../apps/tradera/'\n );\n return module.default(initData);\n}\n\nasync function loadModule(module) {\n switch (module) {\n // Fallback modules for when SPA is toggled off\n // TODO: Remove when fully incorporated in SPA\n case 'order-checkout':\n case 'landing':\n case 'cart':\n case 'upi':\n case 'inr':\n return await import(\n /* webpackChunkName: \"tradera\" */ '../../../apps/tradera/'\n );\n }\n}\n\nfunction runModule(module, initData = {}) {\n if (!module.default) {\n console.error(`Cannot run module \"${module}\" without exported default`);\n }\n return module.default(initData);\n}\n\nconst handleModuleError = (error) => logger(error);\n\nexport { isSpaModule, loadSpaModule, loadModule, runModule, handleModuleError };\n","export const isSwedenCountryCodeOrUndefined = (countryCodeIso2) =>\n countryCodeIso2 === undefined ||\n countryCodeIso2 === null ||\n countryCodeIso2.toLowerCase() === 'se';\n\nexport const isSwedenCountryNameOrUndefined = (countryName) =>\n countryName === undefined ||\n countryName === null ||\n countryName.toLowerCase() === 'sweden';\n\nexport const isDenmarkCountryCode = (countryCodeIso2) =>\n !isSwedenCountryCodeOrUndefined(countryCodeIso2) &&\n countryCodeIso2.toLowerCase() === 'dk';\n\nexport const isNetherlandsCountryCode = (countryCodeIso2) =>\n !isSwedenCountryCodeOrUndefined(countryCodeIso2) &&\n countryCodeIso2.toLowerCase() === 'nl';\n\nexport const areCountryCodesIso2Equal = (first, second) =>\n (first || 'SE').toUpperCase() === (second || 'SE').toUpperCase();\n","import { formatNumberWithSeparators } from 'tradera/utils/format';\n\nexport type Price = string | number;\n\ntype FormatPriceOptions = {\n currency: string;\n preferredCurrency: string;\n style: 'decimal' | 'currency' | 'percent' | 'unit';\n currencyDisplay: 'code' | 'symbol' | 'narrowSymbol' | 'name';\n useGrouping: boolean;\n roundUp: boolean;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n};\n\nexport type OverrideFormatPriceOptions = Partial;\n\nexport const formatPrice = (\n price: Price,\n inputLocale: string | null,\n overrideOptions: OverrideFormatPriceOptions = {}\n): string => {\n const locale = inputLocale || 'sv-SE';\n const defaultOptions: FormatPriceOptions = {\n style: 'currency',\n currency: 'SEK',\n preferredCurrency: 'SEK',\n currencyDisplay:\n locale.startsWith('sv') &&\n (overrideOptions.currency || 'SEK') === 'SEK' &&\n (overrideOptions.preferredCurrency || 'SEK') === 'SEK'\n ? 'symbol'\n : 'code',\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n roundUp: false\n };\n const options = {\n ...defaultOptions,\n ...overrideOptions\n };\n let priceAsNumber = typeof price !== 'number' ? parseInt(price) : price;\n\n if (options.roundUp) {\n const decimalFactorForRounding = Math.pow(\n 10,\n options.maximumFractionDigits\n );\n priceAsNumber =\n Math.ceil(priceAsNumber * decimalFactorForRounding) /\n decimalFactorForRounding;\n }\n\n if (!isLocaleFormattingSupportedInBrowser) {\n const suffix =\n options.currencyDisplay === 'code' && options.currency === 'SEK'\n ? 'kr'\n : options.currency;\n return `${priceAsNumber} ${suffix}`;\n }\n\n const formattedPrice = priceAsNumber.toLocaleString(locale, options);\n return formatNumberWithSeparators(formattedPrice);\n};\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsLocales() {\n try {\n Number(0).toLocaleString('i');\n } catch (e: unknown) {\n return (\n e !== null &&\n typeof e === 'object' &&\n 'name' in e &&\n e.name === 'RangeError'\n );\n }\n return false;\n}\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl === 'object' &&\n Intl &&\n typeof Intl.NumberFormat === 'function'\n );\n}\n\nconst isLocaleFormattingSupportedInBrowser =\n toLocaleStringSupportsLocales() && toLocaleStringSupportsOptions();\n","export const isSwedishOrUndefined = (languageCodeIso2) =>\n languageCodeIso2 === undefined || languageCodeIso2.toLowerCase() === 'sv';\n\nexport const getLanguageFromCountryCode = (countryCodeIso2) => {\n const key = countryCodeIso2?.toLowerCase() || 'se';\n const languageMap = {\n se: 'sv',\n dk: 'da',\n de: 'de',\n fr: 'fr',\n nl: 'nl'\n };\n return languageMap[key] || 'en';\n};\n\nexport const getCountryCodeForFlagFromLanguage = (languageCode) => {\n const key = languageCode?.toLowerCase() || 'sv';\n const countryMap = {\n en: 'gb', // We default to GB which isn't strictly correct\n da: 'dk',\n de: 'de',\n fr: 'fr',\n nl: 'nl'\n };\n return countryMap[key] || 'se';\n};\n\nexport const getCountryCodeFromLanguage = (languageCode) => {\n const key = languageCode?.toLowerCase() || 'sv';\n const countryMap = {\n da: 'dk',\n de: 'de',\n fr: 'fr',\n nl: 'nl'\n };\n return countryMap[key] || 'se';\n};\n\nexport const areLanguageCodesIso2Equal = (first, second) =>\n (first || 'SV').toUpperCase() === (second || 'SV').toUpperCase();\n","import { useCallback } from 'react';\nimport { useCurrentLanguage } from 'tradera/lang/translate';\nimport { useAppSelector } from 'tradera/state/hooks';\nimport { selectPreferredCurrency } from 'tradera/state/multi-currency/selectors';\nimport type {\n OverrideFormatPriceOptions,\n Price\n} from 'tradera/localization/format-price';\nimport { formatPrice } from 'tradera/localization/format-price';\n\n/**\n * Formats a price in the current language and currency.\n */\nexport const useLocalizedPriceFormatter = () =>\n useLocalizedPriceFormatterInternal();\n\n/**\n * Same as useLocalizedPriceFormatter but it always rounds up. Needed for fixed prices,\n * so we never display a price that is lower than what the user will pay in the end.\n */\nexport const useLocalizedPriceFormatterRoundingUp = () =>\n useLocalizedPriceFormatterInternal({ roundUp: true });\n\n/**\n * Does not convert anything. If you for some reason are working with the local currency\n * it could be used but avoid it. Example of usage: in the bid-modal we want to display\n * the exact amount that was input\n */\nexport const useLocalizedPriceFormatterNoConversion = () =>\n useLocalizedPriceFormatterInternal({ conversion: false });\n\n/**\n * Makes the conversion but leaves the symbol. Used to compare local amounts to make a\n * decision in the code.\n */\nexport const useLocalizedPriceFormatterNoSymbol = () =>\n useLocalizedPriceFormatterInternal({ style: 'decimal' });\n\n/**\n * Formats a price in the current language and currency but overrides the range of\n * decimals it normally uses.\n */\nexport const useLocalizedPriceFormatterWithDecimalRange = (\n minDecimals?: number,\n maxDecimals?: number\n) => useLocalizedPriceFormatterInternal({ minDecimals, maxDecimals });\n\ntype LocalizedPriceFormatterOptions = {\n conversion?: boolean;\n style?: OverrideFormatPriceOptions['style'];\n roundUp?: OverrideFormatPriceOptions['roundUp'];\n minDecimals?: number;\n maxDecimals?: number;\n};\n\n/**\n * Internal to this module, needed to limit the scope of the API.\n */\nconst useLocalizedPriceFormatterInternal = ({\n conversion = true,\n style,\n roundUp,\n minDecimals,\n maxDecimals\n}: LocalizedPriceFormatterOptions = {}) => {\n const { language } = useCurrentLanguage();\n const preferredCurrency = useAppSelector(selectPreferredCurrency);\n\n return useCallback(\n (price: Price) =>\n formatPrice(\n conversion ? preferredCurrency.rate * Number(price) : price,\n language,\n {\n currency: preferredCurrency.code,\n minimumFractionDigits:\n minDecimals === undefined\n ? preferredCurrency.decimals\n : minDecimals,\n maximumFractionDigits:\n maxDecimals === undefined\n ? preferredCurrency.decimals\n : maxDecimals,\n ...(style ? { style } : {}),\n ...(roundUp ? { roundUp } : {})\n }\n ),\n [\n conversion,\n language,\n preferredCurrency,\n roundUp,\n style,\n minDecimals,\n maxDecimals\n ]\n );\n};\n","import io from 'socket.io-client';\nimport { logger } from 'packages/logger';\nimport { isServer } from 'tradera/utils/nextjs';\n\nexport class MissingSocketIoServerUrl extends ReferenceError {}\nexport class MissingRoomId extends ReferenceError {}\n\nconst isAllowedToConnect = !isServer;\n\n/**\n * Connect to a socket.io channel & add callbacks for events it broadcasts\n * @param {string} socketIoServerUrl\n */\nexport class SocketIoChannel {\n constructor(socketIoServerUrl, autoConnect = false) {\n if (!socketIoServerUrl) {\n throw new MissingSocketIoServerUrl();\n }\n this.socket = io(socketIoServerUrl, {\n autoConnect: isAllowedToConnect && autoConnect\n });\n this.events = {};\n this.rooms = new Set();\n\n this.socket.on('connect', () => {\n // Rejoin room on reconnect if network connection is lost\n this.rooms.forEach((room) => this.join(room));\n });\n\n this.socket.on('clientEvent', (payload) => {\n if (!payload.Type) {\n logger('socket.io missing clientEvent Type', {\n contexts: {\n socketIo: {\n payload\n }\n }\n });\n return;\n }\n const callback = this.events[payload.Type];\n if (callback) {\n callback(payload.Event, this);\n } else {\n logger(`socket.io unknown clientEvent type`, {\n contexts: {\n socketIo: {\n type: payload.Type\n }\n }\n });\n }\n });\n }\n\n connect() {\n if (isAllowedToConnect && !this.isConnected()) this.socket.connect();\n }\n\n join(room) {\n if (!room) {\n throw new MissingRoomId();\n }\n if (this.isConnected()) {\n this.socket.emit('join', room);\n }\n if (!this.rooms.has(room)) {\n // Queue join until connect\n this.rooms.add(room);\n }\n }\n\n leave(room, rejoinOnConnect = false) {\n if (!room) {\n throw new MissingRoomId();\n }\n if (this.isConnected() && this.rooms.has(room)) {\n this.socket.emit('leave', room);\n }\n if (!rejoinOnConnect) {\n this.rooms.delete(room);\n }\n }\n\n addEventListener(event, callback) {\n this.events[event] = callback;\n }\n\n removeEventListener(event) {\n delete this.events[event];\n }\n\n on(event, callback) {\n this.socket.on(event, callback);\n }\n\n off(event, callback) {\n this.socket.off(event, callback);\n }\n\n isConnected() {\n return this.socket?.connected;\n }\n\n disconnect() {\n if (!this || !this.isConnected()) return;\n this.rooms.forEach((room) => this.leave(room, true));\n this.socket.disconnect();\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"item-toast\":\"item-toast--S7lV1\",\"itemToast\":\"item-toast--S7lV1\",\"item-toast-image\":\"item-toast-image--LsD4b\",\"itemToastImage\":\"item-toast-image--LsD4b\"};","import ALink from 'tradera/components/alink/alink';\nimport { useTranslator, useUrlLocalizer } from 'tradera/lang/translate';\nimport styles from './item-toast.module.scss';\nimport { useLocalizedPriceFormatter } from 'tradera/localization/use-localized-price-formatter';\n\nexport const ItemToast = ({\n imageUrl,\n itemUrl,\n shortDescription,\n type,\n eventData\n}) => {\n const { toLocalizedUrl } = useUrlLocalizer();\n\n return (\n \n
\n \n \n
\n
\n );\n};\n\nconst ToastMessage = ({ type, shortDescription, eventData }) => {\n const { t } = useTranslator();\n const localizedPriceFormatter = useLocalizedPriceFormatter();\n let message;\n switch (type) {\n case 'ItemOutbidded':\n message = t('siteWideNotifications_itemOutbidded_localized', {\n newLeadingBid: localizedPriceFormatter(\n eventData.newLeadingBidAmount\n ),\n shortDescription\n });\n break;\n case 'ItemFirstBid':\n message = t('siteWideNotifications_itemFirstBid', {\n shortDescription\n });\n break;\n case 'ItemSold':\n message = t('siteWideNotifications_itemSold_localized', {\n price: localizedPriceFormatter(eventData.price),\n shortDescription\n });\n break;\n case 'ItemWon':\n message = t('siteWideNotifications_itemWon_localized', {\n price: localizedPriceFormatter(eventData.price),\n shortDescription\n });\n break;\n case 'ItemPaid':\n message = t('siteWideNotifications_itemPaid', {\n shortDescription\n });\n break;\n case 'ItemWishListReminder':\n message = t('siteWideNotifications_itemWishListReminder', {\n shortDescription,\n timeLeftMinutes: eventData.timeLeftMinutes\n });\n }\n return
{message}
;\n};\n","import { useTranslator } from 'tradera/lang/translate';\n\ntype Props = {\n message: string;\n header?: string;\n messageData?: Record;\n headerData?: Record;\n};\n\nexport const MessageToast = ({\n message,\n header,\n messageData,\n headerData\n}: Props) => {\n const { t } = useTranslator();\n\n return (\n
\n {header &&

{t(header, headerData)}

}\n {message && (\n \n {t(message, messageData)}\n \n )}\n
\n );\n};\n","import { createElement } from 'react';\nimport { toast } from 'react-toastify';\n\nimport { ItemToast } from 'tradera/components/toasts/item-toast';\nimport { MessageToast } from 'tradera/components/toasts/message-toast';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { webApiClient } from '../utils/http';\nimport { createQueue } from './toast-queue';\nimport type { ItemBasicInfoApiResponse } from 'tradera/state/services/types/webapi-browse-generated';\n\nconst queuedToasts = createQueue();\n\nconst openNextToast = async () => {\n if (isServer) {\n return;\n }\n if (queuedToasts.isInProgress()) {\n return;\n }\n const nextItem = queuedToasts.next();\n if (nextItem) {\n try {\n const queueLength = queuedToasts.getLength();\n const toastOptions = {\n autoClose: Math.max(2, 5 - queueLength) * 1000,\n onClose: () => {\n queuedToasts.notifyDone();\n openNextToast();\n }\n };\n if (nextItem.eventData.itemId) {\n const response =\n await webApiClient.get(\n `/browse/item-basic-info/${nextItem.eventData.itemId}`\n );\n const { imageUrl, itemUrl, shortDescription } =\n response.data.item || {};\n toast(\n // TODO: convert to JSX when we have a proper story for this\n createElement(ItemToast, {\n imageUrl,\n itemUrl,\n shortDescription,\n type: nextItem.type,\n eventData: nextItem.eventData\n }),\n toastOptions\n );\n } else if (nextItem.eventData.message) {\n const { message, header, messageData, headerData } =\n nextItem.eventData;\n toast(\n ,\n { ...toastOptions, type: nextItem.eventData.type }\n );\n }\n } catch (e) {\n queuedToasts.notifyDone();\n openNextToast();\n throw e;\n }\n }\n};\n\nconst handleNotification = async (\n type: string,\n eventData:\n | {\n message: string;\n header?: string | null;\n messageData: unknown;\n headerData: unknown;\n type: (typeof toast.TYPE)[keyof typeof toast.TYPE] | string;\n }\n | {\n itemId: number;\n newLeadingBidAmount?: number;\n price?: number;\n timeLeftMinutes?: number;\n },\n ttlInMinutes = 10\n) => {\n if (document.visibilityState !== 'visible') {\n // We don't want to show messages if page is not visible. If we do they will queue up!\n return;\n }\n queuedToasts.add({ type, eventData }, ttlInMinutes);\n openNextToast();\n};\n\nexport const showItemOutbiddedToast = (\n itemId: number,\n newLeadingBidAmount: number\n) =>\n handleNotification('ItemOutbidded', {\n itemId,\n newLeadingBidAmount\n });\n\nexport const showItemFirstBidToast = (itemId: number) =>\n handleNotification('ItemFirstBid', { itemId });\n\nexport const showItemSoldToast = (itemId: number, price: number) =>\n handleNotification('ItemSold', { itemId, price });\n\nexport const showItemWonToast = (itemId: number, price: number) =>\n handleNotification('ItemWon', { itemId, price });\n\nexport const showItemPaidToast = (itemId: number) =>\n handleNotification('ItemPaid', { itemId });\n\nexport const showItemWishListReminderToast = (\n itemId: number,\n timeLeftMinutes: number\n) =>\n handleNotification(\n 'ItemWishListReminder',\n { itemId, timeLeftMinutes },\n timeLeftMinutes > 10 ? 10 : 2\n );\n\n/**\n *\n * @param message The message translation key\n * @param header The header translation key\n * @param messageData Any data that's needed for the message translation key\n * @param headerData Any data that's needed for the header translation key\n */\nexport const showSuccessToast = (\n message: string,\n header?: string,\n messageData: unknown = null,\n headerData: unknown = null\n) => {\n handleNotification('Message', {\n message,\n header,\n messageData,\n headerData,\n type: toast.TYPE.SUCCESS\n });\n};\n\nexport const showErrorToast = (\n message: string,\n header?: string | null,\n messageData: unknown = null,\n headerData: unknown = null\n) => {\n handleNotification('Message', {\n header,\n message,\n messageData,\n headerData,\n type: toast.TYPE.ERROR\n });\n};\n\nexport const showInfoToast = (\n message: string,\n header?: string,\n messageData = null,\n headerData = null\n) => {\n handleNotification('Message', {\n message,\n header,\n messageData,\n headerData,\n type: toast.TYPE.INFO\n });\n};\n\n// export const ToastTestButton = () => (\n// {\n// e.preventDefault();\n// showItemWishListReminderToast(85391643, 3);\n// showItemOutbiddedToast(85391639, 99);\n// showItemFirstBidToast(85391639);\n// showItemSoldToast(85391639, 1234);\n// showItemWonToast(85391639, 1234);\n// showItemPaidToast(85391639);\n// }}>\n// Test\n// \n// );\n","import type { RootState } from '../configure-store';\n\nexport const selectEnvironment = (state: RootState) => state.environment;\n\nexport const selectFeatureSwitches = (state: RootState) =>\n state?.environment?.featureSwitches;\nexport const selectIsFeatureEnabled =\n (featureName: string) => (state: RootState) =>\n selectFeatureSwitches(state)?.[featureName] === true;\n\nexport const selectEnvVariables = (state: RootState) =>\n state.environment.variables;\n\nexport const selectWebLiveUrl = (state: RootState) =>\n state.environment.variables.PUBLIC_WEB_LIVE_URL;\n\nexport const selectBrowserName = (state: RootState) =>\n state?.environment?.browserName;\n\nexport const selectIsNativeApp = (state: RootState) =>\n !!state?.environment?.isNativeAppContext;\n\nexport const selectNativeAppLanguage = (state: RootState) =>\n state?.environment?.appLanguage;\n","import { DEFAULT_LANGUAGE } from 'tradera/lang/constants.mjs';\nimport type { RootState } from '../configure-store';\nimport { createSelector } from '@reduxjs/toolkit';\n\nexport const selectAvailableLanguages = (state: RootState) =>\n state.language.available;\n\nexport const selectAvailableLanguageCodesIso2 = createSelector(\n selectAvailableLanguages,\n (available) => available?.map((x) => x.languageCodeIso2)\n);\n\nexport const selectPreferredLanguage = (state: RootState) =>\n state.language.preferred;\n\nexport const selectPreferredLanguageCode = (state: RootState) =>\n state?.language?.preferred?.languageCodeIso2 || DEFAULT_LANGUAGE;\n\nexport const selectLocale = (state: RootState) => {\n const language = selectPreferredLanguageCode(state);\n const country = state.language.memberCountryCodeIso2 || 'SE';\n\n return `${language}-${country}`;\n};\n\nexport const selectIsForeignLanguageActivated = (state: RootState) =>\n selectPreferredLanguage(state)?.languageCodeIso2 !== DEFAULT_LANGUAGE;\n\nexport const selectAutomaticTranslationPreferred = (\n state: RootState\n): boolean => state.language.automaticTranslationPreferred ?? true;\n","import { selectShippingRegionCountryCodeIso2 } from 'tradera/state/shipping-region/selectors';\nimport { areCountryCodesIso2Equal } from 'tradera/localization/countrycode';\nimport type { RootState } from '../configure-store';\nimport { RequirementTypeApi } from '../services/types/webapi-member-generated';\n\nexport const selectMember = (state: RootState) => state.member;\n\nexport const selectIsLoggedIn = (state: RootState) => state.member?.isLoggedIn;\n\nexport const selectGeolocation = (state: RootState) =>\n state.member?.geolocation;\n\nexport const selectMemberId = (state: RootState) => state?.member?.memberId;\n\nexport const selectMemberAlias = (state: RootState) =>\n state.member?.memberAlias;\n\nexport const selectMemberEmail = (state: RootState) =>\n state.member?.memberEmail;\n\nexport const selectMemberFirstName = (state: RootState) =>\n state.member?.memberFirstName;\n\nexport const selectMemberLastName = (state: RootState) =>\n state.member?.memberLastName;\n\nexport const selectMemberBirthdate = (state: RootState) =>\n state.member?.memberBirthdate;\n\nexport const selectIsMemberFemale = (state: RootState) =>\n state.member?.gender === 'female';\n\nexport const selectCurrencyCode = (state: RootState) =>\n state.member?.currencyCode;\n\n// Prefer using selectShippingRegionCountryCodeIso2 to be safe for all users, non-logged in and logged in.\nexport const selectMemberCountryCodeIso2 = (state: RootState) =>\n state.member?.memberCountryCodeIso2;\n\nexport const selectIsOutsideSweden = (state: RootState) =>\n state.member?.geolocation?.isoCode &&\n state.member?.geolocation?.isoCode.toLowerCase() !== 'se';\n\nexport const showDanishFromCountry = (state: RootState) => {\n const fromCountry = selectShippingRegionCountryCodeIso2(state);\n return areCountryCodesIso2Equal(fromCountry, 'DK');\n};\n\nexport const selectMemberTown = (state: RootState) => state.member?.memberTown;\n\nexport const selectMemberPermissions = (state: RootState) =>\n state.member.permissions;\n\nexport const selectIsUnderage = (state: RootState) => {\n const permissions = selectMemberPermissions(state);\n return (\n permissions?.sellPermission?.isPermitted === false &&\n permissions?.sellPermission?.requirementsNotMet?.includes(\n RequirementTypeApi.IsOverMinimumAge\n )\n );\n};\n\nexport const selectIsCompany = (state: RootState) => state.member?.isCompany;\n\nexport const selectIsImpersonationSession = (state: RootState) =>\n state.member?.isImpersonationSession;\n\nexport const selectMemberState = (state: RootState) =>\n state.member?.memberState;\n\nexport const selectIsTrustedMember = (state: RootState) =>\n state.member?.isTrustedMember;\n","import { type PayloadAction, createSlice } from '@reduxjs/toolkit';\n\nexport type Currency = {\n code: string;\n rate: number;\n valueDate: string;\n updatedDate: string;\n symbolSuffix: string;\n shortName: string;\n longName: string;\n decimals: number;\n};\n\nexport const defaultCurrency: Currency = {\n code: 'SEK',\n rate: 1,\n valueDate: '0000-01-01',\n updatedDate: '0000-01-01T00:00:00.0000000Z',\n symbolSuffix: 'kr',\n shortName: 'SEK',\n longName: 'Svensk krona',\n decimals: 0\n};\n\ntype MultiCurrencyState = {\n enabled: boolean;\n currencies: Currency[];\n preferredCurrency: Currency | null;\n};\n\nconst initialState: MultiCurrencyState = {\n enabled: false,\n currencies: [],\n preferredCurrency: null\n};\n\nconst resolveCurrency = (\n enabled: boolean,\n currencyCode: string | undefined,\n currencies: Currency[]\n) => {\n if (!enabled || !currencyCode) {\n return null;\n }\n return (\n currencies.find((currency) => currency.code === currencyCode) || null\n );\n};\n\nconst multiCurrencySlice = createSlice({\n name: 'multiCurrency',\n initialState,\n reducers: {\n initialize: (\n state,\n action: PayloadAction<{\n enabled: boolean;\n preferredCurrency: string;\n currencies?: Currency[];\n }>\n ) => {\n const {\n currencies = [],\n enabled,\n preferredCurrency\n } = action.payload;\n\n return {\n ...state,\n enabled,\n currencies,\n preferredCurrency: resolveCurrency(\n enabled,\n preferredCurrency,\n currencies\n )\n };\n },\n setPreferredCurrency: (\n state,\n { payload }: PayloadAction<{ currencyCode: string }>\n ) => {\n const { enabled, currencies } = state;\n\n return {\n ...state,\n preferredCurrency: resolveCurrency(\n enabled,\n payload.currencyCode,\n currencies\n )\n };\n }\n }\n});\n\nexport const { initialize, setPreferredCurrency } = multiCurrencySlice.actions;\nexport default multiCurrencySlice.reducer;\n","import type { RootState } from '../configure-store';\nimport { defaultCurrency } from './reducer';\n\nexport const selectCurrencies = (state: RootState) =>\n state.multiCurrency.currencies;\n\nexport const selectPreferredCurrency = (state: RootState) =>\n state.multiCurrency.preferredCurrency ||\n state.multiCurrency.currencies.find((c) => c.code === 'SEK') ||\n defaultCurrency;\n\nexport const selectIsPreferredCurrencySEK = (state: RootState) =>\n selectPreferredCurrency(state)?.code === 'SEK';\n\nexport const selectShowCurrencySelection = (state: RootState) =>\n !!(\n state.multiCurrency.enabled &&\n state.multiCurrency.preferredCurrency &&\n state.multiCurrency.currencies &&\n state.multiCurrency.currencies.length > 0\n );\n","/* eslint-disable */\n/* tslint:disable */\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\nexport interface ActivesummaryRequest {\n request?: MemberActiveItemsSummaryApiRequest;\n}\n\nexport interface AliasSuggestionsCreateParams {\n request?: GetAliasSuggestionsApiRequest;\n}\n\nexport interface AutoShipmentCheckoutEnabledUpdateParams {\n request?: SetAutoShipmentCheckoutMemberEnabledApiRequest;\n}\n\nexport interface AutoshipmentRequest {\n request?: GetMemberHasAutoShipmentCheckoutApiRequest;\n}\n\nexport interface BankIdPasswordRecoveryCancelCreateParams {\n request?: BankIdPasswordRecoveryCancelApiRequest;\n}\n\nexport interface BankIdProgressWithIdRequest {\n bankIdOrderRef?: string;\n /** @format int32 */\n memberid?: number;\n}\n\nexport interface BankIdRecoveryWithIdCreateParams {\n request?: BankIdBeginWithIdApiRequest;\n}\n\nexport interface BankaccountCreateParams {\n request?: SetBankAccountPayoutTransferMethodApiRequest;\n}\n\nexport interface BankaccountDeleteParams {\n request?: RemoveBankAccountPayoutTransferMethodApiRequest;\n}\n\nexport interface BankidVerificationRequest {\n /** @format int32 */\n fixedPrice?: number;\n}\n\nexport interface BlockedMembersCreateParams {\n request?: BlockMemberApiRequest;\n}\n\nexport interface BlockedMembersDeleteParams {\n request?: UnblockMemberApiRequest;\n}\n\nexport interface BlockedMembersRequest {\n request?: GetBlockedMembersApiRequest;\n}\n\nexport interface BlueshiftCredentialsRequest {\n request?: GetBlueshiftEventApiCredentialsApiRequest;\n}\n\nexport interface BraintreeOnboardingDetailsRequest {\n request?: GetBraintreeOnboardingDetailsApiRequest;\n}\n\nexport interface BuyerConfirmationCreateParams {\n request?: AutoPayoutReviewBuyerConfirmationApiRequest;\n}\n\nexport interface BuyerConfirmationRequest {\n /** @format int32 */\n payoutReviewId?: number;\n}\n\nexport interface BuyerCreateParams {\n request?: SaveFeedbackAsBuyerApiRequest;\n}\n\nexport interface BuyerRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface BuyerTransactionVisibilityCreateParams {\n request?: SetBuyerTransactionVisibilityApiRequest;\n}\n\nexport interface ChangeStatusToAppealedCreateParams {\n request?: ChangeDisputeStatusToAppealedApiRequest;\n}\n\nexport interface ChangealiasCreateParams {\n request?: ChangeAliasApiRequest;\n}\n\nexport interface ChangeemailCreateParams {\n request?: ChangeEmailWithIdApiRequest;\n memberId: string;\n}\n\nexport interface ChangepasswordCreate2Params {\n request?: ChangePasswordWithIdApiRequest;\n memberId: string;\n}\n\nexport interface ChangepasswordCreateParams {\n request?: ChangePasswordApiRequest;\n}\n\nexport interface CombinedShippingDaysUpdateParams {\n request?: SetCombinedShippingMemberDaysApiRequest;\n}\n\nexport interface CombinedShippingEnabledUpdateParams {\n request?: SetCombinedShippingMemberEnabledApiRequest;\n}\n\nexport interface CommentCreateParams {\n request?: CommentFeedbackApiRequest;\n}\n\nexport interface CommitonpaymentEnabledUpdateParams {\n request?: SetCommitOnPaymentMemberEnabledApiRequest;\n}\n\nexport interface CompanyContactSsnRequest {\n request?: MemberHasCompanyContactSsnApiRequest;\n}\n\nexport interface CompanyContactSsnUpdateParams {\n request?: UpdateMemberCompanyContactSsnApiRequest;\n}\n\nexport interface CompanyDac7StatusRequest {\n request?: GetMemberCompanyDac7StatusApiRequest;\n}\n\nexport interface CompanyMoneyTransferLicenseStatusRequest {\n request?: GetMemberCompanyMoneyTransferLicenseStatusApiRequest;\n}\n\nexport interface CompleteQuestionnaireCreateParams {\n request?: CompleteQuestionnaireApiRequest;\n}\n\nexport interface CompletehyperwallettransfermethodCreateParams {\n request?: CompleteHyperwalletTransferMethodApiRequest;\n}\n\nexport interface ConfirmCreateParams {\n request?: ConfirmMutualFeedbackRemovalApiRequest;\n}\n\nexport interface ConfirmationValidationRequest {\n /** @format int32 */\n id?: number;\n}\n\nexport interface ConsentCreateParams {\n request?: SetMemberConsentApiRequest;\n}\n\nexport interface ContactSellerCreateParams {\n request?: ContactSellerApiRequest;\n}\n\nexport interface CreateCreateParams {\n request?: CreateFeedbackRemovalApiRequest;\n}\n\nexport interface CreateVerificationCodeCreateParams {\n request?: CreateVerificationCodeApiRequest;\n}\n\nexport interface CreateVerificationCodeWithMemberIdCreateParams {\n request?: CreateVerificationCodeWithMemberIdApiRequest;\n}\n\nexport interface CreationValidationRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface CurrencyUpdateParams {\n request?: UpdateMemberCurrencyApiRequest;\n}\n\nexport interface DeactivateaccountCreateParams {\n request?: DeactivateMemberAccountPermanentlyApiRequest;\n}\n\nexport interface DeactivateaccountRequest {\n request?: GetAccountDeactivationSettingsApiRequest;\n}\n\nexport interface DeactivateaccounttemporarilyCreateParams {\n request?: DeactivateMemberAccountTemporarilyApiRequest;\n}\n\nexport interface DenyCreateParams {\n request?: DenyMutualFeedbackRemovalApiRequest;\n}\n\nexport interface DetailsRequest {\n request?: MemberContactDetailsApiRequest;\n}\n\nexport interface DetailsUpdateParams {\n request?: UpdateMemberContactDetailsApiRequest;\n}\n\nexport interface DisputeCreateParams {\n request?: CreateDisputeApiRequest;\n}\n\nexport interface DisputeRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface DisputeMessageCreateParams {\n request?: AddDisputeMessageApiRequest;\n}\n\nexport interface DisputesRequest {\n transactionIds?: number[];\n}\n\nexport interface EmailSettingsRequest {\n request?: MemberEmailSettingsApiRequest;\n}\n\nexport interface EmailSettingsUpdateParams {\n request?: UpdateMemberEmailSettingsApiRequest;\n}\n\nexport interface EmailnotifyRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface EmailnotifyUpdateParams {\n request?: SetMessagingEmailNotifyApiRequest;\n}\n\nexport interface EndingtodaycountRequest {\n request?: GetWishlistItemsEndingTodayCountApiRequest;\n}\n\nexport interface FeatureSummaryByIdsRequest {\n itemIds?: number[];\n}\n\nexport interface FeedbackRequest {\n /** @format int32 */\n memberId?: number;\n feedbackRoleFilter?: FeedbackRoleFilter;\n feedbackRatingFilter?: FeedbackRatingFilter;\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface FeedbackRemovalDetailsRequest {\n /** @format int32 */\n feedbackRemovalRequestId?: number;\n}\n\nexport interface FeedbackRemovalsCreateParams {\n request?: FeedbackRemovalsApiRequest;\n}\n\nexport interface FeedbacksRequest {\n /** @format int32 */\n transactionId?: number;\n showDeleted?: boolean;\n}\n\nexport interface FindRequest {\n query?: string;\n /** @format int32 */\n page?: number;\n /** @format int32 */\n pageSize?: number;\n}\n\nexport interface GetGeoParams {\n request?: GetMemberGeoDataApiRequest;\n}\n\nexport interface GetSsnParams {\n request?: MemberHasSsnApiRequest;\n}\n\nexport interface GetWalletProfileStatusRequest {\n request?: GetMemberRiskProfileStatusApiRequest;\n}\n\nexport interface GetavailablecountriesforshippingRequest {\n request?: GetAvailableCountriesForShippingApiRequest;\n}\n\nexport interface GetcreditmemobyencryptedidRequest {\n encryptedId?: string;\n}\n\nexport interface GetcreditmemopdfRequest {\n /** @format int64 */\n invoiceId?: number;\n creditMemoDocumentId?: string;\n}\n\nexport interface GetcreditmemopdfbyidRequest {\n /** @format int64 */\n creditMemoId?: number;\n}\n\nexport interface GethyperwalletmemberdetailsRequest {\n request?: GetHyperwalletMemberDetailsApiRequest;\n}\n\nexport interface GetinvoicecsvRequest {\n /** @format int64 */\n invoiceId?: number;\n}\n\nexport interface GetinvoicepdfRequest {\n /** @format int64 */\n invoiceId?: number;\n}\n\nexport interface GetinvoicepdfbyencryptedidRequest {\n encryptedId?: string;\n}\n\nexport interface GetinvoicesRequest {\n /** @format int32 */\n pageIndex?: number;\n /** @format int32 */\n itemsPerPage?: number;\n}\n\nexport interface GetiscombinedshippingenabledRequest {\n request?: GetIsCombinedShippingEnabledApiRequest;\n}\n\nexport interface GetistraderapayenabledRequest {\n request?: GetIsTraderaPayEnabledApiRequest;\n}\n\nexport interface GetshippinginvoicememberRequest {\n request?: GetShippingInvoiceMemberApiRequest;\n}\n\nexport interface GettraderapayonboardingdetailsRequest {\n request?: GetTraderaPayOnboardingDetailsApiRequest;\n}\n\nexport interface GradeTransactionsRequest {\n gradeIds?: number[];\n}\n\nexport interface HasTinRequest {\n request?: GetMemberHasTaxIdentificationNumberApiRequest;\n}\n\nexport interface HyperwalletauthenticationtokenRequest {\n request?: GetHyperwalletAuthenticationTokenApiRequest;\n}\n\nexport interface HyperwallettransfermethodviewmodelRequest {\n request?: GetHyperwalletTransferMethodViewModelApiRequest;\n}\n\nexport interface ImageUploadUrlRequest {\n contentType?: string;\n}\n\nexport interface InitializeQuestionnaireCreateParams {\n request?: InitializeQuestionnaireApiRequest;\n}\n\nexport interface InitializeWalletProfileUpdateCreateParams {\n request?: UpdateRiskProfileApiRequest;\n}\n\nexport interface ItemIdsRequest {\n request?: GetWishListItemIdsApiRequest;\n}\n\nexport interface ItemShippedCreateParams {\n request?: SetItemShippedApiRequest;\n}\n\nexport interface ItemShippingBookedCreateParams {\n request?: SetItemShippingBookedApiRequest;\n}\n\nexport interface ItemVisibilityCreateParams {\n request?: SetItemVisibilityApiRequest;\n}\n\nexport interface ItemsRequest {\n /** @format int32 */\n memberId?: number;\n role?: FeedbackRoleFilter;\n rating?: FeedbackRatingFilter;\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface LanguageUpdateParams {\n request?: UpdateMemberLanguageApiRequest;\n}\n\nexport interface LastnotifiedCreateParams {\n request?: SetLastNotifiedApiRequest;\n}\n\nexport interface ListingFeeRequest {\n request?: MemberListingFeeApiRequest;\n}\n\nexport interface MakeAnOfferEnabledUpdateParams {\n request?: SetMakeAnOfferMemberEnabledApiRequest;\n}\n\nexport interface MarkAsEscalatedCreateParams {\n request?: MarkDisputeAsEscalatedApiRequest;\n}\n\nexport interface MarkAsSolvedCreateParams {\n request?: MarkDisputeAsSolvedApiRequest;\n}\n\nexport interface MarkedAsPaidBySellerCreateParams {\n request?: MarkAsPaidBySellerApiRequest;\n}\n\nexport interface MatchbankCreateParams {\n request?: MatchBankApiRequest;\n}\n\nexport interface McpStrikeConfirmCreateParams {\n request?: ConfirmMutualCancelOfPurchaseStrikeApiRequest;\n}\n\nexport interface McpStrikeCreateParams {\n request?: AddMutualCancelOfPurchaseStrikeApiRequest;\n}\n\nexport interface McpStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface MemberLatestPublishedListingRequest {\n request?: MemberLatestPublishedListingApiRequest;\n}\n\nexport interface MemberLocalizationRequest {\n request?: GetMemberLocalizationApiRequest;\n}\n\nexport interface MemberconsentRequest {\n request?: GetMemberConsentApiRequest;\n}\n\nexport interface MemberemailnotificationssettingsviewmodelRequest {\n request?: GetMemberEmailNotificationsSettingsViewModelApiRequest;\n}\n\nexport interface MemberprofilesettingsviewmodelRequest {\n request?: GetMemberProfileSettingsViewModelApiRequest;\n}\n\nexport interface MembersecuritysettingsviewmodelRequest {\n request?: GetMemberSecuritySettingsViewModelApiRequest;\n}\n\nexport interface MembersellersettingsviewmodelRequest {\n request?: GetMemberSellerSettingsViewModelApiRequest;\n}\n\nexport interface MessagingConfigurationRequest {\n request?: GetMessagingConfigurationApiRequest;\n}\n\nexport interface MoneyTransferLicenseAgreementRequest {\n /** @format date-time */\n asOf?: string;\n}\n\nexport interface NewDisputeItemSelectorPageRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface NewDisputePageRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n /** @deprecated */\n itemIds?: number[];\n transactionIds?: number[];\n}\n\nexport interface NotificationsRequest {\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n}\n\nexport interface OpenSupportThreadCreateParams {\n request?: CreateDisputeSupportMessagingThreadApiRequest;\n}\n\nexport interface PagedTransactionsRequest {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface PaymentproviderDeleteParams {\n request?: RemovePayoutTransferMethodApiRequest;\n}\n\nexport interface PayoutfrequencyRequest {\n request?: GetPayoutFrequencyApiRequest;\n}\n\nexport interface PayoutfrequencyoptionsRequest {\n request?: GetPayoutFrequencyOptionsApiRequest;\n}\n\nexport interface PayoutsettingsmodalviewmodelRequest {\n tinkRedirectPath?: string;\n}\n\nexport interface PayoutsettingsviewmodelRequest {\n request?: GetPayoutSettingsViewModelApiRequest;\n}\n\nexport interface PaypalCreateParams {\n request?: SetPayPalPayoutTransferMethodApiRequest;\n}\n\nexport interface PaypalDeleteParams {\n request?: RemovePayPalPayoutTransferMethodApiRequest;\n}\n\nexport interface PendingActionsRequest {\n request?: GetKycPendingActionsApiRequest;\n}\n\nexport interface PicklistRequest {\n /** @format int32 */\n pageIndex?: number;\n /** @format int32 */\n itemsPerPage?: number;\n retrieveHidden?: boolean;\n paidStatus?: PickListFilterPaidStatus;\n shippedStatus?: PickListFilterShippedStatus;\n /** @format date-time */\n from?: string;\n /** @format date-time */\n to?: string;\n}\n\nexport interface PicklistV2Request {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n retrieveHidden?: boolean;\n paidStatus?: PickListFilterPaidStatus;\n shippedStatus?: PickListFilterShippedStatus;\n /** @format date-time */\n fromDate?: string;\n /** @format date-time */\n toDate?: string;\n}\n\nexport interface PonrStrikeCreateParams {\n request?: AddPurchaseOrderNotReceivedStrikeApiRequest;\n}\n\nexport interface PonrStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface ProfileHomepageThemeRequest {\n request?: GetHomepageThemeSettingApiRequest;\n}\n\nexport interface ProfileHomepageThemeUpdateParams {\n request?: UpdateHomepageThemeApiRequest;\n}\n\nexport interface ProfilePageRequest {\n /** @format int32 */\n memberId?: number;\n languageCodeIso2?: string;\n}\n\nexport interface PublicProfileHeroImageDeleteParams {\n request?: RemoveMemberPublicProfileHeroImageApiRequest;\n}\n\nexport interface PublicProfileHeroImageUpdateParams {\n request?: UpdateMemberPublicProfileHeroImageApiRequest;\n}\n\nexport interface PublicProfileInformationUpdateParams {\n request?: UpdateMemberPublicProfileInformationApiRequest;\n}\n\nexport interface PublicprofileRequest {\n /** @format int32 */\n memberId?: number;\n toLanguageCodeIso2?: string;\n}\n\nexport interface PurchaseRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface PurchaseOrderStrikeCreateParams {\n request?: AddPurchaseOrderStrikeApiRequest;\n}\n\nexport interface PurchaseOrderStrikesRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface PurchaseorderRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface PurchaseorderitemRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface PutSsnParams {\n request?: UpdateMemberSsnApiRequest;\n}\n\nexport interface PutTinParams {\n request?: UpdateMemberTaxIdentificationNumberApiRequest;\n}\n\nexport interface QuestionnaireRequest {\n actionType?: string;\n languageCodeIso2?: string;\n}\n\nexport interface ReactivateAccountCreateParams {\n request?: ReactivateMemberAccountApiRequest;\n}\n\nexport interface ReferralCodeCreateParams {\n request?: GenerateMemberReferralCodeApiRequest;\n}\n\nexport interface RemovetraderapaypayoutdestinationCreateParams {\n request?: RemoveTraderaPayPayoutDestinationApiRequest;\n}\n\nexport interface ResendverificationCreateParams {\n request?: ResendPayoutTransferMethodVerificationCodeApiRequest;\n}\n\nexport interface RestartItemsSummaryRequest {\n itemIds?: number[];\n}\n\nexport interface SelectShippingCreateParams {\n request?: SelectAutoPayoutReviewAlternativeShipmentApiRequest;\n}\n\nexport interface SelectedDescriptionLanguageUpdateParams {\n request?: UpdateMemberSelectedDescriptionLanguageApiRequest;\n}\n\nexport interface SellerAutoFeedbackRequest {\n request?: SellerAutoFeedbackApiRequest;\n}\n\nexport interface SellerAutoFeedbackUpdateParams {\n request?: SaveSellerAutoFeedbackSettingsApiRequest;\n}\n\nexport interface SellerAutoPaymentReminderRequest {\n request?: SellerAutoPaymentReminderApiRequest;\n}\n\nexport interface SellerAutoPaymentReminderUpdateParams {\n request?: SaveSellerAutoPaymentReminderSettingsApiRequest;\n}\n\nexport interface SellerCreateParams {\n request?: SaveFeedbackAsSellerApiRequest;\n}\n\nexport interface SellerRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface SellerMagicalSyiEnabledRequest {\n request?: GetMagicalSyiEnabledApiRequest;\n}\n\nexport interface SellerMagicalSyiEnabledUpdateParams {\n request?: SetMagicalSyiEnabledApiRequest;\n}\n\nexport interface SelloprofileRequest {\n request?: MemberSelloProfileApiRequest;\n}\n\nexport interface SendGiftCardMailCreateParams {\n request?: SendGiftCardPackMailApiRequest;\n purchaseOrderId: string;\n}\n\nexport interface ServerStorageRequest {\n request?: MemberServerStorageListApiRequest;\n}\n\nexport interface ServerStorageUpdateParams {\n request?: MemberServerStoragePutApiRequest;\n}\n\nexport interface SessionDataRequest {\n request?: MemberSessionDataApiRequest;\n}\n\nexport interface SethyperwalletpayeeverificationassubmittedCreateParams {\n request?: SetHyperwalletPayeeVerificationAsSubmittedApiRequest;\n}\n\nexport interface SetpayoutfrequencyCreateParams {\n request?: SetPayoutFrequencyApiRequest;\n}\n\nexport interface ShippingFeeRuleFreeShippingCostLimitUpdateParams {\n request?: SetShippingFeeRuleFreeShippingCostLimitApiRequest;\n}\n\nexport interface ShippingFeeRuleShippingOptionUpdateParams {\n request?: SetShippingFeeRuleShippingOptionApiRequest;\n}\n\nexport interface ShippingFromCountryUpdateParams {\n request?: UpdateMemberShippingFromCountryApiRequest;\n}\n\nexport interface ShippingSelectorRequest {\n /** @format int32 */\n payoutReviewId?: number;\n}\n\nexport interface ShopDetailsRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface ShopitemOrderhistoryRequest {\n /** @format int32 */\n itemId?: number;\n}\n\nexport interface ShouldCollectTinRequest {\n request?: GetMemberShouldCollectTaxIdentificationNumberApiRequest;\n}\n\nexport interface SilentRequest {\n request?: GetMessagingSilentApiRequest;\n}\n\nexport interface SilentUpdateParams {\n request?: SetMessagingSilentApiRequest;\n}\n\nexport interface SmsCheckCreateParams {\n request?: SmsCheckApiRequest;\n}\n\nexport interface SmsVerificationCreateParams {\n request?: SendVerificationSmsApiRequest;\n}\n\nexport interface SmsVerificationRequest {\n action?: string;\n}\n\nexport interface SmsVerificationWithIdCreateParams {\n request?: SendVerificationSmsWithIdApiRequest;\n}\n\nexport interface SolditemsRequest {\n soldItemStateFilter?: string;\n soldItemOrderBy?: string;\n retrieveHidden?: boolean;\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n}\n\nexport interface SoldsummaryRequest {\n request?: MemberSoldItemsSummaryApiRequest;\n}\n\nexport interface StatsRequest {\n request?: GetMessagingStatsApiRequest;\n}\n\nexport interface StatsThisMonthRequest {\n request?: MemberStatsThisMonthApiRequest;\n}\n\nexport interface SummaryRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface SuspendedUntilRequest {\n request?: GetMemberSuspendedUntilApiRequest;\n}\n\nexport interface SwishCreateParams {\n request?: SetSwishPayoutTransferMethodApiRequest;\n}\n\nexport interface SystemMessagesRequest {\n request?: GetSystemMessagesApiRequest;\n}\n\nexport interface TinImageUploadUrlCreateParams {\n request?: CreateTaxIdentificationImageUploadUrlApiRequest;\n}\n\nexport interface TinkBankaccountsRequest {\n code?: string;\n}\n\nexport interface TinkaccountCreateParams {\n request?: SetPayoutTransferMethodUsingTinkApiRequest;\n}\n\nexport interface ResponseError {\n errorCode?: string | null;\n fieldName?: string | null;\n message?: string | null;\n}\n\nexport interface ResponseError2 {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface ResponseError5 {\n request?: SellerSetItemVisibilityApiRequest;\n}\n\nexport interface ResponseError8 {\n request?: WebChangeEmailWithIdApiRequest;\n}\n\nexport interface ResponseError9 {\n transactionIds?: number[];\n}\n\nexport interface ResponseStatus {\n errorCode?: string | null;\n errors?: ResponseError[] | null;\n message?: string | null;\n stackTrace?: string | null;\n}\n\nexport interface BankIdAuthenticationBeginApiResponse {\n autoStartToken?: string | null;\n bankIdOrderRef?: string | null;\n qrData?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdAuthenticationCancelApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdAuthenticationProgressApiResponse {\n isCompleted: boolean;\n progress?: string | null;\n qrData?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ItemImageUrls {\n medium?: string | null;\n normal?: string | null;\n}\n\nexport enum ItemTransactionTypeApiDto {\n Auction = 'Auction',\n Bin = 'Bin',\n Cart = 'Cart',\n PurchaseOfferOnActive = 'PurchaseOfferOnActive',\n PurchaseOfferOnEnded = 'PurchaseOfferOnEnded'\n}\n\nexport enum ItemTypeApiDto {\n Auction = 'Auction',\n AuctionBin = 'AuctionBin',\n PureBin = 'PureBin',\n ShopItem = 'ShopItem'\n}\n\nexport interface AutoPayoutReviewBuyerConfirmationApiRequest {\n confirmationType?: string | null;\n /** @format int32 */\n payoutReviewId: number;\n}\n\nexport interface AutoPayoutReviewBuyerConfirmationApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface AutoPayoutReview {\n /** @format double */\n amount: number;\n /** @format date-time */\n autoPayoutReviewCreated: string;\n autoPayoutReviewStatus?: string | null;\n /** @format date-time */\n autoPayoutReviewStatusUpdated: string;\n /** @format date-time */\n autoPayoutReviewUpdated: string;\n /** @format int32 */\n buyerMemberId: number;\n /** @format date-time */\n created: string;\n /** @format int32 */\n disputeId?: number | null;\n endingReason?: string | null;\n orderHasMultipleItems: boolean;\n orderImageUrl?: string | null;\n /** @format int32 */\n payoutReviewId: number;\n /** @format int32 */\n payoutReviewStatus: number;\n /** @format uuid */\n purchaseOrderId: string;\n /** @format int32 */\n sellerMemberId: number;\n /** @format date-time */\n statusChanged: string;\n statusChangedBy?: string | null;\n}\n\nexport interface GetAutoPayoutReviewBuyerConfirmationApiResponse {\n autoPayoutReview?: AutoPayoutReview | null;\n buyerProtectionState?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberRiskProfileStatusApiRequest = object;\n\nexport interface GetMemberRiskProfileStatusApiResponse {\n isProfileComplete: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type UpdateRiskProfileApiRequest = object;\n\nexport interface UpdateRiskProfileApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BlockMemberApiRequest {\n aliasToBlock?: string | null;\n}\n\nexport interface BlockMemberApiResponse {\n /** @format int32 */\n blockedMemberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface AddDisputeMessageApiRequest {\n attachments?: string[] | null;\n message?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddDisputeMessageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangeDisputeStatusToAppealedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface ChangeDisputeStatusToAppealedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreateDisputeApiRequest {\n message?: string | null;\n /** @format int32 */\n reason: number;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface CreateDisputeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetDisputeApiResponse {\n dispute?: DisputeApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetDisputesApiResponse {\n disputes?: DisputeApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MarkDisputeAsEscalatedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MarkDisputeAsEscalatedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MarkDisputeAsSolvedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MarkDisputeAsSolvedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreateDisputeImageUploadUrlApiRequest {\n contentType?: string | null;\n}\n\nexport interface CreateDisputeImageUploadUrlApiResponse {\n objectName?: string | null;\n responseStatus?: ResponseStatus | null;\n uploadUrl?: string | null;\n}\n\nexport interface CreateDisputeSupportMessagingThreadApiRequest {\n /** @format int32 */\n disputeId: number;\n}\n\nexport interface CreateDisputeSupportMessagingThreadApiResponse {\n responseStatus?: ResponseStatus | null;\n threadId?: string | null;\n}\n\nexport interface DisputeV2FormData {\n comment?: string | null;\n images?: DisputeV2Image[] | null;\n itemIds?: number[] | null;\n /** @format uuid */\n purchaseOrderId: string;\n reason?: string | null;\n status?: string | null;\n suggestedSolution?: string | null;\n transactionIds?: number[] | null;\n type?: string | null;\n}\n\nexport interface DisputeV2Image {\n fileName?: string | null;\n objectName?: string | null;\n}\n\nexport interface DisputeV2ItemData {\n imageUrl?: string | null;\n /** @format int32 */\n itemId: number;\n itemUrl?: string | null;\n /** @format double */\n price: number;\n title?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface DisputeV2MemberData {\n alias?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface DisputeV2PurchaseOrderData {\n buyerMember?: DisputeV2MemberData | null;\n /** @format double */\n buyerProtectionCost: number;\n /** @format date-time */\n createdDate: string;\n /** @format int32 */\n orderNumber: number;\n /** @format uuid */\n purchaseOrderId: string;\n /** @format double */\n selectedShippingCostAfterRefunds: number;\n sellerMember?: DisputeV2MemberData | null;\n shipping?: DisputeV2Shipping | null;\n /** @format double */\n totalOrderAmount: number;\n}\n\nexport interface DisputeV2PurchaseOrderItemData {\n hasReportedDispute: boolean;\n imageUrl?: string | null;\n /** @format int32 */\n itemId: number;\n itemUrl?: string | null;\n /** @format double */\n price: number;\n title?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface DisputeV2Shipping {\n isSoldByTradera: boolean;\n /** @format uuid */\n shipmentId: string;\n /** @format double */\n shippingCost: number;\n shippingProvider?: string | null;\n}\n\nexport interface EscalateDisputeV2ApiRequest {\n /** @format int32 */\n disputeId: number;\n}\n\nexport interface EscalateDisputeV2ApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetDisputeDataV2ApiResponse {\n /** @format date-time */\n createdDate: string;\n /** @format int32 */\n createdFromPayoutReviewId?: number | null;\n /** @format int32 */\n disputeId: number;\n formData?: DisputeV2FormData | null;\n isOngoingPayoutReview: boolean;\n items?: DisputeV2ItemData[] | null;\n purchaseOrder?: DisputeV2PurchaseOrderData | null;\n responseStatus?: ResponseStatus | null;\n /** @format date-time */\n updatedDate: string;\n}\n\nexport interface MarkDisputeAsSolvedV2ApiRequest {\n /** @format int32 */\n disputeId: number;\n}\n\nexport interface MarkDisputeAsSolvedV2ApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveDisputeDataV2ApiRequest {\n /** @format int32 */\n createdFromPayoutReviewId?: number | null;\n formData?: DisputeV2FormData | null;\n}\n\nexport interface SaveDisputeDataV2ApiResponse {\n /** @format int32 */\n disputeId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface DisputeApiDto {\n /** @format int32 */\n buyerMemberId: number;\n isHandledByExternalPart: boolean;\n /** @format int32 */\n itemId: number;\n message?: string | null;\n messages?: DisputeMessageDto[] | null;\n /** @format int32 */\n sellerMemberId: number;\n status: DisputeStatus;\n /** @format date-time */\n timeStamp: string;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface DisputeMessageDto {\n attachments?: string[] | null;\n /** @format date-time */\n created: string;\n /** @format uuid */\n id: string;\n sentBy: MessageSentBy;\n text?: string | null;\n}\n\nexport enum ContactBuyerQuestionAnswer {\n BuyerAndSellerAreInAgreement = 'BuyerAndSellerAreInAgreement',\n BuyerIsNotResponding = 'BuyerIsNotResponding',\n BuyerRefusesPayment = 'BuyerRefusesPayment',\n SellerHasNotContactedBuyer = 'SellerHasNotContactedBuyer'\n}\n\nexport enum DisputeStatus {\n New = 'New',\n WaitingForSeller = 'WaitingForSeller',\n TraderaIsInvestigating = 'TraderaIsInvestigating',\n ToBeClosed = 'ToBeClosed',\n WaitingForBuyer = 'WaitingForBuyer',\n BuyerWonDispute = 'BuyerWonDispute',\n SellerWonDispute = 'SellerWonDispute',\n WaitingForReturn = 'WaitingForReturn',\n Appealed = 'Appealed',\n AvslutadUnder120Kr = 'AvslutadUnder120Kr',\n NotEscalated = 'NotEscalated',\n BuyerMarkedAsSolved = 'BuyerMarkedAsSolved',\n AvailableForPickupTradera = 'AvailableForPickupTradera',\n AvailableForPickupSeller = 'AvailableForPickupSeller',\n WaitingForKlarnaOrPayPal = 'WaitingForKlarnaOrPayPal',\n TheOffice = 'TheOffice',\n Other = 'Other'\n}\n\nexport enum MessageSentBy {\n CsAgent = 'CsAgent',\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport enum PurchaseOrderCancellationItemActions {\n RestartItems = 'RestartItems',\n MakeItemsAvailableForPurchaseOffer = 'MakeItemsAvailableForPurchaseOffer',\n DoNothing = 'DoNothing'\n}\n\nexport enum StrikeType {\n None = 'None',\n ItemNotReceived = 'ItemNotReceived',\n UnpaidItem = 'UnpaidItem',\n MutualCancelOfPurchase = 'MutualCancelOfPurchase',\n UnpaidItemAfterGracePeriod = 'UnpaidItemAfterGracePeriod'\n}\n\nexport interface ItemStrikeSubmission {\n strikeSubmitted: boolean;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddPurchaseOrderNotReceivedStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddPurchaseOrderNotReceivedStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PurchaseOrderNotReceivedStrikeApiResponse {\n items?: ItemStrikeSubmission[] | null;\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface AddMutualCancelOfPurchaseStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddMutualCancelOfPurchaseStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ConfirmMutualCancelOfPurchaseStrikeApiRequest {\n approved: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface ConfirmMutualCancelOfPurchaseStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MutualCancelOfPurchaseStrikeApiResponse {\n items?: StrikeItem[] | null;\n /** @format uuid */\n purchaseOrderId: string;\n responseStatus?: ResponseStatus | null;\n strikeConfirmed: boolean;\n strikeSubmitted: boolean;\n}\n\nexport interface StrikeItem {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddPurchaseOrderStrikeApiRequest {\n comment?: string | null;\n contactBuyerQuestionAnswer: ContactBuyerQuestionAnswer;\n itemAction: PurchaseOrderCancellationItemActions;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddPurchaseOrderStrikeApiResponse {\n itemAction: PurchaseOrderCancellationItemActions;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetPurchaseOrderStrikeItemsApiResponse {\n responseStatus?: ResponseStatus | null;\n strikes?: Strike[] | null;\n}\n\nexport interface Strike {\n strikeType: StrikeType;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddUnpaidPurchaseOrderStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddUnpaidPurchaseOrderStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UnpaidItemStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface UnpaidPurchaseOrderStrikeApiResponse {\n items?: ItemStrikeSubmission[] | null;\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface CommentFeedbackApiRequest {\n comment?: string | null;\n /** @format int32 */\n gradeId: number;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface CommentFeedbackApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ContactSellerApiRequest {\n /** @format int32 */\n itemId: number;\n message?: string | null;\n sendCopytoSender: boolean;\n}\n\nexport interface ContactSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface Country {\n countryCodeIso2?: string | null;\n countryNameEng?: string | null;\n countryNameSwe?: string | null;\n}\n\nexport interface BlockedMemberDto {\n alias?: string | null;\n /** @format date-time */\n createdDate: string;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface BookedShipping {\n hasProviderBookingFailed: boolean;\n hasShipmentLabel: boolean;\n hasShipmentReceipt: boolean;\n /** @format uuid */\n shipmentCheckoutId: string;\n /** @format uuid */\n shipmentId: string;\n shippingType?: string | null;\n trackingId?: string | null;\n trackingLink?: string | null;\n}\n\nexport interface BuyerPaidDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n shipmentBookingType?: string | null;\n}\n\nexport interface ContactDetailsApiDto {\n countryCodeIso2?: string | null;\n alias?: string | null;\n companyName?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n isCompany: boolean;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n organizationNumber?: string | null;\n phoneNumber?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport interface CreditSafeLookupResult {\n firstName?: string | null;\n givenName?: string | null;\n lastName?: string | null;\n socialSecurityNumber?: string | null;\n}\n\nexport interface CreditSafeNameVerificationResult {\n lookupResult?: CreditSafeLookupResult | null;\n status: CreditSafeNameVerificationStatus;\n}\n\nexport enum CreditSafeNameVerificationStatus {\n Valid = 'Valid',\n Invalid = 'Invalid',\n SSNFail = 'SSNFail',\n NotFound = 'NotFound',\n Error = 'Error'\n}\n\nexport interface DetailedSellerRatingApiDto {\n /** @format double */\n averageRating: number;\n category?: string | null;\n /** @format int32 */\n categoryCount: number;\n}\n\nexport interface DetailedSellerRatingSummaryForMemberApiDto {\n communication?: DetailedSellerRatingApiDto | null;\n deliveryTime?: DetailedSellerRatingApiDto | null;\n /** @format double */\n detailedSellerRatingAverage: number;\n itemDescription?: DetailedSellerRatingApiDto | null;\n /** @format int32 */\n memberId: number;\n shippingCost?: DetailedSellerRatingApiDto | null;\n}\n\nexport interface DiscountDto {\n /** @format double */\n amount: number;\n /** @format date-time */\n created: string;\n type?: string | null;\n}\n\nexport interface FeatureSummaryApiDto {\n /** @format int32 */\n cost: number;\n /** @format int32 */\n count: number;\n name?: string | null;\n}\n\nexport interface FeedbackItemApiDto {\n feedbackMemberCountryCodeIso2?: string | null;\n /** @format date-time */\n created: string;\n feedbackMemberAlias?: string | null;\n /** @format int32 */\n feedbackMemberId: number;\n feedbackMemberRole: FeedbackRoleApiDto;\n /** @format int32 */\n gradeId: number;\n /** @format int32 */\n itemCategoryId: number;\n /** @format date-time */\n itemEndDate: string;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemMaxBid: number;\n itemShortDescription?: string | null;\n mutualFeedbackRemovalItem?: MutualFeedbackRemovalItemApiDto | null;\n rating: FeedbackRatingApiDto;\n reply?: string | null;\n text?: string | null;\n /** @format int32 */\n totalRating: number;\n}\n\nexport enum FeedbackRatingApiDto {\n None = 'None',\n Negative = 'Negative',\n Positive = 'Positive'\n}\n\nexport enum FeedbackRatingFilter {\n All = 'All',\n Positive = 'Positive',\n Negative = 'Negative'\n}\n\nexport interface FeedbackReminderDataDto {\n isSeller: boolean;\n}\n\nexport enum FeedbackRoleApiDto {\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport enum FeedbackRoleFilter {\n All = 'All',\n Seller = 'Seller',\n Buyer = 'Buyer',\n LeftBy = 'LeftBy'\n}\n\nexport interface FeedbackSummaryItemApiDto {\n /** @format int32 */\n totalNegative: number;\n /** @format int32 */\n totalPositive: number;\n}\n\nexport enum HomepageTheme {\n Default = 'Default',\n Fashion = 'Fashion'\n}\n\nexport interface ItemTransactionApiDto {\n /** @format int32 */\n bidCount?: number | null;\n /** @format int32 */\n buyItNowPrice?: number | null;\n /** @format int32 */\n buyerMemberId: number;\n discounts?: DiscountDto[] | null;\n hasBuyerLeftFeedback: boolean;\n hasSellerLeftFeedback: boolean;\n hasTraderaAsMerchantOfRecord: boolean;\n imageUrl?: string | null;\n imageUrlTemplate?: string | null;\n isHidden: boolean;\n isPaid: boolean;\n isPaynovaPayment: boolean;\n /** @format int32 */\n itemCategoryId: number;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemPrice?: number | null;\n itemResellPublished: boolean;\n itemTitle?: string | null;\n itemTransactionType: ItemTransactionTypeApiDto;\n /** @format int32 */\n openingBid?: number | null;\n /** @format int32 */\n orderNumber: number;\n paidStatus?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n selectedShipping?: ShippingApiDto | null;\n sellerAlias?: string | null;\n /** @format int32 */\n sellerMemberId: number;\n /** @format int32 */\n sellerRating: number;\n trackingLink?: string | null;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n}\n\nexport enum MemberAccountState {\n None = 'None',\n Active = 'Active',\n TemporarySuspended = 'TemporarySuspended',\n PermanentlySuspended = 'PermanentlySuspended',\n Deregistered = 'Deregistered'\n}\n\nexport interface MemberActiveItemsSummaryApiDto {\n /** @format int32 */\n auctionCount: number;\n /** @format int32 */\n bidCount: number;\n /** @format int32 */\n bidSum: number;\n /** @format int32 */\n buyItNowCount: number;\n /** @format int32 */\n itemCount: number;\n /** @format int32 */\n shopItemCount: number;\n /** @format int32 */\n sumOpeningBids: number;\n}\n\nexport interface MemberContactDetailsApiDto {\n countryCodeIso2?: string | null;\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n ssn?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport interface MemberLoginDetailDto {\n accountState: MemberAccountState;\n alias?: string | null;\n hasTraderMessage: boolean;\n heroImageUrl?: string | null;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n /** @format int32 */\n totalRating: number;\n}\n\nexport interface MemberPermissionsApiDto {\n apiRegistrationPermission?: PermissionApiDto | null;\n sellPermission?: PermissionApiDto | null;\n}\n\nexport interface MemberSoldItemApiDto {\n /** @format int32 */\n bidCount?: number | null;\n bookedShipping?: BookedShipping | null;\n buyerContactDetails?: MemberContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n buyerTotalRating: number;\n /** @format int32 */\n categoryId: number;\n discounts?: DiscountDto[] | null;\n /** @format int32 */\n fixedPrice?: number | null;\n hasBuyerLeftFeedback: boolean;\n hasSellerLeftFeedback: boolean;\n hiddenBySeller: boolean;\n isDiscountAfterPaymentSupported: boolean;\n isDiscountBeforePaymentSupported: boolean;\n isMarkedAsPaidByBuyer: boolean;\n isMarkedAsPaidBySeller: boolean;\n isMarkedAsShipped: boolean;\n /** @deprecated */\n isPaidWithIntegratedPaymentOption: boolean;\n isShippingBooked: boolean;\n /** @format int32 */\n itemId: number;\n itemTitle?: string | null;\n itemTransactionType: ItemTransactionTypeApiDto;\n /** @format int32 */\n leadingBid?: number | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n offeredShippingOptions?: ShippingApiDto[] | null;\n /** @format int32 */\n openingBid?: number | null;\n paidStatus?: string | null;\n /** @deprecated */\n paymentProvider?: string | null;\n /** @format int32 */\n price: number;\n /** @format uuid */\n purchaseOrderId: string;\n /** @format int32 */\n reservedPrice?: number | null;\n selectedShipping?: ShippingApiDto | null;\n /** @deprecated */\n shippingDiscount?: ShippingDiscount | null;\n soldItemState?: string | null;\n /** @deprecated */\n trackingLink?: string | null;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n userReference?: string | null;\n}\n\nexport interface MemberSoldItemsSummaryApiDto {\n /** @format int32 */\n auctionCount: number;\n /** @format int32 */\n bidCount: number;\n /** @format int32 */\n bidSum: number;\n /** @format int32 */\n buyItNowCount: number;\n /** @format int32 */\n itemCount: number;\n /** @format int32 */\n shopItemCount: number;\n /** @format int32 */\n sumOpeningBids: number;\n /** @format int32 */\n totalPrice: number;\n}\n\nexport interface MutualFeedbackRemovalItemApiDto {\n /** @format int32 */\n feedbackRemovalRequestId?: number | null;\n status: MutualFeedbackRemovalStatus;\n /** @deprecated */\n statusText?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport enum MutualFeedbackRemovalStatus {\n Available = 'Available',\n Unavailable = 'Unavailable',\n Requested = 'Requested',\n Received = 'Received',\n Denied = 'Denied'\n}\n\nexport interface NotificationApiDto {\n /** @format int32 */\n amount: number;\n buyerPaidData?: BuyerPaidDataDto | null;\n feedbackReminderData?: FeedbackReminderDataDto | null;\n isRead: boolean;\n /** @format int32 */\n itemId: number;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n /** @format int32 */\n memberId: number;\n purchaseOrderUnpaidData?: PurchaseOrderUnpaidDataDto | null;\n shipmentSentData?: ShipmentSentDataDto | null;\n /** @format date-time */\n timeStamp: string;\n title?: string | null;\n type?: string | null;\n wishListItemsEndingTodayData?: WishListItemsEndingTodayDataDto | null;\n wishlistItemPriceLoweredData?: WishlistItemPriceLoweredDataDto | null;\n}\n\nexport interface OfferedShippingOption {\n /** @format int32 */\n cost: number;\n type?: string | null;\n}\n\nexport interface PaymentOptionApiDto {\n displayName?: string | null;\n paymentType?: string | null;\n}\n\nexport interface PermissionApiDto {\n isPermitted: boolean;\n requirementsNotMet?: RequirementTypeApi[] | null;\n}\n\nexport interface PickListBuyerApiDto {\n buyerContactDetails?: MemberContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n feedbackCount: number;\n items?: MemberSoldItemApiDto[] | null;\n}\n\nexport interface PickListBuyerV2ApiDto {\n buyerContactDetails?: ContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n items?: PickListItemApiDto[] | null;\n}\n\nexport interface PickListItemApiDto {\n hasSellerLeftFeedback: boolean;\n hiddenBySeller: boolean;\n isMarkedAsPaidBySeller: boolean;\n isMarkedAsShipped: boolean;\n /** @format int32 */\n itemId: number;\n itemTitle?: string | null;\n itemUrl?: string | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n offeredShippingOptions?: OfferedShippingOption[] | null;\n /** @format int32 */\n price: number;\n /** @format uuid */\n purchaseOrderId: string;\n selectedShipping?: SelectedShippingOption | null;\n temporaryShippingAddress?: Address | null;\n /** @format double */\n totalDiscountAmount: number;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n userReference?: string | null;\n}\n\nexport interface PublicProfileApiDto {\n alias?: string | null;\n city?: string | null;\n country?: string | null;\n /** @format double */\n detailedSellerRating?: number | null;\n hasShop: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format int32 */\n totalRating: number;\n zipCode?: string | null;\n}\n\nexport interface PurchaseOrderUnpaidDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport enum RequirementTypeApi {\n Unknown = 'Unknown',\n IsOverMinimumAge = 'IsOverMinimumAge'\n}\n\nexport interface SelectedShippingOption {\n /** @format int32 */\n cost: number;\n type?: string | null;\n}\n\nexport enum SellerAutoFeedbackCriteria {\n Manual = 'Manual',\n PositiveFeedback = 'PositiveFeedback',\n Paid = 'Paid'\n}\n\nexport interface ShipmentSentDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface ShippingApiDto {\n fromCountryCodeIso2?: string | null;\n toCountryCodeIso2?: string | null;\n /** @format double */\n cost: number;\n isFreeShipping: boolean;\n isTakeaway: boolean;\n name?: string | null;\n partnerProvider?: string | null;\n /** @format int32 */\n productId?: number | null;\n type?: string | null;\n /** @format int32 */\n weight?: number | null;\n}\n\nexport interface TotalFeedbackSummaryForMemberApiDto {\n lastMonth?: FeedbackSummaryItemApiDto | null;\n lastSixMonths?: FeedbackSummaryItemApiDto | null;\n lastTwelveMonths?: FeedbackSummaryItemApiDto | null;\n /** @format int32 */\n memberId: number;\n sinceRegistration?: FeedbackSummaryItemApiDto | null;\n unique?: FeedbackSummaryItemApiDto | null;\n}\n\nexport interface TranslatedFeedbackItemApiDto {\n /** @format int32 */\n gradeId: number;\n reply?: string | null;\n text?: string | null;\n}\n\nexport interface WishListItemsEndingTodayDataDto {\n /** @format int32 */\n numberOfItems: number;\n}\n\nexport enum WishListStatusFilter {\n All = 'All',\n Active = 'Active',\n Ended = 'Ended'\n}\n\nexport interface WishlistItemPriceLoweredDataDto {\n currencyCode?: string | null;\n /** @format int32 */\n newPrice: number;\n}\n\nexport interface GetNotificationsApiResponse {\n items?: NotificationApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n /** @format int64 */\n unreadCount: number;\n}\n\nexport type GetUnreadNotificationsCountApiRequest = object;\n\nexport interface GetUnreadNotificationsCountApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n unreadCount: number;\n}\n\nexport type SetLastNotifiedApiRequest = object;\n\nexport interface SetLastNotifiedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreditMemoByEncryptedIdApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreditMemoDto {\n creditMemoDocumentId?: string | null;\n /** @format int64 */\n invoiceId: number;\n}\n\nexport interface GetBraintreeInvoicePaymentApiResponse {\n /** @format double */\n amount: number;\n /** @format int64 */\n invoiceId: number;\n orderId?: string | null;\n responseStatus?: ResponseStatus | null;\n status?: string | null;\n}\n\nexport interface GetCreditMemoPdfApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoiceCsvApiResponse {\n /** @format byte */\n csvFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoiceIsPaidApiResponse {\n isPaid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoicePdfApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoicesApiResponse {\n invoices?: InvoiceDto[] | null;\n isBillingUnderMaintenance: boolean;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface InvoiceDto {\n /** @format double */\n amountOwed: number;\n creditMemos?: CreditMemoDto[] | null;\n csvGenerated: boolean;\n /** @format date-time */\n dueDate: string;\n /** @format double */\n invoiceAmount: number;\n /** @format date-time */\n invoiceDate: string;\n /** @format int64 */\n invoiceId: number;\n /** @format int64 */\n ocr: number;\n paymentStatus?: string | null;\n}\n\nexport interface FindMembersApiResponse {\n members?: MemberLoginDetailDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n}\n\nexport interface GetAutoPayoutReviewAlternativeShipmentApiResponse {\n payoutReview?: AutoPayoutReview | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SelectAutoPayoutReviewAlternativeShipmentApiRequest {\n alternativeShippingOption?: string | null;\n /** @format int32 */\n payoutReviewId: number;\n shippingReference?: string | null;\n}\n\nexport interface SelectAutoPayoutReviewAlternativeShipmentApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetAliasSuggestionsApiRequest {\n alias?: string | null;\n emailAddress?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n}\n\nexport interface GetAliasSuggestionsApiResponse {\n responseStatus?: ResponseStatus | null;\n suggestions?: string[] | null;\n}\n\nexport interface GetAllItemsForLeaveFeedbackAsBuyerApiResponse {\n items?: ItemTransactionApiDto[] | null;\n /** @format int64 */\n itemsLeft: number;\n /** @format int64 */\n paidTotalCount: number;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface GetAllItemsForLeaveFeedbackAsSellerApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n /** @format int64 */\n itemsLeft: number;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport type GetAvailableCountriesForShippingApiRequest = object;\n\nexport interface GetAvailableCountriesForShippingApiResponse {\n availableCountries?: Country[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBlockedMembersApiRequest = object;\n\nexport interface GetBlockedMembersApiResponse {\n blockedMembers?: BlockedMemberDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBlueshiftEventApiCredentialsApiRequest = object;\n\nexport interface GetBlueshiftEventApiCredentialsApiResponse {\n eventApiKey?: string | null;\n eventSignature?: string | null;\n responseStatus?: ResponseStatus | null;\n verificationKey?: string | null;\n}\n\nexport interface GetImageUploadUrlApiResponse {\n responseStatus?: ResponseStatus | null;\n signedUrl?: string | null;\n}\n\nexport type GetIsCombinedShippingEnabledApiRequest = object;\n\nexport interface GetIsCombinedShippingEnabledApiResponse {\n isEnabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetItemsForLeaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n transactions?: ItemTransactionApiDto[] | null;\n}\n\nexport interface GetItemsForLeaveFeedbackAsSellerApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberGeoDataApiRequest = object;\n\nexport interface GetMemberGeoDataApiResponse {\n /** @format double */\n latitude: number;\n /** @format double */\n longitude: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSuspendedUntilApiRequest = object;\n\nexport interface GetMemberSuspendedUntilApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format date-time */\n suspendedUntil?: string | null;\n}\n\nexport type GetMemberVatDetailsApiRequest = object;\n\nexport interface GetMemberVatDetailsApiResponse {\n memberIsSubjectToVat: boolean;\n responseStatus?: ResponseStatus | null;\n /** @format byte */\n selectableVatValues?: string | null;\n}\n\nexport interface GetMemberWithAliasApiResponse {\n alias?: string | null;\n hasShopAccount: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetSystemMessagesApiRequest = object;\n\nexport interface GetSystemMessagesApiResponse {\n items?: SystemMessage[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface GetTransactionFeedbacksApiResponse {\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GradeTransactionsApiResponse {\n gradesTransactions?: Record;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CompleteQuestionnaireApiRequest {\n languageCodeIso2?: string | null;\n fieldValues?: Record;\n /** @format int32 */\n questionnaireId: number;\n}\n\nexport interface CompleteQuestionnaireApiResponse {\n alias?: string | null;\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n ruleViolations?: Record;\n}\n\nexport type GetKycPendingActionsApiRequest = object;\n\nexport interface GetKycPendingActionsApiResponse {\n /** @format int32 */\n memberId: number;\n pendingActionActionTypes?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetKycQuestionnairePageDefinitionApiResponse {\n alias?: string | null;\n /** @format int32 */\n memberId: number;\n pageDefinition?: any;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface InitializeQuestionnaireApiRequest {\n alias?: string | null;\n}\n\nexport interface InitializeQuestionnaireApiResponse {\n /** @format int32 */\n questionnaireId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface LeaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n transaction?: ItemTransactionApiDto | null;\n}\n\nexport interface LeaveFeedbackAsSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n transaction?: ItemTransactionApiDto | null;\n}\n\nexport type MemberContactDetailsApiRequest = object;\n\nexport interface MemberContactDetailsApiResponse {\n countryCodeIso2?: string | null;\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n responseStatus?: ResponseStatus | null;\n ssn?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport type MemberEmailSettingsApiRequest = object;\n\nexport interface MemberEmailSettingsApiResponse {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails: boolean;\n acceptsUpiInfoEmails: boolean;\n /** @format int32 */\n memberId: number;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberFeedbackApiResponse {\n accountState: MemberAccountState;\n detailedSellerRatingSummaryForMember?: DetailedSellerRatingSummaryForMemberApiDto | null;\n items?: FeedbackItemApiDto[] | null;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n totalFeedbackSummary?: TotalFeedbackSummaryForMemberApiDto | null;\n}\n\nexport interface MemberFeedbackItemsApiResponse {\n items?: FeedbackItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberFeedbackSummaryApiResponse {\n accountState: MemberAccountState;\n detailedSellerRatingSummary?: DetailedSellerRatingSummaryForMemberApiDto | null;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n totalFeedbackSummary?: TotalFeedbackSummaryForMemberApiDto | null;\n}\n\nexport interface MemberPurchaseApiResponse {\n buyer?: MemberContactDetailsApiDto | null;\n item?: ItemTransactionApiDto | null;\n responseStatus?: ResponseStatus | null;\n seller?: MemberContactDetailsApiDto | null;\n}\n\nexport interface MemberPurchaseOrderApiResponse {\n buyer?: ContactDetailsApiDto | null;\n isAutomaticSellerReimbursementAllowed: boolean;\n items?: ItemTransactionApiDto[] | null;\n paymentMethod?: string | null;\n responseStatus?: ResponseStatus | null;\n seller?: ContactDetailsApiDto | null;\n}\n\nexport interface MemberPurchaseOrderItemApiResponse {\n items?: ItemTransactionApiDto[] | null;\n paymentMethod?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSelloProfileApiRequest = object;\n\nexport interface MemberSelloProfileApiResponse {\n accountState: MemberAccountState;\n alias?: string | null;\n city?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n email?: string | null;\n firstName?: string | null;\n hasShop: boolean;\n isCompanyUser: boolean;\n isSwedishUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalRating: number;\n}\n\nexport type MemberServerStorageListApiRequest = object;\n\nexport interface MemberServerStorageListApiResponse {\n responseStatus?: ResponseStatus | null;\n rows?: Row[] | null;\n}\n\nexport interface MemberServerStoragePutApiRequest {\n key?: string | null;\n value?: string | null;\n}\n\nexport interface MemberServerStoragePutApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSessionDataApiRequest = object;\n\nexport interface MemberSessionDataApiResponse {\n countryCodeIso2?: string | null;\n languageCodeIso2?: string | null;\n /** @format int32 */\n age?: number | null;\n alias?: string | null;\n aliasSlug?: string | null;\n appleId?: string | null;\n automaticTranslationPreferred: boolean;\n birthDate?: string | null;\n blueshiftEventSignature?: string | null;\n city?: string | null;\n country?: string | null;\n currencyCode?: string | null;\n /** @format float */\n detailedSellerRating?: number | null;\n email?: string | null;\n facebookId?: string | null;\n firstName?: string | null;\n gender?: string | null;\n googleId?: string | null;\n hasTraderaPay: boolean;\n heroImageUrl?: string | null;\n isBuyer: boolean;\n isSeller: boolean;\n isTrustedMember: boolean;\n klarnaId?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n memberIdHash?: string | null;\n /** @format int32 */\n memberState: number;\n permissions?: MemberPermissionsApiDto | null;\n /** @format date-time */\n registrationDate: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberShopDetailsApiResponse {\n alias?: string | null;\n companyInfo?: string | null;\n contactInfo?: string | null;\n hasLogo: boolean;\n logoFormat?: string | null;\n /** @format int32 */\n memberId: number;\n purchaseTerms?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FirebaseConfiguration {\n apiKey?: string | null;\n authDomain?: string | null;\n databaseUrl?: string | null;\n functionsEmulatorUrl?: string | null;\n projectId?: string | null;\n region?: string | null;\n storageBucket?: string | null;\n}\n\nexport type GetMessagingConfigurationApiRequest = object;\n\nexport interface GetMessagingConfigurationApiResponse {\n firebaseConfiguration?: FirebaseConfiguration | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMessagingEmailNotifyApiResponse {\n emailNotify: MessagingEmailNotification;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMessagingItemApiResponse {\n /** @format int32 */\n price: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMessagingSilentApiRequest = object;\n\nexport interface GetMessagingSilentApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMessagingStatsApiRequest = object;\n\nexport interface GetMessagingStatsApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n threads: number;\n /** @format int32 */\n threadsUnread: number;\n}\n\nexport enum MessagingEmailNotification {\n All = 'All',\n Unread = 'Unread',\n None = 'None'\n}\n\nexport interface SetMessagingEmailNotifyApiRequest {\n emailNotify: MessagingEmailNotification;\n}\n\nexport interface SetMessagingEmailNotifyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMessagingSilentApiRequest {\n enabled: boolean;\n}\n\nexport interface SetMessagingSilentApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ConfirmMutualFeedbackRemovalApiRequest {\n /** @format int32 */\n feedbackRemovalRequestId: number;\n}\n\nexport interface ConfirmMutualFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum ConfirmationStatus {\n ConfirmationAllowed = 'ConfirmationAllowed',\n RequestIsOlderThen30Days = 'RequestIsOlderThen30Days',\n RequestedBySubmitter = 'RequestedBySubmitter'\n}\n\nexport interface CreateFeedbackRemovalApiRequest {\n comment?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface CreateFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum CreationStatus {\n CreationAllowed = 'CreationAllowed',\n CreatedBySubmitter = 'CreatedBySubmitter',\n CanBeAcceptedByReceiver = 'CanBeAcceptedByReceiver'\n}\n\nexport interface DenyMutualFeedbackRemovalApiRequest {\n /** @format int32 */\n feedbackRemovalRequestId: number;\n}\n\nexport interface DenyMututalFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum FeedbackRemovalFlowStatus {\n CanBeStarted = 'CanBeStarted',\n CanBeAccepted = 'CanBeAccepted',\n SubmittedAlready = 'SubmittedAlready',\n NotApplicable = 'NotApplicable'\n}\n\nexport enum FeedbackRemovalState {\n Pending = 'Pending',\n Accepted = 'Accepted',\n Rejected = 'Rejected'\n}\n\nexport interface FlowStatusRequest {\n /** @format int32 */\n feedbackMemberId: number;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface FlowStatusResponse {\n feedbacksRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n flowStatus: FeedbackRemovalFlowStatus;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MemberDetails {\n alias?: string | null;\n /** @format int32 */\n id: number;\n}\n\nexport interface MutualFeedbackRemovalApiDto {\n comment?: string | null;\n /** @format date-time */\n completed?: string | null;\n /** @format date-time */\n created: string;\n fromMember?: MemberDetails | null;\n /** @format int32 */\n id: number;\n isCompleted: boolean;\n /** @format int32 */\n itemId: number;\n status?: FeedbackRemovalState | null;\n toMember?: MemberDetails | null;\n /** @format int32 */\n transactionBuyerMemberId: number;\n /** @format int32 */\n transactionId: number;\n /** @format int32 */\n transactionSellerMemberId: number;\n}\n\nexport interface TransactionFeedbackApiDto {\n /** @format date-time */\n created: string;\n fromMemberAlias?: string | null;\n /** @format int32 */\n fromMemberId: number;\n memberRole: TransactionFeedbackRole;\n rating: TransactionFeedbackRating;\n text?: string | null;\n toMemberAlias?: string | null;\n /** @format int32 */\n toMemberId: number;\n}\n\nexport enum TransactionFeedbackRating {\n None = 'None',\n Negative = 'Negative',\n Positive = 'Positive'\n}\n\nexport enum TransactionFeedbackRole {\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport interface FeedbackRemovalApiResponse {\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FeedbackRemovalsApiRequest {\n feedbacks?: FlowStatusRequest[] | null;\n}\n\nexport interface FeedbackRemovalsApiResponse {\n feedbacksRemovalRequests?: FlowStatusResponse[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateConfirmationApiResponse {\n confirmationStatus: ConfirmationStatus;\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateCreationApiResponse {\n creationStatus: CreationStatus;\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum AvailablePayoutOption {\n SwedishBankAccount = 'SwedishBankAccount',\n InternationalBankAccount = 'InternationalBankAccount',\n PayPal = 'PayPal',\n Swish = 'Swish',\n Tink = 'Tink',\n Unknown = 'Unknown'\n}\n\nexport interface CompleteHyperwalletTransferMethodApiRequest {\n transferMethodToken?: string | null;\n transferMethodType?: string | null;\n}\n\nexport interface CompleteHyperwalletTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetHyperwalletAuthenticationTokenApiRequest = object;\n\nexport interface GetHyperwalletAuthenticationTokenApiResponse {\n authenticationToken?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetHyperwalletMemberDetailsApiRequest = object;\n\nexport interface GetHyperwalletMemberDetailsApiResponse {\n payeeVerificationStatus?: string | null;\n responseStatus?: ResponseStatus | null;\n userToken?: string | null;\n}\n\nexport type GetHyperwalletTransferMethodViewModelApiRequest = object;\n\nexport interface GetHyperwalletTransferMethodViewModelApiResponse {\n responseStatus?: ResponseStatus | null;\n userToken?: string | null;\n widgetBaseUrl?: string | null;\n}\n\nexport type GetIsTraderaPayEnabledApiRequest = object;\n\nexport interface GetIsTraderaPayEnabledApiResponse {\n isEnabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetPayoutSettingsModalViewModelApiResponse {\n availablePayoutOptions?: AvailablePayoutOption[] | null;\n hyperwallet?: PayoutSettingsModalHyperwallet | null;\n member?: PayoutSettingsModalMember | null;\n payoutFrequencyOption?: string | null;\n responseStatus?: ResponseStatus | null;\n tink?: PayoutSettingsModalTink | null;\n}\n\nexport type GetPayoutSettingsViewModelApiRequest = object;\n\nexport interface GetPayoutSettingsViewModelApiResponse {\n hyperwalletOnboardingProblems?: HyperwalletOnboardingProblem[] | null;\n hyperwalletPayeeVerificationStatus?: string | null;\n payoutDestination?: string | null;\n payoutDestinationType?: string | null;\n payoutFrequencyOption?: string | null;\n payoutFrequencyOptions?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetPayoutTransferMethodUpdateStatusApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n status?: string | null;\n}\n\nexport interface HyperwalletOnboardingProblem {\n details?: string | null;\n type?: string | null;\n}\n\nexport interface MatchBankApiRequest {\n bankAccountNumber?: string | null;\n clearingNumber?: string | null;\n}\n\nexport interface MatchBankApiResponse {\n bankFound: boolean;\n /** @deprecated */\n bankName?: string | null;\n ok: boolean;\n /** @deprecated */\n requireBankIdVerification: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PayoutSettingsModalHyperwallet {\n userToken?: string | null;\n widgetBaseUrl?: string | null;\n}\n\nexport interface PayoutSettingsModalMember {\n emailAddress?: string | null;\n isCompany: boolean;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n requireBankIdVerification: boolean;\n}\n\nexport interface PayoutSettingsModalTink {\n tinkLinkUrl?: string | null;\n}\n\nexport type RemoveBankAccountPayoutTransferMethodApiRequest = object;\n\nexport interface RemoveBankAccountPayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemovePayPalPayoutTransferMethodApiRequest = object;\n\nexport interface RemovePayPalPayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemovePayoutTransferMethodApiRequest = object;\n\nexport interface RemovePayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ResendPayoutTransferMethodVerificationCodeApiRequest {\n /** @format uuid */\n processCorrelationId: string;\n swishNumber?: string | null;\n}\n\nexport interface ResendPayoutTransferMethodVerificationCodeApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetBankAccountPayoutTransferMethodApiRequest {\n bankAccountNumber?: string | null;\n bankIdOrderRef?: string | null;\n clearingNumber?: string | null;\n}\n\nexport interface SetBankAccountPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SetHyperwalletPayeeVerificationAsSubmittedApiRequest = object;\n\nexport interface SetHyperwalletPayeeVerificationAsSubmittedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayPalPayoutTransferMethodApiRequest {\n bankIdOrderRef?: string | null;\n emailAddress?: string | null;\n}\n\nexport interface SetPayPalPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayoutTransferMethodUsingTinkApiRequest {\n accountNumber?: string | null;\n bankIdOrderRef?: string | null;\n}\n\nexport interface SetPayoutTransferMethodUsingTinkApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetSwishPayoutTransferMethodApiRequest {\n bankIdOrderRef?: string | null;\n swishNumber?: string | null;\n}\n\nexport interface SetSwishPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface VerifyPayoutTransferMethodApiRequest {\n /** @format uuid */\n processCorrelationId: string;\n verificationCode?: string | null;\n}\n\nexport interface VerifyPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdBeginWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n}\n\nexport interface BankIdPasswordRecoveryCancelApiRequest {\n bankIdOrderRef?: string | null;\n /** @format int32 */\n memberid: number;\n}\n\nexport interface ChangeAliasApiRequest {\n browser?: string | null;\n ipAddress?: string | null;\n location?: string | null;\n newAlias?: string | null;\n operatingSystem?: string | null;\n}\n\nexport interface ChangeAliasApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangeEmailWithIdApiRequest {\n bankIdOrderRef?: string | null;\n email?: string | null;\n /** @format int32 */\n memberId: number;\n userIpAddress?: string | null;\n}\n\nexport interface ChangeEmailWithIdApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangePasswordApiRequest {\n password?: string | null;\n}\n\nexport interface ChangePasswordApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangePasswordWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n password?: string | null;\n}\n\nexport interface CreateTaxIdentificationImageUploadUrlApiRequest {\n contentType?: string | null;\n}\n\nexport interface CreateTaxIdentificationImageUploadUrlApiResponse {\n objectName?: string | null;\n responseStatus?: ResponseStatus | null;\n uploadUrl?: string | null;\n}\n\nexport type CreateVerificationCodeApiRequest = object;\n\nexport interface CreateVerificationCodeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreateVerificationCodeWithMemberIdApiRequest {\n /** @format int32 */\n memberId: number;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface CreateVerificationCodeWithMemberIdApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type DeactivateMemberAccountPermanentlyApiRequest = object;\n\nexport interface DeactivateMemberAccountPermanentlyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface DeactivateMemberAccountTemporarilyApiRequest {\n comment?: string | null;\n}\n\nexport interface DeactivateMemberAccountTemporarilyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GenerateMemberReferralCodeApiRequest = object;\n\nexport interface GenerateMemberReferralCodeApiResponse {\n /** @format double */\n amount: number;\n referralCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetAccountDeactivationSettingsApiRequest = object;\n\nexport interface GetAccountDeactivationSettingsApiResponse {\n isAccountDeactivationAllowed: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBraintreeOnboardingDetailsApiRequest = object;\n\nexport interface GetBraintreeOnboardingDetailsApiResponse {\n isAccountDetailsSupplied: boolean;\n maskedBankAccount?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetHomepageThemeSettingApiRequest = object;\n\nexport interface GetHomepageThemeSettingApiResponse {\n isChangeAllowed: boolean;\n responseStatus?: ResponseStatus | null;\n theme: HomepageTheme;\n}\n\nexport type GetMagicalSyiEnabledApiRequest = object;\n\nexport interface GetMagicalSyiEnabledApiResponse {\n enabled: boolean;\n isChangeAllowed: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMemberBankIdVerificationApiResponse {\n bankIdFormattedPersonalNumber?: string | null;\n /** @format date-time */\n lastVerifiedDate: string;\n /** @format date-time */\n manualIdentityVerificationValidTo: string;\n needInitialVerification: boolean;\n needsVerification: boolean;\n responseStatus?: ResponseStatus | null;\n supportsVerification: boolean;\n verificationReason: VerificationReason;\n}\n\nexport type GetMemberCompanyDac7StatusApiRequest = object;\n\nexport interface GetMemberCompanyDac7StatusApiResponse {\n isUnderDac7Requirements: boolean;\n hasRegisteredTaxIdentificationNumber: boolean;\n hasRegisteredVatNumber: boolean;\n responseStatus?: ResponseStatus | null;\n shouldProvideTaxBasis: boolean;\n /** @deprecated */\n shouldProvideVatNumber: boolean;\n}\n\nexport type GetMemberCompanyMoneyTransferLicenseStatusApiRequest = object;\n\nexport interface GetMemberCompanyMoneyTransferLicenseStatusApiResponse {\n hasApprovedMoneyTransferLicenseAgreement: boolean;\n hasCompanyContactSsn: boolean;\n /** @deprecated */\n isCompanyContactSignatory: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n moneyTransferLicenseAgreementName?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberConsentApiRequest = object;\n\nexport interface GetMemberConsentApiResponse {\n hasTraderaPayConsent: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n needsConsentOfTraderaPayAgreement?: string | null;\n responseStatus?: ResponseStatus | null;\n signatoryVerificationRequired: boolean;\n}\n\nexport type GetMemberEmailNotificationsSettingsViewModelApiRequest = object;\n\nexport interface GetMemberEmailNotificationsSettingsViewModelApiResponse {\n email?: MemberEmailNotificationsSettingsEmailApiDto | null;\n /** @format int32 */\n memberId: number;\n messaging?: MemberEmailNotificationsSettingsMessagingApiDto | null;\n responseStatus?: ResponseStatus | null;\n silentMessaging?: MemberSilentMessagingSettingApiDto | null;\n}\n\nexport type GetMemberHasAutoShipmentCheckoutApiRequest = object;\n\nexport interface GetMemberHasAutoShipmentCheckoutApiResponse {\n autoShipmentCheckoutEnabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberHasTaxIdentificationNumberApiRequest = object;\n\nexport interface GetMemberHasTaxIdentificationNumberApiResponse {\n hasTaxIdentificationNumber: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberLocalizationApiRequest = object;\n\nexport interface GetMemberLocalizationApiResponse {\n languageCodeIso2?: string | null;\n automaticTranslationPreferred: boolean;\n currencyCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberProfileSettingsViewModelApiRequest = object;\n\nexport interface GetMemberProfileSettingsViewModelApiResponse {\n accountInformation?: MemberProfileSettingsAccountInformationApiDto | null;\n /** @format int32 */\n memberId: number;\n personalData?: MemberProfileSettingsPersonalDataApiDto | null;\n presentation?: MemberProfileSettingsPresentationApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSecuritySettingsViewModelApiRequest = object;\n\nexport interface GetMemberSecuritySettingsViewModelApiResponse {\n accountDeactivation?: MemberSecuritySettingsAccountDeactivationApiDto | null;\n memberBlocking?: MemberSecuritySettingsMemberBlockingApiDto | null;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSellerSettingsViewModelApiRequest = object;\n\nexport interface GetMemberSellerSettingsViewModelApiResponse {\n autoFeedback?: MemberSellerSettingsAutoFeedbackApiDto | null;\n autoShipmentCheckout?: MemberSellerSettingsAutoShipmentCheckoutApiDto | null;\n combinedShipping?: MemberSellerSettingsCombinedShippingApiDto | null;\n commitOnPayment?: MemberSellerSettingsCommitOnPaymentApiDto | null;\n itemLocalization?: MemberSellerSettingsItemLocalizationApiDto | null;\n magicalSyi?: MemberSellerSettingsMagicalSyiApiDto | null;\n makeAnOffer?: MemberSellerSettingsMakeAnOfferApiDto | null;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n shippingFeeRule?: MemberSellerSettingsShippingFeeRuleApiDto | null;\n}\n\nexport type GetMemberShouldCollectTaxIdentificationNumberApiRequest = object;\n\nexport interface GetMemberShouldCollectTaxIdentificationNumberApiResponse {\n responseStatus?: ResponseStatus | null;\n shouldCollectBirthDate: boolean;\n shouldCollectTaxIdentificationNumber: boolean;\n}\n\nexport type GetMemberVerificationStatusApiRequest = object;\n\nexport interface GetMemberVerificationStatusApiResponse {\n hasAnyActiveTraderaPayConsent: boolean;\n hasCompanyContactSsn: boolean;\n hasSsn: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n needsBankIdVerification: boolean;\n needsConsentOfTraderaPayAgreement?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMoneyTransferLicenseAgreementApiResponse {\n agreementName?: string | null;\n /** @format date-time */\n inEffectAsOf: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetPayoutFrequencyApiRequest = object;\n\nexport type GetPayoutFrequencyOptionsApiRequest = object;\n\nexport type GetShippingInvoiceMemberApiRequest = object;\n\nexport interface GetShippingInvoiceMemberApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetTraderaPayOnboardingDetailsApiRequest = object;\n\nexport interface GetTraderaPayOnboardingDetailsApiResponse {\n isBankAccountDetailsSupplied: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetTranslatedMemberFeedbackApiResponse {\n isTranslationOnDemandDisabled: boolean;\n items?: TranslatedFeedbackItemApiDto[] | null;\n providerName?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface HeroImageUrlApiDto {\n max?: string | null;\n med?: string | null;\n min?: string | null;\n}\n\nexport interface MemberEmailNotificationsSettingsEmailApiDto {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails: boolean;\n acceptsUpiInfoEmails: boolean;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n}\n\nexport interface MemberEmailNotificationsSettingsMessagingApiDto {\n emailNotifyAll: boolean;\n isAllowedToSetParticipation: boolean;\n participates: boolean;\n}\n\nexport type MemberHasCompanyContactSsnApiRequest = object;\n\nexport interface MemberHasCompanyContactSsnApiResponse {\n hasCompanyContactSsn: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberHasSsnApiRequest = object;\n\nexport interface MemberHasSsnApiResponse {\n hasSsn: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberProfileSettingsAccountInformationApiDto {\n alias?: string | null;\n emailAddress?: string | null;\n}\n\nexport interface MemberProfileSettingsPersonalDataApiDto {\n countryCodeIso2?: string | null;\n city?: string | null;\n country?: string | null;\n firstName?: string | null;\n isNameChangeAllowed: boolean;\n lastName?: string | null;\n phoneNumber?: string | null;\n phoneNumberUnvalidated?: string | null;\n streetName?: string | null;\n zipCode?: string | null;\n}\n\nexport interface MemberProfileSettingsPresentationApiDto {\n heroImageUrls?: HeroImageUrlApiDto | null;\n information?: string | null;\n}\n\nexport interface MemberSecuritySettingsAccountDeactivationApiDto {\n isAccountDeactivationAllowed: boolean;\n}\n\nexport interface MemberSecuritySettingsBlockedMemberApiDto {\n alias?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface MemberSecuritySettingsMemberBlockingApiDto {\n blockedMembers?: MemberSecuritySettingsBlockedMemberApiDto[] | null;\n}\n\nexport interface MemberSellerSettingsAutoFeedbackApiDto {\n enabled: boolean;\n message?: string | null;\n type: SellerAutoFeedbackType;\n}\n\nexport interface MemberSellerSettingsAutoShipmentCheckoutApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsCombinedShippingApiDto {\n /** @format int32 */\n days: number;\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsCommitOnPaymentApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsItemLocalizationApiDto {\n selectedDescriptionLanguageCodeIso2?: string | null;\n shippingFromCountryCodeIso2?: string | null;\n}\n\nexport interface MemberSellerSettingsMagicalSyiApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsMakeAnOfferApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsShippingFeeRuleApiDto {\n /** @format int32 */\n freeShippingCostLimit: number;\n shippingOption?: string | null;\n useFreeShippingCostLimit: boolean;\n}\n\nexport interface MemberSilentMessagingSettingApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface PayoutFrequencyApiResponse {\n payoutFrequencyOption?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PayoutFrequencyOptionsApiResponse {\n options?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ReactivateMemberAccountApiRequest {\n bankIdOrderRef?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface ReactivateMemberAccountApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum RecoveryFlowType {\n Email = 'Email',\n Sms = 'Sms'\n}\n\nexport interface RemoveMemberPublicProfileHeroImageApiRequest {\n userIpAddress?: string | null;\n}\n\nexport interface RemoveMemberPublicProfileHeroImageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemoveTraderaPayPayoutDestinationApiRequest = object;\n\nexport interface RemoveTraderaPayPayoutDestinationApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveSellerAutoFeedbackSettingsApiRequest {\n criteria: SellerAutoFeedbackCriteria;\n message?: string | null;\n}\n\nexport interface SaveSellerAutoFeedbackSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveSellerAutoPaymentReminderSettingsApiRequest {\n enabled: boolean;\n}\n\nexport interface SaveSellerAutoPaymentReminderSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveWinnerEmailApiRequest {\n winnerEmail?: string | null;\n}\n\nexport interface SaveWinnerEmailApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum SellerAutoFeedbackType {\n Manual = 'Manual',\n PositiveFeedback = 'PositiveFeedback',\n Paid = 'Paid'\n}\n\nexport interface SendVerificationSmsApiRequest {\n cellphoneNumber?: string | null;\n countryCode?: string | null;\n}\n\nexport interface SendVerificationSmsApiResponse {\n errorMessage?: string | null;\n responseStatus?: ResponseStatus | null;\n sentToCountryCode?: string | null;\n sentToTelephoneNumber?: string | null;\n smsSid?: string | null;\n successful: boolean;\n}\n\nexport interface SendVerificationSmsWithIdApiRequest {\n cellphoneNumber?: string | null;\n countryCode?: string | null;\n /** @format int32 */\n memberId: number;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface SetAutoShipmentCheckoutMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetAutoShipmentCheckoutMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCombinedShippingMemberDaysApiRequest {\n /** @format int32 */\n days: number;\n}\n\nexport interface SetCombinedShippingMemberDaysApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCombinedShippingMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetCombinedShippingMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCommitOnPaymentMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetCommitOnPaymentMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMagicalSyiEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetMagicalSyiEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMakeAnOfferMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetMakeAnOfferMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMemberConsentApiRequest {\n agreementName?: string | null;\n}\n\nexport interface SetMemberConsentApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayoutFrequencyApiRequest {\n payoutFrequencyOption?: string | null;\n}\n\nexport interface SetPayoutFrequencyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetShippingFeeRuleFreeShippingCostLimitApiRequest {\n /** @format int32 */\n freeShippingCostLimit: number;\n useFreeShippingCostLimit: boolean;\n}\n\nexport interface SetShippingFeeRuleFreeShippingCostLimitApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetShippingFeeRuleShippingOptionApiRequest {\n shippingOption?: string | null;\n}\n\nexport interface SetShippingFeeRuleShippingOptionApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SmsCheckApiRequest {\n smsSid?: string | null;\n}\n\nexport interface SmsCheckApiResponse {\n responseStatus?: ResponseStatus | null;\n successful: boolean;\n}\n\nexport interface SmsVerificationDTO {\n action?: string | null;\n cellphoneNumber?: string | null;\n /** @format date-time */\n timestamp: string;\n}\n\nexport interface SmsVerificationsApiResponse {\n responseStatus?: ResponseStatus | null;\n verifications?: SmsVerificationDTO[] | null;\n}\n\nexport interface TaxIdentificationNumberImage {\n filename?: string | null;\n objectName?: string | null;\n}\n\nexport interface TinkBankAccountDto {\n accountNumber?: string | null;\n icon?: string | null;\n name?: string | null;\n}\n\nexport interface TinkGetBankAccountsApiResponse {\n accounts?: TinkBankAccountDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateHomepageThemeApiRequest {\n theme: HomepageTheme;\n}\n\nexport interface UpdateHomepageThemeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberCompanyContactSsnApiRequest {\n companyContactSsn?: string | null;\n}\n\nexport interface UpdateMemberCompanyContactSsnApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberContactDetailsApiRequest {\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n phoneNumber?: string | null;\n streetName?: string | null;\n town?: string | null;\n userIpAddress?: string | null;\n zipCode?: string | null;\n}\n\nexport interface UpdateMemberContactDetailsApiResponse {\n creditSafeVerificationResult?: CreditSafeNameVerificationResult | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberCurrencyApiRequest {\n currencyCode?: string | null;\n}\n\nexport interface UpdateMemberCurrencyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberEmailSettingsApiRequest {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails?: boolean | null;\n acceptsUpiInfoEmails: boolean;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n}\n\nexport interface UpdateMemberEmailSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberLanguageApiRequest {\n languageCodeIso2?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberLanguageApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberPublicProfileHeroImageApiRequest {\n heroImageUrl?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberPublicProfileHeroImageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberPublicProfileInformationApiRequest {\n information?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberPublicProfileInformationApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberSelectedDescriptionLanguageApiRequest {\n languageCodeIso2?: string | null;\n}\n\nexport interface UpdateMemberSelectedDescriptionLanguageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberShippingFromCountryApiRequest {\n countryCodeIso2?: string | null;\n}\n\nexport interface UpdateMemberShippingFromCountryApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberSsnApiRequest {\n ssn?: string | null;\n}\n\nexport interface UpdateMemberSsnApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberTaxIdentificationNumberApiRequest {\n birthDate?: string | null;\n images?: TaxIdentificationNumberImage[] | null;\n taxIdentificationNumber?: string | null;\n}\n\nexport interface UpdateMemberTaxIdentificationNumberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberTranslationPreferredApiRequest {\n isAutomaticTranslationPreferred: boolean;\n}\n\nexport interface UpdateMemberTranslationPreferredApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberVatNumberApiRequest {\n vatNumber?: string | null;\n}\n\nexport interface UpdateMemberVatNumberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateExistingPasswordForMemberApiRequest {\n existingPassword?: string | null;\n}\n\nexport interface ValidateExistingPasswordForMemberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum VerificationReason {\n VerificationNotNeeded = 'VerificationNotNeeded',\n NeedInitialVerification = 'NeedInitialVerification',\n NeedsVerificationFixedPriceLimitTwoMonthValidation = 'NeedsVerificationFixedPriceLimitTwoMonthValidation',\n NeedsVerificationFixedPriceLimitExpensive = 'NeedsVerificationFixedPriceLimitExpensive'\n}\n\nexport interface VerifyNonMobilePincodeApiRequest {\n pincode?: string | null;\n}\n\nexport interface VerifyNonMobilePincodeWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n pincode?: string | null;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface VerifyPincodeApiRequest {\n pincode?: string | null;\n}\n\nexport interface VerifyPincodeApiResponse {\n hasActiveVerificationCode: boolean;\n responseStatus?: ResponseStatus | null;\n success: boolean;\n /** @format int32 */\n verificationAttempts: number;\n}\n\nexport interface VerifyPincodeWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n pincode?: string | null;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface PublicProfileApiResponse {\n selectedDescriptionLanguageCodeIso2?: string | null;\n shippingFromCountryCodeIso2?: string | null;\n accountState: MemberAccountState;\n alias?: string | null;\n city?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n firstName?: string | null;\n hasShop: boolean;\n heroImage?: string | null;\n information?: string | null;\n isCompanyUser: boolean;\n isSwedishUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n shopLogoUrl?: string | null;\n /** @format int32 */\n totalRating: number;\n translatedInformation?: string | null;\n}\n\nexport interface Row {\n /** @format date-time */\n createdDate: string;\n key?: string | null;\n /** @format date-time */\n updatedDate: string;\n value?: string | null;\n}\n\nexport interface SaveFeedbackAsBuyerApiRequest {\n /** @format int32 */\n commResponsiveness?: number | null;\n comment?: string | null;\n isPositive: boolean;\n /** @format int32 */\n itemAsDescribed?: number | null;\n /**\n * @deprecated\n * @format int32\n */\n itemId: number;\n reportInr: boolean;\n /**\n * @deprecated\n * @format int32\n */\n sellerMemberId: number;\n /** @format int32 */\n shippingHandlingCharges?: number | null;\n /** @format int32 */\n shippingTime?: number | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveFeedbackAsSellerApiRequest {\n /**\n * @deprecated\n * @format int32\n */\n buyerMemberId: number;\n comment?: string | null;\n isPositive: boolean;\n /**\n * @deprecated\n * @format int32\n */\n itemId: number;\n /** @format int32 */\n paymentTime?: number | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SaveFeedbackAsSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SellerAutoFeedbackApiRequest = object;\n\nexport interface SellerAutoFeedbackApiResponse {\n /** @format date-time */\n created: string;\n criteria: SellerAutoFeedbackCriteria;\n message?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SellerAutoPaymentReminderApiRequest = object;\n\nexport interface SellerAutoPaymentReminderApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SellerSetItemVisibilityApiRequest {\n hidden: boolean;\n itemIds?: number[] | null;\n}\n\nexport interface SellerSetItemVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CampaignCodeItem {\n auctionId?: number[] | null;\n campaignCode?: string | null;\n /** @format int32 */\n campaignCodeId: number;\n}\n\nexport interface CommissionFeeSummaryDto {\n /** @format double */\n maxFee: number;\n /** @format double */\n maxPercentage: number;\n /** @format double */\n minFee: number;\n /** @format double */\n minPercentage: number;\n}\n\nexport interface FeatureSummaryByIdsApiResponse {\n campaignCodes?: CampaignCodeItem[] | null;\n featureSummaryList?: FeatureSummaryApiDto[] | null;\n isCompanyUser: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FeatureSummaryDto {\n /** @format int32 */\n count: number;\n name?: string | null;\n /** @format int32 */\n price: number;\n}\n\nexport interface ItemApiDto {\n /** @format int32 */\n id: number;\n mainImageUrl?: ItemImageUrls | null;\n mainImageUrlTemplate?: string | null;\n /** @format int32 */\n price: number;\n /** @deprecated */\n selectedShipping?: SelectedShipping | null;\n shortDescription?: string | null;\n}\n\nexport interface MarkAsPaidBySellerApiRequest {\n paidConfirmed: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface MarkAsPaidBySellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberActiveItemsSummaryApiRequest = object;\n\nexport interface MemberActiveItemsSummaryApiResponse {\n responseStatus?: ResponseStatus | null;\n summary?: MemberActiveItemsSummaryApiDto | null;\n}\n\nexport type MemberLatestPublishedListingApiRequest = object;\n\nexport interface MemberLatestPublishedListingApiResponse {\n /** @format date-time */\n latestPublishedDate?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberListingFeeApiRequest = object;\n\nexport interface MemberListingFeeApiResponse {\n /** @format int32 */\n maxFreeListingsPerMonth: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberPickListApiResponse {\n /** @format int32 */\n hiddenCount: number;\n items?: PickListBuyerApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberPickListV2ApiResponse {\n /** @format int64 */\n filterHitCount: number;\n /** @format int32 */\n hiddenCount: number;\n items?: PickListBuyerV2ApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberSoldItemBuyerInfoApiResponse {\n buyerContactDetails?: ContactDetailsApiDto | null;\n buyerProfile?: PublicProfileApiDto | null;\n items?: MemberSoldItemApiDto[] | null;\n paidStatus?: string | null;\n paymentMethod?: string | null;\n paymentOptions?: PaymentOptionApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n sellerContactDetails?: ContactDetailsApiDto | null;\n /** @format double */\n totalOrderPrice: number;\n /** @format double */\n totalOrderPriceWithoutShipping: number;\n /** @format double */\n vatPercent?: number | null;\n}\n\nexport interface MemberSoldItemByTransactionIdApiResponse {\n item?: MemberSoldItemApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberSoldItemShippingInfoV2ApiResponse {\n buyerContactDetails?: ContactDetailsApiDto | null;\n isQuickFlowPossible: boolean;\n /** @deprecated */\n item?: ItemApiDto | null;\n items?: ItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n selectedShipping?: SelectedShipping | null;\n /** @format uuid */\n shipmentCheckoutId: string;\n}\n\nexport interface MemberSoldItemsApiResponse {\n /** @format int32 */\n hiddenCount: number;\n items?: MemberSoldItemApiDto[] | null;\n /** @format int32 */\n notPaidCount: number;\n /** @format int32 */\n paidCount: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n shippedCount: number;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberSoldItemsByPurchaseOrderIdApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSoldItemsSummaryApiRequest = object;\n\nexport interface MemberSoldItemsSummaryApiResponse {\n responseStatus?: ResponseStatus | null;\n summary?: MemberSoldItemsSummaryApiDto | null;\n}\n\nexport type MemberStatsThisMonthApiRequest = object;\n\nexport interface MemberStatsThisMonthApiResponse {\n /** @format int32 */\n activeThisMonthCount: number;\n /** @format int32 */\n listedThisMonthCount: number;\n /** @format int32 */\n maxFreeListingsPerMonth: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n soldThisMonthCount: number;\n /** @format int32 */\n unsoldThisMonthCount: number;\n}\n\nexport interface RestartItemsSummaryApiResponse {\n commission?: CommissionFeeSummaryDto | null;\n features?: FeatureSummaryDto[] | null;\n isCompany: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SelectedShipping {\n /** @format int32 */\n productId?: number | null;\n providerId?: string | null;\n}\n\nexport interface SendGiftCardPackMailApiRequest {\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface SendGiftCardPackMailApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetItemShippedApiRequest {\n /** @format uuid */\n purchaseOrderId: string;\n shipped: boolean;\n}\n\nexport interface SetItemShippedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetItemShippingBookedApiRequest {\n booked: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface SetItemShippingBookedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetTransactionItemShippedApiRequest {\n shipped: boolean;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SetTransactionItemShippedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ShopItemPurchaseHistoryApiResponse {\n /** @format int32 */\n categoryId: number;\n /** @format date-time */\n endDate: string;\n imageUrl?: string | null;\n imageUrlTemplate?: string | null;\n /** @format int32 */\n itemId: number;\n purchases?: ShopItemPurchase[] | null;\n responseStatus?: ResponseStatus | null;\n shortDescription?: string | null;\n userReference?: string | null;\n}\n\nexport interface SetBuyerTransactionVisibilityApiRequest {\n hidden: boolean;\n transactionIdList?: number[] | null;\n}\n\nexport interface SetBuyerTransactionVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetItemVisibilityApiRequest {\n hidden: boolean;\n itemIds?: number[] | null;\n}\n\nexport interface SetItemVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetTransactionVisibilityApiRequest {\n hidden: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface SetTransactionVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SystemMessage {\n severity: SystemMessageSeverity;\n type: SystemMessageType;\n}\n\nexport enum SystemMessageSeverity {\n Warning = 'Warning',\n Info = 'Info'\n}\n\nexport enum SystemMessageType {\n InvoiceOverdue = 'InvoiceOverdue',\n InvoiceUnpaid = 'InvoiceUnpaid',\n PayoutFailed = 'PayoutFailed',\n PayoutReadyBankAccountMissing = 'PayoutReadyBankAccountMissing',\n BankAccountMissing = 'BankAccountMissing',\n HyperwalletPayeeVerificationRequired = 'HyperwalletPayeeVerificationRequired',\n HyperwalletPayeeVerificationUnderReview = 'HyperwalletPayeeVerificationUnderReview',\n PayoutProviderOnboardingFailed = 'PayoutProviderOnboardingFailed',\n KycQuestionnaire = 'KycQuestionnaire',\n PayoutReadyVerificationRequired = 'PayoutReadyVerificationRequired',\n OutstandingTraderaPayLicense = 'OutstandingTraderaPayLicense',\n PayoutReadyOutstandingTraderaPayLicense = 'PayoutReadyOutstandingTraderaPayLicense',\n CollectVatNumber = 'CollectVatNumber',\n CollectTin = 'CollectTin'\n}\n\nexport interface UnblockMemberApiRequest {\n /** @format int32 */\n memberIdToUnblock: number;\n}\n\nexport interface UnblockMemberApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface NewDisputeItemSelectorPageApiResponse {\n items?: DisputeV2PurchaseOrderItemData[] | null;\n purchaseOrder?: DisputeV2PurchaseOrderData | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface NewDisputePageApiResponse {\n isOngoingPayoutReview: boolean;\n items?: DisputeV2ItemData[] | null;\n purchaseOrder?: DisputeV2PurchaseOrderData | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ProfilePageApiResponse {\n accountState?: string | null;\n alias?: string | null;\n city?: string | null;\n cleanedAlias?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n existsInFavouriteSellers: boolean;\n hasShop: boolean;\n heroImageUrl?: string | null;\n inFavouriteSellers: boolean;\n intro?: string | null;\n isCompany: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n /** @format int32 */\n profileMemberId: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalRating?: number | null;\n translatedIntro?: string | null;\n}\n\nexport interface WebChangeEmailWithIdApiRequest {\n bankIdOrderRef?: string | null;\n email?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport enum ItemState {\n BidderAuctionRemoved = 'BidderAuctionRemoved',\n BidderBidRemoved = 'BidderBidRemoved',\n BidderEndedWon = 'BidderEndedWon',\n BidderEndedReservedPriceNotReached = 'BidderEndedReservedPriceNotReached',\n BidderEndedNotWon = 'BidderEndedNotWon',\n BidderActiveLeading = 'BidderActiveLeading',\n BidderActiveReservedPriceNotReached = 'BidderActiveReservedPriceNotReached',\n BidderActiveOverbidden = 'BidderActiveOverbidden',\n GeneralActive = 'GeneralActive',\n GeneralEnded = 'GeneralEnded',\n PurchasedNotPaid = 'PurchasedNotPaid',\n PurchasedPaid = 'PurchasedPaid',\n PurchasedDone = 'PurchasedDone',\n ShopItemActive = 'ShopItemActive',\n ShopItemEnded = 'ShopItemEnded',\n ShopItemEndedWon = 'ShopItemEndedWon',\n BuyItNowEndedWon = 'BuyItNowEndedWon',\n BuyItNowEnded = 'BuyItNowEnded',\n BuyItNowActive = 'BuyItNowActive',\n SellerActiveBids = 'SellerActiveBids',\n SellerActiveNoBids = 'SellerActiveNoBids',\n SellerReservedPriceNotReached = 'SellerReservedPriceNotReached',\n SellerSoldNotPaid = 'SellerSoldNotPaid',\n SellerSoldDone = 'SellerSoldDone',\n SellerSoldShipped = 'SellerSoldShipped',\n SellerSoldPaid = 'SellerSoldPaid',\n SellerSoldShippingBooked = 'SellerSoldShippingBooked'\n}\n\nexport interface WishListApiResponse {\n items: WishListItemCardViewModel[];\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n}\n\nexport interface WishListItemCardViewModel {\n /** @format int32 */\n buyNowPrice: number;\n displayHighlighted: boolean;\n /** @format date-time */\n endDate: string;\n hasFreeShipping: boolean;\n imageSecondaryUrl: string;\n imageUrl: string;\n isActive: boolean;\n isLeading: boolean;\n isOverbidden: boolean;\n isWinner: boolean;\n /** @format int32 */\n itemId: number;\n itemState: ItemState;\n itemType: string;\n itemUrl: string;\n /** @format int32 */\n maxBidAmount: number;\n preferredShipping: WishListItemShippingOptionViewModel;\n /** @format int32 */\n price: number;\n sellerAlias: string;\n /** @format int32 */\n sellerMemberId: number;\n shortDescription: string;\n /** @format int32 */\n totalBids: number;\n}\n\nexport interface WishListItemShippingOptionViewModel {\n /** @format double */\n cost: number;\n type: string;\n}\n\nexport interface AddItemToWishListApiRequest {\n /** @format int32 */\n itemId: number;\n}\n\nexport interface AddItemToWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n wishListItems?: WishListItemDto[] | null;\n}\n\nexport type GetWishListItemIdsApiRequest = object;\n\nexport interface GetWishListItemIdsApiResponse {\n responseStatus?: ResponseStatus | null;\n wishListItemsIds?: number[] | null;\n}\n\nexport type GetWishlistItemsEndingTodayCountApiRequest = object;\n\nexport interface GetWishlistItemsEndingTodayCountApiResponse {\n /** @format int32 */\n numberOfItems: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberBidInfo {\n auctionRemoved: boolean;\n bidRemoved: boolean;\n /** @format int32 */\n maxBidAmount: number;\n /** @format int32 */\n memberId: number;\n reservePriceReached: boolean;\n}\n\nexport interface RemoveItemFromWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface RemoveItemsFromWishListApiRequest {\n itemIds?: number[] | null;\n}\n\nexport interface WishListItemDto {\n /** @format date-time */\n addedToWishList: string;\n /** @format int32 */\n bidCount: number;\n boughtByCurrentMember: boolean;\n /** @format int32 */\n categoryId: number;\n /** @format int32 */\n currentBidAmount: number;\n displayHighlighted: boolean;\n /** @format date-time */\n endDate: string;\n /** @format int32 */\n fixedPrice: number;\n hasCommitUpFront: boolean;\n hasEnded: boolean;\n hasReservePrice: boolean;\n isAuthenticated: boolean;\n isAvailableForOffers?: boolean | null;\n isBuyItNow: boolean;\n isPaid?: boolean | null;\n isShopItem: boolean;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemPrice?: number | null;\n /** @format int32 */\n leadingBidMemberId?: number | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n memberBid?: MemberBidInfo | null;\n /** @format int32 */\n nextValidBidAmount?: number | null;\n /** @format int32 */\n openingBid?: number | null;\n preferredShipping?: ShippingApiDto | null;\n reservePriceReached: boolean;\n secondaryImage?: ItemImageUrls | null;\n secondaryImageTemplate?: string | null;\n sellerAlias?: string | null;\n /** @format int32 */\n sellerMemberId: number;\n /** @format int32 */\n sellerTotalRating: number;\n title?: string | null;\n /** @format date-time */\n transactionDate?: string | null;\n /** @format int32 */\n transactionType?: number | null;\n type: ItemTypeApiDto;\n}\n\nexport interface Address {\n countryCodeIso2?: string | null;\n city?: string | null;\n country?: string | null;\n street?: string | null;\n zipCode?: string | null;\n}\n\nexport interface ShippingDiscount {\n partnerProvider?: string | null;\n /** @format int32 */\n price: number;\n /** @format int32 */\n shippingProductId?: number | null;\n shippingProvider?: string | null;\n}\n\nexport enum PickListFilterPaidStatus {\n All = 'All',\n Paid = 'Paid',\n Unpaid = 'Unpaid'\n}\n\nexport enum PickListFilterShippedStatus {\n All = 'All',\n Shipped = 'Shipped',\n NotShipped = 'NotShipped'\n}\n\nexport interface ShopItemPurchase {\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n buyerTotalRating: number;\n /** @format int32 */\n categoryId: number;\n /** @format int32 */\n price: number;\n /** @format date-time */\n transactionDate: string;\n}\n\nexport interface TransactionFeedbackRemovalRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface TransactionItemShippedCreateParams {\n request?: SetTransactionItemShippedApiRequest;\n}\n\nexport interface TransactionVisibilityCreateParams {\n request?: SetTransactionVisibilityApiRequest;\n}\n\nexport interface TransactionsRequest {\n transactionIds?: number[];\n}\n\nexport interface TranslatedRequest {\n toLanguageCodeIso2?: string;\n feedbackIds?: number[];\n}\n\nexport interface TranslationPreferredUpdateParams {\n request?: UpdateMemberTranslationPreferredApiRequest;\n}\n\nexport interface UnreadNotificationsCountRequest {\n request?: GetUnreadNotificationsCountApiRequest;\n}\n\nexport interface UpiStrikeRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface UppoStrikeCreateParams {\n request?: AddUnpaidPurchaseOrderStrikeApiRequest;\n}\n\nexport interface UppoStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface V2EscalateCreateParams {\n request?: EscalateDisputeV2ApiRequest;\n}\n\nexport interface V2GetDataRequest {\n /** @format int32 */\n disputeId?: number;\n}\n\nexport interface V2ImageUploadUrlCreateParams {\n request?: CreateDisputeImageUploadUrlApiRequest;\n}\n\nexport interface V2MarkAsSolvedCreateParams {\n request?: MarkDisputeAsSolvedV2ApiRequest;\n}\n\nexport interface V2SaveDataCreateParams {\n request?: SaveDisputeDataV2ApiRequest;\n}\n\nexport interface ValidateExistingPasswordCreateParams {\n request?: ValidateExistingPasswordForMemberApiRequest;\n}\n\nexport interface VatNumberUpdateParams {\n request?: UpdateMemberVatNumberApiRequest;\n}\n\nexport interface VatdetailsRequest {\n request?: GetMemberVatDetailsApiRequest;\n}\n\nexport interface VerificationStatusRequest {\n request?: GetMemberVerificationStatusApiRequest;\n}\n\nexport interface VerifyCreateParams {\n request?: VerifyPayoutTransferMethodApiRequest;\n}\n\nexport interface VerifyNonmobilePincodeCreateParams {\n request?: VerifyNonMobilePincodeApiRequest;\n}\n\nexport interface VerifyNonmobilePincodeWithIdCreateParams {\n request?: VerifyNonMobilePincodeWithIdApiRequest;\n}\n\nexport interface VerifyPincodeCreateParams {\n request?: VerifyPincodeApiRequest;\n}\n\nexport interface VerifyPincodeWithIdCreateParams {\n request?: VerifyPincodeWithIdApiRequest;\n}\n\nexport interface WinnerEmailUpdateParams {\n request?: SaveWinnerEmailApiRequest;\n}\n\nexport interface WishListRequest {\n shippingCountryCodeIso2?: string;\n languageCodeIso2?: string;\n automaticTranslationPreferred?: boolean;\n statusFilter?: string;\n /** @format int32 */\n pageSize?: number;\n /** @format int32 */\n page?: number;\n}\n\nexport interface WishlistCreateParams {\n request?: AddItemToWishListApiRequest;\n}\n\nexport interface WishlistDeleteParams {\n request?: RemoveItemsFromWishListApiRequest;\n}\n\nexport interface WishlistRequest {\n statusFilter?: WishListStatusFilter;\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n languageCodeIso2?: string;\n}\n\nexport interface WithAliasRequest {\n alias?: string;\n}\n","import {\n selectGeolocation,\n selectIsLoggedIn,\n selectIsOutsideSweden\n} from 'tradera/state/member/selectors';\nimport { selectPreferredLanguage } from 'tradera/state/language/selectors';\nimport { getLanguageFromCountryCode } from 'tradera/localization/languagecode';\nimport {\n isDenmarkCountryCode,\n isNetherlandsCountryCode,\n isSwedenCountryCodeOrUndefined\n} from 'tradera/localization/countrycode';\nimport type { RootState } from '../configure-store';\n\nexport const selectShowRegionSelection = (state: RootState) =>\n !selectIsLoggedIn(state) && selectIsOutsideSweden(state);\nexport const selectAvailableShippingCountryCodes = (state: RootState) =>\n state.shippingRegion.availableShippingCountryCodes;\nexport const selectAvailableShippingCountries = (state: RootState) =>\n state.shippingRegion.availableShippingCountries;\nexport const selectShippingCountry = (state: RootState) =>\n state.shippingRegion.shippingCountry;\nexport const selectIsLoadingAvailableShippingCountries = (state: RootState) =>\n state.shippingRegion.isLoadingAvailableShippingCountries;\nexport const selectHasLoadedAvailableShippingCountries = (state: RootState) =>\n state.shippingRegion.hasLoadedAvailableShippingCountries;\nexport const selectShippingRegionCountryCodeIso2 = (state: RootState) =>\n state.shippingRegion.shippingCountry?.countryCodeIso2;\nexport const selectIsSwedishVisitor = (state: RootState) =>\n isSwedenCountryCodeOrUndefined(selectShippingRegionCountryCodeIso2(state));\nexport const selectIsDanishVisitor = (state: RootState) =>\n isDenmarkCountryCode(selectShippingRegionCountryCodeIso2(state));\nexport const selectIsDutchVisitor = (state: RootState) =>\n isNetherlandsCountryCode(selectShippingRegionCountryCodeIso2(state));\n\nconst gpsMatchesLanguage = (state: RootState) => {\n const geoLocation = selectGeolocation(state);\n if (!geoLocation) {\n return true;\n }\n const country = geoLocation?.isoCode?.toLowerCase();\n const expectedLang = getLanguageFromCountryCode(country);\n const language =\n selectPreferredLanguage(state)?.languageCodeIso2?.toLowerCase() || 'sv';\n return expectedLang === language;\n};\n\nexport const selectShowLocalizationRegionPicker = (state: RootState) =>\n !selectIsLoggedIn(state) &&\n !state.shippingRegion.regionPickerDismissed &&\n !state.shippingRegion.shippingCountryCookieValue &&\n !gpsMatchesLanguage(state);\n","import axios, {\n type AxiosError,\n type AxiosInstance,\n type AxiosResponse,\n type CancelTokenSource\n} from 'axios';\n\nimport { logger } from 'packages/logger';\nimport { isServer } from 'tradera/utils/nextjs';\n\n/**\n * Standardized api error codes\n */\nexport const API_ERRORS = {\n IGNORE_ME: 'IGNORE_ME',\n ABORTED: 'ABORTED',\n CANCELLED: 'CANCELLED',\n NETWORK: 'NETWORK',\n TIMEOUT: 'TIMEOUT',\n VERSION_MISMATCH: 'VERSION_MISMATCH',\n LOGGED_OUT: 'LOGGED_OUT'\n};\n\nexport const defaultJsonRequestHeaders = {\n // Force json response\n Accept: 'application/json',\n // For WebAPI and RequiresAuthorization to handle ajax request\n 'X-Requested-With': 'XMLHttpRequest'\n};\n\n/**\n * Standard Axios configs\n */\nexport const axiosConfigs = {\n // Requests to endpoints with authentication\n authenticated: {\n // Send auth cookies\n withCredentials: true,\n headers: defaultJsonRequestHeaders\n },\n notAuthenticated: {\n // Dont send auth cookies\n withCredentials: false,\n headers: defaultJsonRequestHeaders\n }\n};\n\nconst isMissingAuthToken = (responseString: string) => {\n try {\n const responseObject = JSON.parse(responseString);\n const isMissing =\n responseObject.responseStatus.errorCode === 'MissingAuthToken';\n return isMissing;\n } catch {\n return false;\n }\n};\n\nconst isUnauthorized = (statusCode: number) => statusCode === 401;\n\nexport const addAntiCacheParam = (url?: string) => {\n const antiCacheRegExp = /([?&]_=)[^&]*/;\n return antiCacheRegExp.test(url || '')\n ? url?.replace(antiCacheRegExp, '$1' + new Date().getTime())\n : url +\n (/\\?/.test(url || '') ? '&' : '?') +\n '_=' +\n new Date().getTime();\n};\n\nconst submitOriginalRequest = async (error: AxiosError) =>\n axios({\n ...error.config,\n url: addAntiCacheParam(error.config?.url)\n });\n\nconst refreshAccessToken = async () =>\n axios.post('/api/webapi/auth/web/client/token', {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\nconst renewMemberToken = async () =>\n axios.post('/api/webapi/auth/web/member/token/renew', {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\nconst handleMissingAuthToken = async (error: AxiosError) => {\n const handleErrorAfterRefresh = async (\n errorAfterRefreshToken: AxiosError\n ) => {\n if (isUnauthorized(errorAfterRefreshToken.request?.status)) {\n // eslint-disable-next-line better-mutation/no-mutation\n error.message = API_ERRORS.LOGGED_OUT;\n }\n return Promise.reject(error);\n };\n return refreshAccessToken()\n .then((response) => {\n if (response.data?.hasRefreshToken) {\n return renewMemberToken();\n }\n return response;\n })\n .then(() => submitOriginalRequest(error))\n .catch(handleErrorAfterRefresh);\n};\n\nconst handleUnauthorized = async (error: AxiosError) => {\n // Refresh access token, then member token if refresh token exists.\n return refreshAccessToken()\n .then((response) => {\n if (response.data?.hasRefreshToken) {\n return renewMemberToken();\n }\n return response;\n })\n .then((response) => {\n if (!isUnauthorized(response.status)) {\n return submitOriginalRequest(error);\n }\n // eslint-disable-next-line better-mutation/no-mutation\n error.message = API_ERRORS.LOGGED_OUT;\n // eslint-disable-next-line promise/no-return-wrap\n return Promise.reject(error);\n });\n};\n\nexport const errorResponseInterceptor = (error: AxiosError) => {\n if (isMissingAuthToken(error.request?.response)) {\n return handleMissingAuthToken(error);\n } else if (isUnauthorized(error.request?.status)) {\n return handleUnauthorized(error);\n }\n return Promise.reject(error);\n};\n\n/**\n * Create Axios instance or decorate existing instance with interceptor for expired token responses\n *\n */\nexport const axiosWithTokenRefresh = (axiosInstance?: AxiosInstance) => {\n let instance;\n if (axiosInstance === undefined) {\n instance = axios.create();\n } else {\n instance = axiosInstance;\n }\n instance.interceptors.response.use(\n (response) => response,\n errorResponseInterceptor\n );\n return instance;\n};\n\nconst cancelTokens: Record = {};\n\n/**\n * Create new or return existing cancellation function\n *\n * Usage:\n * const { cancel, cancelToken } = utilizeCancelToken('tokenId')\n * if (cancel) cancel();\n * axios.get('http://api.com/...', { cancelToken });\n *\n * @param {string} tokenId - A string ID shared between requests that cancel together\n */\nexport const utilizeCancelToken = (tokenId: string) => {\n if (isServer) {\n throw new Error(\n 'This implementation is not compatible with SSR as global properties like cancelTokens here are shared between server instances'\n );\n }\n let cancel;\n if (tokenId in cancelTokens) {\n cancel = cancelTokens[tokenId].cancel;\n }\n // eslint-disable-next-line better-mutation/no-mutation\n cancelTokens[tokenId] = axios.CancelToken.source();\n return {\n cancel,\n cancelToken: cancelTokens[tokenId].token\n };\n};\n\n/**\n * Check response version and throw error if different from current\n *\n */\nexport const checkResponseVersion = (version = '12.0.0') => {\n return (response: AxiosResponse) => {\n if (\n response.headers &&\n response.headers['X-Tradera-Version'] &&\n response.headers['X-Tradera-Version'] !== version\n ) {\n throw new Error(API_ERRORS.VERSION_MISMATCH);\n } else {\n return response;\n }\n };\n};\n\n/**\n * Checks redirect response for logged out user\n * This is an old solution. New solutions return a 401 response instead (see handleError).\n * Requires Axios config to include { withCredentials: true }\n *\n */\nexport const checkResponseLoggedOut = () => {\n return (response: AxiosResponse) => {\n if (\n response.data &&\n typeof response.data === 'string' &&\n response.data.includes('Logga in')\n ) {\n throw new Error(API_ERRORS.LOGGED_OUT);\n } else {\n return response;\n }\n };\n};\n\n/**\n * Final standardized formatting of an api response\n *\n */\nexport const finalizeResponse = () => {\n return (response: AxiosResponse) => {\n const { data, status } = response;\n return {\n data,\n status\n };\n };\n};\n\ntype StatusHandlers = Record;\n\n/**\n * Common network request error handling\n */\nexport const handleError = (statusHandlers: StatusHandlers = {}) => {\n return (error: AxiosError) => {\n const status = error.response && error.response.status;\n const message = error.message ? error.message : error.toString();\n\n let errorMessage = error.message;\n\n if (axios.isCancel(error)) {\n errorMessage = API_ERRORS.CANCELLED;\n } else if (message.includes('timeout') || status === 408) {\n errorMessage = API_ERRORS.TIMEOUT;\n } else if (message.includes('Network')) {\n errorMessage = API_ERRORS.NETWORK;\n } else if (message.includes('Request aborted')) {\n errorMessage = API_ERRORS.ABORTED;\n } else if (status === 401) {\n errorMessage = API_ERRORS.LOGGED_OUT;\n } else if (status && status in statusHandlers) {\n errorMessage = statusHandlers[status];\n }\n\n /* eslint-disable better-mutation/no-mutation */\n error.message = errorMessage;\n\n throw error;\n };\n};\n\nexport const reloadOnUnauthorized = (error: AxiosError) => {\n switch (error.message) {\n case API_ERRORS.LOGGED_OUT:\n window.location.reload();\n break;\n default:\n throw error;\n }\n};\n\nexport const isClientNetworkError = (error: AxiosError) => {\n switch (error.message) {\n case API_ERRORS.IGNORE_ME:\n case API_ERRORS.CANCELLED:\n case API_ERRORS.ABORTED:\n case API_ERRORS.NETWORK:\n case API_ERRORS.TIMEOUT:\n return true;\n default:\n return false;\n }\n};\n\nexport const logError = (error: AxiosError, scope?: object) => {\n if (!isClientNetworkError(error)) {\n logger(error, scope);\n }\n};\n","import cookie from 'cookie';\n\nexport const getCookieFromString = (cookieString: string, key: string) =>\n cookie.parse(cookieString)[key] || null;\n\n/**\n * Helper function for cookie and GDPR utilities do NOT use this directly. Use the cookie\n * utility instead as that is GDPR compliant.\n * @returns\n */\nexport const getCookieFromBrowser = (key: string) =>\n getCookieFromString(window.document.cookie, key);\n\n/**\n * Helper function for cookie and GDPR utilities do NOT use this directly. Use the cookie\n * utility instead as that is GDPR compliant.\n * @returns\n */\nexport const setCookieToBrowser = (s: string) => {\n window.document.cookie = s;\n};\n","import plainDayjs from 'dayjs';\nimport type { ConfigType, Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport localeData from 'dayjs/plugin/localeData';\nimport {\n DAY_IN_SECONDS,\n HOUR_IN_SECONDS,\n MINUTE_IN_SECONDS\n} from 'tradera/constants/time';\nimport 'dayjs/locale/sv';\nimport 'dayjs/locale/da';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/nl';\n\nplainDayjs.extend(isBetween);\nplainDayjs.extend(isSameOrAfter);\nplainDayjs.extend(utc);\nplainDayjs.extend(timezone);\nplainDayjs.extend(localizedFormat);\nplainDayjs.extend(relativeTime);\nplainDayjs.extend(localeData);\n\nexport const dayjs = plainDayjs;\n\nexport const localizedDayjs =\n (locale: string) =>\n (...args: Parameters): Dayjs =>\n dayjs(...args).locale(locale);\n\nconst swedishTimeZone = 'Europe/Stockholm';\n\nexport const swedishTimeZoneDate = (\n date: ConfigType,\n localizedDayjsFn: ReturnType\n): Dayjs => {\n const locale = localizedDayjsFn().locale();\n return localizedDayjsFn(date).tz(swedishTimeZone).locale(locale);\n};\n\ninterface FormatOptions {\n includeWeekday?: boolean;\n includeYear?: boolean;\n excludeTime?: boolean;\n}\n\nexport const formatUtcDateAsSwedishTimeZoneDate = (\n date: ConfigType,\n localizedDayjsFn: ReturnType,\n options: FormatOptions = {}\n): string => {\n const formatArray = [\n options.includeWeekday && 'ddd', // tor\n 'D MMM', // 19 okt\n options.includeYear && 'YYYY', // 2023\n !options.excludeTime && 'HH:mm' // 09:50\n ];\n const format = formatArray.filter(Boolean).join(' ');\n\n return swedishTimeZoneDate(date, localizedDayjsFn).format(format);\n};\n\nexport const getCurrentSwedishTimeZoneDate = (): string =>\n dayjs().tz(swedishTimeZone).format('YYYYMMDD');\n\ninterface TimeSpanOptions {\n startUnit?: string;\n endUnit?: string;\n}\n\nexport const getTimeSpanParts = (\n seconds: number,\n options: TimeSpanOptions = {}\n): Record => {\n const optionsWithDefaults = {\n startUnit: '',\n endUnit: '',\n ...options\n };\n const parts: Record = {};\n let remaining = seconds;\n let started = !optionsWithDefaults.startUnit;\n for (const [part, length] of Object.entries(TIME_SPAN_UNIT_LENGTHS)) {\n if (!started && part === optionsWithDefaults.startUnit) started = true;\n if (started) {\n if (remaining >= length) {\n parts[part] = Math.floor(remaining / length);\n }\n // eslint-disable-next-line better-mutation/no-mutation\n remaining %= length;\n if (remaining === 0 || optionsWithDefaults.endUnit === part) break;\n }\n }\n return parts;\n};\n\nexport const TIME_SPAN_UNITS = {\n DAYS: 'days',\n HOURS: 'hours',\n MINUTES: 'minutes',\n SECONDS: 'seconds'\n} as const;\n\ntype TimeSpanUnit = (typeof TIME_SPAN_UNITS)[keyof typeof TIME_SPAN_UNITS];\n\nconst TIME_SPAN_UNIT_LENGTHS: Record = {\n [TIME_SPAN_UNITS.DAYS]: DAY_IN_SECONDS,\n [TIME_SPAN_UNITS.HOURS]: HOUR_IN_SECONDS,\n [TIME_SPAN_UNITS.MINUTES]: MINUTE_IN_SECONDS,\n [TIME_SPAN_UNITS.SECONDS]: 1\n};\n\nexport const getMonths = (locale: string): string[] => {\n dayjs.locale(locale);\n return dayjs.months();\n};\n","import type { Dayjs } from 'dayjs';\nimport type { TranslationFunction } from 'tradera/lang/translate';\nimport { swedishTimeZoneDate } from 'tradera/utils/date';\n/**\n * NOTE: there's a hook useFormatEndDate in src/hooks/use-format-end-date.ts\n * that will help out with dayjs and translation func\n */\nexport const formatEndDate = (\n endDateInput: string | Date,\n t: TranslationFunction,\n nowDateInput: string | Date,\n dayjs: () => Dayjs\n): string => {\n if (!endDateInput || !nowDateInput) return '';\n\n const endDate = swedishTimeZoneDate(endDateInput, dayjs);\n const now = swedishTimeZoneDate(nowDateInput, dayjs);\n if (endDate.isSameOrAfter(now.add(1, 'week'), 'day')) {\n return endDate.format('D MMM HH:mm');\n }\n if (endDate.isSameOrAfter(now.add(2, 'day'), 'day')) {\n return endDate.format('ddd HH:mm');\n }\n if (endDate.isSameOrAfter(now.add(1, 'day'))) {\n return `${t('vip_tomorrow')} ${endDate.format('HH:mm')}`;\n }\n if (endDate.isSameOrAfter(now.add(1, 'minute'))) {\n const hours = endDate.diff(now, 'hour');\n const minutes = endDate.diff(now, 'minute') % 60;\n const timeParts = [];\n if (hours > 0) {\n timeParts.push(t('vip_hours', { count: hours }));\n }\n if (minutes > 0) {\n timeParts.push(t('vip_minutes', { count: minutes }));\n }\n return timeParts.join(' ');\n }\n if (endDate.isAfter(now)) {\n return t('vip_less_than_1_min_left');\n }\n return t('vip_ended');\n};\n\nexport const formatNumberWithSeparators = (\n number: number | string,\n separator: string = '\\u2006'\n): string => {\n return number\n .toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + separator);\n};\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsLocales(): boolean {\n try {\n Number(0).toLocaleString('i');\n } catch (e) {\n return e instanceof RangeError;\n }\n return false;\n}\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsOptions(): boolean {\n return !!(\n typeof Intl === 'object' &&\n Intl &&\n typeof Intl.NumberFormat === 'function'\n );\n}\n\nconst isLocaleFormattingSupportedInBrowser: boolean =\n toLocaleStringSupportsLocales() && toLocaleStringSupportsOptions();\n\nexport const formatSellerDsrAverage = (\n value?: number | null,\n locale: string = 'sv-SE'\n): string | undefined => {\n return value?.toLocaleString(locale, {\n minimumFractionDigits: 1,\n maximumFractionDigits: 1\n });\n};\n\ntype CurrencyOptions = Intl.NumberFormatOptions & {\n preferredCurrency?: string;\n};\n\nexport const getCurrencySymbol = (\n locale: string,\n overrideOptions: CurrencyOptions = {}\n): string => {\n const defaultOptions: Intl.NumberFormatOptions = {\n style: 'currency',\n currency: 'SEK',\n currencyDisplay:\n locale.startsWith('sv') &&\n (overrideOptions.currency || 'SEK') === 'SEK' &&\n (overrideOptions.preferredCurrency || 'SEK') === 'SEK'\n ? 'symbol'\n : 'code',\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n };\n return (0)\n .toLocaleString(locale, {\n ...defaultOptions,\n ...overrideOptions\n } as Intl.NumberFormatOptions)\n .replace(/\\d/g, '')\n .trim();\n};\n\nexport const formatDateWithDayOfWeek = (\n dateString: string,\n locale: string\n): string => {\n if (!isLocaleFormattingSupportedInBrowser) {\n return dateString;\n }\n\n const options: Intl.DateTimeFormatOptions = {\n weekday: 'long',\n year: undefined,\n month: 'long',\n day: 'numeric'\n };\n return new Intl.DateTimeFormat(locale, options).format(\n Date.parse(dateString)\n );\n};\n\nexport const formatItemId = (itemId?: number): string | undefined => {\n if (!itemId || !Number.isInteger(itemId)) return undefined;\n\n return itemId.toLocaleString('sv-SE'); // Groupings of 3 separated by spaces\n};\n\nexport const formatOrderNumber = (\n orderNr?: string | number\n): string | undefined =>\n formatItemId(\n typeof orderNr === 'string' ? Number.parseInt(orderNr) : orderNr\n );\n","import ENDPOINTS from 'tradera/constants/endpoints';\nimport {\n axiosWithTokenRefresh,\n checkResponseVersion,\n finalizeResponse,\n handleError,\n utilizeCancelToken,\n axiosConfigs\n} from 'tradera/utils/api';\nimport initData from 'tradera/legacy/static/packages/init-data';\nimport { toLocalizedUrl } from 'tradera/utils/url';\nimport { getLanguage } from 'tradera/utils/language';\nimport { isServer } from 'tradera/utils/nextjs';\nimport type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\n\ntype HttpClientConfig = AxiosRequestConfig & { cancelTokenId?: string };\n\nconst ensureClientOnly = () => {\n // Cancel tokens would be shared per server instance so ensure we are not on server.\n if (isServer) {\n throw new Error('This HTTP client is only safe to use on frontend');\n }\n};\n\n// Prevents URL:s that begins with // when that was not intended.\nconst getSafeUrl = (baseUrl: string, url?: string) => {\n if (baseUrl.endsWith('/') && url?.startsWith('/')) {\n return baseUrl + url.substring(1);\n }\n return baseUrl + url;\n};\n\nconst httpClient = (baseUrl: string, shouldLocalizeUrl?: boolean) => {\n const axiosWrapper = (\n url: string | undefined,\n httpClientConfig: HttpClientConfig,\n axiosCaller: (\n axios: AxiosInstance,\n url: string,\n config: AxiosRequestConfig\n ) => Promise>\n ) => {\n const { cancelTokenId, ...axiosConfig } = httpClientConfig;\n const version = initData.version;\n if (cancelTokenId) {\n const { cancel, cancelToken } = utilizeCancelToken(cancelTokenId);\n // eslint-disable-next-line better-mutation/no-mutation\n axiosConfig.cancelToken = cancelToken;\n if (cancel) {\n cancel();\n }\n }\n const safeUrl = getSafeUrl(baseUrl, url);\n const localizedUrl = shouldLocalizeUrl\n ? toLocalizedUrl(safeUrl, getLanguage())\n : safeUrl;\n return axiosCaller(axiosWithTokenRefresh(), localizedUrl, axiosConfig)\n .then(\n version ? checkResponseVersion(version) : (response) => response\n )\n .then(finalizeResponse())\n .catch(handleError());\n };\n\n return {\n get: (\n url: string,\n httpClientConfig: HttpClientConfig = axiosConfigs.authenticated\n ) => {\n ensureClientOnly();\n return axiosWrapper(url, httpClientConfig, (axios, url, config) =>\n axios.get(url, config)\n );\n },\n post: (\n url: string,\n payload: TRequest,\n httpClientConfig: HttpClientConfig = axiosConfigs.authenticated\n ) => {\n ensureClientOnly();\n return axiosWrapper(url, httpClientConfig, (axios, url, config) =>\n axios.post, TRequest>(\n url,\n payload,\n config\n )\n );\n },\n put: (\n url: string,\n payload: TRequest,\n httpClientConfig: HttpClientConfig = axiosConfigs.authenticated\n ) => {\n ensureClientOnly();\n return axiosWrapper(url, httpClientConfig, (axios, url, config) =>\n axios.put, TRequest>(\n url,\n payload,\n config\n )\n );\n },\n delete: (\n url: string,\n httpClientConfig: HttpClientConfig = axiosConfigs.authenticated\n ) => {\n ensureClientOnly();\n return axiosWrapper(url, httpClientConfig, (axios, url, config) =>\n axios.delete(url, config)\n );\n },\n request: (\n config: AxiosRequestConfig,\n httpClientConfig: HttpClientConfig = axiosConfigs.authenticated\n ) => {\n ensureClientOnly();\n return axiosWrapper(\n config.url,\n httpClientConfig,\n (axios, url, enhancedConfig) => {\n return axios.request({ ...config, ...enhancedConfig, url });\n }\n );\n }\n };\n};\n\nconst trpcClient = (endpoint: string) => {\n const client = httpClient(`/api/${endpoint}`, false);\n function unpackResponse(response: { data: TResponse }) {\n return response.data;\n }\n return {\n command: (\n commandName: string,\n payload: TRequest,\n httpClientConfig?: HttpClientConfig\n ): Promise =>\n client\n .post<\n TResponse,\n TRequest\n >(`/commands/${commandName}`, payload, httpClientConfig)\n .then(unpackResponse),\n query: (\n queryName: string,\n httpClientConfig?: HttpClientConfig\n ) =>\n client\n .get(`/queries/${queryName}`, httpClientConfig)\n .then(unpackResponse)\n };\n};\n\nexport const defaultClient = httpClient('');\nexport const touchWebClient = httpClient('/', true);\nexport const nextwebClient = httpClient('/api');\nexport const webApiClient = httpClient(ENDPOINTS.WEB_API, false);\nexport const cmsApiClient = httpClient('/api/cms');\nexport const marketingApiClient = httpClient(ENDPOINTS.MARKETING_PUBLIC_API);\nexport const memberIdentificationClient = trpcClient('member-identification');\nexport const translationDynamicApiClient = trpcClient(\n 'translation-dynamic-api'\n);\nexport const shippingRecommendationsClient = trpcClient(\n 'shipping-recommendations'\n);\n","import { logger } from 'tradera/legacy/static/packages/logger';\nimport { isServer } from 'tradera/utils/nextjs';\nimport type { TaskPriority } from 'src/types/scheduler-polyfill.d.ts';\n\ntype isInputPendingOptions = { includeContinuous: boolean };\ntype PostTaskCallback = () => unknown;\n\ndeclare global {\n interface Navigator {\n scheduling: {\n isInputPending: (options?: isInputPendingOptions) => boolean;\n };\n }\n\n interface Window {\n scheduler: Scheduler;\n }\n}\n\nconst LONG_RUNNING_TASK_DURATION = 50; // ms\n\nconst polyfillScheduler = () => {\n if (isServer) {\n return Promise.reject();\n }\n\n if (typeof window.scheduler !== 'undefined') {\n return Promise.resolve();\n }\n\n return import('scheduler-polyfill');\n};\n\nconst schedulerPolyfill = polyfillScheduler();\n\nexport const isInputPending = (): boolean =>\n Boolean(navigator.scheduling?.isInputPending({ includeContinuous: true }));\n\n/**\n * Pauses a synchronous task to allow other main thread tasks on the event loop to run (good for INP)\n * Note that nested setTimeout can cause an up to a 15ms delay in loops\n * (https://chromestatus.com/feature/5710690097561600), so use sparingly and with `isInputPending`:\n * if (isInputPending()) {\n * await yieldToMain();\n * }\n * Docs: https://web.dev/articles/optimize-long-tasks#use_asyncawait_to_create_yield_points\n */\nexport const yieldToMain = (): Promise =>\n new Promise((resolve) => {\n setTimeout(resolve, 0);\n });\n\n/**\n * Loop through an array (or other iterable object) of as a background task\n *\n * For each iteration this will pause if there is a user interaction event that needs\n * to be handled on the main thread or if it has exceeded the limit of a long running task (>=50ms);\n */\nexport const forEachYield = async (\n array: Array,\n callback: (\n element: ArrayType,\n index: number,\n array: Array\n ) => void\n): Promise => {\n let deadline = performance.now() + LONG_RUNNING_TASK_DURATION;\n let index = 0;\n\n for (const element of array) {\n if (isInputPending() || performance.now() >= deadline) {\n // There's a pending user input. Yield here:\n await yieldToMain();\n deadline = performance.now() + LONG_RUNNING_TASK_DURATION;\n }\n callback(element, index, array);\n index += 1;\n }\n};\n\nconst postTask = async (\n taskCallback: PostTaskCallback,\n priority: TaskPriority\n) => {\n try {\n await schedulerPolyfill;\n } catch (error) {\n if (isServer) {\n logger('scheduler-polyfill does not support a node environment');\n }\n // Fallback to ensure taskCallback() is always called\n await yieldToMain();\n return taskCallback();\n }\n\n return await scheduler.postTask(taskCallback, { priority });\n};\n\nexport const queueUserBlockingTask = (taskCallback: PostTaskCallback) =>\n postTask(taskCallback, 'user-blocking');\n\nexport const queueUserVisibleTask = (taskCallback: PostTaskCallback) =>\n postTask(taskCallback, 'user-visible');\n\nexport const queueBackgroundTask = (taskCallback: PostTaskCallback) =>\n postTask(taskCallback, 'background');\n","import { webApiClient } from 'tradera/utils/http';\n\nconst timeDiffInMs = (start) => {\n return Date.now() - start;\n};\n\nconst queryServerTime = async (retryCount) => {\n const latencyLimit = 2000;\n const maxRetries = 2;\n const requestStart = Date.now();\n const {\n data: { currentTime }\n } = await webApiClient.get('/discover/server-time');\n const latency = timeDiffInMs(requestStart);\n\n if (latency < latencyLimit) {\n return { currentTime: Date.parse(currentTime), latency };\n } else if (retryCount < maxRetries) {\n return queryServerTime(retryCount + 1);\n } else {\n return null;\n }\n};\n\n/**\n * Requests server time and returns\n * { currentTime, latency }\n */\nexport const getServerTime = async () => {\n return await queryServerTime(0);\n};\n","/* eslint-disable better-mutation/no-mutation */\n\nimport { getServerTime } from 'tradera/utils/time-api';\nimport { isServer } from 'tradera/utils/nextjs';\n\nlet _minServerCheckInterval = 1000 * 60 * 5;\nlet _serverDiff = 0;\nlet _didGetServerResponse = false;\nlet _lastCheckAtMs = null;\n\nconst updateServerDiff = async () => {\n _lastCheckAtMs = Date.now();\n const serverTimeObject = await getServerTime();\n if (serverTimeObject) {\n _didGetServerResponse = true;\n // We add the whole latency even though it may give a later\n // time than in reality since a later time gives less time\n // left until auctions expire. This is better than showing\n // too much time left.\n const timeNowOnServer = new Date(\n serverTimeObject.currentTime + serverTimeObject.latency\n );\n _serverDiff = timeNowOnServer.getTime() - Date.now();\n }\n};\n\nconst shouldCheckServer = () =>\n _lastCheckAtMs === null ||\n Date.now() - _lastCheckAtMs >= _minServerCheckInterval;\n\nlet _initialPromise = null;\n\n/**\n * Gets the date on the server and shall be used for calculating auction time left.\n * @returns The date or null if server did not respond at least once.\n */\nexport const syncServerTime = async () => {\n if (isServer) {\n throw new Error('Never call this on server');\n }\n if (shouldCheckServer()) {\n const promise = updateServerDiff();\n if (!_didGetServerResponse) {\n _initialPromise = promise;\n }\n }\n\n if (_initialPromise) {\n try {\n await _initialPromise;\n } catch {\n // Don't throw any errors.\n }\n _initialPromise = null;\n }\n\n return _didGetServerResponse ? new Date(Date.now() + _serverDiff) : null;\n};\n\nexport const resetForTesting = () => {\n _minServerCheckInterval = 0;\n _didGetServerResponse = null;\n};\n","import qs from 'qs';\nimport HOSTS from 'tradera/constants/hosts';\nimport initData from 'tradera/legacy/static/packages/init-data';\nimport { formatNextPathnameInfo } from 'next/dist/shared/lib/router/utils/format-next-pathname-info';\nimport { getNextPathnameInfo } from 'next/dist/shared/lib/router/utils/get-next-pathname-info';\n\nimport { logger } from 'packages/logger';\nimport {\n URL_LANGUAGES,\n DEFAULT_LANGUAGE,\n SUPPORTED_LANGUAGES,\n SUPPORT_SITE_LANGUAGE_CODE_MAP,\n SUPPORT_SITE_DEFAULT_LANGUAGE\n} from 'tradera/lang/constants.mjs';\nimport { removePropertiesWithoutValue } from 'tradera/utils/object';\n\nconst RELATIVE_DOMAIN = 'https://example.com';\n\n// List of SPA paths for the regex match, without initial slash\nconst SPA_REGEX_PATHS = [\n 'search',\n 'campaign',\n 'charity',\n 'categories',\n 'profile\\\\/items',\n 'brand\\\\/.+',\n // Category\n '[a-z]+[\\\\w\\\\-]+[\\\\-|_]\\\\d+'\n];\nconst SPA_PATH_REGEX = new RegExp(\n `^(/(${URL_LANGUAGES.join('|')}))?/(${SPA_REGEX_PATHS.join('|')})`\n);\n\n/**\n * Removes priceRange from query params if fromPrice or toPrice is present.\n */\nconst prunePriceRange = (queryParams: Record) => {\n if (queryParams.fromPrice || queryParams.toPrice) {\n const { priceRange, ...result } = queryParams;\n return result;\n }\n return queryParams;\n};\n\ntype FormatQueryParamsQueryParams = Record & {\n category?: string;\n categoryId?: string;\n};\n/**\n * Format query params parsed from query string\n */\nexport const formatQueryParams = (\n queryParams: FormatQueryParamsQueryParams\n) => {\n const {\n category: queryCategory,\n categoryId: queryCategoryId,\n ...rest\n } = removePropertiesWithoutValue(queryParams);\n const formattedQueryParams = prunePriceRange(rest);\n const categoryId = parseInt(queryCategory || queryCategoryId || '0', 10);\n if (categoryId > 0) {\n formattedQueryParams.categoryId = categoryId;\n }\n return formattedQueryParams;\n};\n\n/**\n * Check if url is absolute\n */\nexport const isAbsoluteUrl = (url: string): boolean =>\n new RegExp('^(?:[a-z]+:)?//', 'i').test(url);\n\n/**\n * Tests if a given url or path is an SPA link or not\n */\nexport function isSpaLink(urlOrPath: string): boolean {\n let pathname;\n if (/(^http)s?:\\/\\//i.test(urlOrPath)) {\n try {\n pathname = new URL(urlOrPath).pathname;\n } catch {\n return false;\n }\n } else {\n pathname = urlOrPath;\n }\n return SPA_PATH_REGEX.test(pathname);\n}\n\n/**\n * Takes an object and returns a new object without route parameters\n */\nexport const stripRouteParametersFromQueryParameters = (\n queryParams: Record,\n params: Record | undefined\n) => {\n if (!params) return queryParams;\n\n const excludeKeys = new Set(Object.keys(params));\n\n const filteredPairs = Object.entries(queryParams).filter(\n ([key]) => !excludeKeys.has(key)\n );\n return Object.fromEntries(filteredPairs);\n};\n\n/**\n * Takes an object and returns a new object without pagination properties\n */\nexport function stripCategoryIdFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { categoryId, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Removes tradera base from a url, leaving path and query\n */\nexport const stripHost = (url: string): string =>\n typeof url === 'string' && url.startsWith('http')\n ? url.replace(HOSTS.TRADERA, '')\n : url;\n\n/**\n * Takes an object and returns a new object without itm properties\n * Itm tags should no longer be used, so this method will then be obsolete\n */\nexport function stripItmFromQueryParameters>(\n queryParams: T\n): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { itm_source, itm_medium, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without pagination properties\n */\nexport function stripPaginationFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n // The parameters \"spage\", \"page\" and possible \"fe\" are deprecated and should no longer be used.\n // However, it may still be useful to remove them from the query parameters here,\n // in case they are used in old links.\n const { spage, paging, page, fe, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without savedQueryName properties\n */\nexport function stripSavedQueryNameFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { savedQueryName, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without saveSearch properties\n */\nexport function stripSaveSearchNameFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { saveSearch, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an url and adds tradera base url if it is not already an absolute url\n */\nexport const toAbsoluteUrl = (relativeUrl: string): string =>\n relativeUrl.startsWith('http')\n ? relativeUrl\n : `${HOSTS.TRADERA}${\n relativeUrl.startsWith('/') ? relativeUrl : '/' + relativeUrl\n }`;\n\n// Help TS understand that the parameter is a string\nconst isString = (str: unknown): str is string => {\n if (str === null || str === undefined || str === '' || str === false)\n return false;\n\n return true;\n};\n\n/**\n * From URL to URL with language prefix\n */\nexport function toLocalizedUrl(\n url: T,\n languageCodeIso2?: string\n): T | string {\n if (!isString(url)) {\n return url;\n }\n\n const ignoredUrls = [initData.webApiUrl, '/api/webapi/'];\n const isIgnoredUrl = ignoredUrls.find(\n (domain) => url.indexOf(domain) !== -1\n );\n if (isIgnoredUrl) {\n return url;\n }\n\n if (!languageCodeIso2) {\n logger(`Missing language code for URL ${url}`);\n return url;\n }\n\n if (url.startsWith('//')) {\n throw new Error(\n `Attempt to localize protocol relative url: ${url}. This is not supported at the moment`\n );\n }\n\n const urlObject = new URL(url, RELATIVE_DOMAIN);\n\n if (url.startsWith('/support/')) {\n return toLocalizedSupportSiteUrl(urlObject, languageCodeIso2);\n }\n\n // eslint-disable-next-line better-mutation/no-mutation\n urlObject.pathname = setLanguagePrefix(\n urlObject.pathname,\n languageCodeIso2\n );\n return urlObject.toString().replace(RELATIVE_DOMAIN, '');\n}\n\nconst toLocalizedSupportSiteUrl = (\n urlObject: URL,\n languageCodeIso2: string\n) => {\n const languagePart = urlObject.pathname.split('/')[2];\n const isAlreadyLocalized = Object.values(\n SUPPORT_SITE_LANGUAGE_CODE_MAP\n ).includes(languagePart || '');\n\n if (isAlreadyLocalized) {\n return urlObject.toString().replace(RELATIVE_DOMAIN, '');\n }\n\n const supportLanguageCode =\n SUPPORT_SITE_LANGUAGE_CODE_MAP[\n languageCodeIso2 as keyof typeof SUPPORT_SITE_LANGUAGE_CODE_MAP\n ] || SUPPORT_SITE_DEFAULT_LANGUAGE;\n\n // eslint-disable-next-line better-mutation/no-mutation\n urlObject.pathname = urlObject.pathname.replace(\n '/support/',\n `/support/${supportLanguageCode}/`\n );\n\n return urlObject.toString().replace(RELATIVE_DOMAIN, '');\n};\n\n/**\n * Creates query parameters object from search string\n */\nexport const toQueryParameters = (search: string) =>\n qs.parse(search, { ignoreQueryPrefix: true });\n\ntype ToSearchStringOptions = {\n addQueryPrefix?: boolean;\n encode?: boolean;\n skipNulls?: boolean;\n arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma';\n};\n\n/**\n * Creates search string from all properties in object\n */\nexport const toSearchString = (\n queryParams: object,\n {\n addQueryPrefix = true,\n encode = true,\n skipNulls = true,\n arrayFormat = 'repeat' //qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) ==> 'a=b&a=c'\n }: ToSearchStringOptions = {}\n): string =>\n qs.stringify(queryParams, {\n addQueryPrefix: addQueryPrefix,\n encode: encode,\n skipNulls: skipNulls,\n arrayFormat: arrayFormat\n });\n\nconst setLanguagePrefix = (path: string, languageCodeIso2: string) => {\n // Inspired by `next/src/server/web/next-url.ts`\n const nextConfig = {\n i18n: {\n defaultLocale: DEFAULT_LANGUAGE,\n locales: SUPPORTED_LANGUAGES\n }\n };\n const pathnameInfo = getNextPathnameInfo(path, {\n nextConfig,\n parseData: true\n });\n const localizedPathname = formatNextPathnameInfo({\n ...pathnameInfo,\n defaultLocale: DEFAULT_LANGUAGE,\n locale: languageCodeIso2\n });\n return localizedPathname;\n};\n\nexport const getBackToHereRedirectUrl = () => {\n // Add random query parameter to force reload when redirecting to this url\n // and only the hash differs\n const queryParams = {\n ...qs.parse(location.search, { ignoreQueryPrefix: true }),\n forceRedirect: Math.round(Math.random() * 100000)\n };\n return (\n location.protocol +\n '//' +\n location.host +\n location.pathname +\n qs.stringify(queryParams, { addQueryPrefix: true })\n );\n};\n\n/**\n * Converts an API request to URLSearchParams for use in a GET request\n */\nexport const convertApiRequestToURLParams = (\n apiRequest: Record\n): URLSearchParams => {\n return Object.entries(apiRequest).reduce((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n if (Array.isArray(value)) {\n value.forEach((item) => acc.append(key, item.toString()));\n } else {\n acc.append(key, value.toString());\n }\n }\n return acc;\n }, new URLSearchParams());\n};\n\nexport const getHeroImageUrl = (\n heroImageUrl: string,\n version: 'small' | 'medium' | 'large' = 'medium'\n) => {\n if (heroImageUrl) {\n return `https://img.tradera.net/heroimages/${version}-square/${heroImageUrl}`;\n }\n return undefined;\n};\n\n/**\n * Checks if the current page is a direct navigation\n *\n * If the current page's referrer contains tradera.com, then it's not a direct navigation, the user has been on the site before.\n *\n * @returns true if it is a direct navigation, false otherwise\n */\nexport const isDirectNavigation = () => {\n if (!document.referrer) return true; // Direct navigation or referrer blocked\n try {\n const referrerUrl = new URL(document.referrer);\n return !referrerUrl.hostname.endsWith('.tradera.com');\n } catch (e) {\n return true; // Invalid referrer URL\n }\n};\n"],"names":["PRODUCTION_ORIGIN","mapTarget","target","React","_ref","forwardedRef","isTouchwebSpaLink","useLink","href","children","givenOnClick","onClick","otherProps","_objectWithoutProperties","_excluded","dispatch","useDispatch","currentLocation","useLocation","isNativeApp","useAppSelector","selectIsNativeApp","toggles","selectFeatureSwitches","isSpaNavigationEnabled","state","environment","isTouchwebInNextweb","isNextWebAddUrlParamEnabled","useIsFeatureEnabled","isTouchWebAddUrlParamEnabled","absoluteLinkUrl","URL","searchParams","set","navigationType","getNavigationType","fromUrl","toUrl","handleSpaNavigationClick","useCallback","evt","removePrivacySandboxIframes","updateEnvironmentHash","isRelativeUrl","origin","includes","relativeUrl","getRelativeUrl","url","isFragmentNavSamePage","hash","pathname","startsWith","search","NavigationType","NextSpaNavigation","_jsx","NextLink","_objectSpread","passHref","ref","TouchwebSpaNavigation","Link","to","toString","hostname","referrerPolicy","getReferrerPolicy","DEFAULT_COOKIES","ITEM_LAYOUT","key","default","length","SITE_LAYOUT","MYTRADERA_DEFAULT_COOKIES","LIST_VIEW_TYPE","ITEMS_PER_PAGE","SHOW_FILTERS","LIST_VIEW_TYPE_BUYER_ACTIVE_ITEMS","PAGE_LIST_TYPES","BUYER_ACTIVE_ITEMS","LIST_VIEW_TYPE_BUYER_ITEMS_LOST","BUYER_ITEMS_LOST","LIST_VIEW_TYPE_SELLER_ACTIVE","SELLER_ACTIVE","LIST_VIEW_TYPE_SELLER_NOT_SOLD","SELLER_NOT_SOLD","APP_DOWNLOAD_MODAL_DISMISSED","GDPR_CONSENT_COOKIE","FORCE_GEO_DEV","NATIVE_APP_ENVIRONMENT","REGION_PICKER_DISMISSED","SHIPPING_COUNTRY","CART_ID","VIEWPORT_WIDTH","EXPERIMENT_BUCKET","PRODUCT_COMMUNICATION_DISMISSED","WISH_LIST_NOTIFICATION_DISPLAY_COUNT","WISH_LIST_NOTIFICATION_HIDDEN","RECENTLY_VIEWED_ITEM_IDS","RECENT_SEARCHES","SAVED_SEARCHES","ENTERED_FASHION_PAGE","COOKIE_CATEGORIES","Essential","Performance","Functional","Marketing","COLLECT_SSN_MODAL_DISMISSED","TRADERA_PAY_CONSENT_MODAL_DISMISSED","CATEGORIZED_COOKIES","COOKIE_DEFAULT_CATEGORY","webApiUrl","isNextJs","isServer","process","env","PUBLIC_TOUCHWEB_WINDOW_LOCATION_ORIGIN","window","location","initData","AVAILABLE_SHIPPING_COUNTRIES","CART_OVERVIEW_VIEW","CART_ADD_ITEM","CART_REMOVE_ITEMS","CART_SET_ITEM_QUANTITY","FAVOURITE_SELLERS","HYPERWALLET_PAYOUT_COMPLETE","HYPERWALLET_PAYOUT_TOKEN","HYPERWALLET_PAYOUT","INTERNATIONAL_SHIPPING_CALCULATOR","ORDER_CHECKOUT_PAYMENT","orderCheckoutPaymentUrl","ORDER_CHECKOUT_REQUEST_COMBINED_PRICE","ORDER_CHECKOUT_CREATE_UNCOMMITTED_PURCHASE_ORDER","ORDER_PURCHASE_SHOP_ITEMS","SEARCH","WEB_API","UPI","purchaseOrderId","MCP","MCP_CONFIRM","PURCHASE_ORDER","MARKETING_PUBLIC_API","SHIPPING_CHECKOUT_DELETE","TRADERA","DAY_IN_SECONDS","HOUR_IN_SECONDS","MINUTE_IN_SECONDS","MINUTE_IN_MILLISECONDS","SECOND_IN_MILLISECONDS","createWrappedT","i18nObject","t","addTranslation","language","hasLoadedAllTranslations","throwOnTransSuffix","isShowingTranslationKeysEnabled","i18nKey","options","endsWith","TRANS_SUFFIX","Error","_len","arguments","args","Array","_key","translation","lng","addTranslationForHydration","isQueryToggleEnabled","query","useTranslator","useAddTranslation","isShowingTranslationKeysEnabledQuery","_slicedToArray","useQuery","useSelector","selectPreferredLanguageCode","_state$status","status","loadedLanguages","_useTranslation","useTranslation","I18N_FRONTEND_NAMESPACES","ready","i18n","wrappedT","undefined","_i18n$translator$extr","translator","extractFromKey","namespaces","namespace","_i18n$translator$reso","resolve","ns","res","exactUsedKey","withTranslator","WrappedComponent","WithTranslator","props","displayName","name","useCurrentLanguage","useUrlLocalizer","preferredLanguage","toLocalizedUrl","useRef","current","Trans","_state$status2","_useTranslation2","defaults","TransComponent","NS_TOUCHWEB","_Fragment","bootInit","bootApp","module","split","moduleLoader","isSpaModule","loadSpaModule","then","initModule","loadModule","loadedModule","runModule","document","body","setAttribute","catch","handleModuleError","globalSocket","bootSiteWideNotifications","socketUrl","joinMemberRoom","socket","SocketIoChannel","getGlobalSocket","isRetry","on","async","_ref2","success","disconnect","connect","addEventListener","data","showItemOutbiddedToast","ItemId","NewLeadingBidAmount","showItemFirstBidToast","showItemSoldToast","Price","showItemWonToast","showItemPaidToast","showItemWishListReminderToast","TimeLeftMinutes","join","languageCodeIso2","webLiveUrl","memberId","preferredLanguageCode","bootLanguages","gtm","loadGtmScript","syncServerTime","dayjs","isBetween","isSameOrAfter","isSinglePageApp","console","error","logger","isSwedenCountryCodeOrUndefined","countryCodeIso2","toLowerCase","isDenmarkCountryCode","areCountryCodesIso2Equal","first","second","toUpperCase","formatPrice","price","inputLocale","overrideOptions","locale","style","currency","preferredCurrency","currencyDisplay","useGrouping","minimumFractionDigits","maximumFractionDigits","roundUp","priceAsNumber","parseInt","decimalFactorForRounding","Math","pow","ceil","isLocaleFormattingSupportedInBrowser","formattedPrice","toLocaleString","formatNumberWithSeparators","Number","e","toLocaleStringSupportsLocales","Intl","NumberFormat","isSwedishOrUndefined","getLanguageFromCountryCode","se","dk","de","fr","nl","getCountryCodeForFlagFromLanguage","languageCode","en","da","getCountryCodeFromLanguage","areLanguageCodesIso2Equal","useLocalizedPriceFormatter","useLocalizedPriceFormatterInternal","useLocalizedPriceFormatterRoundingUp","useLocalizedPriceFormatterNoSymbol","_ref$conversion","conversion","minDecimals","maxDecimals","selectPreferredCurrency","rate","code","decimals","MissingSocketIoServerUrl","ReferenceError","MissingRoomId","isAllowedToConnect","constructor","socketIoServerUrl","autoConnect","this","io","events","rooms","Set","forEach","room","payload","Type","contexts","socketIo","callback","Event","type","isConnected","emit","has","add","leave","rejoinOnConnect","delete","event","removeEventListener","off","_this$socket","connected","ItemToast","imageUrl","itemUrl","shortDescription","eventData","ALink","className","styles","_jsxs","src","title","alt","ToastMessage","localizedPriceFormatter","message","newLeadingBid","newLeadingBidAmount","timeLeftMinutes","MessageToast","header","messageData","headerData","queuedToasts","createQueue","openNextToast","isInProgress","nextItem","next","queueLength","getLength","toastOptions","autoClose","max","onClose","notifyDone","itemId","webApiClient","get","item","toast","createElement","_nextItem$eventData","handleNotification","ttlInMinutes","visibilityState","showSuccessToast","TYPE","SUCCESS","showErrorToast","ERROR","showInfoToast","INFO","selectEnvironment","_state$environment","featureSwitches","selectIsFeatureEnabled","featureName","_selectFeatureSwitche","_state$environment3","isNativeAppContext","selectAvailableLanguages","available","selectAvailableLanguageCodesIso2","createSelector","map","x","selectPreferredLanguage","preferred","_state$language","_state$language$prefe","DEFAULT_LANGUAGE","selectIsForeignLanguageActivated","_selectPreferredLangu","selectAutomaticTranslationPreferred","_state$language$autom","automaticTranslationPreferred","selectMember","member","selectIsLoggedIn","_state$member","isLoggedIn","selectGeolocation","_state$member2","geolocation","selectMemberId","_state$member3","selectMemberAlias","_state$member4","memberAlias","selectMemberBirthdate","_state$member8","memberBirthdate","selectIsOutsideSweden","_state$member12","_state$member12$geolo","_state$member13","_state$member13$geolo","isoCode","selectMemberTown","_state$member14","memberTown","selectIsUnderage","_permissions$sellPerm","_permissions$sellPerm2","_permissions$sellPerm3","permissions","selectMemberPermissions","sellPermission","isPermitted","requirementsNotMet","RequirementTypeApi","IsOverMinimumAge","selectIsCompany","_state$member15","isCompany","selectMemberState","_state$member17","memberState","defaultCurrency","valueDate","updatedDate","symbolSuffix","shortName","longName","resolveCurrency","enabled","currencyCode","currencies","find","multiCurrencySlice","createSlice","initialState","reducers","initialize","action","_action$payload","_action$payload$curre","setPreferredCurrency","_multiCurrencySlice$a","actions","selectCurrencies","multiCurrency","c","selectIsPreferredCurrencySEK","_selectPreferredCurre","selectShowCurrencySelection","HomepageTheme","MessagingEmailNotification","SystemMessageSeverity","selectShowRegionSelection","selectAvailableShippingCountryCodes","shippingRegion","availableShippingCountryCodes","selectAvailableShippingCountries","availableShippingCountries","selectShippingCountry","shippingCountry","selectIsLoadingAvailableShippingCountries","isLoadingAvailableShippingCountries","selectHasLoadedAvailableShippingCountries","hasLoadedAvailableShippingCountries","selectShippingRegionCountryCodeIso2","_state$shippingRegion","selectIsSwedishVisitor","selectShowLocalizationRegionPicker","regionPickerDismissed","shippingCountryCookieValue","_geoLocation$isoCode","_selectPreferredLangu2","geoLocation","country","gpsMatchesLanguage","API_ERRORS","IGNORE_ME","ABORTED","CANCELLED","NETWORK","TIMEOUT","VERSION_MISMATCH","LOGGED_OUT","defaultJsonRequestHeaders","Accept","axiosConfigs","authenticated","withCredentials","headers","notAuthenticated","isUnauthorized","statusCode","addAntiCacheParam","antiCacheRegExp","test","replace","Date","getTime","submitOriginalRequest","_error$config","axios","config","refreshAccessToken","renewMemberToken","errorResponseInterceptor","_error$request","_error$request2","responseString","JSON","parse","responseStatus","errorCode","isMissingAuthToken","request","response","_response$data","hasRefreshToken","_errorAfterRefreshTok","errorAfterRefreshToken","Promise","reject","handleMissingAuthToken","_response$data2","handleUnauthorized","axiosWithTokenRefresh","axiosInstance","instance","interceptors","use","cancelTokens","utilizeCancelToken","tokenId","cancel","source","cancelToken","token","checkResponseVersion","version","checkResponseLoggedOut","finalizeResponse","handleError","statusHandlers","errorMessage","reloadOnUnauthorized","reload","isClientNetworkError","logError","scope","getCookieFromBrowser","getCookieFromString","cookieString","cookie","setCookieToBrowser","s","plainDayjs","utc","timezone","localizedFormat","relativeTime","localeData","localizedDayjs","swedishTimeZone","swedishTimeZoneDate","date","localizedDayjsFn","tz","formatUtcDateAsSwedishTimeZoneDate","format","includeWeekday","includeYear","excludeTime","filter","Boolean","getCurrentSwedishTimeZoneDate","getTimeSpanParts","seconds","optionsWithDefaults","startUnit","endUnit","parts","remaining","started","Object","entries","TIME_SPAN_UNIT_LENGTHS","part","floor","TIME_SPAN_UNITS","DAYS","HOURS","MINUTES","SECONDS","formatEndDate","endDateInput","nowDateInput","endDate","now","hours","diff","minutes","timeParts","push","count","isAfter","number","separator","RangeError","getCurrencySymbol","defaultOptions","trim","ensureClientOnly","httpClient","baseUrl","shouldLocalizeUrl","axiosWrapper","httpClientConfig","axiosCaller","cancelTokenId","axiosConfig","_utilizeCancelToken","safeUrl","getSafeUrl","substring","localizedUrl","getLanguage","post","put","enhancedConfig","trpcClient","endpoint","client","unpackResponse","command","commandName","queryName","defaultClient","touchWebClient","ENDPOINTS","memberIdentificationClient","translationDynamicApiClient","shippingRecommendationsClient","schedulerPolyfill","scheduler","yieldToMain","setTimeout","forEachYield","array","deadline","performance","index","element","_navigator$scheduling","navigator","scheduling","isInputPending","includeContinuous","postTask","taskCallback","priority","queueUserBlockingTask","queueBackgroundTask","queryServerTime","requestStart","currentTime","latency","start","retryCount","_minServerCheckInterval","_serverDiff","_didGetServerResponse","_lastCheckAtMs","updateServerDiff","serverTimeObject","getServerTime","timeNowOnServer","_initialPromise","promise","RELATIVE_DOMAIN","formatQueryParams","RegExp","URL_LANGUAGES","queryParams","_removePropertiesWith","removePropertiesWithoutValue","queryCategory","category","queryCategoryId","categoryId","formattedQueryParams","fromPrice","toPrice","priceRange","prunePriceRange","_excluded2","stripItmFromQueryParameters","itm_source","itm_medium","_excluded4","toAbsoluteUrl","HOSTS","isString","str","domain","indexOf","urlObject","toLocalizedSupportSiteUrl","setLanguagePrefix","languagePart","values","SUPPORT_SITE_LANGUAGE_CODE_MAP","supportLanguageCode","SUPPORT_SITE_DEFAULT_LANGUAGE","toQueryParameters","qs","ignoreQueryPrefix","toSearchString","_ref3","_ref3$addQueryPrefix","addQueryPrefix","_ref3$encode","encode","_ref3$skipNulls","skipNulls","_ref3$arrayFormat","arrayFormat","path","nextConfig","defaultLocale","locales","SUPPORTED_LANGUAGES","pathnameInfo","getNextPathnameInfo","parseData","formatNextPathnameInfo","getBackToHereRedirectUrl","forceRedirect","round","random","protocol","host"],"sourceRoot":""}