{"version":3,"file":"static/js/5.d9b76aa12715cc6ff282.chunk.js","mappings":";8yBA8CA,MAAMA,UAAwBC,EAAAA,cAgB1BC,YAAYC,GACRC,MAAMD,GAbF,KAAAE,OAAiB,EAcrBC,KAAKC,gBAAkBD,KAAKC,gBAAgBC,KAAKF,MACjDA,KAAKG,SACDN,EAAMO,QAAQC,SAAWR,EAAMO,QAAQC,QAAQC,QAAgD,WAAtCT,EAAMO,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACrHP,KAAKQ,MAAQ,CAAEC,SAAUT,KAAKS,UAC9BT,KAAKU,aAAe,GAfjB,uBAAuBC,EAAgBC,GAC1C,IAAIC,EAKJ,OAJIF,GAAUC,GAAoBA,EAAiBE,OAAS,IACxDD,EAAkBD,EAAiBG,MAAKC,GAAQA,EAAKC,SAAUC,gBAAkBP,EAAOO,iBAGrFL,GAAmBA,EAAgBM,KAYpC,eACN,MAAyB,OAAlBnB,KAAKG,UAAuC,OAAlBH,KAAKG,SAGnCiB,oBACHpB,KAAKqB,4BAA8BC,SAAUC,EAAAA,EAAAA,mBAAkBD,OAAQ,SAAUtB,KAAKC,iBACtFD,KAAKC,kBAGFuB,uBACHF,QAAUA,OAAOG,oBAAoB,SAAUzB,KAAKqB,6BAA8B,GAG/EK,SAEH,GADA1B,KAAKU,aAAeV,KAAK2B,YACrBC,EAAAA,EAAAA,IAAoB5B,KAAKH,MAAMgC,MAE/B,OADA7B,KAAKH,MAAMiC,UAAUC,MAAM,+BACpB,KAGX,MAAMC,EAAuC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAGRC,EAASC,EAAAA,EAAAA,EAAA,GACRzC,KAAKH,OACLG,KAAKQ,OAAK,IACbkC,cAAeV,EACfW,aAAc3C,KAAKH,MAAMO,QAAQC,QAAQsC,aACzCC,WAAY,CACRC,YAAa7C,KAAKH,MAClBiD,UAAWC,GAAAA,CACP,gCACA/C,KAAKH,MAAMmD,OAAOF,UAClB9C,KAAKQ,MAAMC,SAAW,YAAc,cAExCwC,IAAK,MACLC,KAAM,aACN,aAAclD,KAAKH,MAAMmD,OAAOG,0BAEpCC,SAAU,CACNN,UAAW,eACXG,IAAK,MAETI,SAAU,CACNP,UAAW,qBACXG,IAAK,MAETK,KAAM,CACFL,IAAK,IACLH,UAAW,4BAEfS,aAAc,CACVN,IAAK,MACLH,UAAW,mBAEfU,kBAAmB,CACfP,IAAK,MACLH,UAAW,iBACXI,KAAM,YAEVO,OAAQ,CACJX,UAAW,6BACXG,IAAK,SACLS,QAAS1D,KAAKH,OAElB8D,eAAgB,CACZb,UAAW,6BAEfc,KAAM,CACFd,UAAW,2BACXG,IAAK,QAETY,2BAA4B,CACxBf,UAAW,mCAEfgB,iBAAkB,CACdhB,UAAW,0CACXG,IAAK,SACLS,QAAS1D,KAAKH,OAElBkE,uBAAwB,CACpBjB,UAAW,wCACXG,IAAK,QAETe,aAAchE,KAAKQ,MAAMC,SACzBwD,aAAcjE,KAAKU,aACnBoC,UAAWC,GAAAA,CAAW,SAAU/C,KAAKH,MAAMmD,OAAOF,aAGtD,OAAO9C,KAAKH,MAAMqE,WAAW1B,GAGzBb,WACJ,MAAM,OAAEqB,GAAWhD,KAAKH,MAClBsE,EAA8B,GAIpC,OAHInE,KAAKD,OAASiD,EAAOoB,aAAepB,EAAOoB,YAAYtD,OAAS,GAChEkC,EAAOoB,YAAYC,KAAKrD,GAA2BmD,EAAWG,KAAKtE,KAAKuE,uBAAuBvD,MAE5FmD,EAIHI,uBAAuBC,GAC3B,MAAO,CACHC,GAAI/E,EAAgBgF,gBACpBC,SAAWH,GAAWA,EAAQG,UAAa,GAC3CC,QAAUJ,GAAWA,EAAQK,SAAWL,EAAQK,QAAQC,gBAAmB,GAC3EC,oBAAsBP,GAAWA,EAAQQ,WAAaR,EAAQQ,UAAUF,gBAAmB,GAC3FG,YAAcT,GAAWA,EAAQU,OAASV,EAAQU,MAAMC,KAAQ,GAChEC,QAASpF,KAAKqF,sBAAsBb,IAIpCa,sBAAsBC,GAC1B,MAAMC,EAAkC,GAExC,OAAKD,GAAaA,EAASE,UAAaF,EAASE,SAAS1E,QAI1DwE,EAASE,SAASnB,KAAI,CAACrD,EAAqByE,KACxCF,EAAejB,KAAKtE,KAAKuE,uBAAuBvD,OAE7CuE,GANI,GASPtF,kBACJD,KAAKG,SAAWH,KAAK0F,eACrB1F,KAAK2F,SAAS,CAAElF,SAAUT,KAAKS,WAG3BiF,eACJ,MAAM,QAAEtF,GAAYJ,KAAKH,MAEzB,GAAIO,EAAQC,SAAWD,EAAQC,QAAQC,QAA0C,WAAhCF,EAAQC,QAAQC,OAAOC,KACpE,MAAO,KAEX,QAAsBqF,WAAXtE,QAAwBA,OAAOuE,WAAY,CAClD,MAAMlD,EAAevC,EAAQC,QAAQsC,aACrC,GAAIA,EACA,OAAIA,EAAaT,IAAMZ,OAAOuE,YAAclD,EAAaT,GAAGE,EACjD,KACAO,EAAamD,IAAMxE,OAAOuE,YAAclD,EAAamD,GAAG1D,EACxD,KACAO,EAAaoD,IAAMzE,OAAOuE,YAAclD,EAAaoD,GAAG3D,EACxD,KACAO,EAAaqD,IAAM1E,OAAOuE,YAAclD,EAAaqD,GAAG5D,EACxD,KAEA,KAInB,MAAO,MAtLI1C,EAAAgF,cAAwB,KAKvCuB,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCAoBDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BAkKb,2ICtMM,MAAOC,UAA4BzG,EAAAA,cAMrCC,YAAYC,GACRC,MAAMD,GANF,KAAAwG,aAAuB,EACvB,KAAAC,UAAoB,GAgTpB,KAAAC,sBAAwB,CAAC1E,EAAqB2E,IAAsB,KACnExG,KAAKH,MAAMmE,aAMZhE,KAAK2F,SAAS,CACVc,WAAY5E,EAAK4C,GACjBiC,oBAAqB7E,EAAK8C,SAC1BgC,WAAYH,IARhBxG,KAAK2F,SAAS,CACVc,WAAYzG,KAAKQ,MAAMiG,YAAczG,KAAKQ,MAAMiG,aAAe5E,EAAK4C,QAAMmB,EAAY/D,EAAK4C,GAC3FkC,WAAYH,IAUpBxG,KAAK4G,eAGD,KAAAA,YAAc,KACd5G,KAAKH,MAAMmE,cACX6C,YAAW,KACP7G,KAAK8G,UAAY9G,KAAK8G,SAASC,SAAW/G,KAAK8G,SAASC,QAAQC,UACjE,IAKH,KAAAC,oBAAuBC,IACvBlH,KAAK8G,SAASC,UAAY/G,KAAK8G,SAASC,QAAQI,SAASD,EAAME,SAC/DpH,KAAK2F,SAAS,CAAEc,gBAAYb,EAAWc,oBAAqB,MAS5D,KAAAW,aAAgBH,IAChBA,EAAMI,UAAYtH,KAAKsG,WACvBtG,KAAKuH,iBAjVTvH,KAAK8G,SAAWnH,EAAAA,YAChBK,KAAKQ,MAAQ,CACTiG,gBAAYb,EACZc,oBAAqB,GACrBC,gBAAYf,EACZ4B,qBAAsB,IAE1BxH,KAAKuH,cAAgBvH,KAAKuH,cAAcrH,KAAKF,MAC7CA,KAAKqH,aAAerH,KAAKqH,aAAanH,KAAKF,MAC3CA,KAAKyH,kBAAmBC,EAAAA,EAAAA,oBACpB1H,KAAKH,MAAMO,QAAQC,QAAQsH,kBAC3B3H,KAAKH,MAAM+H,aACX5H,KAAKH,MAAMiC,WAEf9B,KAAK6H,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS9H,KAAKyH,iBAAkB,GAAI,IAGjErG,oBACH2G,SAASC,MAAQD,SAASE,iBAAiB,UAAYjI,KAAKqH,cAA2C,GACvGU,SAASC,MAAQD,SAASC,KAAKC,iBAAiB,YAAajI,KAAKiH,qBAG/DzF,uBACHuG,SAASC,MAAQD,SAAStG,oBAAoB,UAAYzB,KAAKqH,cAA2C,GAC1GU,SAASC,MAAQD,SAASC,KAAKvG,oBAAoB,YAAazB,KAAKiH,qBAAqB,GAGvFvF,SACH,MAAM,aAAEsC,GAAiBhE,KAAKH,MAG9B,OADAG,KAAKqG,aAAe,EACb1G,EAAAA,cAACA,EAAAA,SAAc,KAAEqE,EAAehE,KAAKkI,oBAAsBlI,KAAKmI,sBAGnED,oBACJ,MAAM,aAAElE,EAAY,aAAEC,EAAY,WAAErB,EAAU,OAAEI,GAAWhD,KAAKH,MAChE,OACIF,EAAAA,cAACyI,EAAAA,OAAMC,OAAAC,OAAA,GAAK1F,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,UAAWkB,EAAe,cAAgB,kBAC9FC,EAAaI,KAAKkE,GACRvI,KAAKwI,kBAAkBD,EAAUvF,MAKhDmF,qBACJ,MAAM,SAAE/E,EAAQ,WAAER,GAAe5C,KAAKH,MACtC,OACIF,EAAAA,cAACyI,EAAAA,OAAMC,OAAAC,OAAA,GAAK1F,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,aACrDnD,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,GAAKlF,EAAQ,CAAEsF,IAAK1I,KAAK8G,SAAU6B,SAAS,OAC5C3I,KAAK4I,mBAMdJ,kBAAkBD,EAAyBvF,GAC/C,OAAIuF,GAAYA,EAASnD,SAAWmD,EAASnD,QAAQtE,OAAS,EACnDd,KAAK6I,cAAcN,EAAUvF,GAE7BhD,KAAK8I,oBAAoBP,GAIhCM,cAAcN,EAAyBvF,GAC3C,MAAM+F,EAAmBR,EAAS5D,SAC5BqE,EAAkBT,EAAStD,YACjC,OACItF,EAAAA,cAACsJ,EAAAA,OAAM,CACHC,IAAKX,EAAS9D,GACd3B,UAAW,iBAIXiG,iBAAkB/I,KAAKmJ,gBAAgBJ,EAAkBC,IAEzDrJ,EAAAA,cAAA,WACKqD,EAAOoG,0BAA4BzJ,EAAAA,cAAA,MAAImD,UAAW,iBAAkBE,EAAOoG,0BAC3Eb,EAASnD,QAASf,KAAKgF,GACbrJ,KAAKsJ,kBAAkBD,OAO1CF,gBAAgBxE,EAA8B4E,GAClD,OACI5J,EAAAA,cAACA,EAAAA,SAAc,KACVgF,EACA4E,GAAW5J,EAAAA,cAAA,OAAK6J,IAAK,GAAIrE,IAAKoE,KAKnCD,kBAAkBtI,GACtB,OAAIA,GAAQA,EAAK2D,UAAY3D,EAAK4D,SAAW5D,EAAK4D,QAAQ9D,OAAS,EACxDd,KAAK8I,oBAAoB9H,GACzBA,GAAQA,EAAK2D,WAAa3D,EAAK4D,QAC/B5E,KAAKyJ,oBAAoBzI,GAE7B,KAGH4H,iBACJ,MAAM,SAAEvF,EAAQ,aAAEY,EAAY,aAAED,GAAiBhE,KAAKH,OAChD,WAAE4G,GAAezG,KAAKQ,MACtBE,EAA8B,GAEpC,GAAIsD,QAA+B4B,IAAfa,GAA4BxC,EAAanD,OAAS,EAAG,CACrE,IAAIyH,EAA0B,GAC9B,IAAK,IAAImB,EAAI,EAAGA,EAAIzF,EAAanD,OAAQ4I,IAAK,CAC1C,GAAIzF,EAAayF,IAAMzF,EAAayF,GAAGjF,KAAOgC,EAAY,CACtD8B,EAAWtE,EAAayF,GACxB1J,KAAK2F,SAAS,CACVgB,gBAAYf,EACZc,oBAAqBzC,EAAayF,GAAG/E,WAEzC,MAGJ,GADA4D,EAAWvI,KAAK2J,gBAAgB1F,EAAayF,IACzCnB,GAAYA,EAAS9D,KAAOgC,EAC5B,MAIR8B,GACI7H,EAAa4D,KACT3E,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,CAACY,IAAKX,EAAS9D,IAAQpB,GACvB,IACArD,KAAK4J,oBAAoBrB,GAAW,WAIjDtE,EAAa4F,SAAQ,CAAC7I,EAAqB8I,KACvCpJ,EAAa4D,KACT3E,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,CAACY,IAAKY,GAAWzG,GACjBrD,KAAK4J,oBAAoB5I,QAM1C,OAAON,EAGHiJ,gBAAgB3I,GACpB,MAAMwE,EAAWxE,GAAQA,EAAKoE,QAC9B,GAAII,GAAYA,EAAS1E,OAAS,EAC9B,IAAK,IAAI4I,EAAI,EAAGA,GAAKlE,EAAS1E,OAAS,EAAG4I,IAAK,CAC3C,GAAIlE,EAASkE,GAAGjF,KAAOzE,KAAKQ,MAAMiG,WAK9B,OAJAzG,KAAK2F,SAAS,CACVgB,WAAY3F,GAAQA,EAAKyD,GACzBiC,oBAAqBlB,EAASkE,GAAG/E,WAE9Ba,EAASkE,GAEpB,MAAMK,EAAQ/J,KAAK2J,gBAAgBnE,EAASkE,IAC5C,GAAIK,EACA,OAAOA,EAInB,OAAO,KAGHH,oBAAoB3F,GACxB,OAAIA,GAAgBA,EAAamB,SAAWnB,EAAamB,QAAQtE,OAAS,EAClEd,KAAKH,MAAMmE,mBAA0C4B,IAA1B5F,KAAKQ,MAAMiG,WAC/BzG,KAAKgK,eAAe/F,EAAamB,QAASnB,EAAaQ,IAG1D9E,EAAAA,cAACA,EAAAA,SAAc,KACVK,KAAKiK,sBAAsBhG,GAC3BjE,KAAKgK,eAAe/F,EAAamB,QAASnB,EAAaQ,KAI7DR,GAAgBA,EAAaU,UAAYV,EAAaW,SAAWX,EAAaW,QAAQ9D,OAAS,EAC/Fd,KAAK8I,oBAAoB7E,EAAcA,EAAaQ,IAAI,GACxDR,GAAgBA,EAAaU,WAAaV,EAAaW,QACvD5E,KAAKyJ,oBAAoBxF,GAG7B,KAGH+F,eAAexE,EAA4BiB,EAAqByD,GACpE,MAAM,aAAElG,EAAY,SAAEX,GAAarD,KAAKH,MAIxC,GAAI4G,GAAczG,KAAKQ,MAAMiG,aAAeA,EAIxC,OAAO,KAGX,IAAKjB,GAAgC,IAApBA,EAAS1E,OAItB,OAAO,KAGX,IAAIqJ,EAAyB,GAC7B,MAAMC,EACF5E,GACAA,EAASnB,KAAI,CAACgG,EAAuB5E,KACjC,MAAM6E,EAAaD,EAAOjF,SAAWiF,EAAOjF,QAAQtE,OAAS,EAC7D,IAAIyH,EAMAnD,EAJAmD,EADA+B,GAActG,EACHhE,KAAKiK,sBAAsBI,EAAQ5D,EAAYhB,GAE/C4E,EAAOzF,QAAU5E,KAAK8I,oBAAoBuB,EAAQ5E,GAAOzF,KAAKyJ,oBAAoBY,GAGjG,MAAME,EAAcD,GA7BG,MAmCvB,OALIC,IACAvK,KAAKqG,eACL8D,EAAoF,GACpF/E,EAAUpF,KAAKgK,eAAeK,EAAOjF,QAASpB,EAAeqG,EAAO5F,QAAKmB,GAAW,IAGpFjG,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,GAAKjF,EAAQ,CAAE6F,IAAKmB,EAAO5F,GAAI3B,UAAWC,GAAAA,CAAWM,EAASP,UAAWyH,GAAe,iBACxFhC,EACAnD,MAIjB,OAAOpF,KAAKwK,YAAYL,EAAgBC,EAAa3D,EAAYyD,GAG7DD,sBAAsBI,EAAuB5D,EAAqBqD,GACtE,MAAM,OAAErG,GAAWzD,KAAKH,MACxB,OACIF,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,CACDY,IAAKY,GACDrG,EAAM,CACVC,QAAS1D,KAAKuG,sBAAsB8D,EAAQ5D,GAC5CgE,QAASzK,KAAKuH,cAAa,iBACZ,EAAI,mBACJvH,KAAKQ,MAAMiG,YAAczG,KAAKQ,MAAMiG,aAAe4D,EAAO5F,IAAiB,cAC7EgC,IAEZ4D,EAAO1F,SACP0F,EAAOpF,aAAetF,EAAAA,cAAA,OAAK6J,IAAK,GAAIrE,IAAKkF,EAAOpF,eAKrD6D,oBAAoBuB,EAAuBP,GAC/C,MAAM,KAAExG,GAAStD,KAAKH,MAChB8E,EAAW0F,EAAO1F,SAAW0F,EAAO1F,SAAW,GAC/C+F,EAAcL,EAAOpF,YAAcoF,EAAOpF,YAAc,GAC9DjF,KAAK6H,QAAQ8C,cAAcC,MAAQjG,EACnC,MAAMkG,GAAaC,EAAAA,EAAAA,wBAAuB9K,KAAKyH,iBAAkBzH,KAAK6H,SAEhEkD,GADgC,oBAAXzJ,QAA0B,GAAG0J,SAASC,SAASjL,KAAKH,MAAMO,QAAQC,QAAQ6K,cACjEb,EAAOzF,QAC3C,OACIjF,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,GACGhF,EAAI,CACR4F,IAAKY,EACLqB,KAAMd,EAAOzF,SACTiG,EAAU,gBACAE,GAAe,OAC7BjI,UAAW,GAAGiI,GAAe,cAAc/K,KAAKH,MAAMiD,YACtDY,SAAS0H,EAAAA,EAAAA,kBAAiBpL,KAAKyH,iBAAkBzH,KAAK6H,QAASlD,KAE9D+F,GAAe/K,EAAAA,cAAA,OAAK6J,IAAK,GAAIrE,IAAKuF,IACnC/K,EAAAA,cAAA,YAAO0K,EAAO1F,WAKlB8E,oBAAoBY,EAAuBP,GAC/C,MAAM,KAAElG,GAAS5D,KAAKH,MACtB,OACIF,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,CAACY,IAAKY,GAAWlG,GACjByG,EAAO1F,UAKZ6F,YAAYa,EAAejB,EAA4BkB,EAAsBC,GACjF,MAAM,aAAEhI,EAAY,SAAEH,EAAQ,OAAEJ,GAAWhD,KAAKH,MAC1C2L,EAAoBxL,KAAKqG,aAAe,EAAI9C,EAAcT,UAAY,kBAE5E,OADA9C,KAAKqG,aAAe,EAEhB1G,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,GAAK/E,EAAY,CAAET,UAAW0I,IAC/B7L,EAAAA,cAAC8I,EAAAA,KAAIJ,OAAAC,OAAA,GAAKlF,EAAQ,CAAEN,UAAWC,GAAAA,CAAWK,EAASN,UAAWuI,KACzDrI,EAAOoG,0BAA4BzJ,EAAAA,cAAA,MAAImD,UAAW,iBAAkBE,EAAOoG,0BAE3EgB,IAqCT7C,gBACCvH,KAAKH,MAAMmE,cACZhE,KAAK2F,SAAS,CAAEc,gBAAYb,EAAWc,oBAAqB,MAUxE,2CChYO,MAAM+E,EAAmB,CAC5BC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/country-selector/country-selector.tsx?a8bc","webpack://Msdyn365.Commerce.Online/./src/modules/country-selector/country-selector.view.tsx?44d3","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/utils/convert_a2_a3.ts?c0bb","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-loyalty-tile.view.tsx?7c49","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-management-address.view.tsx?2098","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-profile.view.tsx?555a","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/loyalty-sign-up.view.tsx?1edc","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/reviews-list.view.tsx?43bb","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/sign-in.view.tsx?a0ea","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/write-review.view.tsx?10da","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-header.tsx?a6c6","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-payment-summary.tsx?3434","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-products.tsx?8f29","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/helpers/invoice-data.ts?608f","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.tsx?b51a","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoice-error-component.tsx?2ff9","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-filter-component.tsx?5fd4","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?f5e1","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?48db","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9790","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/make-payment-component.tsx?1427","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/pay-invoice-component.tsx?6f61","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/request-invoice-button.tsx?9eb0","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-data.ts?00b1","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-status.ts?5841","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/pay-invoices.ts?30c0","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/request-invoice-modal.tsx?f9b5","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/invoices-list.tsx?2d55","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/invoices-list.view.tsx?8b51","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, ICountrySelectorData } from './country-selector.data';\r\nimport { ICmsNavItemsData, ICountrySelectorProps, ISubMenusData } from './country-selector.props.autogenerated';\r\n\r\nexport interface ICountrySelectorViewProps extends ICountrySelectorProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer: INodeProps;\r\n MobileDescriptionContainer: INodeProps;\r\n MobileBackButton: INodeProps;\r\n MobileDescriptionLabel: INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?: INodeProps;\r\n ImageDivContainer?: INodeProps;\r\n countrySelectorIntroText: string;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CountrySelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CountrySelector extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\r\n private isCMS: boolean = true;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICountrySelectorProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport =\r\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = { isMobile: this.isMobile };\r\n this.menuItemList = [];\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return this.viewport === 'xs' || this.viewport === 'sm';\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n this.menuItemList = this._mapData();\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames(\r\n 'ms-nav menu--country-selector',\r\n this.props.config.className,\r\n this.state.isMobile ? 'mobile-vp' : 'desktop-vp'\r\n ),\r\n tag: 'nav',\r\n role: 'navigation',\r\n 'aria-label': this.props.config.countrySelectorAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag: 'ul'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n tag: 'li'\r\n },\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link'\r\n },\r\n DivContainer: {\r\n tag: 'div',\r\n className: 'ms-nav__feature'\r\n },\r\n ImageDivContainer: {\r\n tag: 'div',\r\n className: 'category-image',\r\n role: 'tabpanel'\r\n },\r\n Button: {\r\n className: 'ms-nav__list__item__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n ImageContainer: {\r\n className: 'ms-nav__list__item__image'\r\n },\r\n Span: {\r\n className: 'ms-nav__list__item__span',\r\n tag: 'span'\r\n },\r\n MobileDescriptionContainer: {\r\n className: 'ms-nav__list__mobile__container'\r\n },\r\n MobileBackButton: {\r\n className: 'ms-nav__list__mobile__container__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n MobileDescriptionLabel: {\r\n className: 'ms-nav__list__mobile__container__span',\r\n tag: 'span'\r\n },\r\n isMobileView: this.state.isMobile,\r\n menuItemData: this.menuItemList,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _mapData(): IMenuItemData[] {\r\n const { config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData) => mergedData.push(this._constructMenuItemData(item)));\r\n }\r\n return mergedData;\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(cmsItem?: ICmsNavItemsData): IMenuItemData {\r\n return {\r\n id: CountrySelector.CMSItemIdInit++,\r\n linkText: (cmsItem && cmsItem.linkText) || '',\r\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\r\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\r\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\r\n subMenu: this._getCMSNestedChildren(cmsItem)\r\n } as IMenuItemData;\r\n }\r\n\r\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n\r\n if (!category || !category.subMenus || !category.subMenus.length) {\r\n return [];\r\n }\r\n\r\n category.subMenus.map((item: ISubMenusData, idx: number) => {\r\n nestedChildren.push(this._constructMenuItemData(item));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n return 'xs';\r\n }\r\n}\r\n\r\nexport default CountrySelector;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICountrySelectorViewProps } from './country-selector';\r\nimport { IMenuItemData } from './country-selector.data';\r\nimport {\r\n Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICountrySelectorConfig } from './country-selector.props.autogenerated';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n mobileViewLabelText?: string;\r\n categoryImageAltText: string;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CountrySelectorView extends React.PureComponent {\r\n private currentLevel: number = 0;\r\n private escapeKey: number = 27;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n constructor(props: ICountrySelectorViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {\r\n activeMenu: undefined,\r\n mobileViewLabelText: '',\r\n parentMenu: undefined,\r\n categoryImageAltText: ''\r\n };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\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 this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public componentDidMount(): void {\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation, config } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem, config);\r\n })}\r\n \r\n );\r\n }\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem, config);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const toggleButtonImg = menuItem.imageSource;\r\n return (\r\n \r\n
\r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined, linkImg: string | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n {linkImg && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n this.setState({\r\n parentMenu: undefined,\r\n mobileViewLabelText: menuItemData[i].linkText\r\n });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({\r\n parentMenu: item && item.id,\r\n mobileViewLabelText: subMenus[i].linkText\r\n });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._renderSpanMenuItem(menuItemData);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = false;\r\n const multiLevelSupportedMenu = 2;\r\n // const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Active menu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Submenu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n }\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\r\n }\r\n\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n {option.imageSource && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true): JSX.Element | null {\r\n const { Link } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n const currentSite = typeof window !== 'undefined' && `${location.origin}${this.props.context.request.sitePath}`;\r\n const currentLang = currentSite === option.linkURL ? true : false;\r\n return (\r\n \r\n {imagesource && {''}}\r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n const { DivContainer, MenuList, config } = this.props;\r\n const DivContainerClass = this.currentLevel > 2 ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n \r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n\r\n {menuOptions}\r\n
\r\n
\r\n );\r\n }\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n}\r\n\r\nexport default CountrySelectorView;\r\n","// tslint:disable-next-line:variable-name\r\nexport const convert_a2_to_a3 = {\r\n AF: 'AFG',\r\n AX: 'ALA',\r\n AL: 'ALB',\r\n DZ: 'DZA',\r\n AS: 'ASM',\r\n AD: 'AND',\r\n AO: 'AGO',\r\n AI: 'AIA',\r\n AQ: 'ATA',\r\n AG: 'ATG',\r\n AR: 'ARG',\r\n AM: 'ARM',\r\n AW: 'ABW',\r\n AU: 'AUS',\r\n AT: 'AUT',\r\n AZ: 'AZE',\r\n BS: 'BHS',\r\n BH: 'BHR',\r\n BD: 'BGD',\r\n BB: 'BRB',\r\n BY: 'BLR',\r\n BE: 'BEL',\r\n BZ: 'BLZ',\r\n BJ: 'BEN',\r\n BM: 'BMU',\r\n BT: 'BTN',\r\n BO: 'BOL',\r\n BA: 'BIH',\r\n BW: 'BWA',\r\n BV: 'BVT',\r\n BR: 'BRA',\r\n IO: 'IOT',\r\n BN: 'BRN',\r\n BG: 'BGR',\r\n BF: 'BFA',\r\n BI: 'BDI',\r\n KH: 'KHM',\r\n CM: 'CMR',\r\n CA: 'CAN',\r\n CV: 'CPV',\r\n KY: 'CYM',\r\n CF: 'CAF',\r\n TD: 'TCD',\r\n CL: 'CHL',\r\n CN: 'CHN',\r\n CX: 'CXR',\r\n CC: 'CCK',\r\n CO: 'COL',\r\n KM: 'COM',\r\n CG: 'COG',\r\n CD: 'COD',\r\n CK: 'COK',\r\n CR: 'CRI',\r\n CI: 'CIV',\r\n HR: 'HRV',\r\n CU: 'CUB',\r\n CY: 'CYP',\r\n CZ: 'CZE',\r\n DK: 'DNK',\r\n DJ: 'DJI',\r\n DM: 'DMA',\r\n DO: 'DOM',\r\n EC: 'ECU',\r\n EG: 'EGY',\r\n SV: 'SLV',\r\n GQ: 'GNQ',\r\n ER: 'ERI',\r\n EE: 'EST',\r\n ET: 'ETH',\r\n FK: 'FLK',\r\n FO: 'FRO',\r\n FJ: 'FJI',\r\n FI: 'FIN',\r\n FR: 'FRA',\r\n GF: 'GUF',\r\n PF: 'PYF',\r\n TF: 'ATF',\r\n GA: 'GAB',\r\n GM: 'GMB',\r\n GE: 'GEO',\r\n DE: 'DEU',\r\n GH: 'GHA',\r\n GI: 'GIB',\r\n GR: 'GRC',\r\n GL: 'GRL',\r\n GD: 'GRD',\r\n GP: 'GLP',\r\n GU: 'GUM',\r\n GT: 'GTM',\r\n GG: 'GGY',\r\n GN: 'GIN',\r\n GW: 'GNB',\r\n GY: 'GUY',\r\n HT: 'HTI',\r\n HM: 'HMD',\r\n VA: 'VAT',\r\n HN: 'HND',\r\n HK: 'HKG',\r\n HU: 'HUN',\r\n IS: 'ISL',\r\n IN: 'IND',\r\n ID: 'IDN',\r\n IR: 'IRN',\r\n IQ: 'IRQ',\r\n IE: 'IRL',\r\n IM: 'IMN',\r\n IL: 'ISR',\r\n IT: 'ITA',\r\n JM: 'JAM',\r\n JP: 'JPN',\r\n JE: 'JEY',\r\n JO: 'JOR',\r\n KZ: 'KAZ',\r\n KE: 'KEN',\r\n KI: 'KIR',\r\n KP: 'PRK',\r\n KR: 'KOR',\r\n KW: 'KWT',\r\n KG: 'KGZ',\r\n LA: 'LAO',\r\n LV: 'LVA',\r\n LB: 'LBN',\r\n LS: 'LSO',\r\n LR: 'LBR',\r\n LY: 'LBY',\r\n LI: 'LIE',\r\n LT: 'LTU',\r\n LU: 'LUX',\r\n MO: 'MAC',\r\n MK: 'MKD',\r\n MG: 'MDG',\r\n MW: 'MWI',\r\n MY: 'MYS',\r\n MV: 'MDV',\r\n ML: 'MLI',\r\n MT: 'MLT',\r\n MH: 'MHL',\r\n MQ: 'MTQ',\r\n MR: 'MRT',\r\n MU: 'MUS',\r\n YT: 'MYT',\r\n MX: 'MEX',\r\n FM: 'FSM',\r\n MD: 'MDA',\r\n MC: 'MCO',\r\n MN: 'MNG',\r\n ME: 'MNE',\r\n MS: 'MSR',\r\n MA: 'MAR',\r\n MZ: 'MOZ',\r\n MM: 'MMR',\r\n NA: 'NAM',\r\n NR: 'NRU',\r\n NP: 'NPL',\r\n NL: 'NLD',\r\n AN: 'ANT',\r\n NC: 'NCL',\r\n NZ: 'NZL',\r\n NI: 'NIC',\r\n NE: 'NER',\r\n NG: 'NGA',\r\n NU: 'NIU',\r\n NF: 'NFK',\r\n MP: 'MNP',\r\n NO: 'NOR',\r\n OM: 'OMN',\r\n PK: 'PAK',\r\n PW: 'PLW',\r\n PS: 'PSE',\r\n PA: 'PAN',\r\n PG: 'PNG',\r\n PY: 'PRY',\r\n PE: 'PER',\r\n PH: 'PHL',\r\n PN: 'PCN',\r\n PL: 'POL',\r\n PT: 'PRT',\r\n PR: 'PRI',\r\n QA: 'QAT',\r\n RE: 'REU',\r\n RO: 'ROU',\r\n RU: 'RUS',\r\n RW: 'RWA',\r\n BL: 'BLM',\r\n SH: 'SHN',\r\n KN: 'KNA',\r\n LC: 'LCA',\r\n MF: 'MAF',\r\n PM: 'SPM',\r\n VC: 'VCT',\r\n WS: 'WSM',\r\n SM: 'SMR',\r\n ST: 'STP',\r\n SA: 'SAU',\r\n SN: 'SEN',\r\n RS: 'SRB',\r\n SC: 'SYC',\r\n SL: 'SLE',\r\n SG: 'SGP',\r\n SK: 'SVK',\r\n SI: 'SVN',\r\n SB: 'SLB',\r\n SO: 'SOM',\r\n ZA: 'ZAF',\r\n GS: 'SGS',\r\n ES: 'ESP',\r\n LK: 'LKA',\r\n SD: 'SDN',\r\n SR: 'SUR',\r\n SJ: 'SJM',\r\n SZ: 'SWZ',\r\n SE: 'SWE',\r\n CH: 'CHE',\r\n SY: 'SYR',\r\n TW: 'TWN',\r\n TJ: 'TJK',\r\n TZ: 'TZA',\r\n TH: 'THA',\r\n TL: 'TLS',\r\n TG: 'TGO',\r\n TK: 'TKL',\r\n TO: 'TON',\r\n TT: 'TTO',\r\n TN: 'TUN',\r\n TR: 'TUR',\r\n TM: 'TKM',\r\n TC: 'TCA',\r\n TV: 'TUV',\r\n UG: 'UGA',\r\n UA: 'UKR',\r\n AE: 'ARE',\r\n GB: 'GBR',\r\n US: 'USA',\r\n UM: 'UMI',\r\n UY: 'URY',\r\n UZ: 'UZB',\r\n VU: 'VUT',\r\n VE: 'VEN',\r\n VN: 'VNM',\r\n VG: 'VGB',\r\n VI: 'VIR',\r\n WF: 'WLF',\r\n EH: 'ESH',\r\n YE: 'YEM',\r\n ZM: 'ZMB',\r\n ZW: 'ZWE'\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountLoyaltyTileViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty-tile/./account-loyalty-tile';\r\nimport { IAccountLoyaltyTileProps } from '../../../themes/venchi/definition-extensions/account-loyalty-tile.ext.props.autogenerated';\r\n\r\nconst AccountLoyaltyTileView: React.FC> = props => {\r\n const { AccountLoyaltyTile, heading, description, links } = props;\r\n\r\n // The user does NOT have a customer number yet, they still have a tmp_guid\r\n let tmp_account = false;\r\n if (props.context.request.user.customerAccountNumber?.length === 36) {\r\n tmp_account = true;\r\n }\r\n\r\n let description__no_decimals;\r\n \r\n // @ts-ignore\r\n if (description && description.props) {\r\n // @ts-ignore\r\n description__no_decimals = description.props.description.replace('.00', '');\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n

