{"version":3,"sources":["webpack:///src/modules/msdyn365-cs-chat-connector/msdyn365-cs-chat-connector.view.tsx?be44","webpack:///./src/modules/warranty/warranty.view.tsx?4a63","webpack:///src/utils/script-utils.ts?9534","webpack:///src/modules/default-inline-script/default-inline-script.tsx?3ed3","webpack:///src/modules/default-metatags/default-metatags.tsx?1bb4","webpack:///src/modules/default-external-script/default-external-script.tsx?203d","webpack:///src/modules/default-page-summary/default-page-summary.tsx?b254","webpack:///./src/modules/eplp-container/eplp-container.view.tsx?89da","webpack:///src/modules/text-block/text-block.view.tsx?8d9b","webpack:///src/modules/default-inline-style/default-inline-style.tsx?bd16","webpack:///./src/themes/connselmer2/views/components/price.component.tsx?7502","webpack:///./src/modules/eplp-container/eplp-container.tsx?90d1","webpack:///./src/modules/warranty/warranty.tsx?7821","webpack:///src/modules/text-block/text-block.tsx?1fe8","webpack:///./src/themes/connselmer/views/components/price.component.tsx?cf28","webpack:///./src/themes/leblanc/views/components/price.component.tsx?b40d","webpack:///./src/modules/language-selector/language-selector.tsx?1dc4","webpack:///./src/modules/language-selector/language-selector.view.tsx?4cfb","webpack:///./src/modules/product-feature/product-feature.tsx?7501","webpack:///./src/modules/product-feature/product-feature.view.tsx?ba95"],"names":["props","data","config","dataAppId","context","app","msDyn365CsChatConnectorDataAppId","dataOrgId","msDyn365CsChatConnectorDataOrgId","dataOrgUrl","msDyn365CsChatConnectorDataOrgUrl","undefined","dataHideChatButton","msDyn365CsChatConnectorDataHideChatButton","dataColorOverride","msDyn365CsChatConnectorDataColorOverride","dataFontFamilyOverride","msDyn365CsChatConnectorDataFontFamilyOverride","dataEnableTelemetry","dataOpenInWindow","dataEnableLcwAutofill","dataSuggestedActionLayout","getChatData","React","_document","_document2","script","document","createElement","type","src","msDyn365CsChatConnectorSrc","id","Object","keys","forEach","k","setAttribute","body","appendChild","className","cusBootstrapClassLeft","cusTextfield","cusBootstrapClassRight","cusIframeHeading","cusIframeSrc","height","cusIframeAriaLabel","logDebug","debugMessage","telemetry","log","LogLevel","Debug","logError","errorMessage","Error","isAbsoluteUrl","source","test","isRelativeUrl","DefaultInlineScript","constructor","super","render","this","typeName","inlineScript","includes","nonceToken","isNonceEnabled","request","scriptHtml","SDK_FRAGMENT_NAME","key","dangerouslySetInnerHTML","__html","DefaultMetaTags","metaTags","metaTagsHtml","_addNonceToInlineScript","join","metaTagsText","map","simpleText","text","inlineScripRegex","metaTag","replace","filter","Boolean","DefaultExternalScript","scriptSource","relativeBaseUrl","url","staticCdnUrl","msdyn365Commerce","getEnvironmentVariable","path","async","defer","DefaultPageSummary","pageSummary","result","title","description","keywords","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","pageTitle","_constructPageTitle","HtmlHeadInclude","name","content","rel","href","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","heading","slots","top","square1","square2","square3","square4","square5","square6","TextBlockView","assign","renderModuleAttributes","paragraph","DefaultInlineStyle","inlineStyle","styleHtml","showStrikethroughPricing","originalPrice","getOriginalPrice","isPriceMinMaxEnabled","price","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","_props$data$price$Bas","_props$data$price$Tra","_props$data$price$Adj","Math","max","BasePrice","TradeAgreementPrice","AdjustedPrice","formatCurrency","shouldUseFreePriceText","freePriceText","_price","cultureFormatter","_symbol","Number","toString","renderCurrentPrice","_props$data$price","initialPrice","maxVariantPrice","minVariantPrice","_currencyCode","_props$data$price2","_props$priceResources","ExtensionProperties","element","_element$Value","_element$Value2","_element$Value3","Key","Value","StringValue","itemProp","priceResources","priceRangeSeparator","renderCurrentPriceWithOriginalPrice","originalPriceText","currentPriceText","savingsText","PriceComponent","createComponentOverride","_objectSpread","component","classnames","EplpContainer","EplpContainerProps","renderView","Warranty","TextBlock","handleTextChange","event","target","value","MsDyn365","editProps","onEdit","requestContext","textBlockViewProps","LanguageSelector","_props$config$cusLang","cusLanguages","cuslan","i","siteURL","languageCode","ProductFeature","showText"],"mappings":";8HAkDgBA,cACZ,MAAMC,EArCWD,KACjB,MAAMC,EAAkB,CACpB,cAAeD,EAAME,OAAOC,WAAaH,EAAMI,QAAQC,IAAIH,OAAOI,iCAClE,cAAeN,EAAME,OAAOK,WAAaP,EAAMI,QAAQC,IAAIH,OAAOM,iCAClE,eAAgBR,EAAME,OAAOO,YAAcT,EAAMI,QAAQC,IAAIH,OAAOQ,mCA6BxE,YA3BwCC,IAApCX,EAAME,OAAOU,mBACbX,EAAK,yBAA2BD,EAAME,OAAOU,mBACtCZ,EAAMI,QAAQC,IAAIH,OAAOW,4CAChCZ,EAAK,yBAA2BD,EAAMI,QAAQC,IAAIH,OAAOW,2CAEzDb,EAAME,OAAOY,kBACbb,EAAK,uBAAyBD,EAAME,OAAOY,kBACpCd,EAAMI,QAAQC,IAAIH,OAAOa,2CAChCd,EAAK,uBAAyBD,EAAMI,QAAQC,IAAIH,OAAOa,0CAEvDf,EAAME,OAAOc,uBACbf,EAAK,6BAA+BD,EAAME,OAAOc,uBAC1ChB,EAAMI,QAAQC,IAAIH,OAAOe,gDAChChB,EAAK,6BAA+BD,EAAMI,QAAQC,IAAIH,OAAOe,+CAE7DjB,EAAME,OAAOgB,sBACbjB,EAAK,2BAA6BD,EAAME,OAAOgB,qBAE/ClB,EAAME,OAAOiB,mBACblB,EAAK,uBAAyBD,EAAME,OAAOiB,kBAE3CnB,EAAME,OAAOkB,wBACbnB,EAAK,4BAA8BD,EAAME,OAAOkB,4BAELT,IAA3CX,EAAME,OAAOmB,4BACbpB,EAAK,gCAAkCD,EAAME,OAAOmB,2BAEjDpB,GAIiBqB,CAAYtB,GAgBpC,OAXAuB,YAAgB,KAAK,IAAAC,EAAAC,EACjB,MAAMC,EAAiB,QAAXF,EAAGG,gBAAQ,IAAAH,OAAA,EAARA,EAAUI,cAAc,UACvCF,EAAOG,KAAO,kBACdH,EAAOI,IAAM9B,EAAME,OAAO4B,KAAO9B,EAAMI,QAAQC,IAAIH,OAAO6B,2BAC1DL,EAAOM,GAAK,iCACZC,OAAOC,KAAKjC,GAAMkC,QAAQC,IACtBV,EAAOW,aAAaD,EAAGnC,EAAKmC,MAExB,QAARX,EAAAE,gBAAQ,IAAAF,GAAM,QAANA,EAARA,EAAUa,YAAI,IAAAb,GAAdA,EAAgBc,YAAYb,IAC7B,IAEI,O,oCCnEX,uBAQgB1B,aAERuB,gBAAA,OAAKiB,UAAU,iDACXjB,gBAAA,OAAKiB,UAAU,OACXjB,gBAAA,OAAKiB,UAAW,IAAIxC,EAAME,OAAOuC,uBAC5BzC,EAAME,OAAOwC,cAElBnB,gBAAA,OAAKiB,UAAW,IAAIxC,EAAME,OAAOyC,wBAC7BpB,gBAAA,OAAKiB,UAAU,+BAA+BR,GAAG,GAAE,WAAU,UACzDT,gBAAA,MAAIiB,UAAU,sBAAsBxC,EAAME,OAAO0C,kBACjDrB,gBAAA,UACIiB,UAAU,qBACVV,IAAK9B,EAAME,OAAO2C,aAClBC,OAAO,OAAM,aACD,GAAG9C,EAAME,OAAO6C,0B,oMCfjD,MAAMC,EAAWA,CAACC,EAAsBC,KAC3CA,GAAaA,EAAUC,IAAIC,IAASC,MAAOJ,IAGlCK,EAAWA,CAACC,EAAsBL,KAC3CA,GAAaA,EAAUC,IAAIC,IAASI,MAAOD,IAQlCE,EAAiBC,GAEnB,kFAAkFC,KAAKD,GAGrFE,EAAiBF,GACnB,8DAA8DC,KAAKD,I,6FCX9E,MAAMG,UAA4BtC,gBAC9BuC,YAAY9D,GACR+D,MAAM/D,GAGHgE,SACH,MAAM,OAAE9D,GAAW+D,KAAKjE,MACxBgD,YAAS,2BAA2BiB,KAAKjE,MAAMgC,MAAMiC,KAAKjE,MAAMkE,YAAaD,KAAKjE,MAAMkD,WACxF,MAAMQ,EAASxD,EAAOiE,aAEtB,IAAKT,GAAqB,KAAXA,GAAiBD,YAAcC,IAAWE,YAAcF,GAKnE,OAJAJ,YACI,wKACAW,KAAKjE,MAAMkD,WAER,KAGX,GAAIQ,EAAOU,SAAS,cAEhB,OADAd,YAAS,qEAAsEW,KAAKjE,MAAMkD,WACnF,KAGX,MAAMmB,EAAaJ,KAAKjE,MAAMI,SAAWkE,YAAeL,KAAKjE,MAAMI,QAAQmE,SACrEC,EAAa,WAAWH,EAAa,UAAUA,KAAgB,MAAMX,cAC3E,OAAOnC,gBAAoBkD,IAAmB,CAAEC,IAAKT,KAAKjE,MAAMgC,GAAI2C,wBAAyB,CAAEC,OAAQJ,MAIhGX,a,yFC5Bf,MAAMgB,UAAwBtD,gBACnByC,SACH,MAAM,KAAE/D,EAAI,OAAEC,GAAW+D,KAAKjE,MACxBqE,EAAaJ,KAAKjE,MAAMI,SAAWkE,YAAeL,KAAKjE,MAAMI,QAAQmE,SAC3E,IACIO,EADAC,EAAuB,GAE3B,GAAI7E,EAAO4E,SACPA,EAAWT,EAAaJ,KAAKe,wBAAwB9E,EAAO4E,SAAUT,GAAcnE,EAAO4E,SAC3FC,EAAeD,GAAYA,EAASG,KAAK,WACtC,GAAIhF,EAAK6E,SAAU,CACtBA,EAAW7E,EAAK6E,SAChB,IAAII,EAAeJ,EAASK,IAAIC,GAAcA,EAAWC,MACzDH,EAAeb,EAAaJ,KAAKe,wBAAwBE,EAAcb,GAAca,EACrFH,EAAeG,GAAgBA,EAAaD,KAAK,MAErD,OAAO1D,gBAAoBkD,IAAmB,CAAEC,IAAKT,KAAKjE,MAAMgC,GAAI2C,wBAAyB,CAAEC,OAAQG,KAGnGC,wBAAwBF,EAAoBT,GAChD,MAAMiB,EAAmB,4CACzB,OAAOR,EACFK,IAAII,GACGD,EAAiB3B,KAAK4B,GACfA,EAAQC,QAAQ,WAAY,iBAAiBnB,GAEjDkB,GAEVE,OAAOC,UAILb,a,kCC/Cf,2DAgBA,MAAMc,UAA8BpE,gBAChCuC,YAAY9D,GACR+D,MAAM/D,GAGHgE,SACH,MAAM,OAAE9D,GAAW+D,KAAKjE,MACxBgD,YAAS,2BAA2BiB,KAAKjE,MAAMgC,MAAMiC,KAAKjE,MAAMkE,YAAaD,KAAKjE,MAAMkD,WACxF,IAAIQ,EAASxD,EAAO0F,aAEhBC,EAA0B,GAO9B,GALI5B,KAAKjE,MAAMI,UACXyF,GAAmB5B,KAAKjE,MAAMI,QAAQmE,QAAQuB,IAAIC,aAClDF,GAAmBG,IAAiBC,uBAAuB,iBAAmB,IAG9ErC,YAAcF,GAEdA,EAAS,GAAGmC,KAAmBK,OAAUxC,UACtC,GAAe,KAAXA,IAAkBD,YAAcC,GAKvC,OAJAJ,YACI,mKACAW,KAAKjE,MAAMkD,WAER,KAEX,MAAMsB,EAAa,gBAAgBd,cAAmBxD,EAAOiG,iBAAiBjG,EAAOkG,oBAErF,OAAO7E,gBAAoBkD,IAAmB,CAAEC,IAAKT,KAAKjE,MAAMgC,GAAI2C,wBAAyB,CAAEC,OAAQJ,MAIhGmB,a,+ECjCf,MAAMU,UAA2B9E,gBACtByC,SACH,QAA2CrD,IAAvCsD,KAAKjE,MAAMC,KAAKqG,YAAYC,OAC5B,MAAM,IAAI/C,MAAM,uFAEpB,IACIvD,MACIqG,aACIC,QAAQ,MAAEC,EAAK,YAAEC,EAAW,SAAEC,EAAQ,gBAAEC,EAAe,WAAEC,MAGjE3C,KAAKjE,MAET,MAAM,OACFE,EAAM,QACNE,EACAH,MACIqG,aACIC,QAAQ,aAAEM,MAGlB5C,KAAKjE,MAGTwG,EAAQtG,EAAOsG,OAASA,EACxBC,EAAcvG,EAAOuG,aAAeA,EACpCC,EAAWxG,EAAOwG,UAAYA,EAC9BC,EAAmBzG,EAAO4G,cAAgB5G,EAAO4G,aAAahF,KAAQ6E,EACtEC,EAAa1G,EAAO0G,YAAcA,EAElC,MAAMG,EAAY9C,KAAK+C,oBAAoBR,EAAOpG,GAAWA,EAAQmE,SAAWnE,EAAQmE,QAAQlE,KAChG,OACIkB,2BAAA,KACIA,gBAAC0F,IAAe,KACXF,GAAaxF,gBAAA,aAAQwF,GACrBN,GAAelF,gBAAA,QAAM2F,KAAK,cAAcC,QAASV,IACjDC,GAAYnF,gBAAA,QAAM2F,KAAK,WAAWC,QAAST,IAC3CG,GAAgBtF,gBAAA,QAAM6F,IAAI,YAAYC,KAAMR,IAC5CD,GAAcrF,gBAAA,QAAM6F,IAAI,gBAAgBC,KAAMT,MAEjD1G,EAAOoH,eAAiBrD,KAAKsD,cAAcR,EAAWN,EAAaE,IACnEzG,EAAOsH,oBAAsBvD,KAAKwD,mBAAmBV,EAAWN,EAAaE,IAKnFY,cAAcf,EAA2BC,EAAiCE,GAC9E,OACIpF,gBAAC0F,IAAe,KACXT,GAASjF,gBAAA,QAAMmG,SAAS,WAAWP,QAASX,IAC5CC,GAAelF,gBAAA,QAAMmG,SAAS,iBAAiBP,QAASV,IACxDE,GAAmBpF,gBAAA,QAAMmG,SAAS,WAAWP,QAASR,IACvDpF,gBAAA,QAAMmG,SAAS,UAAUP,QAAQ,aAKrCM,mBACJjB,EACAC,EACAE,GAEA,OACIpF,gBAAC0F,IAAe,KACXT,GAASjF,gBAAA,QAAM2F,KAAK,gBAAgBC,QAASX,IAC7CC,GAAelF,gBAAA,QAAM2F,KAAK,sBAAsBC,QAASV,IACzDE,GAAmBpF,gBAAA,QAAM2F,KAAK,gBAAgBC,QAASR,IACxDpF,gBAAA,QAAM2F,KAAK,eAAeC,QAAQ,aAKtCH,oBAAoBR,EAA2BnG,GAC9CmG,IACDA,EAAQ,IAGZ,MAAMmB,EAAe1D,KAAKjE,MAAME,OAChC,GAAIyH,GAAgBA,EAAaC,wBAC7B,OAAOpB,EAGX,MAAMqB,EAAYxH,GAAOA,EAAIyH,SAU7B,OATID,IACIA,EAAUE,kBACVvB,EAASqB,EAAUE,gBAA6BvB,GAEhDqB,EAAUG,kBACVxB,GAASqB,EAAUG,kBAIpBxB,GAIAH,a,kCChHf,uBAGgBrG,aAEduB,2BAAA,KACCA,gBAAA,MAAIiB,UAAU,QAAQxC,EAAMiI,SAC1BjI,EAAMkI,MAAMC,KAAOnI,EAAMkI,MAAMC,IAAI,GACrC5G,gBAAA,OAAKiB,UAAU,2BACdjB,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAME,SAAWpI,EAAMkI,MAAME,QAAQ,IAE9C7G,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAMG,SAAWrI,EAAMkI,MAAMG,QAAQ,IAE9C9G,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAMI,SAAWtI,EAAMkI,MAAMI,QAAQ,KAG/C/G,gBAAA,OAAKiB,UAAU,2BACdjB,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAMK,SAAWvI,EAAMkI,MAAMK,QAAQ,IAE9ChH,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAMM,SAAWxI,EAAMkI,MAAMM,QAAQ,IAE9CjH,gBAAA,OAAKiB,UAAU,qBACZxC,EAAMkI,MAAMO,SAAWzI,EAAMkI,MAAMO,QAAQ,O,mECZnCC,UANsC1I,GACjDuB,gBAAA,MAAAU,OAAA0G,OAAA,CAAKnG,UAAWxC,EAAMwC,UAAWR,GAAIhC,EAAMgC,IAAQhC,EAAM4I,uBAAuB5I,IAC3EA,EAAM6I,Y,2FCwBAC,UAnBa9I,IACxB,MAAM,OAAEE,EAAM,GAAE8B,EAAE,SAAEkC,EAAQ,UAAEhB,GAAclD,EAC5CgD,YAAS,0BAA0BhB,KAAMkC,KAAahB,GACtD,MAAMQ,EAASxD,EAAO6I,YAEtB,IAAKrF,GAAqB,KAAXA,GAAiBD,YAAcC,IAAWE,YAAcF,GAEnE,OADAJ,YAAS,yFAA0FJ,GAC5F,KAGX,GAAIQ,EAAOU,SAAS,YAEhB,OADAd,YAAS,mEAAoEJ,GACtE,KAGX,MAAM8F,EAAY,UAAUtF,YAC5B,OAAOnC,gBAAoBkD,IAAmB,CAAEC,IAAK1C,EAAI2C,wBAAyB,CAAEC,OAAQoE,O,6ZCtBhG,MAqDMC,EAA4BjJ,IAC9B,MAAMkJ,EAAgBC,EAAiBnJ,GACvC,OAAIA,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAC7CvJ,EAAMC,KAAKoJ,MAAME,gBAAkBL,KAG1CA,IAAiBlJ,EAAMC,KAAKoJ,MAAMG,0BAC3BN,EAAgBlJ,EAAMC,KAAKoJ,MAAMG,yBAM1CL,EAAoBnJ,IAAuC,IAAAyJ,EAAAC,EAAAC,EAC7D,OAAOC,KAAKC,IACkB,QADfJ,EACXzJ,EAAMC,KAAKoJ,MAAMS,iBAAS,IAAAL,IAvEL,EAwEe,QADMC,EAC1C1J,EAAMC,KAAKoJ,MAAMU,2BAAmB,IAAAL,IAxEf,EAyES,QADsBC,EACpD3J,EAAMC,KAAKoJ,MAAMW,qBAAa,IAAAL,IAzET,IA6EvBM,EAAiBA,CAACjK,EAA6BqJ,EAA2Ba,KAC5E,QAAcvJ,IAAV0I,EACA,MAAO,GAGX,GAAIa,GAjFkB,IAiFQb,GAAuBrJ,EAAMmK,cACvD,MAAO,GAIX,IAAIC,EAAcpK,EAAMI,QAAQiK,iBAAiBJ,eAAeZ,GAC5DiB,EAAkBF,EAAO5E,QAAQ,YAAa,IAIlD,OAHA4E,EAASA,EAAO5E,QAAQ,cAAc,IACtC4E,EAASA,EAAQ,GAAK,EAAIA,EAASG,OAAOH,GAC1CA,EAASA,EAAOI,WAAWhF,QAAQ,wBAAyB,KACrD8E,EAAU,GAAKF,GAIpBK,EAAsBzK,IAA4C,IAAA0K,EACpE,MAAMC,EAAuBV,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMG,yBAAyB,GACvFoB,EAA0BX,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMC,iBAAiB,GAClFuB,EAA0BZ,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAME,iBAAiB,GACxF,IAAIuB,EAAwB,GAC0B,IAAAC,EAWmBC,EAX7BrK,OAAzB,QAAhB+J,EAAA1K,EAAMC,KAAKoJ,aAAK,IAAAqB,OAAA,EAAhBA,EAAkBO,uBACD,QAAhBF,EAAA/K,EAAMC,KAAKoJ,aAAK,IAAA0B,GAAqB,QAArBA,EAAhBA,EAAkBE,2BAAmB,IAAAF,GAArCA,EAAuC5I,QAAS+I,IAAW,IAAAC,EAAAC,EAC2DC,EAA/F,gBAAfH,EAAQI,KAAuD,KAAjB,QAAbH,EAAAD,EAAQK,aAAK,IAAAJ,OAAA,EAAbA,EAAeK,cAAmD7K,OAAjB,QAAbyK,EAAAF,EAAQK,aAAK,IAAAH,OAAA,EAAbA,EAAeI,eACpFV,EAA6B,QAAhBO,EAAGH,EAAQK,aAAK,IAAAF,OAAA,EAAbA,EAAeG,gBAK3C,OAAIxL,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAG5ChI,gBAAA,QAAMiB,UAAU,wBAAwBiJ,SAAS,SAC5C,IACDlK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1CZ,GAELtJ,gBAAA,QAAMiB,UAAU,uBAAuBiJ,SAAS,SACvB,QAD8BT,EAClDhL,EAAM0L,sBAAc,IAAAV,OAAA,EAApBA,EAAsBW,qBAE3BpK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1Cb,GAEJE,GAITvJ,gBAAA,QAAMiB,UAAU,oBAAoBiJ,SAAS,SAChDd,EAAe,IAAMG,IAIxBc,EAAuC5L,IACzC,MAAMkJ,EAAwBC,EAAiBnJ,GACzC2K,EAAuBV,EAAejK,EAAOkJ,GAAe,GAElE,OACI3H,2BAAA,KACIA,gBAAA,QAAMiB,UAAU,WACX,IACAxC,EAAM6L,kBACN,IACAlB,EACA,IACA3K,EAAM8L,iBACN,IACArB,EAAmBzK,IAExBuB,gBAAA,QAAMiB,UAAU,2BAA0B,cAAa,QAClDmI,GAELpJ,gBAAA,sBAAkB,QACbkJ,EAAmBzK,IAEvBA,EAAM+L,aAAexK,gBAAA,QAAMiB,UAAU,sBACjCxC,EAAM+L,eAMVC,EAAgEhG,IAAiBiG,wBAC1F,Q,yWAAOC,CAAA,CACLC,UAnIyCnM,QAEMW,IAA7CX,EAAMC,KAAKoJ,MAAMG,wBACV,KAIPjI,gBAAA,QAAMiB,UAAW4J,IAAW,YAAapM,EAAMwC,YAC1CyG,EAAyBjJ,GAAS4L,EAAoC5L,GAASyK,EAAmBzK,KAfjF,KA8IfgM,a,wpBCxKf,MAAMK,UAAsB9K,gBACpByC,SACN,MAAM,OAAE9D,GAAW+D,KAAKjE,MAClBsM,EAAkBJ,IAAA,GACpBjI,KAAKjE,OAAK,IACbiI,QAAU/H,EAAO+H,SAAW,OAE7B,OAAOhE,KAAKjE,MAAMuM,WAAWD,IAIhBD,a,kCCvBf,uBAiBA,MAAMG,UAAiBjL,gBACZyC,SACH,OAAOC,KAAKjE,MAAMuM,WAAWtI,KAAKjE,QAI3BwM,a,qsBCHf,MAAMC,UAAkBlL,gBAAxBuC,c,oBAiBW,KAAA4I,iBAAoBC,GAA0C1I,KAAKjE,MAAME,OAAO2I,UAAY8D,EAAMC,OAAOC,MAhBzG7I,SACH,MAAM,UAAE6E,EAAS,UAAErG,GAAcyB,KAAKjE,MAAME,OACtCmF,EAAOwD,GACTtH,gBAACuL,IAA0B,CACvBzH,KAAMwD,EACNkE,UAAW,CAAEC,OAAQ/I,KAAKyI,iBAAkBO,eAAgBhJ,KAAKjE,MAAMI,QAAQmE,WAGjF2I,EAAkBhB,IAAA,GACjBjI,KAAKjE,OAAK,IACb6I,UAAWxD,EACX7C,UAAW4J,IAAW,gBAAiB5J,KAE3C,OAAOyB,KAAKjE,MAAMuM,WAAWW,IAKtBT,a,+ZC7Bf,MAqDMxD,EAA4BjJ,IAC9B,MAAMkJ,EAAgBC,EAAiBnJ,GACvC,OAAIA,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAC7CvJ,EAAMC,KAAKoJ,MAAME,gBAAkBL,KAG1CA,IAAiBlJ,EAAMC,KAAKoJ,MAAMG,0BAC3BN,EAAgBlJ,EAAMC,KAAKoJ,MAAMG,yBAM1CL,EAAoBnJ,IAAuC,IAAAyJ,EAAAC,EAAAC,EAC7D,OAAOC,KAAKC,IACkB,QADfJ,EACXzJ,EAAMC,KAAKoJ,MAAMS,iBAAS,IAAAL,IAvEL,EAwEe,QADMC,EAC1C1J,EAAMC,KAAKoJ,MAAMU,2BAAmB,IAAAL,IAxEf,EAyES,QADsBC,EACpD3J,EAAMC,KAAKoJ,MAAMW,qBAAa,IAAAL,IAzET,IA6EvBM,EAAiBA,CAACjK,EAA6BqJ,EAA2Ba,KAC5E,QAAcvJ,IAAV0I,EACA,MAAO,GAGX,GAAIa,GAjFkB,IAiFQb,GAAuBrJ,EAAMmK,cACvD,MAAO,GAIX,IAAIC,EAAcpK,EAAMI,QAAQiK,iBAAiBJ,eAAeZ,GAC5DiB,EAAkBF,EAAO5E,QAAQ,YAAa,IAIlD,OAHA4E,EAASA,EAAO5E,QAAQ,cAAc,IACtC4E,EAASA,EAAQ,GAAK,EAAIA,EAASG,OAAOH,GAC1CA,EAASA,EAAOI,WAAWhF,QAAQ,wBAAyB,KACrD8E,EAAU,GAAKF,GAIpBK,EAAsBzK,IAA4C,IAAA0K,EACpE,MAAMC,EAAuBV,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMG,yBAAyB,GACvFoB,EAA0BX,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMC,iBAAiB,GAClFuB,EAA0BZ,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAME,iBAAiB,GACxF,IAAIuB,EAAwB,GAC0B,IAAAC,EAWmBC,EAX7BrK,OAAzB,QAAhB+J,EAAA1K,EAAMC,KAAKoJ,aAAK,IAAAqB,OAAA,EAAhBA,EAAkBO,uBACD,QAAhBF,EAAA/K,EAAMC,KAAKoJ,aAAK,IAAA0B,GAAqB,QAArBA,EAAhBA,EAAkBE,2BAAmB,IAAAF,GAArCA,EAAuC5I,QAAS+I,IAAW,IAAAC,EAAAC,EAC2DC,EAA/F,gBAAfH,EAAQI,KAAuD,KAAjB,QAAbH,EAAAD,EAAQK,aAAK,IAAAJ,OAAA,EAAbA,EAAeK,cAAmD7K,OAAjB,QAAbyK,EAAAF,EAAQK,aAAK,IAAAH,OAAA,EAAbA,EAAeI,eACpFV,EAA6B,QAAhBO,EAAGH,EAAQK,aAAK,IAAAF,OAAA,EAAbA,EAAeG,gBAK3C,OAAIxL,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAG5ChI,gBAAA,QAAMiB,UAAU,wBAAwBiJ,SAAS,SAC5C,IACDlK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1CZ,GAELtJ,gBAAA,QAAMiB,UAAU,uBAAuBiJ,SAAS,SACvB,QAD8BT,EAClDhL,EAAM0L,sBAAc,IAAAV,OAAA,EAApBA,EAAsBW,qBAE3BpK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1Cb,GAEJE,GAITvJ,gBAAA,QAAMiB,UAAU,oBAAoBiJ,SAAS,SAChDd,EAAe,IAAMG,IAIxBc,EAAuC5L,IACzC,MAAMkJ,EAAwBC,EAAiBnJ,GACzC2K,EAAuBV,EAAejK,EAAOkJ,GAAe,GAElE,OACI3H,2BAAA,KACIA,gBAAA,QAAMiB,UAAU,WACX,IACAxC,EAAM6L,kBACN,IACAlB,EACA,IACA3K,EAAM8L,iBACN,IACArB,EAAmBzK,IAExBuB,gBAAA,QAAMiB,UAAU,2BAA0B,cAAa,QAClDmI,GAELpJ,gBAAA,sBAAkB,QACbkJ,EAAmBzK,IAEvBA,EAAM+L,aAAexK,gBAAA,QAAMiB,UAAU,sBACjCxC,EAAM+L,eAMVC,EAAgEhG,IAAiBiG,wBAC1F,Q,yWAAOC,CAAA,CACLC,UAnIyCnM,QAEMW,IAA7CX,EAAMC,KAAKoJ,MAAMG,wBACV,KAIPjI,gBAAA,QAAMiB,UAAW4J,IAAW,YAAapM,EAAMwC,YAC1CyG,EAAyBjJ,GAAS4L,EAAoC5L,GAASyK,EAAmBzK,KAfjF,KA8IfgM,a,+ZC1Kf,MAqDM/C,EAA4BjJ,IAC9B,MAAMkJ,EAAgBC,EAAiBnJ,GACvC,OAAIA,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAC7CvJ,EAAMC,KAAKoJ,MAAME,gBAAkBL,KAG1CA,IAAiBlJ,EAAMC,KAAKoJ,MAAMG,0BAC3BN,EAAgBlJ,EAAMC,KAAKoJ,MAAMG,yBAM1CL,EAAoBnJ,IAAuC,IAAAyJ,EAAAC,EAAAC,EAC7D,OAAOC,KAAKC,IACkB,QADfJ,EACXzJ,EAAMC,KAAKoJ,MAAMS,iBAAS,IAAAL,IAvEL,EAwEe,QADMC,EAC1C1J,EAAMC,KAAKoJ,MAAMU,2BAAmB,IAAAL,IAxEf,EAyES,QADsBC,EACpD3J,EAAMC,KAAKoJ,MAAMW,qBAAa,IAAAL,IAzET,IA6EvBM,EAAiBA,CAACjK,EAA6BqJ,EAA2Ba,KAC5E,QAAcvJ,IAAV0I,EACA,MAAO,GAGX,GAAIa,GAjFkB,IAiFQb,GAAuBrJ,EAAMmK,cACvD,MAAO,GAIX,IAAIC,EAAcpK,EAAMI,QAAQiK,iBAAiBJ,eAAeZ,GAC5DiB,EAAkBF,EAAO5E,QAAQ,YAAa,IAIlD,OAHA4E,EAASA,EAAO5E,QAAQ,cAAc,IACtC4E,EAASA,EAAQ,GAAK,EAAIA,EAASG,OAAOH,GAC1CA,EAASA,EAAOI,WAAWhF,QAAQ,wBAAyB,KACrD8E,EAAU,GAAKF,GAIpBK,EAAsBzK,IAA4C,IAAA0K,EACpE,MAAMC,EAAuBV,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMG,yBAAyB,GACvFoB,EAA0BX,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAMC,iBAAiB,GAClFuB,EAA0BZ,EAAejK,EAAOA,EAAMC,KAAKoJ,MAAME,iBAAiB,GACxF,IAAIuB,EAAwB,GAC0B,IAAAC,EAWmBC,EAX7BrK,OAAzB,QAAhB+J,EAAA1K,EAAMC,KAAKoJ,aAAK,IAAAqB,OAAA,EAAhBA,EAAkBO,uBACD,QAAhBF,EAAA/K,EAAMC,KAAKoJ,aAAK,IAAA0B,GAAqB,QAArBA,EAAhBA,EAAkBE,2BAAmB,IAAAF,GAArCA,EAAuC5I,QAAS+I,IAAW,IAAAC,EAAAC,EAC2DC,EAA/F,gBAAfH,EAAQI,KAAuD,KAAjB,QAAbH,EAAAD,EAAQK,aAAK,IAAAJ,OAAA,EAAbA,EAAeK,cAAmD7K,OAAjB,QAAbyK,EAAAF,EAAQK,aAAK,IAAAH,OAAA,EAAbA,EAAeI,eACpFV,EAA6B,QAAhBO,EAAGH,EAAQK,aAAK,IAAAF,OAAA,EAAbA,EAAeG,gBAK3C,OAAIxL,EAAMoJ,sBACNpJ,EAAMC,KAAKoJ,MAAMC,iBACjBtJ,EAAMC,KAAKoJ,MAAME,iBACjBvJ,EAAMC,KAAKoJ,MAAMC,gBAAkBtJ,EAAMC,KAAKoJ,MAAME,gBAG5ChI,gBAAA,QAAMiB,UAAU,wBAAwBiJ,SAAS,SAC5C,IACDlK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1CZ,GAELtJ,gBAAA,QAAMiB,UAAU,uBAAuBiJ,SAAS,SACvB,QAD8BT,EAClDhL,EAAM0L,sBAAc,IAAAV,OAAA,EAApBA,EAAsBW,qBAE3BpK,gBAAA,QAAMiB,UAAU,sBAAsBiJ,SAAS,SAC1Cb,GAEJE,GAITvJ,gBAAA,QAAMiB,UAAU,oBAAoBiJ,SAAS,SAChDd,EAAe,IAAMG,IAIxBc,EAAuC5L,IACzC,MAAMkJ,EAAwBC,EAAiBnJ,GACzC2K,EAAuBV,EAAejK,EAAOkJ,GAAe,GAElE,OACI3H,2BAAA,KACIA,gBAAA,QAAMiB,UAAU,WACX,IACAxC,EAAM6L,kBACN,IACAlB,EACA,IACA3K,EAAM8L,iBACN,IACArB,EAAmBzK,IAExBuB,gBAAA,QAAMiB,UAAU,2BAA0B,cAAa,QAClDmI,GAELpJ,gBAAA,sBAAkB,QACbkJ,EAAmBzK,IAEvBA,EAAM+L,aAAexK,gBAAA,QAAMiB,UAAU,sBACjCxC,EAAM+L,eAMVC,EAAgEhG,IAAiBiG,wBAC1F,Q,yWAAOC,CAAA,CACLC,UAnIyCnM,QAEMW,IAA7CX,EAAMC,KAAKoJ,MAAMG,wBACV,KAIPjI,gBAAA,QAAMiB,UAAW4J,IAAW,YAAapM,EAAMwC,YAC1CyG,EAAyBjJ,GAAS4L,EAAoC5L,GAASyK,EAAmBzK,KAfjF,KA8IfgM,a,kCCpLf,uBAiBA,MAAMmB,UAAyB5L,gBACpByC,SACH,OAAOC,KAAKjE,MAAMuM,WAAWtI,KAAKjE,QAI3BmN,a,kCCvBf,uBAQgBnN,cACZ,OACIuB,gBAAA,WACOA,gBAAA,OAAKiB,UAAU,YACVjB,gBAAA,UAAQiB,UAAU,WAAS,YAC3BjB,gBAAA,OAAKiB,UAAU,oBAEiB,QAAhC4K,EAAOpN,EAAME,OAAOmN,oBAAY,IAAAD,OAAA,EAAzBA,EAA2BjI,IAAI,CAACmI,EAAQC,IAEvChM,gBAAA,KAAGmD,IAAK6I,EAAGlG,KAAMiG,EAAOE,SAAUF,EAAOG,kBAHpD,IAACL,I,kCCdlB,uBAmBA,MAAMM,UAAuBnM,gBAClByC,SAEP,OAAOC,KAAKjE,MAAMuM,WAAWtI,KAAKjE,QAGvB0N,a,kCCzBf,uBAQgB1N,aAEZuB,gBAAA,OAAKiB,UAAU,kBACVjB,gBAAA,OAAKiB,UAAU,kBACdjB,gBAAA,UAAKvB,EAAME,OAAOyN,WAEpBpM,gBAAA,OAAKiB,UAAU,kBACRjB,gBAAA,SAAIvB,EAAME,OAAOyN,UAChBpM,gBAAA,UACCA,gBAAA,UAAQM,KAAK,SAASW,UAAU","file":"static/js/9.69df1818e4fbc38034e0.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\nimport { IChatData } from './interfaces';\nimport { IMsdyn365CsChatConnectorViewProps } from './msdyn365-cs-chat-connector';\n\n/**\n * Returns data parameters for Omnichannel chat script.\n * @param {IMsdyn365CsChatConnectorViewProps} props The properties.\n * @returns {IChatData} Chat data.\n */\nconst getChatData = (props: IMsdyn365CsChatConnectorViewProps): IChatData => {\n const data: IChatData = {\n 'data-app-id': props.config.dataAppId || props.context.app.config.msDyn365CsChatConnectorDataAppId,\n 'data-org-id': props.config.dataOrgId || props.context.app.config.msDyn365CsChatConnectorDataOrgId,\n 'data-org-url': props.config.dataOrgUrl || props.context.app.config.msDyn365CsChatConnectorDataOrgUrl\n };\n if (props.config.dataHideChatButton !== undefined) {\n data['data-hide-chat-button'] = props.config.dataHideChatButton;\n } else if (props.context.app.config.msDyn365CsChatConnectorDataHideChatButton) {\n data['data-hide-chat-button'] = props.context.app.config.msDyn365CsChatConnectorDataHideChatButton;\n }\n if (props.config.dataColorOverride) {\n data['data-color-override'] = props.config.dataColorOverride;\n } else if (props.context.app.config.msDyn365CsChatConnectorDataColorOverride) {\n data['data-color-override'] = props.context.app.config.msDyn365CsChatConnectorDataColorOverride;\n }\n if (props.config.dataFontFamilyOverride) {\n data['data-font-family-override'] = props.config.dataFontFamilyOverride;\n } else if (props.context.app.config.msDyn365CsChatConnectorDataFontFamilyOverride) {\n data['data-font-family-override'] = props.context.app.config.msDyn365CsChatConnectorDataFontFamilyOverride;\n }\n if (props.config.dataEnableTelemetry) {\n data['data-disable-telemetry'] = !props.config.dataEnableTelemetry;\n }\n if (props.config.dataOpenInWindow) {\n data['data-open-in-window'] = props.config.dataOpenInWindow;\n }\n if (props.config.dataEnableLcwAutofill) {\n data['data-enable-lcw-autofill'] = props.config.dataEnableLcwAutofill;\n }\n if (props.config.dataSuggestedActionLayout !== undefined) {\n data['data-suggested-action-layout'] = props.config.dataSuggestedActionLayout;\n }\n return data;\n};\n\nexport default (props: IMsdyn365CsChatConnectorViewProps) => {\n const data: IChatData = getChatData(props);\n\n // we cannot use server rendering here, because OCCS fires 'lcw:ready' event ASAP when initialized\n // and by the time when execution comes to Msdyn365CsChatConnector, that event is already fired\n // thus, we can only add OCCS script to DOM on client side to control execution flow.\n React.useEffect(() => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.src = props.config.src || props.context.app.config.msDyn365CsChatConnectorSrc;\n script.id = 'Microsoft_Omnichannel_LCWidget';\n Object.keys(data).forEach(k => {\n script.setAttribute(k, data[k]);\n });\n document?.body?.appendChild(script);\n }, []);\n\n return null;\n};\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IWarrantyViewProps } from './warranty';\r\n\r\nexport default (props: IWarrantyViewProps) => {\r\n return (\r\n
\r\n
\r\n
\r\n {props.config.cusTextfield}\r\n
\r\n
\r\n
\r\n

{props.config.cusIframeHeading}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IInternalTelemetry, LogLevel } from '@msdyn365-commerce/telemetry-internal';\n\nexport const logDebug = (debugMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Debug, debugMessage);\n};\n\nexport const logError = (errorMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Error, errorMessage);\n};\n\n/**\n * Returns true if the given string matches an URL pattern\n *\n * @param source The string to check against\n */\nexport const isAbsoluteUrl = (source: string): boolean => {\n // eslint-disable-next-line security/detect-unsafe-regex\n return /^(http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/.test(source);\n};\n\nexport const isRelativeUrl = (source: string): boolean => {\n return /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/).*(\\.js){1}$/.test(source);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineScriptProps } from './default-inline-script.props.autogenerated';\n\n/**\n *\n * DefaultScript\n * @extends {React.PureComponent>}\n */\nclass DefaultInlineScript extends React.PureComponent> {\n constructor(props: IDefaultInlineScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n const source = config.inlineScript;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError(\n 'Invalid inline script - Empty inline source defined or a url is being used as a source. Use default-external-script to load scripts from an external or relative url.',\n this.props.telemetry\n );\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline script - inline script should not contain html tags', this.props.telemetry);\n return null;\n }\n\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n const scriptHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultInlineScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport { IDefaultMetatagsData } from './default-metatags.data';\nimport { IDefaultMetatagsProps } from './default-metatags.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent>}\n */\nclass DefaultMetaTags extends React.PureComponent> {\n public render(): JSX.Element {\n const { data, config } = this.props;\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n let metaTagsHtml: string = '';\n let metaTags;\n if (config.metaTags) {\n metaTags = nonceToken ? this._addNonceToInlineScript(config.metaTags, nonceToken) : config.metaTags;\n metaTagsHtml = metaTags && metaTags.join('\\n');\n } else if (data.metaTags) {\n metaTags = data.metaTags;\n let metaTagsText = metaTags.map(simpleText => simpleText.text);\n metaTagsText = nonceToken ? this._addNonceToInlineScript(metaTagsText, nonceToken) : metaTagsText;\n metaTagsHtml = metaTagsText && metaTagsText.join('\\n');\n }\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: metaTagsHtml } });\n }\n\n private _addNonceToInlineScript(metaTags: string[], nonceToken: string): string[] {\n const inlineScripRegex = /(.*?)<\\/script>/g;\n return metaTags\n .map(metaTag => {\n if (inlineScripRegex.test(metaTag)) {\n return metaTag.replace(/`;\n\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultExternalScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += appConfig.pageTitleSuffix as string;\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\n","import * as React from 'react';\r\nimport { IEplpContainerViewProps } from './eplp-container';\r\n\r\nexport default (props: IEplpContainerViewProps) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t

{props.heading}

\r\n\t\t\t{(props.slots.top && props.slots.top[0])}\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square1 && props.slots.square1[0])}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square2 && props.slots.square2[0])}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square3 && props.slots.square3[0])}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square4 && props.slots.square4[0])}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square5 && props.slots.square5[0])}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(props.slots.square6 && props.slots.square6[0])}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { ITextBlockViewProps } from './text-block';\n\nconst TextBlockView: React.FC = props => (\n
\n {props.paragraph}\n
\n);\n\nexport default TextBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineStyleProps } from './default-inline-style.props.autogenerated';\n\n/**\n *\n * DefaultStyle\n * @extends {React.PureComponent>}\n */\n\nconst DefaultInlineStyle = (props: IDefaultInlineStyleProps<{}>) => {\n const { config, id, typeName, telemetry } = props;\n logDebug(`Adding style tags for '${id}/${typeName}'`, telemetry);\n const source = config.inlineStyle;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError('Invalid inline style - Empty inline source defined or a url is being used as a source.', telemetry);\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline style - inline style should not contain html tags', telemetry);\n return null;\n }\n\n const styleHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: id, dangerouslySetInnerHTML: { __html: styleHtml } });\n};\n\nexport default DefaultInlineStyle;\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\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\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 priceResources?: IPriceComponentResources;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\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\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return '';\r\n //return props.freePriceText;\r\n }\r\n\r\n let _price: any = props.context.cultureFormatter.formatCurrency(price);\r\n let _symbol: string = _price.replace(/[\\d\\., ]/g, ''); //get symbol from price\r\n _price = _price.replace(/[^0-9\\.-]+/g,\"\"); //remove symbol from price\r\n _price = _price %1 != 0 ? _price : Number(_price);\r\n _price = _price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return _symbol + \"\" + _price;\r\n //return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const initialPrice: string = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n let _currencyCode: string = '';\r\n if(props.data.price?.ExtensionProperties != undefined){\r\n props.data.price?.ExtensionProperties?.forEach((element) => {\r\n if (element.Key == 'CurrencyCode' && element.Value?.StringValue != '' && element.Value?.StringValue != undefined) {\r\n _currencyCode = element.Value?.StringValue;\r\n }\r\n })\r\n }\r\n\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n //MS Code\r\n return (\r\n \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 {_currencyCode}\r\n \r\n );\r\n }\r\n return (\r\n {initialPrice + ' ' + _currencyCode}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = 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\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;","import * as React from 'react';\r\nimport { IEplpContainerData } from './eplp-container.data';\r\nimport { IEplpContainerProps } from './eplp-container.props.autogenerated';\r\n\r\nexport interface IEplpContainerViewProps extends IEplpContainerProps {\r\n\theading?: string;\r\n}\r\n\r\n/**\r\n * EplpContainer component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EplpContainer extends React.PureComponent> {\r\n\tpublic render(): JSX.Element | null {\r\n\t\tconst { config } = this.props;\r\n\t\tconst EplpContainerProps = {\r\n\t\t\t...this.props,\r\n\t\t\theading: (config.heading || null)\r\n\t\t};\r\n\t\treturn this.props.renderView(EplpContainerProps);\r\n\t}\r\n}\r\n\r\nexport default EplpContainer;","/*!\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 * as React from 'react';\r\n\r\nimport { IWarrantyData } from './warranty.data';\r\nimport { IWarrantyProps } from './warranty.props.autogenerated';\r\n\r\nexport interface IWarrantyViewProps extends IWarrantyProps {}\r\n\r\n/**\r\n *\r\n * Warranty component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass Warranty extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default Warranty;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITextBlockProps } from './text-block.props.autogenerated';\n\nexport interface ITextBlockViewProps extends ITextBlockProps<{}> {\n paragraph?: React.ReactNode;\n className?: string;\n}\n\n/**\n *\n * TextBlock component.\n */\nclass TextBlock extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { paragraph, className } = this.props.config;\n const text = paragraph && (\n \n );\n const textBlockViewProps = {\n ...this.props,\n paragraph: text,\n className: classnames('ms-text-block', className)\n };\n return this.props.renderView(textBlockViewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n}\nexport default TextBlock;\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\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\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 priceResources?: IPriceComponentResources;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\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\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return '';\r\n //return props.freePriceText;\r\n }\r\n\r\n let _price: any = props.context.cultureFormatter.formatCurrency(price);\r\n let _symbol: string = _price.replace(/[\\d\\., ]/g, ''); //get symbol from price\r\n _price = _price.replace(/[^0-9\\.-]+/g,\"\"); //remove symbol from price\r\n _price = _price %1 != 0 ? _price : Number(_price);\r\n _price = _price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return _symbol + \"\" + _price;\r\n //return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const initialPrice: string = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n let _currencyCode: string = '';\r\n if(props.data.price?.ExtensionProperties != undefined){\r\n props.data.price?.ExtensionProperties?.forEach((element) => {\r\n if (element.Key == 'CurrencyCode' && element.Value?.StringValue != '' && element.Value?.StringValue != undefined) {\r\n _currencyCode = element.Value?.StringValue;\r\n }\r\n })\r\n }\r\n\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n //MS Code\r\n return (\r\n \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 {_currencyCode}\r\n \r\n );\r\n }\r\n return (\r\n {initialPrice + ' ' + _currencyCode}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = 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\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;","/*--------------------------------------------------------------\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\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\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 priceResources?: IPriceComponentResources;\r\n}\r\nexport interface IPriceComponent extends IComponent {\r\n}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\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\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return '';\r\n //return props.freePriceText;\r\n }\r\n\r\n let _price: any = props.context.cultureFormatter.formatCurrency(price);\r\n let _symbol: string = _price.replace(/[\\d\\., ]/g, ''); //get symbol from price\r\n _price = _price.replace(/[^0-9\\.-]+/g,\"\"); //remove symbol from price\r\n _price = _price %1 != 0 ? _price : Number(_price);\r\n _price = _price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return _symbol + \"\" + _price;\r\n //return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const initialPrice: string = formatCurrency(props, props.data.price.CustomerContextualPrice, true);\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n let _currencyCode: string = '';\r\n if(props.data.price?.ExtensionProperties != undefined){\r\n props.data.price?.ExtensionProperties?.forEach((element) => {\r\n if (element.Key == 'CurrencyCode' && element.Value?.StringValue != '' && element.Value?.StringValue != undefined) {\r\n _currencyCode = element.Value?.StringValue;\r\n }\r\n })\r\n }\r\n\r\n if (props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice) {\r\n //MS Code\r\n return (\r\n \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 {_currencyCode}\r\n \r\n );\r\n }\r\n return (\r\n {initialPrice + ' ' + _currencyCode}\r\n );\r\n};\r\n\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = 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\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;","/*!\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 * as React from 'react';\r\n\r\nimport { ILanguageSelectorData } from './language-selector.data';\r\nimport { ILanguageSelectorProps } from './language-selector.props.autogenerated';\r\n\r\nexport interface ILanguageSelectorViewProps extends ILanguageSelectorProps {}\r\n\r\n/**\r\n *\r\n * LanguageSelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LanguageSelector extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default LanguageSelector;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { ILanguageSelectorViewProps } from './language-selector';\r\n\r\nexport default (props: ILanguageSelectorViewProps) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {(() => {\r\n return props.config.cusLanguages?.map((cuslan, i) => {\r\n return(\r\n {cuslan.languageCode}\r\n );\r\n });\r\n })()}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IProductFeatureData } from './product-feature.data';\r\nimport { IProductFeatureProps } from './product-feature.props.autogenerated';\r\n\r\nexport interface IProductFeatureViewProps extends IProductFeatureProps {\r\n productName: string; productInfo: string; productImageUrl: string; productPrice: string;buttonInfo: string;\r\n}\r\n\r\n/**\r\n *\r\n * ProductFeature component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ProductFeature extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n // set default product info values\r\n return this.props.renderView(this.props); }\r\n}\r\n\r\nexport default ProductFeature;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IProductFeatureViewProps } from './product-feature';\r\n\r\nexport default (props: IProductFeatureViewProps) => {\r\n return (\r\n
\r\n
\r\n
{props.config.showText}
\r\n
\r\n
\r\n

{props.config.showText}

\r\n

\r\n \r\n
\r\n
)\r\n};\r\n"],"sourceRoot":""}