{"version":3,"file":"js/844-ee229dc83f07bc17a458.js","mappings":"iIAmEA,IA3DeA,EAAGC,cACAC,MACAC,QACAC,cACAC,eACAC,eACAC,QACAC,aACAC,gBAIdC,EAAAA,cAAA,OAAKC,UAAU,UACbD,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKE,IAAI,OACJD,UAAU,wBACV,cAAY,MACZ,aAAW,OACX,WAAUE,IAGfH,EAAAA,cAAA,OAAKC,UAAU,gBACbD,EAAAA,cAAA,KAAGC,UAAU,sBAAsBG,KAAK,qBAAqBC,OAAO,UAAS,iCAK/EL,EAAAA,cAAA,OAAKC,UAAU,gBACXV,EAAa,SAAKO,EAAY,IAAGC,IAGlCJ,GACDK,EAAAA,cAAA,OAAKC,UAAU,gBAAe,WAE5BD,EAAAA,cAAA,KAAGC,UAAU,qBAAqBG,KAAO,SAAQP,KAAWA,GAAW,eAEvEG,EAAAA,cAAA,KAAGC,UAAU,qBAAqBG,KAAO,WAAWX,KAAYA,IAIlED,GACAQ,EAAAA,cAAA,OAAKC,UAAU,gBAAe,WAClBT,IAKhBQ,EAAAA,cAAA,OAAKC,UAAU,wBACbD,EAAAA,cAAA,KAAGI,KAAMR,EAAcS,OAAO,UAC5BL,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,YAAYC,KAAM,MAElCR,EAAAA,cAAA,KAAGI,KAAMV,EAAaW,OAAO,UAC3BL,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,WAAWC,KAAM,O,8CCqCzC,IA1FsBC,EAAGC,YACAC,eACAC,eACAC,iBACAC,UACAC,cACAC,oBACAC,cACAC,mBAEvB,MAAMC,GAAiBC,EAAAA,EAAAA,UACjBC,GAAcD,EAAAA,EAAAA,WAEbE,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,IAC9BC,EAAYC,IAAiBF,EAAAA,EAAAA,UAAS,OAG7CG,EAAAA,EAAAA,YAAU,KACRC,OAAOC,iBAAiB,QAASC,EAAmB,GACnD,KAEHH,EAAAA,EAAAA,YAAU,MACPhB,GAAgBe,EAAc,KAAK,GACnC,CAACf,IAGJ,MAAMmB,EAAsBC,IACLV,GAAeA,EAAYW,SAE5BD,EAAE1B,SAAWc,EAAea,UAC9CT,GAAU,GACVP,GAAqBA,GAAkB,GACzC,EAiBIiB,EAAQtB,GAAgBc,EAG9B,OACEzB,EAAAA,cAAA,OAAKC,UAAY,kBAAiBqB,EAAS,OAAS,MAAMJ,GAAgB,MACxElB,EAAAA,cAAA,OAAKC,UAAU,0BAA0BiC,QAlB1BC,KACjB,MAAMC,EAAed,EAErBC,GAAWa,GACXpB,GAAqBA,GAAmBoB,EAAa,EAcWC,IAAKlB,GAC/Dc,EAEEjC,EAAAA,cAAA,OAAKC,UAAU,yBACXgB,GAAejB,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAMU,EAAaT,KAAM,GAAIP,UAAU,iCACjED,EAAAA,cAAA,OAAKC,UAAU,yBAA0BgC,EAAMK,OAASL,EAAMM,KAGhEvC,EAAAA,cAACwC,EAAAA,SAAQ,KACLvB,GAAejB,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAMU,EAAaT,KAAM,GAAIP,UAAU,iCAC/Dc,GAGNO,EACEtB,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,cAAcC,KAAM,GAAIP,UAAU,kCAChDD,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,cAAcC,KAAM,GAAIP,UAAU,mCAIpDqB,GAAUR,GAAWA,EAAQ2B,QAC7BzC,EAAAA,cAAA,OAAKC,UAAU,uBAAuBoC,IAAKhB,GACzCrB,EAAAA,cAAA,OAAKC,UAAU,gCACXS,GAAaV,EAAAA,cAAA,OAAKC,UAAU,8BAA+BS,GAC3DI,EAAQ4B,KAAIC,GACZ3C,EAAAA,cAAA,OAAKC,UAAU,yBAAyB2C,IAAM,mBAAkBD,EAAOJ,KAAML,QAASA,IAlC/ED,KACjBpB,EAAiBA,EAAeoB,GAASP,EAAcO,GACvDrB,EAAaqB,EAAM,EAgCmFY,CAAUF,IAClGA,EAAOG,MAAQ9C,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAMoC,EAAOG,KAAMtC,KAAM,KACjDmC,EAAOL,OAASK,EAAOJ,QAM/B,C,qCChBV,IAxE2BQ,EAAGrC,YACAsC,eACAC,eACAC,aACApC,UACAC,cACAoC,aACAC,yBACAC,qBACAC,oBACApC,mBAE5B,MAAMC,GAAiBC,EAAAA,EAAAA,UACjBmC,GAAcnC,EAAAA,EAAAA,WAEbE,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,IAErCG,EAAAA,EAAAA,YAAU,KACRC,OAAOC,iBAAiB,QAASC,EAAmB,GACnD,IAGH,MAAMA,EAAsBC,IAC1B,MAAM1B,EAAS0B,EAAE1B,OACXmD,EAASnD,EAAOoD,aAC8B,cAAhCpD,EAAOqD,aAAa,SAA2D,cAAhCF,EAAOE,aAAa,UAEvErD,IAAWc,EAAea,UAAYb,EAAea,QAAQ2B,SAAStD,IAAWkB,GAAU,EAAM,EASnH,OACEvB,EAAAA,cAAA,OAAKC,UAAY,YAAWqB,EAAS,OAAS,MAAMJ,GAAgB,MAClElB,EAAAA,cAAA,OAAKC,UAAU,oBAAoBiC,QAASA,IAAMX,GAAWD,GAASe,IAAKlB,GACvEgC,EACFnD,EAAAA,cAAA,SACEC,UAAU,yBACV2D,SAZU7B,KACfT,GAAUC,GAAU,GACrByB,EAAajB,EAAE1B,OAAO4B,MAAM,EAWtBlB,YAAaA,EACbsB,IAAKkB,EACLM,KAAK,OACL5B,MAAOiB,KAIT5B,GAAUR,GAAWA,EAAQ2B,QAC7BzC,EAAAA,cAAA,OAAKC,UAAU,kBAEXqD,GAAqBF,GAA0BA,GAE9CC,KAAwBC,GAAqBF,KAA4B1C,GAAaV,EAAAA,cAAA,OAAKC,UAAU,wBAAyBS,IAE9H2C,KAAwBC,GAAqBF,KAC9CpD,EAAAA,cAAA,OAAKC,UAAU,6BACXa,EAAQ4B,KAAIC,GACZ3C,EAAAA,cAAA,OAAKC,UAAU,mBAAmB2C,IAAM,mBAAkBD,EAAOJ,KAAML,QAASA,IAAMe,EAAaN,IAC/FA,EAAOpC,UAOjB,C,+CCmDV,IArHuBuD,EAAGC,YACAC,QACAzB,KACA3B,eACAI,oBACAsB,QACAvB,cACAE,cACAgB,QACAf,mBAExB,MAAMC,GAAiBC,EAAAA,EAAAA,UACjBC,GAAcD,EAAAA,EAAAA,WAEbE,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,IAGrCG,EAAAA,EAAAA,YAAU,KACRC,OAAOC,iBAAiB,QAASoC,EAAuB,GACvD,IAGH,MAAMA,EAA0BlC,IAC9B,MAAM1B,EAAS0B,EAAE1B,OACX6D,EAAU/C,EAAea,QACzBmC,EAAe9C,GAAeA,EAAYW,SAE5CmC,GAAgB9D,IAAW6D,GAAYA,EAAQP,SAAStD,IAAWA,IAAW8D,GAAiBA,EAAaR,SAAStD,KACvHkB,GAAU,GACVP,GAAqBA,GAAkB,GACzC,EAWIoD,EAAenC,GAAmB,MAAVA,EAG9B,OACEjC,EAAAA,cAAA,OAAKC,UAAY,mBAAkBiB,GAAgB,MAAMI,EAAS,OAAS,MACzEtB,EAAAA,cAAA,OAAKC,UAAU,2BAA2BiC,QAZ3BC,KACjB,MAAMC,EAAed,EAErBC,GAAWa,GACXpB,GAAqBA,GAAmBoB,EAAa,EAQYC,IAAKlB,GAChEF,GACAjB,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAMU,EAAaT,KAAM,GAAIP,UAAU,kCAGlDD,EAAAA,cAAA,OAAKC,UAAY,2BAAyBmE,EAAe,SAAW,KAChEA,EAAenC,EAAQlB,GAGzBuB,GACAtC,EAAAA,cAAA,OAAKC,UAAY,2BAAyBmE,EAAe,SAAW,KAChE9B,IAKNhB,GACAtB,EAAAA,cAAA,OAAKC,UAAU,wBAAwBoC,IAAKhB,GAExC0C,GACA/D,EAAAA,cAAA,OAAKC,UAAU,+BACX8D,GAIN/D,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,OAAKC,UAAY,iDAAiDgC,EAAqB,EAAb,aACrEC,QAASA,IAAMkC,EAAexD,EAAayD,OAAOpC,GAAS,GAAK,MACnEjC,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,QAAQC,KAAM,MAG9BR,EAAAA,cAAA,SACEsE,WAAS,EACTrE,UAAY,sBAAoBmE,EAAe,SAAW,IAC1D,WAAUJ,EACVzB,GAAIA,EACJgC,UAAW,EACXhE,KAAMgC,EACNqB,SAAW7B,IAAO,QAAQyC,KAAKzC,EAAE1B,OAAO4B,SAAWF,EAAE1B,OAAO4B,QAAUrB,EAAamB,EAAE1B,OAAO4B,OAC5FlB,YAAY,IACZ8C,KAAK,OACL5B,MAAOmC,EAAenC,EAAQ,KAGhCjC,EAAAA,cAAA,OAAKC,UAAU,gDAAgDiC,QAASA,IAAMtB,EAAayD,OAAOpC,GAAS,IACzGjC,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,OAAOC,KAAM,OAI/BR,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAAA,OAAKC,UAAY,oCAAoCmE,EAA4B,GAAb,YAAmBlC,QAASD,EAAQ,IAAMrB,EAAa,GAAK,MAAM,OAGtIZ,EAAAA,cAAA,OAAKC,UAAU,iCACVwE,KAAK,mBACLvC,QAASA,KACPX,GAAU,GACVP,GAAqBA,GAAkB,EAAM,GAC5C,UAOZ,C,qCCpHV,MAAMV,EAAUA,EAAEE,OAAMkE,SAAQC,QAAOpE,OAAM2B,UAASjC,YAAW2E,UAI7D5E,EAAAA,cAAA,OACE4E,KAAMA,GAAQ,GACd3E,UAAWA,GAAa,GACxBiC,QAASA,GAAW,KACpByC,MAAOA,GAAgBnE,EACvBkE,OAAQA,GAAkBlE,EAC1B+B,GAAK,OAAMhC,IACXsE,MAAO,CAAEC,SAAUH,GAAgBnE,IAEnCR,EAAAA,cAAA,OAAKI,KAAO,iBAAgBG,OAMlCD,EAAQyE,aAAe,CACrBvE,KAAM,IAWR,K,sFCqMA,IA5NqBwE,EAAGC,aAAYC,iBAAgBC,aAAYC,gBAE9DC,QAAQC,IAAI,wBAAsBJ,GAElC,MAAOK,EAAgBC,IAAqBhE,EAAAA,EAAAA,UAAS,KAC9C0B,EAAYuC,IAAiBjE,EAAAA,EAAAA,UAAS,KACtCkE,EAAgBC,IAAqBnE,EAAAA,EAAAA,UAAS,OAC9CoE,EAAkBC,IAAuBrE,EAAAA,EAAAA,UAAS,OAClDsE,EAAcC,IAAmBvE,EAAAA,EAAAA,UAAS,OAC1CwE,EAAsBC,IAA2BzE,EAAAA,EAAAA,UAAS,KAC1D0E,EAAwBC,IAA6B3E,EAAAA,EAAAA,UAAS,KAC9D4E,EAAiBC,IAAsB7E,EAAAA,EAAAA,WAAS,GAEjD8E,EAAerB,GAAcA,EAAWxC,QAAUwC,EAAWvC,KAAI6D,IAAa,CAClFtB,WAAYsB,EAActB,WAC1BnC,KAAMyD,EAAc3D,IACpBL,GAAIgE,EAAchE,GAClBD,MAAOiE,EAAchG,SAIjBiG,EAAgBC,IACpBd,EAAkBc,EAAOC,MACzBjB,EAAcgB,EAAOlG,MAEjB6E,GACFA,EAAU,CAAEuB,QAASF,EAAOlE,IAC9B,EAkFIa,EACJpD,EAAAA,cAAA,OAAKC,UAAU,mCACT+F,EAAqBvD,QACvBzC,EAAAA,cAAA,OAAKC,UAAU,sCACbD,EAAAA,cAAA,OAAKC,UAAU,+CAA8C,aAG3D+F,EAAqBtD,KAAI+D,GACzBzG,EAAAA,cAAA,OAAKC,UAAU,2DAA2DiC,QAASA,IAAMsE,EAAaC,GAAS7D,IAAK6D,EAAOlE,IACzHvC,EAAAA,cAAA,OAAKC,UAAU,4CACXwG,EAAOlG,MAEXP,EAAAA,cAAA,OAAKC,UAAU,4CACXwG,EAAOG,YAAa,eAM5BV,EAAuBzD,QACzBzC,EAAAA,cAAA,OAAKC,UAAU,8CACbD,EAAAA,cAAA,OAAKC,UAAU,+CAA8C,cAG3DiG,EAAuBxD,KAAImE,GAC3B7G,EAAAA,cAAA,OAAKC,UAAU,2DAA2DiC,QAASA,IAvGrE2E,KACtBhB,EAAoBgB,EAASH,MAC7Bf,EAAkBkB,EAASC,YAC3BrB,EAAcoB,EAAStG,KAAK,EAoGqEwG,CAAeF,GAAWjE,IAAKiE,EAAStE,IAC/HvC,EAAAA,cAAA,OAAKC,UAAU,qDACX4G,EAASH,KAAKM,MAAM,KAAKC,KAAK,MAElCjH,EAAAA,cAAA,OAAKC,UAAU,4CACX4G,EAASD,YAAa,aAMhCR,GACApG,EAAAA,cAAA,OAAKC,UAAU,wBACbD,EAAAA,cAAA,OAAKC,UAAU,uBACV,uBAAqB,yHACrB,0BAAwB,eACxB,qBAAmB,cACnB,uBAAqB,QACrB,kBAAgB,qBAChBwE,KAAK,aACRzE,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,OAAOC,KAAM,MAE7BR,EAAAA,cAACkH,EAAAA,EAAO,CACNC,OAAO,oBACPC,OAAO,QACP7E,GAAG,qBACH8E,QAAS,EACTC,MAAM,SACNzD,KAAK,UAAU,2BAMnBP,KAAuB8C,GAAmBJ,EAAqBvD,QAAUyD,EAAuBzD,QAEhG8E,EA9EeC,MACnB,MAAMC,EAAc,GAGpB,IAAIC,EAAO,QAFehC,EAAkB,IAAGA,IAAmB,KACtCE,EAAoB,IAAGA,IAAqB,KAUxE,OAPAL,GAAkBkC,EAAYE,KAAM,kBAAiBpC,KACrDO,GAAgB2B,EAAYE,KAAM,cAAa7B,EAAab,WAAWgC,KAAK,QAExEQ,EAAYhF,OAAS,IACvBiF,GAAQ,IAAGD,EAAYR,KAAK,QAGvBS,CAAG,EAiEOF,GAGnB,OACExH,EAAAA,cAAA,OAAKC,UAAU,gBAAgBoC,IAAK8C,GAAc,MAEhDnF,EAAAA,cAACS,EAAAA,EAAa,CACZC,UAAU,qBACVE,aAAeqB,GAAU8D,EAAgB9D,GACzCnB,QAASwF,EACTvF,YAAa,aACbE,YAAY,YACZC,aAAe,oCAGjBlB,EAAAA,cAAC+C,EAAAA,EAAkB,CACjBrC,UAAW0F,EAAkB,+BAA+B9C,EAAoD,KAAhC,iCAChFL,aAAcuD,EACdxD,aAAef,GAtJMA,KACzBwD,EAAcxD,GACd0D,EAAkB,MAClBE,EAAoB,MAEpBR,QAAQC,IAAI,sBAAoBrD,EAAOA,GAEvC,MAAM2F,EAAeC,GAAWA,EAAOC,QAAQ,gBAAiB,IAAIC,cAC9DC,EAAuC,IAAjB/F,EAAMQ,OAC5BwF,EAAQL,EAAY3F,GAC1B,IAAIiG,EAAe,GACfC,EAAiB,GAEjBF,GAEF/C,EAAexC,KAAI+D,IACjB,MAAM,UAAE2B,EAAS,KAAE7H,EAAI,KAAEmG,GAASD,EAE9BuB,IACDtB,EAAKM,MAAM,IAAI,GAAGe,gBAAkBE,GAAS1H,EAAKyG,MAAM,IAAI,GAAGe,gBAAkBE,IAC7EC,EAAaP,KAAKlB,GAEvB2B,EAAU1F,KAAImE,IACZ,MAAMwB,EAAwBxB,EAASyB,YAAYC,MAAKzI,GAAcmC,EAAMuG,SAAS1I,MAEpF+G,EAAStG,KAAKyG,MAAM,IAAI,GAAGe,gBAAkBE,GAASpB,EAASH,KAAKM,MAAM,IAAI,GAAGe,gBAAkBE,GAASI,IACxGF,EAAeR,KAAK,IAAKd,EAAUC,WAAYL,EAAOC,MAAO,OAGnEkB,EAAYlB,GAAM8B,SAASP,IAAUL,EAAYrH,GAAMiI,SAASP,KAC5DC,EAAaP,KAAKlB,GAEvB2B,EAAU1F,KAAImE,IACZ,MAAMwB,EAAwBxB,EAASyB,YAAYC,MAAKzI,GAAcmC,EAAMuG,SAAS1I,MAEpF8H,EAAYf,EAASH,MAAM8B,SAASP,IAAUL,EAAYf,EAAStG,MAAMiI,SAASP,IAAUI,IACxFF,EAAeR,KAAK,IAAKd,EAAUC,WAAYL,EAAOC,MAAO,IAEtE,IAGFwB,EAAaO,MAAK,CAACC,EAAGC,IAAMA,EAAE/B,YAAc8B,EAAE9B,cAC9CuB,EAAeM,MAAK,CAACC,EAAGC,IAAMA,EAAE/B,YAAc8B,EAAE9B,cAChDX,EAAwBiC,EAAaU,MAAM,EAAG,IAC9CzC,EAA0BgC,EAAeS,MAAM,EAAG,MAElD3C,EAAwB,IACxBE,EAA0B,KAG5BE,EAAmBpE,IAAWiG,EAAazF,SAAW0F,EAAe1F,OAAQ,EAoGhDoG,CAAkB5G,GAC3CiB,WAAYA,EACZpC,QAASoE,EACTnE,YAAa,sBACboC,WAAYnD,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,UAAUC,KAAM,KAC1C4C,uBAAwBA,EACxBC,mBAAoB+C,EACpB9C,kBAAmBA,EACnBpC,aAAe,sCAGjBlB,EAAAA,cAAC8D,EAAAA,EAAc,CACbC,UAAU,kBACVxB,GAAG,gBACH3B,aAAc4E,EACdlD,MAAM,YACNvB,YAAY,QACZE,YAAY,SACZgB,MAAOsD,EACPrE,aAAe,4CAGjBlB,EAAAA,cAAA,KAAGI,KAAMmH,EAAYtH,UAAU,gCAC7BD,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,SAASC,KAAM,KAC7BR,EAAAA,cAAA,YAAM,wBAGRA,EAAAA,cAAA,OAAKC,UAAU,qCACX,C,mECnHV,IAvGgB6I,EAAGC,uBACA9D,aACA+D,WACAC,aACAC,YACAhE,iBACAiE,WACAC,iBAEjB,MAAMC,GAAoBjI,EAAAA,EAAAA,WACnBkI,EAAYC,IAAiB/H,EAAAA,EAAAA,WAAS,IACtCgI,EAAcC,IAAmBjI,EAAAA,EAAAA,WAAS,IAGjDG,EAAAA,EAAAA,YAAU,KACRC,OAAOC,iBAAiB,QAASC,GAC1B,IAAMF,OAAO8H,oBAAoB,QAAS5H,KAChD,IAGH,MAAMA,EAAsBC,IAC1B,MAAM4H,EAAgBN,EAAkBrH,QAClC3B,EAAS0B,EAAE1B,OACXuJ,EAAkBD,IAAkBtJ,IAAWsJ,GAAiBA,EAAchG,SAAStD,IACvFwJ,EAAmBxJ,EAAOyJ,UAAUnG,SAAS,qBAAuBtD,EAAOyJ,UAAUnG,SAAS,0BAEpGgG,IAAkBC,IAAoBC,GAAkC,kBAAdxJ,EAAOkC,IAA0BkH,GAAgB,EAAM,EAgBnH,OACEzJ,EAAAA,cAAA,UAAQC,UAAU,UAChBD,EAAAA,cAAA,OAAKC,UAAU,+BAEbD,EAAAA,cAAA,KAAGI,KAAK,KACNJ,EAAAA,cAAA,OAAKE,IAAI,OACJD,UAAU,wBACV,cAAY,MACZ,aAAW,OACX,WAAUE,KAIjBH,EAAAA,cAAA,OAAKC,UAAU,qBAEbD,EAAAA,cAAA,OAAKC,UAAU,sCACXmJ,GACApJ,EAAAA,cAAA,OAAKC,UAAY,0BAAwBuJ,EAAe,OAAS,IAAMtH,QAvB1D6H,KACvBN,GAAiBD,GACjBF,EAAaC,GAAc,GAASS,SAASC,KAAKH,UAAUI,OAAO,sBAAsB,EAqBmB3H,GAAG,iBACnGvC,EAAAA,cAACM,EAAAA,EAAO,CAACC,KAAK,SAASC,KAAM,MAIjCR,EAAAA,cAAA,OAAKC,UAAY,wBAAsBqJ,EAAa,QAAU,IAAMpH,QAlCvDiI,KACrBZ,GAAeD,GACfE,EAAeC,GAAgB,GAASO,SAASC,KAAKH,UAAUI,OAAO,sBAAsB,GAiCnFlK,EAAAA,cAAA,OAAKC,UAAU,0BACbD,EAAAA,cAAA,aACAA,EAAAA,cAAA,aACAA,EAAAA,cAAA,aACAA,EAAAA,cAAA,gBAKNA,EAAAA,cAAA,OAAKC,UAAY,yBAAuBqJ,EAAa,QAAU,KAC7DtJ,EAAAA,cAAA,MAAIC,UAAU,0BACZD,EAAAA,cAAA,UAAIA,EAAAA,cAAA,KAAGI,KAAK,KAAI,YAChBJ,EAAAA,cAAA,UAAIA,EAAAA,cAAA,KAAGI,KAAM6I,GAAY,yBACtBE,GAAYnJ,EAAAA,cAAA,UAAIA,EAAAA,cAAA,KAAGI,KAAM2I,GAAsB,kBAClD/I,EAAAA,cAAA,UAAIA,EAAAA,cAAA,KAAGI,KAAM4I,GAAU,YACvBhJ,EAAAA,cAAA,UACEA,EAAAA,cAAA,KAAGI,KAAM8I,EAAU,IACfA,EAAU,OAMlBE,GACApJ,EAAAA,cAAA,OAAKC,UAAY,gCAA8BuJ,EAAe,QAAU,KACtExJ,EAAAA,cAACgF,EAAAA,EAAY,CACXC,WAAYA,EACZC,eAAgBA,EAChBC,WAAYkE,OAMf,C,uDC5GN,MAAMe,EAAmCzD,GAAYA,EACzDjE,KAAI+D,IAAM,IAAUA,EAAQG,YAAaH,EAAO2B,UAAUiC,QAAO,CAACC,EAAazD,IAAayD,EAAczD,EAASD,aAAa,OAChI6B,MAAK,CAACC,EAAGC,IAAMA,EAAE/B,YAAc8B,EAAE9B,cACjCgC,MAAM,EAAG,IACTH,MAAK,CAACC,EAAGC,IAAMD,EAAEhC,KAAKqB,cAAcwC,cAAc5B,EAAEjC,KAAKqB,gB","sources":["webpack://app/./app/javascript/bundles/SharedComponents/Footer/index.jsx","webpack://app/./app/javascript/bundles/SharedComponents/Forms/BasicDropdown/index.jsx","webpack://app/./app/javascript/bundles/SharedComponents/Forms/DropdownWithSearch/index.jsx","webpack://app/./app/javascript/bundles/SharedComponents/Forms/NumberDropdown/index.jsx","webpack://app/./app/javascript/bundles/SharedComponents/Icons.jsx","webpack://app/./app/javascript/bundles/SharedComponents/PlacesSearch/index.jsx","webpack://app/./app/javascript/bundles/SharedComponents/TopMenu/index.jsx","webpack://app/./app/javascript/src/js/helpers.js"],"sourcesContent":["import React from 'react';\n\nimport logo from \"../../../src/images/entrypage/logo-main.svg\";\nimport SvgIcon from \"../Icons\";\n\nimport './index.sass';\n\n\nconst Footer = ({ addressLine,\n                  cvr,\n                  email,\n                  facebookUrl,\n                  hideContacts,\n                  instagramUrl,\n                  phone,\n                  postalCode,\n                  postalName }) => {\n\n\n  return (\n    <div className=\"footer\">\n      <div className=\"container\">\n        <img alt=\"logo\"\n             className=\"footer__logo lazyload\"\n             data-expand=\"100\"\n             data-sizes=\"auto\"\n             data-src={logo}\n        />\n\n        <div className=\"footer__info\">\n          <a className=\"footer__cookie-link\" href=\"/privatlivspolitik\" target=\"_blank\">\n            Cookie- og privatlivspolitik\n          </a>\n        </div>\n\n        <div className=\"footer__info\">\n          { addressLine } · { postalCode } { postalName }\n        </div>\n\n        { !hideContacts &&\n          <div className=\"footer__info\">\n            Tlf.&nbsp;\n            <a className=\"footer__phone-link\" href={`tel://${phone}`}>{ phone }</a>\n            &nbsp;·&nbsp;\n            <a className=\"footer__email-link\" href={`mailto: ${ email }`}>{ email }</a>\n          </div>\n        }\n\n        { cvr &&\n          <div className=\"footer__info\">\n            CVR nr. { cvr }\n          </div>\n        }\n      </div>\n\n      <div className=\"footer__social-icons\">\n        <a href={instagramUrl} target=\"_blank\">\n          <SvgIcon name=\"instagram\" size={24} />\n        </a>\n        <a href={facebookUrl} target=\"_blank\">\n          <SvgIcon name=\"facebook\" size={24} />\n        </a>\n      </div>\n    </div>\n  )\n}\n\nexport default Footer;\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\n\nimport SvgIcon from \"../../Icons\";\n\nimport './index.sass';\n\n\nconst BasicDropdown = ({ bodyTitle,\n                         currentValue,\n                         handleChange,\n                         handleSetValue,\n                         options,\n                         placeholder,\n                         handleActiveState,\n                         triggerIcon,\n                         wrapperClass }) => {\n\n  const triggerWrapper = useRef();\n  const bodyWrapper = useRef();\n\n  const [isOpen, setIsOpen] = useState(false);\n  const [stateValue, setStateValue] = useState(null);\n\n\n  useEffect(() => {\n    window.addEventListener('click', handleClickOutside);\n  }, []);\n\n  useEffect(() => {\n    !currentValue && setStateValue(null);\n  }, [currentValue]);\n\n\n  const handleClickOutside = (e) => {\n    const dropdownBody = bodyWrapper && bodyWrapper.current;\n\n    if (dropdownBody && e.target !== triggerWrapper.current) {\n      setIsOpen(false);\n      handleActiveState && handleActiveState(false);\n    }\n  };\n\n\n  const handleOpen = () => {\n    const currentState = isOpen;\n\n    setIsOpen(!currentState);\n    handleActiveState && handleActiveState(!currentState);\n  };\n\n\n  const setOption = (value) => {\n    handleSetValue ? handleSetValue(value) : setStateValue(value);\n    handleChange(value);\n  };\n\n  const value = currentValue || stateValue;\n\n\n  return (\n    <div className={`basic-dropdown ${isOpen ? 'open' : ''} ${wrapperClass || ''}`}>\n      <div className=\"basic-dropdown__trigger\" onClick={handleOpen} ref={triggerWrapper}>\n        { value\n          ?\n            <div className=\"basic-dropdown__value\">\n              { triggerIcon && <SvgIcon name={triggerIcon} size={18} className=\"basic-dropdown__trigger_icon\" /> }\n              <div className=\"basic-dropdown__label\">{ value.label || value.id }</div>\n            </div>\n          :\n            <Fragment>\n              { triggerIcon && <SvgIcon name={triggerIcon} size={18} className=\"basic-dropdown__trigger_icon\" /> }\n              { placeholder }\n            </Fragment>\n        }\n        { isOpen\n          ? <SvgIcon name=\"expand_less\" size={24} className=\"basic-dropdown__trigger_arrow\" />\n          : <SvgIcon name=\"expand_more\" size={24} className=\"basic-dropdown__trigger_arrow\" />\n        }\n      </div>\n\n      { isOpen && options && options.length &&\n        <div className=\"basic-dropdown__body\" ref={bodyWrapper}>\n          <div className=\"basic-dropdown__body-content\">\n            { bodyTitle && <div className=\"basic-dropdown__body-title\">{ bodyTitle }</div> }\n            { options.map(option =>\n              <div className=\"basic-dropdown__option\" key={`dropdown-option-${option.id}`} onClick={() => setOption(option)}>\n                { option.icon && <SvgIcon name={option.icon} size={20} /> }\n                { option.label || option.id }\n              </div>\n            )}\n          </div>\n        </div>\n      }\n    </div>\n  )\n}\n\nexport default BasicDropdown;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport './index.sass';\n\n\nconst DropdownWithSearch = ({ bodyTitle,\n                              handleSearch,\n                              handleSelect,\n                              inputValue,\n                              options,\n                              placeholder,\n                              searchIcon,\n                              searchResultsComponent,\n                              showDefaultOptions,\n                              showSearchResults,\n                              wrapperClass }) => {\n\n  const triggerWrapper = useRef();\n  const searchInput = useRef();\n\n  const [isOpen, setIsOpen] = useState(false);\n\n  useEffect(() => {\n    window.addEventListener('click', handleClickOutside);\n  }, []);\n\n\n  const handleClickOutside = (e) => {\n    const target = e.target;\n    const parent = target.parentNode;\n    const isClicalble = target.getAttribute('role') === 'clickable' || parent.getAttribute('role') === 'clickable';\n\n    !isClicalble && target !== triggerWrapper.current && !triggerWrapper.current.contains(target) && setIsOpen(false);\n  };\n\n  const setQuery = (e) => {\n    !isOpen && setIsOpen(true);\n    handleSearch(e.target.value);\n  };\n\n\n  return (\n    <div className={`dropdown ${isOpen ? 'open' : ''} ${wrapperClass || ''}`}>\n      <div className=\"dropdown__trigger\" onClick={() => setIsOpen(!isOpen)} ref={triggerWrapper}>\n        { searchIcon }\n        <input\n          className=\"dropdown__search-input\"\n          onChange={setQuery}\n          placeholder={placeholder}\n          ref={searchInput}\n          type=\"text\"\n          value={inputValue}\n        />\n      </div>\n\n      { isOpen && options && options.length &&\n        <div className=\"dropdown__body\">\n\n          { showSearchResults && searchResultsComponent && searchResultsComponent }\n\n          { (showDefaultOptions || !(showSearchResults && searchResultsComponent)) && bodyTitle && <div className=\"dropdown__body-title\">{ bodyTitle }</div> }\n\n          { (showDefaultOptions || !(showSearchResults && searchResultsComponent)) &&\n            <div className=\"dropdown__options-wrapper\">\n              { options.map(option =>\n                <div className=\"dropdown__option\" key={`dropdown-option-${option.id}`} onClick={() => handleSelect(option)}>\n                  { option.name }\n                </div>\n              )}\n            </div>\n          }\n        </div>\n      }\n    </div>\n  )\n};\n\nexport default DropdownWithSearch;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport SvgIcon from \"../../Icons\";\n\nimport './index.sass';\n\n\nconst NumberDropdown = ({ bodyLabel,\n                          error,\n                          id,\n                          handleChange,\n                          handleActiveState,\n                          label,\n                          placeholder,\n                          triggerIcon,\n                          value,\n                          wrapperClass }) => {\n\n  const triggerWrapper = useRef();\n  const bodyWrapper = useRef();\n\n  const [isOpen, setIsOpen] = useState(false);\n\n\n  useEffect(() => {\n    window.addEventListener('click', handleClickOutsideTest);\n  }, []);\n\n\n  const handleClickOutsideTest = (e) => {\n    const target = e.target;\n    const trigger = triggerWrapper.current;\n    const dropdownBody = bodyWrapper && bodyWrapper.current;\n\n    if (dropdownBody && target !== trigger && !trigger.contains(target) && target !== dropdownBody && !dropdownBody.contains(target)) {\n      setIsOpen(false);\n      handleActiveState && handleActiveState(false);\n    }\n  };\n\n\n  const handleOpen = () => {\n    const currentState = isOpen;\n\n    setIsOpen(!currentState);\n    handleActiveState && handleActiveState(!currentState);\n  };\n\n  const valuePresent = value && value !== '0';\n\n\n  return (\n    <div className={`number-dropdown ${wrapperClass || ''} ${isOpen ? 'open' : ''}`}>\n      <div className=\"number-dropdown__trigger\" onClick={handleOpen} ref={triggerWrapper}>\n        { triggerIcon &&\n          <SvgIcon name={triggerIcon} size={18} className=\"number-dropdown__trigger_icon\" />\n        }\n\n        <div className={`number-dropdown__value ${valuePresent ? 'active' : ''}`}>\n          { valuePresent ? value : placeholder }\n        </div>\n\n        { label &&\n          <div className={`number-dropdown__label ${valuePresent ? 'active' : ''}`}>\n            { label }\n          </div>\n        }\n      </div>\n\n      { isOpen &&\n        <div className=\"number-dropdown__body\" ref={bodyWrapper}>\n\n          { bodyLabel &&\n            <div className=\"number-dropdown__body-title\">\n              { bodyLabel }\n            </div>\n          }\n\n          <div className=\"number-dropdown__body-content\">\n            <div className=\"number-dropdown__body-input-wrapper\">\n              <div className={`number-dropdown__body-input-control decrement ${!value ? 'inactive' : 0}`}\n                   onClick={() => valuePresent ? handleChange(Number(value) - 1) : null}>\n                <SvgIcon name=\"minus\" size={20} />\n              </div>\n\n              <input\n                autoFocus\n                className={`form-group__input ${valuePresent ? 'active' : ''}`}\n                data-tip={error}\n                id={id}\n                maxLength={5}\n                name={id}\n                onChange={(e) => (/^\\d+$/.test(e.target.value) || !e.target.value) && handleChange(e.target.value)}\n                placeholder=\"0\"\n                type=\"text\"\n                value={valuePresent ? value : ''}\n              />\n\n              <div className=\"number-dropdown__body-input-control increment\" onClick={() => handleChange(Number(value) + 1)}>\n                <SvgIcon name=\"plus\" size={20} />\n              </div>\n            </div>\n\n            <div className=\"number-dropdown__body-buttons\">\n              <div className={`number-dropdown__body-clear-btn ${ !valuePresent ? 'inactive' : ''}`} onClick={value ? () => handleChange(0) : null}>\n                Ryd\n              </div>\n              <div className=\"number-dropdown__body-save-btn\"\n                   role=\"hide-after-click\"\n                   onClick={() => {\n                     setIsOpen(false);\n                     handleActiveState && handleActiveState(false);\n                   }}>\n                Gem\n              </div>\n            </div>\n          </div>\n        </div>\n      }\n    </div>\n  )\n}\n\n\nexport default NumberDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgIcon = ({size, height, width, name, onClick, className, fill}) =>  {\n\n    // Use id's from assets/images/common-icons.svg\n  return (\n    <svg\n      fill={fill || ''}\n      className={className || ''}\n      onClick={onClick || null}\n      width={width ? width : size}\n      height={height ? height : size}\n      id={`svg-${name}`}\n      style={{ minWidth: width ? width : size }}\n    >\n      <use href={`#common-icons-${name}`} />\n    </svg>\n  );\n}\n\n\nSvgIcon.defaultProps = {\n  size: 18,\n}\n\nSvgIcon.propTypes = {\n  name: PropTypes.string.isRequired,\n  size: PropTypes.number,\n  height: PropTypes.number,\n  width: PropTypes.number,\n};\n\n\nexport default SvgIcon;\n","import React, { useState } from 'react';\nimport { Tooltip } from \"react-tooltip\";\n\nimport SvgIcon from \"../Icons\";\nimport DropdownWithSearch from \"../Forms/DropdownWithSearch\";\nimport BasicDropdown from \"../Forms/BasicDropdown\";\nimport NumberDropdown from \"../Forms/NumberDropdown\";\n\nimport './index.sass';\n\n\nconst PlacesSearch = ({ categories, regionsOptions, wrapperRef, updateUrl }) => {\n\n  console.log('regionsOptions--->', regionsOptions);\n\n  const [numberOfGuests, setNumberOfGuests] = useState('');\n  const [inputValue, setInputValue] = useState('');\n  const [selectedRegion, setSelectedRegion] = useState(null);\n  const [selectedDistrict, setSelectedDistrict] = useState(null);\n  const [selectedType, setSelectedType] = useState(null);\n  const [searchRegionsResults, setSearchRegionsResults] = useState([]);\n  const [searchDistrictsResults, setSearchDistrictsResults] = useState([]);\n  const [noSearchResults, setNoSearchResults] = useState(false);\n\n  const typesOptions = categories && categories.length && categories.map(categoryGroup => ({\n    categories: categoryGroup.categories,\n    icon: categoryGroup.key,\n    id: categoryGroup.id,\n    label: categoryGroup.name,\n  }));\n\n\n  const selectRegion = (region) => {\n    setSelectedRegion(region.slug);\n    setInputValue(region.name);\n\n    if (updateUrl) {\n      updateUrl({ regions: region.id })\n    }\n  };\n\n\n  const selectDistrict = (district) => {\n    setSelectedDistrict(district.slug);\n    setSelectedRegion(district.regionSlug);\n    setInputValue(district.name);\n  };\n\n\n  const handleSearchInput = (value) => {\n    setInputValue(value);\n    setSelectedRegion(null);\n    setSelectedDistrict(null);\n\n    console.log('value--->', typeof value, value);\n\n    const clearString = (string) => string.replace(/[^a-z\\d\\s]+/gi, \"\").toLowerCase();\n    const searchByFirstLetter = value.length === 1;\n    const query = clearString(value);\n    let foundRegions = [];\n    let foundDistricts = [];\n\n    if (query) {\n\n      regionsOptions.map(region => {\n        const { districts, name, slug } = region;\n\n        if (searchByFirstLetter) {\n          (slug.split('')[0].toLowerCase() === query || name.split('')[0].toLowerCase() === query)\n            && foundRegions.push(region);\n\n          districts.map(district => {\n            const hasDistrictPostalCode = district.postalCodes.find(postalCode => value.includes(postalCode));\n\n            (district.name.split('')[0].toLowerCase() === query || district.slug.split('')[0].toLowerCase() === query || hasDistrictPostalCode)\n              && foundDistricts.push({ ...district, regionSlug: region.slug })\n          });\n        } else {\n          (clearString(slug).includes(query) || clearString(name).includes(query))\n            && foundRegions.push(region);\n\n          districts.map(district => {\n            const hasDistrictPostalCode = district.postalCodes.find(postalCode => value.includes(postalCode));\n\n            (clearString(district.slug).includes(query) || clearString(district.name).includes(query) || hasDistrictPostalCode)\n              && foundDistricts.push({ ...district, regionSlug: region.slug });\n          });\n        }\n      });\n\n      foundRegions.sort((a, b) => b.placesCount - a.placesCount);\n      foundDistricts.sort((a, b) => b.placesCount - a.placesCount);\n      setSearchRegionsResults(foundRegions.slice(0, 5));\n      setSearchDistrictsResults(foundDistricts.slice(0, 5));\n    } else {\n      setSearchRegionsResults([]);\n      setSearchDistrictsResults([]);\n    }\n\n    setNoSearchResults(value && (!foundRegions.length && !foundDistricts.length));\n  };\n\n\n  const submitSearch = () => {\n    const queryParams = [];\n    const selectedRegionStr = selectedRegion ? `/${selectedRegion}` : '';\n    const selectedDistrictStr = selectedDistrict ? `/${selectedDistrict}` : '';\n    let url = `/leje${selectedRegionStr}${selectedDistrictStr}`;\n\n    numberOfGuests && queryParams.push(`guest_capacity=${numberOfGuests}`);\n    selectedType && queryParams.push(`categories=${selectedType.categories.join(',')}`);\n\n    if (queryParams.length > 0) {\n      url += `?${queryParams.join('&')}`;\n    };\n\n    return url;\n  };\n\n\n  const searchResultsComponent =\n    <div className=\"places-search__search-results\">\n      { !!searchRegionsResults.length &&\n        <div className=\"places-search__search-results-list\">\n          <div className=\"places-search__search-results-list-headline\">\n            Landsdele\n          </div>\n          { searchRegionsResults.map(region =>\n            <div className=\"places-search__search-results-list-item dropdown__option\" onClick={() => selectRegion(region)} key={region.id}>\n              <div className=\"places-search__search-results-item-label\">\n                { region.name }\n              </div>\n              <div className=\"places-search__search-results-item-count\">\n                { region.placesCount } stk.\n              </div>\n            </div>\n          )}\n        </div>\n      }\n      { !!searchDistrictsResults.length &&\n        <div className=\"places-search__search-results-list regions\">\n          <div className=\"places-search__search-results-list-headline\">\n            Områder\n          </div>\n          { searchDistrictsResults.map(district =>\n            <div className=\"places-search__search-results-list-item dropdown__option\" onClick={() => selectDistrict(district)} key={district.id}>\n              <div className=\"places-search__search-results-item-label district\">\n                { district.slug.split('-').join(' ') }\n              </div>\n              <div className=\"places-search__search-results-item-count\">\n                { district.placesCount } stk.\n              </div>\n            </div>\n          )}\n        </div>\n      }\n      { noSearchResults &&\n        <div className=\"dropdown__no-results\">\n          <div className=\"info-tooltip-wrapper\"\n               data-tooltip-content=\"Din søgning giver desværre ingen resultater. Prøv eventuelt at søge på et postnummer eller en landsdel.\"\n               data-tooltip-class-name=\"info-tooltip\"\n               data-tooltip-place=\"right-start\"\n               data-tooltip-variant=\"light\"\n               data-tooltip-id=\"no-results-tooltip\"\n               role=\"clickable\">\n            <SvgIcon name=\"info\" size={20} />\n          </div>\n          <Tooltip\n            border=\"1px solid #E8753D\"\n            effect=\"solid\"\n            id=\"no-results-tooltip\"\n            opacity={1}\n            place=\"bottom\"\n            type=\"light\" />\n          Intet resultat fundet.\n        </div>\n      }\n    </div>;\n\n  const showSearchResults = !!(noSearchResults || searchRegionsResults.length || searchDistrictsResults.length);\n\n  const searchLink = submitSearch();\n\n\n  return (\n    <div className=\"places-search\" ref={wrapperRef || null}>\n\n      <BasicDropdown\n        bodyTitle=\"Vælg lokaletype\"\n        handleChange={(value) => setSelectedType(value)}\n        options={typesOptions}\n        placeholder={'Lokaletype'}\n        triggerIcon=\"home_work\"\n        wrapperClass={`places-search__form-group types`}\n      />\n\n      <DropdownWithSearch\n        bodyTitle={noSearchResults ? \"Andre populære muligheder\" : !showSearchResults ? \"Vælg et postnummer eller by\" : null}\n        handleSelect={selectRegion}\n        handleSearch={(value) => handleSearchInput(value)}\n        inputValue={inputValue}\n        options={regionsOptions}\n        placeholder={'Postnummer eller By'}\n        searchIcon={<SvgIcon name=\"map_pin\" size={18} />}\n        searchResultsComponent={searchResultsComponent}\n        showDefaultOptions={noSearchResults}\n        showSearchResults={showSearchResults}\n        wrapperClass={`places-search__form-group regions`}\n      />\n\n      <NumberDropdown\n        bodyLabel=\"Antal gæster\"\n        id=\"guests_number\"\n        handleChange={setNumberOfGuests}\n        label=\"gæster\"\n        placeholder=\"Antal\"\n        triggerIcon=\"users2\"\n        value={numberOfGuests}\n        wrapperClass={`places-search__form-group guests-number`}\n      />\n\n      <a href={searchLink} className=\"places-search__submit-button\" >\n        <SvgIcon name=\"search\" size={16} />\n        <span>Søg efter steder</span>\n      </a>\n\n      <div className=\"places-search__active-background\" />\n    </div>\n  )\n}\n\nexport default PlacesSearch;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport logo from '../../../src/images/entrypage/logo-main.svg';\nimport SvgIcon from \"../Icons\";\nimport PlacesSearch from \"../PlacesSearch\";\n\nimport './index.sass';\n\n\nconst TopMenu = ({ becomeAdvertiserPath,\n                   categories,\n                   helpPath,\n                   guidesPath,\n                   loginPath,\n                   regionsOptions,\n                   signedIn,\n                   withSearch }) => {\n\n  const searchBodyWrapper = useRef();\n  const [menuIsOpen, setMenuIsOpen] = useState(false);\n  const [searchIsOpen, setSearchIsOpen] = useState(false);\n\n\n  useEffect(() => {\n    window.addEventListener('click', handleClickOutside);\n    return () => window.removeEventListener('click', handleClickOutside);\n  }, []);\n\n\n  const handleClickOutside = (e) => {\n    const searchWrapper = searchBodyWrapper.current;\n    const target = e.target;\n    const isSearchWrapper = searchWrapper && (target === searchWrapper || searchWrapper.contains(target));\n    const isDropdownOption = target.classList.contains('dropdown__option') || target.classList.contains('basic-dropdown__option');\n\n    searchWrapper && !isSearchWrapper && !isDropdownOption && target.id !== 'search-toggle' && setSearchIsOpen(false);\n  };\n\n\n  const handleOpenMenu = () => {\n    setMenuIsOpen(!menuIsOpen);\n    searchIsOpen ? setSearchIsOpen(false) : document.body.classList.toggle('mobile-filters-open');\n  };\n\n\n  const handleOpenSearch = () => {\n    setSearchIsOpen(!searchIsOpen);\n    menuIsOpen ? setMenuIsOpen(false) : document.body.classList.toggle('mobile-filters-open');\n  };\n\n\n  return (\n    <header className=\"topbar\">\n      <div className='topbar__container container'>\n\n        <a href='/'>\n          <img alt=\"logo\"\n               className=\"topbar__logo lazyload\"\n               data-expand=\"100\"\n               data-sizes=\"auto\"\n               data-src={logo}\n          />\n        </a>\n\n        <div className=\"topbar__menu-left\">\n\n          <div className=\"topbar__mobile-menu-toggle-wrapper\">\n            { withSearch &&\n              <div className={`topbar__search-toggle ${searchIsOpen ? 'open' : ''}`} onClick={handleOpenSearch} id=\"search-toggle\">\n                <SvgIcon name=\"search\" size={16} />\n              </div>\n            }\n\n            <div className={`topbar__menu-toggle ${menuIsOpen ? 'cross' : ''}`} onClick={handleOpenMenu}>\n              <div className=\"topbar__burger-wrapper\">\n                <span/>\n                <span/>\n                <span/>\n                <span/>\n              </div>\n            </div>\n          </div>\n\n          <div className={`topbar__menu-wrapper ${menuIsOpen ? 'shown' : ''}`}>\n            <ul className=\"topbar__menu-left-list\">\n              <li><a href=\"/\">Forside</a></li>\n              <li><a href={guidesPath}>Guides til din fest</a></li>\n              { !signedIn && <li><a href={becomeAdvertiserPath}>Opret annonce</a></li> }\n              <li><a href={helpPath}>Kontakt</a></li>\n              <li>\n                <a href={loginPath[1]}>\n                  { loginPath[0] }\n                </a>\n              </li>\n            </ul>\n          </div>\n\n          { withSearch &&\n            <div className={`topbar__menu-wrapper search ${searchIsOpen ? 'shown' : ''}`}>\n              <PlacesSearch\n                categories={categories}\n                regionsOptions={regionsOptions}\n                wrapperRef={searchBodyWrapper}\n              />\n            </div>\n          }\n        </div>\n      </div>\n    </header>\n  );\n}\n\nexport default TopMenu;\n","export const prepareOptionsForLocationSearch = (regions) => regions\n  .map(region => ({ ...region, placesCount: region.districts.reduce((accumulator, district) => accumulator + district.placesCount, 0) }))\n  .sort((a, b) => b.placesCount - a.placesCount)\n  .slice(0, 10)\n  .sort((a, b) => a.slug.toLowerCase().localeCompare(b.slug.toLowerCase()));\n"],"names":["Footer","addressLine","cvr","email","facebookUrl","hideContacts","instagramUrl","phone","postalCode","postalName","React","className","alt","logo","href","target","SvgIcon","name","size","BasicDropdown","bodyTitle","currentValue","handleChange","handleSetValue","options","placeholder","handleActiveState","triggerIcon","wrapperClass","triggerWrapper","useRef","bodyWrapper","isOpen","setIsOpen","useState","stateValue","setStateValue","useEffect","window","addEventListener","handleClickOutside","e","current","value","onClick","handleOpen","currentState","ref","label","id","Fragment","length","map","option","key","setOption","icon","DropdownWithSearch","handleSearch","handleSelect","inputValue","searchIcon","searchResultsComponent","showDefaultOptions","showSearchResults","searchInput","parent","parentNode","getAttribute","contains","onChange","type","NumberDropdown","bodyLabel","error","handleClickOutsideTest","trigger","dropdownBody","valuePresent","Number","autoFocus","maxLength","test","role","height","width","fill","style","minWidth","defaultProps","PlacesSearch","categories","regionsOptions","wrapperRef","updateUrl","console","log","numberOfGuests","setNumberOfGuests","setInputValue","selectedRegion","setSelectedRegion","selectedDistrict","setSelectedDistrict","selectedType","setSelectedType","searchRegionsResults","setSearchRegionsResults","searchDistrictsResults","setSearchDistrictsResults","noSearchResults","setNoSearchResults","typesOptions","categoryGroup","selectRegion","region","slug","regions","placesCount","district","regionSlug","selectDistrict","split","join","Tooltip","border","effect","opacity","place","searchLink","submitSearch","queryParams","url","push","clearString","string","replace","toLowerCase","searchByFirstLetter","query","foundRegions","foundDistricts","districts","hasDistrictPostalCode","postalCodes","find","includes","sort","a","b","slice","handleSearchInput","TopMenu","becomeAdvertiserPath","helpPath","guidesPath","loginPath","signedIn","withSearch","searchBodyWrapper","menuIsOpen","setMenuIsOpen","searchIsOpen","setSearchIsOpen","removeEventListener","searchWrapper","isSearchWrapper","isDropdownOption","classList","handleOpenSearch","document","body","toggle","handleOpenMenu","prepareOptionsForLocationSearch","reduce","accumulator","localeCompare"],"sourceRoot":""}