{tmp_account && props.config.usingNewLoyalty && props.config.cardBeingGeneratedText ? props.config.cardBeingGeneratedText : description__no_decimals}

\r\n {links}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyTileView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAddressAddItem,\r\n IAddressAddUpdateProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-add';\r\nimport {\r\n IAddressList,\r\n IAddressListItem,\r\n IAddressListProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-list';\r\nimport {\r\n IAddressShowItem,\r\n IAddressShowProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/./account-management-address';\r\nimport { convert_a2_to_a3 } from '../utils/convert_a2_a3';\r\n\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n// tslint:disable-next-line:max-func-body-length\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const resources = other?.moduleProps?.resources;\r\n // @ts-ignore\r\n const localeString = other?.moduleProps?.context?.request?.locale;\r\n // @ts-ignore\r\n const sitePath = other?.moduleProps?.context?.request?.sitePath;\r\n const europe = ['/fr', '/de'];\r\n // @ts-ignore\r\n const currency = other?.moduleProps?.context?.request?.channel?.Currency;\r\n const locale =\r\n sitePath && europe.includes(sitePath)\r\n ? 'eu'\r\n : currency === 'EUR' && localeString === 'en-GB'\r\n ? 'eu'\r\n : localeString.replace('-', '');\r\n\r\n const [hasAddressError, setHasAddressError] = React.useState(false);\r\n React.useEffect(() => {\r\n setHasAddressError(error.title ? true : false);\r\n }, [error.title]);\r\n // console.log(`${currency} ${localeString} ${locale}`);\r\n const countriesAvail = {\r\n enGB: {\r\n autocomplete: ['gb'],\r\n select: ['GBR']\r\n },\r\n it: {\r\n autocomplete: ['it'],\r\n select: ['ITA']\r\n },\r\n enUS: {\r\n autocomplete: ['us'],\r\n // autocomplete: ['us', 'ca'],\r\n // select: ['USA', 'CAN']\r\n select: ['USA']\r\n },\r\n eu: {\r\n // removed componentRestrictions for country as there is limit of 5 in google maps\r\n // autocomplete:['at','be','bg','ch','cz','de','dk','es','ee','fi','fr','gr','hr','hu','ie','li','lt','lu','lv','mc','nl','no','pl','pt','ro','sk','si','se'],\r\n autocomplete: [],\r\n select: [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'CHE',\r\n 'CZE',\r\n 'DEU',\r\n 'DNK',\r\n 'ESP',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'LIE',\r\n 'LTU',\r\n 'LUX',\r\n 'LVA',\r\n 'MCO',\r\n 'NLD',\r\n 'NOR',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'SWE'\r\n ]\r\n }\r\n };\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n // tslint:disable-next-line:typedef\r\n function gMapsAutocomplete() {\r\n const googleComponents = [\r\n { googleComponent: 'sublocality_level_1', id: 'shipping_addresscity' },\r\n { googleComponent: 'locality', id: 'shipping_addresscity' },\r\n { googleComponent: 'postal_town', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_3', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_1', id: 'shipping_addressstate' },\r\n { googleComponent: 'postal_code_prefix', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'postal_code', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'country', id: 'shipping_addressthreeletterisoregionname' },\r\n { googleComponent: 'administrative_area_level_2', id: 'shipping_addresscounty' }\r\n ];\r\n\r\n const autocompleteFormField = document.getElementById('shipping_addressstreet');\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address'],\r\n componentRestrictions: { country: countriesAvail[locale] && countriesAvail[locale].autocomplete }\r\n });\r\n if (autocompleteFormField === null) {\r\n return;\r\n }\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocompleteFormField);\r\n // @ts-ignore\r\n window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n const place = autocomplete.getPlace();\r\n // console.log(place);\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n for (const googleComponent of googleComponents) {\r\n const addressComponents = place.address_components;\r\n if (addressComponents && addressComponents.length > 0) {\r\n // @ts-ignore\r\n addressComponents.forEach(addressComponent => populateFormElements(addressComponent, googleComponent));\r\n }\r\n }\r\n });\r\n }\r\n // tslint:disable-next-line:typedef no-any\r\n function populateFormElements(\r\n addressComponent: { types: any[]; short_name: string; long_name: string },\r\n formMap: { googleComponent: any; id: string }\r\n ) {\r\n const addressType = addressComponent.types[0];\r\n\r\n if (document.getElementById(formMap.id) === undefined || document.getElementById(formMap.id) === null) {\r\n return;\r\n }\r\n\r\n if (formMap.googleComponent === addressType) {\r\n if (formMap.id === 'shipping_addressthreeletterisoregionname' || formMap.id === 'shipping_addressstate') {\r\n const input = document.getElementById(formMap.id) as HTMLSelectElement;\r\n if (input !== null) {\r\n const formValue = locale === 'it' && formMap.id === 'shipping_addressstate' ? 'DEF' : addressComponent.short_name;\r\n // console.log(formValue);\r\n const selectedValue = selectItemByValue(input, formValue, addressType === 'country' ? true : false);\r\n // console.log(selectedValue);\r\n if (selectedValue !== undefined) {\r\n input.value = selectedValue;\r\n // console.log(input.value);\r\n const event = new Event('change', { bubbles: true });\r\n input.dispatchEvent(event);\r\n }\r\n }\r\n } else {\r\n const formValue = formMap.id === 'shipping_addresscounty' ? addressComponent.short_name : addressComponent.long_name;\r\n const input = document.getElementById(formMap.id);\r\n if (input !== undefined) {\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(input, formValue);\r\n const eCustom = new Event('input', { bubbles: true });\r\n if (input !== null) {\r\n input.dispatchEvent(eCustom);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // @ts-ignore\r\n // tslint:disable-next-line:typedef\r\n function selectItemByValue(elmnt: HTMLSelectElement, value: string, is_convert_a2_to_a3) {\r\n for (let i = 0; i < elmnt.options.length; i++) {\r\n const eValue = elmnt.options[i].value;\r\n if ((is_convert_a2_to_a3 && eValue === convert_a2_to_a3[value]) || (!is_convert_a2_to_a3 && eValue === value)) {\r\n return elmnt.options[i].value;\r\n }\r\n }\r\n }\r\n const checkPhone = () => {\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const phone = document.getElementById('shipping_addressphone') as HTMLInputElement;\r\n if (phone) {\r\n const phoneCtn = phone.closest('.msc-address-form__item') as HTMLElement;\r\n const phoneAlert = phoneCtn.getElementsByClassName('msc-address-form__alert')[0];\r\n const pattern = /^[0-9]*$/;\r\n const pattern2 = /^\\+?\\d+$/;\r\n phone.setAttribute('aria-required', 'true');\r\n phone.setAttribute('type', 'tel');\r\n phone.setAttribute('maxlength', '15');\r\n if (phone.value.length === 0) {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n phone.onkeyup = () => {\r\n if (!phone.value.match(pattern) && !phone.value.match(pattern2)) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else if (phone.value.length < 6) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else {\r\n phoneCtn.classList.remove('address-form__item-invalid');\r\n phoneAlert.textContent = '';\r\n saveAddressButton.removeAttribute('disabled');\r\n }\r\n };\r\n }\r\n };\r\n function phoneValidation(): void {\r\n const addressForm = document.getElementsByClassName('msc-address-form')[0];\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const county = document.getElementById('shipping_addresscounty') as HTMLInputElement;\r\n const countyCtn = county && county !== null ? (county.closest('.msc-address-form__item') as HTMLInputElement) : undefined;\r\n const countyAlert = countyCtn?.getElementsByClassName('msc-address-form__alert')[0];\r\n\r\n if (countyCtn !== undefined) {\r\n countyCtn.onkeyup = () => {\r\n countyCtn?.classList.remove('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = '';\r\n }\r\n };\r\n }\r\n if (saveAddressButton !== undefined) {\r\n saveAddressButton.onclick = e => {\r\n const countyValid =\r\n locale === 'it' && (county.value === '' || county.value.length > 2 || !/[^a-z]/i.test(county.value) === false)\r\n ? false\r\n : true;\r\n if (!countyValid) {\r\n countyCtn?.classList.add('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = 'Inserire Codice ISO a 2 lettere';\r\n }\r\n const elements = addressForm.querySelectorAll('input');\r\n let fieldInALL = true;\r\n elements.forEach(fieldInControl);\r\n function fieldInControl(element: HTMLInputElement): void {\r\n if (element.value === '' && element.name !== 'County') {\r\n fieldInALL = false;\r\n }\r\n }\r\n if (fieldInALL) {\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n React.useEffect(() => {\r\n gMapsAutocomplete();\r\n const options = document.querySelectorAll('#shipping_addressthreeletterisoregionname option');\r\n options.forEach(o => {\r\n const optionV = (o as HTMLOptionElement).value;\r\n if (countriesAvail[locale] && !countriesAvail[locale].select.includes(optionV)) {\r\n o.remove();\r\n }\r\n });\r\n const countrySelect = document.getElementById('shipping_addressthreeletterisoregionname') as HTMLSelectElement;\r\n if (locale === 'enUS') {\r\n countrySelect.value = 'USA';\r\n }\r\n const event = new Event('change', { bubbles: true });\r\n countrySelect.dispatchEvent(event);\r\n }, []);\r\n\r\n // Auto select of DEF value in state select on italian site\r\n React.useEffect(() => {\r\n const event = new Event('change', { bubbles: true });\r\n if (locale === 'it' && (document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement)) {\r\n const optionDEF = document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement;\r\n optionDEF.setAttribute('aria-selected', 'true');\r\n (optionDEF.parentNode as HTMLSelectElement).value = 'DEF';\r\n (optionDEF.parentNode as HTMLSelectElement).dispatchEvent(event);\r\n (optionDEF.parentNode as HTMLSelectElement).disabled = Boolean('true');\r\n }\r\n }, [document.querySelector('#shipping_addressstate option[value=DEF]')]);\r\n\r\n // Phone Verifications\r\n React.useEffect(() => {\r\n checkPhone();\r\n }, [(document?.getElementById('shipping_addressphone') as HTMLInputElement)?.value]);\r\n React.useEffect(() => {\r\n phoneValidation();\r\n }, [document.getElementsByClassName('msc-address-form')[0]]);\r\n\r\n // Refesh once saving processed\r\n let updatedCount = 0;\r\n React.useEffect(() => {\r\n ++updatedCount;\r\n if (updatedCount > 1) {\r\n location.reload();\r\n }\r\n }, [document.querySelector('.msc-address-form__button-updating')]);\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n if (key === 'Name' && input) {\r\n // @ts-ignore\r\n input.props.maxLength = 34;\r\n }\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasAddressError && (\r\n \r\n

