{"version":3,"file":"static/js/130a856fdd8315feb52d.bundle.js","mappings":"+fA4KA,MAAMA,EAAwB,CAC5BC,wBAAyBA,CACvBC,EACAC,IAEKD,GAAYA,EAAQE,WAIlBF,EAAQE,WAAWC,KAAKC,GACe,IAAxCA,EAAiBC,mBAEjBC,EAAAA,cAAA,OACEC,IAAK,GAAGP,EAAQQ,6BAChBC,UAAU,uCAEVH,EAAAA,cAAA,QAAMG,UAAU,wCACbR,EAAiBS,YAAW,IAC7BJ,EAAAA,cAAA,QAAMG,UAAU,QACbL,EAAiBO,gBAChBP,EAAiBO,eAAeC,SAOA,IAAxCR,EAAiBC,mBAEjBC,EAAAA,cAAA,OACEC,IAAK,GAAGP,EAAQQ,6BAChBC,UAAU,uCAEVH,EAAAA,cAAA,QAAMG,UAAU,wCACbR,EAAiBY,aAElBP,EAAAA,cAAA,QAAMG,UAAU,QACbL,EAAiBO,gBAChBP,EAAiBO,eAAeC,SAOA,IAAxCR,EAAiBC,mBAEjBC,EAAAA,cAAA,OACEC,IAAK,GAAGP,EAAQQ,6BAChBC,UAAU,uCAEVH,EAAAA,cAAA,QAAMG,UAAU,uCACbR,EAAiBa,WAClBR,EAAAA,cAAA,QAAMG,UAAU,QACbL,EAAiBO,gBAChBP,EAAiBO,eAAeC,SAOA,IAAxCR,EAAiBC,mBAEjBC,EAAAA,cAAA,OACEC,IAAK,GAAGP,EAAQQ,6BAChBC,UAAU,uCAEVH,EAAAA,cAAA,QAAMG,UAAU,wCACbT,EAAQe,WACLd,EAAiBe,aACjBf,EAAiBgB,YACrBX,EAAAA,cAAA,QAAMG,UAAU,QACbL,EAAiBO,gBAChBP,EAAiBO,eAAeC,SAMrC,OA1EA,GA6EXM,oBAAsBC,IAAc,IAAAC,EAAAC,EAAAC,EAClC,GACa,QAAXF,EAACD,EAAMI,YAAI,IAAAH,GAAU,QAAVA,EAAVA,EAAYI,gBAAQ,IAAAJ,IAApBA,EAAsBK,eACwB,KAA5B,QAAnBJ,EAAAF,EAAMI,KAAKC,gBAAQ,IAAAH,GAAe,QAAfA,EAAnBA,EAAqBI,qBAAa,IAAAJ,OAAA,EAAlCA,EAAoCK,QAEpC,OAAO,KAET,IAAIC,EAAQR,EAAMI,KAAKC,SAASI,MAAQT,EAAMI,KAAKC,SAASK,SA4C5D,OAA0B,QAA1BP,EAAOH,EAAMI,KAAKC,gBAAQ,IAAAF,GAAe,QAAfA,EAAnBA,EAAqBG,qBAAa,IAAAH,OAAA,EAAlCA,EAAoCnB,KACzC,CAAC2B,EAAmBC,IAC4B,GAA1CD,EAAaE,0BAEb1B,EAAAA,cAAA,OACEC,KAAKuB,MAAAA,OAAY,EAAZA,EAAcG,UAAWF,EAC9BtB,UAAU,uCAEVH,EAAAA,cAAA,QAAMG,UAAU,wCACbqB,MAAAA,GAAAA,EAAcI,UAAYJ,MAAAA,OAAY,EAAZA,EAAcI,UAAY,GACpD,IAAIf,EAAMgB,UAAUC,oBAAsB,eAE7C9B,EAAAA,cAAA,QAAMG,UAAU,8BACdH,EAAAA,cAAA,YACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAOV,EAAaW,oBA6D1BnC,EAAAA,cAAA,YACG,KACsC,IAArCwB,MAAAA,OAAY,EAAZA,EAAcY,qBACVZ,MAAAA,OAAY,EAAZA,EAAcY,qBASR,IAPJF,OACEV,EAAaW,iBACVd,EA9FTgB,EAACC,EAAUC,KACzB,IAAIC,EAAc,EAClB,GAAoB,GAAhBD,EACF,OAAO,EAET,IAAK,IAAIE,EAAI,EAAGA,EAAIF,EAAcE,IAChCD,GAAON,OAAOI,EAAIG,GAAGN,iBAEvB,OAAOK,GAuFiBH,CACExB,EAAMI,KAAKC,SAASC,cACpBM,MAGRiB,QAAQ,SAOf1C,EAAAA,cAAAA,EAAAA,SAAA,SAKf2C,qBAAuB9B,IACrB,IAAKA,EAAM+B,0BACT,OAAO,KAET,MAAMC,EAAmBhC,EAAMiC,wBAC3B,0CAA0CjC,EAAMiC,0BAChD,yCACJ,OACE9C,EAAAA,cAAA,QAAMG,UAAW0C,GACdhC,EAAM+B,4BAIbG,oBAAsBlC,IAAc,IAAAmC,EAClC,MAAMC,EACyB,QADHD,EAC1BnC,EAAMkB,QAAQmB,QAAQC,eAAO,IAAAH,OAAA,EAA7BA,EAA+BI,uBAC3BC,EAA8BxC,EAAMwC,4BACpCnC,EAAWL,EAAMI,KAAKC,SAC5B,IAAIoC,GAAoB,EACuB,IAAAC,OAAXC,IAAhCH,EACFC,IACEpC,MAAAA,IAAAA,EAAUuC,cACyC,QAD7BF,EACtBF,EAA4BK,+BAAuB,IAAAH,IAAnDA,EAAqDI,MAClDC,GAAsBA,KAAiB1C,MAAAA,OAAQ,EAARA,EAAUuC,iBAItDH,IACEpC,MAAAA,IAAAA,EAAUuC,eACVvC,MAAAA,OAAQ,EAARA,EAAUuC,gBAAiBR,GAG/B,IAAKK,EACH,OAGF,MAAMO,IAAuB3C,MAAAA,OAAQ,EAARA,EAAU4C,cAAe,IAAIC,QACvDC,GAAoBA,EAAWC,aAGlC,GAAmC,IAA/BJ,EAAoBzC,OACtB,OAGF,MAAM8C,EAAaL,EAAoBM,QACrC,CAACC,EAAkBJ,IACVI,GAAeJ,EAAWK,kBAAoB,IAEvD,GAGIC,EACJtE,EAAAA,cAACuE,EAAAA,QAAc,CACbtD,KAAM,CACJI,MAAO,CACLmD,wBAAyBN,IAG7BO,cAAc,OACd1C,QAASlB,EAAMkB,QACf2C,GAAI7D,EAAM6D,GACVC,SAAU9D,EAAM8D,SAChBxE,UAAU,gCACVyE,aAAc/D,EAAM+D,eAGxB,OACE5E,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,SAAOG,UAAU,gCACd,GAAGU,EAAMgB,UAAUgD,wBAEtB7E,EAAAA,cAAA,QAAMG,UAAU,kBAAkBmE,KAIxCQ,mBAAqBjE,IAAc,IAAAkE,EACjC,MAAM7D,EAAWL,EAAMI,KAAKC,SACtB8D,EAAe9D,MAAAA,GAAqB,QAAb6D,EAAR7D,EAAU4C,mBAAW,IAAAiB,OAAA,EAArBA,EAAuBhB,QACzCkB,KAAqBA,MAAAA,GAAAA,EAAYhB,cAGpC,OACGe,GACCA,EAAanF,KAAI,CAACqF,EAAkBjF,IAC3BiF,GAAeA,EAAYb,iBAChCrE,EAAAA,cAAA,OAAKG,UAAU,+BAA+BF,IAAKA,GACjDD,EAAAA,cAAA,SAAOG,UAAU,sCACd,GAAG+E,MAAAA,OAAW,EAAXA,EAAaC,gBAEnBnF,EAAAA,cAAA,QAAMG,UAAU,sBACdH,EAAAA,cAACuE,EAAAA,QAAc,CACbtD,KAAM,CACJI,MAAO,CACLmD,wBAAyBU,MAAAA,OAAW,EAAXA,EAAab,mBAG1CtC,QAASlB,EAAMkB,QACf2C,GAAI7D,EAAM6D,GACVC,SAAU9D,EAAM8D,SAChBxE,UAAU,sCACVyE,aAAc/D,EAAM+D,iBAK1B,WAGNpB,IAioBO4B,EACXC,EAAAA,GAAiBC,wBAA6B,e,qWAAcC,CAAA,CAC1DC,UA7nBwC3E,IAC1C,IAAI,WAAC4E,EAAU,UAAE5D,GAAahB,EAC9B,MAAM,QAAC6E,EAAO,SAAExE,GAAYL,EAAMI,KAC5B0E,EAAuC,CAC3CC,UAAW,CACTC,GAAI,CAACC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACpCC,GAAI,CAACH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACpCE,GAAI,CAACJ,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEtCG,UAAU,EACVC,iBAAiB,GAGbC,EAA2B,CAC/B7F,WAAYqB,MAAAA,OAAS,EAATA,EAAWrB,WACvBJ,YAAayB,MAAAA,OAAS,EAATA,EAAWzB,YACxBO,YAAakB,MAAAA,OAAS,EAATA,EAAWlB,YACxBJ,aAAcsB,MAAAA,OAAS,EAATA,EAAWtB,aACzBG,aAAcmB,MAAAA,OAAS,EAATA,EAAWnB,cAErB4F,EACJZ,IACAa,EAAAA,EAAAA,qBACEb,EAAQc,OACR3F,EAAMkB,QAAQ0E,cAAcC,eAAeC,aAEzCC,EAAgBjB,GAAwB9E,EAAM+F,cACpDA,EAAcR,iBACXS,EAAAA,iBAAiBC,kBAAkBF,GAEtC,MAAMG,EACJrB,GACAlG,EAAsBC,wBACpBiG,EACAW,GAEEW,EAAqBxH,MAAAA,OAAqB,EAArBA,EAAuBoB,oBAAoBC,GAChEkC,EAAsBvD,EAAsBuD,oBAAoBlC,GAChEiE,EAAqBtF,EAAsBsF,mBAAmBjE,GAC9DoG,GAAUC,EAAAA,EAAAA,kBACd,QACArG,EAAMsG,iBACN,GACAzB,MAAAA,OAAO,EAAPA,EAASxF,SAASkH,YAEdC,GAAgBC,EAAAA,EAAAA,wBACpBzG,EAAMsG,iBACNF,GAEIM,GAAc7B,MAAAA,OAAO,EAAPA,EAAS8B,QAAQtG,MAAAA,OAAQ,EAARA,EAAUiE,aAE/CM,GAAagC,EAAAA,EAAAA,uBACXF,EACA7B,MAAAA,OAAO,EAAPA,EAASxF,SACTW,EAAMkB,QAAQ0E,eAGhB,MAAMiB,EAA2BC,IAC/B,IAAInF,EAAc,EAMlB,OALAmF,EAAc9H,KAAK+H,IACyB,IAAtCA,EAAQlG,4BACVc,GAAOoF,MAAAA,OAAO,EAAPA,EAASzF,oBAGbK,GAET,GACoB,oBAAXqF,QACa,oBAAbC,UACiB,oBAAjBC,aACP,CACA,MAAMC,EAAwBA,KAOJ,GAApBnH,EAAMoH,YAA0CzE,MAApB3C,EAAMoH,aAChCpH,EAAMqH,aACJrH,EAAMsH,iBAAmBtH,EAAMqH,YAE/BlI,EAAAA,cAAA,OAAKG,UAAU,qBACbH,EAAAA,cAAA,QAAMG,UAAU,6BAChBH,EAAAA,cAAA,YAAOa,EAAMuH,eAOnBvH,EAAMwH,aAENrI,EAAAA,cAAA,OAAKG,UAAU,qBACbH,EAAAA,cAAA,QAAMG,UAAU,6BAChBH,EAAAA,cAAA,YAAOa,EAAMwH,eAIV,KAILC,EAAYC,IACZ1H,EAAM2H,kBACD3H,EAAM2H,iBAAiB3H,EAAMI,KAAKwH,SAAUF,GAKjDG,EAAsBA,CAC1BC,EACAR,KACe,IAAAS,EAAAC,EAAAC,EACf,MAAMT,EAAeL,IAGrB,OACEhI,EAAAA,cAAA,OAAKG,UAAU,+BACZkI,EAAe,CAACA,GAAgB,KACjCrI,EAAAA,cAAA,QAAMG,UAAU,gBAAc,cAC9BH,EAAAA,cAAA,WACEA,EAAAA,cAAC+I,EAAAA,oBAAmB,CAClBrE,GAAI,2BAA6C,QAA7CkE,EAA2B/H,EAAMI,KAAKyE,eAAO,IAAAkD,OAAA,EAAlBA,EAAoB1I,YAA+B,QAAvB2I,EAAIhI,EAAMI,KAAKwH,gBAAQ,IAAAI,OAAA,EAAnBA,EAAqBpF,gBAAmC,QAAvBqF,EAAIjI,EAAMI,KAAKwH,gBAAQ,IAAAK,OAAA,EAAnBA,EAAqBE,SACzHC,IAAKpI,EAAMqH,aAAe,GAC1BgB,aAAcrI,EAAMsH,gBACpBG,SAAUA,EACVa,uBAAwBtH,EAAUsH,uBAClCC,yBAA0BvH,EAAUuH,yBACpCC,yBAA0BxH,EAAUwH,yBACpCpJ,IAAKY,EAAMI,KAAKwH,SAASO,OACzBM,UAAWzI,EAAM0I,iBACjBC,WAAY3I,EAAMI,KAAKyE,QAAQjF,WAC/B0G,iBAAkBtG,EAAMsG,sBAO5BsC,EAA4BA,KAA2B,IAAAC,EAAAC,EAC3D,MAAMC,EAAQ,GAET/I,EAAMI,KAAKwH,SAGd5H,EAAMI,KAAKC,SAAWL,EAAMI,KAAKwH,SAFjC5H,EAAMI,KAAKwH,SAAW5H,EAAMI,KAAKC,SAKnC,IAAI2I,EAAmC,QAAtBH,EAAG7I,EAAMI,KAAKC,gBAAQ,IAAAwI,OAAA,EAAnBA,EAAqBpI,MAMzC,GAJmB,QAAnBqI,EAAA9I,EAAMI,KAAKC,gBAAQ,IAAAyI,GAAnBA,EAAqBxI,cAActB,KAAKiK,IACtCD,GAAiCA,EAAgBC,EAAIC,WAAc,OAIjD,oBAAXlC,QACa,oBAAbC,UACiB,oBAAjBC,aACP,KAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACkDC,EAoEzCC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAnE0DC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EADnE,GAA2C,IAA7B,QAAV5C,EAAAnJ,EAAMI,YAAI,IAAA+I,GAAU,QAAVA,EAAVA,EAAY9I,gBAAQ,IAAA8I,OAAA,EAApBA,EAAsB6C,eACxB,IAAIhM,EAAMiM,oBAAyC,QAAnBnB,EAAC9K,EAAMI,KAAKyE,eAAO,IAAAiG,GAAlBA,EAAoBlL,WAoEnDmJ,EAAMmD,KACJ/M,EAAAA,cAAA,OAAKG,UAAU,4BACZ,IAECH,EAAAA,cAAA,QAAMG,UAAU,gBACbU,MAAAA,OAAK,EAALA,EAAOmM,iBAAgB,IAAG,KAG9BnM,EAAMI,KAAKC,SAAS+L,uBAAyB,EAC5CjN,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAA0B,QAApB0J,EAAC/K,EAAMI,KAAKC,gBAAQ,IAAA0K,OAAA,EAAnBA,EAAqBtK,UAGG,QAAjCuK,EAAAhL,EAAMI,KAAKC,SAASC,qBAAa,IAAA0K,OAAA,EAAjCA,EAAmCzK,QAAS,EAC9CpB,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAA0B,QAApB4J,EAACjL,EAAMI,KAAKC,gBAAQ,IAAA4K,OAAA,EAAnBA,EAAqBxK,SAIhCtB,EAAAA,cAACA,EAAAA,SAAc,KACZa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAA0B,QAApB6J,EAAClL,EAAMI,KAAKC,gBAAQ,IAAA6K,OAAA,EAAnBA,EAAqBzK,SAIlCtB,EAAAA,cAAA,UACGa,EAAMI,KAAKC,SAAS+L,uBAAyB,GACF,GAA5CpM,EAAMI,KAAKC,SAASC,cAAcC,OAC9BP,EAAMkB,QAAQC,iBAAiBC,eAC7BC,OACEgL,KAAKC,MAED,MADS,QAAVnB,EAAAnL,EAAMI,YAAI,IAAA+K,GAAU,QAAVA,EAAVA,EAAY9K,gBAAQ,IAAA8K,OAAA,EAApBA,EAAsB1K,OAAQY,OAAOkL,UAEpC,KAEHlL,OACCgL,KAAKC,MAED,MADS,QAAVlB,EAAApL,EAAMI,YAAI,IAAAgL,GAAU,QAAVA,EAAVA,EAAY/K,gBAAQ,IAAA+K,OAAA,EAApBA,EAAsB3K,OAAQY,OAAOkL,UAEpC,MAEe,QADpBlB,EACCrL,EAAMI,KAAKC,gBAAQ,IAAAgL,OAAA,EAAnBA,EAAqBe,wBACrB,MAE2B,QAAjCd,EAAAtL,EAAMI,KAAKC,SAASC,qBAAa,IAAAgL,OAAA,EAAjCA,EAAmC/K,QAAS,EAC5CP,EAAMkB,QAAQC,iBAAiBC,gBAC5BC,OACCgL,KAAKC,MAED,MADS,QAAVf,EAAAvL,EAAMI,YAAI,IAAAmL,GAAU,QAAVA,EAAVA,EAAYlL,gBAAQ,IAAAkL,OAAA,EAApBA,EAAsB9K,OAAQY,OAAOkL,UAEpC,KAEJlL,OAAOrB,EAAMI,KAAKC,SAASK,UAC3BmG,EACE7G,EAAMI,KAAKC,SAASC,gBAEtBe,OAAOrB,EAAMI,KAAKC,SAASK,WAE/B,QAsBVqI,EAAMmD,KACJ/M,EAAAA,cAAA,OAAKG,UAAU,sCACbH,EAAAA,cAAA,SAAOG,UAAU,gBACd0B,EAAUwL,sBAAqB,KAGlCrN,EAAAA,cAAA,QAAMG,UAAU,kBACbU,EAAMI,KAAKC,SACRL,EAAMI,KAAKC,SAASK,SACpBV,EAAMI,KAAKwH,SAASlH,iBA9J9BqI,EAAMmD,KACJ/M,EAAAA,cAAA,OAAKG,UAAU,iCACbH,EAAAA,cAAA,QAAMG,UAAU,gBAAgBU,EAAMmM,iBAAgB,MACrDnM,EAAMI,KAAKC,SAAS+L,uBAAyB,EAC5CjN,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAiB,QAAXmK,EAACxL,EAAMI,YAAI,IAAAoL,OAAA,EAAVA,EAAYnL,SAASI,UAGG,QAAjCgL,EAAAzL,EAAMI,KAAKC,SAASC,qBAAa,IAAAmL,OAAA,EAAjCA,EAAmClL,QAAS,EAC9CpB,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAiB,QAAXqK,EAAC1L,EAAMI,YAAI,IAAAsL,OAAA,EAAVA,EAAYrL,SAASI,SAIhCtB,EAAAA,cAACA,EAAAA,SAAc,KACZa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAOrB,EAAMI,KAAKC,SAASI,SAKjCtB,EAAAA,cAAA,UACGa,EAAMI,KAAKC,SAAS+L,uBAAyB,GACF,GAA5CpM,EAAMI,KAAKC,SAASC,cAAcC,OAC9BP,EAAMkB,QAAQC,iBAAiBC,eAC7BC,OACEgL,KAAKC,MAED,MADS,QAAVX,EAAA3L,EAAMI,YAAI,IAAAuL,GAAU,QAAVA,EAAVA,EAAYtL,gBAAQ,IAAAsL,OAAA,EAApBA,EAAsBlL,OAAQY,OAAOkL,UAEpC,KAEHlL,OACCgL,KAAKC,MAED,MADS,QAAVV,EAAA5L,EAAMI,YAAI,IAAAwL,GAAU,QAAVA,EAAVA,EAAYvL,gBAAQ,IAAAuL,OAAA,EAApBA,EAAsBnL,OAAQY,OAAOkL,UAEpC,MAEe,QADpBV,EACC7L,EAAMI,KAAKC,gBAAQ,IAAAwL,OAAA,EAAnBA,EAAqBO,wBACrB,MAE2B,QAAjCN,EAAA9L,EAAMI,KAAKC,SAASC,qBAAa,IAAAwL,OAAA,EAAjCA,EAAmCvL,QAAS,EAC5CP,EAAMkB,QAAQC,iBAAiBC,gBAC5BC,OACCgL,KAAKC,MAED,MADS,QAAVP,EAAA/L,EAAMI,YAAI,IAAA2L,GAAU,QAAVA,EAAVA,EAAY1L,gBAAQ,IAAA0L,OAAA,EAApBA,EAAsBtL,OAAQY,OAAOkL,UAEpC,KAEJlL,OAAOrB,EAAMI,KAAKC,SAASK,UAC3BmG,EACE7G,EAAMI,KAAKC,SAASC,gBAEtBe,OAAOrB,EAAMI,KAAKC,SAASK,WAE/B,QAIVqI,EAAMmD,KACJrE,EACE7H,EAAMqH,aAAe,GACrBrH,EAAMsH,kBAqTd,OAhNAyB,EAAMmD,KACJ/M,EAAAA,cAAA,OAAKG,UAAU,+BACbH,EAAAA,cAAA,QAAMG,UAAU,gBAAc,eAC7B0H,OAAOyF,SAASC,KAAKC,SAAS,gBAC7B3M,EAAMI,KAAKC,SACTL,EAAMI,KAAKC,SAAS+L,uBAAyB,GACA,IAAZ,QAAjChD,EAAApJ,EAAMI,KAAKC,SAASC,qBAAa,IAAA8I,OAAA,EAAjCA,EAAmC7I,QACjCpB,EAAAA,cAAA,WACEA,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAED,MADS,QAAVjD,EAAArJ,EAAMI,YAAI,IAAAiJ,GAAU,QAAVA,EAAVA,EAAYhJ,gBAAQ,IAAAgJ,OAAA,EAApBA,EAAsB5I,OAAQY,OAAOkL,UAEpC,KACFlL,OAAOrB,EAAMI,KAAKC,SAASK,YAGnCvB,EAAAA,cAAA,WAEAA,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAED,MADS,QAAVhD,EAAAtJ,EAAMI,YAAI,IAAAkJ,GAAU,QAAVA,EAAVA,EAAYjJ,gBAAQ,IAAAiJ,OAAA,EAApBA,EAAsB7I,OAAQY,OAAOkL,UAEpC,KAEJlL,OAAOrB,EAAMI,KAAKC,SAASK,UAC3BmG,EACE7G,EAAMI,KAAKC,SAASC,mBAKK,QAAjCiJ,EAAAvJ,EAAMI,KAAKC,SAASC,qBAAa,IAAAiJ,OAAA,EAAjCA,EAAmChJ,QAAS,EAC9CpB,EAAAA,cAAA,WACEA,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAED,MADS,QAAV9C,EAAAxJ,EAAMI,YAAI,IAAAoJ,GAAU,QAAVA,EAAVA,EAAYnJ,gBAAQ,IAAAmJ,OAAA,EAApBA,EAAsB/I,OAAQY,OAAOkL,UAEpC,KACFlL,OAAOrB,EAAMI,KAAKC,SAASK,YAGnCvB,EAAAA,cAAA,WACAA,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAED,MADS,QAAV7C,EAAAzJ,EAAMI,YAAI,IAAAqJ,GAAU,QAAVA,EAAVA,EAAYpJ,gBAAQ,IAAAoJ,OAAA,EAApBA,EAAsBhJ,OAAQY,OAAOkL,UAEpC,KAEJlL,OAAOrB,EAAMI,KAAKC,SAASK,UAC3BmG,EACE7G,EAAMI,KAAKC,SAASC,kBAM9BnB,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAiB,QAAXqI,EAAC1J,EAAMI,YAAI,IAAAsJ,GAAU,QAAVA,EAAVA,EAAYrJ,gBAAQ,IAAAqJ,OAAA,EAApBA,EAAsBjJ,OAC3BY,OAAOrB,EAAMI,KAAKC,SAASK,YAIjCV,EAAMI,KAAKwH,SAASwE,uBAAyB,EAC/CjN,EAAAA,cAAA,WACEA,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAV3C,EAAA3J,EAAMI,YAAI,IAAAuJ,GAAU,QAAVA,EAAVA,EAAYtJ,gBAAQ,IAAAsJ,OAAA,EAApBA,EAAsBlJ,OAAQY,OAAOkL,UACpC,KACFlL,OAAOrB,EAAMI,KAAKwH,SAASlH,YAGnCvB,EAAAA,cAAA,WACAA,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAV1C,EAAA5J,EAAMI,YAAI,IAAAwJ,GAAU,QAAVA,EAAVA,EAAYvJ,gBAAQ,IAAAuJ,OAAA,EAApBA,EAAsBnJ,OAAQY,OAAOkL,UACpC,KAEJlL,OAAOrB,EAAMI,KAAKwH,SAASlH,UAC3BmG,EACE7G,EAAMI,KAAKwH,SAAStH,mBAKK,QAAjCuJ,EAAA7J,EAAMI,KAAKwH,SAAStH,qBAAa,IAAAuJ,OAAA,EAAjCA,EAAmCtJ,QAAS,EAC9CpB,EAAAA,cAAA,WACEA,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAVxC,EAAA9J,EAAMI,YAAI,IAAA0J,GAAU,QAAVA,EAAVA,EAAYzJ,gBAAQ,IAAAyJ,OAAA,EAApBA,EAAsBrJ,OAAQY,OAAOkL,UACpC,KACFlL,OAAOrB,EAAMI,KAAKC,SAASK,YAGnCvB,EAAAA,cAAA,WACAA,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAVvC,EAAA/J,EAAMI,YAAI,IAAA2J,GAAU,QAAVA,EAAVA,EAAY1J,gBAAQ,IAAA0J,OAAA,EAApBA,EAAsBtJ,OAAQY,OAAOkL,UACpC,KAEJlL,OAAOrB,EAAMI,KAAKwH,SAASlH,UAC3BW,OACEwF,EACE7G,EAAMI,KAAKwH,SAAStH,mBAOhCnB,EAAAA,cAAA,QAAMG,UAAU,qBACbU,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OAAiB,QAAX2I,EAAChK,EAAMI,YAAI,IAAA4J,OAAA,EAAVA,EAAYpC,SAASnH,OAC1BY,OAAOrB,EAAMI,KAAKwH,SAASlH,YAIjC,KAE8C,GAAjDsG,OAAOyF,SAASC,KAAKC,SAAS,gBAC7BxN,EAAAA,cAAA,WACGa,EAAMI,KAAKC,SAAS+L,uBAAyB,EAC5CjN,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAVrC,EAAAjK,EAAMI,YAAI,IAAA6J,GAAU,QAAVA,EAAVA,EAAY5J,gBAAQ,IAAA4J,OAAA,EAApBA,EAAsBxJ,OAAQY,OAAOkL,UACpC,KACFlL,OAAiB,QAAX6I,EAAClK,EAAMI,YAAI,IAAA8J,GAAU,QAAVA,EAAVA,EAAY7J,gBAAQ,IAAA6J,OAAA,EAApBA,EAAsBxJ,aAGF,QAAjCyJ,EAAAnK,EAAMI,KAAKC,SAASC,qBAAa,IAAA6J,OAAA,EAAjCA,EAAmC5J,QAAS,EAC9CpB,EAAAA,cAAA,SACGa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAVlC,EAAApK,EAAMI,YAAI,IAAAgK,GAAU,QAAVA,EAAVA,EAAY/J,gBAAQ,IAAA+J,OAAA,EAApBA,EAAsB3J,OAAQY,OAAOkL,UACpC,KACFlL,OAAiB,QAAXgJ,EAACrK,EAAMI,YAAI,IAAAiK,GAAU,QAAVA,EAAVA,EAAYhK,gBAAQ,IAAAgK,OAAA,EAApBA,EAAsB3J,YAIrCvB,EAAAA,cAACA,EAAAA,SAAc,KACZa,EAAMkB,QAAQC,iBAAiBC,eAC9BC,OACEgL,KAAKC,MAC8C,MAAtC,QAAVhC,EAAAtK,EAAMI,YAAI,IAAAkK,GAAU,QAAVA,EAAVA,EAAYjK,gBAAQ,IAAAiK,OAAA,EAApBA,EAAsB7J,OAAQY,OAAOkL,UACpC,KACFlL,OAAiB,QAAXkJ,EAACvK,EAAMI,YAAI,IAAAmK,GAAU,QAAVA,EAAVA,EAAYlK,gBAAQ,IAAAkK,OAAA,EAApBA,EAAsB7J,YAKvCvB,EAAAA,cAAA,UACGa,EAAMI,KAAKC,SAAS+L,uBAAyB,GACD,IAAZ,QAAjC5B,EAAAxK,EAAMI,KAAKC,SAASC,qBAAa,IAAAkK,OAAA,EAAjCA,EAAmCjK,QAC/BP,EAAMkB,QAAQC,iBAAiBC,eAC7BC,OACEA,OACEgL,KAAKC,MAED,MADS,QAAV7B,EAAAzK,EAAMI,YAAI,IAAAqK,GAAU,QAAVA,EAAVA,EAAYpK,gBAAQ,IAAAoK,OAAA,EAApBA,EAAsBhK,OAAQY,OAAOkL,UAEpC,MAEM,QADX7B,EACC1K,EAAMI,YAAI,IAAAsK,GAAU,QAAVA,EAAVA,EAAYrK,gBAAQ,IAAAqK,OAAA,EAApBA,EAAsBhK,UACtBmG,EACE7G,EAAMI,KAAKC,SAASC,kBAIK,QAAjCqK,EAAA3K,EAAMI,KAAKC,SAASC,qBAAa,IAAAqK,OAAA,EAAjCA,EAAmCpK,QAAS,EAC5CP,EAAMkB,QAAQC,iBAAiBC,eAC7BC,OACEA,OACEgL,KAAKC,MAED,MADS,QAAV1B,EAAA5K,EAAMI,YAAI,IAAAwK,GAAU,QAAVA,EAAVA,EAAYvK,gBAAQ,IAAAuK,OAAA,EAApBA,EAAsBnK,OAAQY,OAAOkL,UAEpC,KAEJlL,OAAiB,QAAXwJ,EAAC7K,EAAMI,YAAI,IAAAyK,GAAU,QAAVA,EAAVA,EAAYxK,gBAAQ,IAAAwK,OAAA,EAApBA,EAAsBnK,UAC7BmG,EACE7G,EAAMI,KAAKC,SAASC,iBAI5B,OAGN,OAIDyI,EAEP,MAAO,IAKX,GAA0B,YAAtB/I,EAAM4M,YAA2B,CACnC,MAAMC,EAA4BhI,MAAAA,GAAAA,EAAS9F,WACvC8F,EAAQ9F,WAAWuE,QAAO,CAACwJ,EAAU7N,IAEjCA,EAAiBO,gBACjBP,EAAiBO,eAAeC,MAE5BqN,EACK,GAAGA,MAAQ7N,EAAiBO,eAAeC,QAG7C,GAAGR,EAAiBO,eAAeC,QAGrCqN,GACN,IACH,GAEJ,OACE3N,EAAAA,cAAA,OAAKG,UAAU,wCACbH,EAAAA,cAAA,OAAKG,UAAU,gCACbH,EAAAA,cAAC4N,EAAAA,GAAK,CACJC,IAAKhN,EAAMiN,iBAAmB,GAC9BC,YAAazH,EACb0H,QAASzG,EACT0G,aAAcpN,EAAMoN,aACpBrH,cAAeA,EACfsH,oBAAoB,WAGxBlO,EAAAA,cAAA,OAAKG,UAAU,0BACbH,EAAAA,cAAA,IAAAmO,OAAAC,OAAA,CACEjO,UAAU,+BACVoN,KAAM9H,GACF4B,GAEHE,GAEoB,KAAtBmG,EACC1N,EAAAA,cAAA,OAAKG,UAAU,mCACZkG,MAAAA,OAAwB,EAAxBA,EAA0BjG,YAAW,KAAIsN,GAG5C,GAEDjE,MAMT,OACEzJ,EAAAA,cAAA,OAAKG,UAAU,iBACbH,EAAAA,cAAA,OAAKG,UAAU,gCACbH,EAAAA,cAAC4N,EAAAA,GAAK,CACJC,IAAKhN,EAAMiN,iBAAmB,GAC9BC,YAAazH,EACb0H,QAASzG,EACT0G,aAAcpN,EAAMoN,aACpBrH,cAAeA,EACfsH,oBAAoB,UAEtBlO,EAAAA,cAAA,OAAKG,UAAU,gBACbH,EAAAA,cAAA,IAAAmO,OAAAC,OAAA,CACEjO,UAAU,+BACVoN,KAAM9H,GACF4B,EAAa,CACjBgH,QAASA,SAER9G,GAEFP,EACAsH,EAAAA,gBAAgBC,YAAYxH,GAC3B/G,EAAAA,cAAA,OAAKG,UAAU,mCACZ4G,GAGH,KAKLlG,EAAM2N,iCACLxO,EAAAA,cAAA,OAAKG,UAAU,0BAA0B4C,GAE1C+B,EACA2E,KAIL,OAAOzJ,EAAAA,cAAAA,EAAAA,SAAA,QAOJR,IAGP,K,2VC9lCA,MA2BMiP,EAA4B5N,IAC9B,MAAM6N,EAAgBC,EAAiB9N,GAGvC,SAAI6N,IAAiB7N,EAAMI,KAAKI,MAAMmD,0BAE3BkK,EAAgB7N,EAAMI,KAAKI,MAAMmD,yBAM1CmK,EAAoB9N,GACfqM,KAAKjE,IACVpI,EAAMI,KAAKI,MAAMmD,wBAA0B3D,EAAMI,KAAKI,MAAMuN,gBAI5D3M,EAAiBA,CAACpB,EAAYQ,EAA2BwN,KAC3D,QAAcrL,IAAVnC,EAIJ,OAAIwN,GAAoC,IAAVxN,GAAeR,EAAM4D,cACxC5D,EAAM4D,cAIV5D,EAAMkB,QAAQC,iBAAiBC,eAAeC,OAAOb,KAG1DyN,EAAsBjO,IACxB,MAAMkO,EAAe9M,EAAepB,EAAOA,EAAMI,KAAKI,MAAMmD,yBAAyB,GAC/EwK,EAAkB/M,EAAepB,EAAOA,EAAMI,KAAKI,MAAM4N,iBAAiB,GAC1EC,EAAkBjN,EAAepB,EAAOA,EAAMI,KAAKI,MAAM8N,iBAAiB,GAC6B,IAAAC,EAA7G,OAAIvO,EAAMwO,sBAAwBL,IAAoBE,GAAmBF,GAAmBE,EAEpFlP,EAAAA,cAAA,QAAMG,UAAU,wBAAwBmP,SAAS,SAC7CtP,EAAAA,cAAA,QAAMG,UAAU,sBAAsBmP,SAAS,SAC1CJ,GAELlP,EAAAA,cAAA,QAAMG,UAAU,uBAAuBmP,SAAS,SACvB,QAD8BF,EAClDvO,EAAM0O,sBAAc,IAAAH,OAAA,EAApBA,EAAsBI,qBAE3BxP,EAAAA,cAAA,QAAMG,UAAU,sBAAsBmP,SAAS,SAC1CN,IAKThP,EAAAA,cAAA,QAAMG,UAAU,oBAAoBmP,SAAS,SAChDP,IAIHU,EAAuC5O,IACzC,MAAM6N,EAAgBC,EAAiB9N,GACjCkO,EAAe9M,EAAepB,EAAO6N,GAAe,GAE1D,OACI1O,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAMG,UAAU,WACX,IACAU,EAAM6O,kBACN,IACAX,EACA,IACAlO,EAAM8O,iBACN,IACAb,EAAmBjO,IAExBb,EAAAA,cAAA,QAAMG,UAAU,2BAA0B,cAAa,QAClD4O,GAEL/O,EAAAA,cAAA,sBAAkB,QACb8O,EAAmBjO,IAEvBA,EAAM+O,aAAe5P,EAAAA,cAAA,QAAMG,UAAU,sBACjCU,EAAM+O,eAWhBC,EAA6BhP,IAA2B,IAAAiP,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3D,MACMC,GAD+D,QAArDT,EAAgBjP,EAAMI,KAAKI,MAAMmP,4BAAoB,IAAAV,EAAAA,EAAI,IACvC,GAClC,OAAQ9P,EAAAA,cAAA,QAAMG,UAAWsQ,GAAAA,CAAW,YAAa5P,EAAMV,YACnDH,EAAAA,cAAA,KAAGG,UAAU,oBAAoBmP,SAAS,SACrCrN,EAAepB,EAA2C,QAAtCkP,EAAElP,EAAMI,KAAKI,MAAMqP,2BAAmB,IAAAX,EAAAA,EAAIlP,EAAMI,KAAKI,MAAMmD,yBAAyB,IAE7GxE,EAAAA,cAAA,KAAGG,UAAWsQ,GAAAA,CAAW,kCAAmC5P,EAAMV,YACzC,QADmD6P,EACvEnP,EAAM0O,sBAAc,IAAAS,OAAA,EAApBA,EAAsBW,2BAE3B3Q,EAAAA,cAAA,KAAGG,UAAWsQ,GAAAA,CAAW,kCAAmC5P,EAAMV,YAC9DH,EAAAA,cAAA,aAEK4Q,EAAAA,EAAAA,QAC2D,QADrDX,EACiB,QADjBC,EACHrP,EAAM0O,sBAAc,IAAAW,OAAA,EAApBA,EAAsBW,0CAAkC,IAAAZ,EAAAA,EAAI,GAC5D,CACIM,EAAeO,cACfP,EAAeO,iBAI3B9Q,EAAAA,cAAA,aAEK4Q,EAAAA,EAAAA,QAC8D,QADxDT,EACiB,QADjBC,EACHvP,EAAM0O,sBAAc,IAAAa,OAAA,EAApBA,EAAsBW,6CAAqC,IAAAZ,EAAAA,EAAI,GAC/D,CAACI,EAAeS,qBAGxBhR,EAAAA,cAAA,aAEK4Q,EAAAA,EAAAA,QAC8D,QADxDP,EACiB,QADjBC,EACHzP,EAAM0O,sBAAc,IAAAe,OAAA,EAApBA,EAAsBW,6CAAqC,IAAAZ,EAAAA,EAAI,GAC/D,CAACE,EAAeW,wBASvB3M,EAA+Cc,EAAAA,GAAiBC,wBACzE,Q,qWAAOC,CAAA,CACLC,UA7JwB3E,QAEuB2C,IAA7C3C,EAAMI,KAAKI,MAAMmD,wBACV,KAMN3D,EAAMsQ,qCAAgF,IAAzCtQ,EAAMI,KAAKI,MAAMqP,qBAC9D7J,EAAAA,iBAAiBuK,SAASvQ,EAAMwQ,uBAAwD,IAA/BxQ,EAAMwQ,qBAE5DrR,EAAAA,cAAA,QAAMG,UAAWsQ,GAAAA,CAAW,YAAa5P,EAAMV,YAC1C0P,EAA0BhP,IAMnCb,EAAAA,cAAA,QAAMG,UAAWsQ,GAAAA,CAAW,YAAa5P,EAAMV,YAC1CsO,EAAyB5N,GAAS4O,EAAoC5O,GAASiO,EAAmBjO,KAtBjF,KAmK9B","sources":["webpack://@msdyn365-commerce-partners/fabrikam/./src/themes/britax-romers/views/components/cartlineitem.component.tsx?240f","webpack://@msdyn365-commerce-partners/fabrikam/./src/themes/britax-romers/views/components/price.component.tsx?7a61"],"sourcesContent":["/* !\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 {\r\n ArrayExtensions,\r\n getFallbackImageUrl,\r\n ObjectExtensions,\r\n} from \"@msdyn365-commerce-modules/retail-actions\";\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent,\r\n IncrementalQuantity,\r\n} from \"@msdyn365-commerce-modules/utilities\";\r\nimport {\r\n IComponentProps,\r\n IGridSettings,\r\n IImageSettings,\r\n Image,\r\n msdyn365Commerce,\r\n} from \"@msdyn365-commerce/core\";\r\nimport {\r\n ChannelDeliveryOptionConfiguration,\r\n SimpleProduct,\r\n} from \"@msdyn365-commerce/retail-proxy\";\r\nimport {\r\n CartLine,\r\n SalesLine,\r\n} from \"@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g\";\r\nimport * as React from \"react\";\r\nimport PriceComponent from \"./price.component\";\r\nimport {getProductPageUrlSync} from \"@msdyn365-commerce-modules/retail-actions\";\r\nimport {ICartResources} from \"../../definition-extensions/cart.ext.props.autogenerated\";\r\n// import currencyFormatter from \"currency-formatter\";\r\n\r\n/**\r\n * ICartlineResourceString: Interface for specifying the\r\n * resource strings that the component needs.\r\n */\r\nexport interface ICartlineResourceString {\r\n /** Display string for discount label */\r\n discountStringText: string;\r\n\r\n /** String for size key */\r\n sizeString: string;\r\n\r\n /** String for color key */\r\n colorString: string;\r\n\r\n /** String associated with the configuration product dimension */\r\n configString: string;\r\n\r\n /** String for style key */\r\n styleString: string;\r\n\r\n /** String for amount key */\r\n amountString?: string;\r\n\r\n /** Display string for quantity label */\r\n quantityDisplayString: string;\r\n\r\n /** Display string for quantity label */\r\n inputQuantityAriaLabel: string;\r\n\r\n /** Aria label for the decrement button in quanitity component */\r\n decrementButtonAriaLabel?: string;\r\n\r\n /** Aria label for the increment button in quanitity component */\r\n incrementButtonAriaLabel?: string;\r\n\r\n /** Original text screenreader */\r\n originalPriceText: string;\r\n\r\n /** Current text screenreader */\r\n currentPriceText: string;\r\n\r\n /** Shipping Charges Text */\r\n shippingChargesText: string;\r\n}\r\n\r\ninterface ICartLineData {\r\n cartLine: CartLine | SalesLine;\r\n product?: SimpleProduct;\r\n}\r\n\r\nexport type CartLineDisplayMode = \"DEFAULT\" | \"COMPACT\";\r\n\r\n/**\r\n * ICartLineProps: The props required to render cartLineitem.\r\n */\r\nexport interface ICartLineProps\r\n extends IComponentProps {\r\n /** The flag to change the quantity component from interactible to static */\r\n disableQuantityInteractivity?: boolean;\r\n\r\n /** The primary image url */\r\n primaryImageUrl?: string;\r\n\r\n /** The product url */\r\n productUrl?: string;\r\n\r\n /** GridSettings for the product image in cartLine */\r\n gridSettings: IGridSettings;\r\n\r\n /** ImageSettings for the product image in cartLine */\r\n imageSettings: IImageSettings;\r\n\r\n /** Boolean flag to indicate if the item is out of stock */\r\n isOutOfStock?: boolean;\r\n\r\n /** Flag to make quantity section editable */\r\n isQuantityEditable?: boolean;\r\n\r\n /** Max quantity for line item */\r\n maxQuantity?: number;\r\n\r\n /** Current quantity for line item */\r\n currentQuantity?: number;\r\n\r\n /** Resource string for the component */\r\n resources: ICartlineResourceString;\r\n\r\n /** SalesLine flag */\r\n isSalesLine?: boolean;\r\n\r\n /** Error message to show in place of quantity */\r\n errorMessage?: string;\r\n\r\n /** Display mode to use */\r\n displayMode?: CartLineDisplayMode;\r\n\r\n /** Inventory information label */\r\n inventoryInformationLabel?: string;\r\n\r\n /** Inventory information class name */\r\n inventoryLabelClassName?: string;\r\n\r\n /** Flag to show/hide shipping charges for line items */\r\n showShippingChargesForLineItems?: boolean;\r\n\r\n /** Boolean flag to indicate if cart state status is ready */\r\n isCartStateReady?: boolean;\r\n\r\n /** Chanel Delivery Option configuration is from api. */\r\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n\r\n /** Quantity onChange callback */\r\n quantityOnChange?(cartLine: any, newQuantity: number): void;\r\n}\r\n\r\ninterface IDimensionStrings {\r\n /** String for size key */\r\n sizeString: string;\r\n\r\n /** String for color key */\r\n colorString: string;\r\n\r\n /** String associated with the configuration product dimension */\r\n configString: string;\r\n\r\n /** String for style key */\r\n styleString: string;\r\n\r\n /** String for amount key */\r\n amountString?: string;\r\n}\r\n\r\nconst CartLineItemFunctions = {\r\n renderProductDimensions: (\r\n Product: SimpleProduct,\r\n DimensionStrings: IDimensionStrings,\r\n ) => {\r\n if (!Product || !Product.Dimensions) {\r\n return [];\r\n }\r\n\r\n return Product.Dimensions.map((productDimension: any) => {\r\n if (productDimension.DimensionTypeValue === 1) {\r\n return (\r\n \r\n \r\n {DimensionStrings.colorString}:\r\n \r\n {productDimension.DimensionValue &&\r\n productDimension.DimensionValue.Value}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 2) {\r\n return (\r\n \r\n \r\n {DimensionStrings.configString}\r\n\r\n \r\n {productDimension.DimensionValue &&\r\n productDimension.DimensionValue.Value}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 3) {\r\n return (\r\n \r\n \r\n {DimensionStrings.sizeString}\r\n \r\n {productDimension.DimensionValue &&\r\n productDimension.DimensionValue.Value}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 4) {\r\n return (\r\n \r\n \r\n {Product.IsGiftCard\r\n ? DimensionStrings.amountString\r\n : DimensionStrings.styleString}\r\n \r\n {productDimension.DimensionValue &&\r\n productDimension.DimensionValue.Value}\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n });\r\n },\r\n renderDiscountLines: (props: any) => {\r\n if (\r\n !props.data?.cartline?.DiscountLines ||\r\n props.data.cartline?.DiscountLines?.length === 0\r\n ) {\r\n return null;\r\n }\r\n let price = props.data.cartline.Price * props.data.cartline.Quantity;\r\n /**\r\n * Get the updated discount percentage.\r\n * @param {DiscountLine} discountLine - The discount line.\r\n * @param {CartLine} cartLine - The cart line.\r\n * @returns {number} The updated discount percentage.\r\n */\r\n // const discountPercent = (discountLine: DiscountLine, cartLine: CartLine): number => {\r\n // const numberZero = 0;\r\n // const decimalPrecision = 2;\r\n // const fullPercentage = 100;\r\n // let updatedPercent: number = discountLine.Percentage ?? numberZero;\r\n\r\n // if ((discountLine.EffectivePercentage === numberZero ||\r\n // (discountLine.DiscountLineTypeValue && discountLine.DiscountLineTypeValue === DiscountLineType.TenderTypeDiscount)) &&\r\n // cartLine.Price && cartLine.Price > numberZero && cartLine.Quantity && cartLine.Quantity !== numberZero) {\r\n // const effectiveAmount = discountLine.EffectiveAmount ?? numberZero;\r\n // updatedPercent = Number(((effectiveAmount / (cartLine.Price * cartLine.Quantity)) * fullPercentage).toFixed(decimalPrecision));\r\n // }\r\n\r\n // return updatedPercent;\r\n // };\r\n\r\n // const discountAmountCalculate = (discountLines: any): any => {\r\n // var sum: Number = 0;\r\n // discountLines.map((element: any) => {\r\n // if (element.CustomerDiscountTypeValue !== 3) {\r\n // sum += element?.EffectiveAmount\r\n // }\r\n // })\r\n // return sum;\r\n // }\r\n\r\n const PrevSum = (arr: any, currentIndex: any) => {\r\n var sum: number = 0;\r\n if (currentIndex == 0) {\r\n return 0;\r\n }\r\n for (var i = 0; i < currentIndex; i++) {\r\n sum += Number(arr[i].EffectiveAmount);\r\n }\r\n return sum;\r\n };\r\n\r\n return props.data.cartline?.DiscountLines?.map(\r\n (discountLine: any, index: any) => {\r\n if (discountLine.CustomerDiscountTypeValue != 3) {\r\n return (\r\n \r\n \r\n {discountLine?.OfferName ? discountLine?.OfferName : \"\"}\r\n {` ${props.resources.discountStringText || \"Discount\"} `}\r\n \r\n \r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(discountLine.EffectiveAmount),\r\n )}\r\n \r\n\r\n {/* {props.isSalesLine ? {props.context.cultureFormatter.formatCurrency(\r\n discountAmountCalculate(props.data.cartline.DiscountLines)\r\n )} : {props.context.cultureFormatter.formatCurrency(\r\n Number(discountLine.DiscountCost)\r\n )} */}\r\n\r\n {/* discountLine?.DiscountCost && (\r\n <>\r\n\r\n \r\n \r\n ) */}\r\n {/* } */}\r\n {/* {discountLine.DiscountCost && (\r\n <>\r\n \r\n \r\n \r\n )} */}\r\n \r\n \r\n {` (${\r\n discountLine?.EffectivePercentage != 0\r\n ? discountLine?.EffectivePercentage\r\n : (\r\n Number(\r\n discountLine.EffectiveAmount /\r\n (price -\r\n PrevSum(\r\n props.data.cartline.DiscountLines,\r\n index,\r\n )),\r\n ) * 100\r\n ).toFixed(2)\r\n }%)`}\r\n {/* {` (${discountLine?.EffectivePercentage !== undefined && discountLine?.EffectivePercentage != 0 ? discountLine?.EffectivePercentage : discountPercent}%)`} */}\r\n \r\n \r\n );\r\n } else {\r\n return <>;\r\n }\r\n },\r\n );\r\n },\r\n renderInventoryLabel: (props: ICartLineProps) => {\r\n if (!props.inventoryInformationLabel) {\r\n return null;\r\n }\r\n const inventoryCssName = props.inventoryLabelClassName\r\n ? `msc-cart-line__product-inventory-label ${props.inventoryLabelClassName}`\r\n : \"msc-cart-line__product-inventory-label\";\r\n return (\r\n \r\n {props.inventoryInformationLabel}\r\n \r\n );\r\n },\r\n renderShippingLabel: (props: any) => {\r\n const pickupDeliveryModeCode =\r\n props.context.request.channel?.PickupDeliveryModeCode;\r\n const channelDeliveryOptionConfig = props.channelDeliveryOptionConfig;\r\n const cartline = props.data.cartline;\r\n let hasShippingMethod = false;\r\n if (channelDeliveryOptionConfig !== undefined) {\r\n hasShippingMethod = !!(\r\n cartline?.DeliveryMode &&\r\n channelDeliveryOptionConfig.PickupDeliveryModeCodes?.some(\r\n (deliveryMode: any) => deliveryMode !== cartline?.DeliveryMode,\r\n )\r\n );\r\n } else {\r\n hasShippingMethod = !!(\r\n cartline?.DeliveryMode &&\r\n cartline?.DeliveryMode !== pickupDeliveryModeCode\r\n );\r\n }\r\n if (!hasShippingMethod) {\r\n return undefined;\r\n }\r\n\r\n const shippingChargeLines = (cartline?.ChargeLines || []).filter(\r\n (chargeLine: any) => chargeLine.IsShipping,\r\n );\r\n\r\n if (shippingChargeLines.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const freightFee = shippingChargeLines.reduce(\r\n (chargeTotal: any, chargeLine: any) => {\r\n return chargeTotal + (chargeLine.CalculatedAmount || 0);\r\n },\r\n 0,\r\n );\r\n\r\n const priceComponent = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n {priceComponent}\r\n \r\n );\r\n },\r\n renderOtherCharges: (props: any) => {\r\n const cartline = props.data.cartline;\r\n const otherCharges = cartline?.ChargeLines?.filter(\r\n (chargeline: any) => !chargeline?.IsShipping,\r\n );\r\n\r\n return (\r\n (otherCharges &&\r\n otherCharges.map((otherCharge: any, key: any) => {\r\n return otherCharge && otherCharge.CalculatedAmount ? (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n );\r\n })) ||\r\n undefined\r\n );\r\n },\r\n};\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nconst CartLine: React.FC = (props: any) => {\r\n let {productUrl, resources} = props;\r\n const {product, cartline} = props.data;\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: {q: `w=300&h=300&m=6`, w: 0, h: 0},\r\n lg: {q: `w=300&h=300&m=6`, w: 0, h: 0},\r\n xl: {q: `w=300&h=300&m=6`, w: 0, h: 0},\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true,\r\n };\r\n\r\n const destructDimensionStrings = {\r\n sizeString: resources?.sizeString,\r\n colorString: resources?.colorString,\r\n styleString: resources?.styleString,\r\n configString: resources?.configString,\r\n amountString: resources?.amountString,\r\n };\r\n const fallbackImageUrl =\r\n product &&\r\n getFallbackImageUrl(\r\n product.ItemId,\r\n props.context.actionContext.requestContext.apiSettings,\r\n );\r\n const imageSettings = defaultImageSettings || props.imageSettings;\r\n imageSettings.cropFocalRegion =\r\n !ObjectExtensions.isNullOrUndefined(imageSettings);\r\n // const { inputQuantityAriaLabel } = props.resources;\r\n const productDimensions =\r\n product &&\r\n CartLineItemFunctions.renderProductDimensions(\r\n product,\r\n destructDimensionStrings,\r\n );\r\n const renderDisountLines = CartLineItemFunctions?.renderDiscountLines(props);\r\n const renderShippingLabel = CartLineItemFunctions.renderShippingLabel(props);\r\n const renderOtherCharges = CartLineItemFunctions.renderOtherCharges(props);\r\n const payLoad = getPayloadObject(\r\n \"click\",\r\n props.telemetryContent!,\r\n \"\",\r\n product?.RecordId.toString(),\r\n );\r\n const prodAttribute = getTelemetryAttributes(\r\n props.telemetryContent!,\r\n payLoad,\r\n );\r\n const productName = product?.Name || cartline?.Description;\r\n /*Saqlain Customization Start - Added Product URL for each Product*/\r\n productUrl = getProductPageUrlSync(\r\n productName,\r\n product?.RecordId,\r\n props.context.actionContext,\r\n );\r\n /*Saqlain Customiation End*/\r\n const discountAmountCalculate = (discountLines: any): any => {\r\n var sum: Number = 0;\r\n discountLines.map((element: any) => {\r\n if (element.CustomerDiscountTypeValue !== 3) {\r\n sum += element?.EffectiveAmount;\r\n }\r\n });\r\n return sum;\r\n };\r\n if (\r\n typeof window !== \"undefined\" &&\r\n typeof document !== \"undefined\" &&\r\n typeof localStorage !== \"undefined\"\r\n ) {\r\n const _generateErrorMessage = (): JSX.Element | null => {\r\n /* \r\n VSI CUSTOMIZATION \r\n Maximum Quantity Limit has Precendence over other conditions/errors (minimum, multiple)\r\n Checks if maximum quanity of a product is reached, if yes returns error message. \r\n Otherwise if there is any other error message, that is displayed\r\n */\r\n if (props.isCartIcon != true || props.isCartIcon == undefined) {\r\n if (props.maxQuantity) {\r\n if (props.currentQuantity >= props.maxQuantity) {\r\n return (\r\n
\r\n \r\n {props.limitReached}\r\n
\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (props.errorMessage) {\r\n return (\r\n
\r\n \r\n {props.errorMessage}\r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const onChange = (newValue: number): boolean => {\r\n if (props.quantityOnChange) {\r\n return props.quantityOnChange(props.data.cartLine, newValue);\r\n }\r\n return true;\r\n };\r\n\r\n const _generateSelectMenu = (\r\n quantity: number,\r\n currentQuantity: any | undefined,\r\n ): JSX.Element => {\r\n const errorMessage = _generateErrorMessage();\r\n // var status:boolean = false;\r\n\r\n return (\r\n
\r\n {errorMessage ? [errorMessage] : null}\r\n Quantity: \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const _generateQuantityAndPrice = (): JSX.Element[] | null => {\r\n const nodes = [];\r\n\r\n if (!props.data.cartLine) {\r\n props.data.cartLine = props.data.cartline;\r\n } else {\r\n props.data.cartline = props.data.cartLine;\r\n }\r\n\r\n var discountArray = props.data.cartline?.Price;\r\n\r\n props.data.cartline?.DiscountLines.map((ele: any) => {\r\n discountArray = discountArray - (discountArray * ele.Percentage) / 100;\r\n });\r\n\r\n if (\r\n typeof window !== \"undefined\" &&\r\n typeof document !== \"undefined\" &&\r\n typeof localStorage !== \"undefined\"\r\n ) {\r\n if (props.data?.cartline?.IsInvoiceLine == false) {\r\n if (props.isQuantityEditable && !props.data.product?.IsGiftCard) {\r\n nodes.push(\r\n
\r\n {props.priceTranslation}: \r\n {props.data.cartline.LinePercentageDiscount > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data?.cartline.Price),\r\n )}\r\n \r\n ) : props.data.cartline.DiscountLines?.length > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data?.cartline.Price),\r\n )}\r\n \r\n ) : (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data.cartline.Price),\r\n )}\r\n \r\n )}\r\n {/* this */}\r\n
\r\n {props.data.cartline.LinePercentageDiscount > 0 &&\r\n props.data.cartline.DiscountLines.length == 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) -\r\n (Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n props.data.cartline?.LinePercentageDiscount) /\r\n 100,\r\n )\r\n : props.data.cartline.DiscountLines?.length > 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n (Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartline.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n )) /\r\n Number(props.data.cartline.Quantity),\r\n )\r\n : null}\r\n
\r\n
,\r\n );\r\n nodes.push(\r\n _generateSelectMenu(\r\n props.maxQuantity || 10,\r\n props.currentQuantity,\r\n ),\r\n );\r\n } else {\r\n nodes.push(\r\n
\r\n {\" \"}\r\n {\r\n \r\n {props?.priceTranslation}:{\" \"}\r\n \r\n }\r\n {props.data.cartline.LinePercentageDiscount > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data.cartline?.Price),\r\n )}\r\n \r\n ) : props.data.cartline.DiscountLines?.length > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data.cartline?.Price),\r\n )}\r\n \r\n ) : (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data.cartline?.Price),\r\n )}\r\n \r\n )}\r\n
\r\n {props.data.cartline.LinePercentageDiscount > 0 &&\r\n props.data.cartline.DiscountLines.length == 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) -\r\n (Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n props.data.cartline?.LinePercentageDiscount) /\r\n 100,\r\n )\r\n : props.data.cartline.DiscountLines?.length > 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n (Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartline.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n )) /\r\n Number(props.data.cartline.Quantity),\r\n )\r\n : null}\r\n
\r\n {/* {props.data.cartline? currencyFormatter.format(\r\n Number(Math.round((props.data?.cartline?.Price + Number.EPSILON) * 100) / 100),\r\n {\r\n code: props.currencyCode,\r\n decimal: \".\",\r\n precision: 2,\r\n thousand:\",\"\r\n }\r\n ): currencyFormatter.format(\r\n Number(Math.round((props.data?.cartline?.Price + Number.EPSILON) * 100) / 100),\r\n {\r\n code: props.currencyCode,\r\n decimal: \".\",\r\n precision: 2,\r\n thousand:\",\"\r\n }\r\n )} */}\r\n
,\r\n );\r\n\r\n nodes.push(\r\n
\r\n \r\n\r\n \r\n {props.data.cartline\r\n ? props.data.cartline.Quantity\r\n : props.data.cartLine.Quantity}\r\n \r\n
,\r\n );\r\n }\r\n }\r\n nodes.push(\r\n
\r\n Sub Total: \r\n {window.location.href.includes(\"orderdetails\") ? (\r\n props.data.cartline ? (\r\n props.data.cartline.LinePercentageDiscount > 0 &&\r\n props.data.cartline.DiscountLines?.length == 0 ? (\r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) * Number(props.data.cartline.Quantity),\r\n )}\r\n \r\n
\r\n\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartline.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n ),\r\n )}\r\n \r\n
\r\n ) : props.data.cartline.DiscountLines?.length > 0 ? (\r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) * Number(props.data.cartline.Quantity),\r\n )}\r\n \r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartline.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n ),\r\n )}\r\n \r\n
\r\n ) : (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data?.cartline?.Price) *\r\n Number(props.data.cartline.Quantity),\r\n )}\r\n \r\n )\r\n ) : props.data.cartLine.LinePercentageDiscount > 0 ? (\r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) * Number(props.data.cartLine.Quantity),\r\n )}\r\n \r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartLine.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartLine.DiscountLines,\r\n ),\r\n )}\r\n \r\n
\r\n ) : props.data.cartLine.DiscountLines?.length > 0 ? (\r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) * Number(props.data.cartline.Quantity),\r\n )}\r\n \r\n
\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data.cartLine.Quantity) -\r\n Number(\r\n discountAmountCalculate(\r\n props.data.cartLine.DiscountLines,\r\n ),\r\n ),\r\n )}\r\n \r\n
\r\n ) : (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(props.data?.cartLine.Price) *\r\n Number(props.data.cartLine.Quantity),\r\n )}\r\n \r\n )\r\n ) : null}\r\n\r\n {window.location.href.includes(\"orderdetails\") == false ? (\r\n
\r\n {props.data.cartline.LinePercentageDiscount > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) * Number(props.data?.cartline?.Quantity),\r\n )}\r\n \r\n ) : props.data.cartline.DiscountLines?.length > 0 ? (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) * Number(props.data?.cartline?.Quantity),\r\n )}\r\n \r\n ) : (\r\n \r\n {props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) * 100,\r\n ) / 100,\r\n ) * Number(props.data?.cartline?.Quantity),\r\n )}\r\n \r\n )}\r\n\r\n
\r\n {props.data.cartline.LinePercentageDiscount > 0 &&\r\n props.data.cartline.DiscountLines?.length == 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n props.data?.cartline?.Quantity -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n ),\r\n ),\r\n )\r\n : props.data.cartline.DiscountLines?.length > 0\r\n ? props.context.cultureFormatter.formatCurrency(\r\n Number(\r\n Number(\r\n Math.round(\r\n (props.data?.cartline?.Price + Number.EPSILON) *\r\n 100,\r\n ) / 100,\r\n ) *\r\n Number(props.data?.cartline?.Quantity) -\r\n discountAmountCalculate(\r\n props.data.cartline.DiscountLines,\r\n ),\r\n ),\r\n )\r\n : null}\r\n
\r\n
\r\n ) : null}\r\n
,\r\n );\r\n\r\n return nodes;\r\n } else {\r\n return [];\r\n }\r\n // No quantity selector for invoice line\r\n };\r\n\r\n if (props.displayMode === \"COMPACT\") {\r\n const reducedDimensions: string = product?.Dimensions\r\n ? product.Dimensions.reduce((str: any, productDimension: any) => {\r\n if (\r\n productDimension.DimensionValue &&\r\n productDimension.DimensionValue.Value\r\n ) {\r\n if (str) {\r\n return `${str}, ${productDimension.DimensionValue.Value}`;\r\n }\r\n\r\n return `${productDimension.DimensionValue.Value}`;\r\n }\r\n\r\n return str;\r\n }, \"\")\r\n : \"\";\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {productName}\r\n \r\n {reducedDimensions !== \"\" ? (\r\n
\r\n {destructDimensionStrings?.colorString}: {reducedDimensions}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {_generateQuantityAndPrice()}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {}}\r\n >\r\n {productName}\r\n \r\n {renderDisountLines}\r\n {ArrayExtensions.hasElements(productDimensions) ? (\r\n
\r\n {productDimensions}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n\r\n {props.showShippingChargesForLineItems && (\r\n
{renderShippingLabel}
\r\n )}\r\n {renderOtherCharges}\r\n {_generateQuantityAndPrice()}\r\n
\r\n );\r\n } else {\r\n return <>;\r\n }\r\n};\r\n\r\nexport const CartLineItemComponent: React.FunctionComponent =\r\n msdyn365Commerce.createComponentOverride(\"CartLineItem\", {\r\n component: CartLine,\r\n ...CartLineItemFunctions,\r\n });\r\n\r\nexport default CartLineItemComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ProductPrice } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { PriceLine} from '@msdyn365-commerce/retail-proxy';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\n\r\n\r\n// import currencyFormatter from \"currency-formatter\";\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n isSalesAgreementPriceFeatureEnabled?: boolean;\r\n salesAgreementLineId?: number;\r\n priceResources?: IPriceComponentResources;\r\n currencyCode?:string;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst PriceComponentActions = {};\r\n\r\nconst Price: React.FC = (props: any) => {\r\n // CustomerContextualPrice could be 0\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n // Determine if contract price is avaiable/applied by:\r\n // isFeatureEnabled and SA price != 0, for PDP.\r\n // SA line id != 0, for cart line.\r\n if ((props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) ||\r\n (ObjectExtensions.isNumber(props.salesAgreementLineId) && props.salesAgreementLineId !== 0)) {\r\n return (\r\n \r\n {renderSalesAgreementPrice(props)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\nconst showStrikethroughPricing = (props: any) => {\r\n const originalPrice = getOriginalPrice(props);\r\n \r\n\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n \r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: any) => {\r\n return Math.max(\r\n props.data.price.CustomerContextualPrice + props.data.price.DiscountAmount\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: any, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string | undefined => {\r\n if (price === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (shouldUseFreePriceText && price === 0 && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n\r\n // return props.context.cultureFormatter.formatCurrency(price);\r\n return props.context.cultureFormatter.formatCurrency(Number(price));\r\n};\r\n\r\nconst renderCurrentPrice = (props: any): JSX.Element | undefined => {\r\n const initialPrice = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n if (props.isPriceMinMaxEnabled && maxVariantPrice !== minVariantPrice && maxVariantPrice && minVariantPrice) {\r\n return (\r\n \r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n return (\r\n {initialPrice}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: any): JSX.Element | null => {\r\n const originalPrice = getOriginalPrice(props);\r\n const initialPrice = formatCurrency(props, originalPrice, true);\r\n\r\n return (\r\n <>\r\n \r\n {' '}\r\n {props.originalPriceText}\r\n {' '}\r\n {initialPrice}\r\n {' '}\r\n {props.currentPriceText}\r\n {' '}\r\n {renderCurrentPrice(props)}\r\n \r\n \r\n \r\n {props.savingsText && \r\n {props.savingsText}\r\n }\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Return a JSX.Element contains sales agreement prompt if feature enabled.\r\n * @param props - The IPriceComponentProps.\r\n * @returns The JSX.Element.\r\n */\r\n const renderSalesAgreementPrice = (props: any): JSX.Element => {\r\n const priceLines: PriceLine[] = props.data.price.AttainablePriceLines ?? [];\r\n const firstPriceLine = priceLines[0] as any;\r\n return (\r\n

\r\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\r\n

\r\n

\r\n {props.priceResources?.salesAgreementPricePrompt}\r\n

\r\n

\r\n \r\n {/* Available date */}\r\n {format(\r\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\r\n [\r\n firstPriceLine.EffectiveDate,\r\n firstPriceLine.EffectiveDate\r\n ]\r\n )}\r\n \r\n \r\n {/* Quantity commitment */}\r\n {format(\r\n props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '',\r\n [firstPriceLine.CommittedQuantity]\r\n )}\r\n \r\n \r\n {/* Remaining quantity to qualify */}\r\n {format(\r\n props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '',\r\n [firstPriceLine.RemainingQuantity]\r\n )}\r\n \r\n

\r\n
);\r\n};\r\n\r\n\r\n\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n { component: Price, ...PriceComponentActions }\r\n);\r\n\r\n\r\nexport default PriceComponent;"],"names":["CartLineItemFunctions","renderProductDimensions","Product","DimensionStrings","Dimensions","map","productDimension","DimensionTypeValue","React","key","RecordId","className","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","renderDiscountLines","props","_props$data","_props$data$cartline","_props$data$cartline2","data","cartline","DiscountLines","length","price","Price","Quantity","discountLine","index","CustomerDiscountTypeValue","OfferId","OfferName","resources","discountStringText","context","cultureFormatter","formatCurrency","Number","EffectiveAmount","EffectivePercentage","PrevSum","arr","currentIndex","sum","i","toFixed","renderInventoryLabel","inventoryInformationLabel","inventoryCssName","inventoryLabelClassName","renderShippingLabel","_props$context$reques","pickupDeliveryModeCode","request","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","hasShippingMethod","_channelDeliveryOptio","undefined","DeliveryMode","PickupDeliveryModeCodes","some","deliveryMode","shippingChargeLines","ChargeLines","filter","chargeLine","IsShipping","freightFee","reduce","chargeTotal","CalculatedAmount","priceComponent","PriceComponent","CustomerContextualPrice","freePriceText","id","typeName","currencyCode","shippingChargesText","renderOtherCharges","_cartline$ChargeLines","otherCharges","chargeline","otherCharge","Description","CartLineItemComponent","msdyn365Commerce","createComponentOverride","_objectSpread","component","productUrl","product","defaultImageSettings","viewports","xs","q","w","h","lg","xl","lazyload","cropFocalRegion","destructDimensionStrings","fallbackImageUrl","getFallbackImageUrl","ItemId","actionContext","requestContext","apiSettings","imageSettings","ObjectExtensions","isNullOrUndefined","productDimensions","renderDisountLines","payLoad","getPayloadObject","telemetryContent","toString","prodAttribute","getTelemetryAttributes","productName","Name","getProductPageUrlSync","discountAmountCalculate","discountLines","element","window","document","localStorage","_generateErrorMessage","isCartIcon","maxQuantity","currentQuantity","limitReached","errorMessage","onChange","newValue","quantityOnChange","cartLine","_generateSelectMenu","quantity","_props$data$product","_props$data$cartLine","_props$data$cartLine2","IncrementalQuantity","LineId","max","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","disabled","isCartStateReady","isGiftCard","_generateQuantityAndPrice","_props$data$cartline3","_props$data$cartline4","nodes","discountArray","ele","Percentage","_props$data2","_props$data$cartline$5","_props$data11","_props$data12","_props$data$cartline$6","_props$data13","_props$data14","_props$data15","_props$data16","_props$data17","_props$data$cartLine$","_props$data18","_props$data19","_props$data20","_props$data21","_props$data22","_props$data$cartline$7","_props$data23","_props$data24","_props$data25","_props$data26","_props$data$cartline$8","_props$data27","_props$data28","_props$data$cartline$9","_props$data29","_props$data30","_props$data$product2","_props$data$cartline6","_props$data$cartline$3","_props$data$cartline7","_props$data$cartline8","_props$data8","_props$data9","_props$data$cartline9","_props$data$cartline$4","_props$data10","_props$data3","_props$data$cartline$","_props$data4","_props$data5","_props$data6","_props$data$cartline5","_props$data$cartline$2","_props$data7","IsInvoiceLine","isQuantityEditable","push","priceTranslation","LinePercentageDiscount","Math","round","EPSILON","quantityDisplayString","location","href","includes","displayMode","reducedDimensions","str","Image","src","primaryImageUrl","fallBackSrc","altText","gridSettings","loadFailureBehavior","Object","assign","onClick","ArrayExtensions","hasElements","showShippingChargesForLineItems","showStrikethroughPricing","originalPrice","getOriginalPrice","DiscountAmount","shouldUseFreePriceText","renderCurrentPrice","initialPrice","maxVariantPrice","MaxVariantPrice","minVariantPrice","MinVariantPrice","_props$priceResources","isPriceMinMaxEnabled","itemProp","priceResources","priceRangeSeparator","renderCurrentPriceWithOriginalPrice","originalPriceText","currentPriceText","savingsText","renderSalesAgreementPrice","_props$data$price$Att","_props$data$price$Sal","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","_props$priceResources8","firstPriceLine","AttainablePriceLines","classnames","SalesAgreementPrice","salesAgreementPricePrompt","format","salesAgreementExpirationDatePrompt","EffectiveDate","salesAgreementCommittedQuantityPrompt","CommittedQuantity","salesAgreementRemainingQuantityPrompt","RemainingQuantity","isSalesAgreementPriceFeatureEnabled","isNumber","salesAgreementLineId"],"sourceRoot":""}