{"version":3,"file":"static/js/eecc091d78b8cc073101.bundle.js","mappings":";sKAmBYA,qJAAZ,SAAYA,GACRA,EAAA,0BACAA,EAAA,kBACAA,EAAA,kBACAA,EAAA,sCACAA,EAAA,YALJ,CAAYA,IAAAA,EAAc,KAWpB,MAAOC,EAWTC,YAAYC,EAAqBC,EAAcC,EAAyBC,EAAoBC,GAQrF,KAAAC,YAAc,IAAM,+BAEpB,KAAAC,mBAAqB,IAAM,+BAE3B,KAAAC,cAAgB,IAAiB,OAXpCC,KAAKC,YAAcT,EACnBQ,KAAKE,gBAAkBT,EACvBO,KAAKN,eAAiBA,EACtBM,KAAKL,UAAYA,EACjBK,KAAKJ,UAAYA,GAiCzBO,eAAeC,EAAgBC,EAAyBC,EAA8BC,GAClF,MAAMC,EAA2C,CAC7CC,sBAAuB,CACnBC,gBAAiBL,EAAMJ,aAAeI,EAAMJ,YAAYU,OAAS,EAAIN,EAAMJ,YAAc,GACzFW,QAAS,CACLC,WAAYN,EAAIO,eAAeC,YAAYC,UAC3CC,WAAYV,EAAIO,eAAeC,YAAYG,WAE/CC,SAAUZ,EAAIO,eAAeM,QAEjCC,UAAWhB,EAAMV,UACjB2B,UAAWjB,EAAMT,UACjBP,eAAgBgB,EAAMX,gBAGpB6B,QAA0BC,EAAAA,EAAAA,2BAC5B,CAAEC,cAAelB,EAAKmB,oBAAqB,CAAEC,OAAQ,CAAEC,IAAKvB,EAAMH,mBAClEM,GAGAe,GAAqBA,EAAkBZ,OAAS,GAEhDY,EAAkBM,KACbC,GACIA,EAAKC,SAAWD,EAAKC,UAAWC,EAAAA,EAAAA,kBAAiBF,EAAKC,SAAUxB,EAAIO,eAAeC,aAAe,KAG3GT,EAAY2B,iBAAmBV,GAE/BhB,EAAI2B,UAAUC,MACV,4FAA4F3B,EAAenB,kBAKhH,MAMP,GANoD+C,EAAAA,EAAAA,IAA2B,CAC3EC,GAAI,iEACJC,OAnDGnC,eAA0CE,EAAyBE,GAEtE,IAAKF,IAAUA,EAAMJ,YACjB,MAAM,IAAIsC,MAAM,oEAGpB,MAAMjC,EAA+B,GAE/BkC,EAAsB,CAACpC,EAAgBC,EAAOC,EAAaC,IACjE,OAAOkC,QAAQC,IAAIF,GAAqBG,MAAK,IAClCrC,KA0CXD,MA7DiBuC,GACV,IAAItD,uCCrBf,IAAIuD,EAMG,MAAMC,EAAgCC,IACzC,MAAM,OACFC,EAAM,YACNC,EAAW,WACXzD,EACA0D,kBACIC,WAAW,iCAAEC,KAEjBL,EAEEM,EAAgC,GACtCR,GAAUS,EAAAA,EAAAA,kBAAiB,QAASP,EAAMQ,iBAAmB,IAE7DN,MAAAA,GAAAA,EAAapB,KAAIC,IACbuB,EAAWG,KAAKC,EAAc3B,EAAMiB,OAKxC,MAAO,CAAEW,MAFSC,EAAaP,EAAkC5D,EAAYwD,GAElDY,KAAMP,IAG/BM,EAAeA,CAACE,EAAmCrE,EAAoBwD,KACzE,MAAMc,EAAgCD,EAChC,IAAGE,EAAAA,EAAAA,QAAOF,EAA2BrE,MAAewD,EAAOgB,iBAAmBhB,EAAOgB,iBAAmB,qBACxG,WAAWxE,SAAkBwD,EAAOgB,iBAAmBhB,EAAOgB,iBAAmB,qBAEvF,OAAOC,EAAAA,cAAA,MAAIC,UAAU,0CAA0CJ,IAG7DL,EAAgBA,CAAC3B,EAAwBiB,KAC3C,MAAM,WAAEvD,EAAU,UAAEG,EAAS,UAAEC,EAAS,mBAAEuE,GAAuBpB,EAG3DqB,EAAaD,EAAqBrC,EAAKuC,MAAQvC,EAAKuC,OAASvC,EAAKuC,MAAMC,MAAM,KAAKC,MACnFC,EAAYJ,EACZA,EAAWK,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IACvGkC,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAC3HiD,EAAQ8B,cAAcC,MAAQ9C,EAAKuC,MACnC,MAAMQ,GAAYC,EAAAA,EAAAA,wBAAuB/B,EAAMQ,iBAAmBV,GAClE,OACIoB,EAAAA,cAAA,MAAIC,UAAU,wCAAwCa,IAAKjD,EAAKkD,IAC5Df,EAAAA,cAAA,IAAAgB,OAAAC,OAAA,cAAeV,EAAWW,KAAMC,EAActD,EAAMtC,EAAYuD,IAAY8B,GACvE/C,EAAKC,UACFkC,EAAAA,cAAA,eACIA,EAAAA,cAAA,OAAKoB,IAAKvD,EAAKC,SAAUuD,IAAI,MAGpCF,EAActD,EAAMtC,EAAYuD,IAAUwC,EAAoBnB,GAA0B,GAAIzE,EAAWC,MAMlHwF,EAAgBA,CAACI,EAA8BhG,EAAoBuD,IAC9DyC,GAAcA,EAAWR,GAAKS,EAAiBD,EAAWR,GAAIxF,EAAYuD,GAAS,GAGxF0C,EAAmBA,CAACpD,EAAY7C,EAAoBuD,KAA8C,IAAA2C,EACpG,MAAM,cAAEC,EAAa,UAAEC,EAAS,eAAEC,GAAmB9C,EAErD,IAAK+C,EAAAA,GAASC,UACV,MAAO,GAGX,MAAMC,EAAW,IAAIC,IAAIN,EAAeO,OAAOC,SAAShB,MAEpDS,GAAapG,GACbwG,EAASI,aAAaC,IAAIT,EAAWpG,GAGzC,MAAM8G,EAAmBT,MAAAA,OAAc,EAAdA,EAAgBU,MAAKC,GACd,aAArBA,EAASC,UAEdC,EAAUJ,MAAAA,GAAwB,QAARZ,EAAhBY,EAAkBK,cAAM,IAAAjB,OAAA,EAAxBA,EAA0Ba,MAAKzE,GACpCA,EAAK8E,kBAAoBC,OAAOC,SAASzE,EAAI,MAGlD0E,EAAiBL,GAAWM,KAAKC,UAAUC,EAAiB,CAACR,KAKnE,OAJIK,GACAf,EAASI,aAAaC,IAAI,WAAYU,GAGnCf,EAASb,MAGdI,EAAsBA,CAACC,EAAoB7F,EAAmBC,KAChE,MAAMuH,EAAgB3B,EACjBf,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,YAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,aAEjD,OAAOqE,EAAAA,cAAA,QAAMmD,yBAAyBC,EAAAA,EAAAA,IAAgBF,MAKpDG,EAAwB,CAC1B,gBACA,uBACA,kBACA,qBACA,wBACA,YAOEJ,EAAoBV,IACtB,MAAMe,EAA4C,GAUlD,OARAf,EAASgB,SAAQd,IACb,MAAMe,EAAyC,GAC/CH,EAAsBE,SAAQE,IAC1BD,EAAkBjE,KAAKkD,EAAQgB,OAEnCH,EAAmB/D,KAAKiE,MAGrBF,GC3HEI,EAAiB5E,IAC1B,MAAM,UACF6C,EAAS,kBACTgC,EAAiB,gBACjBC,EAAe,gBACfC,EAAe,kBACfC,EAAiB,SACjBC,EAAQ,oBACRC,EAAmB,yBACnBC,EAAwB,MACxBC,EAAK,gBACLC,EAAe,gBACfC,EAAe,gBACfC,GACAvF,EAEEwF,EAnBqBR,CAAAA,GAAgDS,IAC3ET,EAAkBS,EAAMC,OAAOC,OAAS,KAkBlBC,CAAsBZ,GAEtCa,EAAaf,EAaf5D,EAAAA,cAAA,SACIC,UAAU,0BACV2E,KAAK,OAAM,aACCR,EACZS,KAAMlD,EACNmD,YAAanB,EACboB,IAAKlB,EACLmB,SAAUV,EACVG,MAAOP,IApBXlE,EAAAA,cAAA,SACIC,UAAU,0BACV2E,KAAK,OAAM,aACCR,EACZS,KAAMlD,EACNmD,YAAanB,EACboB,IAAKlB,EACLmB,SAAUV,EACVW,UAAWlB,EACXU,MAAOP,IAeTgB,GAAiBlB,GAAuBhE,EAAAA,cAACmF,EAAAA,OAAM,CAAClF,UAAU,+BAA8B,aAAaoE,IAW3G,MAAO,CAAEjI,MAAOuI,EAAWS,UARvBpF,EAAAA,cAACmF,EAAAA,OAAM,CACHlF,UAAY+D,EAAuD,uCAAjC,+BAAuE,aAC7FG,EACZkB,QAASpB,EACTW,KAAK,WAIwCU,UAAWJ,IC9DpE,IAAItG,EAMG,MAAM2G,EAA+BzG,IACxC,MAAM,YAAEE,EAAW,UAAEtD,EAAS,UAAEC,GAAcmD,EAE9CF,GAAUS,EAAAA,EAAAA,kBAAiB,QAASP,EAAMQ,iBAAmB,IAE7D,MAAMF,EAAgC,GAMtC,OAJAJ,MAAAA,GAAAA,EAAapB,KAAIC,IACbuB,EAAWG,KAAKC,EAAc3B,EAAMnC,EAAWC,EAAWmD,OAGvD,CAAEa,KAAMP,IAGbI,EAAgBA,CAAC3B,EAAwBnC,EAAmBC,EAAmBmD,KACjF,MAAMyB,EACF1C,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IACzHiD,EAAQ8B,cAAcC,MAAQJ,EAC9B,MAAMK,GAAYC,EAAAA,EAAAA,wBAAuB/B,EAAMQ,iBAAmBV,GAClE,OACIoB,EAAAA,cAAA,MAAIC,UAAU,uCAAuCa,IAAKjD,EAAKkD,IAC3Df,EAAAA,cAAA,IAAAgB,OAAAC,OAAA,cAAeV,EAAWW,KAAMC,EAActD,EAAMnC,EAAWC,EAAWmD,IAAY8B,GACjFO,EAActD,EAAMnC,EAAWC,EAAWmD,IACvCwC,EAAoBzD,EAAKuC,MAAQvC,EAAKuC,MAAQ,GAAI1E,EAAWC,MAM3EwF,EAAgBA,CAACI,EAA8B7F,EAAmBC,EAAmBmD,KACvF,MAAM,cAAE4C,EAAa,UAAEC,GAAc7C,EAE/B0G,EAAiBjE,EAAWnB,MAC7BI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAEjD,IAAKkG,EAAAA,GAASC,UACV,MAAO,GAGX,MAAMC,EAAW,IAAIC,IAAIN,EAAeO,OAAOC,SAAShB,MAKxD,OAJIS,GAAa6D,GACbzD,EAASI,aAAaC,IAAIT,EAAW6D,GAGlCzD,EAASb,MAGdI,EAAsBA,CAACC,EAAoB7F,EAAmBC,KAChE,MAAMuH,EAAgB3B,EACjBf,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,YAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,aAEjD,OAAOqE,EAAAA,cAAA,QAAMmD,yBAAyBC,EAAAA,EAAAA,IAAgBF,MCtE7CuC,EAAkB3G,IAC3B,MAAM,iBACF4G,EAAgB,6BAChBC,EAA4B,qBAC5BC,EAAoB,kBACpBC,EAAiB,qBACjBC,EAAoB,gBACpBlC,EAAe,yBACfK,EAAwB,iBACxB3E,GACAR,EACEF,GAAUS,EAAAA,EAAAA,kBAAiB,QAASC,EAAkBuG,EAAmB,IACzEE,GAAalF,EAAAA,EAAAA,wBAAuBvB,EAAkBV,GAE5D,OACIoB,EAAAA,cAAA,OAAKC,UAAWyF,GACZ1F,EAAAA,cAACmF,EAAAA,OAAMnE,OAAAC,OAAA,CACHhB,UAAU,kBAAiB,gBACZ2F,EAAoB,aACvBD,EACZN,QAASpB,EACT+B,SAAUF,GACNC,IAEFnC,GACE5D,EAAAA,cAAA,QAAMC,UAAU,uBAAsB,kBACjC4F,gPCQzB,IAAIjH,EACAU,EAMG,MAAM2G,EAA+BnH,IACxC,MAAM,YACFE,EAAW,UACXrD,EAAS,UACTD,EACAuD,kBACIiH,SAAS,cAAEC,GACXjH,WAAW,gCAAEkH,EAA+B,yBAAEC,IACjD,WACDC,EAAU,SACVC,EAAQ,kBACRC,GACA1H,EACEM,EAA4C,GAClDE,EAAmBR,EAAMQ,iBACzBV,GAAUS,EAAAA,EAAAA,kBAAiB,QAASP,EAAMQ,iBAAmB,IAE7DN,MAAAA,GAAAA,EAAapB,KAAIC,IACbuB,EAAWG,KAAKC,EAAc3B,EAAMnC,EAAWC,EAAWwK,EAAerH,EAAOwH,EAAYC,OAKhG,MAAO,CAAE9G,MAFSC,EAAmC,UAAtB8G,EAAgCJ,EAAkCC,GAEtEI,MAAOrH,IAGhCM,EAAgB2G,IAClB,MAAMK,EAA+BL,GAAsD,kBAE3F,OAAOrG,EAAAA,cAAA,MAAIC,UAAU,yCAAyCyG,IAG5DlH,EAAgBA,CAClB3B,EACAnC,EACAC,EACAwK,EACArH,EACAwH,EACAC,KAEA,MAAMI,EACF9I,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAEzH,MAAO,CACHgE,KAAM2B,EAAoBzD,EAAKuC,MAAQvC,EAAKuC,MAAQ,GAAI1E,EAAWC,GACnEiL,UAAWC,EAAiBhJ,EAAM8I,GAAoB,GAAI7H,GAC1DgI,MACIjJ,EAAKkD,IACLlD,EAAKkJ,QACLlJ,EAAKkJ,OAAO3G,OACZvC,EAAKkJ,OAAO3G,MAAM4G,cAClBC,EAAapJ,EAAKkJ,OAAO3G,MAAM4G,aAAcnJ,EAAKkJ,OAAO3G,MAAM4G,aAAcT,EAAUD,EAAYxH,GACvGoI,UAAWC,IACXC,SAAUC,EAAaxJ,EAAMnC,EAAWC,EAAWwK,EAAerH,GAClEV,GAAIP,EAAKkD,KAIXoG,EAAgBA,KACX,CACHlH,UAAW,uCACXqH,IAAK,OAIPD,EAAeA,CACjBxJ,EACAnC,EACAC,EACAwK,EACArH,KAEA,MACIG,kBAAkB,QAAEiH,IACpBpH,EACEyB,EACF1C,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAEzHiD,EAAQ8B,cAAc6G,MAAQ1J,EAAKkD,GACnC,MAAMH,GAAYC,EAAAA,EAAAA,wBAAuBvB,EAAmBV,GAG5D,4WAAA4I,CAAA,CACIvH,UAAW,uCACXqH,IAAK,IACL,aAAc,GAAG/G,KALA2F,EAAQuB,iBAAiBC,eAAe7J,EAAKkJ,OAAQ3G,MAAO4G,gBAM7E9F,KAAMC,EAActD,EAAMnC,EAAWC,EAAWwK,IAC7CvF,IAILO,EAAgBA,CAACI,EAA8B7F,EAAmBC,EAAmBwK,KACvF,MAAMX,EAAiBjE,EAAWnB,MAC7BI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IACjD,OAAO4F,EAAWnB,OAASmB,EAAWR,IAChC4G,EAAAA,EAAAA,uBAAsBnC,EAAgBjE,EAAWR,GAA0BoF,OAAeyB,GAC1F,IAGJtG,EAAsBA,CAACC,EAAoB7F,EAAmBC,KAChE,MAAMuH,EAAgB3B,EACjBf,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,YAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,aAEjD,OACIqE,EAAAA,cAAA,QAAMC,UAAU,sDAAsDkD,yBAAyBC,EAAAA,EAAAA,IAAgBF,MAIjH+D,EAAeA,CACjBY,EACAC,EACAvB,EACAD,EACAxH,KAEA,MACIG,kBAAkB,QAAEiH,IACpBpH,EAEJ,OACIkB,EAAAA,cAAC+H,EAAAA,eAAc,CACX3J,GAAImI,EACJyB,SAAU1B,EACVJ,QAASA,EACT+B,KAAM,CACFnB,MAAO,CACHoB,wBAAyBL,EACzBM,UAAWL,IAGnB7H,UAAU,gDAKhB4G,EAAmBA,CAACtF,EAA8BoF,EAAiB7H,KACrE,MACIG,kBACIiH,SACIkC,SAAS,aAAEC,IAEftJ,QAAQ,cAAEuJ,KAEdxJ,EAKJ,GAJIwJ,IACAA,EAAcC,iBAAkB,IAG/BhH,IAAeA,EAAWzD,SAE3B,OADAgB,EAAMb,UAAUC,MAAM,2DACf,KAaX,OACI8B,EAAAA,cAACwI,EAAAA,GAAK,CACF3L,eAAgBiC,EAAMG,iBAAiBiH,QAAQC,cAActJ,eAC7D8J,QAASA,EACT1G,UAAU,2CACVmB,IAAKG,EAAWzD,SAChBuK,aAAcA,EACdC,cAAeA,GAjBsB,CACzCG,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCE,GAAI,CAAEJ,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCG,UAAU,EACVT,iBAAiB,GAWbU,oBAAoB,8OCrLhC,IAAIrK,EACAU,EAMG,MAAM4J,EAAsCpK,IAC/C,MAAM,YACFE,EAAW,UACXrD,EAAS,UACTD,EACAuD,kBACIiH,SAAS,cAAEC,GACXjH,WAAW,uCAAEiK,IAChB,WACD7C,EAAU,SACVC,GACAzH,EACEM,EAA8C,GACpDE,EAAmBR,EAAMQ,iBACzBV,GAAUS,EAAAA,EAAAA,kBAAiB,QAASP,EAAMQ,iBAAmB,IAE7DN,MAAAA,GAAAA,EAAapB,KAAIC,IACbuB,EAAWG,KAAKC,GAAc3B,EAAMnC,EAAWC,EAAWwK,EAAerH,EAAOwH,EAAYC,OAKhG,MAAO,CAAE9G,MAFSC,GAAayJ,GAEJ1C,MAAOrH,IAGhCM,GAAgB0J,IAClB,MAAM1C,EAA+B0C,GAE/B,mCAEN,OAAOpJ,EAAAA,cAAA,MAAIC,UAAU,yCAAyCyG,IAG5DlH,GAAgBA,CAClB3B,EACAnC,EACAC,EACAwK,EACArH,EACAwH,EACAC,KAEA,MAAMI,EACF9I,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAEzH,MAAO,CACHgE,KAAM2B,GAAoBzD,EAAKuC,MAAQvC,EAAKuC,MAAQ,GAAI1E,EAAWC,GACnEiL,UAAWC,GAAiBhJ,EAAM8I,GAAoB,GAAI7H,GAC1DgI,MACIjJ,EAAKkD,IACLlD,EAAKkJ,QACLlJ,EAAKkJ,OAAO3G,OACZvC,EAAKkJ,OAAO3G,MAAM4G,cAClBC,GAAapJ,EAAKkJ,OAAO3G,MAAM4G,aAAcnJ,EAAKkJ,OAAO3G,MAAM4G,aAAcT,EAAUD,EAAYxH,GACvGoI,UAAWC,KACXC,SAAUC,GAAaxJ,EAAMnC,EAAWC,EAAWwK,EAAerH,GAClEV,GAAIP,EAAKkD,KAIXoG,GAAgBA,KACX,CACHlH,UAAW,uCACXqH,IAAK,OAIPD,GAAeA,CACjBxJ,EACAnC,EACAC,EACAwK,EACArH,KACA,IAAAuK,EAAAC,EAAAC,EACA,MACItK,kBAAkB,QAAEiH,IACpBpH,EACEyB,EACF1C,EAAKuC,OAASvC,EAAKuC,MAAMI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAAI8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IAEzHiD,EAAQ8B,cAAc6G,MAAQ1J,EAAKkD,GACnC,MAAMH,GAAYC,EAAAA,EAAAA,wBAAuBvB,EAAmBV,GACtD4K,EAAetD,EAAQuB,iBAAiBC,eAAe7J,EAAKkJ,OAAQ3G,MAAO4G,cACjF,IAAIyC,EAAgBtI,GAActD,EAAMnC,EAAWC,EAAWwK,GAC9D,MAAMuD,EAAa7L,MAAAA,GAAyB,QAArBwL,EAAJxL,EAAM8L,2BAAmB,IAAAN,OAAA,EAAzBA,EAA2BO,WAAUC,GAAe,yBAAVA,EAAEC,MAE/D,GADAC,QAAQC,IAAI,kBAAmBP,GAE3BA,GACAC,GAAS,GADTD,MAEA5L,GAAAA,EAAM8L,sBACN9L,MAAAA,GAAyB,QAArByL,EAAJzL,EAAM8L,2BAAmB,IAAAL,OAAA,EAAzBA,EAA2B5M,QAAS,GACqB,MAAzDmB,MAAAA,GAAgC,QAA5B0L,EAAJ1L,EAAM8L,oBAAoBD,UAAM,IAAAH,GAAO,QAAPA,EAAhCA,EAAkCnJ,aAAK,IAAAmJ,OAAA,EAAvCA,EAAyCU,aAC3C,KAAAC,EACE,MAAMC,EAAqB,IAAInI,IAAIyH,EAAevD,EAAQkC,QAAQtL,YAAYsN,SAC9ED,EAAmBhI,aAAaC,IAAI,SAAUvE,MAAAA,GAAgC,QAA5BqM,EAAJrM,EAAM8L,oBAAoBD,UAAM,IAAAQ,GAAO,QAAPA,EAAhCA,EAAkC9J,aAAK,IAAA8J,OAAA,EAAvCA,EAAyCD,aACvFR,EAAgBU,EAAmBE,SAAWF,EAAmBG,OACjEP,QAAQC,IAAI,kBAAmBP,GAInC,OAFAM,QAAQC,IAAI,kBAAmBP,wWAE/BjC,CAAA,CACIvH,UAAW,uCACXqH,IAAK,IACL,aAAc,GAAG/G,KAAciJ,IAC/BtI,KAAMuI,GACH7I,IAILO,GAAgBA,CAACI,EAA8B7F,EAAmBC,EAAmBwK,KACvF,MAAMX,EAAiBjE,EAAWnB,MAC7BI,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,IAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,IACjD,OAAO4F,EAAWnB,OAASmB,EAAWR,IAChC4G,EAAAA,EAAAA,uBAAsBnC,EAAgBjE,EAAWR,GAA0BoF,OAAeyB,GAC1F,IAGJtG,GAAsBA,CAACC,EAAoB7F,EAAmBC,KAChE,MAAMuH,EAAgB3B,EACjBf,QAAQ,IAAIC,OAAO,IAAI/E,KAAc,MAAO,YAC5C8E,QAAQ,IAAIC,OAAO,IAAI9E,KAAc,MAAO,aAEjD,OACIqE,EAAAA,cAAA,QAAMC,UAAU,sDAAsDkD,yBAAyBC,EAAAA,EAAAA,IAAgBF,MAIjH+D,GAAeA,CACjBY,EACAC,EACAvB,EACAD,EACAxH,KAEA,MACIG,kBAAkB,QAAEiH,IACpBpH,EAEJ,OACIkB,EAAAA,cAAC+H,EAAAA,eAAc,CACX3J,GAAImI,EACJyB,SAAU1B,EACVJ,QAASA,EACT+B,KAAM,CACFnB,MAAO,CACHoB,wBAAyBL,EACzBM,UAAWL,IAGnB7H,UAAU,gDAKhB4G,GAAmBA,CAACtF,EAA8BoF,EAAiB7H,KACrE,MACIG,kBACIiH,SACIkC,SAAS,aAAEC,IAEftJ,QAAQ,cAAEuJ,KAEdxJ,EAMJ,GALAiL,QAAQC,IAAI,0BAA2BzI,GACnC+G,IACAA,EAAcC,iBAAkB,IAG/BhH,IAAeA,EAAWzD,SAE3B,OADAgB,EAAMb,UAAUC,MAAM,2DACf,KAaX,OACI8B,EAAAA,cAACwI,EAAAA,GAAK,CACF3L,eAAgBiC,EAAMG,iBAAiBiH,QAAQC,cAActJ,eAC7D8J,QAASA,EACT1G,UAAU,2CACVmB,IAAKG,EAAWzD,SAChBuK,aAAcA,EACdC,cAAeA,GAjBsB,CACzCG,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCE,GAAI,CAAEJ,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCG,UAAU,EACVT,iBAAiB,GAWbU,oBAAoB,ymBCzKhC,MAAMsB,WAAevK,EAAAA,UAgCjB1E,YAAYwD,GACR0L,MAAM1L,GApBO,KAAApD,UAAoB,IAEpB,KAAAC,UAAoB,IAEpB,KAAA8O,SAAmB,IA2VnB,KAAAC,eAAiB,KAC9B,MAAM,QAAExE,GAAYnK,KAAK+C,MAGnB6L,GAAaC,EAAAA,GAAAA,IAAc1E,GAC3B2E,GAAeC,EAAAA,GAAAA,IAAgB5E,EAAQkC,QAAQ2C,KAAKC,sBAA8B9E,GAGlF+E,EACoB,WAHKC,EAAAA,GAAAA,IAAyBC,GAAAA,GAAKC,GAAAA,GAAQP,EAAcF,EAAYzE,GAIrFnK,KAAK+C,MAAMI,UAAUmM,uCACrBtP,KAAK+C,MAAMI,UAAUoM,gCAC/B,OAAOtL,EAAAA,cAACuL,EAAAA,EAAO,CAACtL,UAAU,iCAAiCuL,MAAOP,EAAaQ,KAAMC,EAAAA,EAAYC,OAAQC,cAAc,WAG1G,KAAAC,gBAAmBC,IAChC,MAAM,YAAE9M,GAAgBjD,KAAKgQ,MAEzB/M,GAAeA,EAAYhB,kBAAuD,OAAnC8N,EAAEtH,OAAOwH,QAAQ,eAChEjQ,KAAKkQ,0BAII,KAAAC,OAAUJ,IACvB,MAAM,YAAE9M,GAAgBjD,KAAKgQ,MAEzB/M,GAAeA,EAAYhB,kBAAoB8N,EAAEK,UAAYC,EAAAA,SAASC,OACtEtQ,KAAKkQ,yBACElQ,KAAKgQ,MAAMnG,sBAAwBkG,EAAEK,UAAYC,EAAAA,SAASC,QAC7DtQ,KAAKgQ,MAAMnG,sBACX7J,KAAKuQ,SAAS,CAAE1G,sBAAsB,IAMrC7J,KAAKwQ,cAAcC,SAAWzQ,KAAKwQ,cAAcC,QAAQC,SAAUX,EAAEtH,SACrEzI,KAAK2Q,qBAAqBF,SAAWzQ,KAAK2Q,qBAAqBF,QAAQC,SAAUX,EAAEtH,UAGpFxF,GAAeA,EAAYhB,kBAC3BjC,KAAKkQ,yBAGLlQ,KAAKgQ,MAAMnG,sBACX7J,KAAKuQ,SAAS,CAAE1G,sBAAsB,MAKjC,KAAAqG,uBAAyB,KACtC,MACI/F,SAAS,cAAEC,GACX8B,MAAM,YAAE0E,IACR5Q,KAAK+C,MAEL/C,KAAK8H,gBAAgB2I,SAAWzQ,KAAK8H,gBAAgB2I,QAAQ/H,MAAM/H,OAAS,IAC5EiQ,EAAYpR,WAAa,GACzBoR,EAAYC,sBAAwB,GACpCD,EAAYE,2BAA6B,GACzC1G,GAAgBA,EAAc2G,QAAOC,EAAAA,EAAAA,IAAuBJ,GAAcA,GAC1E5Q,KAAK8H,gBAAgB2I,QAAQ/H,MAAQ,IAGzC1I,KAAKuQ,SAAS,CAAE/Q,WAAY,GAAIyD,iBAAa4I,EAAWhG,oBAAgBgG,KAG3D,KAAAoF,mBAAsB9I,MAC9BA,GAASA,EAAMxH,QAAUX,KAAKgI,WAC/BhI,KAAKuQ,SAAS,CAAE/Q,WAAY2I,IAG5BnI,KAAKkR,qBACLlR,KAAKkR,oBAAoBC,SAG7B,MAAM,UACFjP,EAAS,QACTiI,EACA+B,MAAM,YAAE0E,IACR5Q,KAAK+C,MAET,GAAIoH,EAAS,CACT,GAAIhC,GAASA,EAAMxH,OAAS,EAAG,CAC3B,GAAIwH,EAAMxH,OAASX,KAAKgI,SACpB,OAGJhI,KAAKkR,oBAAsBE,GAAAA,EAAS,KAChCpR,KAAKuQ,SAAS,CAAEc,sBAAsB,IACtCC,EACI,IAAIhS,EACA6I,EACAnI,KAAKE,gBACLF,KAAKuR,mBAAmBvR,KAAKwR,qBAC7BxR,KAAKL,UACLK,KAAKJ,WAETuK,EAAQC,eAEPzH,MAAK8O,IACFzD,QAAQC,IAAI,wBAAyBwD,GACrCzR,KAAK0R,mBAAmBvJ,GACnBxF,MAAK6D,IACFxG,KAAKuQ,SAAS,CACVtN,YAAawO,EACb5L,eAAgBW,EAChBmL,qBAAsB3R,KAAK4R,2BAA2BH,GACtDJ,sBAAsB,OAG7BQ,OAAM1P,IACHnC,KAAKuQ,SAAS,CACVtN,YAAawO,EACb5L,oBAAgBgG,EAChB8F,qBAAsB3R,KAAK4R,2BAA2BH,KAE1DvP,EAAU4P,UAAU3P,GACpBD,EAAU6P,MAAM,wCAG3BF,OAAM1P,IACHnC,KAAKuQ,SAAS,CACVtN,iBAAa4I,EACbhG,oBAAgBgG,EAChB8F,qBAAsB3R,KAAK4R,+BAE/B1P,EAAU4P,UAAU3P,GACpBD,EAAU6P,MAAM,2CAEzB/R,KAAK0O,UAERsD,YAAW,KACPhS,KAAKkR,wBACN,GAEHN,EAAYpR,WAAa2I,OAEzBnI,KAAKuQ,SAAS,CAAEtN,iBAAa4I,EAAWhG,oBAAgBgG,IACxD+E,EAAYpR,WAAa,GAE7B2K,EAAQC,cAAc2G,QAAOC,EAAAA,EAAAA,IAAuBJ,GAAcA,KAIzD,KAAAW,mBAAsBU,IACnC,GAAIA,GAAmBA,EAAgBtR,OAAS,EAAG,CAC/C,MAAMuR,EAAoC,GAQ1C,OAPAD,GACIA,EAAgBzK,SAAQ,CAAC2K,EAAoBxE,KACzCwE,EAAmB9S,gBACf6S,EAAwB1O,KACpB2O,EAAmB9S,eAAe+S,OAAO,GAAGC,cAAgBF,EAAmB9S,eAAeiT,MAAM,OAG7GJ,EAAwBK,KAAK,KAExC,MAAO,oCAkBM,KAAAC,cACbzC,IAEA,MACI/M,QAAQ,oBAAEiF,GACVkC,SAAS,cACLC,EACAqI,KACIzP,QAAQ,2BAAE8N,MAGlB9Q,KAAK+C,MAEHoF,EAAQnI,KAAK8H,gBAAgB2I,SAAWzQ,KAAK8H,gBAAgB2I,QAAQ/H,MAG3E,GAFAqH,EAAE2C,kBAEGvK,GAAUA,GAA0B,IAAjBA,EAAMxH,QAAiBsH,EAC3CjI,KAAK8H,iBAAmB9H,KAAK8H,gBAAgB2I,SAAWzQ,KAAK8H,gBAAgB2I,QAAQkC,YAClF,CACH,MAAM/M,EAAYkL,GAA8B,IAC1C8B,EAAY5S,KAAK6S,oBAAmBC,EAAAA,EAAAA,IAAW,SAAU1I,IAAkB,GAAIjC,EAAOvC,GAC5FmN,SAAS5M,SAAShB,KAAOyN,IAIhB,KAAAI,0BAA4B,KACzC,MAAM,qBAAEnJ,EAAoB,YAAE5G,GAAgBjD,KAAKgQ,MAE9CnG,GAOG5G,GAAeA,EAAYhB,kBAC3BjC,KAAKkQ,yBAGTlQ,KAAKuQ,SAAS,CAAE1G,sBAAsB,KAVtC7J,KAAKuQ,SAAS,CACV1G,sBAAsB,EACtBrK,WAAY,GACZyT,gBAAgB,KAWX,KAAAJ,mBAAqB,CAACK,EAAe/K,EAAegL,KACjE,IAAKrN,EAAAA,GAASC,UACV,MAAO,GAGX,MAAMC,EAAW,IAAIC,IAAIiN,EAAOhN,OAAOC,SAAShB,MAKhD,OAJIgO,GAAOhL,GACPnC,EAASI,aAAaC,IAAI8M,EAAKhL,GAG5BnC,EAASb,MAGH,KAAAyM,2BAA8BwB,IAC3C,GAAsD,OAAlDpT,KAAKqT,iCAAiC5C,QAAkB,CACxD,MAAM6C,EAAiBtT,KAAKqT,iCAAiC5C,QACvD8C,EAAsBvT,KAAK+C,MAAMI,UAAUqQ,+BAC3CC,EAAoBzT,KAAK+C,MAAMI,UAAUuQ,+BAI/C,OAHAJ,EAAeK,UACXP,GAAUA,EAAOnR,kBAAoBmR,EAAOnR,iBAAiBtB,OAAS,EAAI4S,EAAsBE,EACpGH,EAAeM,aAAa,YAAa,aAClCN,EAAeK,UAE1B,MAAO,IA3jBP3T,KAAK8H,gBAAkB7D,EAAAA,YACvBjE,KAAK+J,qBAAuB9F,EAAAA,YAC5BjE,KAAKqT,iCAAmCpP,EAAAA,YACxCjE,KAAK2Q,qBAAuB1M,EAAAA,YAC5BjE,KAAKwQ,cAAgBvM,EAAAA,YACrBjE,KAAKgQ,MAAQ,CACTnG,sBAAsB,EACtBrK,WAAY,GACZqU,0BAA2B,kCAC3BC,0BAA2B,kCAC3BC,2BAA4B,mCAC5BC,4BAA6B,oCAC7B/Q,iBAAa4I,EACbhG,oBAAgBgG,EAChB8F,qBAAsB,GACtBsB,gBAAgB,EAChB5B,sBAAsB,GAE1BrR,KAAKgI,SACAhI,KAAK+C,MAAMoH,SACRnK,KAAK+C,MAAMoH,QAAQsI,KACnBzS,KAAK+C,MAAMoH,QAAQsI,IAAIzP,QACvBhD,KAAK+C,MAAMoH,QAAQsI,IAAIzP,OAAOiR,sBAClC,IACJjU,KAAKwR,oBAAsBxR,KAAK+C,MAAMC,QAAUhD,KAAK+C,MAAMC,OAAOkR,wBAClElU,KAAKE,gBAAkBF,KAAK+C,MAAMC,QAAUhD,KAAK+C,MAAMC,OAAO9C,gBAAkBF,KAAK+C,MAAMC,OAAO9C,gBAAkB,EACpHF,KAAKmU,gBAAkB,kBACvBnU,KAAK2J,iBAAmB,mBACxB3J,KAAKuD,kBAAmB6Q,EAAAA,EAAAA,oBACpBpU,KAAK+C,MAAMoH,QAAQkC,QAAQgI,kBAC3BrU,KAAK+C,MAAMuR,aACXtU,KAAK+C,MAAMb,WAIZ,0BACH6Q,SAASwB,MAAQxB,SAASwB,KAAKC,iBAAiB,YAAaxU,KAAK8P,iBAClE5J,QAAUA,OAAOsO,iBAAiB,QAASxU,KAAKmQ,QAG7CsE,uBACH1B,SAASwB,MAAQxB,SAASwB,KAAKG,oBAAoB,YAAa1U,KAAK8P,iBAAiB,GACtF5J,QAAUA,OAAOwO,oBAAoB,QAAS1U,KAAKmQ,QAAQ,GAGxDwE,qBACH,MACI3R,QAAQ,gBAAE6E,IACV7H,KAAK+C,OACH,qBAAE8G,EAAoB,eAAEoJ,GAAmBjT,KAAKgQ,MAEjDhQ,KAAK+C,MAAMoH,QAAQkC,QAAQuI,OAAOC,YAC9BhN,GAAmBgC,EACpB7J,KAAK8H,iBAAmB9H,KAAK8H,gBAAgB2I,SAAWzQ,KAAK8H,gBAAgB2I,QAAQkC,QAC7EM,GACRjT,KAAK+J,sBAAwB/J,KAAK+J,qBAAqB0G,SAAWzQ,KAAK+J,qBAAqB0G,QAAQkC,SAKzGmC,sBAAsBC,EAA4CC,GACrE,OAAIhV,KAAKgQ,QAAUgF,GAAahV,KAAK+C,QAAUgS,EAO5CE,SACH,MAAM,QACF9K,EACAhH,WAAW,kBACP2G,EAAiB,6BACjBF,EAA4B,0BAC5BsL,EAAyB,0BACzBC,EAAyB,0BACzBC,GAEJpS,QAAQ,gBAAE6E,EAAe,oBAAEI,EAAmB,sBAAEoN,EAAqB,2BAAEC,EAA0B,UAAEpR,EAAY,GAAE,SAAEqR,IACnHvV,KAAK+C,MAGH6L,GAAaC,EAAAA,GAAAA,IAAc1E,GAC3B2E,GAAeC,EAAAA,GAAAA,IAAgB5E,EAAQkC,QAAQ2C,KAAKC,sBAA8B9E,GAClFM,GAAyB0E,EAAAA,GAAAA,IAAyBoG,EAAiBlG,GAAAA,GAAQP,EAAcF,EAAYzE,IAErG,qBACFN,EAAoB,WACpBrK,EAAU,0BACVqU,EAAyB,0BACzBC,EAAyB,2BACzBC,EAA0B,YAC1B9Q,EAAW,eACX4C,EAAc,qBACdwL,EAAoB,4BACpB2C,GACAhU,KAAKgQ,MAEHpK,EAAauE,GAAWA,EAAQsI,KAAOtI,EAAQsI,IAAIzP,QAAUmH,EAAQsI,IAAIzP,OAAO8N,4BAA+B,IAC/GnL,GAAgBmN,EAAAA,EAAAA,IAAW,SAAU3I,GAAWA,EAAQC,gBAAkB,GAC1EwI,EAAY5S,KAAK6S,mBAAmBlN,EAAenG,EAAYoG,GACrE,IAAIgC,EAGAA,EAAoByN,GAAyBA,EAAsB1U,OAAS,EAAI0U,EAAwB,IAKvGzN,IACDA,EAAoByN,GAGxB,MAAMG,EACFvS,GACAA,EAAYhB,kBACZgB,EAAYhB,iBAAiBwT,QACzBC,GAAKA,EAAErW,iBAAmBA,EAAesW,SAAWD,EAAErW,iBAAmBA,EAAeuW,OAE1FC,EACF5S,GACAA,EAAYhB,kBACZgB,EAAYhB,iBAAiBwT,QAAOC,IAChC,GAAIA,EAAErW,iBAAmBA,EAAeyW,QAAS,KAAAC,EAAAC,EAAAC,EAC7C,MAAMtI,EAAkC,QAA7BoI,EAAQL,EAAE9H,2BAAmB,IAAAmI,OAAA,EAArBA,EAAuBlI,WAAUC,GAAe,cAAVA,EAAEC,MAOzD,IAAAmI,EANF,GACIvI,GAAS,GACT+H,GADA/H,MAEA+H,GAAAA,EAAG9H,sBACH8H,MAAAA,GAAsB,QAArBM,EAADN,EAAG9H,2BAAmB,IAAAoI,OAAA,EAAtBA,EAAwBrV,QAAS,GACmB,KAApD+U,MAAAA,GAA6B,QAA5BO,EAADP,EAAG9H,oBAAoBD,UAAM,IAAAsI,GAAO,QAAPA,EAA7BA,EAA+B5R,aAAK,IAAA4R,OAAA,EAApCA,EAAsCE,WAEtC,OAAOT,MAAAA,GAA6B,QAA5BQ,EAADR,EAAG9H,oBAAoBD,UAAM,IAAAuI,GAAO,QAAPA,EAA7BA,EAA+B7R,aAAK,IAAA6R,OAAA,EAApCA,EAAsCC,aAAcnW,KAAK+C,MAAMoH,QAAQkC,QAAQtL,YAAYC,UAG1G,OAAO0U,EAAErW,iBAAmBA,EAAeyW,WAE7CM,EACFnT,GACAA,EAAYhB,kBACZgB,EAAYhB,iBAAiBwT,QAAOC,GAAKA,EAAErW,iBAAmBA,EAAegX,WAC3EC,EACFrT,GACAA,EAAYhB,kBACZgB,EAAYhB,iBAAiBwT,QAAOC,IAChC,GAAIA,EAAErW,iBAAmBA,EAAeyW,QAAS,KAAAS,EAAAC,EAAAC,EAC7C,MAAM9I,EAAkC,QAA7B4I,EAAQb,EAAE9H,2BAAmB,IAAA2I,OAAA,EAArBA,EAAuB1I,WAAUC,GAAe,cAAVA,EAAEC,MAOzD,IAAA2I,EANF,GACI/I,GAAS,GACT+H,GADA/H,MAEA+H,GAAAA,EAAG9H,sBACH8H,MAAAA,GAAsB,QAArBc,EAADd,EAAG9H,2BAAmB,IAAA4I,OAAA,EAAtBA,EAAwB7V,QAAS,GACmB,KAApD+U,MAAAA,GAA6B,QAA5Be,EAADf,EAAG9H,oBAAoBD,UAAM,IAAA8I,GAAO,QAAPA,EAA7BA,EAA+BpS,aAAK,IAAAoS,OAAA,EAApCA,EAAsCN,WAEtC,OAAOT,MAAAA,GAA6B,QAA5BgB,EAADhB,EAAG9H,oBAAoBD,UAAM,IAAA+I,GAAO,QAAPA,EAA7BA,EAA+BrS,aAAK,IAAAqS,OAAA,EAApCA,EAAsCP,aAAcnW,KAAK+C,MAAMoH,QAAQkC,QAAQtL,YAAYC,UAG1G,OAAO,KAGT2V,EAASlL,GAAAA,GAAA,GACPzL,KAAK+C,OAAyC,IAElDyL,OAAQ,CACJoI,YAAa5W,KAAK+C,MAClBmB,UAAW,GAAG2S,GAAAA,CAAW,YAAa3S,MAAc+D,EAAsB,YAAc,iBAE5F6O,qBAAsB,CAClBvL,IAAK,MACLrH,UAAW,iCACX,YAAa,YACb8E,IAAKhJ,KAAKqT,kCAEd0D,yBAA0B/W,KAAKgQ,MAAM2B,qBACrCnS,WAAYQ,KAAKgQ,MAAMxQ,WACvBwX,YAAa,CACThO,IAAKhJ,KAAK2Q,qBACVzM,UAAW,0BAEf+S,eAAgB,CACZ/S,UAAW2P,GAEfqD,eAAgB,CACZhT,UAAW4P,GAEfqD,gBAAiB,CACbjT,UAAW6P,GAEfqD,iBAAkB,CACdlT,UAAW8P,GAEfqD,WAAY,CACRnT,UAAW,GAAGlE,KAAKmU,2BAEvBmD,YAAa,CACT/L,IAAK,OACLvC,IAAKhJ,KAAKwQ,cACVtM,UAAW,wBACX,aAAc,SACd4E,KAAM,aACNyO,KAAM,SACNjV,OAAQsQ,EACR4E,aAAc,MACdC,SAAUzX,KAAKwS,eAEnBkF,UAAW,CACPnM,IAAK,KACLrH,UAAW2S,GAAAA,CAAW,wCAAyC3S,IAEnEyT,UAAW,CACPpM,IAAK,KACLrH,UAAW2S,GAAAA,CAAW,wCAAyC3S,IAEnE0T,WAAY,CACRrM,IAAK,KACLrH,UAAW2S,GAAAA,CAAW,yCAA0C3S,IAEpEuL,MAAO/F,EAAe,CAClBG,qBAAAA,EACAF,iBAAkB,GAAG3J,KAAK2J,2BAC1BG,kBAAAA,EACAF,6BAAAA,EACAG,qBAAsB/J,KAAK+J,qBAC3BlC,gBAAAA,EACAK,yBAA0BlI,KAAKgT,0BAC/BzP,iBAAkBvD,KAAKuD,mBAE3BsU,KAAMlQ,EAAc,CAChBS,gBAAiB8M,EACjB7M,gBAAiB8M,EACjB7M,gBAAiB8M,EACjBvN,gBAAAA,EACAC,gBAAiB9H,KAAK8H,gBACtBG,oBAAAA,EACAF,kBAAmB/H,KAAKiR,mBACxB/I,yBAA0BlI,KAAKgT,0BAC/BhL,SAAUhI,KAAKgI,SACfpC,UAAAA,EACAgC,kBAAAA,EACAO,MAAO3I,IAEXsY,mBACItY,GACAA,EAAWmB,OAAS,IACnB0Q,GAAyBmE,GAAsBuC,EAAAA,gBAAgBC,YAAYxC,IACtEhM,EAA4B,CACxBqK,0BAAAA,EACAlO,cAAAA,EACAC,UAAAA,EACAjG,UAAWK,KAAKL,UAChBC,UAAWI,KAAKJ,UAChBsD,iBAAkBlD,KAAK+C,MACvBvD,WAAAA,EACAyD,YAAauS,EACbjS,iBAAkBvD,KAAKuD,wBAE3BsI,EACVoM,mBACIzY,GACAA,EAAWmB,OAAS,IACnB0Q,GAAyBwE,GAAsBkC,EAAAA,gBAAgBC,YAAYnC,IACtE3L,EAA4B,CACxB4J,0BAAAA,EACAnO,cAAAA,EACAC,UAAAA,EACAjG,UAAWK,KAAKL,UAChBC,UAAWI,KAAKJ,UAChBsD,iBAAkBlD,KAAK+C,MACvBvD,WAAAA,EACAyD,YAAa4S,EACb3T,UAAWlC,KAAK+C,MAAMb,UACtBqI,WAAYvK,KAAK+C,MAAMkJ,SACvBzB,SAAUxK,KAAK+C,MAAMV,GACrBkB,iBAAkBvD,KAAKuD,iBACvBkH,kBAAmBA,SAEvBoB,EACVqM,oBACI1Y,GACAA,EAAWmB,OAAS,IACnB0Q,GAAyB+E,GAAuB2B,EAAAA,gBAAgBC,YAAY5B,IACvEtT,EAA6B,CACzBE,OAAQhD,KAAK+C,MAAMC,OACnB+Q,2BAAAA,EACApO,cAAAA,EACAC,UAAAA,EACAjG,UAAWK,KAAKL,UAChBC,UAAWI,KAAKJ,UAChBsD,iBAAkBlD,KAAK+C,MACvBvD,WAAAA,EACAyD,YAAamT,EACbvQ,eAAAA,EACAtC,iBAAkBvD,KAAKuD,iBACvBY,mBAAoBmR,SAExBzJ,EACVsM,0BACI3Y,GACAA,EAAWmB,OAAS,IACnB0Q,GAAyBiF,GAA6ByB,EAAAA,gBAAgBC,YAAY1B,IAC7EnJ,EAAmC,CAC/B6G,4BAAAA,EACArO,cAAAA,EACAC,UAAAA,EACAjG,UAAWK,KAAKL,UAChBC,UAAWI,KAAKJ,UAChBsD,iBAAkBlD,KAAK+C,MACvBvD,WAAAA,EACAyD,YAAaqT,EACbpU,UAAWlC,KAAK+C,MAAMb,UACtBqI,WAAYvK,KAAK+C,MAAMkJ,SACvBzB,SAAUxK,KAAK+C,MAAMV,GACrBkB,iBAAkBvD,KAAKuD,wBAE3BsI,EACVuM,UAAW,CACPlQ,yBAA0BlI,KAAKgT,2BAEnCnJ,qBAAsB7J,KAAKgQ,MAAMnG,qBACjCwH,qBAAAA,EACAgH,cAAerY,KAAK2O,mBAGxB,OAAO3O,KAAK+C,MAAMuV,WAAW3B,GAuKzB,yBAAyBnX,GAC7B,MAAQ4K,cAAe7J,GAAQP,KAAK+C,MAAMoH,QAC1C,OAAOoO,EAAAA,EAAAA,+BACH,CAAE9W,cAAelB,GACjB,CACIG,gBAAiBlB,EACjBoB,QAAS,CACLC,WAAYN,EAAIO,eAAeC,YAAYC,UAC3CC,WAAYV,EAAIO,eAAeC,YAAYG,WAE/CC,SAAUZ,EAAIO,eAAeM,UA2E7C,iFCxqBA,MA2CMoX,EAAcA,CAACX,EAA4BR,EAAwBC,IAEjErT,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKmS,GACNpT,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKoS,GACLO,EAAKxX,MACLwX,EAAKxO,UACLwO,EAAKtO,YAMhBmP,EAA4BA,CAC9BzB,EACAS,EACAlC,EACAnE,EACAgH,IAGI7C,GACIvR,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAK+R,GACNhT,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKwS,GACLrG,GAAwBgH,GACvBhH,GACEmE,EAAmB5R,KAAK/B,KAAI+B,GACjBA,MAQ7B+U,EAA4BA,CAC9BzB,EACAS,EACA9B,EACAxE,EACAgH,IAGIxC,GACI5R,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKgS,GACNjT,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKyS,GACL9B,EAAmBnS,MACnB2N,GAAwBgH,GACvBhH,GACEwE,EAAmBnL,MAAM7I,KAAI,CAACC,EAAM6L,IAE5B1J,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKpD,EAAKqJ,UAAS,CAAEpG,IAAKjD,EAAKO,IAAMsL,IACtC1J,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAKpD,EAAKuJ,UACVvJ,EAAK+I,UACL/I,EAAK8B,WAkE9C,EAlK+Cb,IAC3C,MAAM,OACFyL,EAAM,qBACNsI,EAAoB,yBACpBC,EAAwB,WACxBvX,EAAU,YACVwX,EAAW,eACXC,EAAc,eACdC,EAAc,UAEdQ,EAAS,UACTC,EAAS,KAETE,EAAI,mBAEJC,EAAkB,mBAClBG,EAAkB,WAClBZ,EAAU,YACVC,EAAW,MACX7H,EAAK,qBACL4B,EAAoB,cACpBgH,EAAa,0BACbF,GAEApV,EAIJ,OAFAiL,QAAQC,IAAI,4BAA6BkK,GAGrClU,EAAAA,cAAC2U,EAAAA,OAAM3T,OAAAC,OAAA,GAAKsJ,GACPiB,EACA+I,EAAYX,EAA8BR,EAAYC,GACvDrT,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAK8R,GACLxX,GAAcA,EAAWmB,OAAS,EAAIsD,EAAAA,cAACwU,EAAAA,KAAIxT,OAAAC,OAAA,GAAK4R,GAAuBC,GAAmC,GAC1G2B,EAA0BzB,EAAgBS,EAAWI,EAAoBzG,EAAsBgH,GAC/FM,EAA0BzB,EAAgBS,EAAWM,EAAoB5G,EAAsBgH,+VC7CzG,MAAMQ,EAAe,UACfC,EAAa,QACbC,EAAoB,QACpBC,EAAkB,QAClBC,EAA0B,QAC1BC,EAAuB,QACvBC,EAAsB,QAGtBC,EAAwB,wBACxBC,EAAgB,gBAChBC,EAAa,aACbC,EAAY,YACZC,EAAe,eACfC,EAAW,WACXC,EAAe,eACfC,EAAa,aACbC,EAAgB,gBAChBC,EAAc,cACdC,EAAc,cACdzK,EAAS,SACT0K,EAAiB,iBACjBC,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAAuB,uBACvBC,EAAe,eAGfC,EAAM,MACNC,EAAM,MACNlL,EAAM,MACNmL,EAAM,MACNC,EAAM,MAGNC,EAAsB,KACtBC,EAAwB,OAGxBC,EAA4D,CACrEC,YAAa,iBACbC,YAAa,OACbC,gBAAiB,WACjBC,aAAc,oDACdC,oBAAqB,oCACrBC,gBAAiB,2DACjBC,uBAAwB,mDACxBC,iBAAkB,8CAClBC,wBAAyB,0CACzBC,cAAe,uEACfC,qBAAsB,oDACtBC,kBAAmB,kDACnBC,yBAA0B,uCAC1BC,gBAAiB,4DACjBC,uBAAwB,+EACxBC,gBAAiB,kEACjBC,uBAAwB,gEACxBC,eAAgB,iFAChBC,sBAAuB,sEACvBC,4BAA6B,oDAC7BC,mCAAoC,yDACpCC,yBAA0B,oCAC1BC,gCAAiC,sCACjCC,iBAAkB,4CAClBC,wBAAyB,6BACzBC,YAAa,0DACbC,mBAAoB,wCACpBC,iBAAkB,uCAClBC,wBAAyB,WACzBC,qBAAsB,iDACtBC,4BAA6B,wCAC7BC,iBAAkB,uCAClBC,wBAAyB,uBACzBC,cAAe,wDACfC,qBAAsB,oCACtBC,YAAa,yDACbC,mBAAoB,yEACpBC,oBAAqB,oBACrBC,2BAA4B,0BAC5BC,QAAS,MACTC,eAAgB,UAChBC,iBAAkB,kDAClBC,wBAAyB,sDACzBC,kBAAmB,iBACnBC,yBAA0B,iBAC1BC,qBAAsB,+BACtBC,4BAA6B,iCAC7BC,UAAW,QACXC,iBAAkB,OAClBC,yBAA0B,gDAC1BC,gCAAiC,qDACjCC,wBAAyB,0BACzBC,+BAAgC,kBAUvBC,EAA8B,UAC9BC,EAAkC,QAClCC,EAAwB3D,kHClE9B,MAAM4D,GAAuB,EAEvBvP,EAAiB1E,IAE1B,GADA6D,QAAQC,IAAI,mBAAoB9D,GAC5BiU,EACA,OAAOH,EAAAA,GAGX,MAAMI,EAAoBC,EAAqBlP,EAAAA,GAAKjF,GACpD,OAAIkU,IAAsBhE,EAAAA,IAAOgE,IAAsBjP,EAAAA,GAC5CjF,EAAQkC,QAAQjL,OAAOmd,gBAAkBvF,EAAAA,GAAkBF,EAAAA,GAAaD,EAAAA,EAExE1O,EAAQkC,QAAQjL,OAAOmd,gBAAkBtF,EAAAA,GAA0BJ,EAAAA,EAAeC,EAAAA,IAIpF/J,EAAkBA,CAACE,EAA+B9E,KAE3D,GADA6D,QAAQC,IAAI,iBAAkB9D,GAC1BiU,EACA,OAAOF,EAAAA,GAGX,GAAI/T,EAAQkC,QAAQ2C,KAAKwP,sBACA3S,IAAjB4S,aACA,OAAOA,aAAaC,QAAQ,kBAAkBzP,KAMtD,MAAMoP,EAAoBC,EAAqBlP,EAAAA,GAAKjF,GACpD,OAAIkU,IAAsBhE,EAAAA,IAAOgE,IAAsBjP,EAAAA,GAC5CjF,EAAQkC,QAAQjL,OAAOmd,gBAAkBvF,EAAAA,GAAkBF,EAAAA,GAAaD,EAAAA,EAExE1O,EAAQkC,QAAQjL,OAAOmd,gBAAkBtF,EAAAA,GAA0BJ,EAAAA,EAAeC,EAAAA,IAIpF3J,EAA2BA,CACpCoG,EACAoJ,EACA7P,EACAF,EACAzE,KAEA,IAAIkU,EASJ,GAPIA,EADAD,EACoBD,EAAAA,GAEAG,EAAqB/I,EAAUpL,GAKnDkU,IAAsBhE,EAAAA,GACtB,OAAQsE,GACJ,KAAKvF,EAAAA,GAGL,KAAKC,EAAAA,GAGL,KAAKE,EAAAA,GAGL,KAAKQ,EAAAA,GACD,OAAOnL,EAEX,QACI,OAAOiK,EAAAA,EAKnB,GAAIwF,IAAsB7D,EAAAA,GACtB,OAAQmE,GACJ,KAAKlF,EAAAA,GAGL,KAAKH,EAAAA,GAGL,KAAKD,EAAAA,GAGL,KAAKE,EAAAA,GAGL,KAAKG,EAAAA,GAGL,KAAKN,EAAAA,GAGL,KAAKO,EAAAA,GAGL,KAAKC,EAAAA,GAGL,KAAKM,EAAAA,GAGL,KAAKL,EAAAA,EAGL,KAAKC,EAAAA,GAGL,KAAKG,EAAAA,GAGL,KAAK5K,EAAAA,GAGL,KAAK8K,EAAAA,GAGL,KAAKJ,EAAAA,GAGL,KAAKC,EAAAA,GAGL,KAAKI,EAAAA,GAGL,QACI,OAAOvB,EAAAA,EAKnB,GAAIwF,IAAsB/D,EAAAA,GACtB,OAAQqE,GACJ,KAAKlF,EAAAA,GACD,OAAOZ,EAAAA,EAEX,KAAKS,EAAAA,GACD,OAAOR,EAAAA,GAEX,KAAKO,EAAAA,GAGL,KAAKE,EAAAA,GAGL,KAAKC,EAAAA,GAGL,KAAKE,EAAAA,GAGL,KAAKN,EAAAA,GAGL,KAAKO,EAAAA,GACD,OAAO7K,EAEX,KAAK8K,EAAAA,GACD,OAAOd,EAAAA,GAEX,KAAKoB,EAAAA,GACD,OAAOpL,EAEX,KAAK+K,EAAAA,EACD,OAAOf,EAAAA,GAEX,KAAKkB,EAAAA,GACD,OAAOlL,EAEX,KAAKgL,EAAAA,GACD,OAAOhB,EAAAA,GAEX,KAAKmB,EAAAA,GACD,OAAOnL,EAEX,KAAKO,EAAAA,GACD,OAAOyJ,EAAAA,GAEX,KAAKqB,EAAAA,GAGL,KAAKJ,EAAAA,GAGL,KAAKK,EAAAA,GACD,OAAOtL,EAEX,QACI,OAAO+J,EAAAA,EAKnB,GAAIwF,IAAsB9D,EAAAA,GACtB,OAAQoE,GACJ,KAAKpF,EAAAA,GAGL,KAAKQ,EAAAA,GAGL,KAAKK,EAAAA,GAGL,QACI,OAAOtB,EAAAA,GAKnB,GAAIuF,IAAsBjP,EAAAA,GACtB,OAAQuP,GACJ,KAAKlF,EAAAA,GAGL,KAAKH,EAAAA,GACD,OAAO1K,EAEX,KAAKyK,EAAAA,GAGL,KAAKE,EAAAA,GAGL,KAAKG,EAAAA,GACD,OAAO5K,IAAiB+J,EAAAA,GAAgBjK,IAAeiK,EAAAA,EAAeA,EAAAA,EAAeC,EAAAA,GAEzF,KAAKM,EAAAA,GACD,OAAOxK,EAEX,KAAK+K,EAAAA,GACD,OAAO7K,EAEX,KAAK8K,EAAAA,GACD,OAAOd,EAAAA,GAEX,KAAKoB,EAAAA,GACD,OAAOpL,IAAiB+J,EAAAA,GAAgBjK,IAAeiK,EAAAA,EAAeA,EAAAA,EAAeC,EAAAA,GAEzF,KAAKe,EAAAA,EACD,OAAOf,EAAAA,GAEX,KAAKkB,EAAAA,GACD,OAAOlL,IAAiB+J,EAAAA,GAAgBjK,IAAeiK,EAAAA,EAAeA,EAAAA,EAAeC,EAAAA,GAEzF,KAAKgB,EAAAA,GACD,OAAOhB,EAAAA,GAEX,KAAKmB,EAAAA,GACD,OAAOnL,IAAiB+J,EAAAA,GAAgBjK,IAAeiK,EAAAA,EAAeA,EAAAA,EAAeC,EAAAA,GAEzF,KAAKzJ,EAAAA,GACD,OAAOyJ,EAAAA,GAEX,KAAKqB,EAAAA,GAGL,KAAKJ,EAAAA,GAGL,KAAKK,EAAAA,GACD,OAAOtL,IAAiB+J,EAAAA,GAAgBjK,IAAeiK,EAAAA,EAAeA,EAAAA,EAAeC,EAAAA,GAEzF,QACI,OAAOA,EAAAA,GAInB,OAAQ6F,GACJ,KAAK/E,EAAAA,GAGL,KAAKC,EAAAA,EAGL,KAAKC,EAAAA,GAGL,KAAKzK,EAAAA,GACD,OAAOyJ,EAAAA,GAEX,QACI,OAAOlK,IAIb,SAAUgQ,EAAuB7b,GACnC,MAAM,QAAEoH,GAAYpH,EACdiM,EAAO7E,EAAQkC,QAAQ2C,KAExByP,aAAaC,QAAQ,kBAAkB1P,EAAKC,2BACxC4P,EAAAA,EAAAA,WAAU,CAAEpd,cAAe0I,EAAQC,cAAe0U,YAAa,OAAS9P,EAAKC,uBAA8BtM,MAC5Goc,IACI,MAAMC,EAAeD,EAAa5d,SAClCsd,aAAaQ,QACT,kBAAkBjQ,EAAKC,yBACvB+P,MAAAA,OAAY,EAAZA,EAAcT,iBAAkBrF,EAAAA,GAAuBJ,EAAAA,GAAaD,EAAAA,GAExE3S,OAAOC,SAAS+Y,YAc1B,SAAUC,EAA4BhV,EAAuBiV,GAAmB,IAAAC,EAClF,MAAMC,EAA8B,QAAtBD,EAAGlV,EAAQkC,QAAQkT,WAAG,IAAAF,GAAY,QAAZA,EAAnBA,EAAqBG,kBAAU,IAAAH,OAAA,EAA/BA,EAAiCC,cAC7BzT,IAAjB4S,eACAA,aAAaQ,QAAQ,uBAAuBK,IAAYF,GACxDX,aAAaQ,QAAQ,4BAA6BjY,KAAKC,WAAU,IAAIwY,MAAOC,aAI9E,SAAUC,EAA0BxV,GACtC,OAAOnD,KAAK4Y,MAAMnB,aAAaC,QAAQ,8BAAgC,KAGrE,SAAUJ,EAAqB/I,EAAkBpL,GAAqB,IAAA0V,EAAAC,EACxE,MAAMR,EAA8B,QAAtBO,EAAG1V,EAAQkC,QAAQkT,WAAG,IAAAM,GAAY,QAAZA,EAAnBA,EAAqBL,kBAAU,IAAAK,OAAA,EAA/BA,EAAiCP,SAClD,IAAIS,EAAwB,GAM5B,QAJqBlU,IAAjB4S,eACAsB,EAAiB/Y,KAAK4Y,MAAMnB,aAAaC,QAAQ,uBAAuBY,MAAe,UAGzE,QAAdQ,EAAAC,SAAc,IAAAD,OAAA,EAAdA,EAAgBnf,QAAS,GAwBzB,OAAO4U,EAxBqB,CAC5B,MAAMyK,EAAeD,EAAelS,WAAW/L,GAAcA,EAAKkD,KAAOmF,EAAQkC,QAAQtL,YAAYC,YACrG,GAAIgf,GAAgB,EAAG,KAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnB,GAAgC,QAAhCJ,EAAIF,EAAeC,UAAa,IAAAC,GAAM,QAANA,EAA5BA,EAA8BK,YAAI,IAAAL,GAAlCA,EAAoCM,SAAS,UAC7C,OAAO/F,EAAAA,GAGX,GAAgC,QAAhC0F,EAAIH,EAAeC,UAAa,IAAAE,GAAM,QAANA,EAA5BA,EAA8BI,YAAI,IAAAJ,GAAlCA,EAAoCK,SAAS,SAC7C,OAAOhG,EAAAA,GAGX,GAAgC,QAAhC4F,EAAIJ,EAAeC,UAAa,IAAAG,GAAM,QAANA,EAA5BA,EAA8BG,YAAI,IAAAH,GAAlCA,EAAoCI,SAAS,YAC7C,OAAOjG,EAAAA,GAGX,GAAgC,QAAhC8F,EAAIL,EAAeC,UAAa,IAAAI,GAAM,QAANA,EAA5BA,EAA8BE,YAAI,IAAAF,GAAlCA,EAAoCG,SAAS,SAC7C,OAAOnR,EAAAA,GAGX,GAAgC,QAAhCiR,EAAIN,EAAeC,UAAa,IAAAK,GAAM,QAANA,EAA5BA,EAA8BC,YAAI,IAAAD,GAAlCA,EAAoCE,SAAS,OAC7C,OAAOlG,EAAAA,IAOnB,OAAO9E,wmBCnZX,MAAMiL,EAAU,CAAEC,QAAS,GAAIC,YAAa,IAwCvCF,EAAQC,QAAQ,cAAgB,CAC7BE,EAAGA,IAAMC,EAAQ,MACjBC,MAAO,gBACPC,GAAI,CAAC,CAAChY,KAAK,cAAgBiY,KAAK,gFAAiFC,MAAO,IAExHC,KAAK,EACLC,GAAI,YACJC,EAAG,aACHrT,EAAG,YAEHsT,IAAK,GAGLC,GAAI,0BAlC4BC,EAACC,EAAqBC,KAUlD,GADAhB,EAAQE,YAAYa,GAAuBC,GACtChB,EAAQE,YAAYa,GAAqBE,QAC1C,MAAM,IAAIlf,MAAM,oBAAsBgf,EAAsB,mCAEhEf,EAAQE,YAAYa,GAAqBE,QAAQC,UAAUC,eAAiBJ,EACxEf,EAAQE,YAAYa,GAAqBE,QAAQC,UAAUrf,KAC3Dme,EAAQE,YAAYF,EAAQE,YAAYa,GAAqBE,QAAQC,UAAUrf,IAAMkf,IA0BzFD,CAF4B,gFACXV,EAAQ,MAMjC1a,OAAO0b,aAAe1b,OAAO0b,cAAgB,GAC7C1b,OAAO0b,aAAanB,QAAOhV,EAAAA,EAAA,GACpBvF,OAAO0b,aAAanB,SAAW,IAC/BD,EAAQC,SAGXva,OAAO0b,aAAalB,YAAWjV,EAAAA,EAAA,GAC5BvF,OAAO0b,aAAalB,aAAe,IACnCF,EAAQE,aAEY,MAAMmB,EAAiB,GAC9BA,EAAe,qDAAuD,CAC9ElB,EAAGA,IAAMC,EAAQ,MACjBkB,GAAI,kCAEpB5b,OAAO0b,aAAe1b,OAAO0b,cAAgB,GAC7C1b,OAAO0b,aAAaC,eAAcpW,EAAAA,EAAA,GACPvF,OAAO0b,aAAaC,gBAAkB,IACtCA,wFCzEpB,MAAME,IACGC,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,8KCLR,SAASjR,EAAuBoC,GACnC,OAAO,IAAI8O,EAAAA,aAA0B,cAAe9O,EAAQ,eAGhE,MAIa+O,GAA6B/f,EAAAA,EAAAA,IAA2B,CACjEE,OAA8B8f,EAAAA,iBAC9B/hB,MANoCuC,GAC7BoO,EAAuB,CAAExR,WAAY,OAQhD,WCvBA6iB,EAAOC,QAAUre,cCAjBoe,EAAOC,QAAUC","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/actions/get-auto-suggest-suggestions.ts?1b10","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.categorysuggest.tsx?e898","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.form.tsx?6b1a","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.keywordsuggest.tsx?2017","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.label.tsx?4816","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.productsuggest.tsx?739c","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/components/moe-search.othercurriculasuggest.tsx?c7e4","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/moe-search.tsx?6b0d","webpack://Msdyn365.Commerce.Online/./src/modules/moe-search/moe-search.view.tsx?ca00","webpack://Msdyn365.Commerce.Online/./src/utilities/constants.ts?f70a","webpack://Msdyn365.Commerce.Online/./src/utilities/language-change.ts?a435","webpack://Msdyn365.Commerce.Online/./lib/moe-search/module-registration.js?f1d6","webpack://Msdyn365.Commerce.Online/./src/search-state.ts?dd10","webpack://Msdyn365.Commerce.Online/./src/search-state-data-action.ts?8223","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Autosuggestions } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICreateActionContext\r\n} from '@msdyn365-commerce/core';\r\nimport { SearchSuggestion, SearchSuggestionCriteria } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSearchSuggestionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nexport enum SuggestionType {\r\n Category = 'ScopedCategory',\r\n Keyword = 'Keyword',\r\n Product = 'Product',\r\n ExternalCuriculum = 'ExternalCuriculum',\r\n None = 'None'\r\n}\r\n\r\n/**\r\n * Input class for auto suggest search input.\r\n */\r\nexport class AutoSuggestInput implements IActionInput {\r\n public searchQuery?: string;\r\n\r\n public topResultsCount?: number;\r\n\r\n public suggestionType?: string;\r\n\r\n public hitPrefix?: string;\r\n\r\n public hitSuffix?: string;\r\n\r\n constructor(searchText?: string, top?: number, suggestionType?: string, hitPrefix?: string, hitSuffix?: string) {\r\n this.searchQuery = searchText;\r\n this.topResultsCount = top;\r\n this.suggestionType = suggestionType;\r\n this.hitPrefix = hitPrefix;\r\n this.hitSuffix = hitSuffix;\r\n }\r\n\r\n public getCacheKey = () => 'AutoSuggestSearchSuggestions';\r\n\r\n public getCacheObjectType = () => 'AutoSuggestSearchSuggestions';\r\n\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext) => {\r\n return new AutoSuggestInput();\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns a auto-suggest suggestions.\r\n * @param input\r\n * @param ctx\r\n */\r\nexport async function getSearchSuggestionsAction(input: AutoSuggestInput, ctx: IActionContext): Promise {\r\n // If no input is provided fail out\r\n if (!input || !input.searchQuery) {\r\n throw new Error('[getSearchSuggestionsAction]No valid Input was provided, failing');\r\n }\r\n\r\n const autosuggest: Autosuggestions = {};\r\n\r\n const autoSuggestPromises = [_getAutoSuggest(input, autosuggest, ctx)];\r\n return Promise.all(autoSuggestPromises).then(() => {\r\n return autosuggest;\r\n });\r\n}\r\n\r\nasync function _getAutoSuggest(input: AutoSuggestInput, autosuggest: Autosuggestions, ctx: IActionContext): Promise {\r\n const searchCriteria: SearchSuggestionCriteria = {\r\n ProductSearchCriteria: {\r\n SearchCondition: input.searchQuery && input.searchQuery.length > 0 ? input.searchQuery : '',\r\n Context: {\r\n ChannelId: +ctx.requestContext.apiSettings.channelId,\r\n CatalogId: +ctx.requestContext.apiSettings.catalogId\r\n },\r\n Language: ctx.requestContext.locale\r\n },\r\n HitPrefix: input.hitPrefix,\r\n HitSuffix: input.hitSuffix,\r\n SuggestionType: input.suggestionType\r\n };\r\n\r\n const searchSuggestions = await getSearchSuggestionsAsync(\r\n { callerContext: ctx, queryResultSettings: { Paging: { Top: input.topResultsCount } } },\r\n searchCriteria\r\n );\r\n\r\n if (searchSuggestions && searchSuggestions.length > 0) {\r\n // Generate image url\r\n searchSuggestions.map(\r\n (item: SearchSuggestion) =>\r\n (item.ImageUrl = item.ImageUrl ? generateImageUrl(item.ImageUrl, ctx.requestContext.apiSettings) : '')\r\n );\r\n\r\n autosuggest.AllSearchResults = searchSuggestions;\r\n } else {\r\n ctx.telemetry.error(\r\n `[getSearchSuggestionsAction] unable to get availabilites for search with suggestion type ${searchCriteria.SuggestionType}`\r\n );\r\n }\r\n}\r\n\r\nexport const getSearchSuggestionsActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/search/get-auto-suggest-suggestions',\r\n action: >getSearchSuggestionsAction,\r\n input: createInput\r\n});\r\n\r\nexport default getSearchSuggestionsActionDataAction;\r\n","/* eslint-disable security/detect-object-injection */\r\n/* eslint-disable security/detect-non-literal-regexp */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport MsDyn365, { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport { ProductRefiner, ProductRefinerValue, SearchSuggestion } from '@msdyn365-commerce/retail-proxy';\r\nimport { format, getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IMoeSearchData } from '../moe-search.data';\r\nimport { IMoeSearchProps } from '../moe-search.props.autogenerated';\r\n\r\nexport interface ISearchCategorySuggestProps {\r\n config: any;\r\n searchCategorySuggestClass: string;\r\n searchPageURL: string;\r\n searchQsp: string | undefined;\r\n hitPrefix: string;\r\n hitSuffix: string;\r\n autoSuggestProps: IMoeSearchProps;\r\n searchText: string;\r\n searchRefiners: ProductRefiner[] | undefined;\r\n suggestions: SearchSuggestion[] | undefined;\r\n telemetryContent?: ITelemetryContent;\r\n shouldShowFullPath?: boolean;\r\n}\r\n\r\nexport interface ISearchCategoryViewProps {\r\n title: React.ReactNode;\r\n text: React.ReactNode[];\r\n}\r\n\r\nlet payLoad: IPayLoad;\r\n\r\n/**\r\n * CategorySuggestionsComponent.\r\n * @param props\r\n */\r\nexport const CategorySuggestionsComponent = (props: ISearchCategorySuggestProps): ISearchCategoryViewProps | undefined => {\r\n const {\r\n config,\r\n suggestions,\r\n searchText,\r\n autoSuggestProps: {\r\n resources: { categorySuggestionHeadingInMaori }\r\n }\r\n } = props;\r\n\r\n const reactNodes: React.ReactNode[] = [];\r\n payLoad = getPayloadObject('click', props.telemetryContent!, '');\r\n\r\n suggestions?.map(item => {\r\n reactNodes.push(_assembleNode(item, props));\r\n });\r\n\r\n const titleNode = _renderTitle(categorySuggestionHeadingInMaori, searchText, config);\r\n\r\n return { title: titleNode, text: reactNodes };\r\n};\r\n\r\nconst _renderTitle = (categorySuggestionHeading: string, searchText: string, config: any) => {\r\n const categoryAutoSuggestionHeading = categorySuggestionHeading\r\n ? `${format(categorySuggestionHeading, searchText)} ${config.learningAreaName ? config.learningAreaName : 'Ngā Wāhanga Ako'}:`\r\n : `Search \"${searchText}\" in ${config.learningAreaName ? config.learningAreaName : 'Ngā Wāhanga Ako'}:`;\r\n\r\n return
  • {categoryAutoSuggestionHeading}
  • ;\r\n};\r\n\r\nconst _assembleNode = (item: SearchSuggestion, props: ISearchCategorySuggestProps) => {\r\n const { searchText, hitPrefix, hitSuffix, shouldShowFullPath } = props;\r\n // const altText = item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n const splitValue = shouldShowFullPath ? item.Value : item.Value && item.Value.split('|').pop();\r\n const ariaLabel = splitValue\r\n ? splitValue.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '')\r\n : item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n payLoad.contentAction.etext = item.Value;\r\n const attribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n return (\r\n
  • \r\n \r\n {item.ImageUrl && (\r\n \r\n \r\n \r\n )}\r\n {_generateLink(item, searchText, props) && _getHighlightedText(splitValue ? splitValue : '', hitPrefix, hitSuffix)}\r\n \r\n
  • \r\n );\r\n};\r\n\r\nconst _generateLink = (suggestion: SearchSuggestion, searchText: string, props: ISearchCategorySuggestProps): string => {\r\n return suggestion && suggestion.Id ? _getCategoryLink(suggestion.Id, searchText, props) : '';\r\n};\r\n\r\nconst _getCategoryLink = (id: string, searchText: string, props: ISearchCategorySuggestProps): string => {\r\n const { searchPageURL, searchQsp, searchRefiners } = props;\r\n\r\n if (!MsDyn365.isBrowser) {\r\n return '';\r\n }\r\n\r\n const queryUrl = new URL(searchPageURL, window.location.href);\r\n\r\n if (searchQsp && searchText) {\r\n queryUrl.searchParams.set(searchQsp, searchText);\r\n }\r\n\r\n const categoryRefiners = searchRefiners?.find(refiners => {\r\n return refiners.KeyName === 'Category';\r\n });\r\n const refiner = categoryRefiners?.Values?.find(item => {\r\n return item.RefinerRecordId === Number.parseInt(id, 10);\r\n });\r\n\r\n const encodedRefiner = refiner && JSON.stringify(compressRefiners([refiner]));\r\n if (encodedRefiner) {\r\n queryUrl.searchParams.set('refiners', encodedRefiner);\r\n }\r\n\r\n return queryUrl.href;\r\n};\r\n\r\nconst _getHighlightedText = (suggestion: string, hitPrefix: string, hitSuffix: string): JSX.Element => {\r\n const formattedText = suggestion\r\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\r\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n return ;\r\n};\r\n\r\n// TODO: This code is currently duplicated in categoryautosuggest need to either remove one of these files\r\n// or move this code to a common place\r\nconst compressedRefinerKeys = [\r\n 'DataTypeValue',\r\n 'LeftValueBoundString',\r\n 'RefinerRecordId',\r\n 'RefinerSourceValue',\r\n 'RightValueBoundString',\r\n 'UnitText'\r\n];\r\n\r\n/**\r\n * Compressed a list of refiners for use in URLs.\r\n * @param refiners The uncompressed refiners.\r\n */\r\nconst compressRefiners = (refiners: ProductRefinerValue[]) => {\r\n const compressedRefiners: (string | number)[][] = [];\r\n\r\n refiners.forEach(refiner => {\r\n const compressedRefiner: (string | number)[] = [];\r\n compressedRefinerKeys.forEach(refinerKey => {\r\n compressedRefiner.push(refiner[refinerKey]);\r\n });\r\n compressedRefiners.push(compressedRefiner);\r\n });\r\n\r\n return compressedRefiners;\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ISearchFormProps {\r\n hideSearchLabel: boolean | undefined;\r\n isSearchFormExpanded?: boolean | undefined;\r\n disableSubmitSearch: boolean | undefined;\r\n searchTextInput: React.RefObject;\r\n maxChars: number;\r\n searchQsp: string;\r\n searchPlaceholder: any;\r\n query: string;\r\n ariaLabelCancel: string;\r\n ariaLabelSearch: string;\r\n ariaLabelSubmit: string;\r\n handleCancelSearchChange(): void;\r\n handleInputChange(query: string): void;\r\n}\r\n\r\nexport interface ISearchFormViewProps {\r\n input: React.ReactNode;\r\n submitBtn: React.ReactNode;\r\n cancelBtn: React.ReactNode;\r\n}\r\n\r\n/**\r\n * On Input Change functionality.\r\n * @param handleInputChange -Input change function.\r\n * @returns Set updated input value.\r\n */\r\nconst onInputChangeFunction = (handleInputChange: (query: string) => void) => (event: React.ChangeEvent) => {\r\n handleInputChange(event.target.value || '');\r\n};\r\nexport const FormComponent = (props: ISearchFormProps): ISearchFormViewProps => {\r\n const {\r\n searchQsp,\r\n searchPlaceholder,\r\n hideSearchLabel,\r\n searchTextInput,\r\n handleInputChange,\r\n maxChars,\r\n disableSubmitSearch,\r\n handleCancelSearchChange,\r\n query,\r\n ariaLabelCancel,\r\n ariaLabelSearch,\r\n ariaLabelSubmit\r\n } = props;\r\n\r\n const onInputChange = onInputChangeFunction(handleInputChange);\r\n\r\n const inputNode = !hideSearchLabel ? (\r\n \r\n ) : (\r\n \r\n );\r\n\r\n const submitBtnNode = !disableSubmitSearch && \r\n \r\n );\r\n};\r\n","/* eslint-disable security/detect-non-literal-regexp */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { getRichTextHtml, IActionContext, IImageSettings, Image, ITelemetry } from '@msdyn365-commerce/core';\r\nimport { SearchSuggestion } from '@msdyn365-commerce/retail-proxy';\r\nimport { getProductPageUrlSync } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IMoeSearchData } from '../moe-search.data';\r\nimport { IMoeSearchProps } from '../moe-search.props.autogenerated';\r\n\r\nexport interface ISearchProductSuggestProps {\r\n searchProductSuggestClass: string;\r\n searchPageURL: string;\r\n searchQsp: string | undefined;\r\n hitPrefix: string;\r\n hitSuffix: string;\r\n autoSuggestProps: IMoeSearchProps;\r\n searchText: string;\r\n suggestions: SearchSuggestion[] | undefined;\r\n telemetry: ITelemetry;\r\n moduleType: string;\r\n moduleId: string;\r\n telemetryContent?: ITelemetryContent;\r\n preferredLanguage?: string;\r\n}\r\n\r\nexport interface ISearchProductViewProps {\r\n title: React.ReactNode;\r\n items: ISearchProductItemViewProps[];\r\n}\r\n\r\nexport interface ISearchProductItemViewProps {\r\n text: React.ReactNode;\r\n thumbnail: React.ReactNode;\r\n price: React.ReactNode;\r\n LiProduct: INodeProps;\r\n AProduct: INodeProps;\r\n id: string | undefined;\r\n}\r\n\r\nlet payLoad: IPayLoad;\r\nlet telemetryContent: ITelemetryContent | undefined;\r\n\r\n/**\r\n * ProductSuggestionsComponent.\r\n * @param props\r\n */\r\nexport const ProductSuggestionsComponent = (props: ISearchProductSuggestProps): ISearchProductViewProps | undefined => {\r\n const {\r\n suggestions,\r\n hitSuffix,\r\n hitPrefix,\r\n autoSuggestProps: {\r\n context: { actionContext },\r\n resources: { productSuggestionHeadingInMaori, productSuggestionHeading }\r\n },\r\n moduleType,\r\n moduleId,\r\n preferredLanguage\r\n } = props;\r\n const reactNodes: ISearchProductItemViewProps[] = [];\r\n telemetryContent = props.telemetryContent;\r\n payLoad = getPayloadObject('click', props.telemetryContent!, '');\r\n\r\n suggestions?.map(item => {\r\n reactNodes.push(_assembleNode(item, hitPrefix, hitSuffix, actionContext, props, moduleType, moduleId));\r\n });\r\n\r\n const titleNode = _renderTitle(preferredLanguage === 'maori' ? productSuggestionHeadingInMaori : productSuggestionHeading);\r\n\r\n return { title: titleNode, items: reactNodes };\r\n};\r\n\r\nconst _renderTitle = (productSuggestionHeading: string) => {\r\n const productAutoSuggestionHeading = productSuggestionHeading ? productSuggestionHeading : 'Go to resources';\r\n\r\n return
  • {productAutoSuggestionHeading}
  • ;\r\n};\r\n\r\nconst _assembleNode = (\r\n item: SearchSuggestion,\r\n hitPrefix: string,\r\n hitSuffix: string,\r\n actionContext: IActionContext,\r\n props: ISearchProductSuggestProps,\r\n moduleType: string,\r\n moduleId: string\r\n): ISearchProductItemViewProps => {\r\n const altText =\r\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n return {\r\n text: _getHighlightedText(item.Value ? item.Value : '', hitPrefix, hitSuffix),\r\n thumbnail: _renderThumbnail(item, altText ? altText : '', props),\r\n price:\r\n item.Id &&\r\n item.Value3 &&\r\n item.Value3.Value &&\r\n item.Value3.Value.DecimalValue &&\r\n _renderPrice(item.Value3.Value.DecimalValue, item.Value3.Value.DecimalValue, moduleId, moduleType, props),\r\n LiProduct: _getLiWrapper(),\r\n AProduct: _getAWrapper(item, hitPrefix, hitSuffix, actionContext, props),\r\n id: item.Id\r\n };\r\n};\r\n\r\nconst _getLiWrapper = () => {\r\n return {\r\n className: 'msc-autoSuggest__productResults-item',\r\n tag: 'li' as NodeTag\r\n };\r\n};\r\n\r\nconst _getAWrapper = (\r\n item: SearchSuggestion,\r\n hitPrefix: string,\r\n hitSuffix: string,\r\n actionContext: IActionContext,\r\n props: ISearchProductSuggestProps\r\n) => {\r\n const {\r\n autoSuggestProps: { context }\r\n } = props;\r\n const ariaLabel =\r\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n payLoad.contentAction.recid = item.Id;\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const productPrice = context.cultureFormatter.formatCurrency(item.Value3!.Value!.DecimalValue!);\r\n\r\n return {\r\n className: 'msc-autoSuggest__productResults-item',\r\n tag: 'a' as NodeTag,\r\n 'aria-label': `${ariaLabel!} ${productPrice}`,\r\n href: _generateLink(item, hitPrefix, hitSuffix, actionContext),\r\n ...attribute\r\n };\r\n};\r\n\r\nconst _generateLink = (suggestion: SearchSuggestion, hitPrefix: string, hitSuffix: string, actionContext: IActionContext) => {\r\n const formattedLink = (suggestion.Value as string)\r\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\r\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n return suggestion.Value && suggestion.Id\r\n ? getProductPageUrlSync(formattedLink, (suggestion.Id as unknown) as number, actionContext, undefined)\r\n : '';\r\n};\r\n\r\nconst _getHighlightedText = (suggestion: string, hitPrefix: string, hitSuffix: string): JSX.Element => {\r\n const formattedText = suggestion\r\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\r\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst _renderPrice = (\r\n adjustedPrice: number,\r\n basePrice: number,\r\n moduleId: string,\r\n moduleType: string,\r\n props: ISearchProductSuggestProps\r\n): JSX.Element | null => {\r\n const {\r\n autoSuggestProps: { context }\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnail = (suggestion: SearchSuggestion, altText: string, props: ISearchProductSuggestProps): JSX.Element | null => {\r\n const {\r\n autoSuggestProps: {\r\n context: {\r\n request: { gridSettings }\r\n },\r\n config: { imageSettings }\r\n }\r\n } = props;\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n\r\n if (!suggestion || !suggestion.ImageUrl) {\r\n props.telemetry.error('Search suggestion content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=40&h=40&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","/* eslint-disable security/detect-object-injection */\r\n/* eslint-disable security/detect-non-literal-regexp */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { getRichTextHtml, IActionContext, IImageSettings, Image, ITelemetry } from '@msdyn365-commerce/core';\r\nimport { SearchSuggestion } from '@msdyn365-commerce/retail-proxy';\r\nimport { getProductPageUrlSync } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IMoeSearchData } from '../moe-search.data';\r\nimport { IMoeSearchProps } from '../moe-search.props.autogenerated';\r\n\r\nexport interface ISearchCurriculaSuggestProps {\r\n searchCurriculaSuggestClass: string;\r\n searchPageURL: string;\r\n searchQsp: string | undefined;\r\n hitPrefix: string;\r\n hitSuffix: string;\r\n autoSuggestProps: IMoeSearchProps;\r\n searchText: string;\r\n suggestions: SearchSuggestion[] | undefined;\r\n telemetry: ITelemetry;\r\n moduleType: string;\r\n moduleId: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ISearchCurriculaViewProps {\r\n title: React.ReactNode;\r\n items: ISearchCurriculaItemViewProps[];\r\n}\r\n\r\nexport interface ISearchCurriculaItemViewProps {\r\n text: React.ReactNode;\r\n thumbnail: React.ReactNode;\r\n price: React.ReactNode;\r\n LiProduct: INodeProps;\r\n AProduct: INodeProps;\r\n id: string | undefined;\r\n}\r\n\r\nlet payLoad: IPayLoad;\r\nlet telemetryContent: ITelemetryContent | undefined;\r\n\r\n/**\r\n * ProductSuggestionsComponent.\r\n * @param props\r\n */\r\nexport const OtherCurriculaSuggestionsComponent = (props: ISearchCurriculaSuggestProps): ISearchCurriculaViewProps | undefined => {\r\n const {\r\n suggestions,\r\n hitSuffix,\r\n hitPrefix,\r\n autoSuggestProps: {\r\n context: { actionContext },\r\n resources: { otherCurriculaSuggestionHeadingInMaori }\r\n },\r\n moduleType,\r\n moduleId\r\n } = props;\r\n const reactNodes: ISearchCurriculaItemViewProps[] = [];\r\n telemetryContent = props.telemetryContent;\r\n payLoad = getPayloadObject('click', props.telemetryContent!, '');\r\n\r\n suggestions?.map(item => {\r\n reactNodes.push(_assembleNode(item, hitPrefix, hitSuffix, actionContext, props, moduleType, moduleId));\r\n });\r\n\r\n const titleNode = _renderTitle(otherCurriculaSuggestionHeadingInMaori);\r\n\r\n return { title: titleNode, items: reactNodes };\r\n};\r\n\r\nconst _renderTitle = (otherCurriculaSuggestionHeading: string) => {\r\n const productAutoSuggestionHeading = otherCurriculaSuggestionHeading\r\n ? otherCurriculaSuggestionHeading\r\n : 'view results in other curricula:';\r\n\r\n return
  • {productAutoSuggestionHeading}
  • ;\r\n};\r\n\r\nconst _assembleNode = (\r\n item: SearchSuggestion,\r\n hitPrefix: string,\r\n hitSuffix: string,\r\n actionContext: IActionContext,\r\n props: ISearchCurriculaSuggestProps,\r\n moduleType: string,\r\n moduleId: string\r\n): ISearchCurriculaItemViewProps => {\r\n const altText =\r\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n return {\r\n text: _getHighlightedText(item.Value ? item.Value : '', hitPrefix, hitSuffix),\r\n thumbnail: _renderThumbnail(item, altText ? altText : '', props),\r\n price:\r\n item.Id &&\r\n item.Value3 &&\r\n item.Value3.Value &&\r\n item.Value3.Value.DecimalValue &&\r\n _renderPrice(item.Value3.Value.DecimalValue, item.Value3.Value.DecimalValue, moduleId, moduleType, props),\r\n LiProduct: _getLiWrapper(),\r\n AProduct: _getAWrapper(item, hitPrefix, hitSuffix, actionContext, props),\r\n id: item.Id\r\n };\r\n};\r\n\r\nconst _getLiWrapper = () => {\r\n return {\r\n className: 'msc-autoSuggest__productResults-item',\r\n tag: 'li' as NodeTag\r\n };\r\n};\r\n\r\nconst _getAWrapper = (\r\n item: SearchSuggestion,\r\n hitPrefix: string,\r\n hitSuffix: string,\r\n actionContext: IActionContext,\r\n props: ISearchCurriculaSuggestProps\r\n) => {\r\n const {\r\n autoSuggestProps: { context }\r\n } = props;\r\n const ariaLabel =\r\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n payLoad.contentAction.recid = item.Id;\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const productPrice = context.cultureFormatter.formatCurrency(item.Value3!.Value!.DecimalValue!);\r\n let generatedLink = _generateLink(item, hitPrefix, hitSuffix, actionContext);\r\n const index: any = item?.ExtensionProperties?.findIndex(p => p.Key === 'LocaleDomainMappings');\r\n console.log('generated link1', generatedLink);\r\n if (\r\n generatedLink &&\r\n index > -1 &&\r\n item?.ExtensionProperties &&\r\n item?.ExtensionProperties?.length > 0 &&\r\n item?.ExtensionProperties[index]?.Value?.StringValue !== ''\r\n ) {\r\n const constructedFullUrl = new URL(generatedLink, context.request.apiSettings.baseUrl);\r\n constructedFullUrl.searchParams.set('domain', item?.ExtensionProperties[index]?.Value?.StringValue as string);\r\n generatedLink = constructedFullUrl.pathname + constructedFullUrl.search;\r\n console.log('generated link3', generatedLink);\r\n }\r\n console.log('generated link2', generatedLink);\r\n\r\n return {\r\n className: 'msc-autoSuggest__productResults-item',\r\n tag: 'a' as NodeTag,\r\n 'aria-label': `${ariaLabel!} ${productPrice}`,\r\n href: generatedLink,\r\n ...attribute\r\n };\r\n};\r\n\r\nconst _generateLink = (suggestion: SearchSuggestion, hitPrefix: string, hitSuffix: string, actionContext: IActionContext) => {\r\n const formattedLink = (suggestion.Value as string)\r\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\r\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n return suggestion.Value && suggestion.Id\r\n ? getProductPageUrlSync(formattedLink, (suggestion.Id as unknown) as number, actionContext, undefined)\r\n : '';\r\n};\r\n\r\nconst _getHighlightedText = (suggestion: string, hitPrefix: string, hitSuffix: string): JSX.Element => {\r\n const formattedText = suggestion\r\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\r\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst _renderPrice = (\r\n adjustedPrice: number,\r\n basePrice: number,\r\n moduleId: string,\r\n moduleType: string,\r\n props: ISearchCurriculaSuggestProps\r\n): JSX.Element | null => {\r\n const {\r\n autoSuggestProps: { context }\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnail = (suggestion: SearchSuggestion, altText: string, props: ISearchCurriculaSuggestProps): JSX.Element | null => {\r\n const {\r\n autoSuggestProps: {\r\n context: {\r\n request: { gridSettings }\r\n },\r\n config: { imageSettings }\r\n }\r\n } = props;\r\n console.log('Image item in curricula', suggestion);\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n\r\n if (!suggestion || !suggestion.ImageUrl) {\r\n props.telemetry.error('Search suggestion content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=40&h=40&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","/* eslint-disable security/detect-object-injection */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Autosuggestions } from '@msdyn365-commerce/commerce-entities';\r\nimport MsDyn365, { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { ProductRefiner } from '@msdyn365-commerce/retail-proxy';\r\nimport { getProductSearchRefinersAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { createSearchStateInput } from '@msdyn365-commerce-modules/search-utilities';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, KeyCodes } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { debounce } from 'lodash';\r\nimport { Spinner, SpinnerSize } from 'office-ui-fabric-react';\r\nimport * as React from 'react';\r\n\r\nimport getSearchSuggestionsAction, { AutoSuggestInput, SuggestionType } from './actions/get-auto-suggest-suggestions';\r\nimport {\r\n CategorySuggestionsComponent,\r\n FormComponent,\r\n ISearchCategoryViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps,\r\n KeywordSuggestionsComponent,\r\n LabelComponent,\r\n ProductSuggestionsComponent,\r\n OtherCurriculaSuggestionsComponent\r\n} from './components';\r\nimport { IMoeSearchData } from './moe-search.data';\r\nimport { IMoeSearchProps, ISuggestionTypeCriterionData } from './moe-search.props.autogenerated';\r\nimport { getToggleLang, getUserPreferredLanguage, getUserPrefLang } from '../../utilities/language-change';\r\nimport { KWR, SEARCH } from '../../utilities/constants';\r\n\r\nexport interface ISearchState {\r\n isSearchFormExpanded: boolean;\r\n searchText: string;\r\n searchKeywordSuggestClass: string;\r\n searchProductSuggestClass: string;\r\n searchCategorySuggestClass: string;\r\n suggestions: Autosuggestions | undefined;\r\n searchRefiners?: ProductRefiner[] | undefined;\r\n autoSuggestAriaLabel: string;\r\n isInitialState: boolean;\r\n isLoadingAutoSuggest?: boolean;\r\n searchCurriculaSuggestClass: string;\r\n}\r\n\r\nexport interface ISearchViewProps extends IMoeSearchProps {\r\n Search: IModuleProps;\r\n AutoSuggestAriaLabel: INodeProps;\r\n AutoSuggestAriaLabelText: string;\r\n searchText: string;\r\n AutoSuggest: INodeProps;\r\n KeywordSuggest: INodeProps;\r\n ProductSuggest: INodeProps;\r\n CategorySuggest: INodeProps;\r\n SearchForm: INodeProps;\r\n FormWrapper: INodeProps;\r\n UlKeyword: INodeProps;\r\n UlProduct: INodeProps;\r\n UlCategory: INodeProps;\r\n label: React.ReactNode;\r\n form: React.ReactNode;\r\n autosuggestKeyword?: ISearchKeywordViewProps;\r\n autosuggestProduct?: ISearchProductViewProps;\r\n autosuggestCategory?: ISearchCategoryViewProps;\r\n autosuggestOtherCurricula?: any;\r\n callbacks: {\r\n handleCancelSearchChange(): void;\r\n };\r\n isSearchFormExpanded: boolean;\r\n isLoadingAutoSuggest?: boolean;\r\n isLoadingNode?: React.ReactNode;\r\n CurriculaSuggest?: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * Search module.\r\n * @extends {React.Component, ISearchState>}\r\n */\r\nclass Search extends React.Component, ISearchState> {\r\n private readonly searchTextInput: React.RefObject;\r\n\r\n private readonly searchCollapsedLabel: React.RefObject;\r\n\r\n private readonly formReference: React.RefObject;\r\n\r\n private readonly maxChars: number;\r\n\r\n private readonly inputSuggestionType?: ISuggestionTypeCriterionData[];\r\n\r\n private readonly topResultsCount?: number;\r\n\r\n private readonly hitPrefix: string = '{';\r\n\r\n private readonly hitSuffix: string = '}';\r\n\r\n private readonly waitTime: number = 500;\r\n\r\n private readonly autoSuggestResultScreenReaderDiv: React.RefObject;\r\n\r\n private readonly autoSuggestResultDiv: React.RefObject;\r\n\r\n private readonly searchFormClass: string;\r\n\r\n private readonly searchLabelClass: string;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n // @ts-expect-error\r\n private cancellabelDebounce: debounce;\r\n\r\n constructor(props: IMoeSearchProps) {\r\n super(props);\r\n this.searchTextInput = React.createRef();\r\n this.searchCollapsedLabel = React.createRef();\r\n this.autoSuggestResultScreenReaderDiv = React.createRef();\r\n this.autoSuggestResultDiv = React.createRef();\r\n this.formReference = React.createRef();\r\n this.state = {\r\n isSearchFormExpanded: false,\r\n searchText: '',\r\n searchKeywordSuggestClass: 'ms-search__autoSuggest__keyword',\r\n searchProductSuggestClass: 'ms-search__autoSuggest__product',\r\n searchCategorySuggestClass: 'ms-search__autoSuggest__category',\r\n searchCurriculaSuggestClass: 'ms-search__autoSuggest__curricula',\r\n suggestions: undefined,\r\n searchRefiners: undefined,\r\n autoSuggestAriaLabel: '',\r\n isInitialState: true,\r\n isLoadingAutoSuggest: false\r\n };\r\n this.maxChars =\r\n (this.props.context &&\r\n this.props.context.app &&\r\n this.props.context.app.config &&\r\n this.props.context.app.config.searchInputMaxLength) ||\r\n 100;\r\n this.inputSuggestionType = this.props.config && this.props.config.suggestionTypeCriterion;\r\n this.topResultsCount = this.props.config && this.props.config.topResultsCount ? this.props.config.topResultsCount : 5;\r\n this.searchFormClass = 'ms-search__form';\r\n this.searchLabelClass = 'ms-search__label';\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n document.body && document.body.addEventListener('mousedown', this._focusOutTarget);\r\n window && window.addEventListener('keyup', this._keyup);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.body.removeEventListener('mousedown', this._focusOutTarget, false);\r\n window && window.removeEventListener('keyup', this._keyup, false);\r\n }\r\n\r\n public componentDidUpdate(): void {\r\n const {\r\n config: { hideSearchLabel }\r\n } = this.props;\r\n const { isSearchFormExpanded, isInitialState } = this.state;\r\n\r\n if (!this.props.context.request.params.isEditor) {\r\n if (!hideSearchLabel && isSearchFormExpanded) {\r\n this.searchTextInput && this.searchTextInput.current && this.searchTextInput.current.focus();\r\n } else if (!isInitialState) {\r\n this.searchCollapsedLabel && this.searchCollapsedLabel.current && this.searchCollapsedLabel.current.focus();\r\n }\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IMoeSearchProps, nextState: ISearchState): boolean {\r\n if (this.state === nextState && this.props === nextProps) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // eslint-disable-next-line complexity -- ignore complexity.\r\n public render(): JSX.Element {\r\n const {\r\n context,\r\n resources: {\r\n searchtextInMaori,\r\n searchLabelArialLabelInMaori,\r\n cancelBtnAriaLabelInMaori,\r\n searchBtnAriaLabelInMaori,\r\n submitBtnAriaLabelInMaori\r\n },\r\n config: { hideSearchLabel, disableSubmitSearch, searchplaceholderText, shouldShowFullCategoryPath, className = '', siteName }\r\n } = this.props;\r\n\r\n // Identifying Language\r\n const toggleLang = getToggleLang(context);\r\n const userPrefLang = getUserPrefLang(context.request.user.customerAccountNumber as any, context);\r\n const preferredLanguage: any = getUserPreferredLanguage(siteName as any, SEARCH, userPrefLang, toggleLang, context);\r\n\r\n const {\r\n isSearchFormExpanded,\r\n searchText,\r\n searchKeywordSuggestClass,\r\n searchProductSuggestClass,\r\n searchCategorySuggestClass,\r\n suggestions,\r\n searchRefiners,\r\n isLoadingAutoSuggest,\r\n searchCurriculaSuggestClass\r\n } = this.state;\r\n\r\n const searchQsp = (context && context.app && context.app.config && context.app.config.searchQueryStringParameter) || 'q';\r\n const searchPageURL = getUrlSync('search', context && context.actionContext) || '';\r\n const searchURL = this._appendQueryParams(searchPageURL, searchText, searchQsp);\r\n let searchPlaceholder: string | undefined;\r\n\r\n if (preferredLanguage !== 'maori') {\r\n searchPlaceholder = searchplaceholderText && searchplaceholderText.length > 0 ? searchplaceholderText : ' ';\r\n } else {\r\n searchPlaceholder = searchplaceholderText && searchplaceholderText.length > 0 ? searchplaceholderText : ' ';\r\n }\r\n\r\n if (!searchPlaceholder) {\r\n searchPlaceholder = searchplaceholderText;\r\n }\r\n\r\n const keywordSuggestions =\r\n suggestions &&\r\n suggestions.AllSearchResults &&\r\n suggestions.AllSearchResults.filter(\r\n i => i.SuggestionType === SuggestionType.Keyword || i.SuggestionType === SuggestionType.None\r\n );\r\n const productSuggestions =\r\n suggestions &&\r\n suggestions.AllSearchResults &&\r\n suggestions.AllSearchResults.filter(i => {\r\n if (i.SuggestionType === SuggestionType.Product) {\r\n const index: any = i.ExtensionProperties?.findIndex(p => p.Key === 'ChannelId');\r\n if (\r\n index > -1 &&\r\n i &&\r\n i?.ExtensionProperties &&\r\n i?.ExtensionProperties?.length > 0 &&\r\n i?.ExtensionProperties[index]?.Value?.LongValue !== 0\r\n ) {\r\n return i?.ExtensionProperties[index]?.Value?.LongValue === this.props.context.request.apiSettings.channelId;\r\n }\r\n }\r\n return i.SuggestionType === SuggestionType.Product;\r\n });\r\n const categorySuggestions =\r\n suggestions &&\r\n suggestions.AllSearchResults &&\r\n suggestions.AllSearchResults.filter(i => i.SuggestionType === SuggestionType.Category);\r\n const otherCurriculaSuggestions =\r\n suggestions &&\r\n suggestions.AllSearchResults &&\r\n suggestions.AllSearchResults.filter(i => {\r\n if (i.SuggestionType === SuggestionType.Product) {\r\n const index: any = i.ExtensionProperties?.findIndex(p => p.Key === 'ChannelId');\r\n if (\r\n index > -1 &&\r\n i &&\r\n i?.ExtensionProperties &&\r\n i?.ExtensionProperties?.length > 0 &&\r\n i?.ExtensionProperties[index]?.Value?.LongValue !== 0\r\n ) {\r\n return i?.ExtensionProperties[index]?.Value?.LongValue !== this.props.context.request.apiSettings.channelId;\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n const viewProps: ISearchViewProps = {\r\n ...(this.props as IMoeSearchProps),\r\n\r\n Search: {\r\n moduleProps: this.props,\r\n className: `${classnames('ms-search', className)} ${disableSubmitSearch ? 'no-submit' : 'with-submit'}`\r\n },\r\n AutoSuggestAriaLabel: {\r\n tag: 'div',\r\n className: 'msc-autoSuggest__screen-reader',\r\n 'aria-live': 'assertive',\r\n ref: this.autoSuggestResultScreenReaderDiv\r\n },\r\n AutoSuggestAriaLabelText: this.state.autoSuggestAriaLabel,\r\n searchText: this.state.searchText,\r\n AutoSuggest: {\r\n ref: this.autoSuggestResultDiv,\r\n className: 'ms-search__autoSuggest'\r\n },\r\n KeywordSuggest: {\r\n className: searchKeywordSuggestClass\r\n },\r\n ProductSuggest: {\r\n className: searchProductSuggestClass\r\n },\r\n CategorySuggest: {\r\n className: searchCategorySuggestClass\r\n },\r\n CurriculaSuggest: {\r\n className: searchCurriculaSuggestClass\r\n },\r\n SearchForm: {\r\n className: `${this.searchFormClass} ${isSearchFormExpanded ? 'bx-hide' : 'bx-hide'}`\r\n },\r\n FormWrapper: {\r\n tag: 'form',\r\n ref: this.formReference,\r\n className: 'ms-search__searchForm',\r\n 'aria-label': 'Search',\r\n name: 'searchForm',\r\n role: 'search',\r\n action: searchURL,\r\n autoComplete: 'off',\r\n onSubmit: this._handleSubmit\r\n },\r\n UlKeyword: {\r\n tag: 'ul',\r\n className: classnames('msc-autoSuggest__keywordResults-items', className)\r\n },\r\n UlProduct: {\r\n tag: 'ul',\r\n className: classnames('msc-autoSuggest__productResults-items', className)\r\n },\r\n UlCategory: {\r\n tag: 'ul',\r\n className: classnames('msc-autoSuggest__categoryResults-items', className)\r\n },\r\n label: LabelComponent({\r\n isSearchFormExpanded,\r\n searchLabelClass: `${this.searchLabelClass} ${isSearchFormExpanded ? 'bx-show' : 'bx-show'}`,\r\n searchtextInMaori,\r\n searchLabelArialLabelInMaori,\r\n searchCollapsedLabel: this.searchCollapsedLabel,\r\n hideSearchLabel,\r\n handleCancelSearchChange: this._handleCancelSearchChange,\r\n telemetryContent: this.telemetryContent\r\n }),\r\n form: FormComponent({\r\n ariaLabelCancel: cancelBtnAriaLabelInMaori,\r\n ariaLabelSearch: searchBtnAriaLabelInMaori,\r\n ariaLabelSubmit: submitBtnAriaLabelInMaori,\r\n hideSearchLabel,\r\n searchTextInput: this.searchTextInput,\r\n disableSubmitSearch,\r\n handleInputChange: this._handleInputChange,\r\n handleCancelSearchChange: this._handleCancelSearchChange,\r\n maxChars: this.maxChars,\r\n searchQsp,\r\n searchPlaceholder,\r\n query: searchText\r\n }),\r\n autosuggestKeyword:\r\n searchText &&\r\n searchText.length > 0 &&\r\n (isLoadingAutoSuggest || (keywordSuggestions && ArrayExtensions.hasElements(keywordSuggestions)))\r\n ? KeywordSuggestionsComponent({\r\n searchKeywordSuggestClass,\r\n searchPageURL,\r\n searchQsp,\r\n hitPrefix: this.hitPrefix,\r\n hitSuffix: this.hitSuffix,\r\n autoSuggestProps: this.props,\r\n searchText,\r\n suggestions: keywordSuggestions,\r\n telemetryContent: this.telemetryContent\r\n })\r\n : undefined,\r\n autosuggestProduct:\r\n searchText &&\r\n searchText.length > 0 &&\r\n (isLoadingAutoSuggest || (productSuggestions && ArrayExtensions.hasElements(productSuggestions)))\r\n ? ProductSuggestionsComponent({\r\n searchProductSuggestClass,\r\n searchPageURL,\r\n searchQsp,\r\n hitPrefix: this.hitPrefix,\r\n hitSuffix: this.hitSuffix,\r\n autoSuggestProps: this.props,\r\n searchText,\r\n suggestions: productSuggestions,\r\n telemetry: this.props.telemetry,\r\n moduleType: this.props.typeName,\r\n moduleId: this.props.id,\r\n telemetryContent: this.telemetryContent,\r\n preferredLanguage: preferredLanguage\r\n })\r\n : undefined,\r\n autosuggestCategory:\r\n searchText &&\r\n searchText.length > 0 &&\r\n (isLoadingAutoSuggest || (categorySuggestions && ArrayExtensions.hasElements(categorySuggestions)))\r\n ? CategorySuggestionsComponent({\r\n config: this.props.config,\r\n searchCategorySuggestClass,\r\n searchPageURL,\r\n searchQsp,\r\n hitPrefix: this.hitPrefix,\r\n hitSuffix: this.hitSuffix,\r\n autoSuggestProps: this.props,\r\n searchText,\r\n suggestions: categorySuggestions,\r\n searchRefiners,\r\n telemetryContent: this.telemetryContent,\r\n shouldShowFullPath: shouldShowFullCategoryPath\r\n })\r\n : undefined,\r\n autosuggestOtherCurricula:\r\n searchText &&\r\n searchText.length > 0 &&\r\n (isLoadingAutoSuggest || (otherCurriculaSuggestions && ArrayExtensions.hasElements(otherCurriculaSuggestions)))\r\n ? OtherCurriculaSuggestionsComponent({\r\n searchCurriculaSuggestClass,\r\n searchPageURL,\r\n searchQsp,\r\n hitPrefix: this.hitPrefix,\r\n hitSuffix: this.hitSuffix,\r\n autoSuggestProps: this.props,\r\n searchText,\r\n suggestions: otherCurriculaSuggestions,\r\n telemetry: this.props.telemetry,\r\n moduleType: this.props.typeName,\r\n moduleId: this.props.id,\r\n telemetryContent: this.telemetryContent\r\n })\r\n : undefined,\r\n callbacks: {\r\n handleCancelSearchChange: this._handleCancelSearchChange\r\n },\r\n isSearchFormExpanded: this.state.isSearchFormExpanded,\r\n isLoadingAutoSuggest,\r\n isLoadingNode: this._isLoadingNode()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Function to create the ReactNode for loading Autosuggest result.\r\n * @returns ReachNode for loading Autosuggest result.\r\n */\r\n private readonly _isLoadingNode = (): React.ReactNode => {\r\n const { context } = this.props;\r\n\r\n // Identifying Language\r\n const toggleLang = getToggleLang(context);\r\n const userPrefLang = getUserPrefLang(context.request.user.customerAccountNumber as any, context);\r\n const preferredLanguage: any = getUserPreferredLanguage(KWR, SEARCH, userPrefLang, toggleLang, context);\r\n\r\n const loadingText =\r\n preferredLanguage === 'maori'\r\n ? this.props.resources.autoSuggestResultLoadingMessageInMaori\r\n : this.props.resources.autoSuggestResultLoadingMessage;\r\n return ;\r\n };\r\n\r\n private readonly _focusOutTarget = (e: any): void => {\r\n const { suggestions } = this.state;\r\n\r\n if (suggestions && suggestions.AllSearchResults && e.target.closest('.ms-search') === null) {\r\n this._clearAutoSuggestState();\r\n }\r\n };\r\n\r\n private readonly _keyup = (e: KeyboardEvent): void => {\r\n const { suggestions } = this.state;\r\n\r\n if (suggestions && suggestions.AllSearchResults && e.keyCode === KeyCodes.Escape) {\r\n this._clearAutoSuggestState();\r\n } else if (this.state.isSearchFormExpanded && e.keyCode === KeyCodes.Escape) {\r\n if (this.state.isSearchFormExpanded) {\r\n this.setState({ isSearchFormExpanded: false });\r\n }\r\n }\r\n\r\n if (\r\n !(\r\n (this.formReference.current && this.formReference.current.contains((e.target as unknown) as Node)) ||\r\n (this.autoSuggestResultDiv.current && this.autoSuggestResultDiv.current.contains((e.target as unknown) as Node))\r\n )\r\n ) {\r\n if (suggestions && suggestions.AllSearchResults) {\r\n this._clearAutoSuggestState();\r\n }\r\n\r\n if (this.state.isSearchFormExpanded) {\r\n this.setState({ isSearchFormExpanded: false });\r\n }\r\n }\r\n };\r\n\r\n private readonly _clearAutoSuggestState = (): void => {\r\n const {\r\n context: { actionContext },\r\n data: { searchState }\r\n } = this.props;\r\n\r\n if (this.searchTextInput.current && this.searchTextInput.current.value.length > 0) {\r\n searchState.searchText = '';\r\n searchState.defaultBasicSearchUrl = '';\r\n searchState.searchQueryStringParameter = '';\r\n actionContext ? actionContext.update(createSearchStateInput(searchState), searchState) : null;\r\n this.searchTextInput.current.value = '';\r\n }\r\n\r\n this.setState({ searchText: '', suggestions: undefined, searchRefiners: undefined });\r\n };\r\n\r\n private readonly _handleInputChange = (query: string): void => {\r\n if (!query || query.length <= this.maxChars) {\r\n this.setState({ searchText: query });\r\n }\r\n\r\n if (this.cancellabelDebounce) {\r\n this.cancellabelDebounce.cancel();\r\n }\r\n\r\n const {\r\n telemetry,\r\n context,\r\n data: { searchState }\r\n } = this.props;\r\n\r\n if (context) {\r\n if (query && query.length > 0) {\r\n if (query.length > this.maxChars) {\r\n return;\r\n }\r\n\r\n this.cancellabelDebounce = debounce(() => {\r\n this.setState({ isLoadingAutoSuggest: true });\r\n getSearchSuggestionsAction(\r\n new AutoSuggestInput(\r\n query,\r\n this.topResultsCount,\r\n this._getSuggestionType(this.inputSuggestionType),\r\n this.hitPrefix,\r\n this.hitSuffix\r\n ),\r\n context.actionContext\r\n )\r\n .then(results => {\r\n console.log('suggestions in search', results);\r\n this._getSearchRefiners(query)\r\n .then(refiners => {\r\n this.setState({\r\n suggestions: results,\r\n searchRefiners: refiners,\r\n autoSuggestAriaLabel: this._setAutoSuggestResultCount(results),\r\n isLoadingAutoSuggest: false\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n suggestions: results,\r\n searchRefiners: undefined,\r\n autoSuggestAriaLabel: this._setAutoSuggestResultCount(results)\r\n });\r\n telemetry.exception(error);\r\n telemetry.debug('Unable to get refiners results');\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n suggestions: undefined,\r\n searchRefiners: undefined,\r\n autoSuggestAriaLabel: this._setAutoSuggestResultCount()\r\n });\r\n telemetry.exception(error);\r\n telemetry.debug('Unable to get auto suggest results');\r\n });\r\n }, this.waitTime);\r\n\r\n setTimeout(() => {\r\n this.cancellabelDebounce();\r\n }, 0);\r\n\r\n searchState.searchText = query;\r\n } else {\r\n this.setState({ suggestions: undefined, searchRefiners: undefined });\r\n searchState.searchText = '';\r\n }\r\n context.actionContext.update(createSearchStateInput(searchState), searchState);\r\n }\r\n };\r\n\r\n private readonly _getSuggestionType = (suggestionTypes?: ISuggestionTypeCriterionData[]): string => {\r\n if (suggestionTypes && suggestionTypes.length > 0) {\r\n const distinctSuggestionTypes: string[] = [];\r\n suggestionTypes &&\r\n suggestionTypes.forEach((suggestionTypeItem, index) => {\r\n suggestionTypeItem.SuggestionType &&\r\n distinctSuggestionTypes.push(\r\n suggestionTypeItem.SuggestionType.charAt(0).toUpperCase() + suggestionTypeItem.SuggestionType.slice(1)\r\n );\r\n });\r\n return distinctSuggestionTypes.join(',');\r\n }\r\n return 'Keyword, Product, ScopedCategory';\r\n };\r\n\r\n private async _getSearchRefiners(searchText: string): Promise {\r\n const { actionContext: ctx } = this.props.context;\r\n return getProductSearchRefinersAsync(\r\n { callerContext: ctx },\r\n {\r\n SearchCondition: searchText,\r\n Context: {\r\n ChannelId: +ctx.requestContext.apiSettings.channelId,\r\n CatalogId: +ctx.requestContext.apiSettings.catalogId\r\n },\r\n Language: ctx.requestContext.locale\r\n }\r\n );\r\n }\r\n\r\n private readonly _handleSubmit = (\r\n e: React.MouseEvent | React.KeyboardEvent | React.FormEvent\r\n ): void => {\r\n const {\r\n config: { disableSubmitSearch },\r\n context: {\r\n actionContext,\r\n app: {\r\n config: { searchQueryStringParameter }\r\n }\r\n }\r\n } = this.props;\r\n\r\n const query = this.searchTextInput.current && this.searchTextInput.current.value;\r\n e.preventDefault();\r\n\r\n if (!query || (query && query.length === 0) || disableSubmitSearch) {\r\n this.searchTextInput && this.searchTextInput.current && this.searchTextInput.current.focus();\r\n } else {\r\n const searchQsp = searchQueryStringParameter || 'q';\r\n const searchURL = this._appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\r\n document.location.href = searchURL;\r\n }\r\n };\r\n\r\n private readonly _handleCancelSearchChange = (): void => {\r\n const { isSearchFormExpanded, suggestions } = this.state;\r\n\r\n if (!isSearchFormExpanded) {\r\n this.setState({\r\n isSearchFormExpanded: true,\r\n searchText: '',\r\n isInitialState: false\r\n });\r\n } else {\r\n if (suggestions && suggestions.AllSearchResults) {\r\n this._clearAutoSuggestState();\r\n }\r\n\r\n this.setState({ isSearchFormExpanded: false });\r\n }\r\n };\r\n\r\n private readonly _appendQueryParams = (route: string, query: string, qsp: string): string => {\r\n if (!MsDyn365.isBrowser) {\r\n return '';\r\n }\r\n\r\n const queryUrl = new URL(route, window.location.href);\r\n if (qsp && query) {\r\n queryUrl.searchParams.set(qsp, query);\r\n }\r\n\r\n return queryUrl.href;\r\n };\r\n\r\n private readonly _setAutoSuggestResultCount = (result?: Autosuggestions) => {\r\n if (this.autoSuggestResultScreenReaderDiv.current !== null) {\r\n const ariaLiveRegion = this.autoSuggestResultScreenReaderDiv.current;\r\n const suggestResultString = this.props.resources.autoSuggestFoundMessageInMaori;\r\n const emptyResultString = this.props.resources.noAutoSuggestionMessageInMaori;\r\n ariaLiveRegion.innerText =\r\n result && result.AllSearchResults && result.AllSearchResults.length > 0 ? suggestResultString : emptyResultString;\r\n ariaLiveRegion.setAttribute('aria-live', 'assertive');\r\n return ariaLiveRegion.innerText;\r\n }\r\n return '';\r\n };\r\n}\r\n\r\nexport default Search;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n// import { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from './components';\r\nimport { ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from './components';\r\nimport { ISearchViewProps } from './moe-search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n // CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n // UlCategory,\r\n form,\r\n // autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n autosuggestOtherCurricula\r\n // CurriculaSuggest\r\n } = props;\r\n\r\n console.log('autosuggestOtherCurricula', autosuggestOtherCurricula);\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct, isLoadingAutoSuggest, isLoadingNode)}\r\n {/* {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)} */}\r\n {/* {_renderCurriculaSuggestions(CurriculaSuggest, UlProduct, autosuggestOtherCurricula, isLoadingAutoSuggest, isLoadingNode)} */}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.input}\r\n {form.cancelBtn}\r\n {form.submitBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {/* {item.price} */}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\n// const _renderCategorySuggestions = (\r\n// CategorySuggest: INodeProps,\r\n// UlCategory: INodeProps,\r\n// categorySuggestions?: ISearchCategoryViewProps,\r\n// isLoadingAutoSuggest?: boolean,\r\n// isLoadingNode?: React.ReactNode\r\n// ) => {\r\n// return (\r\n// categorySuggestions && (\r\n// \r\n// \r\n// {categorySuggestions.title}\r\n// {isLoadingAutoSuggest && isLoadingNode}\r\n// {!isLoadingAutoSuggest &&\r\n// categorySuggestions.text.map(text => {\r\n// return text;\r\n// })}\r\n// \r\n// \r\n// )\r\n// );\r\n// };\r\n\r\n// const _renderCurriculaSuggestions = (\r\n// CurriculaSuggest: any,\r\n// UlProduct: INodeProps,\r\n// curriculaSuggestions?: ISearchProductViewProps,\r\n// isLoadingAutoSuggest?: boolean,\r\n// isLoadingNode?: React.ReactNode\r\n// ) => {\r\n// return (\r\n// curriculaSuggestions && (\r\n// \r\n// \r\n// {curriculaSuggestions.title}\r\n// {isLoadingAutoSuggest && isLoadingNode}\r\n// {!isLoadingAutoSuggest &&\r\n// curriculaSuggestions.items.map((item, index) => {\r\n// return (\r\n// \r\n// \r\n// {item.thumbnail}\r\n// {item.text}\r\n// {/* {item.price} */}\r\n// \r\n// \r\n// );\r\n// })}\r\n// \r\n// \r\n// )\r\n// );\r\n// };\r\n\r\nexport default SearchView;\r\n","import { IMoeAddtocollectionResources } from '../modules/moe-addtocollection/moe-addtocollection.props.autogenerated';\r\n\r\n// Language values\r\nexport const ENGLISH_LANG = 'english';\r\nexport const MAORI_LANG = 'maori';\r\nexport const ENGLISH_LANG_CODE = 'en-au';\r\nexport const MAORI_LANG_CODE = 'en-nz';\r\nexport const ENGLISH_OTHER_LANG_CODE = 'en-nz';\r\nexport const CUST_MAORI_LANG_CODE = 'mi-nz';\r\nexport const AXE_MAORI_LANG_CODE = 'mi-nz'; // Language code used for Maori for assistive technologies like screen reader\r\n\r\n// Modules or page values\r\nexport const ERROR_OR_NOTIFICATION = 'ERROR_OR_NOTIFICATION';\r\nexport const HEADER_FOOTER = 'HEADER_FOOTER';\r\nexport const NAVIGATION = 'NAVIGATION';\r\nexport const HOME_PAGE = 'HOME_PAGE';\r\nexport const LANDING_PAGE = 'LANDING_PAGE';\r\nexport const METADATA = 'METADATA';\r\nexport const SOCIAL_SHARE = 'SOCIAL_SHARE';\r\nexport const MY_PROFILE = 'MY_PROFILE';\r\nexport const DOWNLOAD_KETE = 'DOWNLOAD_KETE';\r\nexport const COLLECTIONS = 'COLLECTIONS';\r\nexport const ADD_TO_KETE = 'ADD_TO_KETE';\r\nexport const SEARCH = 'SEARCH';\r\nexport const ACTION_BUTTONS = 'ACTION_BUTTONS';\r\nexport const COLLECTIONS_SITE_LANGUAGE = 'COLLECTIONS_SITE_LANGUAGE';\r\nexport const ADD_TO_KETE_SITE_LANGUAGE = 'ADD_TO_KETE_SITE_LANGUAGE';\r\nexport const DOWNLOAD_KETE_SITE_LANGUAGE = 'DOWNLOAD_KETE_SITE_LANGUAGE';\r\nexport const SEARCH_SITE_LANGUAGE = 'SEARCH_SITE_LANGUAGE';\r\nexport const VIDEO_PLAYER = 'VIDEO_PLAYER';\r\n\r\n// Site Names\r\nexport const OCH = 'och';\r\nexport const TWK = 'twk';\r\nexport const KWR = 'kwr';\r\nexport const KOH = 'koh';\r\nexport const NZC = 'nzc';\r\n\r\n// site toggles\r\nexport const MAORI_TOGGLE_PREFIX = 'mi';\r\nexport const ENGLISH_TOGGLE_PREFIX = '/mi/';\r\n\r\n// Add to collection - resources values\r\nexport const ADD_TO_COLLECTION_RESOURCES: IMoeAddtocollectionResources = {\r\n resourceKey: 'resource value',\r\n flipperNext: 'Next',\r\n flipperPrevious: 'Previous',\r\n unknownError: 'Unexpected error occured. Please try again later.',\r\n unknownErrorInMaori: 'I puta he raru. Me whakamātau anō',\r\n emptyCollection: 'Collection is not available. Please check and try again.',\r\n emptyCollectionInMaori: 'Kāre te kohinga i te wātea. Me taki, ka mahi anō',\r\n emptyCollections: 'no collections are available at this moment',\r\n emptyCollectionsInMaori: 'kāre he kohinga e wātea ana i tēnei wā ',\r\n duplicateName: 'Same collection name already exists. Please try with different name.',\r\n duplicateNameInMaori: 'Kua tau kē tēnei tapanga. Whakamahia he ingoa kē.',\r\n duplicateResource: 'Same resource already exists in the collection.',\r\n duplicateResourceInMaori: 'Kua uru kē tēnā rauemi ki te kohinga',\r\n unAuthenticated: 'User is not authenticated. Please login create collection',\r\n unAuthenticatedInMaori: 'Kāre anō te kaiwhakamahi kia motuhēhēhia. Takiuru mai ki te waihanga kohinga',\r\n noAccountNumber: 'Customer account number missing. Please logout and login again.',\r\n noAccountNumberInMaori: 'Kāre he nama pūkete kiritaki. Me takiputa, ka takiuru mai anō',\r\n networkOffline: 'Internet is offline or it is very slow. Please check your internet connection.',\r\n networkOfflineInMaori: 'Kua weto te ipurangi, he pōturi rānei. Tirohia tō hononga ipurangi.',\r\n exceededCollectionNameLimit: 'Collection name should be less than 25 characters',\r\n exceededCollectionNameLimitInMaori: 'Kia iti iho i te 25 ngā pūāhua o te ingoa o tō kohinga',\r\n noEmptyCollectionSharing: 'Empty collection cannot be shared',\r\n noEmptyCollectionSharingInMaori: 'Kāre e taea te tuari kohinga piako ',\r\n createCOllection: 'Collection has been created successfully.',\r\n createCOllectionInMaori: 'Kua waihangatia he kohinga',\r\n addResource: 'Resource has been added to the collection successfully.',\r\n addResourceInMaori: 'Kua tāpirihia te rauemi ki te kohinga',\r\n updateCollection: 'Collection was updated successfully.',\r\n updateCollectionInMaori: 'Previous',\r\n updateCollectionName: 'Collection name has been updated successfully.',\r\n updateCollectionNameInMaori: 'Kua whakahoutia te ingoa o te kohinga',\r\n deleteCollection: 'Collection was deleted successfully.',\r\n deleteCollectionInMaori: 'Kua mukua te kohinga',\r\n deleteProduct: 'Product was deleted successfully from the collection.',\r\n deleteProductInMaori: 'Kua mukua te hua mai i te kohinga',\r\n notLoggedIn: 'Not logged in yet? Please login to use the collections',\r\n notLoggedInInMaori: 'Kāre anō kia takiuru mai? Me takiuru mai ki te whakamahi i ngā kohinga',\r\n addToCollectionText: 'Add to Collection',\r\n addToCollectionTextInMaori: 'Tāpirihia ki te kohinga',\r\n heyText: 'Hey',\r\n heyTextInMaori: 'Kia ora',\r\n addNewCollection: 'please click on + icon to create new collection',\r\n addNewCollectionInMaori: 'tēnā pāwhiria te atahanga + ki te hanga kohinga hou',\r\n newCollectionText: 'New Collection',\r\n newCollectionTextInMaori: 'He kohinga hou',\r\n createCollectionText: 'Click to create a collection',\r\n createCollectionTextInMaori: 'Pāwhiri ki te waihanga kohinga',\r\n closeText: 'Close',\r\n closeTextInMaori: 'Kati',\r\n selectResourcesHoverText: 'Please select a resource to enable the button',\r\n selectResourcesHoverTextInMaori: 'Tīpakohia koa he rauemi hei whakahohe i te paatene',\r\n createNewCollectionText: 'createNewCollectionText',\r\n createNewCollectionTextInMaori: 'hanga kete hou'\r\n};\r\n\r\n/*\r\n Item: Development environment setup for Language preference\r\n Usage: Can be used to set the language toggle and language preference values while developing and maintaining in future\r\n Caution: Don't change and push this file. Push this file to git only if necessary\r\n Values (DEVELOPMENT_LANGUAGE_TOGGLE, DEVELOPMENT_LANGUAGE_PREFERENCE): should be only 'english' or 'maori'\r\n Values (DEVELOPMENT_SITE_NAME): OCH or TWK or KWR or KOH or NZC\r\n*/\r\nexport const DEVELOPMENT_LANGUAGE_TOGGLE = 'english';\r\nexport const DEVELOPMENT_LANGUAGE_PREFERENCE = 'maori';\r\nexport const DEVELOPMENT_SITE_NAME = NZC;\r\n","/* eslint-disable security/detect-object-injection */\r\nimport {\r\n ENGLISH_LANG,\r\n MAORI_LANG,\r\n MAORI_LANG_CODE,\r\n ERROR_OR_NOTIFICATION,\r\n ADD_TO_KETE,\r\n COLLECTIONS,\r\n DOWNLOAD_KETE,\r\n SEARCH,\r\n HEADER_FOOTER,\r\n NAVIGATION,\r\n HOME_PAGE,\r\n LANDING_PAGE,\r\n OCH,\r\n TWK,\r\n KWR,\r\n KOH,\r\n NZC,\r\n METADATA,\r\n SOCIAL_SHARE,\r\n MY_PROFILE,\r\n ACTION_BUTTONS,\r\n COLLECTIONS_SITE_LANGUAGE,\r\n ADD_TO_KETE_SITE_LANGUAGE,\r\n DOWNLOAD_KETE_SITE_LANGUAGE,\r\n SEARCH_SITE_LANGUAGE,\r\n ENGLISH_OTHER_LANG_CODE,\r\n CUST_MAORI_LANG_CODE,\r\n VIDEO_PLAYER,\r\n DEVELOPMENT_LANGUAGE_TOGGLE,\r\n DEVELOPMENT_LANGUAGE_PREFERENCE,\r\n DEVELOPMENT_SITE_NAME\r\n} from './constants';\r\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\n\r\n/*\r\n This variable is used to set development mode without localstorage errors\r\n !!!important Please set to false when pushing the code\r\n Use this only for local development\r\n*/\r\nexport const IS_LOCAL_DEVELOPMENT = false;\r\n\r\nexport const getToggleLang = (context: any) => {\r\n console.log('gettogglecontext', context);\r\n if (IS_LOCAL_DEVELOPMENT) {\r\n return DEVELOPMENT_LANGUAGE_TOGGLE;\r\n }\r\n\r\n const siteNameFromCache = getSiteNameFromCache(KWR, context);\r\n if (siteNameFromCache === OCH || siteNameFromCache === KWR) {\r\n return context.request.locale.toLowerCase() === MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG;\r\n } else {\r\n return context.request.locale.toLowerCase() === ENGLISH_OTHER_LANG_CODE ? ENGLISH_LANG : MAORI_LANG;\r\n }\r\n};\r\n\r\nexport const getUserPrefLang = (customerAccountNumber: number, context: any): any => {\r\n console.log('getprefcontext', context);\r\n if (IS_LOCAL_DEVELOPMENT) {\r\n return DEVELOPMENT_LANGUAGE_PREFERENCE;\r\n }\r\n\r\n if (context.request.user.isAuthenticated) {\r\n if (localStorage !== undefined) {\r\n return localStorage.getItem(`moeUserPrefLang${customerAccountNumber}`);\r\n }\r\n }\r\n\r\n // This piece of code is executed when the user is not logged in\r\n // We will set toggle language as preferred language\r\n const siteNameFromCache = getSiteNameFromCache(KWR, context);\r\n if (siteNameFromCache === OCH || siteNameFromCache === KWR) {\r\n return context.request.locale.toLowerCase() === MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG;\r\n } else {\r\n return context.request.locale.toLowerCase() === ENGLISH_OTHER_LANG_CODE ? ENGLISH_LANG : MAORI_LANG;\r\n }\r\n};\r\n\r\nexport const getUserPreferredLanguage = (\r\n siteName: string,\r\n moduleName: string,\r\n userPrefLang: string,\r\n toggleLang: string,\r\n context: any\r\n): any => {\r\n let siteNameFromCache;\r\n if (IS_LOCAL_DEVELOPMENT) {\r\n siteNameFromCache = DEVELOPMENT_SITE_NAME;\r\n } else {\r\n siteNameFromCache = getSiteNameFromCache(siteName, context);\r\n }\r\n // const siteNameFromCache = siteName;\r\n\r\n // For Online Curriculum Hub site\r\n if (siteNameFromCache === OCH) {\r\n switch (moduleName) {\r\n case ERROR_OR_NOTIFICATION:\r\n return toggleLang;\r\n\r\n case HEADER_FOOTER:\r\n return toggleLang;\r\n\r\n case HOME_PAGE:\r\n return toggleLang;\r\n\r\n case ACTION_BUTTONS:\r\n return toggleLang;\r\n\r\n default:\r\n return ENGLISH_LANG;\r\n }\r\n }\r\n\r\n // For New Zealand Curriculum Online site\r\n if (siteNameFromCache === NZC) {\r\n switch (moduleName) {\r\n case METADATA:\r\n return ENGLISH_LANG;\r\n\r\n case NAVIGATION:\r\n return ENGLISH_LANG;\r\n\r\n case HEADER_FOOTER:\r\n return ENGLISH_LANG;\r\n\r\n case HOME_PAGE:\r\n return ENGLISH_LANG;\r\n\r\n case SOCIAL_SHARE:\r\n return ENGLISH_LANG;\r\n\r\n case ERROR_OR_NOTIFICATION:\r\n return ENGLISH_LANG;\r\n\r\n case MY_PROFILE:\r\n return ENGLISH_LANG;\r\n\r\n case DOWNLOAD_KETE:\r\n return ENGLISH_LANG;\r\n\r\n case DOWNLOAD_KETE_SITE_LANGUAGE:\r\n return ENGLISH_LANG;\r\n\r\n case COLLECTIONS:\r\n return ENGLISH_LANG;\r\n\r\n case ADD_TO_KETE:\r\n return ENGLISH_LANG;\r\n\r\n case ADD_TO_KETE_SITE_LANGUAGE:\r\n return ENGLISH_LANG;\r\n\r\n case SEARCH:\r\n return ENGLISH_LANG;\r\n\r\n case SEARCH_SITE_LANGUAGE:\r\n return ENGLISH_LANG;\r\n\r\n case ACTION_BUTTONS:\r\n return ENGLISH_LANG;\r\n\r\n case COLLECTIONS_SITE_LANGUAGE:\r\n return ENGLISH_LANG;\r\n\r\n case VIDEO_PLAYER:\r\n return ENGLISH_LANG;\r\n\r\n default:\r\n return ENGLISH_LANG;\r\n }\r\n }\r\n\r\n // For Te Whāriki Online site\r\n if (siteNameFromCache === TWK) {\r\n switch (moduleName) {\r\n case METADATA:\r\n return ENGLISH_LANG;\r\n\r\n case NAVIGATION:\r\n return MAORI_LANG;\r\n\r\n case HEADER_FOOTER:\r\n return userPrefLang;\r\n\r\n case HOME_PAGE:\r\n return userPrefLang;\r\n\r\n case LANDING_PAGE:\r\n return userPrefLang;\r\n\r\n case SOCIAL_SHARE:\r\n return userPrefLang;\r\n\r\n case ERROR_OR_NOTIFICATION:\r\n return userPrefLang;\r\n\r\n case MY_PROFILE:\r\n return userPrefLang;\r\n\r\n case DOWNLOAD_KETE:\r\n return MAORI_LANG;\r\n\r\n case DOWNLOAD_KETE_SITE_LANGUAGE:\r\n return userPrefLang;\r\n\r\n case COLLECTIONS:\r\n return MAORI_LANG;\r\n\r\n case COLLECTIONS_SITE_LANGUAGE:\r\n return userPrefLang;\r\n\r\n case ADD_TO_KETE:\r\n return MAORI_LANG;\r\n\r\n case ADD_TO_KETE_SITE_LANGUAGE:\r\n return userPrefLang;\r\n\r\n case SEARCH:\r\n return MAORI_LANG;\r\n\r\n case SEARCH_SITE_LANGUAGE:\r\n return userPrefLang;\r\n\r\n case ACTION_BUTTONS:\r\n return userPrefLang;\r\n\r\n case VIDEO_PLAYER:\r\n return userPrefLang;\r\n\r\n default:\r\n return ENGLISH_LANG;\r\n }\r\n }\r\n\r\n // For Te Kōhanga Reo site\r\n if (siteNameFromCache === KOH) {\r\n switch (moduleName) {\r\n case HOME_PAGE:\r\n return MAORI_LANG;\r\n\r\n case ACTION_BUTTONS:\r\n return MAORI_LANG;\r\n\r\n case VIDEO_PLAYER:\r\n return MAORI_LANG;\r\n\r\n default:\r\n return MAORI_LANG;\r\n }\r\n }\r\n\r\n // For Kauwhata Reo site\r\n if (siteNameFromCache === KWR) {\r\n switch (moduleName) {\r\n case METADATA:\r\n return toggleLang;\r\n\r\n case NAVIGATION:\r\n return toggleLang;\r\n\r\n case HEADER_FOOTER:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case HOME_PAGE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case SOCIAL_SHARE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case ERROR_OR_NOTIFICATION:\r\n return toggleLang;\r\n\r\n case MY_PROFILE:\r\n return userPrefLang;\r\n\r\n case DOWNLOAD_KETE:\r\n return MAORI_LANG;\r\n\r\n case DOWNLOAD_KETE_SITE_LANGUAGE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case COLLECTIONS:\r\n return MAORI_LANG;\r\n\r\n case COLLECTIONS_SITE_LANGUAGE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case ADD_TO_KETE:\r\n return MAORI_LANG;\r\n\r\n case ADD_TO_KETE_SITE_LANGUAGE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case SEARCH:\r\n return MAORI_LANG;\r\n\r\n case SEARCH_SITE_LANGUAGE:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case ACTION_BUTTONS:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n case VIDEO_PLAYER:\r\n return userPrefLang === ENGLISH_LANG && toggleLang === ENGLISH_LANG ? ENGLISH_LANG : MAORI_LANG;\r\n\r\n default:\r\n return MAORI_LANG;\r\n }\r\n }\r\n\r\n switch (moduleName) {\r\n case DOWNLOAD_KETE:\r\n return MAORI_LANG;\r\n\r\n case COLLECTIONS:\r\n return MAORI_LANG;\r\n\r\n case ADD_TO_KETE:\r\n return MAORI_LANG;\r\n\r\n case SEARCH:\r\n return MAORI_LANG;\r\n\r\n default:\r\n return toggleLang;\r\n }\r\n};\r\n\r\nexport function setCustomerLangInCache(props: { context: ICoreContext }) {\r\n const { context } = props;\r\n const user = context.request.user;\r\n\r\n if (!localStorage.getItem(`moeUserPrefLang${user.customerAccountNumber}`)) {\r\n void readAsync({ callerContext: context.actionContext, bypassCache: 'get' }, user.customerAccountNumber as any).then(\r\n customerData => {\r\n const customerLang = customerData.Language;\r\n localStorage.setItem(\r\n `moeUserPrefLang${user.customerAccountNumber}`,\r\n customerLang?.toLowerCase() === CUST_MAORI_LANG_CODE ? MAORI_LANG : ENGLISH_LANG\r\n );\r\n window.location.reload();\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport function setTwksiteLangInCache(props: { context: ICoreContext }, siteName: string) {\r\n localStorage.setItem(`moeTwkSiteLang`, siteName);\r\n}\r\n\r\nexport function getTwksiteLangInCache() {\r\n return localStorage.getItem(`moeTwkSiteLang`);\r\n}\r\n\r\nexport function setOnlineChannelInfoInCache(context: ICoreContext, channelInfo: string) {\r\n const hostname = context.request.url?.requestUrl?.hostname;\r\n if (localStorage !== undefined) {\r\n localStorage.setItem(`moeOnlineChannelInfo${hostname}`, channelInfo);\r\n localStorage.setItem('moeOnlineChannelInfoTimer', JSON.stringify(new Date().getTime()));\r\n }\r\n}\r\n\r\nexport function getOnlineChannelInfoTimer(context: ICoreContext): number {\r\n return JSON.parse(localStorage.getItem('moeOnlineChannelInfoTimer') || '0');\r\n}\r\n\r\nexport function getSiteNameFromCache(siteName: string, context: ICoreContext) {\r\n const hostname = context.request.url?.requestUrl?.hostname;\r\n let onlineChannels: any[] = [];\r\n\r\n if (localStorage !== undefined) {\r\n onlineChannels = JSON.parse(localStorage.getItem(`moeOnlineChannelInfo${hostname}`) || '[]');\r\n }\r\n\r\n if (onlineChannels?.length > 0) {\r\n const channelIndex = onlineChannels.findIndex((item: any) => item.Id === context.request.apiSettings.channelId);\r\n if (channelIndex > -1) {\r\n if (onlineChannels[channelIndex]?.Name?.includes('ealand')) {\r\n return NZC;\r\n }\r\n\r\n if (onlineChannels[channelIndex]?.Name?.includes('hanga')) {\r\n return KOH;\r\n }\r\n\r\n if (onlineChannels[channelIndex]?.Name?.includes('hildhood')) {\r\n return TWK;\r\n }\r\n\r\n if (onlineChannels[channelIndex]?.Name?.includes('whata')) {\r\n return KWR;\r\n }\r\n\r\n if (onlineChannels[channelIndex]?.Name?.includes('Hub')) {\r\n return OCH;\r\n }\r\n }\r\n } else {\r\n return siteName;\r\n }\r\n\r\n return siteName;\r\n}\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['moe-search'] = {\n c: () => require('partner/modules/moe-search/moe-search.tsx'),\n $type: 'contentModule',\n da: [{name:'searchState', path:'@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'moe-search',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/moe-search'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/search-utilities/dist/lib/search-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|moe-search|moe-search'] = {\n c: () => require('partner/modules/moe-search/moe-search.view.tsx'),\n cn: '__local__-__local__-moe-search'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a autosuggest.\n */\nexport class SearchState {\n @observable public searchText?: string;\n\n @observable public defaultBasicSearchUrl?: string;\n\n @observable public searchQueryStringParameter?: string;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { SearchState } from './search-state';\n\nexport function createSearchStateInput(result: SearchState): GenericInput {\n return new GenericInput('searchState', result, 'SearchState');\n}\n\nconst createsearchStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createSearchStateInput({ searchText: '' });\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createsearchStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["SuggestionType","AutoSuggestInput","constructor","searchText","top","suggestionType","hitPrefix","hitSuffix","getCacheKey","getCacheObjectType","dataCacheType","this","searchQuery","topResultsCount","async","_getAutoSuggest","input","autosuggest","ctx","searchCriteria","ProductSearchCriteria","SearchCondition","length","Context","ChannelId","requestContext","apiSettings","channelId","CatalogId","catalogId","Language","locale","HitPrefix","HitSuffix","searchSuggestions","getSearchSuggestionsAsync","callerContext","queryResultSettings","Paging","Top","map","item","ImageUrl","generateImageUrl","AllSearchResults","telemetry","error","createObservableDataAction","id","action","Error","autoSuggestPromises","Promise","all","then","inputData","payLoad","CategorySuggestionsComponent","props","config","suggestions","autoSuggestProps","resources","categorySuggestionHeadingInMaori","reactNodes","getPayloadObject","telemetryContent","push","_assembleNode","title","_renderTitle","text","categorySuggestionHeading","categoryAutoSuggestionHeading","format","learningAreaName","React","className","shouldShowFullPath","splitValue","Value","split","pop","ariaLabel","replace","RegExp","contentAction","etext","attribute","getTelemetryAttributes","key","Id","Object","assign","href","_generateLink","src","alt","_getHighlightedText","suggestion","_getCategoryLink","_categoryRefiners$Val","searchPageURL","searchQsp","searchRefiners","MsDyn365","isBrowser","queryUrl","URL","window","location","searchParams","set","categoryRefiners","find","refiners","KeyName","refiner","Values","RefinerRecordId","Number","parseInt","encodedRefiner","JSON","stringify","compressRefiners","formattedText","dangerouslySetInnerHTML","getRichTextHtml","compressedRefinerKeys","compressedRefiners","forEach","compressedRefiner","refinerKey","FormComponent","searchPlaceholder","hideSearchLabel","searchTextInput","handleInputChange","maxChars","disableSubmitSearch","handleCancelSearchChange","query","ariaLabelCancel","ariaLabelSearch","ariaLabelSubmit","onInputChange","event","target","value","onInputChangeFunction","inputNode","type","name","placeholder","ref","onChange","maxLength","submitBtnNode","Button","cancelBtn","onClick","submitBtn","KeywordSuggestionsComponent","formattedLink","LabelComponent","searchLabelClass","searchLabelArialLabelInMaori","isSearchFormExpanded","searchtextInMaori","searchCollapsedLabel","attributes","innerRef","ProductSuggestionsComponent","context","actionContext","productSuggestionHeadingInMaori","productSuggestionHeading","moduleType","moduleId","preferredLanguage","items","productAutoSuggestionHeading","altText","thumbnail","_renderThumbnail","price","Value3","DecimalValue","_renderPrice","LiProduct","_getLiWrapper","AProduct","_getAWrapper","tag","recid","_objectSpread","cultureFormatter","formatCurrency","getProductPageUrlSync","undefined","adjustedPrice","basePrice","PriceComponent","typeName","data","CustomerContextualPrice","BasePrice","request","gridSettings","imageSettings","cropFocalRegion","Image","viewports","xs","q","w","h","lg","xl","lazyload","loadFailureBehavior","OtherCurriculaSuggestionsComponent","otherCurriculaSuggestionHeadingInMaori","otherCurriculaSuggestionHeading","_item$ExtensionProper","_item$ExtensionProper2","_item$ExtensionProper3","productPrice","generatedLink","index","ExtensionProperties","findIndex","p","Key","console","log","StringValue","_item$ExtensionProper4","constructedFullUrl","baseUrl","pathname","search","Search","super","waitTime","_isLoadingNode","toggleLang","getToggleLang","userPrefLang","getUserPrefLang","user","customerAccountNumber","loadingText","getUserPreferredLanguage","KWR","SEARCH","autoSuggestResultLoadingMessageInMaori","autoSuggestResultLoadingMessage","Spinner","label","size","SpinnerSize","medium","labelPosition","_focusOutTarget","e","state","closest","_clearAutoSuggestState","_keyup","keyCode","KeyCodes","Escape","setState","formReference","current","contains","autoSuggestResultDiv","searchState","defaultBasicSearchUrl","searchQueryStringParameter","update","createSearchStateInput","_handleInputChange","cancellabelDebounce","cancel","_debounce","isLoadingAutoSuggest","getSearchSuggestionsAction","_getSuggestionType","inputSuggestionType","results","_getSearchRefiners","autoSuggestAriaLabel","_setAutoSuggestResultCount","catch","exception","debug","setTimeout","suggestionTypes","distinctSuggestionTypes","suggestionTypeItem","charAt","toUpperCase","slice","join","_handleSubmit","app","preventDefault","focus","searchURL","_appendQueryParams","getUrlSync","document","_handleCancelSearchChange","isInitialState","route","qsp","result","autoSuggestResultScreenReaderDiv","ariaLiveRegion","suggestResultString","autoSuggestFoundMessageInMaori","emptyResultString","noAutoSuggestionMessageInMaori","innerText","setAttribute","searchKeywordSuggestClass","searchProductSuggestClass","searchCategorySuggestClass","searchCurriculaSuggestClass","searchInputMaxLength","suggestionTypeCriterion","searchFormClass","getTelemetryObject","telemetryPageName","friendlyName","body","addEventListener","componentWillUnmount","removeEventListener","componentDidUpdate","params","isEditor","shouldComponentUpdate","nextProps","nextState","render","cancelBtnAriaLabelInMaori","searchBtnAriaLabelInMaori","submitBtnAriaLabelInMaori","searchplaceholderText","shouldShowFullCategoryPath","siteName","keywordSuggestions","filter","i","Keyword","None","productSuggestions","Product","_i$ExtensionPropertie","_i$ExtensionPropertie2","_i$ExtensionPropertie3","_i$ExtensionPropertie4","LongValue","categorySuggestions","Category","otherCurriculaSuggestions","_i$ExtensionPropertie5","_i$ExtensionPropertie6","_i$ExtensionPropertie7","_i$ExtensionPropertie8","viewProps","moduleProps","classnames","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","CategorySuggest","CurriculaSuggest","SearchForm","FormWrapper","role","autoComplete","onSubmit","UlKeyword","UlProduct","UlCategory","form","autosuggestKeyword","ArrayExtensions","hasElements","autosuggestProduct","autosuggestCategory","autosuggestOtherCurricula","callbacks","isLoadingNode","renderView","getProductSearchRefinersAsync","_renderForm","Node","_renderKeywordSuggestions","_renderProductSuggestions","Module","ENGLISH_LANG","MAORI_LANG","ENGLISH_LANG_CODE","MAORI_LANG_CODE","ENGLISH_OTHER_LANG_CODE","CUST_MAORI_LANG_CODE","AXE_MAORI_LANG_CODE","ERROR_OR_NOTIFICATION","HEADER_FOOTER","NAVIGATION","HOME_PAGE","LANDING_PAGE","METADATA","SOCIAL_SHARE","MY_PROFILE","DOWNLOAD_KETE","COLLECTIONS","ADD_TO_KETE","ACTION_BUTTONS","COLLECTIONS_SITE_LANGUAGE","ADD_TO_KETE_SITE_LANGUAGE","DOWNLOAD_KETE_SITE_LANGUAGE","SEARCH_SITE_LANGUAGE","VIDEO_PLAYER","OCH","TWK","KOH","NZC","MAORI_TOGGLE_PREFIX","ENGLISH_TOGGLE_PREFIX","ADD_TO_COLLECTION_RESOURCES","resourceKey","flipperNext","flipperPrevious","unknownError","unknownErrorInMaori","emptyCollection","emptyCollectionInMaori","emptyCollections","emptyCollectionsInMaori","duplicateName","duplicateNameInMaori","duplicateResource","duplicateResourceInMaori","unAuthenticated","unAuthenticatedInMaori","noAccountNumber","noAccountNumberInMaori","networkOffline","networkOfflineInMaori","exceededCollectionNameLimit","exceededCollectionNameLimitInMaori","noEmptyCollectionSharing","noEmptyCollectionSharingInMaori","createCOllection","createCOllectionInMaori","addResource","addResourceInMaori","updateCollection","updateCollectionInMaori","updateCollectionName","updateCollectionNameInMaori","deleteCollection","deleteCollectionInMaori","deleteProduct","deleteProductInMaori","notLoggedIn","notLoggedInInMaori","addToCollectionText","addToCollectionTextInMaori","heyText","heyTextInMaori","addNewCollection","addNewCollectionInMaori","newCollectionText","newCollectionTextInMaori","createCollectionText","createCollectionTextInMaori","closeText","closeTextInMaori","selectResourcesHoverText","selectResourcesHoverTextInMaori","createNewCollectionText","createNewCollectionTextInMaori","DEVELOPMENT_LANGUAGE_TOGGLE","DEVELOPMENT_LANGUAGE_PREFERENCE","DEVELOPMENT_SITE_NAME","IS_LOCAL_DEVELOPMENT","siteNameFromCache","getSiteNameFromCache","toLowerCase","isAuthenticated","localStorage","getItem","moduleName","setCustomerLangInCache","readAsync","bypassCache","customerData","customerLang","setItem","reload","setOnlineChannelInfoInCache","channelInfo","_context$request$url","hostname","url","requestUrl","Date","getTime","getOnlineChannelInfoTimer","parse","_context$request$url2","_onlineChannels","onlineChannels","channelIndex","_onlineChannels$chann","_onlineChannels$chann2","_onlineChannels$chann3","_onlineChannels$chann4","_onlineChannels$chann5","Name","includes","binding","modules","dataActions","c","require","$type","da","path","runOn","iNM","ns","n","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","__bindings__","viewDictionary","cn","SearchState","__decorate","observable","GenericInput","getGenericActionDataAction","getGenericAction","module","exports","ReactDOM"],"sourceRoot":""}