{"version":3,"sources":["webpack:///src/modules/business-sign-up/components/sign-up-button.tsx?37a3","webpack:///src/modules/business-sign-up/components/sign-up-error.tsx?fbb9","webpack:///src/modules/business-sign-up/components/sign-up-input.tsx?4011","webpack:///src/modules/business-sign-up/components/sign-up-label.tsx?2025","webpack:///src/modules/business-sign-up/business-sign-up.tsx?df21","webpack:///./src/themes/gardner-theme/views/invoices-list.view.tsx?057a","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","webpack:///./src/themes/gardner-theme-b2c/views/checkout-order-confirmation.view.tsx?761d","webpack:///src/modules/back-top-footer/back-top-footer.tsx?0e13","webpack:///src/modules/footer-category/footer-category.tsx?b7b8","webpack:///src/modules/adventureworks/views/components/carticon.component.tsx?3d75","webpack:///src/modules/adventureworks/views/components/promocode.component.tsx?6e07","webpack:///./src/themes/gardner-theme/views/checkout.view.tsx?8fc7","webpack:///./src/themes/gardner-theme/views/media-gallery.view.tsx?70ec","webpack:///src/modules/fabrikam/views/navigation-menu.view.tsx?5991","webpack:///src/modules/subscribe/subscribe.view.tsx?c40a","webpack:///./src/themes/gardner-theme-b2c/views/b2b-requests-status.view.tsx?1104","webpack:///./src/themes/gardner-theme/views/components/OrderConfirmationDetail.tsx?6fd7","webpack:///./src/themes/gardner-theme/views/checkout-order-confirmation.view.tsx?de6a","webpack:///src/modules/fabrikam/views/search-result-container.view.tsx?f8ea","webpack:///src/modules/adventureworks/views/content-block.view.tsx?ebaa","webpack:///src/modules/tab/tab.tsx?d713","webpack:///src/modules/business-sign-up/business-sign-up.view.tsx?578b","webpack:///src/modules/business-partners/business-partners.view.tsx?677a","webpack:///src/modules/footer-category/footer-category.view.tsx?26a5","webpack:///./src/themes/gardner-theme-b2c/views/media-gallery.view.tsx?008f","webpack:///./src/themes/gardner-theme-b2c/views/invoices-list.view.tsx?c86d","webpack:///src/modules/subscribe/subscribe.tsx?0278","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///src/modules/fabrikam/views/header.view.tsx?1cde","webpack:///./src/modules/cart-line-comment/cart-line-comment.view.tsx?5b01","webpack:///./src/themes/gardner-theme/views/components/line-pagination.tsx?b2dd","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///src/modules/tile-list-item/tile-list-item.view.tsx?0144","webpack:///src/modules/product-comparison-button/product-comparison-button.tsx?934c","webpack:///./src/modules/order-level-comment/order-level-comment.view.tsx?50e4","webpack:///src/modules/business-partners/components/search-bar.tsx?cefc","webpack:///src/modules/business-partners/components/data-grid.tsx?933a","webpack:///src/modules/business-partners/components/business-partner-users-table.tsx?5b50","webpack:///src/modules/business-partners/components/business-partners-table.tsx?108c","webpack:///src/modules/business-partners/business-partners.tsx?9aa8","webpack:///./src/themes/gardner-theme/views/checkout-shipping-address.view.tsx?2ec0","webpack:///./src/modules/order-level-comment/order-level-comment.tsx?3e3e","webpack:///src/modules/tile-list-item/components/links.tsx?e54f","webpack:///src/modules/tile-list-item/tile-list-item.tsx?99bb","webpack:///src/modules/product-comparison-button/product-comparison-button.view.tsx?68cc","webpack:///./src/themes/gardner-theme-b2c/views/checkout.view.tsx?6760","webpack:///./src/themes/gardner-theme/views/b2b-requests-status.view.tsx?1807","webpack:///./src/themes/gardner-theme/views/checkout-section-container.view.tsx?30c1","webpack:///./src/modules/cart-line-comment/cart-line-comment.tsx?d920","webpack:///src/modules/adventureworks/views/footer-item.view.tsx?9747"],"names":["SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","InputType","TextArea","name","undefined","ref","SignUpLabel","forId","htmlFor","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","map","element","index","label","maxChars","customClass","baseSignUpItem","wrapper","errorMessage","Address","isAddressInput","input","updateForm","hasError","resetAddress","splice","BusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","FirstName","Text","resources","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","moduleClassName","needsToReset","handleHeadingChange","event","config","heading","target","_onInputChange","newForm","state","formItems","forEach","item","setState","isReady","_isFormReady","hasSubmitErrors","_onAddressChange","errors","currentAddress","addressItem","find","address","addressHasErrors","showAddressErrors","currentInput","match","_onSubmit","preventDefault","context","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","newPartner","CompanySize","Comments","createProspectAsync","callerContext","actionContext","then","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","window","location","catch","_onCancel","cleanForm","isAddress","arguments","length","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","current","focus","shouldComponentUpdate","nextProps","nextState","data","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","addressSlot","form","FormWrapper","items","buttons","key","disclaimer","RichTextComponent","newFormFields","InvoiceListView","header","filter","content","invoiceRequestModal","pagination","MsDyn365","isBrowser","linksElements","document","querySelectorAll","console","log","l","setAttribute","Module","_renderTabItemContent","TabItemView","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","Node","tabItemContent","TabHeader","OrderConfirmationOrderInfomation","orderInformationProps","OrderConfirmationSalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","OrderConfirmationGroupDelivery","_ref3","deliveryProps","count","processing","pickupDateTimeslot","trackingInfo","OrderConfirmationGroup","_ref4","groupProps","delivery","salesLinesProps","salesLines","LineId","OrderConfirmationGroups","_ref5","groupsProps","groups","group","OrderConfirmationOrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","OrderConfirmationPayment","_ref7","paymentMethodsProps","title","methods","OrderConfirmationHelp","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderConfirmationView","_ref9","backToShoppingLink","alert","loading","orderSummary","payment","help","BackTopFooter","backtoTopText","destination","BackToTop","error","FooterCategory","viewprops","categories","FooterList","tag","FooterListItem","CartIcon","observer","cartLabel","cartQtyLabel","cart","cartItem","totalItemsInCart","qtyLabel","format","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","promoCode","result","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","promoPlaceholderText","promoCodeApplyButtonText","onSubmit","placeholder","_removePromotion","_event$currentTarget$","code","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","ArrayExtensions","hasElements","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","Code","TelemetryConstant","ApplyPromoCode","promoCodeHeadingText","PickUpAtStoreComponent","PickUpAtStore","EmailDeliveryComponent","EmailDelivery","LineItemComponent","LineItem","pickUpAtStore","emailDelivery","LineItemGroupComponent","LineItemDeliveryGroup","LineItemList","lineItems","numItems","prev","next","pageLength","paginatedView","setPaginatedView","slice","paginationPage","setPaginationPage","nextPage","changePage","prevPage","page","skip","lineItem","LinePagination","currentPage","numPages","Math","ceil","LineItemGroupComponentWithMultiplePickUp","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","PickUpAtStoreComponentWithMultiplePickUp","LineItemsComponent","LineItems","Header","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","lineItemGroupComponentExt","OrderSummaryComponent","lines","otherChargesLines","otherCharge","loyalty","giftCard","orderTotal","PaymentSummaryComponent","_ref10","invoices","CheckoutView","_props$data$checkout$","_props$data$checkout$5","_props$data$customerI","attributeArr","checkout","checkoutCart","AttributeValues","getShipCompleteIndex","_props$data$checkout$2","findIndex","attribute","Name","getShipCompleteValue","shipCompleteIndex","attr","Value","saveShipCompleteToCart","async","checkoutState","updateCart","newCartObject","setShipCompleteOnCheckout","shipCompleteOnCheckout","shipCompleteOnCheckoutToggle","_renderShipOnCheckout","handleShipCompleteOnCheckoutChange","shipCompleteOnCheckoutLabel","_props$data$checkout$4","shipComplete","idx","push","canShow","checkoutProps","headerProps","hasSalesOrder","hasInvoiceLine","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","guidedForm","invoicePaymentSummary","placeOrderButton","termsAndConditions","keepShoppingButton","chargelines","chargeCodes","currencyFormatter","ChargeLines","linesNode","c","node","line","ChargeCode","chargeCode","r","_r$CalculatedAmount$t","_r$CalculatedAmount","chargeLineLabel","CalculatedAmount","toString","chargeLinesBreakdown","cultureFormatter","formatCurrency","orderSummaryExtended","isAccountBlocked","customerInformation","Blocked","lineItemsExt","paginationPrev","paginationNext","accountLockedMessage","_renderOrderComment","commentHeading","commentString","emptyStringClassName","commentHeadingText","_props$data$checkout$3","getCommentText","renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","createElement","GetEmptyThumbnailItemComponent","imageSettings","_props$config$thumbna2","tabIndex","Image","src","gridSettings","thumbnailImageSettings","loadFailureBehavior","defaultThumbnailImageSettings","viewports","xs","q","w","h","xl","lazyload","cropFocalRegion","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","Thumbnails","mediaGalleryItems","altText","getMediaGalleryItems","lastUpdate","GetThumbnailItemComponent","image","imageId","modifiedActiveIndex","_props$config$thumbna","_props$callbackToggle","_props$callbackThumbn","callbackToggle","call","callbackThumbnailClick","activeIndex","handleKeyDown","keyCode","KeyCodes","Enter","onKeyDown","fullScreenTitleText","mediaGalleryView","CarouselProps","MediaGallery","Modal","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","linkText","promotionalImage","promotionalContent","imageSrc","promotionalItemImageSettings","additionalProperties","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","_getCategoryImage","categoryImageUrl","generateImageUrl","apiSettings","defaultImageSettings","sm","md","lg","_categoryImage$imageS","ImageData","categoryImageSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","isOpen","bind","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","keys","isDrawerOpen","colProps","Drawer","toggleButtonProps","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","isParent","Link","imagesource","contentAction","etext","shouldOpenNewTab","onMouseOver","onTelemetryClick","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","subscribe","subscribeContainer","subscribeForm","emailInput","submitButton","submitButtonLabelText","B2bRequestsStatusView","_props$data$operation","b2bRequestsStatus","table","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","OrderConfirmationDetail","_salesOrder$ShippingA","_salesOrder$ShippingA2","_salesOrder$SalesLine","salesOrder","customer","deliveryMode","orderedProducts","s","print","TextValue","formatDate","CreatedDateTime","year","month","day","AccountNumber","ShippingAddress","FullAddress","SalesLines","so","LineNumber","ItemId","itemId","_orderedProducts$find","p","Description","Fragment","Price","Quantity","TotalAmount","_rest$data$checkout$r","_rest$data$checkout$r2","rest","_objectWithoutProperties","_excluded","dlvMode","setDlvMode","sessionStorage","getItem","removeItem","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","modalHeader","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainerView","_props$context$action","SearchResultContainer","products","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","links","contentBlockView","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","Tab","tabIndexQuery","_refHandler","activeLink","_onClick","e","activeTabState","activeContentIndex","tabId","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","split","_getTabHeader","_getTabContent","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","params","isEditor","dataActionTabId","selected","contentID","getContentID","isSelected","itemIndex","paramName","paramValue","url","URL","requestUrl","URLSearchParams","search","set","decodeURIComponent","__decorate","BusinessSignUpItem","BusinesSignUpView","button","businessPartnersView","selectedBusinessPartnerUser","businessPartnersProps","businessPartnersHeading","catalogLoadingIndicator","catalogLoadingErrorMessage","cookieConsentNotGivenErrorMessage","backToBusinessPartnersLink","businessPartnersTable","businessPartnerUsersTable","FooterCategoryView","Subscribe","handleTextChange","handleParagraphChange","paragraph","_emailAddressInputRef","_heading$tag","subscribeParagraph","Msdyn365","subscribeHeading","handleText","subscribeFormAriaLabel","autoComplete","subscribeFormEmailAriaLabel","subscribeEmailPlaceholderText","subscribeFormSubmitAriaLabel","subscribeButtonLabel","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","renderCustomerName","accountInformation","_renderReactFragment","slot","headerView","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","staticDisplay","cartLineCommentModuleProps","tabView","TileListItemViewComponent","tileListItem","backgroundImage","thumbnailImage","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","renderTileListItemContent","ProductComparisonButton","PureComponent","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","product","RecordId","catalogId","ProductComparisonState","instance","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","productComparisonPreview","onClickHandler","isDisabled","ObjectExtensions","isNullOrUndefined","_this$props$data$acco4","listModifiedEvent","instanceId","handler","getSnapshotBeforeUpdate","previousProps","_this$props$data$acco5","unsubscribe","cookies","isConsentGiven","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","variant","VariantType","Browser","app","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","orderLevelCommentModuleProps","SearchBar","Component","onSearchTextChange","ev","searchText","onSearch","handleKeyUp","searchPlaceholderLabel","onKeyUp","DataGrid","renderGridHeader","rowClassName","columns","column","reactKey","renderGridRow","_column$onRender","_column$onClick","fieldName","onRender","loadDataInternal","user","isAuthenticated","loadData","isLoading","_e$data","LocalizedMessage","genericErrorMessage","paging","loadMore","sortData","sorting","ascending","sort","item1","item2","value1","value2","toLowerCase","compareResult","filterData","isSearchable","columnValue","getDataToDisplay","itemsCount","pageSize","hasMore","defaultSorting","Alert","color","loadingLabel","businessPartnerLoadMore","noDataMessage","BusinessPartnerUsersTable","getColumns","isMobileDevice","Viewport","businessUserTableNameHeadingText","onSelect","businessUserTableEmailHeadingText","businessUserTableSpendingLimitHeadingText","getBusinessPartnerUsers","BusinessPartnersDataActions","getUsersAsync","bypassCache","queryResultSettings","businessPartner","BusinessPartnerId","StatusValue","spendingLimit","SpendingLimit","businessUserTableSpendingLimitZeroHoverText","businessPartnerSearchCustomer","BusinessPartnersTable","businessPartnerName","getBusinessPartners","getManagedBusinessPartnersAsync","businessPartnerSearchCompany","BusinessPartners","onSelectBusinessPartner","selectedBusinessPartner","onSelectBusinessPartnerUser","businessPartnerUser","setAccountSelectionCookie","getCustomerDefaultCatalogId","validateCatalogId","homeUrl","fullUrl","searchParams","removeAccountSelectionCookie","isLoadingCatalog","channelId","_productCatalogs$","productCatalogs","CatalogsDataActions","getCatalogsAsync","loadCatalogErrorMessage","classname","cookieConsentRequiredMessage","AddressShow","AddressDetail","description","AddressSelect","SelectAddress","addButton","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","SelectItem","showItems","AddressAddUpdate","AddressForm","AddressItem","AddressError","CheckoutShippingAddressView","CheckoutShippingAddress","viewState","showAddress","showAddressSelect","showAddOrUpdateAddress","cartLineImages","shippingAddress","nonEligibleItems","setnonEligibleItems","checkEligibilityForShippingAddress","moduleState","setHasError","notEligibleList","_cart$CartLines","itemIds","CartLines","cl","addressCountry","ThreeLetterISORegionName","addressState","State","addressRegion","County","GetProductEligibilityInput","Id","eligibilityData","GetProductEligibilityAction","_getExtensionPropertyValueByKey","properties","valueType","_properties$find","property","Key","ExtensionProperties","CommercePropertyValueEnum","string","IsEligible","removeIneligibleItems","badCartLines","includes","removeCartLines","cartLineIds","reload","getCartLineFromItemId","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","OrderLevelComment","_props$data$cart$resu","_maxCommentLength","_updateOrderLevelComment","dummyCart","comment","isCommentAreaActive","_updateCommentState","_resetCommentToProps","_toggleCommentAreaActive","prevState","_renderStaticCommentDisplay","_this$props$data$cart","commentLinkText","editLinkText","_getCommentPreview","_renderCommentLink","_this$props$data$cart2","substring","_renderSaveButton","saveButtonText","_renderCancelButton","_renderTextArea","textAreaLabel","charactersRemaining","_getFieldId","_renderButtonArea","_renderModal","toggle","ModalHeader","_getModalTitle","ModalFooter","commentModalTitle","children","TileListLinks","_mapEditableLinks","linkdata","editableLinks","editableLink","openInNewTab","onTextChange","TileListItem","_telemetryContent","handleLinkTextChange","linkIndex","_this$props$config$li","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","ProductComparisonButtonViewFunctionalComponent","totalDiscounts","ItemComponent","itemProps","CheckoutSectionContainerView","checkoutPlainContainerProps","CartLineComment","_updateCartLineComment","_dummyCart$CartLines","cartLineToUpdate","cartLineId","updateCartLineQuantity","newQuantity","replace","cartProductTitle","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink"],"mappings":";wYAmBO,MAAMA,EAAqDC,IAS7D,IAT8D,GAC/DC,EAAE,UACFC,EAAS,KACTC,EAAI,UACJC,EAAS,iBACTC,EAAgB,SAChBC,EAAQ,KACRC,EAAI,QACJC,GACHR,EACG,MAAMS,EAAUC,2BAAiB,QAASL,EAAkBF,GACtDQ,EAAaC,iCAAuBP,EAAkBI,GAC5D,OACII,gBAACC,SAAMC,OAAAC,OAAA,CACHf,GAAIA,EACJC,UAAWA,EAAS,aACRE,EACZE,SAAUA,EACVE,QAASA,EACTS,KAAK,SAAQ,gBACEX,EACfY,KAAMX,GACFI,GAEHR,IC5BN,MAAMgB,EAAmDnB,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EACtG,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,gBAAA,OACIZ,GAAIA,EACJC,UAAWqB,IAAWD,EAAgB,QAAYF,EAAH,SAC/CH,KAAK,QAAO,YACF,YAAW,aACV,oHAEXJ,gBAAA,KAAGX,UAAcoB,EAAH,SAA2BD,KCIrD,MAAMG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IAONI,EAAmD9B,IAU3D,IAV4D,GAC7DC,EAAE,KACFmB,EAAI,MACJW,EAAK,QACLC,EAAO,UACP9B,EAAS,UACTuB,EAAS,WACTQ,EAAU,SACVC,EAAQ,eACRC,GACHnC,EACG,OAAIoB,IAASgB,EAAUC,SAEfxB,gBAAA,YACIZ,GAAIA,EACJqC,KAAMrC,EACN8B,MAAOA,EACP7B,UAAW,GAAGA,gBAAwBA,KAAaD,IAAI,gBACxCgC,EACfR,UAAWD,EAAaC,GACxBS,SAAUA,IAMlBrB,gBAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC9BN,EACfR,UAAWD,EAAaC,GACxBS,SAAUA,EACVM,IAAKL,KC9DV,MAAMM,EAAmDzC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OAC3Fa,gBAAA,SAAOZ,GAAOA,EAAH,SAAeC,UAAcA,EAAH,SAAsByC,QAASD,GAC/DvC,IAIMsC,IC+CHL,EAQAQ,E,0kBARZ,SAAYR,GAERA,EAAA,YACAA,EAAA,kBACAA,EAAA,cACAA,EAAA,oBALJ,CAAYA,MAAS,KAQrB,SAAYQ,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,qBACAA,EAAA,0BACAA,EAAA,yBACAA,EAAA,oBACAA,EAAA,mBACAA,EAAA,wBACAA,EAAA,kBATJ,CAAYA,MAAO,KAYZ,MAAMC,EAAqBA,CAC9BC,EACA5C,EACA6C,EACAC,EACAC,EACAC,EACAC,IAEOL,EAAOM,IAAI,CAACC,EAASC,KACxB,MAAM,GAAErD,EAAE,KAAEmB,EAAI,MAAEmC,EAAK,SAAEC,EAAQ,WAAEvB,EAAU,QAAED,EAAO,YAAEyB,EAAW,MAAE1B,EAAK,eAAEI,GAAmBkB,EAEzFK,EAAsC,CACxCC,QAAS,CACLzD,UAAWqB,IAAWrB,EAAW,GAAGA,KAAaD,IAAMwD,IAE3DxD,KACAsD,MAAO1C,gBAAC4B,EAAW1B,OAAAC,OAAA,GAAK,CAAEf,KAAIyC,MAAOzC,EAAIC,YAAWC,KAAMoD,KAC1DK,aAAc/C,gBAACM,EAAWJ,OAAAC,OAAA,GAAK,CAAEd,YAAWkB,KAAM,WAsCtD,OAnCIA,IAASgB,EAAUyB,QACfX,GACAQ,EAAeI,gBAAiB,EAChCJ,EAAeK,MACXlD,2BAAA,KACKA,eAAmBqC,EAAmC,CACnDc,WAAYb,EACZc,SAAUhB,EACVhB,gBAA2BM,IAAfN,GAAmCA,EAC/CiC,aAAcnB,MAM1BD,EAAOqB,OAAOb,EAAO,GAGzBI,EAAeK,MACXlD,gBAACiB,EAAWf,OAAAC,OAAA,GACJ,CACAf,KACAmB,OACAW,QACAN,UAAW+B,EACXxB,UACA9B,YACA+B,gBAA2BM,IAAfN,GAAmCA,EAC/CC,SAAUc,EACVb,oBAMTuB,IAUf,MAAMU,UAAuBvD,YAsFzBwD,YAAYC,GAAmC,IAAAC,EAC3CC,MAAMF,GAAMC,EAAAE,KArFT,KAAAC,4BAA2C,CAC9C,CACIzE,GAAI2C,EAAQ+B,UACZvD,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUC,eAC5B/C,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQmC,SACZ3D,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUG,cAC5BjD,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQqC,MACZ7D,KAAMgB,EAAU6C,MAChB1B,MAAOkB,KAAKH,MAAMO,UAAUK,kBAC5BnD,MAAO,GACPE,YAAY,EACZD,QAASmD,aAAWC,aAAaC,OACjC5B,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ0C,YACZlE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUU,aAC5BxD,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ4C,WACZpE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUY,gBAC5B1D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ8C,SACZtE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUc,cAC5B5D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQgD,KACZxE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUgB,iBAC5B9D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQiB,QACZzC,KAAMgB,EAAUyB,QAChBN,MAAOkB,KAAKH,MAAMO,UAAUiB,oBAC5B/D,MAAO,GACPE,YAAY,EACZwB,YAAa,aAEjB,CACIxD,GAAI2C,EAAQmD,QACZ3E,KAAMgB,EAAUC,SAChBkB,MAAOkB,KAAKH,MAAMO,UAAUmB,aAC5BjE,MAAO,GACPE,YAAY,EACZwB,YAAa,cAIJ,KAAAwC,mBAAwDpF,cAExD,KAAAqF,gBAA0B,sBAEnC,KAAAC,cAAwB,EAgEzB,KAAAC,oBAAuBC,IAC1B5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,OAoEjC,KAAA0E,eAAkBJ,IAC/B,MAAMK,EAAUjC,KAAKkC,MAAMC,UAC3BF,EAAQG,QAAQC,IACRA,EAAK7G,KAAOoG,EAAMG,OAAOvG,KACzB6G,EAAK/E,MAAQsE,EAAMG,OAAOzE,SAKlC0C,KAAKsC,SAAS,CACVC,QAASvC,KAAKwC,eACdL,UAAWF,EACXQ,iBAAiB,KAUR,KAAAC,iBAAmB,CAACC,EAAiBC,KAElD,MAAMX,EAAUjC,KAAKkC,MAAMC,UACrBU,EAAcZ,EAAQa,KAAKT,GACtBA,EAAK1F,OAASgB,EAAUyB,SAI/ByD,IACAA,EAAYE,QAAUH,EAGtB5C,KAAKsC,SACD,CACIH,UAAWF,EACXe,iBAAkBL,EAClBM,mBAAmB,GAEvB,KACIjD,KAAKsC,SAAS,CAAEC,QAASvC,KAAKwC,qBAM7B,KAAAA,aAAe,KAC5B,MAAM,UAAEL,GAAcnC,KAAKkC,MAE3B,IAAK,MAAMgB,KAAgBf,EAAW,CAQlC,GAAIe,EAAa1F,WACb,GAAI0F,EAAavG,OAASgB,EAAUyB,SAChC,GAAIY,KAAKkC,MAAMc,iBACX,OAAO,OAER,QAA2BlF,IAAvBoF,EAAa5F,OAA8C,KAAvB4F,EAAa5F,MACxD,OAAO,EAGf,QAA6BQ,IAAzBoF,EAAa3F,SAA4E,OAAnD2F,EAAa5F,MAAM6F,MAAMD,EAAa3F,SAC5E,OAAO,EAIf,OAAO,GAGM,KAAA6F,UAAaxB,IAC1B,GAAI5B,KAAKkC,MAAMc,iBAMX,OALAhD,KAAKsC,SAAS,CACVW,mBAAmB,SAGvBrB,EAAMyB,iBAIV,MAAM,OAAExB,EAAM,QAAEyB,GAAYtD,KAAKH,MAG3B0D,EAAYvD,KAAKwD,SAASrF,EAAQ+B,WAClCuD,EAAWzD,KAAKwD,SAASrF,EAAQmC,UACjCoD,EAAc1D,KAAKwD,SAASrF,EAAQ0C,aACpC8C,EAAe3D,KAAKwD,SAASrF,EAAQqC,OACrCoD,EAAiB5D,KAAKwD,SAASrF,EAAQiB,SAAS,GAChDyE,EAAW7D,KAAKwD,SAASrF,EAAQ8C,UACjC6C,EAAa9D,KAAKwD,SAASrF,EAAQ4C,YACnCgD,EAAc/D,KAAKwD,SAASrF,EAAQgD,MACpC6C,EAAWhE,KAAKwD,SAASrF,EAAQmD,SAGnCqC,GAAgBA,EAAarG,OAASsG,GAAkBA,EAAeb,UACvEa,EAAeb,QAAQvC,MAAQmD,EAAarG,OAGhD,MAAM2G,EAAsC,CACxC/D,UAAWqD,GAAaA,EAAUjG,MAClCgD,SAAUmD,GAAYA,EAASnG,MAC/BuD,YAAa6C,GAAeA,EAAYpG,MACxC8B,QAASwE,GAAkBA,EAAeb,SAAWa,EAAeb,QACpE9B,SAAU4C,GAAYA,EAASvG,MAC/ByD,WAAY+C,GAAcA,EAAWxG,MACrC4G,YAAcH,GAAe7G,OAAOC,SAAS4G,EAAYzG,MAAO,KAAQ,EACxE6G,SAAUH,GAAYA,EAAS1G,OAGnC0C,KAAKsC,SAAS,CACVC,SAAS,IAIb6B,8BAAoB,CAAEC,cAAef,EAAQgB,eAAiBL,GACzDM,KAAK,KACF,MAAMC,EACD3C,EAAO4C,kBAAoB5C,EAAO4C,iBAAiBC,SAAW7C,EAAO4C,iBAAiBC,QAAQC,gBAC/FC,YAAW,OAAQ5E,KAAKH,MAAMyD,QAAQgB,gBACtC,GACJO,OAAOC,SAASrI,KAAO+H,IAE1BO,MAAM,KACH/E,KAAKsC,SAAS,CACVG,iBAAiB,OAKhB,KAAAuC,UAAY,KAEzB,MAAMC,EAAYjF,KAAKkC,MAAMC,UAC7B8C,EAAU7C,QAAQ9C,IACdA,EAAMhC,MAAQ,KAIlB0C,KAAK0B,cAAe,EAEpB1B,KAAKsC,SAAS,CACVC,SAAS,EACTJ,UAAW8C,EACXjC,kBAAkB,EAClBC,mBAAmB,EACnBR,iBAAiB,KAIR,KAAAe,SAAW,SAAChI,GAA0C,IAA9B0J,EAAAC,UAAAC,OAAA,QAAAtH,IAAAqH,UAAA,IAAAA,UAAA,GACrC,OAAID,EACOpF,EAAKoC,MAAMC,UAAUW,KAAKT,GACtBA,EAAK7G,KAAOA,GAAM6G,EAAKU,SAG/BjD,EAAKoC,MAAMC,UAAUW,KAAKT,GACtBA,EAAK7G,KAAOA,GAAqB,KAAf6G,EAAK/E,QA9RlC0C,KAAKkC,MAAQ,CACTK,SAAS,EACTJ,UAAWnC,KAAKH,MAAMsC,WAAanC,KAAKqF,kBACxCrC,kBAAkB,EAClBC,mBAAmB,EACnBR,iBAAiB,GAErBzC,KAAKpE,iBAAmB0J,6BACpBtF,KAAKH,MAAMyD,QAAQiC,QAAQC,kBAC3BxF,KAAKH,MAAM4F,aACXzF,KAAKH,MAAM6F,WAIZC,oBAAiB,IAAAC,EACW,QAA/BA,EAAA5F,KAAKwB,mBAAmBqE,eAAO,IAAAD,GAA/BA,EAAiCE,QAG9BC,sBAAsBC,EAAyCC,GAClE,OAAIjG,KAAKkC,QAAU+D,GAAajG,KAAKH,MAAMqG,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAEtE,GAAW7B,KAAKH,OAClB,UAAEsC,GAAcnC,KAAKkC,OACrB,UAAEzG,EAAS,QAAEqG,GAAYD,EAEzBuE,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbyG,eAAgB,CACZC,YAAavG,KAAKH,MAClBpE,UAAWqB,IAAWkD,KAAKyB,gBAAiBhG,IAEhD+K,iBAAkB,CACd/K,UAAcuE,KAAKyB,gBAAR,eAEfK,QACI1F,gBAAC+D,IAAI7D,OAAAC,OAAA,CACDd,UAAcuE,KAAKyB,gBAAR,aACPK,EAAO,CACX2E,UAAW,CAAEC,OAAQ1G,KAAK2B,oBAAqBgF,eAAgB3G,KAAKH,MAAMyD,QAAQiC,YAG1FqB,mBAAoB5G,KAAK6G,cACzB1E,cAGJ,OAAOnC,KAAKH,MAAMiH,WAAWV,GAWzBS,cACJ,MAAM,OAAEhF,EAAM,UAAEzB,EAAS,MAAE2G,GAAU/G,KAAKH,OACpC,kBAAEoD,EAAiB,gBAAER,EAAe,QAAEF,EAAO,UAAEJ,GAAcnC,KAAKkC,OAClE,sBACF8E,EAAqB,iBACrBC,EAAgB,sBAChBC,EAAqB,iBACrBC,EAAgB,aAChBhI,EAAY,2BACZiI,GACAhH,EACE3B,EAAesI,GAASA,EAAMM,aAAeN,EAAMM,YAAYjC,OAAS,GAAK2B,EAAMM,YAAY,SAAOvJ,EAEtGwJ,EAAO,CACTC,YAAa,CACT9L,UAAcuE,KAAKyB,gBAAR,WAEf+F,MAAOpJ,EACH+D,EACGnC,KAAKyB,gBAAR,cACAzB,KAAK0B,aACL1B,KAAKgC,eACLiB,EACAxE,EACAuB,KAAK0C,kBAET+E,QAAS,CACLrL,gBAACd,EAAY,CACToM,IAAI,WACJlM,GAAG,WACHC,UAAcuE,KAAKyB,gBAAR,kBACX9F,UAAWqL,EACXtL,KAAMuL,EACNpL,UAAW0G,EACXxG,QAASiE,KAAKoD,UACdxH,iBAAkBoE,KAAKpE,mBAE3BQ,gBAACd,EAAY,CACToM,IAAI,SACJlM,GAAG,SACHC,UAAcuE,KAAKyB,gBAAR,kBACX9F,UAAWuL,EACXxL,KAAMyL,EACNpL,QAASiE,KAAKgF,UACdpJ,iBAAkBoE,KAAKpE,oBAG/BuD,aAAc,CACVsD,GAAmBrG,gBAACM,EAAW,CAACgL,IAAI,QAAQlM,GAAG,QAAQC,UAAWuE,KAAKyB,gBAAiB7E,QAASuC,IACjG8D,GACI7G,gBAACM,EAAW,CAACgL,IAAI,QAAQlM,GAAG,QAAQC,UAAWuE,KAAKyB,gBAAiB7E,QAASwK,KAGtFO,WAAY9F,EAAO8F,YACfvL,gBAACwL,IAAiB,CAACnM,UAAcuE,KAAKyB,gBAAR,eAAuC/F,KAAMmG,EAAO8F,cAQ1F,OAJI3H,KAAK0B,eACL1B,KAAK0B,cAAe,GAGjB4F,EAmBHjC,kBACJ,MAAMwC,EAAgB7H,KAAKC,4BAE3B,OADA4H,EAAc,GAAGnK,eAAiBsC,KAAKwB,mBAChCqG,GAkJAlI,a,uJC3gBR,MAAMmI,EAAoDjI,IAC7D,MAAM,OAAEkI,EAAM,OAAEC,EAAM,QAAEC,EAAO,oBAAEC,EAAmB,WAAEC,GAAetI,EACrE,GAAIuI,IAASC,UAAW,CACpB,MAAMC,EAAgBC,SAASC,iBAAiB,qEAChDC,QAAQC,IAAIJ,GACZA,EAAclG,QAAQuG,GAAKA,EAAEC,aAAa,OAAQ,MAEtD,OACIxM,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAM0G,aACbwB,EACAG,EACAF,EACAC,EACAE,IAKEL,a,6FClBf,MAsBMgB,EAAyBtB,GAEvBpL,2BAAA,KACKoL,GAASA,EAAMpC,OAAS,EACnBoC,EAAM7I,IAAI,CAAC0D,EAAuBxD,IACvBzC,gBAACA,WAAc,CAACsL,IAAK7I,GAAQwD,IAExC,MAIH0G,UAjCkClJ,IAC7C,MAAM,YAAEmJ,EAAW,SAAEC,EAAQ,oBAAEC,EAAmB,mBAAEC,EAAkB,eAAEC,EAAc,UAAEC,GAAcxJ,EAEtG,OAAQmJ,GACJ,KAAKM,cAAYC,WACb,OACInN,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK2M,GACR9M,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6M,GACLH,GACGA,EAASQ,gBACTR,EAASQ,eAAerE,QACxB0D,EAAsBG,EAASQ,kBAInD,KAAKH,cAAYI,UACb,OAAOtN,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4M,GAAqBE,GAC5C,QACI,OAAO,Q,wiBCZZ,MAAMM,EAAgEpO,IAAA,IAAC,sBAC1EqO,GAIHrO,EAAA,OACGa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKqN,KAMDC,EAAmDC,IAAA,IAAC,eAAEC,EAAc,UAAEC,EAAS,eAAEC,GAAgBH,EAAA,OAC1G1N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwN,GACLC,IAIIE,EAA2DC,IAAA,IAAC,cAAEC,EAAa,QAAEtI,EAAO,MAAEuI,EAAK,WAAEC,EAAU,QAAEvH,EAAO,mBAAEwH,EAAkB,aAAEC,GAAcL,EAAA,OAC7J/N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6N,GACLtI,EACAuI,EACAtH,EACAwH,IAIIE,EAA2CC,IAAA,IAAC,WAAEC,EAAU,SAAEC,EAAQ,gBAAEC,EAAe,WAAEC,GAAYJ,EAAA,OAC1GtO,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKoO,GACLC,GAAYxO,gBAAC8N,EAA8B5N,OAAAC,OAAA,GAAKqO,IAChDE,GACG1O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsO,GACLC,EAAWnM,IAAIqL,GACZ5N,gBAACyN,EAA0BvN,OAAAC,OAAA,CAACmL,IAAKsC,EAAU9D,KAAK8D,UAAUe,QAAYf,QAO7EgB,EAA6CC,IAAA,IAAC,YAAEC,EAAW,OAAEC,GAAQF,EAAA,OAC9E7O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2O,GACLC,EAAOxM,IAAI,CAACyM,EAAOvM,IAChBzC,gBAACqO,EAAsBnO,OAAAC,OAAA,CAACmL,IAAK7I,GAAWuM,OAKvCC,EAAyDC,IAAA,IAAC,kBAAEC,EAAiB,QAAEzJ,EAAO,SAAE0J,EAAQ,SAAEC,EAAQ,IAAEC,EAAG,YAAEC,EAAW,aAAEC,GAAcN,EAAA,OACrJlP,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgP,GACLzJ,EACA0J,EACAC,EACAC,EACAC,EACAC,IAIIC,EAAsDC,IAAA,IAAC,oBAAEC,EAAmB,MAAEC,EAAK,QAAEC,GAASH,EAAA,OACvG1P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwP,GACLC,EACAC,IAIIC,EAAyCC,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OACnH/P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6P,GACLC,EACAC,EACAC,IA+BMC,UA3B8DC,IAWxE,IAXyE,YAC1ElG,EAAW,QACXzE,EAAO,mBACP4K,EAAkB,MAClBC,EAAK,QACLC,EAAO,aAEPC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJ5B,GACHsB,EACG,OACIrQ,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKgK,GACPzE,EACA6K,EACAC,EAEAF,EACAvB,GAAU/O,gBAAC4O,EAAuB1O,OAAAC,OAAA,GAAK4O,IACvC0B,GAAgBzQ,gBAACiP,EAA6B/O,OAAAC,OAAA,GAAKsQ,IACnDC,GAAW1Q,gBAACyP,EAAwBvP,OAAAC,OAAA,GAAKuQ,IACzCC,GAAQ3Q,gBAAC8P,EAAqB5P,OAAAC,OAAA,GAAKwQ,O,oCChHhD,mCAgBA,MAAMC,UAAsB5Q,gBAQxBwD,YAAYC,GACRE,MAAMF,GARO,KAAA4G,UAAqC,CAClDE,eAAgB3G,KAAKH,MAAMyD,QAAQiC,QACnCmB,OAAS9E,GAA0C5B,KAAKH,MAAMgC,OAAOoL,cAAgBrL,EAAMG,OAAOzE,OAOlG0C,KAAKpE,iBAAmB0J,6BACpBtF,KAAKH,MAAMyD,QAAQiC,QAAQC,kBAC3BxF,KAAKH,MAAM4F,aACXzF,KAAKH,MAAM6F,WAIZS,SACH,OAAKnG,KAAKH,MAAMgC,OAAOqL,YAMnB9Q,gBAAC+Q,YAAS,CACN1Q,KAAMuD,KAAKH,MAAMgC,OAAOqL,YACxBlB,MAAOhM,KAAKH,MAAMgC,OAAOmK,MAAK,aAClBhM,KAAKH,MAAMgC,OAAOlG,UAC9BF,UAAU,iBACVgL,UAAWzG,KAAKyG,UAChB/K,KAAMsE,KAAKH,MAAMgC,OAAOoL,cACxBrR,iBAAkBoE,KAAKpE,oBAZ3BoE,KAAKH,MAAM6F,UAAU0H,MAAM,oEACpB,OAiBJJ,a,6qBC/Bf,MAAMK,UAAuBjR,gBAClB+J,SACH,IAAKnG,KAAKH,MAAMkH,QAAU/G,KAAKH,MAAMkH,MAAMkB,SAA+C,IAApCjI,KAAKH,MAAMkH,MAAMkB,QAAQ7C,OAE3E,OADApF,KAAKH,MAAMyD,QAAQoC,UAAU0H,MAAM,qDAC5B,KAEX,MAAME,EAASjH,IAAA,GACRrG,KAAKH,OAAK,IACb0N,WAAYvN,KAAKH,MAAMkH,MAAMkB,QAC7BuF,WAAY,CACRjH,YAAavG,KAAKH,MAClBpE,UAAWqB,IAAW,kBAAmBkD,KAAKH,MAAMgC,OAAOpG,WAC3DgS,IAAK,MAETC,eAAgB,CACZjS,UAAWqB,IAAW,uBAAwBkD,KAAKH,MAAMgC,OAAOpG,WAChEgS,IAAK,QAIb,OAAOzN,KAAKH,MAAMiH,WAAWwG,IAItBD,a,+YCZf,MAOMM,EAA8CC,YAAU/N,IAC1D,MAAM,UACFgO,EAAS,aACTC,EACA5H,MAAM,KAAE6H,IACRlO,EAGEmO,EAAWD,EAAOA,EAAKE,iBAFQ,EAGrC,IAAIC,EAAmB,GAInBA,EADAF,EAF4B,GACC,MAIlBG,iBAAOL,EAAcE,GAEpC,MAAMlP,EAAQqP,iBAAON,EAAWG,GAG1BhS,EAAUC,2BAAiB,QAAS4D,EAAMjE,iBAAmB,YAAa,IAC1EM,EAAaC,iCAAuB0D,EAAMjE,iBAAmBI,GAC7DoS,EAA6B,CAC/BC,WAAYN,EAAO,UAAY,UAEnC,OACI3R,gBAAA,MAAAE,OAAAC,OAAA,CAAKd,UAAU,gBAAgBe,KAAK,SAAQ,aAAasC,EAAOkN,MAAOlN,GAAW5C,GAC9EE,gBAAA,OAAKX,UAAU,uBAAsB,iBAAa2S,MAAOA,GACpDF,MAMJI,EAAsEC,IAAiBC,wBAGlG,W,yWAAUnI,CAAA,CAAIoI,UAAWd,GA5CM,KA8ClBW,a,2FCjBf,MAAMI,UAAkBtS,gBAGpBwD,YAAmBC,GACfE,MAAMF,GA0BO,KAAA8O,sBAAyB/M,IACtC,MAAMwL,EAA+B,KAAvBxL,EAAMG,OAAOzE,MAAe,GAAK0C,KAAKkC,MAAMkL,MAC1DpN,KAAKsC,SAAS,CACVsM,oBAAqBhN,EAAMG,OAAOzE,MAAMuR,OACxCzB,QACA0B,WAAYlN,EAAMG,OAAOzE,SAQhB,KAAAyR,gBAAmBC,IAChC,IAAKA,EACD,OAEJ,MAAMC,EAAejP,KAAKkC,MAAM0M,oBAEhCI,EACKE,aAAa,CAAEC,UAAWF,IAC1B1K,KAAK6K,IACoB,YAAlBA,EAAOC,OAEPrP,KAAKsC,SAAS,CAAEsM,oBAAqB,GAAIxB,MAAO,GAAI0B,UAAU,IAClC,iBAArBM,EAAOE,UACdtP,KAAKsC,SAAS,CAAE8K,MAAOpN,KAAKH,MAAM0P,8BAElCvP,KAAKsC,SAAS,CAAE8K,MAAOpN,KAAKH,MAAM2P,8BAGzCzK,MAAM,KACH/E,KAAKsC,SAAS,CAAE8K,MAAOpN,KAAKH,MAAM4P,mCAS7B,KAAAC,iBAAoBV,GAAuCpN,IACxEA,EAAMyB,iBACNrD,KAAK+O,gBAAgBC,IAQR,KAAAW,sBAAyBX,GAAsC,KAC5EhP,KAAK+O,gBAAgBC,IAUR,KAAAnI,YAAc,CAAC+I,EAA8BC,EAAkCb,KAC5F,MAAM9S,EAAaC,iCAAuB6D,KAAKH,MAAMjE,iBAAmBoE,KAAKhE,SAE7E,OACII,gBAAA,QAAM0T,SAAU9P,KAAK0P,iBAAiBV,GAAYvT,UAAU,kCACxDW,gBAAA,OAAKX,UAAU,yBACXW,gBAAA,SACIX,UAAU,4BACVgC,SAAUuC,KAAK2O,sBACfrR,MAAO0C,KAAKkC,MAAM0M,oBAClBmB,YAAaH,IAEjBxT,gBAACC,SAAMC,OAAAC,OAAA,CACHyP,MAAO6D,EACPpU,UAAU,gCACVM,QAASiE,KAAK2P,sBAAsBX,GACpCnT,UAAWmE,KAAKkC,MAAM4M,UAClB5S,OAYP,KAAA8T,iBAAmB,CAAChB,EAAmCpN,KAA2B,IAAAqO,EAC/F,IAAKjB,EACD,OAEJ,MAAMkB,EAAqD,QAAjDD,EAAGrO,EAAMuO,cAAcC,aAAa,qBAAa,IAAAH,IAAI,GAC/DjB,EACKqB,iBAAiB,CACdC,WAAY,CAACJ,KAEhB3L,KAAK6K,IACoB,YAAlBA,EAAOC,QACPrP,KAAKsC,SAAS,CAAE8K,MAAO,OAG9BrI,MAAM,KACH/E,KAAKsC,SAAS,CAAE8K,MAAOpN,KAAKH,MAAM0Q,sCAS7B,KAAAC,wBAA2B3Q,IACxC,IAAKA,EAAMkO,OAASlO,EAAMkO,KAAKA,KAAK0C,UAAYC,kBAAgBC,YAAY9Q,EAAMkO,KAAKA,KAAK0C,SACxF,OAOJ,MAAMG,EAA0BhP,IAC5B5B,KAAKgQ,iBAAiBnQ,EAAMkO,KAAMnM,IAGtC,OACIxF,2BAAA,KACKyD,EAAMkO,KAAKA,KAAK0C,QAAQ9R,IAAKkS,IAC1B,MAAMlV,EAAYkE,EAAMiR,2BAClB3C,iBAAOtO,EAAMiR,2BAA4BjR,EAAMkR,gBAAiBF,EAAOG,MACvE,GAEN,OACI5U,gBAAA,OAAKsL,IAAKmJ,EAAOG,KAAMvV,UAAU,kCAC7BW,gBAAA,OAAKX,UAAU,8BACV,QACDW,gBAAA,QAAMX,UAAU,mCAAmCoV,EAAOG,MACzD,YAEL5U,gBAACC,SAAM,CACH2P,MAAOnM,EAAMkR,gBACbtV,UAAU,mCACVM,QAAS6U,EAAsB,aACnBC,EAAOG,KAAI,aACXrV,SA5KpCqE,KAAKhE,QAAUC,2BAAiB,QAAS+D,KAAKH,MAAMjE,iBAAmBqV,oBAAkBC,gBACzFlR,KAAKkC,MAAQ,CACT0M,oBAAqB,GACrBxB,MAAO,GACP0B,UAAU,GAIX3I,SACH,OACI/J,gBAAA,WACIA,gBAAA,OAAKX,UAAU,0BAA0BuE,KAAKH,MAAMsR,sBACnDnR,KAAK6G,YAAY7G,KAAKH,MAAM+P,qBAAsB5P,KAAKH,MAAMgQ,yBAA0B7P,KAAKH,MAAMkO,MACnG3R,gBAAA,KAAGX,UAAWuE,KAAKkC,MAAMkL,MAAQ,mBAAqB,GAAE,YAAY,aAC/DpN,KAAKkC,MAAMkL,OAEfpN,KAAKwQ,wBAAwBxQ,KAAKH,SAsKpC6O,a,4rCC9MR,MAAM0C,EAAmD7V,IAAA,IAAC,cAAE8V,EAAa,MAAEvS,EAAK,SAAEgG,GAAUvJ,EAAA,OACjGa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8U,GACPvS,EACAgG,IAIQwM,EAAmDxH,IAAA,IAAC,cAAEyH,EAAa,MAAEzS,GAAOgL,EAAA,OACvF1N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgV,GAAgBzS,IAEf0S,EAAyCrH,IAAA,IAAC,SAAEsH,EAAQ,KAAEpP,EAAI,cAAEqP,EAAa,cAAEC,GAAexH,EAAA,OACrG/N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkV,GACPpP,EACAqP,GAAiBtV,gBAACgV,EAAsB9U,OAAAC,OAAA,GAAKmV,IAC7CC,GAAiBvV,gBAACkV,EAAsBhV,OAAAC,OAAA,GAAKoV,MAIrCC,EAAmElH,IAQM,IARL,sBACEmH,EAAqB,aACrBC,EAAY,QACZhQ,EAAO,UACPiQ,EAAS,SACTC,EAAQ,KACRC,EAAI,KACJC,GACDxH,EAChF,GAAIqH,GAAaA,EAAU3M,OAAS,IAAM2M,EAAU,GAAG1P,KACrD,OAAO,KAGT,MACM8P,EAAaH,GADe,GAE3BI,EAAeC,GAAoBjW,WAA6B2V,GAAaA,EAAU3M,QAAU+M,EAAcJ,EAAUO,MAAM,EAAGH,GAAcJ,IAChJQ,EAAgBC,GAAqBpW,WAAuB,GAE7DqW,EAAWA,KACfC,EAAWH,EAAiB,IAGxBI,EAAWA,KACfD,EAAWH,EAAiB,IAGxBG,EAAcE,IAClB,GAAIA,EAAO,EACT,OAGF,GAAIb,GAAca,EAAOb,EAAU3M,OAAS+M,EAC1C,OAGF,IAAIU,EAAQD,EAAOT,EACnB,GAAIJ,GAAaA,EAAU3M,QAAUyN,EAAM,CACzCL,EAAkBI,GAClB,IAAIN,EAAQP,aAAS,EAATA,EAAWO,MAAMO,GAC7BR,EAAiBC,EAAMlN,QAAU+M,EAAaG,EAAMA,MAAM,EAAGH,GAAcG,KAkB/E,OAA6B,IAAzBF,EAAchN,QAAiBgN,EAAc,GAAG/P,KAIlDjG,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsV,GACP/P,EACD1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuV,GAEPM,EAAczT,IAAImU,GACV1W,gBAACoV,EAAiBlV,OAAAC,OAAA,CAACmL,IAAKoL,EAAS/H,QAAY+H,MArBxD1W,gBAAC2W,IAAc,CACbN,SAAUA,EACVE,SAAUA,EACVD,WAAYA,EACZM,YAAaT,EACbU,SAAUlB,EAAU3M,OAAS8N,KAAKC,KAAKpB,EAAU3M,OAAU+M,GAAe,EAC1EF,KAAMA,EACNC,KAAMA,KAMH,MAgBEkB,EAA6EnI,IAAA,IAAC,sBACE4G,EAAqB,aACrBC,EAAY,QACZhQ,EAAO,UACPiQ,EAAS,eACTsB,EAAc,mBACdC,GACDrI,EAAA,OAC1F7O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsV,GACPyB,EACAD,EACAvR,EACD1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuV,GACPC,EAAUpT,IAAImU,GACb1W,gBAACmX,EAAmCjX,OAAAC,OAAA,CAACmL,IAAKoL,EAAS/H,QAAY+H,QAM1DS,EAA2DjI,IAAA,IAAC,SACEmG,EAAQ,KACRpP,EAAI,cACJqP,EAAa,cACbC,GACDrG,EAAA,OACxElP,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkV,GACPpP,EACAsP,GAAiBvV,gBAACkV,EAAsBhV,OAAAC,OAAA,GAAKoV,MAIrC6B,EAAqE1H,IAAA,IAAC,cACEuF,EAAa,MACbvS,EAAK,SACLgG,GACDgH,EAAA,OAClF1P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8U,GACPvS,EACAgG,IAIQ2O,EAAmDtH,IAYM,IAZL,UACEuH,EAAS,OACTC,EAAM,QACN7R,EAAO,SACP8R,EAAQ,eACRC,EAAc,aACdC,EAAY,cACZC,EAAa,iCACbC,EAAgC,SAChChC,EAAQ,KACRC,EAAI,KACJC,GACD/F,EAChE,MAAM3E,EAAQqM,IAAkCE,GAAgCD,GAChF,IAAKtM,EACH,OAAO,KAET,MAAMyM,EAAyB5N,IAAA,GAAwCmB,GAAM,IAAEwK,WAAUC,OAAMC,SAE/F,OACE9V,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKmX,GACRtX,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKoX,GACP7R,EACA8R,QAEmC9V,IAArCkW,GAAkDH,GACjDzX,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAK0X,SACQnW,IAArCkW,GAAkDD,GACjD3X,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAK0X,SACQnW,IAArCkW,GAAkDF,GACjD1X,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAK0X,SACQnW,IAArCkW,EACGA,EAAiCrV,IAAI,CAAC0D,EAAMxD,IACrCzC,gBAACgX,EAAwC9W,OAAAC,OAAA,GAAK8F,EAAI,CAAEqF,IAAK7I,MAEhE,OAMJqV,EAAyDzH,IAAA,IAAC,QAAE3K,EAAO,MAAEqS,EAAK,kBAAEC,GAAmB3H,EAAA,OACnGrQ,gBAAA,OAAKX,UAAU,6BACZqG,EACD1F,gBAAA,OAAKX,UAAU,4BACZ0Y,GACC/X,2BAAA,KACG+X,EAAM3I,SACN2I,EAAM1I,SACN0I,EAAME,YACND,GAAqBhY,gBAAA,KAAGX,UAAU,kDAAkD2Y,GACpFD,EAAMzI,IAENyI,EAAMG,QACNH,EAAMI,SACNJ,EAAMK,eAOXC,EAA4DC,IAAA,IAAC,QAAE5S,EAAO,MAAEqS,GAAOO,EAAA,OACnFtY,gBAAA,OAAKX,UAAU,+BACZqG,EACD1F,gBAAA,OAAKX,UAAU,8BACZ0Y,GACC/X,2BAAA,KACG+X,EAAMQ,SACNR,EAAMI,SACNJ,EAAMG,QACNH,EAAMK,eAsQFI,UA3MkE/U,IAAQ,IAAAgV,EAAAC,EAAAC,EACvF,MAAMC,GAAyC,QAA1BH,EAAAhV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAyF,OAAA,EAA1BA,EAA4BK,aAAanH,KAAKoH,kBAAmB,GAChFC,EAAuBA,KAAa,IAAAC,EACxC,OAAiC,QAA1BA,EAAAxV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAiG,GAAmC,QAAnCA,EAA1BA,EAA4BH,aAAanH,KAAKoH,uBAAe,IAAAE,OAAA,EAA7DA,EAA+DC,UAAUC,GAAgC,iBAAnBA,EAAUC,SAA6B,GAUhIC,EAAuBA,KAC3B,MAAMC,EAAoBN,IAC1B,IAA2B,IAAvBM,EACF,OAAO,EACF,CACL,MAAMC,EAAOX,EAAaU,GAC1B,QAASC,YAAMC,SAiBbC,EAAyBC,UAC7B,GAAI/H,EAAM,CACR,MAAMgI,EAAgBlW,EAAMqG,KAAK+O,SAAS7F,OAC1C,IAAK2G,EACH,aAGIA,EAAcb,aAAac,WAAW,CAAEC,cAAelI,IAAQxJ,KAAK,KACxE2R,EAA0BT,UAIzBU,EAAwBD,GAA6B9Z,WAAwBqZ,KAC9EW,EArGsBC,EAC5BF,EACAG,EACAC,IAEAna,gBAAA,OAAKX,UAAU,iCACbW,gBAAA,SAAOX,UAAU,gDACfW,gBAAA,QAAMX,UAAW,8BAA+B8a,GAChDna,gBAAA,SACEkB,MAAO6Y,EAAyB,EAAI,EACpCpa,QAASua,EACT3Z,KAAK,WACLlB,UAAU,gCAEZW,gBAAA,OACEX,UAAW,yDAAwD0a,EAAyB,UAAY,iBAsFzEE,CACnCF,EA5ByCG,KAAK,IAAAE,EAC9C,MAAMC,EAAe,CACnB,cAAe,uEACfjB,KAAM,eACNI,OAAQH,KAEJiB,EAAMtB,KACH,IAATsB,EAAa1B,EAAa2B,KAAKF,GAAgBzB,EAAatV,OAAOgX,EAAK,EAAGD,GAC3E,MAAM1I,EAAazR,OAAOC,OAAO,GAA8B,QAA5Bia,EAAE3W,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAoH,OAAA,EAA1BA,EAA4BtB,aAAanH,MAC1EA,IACFA,EAAKoH,gBAAkBH,EACvBa,EAAuB9H,KAmBzBlO,EAAMO,UAAUmW,8BAmDZ,QACJK,EAAO,cACPC,EAAa,YACbC,EAAW,cACXC,EAAa,eACbC,EAAc,UACdC,EAAS,UACTC,EAAS,iBACTC,EAAgB,UAChBC,EAAS,sBACTC,EAAqB,uBACrBC,EAAsB,wBACtBC,EAAuB,kBACvBC,EAAiB,QACjB5K,EAAO,MACPD,EAAK,MACLX,EAAK,WACLyL,EAAU,aACV5K,EAAY,sBACZ6K,EAAqB,UACrB3F,EAAS,iBACT4F,EAAgB,mBAChBC,EAAkB,mBAClBC,GACEhY,EAEEsS,EAAatS,EAAMgC,OAAOsQ,YADE,EAGlC,IAAI2F,EAnJoB1D,EAACrG,EAAYgK,EAAsDC,KAE3F,IAAI7D,EAAQpG,EAAKkK,YACbC,EAA+B,GAUnC,OATAH,WAAapZ,IAAIwZ,IACf,MAAMC,EAAOjE,aAAK,EAALA,EAAOnM,OAClBqQ,GAAQA,EAAKC,aAAeH,EAAEI,YAAY5Z,IAC1C6Z,IAAC,IAAAC,EAAAC,EAAA,OAAItc,gBAAA,KAAGX,UAAU,yBAAwBW,gBAAA,QACxCX,UAAU,gCAAgC0c,EAAEQ,iB,IAAwBvc,gBAAA,QACpEX,UAAU,gCAAgCuc,EAAgD,QAA/BS,EAAmB,QAAnBC,EAACF,EAAEI,wBAAgB,IAAAF,OAAA,EAAlBA,EAAoBG,kBAAU,IAAAJ,IAAI,QAElGP,EAAUvB,KAAKyB,KAEVF,GAsIW9D,CADC9X,OAAOC,OAAO,GAA8B,QAA5BuY,EAAEjV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAA0F,OAAA,EAA1BA,EAA4BI,aAAanH,MACpClO,EAAMgC,OAAOiX,qBAAsBjZ,EAAMyD,QAAQyV,iBAAiBC,gBAC5G,MAAMC,EAAoB5S,IAAA,GAA+BwG,GAAa,IAAEuH,kBAAmB0D,IAkBrFoB,EAA6E,QAA7DnE,EAAwBlV,EAAMqG,KAAKiT,oBAAoB/J,cAAM,IAAA2F,OAAA,EAArCA,EAAuCqE,QAC/EC,EAAYhT,IAAA,GACb0L,GAAU,IACbC,SAAUG,EACVF,KAAMpS,EAAMO,UAAUkZ,gBAAkB,GACxCpH,KAAMrS,EAAMO,UAAUmZ,gBAAkB,KAE1C,OACEnd,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsa,IAERE,GAAiB3a,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKua,GAAc9K,IACzC+K,GACA3a,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK0a,GACPrK,EACAsM,EAhEP9c,gBAAA,OAAKX,UAAU,sBAAsBoE,EAAMgC,OAAO2X,sBAgEQ,KACnD7M,EACAiK,GACCxa,2BAAA,KACEA,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2a,GACPO,EACDrb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnC/X,EAAMgC,OAAOsU,wBAA0BC,EACxCha,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK4a,GACPQ,EACAE,IAGLzb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6a,GACNJ,EAEEU,GAAyBtb,gBAACqY,EAAuBnY,OAAAC,OAAA,GAAKmb,IADtD7K,GAAgBzQ,gBAAC8X,EAAqB5X,OAAAC,OAAA,GAAK0c,IAE/C7c,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8a,GACRjb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnCD,EACAE,GAEF9F,GAAa3V,gBAACqX,EAAkBnX,OAAAC,OAAA,GAAK8c,IA1N1BI,EAACC,EAAwBC,KACnD,MAAMC,EAAwC,IAAjBD,EAC7B,OACEvd,gBAAA,OACEX,UAAW,gCAA+Bme,EAAuB,4CAA8C,KAC/Gxd,gBAAA,MAAIX,UAAU,wCACXie,GAEHtd,gBAAA,KAAGX,UAAU,qCACVke,KAkNQF,CAhLN5Z,EAAMO,UAAUyZ,oBAJU,QAA1BC,EAAAja,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAA0K,OAAA,EAA1BA,EAA4B5E,aAAanH,KAAKzM,UAAW,IAqLpDlF,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+a,GACRlb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnCD,EACAE,MAOZd,GAAiBS,GAhMCuC,IAAaD,I,yHCxStC,MAAME,EAAuBC,IAEzB,MAAM,4BAAEC,EAA2B,QAAEC,GAAYF,EAEjD,OACI7d,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAK2d,GACLC,IA4FPE,EAAiCA,CAACC,EAA+Bza,KAAsE,IAAA0a,EACzI,MAAO,CACHL,4BAA6B,CACzBzM,IAAK,KACLhS,UAAW,mCACXe,KAAM,MACNge,SAAU,EACV9S,IAAK,EACL,aAAc,GACd,iBAAiB,GAErByS,QACI/d,IAAAge,cAACK,IAAK,CACF9T,eAAgB9G,EAAMyD,QAAQgB,cAAcqC,eAC5ClL,UAAU,0CACVif,IAAI,QACJC,aAAc9a,EAAMyD,QAAQiC,QAAQoV,aACpCL,cAAkD,QAArCC,EAAE1a,EAAMgC,OAAO+Y,8BAAsB,IAAAL,IAAID,EACtDO,oBAAoB,YAoB9BC,EAAgD,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,KAClDC,GAAI,CAAEH,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,MAEtDE,UAAU,EACVC,iBAAiB,GASfC,EAAmBA,CACrBC,EACA3b,KAGA,MAAM,yBAAE4b,EAAwB,kCAAEC,GAAsCF,GAClE,MAAEtZ,EAAK,WAAEyZ,GAAe9b,EACxB+b,EA/BoBpU,IACnBA,aAAK,EAALA,EAAO7I,IAAI0D,IACP,CACHwZ,QAASxZ,EAAK8X,QAAQta,MAAMgc,QAC5BnB,IAAKrY,EAAK8X,QAAQta,MAAM6a,OA2BNoB,CAAqBH,EAAWnU,OAEpDA,EAENtF,EAAM6Z,YAAcH,GAAkD,UAA7BA,EAAkB,GAAGlB,IAAkB,CAACL,EAA+BS,EAA+Bjb,IAE3I+b,aAAiB,EAAjBA,EAAmBjd,IAAI,CAAC0D,EAAkB7G,IAhJhBwgB,EAC9BC,EACA3B,EACA4B,EACAC,EACAtc,KACqC,IAAAuc,EAKrC,MAAMrgB,EAAUA,KAAK,IAAAsgB,EAAAC,EACG,QAApBD,EAAAxc,EAAM0c,sBAAc,IAAAF,GAApBA,EAAAG,KAAA3c,GAC4B,QAA5Byc,EAAAzc,EAAM4c,8BAAsB,IAAAH,GAA5BA,EAAAE,KAAA3c,EAA+Bqc,GAC/Brc,EAAMqC,MAAMwa,YAAcR,GAYxBS,EAAiB/a,IACfA,EAAMgb,UAAYC,WAASC,QAC3Blb,EAAMyB,iBACNtH,MAIR,MAAO,CACHme,4BAA6B,CACzBzM,IAAK,KACLhS,UAnBQqB,IACZ,mCACAqf,IAAwBD,EAAU,0CAA4C,IAkB1E1f,KAAM,eACNkL,IAAKwU,GAET/B,QACI/d,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,yBACZW,IAAAge,cAAC/d,SAAM,CACHG,KAAK,MAAK,aACEyf,EAAMJ,QAAO,gBACVM,IAAwBD,EAAO,gBAC/B,GAAGrc,EAAMrE,sBAAsB0gB,IAC9CzgB,UAAU,sCACVM,QAASA,EACTghB,UAAWJ,GACXvgB,IAAAge,cAACK,IAAKne,OAAAC,OAAA,CACFoK,eAAgB9G,EAAMyD,QAAQgB,cAAcqC,eAC5ClL,UAAU,+BACNwgB,EAAK,CACTtB,aAAc9a,EAAMyD,QAAQiC,QAAQoV,aACpCL,cAAkD,QAArC8B,EAAEvc,EAAMgC,OAAO+Y,8BAAsB,IAAAwB,IAAI9B,EACtDO,oBAAoB,cAG5Bze,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,kCACZW,IAAAge,cAAC/d,SAAM,CACH0gB,UAAWJ,EACX3Q,MAAOnM,EAAMO,UAAU4c,oBAAqBxgB,KAAK,SACjDf,UAAU,+CACVM,QAASA,QAgFgCigB,CAA0B3Z,EAC/EyY,EAA+Btf,EAAI0G,EAAMwa,YAAa7c,IAE9D,OACIzD,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAKkf,GACNrf,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAKmf,GACLlU,aAAK,EAALA,EAAO7I,IAAIqb,MAuBbiD,UAZ4Cpd,IAEvD,MAAM,cAAEqd,EAAa,WAAEvB,EAAU,aAAEwB,EAAY,MAAEC,GAAUvd,EAC3D,OACIzD,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAK4gB,GACR/gB,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAK2gB,IACTE,EACA7B,EAAiBI,EAAY9b,M,oyBC1KnC,MAAMwd,UAA2BjhB,gBAapCwD,YAAYC,GACRE,MAAMF,GAbF,KAAAyd,aAAuB,EAEd,KAAAC,qBAA+B,EAE/B,KAAAC,UAAoB,GAqcpB,KAAAC,qBAAuB,CAACC,EAA0BC,IAA0B,KACzF,MAAMC,EAAWD,GAAUA,EAAOC,SAAWD,EAAOC,SAAW,GACzDC,EAAiC,CAAC,CAAEnD,IAAKgD,EAAkB7B,QAAS+B,IAGtElN,kBAAgBC,YAAYgN,EAAOG,qBACnCH,EAAOG,mBAAmBnf,IAAI0D,IAC1B,GAAIA,GAAQA,EAAK4Z,MAAO,CACpB,MAAM8B,EAAW1b,EAAK4Z,MAAMvB,IACtBsD,EAA+B3b,EAAK4Z,MAAM3B,cAChDuD,EAAiBlH,KAAK,CAClB+D,IAAKqD,EACLlC,QAASxZ,EAAK3G,KACd4e,cAAe0D,EACfC,qBAAsB,CAAEvZ,QAASrC,EAAKqC,QAAQC,qBAK9D3E,KAAKsC,SAAS,CACV4b,cAAeL,EAAiBzY,OAAS,EAAIyY,EAAmB,CAAC,CAAEnD,IAAK,UACxEyD,qBAAsBP,KAUb,KAAAQ,sBAAwB,CAAClY,EAAqBmY,IAAsB,KAC5Ere,KAAKH,MAAMye,aASZte,KAAKsC,SAAS,CACVic,WAAYrY,EAAK1K,GACjBgjB,WAAYH,KAVhBre,KAAKsC,SAAS,CACVic,WAAYve,KAAKkC,MAAMqc,YAAcve,KAAKkC,MAAMqc,aAAerY,EAAK1K,QAAMsC,EAAYoI,EAAK1K,GAC3FgjB,WAAYH,IAEZre,KAAKH,MAAM4e,mBACXze,KAAKyd,qBAAqBvX,EAAKwY,YAAcxY,EAA7ClG,IASRA,KAAK2e,eAMQ,KAAAA,YAAc,KACvB3e,KAAKH,MAAMye,cACXM,WAAW,KACP5e,KAAK6e,UAAY7e,KAAK6e,SAAShZ,SAAW7F,KAAK6e,SAAShZ,QAAQC,SACjE,IAQM,KAAAgZ,oBAAuBld,IAChC5B,KAAK6e,SAAShZ,UAAY7F,KAAK6e,SAAShZ,QAAQkZ,SAASnd,EAAMG,SAC/D/B,KAAKsC,SAAS,CACVic,gBAAYzgB,EACZogB,cAAe,QASV,KAAAc,oBAAuBpd,IAChC5B,KAAK6e,SAAShZ,UAAY7F,KAAK6e,SAAShZ,QAAQkZ,SAASnd,EAAMqd,gBAC/Djf,KAAKkf,iBAiBI,KAAAC,aAAgBvd,IAC7B,GAAIA,EAAMgb,UAAY5c,KAAKwd,UAAW,CAClC,IAAKxd,KAAKH,MAAMye,aAAc,CAC1B,MAAMc,EAAgBC,MAAMC,KAAKtf,KAAK6e,SAAShZ,QAAS0Z,YACxD,IAAK,MAAMld,KAAQ+c,EAAe,CAC9B,MAAMI,EAAkBnd,EAAKod,WACyB,SAAlDD,EAAgBpP,aAAa,kBAC7BoP,EAAgB1Z,SAI5B9F,KAAKkf,kBAII,KAAAQ,kBAAqBxB,IAClC,IAAKA,IAAkBA,EAAcxD,IACjC,OAAO,KAGX,MAAMiF,EAAmBC,2BAAiB1B,EAAcxD,IAAK1a,KAAKH,MAAMyD,QAAQgB,cAAcqC,eAAekZ,aACvGC,EAAuC,CACzC/E,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC4E,GAAI,CAAE9E,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC6E,GAAI,CAAE/E,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC8E,GAAI,CAAEhF,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAEd,QAAyBvd,IAArB6hB,EAAgC,CAAC,IAADpkB,EAAA2kB,EAChC,MAAMC,EAAwB,CAAEzF,IAAKiF,GACrC,OACIvjB,gBAACqe,IAAKne,OAAAC,OAAA,CACFoK,eAAgB3G,KAAKH,MAAMyD,QAAQgB,cAAcqC,eACjDlL,UAAU,sBACN0kB,EAAS,CACbxF,aAAc3a,KAAKH,MAAMyD,QAAQiC,QAAQoV,aACzCL,cAAqF,QAAxE/e,EAA6B,QAA7B2kB,EAAEhC,EAAc5D,qBAAa,IAAA4F,IAAIlgB,KAAKH,MAAMgC,OAAOue,6BAAqB,IAAA7kB,IAAIukB,EACzFjF,oBAAoB,OACpBre,KAAK,WACLhB,GAAO0iB,EAAcxD,IAAjB,kBACJmB,QAASqC,EAAcrC,WAInC,OAAO,MAOM,KAAAwE,gBAAmBC,IAChC,MAAM,eAAEC,GAAmBvgB,KAAKkC,MAE1Bse,EAAU,CAAE,MADoC1iB,IAA3BwiB,EAAYG,WAA2BH,EAAYG,WAAa,IAC3DH,EAAYI,QAC5C1gB,KAAKsC,SAAS,CAAEie,eAAcla,IAAA,GAAOka,GAAmBC,MArlBxDxgB,KAAK6e,SAAWziB,cAChB4D,KAAKkC,MAAQ,CAAEqc,gBAAYzgB,EAAW0gB,gBAAY1gB,EAAWqgB,qBAAsB,GAAIoC,eAAgB,IACvGvgB,KAAKkf,cAAgBlf,KAAKkf,cAAcyB,KAAK3gB,MAC7CA,KAAKmf,aAAenf,KAAKmf,aAAawB,KAAK3gB,MAC3CA,KAAKpE,iBAAmB0J,6BACpBtF,KAAKH,MAAMyD,QAAQiC,QAAQC,kBAC3BxF,KAAKH,MAAM4F,aACXzF,KAAKH,MAAM6F,WAEf1F,KAAKhE,QAAUC,2BAAiB,QAAS+D,KAAKpE,iBAAkB,GAAI,IAGjE+J,oBACCyC,IAASC,YACTE,SAASqY,KAAKC,iBAAiB,UAAY7gB,KAAKmf,cAA2C,GAC3F5W,SAASqY,KAAKC,iBAAiB,YAAa7gB,KAAK8e,qBACjDvW,SAASqY,KAAKC,iBAAiB,WAAY7gB,KAAKgf,sBAIjD8B,uBACC1Y,IAASC,YACTE,SAASwY,oBAAoB,UAAY/gB,KAAKmf,cAA2C,GACzF5W,SAASqY,KAAKG,oBAAoB,YAAa/gB,KAAK8e,qBAAqB,GACzEvW,SAASqY,KAAKG,oBAAoB,WAAY/gB,KAAKgf,qBAAqB,IAIzE7Y,SACH,MAAM,aAAEmY,GAAiBte,KAAKH,MAG9B,OADAG,KAAKsd,aAAe,EACblhB,2BAAA,KAAGkiB,EAAete,KAAKghB,oBAAsBhhB,KAAKihB,sBAOrDD,oBACJ,MAAM,aAAE1C,EAAY,aAAE4C,EAAY,WAAEC,GAAenhB,KAAKH,MACxD,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4kB,EAAU,CAAE1lB,UAAWqB,IAAWqkB,EAAW1lB,UAAW6iB,EAAe,cAAgB,kBAC9F4C,EAAaviB,IAAI,CAACyiB,EAAyBC,IACjCrhB,KAAKshB,kBAAkBF,EAAUF,EAAa9b,OAAQic,EAAWrhB,KAAKud,wBAUrF0D,qBACJ,MAAM,SAAEM,EAAQ,WAAEJ,GAAenhB,KAAKH,MACtC,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4kB,EAAU,CAAE1lB,UAAWqB,IAAWqkB,EAAW1lB,aACrDW,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKglB,EAAQ,CAAExjB,IAAKiC,KAAK6e,SAAUrE,SAAS,OAC5Cxa,KAAKwhB,mBAadF,kBAAkBF,EAAyBK,EAAiBJ,GAChE,OAAID,GAAYA,EAASM,SAAWhR,kBAAgBC,YAAYyQ,EAASM,SAC9D1hB,KAAK2hB,cAAcP,EAAUK,EAASJ,GAE1CrhB,KAAK4hB,oBAAoBR,OAAUtjB,GAAW,GAAM,EAAO2jB,EAASJ,GAUvEM,cAAcP,EAAyBK,EAAkBJ,GAC7D,MAAMQ,EAAmBT,EAASxD,SAC5BkE,EAAW9hB,KAAKkC,MAAMqe,eACtBE,OAAkC3iB,IAArB+jB,EAAiCA,EAAmB,GACjEE,OAAoBjkB,IAAbgkB,EAAyBA,EAAW,IAC3C,aAAExD,GAAiBte,KAAKH,MAE9B,IAAImiB,GAAe,EACfD,EAAKtB,KACLuB,GAAe,GAEnB,MAAMC,EAA2B,CAAEvB,OAAQsB,GAC3C,OACI5lB,gBAAC8lB,SAAM,CACH1lB,KAAK,UACL2lB,kBAAmB,CACf,eAAgBV,EAChB,gBAAiBJ,EACjB7kB,KAAM,YAEVb,UAAW2iB,EAAe8C,EAASzlB,eAAYmC,EAC/C4J,IAAK0Z,EAAS5lB,GACdC,UAAU,iBACV2mB,UAAU,sBACVC,SAAUriB,KAAKqgB,gBACfiC,cAAeL,EACfM,WAAW,uBACXC,eAAe,MACfX,iBAAkB7hB,KAAKyiB,gBAAgBZ,EAAkBJ,EAASJ,IAElEjlB,gBAAA,OAAKI,KAAK,WACL4kB,EAASM,QAAS/iB,IAAI,CAAC+jB,EAA4BC,KAAsB,IAAAC,EAChBC,EAAtD,OAAInS,kBAAgBC,YAAY+R,EAAYhB,SACjC1hB,KAAK2hB,cAAce,EAA6B,QAAlBG,EAAEzB,EAASM,eAAO,IAAAmB,OAAA,EAAhBA,EAAkBzd,OAAQud,EAAa3iB,KAAKud,sBAEhFvd,KAAK8iB,kBAAkBJ,EAA6B,QAAlBE,EAAExB,EAASM,eAAO,IAAAkB,OAAA,EAAhBA,EAAkBxd,OAAQud,EAAa3iB,KAAKud,0BAcnGkF,gBAAgB7E,EAA8B6D,EAA6BJ,GAC/E,OACIjlB,gBAAA,uBAAoBqlB,EAAO,gBAAiBJ,GACvCzD,GAYLkF,kBAAkBzgB,EAAqBof,EAA6BJ,GACxE,OAAIhf,GAAQA,EAAKub,UAAYvb,EAAK0gB,SAAW1gB,EAAK0gB,QAAQ3d,OAAS,EACxDpF,KAAK4hB,oBAAoBvf,OAAMvE,GAAW,GAAM,EAAO2jB,EAASJ,GAChEhf,GAAQA,EAAKub,WAAavb,EAAK0gB,QAC/B/iB,KAAKgjB,oBAAoB3gB,GAE7B,KAOHmf,iBACJ,MAAM,SAAEyB,EAAQ,aAAE/B,EAAY,aAAE5C,GAAiBte,KAAKH,OAChD,WAAE0e,GAAeve,KAAKkC,MACtBghB,EAA8B,GAEpC,GAAI5E,QAA+BxgB,IAAfygB,GAA4B2C,EAAa9b,OAAS,EAAG,CACrE,IAAIgc,EAA0B,GAC9B,IAAK,MAAM+B,KAAiBjC,EAAc,CACtC,GAAIiC,GAAiBA,EAAc3nB,KAAO+iB,EAAY,CAClD6C,EAAW+B,EACXnjB,KAAKsC,SAAS,CAAEkc,gBAAY1gB,IAC5B,MAGJ,GADAsjB,EAAWphB,KAAKojB,gBAAgBD,GAC5B/B,GAAYA,EAAS5lB,KAAO+iB,EAC5B,MAIR6C,GACI8B,EAAavM,KACTva,gBAACoN,OAAIlN,OAAAC,OAAA,CAACmL,IAAK0Z,EAAS5lB,IAAQynB,GACvB,IACAjjB,KAAKqjB,oBAAoBjC,GACzB,WAIbF,EAAa9e,QAAQ,CAACC,EAAqBxD,KACvCqkB,EAAavM,KACTva,gBAACoN,OAAIlN,OAAAC,OAAA,CAACmL,IAAK7I,GAAWokB,GACjBjjB,KAAKqjB,oBAAoBhhB,OAM1C,OAAO6gB,EAQHE,gBAAgB/gB,GACpB,MAAMihB,EAAWjhB,GAAQA,EAAKqf,QAC9B,GAAI4B,GAAYA,EAASle,OAAS,EAC9B,IAAK,IAAIme,EAAI,EAAGA,GAAKD,EAASle,OAAS,EAAGme,IAAK,CAC3C,GAAID,EAASC,GAAG/nB,KAAOwE,KAAKkC,MAAMqc,WAE9B,OADAve,KAAKsC,SAAS,CAAEkc,WAAYnc,aAAI,EAAJA,EAAM7G,KAC3B8nB,EAASC,GAEpB,MAAMC,EAAQxjB,KAAKojB,gBAAgBE,EAASC,IAC5C,GAAIC,EACA,OAAOA,EAInB,OAAO,KAQHH,oBAAoBnC,GACxB,OAAIA,GAAgBA,EAAaQ,SAAWR,EAAaQ,QAAQtc,OAAS,EAClEpF,KAAKH,MAAMye,mBAA0CxgB,IAA1BkC,KAAKkC,MAAMqc,WAC/Bve,KAAKyjB,eAAevC,EAAaQ,QAASR,EAAa1lB,IAG9DY,2BAAA,KACK4D,KAAK0jB,sBAAsBxC,GAC3BlhB,KAAKyjB,eAAevC,EAAaQ,QAASR,EAAa1lB,KAGzD0lB,GAAgBA,EAAatD,UAAYsD,EAAa6B,SAAW7B,EAAa6B,QAAQ3d,OAAS,EAC/FpF,KAAK4hB,oBAAoBV,EAAcA,EAAa1lB,IAAI,GAAO,GAC/D0lB,GAAgBA,EAAatD,WAAasD,EAAa6B,QACvD/iB,KAAKgjB,oBAAoB9B,EAAcA,EAAa1lB,IAAI,GAG5D,KAGHioB,eAAeH,EAA4B/E,EAAqBoF,GACpE,MAAM,aAAErF,EAAY,SAAE2E,GAAajjB,KAAKH,MAClC+jB,EAAyB5jB,KAAKH,MAAMgC,OAAOgiB,uBAAwB,EAEnEC,EAA0B9jB,KAAKH,MAAMgC,OAAOkiB,kBAD7B,EAIrB,GAAIxF,GAAcve,KAAKkC,MAAMqc,aAAeA,EAExC,OADAve,KAAKH,MAAMyD,QAAQoC,UAAU0H,MAAM,gEAC5B,KAGX,IAAKkW,GAAgC,IAApBA,EAASle,OAEtB,OADApF,KAAKH,MAAMyD,QAAQoC,UAAU0H,MAAM,4DAC5B,KAGX,IAAI4W,EAAyB,GAC7B,MAAMC,EACFX,GACAA,EAAS3kB,IAAI,CAACgf,EAAuBjH,KACjC,MAAMwN,EAAavG,EAAO+D,SAAW/D,EAAO+D,QAAQtc,OAAS,EAC7D,IAAIgc,EAMAM,EAJAN,EADA8C,GAAc5F,EACHte,KAAK0jB,sBAAsB/F,EAAQY,EAAY7H,GAE/CiH,EAAOoF,QAAU/iB,KAAK4hB,oBAAoBjE,EAAQjH,GAAO1W,KAAKgjB,oBAAoBrF,GAGjG,MAAMwG,EAAcD,GAAcN,GAA0B5jB,KAAKsd,cAAgBpK,KAAKkR,MAAMN,GAA2B,EAMvH,OALIK,IACAnkB,KAAKsd,eACL0G,EAAiBJ,EAAyB,SAAS5jB,KAAKsd,aAAazE,WAAe,GACpF6I,EAAU1hB,KAAKyjB,eAAe9F,EAAO+D,QAASpD,EAAeX,EAAOniB,QAAKsC,GAAW,IAGpF1B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK0mB,EAAQ,CAAEvb,IAAKiW,EAAOniB,GAAIC,UAAWqB,IAAWmmB,EAASxnB,UAAW0oB,GAAe,iBACxF/C,EACAM,KAIjB,OAAO1hB,KAAKqkB,YAAYL,EAAgBC,EAAa1F,EAAYoF,GAU7DD,sBAAsB/F,EAAuBY,EAAqB1f,GACtE,MAAM,OAAExC,GAAW2D,KAAKH,MACxB,OACIzD,gBAACoN,OAAIlN,OAAAC,OAAA,CACDmL,IAAK7I,GACDxC,EAAM,CACVN,QAASiE,KAAKoe,sBAAsBT,EAAQY,GAC5C+F,QAAStkB,KAAKkf,cAAa,kBACVlf,KAAKkC,MAAMqc,YAAcve,KAAKkC,MAAMqc,aAAeZ,EAAOniB,IAAG,mBAC5DwE,KAAKkC,MAAMqc,YAAcve,KAAKkC,MAAMqc,aAAeZ,EAAOniB,IAAG,cAClE+iB,IAEZZ,EAAOC,UAeZgE,oBACJjE,EACA9e,GAIiB,IAHjB0lB,IAAApf,UAAAC,OAAA,QAAAtH,IAAAqH,UAAA,KAAAA,UAAA,GACAqf,EAAArf,UAAAC,OAAA,QAAAtH,IAAAqH,UAAA,IAAAA,UAAA,GACAsc,EAAgBtc,UAAAC,OAAA,EAAAD,UAAA,QAAArH,EAChBujB,EAAiBlc,UAAAC,OAAA,EAAAD,UAAA,QAAArH,EAEjB,MAAM,KAAE2mB,EAAI,aAAEnG,GAAiBte,KAAKH,MAC9B+d,EAAWD,EAAOC,SAAWD,EAAOC,SAAW,GAC/C8G,EAAc/G,EAAOe,YAAcf,EAAOe,YAAc,GAC9D1e,KAAKhE,QAAQ2oB,cAAcC,MAAQhH,EACnC,MAAM1hB,EAAaC,iCAAuB6D,KAAKpE,iBAAkBoE,KAAKhE,SACtE,OACII,gBAACoN,OAAIlN,OAAAC,OAAA,gBACa+hB,EAAemD,OAAU3jB,EAAS,gBACjCwgB,EAAe+C,OAAWvjB,EAAS,aACtCwgB,EAAeX,EAAOhiB,eAAYmC,GAC1C2mB,EAAI,CACR/c,IAAK7I,EACLylB,QAASE,GAAYxkB,KAAKkf,cAC1Bnd,OAAQ4b,EAAOkH,iBAAmB,cAAW/mB,EAC7CgnB,YAAaP,GAAevkB,KAAKyd,qBAAqBiH,EAAa/G,GACnElhB,KAAMkhB,EAAOoF,SACT7mB,EAAU,CACdH,QAASgpB,2BAAiB/kB,KAAKpE,iBAAkBoE,KAAKhE,QAAS4hB,KAE9DD,EAAOC,UAWZoH,uBAAuBpH,EAAmBlZ,GAC9C,MAAM,KAAE+f,GAASzkB,KAAKH,MACtBG,KAAKhE,QAAQ2oB,cAAcC,MAAQhH,EACnC,MAAM1hB,EAAaC,iCAAuB6D,KAAKpE,iBAAkBoE,KAAKhE,SACtE,OAAI4hB,GAAYlZ,EAERtI,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkoB,EAAI,CAAEhoB,KAAMiI,GAAaxI,EAAU,CAAEH,QAASgpB,2BAAiB/kB,KAAKpE,iBAAkBoE,KAAKhE,QAAS4hB,KACzGA,GAIN,KAUHoF,oBAAoBrF,EAAuB9e,GAAyC,IAAzB2lB,EAAArf,UAAAC,OAAA,QAAAtH,IAAAqH,UAAA,IAAAA,UAAA,GAC/D,MAAM,KAAE8f,GAASjlB,KAAKH,MACtB,OACIzD,gBAACoN,OAAIlN,OAAAC,OAAA,CAACmL,IAAK7I,GAAWomB,EAAI,CAAEX,QAASE,GAAYxkB,KAAKkf,gBACjDvB,EAAOC,UAaZyG,YAAYa,EAAejB,EAA4BkB,EAAsBC,GACjF,MAAM,aAAEC,EAAY,SAAE9D,EAAQ,kBAAE+D,EAAiB,kBAAE7G,EAAiB,aAAEH,EAAY,uBAAEiH,GAA2BvlB,KAAKH,MAC9G2lB,GACDlH,GAAgBG,GAAkD,OAA7Bze,KAAKkC,MAAMgc,oBAAuDpgB,IAA7BkC,KAAKkC,MAAMgc,gBAAgCkH,EACpHK,GACDnH,GAAgBiH,GAA0B7U,kBAAgBC,YAAY3Q,KAAKkC,MAAMgc,iBAAmBkH,EACnGM,EAAoB1lB,KAAKsd,aAAe,GAAKkI,EAAuBH,EAAc5pB,UAAY,kBAEpG,OADAuE,KAAKsd,aAAe,EAEhBlhB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8oB,EAAY,CAAE5pB,UAAWiqB,IAC/BtpB,gBAACoN,OAAIlN,OAAAC,OAAA,GACGglB,EAAQ,CACZ9lB,UAAWqB,IACPykB,EAAS9lB,UACTypB,EACAM,GAAwB,gBACxBA,GACIxlB,KAAKH,MAAMgC,OAAOkiB,kBAClB/jB,KAAKH,MAAMgC,OAAOkiB,iBAAmB,GACrC,yBAGPE,GAEL7nB,gBAAA,OAAKX,UAAU,4BACV+pB,GACGxlB,KAAKkC,MAAMgc,eACXle,KAAKkC,MAAMgc,cAAcvf,IAAI0D,IAAI,IAAAsjB,EAAA,OAC7BvpB,gBAACoN,OAAIlN,OAAAC,OAAA,CAACmL,IAAKrF,EAAKqY,KAAS4K,EAAiB,CAAE7pB,UAAW6pB,EAAmB7pB,YACrEuE,KAAKkC,MAAMgc,eAAiBle,KAAK0f,kBAAkBrd,GACnDojB,GAA6BzlB,KAAKglB,uBAAuB3iB,EAAKwZ,QAAkC,QAA3B8J,EAAEtjB,EAAK4b,4BAAoB,IAAA0H,OAAA,EAAzBA,EAA2BjhB,cA+FvHwa,gBACClf,KAAKH,MAAMye,cACZte,KAAKsC,SAAS,CAAEic,gBAAYzgB,KAqEzBuf,a,6HC/nBf,MAAMvN,EAAYlO,IACdA,EAAMyB,kBAQGuiB,EAA+C/lB,IAAQ,IAAAgmB,EAAAC,EAAAC,EAChE,MAAM,UAAEC,EAAS,mBAAEC,EAAkB,QAAEnkB,EAAO,KAAEpG,EAAI,cAAEwqB,EAAa,WAAEC,EAAU,aAAEC,GAAiBvmB,EAClG,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKypB,GACR5pB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK0pB,EAAkB,CAAExqB,UAAWwqB,EAAmBxqB,YACvDqG,EACApG,EACDU,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2pB,EAAa,CAAEpW,SAAUA,EAAUrU,UAAmC,QAA1BoqB,EAAEK,aAAa,EAAbA,EAAezqB,iBAAS,IAAAoqB,IAAI,KAChFzpB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK4pB,EAAU,CAAE1qB,UAAgC,QAAvBqqB,EAAEK,aAAU,EAAVA,EAAY1qB,iBAAS,IAAAqqB,IAAI,MAC1D1pB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6pB,EAAY,CAAE3qB,UAAkC,QAAzBsqB,EAAEK,aAAY,EAAZA,EAAc3qB,iBAAS,IAAAsqB,IAAI,KACzDlmB,EAAMwmB,2BAQhBT,a,oGCgBAU,UAvC6GzmB,IAAQ,IAAA0mB,EAChI,MAAM,kBAAEC,EAAiB,QAAE1kB,EAAO,MAAE2kB,GAAU5mB,GACxC,4BAAE6mB,GAAgC7mB,EAAMO,UAG9C,OAFqB,KAEkB,QAAnCmmB,EAAA1mB,EAAMqG,KAAKygB,kBAAkBvX,cAAM,IAAAmX,OAAA,EAAnCA,EAAqCnhB,QAEjChJ,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAKiqB,GACP1kB,EACD1F,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,IACZW,IAAAge,cAAA,OAAK3e,UAAU,uCACXW,IAAAge,cAAA,MAAI3e,UAAU,+CACToE,EAAMO,UAAUwmB,8BAErBxqB,IAAAge,cAAA,KAAG3e,UAAU,4CACRoE,EAAMO,UAAUymB,2BAErBzqB,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,oDACZW,IAAAge,cAAC/d,SAAM,CACHG,KAAK,SAASwP,MAAO0a,EAA2B,aAAcA,EAC9DjrB,UAAU,0DACVgB,KAAMmI,YAAW,OAAQ/E,EAAMyD,QAAQgB,gBAEtCoiB,OASzBtqB,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAKiqB,GACP1kB,EACA2kB,K,ukBCzCN,MAAMK,EAAmEvrB,IAA4E,IAAAwrB,EAAAC,EAAAC,EAAA,IAA3E,WAACC,EAAU,iBAAEnO,EAAgB,SAAEoO,EAAQ,aAAEC,EAAY,gBAAEC,GAAgB9rB,EAEpJ,MAGMoa,GADkBuR,EAAW/R,iBAAmB,IACzBrS,KAAKwkB,GAAgB,cAAXA,EAAE9R,MACzC,OACEpZ,IAAAge,cAAA,WACEhe,IAAAge,cAAA,OAAK3e,UAAW,sBACdW,IAAAge,cAAA,MAAI3e,UAAW,8BAA4B,sBAC3CW,IAAAge,cAAA,KAAG3e,UAAW,4BAA6BM,QAASA,IAAM8I,OAAO0iB,WAGnEnrB,IAAAge,cAAA,OAAK3e,UAAW,qBACdW,IAAAge,cAAA,OAAK3e,UAAU,8BACbW,IAAAge,cAAA,OAAK3e,UAAW,8BAA4B,qBAC5CW,IAAAge,cAAA,OAAK3e,UAAU,8BACbW,IAAAge,cAAA,OAAK3e,UAAW,6BACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,cAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqCka,EAAK6R,YAE1DprB,IAAAge,cAAA,OAAK3e,UAAU,2BACbW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,eAC7CW,IAAAge,cAAA,KACE3e,UAAW,oCAAqCsd,EAAiB0O,WAAWP,EAAWQ,gBAAkB,CACzGC,KAAM,UACNC,MAAO,QACPC,IAAK,eAIVX,EAAW5lB,QAAWlF,IAAAge,cAAA,OAAK3e,UAAU,8BACpCW,IAAAge,cAAA,OAAK3e,UAAW,8BACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,UAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqCyrB,EAAW5lB,WAExD,MAEZlF,IAAAge,cAAA,OAAK3e,UAAU,0BACbW,IAAAge,cAAA,OAAK3e,UAAU,oEACbW,IAAAge,cAAA,OAAK3e,UAAW,8BAA4B,uBAC5CW,IAAAge,cAAA,OAAK3e,UAAU,8BACbW,IAAAge,cAAA,OAAK3e,UAAW,+BACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,iBAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqC0rB,aAAQ,EAARA,EAAUjnB,YAE/D9D,IAAAge,cAAA,OAAK3e,UAAU,2BACbW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,mBAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqC0rB,aAAQ,EAARA,EAAUW,kBAInE1rB,IAAAge,cAAA,OAAK3e,UAAU,oEACbW,IAAAge,cAAA,OAAK3e,UAAW,8BAA4B,wBAC5CW,IAAAge,cAAA,OAAK3e,UAAU,8DACbW,IAAAge,cAAA,OAAK3e,UAAW,mCACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,qBAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAA+D,QAA7BsrB,EAAGG,EAAWa,uBAAe,IAAAhB,OAAA,EAA1BA,EAA4BvR,MAC/EpZ,IAAAge,cAAA,KAAG3e,UAAW,oCAA+D,QAA7BurB,EAAGE,EAAWa,uBAAe,IAAAf,OAAA,EAA1BA,EAA4BgB,cAEjF5rB,IAAAge,cAAA,OAAK3e,UAAW,+BACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,oBAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqC2rB,QAO7DhrB,IAAAge,cAAA,SAAO3e,UAAW,SAChBW,IAAAge,cAAA,SAAO3e,UAAW,6BAClBW,IAAAge,cAAA,UACEhe,IAAAge,cAAA,kBACAhe,IAAAge,cAAA,qBACAhe,IAAAge,cAAA,yBACAhe,IAAAge,cAAA,mBACAhe,IAAAge,cAAA,sBACAhe,IAAAge,cAAA,qBAGFhe,IAAAge,cAAA,aACsB,QADtB6M,EACCC,EAAWe,kBAAU,IAAAhB,OAAA,EAArBA,EAAuBtoB,IAAI,CAACupB,EAAIxR,KAAQ,OACvCta,IAAAge,cAAA,UACEhe,IAAAge,cAAA,UAAK8N,EAAGC,YACR/rB,IAAAge,cAAA,UAAK8N,EAAGE,QACRhsB,IAAAge,cAAA,WAnFqBiO,EAmFMH,EAAGE,QAnFgE,QAA9CE,EAAAjB,EAAgBvkB,KAAKylB,GAAKA,EAAEH,SAAWC,UAAO,IAAAC,OAAA,EAA9CA,EAAgDE,cAAe,IAoF5GN,EAAG5mB,QAAUlF,IAAAge,cAAAhe,IAAAqsB,SAAA,KAAErsB,IAAAge,cAAA,W,IAAOhe,IAAAge,cAAA,QAAM3e,UAAW,iCAA+B,UACvEW,IAAAge,cAAA,QAAM3e,UAAW,oCAAqCysB,EAAG5mB,UAAqB,MAEhFlF,IAAAge,cAAA,UAAKrB,EAAiBC,eAAekP,EAAGQ,QACxCtsB,IAAAge,cAAA,UAAK8N,EAAGS,UACRvsB,IAAAge,cAAA,UAAKrB,EAAiBC,eAAekP,EAAGU,eAzFnBP,MAAcC,MA8FzClsB,IAAAge,cAAA,OAAK3e,UAAW,8BACdW,IAAAge,cAAA,KAAG3e,UAAW,iCAA+B,gBAC7CW,IAAAge,cAAA,KAAG3e,UAAW,oCAAqCsd,EAAiBC,eAAekO,EAAW0B,iB,4GCvF3Fjf,EAAgEpO,IAAA,IAAC,sBAC1EqO,GAIHrO,EAAA,OACGa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKqN,KAMDC,EAAmDC,IAAA,IAAC,eAAEC,EAAc,UAAEC,EAAS,eAAEC,GAAgBH,EAAA,OAC1G1N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwN,GACLC,IAIIE,EAA2DC,IAAA,IAAC,cAAEC,EAAa,QAAEtI,EAAO,MAAEuI,EAAK,WAAEC,EAAU,QAAEvH,EAAO,mBAAEwH,EAAkB,aAAEC,GAAcL,EAAA,OAC7J/N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6N,GACLtI,EACAuI,EACAtH,EACAwH,IAIIE,EAA2CC,IAAA,IAAC,WAAEC,EAAU,SAAEC,EAAQ,gBAAEC,EAAe,WAAEC,GAAYJ,EAAA,OAC1GtO,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKoO,GACLC,GAAYxO,gBAAC8N,EAA8B5N,OAAAC,OAAA,GAAKqO,IAChDE,GACG1O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsO,GACLC,EAAWnM,IAAIqL,GACZ5N,gBAACyN,EAA0BvN,OAAAC,OAAA,CAACmL,IAAKsC,EAAU9D,KAAK8D,UAAUe,QAAYf,QAO7EgB,EAA6CC,IAAA,IAAC,YAAEC,EAAW,OAAEC,GAAQF,EAAA,OAC9E7O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2O,GACLC,EAAOxM,IAAI,CAACyM,EAAOvM,IAChBzC,gBAACqO,EAAsBnO,OAAAC,OAAA,CAACmL,IAAK7I,GAAWuM,OAKvCC,EAAyDC,IAAA,IAAC,kBAAEC,EAAiB,QAAEzJ,EAAO,SAAE0J,EAAQ,SAAEC,EAAQ,IAAEC,EAAG,YAAEC,EAAW,aAAEC,GAAcN,EAAA,OACrJlP,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgP,GACLzJ,EACA0J,EACAC,EACAC,EACAC,EACAC,IAIIC,EAAsDC,IAAA,IAAC,oBAAEC,EAAmB,MAAEC,EAAK,QAAEC,GAASH,EAAA,OACvG1P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwP,GACLC,EACAC,IAIIC,EAAyCC,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OACnH/P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6P,GACLC,EACAC,EACAC,IAyCMC,UApCgIC,IAW1I,IAAAoc,EAAAC,EAAA,IAX2I,YAC5IviB,EAAW,QACXzE,EAAO,mBACP4K,EAAkB,MAClBC,EAAK,QACLC,EAAO,aACPC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJ5B,GAEHsB,EADIsc,EAAIC,YAAAvc,EAAAwc,GAEL,MACOC,EAASC,GAAc/sB,WAAuB,IAC/C8qB,EAAsC,QAA5B2B,EAAGE,EAAK7iB,KAAK+O,SAAS7F,cAAM,IAAAyZ,OAAA,EAAzBA,EAA2B3B,WACxCG,GAA2C,QAAzByB,EAAAC,EAAK7iB,KAAK+O,SAAS7F,cAAM,IAAA0Z,OAAA,EAAzBA,EAA2BzB,kBAAmB,GAKtE,OAJAjrB,YAAgB,KACZ+sB,EAAWtkB,OAAOukB,eAAeC,QALhB,aAKyC,IAC1DD,eAAeE,WANE,aAOlB,IAECltB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKgK,GAEPoG,EACAC,EACCsa,GAAc9qB,gBAAC0qB,EAAuB,CAAC/N,iBAAkBgQ,EAAKzlB,QAAQyV,iBAAkBmO,WAAYA,EAAYC,SAAU4B,EAAK7iB,KAAKiT,oBAAoB/J,OAAQgY,aAAc8B,EAAS7B,gBAAiBA,IAEzM3a,EAGAI,GAAW1Q,gBAACyP,EAAwBvP,OAAAC,OAAA,GAAKuQ,IACzCC,GAAQ3Q,gBAAC8P,EAAqB5P,OAAAC,OAAA,GAAKwQ,O,+EChHhD,MAgEMwc,EAA0BA,CAC5BC,EACAC,EACAC,EACAC,IAEOvtB,eACHotB,EAAWI,MACX,GACAJ,EAAWK,YACXC,EAAgBN,EAAYC,EAAYC,EAAgBC,GACxDH,EAAWO,aAIbD,EAAkBA,CACpBjqB,EACA4pB,EACAC,EACAC,IAEID,EACOttB,eAAmByD,EAAMmqB,UAAW,GAAIC,EAAWP,EAAgBC,GAAmBO,EAAcT,IAExG,KAGLS,EAAiBrqB,IACnB,MAAM,SAAEsqB,EAAQ,oBAAEC,EAAmB,wBAAEC,GAA4BxqB,EACnE,OAAIsqB,EAEI/tB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8tB,GACNjuB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6tB,GACLD,EAASxrB,IAAI,CAACymB,EAASvmB,IACpBzC,gBAACA,WAAc,CAACsL,IAAK7I,GAAQumB,MAM1C,MAGL6E,EAAaA,CAACpqB,EAAyB8pB,KACzC,MAAM,iBAAEW,EAAgB,eAAEZ,GAAmB7pB,EAC7C,OAAI6pB,IAAmBC,EACZvtB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+tB,GAAmBZ,GAEjC,MAGLa,EAA2B1qB,IAC7B,MAAM,2BAAE2qB,EAA0B,sBAAEC,EAAqB,2BAAEC,GAA+B7qB,EAC1F,OAAI4qB,EAEIruB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKiuB,GACLC,EAAsB9rB,IAAI,CAACgsB,EAAU9rB,IAClCzC,gBAACA,WAAc,CAACsL,IAAK7I,GAChB8rB,EACAF,GAAyBA,EAAsB5rB,EAAQ,IAAM6rB,KAO3E,MAGLE,EAAe/qB,IACjB,MAAM,MAAEmM,EAAK,eAAE6e,GAAmBhrB,EAClC,OAAImM,EAEI5P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsuB,GACNzuB,gBAAA,UACK4P,EAAM8e,YACN9e,EAAM+e,U,IAAY/e,EAAMgf,W,MAKlC,MAGIC,UApJ8DprB,IAAQ,IAAAqrB,EACjF,MAAM,sBACFC,EAAqB,SACrBC,EAAQ,WACRjjB,EAAU,kBACVkjB,EAAiB,wBACjBC,EAAuB,cACvBC,EAAa,SACbC,EAAQ,YACRC,EAAW,kBACXC,EAAiB,eACjBC,EAAc,WACdlC,EAAU,kBACVmC,EAAiB,cACjBC,EAAa,qBACbC,EAAoB,iCACpBC,EAAgC,aAChC5sB,EAAY,uBACZ6sB,EAAsB,mBACtBC,GACApsB,EACE8pB,EAAmE,QAAnDuB,EAAGrrB,EAAMyD,QAAQgB,cAAcqC,eAAeulB,aAAK,IAAAhB,OAAA,EAAhDA,EAAkDiB,eAC3E,OAAIX,EAEIpvB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4uB,GACPS,GAAqBrB,EAAwBqB,GAC7ChB,EAAYe,GACZJ,EACAE,EACAlC,EAAwBmC,EAAmBjC,EAAYoC,EAAelC,GACvEvtB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKyvB,GAAyBC,GACnC7vB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8uB,GACLlsB,EACAisB,GAEJjjB,GAKT/L,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4uB,GACPS,GAAqBxvB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuvB,GAAuBvB,EAAwBqB,IAC/ExvB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwvB,GACLtC,GAAcS,EAAcT,GAC7BrtB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+uB,GACNlvB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKyvB,GAAyBC,GACnC7vB,gBAAA,OAAKX,UAAU,iDACVkwB,GAAkBf,EAAYe,GAC9BJ,GAELnvB,gBAAA,OAAKX,UAAU,6CACVowB,IAAkBlC,GAAoBM,EAAW4B,IAEtDzvB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8uB,GACLlsB,EACAisB,GAEJjjB,O,+ECvDrB,MAAMikB,EAA2BC,IAA8D,IAAAC,EAC3F,OACIlwB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8vB,EAAkBE,uBACiB,QADID,EAC5CD,EAAkBG,8BAAsB,IAAAF,OAAA,EAAxCA,EAA0C3tB,IAAK0D,GAExCjG,2BAAA,KACKiG,EAAKP,QACN1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8F,EAAKoqB,gCACVpqB,EAAK3G,KACNU,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8F,EAAKqqB,4BAA6BrqB,EAAKsqB,YAkE9DC,UApD4C/sB,IACvD,MAAM,sBACFgtB,EAAqB,eACrBC,EAAc,iBACdC,EAAgB,MAChB/gB,EAAK,KACLtQ,EAAI,MACJixB,EAAK,MACL1Q,EAAK,sBACL+Q,EAAqB,UACrBC,EAAS,eACTC,EAAc,kBACdb,GACAxsB,EAIEstB,EADoBlR,EAAMpc,MAAM6a,IACGqS,EAAiBtxB,UAApB,aAA+CsxB,EAAiBtxB,UAApB,gBAElF,OAAIwxB,EAEI7wB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKswB,GACRzwB,gBAACoN,OAAIlN,OAAAC,OAAA,GACGywB,EAAqB,CACzBvwB,KAAMwwB,EACNxxB,UAAWuxB,EAAwBA,EAAsBvxB,UAAY,GAAE,aAC3DyxB,IAEZ9wB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuwB,GAAiB7Q,IAE/B7f,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwwB,GACL/gB,EACAtQ,EACAixB,EACAN,GAAqBD,EAAwBC,KAM1DjwB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKswB,GACRzwB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuwB,GAAiB7Q,GAC3B7f,gBAACoN,OAAI,CAAC/N,UAAW0xB,GACZnhB,EACAtQ,EACAixB,EACAN,GAAqBD,EAAwBC,O,u0BCzC9D,IAAMe,EAAN,cAAkBhxB,YAKdwD,YAAYC,GACRE,MAAMF,GALM,KAAAwtB,cAAwB,YAgFjC,KAAA1rB,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAgCtG,KAAAgwB,YAAexxB,IAC5BkE,KAAKutB,WAAazxB,GAsCL,KAAA0xB,SAAW,CAAC3uB,EAAerD,IAAgBiyB,IACxD,MAAMC,EAAiB,CAAEC,mBAAoB9uB,EAAO+uB,MAAOpyB,GAC3DwE,KAAKH,MAAMyD,QAAQgB,cAAcupB,OAAOC,8BAAoBJ,GAAiBA,GAC7E1tB,KAAKsC,SAAS,CAAEyrB,gBAAiBlvB,IAGjC,MAAM8H,EAAiB3G,KAAKH,MAAMyD,QAAQiC,QACpCyoB,EAAShuB,KAAKiuB,iBAAiBtnB,EAAgB3G,KAAKqtB,cAAe,GAAGrtB,KAAKH,MAAMrE,MAAM0yB,OAAOrvB,EAAQ,MAC5G8H,GAAkB9B,OAAOspB,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,IAGpD,KAAAM,WAAa,CAACzvB,EAAerD,IAAgBiyB,IAC1D,GAAkB,KAAdA,EAAE7Q,QAAgB,CAClB,MAAM8Q,EAAiB,CAAEC,mBAAoB9uB,EAAO+uB,MAAOpyB,GAC3DwE,KAAKH,MAAMyD,QAAQgB,cAAcupB,OAAOC,8BAAoBJ,GAAiBA,GAC7E1tB,KAAKsC,SAAS,CAAEyrB,gBAAiBlvB,IAGjC,MAAM8H,EAAiB3G,KAAKH,MAAMyD,QAAQiC,QACpCyoB,EAAShuB,KAAKiuB,iBAAiBtnB,EAAgB3G,KAAKqtB,cAAe,GAAGrtB,KAAKH,MAAMrE,MAAM0yB,OAAOrvB,EAAQ,MAC5G8H,GAAkB9B,OAAOspB,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,GAGrE,GAAkB,KAAdP,EAAE7Q,SAAgC,KAAd6Q,EAAE7Q,QAAgB,CACtC,MAAM,MAAE7V,GAAU/G,KAAKH,MACjB0uB,EAAcxnB,GAASA,EAAMynB,UAAYznB,EAAMynB,SAASppB,QAAW,EAEzE,GAAkB,KAAdqoB,EAAE7Q,QAAgB,CAEd/d,EAAQ,IAAM0vB,IACd1vB,GAAS,GAEb,MAAM6uB,EAAiB,CAAEC,mBAAoB9uB,EAAQ,EAAG+uB,MAAOpyB,GAC/DwE,KAAKH,MAAMyD,QAAQgB,cAAcupB,OAAOC,8BAAoBJ,GAAiBA,GAC7E1tB,KAAKsC,SAAS,CAAEyrB,gBAAiBlvB,EAAQ,IAGzC,MAAM8H,EAAiB3G,KAAKH,MAAMyD,QAAQiC,QACpCyoB,EAAShuB,KAAKiuB,iBAAiBtnB,EAAgB3G,KAAKqtB,cAAe,GAAGrtB,KAAKH,MAAMrE,MAAM0yB,OAAOrvB,EAAQ,MAC5G8H,GAAkB9B,OAAOspB,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,QAG9D,GAAkB,KAAdP,EAAE7Q,QAAgB,CAEX,IAAV/d,IACAA,EAAQ0vB,GAEZ,MAAMb,EAAiB,CAAEC,mBAAoB9uB,EAAQ,EAAG+uB,MAAOpyB,GAC/DwE,KAAKH,MAAMyD,QAAQgB,cAAcupB,OAAOC,8BAAoBJ,GAAiBA,GAC7E1tB,KAAKsC,SAAS,CAAEyrB,gBAAiBlvB,EAAQ,IAGzC,MAAM8H,EAAiB3G,KAAKH,MAAMyD,QAAQiC,QACpCyoB,EAAShuB,KAAKiuB,iBAAiBtnB,EAAgB3G,KAAKqtB,cAAe,GAAGrtB,KAAKH,MAAMrE,MAAM0yB,OAAOrvB,MACpG8H,GAAkB9B,OAAOspB,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,MAvMzE,MAAM,gBAAES,GAAoBzuB,KAAKH,MAAMgC,QACjC,MAAEkF,GAAU/G,KAAKH,MACjB0uB,EAAcxnB,GAASA,EAAMynB,UAAYznB,EAAMynB,SAASppB,QAAW,EACzE,IAAIspB,EAAeD,GAAmBA,GAAmBF,GAAcE,EAAkB,EAAIA,EAAkB,EAAI,EACnH,MAAME,EACD3uB,KAAKH,MAAMyD,SACRtD,KAAKH,MAAMyD,QAAQiC,SACnBvF,KAAKH,MAAMyD,QAAQiC,QAAQ2mB,OAC3BlsB,KAAKH,MAAMyD,QAAQiC,QAAQ2mB,MAAM0C,WACrC,GACJ,IAAIC,EAAwB,EAC5B,GAAIF,EAAYG,QAAQ,KAAO,EAAG,CAC9B,MAAMC,EAAMJ,EAAYK,MAAM,KACbD,EAAI,KACJ/uB,KAAKH,MAAMrE,KACxBqzB,EAAgB3xB,OAAOC,SAAS4xB,EAAI,GAAI,KAGhDL,EAAeG,EAAgB,GAAKA,GAAiBN,EAAaM,EAAgB,EAAIH,EACtF1uB,KAAKkC,MAAQ,CAAE6rB,gBAAiBW,GAEhC1uB,KAAKivB,cAAgBjvB,KAAKivB,cAActO,KAAK3gB,MAC7CA,KAAKkvB,eAAiBlvB,KAAKkvB,eAAevO,KAAK3gB,MAC/CA,KAAKwtB,SAAWxtB,KAAKwtB,SAAS7M,KAAK3gB,MACnCA,KAAKsuB,WAAatuB,KAAKsuB,WAAW3N,KAAK3gB,MACvCA,KAAKiuB,iBAAmBjuB,KAAKiuB,iBAAiBtN,KAAK3gB,MACnDA,KAAKutB,WAAa,KAGfxnB,sBAAsBC,EAAgCC,GACzD,OAAIjG,KAAKkC,QAAU+D,GAAajG,KAAKH,MAAMqG,OAASF,EAAUE,KAM3DC,SACH,MAAM,MAAEY,GAAU/G,KAAKH,OACjB,QAAEiC,EAAO,UAAErG,GAAcuE,KAAKH,MAAMgC,OAEpCstB,EAAmBrtB,GACrB1F,gBAACgM,IAAa,CACV3M,UAAU,iCACVgS,IAAK3L,EAAQ2L,KAAO,KACpB/R,KAAMoG,EAAQpG,KACd+K,UAAW,CAAEC,OAAQ1G,KAAK2B,oBAAqBgF,eAAgB3G,KAAKH,MAAMyD,QAAQiC,WAGpFgpB,EAAcxnB,GAASA,EAAMynB,UAAYznB,EAAMynB,SAASppB,QAAW,EAMnEgqB,EAAY/oB,IAAA,GACXrG,KAAKH,OAAK,IACbwvB,aAAc,CACV9oB,YAAavG,KAAKH,MAClBpE,UAAWqB,IAAW,SAAUrB,IAEpC6zB,cAAe,CAAE7zB,UAAW,yBAC5B8zB,YAAa,CAAE9zB,UAAW,sBAAuBgS,IAAK,KAAiBjR,KAAM,WAC7EsF,QAASqtB,EACTttB,OAAQ7B,KAAKH,OAASG,KAAKH,MAAMgC,OACjC2tB,iBAAkB,CACd/hB,IAAK,MACLhS,UAAW,0BAEfg0B,YAAalB,EAAa,GAAKxnB,EAAMynB,SAAS7vB,IAAI,CAAC0D,EAAuBxD,IAAkBmB,KAAKkvB,eAAe7sB,EAAMxD,IACtH6wB,WAAYnB,EAAa,GAAKxnB,EAAMynB,SAAS7vB,IAAI,CAAC0D,EAAuBxD,IAAkBmB,KAAKivB,cAAc5sB,EAAMxD,MAExH,OAAOmB,KAAKH,MAAMiH,WAAWsoB,GAK1BO,qBACH,MAAM,KAAEzpB,GAASlG,KAAKH,MACtB,IAAKG,KAAKH,MAAMyD,QAAQiC,QAAQqqB,OAAOC,SAAU,CAC7C,MAAMC,EAAkB5pB,GAAQA,EAAKwnB,gBAAkBxnB,EAAKwnB,eAAete,QAAUlJ,EAAKwnB,eAAete,OAAOwe,MAChH,GAAIkC,EACI9vB,KAAKH,MAAMrE,KAAOs0B,GAClB9vB,KAAKutB,YAAcvtB,KAAKutB,WAAWznB,YAEpC,CACH,MAAM6oB,EACD3uB,KAAKH,MAAMyD,SACRtD,KAAKH,MAAMyD,QAAQiC,SACnBvF,KAAKH,MAAMyD,QAAQiC,QAAQ2mB,OAC3BlsB,KAAKH,MAAMyD,QAAQiC,QAAQ2mB,MAAM0C,WACrC,GACJ,GAAID,EAAYG,QAAQ,KAAO,EAAG,CAClBH,EAAYK,MAAM,KACT,KACJhvB,KAAKH,MAAMrE,IACxBwE,KAAKutB,YAAcvtB,KAAKutB,WAAWznB,WAe/CmpB,cAAc5sB,EAAuBxD,GACzC,MAAM,KAAEqH,GAASlG,KAAKH,MAChB8tB,EACFznB,GAAQA,EAAKwnB,gBAAkBxnB,EAAKwnB,eAAete,QAAUlJ,EAAKwnB,eAAete,OAAOue,mBACtFmC,EAAkB5pB,GAAQA,EAAKwnB,gBAAkBxnB,EAAKwnB,eAAete,QAAUlJ,EAAKwnB,eAAete,OAAOwe,MAC1GmC,OACqBjyB,IAAvB6vB,GAAoCmC,IAAoB9vB,KAAKH,MAAMrE,GAC7DmyB,IAAuB9uB,EACvBmB,KAAKkC,MAAM6rB,kBAAoBlvB,EACnCmxB,EAAYC,uBAAapxB,EAAOmB,KAAKH,MAAMrE,IAEjD,OACIY,gBAAA,MACIsL,IAAK7I,EACLpD,UAAU,yBACV+e,SAAUuV,EAAW,GAAK,EAC1Bh0B,QAASiE,KAAKwtB,SAAS3uB,EAAOmB,KAAKH,MAAMrE,IACzCuhB,UAAW/c,KAAKsuB,WAAWzvB,EAAOmB,KAAKH,MAAMrE,IAC7CuC,IAAKiC,KAAKkC,MAAM6rB,kBAAoBlvB,EAAQmB,KAAKstB,iBAAcxvB,EAAS,gBACzDkyB,EAAS,gBACTD,EACfvzB,KAAK,OAELJ,gBAACA,WAAc,CAACsL,IAAK7I,GAChBzC,eAAmBiG,EAA4B,CAC5C2G,YAAaM,cAAYI,UACzBwmB,WAAYrxB,IAAUmB,KAAKkC,MAAM6rB,gBACjCoC,UAAWtxB,EACX+uB,MAAO5tB,KAAKH,MAAMrE,OAkE9B0zB,eAAe7sB,EAAuBxD,GAC1C,OACIzC,gBAACA,WAAc,CAACsL,IAAK7I,GAChBzC,eAAmBiG,EAA4B,CAC5C2G,YAAaM,cAAYC,WACzB2mB,WAAYrxB,IAAUmB,KAAKkC,MAAM6rB,gBACjCoC,UAAWtxB,EACX+uB,MAAO5tB,KAAKH,MAAMrE,MAM1ByyB,iBAAiBtnB,EAA0CypB,EAAmBC,GAClF,IAAIC,EAGAA,EADAloB,IAA0BC,UACpB,IAAIkoB,IAAI1rB,OAAOC,SAASrI,MAExB,IAAI8zB,IAAI5pB,EAAe2pB,IAAIE,WAAW/zB,MAGhD,MAAMmzB,EAAS,IAAI/qB,OAAO4rB,gBAAgBH,EAAII,QAG9C,OAFAd,EAAOe,IAAIP,EAAWC,GACtBC,EAAII,OAASE,mBAAmBhB,EAAO/W,YAChCyX,EAAIzX,aA5ObuU,EAAGyD,YAAA,CADRjjB,KACKwf,GAgPSA,a,+ECpRf,MAAM0D,EAAoDv1B,IAA4D,IAA3D,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,EAAK,eAAED,GAAgB9D,EAE9G,OACIa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2C,IACJG,GAAkBP,GAClBO,GAAkBF,EACnBG,IAkCEyxB,UA7B+ClxB,IAC1D,MAAM,eAAEyG,EAAc,iBAAEE,EAAgB,QAAE1E,EAAO,mBAAE8E,GAAuB/G,GAEpE,YAAE0H,EAAW,QAAEE,EAAO,MAAED,EAAK,aAAErI,EAAY,WAAEwI,GAAef,EAElE,OACIxK,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK+J,GACRlK,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKiK,GACL1E,EACD1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgL,GACLC,GACGA,EAAM7I,IAAK0D,GACAjG,gBAAC00B,EAAkBx0B,OAAAC,OAAA,CAACmL,IAAKrF,EAAK7G,IAAQ6G,KAEpDlD,GACGA,EAAaR,IAAI,CAACyO,EAAwBvO,IAC/BzC,gBAACA,WAAc,CAACsL,IAAK7I,GAAQuO,IAE3C3F,GACGA,EAAQ9I,IAAI,CAACqyB,EAAyBnyB,IAC3BzC,gBAACA,WAAc,CAACsL,IAAK7I,GAAQmyB,IAE3CrpB,O,+ECENspB,UA9BoDpxB,GAC3DA,EAAMqxB,4BAEF90B,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAMsxB,uBACbtxB,EAAMuxB,wBACNvxB,EAAMwxB,wBACNxxB,EAAMyxB,4BAKfzxB,EAAM0xB,kCAEFn1B,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAMsxB,uBACbtxB,EAAMuxB,wBACNvxB,EAAM0xB,mCAMfn1B,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAMsxB,uBACbtxB,EAAM2xB,2BACN3xB,EAAMuxB,wBACNvxB,EAAM4xB,sBACN5xB,EAAM6xB,4B,2IC9BZ,MAAMC,EAAyD9xB,IAClE,MAAM,WAAE0N,EAAU,WAAEC,EAAU,eAAEE,GAAmB7N,EACnD,OAAK0N,GAAoC,IAAtBA,EAAWnI,OAK1BhJ,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAKiR,GACPD,EAAW5O,IAAI,CAACgsB,EAAqB9rB,IAE9BzC,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAKmR,EAAc,CAAEhG,IAAK7I,IAC1B8rB,MARjB9qB,EAAMyD,QAAQoC,UAAU0H,MAAM,+CACvB,OAeAukB,a,yHCVf,MAAM3X,EAAuBC,IAEzB,MAAM,4BAAEC,EAA2B,QAAEC,GAAYF,EAEjD,OACI7d,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAK2d,GACLC,IA4FPE,EAAiCA,CAACC,EAA+Bza,KAAsE,IAAA0a,EACzI,MAAO,CACHL,4BAA6B,CACzBzM,IAAK,KACLhS,UAAW,mCACXe,KAAM,MACNge,SAAU,EACV9S,IAAK,EACL,aAAc,GACd,iBAAiB,GAErByS,QACI/d,IAAAge,cAACK,IAAK,CACF9T,eAAgB9G,EAAMyD,QAAQgB,cAAcqC,eAC5ClL,UAAU,0CACVif,IAAI,QACJC,aAAc9a,EAAMyD,QAAQiC,QAAQoV,aACpCL,cAAkD,QAArCC,EAAE1a,EAAMgC,OAAO+Y,8BAAsB,IAAAL,IAAID,EACtDO,oBAAoB,YAoB9BC,EAAgD,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,KAClDC,GAAI,CAAEH,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,MAEtDE,UAAU,EACVC,iBAAiB,GASfC,EAAmBA,CACrBC,EACA3b,KAGA,MAAM,yBAAE4b,EAAwB,kCAAEC,GAAsCF,GAClE,MAAEtZ,EAAK,WAAEyZ,GAAe9b,EACxB+b,EA/BoBpU,IACnBA,aAAK,EAALA,EAAO7I,IAAI0D,IACP,CACHwZ,QAASxZ,EAAK8X,QAAQta,MAAMgc,QAC5BnB,IAAKrY,EAAK8X,QAAQta,MAAM6a,OA2BNoB,CAAqBH,EAAWnU,OAEpDA,EAENtF,EAAM6Z,YAAcH,GAAkD,UAA7BA,EAAkB,GAAGlB,IAAkB,CAACL,EAA+BS,EAA+Bjb,IAE3I+b,aAAiB,EAAjBA,EAAmBjd,IAAI,CAAC0D,EAAkB7G,IAhJhBwgB,EAC9BC,EACA3B,EACA4B,EACAC,EACAtc,KACqC,IAAAuc,EAKrC,MAAMrgB,EAAUA,KAAK,IAAAsgB,EAAAC,EACG,QAApBD,EAAAxc,EAAM0c,sBAAc,IAAAF,GAApBA,EAAAG,KAAA3c,GAC4B,QAA5Byc,EAAAzc,EAAM4c,8BAAsB,IAAAH,GAA5BA,EAAAE,KAAA3c,EAA+Bqc,GAC/Brc,EAAMqC,MAAMwa,YAAcR,GAYxBS,EAAiB/a,IACfA,EAAMgb,UAAYC,WAASC,QAC3Blb,EAAMyB,iBACNtH,MAIR,MAAO,CACHme,4BAA6B,CACzBzM,IAAK,KACLhS,UAnBQqB,IACZ,mCACAqf,IAAwBD,EAAU,0CAA4C,IAkB1E1f,KAAM,eACNkL,IAAKwU,GAET/B,QACI/d,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,yBACZW,IAAAge,cAAC/d,SAAM,CACHG,KAAK,MAAK,aACEyf,EAAMJ,QAAO,gBACVM,IAAwBD,EAAO,gBAC/B,GAAGrc,EAAMrE,sBAAsB0gB,IAC9CzgB,UAAU,sCACVM,QAASA,EACTghB,UAAWJ,GACXvgB,IAAAge,cAACK,IAAKne,OAAAC,OAAA,CACFoK,eAAgB9G,EAAMyD,QAAQgB,cAAcqC,eAC5ClL,UAAU,+BACNwgB,EAAK,CACTtB,aAAc9a,EAAMyD,QAAQiC,QAAQoV,aACpCL,cAAkD,QAArC8B,EAAEvc,EAAMgC,OAAO+Y,8BAAsB,IAAAwB,IAAI9B,EACtDO,oBAAoB,cAG5Bze,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,kCACZW,IAAAge,cAAC/d,SAAM,CACH0gB,UAAWJ,EACX3Q,MAAOnM,EAAMO,UAAU4c,oBAAqBxgB,KAAK,SACjDf,UAAU,+CACVM,QAASA,QAgFgCigB,CAA0B3Z,EAC/EyY,EAA+Btf,EAAI0G,EAAMwa,YAAa7c,IAE9D,OACIzD,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAKkf,GACNrf,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAKmf,GACLlU,aAAK,EAALA,EAAO7I,IAAIqb,MAuBbiD,UAZ4Cpd,IAEvD,MAAM,cAAEqd,EAAa,WAAEvB,EAAU,aAAEwB,EAAY,MAAEC,GAAUvd,EAC3D,OACIzD,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAK4gB,GACR/gB,IAAAge,cAAC5Q,OAAIlN,OAAAC,OAAA,GAAK2gB,IACTE,EACA7B,EAAiBI,EAAY9b,M,qJCrMnC,MAAMiI,EAAoDjI,IAC7D,MAAM,OAAEkI,EAAM,OAAEC,EAAM,QAAEC,EAAO,oBAAEC,EAAmB,WAAEC,GAAetI,EACrE,GAAIuI,IAASC,UAAW,CACpB,MAAMC,EAAgBC,SAASC,iBAAiB,qEAChDC,QAAQC,IAAIJ,GACZA,EAAclG,QAAQuG,GAAKA,EAAEC,aAAa,OAAQ,MAEtD,OACIxM,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAM0G,aACbwB,EACAG,EACAF,EACAC,EACAE,IAKEL,a,0tBCER,MAAM8pB,UAAkBx1B,gBAG3BwD,YAAmBC,GACfE,MAAMF,GAsEH,KAAAgyB,iBAAoBjwB,IACvB5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,OAO5C,KAAAw0B,sBAAyBlwB,IAC5B5B,KAAKH,MAAMgC,OAAOkwB,UAAYnwB,EAAMG,OAAOzE,OA9E3C0C,KAAKgyB,sBAAwB51B,cAG1B+J,SAAM,IAAA8rB,EACT,MAAM,QAAEnwB,EAAO,UAAEiwB,GAAc/xB,KAAKH,MAAMgC,OAIpCqwB,EAAqBH,GACvB31B,gBAAC+1B,IAA0B,CACvBz2B,KAAMq2B,EACNt2B,UAAU,8BACVgL,UAAW,CAAEC,OAAQ1G,KAAK8xB,sBAAuBnrB,eAAgB3G,KAAKH,MAAMyD,QAAQiC,WAItF6sB,EAAmBtwB,GACrB1F,gBAAC+1B,IAAa,CACV12B,UAAU,iCACVgS,IAAgB,QAAbwkB,EAAEnwB,EAAQ2L,WAAG,IAAAwkB,IAAI,KACpBv2B,KAAMoG,EAAQpG,KACd+K,UAAW,CAAEC,OAAQ1G,KAAK6xB,iBAAkBlrB,eAAgB3G,KAAKH,MAAMyD,QAAQiC,WAGjFa,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbwyB,WAAYryB,KAAK6xB,iBACjB7L,UAAW,CACPzf,YAAavG,KAAKH,MAClBpE,UAvBgB,gBAyBpBwqB,mBAAoB,CAChBxqB,UAAW,yBAEfqG,QAASswB,EACT12B,KAAMw2B,EACNhM,cAAe,CACXzqB,UAAW,8BACXgS,IAAK,OACL,aAAczN,KAAKH,MAAMO,UAAUkyB,uBACnCz0B,KAAM,gBACNrB,KAAM,OACN+1B,aAAc,OAElBpM,WAAY,CACR1qB,UAAW,qCACXgS,IAAK,QACL1P,IAAKiC,KAAKgyB,sBACVr1B,KAAM,QACN,aAAcqD,KAAKH,MAAMO,UAAUoyB,4BACnCziB,YAAa/P,KAAKH,MAAMO,UAAUqyB,+BAEtCrM,aAAc,CACV3qB,UAAW,sCACXgS,IAAKpR,SACL,aAAc2D,KAAKH,MAAMO,UAAUsyB,6BACnC/1B,KAAM,SACNqP,MAAOhM,KAAKH,MAAMO,UAAUuyB,sBAEhCtM,sBAAuBrmB,KAAKH,MAAMO,UAAUuyB,uBAGhD,OAAO3yB,KAAKH,MAAMiH,WAAWV,IAoBtBwrB,a,gJCxFHtoB,E,+oBAAZ,SAAYA,GACRA,IAAA,yBACAA,IAAA,2BAFJ,CAAYA,MAAW,KAWvB,IAAMspB,EAAN,cAAsBx2B,gBAKlBwD,YAAYC,GACRE,MAAMF,GALO,KAAAgzB,uBAAiC,sBAEjC,KAAAC,sBAAgC,qBAI7C9yB,KAAK+yB,iBAAmB/yB,KAAK+yB,iBAAiBpS,KAAK3gB,MAGhDmG,SACH,MAAM,MAAEY,EAAK,WAAED,EAAU,OAAEjF,EAAM,KAAEqE,EAAI,WAAEgqB,EAAU,UAAEC,GAAcnwB,KAAKH,MAClEhB,EAAQsxB,GAAa,EACrBH,EAAYC,EAAapxB,EAAOmB,KAAKH,MAAM+tB,OAAS,IACpDoF,EAAwB9sB,GAAQA,EAAKwnB,gBAAkBxnB,EAAKwnB,eAAete,OAC3E6jB,EACFD,GACAA,EAAsBpF,QAAU5tB,KAAKH,MAAM+tB,YACE9vB,IAA7Ck1B,EAAsBrF,mBAChBqF,EAAsBrF,qBAAuB9uB,EAC7CqxB,IAAc,EAsBxB,OAAOppB,EArBQT,IAAA,GACRrG,KAAKH,OAAK,IACbqJ,oBAAqB,CACjB3C,YAAavG,KAAKH,MAClBpE,UAAWqB,IAAWkD,KAAK6yB,uBAAwBhxB,EAAOpG,YAE9D0N,mBAAoB,CAChB5C,YAAavG,KAAKH,MAClBpE,UAAWqB,IAAWkD,KAAK8yB,sBAAuBjxB,EAAOpG,YAE7D2N,eAAgB,CACZ3N,UAAW,+BACXgS,IAAK,UACL,eAAgBwlB,EAChBz2B,KAAM,WACNge,SAAUyY,EAAQ,GAAK,EACvBz3B,GAAIw0B,GAER3mB,UAAWrJ,KAAK+yB,mBAChB9pB,SAAUlC,KAKVgsB,mBACJ,OAAO32B,2BAAA,KAAG4D,KAAKH,MAAMgC,OAAOqxB,gBA9C9BN,EAAO/B,YAAA,CADZjjB,KACKglB,GAkDC,MAAM3C,EAAeA,CAACpxB,EAAerD,IACjC,oBAAoBA,KAAMqD,IAGtB+zB,a,wHC3Cf,MAAMO,EAAsBC,IACxB,MAAMjM,EAAWiM,GAAsBA,EAAmBhkB,OAC1D,OAAOhT,2BAAA,KAAG+qB,EAAWA,EAASjnB,WAAainB,EAAS3R,KAAO,KA4E/D,SAAS6d,EAAqB7rB,GAC1B,OACIpL,2BAAA,KACKoL,GAASA,EAAMpC,OAAS,EACnBoC,EAAM7I,IAAI,CAAC20B,EAAuBz0B,IACvBzC,gBAACA,WAAc,CAACsL,IAAK7I,GAAQy0B,IAExC,MAKHC,UAjIgC1zB,IAC3C,MAAM,UAAE2zB,EAAS,gBAAEC,EAAe,sBAAEC,EAAqB,QAAEC,GAAY9zB,EACvE,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKi3B,GACRp3B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKk3B,GACNr3B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKm3B,GACL7zB,EAAM+zB,QACN/zB,EAAMg0B,KACNR,EAAqBxzB,EAAM6wB,QAC3B7wB,EAAMi0B,eAuE3B,SAA6Bj0B,EAAyBk0B,GAClD,MAAM,mCACFC,EAAkC,0CAClCC,EAAyC,0BACzCC,EAAyB,YACzBC,EAAW,WACXC,EAAU,aACVC,GACAx0B,EAEJ,GAAIm0B,EAAoC,CACpC,MAAMM,EAAmBx3B,IACrBk3B,EAAmCv4B,UACnCs4B,EAAkB,iBAAmB,mBAEzC,GAAIE,EACA,OACI73B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKy3B,EAAkC,CAAEv4B,UAAW64B,IACpDJ,EACD93B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK03B,KACLI,GAAeA,EAAa11B,IAAK7C,GAA0BA,GAC3Dq4B,IAIV,GAAIC,EACP,OACIh4B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKy3B,EAAkC,CAAEv4B,UAAW64B,IACpDF,GAMjB,OAAO,KAxGUG,CAAoB10B,GAAO,GAC3BA,EAAM20B,oBACPp4B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKo3B,IACT9zB,EAAM40B,SACNpB,EAAqBxzB,EAAM60B,cAShD,SAA6B70B,GACzB,MAAM,QAAE8zB,EAAO,yBAAEgB,EAAwB,oBAAEC,GAAwB/0B,EACnE,OACIzD,gBAACy4B,WAAQ,CAACp5B,UAAU,mCAAmCilB,QAASkU,GAC5Dx4B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKo4B,GACLtB,EAAqBxzB,EAAM6wB,QAgB5C,SAAmC7wB,EAAyBk0B,GACxD,MAAM,mCAAEC,EAAkC,YAAEG,EAAW,WAAEC,EAAU,KAAEluB,EAAI,aAAEmuB,GAAiBx0B,EAE5F,GAAIm0B,EAAoC,CACpC,MAAMM,EAAmBx3B,IACrB,oBACAk3B,EAAmCv4B,UACnCs4B,EAAkB,iBAAmB,mBAGzC,GAAIM,EACA,OACIj4B,gBAAC8lB,SAAM,CACHzmB,UAAW64B,EACXlS,UAAU,yBACVG,WAAW,0BACXC,eAAe,MACfX,iBAAkBsR,EAAmBjtB,EAAKktB,qBAE1Ch3B,gBAAA,aACKi4B,GAAeA,EAAa11B,IAAK7C,GAA0BA,GAC3Dq4B,IAIV,GAAIC,EACP,OACIh4B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKy3B,EAAkC,CAAEv4B,UAAW64B,IACpDF,GAKjB,OAAO,KAhDMU,CAA0Bj1B,GAAO,GACjCA,EAAMk1B,mBACNl1B,EAAM60B,aAEXt4B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKo3B,IACTN,EAAqBxzB,EAAMm1B,UAlBvBC,CAAoBp1B,GACrBzD,gBAACoN,OAAI,CAAC/N,UAAU,2BAA2B43B,EAAqBxzB,EAAMm1B,c,+ECpBtEn1B,cACZ,MAAM,cAAEq1B,EAAa,2BAAEC,EAA0B,MAAEvL,GAAU/pB,EAC7D,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK44B,GACPvL,EACDxtB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK24B,O,kCCdtB,2DA4BO,MAAMniB,EAAkDxX,IAOlD,IAPmD,SAC5DkX,EAAQ,SACRE,EAAQ,WACRD,EAAU,YACVM,EAAW,SACXC,EAAQ,KACRhB,EAAI,KACJC,GAAK3W,EAGL,OAEAa,IAAAge,cAAA,OAAK3e,UAAU,wBACZwX,EAAW,GACV7W,IAAAge,cAAAhe,IAAAqsB,SAAA,KAEIrsB,IAAAge,cAAAhe,IAAAqsB,SAAA,KACErsB,IAAAge,cAAA,UAAQve,SAAUmX,EAAc,IAThB,EASiCvX,UAAW,gDAA+CuX,EAAc,IATzG,EAS2H,eAAiB,IAAMjX,QAASA,IAAM2W,EAAW,IAC3L,KAEDtW,IAAAge,cAAA,UAAQve,SAAUmX,EAAc,IAZhB,EAYiCvX,UAAW,+CAA8CuX,EAAc,IAZxG,EAY0H,eAAiB,IAAMjX,QAAS4W,GACvKV,IAIP7V,IAAAge,cAAA,OAAK3e,UAAU,+BACbW,IAAAge,cAAA,QAAM3e,UAAU,oCACXuX,EAAc,E,MAAMC,IAIzB7W,IAAAge,cAAAhe,IAAAqsB,SAAA,KACErsB,IAAAge,cAAA,UAAQve,SAAUmX,EAAc,IAAMC,EAAUxX,UAAW,+CAA8CuX,EAAc,IAAMC,EAAW,eAAiB,IAAMlX,QAAS0W,GACrKP,GAEH9V,IAAAge,cAAA,UAAQve,SAAUmX,EAAc,IAAMC,EAAUxX,UAAW,+CAA8CuX,EAAc,IAAMC,EAAW,eAAiB,IAAMlX,QAASA,IAAM2W,EAAWO,EAAS,IAC/L,GAAGA,Q,+ECvCLmiB,UAf0Bv1B,IACrC,MAAM,QAAEiC,EAAO,aAAEutB,EAAY,WAAEK,EAAU,YAAED,GAAgB5vB,EAC3D,OAAKA,EAAMiC,SAAYjC,EAAM6vB,YAAe7vB,EAAM4vB,YAK9CrzB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK8yB,GACRjzB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsD,EAAMyvB,eAAgBxtB,GAChC1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsD,EAAM0vB,aAAcG,GAC9BtzB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsD,EAAM2vB,kBAAmBC,KAPvC5vB,EAAMyD,QAAQoC,UAAU0H,MAAM,4CACvB,Q,yICEf,MAgCaioB,EAA8Dx1B,IACvE,MAAM,aAAEy1B,GAAiBz1B,EACzB,OAAOzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK+4B,GAlCYz1B,KAC/B,MAAM,QACFiC,EAAO,UACPiwB,EAAS,gBACTwD,EAAe,MACf5I,EAAK,eACL6I,EAAc,kBACdC,EAAiB,uBACjBC,EAAsB,gCACtBC,EAA+B,yBAC/BC,GACA/1B,EAEJ,OACIzD,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKk5B,GACNr5B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKm5B,GAAyBH,GACnCn5B,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKq5B,GACL9zB,EACAiwB,EACApF,GAELvwB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKo5B,GAAkCH,KAalBK,CAA0Bh2B,KAGjDw1B,a,8xBCFR,MAAMS,UAAgC15B,IAAM25B,cAwC/Cn2B,YAAmBC,GACfE,MAAMF,GAsGO,KAAAm2B,wBAAsC,KAAK,IAAAC,EACxD,MAAM5zB,EAAO,IAAI6zB,IAAsBl2B,KAAKH,MAAMs2B,QAAQC,SAAUp2B,KAAKH,MAAMw2B,WAC/EC,IAAuBC,SAASv2B,KAAKH,MAAMyD,QAAQiC,QAA2C,QAApC0wB,EAAEj2B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAA6C,OAAA,EAAlCA,EAAoC7mB,QAAQonB,QAAQn0B,IAMnG,KAAAo0B,6BAA2C,KAAK,IAAAC,EAC7DJ,IAAuBC,SAASv2B,KAAKH,MAAMyD,QAAQiC,QAA2C,QAApCmxB,EAAE12B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAAsD,OAAA,EAAlCA,EAAoCtnB,QAAQunB,eACpG32B,KAAKkC,MAAM00B,mBAeF,KAAAC,aAAoD,KAAK,IAAAC,EACtE,MAAMF,EAAmBV,IAAsBa,UAAU/2B,KAAKH,MAAMs2B,QAAQC,SAAUp2B,KAAKH,MAAMw2B,WAC3FjL,EAAWprB,KAAKg3B,sCACtB,MAAO,CACHJ,mBACAK,sCAAuCX,IAAuBC,SAC1Dv2B,KAAKH,MAAMyD,QAAQiC,QACe,QADRuxB,EAC1B92B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAA0D,OAAA,EAAlCA,EAAoC1nB,QACtC8nB,YAAYN,GACdO,qBAAsB/L,EAAShmB,SAtInCpF,KAAKo3B,WAAa,+BAClBp3B,KAAKq3B,YAAc,GAAGr3B,KAAKo3B,cAAcp3B,KAAKH,MAAMrE,MAAM87B,SAAOC,KAAKC,iBAEtEx3B,KAAKkC,MAAQlC,KAAK62B,eAElB72B,KAAKy3B,mBAAqB3B,EAAwB4B,0BAClD5B,EAAwB6B,gCAAgC33B,KAAKH,OAxCzD,uCAAuCA,GAK3C,OAJKi2B,EAAwB4B,2BAA6BhnB,kBAAgBC,YAAY9Q,EAAMkH,MAAM6wB,4BAC9F9B,EAAwB4B,0BAA4B73B,EAAMkH,MAAM6wB,yBAAyB,IAGtF9B,EAAwB4B,0BAG3B,sCACJj8B,EACAglB,EACAzU,EACA6rB,GAEA,MAAMC,EAAaC,mBAAiBC,kBAAkBH,GACtD,IAAI5vB,EASJ,OARIwY,IACAxY,EACI7L,IAAAge,cAAAhe,IAAAqsB,SAAA,KACIrsB,IAAAge,cAAA,OAAK3e,UAAcA,EAAH,WAChBW,IAAAge,cAAA,OAAK3e,UAAcA,EAAH,UAAuBglB,KAK/CrkB,IAAAge,cAAC/d,SAAM,CAACZ,UAAWA,EAAWuQ,MAAOA,EAAOjQ,QAAS87B,EAAgBh8B,SAAUi8B,GAC1E7vB,GAiBNtC,oBAAiB,IAAAsyB,EACpB3B,IAAuBC,SAASv2B,KAAKH,MAAMyD,QAAQiC,QAA2C,QAApC0yB,EAAEj4B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAA6E,OAAA,EAAlCA,EAAoC7oB,QAAQ8oB,kBAAkBlS,UACtH,CACImS,WAAYn4B,KAAKq3B,YAKjBe,QAASA,KACLp4B,KAAKsC,SAAStC,KAAK62B,mBAM5BwB,wBAAwBC,GACvBA,EAAcnC,QAAQC,WAAap2B,KAAKH,MAAMs2B,QAAQC,UAAYkC,EAAcjC,YAAcr2B,KAAKH,MAAMw2B,WACzGr2B,KAAKsC,SAAStC,KAAK62B,gBAIpB/V,uBAAoB,IAAAyX,EACvBjC,IAAuBC,SACnBv2B,KAAKH,MAAMyD,QAAQiC,QACe,QADRgzB,EAC1Bv4B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAAmF,OAAA,EAAlCA,EAAoCnpB,QACtC8oB,kBAAkBM,YAAYx4B,KAAKq3B,aAGlClxB,SAEH,IADuBnG,KAAKH,MAAMyD,QAAQiC,QAAQkzB,QAAQC,iBAEtD,OAAO,KAGX,MAAMtyB,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACb0G,YAAa,CACTA,YAAavG,KAAKH,MAClBpE,UAAWuE,KAAKo3B,cAIpBp3B,KAAKy3B,oBACLrxB,EAAUwxB,yBAA2B9B,EAAwB4B,2BAGjE,MAAMiB,EAAkB34B,KAAKH,MAAMgC,OAAO+2B,kBAAuB54B,KAAKo3B,WAAR,WAAkCp3B,KAAKo3B,WAAR,SAE7F,IAAKp3B,KAAKkC,MAAM+0B,qCAAsC,CAClD,MAAMxW,EAAazgB,KAAKH,MAAMgC,OAAO+2B,kBAAoB54B,KAAKH,MAAMO,UAAUy4B,oCAAiC/6B,EAO/G,OANAsI,EAAU0yB,wBAA0BhD,EAAwBiD,+BACxDj8B,IAAc67B,EAAH,aAAgCA,GAC3ClY,EACAzgB,KAAKH,MAAMO,UAAUy4B,+BACrB74B,KAAKy2B,8BAEFz2B,KAAKH,MAAMiH,WAAWV,GAGjC,MAAM4yB,EAAgBh5B,KAAKi5B,oBAC3B,IAAKlB,mBAAiBC,kBAAkBgB,IAAkBA,GAAiBh5B,KAAKkC,MAAMi1B,qBAAsB,CACxG,MAAM1W,EAAazgB,KAAKH,MAAMgC,OAAO+2B,kBAAoB54B,KAAKH,MAAMO,UAAU84B,2CAAwCp7B,EAMtH,OALAsI,EAAU0yB,wBAA0BhD,EAAwBiD,+BACxDJ,EACAlY,EACAzgB,KAAKH,MAAMO,UAAU84B,uCAElBl5B,KAAKH,MAAMiH,WAAWV,GAGjC,MAAMqa,EAAazgB,KAAKH,MAAMgC,OAAO+2B,kBAAoB54B,KAAKH,MAAMO,UAAU+4B,+BAA4Br7B,EAO1G,OANAsI,EAAU0yB,wBAA0BhD,EAAwBiD,+BACxDJ,EACAlY,EACAzgB,KAAKH,MAAMO,UAAU+4B,0BACrBn5B,KAAKg2B,yBAEFh2B,KAAKH,MAAMiH,WAAWV,GAGzB6yB,oBACJ,MAAMG,EAAW5N,mBAAS,CAAE6N,QAASC,cAAYC,QAASj2B,QAAStD,KAAKH,MAAMyD,QAAQiC,UACtF,MAAiB,OAAb6zB,GAAkC,OAAbA,EACdp5B,KAAKH,MAAMyD,QAAQk2B,IAAI33B,OAAO43B,qCAElCz5B,KAAKH,MAAMyD,QAAQk2B,IAAI33B,OAAO63B,sCAoBjC1C,sCAAmC,IAAA2C,EAAAC,EACvC,MAAMpyB,EAAQ8uB,IAAuBC,SAASv2B,KAAKH,MAAMyD,QAAQiC,QAA2C,QAApCo0B,EAAE35B,KAAKH,MAAMqG,KAAKktB,0BAAkB,IAAAuG,OAAA,EAAlCA,EAAoCvqB,QAAQ5H,MAChH6uB,EAAYwD,YAAa75B,KAAKH,MAAMyD,QAAQiC,SAElD,OADoF,QAA5Dq0B,EAAGpyB,aAAK,EAALA,EAAOQ,OAAOmuB,GAAWA,EAAQE,YAAcA,UAAU,IAAAuD,IAAI,IAsBjF9D,a,+EChOCj2B,cACZ,MAAM,cAAEq1B,EAAa,6BAAE4E,EAA4B,MAAElQ,GAAU/pB,EAC/D,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKu9B,GACPlQ,EACDxtB,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK24B,O,+RCIf,MAAM6E,UAAkB39B,IAAM49B,UACjCp6B,YAAYC,GACRE,MAAMF,GAsBO,KAAAo6B,mBAAsBC,IACnCl6B,KAAKsC,SAAS,CACV63B,WAAYD,EAAGn4B,OAAOzE,SAIb,KAAA88B,SAAW,KACxBp6B,KAAKH,MAAMu6B,SAASp6B,KAAKkC,MAAMi4B,aAGlB,KAAAE,YAAez4B,IACxBA,EAAMgb,UAAYC,WAASC,OAC3B9c,KAAKo6B,YAjCTp6B,KAAKkC,MAAQ,CACTi4B,WAAY,IAIbh0B,SACH,MAAM,UAAE1K,EAAS,uBAAE6+B,GAA2Bt6B,KAAKH,MACnD,OACIzD,IAAAge,cAAA,OAAK3e,UAAcA,EAAH,YACZW,IAAAge,cAAA,SACIzd,KAAK,OACLlB,UAAcA,EAAH,cACXsU,YAAauqB,EACb78B,SAAUuC,KAAKi6B,mBACfM,QAASv6B,KAAKq6B,cAElBj+B,IAAAge,cAAA,UAAQ3e,UAAcA,EAAH,iBAA8BM,QAASiE,KAAKo6B,SAAUpuB,MAAOsuB,MC6DzF,MAAME,UAAwBp+B,IAAM49B,UACvCp6B,YAAYC,GACRE,MAAMF,GAkEO,KAAA46B,iBAAmB,KAChC,MAAMh/B,EAAeuE,KAAKH,MAAMpE,UAAd,WACZi/B,EAAkBj/B,EAAH,QACrB,OACIW,IAAAge,cAAA,SAAO3e,UAAWA,GACdW,IAAAge,cAAA,MAAI3e,UAAWi/B,GACV16B,KAAKH,MAAM86B,QAAQh8B,IAAIi8B,GACpBx+B,IAAAge,cAAA,MAAI1S,IAAKkzB,EAAOC,SAAUp/B,UAAWm/B,EAAOn/B,WACvCm/B,EAAO/8B,UAcf,KAAAi9B,cAAgB,CAACz4B,EAAaxD,KAC3C,MAAM67B,EAAkB16B,KAAKH,MAAMpE,UAAd,QACrB,OACIW,IAAAge,cAAA,MAAI3e,UAAWi/B,EAAchzB,IAAK7I,GAC7BmB,KAAKH,MAAM86B,QAAQh8B,IAAIi8B,IAAS,IAAAG,EAC7B,OACI3+B,IAAAge,cAAA,MAAI1S,IAAKkzB,EAAOC,SAAUp/B,UAAWm/B,EAAOn/B,UAAWM,QAASA,KAAA,IAAAi/B,EAAA,OAAoB,QAApBA,EAAMJ,EAAO7+B,eAAO,IAAAi/B,OAAA,EAAdA,EAAAxe,KAAAoe,EAAiBv4B,KAClFu4B,EAAOK,UACJ7+B,IAAAge,cAAA,YAAS/X,EAA+Cu4B,EAAOK,YAEhD,QAFkEF,EAEjFH,EAAOM,gBAAQ,IAAAH,OAAA,EAAfA,EAAAve,KAAAoe,EAAkBv4B,QAa7B,KAAA84B,iBAAmBrlB,UAChC,GAAK9V,KAAKH,MAAMyD,QAAQgB,cAAcqC,eAAey0B,KAAKC,gBAM1D,IACI,MAAMjsB,QAAepP,KAAKH,MAAMy7B,WAChCt7B,KAAKsC,SAAS,CACVi5B,WAAW,EACXr1B,KAAMkJ,IAEZ,MAAOqe,GAAI,IAAD+N,EACRx7B,KAAKsC,SAAS,CACVi5B,WAAW,EACXp8B,cAAesuB,SAAuC,QAAN+N,EAAjC/N,EAAmCvnB,YAAI,IAAAs1B,OAAA,EAAvCA,EAAyCC,mBAAoBz7B,KAAKH,MAAMO,UAAUs7B,2BAdrG17B,KAAKsC,SAAS,CACVi5B,WAAW,KAkBN,KAAAnB,SAAYD,IACzBn6B,KAAKsC,SAAS,CACVq5B,OAAQ,CAAE98B,MAAO,GACjBmJ,OAAQ,CAAEmyB,iBAID,KAAAyB,SAAW,KACxB57B,KAAKsC,SAAS,CACVq5B,OAAQ,CAAE98B,MAAOmB,KAAKkC,MAAMy5B,OAAO98B,MAAQ,MAIlC,KAAAg9B,SAAW,KACxB,MAAMC,EAAU97B,KAAKkC,MAAM45B,QAC3B,IAAKA,EACD,OAAO97B,KAAKkC,MAAMgE,KAEtB,MAAM,UAAE+0B,EAAS,UAAEc,GAAcD,EACjC,OAAO97B,KAAKkC,MAAMgE,KAAK81B,KAAK,CAACC,EAAcC,KACvC,IAAIC,EAAWF,EAAgDhB,GAC3DmB,EAAWF,EAAgDjB,GACzC,iBAAXkB,GAAyC,iBAAXC,IACrCD,EAASA,EAAOE,cAChBD,EAASA,EAAOC,eAEpB,MAAMC,EAAgBH,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EACnE,OAAOL,EAAYO,GAAiC,EAAjBA,KAI1B,KAAAC,WAAa,KAC1B,MAAM3B,EAAS56B,KAAKH,MAAM86B,QAAQ73B,KAAKqV,GAAKA,EAAEqkB,cACxCrC,EAAan6B,KAAKkC,MAAM8F,OAAOmyB,WACrC,OAAOn6B,KAAK67B,WAAW7zB,OAAO3F,IAC1B,GAAKu4B,YAAQK,YAAcd,EACvB,OAAO,EAEX,MAAMsC,EAAgBp6B,EAA+Cu4B,EAAOK,WAC5E,OAAOwB,GAAeA,EAAYJ,cAAcvN,QAAQqL,EAAWtrB,OAAOwtB,gBAAkB,KAInF,KAAAK,iBAAmB,KAChC,MAAMC,GAAc38B,KAAKH,MAAM+8B,UAvLf,KAuL+C58B,KAAKkC,MAAMy5B,OAAO98B,MAAQ,GAEzF,OADsBmB,KAAKu8B,aACNjqB,MAAM,EAAGqqB,IAGjB,KAAAE,QAAU,KACvB,MAAMF,GAAc38B,KAAKH,MAAM+8B,UA7Lf,KA6L+C58B,KAAKkC,MAAMy5B,OAAO98B,MAAQ,GAEzF,OADsBmB,KAAKu8B,aACNn3B,OAASu3B,GAvL9B38B,KAAKkC,MAAQ,CACTgE,KAAM,GACN41B,QAASj8B,EAAMi9B,eACfnB,OAAQ,CAAE98B,MAAO,GACjBmJ,OAAQ,CAAEmyB,WAAY,IACtBoB,WAAW,EACXp8B,aAAc,IAIfwG,oBACH3F,KAAKm7B,mBAGFp1B,sBAAsBC,EAA4CC,GACrE,OACIjG,KAAKH,MAAMrE,KAAOwK,EAAUxK,IAC5BwE,KAAKH,MAAM86B,UAAY30B,EAAU20B,SACjC36B,KAAKkC,MAAMgE,OAASD,EAAUC,MAC9BlG,KAAKkC,MAAMy5B,SAAW11B,EAAU01B,QAChC37B,KAAKkC,MAAM8F,SAAW/B,EAAU+B,QAChChI,KAAKkC,MAAMq5B,YAAct1B,EAAUs1B,WACnCv7B,KAAKkC,MAAM/C,eAAiB8G,EAAU9G,aAIvCgH,SACH,MAAMD,EAAOlG,KAAK08B,mBACZG,EAAU78B,KAAK68B,UACrB,OAAI78B,KAAKkC,MAAM/C,aACJ/C,IAAAge,cAAC2iB,QAAK,CAACC,MAAM,UAAUh9B,KAAKkC,MAAM/C,cAEzCa,KAAKkC,MAAMq5B,UACJn/B,IAAAge,cAAA,QAAM3e,UAAcgG,EAAH,aAAgCzB,KAAKH,MAAMO,UAAU68B,cAE5EvsB,kBAAgBC,YAAYzK,GAS7B9J,IAAAge,cAAAhe,IAAAqsB,SAAA,KACIrsB,IAAAge,cAAC2f,EAASz9B,OAAAC,OAAA,GAAKyD,KAAKH,MAAK,CAAEu6B,SAAUp6B,KAAKo6B,YAC1Ch+B,IAAAge,cAAA,SAAO3e,UAAWuE,KAAKH,MAAMpE,WACxBuE,KAAKy6B,mBACLv0B,EAAKvH,IAAI,CAAC0D,EAAMxD,IAAUmB,KAAK86B,cAAcz4B,EAAMxD,KAEvDg+B,GACGzgC,IAAAge,cAAA,OAAK3e,UAAcuE,KAAKH,MAAMpE,UAAd,eACZW,IAAAge,cAAC/d,SAAM,CAACN,QAASiE,KAAK47B,SAAUngC,UAAcuE,KAAKH,MAAMpE,UAAd,mBACtCuE,KAAKH,MAAMO,UAAU88B,2BAhBlC9gC,IAAAge,cAAAhe,IAAAqsB,SAAA,KACIrsB,IAAAge,cAAC2f,EAASz9B,OAAAC,OAAA,GAAKyD,KAAKH,MAAK,CAAEu6B,SAAUp6B,KAAKo6B,YAC1Ch+B,IAAAge,cAAA,KAAG3e,UAAcgG,EAAH,mBAAsCzB,KAAKH,MAAMO,UAAU+8B,iB,ykBCxGtF,MAAMC,UAAkChhC,IAAM49B,UAArDp6B,c,oBAqBqB,KAAAy9B,WAAa,KAC1B,MAAMC,EAAsG,OAArF9R,mBAAS,CAAE6N,QAASC,cAAYiE,SAAUj6B,QAAStD,KAAKH,MAAMyD,QAAQiC,UAE7F,MAAO,CACH,CACIs1B,SAAU,OACVh9B,KAAMmC,KAAKH,MAAMO,UAAUo9B,iCAC3BhB,cAAc,EACdzgC,QAASiE,KAAKH,MAAM49B,SACpBvC,SAAWh1B,GAAwC9J,IAAAge,cAAA,KAAG5d,KAAK,UAAU0J,EAAKrI,OAE9E,CACIg9B,SAAU,QACVh9B,KAAMmC,KAAKH,MAAMO,UAAUs9B,kCAC3BzC,UAAW,QACXl/B,QAASiE,KAAKH,MAAM49B,UAExB,CACI5C,SAAU,gBACVh9B,KAAMmC,KAAKH,MAAMO,UAAUu9B,0CAC3BliC,UAAcuE,KAAKH,MAAMpE,UAAd,4BACXw/B,UAAW,gBACXl/B,QAAUuhC,OAAuCx/B,EAAtBkC,KAAKH,MAAM49B,YASjC,KAAAG,wBAA0B9nB,gBACR+nB,8BAA4BC,cACvD,CACIz5B,cAAerE,KAAKH,MAAMyD,QAAQgB,cAClCy5B,YAAa,MACbC,oBAAqB,IAEzBh+B,KAAKH,MAAMo+B,gBAAgBC,oBAG1Bl2B,OAAOozB,GAA6B,IAArBA,EAAK+C,aACpBx/B,IAAIy8B,GACD/0B,IAAA,GACO+0B,GAAI,IACPv9B,KAAM,GAAGu9B,EAAKl7B,aAAak7B,EAAK96B,WAChC89B,cACIhiC,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,kBACVs8B,mBAAiBC,kBAAkBoD,EAAKiD,eAEpC,GADAr+B,KAAKH,MAAMyD,QAAQyV,iBAAiBC,eAAeoiB,EAAKiD,cAAcxlB,YAE1Ekf,mBAAiBC,kBAAkBoD,EAAKiD,gBAAyC,IAAvBjD,EAAKiD,cAQ7D,GAPAjiC,IAAAge,cAAA,OACI3e,UAAU,0BAAyB,aACvB,GAAGuE,KAAKH,MAAMO,UAAUk+B,6CAEpCliC,IAAAge,cAAA,KAAG3e,UAAU,iBAAgB,cAAa,cA5EnEsK,sBAAsBC,GACzB,OAAOhG,KAAKH,MAAMrE,KAAOwK,EAAUxK,GAGhC2K,SACH,OACI/J,IAAAge,cAACogB,EAAQl+B,OAAAC,OAAA,GACDyD,KAAKH,MAAK,CACdy7B,SAAUt7B,KAAK49B,wBACfjD,QAAS36B,KAAKq9B,aACdP,eAAgB,CAAE7B,UAAW,OAAQc,WAAW,GAChDzB,uBAAwBt6B,KAAKH,MAAMO,UAAUm+B,kCCvBtD,MAAMC,UAA8BpiC,IAAM49B,UAAjDp6B,c,oBAqBqB,KAAAy9B,WAAa,IACnB,CACH,CACIxC,SAAU,OACVh9B,KAAMmC,KAAKH,MAAMO,UAAUq+B,oBAC3BjC,cAAc,EACdzgC,QAASiE,KAAKH,MAAM49B,SACpBvC,SAAWh1B,GAA0B9J,IAAAge,cAAA,KAAG5d,KAAK,UAAU0J,EAAKsP,QASvD,KAAAkpB,oBAAsB5oB,eACJ+nB,8BAA4Bc,gCAAgC,CACvFt6B,cAAerE,KAAKH,MAAMyD,QAAQgB,cAClCy5B,YAAa,MACbC,oBAAqB,KAxCtBj4B,sBAAsBC,GACzB,OAAOhG,KAAKH,MAAMrE,KAAOwK,EAAUxK,GAGhC2K,SACH,OACI/J,IAAAge,cAACogB,EAAQl+B,OAAAC,OAAA,GACDyD,KAAKH,MAAK,CACdy7B,SAAUt7B,KAAK0+B,oBACf/D,QAAS36B,KAAKq9B,aACdP,eAAgB,CAAE7B,UAAW,OAAQc,WAAW,GAChDzB,uBAAwBt6B,KAAKH,MAAMO,UAAUw+B,iC,ykBCQtD,MAAMn9B,EAA0B,uBAKvC,MAAMo9B,UAAyBziC,YAC3BwD,YAAYC,GACRE,MAAMF,GA0FO,KAAAi/B,wBAA2Bb,IACxCj+B,KAAKsC,SAAS,CACVy8B,wBAAyBd,KAQhB,KAAAe,4BAA8BlpB,UAC3C,GAAImpB,EAAoBnX,cAAe,CACnC9nB,KAAKsC,SAAS,CACV4uB,4BAA6B+N,IAGjCj/B,KAAKH,MAAMyD,QAAQiC,QAAQkzB,QAAQyG,2BAA0B,EAAMD,EAAoBnX,eACvF,MAAMuO,QAAkBr2B,KAAKm/B,8BAC7BC,4BAAkB/I,GAClB,MAAMgJ,EAAUlN,IAAoB,OAAQnyB,KAAKH,MAAMyD,QAAQgB,eAC/D,GAAI+6B,GAAWlN,IAA0B9pB,gBAA2BvK,IAAdu4B,EAAyB,CAC3E,MAAMiJ,EAAU,IAAI/O,IAAI8O,EAASx6B,OAAOC,SAASrI,MACjD6iC,EAAQC,aAAa5O,IAAI,YAAa,GAAG0F,GACzCxxB,OAAOC,SAASrI,KAAO6iC,EAAQ7iC,UAE/BuD,KAAKH,MAAMyD,QAAQiC,QAAQkzB,QAAQ+G,iCAQ9B,KAAAL,4BAA8BrpB,UAC3C9V,KAAKsC,SAAS,CACVm9B,kBAAkB,IAGtB,MAAM94B,EAAiB3G,KAAKH,MAAMyD,QAAQiC,QACpCm6B,EAAY/4B,EAAekZ,YAAY6f,UAAYxiC,OAAOyJ,EAAekZ,YAAY6f,WAAa,EAExG,IAAK,IAADC,EACA,MAAMC,QAAwBC,sBAAoBC,iBAC9C,CAAEz7B,cAAerE,KAAKH,MAAMyD,QAAQgB,eACpCo7B,GACA,GAKJ,OAHA1/B,KAAKsC,SAAS,CACVm9B,kBAAkB,KAEG,QAAlBE,EAAAC,EAAgB,UAAE,IAAAD,OAAA,EAAlBA,EAAoBvJ,WAAY,EACzC,MAAO3I,GAAI,IAAD+N,EAMR,YALAx7B,KAAKsC,SAAS,CACVm9B,kBAAkB,EAClBM,yBACKtS,SAAuC,QAAN+N,EAAjC/N,EAAmCvnB,YAAI,IAAAs1B,OAAA,EAAvCA,EAAyCC,mBAAoBz7B,KAAKH,MAAMO,UAAUs7B,wBAhJ/F17B,KAAKkC,MAAQ,GAGVyD,oBACH3F,KAAKH,MAAMyD,QAAQiC,QAAQkzB,QAAQ+G,+BAGhCz5B,sBAAsBC,EAA0DC,GACnF,OAAIjG,KAAKkC,QAAU+D,GAAajG,KAAKH,MAAMqG,OAASF,EAAUE,KAM3DC,SACH,MACItE,QAAQ,UAAEpG,EAAS,SAAEmhC,EAAQ,wBAAExL,IAC/BpxB,KAAKH,MACHuG,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbqxB,4BAA6BlxB,KAAKkC,MAAMgvB,4BACxCC,sBAAuB,CACnB5qB,YAAavG,KAAKH,MAClBpE,UAAWukC,IAAUv+B,EAAiBhG,IAE1C21B,wBAAyBA,GAA2BA,EAAwB11B,MACxEU,gBAAC+1B,IAAa,CACV12B,UAAcgG,EAAH,YACXgM,IAAK2jB,EAAwB3jB,IAC7B/R,KAAM01B,EAAwB11B,OAGtC+1B,sBAAwBzxB,KAAKkC,MAAM68B,6BAQ/BjhC,EAPA1B,gBAACoiC,EAAqBliC,OAAAC,OAAA,GACdyD,KAAKH,MAAK,CACd+8B,SAAUA,EACVnhC,UAAcgG,EAAH,eACXg8B,SAAUz9B,KAAK8+B,2BAKvBpN,0BAA2B1xB,KAAKkC,MAAM68B,wBAClC3iC,gBAACghC,EAAyB9gC,OAAAC,OAAA,GAClByD,KAAKH,MAAK,CACd+8B,SAAUA,EACVnhC,UAAcgG,EAAH,eACXg8B,SAAUz9B,KAAKg/B,4BACff,gBAAiBj+B,KAAKkC,MAAM68B,gCAGhCjhC,EAEJ0zB,2BAA4BxxB,KAAKkC,MAAM68B,wBACnC3iC,gBAAA,KACIX,UAAcgG,EAAH,cACXjF,KAAK,SACLT,QAASA,KACLiE,KAAK8+B,4BAGR9+B,KAAKH,MAAMO,UAAUoxB,iCAG1B1zB,EAEJuzB,wBAAyBrxB,KAAKkC,MAAMu9B,iBAChCrjC,gBAAA,QAAMX,UAAcgG,EAAH,aAAgCzB,KAAKH,MAAMO,UAAU68B,mBAEtEn/B,EAEJwzB,2BAA4BtxB,KAAKkC,MAAM69B,wBACnC3jC,gBAAA,QAAMX,UAAcgG,EAAH,WAA8BzB,KAAKkC,MAAM69B,8BAE1DjiC,EAEJyzB,kCAAoCvxB,KAAKH,MAAMyD,QAAQiC,QAAQkzB,QAAQC,sBAGnE56B,EAFA1B,gBAAC2gC,QAAK,CAACC,MAAM,UAAUh9B,KAAKH,MAAMO,UAAU6/B,gCAKpD,OAAOjgC,KAAKH,MAAMiH,WAAWV,IAqEtBy4B,a,yJCpLf,MAAMqB,EAA2C3kC,IAG5C,IAH6C,cAC9C4kC,EAAa,MACb34B,GACHjM,EAEG,OACIa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK4jC,GACL34B,EAAM7I,IAAK0D,GAEJjG,2BAAA,KACKiG,EAAK+9B,gBAoBxBC,EAA+Cv2B,IAQhD,IARiD,cAClDw2B,EAAa,UACbC,EAAS,MACT/4B,EAAK,iBACLg5B,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACH72B,EAEG,OACI1N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+jC,GACLC,EACA/4B,EAAM7I,IAAK0D,IACR,MAAMu+B,EAAav+B,EAAKu+B,WACxB,OAAQxkC,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKqkC,EAAU,CAAEl5B,IAAKrF,EAAKqF,MACnCrF,EAAK/C,MACNlD,gBAAC8jC,EAAW5jC,OAAAC,OAAA,GAAK8F,EAAKw+B,eAG7BL,GAAoBC,EACpBC,GAAsBC,IAmB7BG,EAAqD32B,IAUtD,IAVuD,YACxD42B,EAAW,QACXj/B,EAAO,MACP0F,EAAK,SACLhI,EAAQ,MACR4N,EAAK,iBACLozB,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACHx2B,EAEG,OACI/N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKwkC,GACLj/B,EACA0F,EAAM7I,IAAK0D,IACR,MAAM,YAAE2+B,EAAW,IAAEt5B,EAAG,MAAE5I,EAAK,MAAE6N,EAAK,MAAErN,GAAU+C,EAClD,OAAQjG,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKykC,EAAW,CAAEt5B,IAAKA,IAC/B5I,EACA6N,EACArN,KAGRE,GAAYpD,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6Q,EAAM6zB,cACxB7zB,EAAMpB,MACNoB,EAAMxQ,SAEV4jC,GAAoBC,EACpBC,GAAsBC,IAqGpBO,UA3FkErhC,IAAQ,IAAAgV,EACrF,MAAM,wBAAEssB,EAAuB,UAAEC,EAAS,YAAEC,EAAW,kBAAEC,EAAiB,uBAAEC,EAAsB,eAAEC,GAAmB3hC,EACjHkD,EAAoC,QAA7B8R,EAAGhV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAyF,OAAA,EAA1BA,EAA4B4sB,iBACpCC,EAAkBC,GAAwBvlC,WAAyB,IAC3EA,YAAgB,KACPwlC,KACN,CAAC7+B,IACJ3G,YAAgB,KACZyD,EAAMgiC,YAAYC,aAAY,IAC/B,IAEC,MAaEF,EAAqC9rB,UAAW,IAAAT,EAClD,MAAM0sB,EAA4B,GAC5Bh0B,EAAiC,QAA7BsH,EAAGxV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAiG,GAAc,QAAdA,EAA1BA,EAA4BH,oBAAY,IAAAG,OAAA,EAAxCA,EAA0CtH,KACvD,GAAIA,GAAQhL,EAAS,KAAAi/B,EACjB,MAAMC,GAAwB,QAAdD,EAAAj0B,EAAKm0B,iBAAS,IAAAF,OAAA,EAAdA,EAAgBrjC,IAAIwjC,GAAMA,EAAG/Z,UAAY,GACnDga,EAAiBr/B,EAAQs/B,0BAA4B,KACrDC,EAAev/B,EAAQw/B,OAAS,KAChCC,EAAgBz/B,EAAQ0/B,QAAU,KAClCnjC,EAAQ,IAAIojC,6BAA2BT,GAAS,EAAMl0B,EAAK40B,IAAM,GAAIP,EAAgBE,EAAcE,GACnGI,QAAwBC,kBAA4BvjC,EAAOO,EAAMyD,QAAQgB,eAC3Es+B,EAAgBx9B,QAChBw9B,EAAgBxgC,QAASmhB,IACrB,MAAM/nB,EAzBsBsnC,EACtCC,EACAr7B,EACAs7B,KACF,IAAAC,EACA,MAAMC,EAAWH,SAAoC,QAA1BE,EAAVF,EAAYjgC,KAAKylB,GAAKA,EAAE4a,MAAQz7B,UAAI,IAAAu7B,OAAA,EAApCA,EAAsCrtB,MAIvD,OADYstB,EAAWA,EAASF,GAAa,MAiBtBF,CAAgCvf,EAAE6f,oBAAqB,SAAUC,IAA0BC,QACjG/f,EAAEggB,YACHxB,EAAgBprB,KAAKnb,KAKrCmmC,EAAoBI,GACpBliC,EAAMgiC,YAAYC,YAAYC,EAAgB38B,OAAS,IAqBrDo+B,EAAwB1tB,UAC1B,MAAM9G,EAAYnP,EAAMqG,KAAK6H,KAAKqB,OAC5B2G,EAAgBlW,EAAMqG,KAAK+O,SAAS7F,OACpCq0B,EAAyB,GAC/Bz0B,EAAWjB,KAAKm0B,UAAW9/B,QAAQ+/B,IAC3BT,EAAiBgC,SAASvB,EAAG/Z,SAC7Bqb,EAAa9sB,KAAKwrB,EAAGp3B,gBAGvBgL,EAAeb,aAAayuB,gBAAgB,CAACC,YAAaH,UAC1Dz0B,EAAW20B,gBAAgB,CAACC,YAAaH,IAC/C5+B,OAAOC,SAAS++B,UAGdC,EAAyBzb,IAAc,IAAAvO,EAAA,OAA+B,QAA/BA,EAAKja,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAA0K,GAA6B,QAA7BA,EAA1BA,EAA4B5E,aAAanH,KAAKm0B,iBAAS,IAAApoB,OAAA,EAAvDA,EAAyDhX,KAAKygB,GAAKA,EAAE6E,SAAWC,IAClI,OACIjsB,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK4kC,GACPK,EACAJ,EAAU2C,eAAiB3nC,gBAAC8jC,EAAW5jC,OAAAC,OAAA,GAAK8kC,IAC5CD,EAAU4C,kBAAoB5nC,gBAACikC,EAAa/jC,OAAAC,OAAA,GAAK+kC,IACjDF,EAAU6C,0BAA4B7nC,gBAAC0kC,EAAgBxkC,OAAAC,OAAA,GAAKglC,IArC5DG,EAAiBt8B,OAIpBhJ,gBAAA,WACIA,gBAAA,KAAGX,UAAU,6BAA6Be,KAAK,QAAO,YAAW,aAAW,oIAG3EklC,EAAiB/iC,IAAI4kB,IAClB,MAAMlhB,EAAOyhC,EAAsBvgB,GACnC,OAAOnnB,gBAAA,SAAIiG,aAAI,EAAJA,EAAM+lB,O,MAAW/lB,aAAI,EAAJA,EAAMmmB,eAEtCpsB,gBAAA,UAAQX,UAAW,wDAAyDM,QAASynC,GAAqB,iBAXrG,Q,qsBCrJnB,MAAMU,UAA0B9nC,gBAG5BwD,YAAYC,GAAsC,IAAAskC,EAC9CpkC,MAAMF,GAHF,KAAAu3B,WAAa,oBACb,KAAAgN,kBAAoB,GAapB,KAAAC,yBAA2BvuB,UAC/B,MAAM9G,EAAYhP,KAAKH,MAAMqG,KAAK6H,KAAKqB,OACvC,GAAKJ,YAAWjB,KACZ,OAEJ,MAAMu2B,EAASj+B,EAAA,GAAQ2I,EAAUjB,MACjCu2B,EAAUhjC,QAAUtB,KAAKkC,MAAMqiC,cACzBv1B,EAAUgH,WAAW,CAAEC,cAAequB,IAC5CtkC,KAAKsC,SAAS,CAAEkiC,qBAAqB,KAOjC,KAAAC,oBAAuB7iC,IAC3B5B,KAAKsC,SAAS,CAAEiiC,QAAS3iC,EAAMG,OAAOzE,SAKlC,KAAAonC,qBAAuB,KAC3B1kC,KAAKsC,SAAS,CAAEiiC,QAASvkC,KAAKH,MAAM0kC,QAASC,qBAAqB,KAM9D,KAAAG,yBAA2B,IAC/B3kC,KAAKsC,SAASsiC,IACH,CACHJ,qBAAsBI,EAAUJ,uBAQpC,KAAAK,4BAA8B,KAAsB,IAAAC,EACxD,MACI1kC,WAAW,gBAAE2kC,EAAe,aAAEC,GAC9BnjC,QAAQ,WAAE8F,IACV3H,KAAKH,MAET,OADkD,QAA9BilC,EAAG9kC,KAAKH,MAAMqG,KAAK6H,KAAKqB,cAAM,IAAA01B,OAAA,EAA3BA,EAA6B/2B,KAAKzM,SAUjDlF,2BAAA,KACIA,gBAAA,KAAGX,UAAcuE,KAAKo3B,WAAR,qBAAwCp3B,KAAKilC,sBAC1DjlC,KAAKklC,mBAAmBF,GACxBr9B,EAAavL,gBAAA,KAAGX,UAAcuE,KAAKo3B,WAAR,wBAA2CzvB,GAAkB,MAV7FvL,2BAAA,KACK4D,KAAKklC,mBAAmBH,GACzB3oC,gBAAA,KAAGX,UAAcuE,KAAKo3B,WAAR,wBAA2CzvB,KAcjE,KAAAs9B,mBAAqB,KAAa,IAAAE,EACtC,MAAMZ,GAAqC,QAA3BY,EAAAnlC,KAAKH,MAAMqG,KAAK6H,KAAKqB,cAAM,IAAA+1B,OAAA,EAA3BA,EAA6Bp3B,KAAKzM,UAAW,GAC7D,OAAIijC,EAAQn/B,OAAS,GACPm/B,EAAQa,UAAU,EAAG,IAAxB,MAEAb,GAOP,KAAAW,mBAAsBtnB,GAC1BxhB,gBAAA,KAAGK,KAAM,IAAKV,QAASiE,KAAK2kC,yBAA0BlpC,UAAcuE,KAAKo3B,WAAR,UAC5DxZ,GAOD,KAAAynB,kBAAoB,KACxB,MACIjlC,WAAW,eAAEklC,IACbtlC,KAAKH,MACT,OACIzD,gBAACC,SAAM,CAACN,QAASiE,KAAKqkC,yBAA0B5oC,UAAW,GAAGuE,KAAKo3B,sBAAsBp3B,KAAKo3B,4BACzFkO,IAQL,KAAAC,oBAAsB,KAC1B,MACInlC,WAAW,iBAAE+G,IACbnH,KAAKH,MACT,OACIzD,gBAACC,SAAM,CAACN,QAASiE,KAAK0kC,qBAAsBjpC,UAAW,GAAGuE,KAAKo3B,sBAAsBp3B,KAAKo3B,8BACrFjwB,IAQL,KAAAq+B,gBAAkB,KACtB,MACIplC,WAAW,cAAEqlC,EAAa,oBAAEC,IAC5B1lC,KAAKH,OACH,QAAE0kC,GAAYvkC,KAAKkC,MACzB,OACI9F,gBAAA,OAAKX,UAAcuE,KAAKo3B,WAAR,sBACZh7B,gBAAA,SAAO8B,QAAS8B,KAAK2lC,cAAelqC,UAAcuE,KAAKo3B,WAAR,oBAC1CqO,GAELrpC,gBAAA,YACIZ,GAAIwE,KAAK2lC,cACTroC,MAAOinC,EACP9mC,SAAUuC,KAAKykC,oBACfznC,UAAWgD,KAAKokC,kBAChB3oC,UAAcuE,KAAKo3B,WAAR,eAEfh7B,gBAAA,KAAGX,UAAcuE,KAAKo3B,WAAR,gBACT,GAAGp3B,KAAKokC,mBAAqBG,GAAWA,EAAQn/B,OAASm/B,EAAQn/B,OAAS,MAAMsgC,OASzF,KAAAE,kBAAoB,IACxBxpC,gBAAA,OAAKX,UAAcuE,KAAKo3B,WAAR,iBACXp3B,KAAKqlC,oBACLrlC,KAAKulC,uBAON,KAAAM,aAAe,IAEfzpC,gBAACghB,QAAK,CAACsD,OAAQ1gB,KAAKkC,MAAMsiC,oBAAqBsB,OAAQ9lC,KAAK2kC,0BACxDvoC,gBAAC2pC,cAAW,CAACtqC,UAAcuE,KAAKo3B,WAAR,kBAAqCp3B,KAAKgmC,kBACjEhmC,KAAKwlC,kBACNppC,gBAAC6pC,cAAW,KAAEjmC,KAAK4lC,sBAQvB,KAAAD,YAAc,IAAc,yBAK5B,KAAAK,eAAiB,KACrB,MACI5lC,WAAW,kBAAE8lC,IACblmC,KAAKH,MAET,OAAOqmC,GAtLPlmC,KAAKkC,MAAQ,CACTqiC,SAA+B,QAAtBJ,EAAAtkC,EAAMqG,KAAK6H,KAAKqB,cAAM,IAAA+0B,OAAA,EAAtBA,EAAwBp2B,KAAKzM,UAAW,GACjDkjC,qBAAqB,GAuLtBr+B,SACH,MACItE,QAAQ,UAAEpG,IACVuE,KAAKH,MACHuG,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbq1B,cAAe,CACXznB,IAAK,MACLhS,UAAcuE,KAAKo3B,WAAR,mBACX+O,SAAUnmC,KAAK6kC,+BAEnB/K,6BAA8B,CAC1Br+B,UAAWqB,IAAWrB,EAAWuE,KAAKo3B,YACtC3pB,IAAK,MACLlH,YAAWF,EAAA,GAAOrG,KAAKH,QAE3B+pB,MAAO5pB,KAAK6lC,iBAGhB,OAAO7lC,KAAKH,MAAMiH,WAAWV,IAItB89B,a,sLC1NR,MAAMkC,UAAsBhqC,gBAAnCwD,c,oBAoBqB,KAAAymC,kBAAqBC,IAClC,IAAK51B,kBAAgBC,YAAY21B,GAC7B,OAAO,KAEX,MAAMC,EAAuC,GAC7C,IAAK,MAAMzqC,KAAQwqC,EAAU,CAEzB,MAAMtqC,EAAUC,2BAAiB,QAAS+D,KAAKH,MAAMjE,iBAAkB,GAAI,IACrEgiB,EAAW9hB,EAAK8hB,SAAW9hB,EAAK8hB,SAAW,GACjD5hB,EAAQ2oB,cAAcC,MAAQhH,EAC9B,MAAM1hB,EAAaC,iCAAuB6D,KAAKH,MAAMjE,iBAAkBI,GACjEwqC,EAAoC,CACtC7qC,UAAWG,EAAKH,UAChBF,UAAW,qBACXmiB,SAAU9hB,EAAK8hB,SACflZ,QAAS5I,EAAK4I,QAAQC,eACtB8hC,aAAc3qC,EAAK2qC,aACnBjqC,KAAM,SACNyhB,qBAAsB/hB,EACtBH,QAASgpB,2BAAiB/kB,KAAKH,MAAMjE,iBAAkBI,EAAS4hB,IAEpE2oB,EAAc5vB,KAAK6vB,GAGvB,OAAOD,GA3CJpgC,SACH,MAAMogC,EAAgBvmC,KAAKqmC,kBAAkBrmC,KAAKH,MAAM8sB,OACxD,OACIvwB,gBAAA,OAAKX,UAAU,uBACV8qC,GAAiB71B,kBAAgBC,YAAY41B,GAC1CnqC,gBAAC+1B,IAAc,CACXxF,MAAO4Z,EACP9/B,UAAW,CAAEigC,aAAc1mC,KAAKH,MAAM6mC,aAAc//B,eAAgB3G,KAAKH,MAAM8G,kBAEnF,OAqCLy/B,Q,ykBCxCR,MAAMO,UAAqBvqC,gBAO9BwD,YAAmBC,GACfE,MAAMF,GAPO,KAAA+mC,kBAAuCthC,6BACpDtF,KAAKH,MAAMyD,QAAQiC,QAAQC,kBAC3BxF,KAAKH,MAAM4F,aACXzF,KAAKH,MAAM6F,WA4DR,KAAA/D,oBAAuBC,IAC1B5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,OAO5C,KAAAw0B,sBAAyBlwB,IAC5B5B,KAAKH,MAAMgC,OAAOkwB,UAAYnwB,EAAMG,OAAOzE,OAQxC,KAAAupC,qBAAwBC,GAAuBllC,IAA8C,IAAAmlC,EACrE,QAA3BA,EAAI/mC,KAAKH,MAAMgC,OAAO8qB,aAAK,IAAAoa,GAAvBA,EAA0B7pC,OAAO4pC,MACjC9mC,KAAKH,MAAMgC,OAAO8qB,MAAMzvB,OAAO4pC,IAAYlpB,SAAWhc,EAAMG,OAAOzE,QAxEpE6I,SACH,MAAM,QAAErE,EAAO,UAAEiwB,EAAS,gBAAEwD,EAAe,eAAEC,EAAc,eAAEwR,EAAc,MAAEra,GAAU3sB,KAAKH,MAAMgC,OAC5FolC,EAAgBta,GAASjc,kBAAgBC,YAAYgc,IACvDvwB,gBAACgqC,EAAa,CACVzZ,MAAOA,EACP+Z,aAAc1mC,KAAK6mC,qBACnBlgC,eAAgB3G,KAAKH,MAAMyD,QAAQiC,QACnC3J,iBAAkBoE,KAAK4mC,oBAGzBM,EAAwB,CAC1Bz5B,IAAK,IACLhS,UAAW,yBACXe,KAAM,OACNC,KAAMuqC,aAAc,EAAdA,EAAgBtiC,QAAQC,eAC9B,aAAcqiC,aAAc,EAAdA,EAAgBrrC,WAO5ByK,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbiC,QAAS9B,KAAKmnC,eAAerlC,GAC7BiwB,UAAW/xB,KAAKonC,iBAAiBrV,GACjCwD,gBAAiBv1B,KAAKqnC,uBAAuB9R,GAC7CC,eAAgBx1B,KAAKsnC,sBAAsB9R,GAC3C7I,MAAOsa,EACP3R,aAAc,CACV/uB,YAAavG,KAAKH,MAClBpE,UAAW,IAEfg6B,kBAAmBuR,EAAiBE,EAfR,CAC5Bz5B,IAAK,SACLhS,UAAW,0BAcXi6B,uBAAwB,CACpBj6B,UAAW,uBAEfk6B,gCAAiC,CAC7Bl6B,UAAW,gCACX,cAAe,QAEnBm6B,yBAA0B,CACtBn6B,UAAW,2BAInB,OAAOuE,KAAKH,MAAMiH,WAAWV,GA8BzBghC,iBAAiB1rC,GACrB,OAAKA,EAIDU,gBAAC+1B,IAA0B,CACvBz2B,KAAMA,EACND,UAAU,qBACVgL,UAAW,CAAEC,OAAQ1G,KAAK8xB,sBAAuBnrB,eAAgB3G,KAAKH,MAAMyD,QAAQiC,WANjF,KAWP4hC,eAAerlC,GAAsB,IAAAmwB,EACzC,OAAKnwB,EAGDylC,mBAAiBC,mBAAmB1lC,EAAQpG,MACrC,KAIPU,gBAAC+1B,IAAa,CACV1kB,IAAgB,QAAbwkB,EAAEnwB,EAAQ2L,WAAG,IAAAwkB,IAAI,KACpBv2B,KAAMoG,EAAQpG,KACdD,UAAU,sBACVgL,UAAW,CAAEC,OAAQ1G,KAAK2B,oBAAqBgF,eAAgB3G,KAAKH,MAAMyD,QAAQiC,WAX/E,KAgBP8hC,uBAAuBhlC,EAA4BolC,GAA+B,IAAAC,EAAAC,EAGtF,MAUMC,EAAwBvlC,SAAmB,QAAfqlC,EAAJrlC,EAAMiY,qBAAa,IAAAotB,GAAnBA,EAAqB3sB,UAAY1Y,EAAKiY,cAVd,CAClDS,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC4E,GAAI,CAAE9E,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC6E,GAAI,CAAE/E,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC8E,GAAI,CAAEhF,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CE,UAAU,GAId,OACIjf,gBAAC+1B,IAAc71B,OAAAC,OAAA,GACP8F,EAAI,CACRsE,eAAgB3G,KAAKH,MAAMyD,QAAQiC,QACnCoV,aAAc3a,KAAKH,MAAMyD,QAAQiC,QAAQoV,aACzCL,cAAestB,EACf/sB,oBAAoB,UAAS,cAChB4sB,EACbhhC,UAAW,CACPiB,IAAsC,QAAnCigC,EAAE3nC,KAAKH,MAAMgC,OAAO0zB,uBAAe,IAAAoS,IAAI,GAC1ChhC,eAAgB3G,KAAKH,MAAMyD,QAAQiC,QACnCsiC,WAAY7nC,KAAKH,MAAMioC,SACvBC,kBAAmB,YAM3BT,sBACJjlC,EACA2lC,EACAP,GAA+B,IAAAQ,EAE/B,OAAK5lC,EAGDklC,mBAAiBC,mBAAmBnlC,EAAKqY,KAClC,KAIPte,gBAAC+1B,IAAc71B,OAAAC,OAAA,GACP8F,EAAI,CACRsY,aAAc3a,KAAKH,MAAMyD,QAAQiC,QAAQoV,aACzCL,cAAe0tB,EACfntB,oBAAoB,UAAS,cAChB4sB,EACbhhC,UAAW,CACPiB,IAAqC,QAAlCugC,EAAEjoC,KAAKH,MAAMgC,OAAO2zB,sBAAc,IAAAyS,IAAI,GACzCthC,eAAgB3G,KAAKH,MAAMyD,QAAQiC,QACnCsiC,WAAY7nC,KAAKH,MAAMioC,SACvBC,kBAAmB,QAGnBG,OAASloC,KAAKH,MAAMgC,OAAesmC,2BApBpC,MA2BJxB,a,8JC3MR,MAAMyB,EAA8FvoC,IACvG,MAAM,wBAAEi5B,EAAuB,yBAAElB,GAA6B/3B,EAE9D,OACIzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsD,EAAM0G,aACbuyB,EACAlB,IAKEwQ,a,8qCCLR,MAAMh3B,EAAmD7V,IAAA,IAAC,cAAE8V,EAAa,MAAEvS,EAAK,SAAEgG,GAAUvJ,EAAA,OAC/Fa,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8U,GACLvS,EACAgG,IASIwM,EAAmDxH,IAAA,IAAC,cAAEyH,EAAa,MAAEzS,GAAOgL,EAAA,OAAK1N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgV,GAAgBzS,IAE3G0S,EAAyCrH,IAAA,IAAC,SAAEsH,EAAQ,KAAEpP,EAAI,cAAEqP,EAAa,cAAEC,GAAexH,EAAA,OACnG/N,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkV,GACLpP,EACAqP,GAAiBtV,gBAACgV,EAAsB9U,OAAAC,OAAA,GAAKmV,IAC7CC,GAAiBvV,gBAACkV,EAAsBhV,OAAAC,OAAA,GAAKoV,MAIzCC,EAA2DlH,IAAA,IAAC,sBAAEmH,EAAqB,aAAEC,EAAY,QAAEhQ,EAAO,UAAEiQ,GAAWrH,EAAA,OAChItO,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsV,GACL/P,EACD1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuV,GACLC,EAAUpT,IAAImU,GACX1W,gBAACoV,EAAiBlV,OAAAC,OAAA,CAACmL,IAAKoL,EAAS/H,QAAY+H,QAMhDM,EAA6EnI,IAAA,IAAC,sBACvF4G,EAAqB,aACrBC,EAAY,QACZhQ,EAAO,UACPiQ,EAAS,eACTsB,EAAc,mBACdC,GACHrI,EAAA,OACG7O,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKsV,GACLyB,EACAD,EACAvR,EACD1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKuV,GACLC,EAAUpT,IAAImU,GACX1W,gBAACmX,EAAmCjX,OAAAC,OAAA,CAACmL,IAAKoL,EAAS/H,QAAY+H,QAMlES,EAA2DjI,IAAA,IAAC,SAAEmG,EAAQ,KAAEpP,EAAI,cAAEqP,EAAa,cAAEC,GAAerG,EAAA,OACrHlP,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkV,GACLpP,EACAsP,GAAiBvV,gBAACkV,EAAsBhV,OAAAC,OAAA,GAAKoV,MAIzC6B,EAAqE1H,IAAA,IAAC,cAAEuF,EAAa,MAAEvS,EAAK,SAAEgG,GAAUgH,EAAA,OACjH1P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8U,GACLvS,EACAgG,IAII2O,EAA2CtH,IAAA,IAAC,UACrDuH,EAAS,OACTC,EAAM,QACN7R,EAAO,SACP8R,EAAQ,eACRC,EAAc,aACdC,EAAY,cACZC,EAAa,iCACbC,GACH7H,EAAA,OACG/P,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKmX,GACNtX,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKoX,GACL7R,EACA8R,QAEiC9V,IAArCkW,GAAkDH,GAAkBzX,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAKsX,SAC3D/V,IAArCkW,GAAkDD,GAAiB3X,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAKwX,SAC1DjW,IAArCkW,GAAkDF,GAAgB1X,gBAACwV,EAAsBtV,OAAAC,OAAA,GAAKuX,SACzDhW,IAArCkW,EACKA,EAAiCrV,IAAI,CAAC0D,EAAMxD,IACnCzC,gBAACgX,EAAwC9W,OAAAC,OAAA,GAAK8F,EAAI,CAAEqF,IAAK7I,MAElE,OAIRqV,EAAyDzH,IAAA,IAAC,QAAE3K,EAAO,MAAEqS,EAAK,kBAAEC,GAAmB3H,EAAA,OACjGrQ,gBAAA,OAAKX,UAAU,6BACVqG,EACD1F,gBAAA,OAAKX,UAAU,4BACV0Y,GACG/X,2BAAA,KACK+X,EAAM3I,SACN2I,EAAM1I,SACN0I,EAAME,YACND,GAAqBhY,gBAAA,KAAGX,UAAU,kDAAkD2Y,GACpFD,EAAMzI,IACNyI,EAAMk0B,eACNl0B,EAAMG,QACNH,EAAMI,SACNJ,EAAMK,eAOrBC,EAA4DC,IAAA,IAAC,QAAE5S,EAAO,MAAEqS,GAAOO,EAAA,OACjFtY,gBAAA,OAAKX,UAAU,+BACVqG,EACD1F,gBAAA,OAAKX,UAAU,8BACV0Y,GACG/X,2BAAA,KACK+X,EAAMQ,SACNR,EAAMI,SACNJ,EAAMG,QACNH,EAAMK,eA2LZI,UAnIkE/U,IAAQ,IAAAgV,EAAAC,EAGrF,MAAME,GAAyC,QAA1BH,EAAAhV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAyF,OAAA,EAA1BA,EAA4BK,aAAanH,KAAKoH,kBAAmB,GAEhFC,EAAuBA,KAAa,IAAAC,EACtC,OAAiC,QAA1BA,EAAAxV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAiG,GAAmC,QAAnCA,EAA1BA,EAA4BH,aAAanH,KAAKoH,uBAAe,IAAAE,OAAA,EAA7DA,EAA+DC,UAAUC,GAAgC,iBAAnBA,EAAUC,SAA6B,GAUlIC,EAAuBA,KACzB,MAAMC,EAAoBN,IAC1B,IAA2B,IAAvBM,EACA,OAAO,EACJ,CACH,MAAMC,EAAOX,EAAaU,GAC1B,QAASC,YAAMC,SAiBjBC,EAAyBC,UAC3B,GAAI/H,EAAM,CACN,MAAMgI,EAAgBlW,EAAMqG,KAAK+O,SAAS7F,OAC1C,IAAK2G,EACD,aAGEA,EAAcb,aAAac,WAAW,CAAEC,cAAelI,IAAQxJ,KAAK,KACtE2R,EAA0BT,UAI/BU,EAAwBD,GAA6B9Z,WAAwBqZ,KAC9EW,EArFoBC,EAC1BF,EACAG,EACAC,IAEAna,gBAAA,OAAKX,UAAU,iCACXW,gBAAA,SAAOX,UAAU,gDACbW,gBAAA,QAAMX,UAAW,8BAA+B8a,GAChDna,gBAAA,SACIkB,MAAO6Y,EAAyB,EAAI,EACpCpa,QAASua,EACT3Z,KAAK,WACLlB,UAAU,gCAEdW,gBAAA,OAAKX,UAAW,yDAAwD0a,EAAyB,UAAY,iBAuEhFE,CACjCF,EA5BuCG,KAAK,IAAAE,EAC5C,MAAMC,EAAe,CACjB,cAAe,uEACfjB,KAAM,eACNI,OAAQH,KAENiB,EAAMtB,KACH,IAATsB,EAAa1B,EAAa2B,KAAKF,GAAgBzB,EAAatV,OAAOgX,EAAK,EAAGD,GAC3E,MAAM1I,EAAazR,OAAOC,OAAO,GAA8B,QAA5Bia,EAAE3W,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAAoH,OAAA,EAA1BA,EAA4BtB,aAAanH,MAC1EA,IACAA,EAAKoH,gBAAkBH,EACvBa,EAAuB9H,KAmB3BlO,EAAMO,UAAUmW,8BAEd,QACFK,EAAO,cACPC,EAAa,YACbC,EAAW,cACXC,EAAa,eACbC,EAAc,UACdC,EAAS,UACTC,EAAS,iBACTC,EAAgB,UAChBC,EAAS,sBACTC,EAAqB,uBACrBC,EAAsB,wBACtBC,EAAuB,kBACvBC,EAAiB,QACjB5K,EAAO,MACPD,EAAK,MACLX,EAAK,WACLyL,EAAU,aACV5K,EAAY,sBACZ6K,EAAqB,UACrB3F,EAAS,iBACT4F,EAAgB,mBAChBC,EAAkB,mBAClBC,GACAhY,EAGJ,IAAIiY,EApIkB1D,EAACrG,EAAYgK,EAAsDC,KAEzF,IAAI7D,EAAQpG,EAAKkK,YACbC,EAA+B,GAQnC,OAPAH,WAAapZ,IAAIwZ,IACb,MAAMC,EAAOjE,aAAK,EAALA,EAAOnM,OAChBqQ,GAAQA,EAAKC,aAAeH,EAAEI,YAAY5Z,IACtC6Z,IAAC,IAAAC,EAAAC,EAAA,OAAItc,gBAAA,KAAGX,UAAU,yBAAwBW,gBAAA,QAAMX,UAAU,gCAAgC0c,EAAEQ,iB,IAAwBvc,gBAAA,QAAMX,UAAU,gCAAgCuc,EAAgD,QAA/BS,EAAmB,QAAnBC,EAACF,EAAEI,wBAAgB,IAAAF,OAAA,EAAlBA,EAAoBG,kBAAU,IAAAJ,IAAI,QAEhOP,EAAUvB,KAAKyB,KAEZF,GAyHW9D,CAFC9X,OAAOC,OAAO,GAA8B,QAA5BuY,EAAEjV,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAA0F,OAAA,EAA1BA,EAA4BI,aAAanH,MAEpClO,EAAMgC,OAAOiX,qBAAsBjZ,EAAMyD,QAAQyV,iBAAiBC,gBAC5G,MAAMC,EAAoB5S,IAAA,GAA+BwG,GAAa,IAAEuH,kBAAmB0D,IAE3F,OACI1b,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKsa,IACNE,GAAiB3a,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKua,GAAc9K,IACzC+K,GACE3a,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK0a,GACLrK,EACAD,EACAiK,GACGxa,2BAAA,KACIA,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK2a,GACLO,EACDrb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnC/X,EAAMgC,OAAOsU,wBAA0BC,EACxCha,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK4a,GACLQ,EACAE,IAGTzb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK6a,GACJJ,EAEIU,GAAyBtb,gBAACqY,EAAuBnY,OAAAC,OAAA,GAAKmb,IADtD7K,GAAgBzQ,gBAAC8X,EAAqB5X,OAAAC,OAAA,GAAK0c,IAEjD7c,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK8a,GACNjb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnCD,EACAE,GAEJ9F,GAAa3V,gBAACqX,EAAkBnX,OAAAC,OAAA,GAAKwV,IAhI1C0H,EAACC,EAAwBC,KACjD,MAAMC,EAAwC,IAAjBD,EAC7B,OACIvd,gBAAA,OAAKX,UAAW,gCAA+Bme,EAAuB,4CAA8C,KAChHxd,gBAAA,MAAIX,UAAU,wCACTie,GAELtd,gBAAA,KAAGX,UAAU,qCACRke,KAyHgBF,CArGlB5Z,EAAMO,UAAUyZ,oBAJU,QAA1BC,EAAAja,EAAMqG,KAAK+O,SAAS7F,cAAM,IAAA0K,OAAA,EAA1BA,EAA4B5E,aAAanH,KAAKzM,UAAW,IA0GxClF,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+a,GACNlb,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgb,GAA0BK,GACnCD,EACAE,MAOxBd,GAAiBS,GArHHuC,IAAaD,I,oGCxJzBwM,UAvC6GzmB,IAAQ,IAAA0mB,EAChI,MAAM,kBAAEC,EAAiB,QAAE1kB,EAAO,MAAE2kB,GAAU5mB,GACxC,4BAAE6mB,GAAgC7mB,EAAMO,UAG9C,OAFqB,KAEkB,QAAnCmmB,EAAA1mB,EAAMqG,KAAKygB,kBAAkBvX,cAAM,IAAAmX,OAAA,EAAnCA,EAAqCnhB,QAEjChJ,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAKiqB,GACP1kB,EACD1F,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,IACZW,IAAAge,cAAA,OAAK3e,UAAU,uCACXW,IAAAge,cAAA,MAAI3e,UAAU,+CACToE,EAAMO,UAAUwmB,8BAErBxqB,IAAAge,cAAA,KAAG3e,UAAU,4CACRoE,EAAMO,UAAUymB,2BAErBzqB,IAAAge,cAAC5Q,OAAI,CAAC/N,UAAU,oDACZW,IAAAge,cAAC/d,SAAM,CACHG,KAAK,SAASwP,MAAO0a,EAA2B,aAAcA,EAC9DjrB,UAAU,0DACVgB,KAAMmI,YAAW,OAAQ/E,EAAMyD,QAAQgB,gBAEtCoiB,OASzBtqB,IAAAge,cAACvR,SAAMvM,OAAAC,OAAA,GAAKiqB,GACP1kB,EACA2kB,K,grBC1Cb,MAAM6hB,EAAyD/sC,IAAA,IAAC,QAAEqR,EAAO,UAAE27B,EAAS,KAAElmC,GAAM9G,EAAA,OAC1Fa,2BAAA,KACGwQ,EACDxQ,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKgsC,GACPlmC,KAmBQmmC,UAdoE1+B,IAA2C,IAA1C,4BAAE2+B,EAA2B,MAAEjhC,GAAOsC,EACxH,OACE1N,gBAACyM,SAAMvM,OAAAC,OAAA,GAAKksC,GACTjhC,EAAM7I,IAAI0D,IAETA,EAAKkmC,UAASliC,IAAA,GAAQhE,EAAKkmC,WAAS,IAClC9sC,UAAW,wCAENW,gBAACksC,EAAahsC,OAAAC,OAAA,CAACmL,IAAKrF,EAAK7G,IAAQ6G,S,ytBCMhD,MAAMqmC,UAAwBtsC,gBAE1BwD,YAAYC,GACRE,MAAMF,GAFF,KAAAu3B,WAAa,mBAeb,KAAAuR,uBAAyB7yB,UAA0B,IAAA8yB,EACvD,MAAM55B,EAAYhP,KAAKH,MAAMqG,KAAK6H,KAAKqB,OACvC,IAAKJ,EACD,OAEJ,MACM65B,EAAsC,QAAtBD,EADPviC,EAAA,GAAQ2I,EAAUjB,MACEm0B,iBAAS,IAAA0G,OAAA,EAAnBA,EAAqB9lC,KAAKq/B,GAAMA,EAAGp3B,SAAW/K,KAAKH,MAAMipC,YAC9ED,IACAA,EAAiBvnC,QAAUtB,KAAKkC,MAAMqiC,eAEpCv1B,EAAU+5B,uBAAuB,CACnCD,WAAY9oC,KAAKH,MAAMipC,WACvBE,YAAaH,aAAgB,EAAhBA,EAAkBlgB,SAC/B1K,qBAAsB,CAAE3c,QAAStB,KAAKkC,MAAMqiC,WAGhDvkC,KAAKsC,SAAS,CAAEkiC,qBAAqB,KAOjC,KAAAC,oBAAuB7iC,IAC3B5B,KAAKsC,SAAS,CAAEiiC,QAAS3iC,EAAMG,OAAOzE,SAKlC,KAAAonC,qBAAuB,KAC3B1kC,KAAKsC,SAAS,CAAEiiC,QAASvkC,KAAKH,MAAM0kC,QAASC,qBAAqB,KAM9D,KAAAG,yBAA2B,IAC/B3kC,KAAKsC,SAASsiC,IACH,CACHJ,qBAAsBI,EAAUJ,uBAQpC,KAAAK,4BAA8B,KAClC,MACIzkC,WAAW,gBAAE2kC,EAAe,aAAEC,IAC9BhlC,KAAKH,MACT,OAAKG,KAAKH,MAAM0kC,QAIRnoC,gBAACA,WAAc,KACXA,gBAAA,KAAGX,UAAcuE,KAAKo3B,WAAR,qBAAwCp3B,KAAKilC,sBAC1DjlC,KAAKklC,mBAAmBF,IAL1BhlC,KAAKklC,mBAAmBH,IAW/B,KAAAE,mBAAqB,KACzB,MAAM,QAAEV,GAAYvkC,KAAKH,MACzB,OAAI0kC,EAAQn/B,OAAS,GACPm/B,EAAQa,UAAU,EAAG,IAAxB,MAEAb,GAQP,KAAAW,mBAAsBtnB,GAC1BxhB,gBAAA,KAAGK,KAAM,IAAKV,QAASiE,KAAK2kC,yBAA0BlpC,UAAcuE,KAAKo3B,WAAR,UAC5DxZ,GAQD,KAAAynB,kBAAoB,KACxB,MACIjlC,WAAW,eAAEklC,IACbtlC,KAAKH,MACT,OACIzD,gBAACC,SAAM,CAACN,QAASiE,KAAK2oC,uBAAwBltC,UAAW,GAAGuE,KAAKo3B,sBAAsBp3B,KAAKo3B,4BACvFkO,IASL,KAAAC,oBAAsB,KAC1B,MACInlC,WAAW,iBAAE+G,IACbnH,KAAKH,MACT,OACIzD,gBAACC,SAAM,CAACN,QAASiE,KAAK0kC,qBAAsBjpC,UAAW,GAAGuE,KAAKo3B,sBAAsBp3B,KAAKo3B,8BACrFjwB,IAQL,KAAAq+B,gBAAkB,KACtB,MACIplC,WAAW,cAAEqlC,IACbzlC,KAAKH,OACH,QAAE0kC,GAAYvkC,KAAKkC,MACzB,OACI9F,gBAAA,OAAKX,UAAcuE,KAAKo3B,WAAR,sBACZh7B,gBAAA,SAAO8B,QAAS8B,KAAK2lC,cAAelqC,UAAcuE,KAAKo3B,WAAR,oBAC1CqO,GAELrpC,gBAAA,YACIZ,GAAIwE,KAAK2lC,cACTroC,MAAOinC,EACP9mC,SAAUuC,KAAKykC,oBACfhpC,UAAcuE,KAAKo3B,WAAR,iBAQnB,KAAAwO,kBAAoB,IACxBxpC,gBAAA,OAAKX,UAAcuE,KAAKo3B,WAAR,iBACXp3B,KAAKqlC,oBACLrlC,KAAKulC,uBAIN,KAAAM,aAAe,IAEfzpC,gBAACghB,QAAK,CAACsD,OAAQ1gB,KAAKkC,MAAMsiC,oBAAqBsB,OAAQ9lC,KAAK2kC,0BACxDvoC,gBAAC2pC,cAAW,CAACtqC,UAAcuE,KAAKo3B,WAAR,kBAAqCp3B,KAAKgmC,kBACjEhmC,KAAKwlC,kBACNppC,gBAAC6pC,cAAW,KAAEjmC,KAAK4lC,sBAQvB,KAAAD,YAAc,IAAiB3lC,KAAKH,MAAMipC,WAAd,iBAK5B,KAAA9C,eAAiB,KACrB,MACI5lC,WAAW,kBAAE8lC,IACblmC,KAAKH,MAET,OAAOqmC,EAAkB+C,QAAQ,MAAOjpC,KAAKH,MAAMqpC,mBAnLnDlpC,KAAKkC,MAAQ,CACTqiC,QAAS1kC,EAAM0kC,QACfC,qBAAqB,GAoLtBr+B,SACH,MACItE,QAAQ,UAAEpG,IACVuE,KAAKH,MACHuG,EAASC,IAAA,GACRrG,KAAKH,OAAK,IACbq1B,cAAe,CACXznB,IAAK,MACLhS,UAAcuE,KAAKo3B,WAAR,mBACX+O,SAAUnmC,KAAK6kC,+BAEnB1P,2BAA4B,CACxB15B,UAAWqB,IAAWrB,EAAWuE,KAAKo3B,YACtC3pB,IAAK,MACLlH,YAAWF,EAAA,GAAOrG,KAAKH,QAE3B+pB,MAAO5pB,KAAK6lC,iBAEhB,OAAO7lC,KAAKH,MAAMiH,WAAWV,IAItBsiC,a,8HCnOR,MAAMS,UAAuB/sC,gBACzB+J,SAEH,MAAM,WAAEijC,GAAeppC,KAAKH,MAC5B,OAAOzD,gBAACyM,SAAMvM,OAAAC,OAAA,GAAK6sC,GAAappC,KAAKqpC,eAAerpC,KAAKH,QAGrDwpC,eAAexpC,GAEnB,MAAM,QAAEiC,EAAO,iBAAEwnC,EAAgB,KAAE7kB,EAAI,SAAE7G,EAAQ,MAAE3B,EAAK,KAAEvgB,EAAI,aAAE6tC,GAAiB1pC,EACjF,OAAIiC,EAEI1F,gBAACoN,OAAIlN,OAAAC,OAAA,GAAK+sC,GACL,IACDltC,gBAACoN,OAAI,CAACiE,IAAI,IAAIhS,UAAU,iCAAgC,cAAa,SACpEqG,EAAS,KAGX2iB,GAAQxI,EAEX7f,gBAACoN,OAAIlN,OAAAC,OAAA,GAAKkoB,GACL7G,EACA3B,GAGFwI,EACA8kB,EAGPntC,2BAAA,KACKV,EACAugB,IAMFktB","file":"static/js/6.0c39c4cca5b7b530ddf1.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpButtonProps {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n link?: string;\n telemetryContent: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const SignUpButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n link,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent, text);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n

{message}

\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n id?: string;\n type: InputType;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IBusinessSignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nexport const SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n onChange,\n fieldReference\n}) => {\n if (type === InputType.TextArea) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpLabelProps {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\n formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n wrapper: INodeProps;\n isAddressInput?: boolean;\n id: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n isReady: boolean;\n formItems: IFormItem[];\n addressHasErrors: boolean;\n showAddressErrors: boolean;\n hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n FormWrapper: INodeProps;\n items: IBusinessSignUpItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n className: string;\n businessSignUp: IModuleProps;\n ContainerWrapper: INodeProps;\n heading: React.ReactNode;\n businessSignUpForm: IBusinessSignUpLocalAccount;\n formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n address?: Address;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport enum InputType {\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n Text = 'text',\n Address = 'address',\n Email = 'email',\n TextArea = 'textarea'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n Email = 'CompanyEmail',\n CompanyName = 'CompanyName',\n Address = 'CompanyAddress',\n JobTitle = 'JobTitle',\n Size = 'CompanySize',\n Department = 'Department',\n Comment = 'Comment'\n}\n\nexport const renderInputSection = (\n inputs: IFormItem[],\n className: string,\n needToReset: boolean,\n onInputChange: (event: React.ChangeEvent) => void,\n showErrors: boolean,\n addressForm?: React.ReactNode,\n updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n return inputs.map((element, index) => {\n const { id, type, label, maxChars, isRequired, pattern, customClass, value, fieldReference } = element;\n\n const baseSignUpItem: IBusinessSignUpItem = {\n wrapper: {\n className: classnames(className, `${className}-${id}`, customClass)\n },\n id,\n label: ,\n errorMessage: \n };\n\n if (type === InputType.Address) {\n if (addressForm) {\n baseSignUpItem.isAddressInput = true;\n baseSignUpItem.input = (\n <>\n {React.cloneElement(addressForm as React.ReactElement, {\n updateForm: updateAddress,\n hasError: showErrors,\n isRequired: isRequired === undefined ? false : isRequired,\n resetAddress: needToReset\n })}\n \n );\n } else {\n // If the address slot is not filled, remove this input from the form\n inputs.splice(index, 1);\n }\n } else {\n baseSignUpItem.input = (\n \n );\n }\n\n return baseSignUpItem;\n });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component>}\n */\nclass BusinessSignUp extends React.Component {\n // Used as default data\n public BusinessSignUpDefaultInputs: IFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.firstNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.lastNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.emailAddressLabel,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-50'\n },\n {\n id: InputID.CompanyName,\n type: InputType.Text,\n label: this.props.resources.companyLabel,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Department,\n type: InputType.Text,\n label: this.props.resources.departmentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.JobTitle,\n type: InputType.Text,\n label: this.props.resources.jobTitleLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Size,\n type: InputType.Text,\n label: this.props.resources.companySizeLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Address,\n type: InputType.Address,\n label: this.props.resources.companyAddressLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n },\n {\n id: InputID.Comment,\n type: InputType.TextArea,\n label: this.props.resources.commentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n }\n ];\n\n private readonly formChildReference: React.RefObject = React.createRef();\n\n private readonly moduleClassName: string = 'ms-business-sign-up';\n\n private needsToReset: boolean = false;\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBusinessSignUpExtendedProps) {\n super(props);\n\n this.state = {\n isReady: false,\n formItems: this.props.formItems || this._addedReference(),\n addressHasErrors: false,\n showAddressErrors: false,\n hasSubmitErrors: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this.formChildReference.current?.focus();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { formItems } = this.state;\n const { className, heading } = config;\n\n const viewProps = {\n ...this.props,\n businessSignUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n ContainerWrapper: {\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n businessSignUpForm: this._renderForm(),\n formItems\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle the heading change event.\n * @param event - Content Editable Event.\n */\n public handleHeadingChange = (event: ContentEditableEvent): void => {\n this.props.config.heading.text = event.target.value;\n };\n\n private _renderForm(): IBusinessSignUpLocalAccount {\n const { config, resources, slots } = this.props;\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n const {\n signUpButtonArialabel,\n signUpButtonText,\n cancelButtonArialabel,\n cancelButtonText,\n errorMessage,\n partialAddressErrorMessage\n } = resources;\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n\n const form = {\n FormWrapper: {\n className: `${this.moduleClassName}__form `\n },\n items: renderInputSection(\n formItems,\n `${this.moduleClassName}__form-item`,\n this.needsToReset,\n this._onInputChange,\n showAddressErrors,\n addressForm,\n this._onAddressChange\n ),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasSubmitErrors && ,\n showAddressErrors && (\n \n )\n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n\n if (this.needsToReset) {\n this.needsToReset = false;\n }\n\n return form;\n }\n\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n this.setState({\n isReady: this._isFormReady(),\n formItems: newForm,\n hasSubmitErrors: false\n });\n };\n\n private _addedReference(): IFormItem[] {\n const newFormFields = this.BusinessSignUpDefaultInputs;\n newFormFields[0].fieldReference = this.formChildReference;\n return newFormFields;\n }\n\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n // Find address item\n const newForm = this.state.formItems;\n const addressItem = newForm.find(item => {\n return item.type === InputType.Address;\n });\n\n // If found --> set to currentAddress\n if (addressItem) {\n addressItem.address = currentAddress;\n\n // Update state with new values and set errors to false if address is not required field\n this.setState(\n {\n formItems: newForm,\n addressHasErrors: errors,\n showAddressErrors: false\n },\n () => {\n this.setState({ isReady: this._isFormReady() });\n }\n );\n }\n };\n\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const currentInput of formItems) {\n // Will return FALSE if:\n // - input field is required\n // IF is address AND addressHasErrors === true\n // ELSE value is undefined OR empty\n // OR\n // - pattern provided and value does not match pattern\n\n if (currentInput.isRequired) {\n if (currentInput.type === InputType.Address) {\n if (this.state.addressHasErrors) {\n return false;\n }\n } else if (currentInput.value === undefined || currentInput.value === '') {\n return false;\n }\n }\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _onSubmit = (event: React.MouseEvent) => {\n if (this.state.addressHasErrors) {\n this.setState({\n showAddressErrors: true\n });\n\n event.preventDefault();\n return;\n }\n\n const { config, context } = this.props;\n\n // Check for matching id and if not empty\n const firstName = this._getItem(InputID.FirstName);\n const lastName = this._getItem(InputID.LastName);\n const companyName = this._getItem(InputID.CompanyName);\n const companyEmail = this._getItem(InputID.Email);\n const companyAddress = this._getItem(InputID.Address, true);\n const jobTitle = this._getItem(InputID.JobTitle);\n const department = this._getItem(InputID.Department);\n const companySize = this._getItem(InputID.Size);\n const comments = this._getItem(InputID.Comment);\n\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n companyAddress.address.Email = companyEmail.value;\n }\n\n const newPartner: BusinessPartnerProspect = {\n FirstName: firstName && firstName.value,\n LastName: lastName && lastName.value,\n CompanyName: companyName && companyName.value,\n Address: companyAddress && companyAddress.address && companyAddress.address,\n JobTitle: jobTitle && jobTitle.value,\n Department: department && department.value,\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n Comments: comments && comments.value\n };\n\n this.setState({\n isReady: false\n });\n\n // Create business partner request\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\n .then(() => {\n const successPageURL =\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n getUrlSync('home', this.props.context.actionContext) ||\n '';\n window.location.href = successPageURL;\n })\n .catch(() => {\n this.setState({\n hasSubmitErrors: true\n });\n });\n };\n\n private readonly _onCancel = () => {\n // Reset values of the form\n const cleanForm = this.state.formItems;\n cleanForm.forEach(input => {\n input.value = '';\n });\n\n // Set reset flag so address input will get reset on next renderInputSection() call\n this.needsToReset = true;\n\n this.setState({\n isReady: false,\n formItems: cleanForm,\n addressHasErrors: true,\n showAddressErrors: false,\n hasSubmitErrors: false\n });\n };\n\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\n if (isAddress) {\n return this.state.formItems.find(item => {\n return item.id === id && item.address;\n });\n }\n return this.state.formItems.find(item => {\n return item.id === id && item.value !== '';\n });\n };\n}\n\nexport default BusinessSignUp;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n if (MsDyn365.isBrowser) {\r\n const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n console.log(linksElements);\r\n linksElements.forEach(l => l.setAttribute('href', '#'));\r\n }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-sales-line';\r\nimport {\r\n ICheckoutOrderConfirmationViewProps\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/./checkout-order-confirmation';\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n // receiptEmail,\r\n // createdDate,\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, pickupDateTimeslot, trackingInfo }) => (\r\n \r\n {heading}\r\n {count}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderConfirmationView: React.FC = ({\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n // orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {/* {orderInfomation && } */}\r\n {backToShoppingLink}\r\n {groups && }\r\n {orderSummary && }\r\n {payment && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\n/**\n * ICartIconData: Interface for Cart Icon Data.\n */\nexport interface ICartIconData {\n cart?: ICartState;\n}\n\n/**\n * ICartIconComponentProps: Interface for Cart Icon component props.\n */\nexport interface ICartIconComponentProps extends IComponentProps {\n className?: string;\n cartLabel: string;\n cartQtyLabel: string;\n telemetryContent?: ITelemetryContent;\n salesAgreementPricePrompt?: string;\n}\n\n/**\n * ICartIconComponent: Interface for Cart Icon component.\n */\nexport interface ICartIconComponent extends IComponent {}\n\nconst CartIconComponentActions = {};\n\n/**\n *\n * CartIcon component.\n * @extends {React.FC}\n */\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\n const {\n cartLabel,\n cartQtyLabel,\n data: { cart }\n } = props;\n const defaultCartItemCount: number = 0;\n\n const cartItem = cart ? cart.totalItemsInCart : defaultCartItemCount;\n let qtyLabel: string = '';\n const cartMaxQuantity: number = 99;\n const maxQuantityLabel: string = '99+';\n if (cartItem > cartMaxQuantity) {\n qtyLabel = maxQuantityLabel;\n } else {\n qtyLabel = format(cartQtyLabel, cartItem);\n }\n const label = format(cartLabel, cartItem);\n\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const style: React.CSSProperties = {\n visibility: cart ? 'visible' : 'hidden'\n };\n return (\n
\n
\n {qtyLabel}\n
\n
\n );\n});\n\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\n // @ts-expect-error -- Compatible issue with the component override.\n ICartIconComponent\n>('CartIcon', { component: CartIcon, ...CartIconComponentActions });\n\nexport default CartIconComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\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 /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\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.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
\n
{this.props.promoCodeHeadingText}
\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 /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .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(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
\n
\n \n \n
\n
\n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\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\n .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 * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
\n
\n {'Code '}\n {coupon.Code}\n {'Applied '}\n
\n \n
\n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from \"@msdyn365-commerce-modules/utilities\";\r\nimport * as React from \"react\";\r\n\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from \"@msdyn365-commerce-modules/checkout/src/modules/checkout/./checkout\";\r\nimport { IEmailDelivery } from \"@msdyn365-commerce-modules/checkout/src/modules/checkout/./components\";\r\nimport {\r\n IInvoicePaymentSummary\r\n} from \"@msdyn365-commerce-modules/checkout/src/modules/checkout/./components/get-invoice-payment-summary\";\r\nimport {\r\n IChargeLinesBreakdownData,\r\n ICheckoutProps as ICheckoutExtensionProps\r\n} from \"../definition-extensions/checkout.ext.props.autogenerated\";\r\nimport { AttributeBooleanValue, Cart } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { LinePagination } from \"./components/line-pagination\";\r\n\r\n\r\nexport interface IOrderSummaryExtended extends IOrderSummary {\r\n otherChargesLines: React.ReactNode[];\r\n}\r\n\r\nexport interface ILineItemsExtended extends ILineItems {\r\n numItems: number;\r\n prev: string;\r\n next: string;\r\n}\r\n\r\nexport interface ILineItemDeliveryGroupExtended extends ILineItemDeliveryGroup {\r\n numItems: number;\r\n prev: string;\r\n next: string;\r\n}\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) =>\r\n {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n//\r\nexport const LineItemGroupComponent: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n numItems,\r\n prev,\r\n next\r\n }) => {\r\n if (lineItems && lineItems.length > 0 && !lineItems[0].item) {\r\n return null;\r\n }\r\n\r\n const defaultPageLength: number = 5;\r\n const pageLength = numItems || defaultPageLength;\r\n const [paginatedView, setPaginatedView] = React.useState((lineItems && lineItems.length >= pageLength) ? lineItems.slice(0, pageLength) : lineItems);\r\n const [paginationPage, setPaginationPage] = React.useState(0);\r\n\r\n const nextPage = () => {\r\n changePage(paginationPage + 1);\r\n };\r\n\r\n const prevPage = () => {\r\n changePage(paginationPage - 1);\r\n };\r\n\r\n const changePage = (page: number) => {\r\n if (page < 0) {\r\n return;\r\n }\r\n\r\n if (lineItems && (page > lineItems.length / pageLength)) {\r\n return;\r\n }\r\n\r\n let skip = (page * pageLength);\r\n if (lineItems && lineItems.length >= skip) {\r\n setPaginationPage(page);\r\n let slice = lineItems?.slice(skip);\r\n setPaginatedView(slice.length >= pageLength ? slice.slice(0, pageLength) : slice);\r\n }\r\n };\r\n\r\n const pagination = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n if (paginatedView.length === 0 || !paginatedView[0].item) {\r\n return null;\r\n }\r\n return (\r\n \r\n {heading}\r\n \r\n {/* {lineItems.map(lineItem => ( */}\r\n {paginatedView.map(lineItem => {\r\n return ;\r\n })}\r\n \r\n {pagination()}\r\n \r\n );\r\n};\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n }) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({\r\n LineItem,\r\n item,\r\n pickUpAtStore,\r\n emailDelivery\r\n }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({\r\n PickUpAtStore,\r\n label,\r\n location\r\n }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n Header,\r\n heading,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode,\r\n numItems,\r\n prev,\r\n next\r\n }) => {\r\n const items = itemsForPickup ? itemsForPickup : itemsForEmail ? itemsForEmail : itemsForShip;\r\n if (!items) {\r\n return null;\r\n }\r\n const lineItemGroupComponentExt: ILineItemDeliveryGroupExtended = { ...items!, numItems, prev, next };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup &&\r\n }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail &&\r\n }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip &&\r\n }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n );\r\n};\r\n\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines, otherChargesLines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {otherChargesLines &&

{otherChargesLines}

}\r\n {lines.tax}\r\n {/* {lines.totalDiscounts} */}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst _renderShipOnCheckout = (\r\n shipCompleteOnCheckout: boolean,\r\n handleShipCompleteOnCheckoutChange: (e: React.MouseEvent) => void,\r\n shipCompleteOnCheckoutLabel: string\r\n): React.ReactNode => (\r\n
\r\n \r\n
\r\n);\r\n\r\nconst _renderOrderComment = (commentHeading: string, commentString: string): React.ReactNode => {\r\n const emptyStringClassName = commentString == \"\";\r\n return (\r\n \r\n

\r\n {commentHeading}\r\n

\r\n

\r\n {commentString}\r\n

\r\n \r\n );\r\n};\r\n\r\n\r\nconst otherChargesLines = (cart: Cart, chargeCodes: IChargeLinesBreakdownData[] | undefined, currencyFormatter: (price: string | number, currencyCode?: string | undefined) => string): React.ReactNode[] => {\r\n\r\n let lines = cart.ChargeLines;\r\n let linesNode: React.ReactNode[] = [];\r\n chargeCodes?.map(c => {\r\n const node = lines?.filter(\r\n line => line.ChargeCode === c.chargeCode).map(\r\n r =>

{c.chargeLineLabel} {currencyFormatter(r.CalculatedAmount?.toString() ?? \"\")}

\r\n );\r\n linesNode.push(node);\r\n });\r\n return linesNode;\r\n};\r\n\r\nconst CheckoutView: React.FC> = props => {\r\n const attributeArr = props.data.checkout.result?.checkoutCart.cart.AttributeValues || [];\r\n const getShipCompleteIndex = (): number => {\r\n return props.data.checkout.result?.checkoutCart.cart.AttributeValues?.findIndex(attribute => attribute.Name === \"ShipComplete\") || -1;\r\n };\r\n // Get the text in the order level comment, if it doesn't exist, assign an empty string\r\n const getCommentText = (): string => {\r\n return props.data.checkout.result?.checkoutCart.cart.Comment || \"\";\r\n };\r\n // Get the comment heading text from the resources\r\n const getCommentHeadingText = (): string => {\r\n return props.resources.commentHeadingText;\r\n };\r\n const getShipCompleteValue = (): boolean => {\r\n const shipCompleteIndex = getShipCompleteIndex();\r\n if (shipCompleteIndex === -1) {\r\n return false;\r\n } else {\r\n const attr = attributeArr[shipCompleteIndex] as AttributeBooleanValue;\r\n return !!attr?.Value;\r\n }\r\n };\r\n const handleShipCompleteOnCheckoutChange = () => {\r\n const shipComplete = {\r\n \"@odata.type\": \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\",\r\n Name: \"ShipComplete\",\r\n Value: !getShipCompleteValue()\r\n };\r\n const idx = getShipCompleteIndex();\r\n idx === -1 ? attributeArr.push(shipComplete) : attributeArr.splice(idx, 1, shipComplete);\r\n const cart: Cart = Object.assign({}, props.data.checkout.result?.checkoutCart.cart);\r\n if (cart) {\r\n cart.AttributeValues = attributeArr;\r\n saveShipCompleteToCart(cart);\r\n }\r\n };\r\n const saveShipCompleteToCart = async (cart: Cart) => {\r\n if (cart) {\r\n const checkoutState = props.data.checkout.result;\r\n if (!checkoutState) {\r\n return;\r\n }\r\n\r\n await checkoutState.checkoutCart.updateCart({ newCartObject: cart }).then(() => {\r\n setShipCompleteOnCheckout(getShipCompleteValue());\r\n });\r\n }\r\n };\r\n const [shipCompleteOnCheckout, setShipCompleteOnCheckout] = React.useState(getShipCompleteValue());\r\n const shipCompleteOnCheckoutToggle = _renderShipOnCheckout(\r\n shipCompleteOnCheckout,\r\n handleShipCompleteOnCheckoutChange,\r\n props.resources.shipCompleteOnCheckoutLabel\r\n );\r\n\r\n // const getProductEligibility = async (addressId: number): Promise => {\r\n // // get items ids after removing duplicates\r\n // const checkoutState = props.data.checkout.result;\r\n // let productToRemove: any[] = [];\r\n // let list: EligibleItems = [];\r\n //\r\n // if (!checkoutState) {\r\n // return;\r\n // }\r\n //\r\n // const itemIds = [...new Set(cart.CartLines?.map(p => p.ItemId!) || [])];\r\n //\r\n // if (itemIds.length) {\r\n //\r\n // await getProductEligibilityAsync({ callerContext: props.context.actionContext }, itemIds, addressId, checkoutState.checkoutCart.cart.Id || '')\r\n // .then((result: any) => {\r\n // result.forEach((i: any) => {\r\n // const id = getExtensionPropertyValueByKey(i.ExtensionProperties, \"ItemId\", CommercePropertyValueEnum.string);\r\n // list.push({\r\n // ItemId: String(id),\r\n // IsEligible: i.IsEligible\r\n // });\r\n // });\r\n // });\r\n //\r\n // cart.CartLines?.forEach(c => {\r\n // list.forEach(i => {\r\n // if (i.ItemId === c.ItemId && !i.IsEligible) {\r\n // productToRemove.push(\r\n // {\r\n // LineId: c.LineId || '',\r\n // ItemId: c.ItemId\r\n // }\r\n // );\r\n // }\r\n // });\r\n // });\r\n // if (productToRemove.length) {\r\n // await checkoutState.checkoutCart.removeCartLines({ cartLineIds: productToRemove.map(p => p.LineId) });\r\n // }\r\n // return productToRemove;\r\n // }\r\n // }\r\n\r\n const _renderAccountLockedMessage = (): React.ReactNode => (\r\n
{props.config.accountLockedMessage}
\r\n );\r\n\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton\r\n } = props;\r\n const defaultPageLength: number = 5;\r\n const pageLength = props.config.pageLength || defaultPageLength;\r\n const cart: Cart = Object.assign({}, props.data.checkout.result?.checkoutCart.cart);\r\n let chargelines = otherChargesLines(cart, props.config.chargeLinesBreakdown, props.context.cultureFormatter.formatCurrency);\r\n const orderSummaryExtended: IOrderSummaryExtended = { ...orderSummary!, otherChargesLines: chargelines };\r\n // const [productsRemoved, setProductsRemoved] = React.useState(null);\r\n\r\n // if (MsDyn365.isBrowser && cart.CartLines) {\r\n // const shippingId = (window as any).ShippingId;\r\n // const recId = cart.ShippingAddress?.RecordId;\r\n //\r\n // // if (recId && shippingId !== recId) {\r\n // // (window as any).ShippingId = recId;\r\n // // getProductEligibility(recId).then(result => {\r\n // // if (result.length) {\r\n // // setProductsRemoved(result);\r\n // // document.dispatchEvent(new CustomEvent(\"UPDATE_CART\", { detail: { Products: result } }));\r\n // // }\r\n // // });\r\n // // }\r\n // }\r\n\r\n const isAccountBlocked: boolean | undefined = props.data.customerInformation.result?.Blocked;\r\n const lineItemsExt: ILineItemsExtended = {\r\n ...lineItems!,\r\n numItems: pageLength,\r\n prev: props.resources.paginationPrev || \"\",\r\n next: props.resources.paginationNext || \"\"\r\n };\r\n return (\r\n \r\n {/*{productsRemoved && productsRemoved.length ? generateProductsRemovedMessage(productsRemoved, productEligibilityText) : null}*/}\r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {isAccountBlocked ? _renderAccountLockedMessage() : null}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n {termsAndConditions}\r\n {props.config.shipCompleteOnCheckout && shipCompleteOnCheckoutToggle}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && \r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n {_renderOrderComment(getCommentHeadingText(), getCommentText())}\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMediaGalleryThumbnailItemViewProps,\r\n IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery';\r\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param thumbnail - The carousel thumbnail line props.\r\n * @returns Return HTML having thumnailcontainer props with image.\r\n */\r\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Gets the thumbnail item to display media gallery images.\r\n * @param image - The media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param imageId - Image id.\r\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render images.\r\n */\r\nconst GetThumbnailItemComponent = (\r\n image: IImageData,\r\n imageSettings: IImageSettings,\r\n imageId: number,\r\n modifiedActiveIndex: number,\r\n props: IMediaGalleryViewProps\r\n): IMediaGalleryThumbnailItemViewProps => {\r\n\r\n /**\r\n * OnClick method of media gallery item.\r\n * */\r\n const onClick = () => {\r\n props.callbackToggle?.();\r\n props.callbackThumbnailClick?.(imageId);\r\n props.state.activeIndex = imageId;\r\n };\r\n\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n /**\r\n * Keydown event of media gallery item.\r\n * @param event - React.KeyboardEvent.\r\n * */\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n };\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'presentation',\r\n key: imageId\r\n },\r\n Picture: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Gets the empty thumbnail item to display media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render empty images.\r\n */\r\nconst GetEmptyThumbnailItemComponent = (imageSettings: IImageSettings, props: IMediaGalleryViewProps): IMediaGalleryThumbnailItemViewProps => {\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-media-gallery__thumbnail-item',\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 0,\r\n 'aria-label': '',\r\n 'aria-selected': true\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Update media gallery items method.\r\n * @param items - The media gallery thumbnail item view props.\r\n * @returns The IImageData array.\r\n */\r\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\r\n return items?.map(item => {\r\n return {\r\n altText: item.Picture.props.altText,\r\n src: item.Picture.props.src\r\n };\r\n });\r\n};\r\n\r\nconst defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\r\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n};\r\n\r\n/**\r\n * Render the Media gallery thumbnails to represent images in grid view.\r\n * @param thumbnails - The thumbnail view props.\r\n * @param props - The media gallery view props.\r\n * @returns - The single slide carousel component to render as media gallery image.\r\n */\r\nconst renderThumbnails = (\r\n thumbnails: IMediaGalleryThumbnailsViewProps,\r\n props: IMediaGalleryViewProps\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\r\n const { state, Thumbnails } = props;\r\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\r\n\r\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\r\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\r\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty' ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)] :\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\r\n mediaGalleryItems?.map((item: IImageData, id: number) => GetThumbnailItemComponent(item,\r\n defaultThumbnailImageSettings, id, state.activeIndex, props));\r\n\r\n return (\r\n \r\n \r\n {items?.map(renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render the Media gallery items using viewprops.\r\n * @param props - The media gallery view props.\r\n * @returns The media gallery module wrapping up images node.\r\n */\r\nconst mediaGalleryView: React.FC = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n return (\r\n \r\n \r\n {Modal}\r\n {renderThumbnails(Thumbnails, props)}\r\n \r\n );\r\n};\r\n\r\nexport default mediaGalleryView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, 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 {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} 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 categoryImageAltText: string;\n drawerKeyValue: IDictionary;\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 _positionInSetOffset: number = 1;\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, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\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 /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\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 });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n 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 /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\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?.id });\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 /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\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 } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\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 subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\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 =\n subMenus &&\n 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 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 /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\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 /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = 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 /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\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 * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !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 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
\n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \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 const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\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 parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\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 /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, 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 /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\r\n\r\n/**\r\n * B2b Request status View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\nconst B2bRequestsStatusView: React.FC> = props => {\r\n const { b2bRequestsStatus, heading, table } = props;\r\n const { continueShoppingButtonTitle } = props.resources;\r\n const initialCount = 0;\r\n\r\n if (props.data.operationRequests.result?.length === initialCount) {\r\n return (\r\n \r\n {heading}\r\n \r\n
\r\n

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

\r\n

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

\r\n \r\n \r\n {continueShoppingButtonTitle}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {heading}\r\n {table}\r\n \r\n );\r\n};\r\n\r\nexport default B2bRequestsStatusView;\r\n","import React from 'react';\r\nimport { AttributeTextValue, Customer, SalesOrder, SimpleProduct } from \"@msdyn365-commerce/retail-proxy\";\r\nimport { ICultureInfoFormatter } from '@msdyn365-commerce/core-internal';\r\nexport interface IOrderConfirmationDetailProps {\r\n cultureFormatter: ICultureInfoFormatter;\r\n salesOrder: SalesOrder;\r\n customer: Customer | undefined;\r\n deliveryMode: string;\r\n orderedProducts: SimpleProduct[]\r\n}\r\n\r\nexport const OrderConfirmationDetail: React.FC = ({salesOrder, cultureFormatter, customer, deliveryMode, orderedProducts}) => {\r\n\r\n const getProductDescription = (itemId: string): string => orderedProducts.find(p => p.ItemId === itemId)?.Description || '';\r\n\r\n const salesOrderAttrs = salesOrder.AttributeValues || [];\r\n const attr = salesOrderAttrs.find(s => s.Name === \"po-number\") as AttributeTextValue;\r\n return (\r\n
\r\n
\r\n

Order Confirmation

\r\n window.print() } />\r\n
\r\n\r\n
\r\n
\r\n
Order Information
\r\n
\r\n
\r\n

PO Number:

\r\n

{attr.TextValue}

\r\n
\r\n
\r\n

Order Date:

\r\n {cultureFormatter.formatDate(salesOrder.CreatedDateTime!, {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"2-digit\"\r\n })}

\r\n
\r\n
\r\n {salesOrder.Comment ? (
\r\n
\r\n

Notes:

\r\n

{salesOrder.Comment}

\r\n
\r\n
) : null}\r\n
\r\n
\r\n
\r\n
Account Information
\r\n
\r\n
\r\n

Account Name:

\r\n

{customer?.FirstName}

\r\n
\r\n
\r\n

Account Number:

\r\n

{customer?.AccountNumber}

\r\n
\r\n
\r\n
\r\n
\r\n
Shipping Information
\r\n
\r\n
\r\n

Shipping Address:

\r\n

{salesOrder.ShippingAddress?.Name}

\r\n

{salesOrder.ShippingAddress?.FullAddress}

\r\n
\r\n
\r\n

Shipping Method:

\r\n

{deliveryMode}

\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesOrder.SalesLines?.map((so, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
LineItem IdDescriptionPriceQuantityTotal
{so.LineNumber}{so.ItemId}{getProductDescription(so.ItemId!)}\r\n {so.Comment ? <>
Notes:\r\n {so.Comment} : null }\r\n
{cultureFormatter.formatCurrency(so.Price!)}{so.Quantity}{cultureFormatter.formatCurrency(so.TotalAmount!)}
\r\n
\r\n

Order Total:

\r\n

{cultureFormatter.formatCurrency(salesOrder.TotalAmount!)}

\r\n\r\n
\r\n
\r\n\r\n );\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/../../common/get-sales-line';\r\nimport {\r\n ICheckoutOrderConfirmationViewProps\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/checkout-order-confirmation/./checkout-order-confirmation';\r\nimport { OrderConfirmationDetail } from \"./components/OrderConfirmationDetail\";\r\nimport {\r\n ICheckoutOrderConfirmationProps\r\n} from \"../definition-extensions/checkout-order-confirmation.ext.props.autogenerated\";\r\nimport { ICheckoutOrderConfirmationData } from \"../definition-extensions/checkout-order-confirmation.data\";\r\nimport { SimpleProduct } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps\r\n // receiptEmail\r\n // createdDate,\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, pickupDateTimeslot, trackingInfo }) => (\r\n \r\n {heading}\r\n {count}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\n\r\nconst OrderConfirmationView: React.FC> = ({\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n ...rest\r\n}) => {\r\n const DLV_MODE_KEY = 'dlv-mode'\r\n const [dlvMode, setDlvMode] = React.useState('');\r\n const salesOrder = rest.data.checkout.result?.salesOrder;\r\n const orderedProducts = rest.data.checkout.result?.orderedProducts || []\r\n React.useEffect(() => {\r\n setDlvMode(window.sessionStorage.getItem(DLV_MODE_KEY) || '');\r\n sessionStorage.removeItem(DLV_MODE_KEY);\r\n }, [])\r\n return (\r\n \r\n {/*{heading}*/}\r\n {alert}\r\n {loading}\r\n { salesOrder && }\r\n {/* {orderInfomation && } */}\r\n {backToShoppingLink}\r\n {/*{groups && }*/}\r\n {/*{orderSummary && }*/}\r\n {payment && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} 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 {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), 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 {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\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}({title.titleCount})\n

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n // Hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items &&\n items.map((item: IBusinessSignUpItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n \n \n );\n};\n\nexport default BusinesSignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessPartnersViewProps } from './business-partners';\n\n/**\n * View layout of business partner module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n if (props.selectedBusinessPartnerUser) {\n return (\n \n {props.businessPartnersHeading}\n {props.catalogLoadingIndicator}\n {props.catalogLoadingErrorMessage}\n \n );\n }\n\n if (props.cookieConsentNotGivenErrorMessage) {\n return (\n \n {props.businessPartnersHeading}\n {props.cookieConsentNotGivenErrorMessage}\n \n );\n }\n\n return (\n \n {props.backToBusinessPartnersLink}\n {props.businessPartnersHeading}\n {props.businessPartnersTable}\n {props.businessPartnerUsersTable}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMediaGalleryThumbnailItemViewProps,\r\n IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery';\r\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param thumbnail - The carousel thumbnail line props.\r\n * @returns Return HTML having thumnailcontainer props with image.\r\n */\r\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Gets the thumbnail item to display media gallery images.\r\n * @param image - The media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param imageId - Image id.\r\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render images.\r\n */\r\nconst GetThumbnailItemComponent = (\r\n image: IImageData,\r\n imageSettings: IImageSettings,\r\n imageId: number,\r\n modifiedActiveIndex: number,\r\n props: IMediaGalleryViewProps\r\n): IMediaGalleryThumbnailItemViewProps => {\r\n\r\n /**\r\n * OnClick method of media gallery item.\r\n * */\r\n const onClick = () => {\r\n props.callbackToggle?.();\r\n props.callbackThumbnailClick?.(imageId);\r\n props.state.activeIndex = imageId;\r\n };\r\n\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n /**\r\n * Keydown event of media gallery item.\r\n * @param event - React.KeyboardEvent.\r\n * */\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n };\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'presentation',\r\n key: imageId\r\n },\r\n Picture: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Gets the empty thumbnail item to display media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render empty images.\r\n */\r\nconst GetEmptyThumbnailItemComponent = (imageSettings: IImageSettings, props: IMediaGalleryViewProps): IMediaGalleryThumbnailItemViewProps => {\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-media-gallery__thumbnail-item',\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 0,\r\n 'aria-label': '',\r\n 'aria-selected': true\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Update media gallery items method.\r\n * @param items - The media gallery thumbnail item view props.\r\n * @returns The IImageData array.\r\n */\r\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\r\n return items?.map(item => {\r\n return {\r\n altText: item.Picture.props.altText,\r\n src: item.Picture.props.src\r\n };\r\n });\r\n};\r\n\r\nconst defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\r\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n};\r\n\r\n/**\r\n * Render the Media gallery thumbnails to represent images in grid view.\r\n * @param thumbnails - The thumbnail view props.\r\n * @param props - The media gallery view props.\r\n * @returns - The single slide carousel component to render as media gallery image.\r\n */\r\nconst renderThumbnails = (\r\n thumbnails: IMediaGalleryThumbnailsViewProps,\r\n props: IMediaGalleryViewProps\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\r\n const { state, Thumbnails } = props;\r\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\r\n\r\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\r\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\r\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty' ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)] :\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\r\n mediaGalleryItems?.map((item: IImageData, id: number) => GetThumbnailItemComponent(item,\r\n defaultThumbnailImageSettings, id, state.activeIndex, props));\r\n\r\n return (\r\n \r\n \r\n {items?.map(renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render the Media gallery items using viewprops.\r\n * @param props - The media gallery view props.\r\n * @returns The media gallery module wrapping up images node.\r\n */\r\nconst mediaGalleryView: React.FC = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n return (\r\n \r\n \r\n {Modal}\r\n {renderThumbnails(Thumbnails, props)}\r\n \r\n );\r\n};\r\n\r\nexport default mediaGalleryView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n if (MsDyn365.isBrowser) {\r\n const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n console.log(linksElements);\r\n linksElements.forEach(l => l.setAttribute('href', '#'));\r\n }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE 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 { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = 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 {_renderReactFragment(props.menuBar)}\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 <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\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(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\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\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { ICartLineCommentViewProps } from './cart-line-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: ICartLineCommentViewProps) => {\r\n const { staticDisplay, cartLineCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\n// import { ICartResources } from '../../definition-extensions/cart.ext.props.autogenerated';\r\n// import { ICheckoutResources } from '../../definition-extensions/checkout.ext.props.autogenerated';\r\n\r\n\r\ninterface ILinePaginationProps {\r\n nextPage: (e: React.MouseEvent) => void,\r\n prevPage: (e: React.MouseEvent) => void,\r\n changePage: (page: number) => void,\r\n currentPage: number,\r\n numPages: number,\r\n prev: string,\r\n next: string\r\n}\r\n\r\n/**\r\n * Renders pagination navigation on the page, which displays 4 buttons that allow\r\n * user to navigate to the first, last, next or previous pages. Also displays \r\n * the current page out of the total number of pages. ( ie. 5/7 )\r\n *\r\n * @param {(e: React.MouseEvent) => void} nextPage\r\n * @param {(e: React.MouseEvent) => void} prevPage\r\n * @param {(page: number) => void} changePage\r\n * @param {number} currentPage\r\n * @param {number} numPages\r\n * @param {ICartResources} resources\r\n * @return {*} {React.ReactNode}\r\n */\r\nexport const LinePagination : React.FC = ({\r\n nextPage,\r\n prevPage,\r\n changePage,\r\n currentPage,\r\n numPages,\r\n prev,\r\n next}) => {\r\n const firstPage: number = 1;\r\n \r\n return (\r\n \r\n
\r\n {numPages > 0 &&\r\n <>\r\n {/* {currentPage !== 0 && */}\r\n <>\r\n \r\n \r\n \r\n {/* } */}\r\n
\r\n \r\n {currentPage + 1} / {numPages}\r\n \r\n
\r\n {/* {currentPage !== numPages && */}\r\n <>\r\n \r\n \r\n \r\n {/* } */}\r\n \r\n }\r\n
\r\n )};\r\n \r\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult, Customer, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {\n accountInformation?: AsyncResult;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
\n
{buttonText}
\n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n }\n );\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(\n this.state.comparisonItemId\n );\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).hasItemById(comparisonItemId),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IOrderLevelCommentViewProps } from './order-level-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IOrderLevelCommentViewProps) => {\r\n const { staticDisplay, orderLevelCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { CommerceException } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n errorMessage: string;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n\n /**\n * Event when the table cell is clicked.\n */\n onClick?(item: Tdata): void;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n errorMessage: ''\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.errorMessage !== nextState.errorMessage\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.errorMessage) {\n return {this.state.errorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n
\n \n
\n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n return (\n column.onClick?.(item)}>\n {column.fieldName ? (\n {((item as unknown) as { [key: string]: string })[column.fieldName]}\n ) : (\n column.onRender?.(item)\n )}\n \n );\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch (e) {\n this.setState({\n isLoading: false,\n errorMessage: (e as { data: CommerceException })?.data?.LocalizedMessage || this.props.resources.genericErrorMessage\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { ReactNode } from 'react';\nimport { isMobile, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimit: ReactNode;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n isSearchable: true,\n onClick: this.props.onSelect,\n onRender: (data: IBusinessPartnerUserViewModel) => {data.name}\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email',\n onClick: this.props.onSelect\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimit',\n onClick: !isMobileDevice ? this.props.onSelect : undefined\n }\n ];\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => {\n return {\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimit: (\n \n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''}\n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit) && user.SpendingLimit === 0 ? (\n \n