{"version":3,"sources":["webpack:///src/modules/product-specification/components/product-specification-table-stucture.tsx?4b07","webpack:///src/modules/fabrikam/views/reviews-list.view.tsx?39a2","webpack:///./src/themes/cirrus/views/checkout-delivery-options.view.tsx?589a","webpack:///src/modules/order-lookup/order-lookup.view.tsx?d1dd","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?e178","webpack:///src/modules/product-specification/product-specification.tsx?f393","webpack:///src/modules/iframe/iframe.tsx?d14a","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","webpack:///src/modules/adventureworks/views/order-history.view.tsx?16f3","webpack:///src/modules/cookie-compliance/components/accept-button.tsx?1709","webpack:///src/modules/cookie-compliance/components/links.tsx?807e","webpack:///src/modules/cookie-compliance/cookie-compliance.tsx?5f7e","webpack:///./src/themes/cirrus/views/order-template-list.view.tsx?e7cf","webpack:///src/modules/account-profile-edit/components/account-profile-edit-button.tsx?8f71","webpack:///src/modules/tile-list/tile-list.tsx?f539","webpack:///src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?d781","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.tsx?f29d","webpack:///src/modules/product-specification/product-specification.view.tsx?bfbe","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///./src/themes/cirrus/views/components/carticon.component.tsx?1605","webpack:///src/modules/order-lookup/utilities/order-lookup-utility.tsx?9369","webpack:///src/modules/order-lookup/components/order-lookup-additional-fields.tsx?7c69","webpack:///src/modules/order-lookup/components/order-lookup-fields.tsx?c99c","webpack:///src/modules/order-lookup/order-lookup.tsx?a81e","webpack:///src/modules/iframe/iframe.view.tsx?dd86","webpack:///src/modules/account-profile-edit/components/account-profile-edit-label.tsx?505c","webpack:///src/modules/tile-list/tile-list.view.tsx?d2bd","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","webpack:///src/index.ts?c6ae","webpack:///src/modules/adventureworks/views/order-details.view.tsx?1e8c","webpack:///src/modules/adventureworks/views/b2b-requests-status.view.tsx?b8db","webpack:///./src/themes/cirrus/views/footer-item.view.tsx?455b","webpack:///src/modules/account-profile-edit/components/account-profile-edit-error.tsx?a0b2","webpack:///src/modules/fabrikam/views/order-history.view.tsx?46de","webpack:///./src/themes/cirrus/views/checkout-gift-card.view.tsx?6f39","webpack:///src/modules/adventureworks/views/components/search.categorysuggest.tsx?5c98","webpack:///src/modules/adventureworks/views/components/search.mobile.empty.tsx?16ff","webpack:///src/modules/adventureworks/views/components/search.form.tsx?f934","webpack:///src/modules/adventureworks/views/components/search.keywordsuggest.tsx?34ae","webpack:///src/modules/adventureworks/views/components/search.productsuggest.tsx?1992","webpack:///src/modules/adventureworks/views/search.view.tsx?4e21","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?ed3f","webpack:///src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?90af","webpack:///./src/modules/product-specification/components/product-specification-table-stucture.tsx?453e","webpack:///./src/modules/product-specification/product-specification.props.autogenerated.ts?28d4","webpack:///./src/modules/product-specification/product-specification.tsx?5802","webpack:///src/modules/account-profile-edit/account-profile-edit.view.tsx?72b7","webpack:///./src/modules/product-specification/product-specification.view.tsx?b4a6","webpack:///src/modules/check-in-for-pickup/check-in-confirmation.tsx?9d47","webpack:///src/modules/check-in-for-pickup/check-in-error.tsx?9f7f","webpack:///src/modules/check-in-for-pickup/check-in-for-pickup.tsx?404b","webpack:///src/modules/adventureworks/views/cart.view.tsx?7e13","webpack:///src/modules/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?7b53","webpack:///src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?5371","webpack:///src/modules/account-order-templates-tile/account-order-templates-tile.tsx?db71","webpack:///src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?26b3","webpack:///src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?2c6f","webpack:///src/modules/fabrikam/views/order-details.view.tsx?2a61","webpack:///src/modules/account-profile-edit/components/account-profile-edit-input.tsx?3bba","webpack:///src/modules/account-profile-edit/account-profile-edit.tsx?a9d6"],"names":["ProductSpecificationTableRow","_ref","productName","cellData","className","React","scope","dangerouslySetInnerHTML","getRichTextHtml","buildReviewCard","props","Node","Object","assign","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","moduleProps","Module","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","state","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","length","isFilterApplied","map","review","DeliveryOptionList","DeliveryOptionsList","list","sort","deliveryOption1","deliveryOption2","_do1$props","_do2$props","do1","price","do2","data","CustomerContextualPrice","element","document","querySelector","click","deliveryOption","DeliveryOption","key","code","radioButton","description","DeliveryOptionSelected","_ref2","ErrorMessage","_ref3","Error","title","message","CheckoutDeliveryOptionsView","CheckoutDeliveryOptions","viewState","deliveryOptions","deliveryOptionSelected","errorMessage","waiting","saveButton","editButton","isLoading","isError","isShowList","isShowSelected","isShowSaveButton","isShowEditButton","isShowCancelButton","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","heading","paragraph","orderLookupForm","renderOrderLookupInputField","orderNumberInput","additionalProperties","registeredUserMessage","fieldErrorMessage","ArrayExtensions","hasElements","item","submitButtonLabelText","AccountProfileEditLoadingIcon","ProductSpecification","constructor","super","handleHeadingChange","event","this","config","text","target","value","_toggle","drawerListId","setState","isDrawerOpen","undefined","context","telemetry","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","requestContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","debug","shouldComponentUpdate","nextProps","nextState","render","_heading$tag","productSpecificationData","isAccrodion","displayStyle","viewProps","_objectSpread","handleText","classnames","ProductSpecificationTableProps","tag","ProductSpecificationTableBodyProps","Msdyn365","editProps","onEdit","request","productSpecificationResult","_createDrawerBody","_createTableBody","renderView","content","index","_renderProductCell","Name","accordionItemContainer","_product$Name","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","resources","trueValueText","falseValueText","__decorate","observer","Iframe","iframeRef","isConsentGiven","cookies","destinationUrl","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","alert","_renderAlert","cookieConsentRequiredMessage","role","targetURL","src","height","iframeAriaLabel","ref","ErrorComponent","CreditComponent","verbagePrefix","verbagePostfix","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","OrderHistoryView","_ref8","orderHistoryProps","loading","emptyMessage","backToShoppingLink","table","moreButton","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","type","onClick","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","forEach","link","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","openInNewTab","onTelemetryClick","push","links","onTextChange","CookieCompliance","getTelemetryObject","telemetryPageName","friendlyName","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","visible","cookieRef","_onDismiss","bind","componentDidMount","acceptCookiesAriaLabel","moduleConfig","MsDyn365","isBrowser","onDismiss","CookieComplianceBanner","AlertProps","color","fade","Content","acceptButton","setConsentCookie","location","reload","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","status","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","AccountProfileEditButton","id","disabled","Button","TileList","_telemetryContent","StringExtensions","isNullOrWhitespace","headingTag","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","slots","SignUpText","createElement","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","input","IssueLoyaltyInput","issueLoyalty","then","window","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","signInUrl","loyaltyCard","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","signInLink","href","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","ProductSpecificationView","rowdata","filter","row","ObjectExtensions","isNullOrUndefined","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","CartIcon","cartLabel","cartQtyLabel","cart","cartItem","hasInvoiceLine","totalItemsInCart","qtyLabel","format","label","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","onChange","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleTextChange","handleParagraphChange","handleSubmit","orderNumber","email","orderLookupValue","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","redirectUrl","searchParameters","searchParams","set","fieldName","replace","fieldValue","toString","_this$orderNumberInpu","_this$emailInputRef$c","orderStatusLookUpParametersType","orderNumberInputRef","current","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","items","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","isNullOrEmpty","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","trim","EmailRegex","defaultRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","orderLookupHeading","_createParagraph","autoComplete","onSubmit","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","getExtensibleEnumerationsAsync","callerContext","find","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","IFrameView","AccountProfileEditLabel","forId","htmlFor","tileListView","tileItem","keyIndex","AccountCustomerBalanceTileLinks","OrderInfomation","channelAddress","SalesLine","salesLineProps","buyAgainButton","errors","GroupDelivery","Group","isCashAndCarryTransaction","deliveryType","shipment","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","OrderSummary","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","paymentMethodsProps","methods","Help","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","OrderDetailsView","_ref9","viewModes","tableViewActions","orderSummary","payment","help","B2bRequestsStatusView","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","FooterItemView","FooterItem","_renderElement","HeadingContainer","Link","image","EditableLink","AccountProfileEditError","errorClassName","From","formProps","inputPinLabel","inputExpLabel","inputProps","inputNumProps","inputPinProps","inputExpProps","inputNumber","inputPin","inputExp","applyButton","supportExternalGiftCard","showGiftCardPinInput","showGiftCardExpInput","alertFieldLabel","setAttribute","SelectedGiftCard","itemProps","selectedGiftCard","GiftCardList","_objectWithoutProperties","_excluded","AddResource","ShowResource","CheckoutGiftCardView","checkoutGiftCardProps","showGiftCard","addGiftCard","renderCategorySuggestionsTitle","inCategoriesHeading","categoryAutoSuggestionHeading","CategorySuggestionsComponent","noResultText","isLoadingAutoSuggest","isLoadingNode","autosuggestCategory","CategorySuggest","UlCategory","MobileAutoSuggestEmptyComponent","noSearchResultImage","Image","altText","gridSettings","imageSettings","lazyload","viewports","xs","w","h","q","renderProductNotFoundResultsImage","emptyMobileSearchTextHeading","emptyMobileSearchText","FormComponent","searchForm","formWrapper","isMobile","clearSearchButtonText","isSearchText","clearSearch","cancelButtonNode","cancelBtnAriaLabel","cancelBtn","renderClearButton","submitBtn","renderKeywordSuggestionsTitle","keywordsHeading","KeywordSuggestionsComponent","keywordSuggest","ulKeyword","keywordSuggestions","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","renderTitle","searchSuggestionHeading","searchText","searchTextString","concat","searchAutoSuggestionHeading","SearchView","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","UlKeyword","UlProduct","autosuggestKeyword","autosuggestProduct","SearchForm","FormWrapper","categorySuggestionHeading","setSearchTextString","useState","isMobilePort","setIsMobile","useEffect","propsFormInput","propsFormInputCurrent","action","isMobileViewport","useCallback","isMobileView","variant","VariantType","Browser","addEventListener","viewport","Fragment","isSearchFormExpanded","_initState","hasError","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BCustomer","IsB2b","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","isDetailsLinkDisplayed","LinksComponent","account","Balance","CreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCreditFormatted","formatCurrency","toFixed","computed","LoyaltySignUpView","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","iconName","HeadingTag","accordion","__html","AccountProfileEditItem","wrapper","AccountProfileEditLoading","icon","AccountProfileEditView","accountProfileEdit","defaultAADConainer","aadConainer","accountProfileEditLocalAccount","isShowLoading","localAccount","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","button","LocalAccount","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","QRCode","size","CheckInErrorComponent","CheckInForPickup","checkInForOrderPickup","async","Number","parseInt","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","checkInForOrderPickupAsync","queryResultSettings","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","_onInit","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","isNaN","additionalInformationKeys","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","additionalInformationHeading","toggleBopisHandler","cartLine","isBopisSelected","_cartLine$pickUpInSto","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$pickUpInSto2","renderCartLine","storeSelector","isMultiplePickUp","emailDeliveryModeCode","outOfStockErrorMessage","addToWishlist","remove","renderGroupBopisBlock","_cartLine$data2","cartline","DeliveryMode","changeStoreDisplayText","shipInsteadDisplayText","pickItUpDisplayText","PickupInStore","puckUpinStoreAttribute","addToOrderTemplate","renderCartlinesInternal","cartLines","itemIndex","renderBopisBlock","_cartLine$data","shipToAddressDisplayText","pickUpAtStoreWithLocationText","ContainerProps","orgUnitName","renderCartlines","waitingComponent","cartLoadingStatus","isCartDataResult","multiplePickUpEnabled","CartlinesWrapper","emptyCart","renderCartLinesGroupHeader","_cartLine$pickUpInSto6","pickUpText","shippingText","emailshippingText","groupTitle","toLowerCase","renderCartLinesGroupTitle","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","_cartLine$pickUpInSto5","itemLabel","itemsLabel","countTitle","CartView","_props$cart2","_props$cart3","_props$orderSummaryLi","_props$cart4","_props$cart5","updatedTitle","cartTitle","renderModuleAttributes","orderSummaryLineitems","orderTotal","checkoutAsSignInUserButton","checkoutAsGuestButton","renderOrderSummaryCheckoutButton","promotionOptions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action","_props$context$action2","cartlineId","countItem","reduce","_item$data$cartline$Q","_item$data","Quantity","countItems","channel","EmailDeliveryModeCode","cartDataResult","orderSummaryHeading","OrderSummaryWrapper","renderInvoiceSummarylines","invoiceSummaryLines","orderSummaryItems","invoices","giftCard","loyalty","invoiceSummaryLineitems","OrderSummaryItems","renderOrderSummarylines","orderSummaryLines","totalDiscounts","otherCharge","errorData","OrderSummaryErrors","Wrapper","_props$cart","promoCode","createTemplateFromCartButton","renderOrderSummaryCheckout","CookieComplianceView","Alert","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","_this$props$data$feat","_this$props$data$cust","RetailB2BEcommerceFeatureState","featureState","params","isEditor","IsEnabled","customerInformation","accountOrderTemplatesTileDescription","orderTemplatesCount","CheckInViewComponent","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","AccountProfileEditLoadingMessage","GetMaxLength","maxLength","parsedMaxLength","AccountProfileEditInput","pattern","AccountProfileEdit","moduleClassName","onTextBoxChange","givenName","surname","emailRegex","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","source","componentDidUpdate","Modal","ModalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","display","_renderLocalAccount","str","e","innerHTML","childNodes","nodeValue","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","observable"],"mappings":"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","file":"static/js/8.68e4723082b45bc79a65.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n \n \n \n { cellData }\n \n \n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return (\n {noReviewsMessage}\n );\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n \n {state.reported ? props.headerSubmitted : props.header}\n \n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n \n );\n};\n\nexport default ReviewsListview;\n","/*--------------------------------------------------------------\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 { ICheckoutDeliveryOption, ICheckoutDeliveryOptionEdit, ICheckoutDeliveryOptionsError, ICheckoutDeliveryOptionsList, ICheckoutDeliveryOptionsViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\n\r\nconst DeliveryOptionList: React.FC = ({\r\n DeliveryOptionsList,\r\n list\r\n}) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n list.sort((deliveryOption1, deliveryOption2) => {\r\n const do1: any = deliveryOption1.price;\r\n const do2: any = deliveryOption2.price;\r\n return do1?.props?.data?.price?.CustomerContextualPrice - do2?.props?.data?.price?.CustomerContextualPrice\r\n });\r\n\r\n React.useEffect(() => {\r\n const element: HTMLElement = document.querySelector('.ms-checkout-delivery-options__option .ms-checkout-delivery-options__input-radio') as HTMLElement;\r\n element?.click();\r\n }, []);\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {deliveryOption.price}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({\r\n DeliveryOption,\r\n description,\r\n price\r\n}) => {\r\n\r\n return (\r\n \r\n {description}\r\n {price}\r\n \r\n );\r\n};\r\n\r\nconst ErrorMessage: React.FC = ({\r\n Error,\r\n title,\r\n message\r\n}) => {\r\n\r\n return (\r\n \r\n {title}\r\n {message}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const { CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n errorMessage,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton } = props;\r\n\r\n return (\r\n\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && errorMessage && }\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const { orderLookup, orderLookupContainer, orderLookupAdditionalFieldContainer, heading, paragraph, orderLookupForm, renderOrderLookupInputField,\n orderNumberInput, errorMessage, submitButton, additionalProperties, registeredUserMessage, fieldErrorMessage } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n \n {item}\n \n ))}\n \n )}\n { fieldErrorMessage }\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps,\n nextState: IProductSpecificationState): 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 | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return (
\n {error}\n
);\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n } : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion ? {} : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n ),\n\n productSpecificationResult: isAccrodion ? productSpecificationData && this._createDrawerBody(data) : productSpecificationData && this._createTableBody(data)\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n return content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n \n );\n });\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n return content.productSpecificationData.result!.map((product) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
\n {cellData}\n
\n \n
\n );\n });\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return (\n {product.DateTimeOffsetValue.toUTCString()}\n );\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return (\n {product.IntegerValue}\n );\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return (\n {product.FloatValue}\n );\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return (\n {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'}\n );\n }\n return (\n {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'}\n );\n\n }\n\n}\n\nexport default ProductSpecification;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

);\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n\n \n );\n }\n\n}\n\nexport default Iframe;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n \n {error}\n \n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n \n {value}\n \n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n \n {label}\n \n \n {value}\n \n
\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.salesLine}\n \n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink, expandProductsButton }) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({ acceptCookiesButtonText, acceptCookiesButtonAriaLabel, telemetryContent, onClose }) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? : null}\n \n\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return (
\n {error}\n
);\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return (<>);\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\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 { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Interface for OrderTemplateImage.\r\n */\r\ninterface IOrderTemplateImage {\r\n props: {\r\n children: React.ReactElement[];\r\n };\r\n}\r\n\r\n/**\r\n * To render order template.\r\n * @param orderTemplate - The order template view props.\r\n * @param orderTemplateNodeProps - The order template node props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n\r\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\r\n const currentImageListLength = orderTemplateImageElement.props.children.length;\r\n const defaultNumberImagesInTile = 4;\r\n\r\n if (currentImageListLength < defaultNumberImagesInTile) {\r\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\r\n orderTemplateImageElement.props.children.push();\r\n }\r\n }\r\n\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Order Template List View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nexport const OrderTemplateListViewComponent: React.FC> = props => {\r\n const {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\r\n OrderTemplateList, OrderTemplates, OrderTemplate,\r\n status,\r\n statusMessage,\r\n heading,\r\n orderTemplates,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {status === 'SUCCESS' &&\r\n (!OrderTemplates || !orderTemplates ||\r\n !ArrayExtensions.hasElements(orderTemplates)) ? (\r\n
\r\n

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

\r\n

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

\r\n {createOrderTemplateButton}\r\n
\r\n ) : createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n
\r\n { OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) &&\r\n \r\n {orderTemplates.map((orderTemplate) => {\r\n return renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateListViewComponent;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {text}\n );\n};\n\nexport default AccountProfileEditButton;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return (\n \n );\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return (

\n {props.text}\n

);\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps,\n nextState: IAccountLoyaltyJoinState): 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 | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: {\n signInUrl,\n isAuthenticated\n }\n }\n },\n data: { loyaltyCard }\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && ,\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && ,\n detailsLink: hasLoyaltyAccount &&\n ,\n termsLink: !hasLoyaltyAccount && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.memberHeading!.text = event.target.value;\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata = productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter((row) => !ObjectExtensions.isNullOrUndefined(row));\n\n return (\n rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n \n { rowdata }\n \n \n ) : null\n );\n};\n\nexport default ProductSpecificationView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartIconData: Interface for Cart Icon Data.\r\n */\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\n/**\r\n * ICartIconComponentProps: Interface for Cart Icon component props.\r\n */\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\n/**\r\n * ICartIconComponent: Interface for Cart Icon component.\r\n */\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\r\n const defaultCartItemCount: number = 0;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n let cartItem = defaultCartItemCount;\r\n\r\n if (cart) {\r\n cartItem = cart.hasInvoiceLine ? defaultCartItemCount : cart.totalItemsInCart;\r\n }\r\n\r\n let qtyLabel: string = '';\r\n const cartMaxQuantity: number = 99;\r\n const maxQuantityLabel: string = '99+';\r\n if (cartItem > cartMaxQuantity) {\r\n qtyLabel = maxQuantityLabel;\r\n } else {\r\n qtyLabel = format(cartQtyLabel, cartItem);\r\n }\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// @ts-expect-error -- Compatible issue with the component override.\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return (
\n {value}\n
);\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage && (
\n {responseErrorMessage}\n
);\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (
\n {message}\n \n {signInText}\n \n {infoMessage}\n
);\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (orderStatusLookUpParameter: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return (
\n { orderLookupFieldValidationErrorMessage }\n
);\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: (\n labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel)\n ),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\n )\n };\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: (\n labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel)\n ),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\n )\n };\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes } from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: {\n paragraph,\n heading\n },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const {\n responseErrorMessage,\n isDisabled,\n orderNumber,\n isOrdNumberError\n } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage: (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(resources, context.request.user.signInUrl ?? '', signinLinkClassName, registeredUserClassName),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync(\n { callerContext: actionContext });\n this.orderLookupExtensibleEnum = getExtensibleEnumerations.find(\n item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(orderLookupAdditionalParameter, this.orderLookupExtensibleEnum);\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\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 const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const orderLookupName = OrderLookupSearchValues.email;\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel) ? item.ariaLabel.replace(' ', '').toLocaleLowerCase() : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: {\n orderLookupEmailValidationErrorMessage,\n orderLookupRequiredTextErrorMessage\n }\n } = this.props;\n\n const {\n isEmailError,\n email,\n isValidEmailError,\n isReqError\n } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: {\n orderLookupOrderNumberValidationErrorMessage,\n orderLookupRequiredTextErrorMessage\n }\n } = this.props;\n\n const {\n isOrdNumberError,\n isReqError\n } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: {\n orderStatusLookUpParametersType\n },\n resources: {\n orderLookupEmailLabel,\n orderLookupEmailAriaLabel\n }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && StringExtensions.isNullOrWhitespace(email)) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = (props) => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n \n {title}\n \n \n { tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport getAttributesForSelectedVariant, { AttributesForSelectedVariantInput } from './dataActions/get-attributes-for-selected-variant';\nimport ProductSpecification from './modules/product-specification/product-specification';\nimport ProductSpecificationView from './modules/product-specification/product-specification.view';\n\nexport * from './modules/product-specification/components/product-specification-table-stucture';\nexport * from './modules/product-specification/product-specification';\nexport * from './modules/product-specification/product-specification.data';\nexport * from './modules/product-specification/product-specification.props.autogenerated';\nexport * from './modules/product-specification/product-specification.view';\nexport {\n AttributesForSelectedVariantInput,\n getAttributesForSelectedVariant,\n ProductSpecification,\n ProductSpecificationView };\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\n\n/**\n * B2b Request status View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\nconst B2bRequestsStatusView: React.FC> = props => {\n const { b2bRequestsStatus, heading, table } = props;\n const { continueShoppingButtonTitle } = props.resources;\n const initialCount = 0;\n\n if (props.data.operationRequests.result?.length === initialCount) {\n return (\n \n {heading}\n \n
\n

\n {props.resources.headingForEmptyRequestStatus}\n

\n

\n {props.resources.textForEmptyRequestStatus}\n

\n \n \n {continueShoppingButtonTitle}\n \n \n
\n
\n
\n );\n }\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { FooterItem } = this.props;\r\n return (\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\r\n if (heading) {\r\n return (\r\n {' '}\r\n );\r\n } else if (Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n } else if (Link) {\r\n return (EditableLink);\r\n }\r\n return (\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n }\n { isMobileView && props.isSearchFormExpanded && \n {!StringExtensions.isNullOrEmpty(searchTextString) ? \n {AutoSuggestAriaLabelText}\n : ''}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n {(form as ISearchFormViewProps).cancelBtn}\n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(categorySuggestionHeading, noResultText,\n props, isLoadingAutoSuggest, isLoadingNode)}\n {KeywordSuggestionsComponent(KeywordSuggest, UlKeyword, keywordsHeading, noResultText, autosuggestKeyword,\n isLoadingAutoSuggest, isLoadingNode)}\n \n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\n isLoadingAutoSuggest, isLoadingNode)}\n \n \n ) : null}\n }\n \n );\n};\nexport default SearchView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BCustomer = customerResult ? customerResult.IsB2b : false;\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BCustomer) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BCustomer))\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState): 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 if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (account.Balance === 0 && account.CreditLimit === 0) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n const customerCredit = account.CreditLimit - account.Balance;\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const { LoyaltySignUp, heading, memberHeading, signInLink, signUpText, signUpButton, detailsLink, termsLink, loading } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Product specification table row.\r\n */\r\nexport interface IProductSpecificationTableRow {\r\n productName?: string;\r\n cellData?: any; //changed to any from React.ReactNode (could not access props for comparison)\r\n className?: string;\r\n iconName?: string;\r\n}\r\n\r\n/**\r\n * Product specification table row component.\r\n * @param props - For product specification table row.\r\n * @param props.productName - Product name.\r\n * @param props.cellData - Cell data.\r\n * @param props.className - Class name.\r\n * @param props.iconName\r\n * @returns - Returns JSX element.\r\n */\r\n\r\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className, iconName }) => (\r\n \r\n \r\n \r\n {cellData}\r\n \r\n \r\n);\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IProductSpecification contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum displayStyle {\r\n accordion = 'accordion',\r\n table = 'table'\r\n}\r\n\r\nexport interface IProductSpecificationConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n displayStyle?: displayStyle;\r\n className?: string;\r\n}\r\n\r\nexport interface IProductSpecificationResources {\r\n trueValueText: string;\r\n falseValueText: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface IProductSpecificationProps extends Msdyn365.IModule {\r\n resources: IProductSpecificationResources;\r\n config: IProductSpecificationConfig;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\r\nimport { IProductSpecificationData } from './product-specification.data';\r\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\r\n\r\n/**\r\n * Maintain Drawer State.\r\n */\r\nexport interface IProductSpecificationState {\r\n isDrawerOpen: boolean;\r\n drawerListId: number | undefined;\r\n}\r\n\r\n/**\r\n * Product specification view props.\r\n */\r\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\r\n ProductSpecification: IModuleProps;\r\n ProductSpecificationTableProps: INodeProps;\r\n ProductSpecificationTableBodyProps: INodeProps;\r\n productSpecificationResult?: (JSX.Element | null)[];\r\n title?: React.ReactNode;\r\n isAccrodion?: boolean;\r\n handleText?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\n/**\r\n * Check for display style either accordion or table.\r\n */\r\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\r\n displayStyle?: displayStyle;\r\n}\r\n\r\n/**\r\n *\r\n * ProductSpecification component.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductSpecification extends React.Component {\r\n public constructor(props: IProductSpecificationExtentedProps) {\r\n super(props);\r\n this.state = {\r\n isDrawerOpen: false,\r\n drawerListId: undefined\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error.message);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n let data: IProductSpecificationData;\r\n try {\r\n data = this.props.data;\r\n } catch (error) {\r\n this.props.telemetry.error(`Something went wrong ------${error}`);\r\n return
{error}
;\r\n }\r\n\r\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\r\n this.props.telemetry.error('Product specification content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const { heading, className } = this.props.config;\r\n const { productSpecificationData } = this.props.data;\r\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\r\n const viewProps = {\r\n ...this.props,\r\n handleText: this.handleHeadingChange,\r\n ProductSpecification: {\r\n moduleProps: this.props,\r\n className: classnames('ms-product-specification', className)\r\n },\r\n ProductSpecificationTableProps: isAccrodion\r\n ? {\r\n moduleProps: this.props,\r\n className: classnames('ms-product-specification__accordion', className)\r\n }\r\n : {\r\n className: classnames('ms-product-specification__table table-striped table-bordered'),\r\n tag: 'table'\r\n },\r\n isAccrodion,\r\n ProductSpecificationTableBodyProps: isAccrodion\r\n ? {}\r\n : {\r\n className: '',\r\n tag: 'tbody'\r\n },\r\n title: heading?.text && (\r\n \r\n ),\r\n\r\n productSpecificationResult: isAccrodion\r\n ? productSpecificationData && this._createDrawerBody(data)\r\n : productSpecificationData && this._createTableBody(data)\r\n } as IProductSpecificationViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle Heading Text Change.\r\n * @param event - Current event.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\r\n return content.productSpecificationData.result!.map((product, index) => {\r\n //console log products\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n if (!cellData) {\r\n return null;\r\n } else if (\r\n (product.Name === 'Customizable' && cellData.props.dangerouslySetInnerHTML.__html === 'Yes') ||\r\n (product.Name === 'Non-returnable' && cellData.props.dangerouslySetInnerHTML.__html === 'Yes') ||\r\n (product.Name === 'Oversized' && cellData.props.dangerouslySetInnerHTML.__html === 'Yes') ||\r\n (product.Name === 'Hazardous' && cellData.props.dangerouslySetInnerHTML.__html === 'Yes')\r\n ) {\r\n return (\r\n \r\n );\r\n } else if (product.Name === 'Aircraft Type' && product.TextValue === 'Vision Jet (SF)') {\r\n return (\r\n \r\n );\r\n } else if (product.Name === 'Aircraft Type' && product.TextValue === 'Propeller (SR)') {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n }\r\n\r\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\r\n const accordionItemContainer: IModuleProps = {\r\n moduleProps: this.props,\r\n className: 'ms-product-specification-title'\r\n };\r\n return content.productSpecificationData.result!.map(product => {\r\n const cellData: JSX.Element | null = this._renderProductCell(product);\r\n if (!cellData) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n
{cellData}
\r\n \r\n
\r\n );\r\n });\r\n }\r\n\r\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\r\n if (this.state.drawerListId !== drawerListId) {\r\n this.setState({ drawerListId, isDrawerOpen: true });\r\n } else {\r\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\r\n }\r\n };\r\n\r\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\r\n switch (product.DataTypeValue) {\r\n case 0: // None\r\n // Return span here instead of null so the row still shows\r\n return ;\r\n case 1: // Currency\r\n return this._renderCurrencyCell(product);\r\n case 2: // DateTime\r\n return this._renderDateTimeCell(product);\r\n case 3: // Decimal\r\n return this._renderDecimalCell(product);\r\n case 4: // Integer\r\n return this._renderIntegerCell(product);\r\n case 5: // Text\r\n return this._renderTextCell(product);\r\n case 6: // TrueFalse\r\n return this._renderTrueFalseCell(product);\r\n case 40: // Video\r\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\r\n return null;\r\n case 41: // Image\r\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\r\n return null;\r\n default:\r\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\r\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\r\n return (\r\n \r\n {product.CurrencyCode}\r\n {product.CurrencyValue}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\r\n if (product.DateTimeOffsetValue?.toUTCString) {\r\n return {product.DateTimeOffsetValue.toUTCString()};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\r\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\r\n return {product.IntegerValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\r\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\r\n return {product.FloatValue};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\r\n if (product.TextValue !== null && product.TextValue !== undefined) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\r\n // TODO 20369885 setting to default value is needed to work around a platform bug where\r\n // config string value does not get its default value.\r\n if (product.BooleanValue) {\r\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\r\n }\r\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\r\n }\r\n}\r\n\r\nexport default ProductSpecification;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem, IAccountProfileEditLoading, IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({\n wrapper,\n label,\n errorMessage,\n input\n}) => {\n\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n\n return (\n \n {items && items.map((item: IAccountProfileEditItem) => {\n return (\n\n \n );\n })}\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\n return (\n \n {error}\n \n );\n })}\n \n {buttons && buttons.map((button: React.ReactNode, index: number) => {\n return (\n \n {button}\n \n );\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n\n const {\n accountProfileEdit,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n accountProfileEditLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from './product-specification';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n ) : null;\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

\n {confirmationText}\n

\n {\n channelReferenceId &&\n

\n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

\n }\n {\n channelReferenceId &&\n shouldShowQrCode &&\n \n \n \n }\n
\n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({\n errorMessage\n}) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n \n \n );\n};\n\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: ,\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n }) : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText) {\n\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage ||\n this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined =\n additionalInformationList?.map(additionalInformationKeyValuePair => {\n return { formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '', value: additionalInformationKeyValuePair.value };\n });\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList);\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n this.props.context.telemetry.error('One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.');\n return Promise.resolve();\n }\n\n const {\n additionalInformationKeys\n } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId);\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getPayloadObject, getTelemetryAttributes, INodeProps, ITelemetryContent, Node, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartProps as ICartExtensionProps } from '../definition-extensions/cart.ext.props.autogenerated';\n\n/**\n * Toggle Bopis Function.\n * @param cartLine -CartLine.\n * @param isBopisSelected -Boolean.\n * @returns Toggle Bopis.\n */\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * Change Store Function.\n * @param cartLine -CartLine.\n * @returns Toggle Bopis.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderBopisBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { shipInsteadDisplayText, shipToAddressDisplayText, pickItUpDisplayText, pickUpAtStoreWithLocationText, changeStoreDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? \n {pickUpAtStoreWithLocationText}\n : \n {shipToAddressDisplayText}\n }\n
\n {\n isBopisSelected &&\n
\n \n {cartLine.pickUpInStore.orgUnitName}\n \n \n {changeStoreDisplayText}\n \n
\n }\n \n
\n );\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderGroupBopisBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLine = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent, isMultiplePickUp?: boolean, emailDeliveryModeCode?: string): JSX.Element => {\n\n if (cartLine.error === resources.outOfStockErrorMessage) {\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (isMultiplePickUp) {\n return (\n \n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (cartLine.addToOrderTemplate) {\n return (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlinesInternal = (cartLines: ICartlinesViewProps[], resources: ICartResources,\n storeSelector: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\n return (\n cartLines.map((cartLine, index) => {\n const itemIndex = index;\n return (\n
\n {cartLine.cartline}\n \n {isMultiplePickUp ? null : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {\n renderCartLine(cartLine, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\n }\n \n
\n );\n }));\n};\n\n/**\n * Render Cart Lines.\n * @param props - The cart line props.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param waitingComponent - Waiting component element.\n * @param cartLoadingStatus - Cart loading status string.\n * @param isCartDataResult - Flag to check if there is cart data.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlines = (props: ICartViewProps & ICartExtensionProps<{}>, cartLines: ICartlinesViewProps[] | undefined, resources: ICartResources,\n storeSelector: React.ReactNode | undefined, waitingComponent: React.ReactNode,\n cartLoadingStatus: string, isCartDataResult: boolean, telemetryContent?: ITelemetryContent, isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\n\n if (cartLoadingStatus) {\n return (<>\n {cartLoadingStatus}\n );\n }\n\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\n if (cartLines) {\n return props.multiplePickUpEnabled ? (\n renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\n ) : (\n \n {renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n );\n }\n\n return (isCartDataResult ? (\n
\n
\n { props.slots.emptyCart }\n
\n
\n ) : <>\n {waitingComponent}\n \n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const itemCountOne: number = 1;\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\n const countTitle = `(${count} ${suffix})`;\n return (\n <>\n \n {isBopisSelected ?

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

: null}\n

\n {countTitle}\n

\n
\n \n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupHeader = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number, emailDeliveryModeCode?: string) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n\n return (\n <>\n
\n

\n

\n {groupTitle}\n

\n {renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\n/**\n * Returns count of products.\n * @param cartLine - The cart line view props.\n * @returns Number of products.\n */\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n const defaultItemCount = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\n\n }, defaultItemCount);\n return countItem;\n};\n\n/**\n * Render Cart Lines group.\n * @param props - The cart line view props.\n * @param resources - Module resource strings.\n * @returns JSX Element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps & ICartExtensionProps<{}>, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
\n { props.cartLinesGroup.map(cartlines => {\n return (
\n {renderCartLinesGroupHeader(cartlines[0], resources, countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n {renderCartlines(props, cartlines, props.resources, props.storeSelector,\n props.waitingComponent, props.cartLoadingStatus, props.cartDataResult,\n props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n
);\n })}\n
\n );\n }\n return (props.cartDataResult ? (\n
\n
\n {props.slots.emptyCart}\n
\n
\n ) : <>\n {props.waitingComponent}\n \n );\n\n};\n\n/**\n * Render error block.\n * @param errorData - Error component.\n * @returns JSX Element.\n */\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Render invoice summary.\n * @param invoiceSummaryLines - Invoice summary component.\n * @param orderSummaryItems - Order summary component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderInvoiceSummarylines = (invoiceSummaryLines: IInvoiceSummaryLines | undefined, orderSummaryItems: INodeProps,\n props: ICartViewProps): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render order summary.\n * @param orderSummaryLines - Order summary component.\n * @param orderSummaryItems - Order summary items component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderOrderSummarylines = (orderSummaryLines: IOrderSummaryLines | undefined, orderSummaryItems: INodeProps,\n props: ICartViewProps): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {orderSummaryLines.subtotal}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render error block.\n * @param promotions - The module view props.\n * @returns JSX Element.\n */\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n \n {promotions.promotionSeeAllLink}\n \n {promotions.promotionDialog}\n \n\n \n );\n};\n\n/**\n * Render order summary checkout.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckout = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.cart?.hasInvoiceLine ? null : props.promoCode}\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n \n {props.createTemplateFromCartButton}\n \n );\n};\n\n/**\n * Render order summary checkout button.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n \n );\n};\n\n/**\n * Render cart view.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst CartView: React.FC> = (props: ICartViewProps & ICartExtensionProps<{}>) => {\n const totalItemCountOne: number = 1;\n const updatedTitle = (\n

\n {props.resources.cartTitle}\n \n {` (${Number(props.cart?.totalItemsInCart)} ${props.cart?.totalItemsInCart !== totalItemCountOne ? 'items' : 'item'})`}\n \n

\n );\n return (\n
\n {updatedTitle}\n
\n {props.orderSummaryLineitems?.orderTotal}\n
\n {renderOrderSummaryCheckoutButton(props)}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? renderCartLinesGroup(props, props.resources) : renderCartlines(props, props.cartlines,\n props.resources, props.storeSelector, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult)}\n {props.orderSummaryHeading &&\n \n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine ? renderInvoiceSummarylines(\n props.invoiceSummaryLineitems, props.OrderSummaryItems, props) : renderOrderSummarylines(\n props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {renderErrorBlock(props.OrderSummaryErrors)}\n \n {renderOrderSummaryCheckout(props)}\n }\n {props.storeSelector}\n
\n );\n};\n\nexport default CartView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({ links, onTextChange, telemetryContent, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const RetailB2BEcommerceFeatureState = this.props.data.featureState.result?.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailB2BEcommerceFeature');\n if (!this.props.context.request.params.isEditor &&\n (!RetailB2BEcommerceFeatureState?.IsEnabled || !this.props.data.customerInformation.result?.IsB2b)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const {\n headerError,\n checkInForOrderPickup,\n confirmationComponent,\n viewState\n } = props;\n return (\n <>\n { viewState.isHeaderError && headerError }\n { !viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n }\n {\n !viewState.isHeaderError && !ArrayExtensions.hasElements(props.config.additionalInformationKeys) && viewState.isCheckedIn &&\n confirmationComponent\n }\n \n );\n};\n\nexport default CheckInViewComponent;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
\n {message}\n
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\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\nconst AccountProfileEditInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditConfig, IAccountProfileEditProps\n} from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState): 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, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text = event.target.value;\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n\n });\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex));\n }\n\n return localAccount;\n }\n\n private _renderInput(id: string, type: string, value: string, labelText: string, maxLength?: string, pattern?: string): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return (\n {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n\n }\n );\n }\n\n}\n\nexport default AccountProfileEdit;\n"],"sourceRoot":""}