{"version":3,"file":"static/js/62.e74d62c3528e8e6bd1da.chunk.js","mappings":"oVAiBA,MAwBA,EAxBkEA,IAO7D,IAP8D,UAC/DC,EAAS,MACTC,EAAK,UACLC,EAAS,KACTC,EAAI,iBACJC,EAAgB,SAChBC,GACHN,EAEG,MAAMO,EAAuB,CACzBC,QAASP,EACT,eAAgBA,GAGpB,OACIQ,EAAAA,cAAA,SAAOC,UAAU,uDACbD,EAAAA,cAACE,EAAAA,EAAqBC,OAAAC,OAAA,GAAK,CAAEC,KAAM,WAAYJ,UAAW,8BAA+BR,MAAOA,EAAOI,SAAUA,EAAUS,qBAAsBR,EAAsBF,iBAAkBA,EAAkBW,aAAa,MACxNP,EAAAA,cAAA,QAAMC,UAAU,+DACXN,GAED,ECrBhB,EANiEJ,IAAA,IAAC,KAC9DI,GACHJ,EAAA,OACOS,EAAAA,cAAA,KAAGC,UAAU,wCAAwCN,EAAS,E,6lBCmDtE,IAAMa,EAAN,cAAqCR,EAAAA,UA6BjCS,YAAYC,GACRC,MAAMD,GAxBU,KAAAE,gBAA0B,MAWtC,KAAAC,mBAA6BC,KAAKJ,MAAMK,QAAQC,IAAIC,OAAOC,yBAA2B,EAMtF,KAAAC,MAAgB,EAChB,KAAAC,qBAA6C,CAAC,EAC9C,KAAAC,mBAA6B,EAC7B,KAAAC,mBAA6B,MA2O7B,KAAAC,qBAAuB,IACvBT,KAAKO,mBAAqBP,KAAKK,KAE3BnB,EAAAA,cAACwB,EAAAA,EAAa,CACVT,QAASD,KAAKJ,MAAMK,QACpBU,cAAeX,KAAKW,cACpBC,wBAAyBZ,KAAKa,8BAC9BC,4BAA6Bd,KAAKe,4BAIvC,KAEH,KAAAC,mCAAqC,KAAW,IAAAC,EACpD,MAAM,SAAEC,EAAQ,qBAAEC,GAAyBnB,KAAKJ,MAAMwB,KAChDC,EAAsB,QAAlBJ,EAAGC,EAASI,cAAM,IAAAL,OAAA,EAAfA,EAAiBM,aAAaF,KACrCG,EAAwBL,GAAwBA,EAAqBG,QAAUH,EAAqBG,OAAOG,gBAAkB,GAC7HC,EAAiBL,GAAQA,EAAKM,WAAaN,EAAKM,UAAUC,OAC1DC,EAAkBR,GAAQA,EAAKM,WAAoJ,IAAvIN,EAAKM,UAAUG,QAAOC,GAAQA,EAAKC,QAAUD,EAAKC,OAAOC,sBAAwBT,EAAsBS,sBAAqBL,OAC9K,GAAuB,IAAnBF,GAAwBG,EAAiB,CACzC,MAAMK,EAAiBlC,KAAKmC,qBACxBD,IACAlC,KAAKoC,mBAAmBF,GACxBlC,KAAKqC,gBAAkB,GACvBrC,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKyC,gB,GAK7D,KAAAC,0BAA4B,KAChC,IAAIC,EAAqB3C,KAAK4C,cAAcC,iBAAiB7C,KAAK8C,iBAAiBC,0BAA4B/C,KAAKF,iBASpH,OARAE,KAAKK,KAAOL,KAAK8C,iBAAiBC,2BAA6B/C,KAAKQ,mBACpER,KAAKM,qBAAuBN,KAAK4C,cAAcI,gCAC3ChD,KAAKiD,UAAUC,iCACflD,KAAKmD,mBAELnD,KAAKK,OAASL,KAAKW,gBACnBgC,EAAqBA,EAAmBb,QAAOC,GAAsB,SAAdA,EAAKqB,MAAiC,UAAdrB,EAAKqB,SAEjFC,EAAAA,EAAAA,GACH,CACIJ,UAAWjD,KAAKiD,UAChBK,YAAaC,EAAAA,EAAYC,QACzBZ,cAAeD,EACfc,uBAAwBzD,KAAKF,gBAC7BC,mBAAoBC,KAAKD,mBACzB2D,gBAAiB1D,KAAK8C,iBACtBa,gBAAiB3D,KAAK2D,gBACtBC,sBAAuB5D,KAAK4D,sBAC5BC,oBAAqB7D,KAAKM,qBAC1BxB,iBAAkBkB,KAAKlB,iBACvBgF,cAAe9D,KAAK+D,+BACpBC,iBAAkBhE,KAAKiE,kCACvBC,uBAAwBlE,KAAKJ,MAAMuE,YAAYD,uBAC/CE,OAAQpE,KAAKqE,iBACbC,SAAUtE,KAAKuE,WACfC,cAAexE,KAAKS,sBAE3B,EAWG,KAAAgE,mCAAqC,KACzC,MAAMvC,EAAiBlC,KAAKmC,qBACxBD,GACAlC,KAAKoC,mBAAmBF,GACxBlC,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKyC,gBACzDzC,KAAKJ,MAAMuE,YAAYO,WAEvB1E,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,I,EAI9C,KAAAC,qCAAuC,KAC3C,MAAMC,EAA4B7E,KAAK8E,2BAA2B,mBAAqB,IAClFC,EAAAA,EAAAA,oBAAmBF,IAGpB7E,KAAKgF,gCAAiC,EACtChF,KAAKiF,wBAAyB,EAC9BjF,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,MAJ9C3E,KAAKkF,sBAAsBL,E,EAQ3B,KAAAM,wBAA0B,KAC9B,MAAMN,EAA4B7E,KAAK8E,2BAA2B,mBAAqB,IAClFC,EAAAA,EAAAA,oBAAmBF,IAGpB7E,KAAKgF,gCAAiC,EACtChF,KAAKiF,wBAAyB,GAH/BjF,KAAKkF,sBAAsBL,E,EAO1B,KAAAK,sBAAyBL,IAC7B,MAAMpC,EAA0B2C,KAAKC,MAAMR,GACvCpC,IACAzC,KAAKoC,mBAAmBK,GACxBzC,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKyC,gBACzDzC,KAAKJ,MAAMuE,YAAYO,U,EAIvB,KAAAvC,mBAAqB,KACzB,MAAM0C,EAA4B7E,KAAK8E,2BAA2B,mBAAqB,GACvF,KAAKC,EAAAA,EAAAA,oBAAmBF,GACrB,OAAOO,KAAKC,MAAMR,GAGrB,GAAI7E,KAAKsF,kBAAmB,CAExB,OADuBtF,KAAKsF,kBAAkBC,MAAMC,GAAqBA,EAAQC,cACvDzF,KAAKsF,kBAAkB1D,OAAS,EAAI5B,KAAKsF,kBAAkB,QAAKI,E,CAE9E,EAGZ,KAAAC,iBAAoB7F,IAA2B,IAAA8F,EACnD5F,KAAKF,gBAAkBA,EACvB,MAAM+F,EAA0B7F,KAAK4C,cAAckD,0BAA0BhG,IAC7EiG,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,yBAA8BhD,KAC3DiG,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,uBAA4B+C,IACzC,QAAhBD,EAAA5F,KAAKgG,mBAAW,IAAAJ,GAAhBA,EAAkBK,gCAAgCJ,GAClD7F,KAAKkG,qBAAqB,EAGtB,KAAAC,6BAA+B,KACnC,MAAM,OAAEhG,GAAWH,KAAKJ,MAClBwG,EAA8C,GAQpD,OANKjG,EAAOkG,iBACRD,EAAyBE,KAAKC,EAAAA,GAAgBC,kBAGlDJ,EAAyBE,KAAKC,EAAAA,GAAgBd,WAEvCW,CAAwB,EAG3B,KAAAK,sBAAwBC,UAC5B,MACItF,MACIuF,2BAA6BrF,OAAQqF,KAEzC3G,KAAKJ,MAEsC,IAAAgH,EAA3CD,SAAAA,EAA2BE,iBACX,QAAhBD,EAAA5G,KAAKgG,mBAAW,IAAAY,GAAhBA,EAAkBE,kBAAkB,yBAA0B,mCAAoC9G,KAAK+G,uB,EAKvG,KAAAA,sBAAwBL,UAC5B1G,KAAKkG,sBACL,MAAMV,EAAUxF,KAAK4C,cAAcoE,qBAAqB1F,EAAQtB,KAAKmD,oBACrE4C,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,OAAY,MACzCiD,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,QAAa0C,EAAQyB,WAClDlB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,WAAgB0C,EAAQ0B,cACrDnB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,KAAU0C,EAAQ2B,QAC/CpB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,MAAW0C,EAAQ4B,SAChDrB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,aAAkB0C,EAAQ6B,gBACvDtB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,YAAiB0C,EAAQ8B,cAEtDC,YAAW,MACPxB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,OAAY0C,EAAQgC,QAAS,GACnD,EAAE,EAKT,KAAAtB,oBAAsB,KACAlG,KAAK4C,cAAcC,iBAAiB7C,KAAK8C,iBAAiBC,0BAA4B/C,KAAKF,iBACnG2H,SAAQC,IAAS,IAAAC,OACYjC,IAAvC1F,KAAK8C,iBAAiB4E,EAAOtE,OAAwC,QAAjBuE,EAAC3H,KAAKgG,mBAAW,IAAA2B,GAAhBA,EAAkBC,sBAAsBC,SAASH,EAAOtE,QAC7GpD,KAAK4C,cAAc8E,EAAOtE,MAAQ,G,IAG1CpD,KAAK8H,kBAAkB,EAInB,KAAAA,iBAAmB,KACvB9H,KAAK2D,gBAAkB,CAAC,CAAC,EAGrB,KAAAoE,mBAAqB,CAAC3E,EAAczE,MACxCoH,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,CAACM,GAAOzE,IACrCqB,KAAK4C,cAAcoF,sBAAsBhI,KAAK8C,iBAAkB9C,KAAK2D,gBAAiB3D,KAAKF,gBAAiBsD,EAAK,EAG7G,KAAAW,+BAAkCkE,IACtC,MAAMtJ,GAASsJ,EAAMC,OAAOvJ,OAAS,IAAIwJ,QAAQ,IAAIC,OAAO,OAAQ,MAAO,IAC3EpI,KAAK+H,mBAAmBE,EAAMC,OAAO9E,KAAMzE,EAAM,EAG7C,KAAAsF,kCAAqCgE,IACzCjI,KAAK+H,mBAAmBE,EAAMC,OAAO9E,KAAM6E,EAAMC,OAAOvJ,OAEpDsJ,EAAMC,OAAO9E,OAASmD,EAAAA,GAAgBA,EAAAA,GAAgBxD,2BACtD/C,KAAK2F,iBAAiBsC,EAAMC,OAAOvJ,M,EAInC,KAAA0J,mBAAqB,MACpBrI,KAAKF,iBAAqBE,KAAKsI,mBAAqB/F,EAAAA,EAAiBoC,KAAO3E,KAAKsI,mBAAqB/F,EAAAA,EAAiBgG,QAK5HvI,KAAKwI,cAAcC,kBAAkBzI,KAAKF,iBAAiB4I,MACtDpH,IACqBA,EAAOqH,MAAKC,GAASA,EAAMC,UAAY7I,KAAK8C,iBAAiBsE,UAG3ErB,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,MAAW,KAE5C9C,KAAKmD,kBAAoB7B,CAAM,GACjC,EAGF,KAAAwH,iBAAmB,KACvB9I,KAAKJ,MAAMuE,YAAY4E,KAAK,CACxBC,OAAQhJ,KAAKiJ,yBAA2B,WAAa,WACrDC,OAAQlJ,KAAKkJ,OACb5E,SAAUtE,KAAKsE,SACf6E,SAAUnJ,KAAKmJ,WAGnB,MAAM,eAAE1G,EAAc,sCAAE2G,GAA0CpJ,KAAKJ,MAAMwB,KAAKF,SAASI,QAAU,CAAC,EAElGtB,KAAKiJ,2BACDxG,GACAzC,KAAKgF,+BAAiCoE,IAAyC,EAC/EpJ,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMC,GACpDzC,KAAKqJ,sBACErJ,KAAKsJ,gCACZtJ,KAAKgF,gCAAiC,EACtChF,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKuJ,mBAEzDvJ,KAAKgF,gCAAiC,EACtChF,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,KAC9C3E,KAAKO,mBAAoB,G,EAY7B,KAAAiJ,sCAAyCvB,IAC7CjI,KAAKgF,+BAAiCiD,EAAMwB,cAAcxK,QAEtDe,KAAKgF,gCAAkChF,KAAKuJ,iBAC5CvJ,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKuJ,iBACzDvJ,KAAKO,mBAAoB,IAEzBP,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,IAAK3E,KAAKyC,gBACxDzC,KAAKO,mBAAoB,E,EAqFzB,KAAA8D,iBAAmB,KACvB,IAAKrE,KAAK4C,cAAcoF,sBAAsBhI,KAAK8C,iBAAkB9C,KAAK2D,gBAAiB3D,KAAKF,iBAG5F,OAFAE,KAAKJ,MAAMuE,YAAYuF,aAAY,QACnC1J,KAAKW,eAAgB,GAIzBX,KAAKoC,mBAAmBpC,KAAK8C,kBAC7B9C,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAK8C,kBACzD9C,KAAKqJ,qBACL,MAAMxE,EAA4BO,KAAKuE,UAAU3J,KAAK0D,iBACtD1D,KAAK4J,sBAAsB,iBAAiB/E,GAAmBgF,OAAMC,GAAS9J,KAAKJ,MAAMmK,UAAUD,MAAM,kCAAkCA,MAAS,EAIhJ,KAAAF,sBAAuBlD,MAAMsD,EAAarL,KAAiB,IAAAsL,QAC1B,QAArCA,EAAMjK,KAAKJ,MAAMwB,KAAKF,SAASI,cAAM,IAAA2I,OAAA,EAA/BA,EAAiC1I,aAAa2I,0BAChD,CAACC,uBAAwB,CACrB,CAACC,IAAIJ,EAAKK,MAAO,CAACC,YAAa3L,OAEtC,EAGG,KAAAwK,SAAW,KACf,OAAQnJ,KAAKsI,kBACT,KAAK/F,EAAAA,EAAiBoC,IACtB,KAAKpC,EAAAA,EAAiBgG,OAClBvI,KAAKqE,mBACL,MACJ,KAAK9B,EAAAA,EAAiBC,KAClB,GAAIxC,KAAK0D,gBAAiB,CACtB,MAAMmB,EAA4BO,KAAKuE,UAAU3J,KAAK0D,iBACtD1D,KAAKoC,mBAAmBpC,KAAK0D,iBAC7B1D,KAAK4J,sBAAsB,iBAAiB/E,GAAmBgF,OAAMC,GAAS9J,KAAKJ,MAAMmK,UAAUD,MAAM,kCAAkCA,OAC3I9J,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAK0D,iBACzD1D,KAAKqJ,oB,CAET,MACJ,QACIrJ,KAAKJ,MAAMmK,UAAUD,MAAM,qB,EAI/B,KAAAxF,SAAW,KACf,OAAQtE,KAAKsI,kBACT,KAAK/F,EAAAA,EAAiBoC,IACtB,KAAKpC,EAAAA,EAAiBgG,OAClBvI,KAAKuE,aACLvE,KAAKkG,sBACL,MACJ,KAAK3D,EAAAA,EAAiBC,KAElBxC,KAAKuE,aACL,MACJ,QACIvE,KAAKJ,MAAMmK,UAAUD,MAAM,qB,EAI/B,KAAAZ,OAAS,KACTlJ,KAAKgF,gCAAkChF,KAAKuJ,iBAAmBvJ,KAAKsJ,+BACpEtJ,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKuJ,kBAEzDvJ,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,IAAK3E,KAAKyC,gBACxDzC,KAAKO,mBAAoB,GAE7BP,KAAKJ,MAAMuE,YAAYoG,YAAY,EAG/B,KAAAnI,mBAAsBoD,IAC1B,GAAIxF,KAAKJ,MAAMwB,KAAKF,SAASI,OAAQ,CACjC,MAAMkJ,EAAiBC,EAAA,GAAQjF,GAE3BA,EAAQzC,2BAA6ByH,EAAkBE,yBACvDF,EAAkBE,uBAAyB1K,KAAK4C,cAAckD,0BAA0BN,EAAQzC,2BAIpG/C,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOqJ,qBAAqB,CAAEH,oBAAmBI,qBAAsB,CAAExB,sCAAuCpJ,KAAKgF,iC,GAI9I,KAAAT,WAAa,KACjBvE,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAMxC,KAAKyC,gBACzDzC,KAAKqJ,qBACLrJ,KAAKO,mBAAoB,CAAK,EAG1B,KAAA+B,wBAA0B,CAACuI,EAA6BnH,KAC5D,QAAwBgC,IAApBhC,EAA+B,CAG/BA,EAAkB,CAACoH,KAFE9K,KAAK+K,qCAAuC,GAElCC,MADThL,KAAK8E,2BAA2B,gBAAkB,G,CAG5E9E,KAAKsI,iBAAmBuC,EACxB7K,KAAK0D,gBAAkBA,EAEnB1D,KAAKsI,mBAAqB/F,EAAAA,EAAiBoC,KAAO3E,KAAKsI,mBAAqB/F,EAAAA,EAAiBgG,SAC7FvI,KAAK8C,iBAAmB2H,EAAA,GAAKzK,KAAK0D,kBAAqB,CAAC,GACxDqC,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,yBAA8B9C,KAAK8C,iBAAiBC,0BAA4B/C,KAAKF,mBAClHiG,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,iBAAsB9C,KAAK8C,iBAAiB0D,kBAAoBxG,KAAKD,qB,EAIlG,KAAAgL,kCAAoC,IAGjC,GAFW/K,KAAK8E,2BAA2B,cAAgB,MACjD9E,KAAK8E,2BAA2B,aAAe,KAK5D,KAAAuE,mBAAqB,KACrBrJ,KAAKsI,mBAAqB/F,EAAAA,EAAiBC,MAC3CxC,KAAKJ,MAAMuE,YAAYO,UACvB1E,KAAKO,mBAAoB,IAEzBP,KAAKJ,MAAMuE,YAAYoG,aACvBvK,KAAKiL,sB,EAIL,KAAAA,oBAAsB,KAC1BjL,KAAKO,mBAAoB,EACzBP,KAAK8C,iBAAmB,CACpBgI,KAAM9K,KAAK8C,iBAAiBgI,KAC5BE,MAAOhL,KAAK8C,iBAAiBkI,MAC7BjI,yBAA0B/C,KAAK8C,iBAAiBC,0BAA4B/C,KAAKF,gBACpF,EAGG,KAAAiB,0BAA4B,KAChCf,KAAKW,eAAiBX,KAAKW,aAAa,EAKpC,KAAAE,8BAAiC2E,IAErC,KAAMA,GAAWA,EAAQ0F,SAAW1F,EAAQ2F,MAAQ3F,EAAQ4F,UAAY5F,EAAQ6F,QAAU7F,EAAQ8F,QAM9F,YALAtL,KAAK8C,iBAAmB,CACpBgI,KAAM9K,KAAK8C,iBAAiBgI,KAC5BE,MAAOhL,KAAK8C,iBAAiBkI,MAC7BjI,yBAA0B/C,KAAK8C,iBAAiBC,0BAA4B/C,KAAKF,kBAKzF,MAAMsD,EAAOpD,KAAK8C,iBAAiBgI,KAC7BS,EAAQvL,KAAK8C,iBAAiBkI,MAE9BQ,EAAcxL,KAAKyL,2BAA2BjG,EAAQ0F,SACvDM,GAILxL,KAAK0L,eAAe,2BAA4BF,GAEhDxL,KAAK0L,eAAe,OAAQlG,EAAQ2F,MACpCnL,KAAK0L,eAAe,UAAWlG,EAAQ4F,UACvCpL,KAAK0L,eAAe,SAAUlG,EAAQ6F,QACtCrL,KAAK0L,eAAe,eAAgBlG,EAAQmG,cAAgBnG,EAAQmG,cAAgB,IACpF3L,KAAK0L,eAAe,qBAAsBlG,EAAQoG,cAAgBpG,EAAQoG,cAAgB,IAC1F5L,KAAK0L,eAAe,eAAgBlG,EAAQ8F,QAExClI,GACApD,KAAK0L,eAAe,OAAQtI,GAE5BmI,GACAvL,KAAK0L,eAAe,QAASH,IAhB7BvL,KAAKJ,MAAMmK,UAAUD,MAAM,8BAA+BtE,EAAQ0F,Q,EAoBlE,KAAAQ,eAAiB,CAACtI,EAAczE,MACpCoH,EAAAA,EAAAA,IAAI/F,KAAK8C,iBAAkB,CAAE,CAACM,GAAOzE,GAAQ,EAGzC,KAAA8M,2BAA8BP,IAAuC,IAAAW,EACzE,MACMzK,EADsBpB,KAAKM,qBAAqByC,yBACrBwC,MAAMxD,GAASA,EAAKpD,QAAUuM,IAC/D,OAAO9J,EAAe,QAAXyK,EAAGzK,EAAK4I,WAAG,IAAA6B,OAAA,EAARA,EAAUC,gBAAapG,CAAS,EAG1C,KAAAZ,2BAA8BiH,IAAqB,IAAAC,EAAAC,EACvD,MAAMtN,GAAuC,QAA/BqN,EAAAhM,KAAKJ,MAAMwB,KAAKF,SAASI,cAAM,IAAA0K,GAAc,QAAdA,EAA/BA,EAAiCzK,oBAAY,IAAAyK,OAAA,EAA7CA,EAA+C3K,KAAK6K,uBAC/B,QADkDD,EACjFjM,KAAKJ,MAAMwB,KAAKF,SAASI,cAAM,IAAA2K,GAAc,QAAdA,EAA/BA,EAAiC1K,oBAAY,IAAA0K,GAA0B,QAA1BA,EAA7CA,EAA+C5K,KAAK6K,2BAAmB,IAAAD,OAAA,EAAvEA,EAAyEnK,QAAOqK,GAAGA,EAAE/B,MAAQ2B,KACjE,IAAAK,EAAhC,GAAIzN,IAASA,aAAK,EAALA,EAAOiD,QAAS,EACzB,OAAqB,QAAdwK,EAAAzN,EAAM,GAAG0L,aAAK,IAAA+B,OAAA,EAAdA,EAAgB9B,mBAAe5E,CAG1B,EAnwBhB,MAAM,QAAEzF,EAAO,KAAEmB,EAAI,UAAE6B,EAAS,UAAE8G,GAAc/J,KAAKJ,MAErDI,KAAK8C,iBAAmB,CAAC,EACzB9C,KAAK2D,gBAAkB,CAAC,EACxB3D,KAAKgF,gCAAiC,EACtChF,KAAKiD,UAAYA,EACjBjD,KAAKsI,iBAAmB/F,EAAAA,EAAiB8J,KACzCrM,KAAKsM,gBAAkBlL,EAAKkL,gBAAgBhL,QAAU,GACtDtB,KAAKuM,eAAiBnL,EAAKmL,eAAejL,QAAU,GACpDtB,KAAKmD,kBAAoB/B,EAAKoL,cAAclL,QAAU,GACtDtB,KAAKwI,cAAgB,IAAIiE,EAAAA,EAAcxM,EAASgD,EAAW8G,GAC3D/J,KAAK4C,cAAgB,IAAI8J,EAAAA,EAAc1M,KAAKuM,eAAgB,IAAII,EAAAA,EAAelC,EAAC,CAAC,EAAIxH,GAAajD,KAAKmG,gCAAiCnG,KAAKsM,iBAC7ItM,KAAKlB,kBAAmB8N,EAAAA,EAAAA,oBAAmB5M,KAAKJ,MAAMK,QAAQ4M,QAAQC,kBAAoB9M,KAAKJ,MAAMmN,aAAc/M,KAAKJ,MAAMmK,WAC9H/J,KAAKK,KAAOL,KAAK0D,iBAAmB1D,KAAK0D,gBAAgBX,2BAA6B/C,KAAKQ,qBAAsB,EAEjHR,KAAKW,eAAgB,EACrBX,KAAKqC,gBAAkB,cAGvBrC,KAAKiF,wBAAyB,EAC9BjF,KAAKsF,kBAAoBlE,EAAKoE,QAAQlE,QAAU,EACpD,CAGOoF,0BAEH,MACIzG,SAAS,UACL8J,EACAiD,eACIC,gBAAgB,QACZC,KAIZ/M,QAAQ,sBACJgN,EAAqB,mBACrBC,IAEJpN,KAAKJ,MAETI,KAAKJ,MAAMwB,KAAKF,SAASwH,MAAK,KAC1B1I,KAAKqN,6BACLrN,KAAKgB,qCACLhB,KAAK8I,kBAAkB,KAG3BwE,EAAAA,EAAAA,KACI,IAAMtN,KAAKF,kBACX,IAAME,KAAKqI,wBAGfiF,EAAAA,EAAAA,KACI,IAAMtN,KAAKsI,mBACX,KACItI,KAAKqI,oBAAoB,KAIjCiF,EAAAA,EAAAA,KACI,IAAMtN,KAAKJ,MAAMwB,KAAKF,SAASI,QAAUtB,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOiI,kBACzEA,IACQvJ,KAAKJ,MAAMuE,YAAYoJ,aACnBhE,GAAmBvJ,KAAKgF,gCACxBhF,KAAKgF,gCAAiC,EACtChF,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAM+G,IAC7CA,GAAmBvJ,KAAKgF,gCAC/BhF,KAAKsC,wBAAwBC,EAAAA,EAAiBC,KAAM+G,G,IAiEpE,GA1D2C,UADpBvJ,KAAK8E,2BAA2B,iBAAmB,IACvD7C,qBACfjC,KAAKiF,wBAAyB,EAC1BjF,KAAKwI,cAAcgF,uBACnBxN,KAAKgF,gCAAiC,EACtChF,KAAKyE,uCAELzE,KAAKgF,gCAAiC,EACtChF,KAAK4E,uCACL5E,KAAKO,mBAAoB,KAG7BP,KAAKiF,wBAAyB,EAC9BjF,KAAKmF,4BAETmI,EAAAA,EAAAA,KACI,IAAMtN,KAAKJ,MAAMwB,KAAKqM,aAAanM,SACnCA,IACI,GAAIA,GAAyC,YAA/BA,EAAOoM,oBAEjB,GADA1N,KAAKiF,wBAAyB,EAC1BjF,KAAKwI,cAAcgF,sBACnBxN,KAAKgF,gCAAiC,EACtChF,KAAKyE,yCACF,CACH,MAAMI,EAA4B7E,KAAK8E,2BAA2B,mBAAqB,IAClFC,EAAAA,EAAAA,oBAAmBF,IAGpB7E,KAAKgF,gCAAiC,EACtChF,KAAKsC,wBAAwBC,EAAAA,EAAiBoC,KAC9C3E,KAAKO,mBAAoB,GAJzBP,KAAKkF,sBAAsBL,E,MAQnC7E,KAAKgF,gCAAiC,EACtChF,KAAKiF,wBAAyB,C,KAI1CqI,EAAAA,EAAAA,KACI,IAAMtN,KAAKiJ,2BACXA,IAOW,IAAA0E,EANH1E,EACIjJ,KAAKJ,MAAMuE,YAAYyJ,aAEvB5N,KAAKkJ,SACLlJ,KAAKmJ,aAIsB,QAA/BwE,EAAA3N,KAAKJ,MAAMwB,KAAKF,SAASI,cAAM,IAAAqM,GAA/BA,EAAiCE,qBAAqB,CAAC,GACvD7N,KAAKJ,MAAMuE,YAAY2J,Y,IAI9B9N,KAAKwI,cAAcgF,wBACpBxN,KAAKqC,gBAAkB,IAGvB8K,EAAuB,CAEvB,GAAID,IAAYA,EAAQa,eAEpB,YADAhE,EAAUD,MAAM,8BAIpB,GAAIoD,IAAYA,EAAQc,gBAEpB,YADAjE,EAAUD,MAAM,4BAIpB,MAAMmE,EAAOxD,EAAA,GAA6B2C,GAIoH,IAAAc,EAA9J,GAHAlO,KAAKgG,YAAc,IAAImI,EAAAA,EAAYpE,EAAWkE,EAASf,aAAO,EAAPA,EAASa,eAAgBb,aAAO,EAAPA,EAASkB,4BAA6BlB,aAAO,EAAPA,EAASmB,mBAG5HrO,KAAKJ,MAAMwB,KAAKuF,0BAA0BrF,SAAWtB,KAAKsI,mBAAqB/F,EAAAA,EAAiBoC,KAAO3E,KAAKsI,mBAAqB/F,EAAAA,EAAiBgG,cAC3H,QAAtB2F,EAAMlO,KAAKgG,mBAAW,IAAAkI,OAAA,EAAhBA,EAAkBI,kBAAkBtO,KAAKJ,MAAMwB,KAAKuF,6BAG9D2G,EAAAA,EAAAA,KACI,SAAAiB,EAAA,OAAsD,QAAhDA,EAAAvO,KAAKJ,MAAMwB,KAAKuF,0BAA0BrF,cAAM,IAAAiN,OAAA,EAAhDA,EAAkDC,cAAexO,KAAKsI,mBAAqB/F,EAAAA,EAAiBoC,KAAO3E,KAAKsI,mBAAqB/F,EAAAA,EAAiBgG,OAAO,IAC3K7B,UAAW,IAAA+H,QACe,QAAtBA,EAAMzO,KAAKgG,mBAAW,IAAAyI,OAAA,EAAhBA,EAAkBH,kBAAkBtO,KAAKJ,MAAMwB,KAAKuF,2BAA0B,KAI5F2G,EAAAA,EAAAA,KACI,SAAAoB,EAAA,OAAsD,QAAtDA,EAAM1O,KAAKJ,MAAMwB,KAAKuF,0BAA0BrF,cAAM,IAAAoN,OAAA,EAAhDA,EAAkD7H,cAAc,IACtEH,gBACU1G,KAAKyG,uBAAuB,G,CAIlD,CAEOC,2BACsG,IAAAiI,EAIlGC,EAJH5O,KAAKsI,mBAAqB/F,EAAAA,EAAiBoC,KAAO3E,KAAKsI,mBAAqB/F,EAAAA,EAAiBgG,OACzC,QAApDoG,EAAI3O,KAAKJ,MAAMwB,KAAKuF,0BAA0BrF,cAAM,IAAAqN,GAAhDA,EAAkD9H,sBAC5C7G,KAAKyG,wBAGC,QAAhBmI,EAAA5O,KAAKgG,mBAAW,IAAA4I,GAAhBA,EAAkBC,oBAE1B,CACOC,SACH,IAAM9O,KAAKiJ,yBACP,OAAO,KAGX,MAAM,UAAEhG,GAAcjD,KAAKJ,OAErB,WAAEmP,EAAU,OAAE5O,GAAWH,KAAKJ,MA2CpC,OAAOmP,EAzCQtE,EAAAA,EAAA,GACRzK,KAAKJ,OAAK,IACb0I,iBAAkBtI,KAAKsI,iBACvB5E,gBAAiB1D,KAAK0D,gBACtBZ,iBAAkB9C,KAAK8C,iBACvBhD,gBAAiBE,KAAKF,gBACtBqD,kBAAmBnD,KAAKmD,kBACxBQ,gBAAiB3D,KAAK2D,gBACtBC,sBAAuB5D,KAAK4D,sBAC5BzE,UAAWgB,EAAOhB,UAClB6P,UAAW,CACPC,cAAejP,KAAK0D,iBAAmB1D,KAAKsI,mBAAqB/F,EAAAA,EAAiBC,KAClF0M,yBAA0BlP,KAAKsI,mBAAqB/F,EAAAA,EAAiBC,KACrE2M,6BAA8BnP,KAAKsJ,gCAAkCtJ,KAAKJ,MAAMuE,YAAYoJ,aAAevN,KAAKiF,wBAEpHvF,uBAAwB,CACpB0P,YAAapP,KAAKJ,MAClBT,UAAWkQ,IAAW,+BAA+BrP,KAAKqC,kBAAmBlC,EAAOhB,YAExFmQ,QAASpQ,EAAAA,cAACqQ,EAA8BlQ,OAAAC,OAAA,GAAK,CAAET,KAAMoE,EAAUuM,gCAE/DC,uBACIvQ,EAAAA,cAACwQ,EAA8BrQ,OAAAC,OAAA,GAExB,CACCZ,UAAWsB,KAAKgF,+BAChBzF,KAAM,WACNZ,MAAO,OACPC,UAAWqE,EAAU0M,sCACrB9Q,KAAMoE,EAAU2M,iCAChB9Q,iBAAkBkB,KAAKlB,iBACvBC,SACIiB,KAAKwJ,yCAKrBqG,YAAa7P,KAAK8P,qBAClBC,uBAAwB/P,KAAK0C,8BAIrC,CA+DQoN,qBACJ,OAAI9P,KAAK0D,iBACEsM,EAAAA,EAAAA,GAAY,CAAExK,QAASxF,KAAK0D,gBAAiBd,cAAe5C,KAAK4C,cAAcC,iBAAiB7C,KAAK0D,gBAAgBX,0BAA4B,IAAKuJ,gBAAiBtM,KAAKsM,kBAGhL,IACX,CAyLQe,6BACJ,MAAM,QAAER,GAAY7M,KAAKJ,MAAMK,QACzBgQ,EAASpD,GAAWA,EAAQK,SAAWL,EAAQK,QAAQkB,4BAE7DpO,KAAKF,gBAAkBE,KAAKwI,cAAc0H,0BAA0BlQ,KAAKF,gBAAiBE,KAAKuM,eAAgB0D,EACnH,CAcc3G,qCAA8B,IAAA6G,EAAAC,EACxC,MAAM,QAAEvD,GAAY7M,KAAKJ,MAAMK,SAEzB,4BAAEoQ,EAA2B,aAAEC,GAAiBtQ,KAAKJ,MAAMwB,KAC3DmP,EAAoCD,SAAoB,QAARH,EAAZG,EAAchP,cAAM,IAAA6O,GACH,QADGA,EAApBA,EAC9C5K,MAAKiL,GAHqC,oEAG1BA,EAAQ1F,cAAuC,IAAAqF,OAAA,EADjBA,EACmBM,UAEvDC,EAAyB7D,GAAWA,EAAQK,SAAWL,EAAQK,QAAQyD,uBACvEC,EAAwB/D,GAAWA,EAAQK,SAAWL,EAAQK,QAAQ2D,sBAG5E,OAAsC,QAA/BT,EAAApQ,KAAKJ,MAAMwB,KAAKF,SAASI,cAAM,IAAA8O,IAA/BA,EAAiC7O,aAAauP,kBAE/CP,GACAvQ,KAAKJ,MAAMwB,KAAKF,SAASI,QAAUtB,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOC,aAAaF,KAAKM,WAAc,IAAIgH,MACrGoI,IAAQ,IAAAC,EAAA,OAAKD,EAASE,cAA0C,KAA1BF,EAASE,aACxCF,EAASE,gBAAmD,QAAvCD,EAAKX,EAA4B/O,cAAM,IAAA0P,GAAyB,QAAzBA,EAAlCA,EAAoCE,+BAAuB,IAAAF,OAAA,EAA3DA,EAA6DzL,MAAK4L,GAAgBA,IAAiBJ,EAASE,iBAAiBF,EAASE,eAAiBL,EAClLG,CAAQ,KAEf/Q,KAAKJ,MAAMwB,KAAKF,SAASI,QAAUtB,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOC,aAAaF,KAAKM,WAAc,IAAIgH,MACtGoI,GAAaA,EAASE,cAA0C,KAA1BF,EAASE,aACxCF,EAASE,eAAiBP,GAA0BK,EAASE,eAAiBL,EAC/EG,IAElB,CAEctO,qBACV,OAAOzC,KAAKJ,MAAMwB,KAAKF,SAASI,QAAUtB,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOmB,cAC9E,CAEc8G,sBACV,OAAOvJ,KAAKJ,MAAMwB,KAAKF,SAASI,QAAUtB,KAAKJ,MAAMwB,KAAKF,SAASI,OAAOiI,eAC9E,CAEc6H,uBACV,MAAMC,EAAgBrR,KAAKJ,MAAMwB,KAAKF,SAASI,OAC/C,OAAO+P,GAAiBA,EAAcC,cAAgBD,EAAcC,cAAgB,CACxF,CAEcC,6BACV,MAAMF,EAAgBrR,KAAKJ,MAAMwB,KAAKF,SAASI,OAC/C,OAAK+P,GAAkBA,EAAcG,gBAG9BH,EAAcG,gBAAgBC,QACjC,CAACC,EAAeC,IACLD,GAASC,EAASC,SAAW,IAExC,GANO,CAOf,CAEcC,uBACV,MACIzQ,MAAM,SACFF,GACH,OACDf,GACAH,KAAKJ,MACT,IAAKsB,EAASI,OACV,OAAO,EAGX,MAAMwQ,EAAiB5Q,EAASI,OAC1BD,EAAOyQ,EAAevQ,aAAaF,KACzC,IAAKA,IAASA,EAAKM,YAAcN,EAAKM,UAAUC,OAC5C,OAAO,EAGX,MAAM,kBAAEmQ,EAAiB,qBAAEC,GAAyBF,EAC9CG,EAA6B9R,EAAO+R,mBAAqBH,GAAqBC,EAKpF,OAFmB3Q,EAAK8Q,aAAe,GAAKnS,KAAKuR,uBAAyBvR,KAAKoR,iBAE5D,IAAMa,CAC7B,CAEchJ,+BACV,OAAOjJ,KAAK6R,gBAChB,IAjmBYO,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sDACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCAyZXD,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,6CAmBPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,2CAYPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,wCAqFGF,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,oDA0BCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,oCAICH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,qCAICH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,sCAKCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,4CAYCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,sCA0BCH,EAAAA,EAAAA,IAAA,CAATG,EAAAA,IAAQ,6CAjmBP7S,GAAsB0S,EAAAA,EAAAA,IAAA,CAF3BI,EAAAA,gBACAC,EAAAA,IACK/S,GAsyBN,S,8EC11BA,MAAMsQ,EAA2CvR,IAG5C,IAH6C,cAC9CiU,EAAa,MACbC,GACHlU,EAEG,OACIS,EAAAA,cAAC0T,EAAAA,KAAIvT,OAAAC,OAAA,GAAKoT,GACLC,GAASA,EAAME,KAAK9Q,GAEb7C,EAAAA,cAAAA,EAAAA,SAAA,KACK6C,EAAK+Q,eAIf,EAITzP,EAAqD0P,IAWtD,IAXuD,YACxDC,EAAW,QACX1D,EAAO,MACPqD,EAAK,SACLM,EAAQ,MACRnJ,EAAK,iBACLoJ,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,EAAY,cACZ7O,GACHuO,EAEG,OACI7T,EAAAA,cAAC0T,EAAAA,KAAIvT,OAAAC,OAAA,GAAK0T,GACL1D,EACAqD,GAASA,EAAME,KAAK9Q,IACjB,MAAM,YAAEuR,EAAW,IAAEtJ,EAAG,MAAEuJ,EAAK,MAAEC,EAAK,MAAEC,GAAU1R,EAClD,OAAQ7C,EAAAA,cAAC0T,EAAAA,KAAIvT,OAAAC,OAAA,GAAKgU,EAAW,CAAEtJ,IAAKA,IAC/BuJ,EACAC,EACAC,EACE,IAEVR,GAAY/T,EAAAA,cAAC0T,EAAAA,KAAIvT,OAAAC,OAAA,GAAKwK,EAAM4J,cACxB5J,EAAM6J,MACN7J,EAAM8J,SAGVV,GAAoBC,EACpBC,GAAsBC,EACpB,EAiBf,EAb+EzT,IAC3E,MAAM,uBAAEF,EAAsB,UAAEsP,EAAS,QAAEM,EAAO,uBAAEG,EAAsB,YAAEI,EAAW,uBAAEE,GAA2BnQ,EAEpH,OACIV,EAAAA,cAAC2U,EAAAA,OAAMxU,OAAAC,OAAA,GAAKI,GACP4P,EACAN,EAAUG,8BAAgCM,EAC1CT,EAAUC,eAAiB/P,EAAAA,cAAC8Q,EAAW3Q,OAAAC,OAAA,GAAKuQ,IAC5Cb,EAAUE,0BAA4BhQ,EAAAA,cAACmE,EAAgBhE,OAAAC,OAAA,GAAKyQ,IACxD,C","sources":["webpack://Citta2.0/./src/common/address/components/address-billing-checkbox.tsx?b043","webpack://Citta2.0/./src/common/address/components/address-billing-heading.tsx?be26","webpack://Citta2.0/./src/modules/citta-checkout-billing-address/citta-checkout-billing-address.tsx?22e8","webpack://Citta2.0/./src/modules/citta-checkout-billing-address/citta-checkout-billing-address.view.tsx?0739"],"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\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport AddressInputComponent from './address-input';\r\n\r\nexport interface IAddressBillingCheckbox {\r\n isChecked: boolean;\r\n value: string;\r\n ariaLabel: string;\r\n text: string;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AddressBillingCheckbox: React.FC = ({\r\n isChecked,\r\n value,\r\n ariaLabel,\r\n text,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n\r\n const additionalAttributes = {\r\n checked: isChecked,\r\n 'aria-checked': isChecked,\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressBillingCheckbox;\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\nexport interface IAddressBillingHeading {\r\n text: string;\r\n}\r\n\r\nconst IAddressBillingHeading: React.FC = ({\r\n text\r\n}) => (\r\n

{text}

\r\n );\r\n\r\nexport default IAddressBillingHeading;\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 { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\r\nimport {\r\n Address, AddressPurpose, CountryRegionInfo, isNullOrWhitespace, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { action, computed, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { AutoSuggest } from '../../common/address/address-autosuggest';\r\nimport { IAutoSuggestOptions } from '../../common/address/address-autosuggest.data';\r\nimport { AddressCommon } from '../../common/address/address-common';\r\nimport { AddressFormat } from '../../common/address/address-format';\r\nimport { AddressItemType, IAddressDropdownsData } from '../../common/address/address-format.data';\r\nimport { AddressMetaData } from '../../common/address/address-meta-data';\r\nimport {\r\n AddressOperation, AddressType, IAddressResource, IAddressResponse\r\n} from '../../common/address/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/address/components/address-add';\r\nimport AddressBillingCheckoxComponent from '../../common/address/components/address-billing-checkbox';\r\nimport AddressBillingHeadingComponent from '../../common/address/components/address-billing-heading';\r\nimport { AddressShow, IAddressShowProps } from '../../common/address/components/address-show';\r\nimport AddressSearch, { IFormattedAddressDetails } from '../../components/citta-address-search/citta-address-search';\r\nimport { ICittaCheckoutBillingAddressData } from './citta-checkout-billing-address.data';\r\nimport { ICittaCheckoutBillingAddressProps } from './citta-checkout-billing-address.props.autogenerated';\r\n\r\nexport interface IProps extends ICittaCheckoutBillingAddressProps, IModuleStateProps { }\r\n\r\nexport interface ICheckoutBillingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n isShowSameAsShippingCheckbox: boolean;\r\n}\r\n\r\nexport interface ICheckoutBillingAddressViewProps extends IProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutBillingAddressViewState;\r\n CheckoutBillingAddress: IModuleProps;\r\n sameAsShippingCheckbox: React.ReactNode;\r\n heading: React.ReactNode;\r\n showAddress: IAddressShowProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutBillingAddress component\r\n * @extends {React.PureComponent>}\r\n */\r\n// @ts-ignore\r\n@withModuleState\r\n@observer\r\nclass CheckoutBillingAddress extends React.Component {\r\n\r\n @observable private currentOperation: AddressOperation;\r\n @observable private isBillingAddressSameAsShipping: boolean;\r\n @observable private selectedAddress?: Address;\r\n @observable private addUpdateAddress: Address;\r\n @observable private countryRegionId: string = 'NZL';\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n @observable private validationError: object;\r\n @observable private addressActionResponse?: IAddressResponse;\r\n @observable private manualAddress: boolean;\r\n\r\n private addressCommon: AddressCommon;\r\n private addressFormat: AddressFormat;\r\n private countryRegions: CountryRegionInfo[];\r\n private addressPurposes: AddressPurpose[];\r\n private resources: IAddressResource;\r\n private defaultAddressType: number = this.props.context.app.config.defaultAddressTypeValue || 7; // Default to Home\r\n // private addRenderRef: React.RefObject;\r\n private telemetryContent?: ITelemetryContent;\r\n private autoSuggest?: AutoSuggest;\r\n private isClickAndCollectOrder: boolean;\r\n private customerAddresses: Address[];\r\n private isNZ: boolean = false;\r\n private addressDropdownsData:IAddressDropdownsData = {};\r\n private showAddressSearch: boolean = false;\r\n private nzlCountryRegionId: string = 'NZL';\r\n private showBorderClass: string;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.validationError = {};\r\n this.isBillingAddressSameAsShipping = false;\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.addressFormat = new AddressFormat(this.countryRegions, new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()), this.addressPurposes);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n this.isNZ = this.selectedAddress && this.selectedAddress.ThreeLetterISORegionName === this.nzlCountryRegionId || false;\r\n // this.manualAddress = false;\r\n this.manualAddress = true;\r\n this.showBorderClass = 'show-border';\r\n // this.addRenderRef = React.createRef();\r\n\r\n this.isClickAndCollectOrder = false;\r\n this.customerAddresses = data.address.result || [];\r\n }\r\n\r\n // tslint:disable-next-line:max-func-body-length\r\n public async componentDidMount(): Promise {\r\n\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: {\r\n channel\r\n }\r\n }\r\n },\r\n config: {\r\n autoSuggestionEnabled,\r\n autoSuggestOptions\r\n }\r\n } = this.props;\r\n\r\n this.props.data.checkout.then(() => {\r\n this._setDefaultCountryRegionId();\r\n this._handleCartHasOnlyGiftCardScenario();\r\n this._initModuleState();\r\n });\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => this._getStateProvinces()\r\n );\r\n\r\n reaction(\r\n () => this.currentOperation,\r\n () => {\r\n this._getStateProvinces();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress,\r\n shippingAddress => {\r\n if (this.props.moduleState.isUpdating) {\r\n if (shippingAddress && this.isBillingAddressSameAsShipping) {\r\n this.isBillingAddressSameAsShipping = true;\r\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\r\n } else if (shippingAddress && this.isBillingAddressSameAsShipping) {\r\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\r\n }\r\n }\r\n }\r\n );\r\n\r\n const optionSelected = this._getExtensionPropertyValue('DELIVERYTYPE') || '';\r\n if (optionSelected.toLocaleLowerCase() === 'opt2') {\r\n this.isClickAndCollectOrder = true;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._handleClickAndCollectAuthScenario();\r\n } else {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._handleClickAndCollectUnAuthScenario();\r\n this.showAddressSearch = true;\r\n }\r\n } else {\r\n this.isClickAndCollectOrder = false;\r\n this._handleDeliveryScenario();\r\n }\r\n reaction(\r\n () => this.props.data.shippingType.result,\r\n result => {\r\n if (result && result.toLocaleUpperCase() === 'COLLECT') {\r\n this.isClickAndCollectOrder = true;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._handleClickAndCollectAuthScenario();\r\n } else {\r\n const strBillingAddress: string = this._getExtensionPropertyValue('BILLINGADDRESS') || '';\r\n if (!isNullOrWhitespace(strBillingAddress)) {\r\n this._updateBillingAddress(strBillingAddress);\r\n } else {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n this.showAddressSearch = true;\r\n }\r\n }\r\n } else {\r\n this.isBillingAddressSameAsShipping = true;\r\n this.isClickAndCollectOrder = false;\r\n }\r\n }\r\n );\r\n reaction(\r\n () => this.isBillingAddressRequried,\r\n isBillingAddressRequried => {\r\n if (isBillingAddressRequried) {\r\n if (this.props.moduleState.isDisabled) {\r\n // this.onSubmit();\r\n this.onEdit()\r\n this.onSubmit();\r\n }\r\n } else {\r\n // tslint:disable-next-line:no-floating-promises\r\n this.props.data.checkout.result?.removeBillingAddress({});\r\n this.props.moduleState.onDisable();\r\n }\r\n }\r\n );\r\n if (!this.addressCommon.isAuthenticatedFlow()) {\r\n this.showBorderClass = '';\r\n }\r\n\r\n if (autoSuggestionEnabled) {\r\n\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\r\n this.autoSuggest = new AutoSuggest(telemetry, options, channel?.BingMapsApiKey, channel?.ChannelCountryRegionISOCode, channel?.DefaultLanguageId);\r\n\r\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\r\n if(this.props.data.storeSelectorStateManager.result && (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)) {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi && (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\r\n async () => {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\r\n async () => {\r\n await this._attachMapAutoSuggest();\r\n }\r\n );\r\n }\r\n }\r\n\r\n public async componentDidUpdate(): Promise {\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\r\n await this._attachMapAutoSuggest();\r\n }\r\n } else {\r\n this.autoSuggest?.disposeAutoSuggest();\r\n }\r\n }\r\n public render(): JSX.Element | null {\r\n if (!(this.isBillingAddressRequried)) {\r\n return null;\r\n }\r\n\r\n const { resources } = this.props;\r\n\r\n const { renderView, config } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n className: config.className,\r\n viewState: {\r\n isShowAddress: this.selectedAddress && this.currentOperation === AddressOperation.Show,\r\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.Show,\r\n isShowSameAsShippingCheckbox: this.isCartContainsItemsForShipping && this.props.moduleState.isUpdating && !this.isClickAndCollectOrder\r\n },\r\n CheckoutBillingAddress: {\r\n moduleProps: this.props,\r\n className: classnames(`ms-checkout-billing-address ${this.showBorderClass}`, config.className)\r\n },\r\n heading: ,\r\n // tslint:disable-next-line: max-line-length\r\n sameAsShippingCheckbox: (\r\n \r\n ),\r\n showAddress: this._renderShowAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderSearchAddress = (): React.ReactElement | null => {\r\n if (this.showAddressSearch && this.isNZ) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n private _handleCartHasOnlyGiftCardScenario = (): void => {\r\n const { checkout, channelConfiguration } = this.props.data;\r\n const cart = checkout.result?.checkoutCart.cart;\r\n const channelGiftCardItemId = channelConfiguration && channelConfiguration.result && channelConfiguration.result.GiftCardItemId || '';\r\n const cartLinesCount = cart && cart.CartLines && cart.CartLines.length;\r\n const hasGiftCartLine = cart && cart.CartLines && cart.CartLines.filter(item => item.ItemId && item.ItemId.toLocaleLowerCase() === channelGiftCardItemId.toLocaleLowerCase()).length === 1;\r\n if (cartLinesCount === 1 && hasGiftCartLine) {\r\n const defaultAddress = this._getDefaultAddress();\r\n if (defaultAddress) {\r\n this._setBillingAddress(defaultAddress);\r\n this.showBorderClass = '';\r\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\r\n }\r\n }\r\n }\r\n\r\n private _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n let addressFormatItems = this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n this.isNZ = this.addUpdateAddress.ThreeLetterISORegionName === this.nzlCountryRegionId;\r\n this.addressDropdownsData = this.addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n );\r\n if (this.isNZ && !this.manualAddress) {\r\n addressFormatItems = addressFormatItems.filter(item => item.name === 'Name' || item.name === 'Phone');\r\n }\r\n return AddressAddUpdate(\r\n {\r\n resources: this.resources,\r\n addressType: AddressType.Billing,\r\n addressFormat: addressFormatItems,\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n dropdownDisplayData: this.addressDropdownsData,\r\n telemetryContent: this.telemetryContent,\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n onSave: this._onSubmitAddress,\r\n onCancel: this._resetView,\r\n searchAddress: this._renderSearchAddress\r\n }\r\n );\r\n }\r\n\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({ address: this.selectedAddress, addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''), addressPurposes: this.addressPurposes });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _handleClickAndCollectAuthScenario = (): void => {\r\n const defaultAddress = this._getDefaultAddress();\r\n if (defaultAddress) {\r\n this._setBillingAddress(defaultAddress);\r\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\r\n this.props.moduleState.onReady();\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n\r\n private _handleClickAndCollectUnAuthScenario = (): void => {\r\n const strBillingAddress: string = this._getExtensionPropertyValue('BILLINGADDRESS') || '';\r\n if (!isNullOrWhitespace(strBillingAddress)) {\r\n this._updateBillingAddress(strBillingAddress);\r\n } else {\r\n this.isBillingAddressSameAsShipping = false;\r\n this.isClickAndCollectOrder = true;\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n\r\n private _handleDeliveryScenario = (): void => {\r\n const strBillingAddress: string = this._getExtensionPropertyValue('BILLINGADDRESS') || '';\r\n if (!isNullOrWhitespace(strBillingAddress)) {\r\n this._updateBillingAddress(strBillingAddress);\r\n } else {\r\n this.isBillingAddressSameAsShipping = true;\r\n this.isClickAndCollectOrder = false;\r\n }\r\n }\r\n\r\n private _updateBillingAddress = (strBillingAddress: string) => {\r\n const billingAddress: Address = JSON.parse(strBillingAddress);\r\n if (billingAddress) {\r\n this._setBillingAddress(billingAddress);\r\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\r\n this.props.moduleState.onReady();\r\n }\r\n }\r\n\r\n private _getDefaultAddress = (): Address | undefined => {\r\n const strBillingAddress: string = this._getExtensionPropertyValue('BILLINGADDRESS') || '';\r\n if (!isNullOrWhitespace(strBillingAddress)) {\r\n return JSON.parse(strBillingAddress);\r\n }\r\n\r\n if (this.customerAddresses) {\r\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n }\r\n return undefined;\r\n };\r\n\r\n private _onCountryChange = (countryRegionId: string) => {\r\n this.countryRegionId = countryRegionId;\r\n const twoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\r\n set(this.addUpdateAddress, { ['ThreeLetterISORegionName']: countryRegionId });\r\n set(this.addUpdateAddress, { ['TwoLetterISORegionName']: twoLetterISORegionName });\r\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterISORegionName);\r\n this._clearAddressFields();\r\n }\r\n\r\n private _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const { config } = this.props;\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n if (!config.showAddressType) {\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n }\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n }\r\n\r\n private _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#billing_addressstreet', '#billing_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n }\r\n\r\n @action\r\n private _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n set(this.addUpdateAddress, { ['Street']: '' });\r\n set(this.addUpdateAddress, { ['ZipCode']: address.ZipCode });\r\n set(this.addUpdateAddress, { ['CountyName']: address.CountyName });\r\n set(this.addUpdateAddress, { ['City']: address.City });\r\n set(this.addUpdateAddress, { ['State']: address.State });\r\n set(this.addUpdateAddress, { ['DistrictName']: address.DistrictName });\r\n set(this.addUpdateAddress, { ['FullAddress']: address.FullAddress });\r\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\r\n setTimeout(() => {\r\n set(this.addUpdateAddress, { ['Street']: address.Street });\r\n }, 0);\r\n\r\n }\r\n\r\n @action\r\n private _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n addressFormatItem.forEach(format => {\r\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\r\n this.addressFormat[format.name] = '';\r\n }\r\n });\r\n this._clearValidation();\r\n }\r\n\r\n @action\r\n private _clearValidation = (): void => {\r\n this.validationError = {};\r\n }\r\n\r\n private onAddressAddUpdate = (name: string, value: string) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n }\r\n\r\n private _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n\r\n private _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n }\r\n\r\n private _getStateProvinces = (): void => {\r\n if (!this.countryRegionId || !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)) {\r\n return;\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.addressCommon.getStateProvinces(this.countryRegionId).then(\r\n (result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { ['State']: '' });\r\n }\r\n this.stateProvinceInfo = result;\r\n });\r\n }\r\n\r\n private _initModuleState = (): void => {\r\n this.props.moduleState.init({\r\n status: this.isBillingAddressRequried ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n const { billingAddress, isBillingAddressSameAsShippingAddress } = this.props.data.checkout.result || {};\r\n\r\n if (this.isBillingAddressRequried) {\r\n if (billingAddress) {\r\n this.isBillingAddressSameAsShipping = isBillingAddressSameAsShippingAddress || false;\r\n this._updateCurrentOperation(AddressOperation.Show, billingAddress);\r\n this._updateModuleState();\r\n } else if (this.isCartContainsItemsForShipping) {\r\n this.isBillingAddressSameAsShipping = true;\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n } else {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n this.showAddressSearch = true;\r\n }\r\n }\r\n }\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n private _onBillingAddressSameAsShippingChange = (event: React.ChangeEvent) => {\r\n this.isBillingAddressSameAsShipping = event.currentTarget.checked;\r\n\r\n if (this.isBillingAddressSameAsShipping && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n this.showAddressSearch = false;\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\r\n this.showAddressSearch = true;\r\n }\r\n }\r\n\r\n @computed get isCartContainsItemsForShipping(): boolean {\r\n const { request } = this.props.context;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\r\n const retailMultiplePickUpOptionEnabled = featureState?.result?.\r\n find(feature => feature.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n\r\n // if hasInvoiceLine is true, there are only invoices no items in cart and return false here\r\n return this.props.data.checkout.result?.checkoutCart.hasInvoiceLine\r\n ? false\r\n : retailMultiplePickUpOptionEnabled ?\r\n ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(\r\n cartLine => (cartLine.DeliveryMode && cartLine.DeliveryMode !== '')\r\n ? (cartLine.DeliveryMode !== channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(deliveryMode => deliveryMode === cartLine.DeliveryMode) && cartLine.DeliveryMode !== emailDeliveryModeCode)\r\n : cartLine\r\n )\r\n :((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(\r\n cartLine => (cartLine.DeliveryMode && cartLine.DeliveryMode !== '')\r\n ? (cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode)\r\n : cartLine\r\n );\r\n }\r\n\r\n @computed get billingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.billingAddress;\r\n }\r\n\r\n @computed get shippingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress;\r\n }\r\n\r\n @computed get getLoyaltyAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n return checkoutState && checkoutState.loyaltyAmount ? checkoutState.loyaltyAmount : 0;\r\n }\r\n\r\n @computed get getGiftCardTotalAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (!checkoutState || !checkoutState.giftCardExtends) {\r\n return 0;\r\n }\r\n return checkoutState.giftCardExtends.reduce(\r\n (count: number, giftCard: IGiftCardExtend) => {\r\n return count + (giftCard.Balance || 0);\r\n },\r\n 0);\r\n }\r\n\r\n @computed get shouldPaidByCard(): boolean {\r\n const {\r\n data: {\r\n checkout\r\n },\r\n config\r\n } = this.props;\r\n if (!checkout.result) {\r\n return false;\r\n }\r\n\r\n const checkoutResult = checkout.result;\r\n const cart = checkoutResult.checkoutCart.cart;\r\n if (!cart || !cart.CartLines || !cart.CartLines.length) {\r\n return false;\r\n }\r\n\r\n const { paymentTenderType, tokenizedPaymentCard } = checkoutResult;\r\n const isPaidByOtherPaymentSource = config.paymenTenderType !== paymentTenderType && tokenizedPaymentCard;\r\n\r\n // Use payment card when it is not free or gift card balance + Loyalty amount can not cover the total amount\r\n const amountDue = (cart.TotalAmount || 0) - this.getGiftCardTotalAmount - this.getLoyaltyAmount;\r\n\r\n return amountDue > 0 && !isPaidByOtherPaymentSource;\r\n }\r\n\r\n @computed get isBillingAddressRequried(): boolean {\r\n return this.shouldPaidByCard;\r\n }\r\n\r\n private _onSubmitAddress = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n this.props.moduleState.setHasError(true);\r\n this.manualAddress = true;\r\n return;\r\n }\r\n\r\n this._setBillingAddress(this.addUpdateAddress);\r\n this._updateCurrentOperation(AddressOperation.Show, this.addUpdateAddress);\r\n this._updateModuleState();\r\n const strBillingAddress: string = JSON.stringify(this.selectedAddress);\r\n this._updateExtensionProps('BILLINGADDRESS',strBillingAddress).catch(error => this.props.telemetry.error(`error in _updateExtensionProps ${error}`));\r\n\r\n };\r\n\r\n private _updateExtensionProps= async(key: string, value: string) => {\r\n await this.props.data.checkout.result?.checkoutCart.updateExtensionProperties(\r\n {newExtensionProperties: [\r\n {Key:key, Value: {StringValue: value }}\r\n ]}\r\n );\r\n };\r\n\r\n private onSubmit = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._onSubmitAddress();\r\n break;\r\n case AddressOperation.Show:\r\n if (this.selectedAddress) {\r\n const strBillingAddress: string = JSON.stringify(this.selectedAddress);\r\n this._setBillingAddress(this.selectedAddress);\r\n this._updateExtensionProps('BILLINGADDRESS',strBillingAddress).catch(error => this.props.telemetry.error(`error in _updateExtensionProps ${error}`));\r\n this._updateCurrentOperation(AddressOperation.Show, this.selectedAddress);\r\n this._updateModuleState();\r\n }\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n private onCancel = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._resetView();\r\n this._clearAddressFields();\r\n break;\r\n case AddressOperation.Show:\r\n // @ts-ignore: Compiler not reconizing property form extending class\r\n this._resetView();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n private onEdit = (): void => {\r\n if (this.isBillingAddressSameAsShipping && this.shippingAddress && this.isCartContainsItemsForShipping) {\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\r\n this.showAddressSearch = true;\r\n }\r\n this.props.moduleState.onUpdating();\r\n }\r\n\r\n private _setBillingAddress = (address: Address): void => {\r\n if (this.props.data.checkout.result) {\r\n const newBillingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newBillingAddress.TwoLetterISORegionName) {\r\n newBillingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.props.data.checkout.result.updateBillingAddress({ newBillingAddress, additionalProperties: { isBillingAddressSameAsShippingAddress: this.isBillingAddressSameAsShipping } });\r\n }\r\n }\r\n\r\n private _resetView = () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\r\n this._updateModuleState();\r\n this.showAddressSearch = false;\r\n }\r\n\r\n private _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\r\n if (selectedAddress === undefined) {\r\n const name: string = this._getContactNameFromCartExtensions() || '';\r\n const phone: string = this._getExtensionPropertyValue('PHONENUMBER') || '';\r\n selectedAddress = {Name: name, Phone: phone};\r\n }\r\n this.currentOperation = operation;\r\n this.selectedAddress = selectedAddress;\r\n\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n this.addUpdateAddress = { ...this.selectedAddress } || {};\r\n set(this.addUpdateAddress, { ['ThreeLetterISORegionName']: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId });\r\n set(this.addUpdateAddress, { ['AddressTypeValue']: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType });\r\n }\r\n }\r\n\r\n private _getContactNameFromCartExtensions = (): string => {\r\n const firstName = this._getExtensionPropertyValue('FIRSTNAME') || '';\r\n const lastName = this._getExtensionPropertyValue('LASTNAME') || '';\r\n return `${firstName} ${lastName}`;\r\n\r\n }\r\n\r\n private _updateModuleState = () => {\r\n if (this.currentOperation === AddressOperation.Show) {\r\n this.props.moduleState.onReady();\r\n this.showAddressSearch = false;\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n this._enableAdressSearch();\r\n }\r\n }\r\n\r\n private _enableAdressSearch = (): void => {\r\n this.showAddressSearch = true;\r\n this.addUpdateAddress = {\r\n Name: this.addUpdateAddress.Name,\r\n Phone: this.addUpdateAddress.Phone,\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n };\r\n }\r\n\r\n private _toggleManualAddressInput = (): void => {\r\n this.manualAddress = !this.manualAddress;\r\n }\r\n /**\r\n * callback function for receiving address details from address search component\r\n */\r\n private _handleSearchAddressSelection = (address: IFormattedAddressDetails): void => {\r\n // check fields\r\n if (!(address && address.country && address.city && address.postcode && address.street && address.suburb)) {\r\n this.addUpdateAddress = {\r\n Name: this.addUpdateAddress.Name,\r\n Phone: this.addUpdateAddress.Phone,\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n };\r\n return;\r\n }\r\n // cache name and phone in case of country change\r\n const name = this.addUpdateAddress.Name;\r\n const phone = this.addUpdateAddress.Phone;\r\n // country update - needs 3 letter iso\r\n const countryCode = this._getCountryThreeLetterCode(address.country);\r\n if (!countryCode) {\r\n this.props.telemetry.error('country code undefined for ', address.country);\r\n return;\r\n }\r\n this._elementUpdate('ThreeLetterISORegionName', countryCode);\r\n // save other address fields\r\n this._elementUpdate('City', address.city);\r\n this._elementUpdate('ZipCode', address.postcode);\r\n this._elementUpdate('Street', address.street);\r\n this._elementUpdate('StreetNumber', address.street_number ? address.street_number : '');\r\n this._elementUpdate('BuildingCompliment', address.building_name ? address.building_name : '');\r\n this._elementUpdate('DistrictName', address.suburb);\r\n // restore name & phone\r\n if (name) {\r\n this._elementUpdate('Name', name);\r\n }\r\n if (phone) {\r\n this._elementUpdate('Phone', phone);\r\n }\r\n }\r\n\r\n private _elementUpdate = (name: string, value: string) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n }\r\n\r\n private _getCountryThreeLetterCode = (country: string): string | undefined => {\r\n const dropdownDisplayData = this.addressDropdownsData.ThreeLetterISORegionName;\r\n const data = dropdownDisplayData.find((item) => item.value === country);\r\n return data ? data.key?.toString() : undefined;\r\n }\r\n\r\n private _getExtensionPropertyValue = (fieldName: string) => {\r\n const value = this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties &&\r\n this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties?.filter(p=>p.Key === fieldName);\r\n if (value && value?.length > 0) {\r\n return value[0].Value?.StringValue || undefined;\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n\r\nexport default CheckoutBillingAddress;","/*---------------------------------------------------------------------------------------------\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 { IAddressAddItem, IAddressAddUpdateProps } from '../../common/address/components/address-add';\r\nimport { IAddressShowItem, IAddressShowProps } from '../../common/address/components/address-show';\r\nimport { ICheckoutBillingAddressViewProps } from './citta-checkout-billing-address';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\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 searchAddress\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {/* {searchAddress} */}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutBillingAddressView: React.FC = props => {\r\n const { CheckoutBillingAddress, viewState, heading, sameAsShippingCheckbox, showAddress, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutBillingAddressView;\r\n"],"names":["_ref","isChecked","value","ariaLabel","text","telemetryContent","onChange","additionalAttributes","checked","React","className","AddressInputComponent","Object","assign","type","additionalAddributes","autocomplete","CheckoutBillingAddress","constructor","props","super","countryRegionId","defaultAddressType","this","context","app","config","defaultAddressTypeValue","isNZ","addressDropdownsData","showAddressSearch","nzlCountryRegionId","_renderSearchAddress","AddressSearch","manualAddress","addressSelectedCallback","_handleSearchAddressSelection","toggleManualAddressCallback","_toggleManualAddressInput","_handleCartHasOnlyGiftCardScenario","_checkout$result","checkout","channelConfiguration","data","cart","result","checkoutCart","channelGiftCardItemId","GiftCardItemId","cartLinesCount","CartLines","length","hasGiftCartLine","filter","item","ItemId","toLocaleLowerCase","defaultAddress","_getDefaultAddress","_setBillingAddress","showBorderClass","_updateCurrentOperation","AddressOperation","Show","billingAddress","_renderAddOrUpdateAddress","addressFormatItems","addressFormat","getAddressFormat","addUpdateAddress","ThreeLetterISORegionName","getPrefilledAddressDropdownData","resources","addressStateDefaultSelectionText","stateProvinceInfo","name","AddressAddUpdate","addressType","AddressType","Billing","defaultCountryRegionId","selectedAddress","validationError","addressActionResponse","dropdownDisplayData","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","hasExternalSubmitGroup","moduleState","onSave","_onSubmitAddress","onCancel","_resetView","searchAddress","_handleClickAndCollectAuthScenario","onReady","Add","_handleClickAndCollectUnAuthScenario","strBillingAddress","_getExtensionPropertyValue","isNullOrWhitespace","isBillingAddressSameAsShipping","isClickAndCollectOrder","_updateBillingAddress","_handleDeliveryScenario","JSON","parse","customerAddresses","find","address","IsPrimary","undefined","_onCountryChange","_this$autoSuggest","twoLetterISORegionName","getTwoLetterISORegionName","set","autoSuggest","changeAutoSuggestionCountryCode","_clearAddressFields","_getAddressFormatExcludeList","addressFormatExcludeList","showAddressType","push","AddressItemType","AddressTypeValue","_attachMapAutoSuggest","async","storeSelectorStateManager","_this$autoSuggest2","isMapApiLoaded","attachAutoSuggest","_onSuggestionSelected","getTranformedAddress","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","Street","forEach","format","_this$autoSuggest3","excludedAddressFields","includes","_clearValidation","onAddressAddUpdate","validateAddressFormat","event","target","replace","RegExp","_getStateProvinces","currentOperation","Update","addressCommon","getStateProvinces","then","some","state","StateId","_initModuleState","init","status","isBillingAddressRequried","onEdit","onSubmit","isBillingAddressSameAsShippingAddress","_updateModuleState","isCartContainsItemsForShipping","shippingAddress","_onBillingAddressSameAsShippingChange","currentTarget","setHasError","stringify","_updateExtensionProps","catch","error","telemetry","key","_this$props$data$chec","updateExtensionProperties","newExtensionProperties","Key","Value","StringValue","onUpdating","newBillingAddress","_objectSpread","TwoLetterISORegionName","updateBillingAddress","additionalProperties","operation","Name","_getContactNameFromCartExtensions","Phone","_enableAdressSearch","country","city","postcode","street","suburb","phone","countryCode","_getCountryThreeLetterCode","_elementUpdate","street_number","building_name","_data$key","toString","fieldName","_this$props$data$chec2","_this$props$data$chec3","ExtensionProperties","p","_value$0$Value","List","addressPurposes","countryRegions","countryStates","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","request","telemetryPageName","friendlyName","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","_setDefaultCountryRegionId","reaction","isUpdating","isAuthenticatedFlow","shippingType","toLocaleUpperCase","_this$props$data$chec4","isDisabled","removeBillingAddress","onDisable","BingMapsApiKey","BingMapsEnabled","options","_this$autoSuggest4","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","_this$props$data$stor","loadMapApi","_this$autoSuggest5","_this$props$data$stor2","_this$props$data$stor3","_this$autoSuggest6","disposeAutoSuggest","render","renderView","viewState","isShowAddress","isShowAddOrUpdateAddress","isShowSameAsShippingCheckbox","moduleProps","classnames","heading","AddressBillingHeadingComponent","addressBillingAddressHeading","sameAsShippingCheckbox","AddressBillingCheckoxComponent","addressSameAsShippingAddressAriaLabel","addressSameAsShippingAddressText","showAddress","_renderShowAddress","showAddOrUpdateAddress","AddressShow","market","getDefaultCountryRegionId","_featureState$result","_this$props$data$chec5","channelDeliveryOptionConfig","featureState","retailMultiplePickUpOptionEnabled","feature","IsEnabled","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","hasInvoiceLine","cartLine","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","getLoyaltyAmount","checkoutState","loyaltyAmount","getGiftCardTotalAmount","giftCardExtends","reduce","count","giftCard","Balance","shouldPaidByCard","checkoutResult","paymentTenderType","tokenizedPaymentCard","isPaidByOtherPaymentSource","paymenTenderType","TotalAmount","__decorate","observable","action","computed","withModuleState","observer","AddressDetail","items","Node","map","description","_ref2","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","title","message","Module"],"sourceRoot":""}