{resources.addressErrorMessage}

\r\n
\r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n
\r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n IAccountPreference,\r\n IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\nimport { IAccountProfileProps } from '../definition-extensions/account-profile.ext.props.autogenerated';\r\n\r\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {extraPreferences &&\r\n extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC> = props => {\r\n const {\r\n AccountProfile,\r\n accountProfileWrapper,\r\n heading,\r\n emailSection,\r\n nameSection,\r\n preferenceSection,\r\n customerAttributesWrapper,\r\n customerAttributesSection\r\n } = props;\r\n\r\n React.useEffect(() => {\r\n if (document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing')[1].innerHTML =\r\n // @ts-ignore\r\n props.config.textGenericMarketing;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-Profiling').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-Profiling')[1].innerHTML = props.config.textProfiling;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-ThirdParty').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-ThirdParty')[1].innerHTML = props.config.textThirdParty;\r\n }\r\n\r\n document.getElementsByClassName('ms-account-profile__attributes-edit-button msc-btn')[0].addEventListener(\"click\", () => {\r\n const bd_input: HTMLInputElement = document.getElementsByClassName('ms-account-profile__attributes-element ms-account-profile__attributes_input ms-account-profile__attributes_input-edit-false ms-account-profile__Birthday-input')[0] as HTMLInputElement;\r\n // const prev_date = bd_input.value;\r\n if (props.context.request.canonicalDomain !== 'us.venchi.com') {\r\n // The following is undefined due to the element not existing yet at runtime\r\n // const never_mind: HTMLButtonElement = document.getElementsByClassName('ms-account-profile__attributes-cancel-button msc-btn')[0] as HTMLButtonElement;\r\n \r\n // Protip: This resets the birthday value on click, so be mindful of that\r\n bd_input.setAttribute('type', 'date');\r\n \r\n // never_mind.addEventListener(\"click\", () => {\r\n // bd_input.setAttribute('type', 'text');\r\n // bd_input.value = prev_date;\r\n // });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n {heading}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {accountProfileWrapper && (\r\n \r\n \r\n \r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILoyaltySignUpViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/loyalty-sign-up/./loyalty-sign-up';\r\nimport { ILoyaltySignUpProps } from '../definition-extensions/loyalty-sign-up.ext.props.autogenerated';\r\n\r\nconst LoyaltySignUpView: React.FC> = props => {\r\n const {\r\n LoyaltySignUp,\r\n heading,\r\n memberHeading,\r\n signInLink,\r\n signUpText,\r\n signUpButton,\r\n detailsLink,\r\n // termsLink, Not needed\r\n loading,\r\n infoMessageBar\r\n } = props;\r\n\r\n if (loading) {\r\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\r\n return null;\r\n }\r\n\r\n // const hostname = props?.context?.request?.url?.requestUrl?.hostname || '';\r\n\r\n if (typeof window !== 'undefined') {\r\n const loyalty_join_toggle_btn = document.getElementsByClassName(\"ms-loyalty-terms__toggle\")[0];\r\n loyalty_join_toggle_btn?.addEventListener(\"click\", () => {\r\n const loyalty_join_btn = document.getElementsByClassName(\"ms-loyalty-terms__submit\")[0];\r\n loyalty_join_btn.addEventListener(\"click\", () => {\r\n loyalty_join_btn.innerHTML = '
';\r\n })\r\n });\r\n }\r\n\r\n /*\r\n [signInLink = true, loyalty_join_flag = false] guest (no loyalty join) -> standard sign in\r\n [signInLink = true, loyalty_join_flag = true] guest (loyalty join) -> \"thanks\" instead of sign in\r\n [signInLink = false] logged in -> hidden module content\r\n */\r\n const loyalty_join_flag = props.context.request.query?.hasJoined;\r\n // signInLink is null (thus false) when the user is logged in\r\n return (signInLink && (loyalty_join_flag ? (\r\n
\r\n {props.resources.joinedLoyaltyThankYouHeader && (

{props.resources.joinedLoyaltyThankYouHeader}

)}\r\n {props.resources.joinedLoyaltyParagraphContent && (

{props.resources.joinedLoyaltyParagraphContent}

)}\r\n {/* {props.resources.loyaltyBalanceCheckURL && props.resources.joinedLoyaltyBalanceCheckLinkText && ({props.resources.joinedLoyaltyBalanceCheckLinkText})} */}\r\n
\r\n ) : (\r\n \r\n {infoMessageBar}\r\n {memberHeading}\r\n {heading}\r\n {detailsLink}\r\n {signUpText}\r\n {/* {termsLink} Not needed */}\r\n {signUpButton}\r\n {signInLink}\r\n \r\n )\r\n )\r\n );\r\n};\r\n\r\nexport default LoyaltySignUpView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// import { getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\n// import { constructViewportInformationForImage } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n /* averageRating,\r\n filterByDropdown, */\r\n moduleProps,\r\n /* noReviewsMessage, */\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n /* refineReviewsProps, */\r\n reportReviewModal,\r\n /* reviewsListProps, */\r\n reviewCards,\r\n /* reviewCount, */\r\n reviewModal,\r\n /* sortByDropdown, */\r\n state,\r\n userReview\r\n } = props;\r\n\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n // const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName ?? '', 'Recensioni', props.telemetry);\r\n\r\n const _toggleReviewModal = () => {\r\n document.body.style.overflowY = modalOpen ? 'scroll' : 'hidden';\r\n setModalOpen(!modalOpen);\r\n };\r\n\r\n // @ts-ignore\r\n const averageRating = props.data.ratingsSummary.result.averageRating ?? 0;\r\n // @ts-ignore\r\n const buttonLabel = props.resources.product_review_list_button_label ?? '';\r\n // @ts-ignore\r\n const title = props.resources.reviewListLabel ?? '';\r\n\r\n React.useEffect(() => {\r\n const page_summary = document.getElementsByClassName('msc-average-rating-container')[0];\r\n const modal_summary = document.getElementsByClassName('msc-average-rating-container')[1];\r\n if (page_summary && modal_summary) {\r\n modal_summary.innerHTML = page_summary.innerHTML;\r\n }\r\n });\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n /* return {noReviewsMessage}; */\r\n /* return (\r\n \r\n
\r\n
); */\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {averageRating}\r\n {reviewCount} */}\r\n {/* { reviewCards.length === 0 ?\r\n null : \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n } */}\r\n {/* {React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))} */}\r\n {/* \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n */}\r\n
\r\n
e.stopPropagation()}>\r\n
\r\n {title}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n
\r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.name}\r\n {props.date}\r\n {props.rating}\r\n \r\n \r\n \r\n {/* {props.reviewTitle} */}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {/* {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike} */}\r\n {props.edit}\r\n {/* {props.report} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n Module,\r\n Node,\r\n ITelemetryContent,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject\r\n} from '@msdyn365-commerce-modules/utilities'\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in'\r\n\r\nimport { ISignInProps } from '../definition-extensions/sign-in.ext.props.autogenerated'\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC> = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n const canonicalDomain = props.signIn.moduleProps.context.request.canonicalDomain;\r\n const sitePath =\r\n props.signIn.moduleProps.context.request.sitePath && props.signIn.moduleProps.context.request.sitePath !== null\r\n ? props.signIn.moduleProps.context.request.sitePath\r\n : '';\r\n const requestUrl: string = `https://${canonicalDomain}${sitePath}`;\r\n\r\n const telemetryContent: ITelemetryContent = getTelemetryObject(\r\n props.context.request.telemetryPageName!,\r\n props.friendlyName,\r\n props.telemetry\r\n );\r\n const payLoad = getPayloadObject('click', telemetryContent!, props.resources.signUpButtonText);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n const handleGaGuestCheckout = React.useCallback(() => {\r\n window.dataLayer?.push?.({\r\n 'event': 'gaEvent',\r\n 'eventCategory': 'account',\r\n 'eventAction': 'guest_checkout',\r\n 'eventLabel': 'click' \r\n })\r\n }, [])\r\n\r\n const handleGaSignUp = React.useCallback(() => {\r\n window.dataLayer?.push?.({\r\n 'event': 'gaEvent',\r\n 'eventCategory': 'account',\r\n 'eventAction': 'signup',\r\n 'eventLabel': 'click'\r\n });\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n if (!viewState.isShowLoading) {\r\n const registerButtonLink = document.getElementById('createAccount')\r\n const vclubButtonLink = document.getElementById('vclub-signin')\r\n\r\n if (registerButtonLink && vclubButtonLink) {\r\n // @ts-ignore\r\n vclubButtonLink.href = registerButtonLink.href\r\n }\r\n }\r\n }, [viewState.isShowLoading])\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n

\r\n {props.resources.signinVclubTitle}\r\n

\r\n

\r\n {props.resources.signinVclubText}\r\n

\r\n
\r\n \r\n {props.resources.signUpButtonText}\r\n \r\n
\r\n \r\n
\r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n
\r\n {signUpLink}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n// import { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./content-block';\r\nimport { IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/write-review/write-review';\r\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/common/review-modal';\r\nimport { Module, Node, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { heading, /* signInMessage, */ signInButton, modalToggle, reviewModal, moduleProps } = props;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n // @ts-ignore\r\n //const reviewButtonLabel = moduleProps?.moduleProps?.resources?.reviewButtonLabel ?? '';\r\n //const customSignInButton = signInButton;\r\n // @ts-ignore\r\n //customSignInButton.props.text = reviewButtonLabel;\r\n // const test = { ...moduleProps };\r\n // @ts-ignore\r\n moduleProps.moduleProps.resources.signInLabel = moduleProps.moduleProps.resources.reviewButtonLabel;\r\n React.useEffect(() => {\r\n const button = document.getElementsByClassName('ms-write-review__sign-in-btn')[0];\r\n if (button) {\r\n button.setAttribute('style', 'visibility: visible');\r\n }\r\n }, []);\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated\r\n ? React.createElement(React.Fragment, null, null, signInButton)\r\n : React.createElement(React.Fragment, null, modalToggle, createReviewModal(reviewModal, moduleProps))\r\n );\r\n /* return (React.createElement(Module, Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated ? React.createElement(React.Fragment, null,\r\n signInMessage,\r\n signInButton) : React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))); */\r\n};\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps) => {\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, props.modal, moduleProps),\r\n props.modalHeader,\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.modalBody),\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.form),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.rating, props.ratingLabel),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.titleLabel, props.titleInput),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.textLabel, props.textInput),\r\n props.privacyPolicyUrl,\r\n props.error\r\n )\r\n ),\r\n React.createElement(Node, Object.assign({}, props.modalFooter), props.submitButton, props.cancelButton)\r\n );\r\n};\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n
\n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerViewProps } from './index';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\n\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\n invoicesFilterShowAll: string;\n}\n\nexport interface IInvoicesFilterProps extends IComponentProps {\n className: string;\n disabled: boolean;\n\n resources: IInvoicesFilterResources;\n\n currentState: InvoicesFilterState;\n onFilterStateChanged(state: InvoicesFilterState): void;\n}\n\nexport enum InvoicesFilterState {\n ShowAll,\n Paid,\n PartiallyPaid,\n Unpaid\n}\n\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\n switch (filterState) {\n case InvoicesFilterState.ShowAll:\n return resources.invoicesFilterShowAll;\n case InvoicesFilterState.Paid:\n return resources.invoiceStatusPaid;\n case InvoicesFilterState.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n case InvoicesFilterState.Unpaid:\n return resources.invoiceStatusUnpaid;\n default:\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\n }\n};\n\n/**\n * On Click function.\n * @param onStateClick -Invoice filter state function.\n * @param filterState -Invoice filter state.\n * @returns Set Invoice filter state.\n */\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\n onStateClick(filterState);\n};\n\nconst renderFilterStateItem = (\n filterState: InvoicesFilterState,\n resources: IInvoicesFilterResources,\n className: string,\n onStateClick: (filterState: InvoicesFilterState) => void\n): React.ReactNode => {\n const stateStringRepresentation = InvoicesFilterState[filterState];\n\n return (\n \n );\n};\n\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\n const popoverRef = React.createRef();\n const [popoverState, setPopoverState] = React.useState(false);\n const togglePopover = React.useCallback(() => {\n setPopoverState(!popoverState);\n }, [popoverState]);\n\n const [filterState, setFilterState] = React.useState(props.currentState);\n\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\n setFilterState(clickedState);\n setPopoverState(false);\n props.onFilterStateChanged(clickedState);\n };\n\n return (\n
\n \n {getInvoicesFilterStateResources(filterState, props.resources)}\n \n \n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })}\n \n
\n );\n};\n\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesFilterProps\n>('InvoicesFilterComponent', { component: InvoicesFilter });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {resources.invoiceUsersText}\n {resources.invoiceAmountText}\n {resources.invoiceDueDateText}\n {resources.invoiceAmountDueText}\n {resources.invoiceStatusText}\n {resources.invoiceActionsText}\n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoicesText}\n {resources.invoiceDateMobileText}\n \n {` `}\n {/* Actions */}\n \n );\n};\n\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\n const rowClassName = `${props.className}__row`;\n\n const switchCheckedState = () => {\n props.onSelectAll(!props.isSelectedAll);\n };\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\n } else {\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\n }\n\n return (\n \n {headerCells}\n \n );\n};\n\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableHeaderComponent\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n IComponent,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n isOboRequest,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject,\n setShowActions: React.Dispatch>\n) => () => {\n setShowActions(false);\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n {formatDate(props.context, invoice.dueDate)}\n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nfunction useOutsideClick(refinerRefernce: React.RefObject, toggle: (event: Event | MouseEvent) => void) {\n function handleClickOutside(event: Event | MouseEvent) {\n if (refinerRefernce.current && !refinerRefernce.current.contains(event.target as Node)) {\n toggle(event);\n }\n }\n\n React.useEffect(() => {\n if (MsDyn365.isBrowser) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n return () => {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n };\n }, [refinerRefernce, toggle]);\n}\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: {\n invoiceViewDetailsButtonAriaLabel,\n invoiceViewDetailsButtonText,\n invoiceActionsButtonTextAriaLabel,\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\n },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n const wrapperRefiner = React.useRef(null);\n useOutsideClick(wrapperRefiner, toggle(showActions && !isOnBehalfOfRequest, setShowActions));\n return (\n
\n \n {showActions && !isOnBehalfOfRequest && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n
\n {invoice.customerName}\n \n \n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\n \n );\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const {\n data: { invoice }\n } = props;\n\n const onSelectLine = () => {\n invoice.isSelected = !invoice.isSelected;\n props.onChange();\n };\n\n let rowCells: JSX.Element;\n if (props.isMobile) {\n rowCells = getMobileRowCells(props, onSelectLine);\n } else {\n rowCells = getDesktopRowCells(props, onSelectLine);\n }\n\n return {rowCells};\n};\n\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableRowComponent\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n \n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n // Added condition to enable MakePayment button only if can be paid invoice is selected\n const hasInvoices =\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid)) &&\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.isSelected));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\n\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { IInvoicesListResources } from '../invoices-list.props.autogenerated';\n\ninterface IRequestInvoiceModalProps {\n className: string;\n email: string;\n isModalOpen: boolean;\n submitRequestLabel: string;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n cancelLabel: string;\n searchPlaceholderLabel: string;\n invoices: InvoiceModel[];\n invoicesFoundString: string;\n singleInvoiceFoundString: string;\n searchButtonAltText: string;\n resources: IInvoicesListResources;\n toggle(): void;\n onSubmitRequest(invoiceId: string): void;\n}\n\n/**\n * On submit request click function.\n * @param selectedInvoiceIndex -Check is busy.\n * @param onClosing -On closing function.\n * @param filteredInvoices -Invoice modal.\n * @param onSubmitRequest -On submit request function.\n * @returns Call on submit request.\n */\nconst onSubmitRequestClick = (\n onClosing: () => void,\n filteredInvoices: InvoiceModel[],\n onSubmitRequest: (invoiceId: string) => void,\n checkboxRef: React.MutableRefObject\n) => () => {\n const defaultIndex = 0;\n let closingFlag: number = 0;\n\n filteredInvoices.map((invoice, index) => {\n const inputInvoice = checkboxRef.current[Number(index)] as React.RefObject;\n if (inputInvoice.current?.checked === true && index >= defaultIndex) {\n onSubmitRequest(invoice.id);\n closingFlag = closingFlag + 1;\n }\n });\n if (closingFlag <= filteredInvoices.length) {\n onClosing();\n }\n};\n\n/**\n * On search input change function.\n * @param setSearchInput -Set search input.\n * @returns Set search input function.\n */\nconst searchInputChangedHandler = (setSearchInput: React.Dispatch>) => (\n event: React.ChangeEvent\n) => {\n setSearchInput(event.target.value);\n};\n\n/**\n * Search entered handler.\n * @param invoices -InvoiceModel.\n * @param searchInput -String.\n * @param setFilteredInvoices -InvoiceModel action.\n * @param filteredInvoices -Filtered Invoices.\n * @param setSelectedInvoiceIndex -Selected Invoice Index.\n * @param setShouldShowSearchResults -Show search result action.\n * @param setInvoiceOptions -Invoice options action.\n * @param selectedInvoiceIndex -Selected invoice index.\n * @param className -String.\n * @returns Set invoice options.\n */\nconst searchEnteredHandler = (\n invoices: InvoiceModel[],\n searchInput: string,\n setFilteredInvoices: React.Dispatch>,\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: React.Dispatch>,\n setShouldShowSearchResults: React.Dispatch>,\n setInvoiceOptions: React.Dispatch>,\n selectedInvoiceIndex: number,\n className: string,\n checkboxRef: React.MutableRefObject\n) => () => {\n let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n } else {\n updatedInvoices = invoices;\n }\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(0);\n } else {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(\n renderInvoiceOptions(\n StringExtensions.isNullOrEmpty(searchInput) ? invoices : updatedInvoices,\n setSelectedInvoiceIndex,\n className,\n checkboxRef\n )\n );\n};\n\n/**\n * On cancel function.\n * @param onClosing -Closing function.\n * @param toggle -Toggle Function.\n * @returns Toggle function.\n */\nconst onCancelHandler = (onClosing: () => void, toggle: () => void) => () => {\n onClosing();\n toggle();\n};\n\n/**\n * On invoice select.\n * @param setSelectedInvoiceIndex -Set Selected Invoice Index.\n * @param index -Number.\n * @returns Set Selected Invoice Index.\n */\nconst onInvoiceSelectHandler = (setSelectedInvoiceIndex: (newIndex: number) => void, index: number) => () => {\n setSelectedInvoiceIndex(index);\n};\n\nconst renderInvoiceOptions = (\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: (newIndex: number) => void,\n className: string,\n checkboxRef: React.MutableRefObject\n) => {\n checkboxRef.current = filteredInvoices.map((_invoice, i) => checkboxRef.current[Number(i)] ?? React.createRef());\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const checkboxId = `invoice__${invoice.id}`;\n const checkboxName = `invoiceSelect__${invoice.id}`;\n\n return (\n
\n \n \n
\n );\n })}\n
\n );\n};\n\nexport const RequestInvoiceModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n modalHeaderLabel,\n sendToEmailLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n invoices,\n searchPlaceholderLabel,\n invoicesFoundString,\n singleInvoiceFoundString,\n searchButtonAltText,\n resources\n}) => {\n const [selectedInvoiceIndex, setSelectedInvoiceIndex] = React.useState(-1);\n const [filteredInvoices, setFilteredInvoices] = React.useState(invoices);\n const [searchInput, setSearchInput] = React.useState('');\n const [shouldShowSearchResults, setShouldShowSearchResults] = React.useState(false);\n const focusDelay = 110;\n const checkboxRef = React.useRef([]);\n const invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, checkboxRef);\n const [invoiceOptions, setInvoiceOptions] = React.useState(invoiceOptionsData);\n const focusElement = React.useRef(null);\n React.useEffect(() => {\n if (isModalOpen && focusElement.current) {\n setTimeout(() => {\n focusElement.current?.focus();\n }, focusDelay);\n }\n }, [isModalOpen]);\n\n /**\n * Sets the filtered invoices to the ones that were selected on the main screen.\n */\n const setFilteredInvoicesToSelectedInvoices = () => {\n setSelectedInvoiceIndex(-1);\n const selectedInvoices = invoices.filter(invoice => invoice.isSelected);\n if (ArrayExtensions.hasElements(selectedInvoices)) {\n setFilteredInvoices(selectedInvoices);\n\n // If only one invoice selected, auto select it\n if (selectedInvoices.length === 1) {\n setSelectedInvoiceIndex(0);\n }\n\n setInvoiceOptions(renderInvoiceOptions(selectedInvoices, setSelectedInvoiceIndex, className, checkboxRef));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, checkboxRef));\n }\n };\n\n const searchEntered = searchEnteredHandler(\n invoices,\n searchInput,\n setFilteredInvoices,\n filteredInvoices,\n setSelectedInvoiceIndex,\n setShouldShowSearchResults,\n setInvoiceOptions,\n selectedInvoiceIndex,\n className,\n checkboxRef\n );\n\n const onClosing = () => {\n setSelectedInvoiceIndex(-1);\n setFilteredInvoices(invoices);\n setSearchInput('');\n setShouldShowSearchResults(false);\n };\n\n /**\n * Sets the invoices that are possible to select when the dialog is opened.\n */\n const onOpened = () => {\n setSearchInput('');\n setFilteredInvoicesToSelectedInvoices();\n };\n\n const searchResultString = filteredInvoices.length === 1 ? singleInvoiceFoundString : invoicesFoundString;\n const invoicesFoundReplaceIndex = searchResultString.indexOf('{0}');\n\n return (\n \n \n {modalHeaderLabel}\n \n \n
\n \n
\n {email}\n
\n
\n {shouldShowSearchResults && (\n
\n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\n {filteredInvoices.length}\n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\n
\n )}\n
\n \n \n
\n {invoiceOptions}\n
\n
\n
\n \n \n {submitRequestLabel}\n \n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, isOboRequest } from '@msdyn365-commerce/core';\nimport {\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUsersDataActions,\n InvoicePaidStatus,\n InvoiceSearchCriteria,\n IQueryResultSettings,\n OrderInvoice\n} from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport {\n ArrayExtensions,\n getCustomer,\n GetCustomerInput,\n getInvoices,\n GetInvoicesInput,\n IQueryResultSettingsModuleConfig,\n QueryResultSettingsProxy,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport { InvoiceErrorComponent } from './components/invoice-error-component';\nimport { InvoicesFilterComponent, InvoicesFilterState } from './components/invoices-filter-component';\nimport { InvoicesTableComponent } from './components/invoices-table/invoices-table-component';\nimport { IMakePaymentResources, MakePaymentComponent } from './components/make-payment-component';\nimport { RequestInvoiceButton } from './components/request-invoice-button';\nimport { RequestInvoiceModal } from './components/request-invoice-modal';\nimport { InvoiceModel } from './helpers/invoice-data';\nimport { IAddInvoicesToCartFailureResult } from './helpers/pay-invoices';\nimport { IInvoicesListData } from './invoices-list.data';\nimport { IInvoicesListProps } from './invoices-list.props.autogenerated';\n\nexport type InvoicesListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\nexport type InvoiceErrorHost = 'ADDINVOICETOCART';\n\nexport interface IInvoicesListViewProps extends IInvoicesListProps {\n moduleProps: IModuleProps;\n\n header: JSX.Element;\n filter: JSX.Element;\n content?: JSX.Element;\n invoiceRequestModal?: JSX.Element;\n pagination?: JSX.Element;\n}\n\nexport interface IInvoiceErrorState {\n errorHost?: InvoiceErrorHost;\n errorReason?: IAddInvoicesToCartFailureResult;\n errorMessage: string;\n otherError?: string;\n errorCode?: string;\n}\n\nexport interface IInvoicesListState {\n invoices: InvoiceModel[];\n invoicesFilterState: InvoicesFilterState;\n errorState: IInvoiceErrorState;\n isInvoiceRequestModalOpen: boolean;\n isLoading: boolean;\n isOpen: boolean;\n isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\n@observer\nclass InvoicesList extends React.Component, IInvoicesListState> {\n private readonly _className: string = 'msc-invoices-list';\n\n private readonly payInvoiceRequestReference: React.RefObject;\n\n private readonly makePaymentReference: React.RefObject;\n\n private buttonChildReference: React.RefObject[] = [];\n\n private buttonChildPayButtonReference: React.RefObject[] = [];\n\n private readonly _queryResultSettings: IQueryResultSettings;\n\n private invoiceIds: string[] = [];\n\n constructor(props: IInvoicesListProps) {\n super(props);\n\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\n this.props.context.request,\n this.props.config as IQueryResultSettingsModuleConfig\n ).QueryResultSettings;\n this.payInvoiceRequestReference = React.createRef();\n this.makePaymentReference = React.createRef();\n this._updateInvoicesState = this._updateInvoicesState.bind(this);\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._onToggleInvoiceRequestModal = this._onToggleInvoiceRequestModal.bind(this);\n this._handleFilterStateChange = this._handleFilterStateChange.bind(this);\n this._loadMoreInvoices = this._loadMoreInvoices.bind(this);\n this._requestInvoice = this._requestInvoice.bind(this);\n this._requestSpecificInvoice = this._requestSpecificInvoice.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n this.state = {\n invoices: [],\n invoicesFilterState: InvoicesFilterState.ShowAll,\n isLoading: true,\n isOpen: true,\n isPageLoaded: false,\n errorState: { errorMessage: '' },\n isInvoiceRequestModalOpen: false,\n payInvoiceErrorModalOpen: false,\n selectedButtonElement: null\n };\n }\n\n public shouldComponentUpdate(nextProps: IInvoicesListProps, nextState: IInvoicesListState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className = '', heading },\n context: {\n request: { channel },\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n },\n data: { customerBalance },\n resources: { invoicesListTitle, invoicesListDescTitle, invoicesListDescCount }\n } = this.props;\n\n const totalAmount = customerBalance.result?.OpenInvoiceBalance || 0;\n const amountText = `${formatCurrency(totalAmount.toFixed(2), currencyCode)} ${channel?.Currency || 'USD'}`;\n\n const totalCount = customerBalance.result?.OpenInvoiceCount || 0;\n const countText = invoicesListDescCount.replace('{0}', totalCount.toString());\n const invoicesListTitleHeading = heading?.text ?? invoicesListTitle;\n\n const headerClassName = `${this._className}__header`;\n\n const header = (\n
\n \n
\n
{invoicesListDescTitle}
\n
{amountText}
\n
{countText}
\n
\n
\n );\n\n const viewProps: IInvoicesListViewProps = {\n ...(this.props as IInvoicesListProps),\n moduleProps: {\n moduleProps: this.props,\n className: classnames(this._className, className)\n },\n header,\n invoiceRequestModal: this._renderInvoiceRequestModal(),\n filter: this._renderInvoicesFilter(this._className),\n pagination: this._renderPagination()\n };\n\n if (!this.state.isPageLoaded) {\n return this.props.renderView(viewProps);\n }\n\n if (ArrayExtensions.hasElements(this.state.invoices)) {\n viewProps.content = this._renderListContainer();\n } else {\n viewProps.content = this._renderEmptyInvoiceLinesPageContent();\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public async componentDidMount(): Promise {\n await this.props.data.customer;\n const invoicesData = await this.props.data.invoices;\n this._initializeWithInvoices(invoicesData);\n\n reaction(\n () => this.state.isInvoiceRequestModalOpen,\n async () => {\n if (this.invoiceIds && !this.state.isInvoiceRequestModalOpen) {\n const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n for (const invoiceId of this.invoiceIds) {\n await BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(\n context,\n b2bUserId,\n invoiceId,\n BusinessPartnerOperationDeliveryType.Email\n );\n }\n this.invoiceIds = [];\n }\n }\n );\n }\n\n private _initializeWithInvoices(invoicesData: OrderInvoice[]): void {\n const invoices = invoicesData.map((invoice, index) => {\n this.buttonChildReference[Number(index)] = React.createRef();\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\n return new InvoiceModel(invoice);\n });\n this.setState({\n invoices,\n isLoading: false,\n isPageLoaded: true\n });\n }\n\n private _addInvoices(invoicesData: OrderInvoice[]): void {\n const newInvoices = invoicesData.map(invoice => new InvoiceModel(invoice));\n const invoices = this.state.invoices.concat(newInvoices);\n this.setState({\n invoices,\n isLoading: false\n });\n }\n\n private _renderEmptyInvoiceLinesPageContent(): JSX.Element {\n const containerClass = `${this._className}__empty-lines__container`;\n const actionsContainerClass = `${containerClass}__actions`;\n return (\n
\n
{this.props.resources.invoiceEmptyInvoiceLinesTitle}
\n
{this.props.resources.invoiceEmptyInvoiceLinesDescription}
\n
\n \n {this.props.resources.invoiceEmptyInvoiceLinesContinueShoppingButtonText}\n \n
\n
\n );\n }\n\n private _renderListContainer(): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerHeaderClass = `${containerClass}__header`;\n const containerContentClass = `${containerClass}__content`;\n const isOnBehalfOfRequest = isOboRequest(this.props.context.request);\n\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass, isOnBehalfOfRequest)}\n {this._renderInvoiceRequestButton()}\n
\n
{this._renderInvoiceErrors()}
\n
{this._renderInvoicesList(containerContentClass)}
\n
\n );\n }\n\n private _updateInvoicesState(): void {\n this.setState({\n invoices: this.state.invoices\n });\n }\n\n private async _getInvoicesSearchCriteria(state: InvoicesFilterState): Promise {\n const searchCriteria: InvoiceSearchCriteria = {};\n\n const context = this.props.context.actionContext;\n\n const businessPartner = await getCurrentAsync({ callerContext: context });\n searchCriteria.BusinessPartnerId = businessPartner?.BusinessPartnerId;\n\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\n searchCriteria.CustomerId = customer?.AccountNumber;\n\n switch (state) {\n case InvoicesFilterState.ShowAll:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.None];\n break;\n case InvoicesFilterState.Paid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Paid];\n break;\n case InvoicesFilterState.PartiallyPaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.PartiallyPaid];\n break;\n case InvoicesFilterState.Unpaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Unpaid];\n break;\n default:\n throw new Error('Failed to process unknown invoices filter state.');\n }\n\n return searchCriteria;\n }\n\n private async _handleFilterStateChange(state: InvoicesFilterState): Promise {\n this.setState({\n invoicesFilterState: state,\n isLoading: true\n });\n\n const searchCriteria = await this._getInvoicesSearchCriteria(state);\n\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip = 0;\n }\n\n const invoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._initializeWithInvoices(invoices);\n }\n\n private _renderInvoicesFilter(className: string): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerContentClass = `${containerClass}__content`;\n const filterClassName = `${className}__filter`;\n return (\n
\n
{this._renderInvoiceInCartPaymentMessage()}
\n \n
\n );\n }\n\n private _renderInvoicesList(className: string): JSX.Element {\n const tableClassName = `${className}__table`;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState, reference?: React.RefObject): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n errorState.errorMessage =\n newErrorState.errorReason?.failureReason === 'EMPTYINPUT'\n ? this.props.resources.invoiceErrorInvoiceIdNotExist\n : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\n\n const shouldShowAdditionalInfoInPopup =\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\n }\n\n private _renderMakePayment(className: string, disabled: boolean): JSX.Element {\n const id = `${className}__make-payment`;\n const makePaymentResources: IMakePaymentResources = {\n makePaymentButtonText: this.props.resources.makePaymentButtonText,\n makePaymentButtonAriaLabel: this.props.resources.makePaymentButtonAriaLabel\n };\n\n const selectedInvoices = this._getSelectedInvoices();\n\n return (\n \n );\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({\n payInvoiceErrorModalOpen: false\n });\n this.state.selectedButtonElement?.focus();\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${this._className}__errors`;\n\n return (\n \n );\n }\n\n private _renderInvoiceInCartPaymentMessage(): JSX.Element {\n const cart = this.props.data.cart?.result;\n\n if (!cart?.hasInvoiceLine) {\n return <>;\n }\n\n return (\n \n \n \n );\n }\n\n // Dismiss alert.\n private readonly _onDismiss = () => {\n this.setState({\n isOpen: false\n });\n };\n\n private _renderPagination(): JSX.Element | undefined {\n const { data, resources } = this.props;\n const invoices = data?.invoices?.result;\n if (!invoices || invoices.length < this._queryResultSettings.Paging!.Top!) {\n return undefined;\n }\n\n return (\n \n {resources.invoicesLoadMore}\n \n );\n }\n\n private async _loadMoreInvoices(): Promise {\n this.setState({ isLoading: true });\n const searchCriteria = await this._getInvoicesSearchCriteria(this.state.invoicesFilterState);\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip! += this._queryResultSettings.Paging.Top!;\n }\n const newInvoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._addInvoices(newInvoices);\n }\n\n private _renderInvoiceRequestModal(): JSX.Element {\n const customer = this.props.data.customer.result;\n const {\n invoiceRequestModalCancelLabel,\n invoiceRequestModalSubmitLabel,\n invoiceRequestModalHeaderLabel,\n invoiceRequestModalSendToEmailLabel,\n invoiceRequestModalSearch,\n invoiceRequestModalInvoiceSearchDisplay,\n invoiceRequestModalSingleInvoiceSearchDisplay,\n invoiceRequestModalSearchButton\n } = this.props.resources;\n\n return (\n \n );\n }\n\n private _onToggleInvoiceRequestModal(): void {\n this.setState({\n isInvoiceRequestModalOpen: !this.state.isInvoiceRequestModalOpen\n });\n if (this.state.isInvoiceRequestModalOpen) {\n this.state.selectedButtonElement?.focus();\n }\n }\n\n /**\n * Request specific invoice function.\n */\n private readonly _onToggleInvoiceRequestParentModal = () => {\n this.setState(\n {\n selectedButtonElement: this.payInvoiceRequestReference.current\n },\n () => {\n this._onToggleInvoiceRequestModal();\n }\n );\n };\n\n private _renderInvoiceRequestButton(): JSX.Element | null {\n const { invoiceRequestButtonLabel } = this.props.resources;\n const customer = this.props.data.customer.result;\n\n if (StringExtensions.isNullOrWhitespace(customer?.Email)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _requestInvoice(invoiceId: string): void {\n this.invoiceIds.push(invoiceId);\n this._onToggleInvoiceRequestModal();\n }\n\n private _getSelectedInvoices(): InvoiceModel[] {\n let selectedInvoices = this.state.invoices.filter(invoice => invoice.isSelected);\n if (!ArrayExtensions.hasElements(selectedInvoices)) {\n selectedInvoices = this.state.invoices;\n }\n\n return selectedInvoices;\n }\n\n private _requestSpecificInvoice(\n specificInvoice: InvoiceModel,\n requestInvoiceButtonReference: React.RefObject\n ): void {\n this.state.invoices.forEach((invoice: InvoiceModel) => {\n if (invoice === specificInvoice) {\n invoice.isSelected = true;\n } else {\n invoice.isSelected = false;\n }\n });\n this.setState({\n selectedButtonElement: requestInvoiceButtonReference.current\n });\n this._onToggleInvoiceRequestModal();\n }\n}\n\nexport default InvoicesList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["CountrySelector","React","constructor","props","super","isCMS","this","_updateViewport","bind","viewport","context","request","device","Type","state","isMobile","menuItemList","locale","nameTranslations","nameTranslation","length","find","item","Language","toLowerCase","Text","componentDidMount","resizeThrottledEventHandler","window","addThrottledEvent","componentWillUnmount","removeEventListener","render","_mapData","isEmptyOrNullObject","data","telemetry","error","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","viewProps","_objectSpread","imageSettings","gridSettings","Navigation","moduleProps","className","classnames","config","tag","role","countrySelectorAriaLabel","MenuList","ListItem","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","MobileDescriptionLabel","isMobileView","menuItemData","renderView","mergedData","cmsNavItems","map","push","_constructMenuItemData","cmsItem","id","CMSItemIdInit","linkText","linkURL","linkUrl","destinationUrl","imageDestinationURL","imageLink","imageSource","image","src","subMenu","_getCMSNestedChildren","category","nestedChildren","subMenus","idx","_getViewport","setState","undefined","innerWidth","sm","md","lg","__decorate","observable","computed","CountrySelectorView","currentLevel","escapeKey","_handleDropdownToggle","parentId","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","event","contains","target","_escFunction","keyCode","_closeSubmenu","categoryImageAltText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","document","body","addEventListener","_renderMobileMenu","_renderDesktopMenu","Module","Object","assign","menuItem","_renderDrawerMenu","Node","ref","tabIndex","_renderDisplay","_renderDrawer","_renderLinkMenuItem","toggleButtonText","toggleButtonImg","Drawer","key","_renderLinkText","countrySelectorIntroText","menuSubItem","_renderDrawerLink","linkImg","alt","_renderSpanMenuItem","i","_getFromSubMenu","_createMenuItemList","forEach","index","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","levelClassName","menuOptions","option","hasOptions","haveSubmenu","_renderMenu","onFocus","imagesource","contentAction","etext","attributes","getTelemetryAttributes","currentLang","location","origin","sitePath","href","onTelemetryClick","level","currentItem","submenu","DivContainerClass","convert_a2_to_a3","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","_props$context$reques","AccountLoyaltyTile","heading","description","links","description__no_decimals","tmp_account","user","customerAccountNumber","replace","usingNewLoyalty","cardBeingGeneratedText","AddressShow","_ref","AddressDetail","items","AddressList","_ref2","List","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","_other$moduleProps","_other$moduleProps2","_other$moduleProps3","_other$moduleProps4","_document","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","other","_objectWithoutProperties","_excluded","resources","localeString","currency","channel","Currency","includes","hasAddressError","setHasAddressError","countriesAvail","enGB","autocomplete","select","it","enUS","eu","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","populateFormElements","addressComponent","formMap","addressType","types","getElementById","googleComponent","input","selectedValue","elmnt","value","is_convert_a2_to_a3","options","eValue","selectItemByValue","short_name","Event","bubbles","dispatchEvent","formValue","long_name","call","eCustom","googleComponents","autocompleteFormField","google","maps","places","Autocomplete","componentRestrictions","country","setAttribute","startTypingYourAddress","clearInstanceListeners","addListener","place","getPlace","name","addressComponents","address_components","gMapsAutocomplete","querySelectorAll","o","optionV","remove","countrySelect","querySelector","optionDEF","parentNode","disabled","Boolean","checkPhone","saveAddressButton","phone","phoneCtn","closest","phoneAlert","getElementsByClassName","pattern","pattern2","onkeyup","match","classList","add","textContent","addressPhoneRequiredErrorMessage","removeAttribute","addressForm","county","countyCtn","countyAlert","onclick","e","test","elements","fieldInALL","element","stopPropagation","phoneValidation","updatedCount","reload","AddressItem","label","alert","maxLength","AddressError","addressErrorMessage","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","isShowAddresList","isShowAddOrUpdateAddress","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","innerHTML","textGenericMarketing","textProfiling","textThirdParty","bd_input","canonicalDomain","LoyaltySignUp","memberHeading","signInLink","signUpText","signUpButton","detailsLink","loading","infoMessageBar","loyalty_join_toggle_btn","loyalty_join_btn","loyalty_join_flag","query","hasJoined","joinedLoyaltyThankYouHeader","joinedLoyaltyParagraphContent","buildReviewCard","cardProps","headerProps","date","rating","cardBodyProps","reviewProps","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","edit","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_props$data$ratingsSu","_props$resources$prod","_props$resources$revi","noReviewsWithFilterMessage","pageControls","reportReviewModal","reviewCards","reviewModal","userReview","modalOpen","setModalOpen","_toggleReviewModal","style","overflowY","buttonLabel","ratingsSummary","result","averageRating","product_review_list_button_label","reviewListLabel","page_summary","modal_summary","isFilterApplied","display","review","SignInLoading","icon","_props$resources$cont","_props$resources$cont2","signIn","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signUpSectionHeading","signUpDescription","signUpLink","requestUrl","signUpButtonText","handleGaGuestCheckout","_window$dataLayer","_window$dataLayer$pus","dataLayer","handleGaSignUp","_window$dataLayer2","_window$dataLayer2$pu","isShowLoading","registerButtonLink","vclubButtonLink","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","signinVclubTitle","signinVclubText","continueAsGuest","modalToggle","isAuthenticated","signInLabel","reviewButtonLabel","AccordionItem","moduleClassName","handleHeadingChange","accordionItemTitle","_onToggle","shouldComponentUpdate","nextProps","slots","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","text","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","aadGeneric","aadAPIConainer","AccountInvoiceTile","OrganizationUsersTile","ariaLabel","noclick","attribute","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","NameTranslations","Url","_nameTranslation","ArrayExtensions","hasElements","_getPDPLinks","categoryPaths","product","url","Name","hideProductName","_goBack","history","back","_getPDPBackButton","MsDyn365","isBrowser","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","link","CatalogPicker","handleTextChange","handleParagraphChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","getUrlSync","fullUrl","URL","searchParams","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","Image","generateImageUrl","apiSettings","Uri","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","baseUrl","isCookieValueSet","get","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","countryPickerSubHeading","countryPickerActionLink","createLink","currentSiteButton","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","renderCountryList","stayOnCurrentSiteButton","handleLinkTextChange","_this$props$config$ac","StringExtensions","isNullOrEmpty","_link$linkText","editableLink","openInNewTab","additionalProperties","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","imageProps","displayString","shouldSkipToMainImage","displaySubString","countryPickerView","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","quantity","IncrementalQuantity","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","BackTopFooter","backtoTopText","destination","BackToTop","FooterCategory","categories","FooterList","FooterListItem","FooterCategoryView","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","ariaHiddenAttr","FooterItemView","_renderElement","ImageList","images","_renderImageListItems","imageList","disableLazyLoad","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","InteractiveFeatureItem","linkIndex","_this$props$config$li","Number","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","InvoiceDetailsHeaderComponent","msdyn365Commerce","createComponent","component","invoiceDetails","onError","invoiceNumberText","invoiceIdLabel","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","invoiceDate","cultureFormatter","formatDate","year","month","day","formatShortDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","isOnBehalfOfRequest","isOboRequest","invoicePlacedByLabel","customerName","invoiceAmountDueText","formatAmount","amount","currencyCode","formatCurrency","amountDue","PayInvoiceComponent","invoice","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","Quantity","productUrl","ProductName","ProductId","getProductPageUrlSync","_renderProductImage","_context$request$app","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","OmniChannelMedia","primaryImageUrl","fallBackSrc","_renderProductDimensions","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","products","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","status","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","Paid","InvoiceDetails","errorState","errorMessage","otherError","_onAddToCartFailed","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","payInvoiceErrorModalOpen","_renderHeader","_renderProducts","paymentDetails","_renderPaymentDetails","payInvoiceError","_renderInvoiceErrors","_className","channelId","arguments","productInputs","filter","ProductInput","getSimpleProductsAction","newErrorState","errorHost","errorCode","_this$state$errorStat","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","cartUrl","errorClassName","InvoiceErrorComponent","showError","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","setPayInvoiceErrorModalClose","InvoiceDetailsView","messageHeader","errorMessages","Alert","color","assertive","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","invoiceStatusPaid","PartiallyPaid","invoiceStatusPartiallyPaid","Unpaid","invoiceStatusUnpaid","onClickHandler","onStateClick","InvoicesFilterComponent","popoverRef","popoverState","setPopoverState","togglePopover","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","innerRef","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","InvoicesTableHeaderComponent","rowClassName","switchCheckedState","onSelectAll","isSelectedAll","headerCells","getMobileHeaderCells","type","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","onRequestSpecificInvoice","requestInvoiceButtonReference","setShowActions","onRequestInvoice","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","useState","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","wrapperRefiner","refinerRefernce","handleClickOutside","useOutsideClick","reference","payInvoiceReferences","RequestInvoiceButton","innerReference","invoiceReferences","requestInvoiceButtonLabel","invoiceRequestButtonLabel","onClicked","InvoicesTableRowComponent","onSelectLine","isSelected","rowCells","getMobileRowCells","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","getDesktopRowCells","customer","isCurrentUser","AccountNumber","invoiceCurrentUser","_window","getViewport","onSelectAllHandler","invoices","InvoicesTableComponent","setIsMobile","updateViewport","headerClassName","all","isAdmin","IsB2bAdmin","invoiceButtonReferences","payInvoiceButtonReferences","MakePaymentComponentActions","async","_event","setDisabled","payInvoices","buttonReferences","MakePaymentComponent","hasInvoices","canBePaid","makePaymentButtonAriaLabel","makePaymentButtonText","PayInvoiceComponentActions","payInvoiceButtonAriaLabel","payInvoiceButtonText","InvoiceModel","CustomerAccountNumber","invoiceStatus","None","invoiceStatusNone","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","errorDetails","LocalizedMessage","ErrorResourceId","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","_inputInvoice$current","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","htmlFor","RequestInvoiceModal","email","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","_focusElement$current","searchEntered","searchEnteredHandler","updatedInvoices","toLocaleUpperCase","searchResultString","invoicesFoundReplaceIndex","indexOf","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","substring","placeholder","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_onDismiss","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","invoicesFilterState","isLoading","isPageLoaded","isInvoiceRequestModalOpen","nextState","_customerBalance$resu","_customerBalance$resu2","_heading$text","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","toFixed","totalCount","OpenInvoiceCount","countText","invoicesListTitleHeading","Heading","invoiceRequestModal","_renderInvoiceRequestModal","_renderInvoicesFilter","pagination","_renderPagination","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","reaction","_this$props$data$b2bU","callerContext","b2bUserId","b2bUserInformation","B2BUserId","invoiceId","BusinessPartnerUsersDataActions","BusinessPartnerOperationDeliveryType","Email","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","_renderInvoiceInCartPaymentMessage","tableClassName","_newErrorState$errorR","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleTypeName","navigationUrl","_this$state$selectedB","invoiceErrorMessageHeader","_this$props$data$cart","cart","hasInvoiceLine","invoiceInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","specificInvoice","InvoiceListView","Map","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","selectionColor","_getSvgIcon","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","classname","show","Header","MapProps","MapHeader","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_document2","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","openGlyph","closeGlyph","glyphPlacement","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","currentTarget","cookieConfig","siteOptions","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","params","isEditor","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","isUserReview","reviewTitle","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","imageUrl","renderProductImage","filterByDropdown","noReviewsMessage","refineReviewsProps","reviewsListProps","sortByDropdown","selectRatingLabel","reviewTitleLabel","reviewTextLabel"],"sourceRoot":""}