{"version":3,"sources":["webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","webpack:///src/modules/fabrikam/views/components/promocode.component.tsx?7eef","webpack:///src/modules/fabrikam/views/components/cartlineitem.component.tsx?4b07","webpack:///src/modules/fabrikam/views/buybox.view.tsx?68a7","webpack:///src/modules/fabrikam/views/navigation-menu.view.tsx?5991","webpack:///src/modules/fabrikam/views/cart.view.tsx?8115","webpack:///src/modules/fabrikam/views/ratings-histogram.view.tsx?96ae","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/fabrikam/fabrikam.tsx?a751","webpack:///src/modules/fabrikam/views/order-history.view.tsx?46de","webpack:///src/modules/fabrikam/views/header.view.tsx?1cde","webpack:///src/modules/fabrikam/views/order-details.view.tsx?2a61"],"names":["buildReviewCard","props","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","moduleProps","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","state","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","map","review","super","_onInputChange","e","target","value","this","setState","promoCodeInputValue","canApply","_applyPromotion","cartState","cart","appliedPromo","addPromoCode","promoCode","then","result","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","attributes","telemetryContent","payLoad","onSubmit","event","preventDefault","className","onChange","placeholder","title","onClick","disabled","_removePromotion","code","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_calculateDiscount","CartLines","discountAmount","line","DiscountLines","discountLine","DiscountCode","DiscountCost","_renderAppliedPromoCode","Coupons","promoCodTotalDiscount","reduce","count","coupon","Code","appliedPromoCodeHeadingText","data","price","CustomerContextualPrice","context","id","typeName","ariaLabel","removePromoAriaLabelFormat","removePromoText","key","ApplyPromoCode","isCollapseOpen","promoCodeHeadingText","CartLineItemFunctions","Product","DimensionStrings","Dimensions","productDimension","DimensionTypeValue","RecordId","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","cartLine","index","OfferId","OfferName","resources","discountStringText","isSalesLine","PeriodicDiscount","EffectiveAmount","BasePrice","undefined","Percentage","updatedPercent","DiscountLineTypeValue","Price","Quantity","effectiveAmount","Number","toFixed","discountPercent","inventoryInformationLabel","inventoryCssName","inventoryLabelClassName","pickupDeliveryModeCode","request","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","cartline","hasShippingMethod","DeliveryMode","PickupDeliveryModeCodes","some","deliveryMode","shippingChargeLines","ChargeLines","filter","chargeLine","IsShipping","freightFee","chargeTotal","CalculatedAmount","priceComponent","freePriceText","shippingChargesText","otherCharges","chargeline","otherCharge","Description","productUrl","product","destructDimensionStrings","fallbackImageUrl","ItemId","actionContext","requestContext","apiSettings","productDimensions","imageSettings","cropFocalRegion","renderDisountLines","renderInventoryLabel","renderShippingLabel","renderOtherCharges","toString","prodAttribute","productName","Name","newValue","quantityOnChange","_generateErrorMessage","errorMessage","src","primaryImageUrl","fallBackSrc","altText","gridSettings","loadFailureBehavior","href","hasElements","NetAmount","NetAmountWithoutTax","NetPrice","showShippingChargesForLineItems","nodes","isOutOfStock","IsInvoiceLine","isQuantityEditable","push","quantityDisplayString","LineId","max","maxQuantity","currentCount","currentQuantity","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","isCartStateReady","isGiftCard","originalPriceText","currentPriceText","DiscountAmount","DiscountAmountWithoutTax","_generateQuantityandPrice","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","productPickupOptionList","_renderQuantity","quantityComponent","callbacks","extentionResources","quantityLimitsMessages","quantity","updateQuantity","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","slots","NavigationMenuView","currentLevel","escapeKey","_updateCategoryImage","categoryImageSrc","option","linkText","promotionalImage","promotionalContent","item","image","imageSrc","text","additionalProperties","linkUrl","destinationUrl","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","mobileViewLabelText","parentMenu","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_escFunction","keyCode","_closeSubmenu","_getCategoryImage","alttext","categoryImageUrl","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","ImageData","config","categoryImageSettings","role","bind","telemetryPageName","friendlyName","telemetry","document","body","addEventListener","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","_renderDrawerMenu","MenuList","ref","tabIndex","_renderDisplay","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","forEach","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","_renderMenu","Button","onFocus","hoverEffect","Link","imagesource","contentAction","etext","onMouseOver","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_renderPromotionalLink","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","_renderBOPISBlock","_renderGroupBOPISBlock","remove","pickUpInStore","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","isBopisSelected","PickupInStore","puckUpinStoreAttribute","orgUnitName","toggleBopis","_renderErrorBlock","errorData","Wrapper","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","subtotal","shipping","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_renderCartLinesGroupHeader","_countItems","EmailDeliveryModeCode","multiplePickUpEnabled","pickUpText","shippingText","emailshippingText","groupTitle","toLowerCase","_renderCartLinesGroupTitle","countItem","itemLabel","itemsLabel","suffix","deliveryOption","renderModuleAttributes","promotionOptions","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","hasInvoiceLine","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","createTemplateFromCartButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","createSearchResultModal","modalProps","refineMenu","sortByDropDown","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","alert","loading","emptyMessage","backToShoppingLink","list","moreButton","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","items","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","link","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","isOpen","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","OrderInfomation","channelAddress","SalesLine","salesLineProps","buyAgainButton","GroupDelivery","shippedStatusCheck","Group","isCashAndCarryTransaction","deliveryType","shipment","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","OrderSummary","orderSummaryProps","totalAmount","earnedPoints","Payment","paymentMethodsProps","methods","Help","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","orderSummary","payment","help"],"mappings":"0IAUA,MA+CMA,EAAmBC,GAEjB,gBAAC,OAAI,iBAAKA,EAAMC,WACZ,gBAAC,OAAI,iBAAKD,EAAME,aACXF,EAAMG,OACNH,EAAMI,KACNJ,EAAMK,MAEX,gBAAC,OAAI,iBAAKL,EAAMM,eACZ,gBAAC,OAAI,iBAAKN,EAAMO,aACXP,EAAMQ,YACNR,EAAMS,YAEX,gBAAC,OAAI,iBAAKT,EAAMU,eACXV,EAAMW,aACNX,EAAMY,aACNZ,EAAMa,cAEX,gBAAC,OAAI,iBAAKb,EAAMc,eACXd,EAAMe,mBACNf,EAAMgB,KACNhB,EAAMiB,QACNjB,EAAMkB,KACNlB,EAAMmB,UAOrBC,EAAoB,CAACpB,EAA8BqB,IAEjD,gBAAC,SAAM,iBAAKrB,EAAMsB,MAAWD,GACxBrB,EAAMuB,YACP,gBAAC,OAAI,iBAAKvB,EAAMwB,WACZ,gBAAC,OAAI,iBAAKxB,EAAMyB,MACZ,gBAAC,OAAI,iBAAKzB,EAAM0B,UACX1B,EAAMG,OACNH,EAAM2B,aAEX,gBAAC,OAAI,iBAAK3B,EAAM0B,UACX1B,EAAM4B,WACN5B,EAAM6B,YAEX,gBAAC,OAAI,iBAAK7B,EAAM0B,UACX1B,EAAM8B,UACN9B,EAAM+B,WAEV/B,EAAMgC,iBACNhC,EAAMiC,QAGf,gBAAC,OAAI,iBAAKjC,EAAMkC,aACXlC,EAAMmC,aACNnC,EAAMoC,eAMjBC,EAAoB,CAACrC,EAAoCsC,IAEvD,gBAAC,OAAI,iBAAKtC,EAAMsB,OACZ,gBAAC,OAAI,iBAAKtB,EAAMuB,aACXe,EAAMC,SAAWvC,EAAMwC,gBAAkBxC,EAAMyC,QAEpD,gBAAC,OAAI,iBAAKzC,EAAMwB,WACXc,EAAMC,SAAWvC,EAAM0C,uBAAyB,CAAC1C,EAAM2C,cAAe3C,EAAM4C,aAAc5C,EAAMiC,QAErG,gBAAC,OAAI,iBAAKjC,EAAMkC,aACXI,EAAMC,SAAWvC,EAAM6C,gBAAkB,CAAC7C,EAAMmC,aAAcnC,EAAMoC,gBAMtE,UA3H0CpC,IACrD,MAAM,cACF8C,EADE,iBAEFC,EAFE,YAGF1B,EAHE,iBAIF2B,EAJE,2BAKFC,EALE,aAMFC,EANE,mBAOFC,EAPE,kBAQFC,EARE,iBASFC,EATE,YAUFC,EAVE,YAWFC,EAXE,YAYFC,EAZE,eAaFC,EAbE,MAcFnB,EAdE,WAeFoB,GACA1D,EAEJ,OAAK0D,GAAqC,IAAvBJ,EAAYK,QAAiBrB,EAAMsB,gBAOlD,gBAAC,SAAM,iBAAKvC,GACPyB,EACAS,EACD,gBAAC,OAAI,iBAAKJ,GACLM,EACAV,GAEL,gBAAC,OAAI,iBAAKM,GACLK,GAAc3D,EAAgB2D,GAC9BJ,EAAYO,IAAIC,GACN/D,EAAgB+D,KAGN,IAAvBR,EAAYK,QAAgBrB,EAAMsB,iBAAmBX,EACtDC,EACA9B,EAAkBoC,EAAanC,GAC/BgB,EAAkBe,EAAmBd,IAtBlC,gBAAC,SAAM,iBAAKjB,GACf2B,K,iHCyNE,UA7Mf,cAAwB,YAIpB,YAAYhD,EAAwBsC,GAChCyB,MAAM/D,GAyBO,KAAAgE,eAAkBC,IAC/B,MAAMhC,EAA2B,KAAnBgC,EAAEC,OAAOC,MAAe,GAAKC,KAAK9B,MAAML,MACtDmC,KAAKC,SAAS,CACVC,oBAAqBL,EAAEC,OAAOC,MAAOlC,QACrCsC,WAAYN,EAAEC,OAAOC,SAIZ,KAAAK,gBAAmBC,IAChC,IAAKA,IAAcA,EAAUC,KACzB,OAEJ,MAAMC,EAAeP,KAAK9B,MAAMgC,oBAEhCG,EAAUG,aAAa,CAAEC,UAAWF,IAC/BG,KAAKC,IACoB,YAAlBA,EAAOC,OAEPZ,KAAKC,SAAS,CAAEC,oBAAqB,GAAIrC,MAAO,GAAIsC,UAAU,IAClC,iBAArBQ,EAAOE,UACdb,KAAKC,SAAS,CAAEpC,MAAOmC,KAAKpE,MAAMkF,8BAElCd,KAAKC,SAAS,CAAEpC,MAAOmC,KAAKpE,MAAMmF,8BAGzCC,MAAMnD,IACHmC,KAAKC,SAAS,CAAEpC,MAAOmC,KAAKpE,MAAMqF,mCAI7B,KAAAC,YAAc,CAACC,EAA8BC,EAAkCf,KAC5F,MAMMgB,EAAa,iCAAuBrB,KAAKpE,MAAM0F,iBAAmBtB,KAAKuB,SAE7E,OACI,wBAAMC,SATSC,IACfA,EAAMC,iBAAkB1B,KAAKI,gBAAgBC,IAQlBsB,UAAU,kCACjC,uBAAKA,UAAU,yBACX,yBACIA,UAAU,4BAA2B,aACzBR,EACZS,SAAU5B,KAAKJ,eACfG,MAAOC,KAAK9B,MAAMgC,oBAClB2B,YAAaV,IAEjB,gBAAC,SAAM,eACHW,MAAOV,EACPO,UAAU,gCACVI,QAlBSN,IACrBzB,KAAKI,gBAAgBC,IAkBT2B,UAAWhC,KAAK9B,MAAMiC,UAClBkB,GAEHD,MAOJ,KAAAa,iBAAmB,CAAC5B,EAAmCoB,KACpE,IAAKpB,EACD,OAEJ,MAAM6B,EAAOT,EAAMU,cAAcC,aAAa,eAAiB,GAC/D/B,EAAUgC,iBAAiB,CACvBC,WAAY,CAACJ,KAEZxB,KAAKC,IACoB,YAAlBA,EAAOC,QACPZ,KAAKC,SAAS,CAAEpC,MAAO,OAG9BmD,MAAM,KACHhB,KAAKC,SAAS,CAAEpC,MAAOmC,KAAKpE,MAAM2G,sCAK7B,KAAAC,mBAAqB,CAACN,EAAc7B,KACjD,KAAKA,GAAcA,EAAUC,MAASD,EAAUC,KAAKmC,WAAiD,IAApCpC,EAAUC,KAAKmC,UAAUlD,QAAiB2C,GACxG,OAEJ,IAAIQ,EAAiB,EACrB,IAAK,MAAMC,KAAQtC,EAAUC,KAAKmC,UAC9B,GAAIE,EAAKC,cACL,IAAK,MAAMC,KAAgBF,EAAKC,cACxBC,EAAaC,eAAiBZ,IAC9BQ,GAAkBG,EAAaE,cAK/C,OAAyB,EAAlBL,GAGM,KAAAM,wBAA2BpH,IACxC,IAAKA,EAAM0E,OAAS1E,EAAM0E,KAAKA,OAAS1E,EAAM0E,KAAKA,KAAK2C,SAA8C,IAAnCrH,EAAM0E,KAAKA,KAAK2C,QAAQ1D,OACvF,OAGJ,MAAM0C,EAAoBR,IACtBzB,KAAKiC,iBAAiBrG,EAAM0E,KAAMmB,IAGhCyB,EAAwBtH,EAAM0E,KAAKA,KAAK2C,QAAQE,OAClD,CAACC,EAAeC,IACLD,GAASpD,KAAKwC,mBAAmBa,EAAOC,MAAQ,GAAI1H,EAAM0E,OAAS,GAE9E,GAEJ,OACI,gCACI,uBAAKqB,UAAU,4BACX,uBAAKA,UAAU,oCACV3B,KAAKpE,MAAM2H,6BAEhB,gBAAC,iBAAc,CACXC,KAAM,CACFC,MAAO,CACHC,wBAAyBR,IAIjCS,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,oCAId/F,EAAM0E,KAAKA,KAAK2C,QAAQxD,IAAK4D,IACzB,MAAMS,EAAYlI,EAAMmI,2BAA6B,iBAAOnI,EAAMmI,2BAA4BnI,EAAMoI,gBAAiBX,EAAOC,MAAQ,GAEpI,OACI,uBAAKW,IAAKZ,EAAOC,KAAM3B,UAAU,kCAC7B,uBAAKA,UAAU,8BACV0B,EAAOC,KACP,I,IAED,gBAAC,iBAAc,CACXE,KAAM,CACFC,MAAO,CACHC,wBAAyB1D,KAAKwC,mBAAmBa,EAAOC,MAAQ,GAAI1H,EAAM0E,QAIlFqD,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,wCAGZ,KACN,gBAAC,SAAM,CACHG,MAAOlG,EAAMoI,gBACbrC,UAAU,mCACVI,QAASE,EAAgB,aACboB,EAAOC,KAAI,aACXQ,GAEXlI,EAAMoI,sBA5LnChE,KAAKuB,QAAU,2BAAiB,QAASvB,KAAKpE,MAAM0F,iBAAmB,oBAAkB4C,gBACzFlE,KAAK9B,MAAQ,CACTiG,gBAAgB,EAChBjE,oBAAqB,GACrBrC,MAAO,GACPsC,UAAU,GAIX,SACH,OACI,2BACI,uBAAKwB,UAAU,0BACV3B,KAAKpE,MAAMwI,sBAEfpE,KAAKkB,YAAYlB,KAAKpE,MAAMuF,qBAAsBnB,KAAKpE,MAAMwF,yBAA0BpB,KAAKpE,MAAM0E,MACnG,qBAAGqB,UAAW3B,KAAK9B,MAAML,MAAQ,mBAAqB,GAAE,YAAW,aAC9DmC,KAAK9B,MAAML,OAEfmC,KAAKgD,wBAAwBhD,KAAKpE,W,wKC8EnD,MAAMyI,EACuB,CAACC,EAAwBC,IACzCD,GAAYA,EAAQE,WAIlBF,EAAQE,WAAW/E,IAAIgF,GAEkB,IAAxCA,EAAiBC,mBAEb,uBAAKT,OAAQK,EAAQK,6BAA8BhD,UAAU,uCACzD,wBAAMA,UAAU,wCACX4C,EAAiBK,Y,IAElB,wBAAMjD,UAAU,QACX8C,EAAiBI,gBAAkBJ,EAAiBI,eAAeC,SAO5C,IAAxCL,EAAiBC,mBAEb,uBAAKT,OAAQK,EAAQK,6BAA8BhD,UAAU,uCACzD,wBAAMA,UAAU,wCACX4C,EAAiBQ,a,IAElB,wBAAMpD,UAAU,QACX8C,EAAiBI,gBAAkBJ,EAAiBI,eAAeC,SAO5C,IAAxCL,EAAiBC,mBAEb,uBAAKT,OAAQK,EAAQK,6BAA8BhD,UAAU,uCACzD,wBAAMA,UAAU,uCACX4C,EAAiBS,W,IAElB,wBAAMrD,UAAU,QACX8C,EAAiBI,gBAAkBJ,EAAiBI,eAAeC,SAO5C,IAAxCL,EAAiBC,mBAEb,uBAAKT,OAAQK,EAAQK,6BAA8BhD,UAAU,uCACzD,wBAAMA,UAAU,wCACX2C,EAAQW,WAAaV,EAAiBW,aAAeX,EAAiBY,Y,IAEvE,wBAAMxD,UAAU,QACX8C,EAAiBI,gBAAkBJ,EAAiBI,eAAeC,SAMjF,MA5DA,GAHbT,EAmEoBzI,IAElB,IAAKA,EAAM4H,KAAK4B,SAASxC,eAA8D,IAA7ChH,EAAM4H,KAAK4B,SAASxC,cAAcrD,OACxE,OAAO,KAyBX,OAAO3D,EAAM4H,KAAK4B,SAASxC,cAAcnD,IAAI,CAACoD,EAAcwC,IAEpD,uBAAKpB,IAAKpB,EAAayC,SAAWD,EAAO1D,UAAU,uCAC/C,4BACKkB,EAAa0C,UAAY1C,EAAa0C,UAAY,G,QAE9C3J,EAAM4J,UAAUC,oBAAsB,eAE/C,wBAAM9D,UAAU,yCACZ,gBAAC,iBAAc,CACX6B,KAAM5H,EAAM8J,YAAc,CACtBjC,MAAO,CAEHC,wBAAyB9H,EAAM4H,KAAK4B,SAASO,mBAEjD,CACAlC,MAAO,CACHC,wBAAyBb,EAAa+C,gBACtCC,UAAWhD,EAAa+C,kBAGhCjC,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,YAGxB,sCACsCiC,IAA5BjD,EAAakD,WA3CX,EAAClD,EAA4BuC,KAA8B,MAI/E,IAAIY,EAAc,UAAWnD,EAAakD,kBAAxB,QAHC,EAKnB,IALmB,IAKdlD,EAAakD,YACblD,EAAaoD,uBAA2D,IAAlCpD,EAAaoD,wBACpDb,EAASc,OAASd,EAASc,MAPZ,GAOkCd,EAASe,UAP3C,IAOuDf,EAASe,SAAyB,CAAC,IAAD,EACxG,MAAMC,EAAe,UAAGvD,EAAa+C,uBAAhB,QARN,EASfI,EAAiBK,QAASD,GAAmBhB,EAASc,MAAQd,EAASe,UAPpD,KAOiFG,QAR/E,IAWzB,OAAON,GA8BmDO,CAAgB1D,EAAcjH,EAAM4H,KAAK4B,UAAY,WA1HrHf,EAgIqBzI,IACnB,IAAKA,EAAM4K,0BACP,OAAO,KAEX,MAAMC,EAAmB7K,EAAM8K,kEAAoE9K,EAAM8K,0BAA4B,yCACrI,OACI,wBAAM/E,UAAW8E,GACZ7K,EAAM4K,4BAvIjBnC,EA2IoBzI,IAAyB,MAC3C,MAAM+K,EAAsB,UAAG/K,EAAM+H,QAAQiD,QAAQC,eAAzB,aAAG,EAA+BC,uBACxDC,EAA8BnL,EAAMmL,4BACpCC,EAAWpL,EAAM4H,KAAK4B,SAC5B,IAAI6B,GAAoB,EACwB,IAAD,OAAXnB,IAAhCiB,EACAE,KAAuBD,EAASE,cAATF,MAAyBD,GAAzB,UAAyBA,EAA6BI,+BAAtD,QAAyB,EAAsDC,KAAKC,GAAgBA,IAAiBL,EAASE,eAErJD,KAAuBD,EAASE,cAAgBF,EAASE,eAAiBP,GAE9E,IAAKM,EACD,OAGJ,MAAMK,GAAuBN,EAASO,aAAe,IAAIC,OAAOC,GAAcA,EAAWC,YAEzF,GAAmC,IAA/BJ,EAAoB/H,OACpB,OAGJ,MAAMoI,EAAaL,EAAoBnE,OAAO,CAACyE,EAAaH,IACjDG,GAAeH,EAAWI,kBAAoB,GACtD,GAEGC,EACF,gBAAC,iBAAc,CACXtE,KAAM,CACFC,MAAO,CACHC,wBAAyBiE,IAGjCI,cAAc,OACdpE,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,kCAGlB,OACI,gCACI,yBAAOA,UAAU,mCACT/F,EAAM4J,UAAUwC,wBAExB,wBAAMrG,UAAU,kBACXmG,KAvLfzD,EA4LmBzI,IAAyB,MAC1C,MACMqM,EAAY,UADDrM,EAAM4H,KAAK4B,SACEmC,mBAAZ,aAAG,EAAsBC,OAAQU,IAAgBA,EAAWR,YAE9E,OAAOO,GAAgBA,EAAaxI,IAAI,CAAC0I,EAAalE,IAC3CkE,GAAeA,EAAYN,iBAC9B,uBAAKlG,UAAU,+BAA+BsC,IAAKA,GAC/C,yBAAOtC,UAAU,yCACTwG,EAAYC,gBAEpB,wBAAMzG,UAAU,sBACZ,gBAAC,iBAAc,CACX6B,KAAM,CACFC,MAAO,CACHC,wBAAyByE,EAAYN,mBAG7ClE,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,0CAItB,UACFmE,GAqNC,UAjN6BlK,IACxC,MAAM,YAAE8J,EAAF,WAAe2C,EAAf,UAA2B7C,GAAc5J,GACzC,QAAE0M,EAAF,SAAWlD,GAAaxJ,EAAM4H,KAE9B+E,EAA2B,CAC7BvD,WAAYQ,EAAUR,WACtBJ,YAAaY,EAAUZ,YACvBO,YAAaK,EAAUL,YACvBJ,aAAcS,EAAUT,aACxBG,aAAcM,EAAUN,cAGtBsD,EAAmBF,GAAW,8BAAoBA,EAAQG,OAAQ7M,EAAM+H,QAAQ+E,cAAcC,eAAeC,aAC7GC,EAAoBP,GAAWjE,EAA8CiE,EAASC,GACtFO,EAAgBlN,EAAMkN,cACxBA,IACAA,EAAcC,iBAAkB,GAEpC,MAAMC,EAAqB3E,EAA0CzI,GAC/DqN,EAAuB5E,EAA2CzI,GAClEsN,EAAsB7E,EAA0CzI,GAChEuN,EAAqB9E,EAAyCzI,GAC9D2F,EAAU,2BAAiB,QAAS3F,EAAM0F,iBAAmB,GAAIgH,aAAvC,EAAuCA,EAAS3D,SAASyE,YACnFC,EAAgB,iCAAuBzN,EAAM0F,iBAAmBC,GAChE+H,GAAchB,aAAA,EAAAA,EAASiB,OAAQnE,EAASgD,YAExCxG,EAAY4H,IACV5N,EAAM6N,kBACC7N,EAAM6N,iBAAiB7N,EAAM4H,KAAK4B,SAAUoE,GAKrDE,EAAwB,IACtB9N,EAAM+N,aAEF,uBAAKhI,UAAU,qBACX,wBAAMA,UAAU,6BAChB,4BACK/F,EAAM+N,eAMhB,KAiHX,OACI,uBAAKhI,UAAU,iBACX,uBAAKA,UAAU,gCACX,gBAAC,QAAK,CACFgH,eAAgB/M,EAAM+H,QAAQ+E,cAAcC,eAC5CiB,IAAKhO,EAAMiO,iBAAmB,GAAIC,YAAatB,EAAkBuB,QAAST,EAC1EU,aAAcpO,EAAMoO,aAAclB,cAAeA,EAAemB,oBAAoB,WAE5F,uBAAKtI,UAAU,0BACX,uBAAKA,UAAU,0BACX,mCAAGA,UAAU,+BAA+BuI,KAAM7B,GAAgBgB,GAC7DC,GAEJ,kBAAgBa,YAAYtB,GAAqB,uBAAKlH,UAAU,mCAC5DkH,GACI,GACT,uBAAKlH,UAAU,gCACX,gBAAC,iBAAc,CACX6B,KAAMkC,EAAc,CAChBjC,MAAO,CAEHC,wBAAyB9H,EAAM4H,KAAK4B,SAASgF,UAC7CvE,UAAWjK,EAAM4H,KAAK4B,SAASc,QAEnC,CACAzC,MAAO,CACHC,wBAAyB9H,EAAM4H,KAAK4B,SAASiF,oBAC7CxE,UAAWjK,EAAM4H,KAAK4B,SAASkF,WAGvC3G,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,oBAGjBqH,EACAC,EACArN,EAAM2O,iCAAmC,uBAAK5I,UAAU,0BACpDuH,GAEJC,GAvJiB,MAC9B,MAAMqB,EAAQ,GACd,GAAI5O,EAAM6O,aAAc,CACpB,MAAMd,EAAeD,IAErB,OAAIC,EACO,CAACA,GAGL,KAKwB,IAAD,IA6FlC,OA9FK/N,EAAM4H,KAAK4B,SAASsF,gBACjB9O,EAAM+O,mBACNH,EAAMI,KACF,uBAAKjJ,UAAU,mCACX,uBAAKA,UAAU,yCACV6D,EAAUqF,uBAGdnB,IAED,gBAAC,sBAAmB,CAChB9F,8BAA+BhI,EAAM4H,KAAK8E,QAAQ3D,YAA9C,UAA0D/I,EAAM4H,KAAK4B,gBAArE,aAA0D,EAAqB8B,gBAA/E,UAA+FtL,EAAM4H,KAAK4B,gBAA1G,aAA+F,EAAqB0F,SACxHC,IAAKnP,EAAMoP,aAAe,GAC1BC,aAAcrP,EAAMsP,gBACpBtJ,SAAUA,EACVuJ,uBAAwB3F,EAAU2F,uBAClCC,yBAA0B5F,EAAU4F,yBACpCC,yBAA0B7F,EAAU6F,yBACpCpH,IAAKrI,EAAM4H,KAAK4B,SAAS0F,OACzB9I,UAAWpG,EAAM0P,iBACjBC,WAAY3P,EAAM4H,KAAK8E,QAAQrD,WAC/B3D,iBAAkB1F,EAAM0F,qBAKpCkJ,EAAMI,KACF,uBAAKjJ,UAAW,IAAW,0BAA2B,CAAE,kBAAoD,IAAjC/F,EAAM4H,KAAK4B,SAASe,YAC3F,yBAAOxE,UAAU,kBACZ6D,EAAUqF,sBAEP,KAEPnB,IAED,wBAAM/H,UAAU,kBACX/F,EAAM4H,KAAK4B,SAASe,aAOzCqE,EAAMI,KACF,uBAAKjJ,UAAU,kCACX,gBAAC,iBAAc,CACX6B,KAAMkC,EAAc,CAChBjC,MAAO,CAEHC,wBAAyB9H,EAAM4H,KAAK4B,SAASgF,UAC7CvE,UAAWjK,EAAM4H,KAAK4B,SAASc,QAEnC,CACAzC,MAAO,CACHC,wBAAyB9H,EAAM4H,KAAK4B,SAASiF,oBAC7CxE,UAAWjK,EAAM4H,KAAK4B,SAASkF,WAGvC3G,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,wCACV6J,kBAAmBhG,EAAUgG,kBAC7BC,iBAAkBjG,EAAUiG,mBAG5B7P,EAAM4H,KAAK4B,SAASsG,gBAAkB9P,EAAM4H,KAAK4B,SAASsG,eAAiB,GAC3E,gCACI,wBAAM/J,UAAU,4CACP/F,EAAM4J,UAAUC,oBAAsB,eAE/C,gBAAC,iBAAc,CACXjC,KAAM5H,EAAM8J,YAAc,CACtBjC,MAAO,CAEHC,wBAAyB9H,EAAM4H,KAAK4B,SAASO,mBAEjD,CACAlC,MAAO,CACHC,wBAAyB9H,EAAM4H,KAAK4B,SAASuG,yBAC7C9F,UAAWjK,EAAM4H,KAAK4B,SAASsG,iBAGvC/H,QAAS/H,EAAM+H,QACfC,GAAIhI,EAAMgI,GACVC,SAAUjI,EAAMiI,SAChBlC,UAAU,0CAGlB,OAKL6I,GA+CKoB,O,2FC3hBpB,MAiCMC,EAAoBC,IACtB,GAAKA,GAAoC,IAAtBA,EAAWvM,OAI9B,OACI,gCACKuM,EAAW,KAKlBC,EAAsBC,IACxB,GAAKA,GAAsC,IAAvBA,EAAYzM,OAIhC,OACI,gCACKyM,EAAY,KAKnBC,EAAwB,CAC1BC,EACAC,EACAC,KACA,GAAKF,GAAcE,EAInB,OACI,uBAAKzK,UAAU,uBACVuK,GAAaA,EAAUG,WACvBF,GAAsBA,EAAmBE,WACzCD,GAAiBA,EAAcC,WAChC,uBAAK1K,UAAU,WACVuK,GAAaA,EAAUI,OACvBH,GAAsBA,EAAmBG,OACzCF,GAAiBA,EAAcE,UAM1CC,EAAoBC,IACtB,MAAM,eAAEC,EAAF,UAAkBC,GAAcF,EAEtC,OACI,gBAAC,OAAI,iBAAKC,GACLC,EAAUjN,IAAIkN,KAKrBA,EAA4BC,IAC9B,MAAM,eAAEH,EAAF,oBAAkBI,EAAlB,QAAuCC,EAAvC,OAAgDC,EAAhD,OAAwDC,GAAWJ,EAEzE,OACI,gBAAC,OAAI,iBAAKH,GACN,gBAAC,OAAI,iBAAKI,GACLC,EACAC,GAEJC,IAKPC,EAAsBC,IACxB,MAAM,eAAET,EAAF,cAAkBU,EAAlB,QAAiCL,EAAjC,YAA0CM,EAA1C,OAAuDL,EAAvD,OAA+DT,EAA/D,MAAuEpP,EAAvE,wBAA8EmQ,GAA4BH,EAEhH,OACI,gBAAC,OAAI,iBAAKT,GACLU,EACAL,EACAO,EACAD,EACAL,EACAT,EACApP,IAKPoQ,EAAkB,CACpBC,EACAC,EACA5R,EACAsC,EACAuP,EACAC,EACA3C,EACAzJ,KACA,MAAM,eAAEmL,EAAF,oBAAkBI,EAAlB,QAAuCC,EAAvC,OAAgDC,GAAWQ,GAE3D,UACF/H,GACA5J,GAGA,SACI+R,GACAzP,EASR,OACI,gBAAC,OAAI,iBAAKuO,GACN,gBAAC,OAAI,iBAAKI,GACLC,EACAC,GAGL,gBAAC,sBAAmB,CAChBnJ,GAAG,oCACHmH,IAAKA,EACLE,aAAc0C,EACd/L,SAlBM4H,IACVgE,EAAUI,gBACHJ,EAAUI,eAAepE,GAiB5B2B,uBAAwB3F,EAAU2F,uBAClCC,yBAA0BqC,EAAmBrC,yBAC7CC,yBAA0BoC,EAAmBpC,yBAC7CwC,gBAAiBJ,EAAmBI,gBACpCC,gBAAiBL,EAAmBK,gBACpCxM,iBAAkBA,IAErBoM,IAKPK,EAAqBC,IACvB,MAAM,eAAEvB,EAAF,oBAAkBI,EAAlB,QAAuCC,EAAvC,MAAgDmB,GAAUD,EAEhE,OACI,gBAAC,OAAI,iBAAKvB,GACN,gBAAC,OAAI,iBAAKI,GACLC,GAEJmB,IAMPC,EAA0BC,IAC5B,MAAM,eAAE1B,EAAF,OAAkBM,EAAlB,MAA0BkB,GAAUE,EAE1C,OACI,gBAAC,OAAI,iBAAK1B,GACLM,EACAkB,IAKE,UAnMqErS,IAAQ,MACxF,MAAM,YAAEwS,EAAF,2BAAeC,EAAf,0BAA2CC,EAA3C,UACFpC,EADE,mBACSC,EADT,cAC6BC,EAD7B,iBAEF9K,EAFE,UAEgBkL,EAFhB,YAE2BY,EAF3B,YAEwCF,EAFxC,SAGFS,EAHE,MAGQlK,EAHR,MAGe3B,EAHf,OAGsB/F,EAHtB,UAG8ByR,EAH9B,MAGyCtP,EAHzC,UAGgDsH,EAHhD,eAG2D+I,EAH3D,gBAG2EC,EAH3E,WAG4FR,EAH5F,uBAIFN,EAJE,IAIsB3C,EAJtB,uBAI2B0D,EAJ3B,cAImDC,GAAkB9S,EAE3E,OACI,gBAAC,SAAM,iBAAKwS,GACR,gBAAC,OAAI,iBAAKC,GACLzS,EAAM+S,cAEX,gBAAC,OAAI,iBAAKL,GACLxM,EACA2B,EACAiL,EACAtB,EACCvB,EAAiBjQ,EAAMgT,MAAM9C,YAC9B/P,EACAyQ,GAAaD,EAAiBC,GAC9BwB,GAAcD,EAAkBC,GAChCL,GAAYL,EAAgBK,EAAUH,EAAW5R,EAAOsC,EAAOsH,EAAWkI,EAAwB3C,EAAKzJ,GACvGiN,EACCtC,EAAsBC,EAAWC,EAAoBC,GACtDc,GAAeD,EAAmBC,GACjCnB,EAAmBnQ,EAAMgT,QAAN,UAAehT,EAAMgT,aAArB,aAAe,EAAa5C,cAChDwC,GAAmBN,EAAuBM,GAC1CC,GAA0BP,EAAuBO,O,2MC5B3D,MAAMI,UAA2B,gBAWpC,YAAYjT,GACR+D,MAAM/D,GAXF,KAAAkT,aAAuB,EAEd,KAAAC,UAAoB,GAoTpB,KAAAC,qBAAqB,CAACC,EAA0BC,IAA0B,KACvF,MAAMC,EAAWD,GAAUA,EAAOC,SAAWD,EAAOC,SAAW,GACzDC,EAAiC,CAAC,CAAExF,IAAKqF,EAAkBlF,QAASoF,IAGtE,kBAAgBhF,YAAY+E,EAAOG,qBACnCH,EAAOG,mBAAmB5P,IAAI6P,IAC1B,GAAIA,GAAQA,EAAKC,MAAO,CACpB,MAAMC,EAAWF,EAAKC,MAAM3F,IAC5BwF,EAAiBxE,KAAK,CAAEhB,IAAK4F,EAAUzF,QAASuF,EAAKG,KAAMC,qBAAsB,CAAEC,QAASL,EAAKK,QAAQC,qBAIrH5P,KAAKC,SAAS,CACV4P,cAAeT,EAAiB7P,OAAS,EAAI6P,EAAmB,CAAC,CAAExF,IAAK,UACxEkG,qBAAsBX,KAIb,KAAAY,sBAAwB,CAACvM,EAAqBwM,IAAsB,KAC5EhQ,KAAKpE,MAAMqU,aASZjQ,KAAKC,SAAS,CACViQ,WAAY1M,EAAKI,GACjBuM,oBAAqB3M,EAAK2L,SAC1BiB,WAAYJ,KAXhBhQ,KAAKC,SAAS,CACViQ,WAAalQ,KAAK9B,MAAMgS,YAAclQ,KAAK9B,MAAMgS,aAAe1M,EAAKI,QAAOkC,EAAYtC,EAAKI,GAC7FwM,WAAYJ,IAEZhQ,KAAKpE,MAAMyU,mBACXrQ,KAAKgP,qBAAqBxL,EAAK8M,YAAc9M,EAA7CxD,IAURA,KAAKuQ,eAGQ,KAAAA,YAAc,KACvBvQ,KAAKpE,MAAMqU,cACXO,WAAW,KACPxQ,KAAKyQ,UAAYzQ,KAAKyQ,SAASC,SAAW1Q,KAAKyQ,SAASC,QAAQC,SACjE,IAIM,KAAAC,oBAAuBnP,IAChCzB,KAAKyQ,SAASC,UAAY1Q,KAAKyQ,SAASC,QAAQG,SAASpP,EAAM3B,SAC/DE,KAAKC,SAAS,CAAEiQ,gBAAYpK,EAAWqK,oBAAqB,MAUnD,KAAAW,aAAgBrP,IAEzBA,EAAMsP,UAAY/Q,KAAK+O,WACvB/O,KAAKgR,iBAII,KAAAC,kBAAkB,CAACpB,EAAuBqB,KAEvD,MAAMC,EAAmB,8BAAoBtB,IAAiB7P,KAAKpE,MAAM+H,QAAQ+E,cAAcC,eAAeC,aACxGwI,EAAuC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCE,GAAI,CAAEJ,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCG,GAAI,CAAEL,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCI,UAAU,GAEd,QAAyB/L,IAArBqL,EAAgC,CAChC,MAAMW,EAAwB,CAAElI,IAAKuH,GACrC,OACI,gBAAC,QAAK,eACFxI,eAAgB3I,KAAKpE,MAAM+H,QAAQ+E,cAAcC,eACjDhH,UAAU,sBACNmQ,EAAS,CACb9H,aAAchK,KAAKpE,MAAM+H,QAAQiD,QAAQoD,aACzClB,cAAe9I,KAAKpE,MAAMmW,OAAOC,uBAAyBZ,EAC1DnH,oBAAoB,OACpBgI,KAAK,WACLrO,MAAOiM,mBACP9F,QAASmH,KAIrB,OAAO,MAxYPlR,KAAKyQ,SAAW,cAChBzQ,KAAK9B,MAAQ,CAAEgS,gBAAYpK,EAAWqK,oBAAqB,GAAIC,gBAAYtK,EAAWgK,qBAAsB,IAC5G9P,KAAKgR,cAAgBhR,KAAKgR,cAAckB,KAAKlS,MAC7CA,KAAK8Q,aAAe9Q,KAAK8Q,aAAaoB,KAAKlS,MAC3CA,KAAKsB,iBAAmB,6BAAmBtB,KAAKpE,MAAM+H,QAAQiD,QAAQuL,kBAClEnS,KAAKpE,MAAMwW,aACXpS,KAAKpE,MAAMyW,WACfrS,KAAKuB,QAAU,2BAAiB,QAASvB,KAAKsB,iBAAkB,GAAI,IAGjE,oBACHgR,SAASC,MAAQD,SAASE,iBAAiB,UAAYxS,KAAK8Q,cAA2C,GACvGwB,SAASC,MAAQD,SAASC,KAAKC,iBAAiB,YAAaxS,KAAK4Q,qBAG/D,uBACH0B,SAASC,MAAQD,SAASG,oBAAoB,UAAYzS,KAAK8Q,cAA2C,GAC1GwB,SAASC,MAAQD,SAASC,KAAKE,oBAAoB,YAAazS,KAAK4Q,qBAAqB,GAGvF,SACH,MAAM,aAAEX,GAAiBjQ,KAAKpE,MAG9B,OADAoE,KAAK8O,aAAe,EAEhB,gCACKmB,EAAejQ,KAAK0S,oBAAsB1S,KAAK2S,sBAKpD,oBACJ,MAAM,aAAE1C,EAAF,aAAgB2C,EAAhB,WAA8BC,GAAe7S,KAAKpE,MACxD,OACI,gBAAC,SAAM,iBAAKiX,EAAU,CAAElR,UAAW,IAAWkR,EAAWlR,UAAWsO,EAAe,cAAgB,kBAC9F2C,EAAanT,IAAKqT,GACR9S,KAAK+S,kBAAkBD,KAMtC,qBACJ,MAAM,SAAEE,EAAF,WAAYH,GAAe7S,KAAKpE,MACtC,OACI,gBAAC,SAAM,iBAAKiX,EAAU,CAAElR,UAAW,IAAWkR,EAAWlR,aACrD,gBAAC,OAAI,iBAAKqR,EAAQ,CAAEC,IAAKjT,KAAKyQ,SAAUyC,SAAS,OAC5ClT,KAAKmT,mBAMd,kBAAkBL,GACtB,OAAIA,GAAYA,EAASM,SAAWN,EAASM,QAAQ7T,OAAS,EAClDS,KAAKqT,cAAcP,GAEvB9S,KAAKsT,oBAAoBR,GAI7B,cAAcA,GAClB,MAAMS,EAAmBT,EAAS3D,SAClC,OACI,gBAAC,SAAM,CACHlL,IAAK6O,EAASlP,GAAIjC,UAAU,iBAAiB6R,UAAU,sBACvDC,WAAW,uBAAuBC,eAAe,MAAMH,iBAAkBvT,KAAK2T,gBAAgBJ,IAC9F,2BACKT,EAASM,QAAS3T,IAAKmU,GACb5T,KAAK6T,kBAAkBD,MAO1C,gBAAgBzE,GACpB,OACI,gCACKA,GAKL,kBAAkBG,GACtB,OAAIA,GAAQA,EAAKH,UAAYG,EAAKwE,SAAWxE,EAAKwE,QAAQvU,OAAS,EAE3DS,KAAKsT,oBAAoBhE,GAEtBA,GAAQA,EAAKH,WAAaG,EAAKwE,QAElC9T,KAAK+T,oBAAoBzE,GAG1B,KAGH,iBACJ,MAAM,SAAE0E,EAAF,aAAYpB,EAAZ,aAA0B3C,GAAiBjQ,KAAKpE,OAChD,WAAEsU,GAAelQ,KAAK9B,MACtB+V,EAA8B,GAEpC,GAAIhE,QAA+BnK,IAAfoK,GAA4B0C,EAAarT,OAAS,EAAG,CACrE,IAAIuT,EAA0B,GAC9B,IAAK,MAAMoB,KAAiBtB,EAAc,CACtC,GAAIsB,GAAiBA,EAActQ,KAAOsM,EAAY,CAClD4C,EAAWoB,EACXlU,KAAKC,SAAS,CAAEmQ,gBAAYtK,EAAWqK,oBAAqB+D,EAAc/E,WAC1E,MAGJ,IADA2D,EAAW9S,KAAKmU,gBAAgBD,KAChBpB,EAASlP,KAAOsM,EAC5B,MAIR4C,GAAYmB,EAAarJ,KACrB,gBAAC,OAAI,eAAC3G,IAAK6O,EAASlP,IAAQoQ,GACvB,IACAhU,KAAKoU,oBAAoBtB,GACzB,WAITF,EAAayB,QAAQ,CAAC/E,EAAqBjK,KACvC4O,EAAarJ,KACT,gBAAC,OAAI,eAAC3G,IAAKoB,GAAW2O,GACjBhU,KAAKoU,oBAAoB9E,OAM1C,OAAO2E,EAGH,gBAAgB3E,GACpB,MAAMgF,EAAWhF,GAAQA,EAAK8D,QAC9B,GAAIkB,GAAYA,EAAS/U,OAAS,EAC9B,IAAK,IAAIgV,EAAI,EAAGA,GAAKD,EAAS/U,OAAS,EAAGgV,IAAK,CAC3C,GAAID,EAASC,GAAG3Q,KAAO5D,KAAK9B,MAAMgS,WAE9B,OADAlQ,KAAKC,SAAS,CAAEmQ,WAAYd,GAAQA,EAAK1L,GAAIuM,oBAAqBmE,EAASC,GAAGpF,WACvEmF,EAASC,GAEpB,MAAMC,EAAQxU,KAAKmU,gBAAgBG,EAASC,IAC5C,GAAIC,EACA,OAAOA,EAInB,OAAO,KAGH,oBAAoB5B,GACxB,OAAIA,GAAgBA,EAAaQ,SAAWR,EAAaQ,QAAQ7T,OAAS,EAClES,KAAKpE,MAAMqU,mBAA0CnK,IAA1B9F,KAAK9B,MAAMgS,WAC9BlQ,KAAKyU,eAAe7B,EAAaQ,QAASR,EAAahP,IAG/D,gCACK5D,KAAK0U,sBAAsB9B,GAC3B5S,KAAKyU,eAAe7B,EAAaQ,QAASR,EAAahP,KAIzDgP,GAAgBA,EAAazD,UAAYyD,EAAakB,SAAWlB,EAAakB,QAAQvU,OAAS,EAC9FS,KAAKsT,oBAAoBV,EAAcA,EAAahP,IAAI,GACzDgP,GAAgBA,EAAazD,WAAayD,EAAakB,QACtD9T,KAAK+T,oBAAoBnB,GAG9B,KAGH,eAAe0B,EAA4BpE,EAAqByE,GACpE,MAAM,aAAE1E,EAAF,SAAgB+D,GAAahU,KAAKpE,MAClCgZ,EAAyB5U,KAAKpE,MAAMmW,OAAO8C,uBAAwB,EACnEC,EAA0B9U,KAAKpE,MAAMmW,OAAOgD,kBAAoB,EAGtE,GAAI7E,GAAclQ,KAAK9B,MAAMgS,aAAeA,EAExC,OADAlQ,KAAKpE,MAAM+H,QAAQ0O,UAAUxU,MAAM,gEAC5B,KAGX,IAAKyW,GAAgC,IAApBA,EAAS/U,OAEtB,OADAS,KAAKpE,MAAM+H,QAAQ0O,UAAUxU,MAAM,4DAC5B,KAGX,IAAImX,EAAyB,GAC7B,MAAMC,EAAcX,GAAYA,EAAS7U,IAAI,CAACyP,EAAuBgG,KACjE,MAAMC,EAAcjG,EAAOkE,SAAWlE,EAAOkE,QAAQ7T,OAAS,EAC9D,IAAIuT,EAOAM,EALAN,EADAqC,GAAclF,EACHjQ,KAAK0U,sBAAsBxF,EAAQgB,EAAYgF,GAE9ChG,EAAO4E,QAAU9T,KAAKsT,oBAAoBpE,EAAQgG,GAAOlV,KAAK+T,oBAAoB7E,GAIlG,MAAMkG,EAAcD,GAAcP,GAA2B5U,KAAK8O,cAAgBuG,KAAKC,MAAMR,GAA2B,EAMxH,OALIM,IACApV,KAAK8O,eACLkG,EAAiBJ,WAAkC5U,KAAK8O,aAAa1F,aAAe,GACpFgK,EAAUpT,KAAKyU,eAAevF,EAAOkE,QAASnD,EAAef,EAAOtL,QAAKkC,GAAW,IAGpF,gBAAC,OAAI,iBAAKkO,EAAQ,CAAE/P,IAAKiL,EAAOtL,GAAIjC,UAAW,IAAWqS,EAASrS,UAAWyT,GAAe,iBACvFtC,EACAM,KAId,OAAQpT,KAAKuV,YAAYP,EAAgBC,EAAa/E,EAAYyE,GAG9D,sBAAsBzF,EAAuBgB,EAAqB7K,GACtE,MAAM,OAAEmQ,GAAWxV,KAAKpE,MACxB,OACI,gBAAC,OAAI,eACDqI,IAAKoB,GACDmQ,EAAM,CACVzT,QAAS/B,KAAK+P,sBAAsBb,EAAQgB,GAC5CuF,QAASzV,KAAKgR,cAAa,sCAEThR,KAAK9B,MAAMgS,YAAclQ,KAAK9B,MAAMgS,aAAehB,EAAOtL,IAAG,cAClEsM,IAEXhB,EAAOC,UAKb,oBAAoBD,EAAuB7J,GAA2C,IAA3BqQ,IAA2B,yDAC1F,MAAM,KAAEC,GAAS3V,KAAKpE,MAChBuT,EAAWD,EAAOC,SAAWD,EAAOC,SAAW,GAC/CyG,EAAc1G,EAAOoB,YAAcpB,EAAOoB,YAAc,GAC9DtQ,KAAKuB,QAAQsU,cAAcC,MAAQ3G,EACnC,MAAM9N,EAAa,iCAAuBrB,KAAKsB,iBAAkBtB,KAAKuB,SACtE,OACI,gBAAC,OAAI,iBACGoU,EAAI,CAAE1R,IAAKoB,EAAO0Q,YAAaL,GAAe1V,KAAKgP,qBAAqB4G,EAAa1G,GACzFhF,KAAMgF,EAAO4E,SAAazS,EAAU,CAAEU,QAAS,2BAAiB/B,KAAKsB,iBAAkBtB,KAAKuB,QAAS4N,KACnGD,EAAOC,UAKb,uBAAuBA,EAAmBQ,GAC9C,MAAM,KAAEgG,GAAS3V,KAAKpE,MACtBoE,KAAKuB,QAAQsU,cAAcC,MAAQ3G,EACnC,MAAM9N,EAAa,iCAAuBrB,KAAKsB,iBAAkBtB,KAAKuB,SACtE,OAAI4N,GAAYQ,EAER,gBAAC,OAAI,iBACGgG,EAAI,CAAEzL,KAAMyF,GAAatO,EAAU,CACvCU,QAAS,2BAAiB/B,KAAKsB,iBAAkBtB,KAAKuB,QAAS4N,KAC7DA,GAIP,KAIH,oBAAoBD,EAAuB7J,GAC/C,MAAM,KAAE2Q,GAAShW,KAAKpE,MACtB,OACI,gBAAC,OAAI,eAACqI,IAAKoB,GAAW2Q,GAChB9G,EAAOC,UAKb,YAAY8G,EAAehB,EAA4BiB,EAAsBC,GAEjF,MAAM,aAAEC,EAAF,SAAgBpD,EAAhB,kBAA0BqD,EAA1B,kBAA6ChG,EAA7C,aAAgEJ,EAAhE,uBAA8EqG,GAA2BtW,KAAKpE,MAC9G2a,GAAwBtG,GAAgBI,GAAkD,OAA7BrQ,KAAK9B,MAAM2R,oBAAuD/J,IAA7B9F,KAAK9B,MAAM2R,gBAAgCsG,EAC7IK,GAA6BvG,GAAgBqG,GAA0B,kBAAgBnM,YAAYnK,KAAK9B,MAAM2R,iBAAmBsG,EACjIM,EAAoBzW,KAAK8O,aAAe,GAAKyH,EAAuBH,EAAczU,UAAY,kBAEpG,OADA3B,KAAK8O,aAAe,EAEhB,gBAAC,OAAI,iBAAKsH,EAAY,CAAEzU,UAAW8U,IAC/B,gBAAC,OAAI,iBAAKzD,EAAQ,CAAErR,UAAW,IAAWqR,EAASrR,UAAWsU,EAAOM,GAAwB,gBAAiBA,GAAwBvW,KAAKpE,MAAMmW,OAAOgD,kBAAoB/U,KAAKpE,MAAMmW,OAAOgD,iBAAmB,GAAK,yBAChNE,GAGFsB,GAAwBvW,KAAK9B,MAAM2R,eAAiB7P,KAAK9B,MAAM2R,cAAcpQ,IAAI6P,IAAI,eACjF,gBAAC,OAAI,iBAAK+G,EAAiB,CAAE1U,UAAW0U,EAAmB1U,YACrD3B,KAAK9B,MAAM2R,eAAiB7P,KAAKiR,kBAAL,UAAuB3B,aAAvB,EAAuBA,EAAM1F,WAA7B,QAAoC,GAAI0F,EAAKvF,QAASX,YAClFoN,GAA6BxW,KAAK0W,uBAAuBpH,EAAKvF,QAAjC,UAA0CuF,EAAKI,4BAA/C,aAA0C,EAA2BC,aA4DpH,gBACC3P,KAAKpE,MAAMqU,cACZjQ,KAAKC,SAAS,CAAEiQ,gBAAYpK,EAAWqK,oBAAqB,MA2CzD,a,yFCjaf,MAsBMwG,EAAqBC,GAEnB,gCACI,gBAAC,OAAI,iBAAKA,EAAWC,yBAChBD,EAAWE,iBACXF,EAAWG,oBACXH,EAAWI,kBAQtBC,EAAmB,CAACC,EAA8C1R,EAA2B2H,EAC/FgK,EAAuCC,EAAmCC,EAA2BC,EACrGhW,EAAsCiW,EAA0BC,KAEhE,MAAM,cAAEC,GAAkBjS,EAE1B,OAAI6R,EACQ,gCACHA,GAGLH,EACOA,EAAUzX,IAAI,CAAC2F,EAAUC,IAExB,uBAAK1D,UAAU,sBAAsBsC,IAAKoB,GACrCD,EAAS4B,SACTuQ,EAAiB,KAAOG,EAAkBtS,EAAUI,EAAW2H,EAAe7L,EAAkBkW,GAE7FD,EACI,gBAAC,OAAI,CAAC5V,UAAU,sCACXgW,EAAuBvS,EAAUI,EAAW2H,EAAe7L,EAAkBkW,GAC7EpS,EAAS+G,mBACT/G,EAASgH,cACThH,EAASwS,QAEbxS,EAAS+G,mBACV,gBAAC,OAAI,CAACxK,UAAU,gCACXyD,EAAS+G,mBACT/G,EAASgH,cACThH,EAASwS,QAGd,gCACKxS,EAASgH,cACThH,EAASwS,UAQ9BN,EACJ,uBAAK3V,UAAU,wBACX,qBAAGA,UAAU,iBACR8V,GAEJN,GAEL,gCACCC,IAMHM,EAAoB,CAACtS,EAA+BI,EAA2B2H,EAA4C7L,EAAsCkW,KAAsD,MAEzN,IAAKpS,EAASyS,gBAAkB1K,IAAiB,UAAA/H,EAAS5B,YAAT,eAAewD,SAASE,gBAAiBsQ,EACtF,OAAO,KAGX,MAAM,uBAAEM,EAAF,yBAA0BC,EAA1B,oBAAoDC,EAApD,8BAAyEC,EAAzE,uBAAwGC,GAA2B1S,EAEnI2S,EAAkB/S,EAASyS,cAAcM,gBAOzC5W,EAAU,2BAAiB,QAASD,EAAmB,oBAAkB8W,eACzEC,EAAyB,iCAAuB/W,EAAmBC,GAEzE,OACI,gBAAC,OAAI,iBAAK6D,EAASyS,cAAcpL,gBAC7B,uBAAK9K,UAAU,+BACVwW,EAAkB,wBAAMxW,UAAU,WAC9BsW,GACK,wBAAMtW,UAAU,QACrBoW,IAILI,GACA,uBAAKxW,UAAU,oCACX,wBAAMA,UAAU,0CACXyD,EAASyS,cAAcS,aAE5B,gBAAC,SAAM,CACHrG,KAAK,OAAOtQ,UAAU,mCACtBI,QAvBCN,IACjB2D,EAASyS,eAAiBzS,EAASyS,cAAcrK,UAAU+K,aAAY,KAuBtDL,IAIb,gBAAC,SAAM,eAACvW,UAAU,4BAA+B0W,EAAsB,CAAEtW,QA/B5DN,IACjB2D,EAASyS,eAAiBzS,EAASyS,cAAcrK,UAAU+K,aAAaJ,MA+B/DA,EAAkBL,EAAyBE,KAMtDQ,EAAqBC,GAClBA,GAAyC,IAA5BA,EAAU1L,OAAOxN,OAI/B,gBAAC,OAAI,iBAAKkZ,EAAUC,SACfD,EAAUpa,OACVoa,EAAU1L,QALR,KAUT4L,EAA2B,CAACC,EAAmDC,EAA+Bjd,IAC3Ggd,EAID,gBAAC,OAAI,iBAAKC,GACLjd,EAAM6E,UACNmY,EAAkBE,SAClBF,EAAkBG,SAClBH,EAAkBzQ,YAClByQ,EAAkBI,IAClBJ,EAAkBK,eAAiBL,EAAkBK,eAAiB,KACtEL,EAAkBM,YAVhB,KAeTC,EAA6B,CAACC,EAAuDP,EAA+Bjd,IACjHwd,EAKD,gBAAC,OAAI,iBAAKP,GACLO,EAAoBC,SACpBD,EAAoBE,SACpBF,EAAoBG,QACpBH,EAAoBF,aARzBtd,EAAM+H,QAAQ0O,UAAUxU,MAAM,uDACvB,MAYT2b,EAAwB,CAAC5d,EAAuB4J,KACY,IAAD,EAA7D,OAAI5J,EAAM6d,gBAAkB7d,EAAM6d,eAAela,OAAS,EAElD,uBAAKoC,UAAU,wBAAf,UACM/F,EAAM6d,sBADZ,aACM,EAAsBha,IAAIia,IAAY,QACpC,OAAQ,uBAAK/X,UAAU,+BAClBgY,EAA4BD,EAAU,GAAI9d,EAAMuR,cAAe3H,EAAWoU,EAAYF,GAA3D,UAAuE9d,EAAM+H,QAAQ+E,cAAcC,eAAe9B,eAAlH,aAAuE,EAAoDgT,uBACtJ5C,EAAiByC,EAAW9d,EAAM4J,UAAW5J,EAAMuR,cAAevR,EAAMub,qBAAsBvb,EAAMwb,iBAAkBxb,EAAMyb,kBAAmBzb,EAAM0b,eAClJ1b,EAAM0F,iBAAkB1F,EAAMke,sBADjB,UACwCle,EAAM+H,QAAQ+E,cAAcC,eAAe9B,eADnF,aACwC,EAAoDgT,2BAMzHje,EAAM0b,eACV,uBAAK3V,UAAU,uBACX,uBAAKA,UAAU,wBACX,qBAAGA,UAAU,iBACR/F,EAAM4J,UAAUiS,eAEpB7b,EAAMub,uBAGf,gCACCvb,EAAMwb,mBAKTuC,EAA8B,CAACvU,EAA+B+H,EAA4C3H,EAA2BpC,EAAeoU,KAAkC,MACxL,MAAMW,EAAkB/S,aAAH,YAAGA,EAAUyS,qBAAb,aAAG,EAAyBM,iBAC3C,WAAE4B,EAAF,aAAcC,EAAd,kBAA4BC,GAAsBzU,EACxD,IAAI0U,EAKJ,OAHAA,EAAa/B,EAAkB4B,EAAaC,EAC5CE,EAAa9U,EAAS5B,MAAQ4B,EAAS5B,KAAKwD,SAASE,eAAiBsQ,EAAwByC,EAAoBC,EAG9G,gCACI,uBAAKvY,UAAU,8CACX,qBAAGA,wDAAyDuY,EAAWC,uBACvE,qBAAGxY,wDAAyDuY,EAAWC,iBAClED,GAEJE,EAA2BhV,EAAUI,EAAWpC,MAM3DuU,EAAyB,CAACvS,EAA+BI,EAA2B2H,EAA4C7L,EAAsCkW,KAAsD,MAE9N,IAAKpS,EAASyS,gBAAkB1K,IAAiB,UAAA/H,EAAS5B,YAAT,eAAewD,SAASE,gBAAiBsQ,EACtF,OAAO,KAGX,MAAM,uBAAEU,EAAF,uBAA0BJ,EAA1B,oBAAkDE,GAAwBxS,EAE1E2S,EAAkB/S,EAASyS,cAAcM,gBAOzC5W,EAAU,2BAAiB,QAASD,EAAmB,oBAAkB8W,eACzEC,EAAyB,iCAAuB/W,EAAmBC,GAEzE,OACI,gCACK4W,EAAkB,gBAAC,SAAM,CAAClG,KAAK,OAAOtQ,UAAU,qCAAqCI,QARzEN,IACjB2D,EAASyS,eAAiBzS,EAASyS,cAAcrK,UAAU+K,aAAY,KAQ9DL,GACO,KACZ,gBAAC,SAAM,eACHjG,KAAK,OAAOtQ,UAAU,sCAAyC0W,EAAsB,CACrFtW,QAhBSN,IACjB2D,EAASyS,eAAiBzS,EAASyS,cAAcrK,UAAU+K,aAAaJ,MAgB/DA,EAAkBL,EAAyBE,KAMtD4B,EAAexU,IACjB,IAAIiV,EAAY,EAKhB,OAJAA,EAAYjV,EAASjC,OAAO,CAACC,EAAOkM,KAAQ,MACxC,OAAOlM,IAAS,UAAAkM,EAAK9L,YAAL,eAAWwD,SAASb,WAAY,IAEjD,IAIDiU,EAA6B,CAAChV,EAA+BI,EAA2BpC,KAAiB,UAC3G,MAAM+U,EAAkB/S,aAAH,YAAGA,EAAUyS,qBAAb,aAAG,EAAyBM,iBAC3C,UAAEmC,EAAF,WAAaC,GAAe/U,EAC5BgV,EAASpX,EAAQ,EAAImX,EAAaD,EACxC,OACI,gCACI,gBAAC,OAAI,CAAC3Y,UAAU,oDACXwW,EAAkB,qBAAGxW,UAAU,uDAC3ByD,aADc,YACdA,EAAUyS,qBADI,aACd,EAAyB4C,eACzB,KACArV,aAHc,YAGdA,EAAUyS,qBAHI,aAGd,EAAyBS,aACvB,KACP,qBAAG3W,UAAU,uD,IAERyB,EACA,IACAoX,EAED,QAML,UA1S6B5e,IAAD,eACvC,qCAAK+F,UAAW/F,EAAM+F,UAAWiC,GAAIhI,EAAMgI,IAAQhI,EAAM8e,uBAAuB9e,IAC3EA,EAAMkG,MACNlG,EAAM+e,kBAAoBhE,EAAkB/a,EAAM+e,kBAClD/e,EAAMke,sBAAwBN,EAAsB5d,EAAOA,EAAM4J,WAAa,gBAAC,OAAI,iBAAK5J,EAAMgf,kBAC1F3D,EAAiBrb,EAAM8d,UAAW9d,EAAM4J,UAAW5J,EAAMuR,cAAevR,EAAMub,qBAAsBvb,EAAMwb,iBAAkBxb,EAAMyb,kBAC/Hzb,EAAM0b,eAAgB1b,EAAM0F,iBAAkB1F,EAAMke,sBADvC,UAC8Dle,EAAM+H,QAAQ+E,cAAcC,eAAe9B,eADzG,aAC8D,EAAoDgT,wBAEtIje,EAAMif,qBACH,gBAAC,OAAI,iBAAKjf,EAAMkf,qBACXlf,EAAMif,oBACN,UAAAjf,EAAM0E,YAAN,SAAYya,eAAiB5B,EAA2Bvd,EAAMof,wBAAyBpf,EAAMid,kBAAmBjd,GAAS+c,EAAyB/c,EAAMqf,sBAAuBrf,EAAMid,kBAAmBjd,GACxM4c,EAAkB5c,EAAMsf,oBACxBtf,EAAMuf,2BACNvf,EAAMwf,sBACNxf,EAAMub,qBACNvb,EAAMyf,8BAEdzf,EAAMuR,iB,+EC1Bf,MAcMmO,EAAiB1f,GAEf,gBAAC,OAAI,iBAAKA,EAAM2f,aACX3f,EAAM4f,UACN5f,EAAM6f,IACN7f,EAAM8f,YAKJ,UAxBoD9f,IAC/D,MAAM,QAAEkR,EAAF,eAAW6O,EAAX,eAA2BC,EAA3B,YAA2C3e,GAAgBrB,EACjE,OACI,gBAAC,SAAM,iBAAKqB,GACP6P,EACD,gBAAC,OAAI,iBAAK8O,GACLD,EAAelc,IAAI6P,GACTgM,EAAchM,Q,+ECPzC,MAqDMuM,EAA0B,CAACC,EAAyCC,EAAkCC,IACjG,eAAmBF,EAAW5e,MAAO,GAAI4e,EAAW3e,YAAa8e,EAAgBH,EAAYC,EAAYC,GAAiBF,EAAWhe,aAG1Ime,EAAkB,CAACrgB,EAAoCmgB,EAAkCC,IACvFA,EACO,eAAmBpgB,EAAMwB,UAAW,GAAI8e,EAAWF,GAAiBG,EAAcJ,IAEtF,KAGLI,EAAiBvgB,IACnB,MAAM,SAAEwgB,EAAF,oBAAYC,EAAZ,wBAAiCC,GAA4B1gB,EACnE,OAAIwgB,EAEI,gBAAC,OAAI,iBAAKE,GACN,gBAAC,OAAI,iBAAKD,GACLD,EAAS3c,IAAI,CAAC0W,EAAS9Q,IACpB,gBAAC,WAAc,CAACpB,IAAKoB,GAChB8Q,MAOlB,MAGL+F,EAActgB,IAChB,MAAM,iBAAE2gB,EAAF,eAAoBP,GAAmBpgB,EAC7C,OAAIogB,EAEI,gBAAC,OAAI,iBAAKO,GACLP,GAIN,MAGLQ,EAA2B5gB,IAC7B,MAAM,2BAAE6gB,EAAF,sBAA8BC,EAA9B,2BAAqDC,GAA+B/gB,EAC1F,OAAI8gB,EAEI,gBAAC,OAAI,iBAAKD,GACLC,EAAsBjd,IAAI,CAACmd,EAAUvX,IAClC,gBAAC,WAAc,CAACpB,IAAKoB,GAChBuX,EACAF,GAAyBA,EAAsBrX,EAAQ,IAAMsX,KAO3E,MAGLE,EAAejhB,IACjB,MAAM,MAAEkG,EAAF,eAASgb,GAAmBlhB,EAClC,OAAIkG,EAEI,gBAAC,OAAI,iBAAKgb,GACN,0BACKhb,EAAMib,YACNjb,EAAMkb,U,IAENlb,EAAMmb,WAEN,MAIV,MAGI,UAlI8DrhB,IACzE,MAAM,sBAAEshB,EAAF,SAAyBC,EAAzB,WAAmCC,EAAnC,kBAA+CC,EAA/C,wBAAkEC,EAAlE,cAA2FC,EAA3F,SAA0GC,EAA1G,YAAoHC,EAApH,kBAAiIC,EAAjI,eAAoJC,EAApJ,WACF5B,EADE,kBACU6B,EADV,cAC6BC,EAD7B,qBAC4CC,EAD5C,iCACkEC,EADlE,aACoGpU,EADpG,uBACkHqU,EADlH,mBAC0IC,GAAuBriB,EACvK,OAAI4hB,EAEI,gBAAC,SAAM,iBAAKN,GACPU,GAAqBpB,EAAwBoB,GAC7Cf,EAAYc,GACZJ,EACAE,EACA5B,EAAwB6B,EAAmB3B,EAAY8B,GACxD,gBAAC,OAAI,iBAAKG,GACLC,GAEL,gBAAC,OAAI,iBAAKZ,GACL1T,EACAwT,GAEJC,GAKT,gBAAC,SAAM,iBAAKF,GACPU,GACD,gBAAC,OAAI,iBAAKE,GACLtB,EAAwBoB,IAE7B,gBAAC,OAAI,iBAAKG,GACLhC,GAAcI,EAAcJ,GAC7B,gBAAC,OAAI,iBAAKuB,GACN,gBAAC,OAAI,iBAAKU,GACLC,GAEL,uBAAKtc,UAAU,iDACVgc,GAAkBd,EAAYc,GAC9BJ,GAEL,uBAAK5b,UAAU,6CACVkc,GAAiB3B,EAAW2B,IAEjC,gBAAC,OAAI,iBAAKR,GACL1T,EACAwT,GAEJC,O,kCCjDrB,uBAGe,cAAM,6B,sbCCd,MAAMc,EAA4D,IAAD,IAAC,sBACrEC,EADqE,QAErEC,EAFqE,UAGrEC,EAHqE,YAIrEC,EAJqE,YAKrEC,EALqE,MAMrEnb,EANqE,OAOrEob,EAPqE,mBAQrEC,GARoE,SAUpE,gBAAC,OAAI,iBAAKN,GACLG,EACAF,EACAC,EACAE,EACAnb,EACAob,EACAC,IAIIC,EAAuD,IAAD,IAAC,cAAEC,EAAF,QAAiB7R,EAAjB,MAA0B1J,EAA1B,WAAiCwb,EAAjC,QAA6CC,EAA7C,aAAsDC,GAAvD,SAC/D,gBAAC,OAAI,iBAAKH,GACL7R,EACA1J,EACAwb,EACAC,EACAC,IAIIC,EAAuC,IAAD,IAAC,WAAEC,EAAF,SAAcC,EAAd,gBAAwBC,EAAxB,WAAyCC,GAA1C,SAC/C,gBAAC,OAAI,iBAAKH,GACLG,GACG,gBAAC,OAAI,iBAAKD,GACLC,EAAW1f,IAAI2f,GACZ,gBAAC,WAAc,CAACnb,IAAKmb,EAAU5b,KAAK4b,UAAUtU,QACzCsU,EAAUA,eAQtBC,EAAyC,IAAD,IAAC,YAAEC,EAAF,OAAeC,GAAhB,SACjD,gBAAC,OAAI,iBAAKD,GACLC,EAAO9f,IAAI,CAAC+f,EAAOna,IAChB,gBAAC0Z,EAAiB,eAAC9a,IAAKoB,GAAWma,OAKlCC,EAAyC,IAAD,IAAC,YAAE3jB,EAAF,QAAegR,EAAf,gBAAwB4S,EAAxB,aAAyCC,GAA1C,SACjD,gBAAC,OAAI,iBAAK7jB,GACLgR,EACA4S,EACAC,IAIIC,EAAgD,IAAD,IAAC,gBAAEC,EAAF,gBAAmBC,EAAnB,OAAoCP,EAApC,iBAA4CQ,GAA7C,SACxD,gBAAC,OAAI,iBAAKF,GACLC,GAAmB,gBAAC5B,EAA2B,iBAAK4B,IACpDP,GAAU,gBAACF,EAAkB,iBAAKE,IAClCQ,IAIIC,EAAqC,IAAD,IAAC,UAAEC,EAAF,YAAaC,GAAd,SAC7C,gBAAC,OAAI,iBAAKD,GACLC,GAAeA,EAAYzgB,IAAI,CAAC0gB,EAAY9a,IAAU,gBAACua,EAAqB,eAAC3b,IAAKoB,GAAW8a,OAkCvF,UA9B6C,IAAD,IAAC,kBACxDC,EADwD,OAExD/hB,EAFwD,MAGxDgiB,EAHwD,QAIxDC,EAJwD,aAKxDC,EALwD,mBAMxDC,EANwD,KAOxDC,EAPwD,WAQxDC,GARuD,SAUvD,gBAAC,SAAM,iBAAKN,GACP/hB,GAAU,gBAACohB,EAAkB,iBAAKphB,IAClCiiB,EACAD,GACG,gCACKA,EACAG,GAGRD,GACG,gCACKA,EACAC,GAGRC,GAAQ,gBAACT,EAAgB,iBAAKS,IAC9BC,GAAcA,K,8GCpDvB,MAAMC,EAAsBC,IACxB,MAAMC,EAAWD,GAAsBA,EAAmBjgB,OAC1D,OACI,gCACKkgB,EAAWA,EAASC,WAAaD,EAAStX,KAAO,KAwE9D,SAASwX,EAAqBC,GAC1B,OACI,gCACKA,GAASA,EAAMzhB,OAAS,EAAIyhB,EAAMvhB,IAAI,CAACwhB,EAAuB5b,IACnD,gBAAC,WAAc,CAACpB,IAAKoB,GACxB4b,IAEJ,MAKF,UAtIgCrlB,IAC3C,MAAM,UACFslB,EADE,gBAEFC,EAFE,sBAGFC,EAHE,QAIFC,GACAzlB,EACJ,OACI,gBAAC,SAAM,iBAAKslB,GACR,gBAAC,OAAI,iBAAKC,GACN,gBAAC,OAAI,iBAAKC,GACLxlB,EAAM0lB,QACN1lB,EAAM2lB,KACNR,EAAqBnlB,EAAM4lB,QAC3B5lB,EAAM6lB,eA0E3B,SAA6B7lB,EAAyB8lB,GAClD,MAAM,mCACFC,EADE,0CAEFC,EAFE,0BAGFC,EAHE,YAIFC,EAJE,WAKFC,EALE,aAMFC,GACApmB,EAEJ,GAAI+lB,EAAoC,CACpC,MAAMM,EAAmB,IAAWN,EAAmChgB,UAAW+f,EAAkB,iBAAmB,mBACvH,GAAIE,EACA,OACI,gBAAC,OAAI,iBAAKD,EAAkC,CAAEhgB,UAAWsgB,IACpDJ,EACD,gBAAC,OAAI,iBAAKD,KACJI,GAAeA,EAAaviB,IAAKyiB,GAA0BA,GAC5DJ,IAIV,GAAIC,EACP,OACI,gBAAC,OAAI,iBAAKJ,EAAkC,CAAEhgB,UAAWsgB,IACpDF,GAMjB,OAAO,KAxGUI,CAAoBvmB,GAAO,GAC3BA,EAAMwmB,oBACP,gBAAC,OAAI,iBAAKf,IACTzlB,EAAMymB,SACNtB,EAAqBnlB,EAAM0mB,cAWhD,SAA6B1mB,GACzB,MAAM,QAAEylB,EAAF,yBAAWkB,EAAX,oBAAqCC,GAAwB5mB,EACnE,OACI,gBAAC,WAAQ,CAAC+F,UAAU,mCAAmC8gB,QAASD,GAC5D,gBAAC,OAAI,iBAAKD,GACLxB,EAAqBnlB,EAAM4lB,QAoB5C,SAAmC5lB,EAAyB8lB,GACxD,MAAM,mCACFC,EADE,YAEFG,EAFE,WAGFC,EAHE,KAIFve,EAJE,aAKFwe,GAAiBpmB,EAErB,GAAI+lB,EAAoC,CACpC,MAAMM,EAAmB,IAAW,oBAAqBN,EAAmChgB,UAAW+f,EAAkB,iBAAmB,mBAE5I,GAAIM,EACA,OACI,gBAAC,SAAM,CACHrgB,UAAWsgB,EAAkBzO,UAAU,yBAAyBC,WAAW,0BAC3EC,eAAe,MAAMH,iBAAkBoN,EAAmBnd,EAAKod,qBAC/D,6BACMoB,GAAeA,EAAaviB,IAAKyiB,GAA0BA,GAC5DJ,IAIV,GAAIC,EACP,OACI,gBAAC,OAAI,iBAAKJ,EAAkC,CAAEhgB,UAAWsgB,IACpDF,GAKjB,OAAO,KAjDMW,CAA0B9mB,GAAO,GAChCA,EAAM+mB,mBACP/mB,EAAM0mB,aAEX,gBAAC,OAAI,iBAAKjB,IACTN,EAAqBnlB,EAAMgnB,UApBvBC,CAAoBjnB,GACrB,gBAAC,OAAI,CAAC+F,UAAU,2BACXof,EAAqBnlB,EAAMgnB,c,8YChBzC,MAAME,EAAgD,IAAD,IAAC,sBACzD3E,EADyD,QAEzDC,EAFyD,UAGzDC,EAHyD,YAIzDE,EAJyD,MAKzDnb,EALyD,OAMzDob,EANyD,mBAOzDC,EAPyD,YAQzDH,EARyD,eASzDyE,GATwD,SAWxD,gBAAC,OAAI,iBAAK5E,GACLG,EACAyE,EACA3E,EACAC,EACAE,EACAnb,EACAob,EACAC,IAIIuE,EAAmC,IAAD,IAAC,eAAEC,EAAF,UAAkB7D,EAAlB,eAA6B8D,GAA9B,SAC3C,gBAAC,OAAI,iBAAKD,GACL7D,EACA8D,IAIIC,EAA2C,IAAD,IAAC,cAAExE,EAAF,QAAiB7R,EAAjB,MAA0B1J,EAA1B,aAAiC0b,EAAjC,mBAA+CsE,GAAhD,SACnD,gBAAC,OAAI,iBAAKzE,GACL7R,EACA1J,EACuB,eAAvBggB,EAAsCtE,EAAe,OAIjDuE,EAA2B,IAAD,IAAC,WAAErE,EAAF,SAAcC,EAAd,QAAwBJ,EAAxB,gBAAiCK,EAAjC,WAAkDC,EAAlD,0BAA8DmE,GAA/D,SACnC,gBAAC,OAAI,iBAAKtE,GACLC,GAAY,gBAACkE,EAAa,iBAAKlE,IAChC,gBAAC,OAAI,CAACtd,UAAU,2CACXwd,GACG,gBAAC,OAAI,iBAAKD,GACLC,EAAW1f,IAAI2f,GACZ,gBAAC,WAAc,CAACnb,IAAKmb,EAAU5b,KAAK4b,UAAUtU,QACT,SAAhCsU,EAAU5b,KAAK+f,cAA2BnE,EAAU5b,KAAKggB,SAAWpE,EAAUN,aAAe,KAC9F,gBAACkE,EAAS,iBAAK5D,KACbkE,GAA6BlE,EAAUqE,gBAKvDxE,EAASyE,cAAgB7E,EAC1BI,EAASyE,cACN,gBAAC,OAAI,iBAAKzE,EAAS0E,aACd9E,EACAI,EAAS2E,uBAOjBC,EAA6B,IAAD,IAAC,YAAEvE,EAAF,OAAeC,GAAhB,SACrC,gBAAC,OAAI,iBAAKD,GACLC,EAAO9f,IAAI,CAAC+f,EAAOna,IAChB,gBAACge,EAAK,eAACpf,IAAKoB,GAAWma,OAKtBsE,EAAyC,IAAD,IAAC,kBAAEC,EAAF,QAAqBjX,EAArB,SAA8BgM,EAA9B,SAAwCC,EAAxC,IAAkDC,EAAlD,YAAuDgL,EAAvD,aAAoEC,GAArE,SACjD,gBAAC,OAAI,iBAAKF,GACLjX,EACAgM,EACAC,EACAC,EACAgL,EACAC,IAIIC,EAAsC,IAAD,IAAC,oBAAEC,EAAF,MAAuBriB,EAAvB,QAA8BsiB,GAA/B,SAC9C,gBAAC,OAAI,iBAAKD,GACLriB,EACAsiB,IAIIC,EAAyB,IAAD,IAAC,UAAEC,EAAF,cAAaC,EAAb,oBAA4BC,EAA5B,cAAiDC,GAAlD,SACjC,gBAAC,OAAI,iBAAKH,GACLC,EACAC,EACAC,IA+BM,UA3B6C,IAUvD,IAVuD,YACxDxnB,EADwD,QAExD6P,EAFwD,MAGxDuT,EAHwD,QAIxDC,EAJwD,gBAKxDR,EALwD,aAMxD4E,EANwD,QAOxDC,EAPwD,KAQxDC,EARwD,OASxDrF,GACC,EACD,OACI,gBAAC,SAAM,iBAAKtiB,GACP6P,EACAuT,EACAC,EACAR,GAAmB,gBAACgD,EAAe,iBAAKhD,IACxCP,GAAU,gBAACsE,EAAM,iBAAKtE,IACvB,gBAAC,OAAI,CAAC5d,UAAU,6CACX+iB,GAAgB,gBAACZ,EAAY,iBAAKY,IAClCC,GAAW,gBAACT,EAAO,iBAAKS,KAE5BC,GAAQ,gBAACP,EAAI,iBAAKO","file":"static/js/4.d0cd35765dbd225a.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return (\n {noReviewsMessage}\n );\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n \n {state.reported ? props.headerSubmitted : props.header}\n \n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n \n );\n};\n\nexport default ReviewsListview;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Button, format, getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\ninterface IPromoCodeState {\n isCollapseOpen: boolean;\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.Component {\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n isCollapseOpen: false,\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
\n
\n {this.props.promoCodeHeadingText}\n
\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

\n {this.state.error}\n

\n {this._renderAppliedPromoCode(this.props)}\n
\n );\n }\n\n private readonly _onInputChange = (e: React.ChangeEvent) => {\n const error = e.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: e.target.value, error,\n canApply: !!e.target.value\n });\n };\n\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState || !cartState.cart) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState.addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(error => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const _onSubmit = (event: React.FormEvent) => {\n event.preventDefault(); this._applyPromotion(cartState);\n };\n const _applyPromotion = (event: React.MouseEvent) => {\n this._applyPromotion(cartState);\n };\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
\n
\n \n \n {promoCodeApplyButtonText}\n \n
\n
\n );\n };\n\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') || '';\n cartState.removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n\n };\n\n private readonly _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\n return;\n }\n let discountAmount = 0;\n for (const line of cartState.cart.CartLines) {\n if (line.DiscountLines) {\n for (const discountLine of line.DiscountLines) {\n if (discountLine.DiscountCode === code) {\n discountAmount += discountLine.DiscountCost!;\n }\n }\n }\n }\n return discountAmount * -1;\n };\n\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || props.cart.cart.Coupons.length === 0) {\n return;\n }\n\n const _removePromotion = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n const promoCodTotalDiscount = props.cart.cart.Coupons.reduce(\n (count: number, coupon: Coupon) => {\n return count + (this._calculateDiscount(coupon.Code || '', props.cart) || 0);\n },\n 0);\n\n return (\n <>\n
\n
\n {this.props.appliedPromoCodeHeadingText}\n
\n \n
\n {\n props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code) : '';\n\n return (\n
\n
\n {coupon.Code}\n {' '}\n (\n \n )\n
\n \n {props.removePromoText}\n \n
\n );\n })\n }\n \n );\n };\n}\n\nexport default PromoCode;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { IComponentProps, IGridSettings, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ChannelDeliveryOptionConfiguration, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { CartLine, DiscountLine, DiscountLineType, SalesLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions, getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, IncrementalQuantity, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classNames from 'classnames';\nimport * as React from 'react';\n\n/**\n * ICartlineResourceString: Interface for specifying the\n * resource strings that the component needs.\n */\nexport interface ICartlineResourceString {\n\n /** Display string for discount label */\n discountStringText: string;\n\n /** String for size key */\n sizeString: string;\n\n /** String for color key */\n colorString: string;\n\n /** String associated with the configuration product dimension */\n configString: string;\n\n /** String for style key */\n styleString: string;\n\n /** String for amount key */\n amountString?: string;\n\n /** Display string for quantity label */\n quantityDisplayString: string;\n\n /** Display string for quantity label */\n inputQuantityAriaLabel: string;\n\n /** Aria label for the decrement button in quantity component */\n decrementButtonAriaLabel: string;\n\n /** Aria label for the increment button in quantity component */\n incrementButtonAriaLabel: string;\n\n /** Original text screenreader */\n originalPriceText: string;\n\n /** Current text screenreader */\n currentPriceText: string;\n\n /** Shipping Charges Text */\n shippingChargesText: string;\n}\n\ninterface ICartLineData {\n cartLine: CartLine | SalesLine;\n product: SimpleProduct;\n}\n\n/**\n * ICartLineProps: The props required to render cartLineitem.\n */\nexport interface ICartLineProps extends IComponentProps {\n\n /** The flag to change the quantity component from interactible to static */\n disableQuantityInteractivity?: boolean;\n\n /** The primary image url */\n primaryImageUrl?: string;\n\n /** The product url */\n productUrl?: string;\n\n /** GridSettings for the product image in cartLine */\n gridSettings: IGridSettings;\n\n /** ImageSettings for the product image in cartLine */\n imageSettings: IImageSettings;\n\n /** Boolean flag to indicate if the item is out of stock */\n isOutOfStock?: boolean;\n\n /** Flag to make quantity section editable */\n isQuantityEditable?: boolean;\n\n /** Max quantity for line item */\n maxQuantity?: number;\n\n /** Current quantity for line item */\n currentQuantity?: number;\n\n /** Resource string for the component */\n resources: ICartlineResourceString;\n\n /** SalesLine flag */\n isSalesLine?: boolean;\n\n /** Error message to show in place of quantity */\n errorMessage?: string;\n\n /** Inventory information label */\n inventoryInformationLabel?: string;\n\n /** Inventory information class name */\n inventoryLabelClassName?: string;\n\n /** Flag to show/hide shipping charges for line items */\n showShippingChargesForLineItems?: boolean;\n\n /** Boolean flag to indicate if cart state status is ready */\n isCartStateReady?: boolean;\n\n /** Chanel Delivery Option configuration is from api. */\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n\n /** The telemetry content */\n telemetryContent?: ITelemetryContent;\n\n /** Quantity onChange callback */\n quantityOnChange?(cartLine: CartLine, newQuantity: number): boolean;\n}\n\ninterface IDimensionStrings {\n\n /** String for size key */\n sizeString: string;\n\n /** String for color key */\n colorString: string;\n\n /** String associated with the configuration product dimension */\n configString: string;\n\n /** String for style key */\n styleString: string;\n\n /** String for amount key */\n amountString?: string;\n}\n\nconst CartLineItemFunctions = {\n renderProductDimensions: (Product: SimpleProduct, DimensionStrings: IDimensionStrings) => {\n if (!Product || !Product.Dimensions) {\n return [];\n }\n\n return Product.Dimensions.map(productDimension => {\n\n if (productDimension.DimensionTypeValue === 1) {\n return (\n
\n \n {DimensionStrings.colorString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 2) {\n return (\n
\n \n {DimensionStrings.configString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 3) {\n return (\n
\n \n {DimensionStrings.sizeString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 4) {\n return (\n
\n \n {Product.IsGiftCard ? DimensionStrings.amountString : DimensionStrings.styleString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n return null;\n });\n },\n\n renderDiscountLines: (props: ICartLineProps) => {\n\n if (!props.data.cartLine.DiscountLines || props.data.cartLine.DiscountLines.length === 0) {\n return null;\n }\n\n /**\n * Get the updated discount percentage.\n * @param discountLine - The discount line.\n * @param cartLine - The cart line.\n * @returns The updated discount percentage.\n */\n const discountPercent = (discountLine: DiscountLine, cartLine: CartLine): number => {\n const numberZero = 0;\n const decimalPrecision = 2;\n const fullPercentage = 100;\n let updatedPercent: number = discountLine.Percentage ?? numberZero;\n\n if ((discountLine.Percentage === numberZero ||\n (discountLine.DiscountLineTypeValue && discountLine.DiscountLineTypeValue === DiscountLineType.TenderTypeDiscount)) &&\n cartLine.Price && cartLine.Price > numberZero && cartLine.Quantity && cartLine.Quantity !== numberZero) {\n const effectiveAmount = discountLine.EffectiveAmount ?? numberZero;\n updatedPercent = Number(((effectiveAmount / (cartLine.Price * cartLine.Quantity)) * fullPercentage).toFixed(decimalPrecision));\n }\n\n return updatedPercent;\n };\n\n return props.data.cartLine.DiscountLines.map((discountLine, index) => {\n return (\n
\n \n {discountLine.OfferName ? discountLine.OfferName : ''}\n :\n {` ${props.resources.discountStringText || 'Discount'} `}\n \n \n \n \n \n {` (${discountLine.Percentage !== undefined ? discountPercent(discountLine, props.data.cartLine) : ''}%)`}\n \n
\n );\n });\n },\n renderInventoryLabel: (props: ICartLineProps) => {\n if (!props.inventoryInformationLabel) {\n return null;\n }\n const inventoryCssName = props.inventoryLabelClassName ? `msc-cart-line__product-inventory-label ${props.inventoryLabelClassName}` : 'msc-cart-line__product-inventory-label';\n return (\n \n {props.inventoryInformationLabel}\n \n );\n },\n renderShippingLabel: (props: ICartLineProps) => {\n const pickupDeliveryModeCode = props.context.request.channel?.PickupDeliveryModeCode;\n const channelDeliveryOptionConfig = props.channelDeliveryOptionConfig;\n const cartline = props.data.cartLine;\n let hasShippingMethod = false;\n if (channelDeliveryOptionConfig !== undefined) {\n hasShippingMethod = !!(cartline.DeliveryMode && channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.some(deliveryMode => deliveryMode !== cartline.DeliveryMode));\n } else {\n hasShippingMethod = !!(cartline.DeliveryMode && cartline.DeliveryMode !== pickupDeliveryModeCode);\n }\n if (!hasShippingMethod) {\n return undefined;\n }\n\n const shippingChargeLines = (cartline.ChargeLines || []).filter(chargeLine => chargeLine.IsShipping);\n\n if (shippingChargeLines.length === 0) {\n return undefined;\n }\n\n const freightFee = shippingChargeLines.reduce((chargeTotal, chargeLine) => {\n return chargeTotal + (chargeLine.CalculatedAmount || 0);\n }, 0);\n\n const priceComponent = (\n \n );\n return (\n <>\n \n \n {priceComponent}\n \n \n );\n },\n renderOtherCharges: (props: ICartLineProps) => {\n const cartline = props.data.cartLine;\n const otherCharges = cartline.ChargeLines?.filter((chargeline) => !chargeline.IsShipping);\n\n return otherCharges && otherCharges.map((otherCharge, key) => {\n return otherCharge && otherCharge.CalculatedAmount ? (\n
\n \n \n \n \n
\n ) : '';\n }) || undefined;\n }\n};\n\nconst CartLine: React.FC = (props: ICartLineProps) => {\n const { isSalesLine, productUrl, resources } = props;\n const { product, cartLine } = props.data;\n\n const destructDimensionStrings = {\n sizeString: resources.sizeString,\n colorString: resources.colorString,\n styleString: resources.styleString,\n configString: resources.configString,\n amountString: resources.amountString\n };\n\n const fallbackImageUrl = product && getFallbackImageUrl(product.ItemId, props.context.actionContext.requestContext.apiSettings);\n const productDimensions = product && CartLineItemFunctions.renderProductDimensions(product, destructDimensionStrings);\n const imageSettings = props.imageSettings;\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n const renderDisountLines = CartLineItemFunctions.renderDiscountLines(props);\n const renderInventoryLabel = CartLineItemFunctions.renderInventoryLabel(props);\n const renderShippingLabel = CartLineItemFunctions.renderShippingLabel(props);\n const renderOtherCharges = CartLineItemFunctions.renderOtherCharges(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, '', product?.RecordId.toString());\n const prodAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const productName = product?.Name || cartLine.Description;\n\n const onChange = (newValue: number): boolean => {\n if (props.quantityOnChange) {\n return props.quantityOnChange(props.data.cartLine, newValue);\n }\n return true;\n };\n\n const _generateErrorMessage = (): JSX.Element | null => {\n if (props.errorMessage) {\n return (\n
\n \n \n {props.errorMessage}\n \n
\n );\n }\n\n return null;\n };\n\n const _generateQuantityandPrice = (): JSX.Element[] | null => {\n const nodes = [];\n if (props.isOutOfStock) {\n const errorMessage = _generateErrorMessage();\n\n if (errorMessage) {\n return [errorMessage];\n }\n\n return null;\n }\n\n // No quantity selector for invoice line\n if (!props.data.cartLine.IsInvoiceLine) {\n if (props.isQuantityEditable) {\n nodes.push(\n
\n
\n {resources.quantityDisplayString}\n
\n\n {_generateErrorMessage()}\n\n \n
\n );\n } else {\n nodes.push(\n
\n \n\n {_generateErrorMessage()}\n\n \n {props.data.cartLine.Quantity}\n \n
\n );\n }\n }\n\n nodes.push(\n
\n \n {\n props.data.cartLine.DiscountAmount && props.data.cartLine.DiscountAmount > 0 &&\n <>\n \n {` ${props.resources.discountStringText || 'Discount'} `}\n \n \n ||\n null\n }\n
\n );\n\n return nodes;\n };\n\n return (\n
\n
\n \n
\n
\n
\n \n {productName}\n \n {ArrayExtensions.hasElements(productDimensions) ?
\n {productDimensions}\n
: ''}\n
\n \n
\n {renderDisountLines}\n {renderInventoryLabel}\n {props.showShippingChargesForLineItems &&
\n {renderShippingLabel}\n
}\n {renderOtherCharges}\n
\n {\n _generateQuantityandPrice()\n }\n
\n
\n );\n};\n\nexport default CartLine;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps,\n addToCart, addToOrderTemplate, addToWishlist,\n telemetryContent, configure, description, findInStore,\n quantity, price, title, rating, callbacks, state, resources, inventoryLabel, shopSimilarLook, keyInPrice,\n quantityLimitsMessages, max, shopSimilarDescription, unitOfMeasure } = props;\n\n return (\n \n \n {props.mediaGallery}\n \n \n {title}\n {price}\n {unitOfMeasure}\n {description}\n { _renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n { _renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n { _renderSocialShare(props.slots && props.slots?.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return (\n <>\n {textBlocks[0]}\n \n );\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return (\n <>\n {socialShare[0]}\n \n );\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return (\n \n {dropdowns.map(_renderConfigureDropdown)}\n \n );\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const {\n resources\n } = props;\n\n const\n {\n quantity\n } = state;\n\n const onChange = (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n };\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n \n {heading}\n \n {input}\n \n\n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Drawer, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[]|null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentWillUnmount(): void {\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return (\n <>\n {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData) => {\n return this._renderDrawerMenu(menuItem);\n })}\n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDrawerMenu(menuItem: IMenuItemData): JSX.Element | null {\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\n return (this._renderDrawer(menuItem));\n }\n return (this._renderLinkMenuItem(menuItem));\n\n }\n\n private _renderDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n return this._renderDrawerLink(menuSubItem);\n })}\n
\n \n );\n }\n\n private _renderLinkText(linkText: string | undefined): JSX.Element {\n return (\n <>\n {linkText}\n \n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return (\n this._renderLinkMenuItem(item)\n );\n } else if (item && item.linkText && !item.linkURL) {\n return (\n this._renderSpanMenuItem(item)\n );\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem && menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}\n {' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id));\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return (this._renderLinkMenuItem(menuItemData, menuItemData.id, false));\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return (this._renderSpanMenuItem(menuItemData));\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = (option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option)\n );\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1);\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n { menuItem }\n { subMenu }\n \n );\n });\n return (this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu));\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n { option.linkText }\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n { option.linkText }\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n { linkText }\n \n );\n }\n return null;\n\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n { option.linkText }\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay = !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 && 'navmenu-multi-level')}>\n { menuOptions }\n \n {\n categoryImageDisplay && this.state.categoryImage && this.state.categoryImage.map(item => (\n \n { this.state.categoryImage && this._getCategoryImage(item?.src ?? '', item.altText!.toString()) }\n { promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n ))\n }\n \n );\n }\n\n private readonly _updateCategoryImage=(categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n promotionalImage.push({ src: imageSrc, altText: item.text, additionalProperties: { linkUrl: item.linkUrl.destinationUrl } });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n private readonly _handleClickOutside = (event: any) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\n }\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\n }\n }\n\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n\n if (event.keyCode === this.escapeKey) {\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage=(categoryImage: string, alttext: string): React.ReactNode|null => {\n\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n ICartlinesViewProps,\n ICartResources,\n ICartViewProps,\n IOrderSummaryErrors\n} from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { Button, getPayloadObject, getTelemetryAttributes, INodeProps, ITelemetryContent, Node, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? _renderCartLinesGroup(props, props.resources) : \n {_renderCartlines(props.cartlines, props.resources, props.storeSelector, props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus,\n props.cartDataResult, props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n }\n {props.orderSummaryHeading &&\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props) : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n }\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n\n \n );\n\n};\n\nconst _renderCartlines = (cartLines: ICartlinesViewProps[] | undefined, resources: ICartResources, storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode, waitingComponent: React.ReactNode, cartLoadingStatus: string, cartDataResult: boolean,\n telemetryContent?: ITelemetryContent, mulitplePickUp?: boolean, emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\n\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return (<>\n {cartLoadingStatus}\n );\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {\n mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ))\n }\n
\n );\n });\n }\n return (cartDataResult ? (\n
\n

\n {emptyCartText}\n

\n {backToShoppingButton}\n
\n ) : <>\n {waitingComponent}\n \n );\n\n};\n\nconst _renderBOPISBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { shipInsteadDisplayText, shipToAddressDisplayText, pickItUpDisplayText, pickUpAtStoreWithLocationText, changeStoreDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n const toggleBopis = (event: React.MouseEvent) => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n };\n const changeStore = (event: React.MouseEvent) => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n };\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? \n {pickUpAtStoreWithLocationText}\n : \n {shipToAddressDisplayText}\n }\n
\n {\n isBopisSelected &&\n
\n \n {cartLine.pickUpInStore.orgUnitName}\n \n \n {changeStoreDisplayText}\n \n
\n }\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (orderSummaryLines: IOrderSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (invoiceSummaryLines: IInvoiceSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n { props.cartLinesGroup?.map(cartlines => {\n return (
\n {_renderCartLinesGroupHeader(cartlines[0], props.storeSelector, resources, _countItems(cartlines), props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n {_renderCartlines(cartlines, props.resources, props.storeSelector, props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult,\n props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n
);\n })}\n
\n );\n }\n return (props.cartDataResult ? (\n
\n
\n

\n {props.resources.emptyCartText}\n

\n {props.backToShoppingButton}\n
\n
\n ) : <>\n {props.waitingComponent}\n \n );\n\n};\nconst _renderCartLinesGroupHeader = (cartLine: ICartlinesViewProps, storeSelector: React.ReactNode | undefined, resources: ICartResources, count: number, emailDeliveryModeCode?: string) => {\n const isBopisSelected = cartLine?.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n\n return (\n <>\n
\n

\n

\n {groupTitle}\n

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n const toggleBopis = (event: React.MouseEvent) => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n };\n const changeStore = (event: React.MouseEvent) => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n };\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? : null }\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine?.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ?

\n {cartLine?.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine?.pickUpInStore?.orgUnitName}\n

: null}\n

\n (\n {count}\n {' '}\n {suffix}\n )\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISearchResultModalViewProps, ISortByViewProps, ITitleViewProps } from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const { SearchResultContainer, products, pagination, ProductsContainer, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps,\n refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions)}\n \n {similarLookProduct}\n \n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy &&\n \n {renderCategoryHierarchy(categoryHierarchy)}\n }\n \n {refineMenu && renderRefiner(refineMenu)}\n \n \n {similarLookProduct}\n \n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n\n};\n\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element => {\n return React.cloneElement(modalProps.modal, {}, modalProps.modalHeader, createModalBody(modalProps, refineMenu, sortByDropDown), modalProps.modalFooter);\n};\n\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n \n {submenu}\n \n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown) {\n return (\n \n {sortByDropDown}\n \n );\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

\n {title.titlePrefix}\n {title.titleText}\n (\n {title.titleCount}\n )\n

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.salesLine}\n \n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink }) => (\n \n {orderInfomation && }\n {groups && }\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n <>\n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n \n {_renderReactFragment(props.menuBar)}\n \n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n { props.wishListIconMobile }\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return (\n <>\n {customer ? customer.FirstName || customer.Name : ''}\n \n );\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n signOutLink,\n signInLink,\n data,\n accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n\n if (accountLinks) {\n return (\n \n
\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0 ? items.map((slot: React.ReactNode, index: number) => {\n return (\n {slot}\n );\n }) : null}\n \n );\n}\n\nexport default headerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\n \n {salesLine}\n {buyAgainButton}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count, trackingInfo, shippedStatusCheck }) => (\n \n {heading}\n {count}\n {shippedStatusCheck === 'processing' ? trackingInfo : null}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n"],"sourceRoot":""}